2020년 5월 2일 토요일

Heic to jpg 변환기 Mac Automator를 활용해서 만들어보기.

Heic to jpg 변환기 Automator를 활용해서 만들어보기!!

우선 이 글은 기본적인 shell script를 이해하는 분들이 활용하기 매우 좋습니다.

아이폰의 설정 - 카메라 - 포맷 분을 보면 아래와 같습니다.



아래와 같이 설정이 된상태로 맥으로 사진을 전송하면 *.heic의 파일로 보내지는데 이는 jpg에 비해서 호환성이 좋지 않습니다.


하지만 고효율성의 옵션은 핸드폰을 최적의 상황으로 유지하는데 좋은 선택이므로 이를 우회하기 위해 맥안에서 이를 해결하기 위해 automator를 활용해 보았습니다.

추가적으로 brew를 이용해서 imagemagick을 설치했습니다.



brew를 설치하는 방법입니다.


ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" < /dev/null 2> /dev/null

brew install imagemagick


먼저 automator를 실행한 다음에 응용프로그램을 선택합니다.



그리고 보관함의 목록중에서 Finder 항목 요청을 가져옵니다.
그리고 시작 부분에서 *.heic 이미지들이 담겨져 있는 폴더를 가져옵니다.
유형은 폴더를 선택합니다.


다음은 쉘스크립트 실행을 가져옵니다.
그리고 아래의 코드를 집어 넣습니다.

#!/bin/bash
dir="$@"
cd "$dir"
shopt -s nocaseglob
for f in *.heic; do
echo "Converting $f"
/usr/local/bin/mogrify -format jpg $f
done
mkdir $@/changed
mv *.jpg $@/changed
마지막으로 알림 표시를 진행합니다.
제목에는 작업 완료 이후 보이는 제목 부분과 팝업되는 메시지 부분을 작성해서 기입하면 됩니다.
작업이 완료되면 *.heic 이미지가 jpg로 변환되어서 changed라는 폴더 이름 아래에 생성되게 됩니다.

감사합니다.

2020년 1월 19일 일요일

[매일프로그래밍] 정수 배열이 주어졌을 때, 배열의 원소의 값을 자신을 제외한 다른 원소들의 곱으로 변경하시오.

[매일프로그래밍 ]
코딩테스트 01/19/2020


# 하기 문제의 저작권은 매일프로그래밍 측에 있습니다.

안녕하세요, 매일프로그래밍 이번주 문제입니다.
정수 배열이 주어졌을 때, 배열의 원소의 값을 자신을 제외한 다른 원소들의 곱으로 변경하시오.

단, 나누기 연산은 수행하지 않습니다.

Input: [1, 2, 3, 4, 5]
Output: [120, 60, 40, 30, 24]

Input: [5, 3, 4, 2, 6, 8]
Output: [1152, 1920, 1440, 2880, 960, 720]


풀이 [ 파이썬 ]


2019년 2월 13일 수요일

Putty 폰트 및 테마 변경 // 가독성있는 화면 설정하기

기존 Putty를 사용하면 가독성도 떨어지고 폰트나 테마가 과거 90년대 초 윈도우의 향수를 느끼게 해줘서 썩 사용하고 싶은 맛이 들지 않는다.

그래서 하기와 같은 방법으로 조금 만져주면 쓸만한 터미널 툴이 된다.

먼저 폰트를 변경해준다.
putty를 사용하는 분들이 개발자들이라고 가정하여 설명하면 본인은 기본 폰트도 좋아하지만 코드 가독성이 좋은 Hack 폰트를 다운받아 사용중이다.

관심이 있으면
https://sourcefoundry.org/hack/
도메인을 참조하면 된다.




이후 풀스크린으로 보기 편하게끔 Behaviour 부분의 이부분을 체크한다.



이후 이쪽을 들어가서 색상을 참조하면된다.
불편하지만 일일이 클릭해서 색상을 변경하면 된다. 밑에 있는 부분을 전부 바꿔줘야 한다.





Putty RGB colors/options for the Zenburn color scheme are as follows -
  • Default Foreground - 255/255/255
  • Default Background - 51/51/51
  • ANSI Black - 77/77/77
  • ANSI Green - 152/251/152
  • ANSI Yellow - 240/230/140
  • ANSI Blue - 205/133/63
  • ANSI Blue Bold -135/206/235
  • ANSI Magenta - 255/222/173 or 205/92/92
  • ANSI Cyan - 255/160/160
  • ANSI Cyan Bold - 255/215/0
  • ANSI White - 245/222/179


출처 : http://looselytyped.blogspot.com/2013/02/zenburn-pleasant-color-scheme-for-putty.html





이제 가장 중요한 부분.
이걸 하지 않으면 모든설정을 매번 다시 해야한다.
Session - Save를 꼭 진행하자!







2018년 8월 5일 일요일

STL 사용법 : Vector 2차원 설정, 반복자 Iterator 사용법

먼저 Vector와 Iterator 를 사용하는 방법은 하기와 같다.

#if 1
#include <iostream>
#include <vector>
using namespace std;

int main(void){
vector <int> viTest(5, 0); // vector 5개 공간 선언 및 0으로 초기화 진행.


vector<int>::iterator viIter = viTest.begin();

for (viIter; viIter != viTest.end(); viIter++){
cout << *viIter << endl;
}



}
#endif

실행결과 :
0
0
0
0
0


Vector의 2차원 설정방법은 하기와 같다.

#if 0
#include <iostream>
#include <vector>
using namespace std;

int main(void){
//      vector<vector <int> > vi;  // 이런식으로 해도되지만
// 안쪽 괄호의 경우 >>형태로 입력되면 연산자로 인식이 되는 경우 && 가독성이 떨어지므로, 띄어쓰기를 쓰는것이 좋다.

vector < vector<int> > m_vi(5, vector <int>(5,0)); //이렇게 선언과 동시에 초기화를 진행하는 것을 추천한다.
// 위의 코드는 m_vi[5][5] = {0,}; 과 같은 코드이다.

int n, m = 0;
cin >> n >> m;

vector < vector<int> > inputArrayTest(n, vector<int>(m, 0)); // 이 코드는 inputArrayTest[n][m] = {0,} 과 같은 코드이다.

for (int a = 0; a < n; a++)
{
for (int b = 0; b < m; b++)
{
cin >> inputArrayTest[a][b];
}
}
// 위와 같은 방법으로 접근이 가능하다.

for (int a = 0; a < n; a++){
for (int b = 0; b < m; b++){
cout << inputArrayTest[a][b] << " ";
}
cout << endl;
}
}

#endif

2018년 7월 9일 월요일

CentOs TeamViewer Application RPM Install Error: libc.so.6 is needed by … issue


Application RPM Install Error: libc.so.6 is needed by …



CentOs 환경에서 teamViewer을 설치하기 위해 rpm파일을 팀뷰어 홈페이지에서 다운로드를 진행한다.

그리고 겪는 문제는 



위와 같은 rpm 의존성 문제가 생겨나게된다.

(needed by .... 이런 문구가 바로 의존성 문제이다. 바로 위에 Failed dependencies라고 적혀져 있다.)

rpm특유의 의존성을 해결하기 위해선 여러가지 솔루션들이 존재한다.


1. 일반적인 패키지 설치
# rpm -ivh [패키지파일]

위와 같은 경우 command는
rpm -ivh teamviewr-suse_13.1.8286.x86_64.rpm 

2. 설치되어 있는 패키지 교체
# rpm -ivh [패키지파일] --replacepkgs

위와 같은 경우 command는
rpm -ivh teamviewr-suse_13.1.8286.x86_64.rpm --replacepkgs


3. 의존성 에러 존재 시 무시하고 설치할 경우
# rpm -ivh [패키지파일] --nodeps

위와 같은 경우 command는
rpm -ivh teamviewr-suse_13.1.8286.x86_64.rpm --nodeps


4.의존성 에러 존재 시 의존성이 있는 패키지들을 먼저 설치한 후 자동으로 설치

- 첫번째 방법 : 에러가 나는 의존성을 따라가며 설치하기
- 두번째 방법 : rpm -ivh [패키지파일] --aid


5. 기존 패키지를 업그레이드 하기(설치되어 있지 않은 경우 rpm -ivh 옵션과 동일함)
# rpm -Uvh [패키지파일]

위와 같은 경우 command는
rpm -Uvh teamviewr-suse_13.1.8286.x86_64.rpm 



이러한 rpm 설치의 단점은 위와 같은 teamviewer의 설치시에는 단순히 의존성파일이 3개밖에 없었지만 향후 다른 프로그램들을 설치할때 어마 무시하게 많은 rpm패키지들을 설치를 해야만 문제가 해결되는 경우가 있다. 그래서 데비안 계통의 OS를 사용하지 않는 개발자들도 늘어나고 있다고 한다.

어찌되었든, 위의 문제는 --nodeps 명령어 (의존성 에러를 존재하고 진행) 하여 정상적으로 해결하였다.

2018년 7월 5일 목요일

SW Expert 1217. [S/W 문제해결 기본] 4일차 - 거듭 제곱 D3

※ SW Expert 아카데미의 문제를 무단 복제하는 것을 금지합니다.

다음과 같이 두 개의 숫자 N, M이 주어질 때, N의 M 거듭제곱 값을 구하는 프로그램을 재귀호출을 이용하여 구현해 보아라.

2 5 = 2 X 2 X 2 X 2 X 2 = 32

3 6 = 3 X 3 X 3 X 3 X 3 X 3 = 729

[제약 사항]

총 10개의 테스트 케이스가 주어진다.

결과 값은 Integer 범위를 넘어가지 않는다.

[입력]

각 테스트 케이스의 첫 줄에는 테스트 케이스의 번호가 주어지고 그 다음 줄에는 두 개의 숫자가 주어진다.

[출력]

#부호와 함께 테스트 케이스의 번호를 출력하고, 공백 문자 후 테스트 케이스에 대한 답을 출력한다.

입력
1
9 8
2
2 8
........

출력
#1 43046721
#2 256
.......



SW Expert Academy 3431. 준환이의 운동관리

※ SW Expert 아카데미의 문제를 무단 복제하는 것을 금지합니다.

최근 경도비만 판정을 받은 준환이는 적절한 몸을 유지하기 위하여 1주일에 L분 이상 U분 이하의 운동을 하여야 한다.

준환이는 이번 주에 X분만큼 운동을 하였다.

당신은 준환이가 제한되어 있는 시간을 넘은 운동을 한 것인지, 그것이 아니라면 몇 분 더 운동을 해야 제한을 맞출 수 있는지 출력하는 프로그램을 작성해야 한다.


[입력]

첫 번째 줄에 테스트 케이스의 수 T가 주어진다.

각 테스트 케이스의 첫 번째 줄에는 세 정수 L, U, X(0≤ L ≤ U ≤ 107, 0 ≤ X ≤ 107)가 공백으로 구분되어 주어진다.


[출력]

각 테스트 케이스마다 I가 필요한 양보다 더 많은 운동을 하고 있다면 -1을 출력하고, 아니라면 추가로 몇 분을 더 운동해야 하는지 출력한다.
 
------------------

D3 레벨에 맞지않는 문제이지 않았나 싶다. 


Heic to jpg 변환기 Mac Automator를 활용해서 만들어보기.

Heic to jpg 변환기 Automator를 활용해서 만들어보기!! 우선 이 글은 기본적인 shell script를 이해하는 분들이 활용하기 매우 좋습니다. 아이폰의 설정 - 카메라 - 포맷 분을 보면 아래와 같습니다. ...