2017년 10월 31일 화요일

아이폰 복원 실패 해결("오류가 발생했기 때문에 아이튠즈가 누구누구의 아이폰을 복원할 수 없습니다.")

아이폰을 백업하고 나서 복구하려고 할때, 다음과 같은 메시지가 나오면서 복원이 안되는 경우가 있다.

"오류가 발생했기 때문에 아이튠즈가 누구누구의 아이폰을 복원할 수 없습니다."

해결방법으로 공장초기화를 해보거나 케이블을 바꾸거나 등 여러 방법이 있지만 다 안되는 경우에는 다음의 방법을 권해본다.

"Decipher Backup Repaire"툴을 사용해 보는것이다.
(https://deciphertools.com/decipher-backup-repair.html)
(http://blog.naver.com/PostView.nhn?blogId=luric&logNo=220993312472&parentCategoryNo=32&categoryNo=&viewDate=&isShowPopularPosts=true&from=search)


나도 해결방법을 찾아보다가 네이버 블로그에 있는 글을 보고 나쁘지 않은것 같아서 결제해보고 복구해보니..한번에 해결됐다.

가격은 29.99달러이며, 이 프로그램을 사용하고 복구가 안될 경우, 30일내 환불도 가능하다고 한다.

...복원 실패는 꽤 예전부터 있던 문제였는데... 애플은 아직도 해결을 못하고 있다.
...애플한테 여러모로 실망스럽다.

2017년 10월 12일 목요일

Brackets에서 Brackets SASS플러그인이 안될때.

brackets에서 sass를 쓰기위해 brackets sass 를 설치했는데, "cleanup" 혹은 "libsass bindings not found in..." 과 같은 오류가 날때 해결 방법.

"best solution? just downgrade the brackets app to 1.7 uninstall the new brackets and reinstall 1.7. just give it a try." (https://github.com/jasonsanjose/brackets-sass/issues/180)

brackets sass플러그인 git페이지에서 이슈항목에서 답을 찾을 수 있었다.

브라켓을 삭제하고 1.7을 설치해서 해보니 매우 잘된다.

2017년 7월 23일 일요일

괜찮았던 맥북 수리점.

숙대 뒷문 쪽인가..
상가 지하에 애플 제품 사설 수리점이 하나 있다.

아이폰이나 아이패드를 맡길일은 없었지만, 맥북은 몇차례 맡겼었다.
사장님과 이야기를 해보면 침수관련 사고가 많다고 한다.
내경우는 발열때문에 서멀좀 다시 바르고 펜 청소하다가 분질러 먹은 팬 교체작업을 받았었다.

비용은 혼자서고생하면서 알아본 노동을 대신하기엔 충분한 금액이었다고 생각한다.
...가게 이름이 기억이 안난다.

MacOS 터미널에서 gedit명령을 쓰고 싶다.

환경변수 gedit등록.

vim편집기로 .bash_profile열기
vim ~/.bash_profile 

vim편집기에서 다음을 추가.
alias gedit='open -a /Applications/TextWrangler.app'
/*
open -a 이후의 경로를 원하는 에디터 프로그램의 경로를 입력한다. 내 경우엔 텍스트랭글러를 애용하므로 텍스트 랭글러 경로로 잡았다.
*/
저장후 종료(:wq)

적용.
source ~/.bash_profile

실행(예시)
gedit textfile.txt

잘됨. 끝.

2017년 6월 23일 금요일

iptime nas에서 SVN세팅하기.

너무 욕심일지도 모르지만,
iptime nas관리툴에서 SVN을 설정하면,
개나소나 접근 가능한 SVN이 생성된다.
이상태로 쓰는건 문제가 있기 때문에,

다음과 같이 설정해서 쓰고 있다.

############ somesvn/conf/svnserve.conf 파일 ############
[general]
anon-access = none
auth-access = write
password-db = passwd
authz-db = authz
realm = MY SOURCE

[sasl]
#####################################################

############ somesvn/conf/passwd 파일 ############
[users]
dev1 = Anypassword1
dev2 = Anypassword2
design1 = Anypassword3
################################################
dev1, dev2, design1 계정을 만들었고,
각자 패스워드는 Anypassword1, Anypassword2, Anypassword3으로 했다.

############ somesvn/conf/authz 파일 ############
[aliases]

[groups]
worker = dev1, dev2, design1

[/]
@worker = rw
###############################################
작업자를 그룹으로 만들고,
작업자는 루트를 읽고 쓸 수 있게 했다.


이클립스나 기타 다른 개발툴에서 TAG와 BRANCH생성하려면 안될 것이다.
다음과 같이 TAG, BRANCH폴더를 만들어 줘야 한다.
참고로 iptime nas에서 SVN을 생성하면 파일시스템이 아닌 BDB로 저장되니 탐색기나 FTP로 접근해서 하는 시도는 의미 없을 것이다.(아마도..)

svn mkdir svn://mySvnServerUrlAnd:Port/mysvn/scratch_board/tags -m iNeedTags

브랜치도 만들어줘야 한다.
svn mkdir svn://mySvnServerUrlAnd:Port/mysvn/scratch_board/branches -m iNeedTags

끝~

안~~녀엉~~~

2017년 6월 5일 월요일

MacOS(OSX) Sierra(10.12.5) Wifi 문제.

http://osxdaily.com/2016/09/22/fix-wi-fi-problems-macos-sierra/
http://macnews.tistory.com/m/2374
외 다수의 블로그 내용 참조함.

아래의 내용은 첫번째 링크의 내용을 참고해서 작성했습니다.

1. 설정파일 삭제.
2. 네트워크 설정 변경.

1. 설정파일 삭제.

- 와이파이 끔.

- 파인더 혹은 터미널 등을 통해 다음의 경로로 이동.
    /Library/Preferences/SystemConfiguration/
- 다음의 파일 삭제.
com.apple.airport.preferences.plist
com.apple.network.eapolclient.configuration.plist
com.apple.wifi.message-tracer.plist
NetworkInterfaces.plist
preferences.plist

- 휴지통 비우기.

- 재부팅.

2. 네트워크 재설정.
- 시스템 환경설정 -> 네트워크로 이동.

- 위치 추가


- 추가한 위치 선택.

- 네트워크 -> 와이파이 선택 -> 고급버튼 클릭.

- TCP/IP에 DHCP임대갱신클릭
- DNS에 8.8.8.8과 8.8.4.4 추가.
- 하드웨어에 '구성: 수동', MTU: 사용자화 - 1453입력.





- 끝.

이 작업을 하기전에 SMC리셋과 PRAM소거등 여러 삽질이 있었다.


 사실 꽤 오래전부터 잘 안되긴 했었다.
 맥북을 제외한 윈도우 PC, 아이폰, 아이패드 들은 다 잘쓰는 와이파이가 갑자기 맥북에서만 안되는 일이 종종 있었는데 그때마다 공유기의 설정마법사를 통해 와이파이 설정을 새로하거나 아니면, 유선인터넷으로 바꿔서 쓰는 식으로 해결했었다. 원인을 찾아서 해결하기엔 다른 해야할 일이 많았기 때문이다.

 하지만 요즘엔 시간이 좀 있어서 더이상 공유기를 새로설정하는 식으로 문제를 우회해서 해결하고 싶지 않았다. 다들 쓰는 공용와이파이를 나만 못쓰는것도 매우 불편하기도 해서 제대로 문제해결을 해보기로 했다.

 시간이 다소 걸렸지만, 결국 문제는 해결됐다.
 검색하면 몇개의 포스팅이 나오긴 하지만 내가 포스팅하는게 늘 그렇듯 비슷한 글이 하나라도 더 있으면 이 문제를 겪는이에게 조금이라도 더 눈에 띌것 같으니 이렇게 포스팅한다.

 전체적으로 다음의 작업들을 시도했으며, 내 경우 이 작업들중 어느 한가지만 해서 해결된것 같진 않다.

 예전같으면 애플에 전화해서 문의를 하거나 버그리포팅을 하거나 했겠지만, 경험상 별 의미없다는걸 깨닳았기 때문에 그냥 넘어갔다.




2017년 2월 8일 수요일

가우스 전자를 보고 플랜Z를 생각해봤다.

뭐가 되었든 플랜z가 되려면 빚이 없어야 할것 같았다.
언제든지 훌훌 털고 일어나서 내방에서 먹고자거 숨쉬고 하는 비용을 최소로 만들 수 있는 상황일때 마음의 자유를 느꼈었다.

2017년 2월 4일 토요일

웹개발 한글파라미터 해결

보통 익스플로러에서 글자가 깨진다는 이슈로 접하게 된다.

별거 아니고 'GET방식 한글 파라미터'가 익스에선 깨지기 때문에 파라미터를 꼭 인코딩해서 보내야 한다.

javascript에서 예시.
...
window.location.href = "somepage.php" 
    + "?param1=" + encodeURIComponent(param1)
    + "&param2="+ encodeURIComponent(param2)
...
    
cs
encodeURIComponent 함수를 쓴 이유는 파라미터에 '&' 문자열이 포함될 경우 알아서 잘 처리해준다.


php 예시.
$pageUrl = "./somepage.php";
$pageUrl .= ("?param1=".urlencode($param1));
$pageUrl .= ("?param2=".urlencode($param2));
cs
가급적 꼭 파라미터별로 urlencode함수를 호출하는 것을 권한다.
상대주소인 경우 특히.

파라미터를 받아올때는 별다른 작업이 디코딩을 할 필요는 없다.
$param1 = $_REQUEST["param1"];
$param2 = $_REQUEST["param2"];
cs

꼭 작업중일때 이를 염두하여 다 개발해놓고 소스를 전부 뒤져가면서 urlencode함수와 encodeURIComponent함수를 여기저기 호출하러 다니지 말자.

나중에 한번에 작업하다보면 내가 PHP를 하고 있는지 javascript를 하고 있는지 햇갈리다가 꼭 에러를 내고 야근을 한다.



Android 원하는 페이스북 페이지로 연결.

별거 없어서 그냥 소스로만 남긴다.
내 경우에는 facebookNumericID와 facebookID의 차이를 몰라서, 조금 해맸다.

아래의 두 페이지를 참조함.
http://hashcode.co.kr/questions/1263/안드로이드-앱에서-페이스북-페이지-띄우는법
http://stackoverflow.com/questions/4810803/open-facebook-page-from-android-app
https://alinmiu.com/2016/01/16/launch-facebook-page-in-facebook-app-on-android/

혹시 사용하실 분은 꼭 주석을 읽고 사용하길 권장한다.
facebookNumericID가 뭔지 모르고 그냥 facebookID를 넣으면 나와 같은 시간을 허비하게 될것이다.

누군가의 야근을 줄였기를...

/**
 *
 * @param context
 * @param facebookID
 * @param facebookNumericID API를 통해서 가져온 Facebook ID 번호.(findmyfbid.com에서 FacebookID번호를 알 수 있다.)
 */
public static void goToFacebook(Context context, String facebookID, String facebookNumericID) {
    String facebookUrl = null;
    //페이스북 앱 유무.
    boolean isExistFBApp = false;
    try {
        PackageManager packageManager = context.getPackageManager();
        packageManager.getPackageInfo("com.facebook.katana"0);
        isExistFBApp = true;
    } catch (PackageManager.NameNotFoundException e) {
        e.getStackTrace();
        isExistFBApp = false;
    }
    //페이스북 Uri
    Uri fbUri = Uri.parse("https://www.facebook.com/" + facebookID);
    if(isExistFBApp){
        fbUri = Uri.parse("fb://page/" + facebookNumericID);
    }
    //실행
    Intent facebookIntent = new Intent(Intent.ACTION_VIEW);
    facebookIntent.setData(fbUri);
    context.startActivity(facebookIntent);
}
cs


리스트