2021년 7월 28일 수요일

MAC 에서는 sketch, Windows에서는 Lunacy

 MAC 에서는 sketch  Windoes에서는 Lunacy를 사용하는것을 권장합니다.

Lunacy의 사용방법은 sketch와 거의 유사하더군요.

다만, 한글 폰트 사용이 잘 안된 다는 것입니다.

한글폰트를 지정했으나 실제 적용은 되지 않더군요.

이런방법으로 해결하였습니다.

윈도우10 최신버전에서 [제어판 > 국가 또는 지역 > 관리자 옵션 > 시스템 로갤변경 >지역설정] 에서 [현재 시스템 로갤은 그대로 두고, Beta:세계 언어 지원을 위해 Unicode UTF-8 사용을 체크]하여 주시고, 컴퓨터를 재부팅하면 상당한 시간(1분정도..)이 경과된후에 정상부팅이 됩니다. 이후에는 사용이 가능합니다. 



#Lunacy #Font #UTF-8 #Windows #Sketch

2021년 7월 24일 토요일

Mac Xcode에서 Python 3.9 사용하기

 일단은 Python 사이트에가서 dmg 파일을 다운받아 설치합니다.

m1 프로세서일경우에는 아래에 있는 파일이겠죠.
터미널을 열어 파이썬의 위치를 확인합니다.
파이썬3의 위치로 이동합니다.  [cd /usr/local/bin]
파인더를 엽니다. [open . ]
파인더에서 살펴보면 python3.9 가 있는데 Xcode에서 선택이 안되니...
링크(바로가기x)를 만듭니다. [ln python3.9 python39]

파인더를 닫지말고 열어둔 상태로 Xcode를 실행하고 
External Build System 프로젝트를 생성합니다.

프로젝트를 저장하고 위치를 기억합니다.
새로운 empty 파일을 하나 만들고 확장자를 .py로 합니다.
Xcode 메뉴 [Product > Scheme > EditScheme]을 실행하고 [Command + Shift + ,(<)]
Info Tab에서 Run(Debug) 항목의 Executable이 None으로 되어 있는 것을 영상과  바꾸어 줍니다.
[Executable > None > Other] 하고 방금전에 열어둔 파인더의 python39 파일을 열린창의 상단 Choose an executable to launch으로 드래그&드롭합니다.
python39 파일을 선택할 수 있게 됩니다. 선택합니다.
Debug executable은 선택제외하고, 
Option, Arguments Tab에서 영상과 같이 지정합니다.


콘솔창에서 확인합니다.


 


맥에서 스케치업 사용시 3D Text 안될때...

 맥에서 스케치업 사용시 3D Text 안되어서 원인을 알아본결과

맥 재 OS설치시 포맷할때 "APFS"로 되어있어야 하는데 "대소문자구분"로 하였더니 특정앱이 정상으로 작동하지 않았습니다.

스케치업의경우에 3D Text, instructor 등이 정상으로 작동되지 않았습니다.

mac sketchup instructor not showing

Text Tool not placing text






2021년 7월 23일 금요일

패러럴즈 네트워크 초기화 에러 대처법

Parallels 16: Network initialization failed.

Try this if you Parallels 16’s network not working on BigSur

1. sudo nano /Library/Preferences/Parallels/network.desktop.xml
2. find <UseKextless>1</UseKextless> (value can be -1), and change the value to the <UseKextless>0</UseKextless>
3. if you can’t to find this tag, then just create it under root tag <ParallelsNetworkConfig …>here</ParallelsNetworkConfig>

Result: you can start/restart Parallels without sudo – network will work.

주의할 것은 ~/Library 가 아니고 root   /Library 임에 주의!

이것을 알기전까지는 root로 로그인하여 실행하거나

sudo -b /Applications/Parallels\ Desktop.app/Contents/MacOS/prl_client_app 으로 실행함.

https://policeman0077.wordpress.com/2021/01/10/parallels-16-network-initialization-failed 에서가져옴.

2021년 7월 22일 목요일

swift vs delphi: 01

Swift를 공부하면서 Delphi를 재정립하자.

Structure

//Swift
struct Resolution {
var width = 0;
var height = 0;
}
let hd = Resolution(width: 1920, height: 1080)
var someResolution = Resolution(width: 640, height: 480) 

//Delphi
type
  TResolution = record
    width: integer;
    height: integer;
  end;
const
  hd: TResolution = (width: 1920; height: 1080);
var
  someResolution: TResolution = (width: 640; height: 480);

//Swift
  1. @propertyWrapper
  2. struct TwelveOrLess {
  3. private var number = 0
  4. var wrappedValue: Int {
  5. get { return number }
  6. set { number = min(newValue, 12) }
  7. }
  8. }

  9. //Delphi
  10. type TResolution = record private number : integer; function getWappedValue: integer; procedure setWappedValue(const Value: integer); property wrapValue: integer read number write number; property wrappedValue: integer read getWappedValue write setWappedValue; end;

  11. function TResolution.getWappedValue: integer;
  12. begin
  13.   Result:= number;
  14.   // willSet
  15. end;
  16. procedure TResolution.setWappedValue(const Value: integer);
  17. begin
  18.   if Value > 0 then
  19.     number:= Value
  20. else Value := 0;
  21.   // didSet
  22. end;


2021년 7월 21일 수요일

델파이 인터페이스

 델파이 인터페이스를 전혀 이해를 못하다가 Swift의 Protocol을 공부하면서 이해가 되었습니다. 물론 정확한지는 모르지만 제가 이해하는 수준입니다. 

이론적 배경은 구글링을 하시면 어렵게 설명되어 있으니 시스템프로그램하시는 분은 그곳을 참고하시고 저는 사용하는 입장에서만... 

Interface 가 도입된 배경은 Windows 32 시스템에서 COM을 사용하기 위한 것이고 지금은 COM을 사용하는 경우가 별로 없으니 GUID(Shift+Ctrl+G)는 생성할 필요는 없습니다.

먼저 다음과 같이 선언해보십시요.

type
  iCalc = interface
    function calcAdd(adx, bdx: integer): integer;
    function calcMulti(adx, bdx: integer): integer;
  end;
  TiCalc = class(TInterfacedObject, iCalc)
    function calcAdd(adx, bdx: integer): integer;
    function calcMulti(adx, bdx: integer): integer;
  end;
  jCalc = interface
    function calcSub(adx, bdx: integer): integer;
    function calcDivide(adx, bdx: integer): integer;
  end;
  TjCalc = class(TiCalc, iCalc, jCalc)
    function calcSub(adx, bdx: integer): integer;
    function calcDivide(adx, bdx: integer): integer;
  end;

구현은 Interface에서 하지 않고 Class에서 합니다.

TJCalc 가 다중상속되었슴에 주의하시면 되겠습니다. 

사용은 아래그림 및 아래와 같이하고


procedure TForm1.Button1Click(Sender: TObject);
var adx: iCalc;
begin
  adx:= TiCalc.Create;
  Label1.Caption:= adx.calcAdd(2, 3).ToString;
  //adx.free   Not need
end;
procedure TForm1.Button2Click(Sender: TObject);
var adx: jCalc;
begin
  adx:= TjCalc.Create;
  Label1.Caption:= adx.calcDivide(40, 2).ToString;
  //adx.free   Not need
end;
procedure TForm1.Button3Click(Sender: TObject);
var adx: iCalc;
begin
  adx:= TiCalc.Create;
  Label1.Caption:= adx.calcAdd(40, 2).ToString;
  //adx.free   Not need
end;

Button3에서는  TjCalc에서 구현하지 않은 상속받은 calcAdd 메소드를 사용했습에 주의하십시요.

결국 스위시의 프로토콜처럼 어떤 객체에 반드시 구현되어야 할(앞으로 사용 할 것임을 알리는?) 메소드를 먼저 선언한게 아닐까? 사용시에는 이것(Interface)만 보면 되겠지요.

 

2021년 7월 2일 금요일

Xcode 에서 command Line 실행파일위치

알고나면 아무것도 아닌데...

Xcode 에서 command Line 실행파일위치는?

즉, Swift , C ,C++ 등으로 생성한 실행파일의 위치는 어디인가?

나중에 터미널들에서 찾아가 실행하기위해서...

아래그림과 같이 찾아가면 됩니다.




해당 실행파일을 더블크릭하면 실행이되고, 
터미널에서 실행 할때는 통상 디렉토리까지 지정해주어야 실행됩니다.
필요하면 이전에 생성된 DerivedData 영역을 지워주면 좋을 것 같음. 

델파이 12.1이냐 11.3이냐?

 델파이가 12.1이 나왔습니다. 혹시 11.3버전의 커뮤니티버전이 필요하시는분이 있을 수 있을 것 같아 https://altd.embarcadero.com/.../RADStudio_11_3_esd_28... 와 이것 찾느랴 엄청고생함.