Mojave intellij 2019.02/chrome/wifi 응답없음 현상

OSX버전의 intellij 2019.2 에서 발생

증상

  1. WIFI 접속 불가
  2. Chrome 응답없음
  3. intellij 응답없음
  4. 시스템 응답없음

시스템/주요 SW Version

  • MacBook Pro (15-inch, 2017)

    • Mojave 10.14.6
  • Chrome : 76.0.3809.100(공식 빌드) (64비트)

  • intellij : 2019.2

해결 방법

$ sudo rm -rf /usr/bin/git
$ brew install git

Operation not Permitted 으로 삭제 안될시 해결방법

SIP(System Integrity Protection; 시스템통합보안) 기능을 끄고 삭제하면 됩니다.

  1. 재부팅 후 CMD + R을 누르고 있으면 Recovery 화면으로 진입

  2. 상단 메뉴에서 터미널 선택

    $ csrutil disable
    $ reboot
  3. 재부팅후 위 해결 방법 실행

    $ sudo rm \-rf /usr/bin/git 
    $ brew install git
Posted by 다인,보리아빠
,

라즈베리파이를 이용한 사슴벌레 쉽게 키우기 스펙정리

회의자 : 나혼자

개요

나도 바쁘고 사슴벌레도 바쁘다.
그러므로 우리모두 스마트하게 먹고 자고 싸고 시간을 효율적으로 쓸수 있도록 사육 환경을 개선한다.

우선 순위별 TODO LIST

  • 온도조절 23~26도 유지
  • 습도조절 톱밥이 항상 촉촉하게 유지(습도는 어느정도일지 모르겠음)
  • 젤리리필 개충 식습관에 따라 일일 1개 또는 일주일에 한개 먹기도 함. = 다먹으면 리필하거나 오래되면 리필
  • 날파리제거 키우는데 상관없지만 날파리가 낌

기능스펙 정의

  • 온도를 체크한다
    온도 센서.

  • 팬을 동작시킨다.

    • 온도조절용 팬
    • 벌레잡는용 팬
      팬, 릴레이 모듈 필요, 방충망
  • LED를 켜준다.
    LED 필요.

  • 습도를 체크한다.
    습도 센서(대체로 온습도 센서).

  • 먹이구에 젤리가 비었는지 확인한다.
    적외선 초음파 센서

  • 나에게 Slack(등) 메신저를 이용하여 Notice해준다.
    슬랙봇 만들기

  • Slack을 이용하여 동작시킨다.
    슬랙봇 연결

  • 습도센서를가 유지 될수 있도록 물을 공급한다.
    촘촘히 구멍뚫은 호수로 뚝뚝뚝??? 또는 초음파 가습기 모듈

무엇으로 개발할 것인가?

Python?
node.js?

Posted by 다인,보리아빠
,

StringBuffer vs StringBuilder 성능 및 재사용

StringBuffer와 StringBuilder를 사용했을때 매객체생성과 기존 객체 재사용등의 방법으로 몇가지 돌려보고 시간을 뽑아 보았습니다.

결론부터 이야기하면 상황에 따라 다르긴 하지만 결론은

동기화가 필요한 경우 StringBuffer을 새로운 객체를 생성하는 것이 빠름.

동기화가 필요없는 경우 StringBuilder를 이용하여 setLength(0)을 이용하여 처리하는 것이 성능과 메모리 사용면에서 좋음.

테스트 코드

아래 기본 코드에서 StringBuffer와 StringBuilder를 테스트 하였음.

매 Loop에서 새로운 객체

        LocalTime startTime = LocalTime.now();

for(int i=0;i<100_000_000;i++){
StringBuffer sb = new StringBuffer();
for(int j=0;j<100;j++){
sb.append(j);
}
sb.toString();
}

LocalTime endtTime = LocalTime.now();
Duration duration = Duration.between(startTime, endtTime);
System.out.println(duration.getSeconds());

// StringBuffer : 107, j가 30일떄 : 34
// StringBuilder : 92, j가 30일떄 : 27

매 Loop에서 new StringBuffer(sb.length())

        LocalTime startTime = LocalTime.now();
StringBuffer sb = new StringBuffer();

for(int i=0;i<100_000_000;i++){
for(int j=0;j<100;j++){
sb.append(j);
}
sb.toString();
sb = new StringBuffer(sb.length());
}

LocalTime endtTime = LocalTime.now();
Duration duration = Duration.between(startTime, endtTime);
System.out.println(duration.getSeconds());
// StringBuffer : 104, j가 30일떄 : 35
// StringBuilder : 82, j가 30일떄 : 23
// sb = new StringBuilder(sb.capacity()); : 85, j가 30일떄 : 23

매 Loop에서 버퍼 사이즈 변경으로 인해 재사용 (sb.setLength(0);)

        LocalTime startTime = LocalTime.now();
StringBuffer sb = new StringBuffer();
for(int i=0;i<100_000_000;i++){
for(int j=0;j<100;j++){
sb.append(j);
}
sb.toString();
            sb.setLength(0);
}

LocalTime endtTime = LocalTime.now();
Duration duration = Duration.between(startTime, endtTime);
System.out.println(duration.getSeconds());
// StringBuffer : 264, J가 30일떄 : 75
// StringBuilder : 78, J가 30일떄 : 22

Posted by 다인,보리아빠
,