JAR 형식은 header검색을 하는지 앞에 쓰레기값이 있어도 된다.
이를 이용해 shell script와 JAR를 연결시켜 진짜 executable한 jar를 만드는 법을 설명
2025 on Tumblr: Trends That Defined the Year
taylor price
Jules of Nature

if i look back, i am lost

No title available

Andulka
AnasAbdin
Xuebing Du

No title available
Game of Thrones Daily
Peter Solarz
No title available
Claire Keane
Monterey Bay Aquarium
Sade Olutola
trying on a metaphor
occasionally subtle

Janaina Medeiros

shark vs the universe

❣ Chile in a Photography ❣
seen from South Africa
seen from United States
seen from United States

seen from United States

seen from United States
seen from Romania

seen from United States
seen from Indonesia

seen from United States
seen from Latvia
seen from United States
seen from United Kingdom

seen from United States
seen from Türkiye
seen from Chile
seen from United States

seen from United States
seen from Italy

seen from United States

seen from Australia
@call-151
JAR 형식은 header검색을 하는지 앞에 쓰레기값이 있어도 된다.
이를 이용해 shell script와 JAR를 연결시켜 진짜 executable한 jar를 만드는 법을 설명
목차 - 스위프트 프로그래밍 언어
훑어보기
안녕, 값
제어 흐름
함수와 클로저
객체와 클래스
열거형과 구조체
프로토콜과 확장
제너릭
언어
아직 없엉
apply plugin: 'java'
백년만의 포스팅. 주위에 java 개발자가 많아서 요즘 유행하는 gradle 코드 한 줄 이해해 보려 함.
간단한 build.gradle의 첫 줄 apply plugin: 'java' 의 독해임
build.gradle은 별도의 문법이 있는건 아니고 그냥 groovy script임. 따라서 java롭게 읽으면서 해석.
groovy는 문자열에 '와 "이 모두 가능함
스크립트언어에선 흔한 일이지만 java speaker를 위해 변환하면
apply plugin: "java"
apply의 정체는 Project.apply(Map<String,?>)임. 스크립트 첫 line에 println "this is "+this 를 추가해 보면 확인 가능.
groovy는 ambiguous 하지 않으면 메소드 호출에 괄호 생략가능. java처럼 보려면
apply(plugin: "java")
groovy는 세미콜론 생략 가능
apply(plugin: "java");
메소드 호출 문법중 named parameter passing이 있는데 사실은 key가 String인 Map을 넘기는 것임. groovy에서 map은 꺽쇠 문법을 사용해 초기화가 간단해 짐. 조금 풀어쓰면
apply([plugin: "java"]);
꺽쇠에서 key에 괄호로 감싸지 않는 이상 variable name이 아니고 string literal임. 따라서
apply(["plugin" : "java"]);
로 써도 됨. groovy의 간편 초기화를 버리고 java 문법만 쓴다면
Map param = new HashMap();
param.put("plugin", "java");
this.apply(param);
groovy는 대부분의 java문법을 그대로 지원하기 때문에 apply plugin: 'java' 대신 위의 3줄을 삽입하여도 잘 동작함
새벽에 일어나서 어제 사온 조엘 스폴스키의 ‘똑똑하고 100배 일 잘하는 개발자 모시기’ 를 읽었습니다. 처음 조엘의 다른 책을 읽었을때는 감명을 받았고 최근에 출시된 StackOverFlow 라던가 Trello 같은 웹서비스를 보면 책의 내용이 더 신뢰가 가네요.
[요약]
1. 능력있는 개발자와 평범한 개발자의 차이는 매우 크다. 2류 작곡가 10명을 모은다고 하더라도 모차르트의 곡과 같은 수준의 음악이 나오는것은 아니다
2. 최고의 근무 조건 구비 -> 최고의 프로그래머 채용 -> 최상의 프로그램 개발...
번개장터의 @hbright7 입니다. 어제는 Deview 2013 에서 구글 개발자로 계신 분의 이야기를 듣고 왔는데 혼자 알고있기에는 아까워서 여기에 공유합니다.
코드 리뷰
커버리지가 낮으면 커밋할 수도 없다.
리뷰에서 팀원간에 의견 충돌 발생시에 매니저가 결정내린다.
유닛 테스트가 충분하지 않은 경우 커밋이 불가능.
Technical Dept - 꼼수를 쓰면 결국 더 큰 대가로 돌아오게 된다.
코딩 스타일이 맞지 않아도 시스템적으로 커밋이 불가능.
소스코드 관리
구글 모든 제품의 소스코드를 저장소 딱...
Paint.FILTER_BITMAP_FLAG
dexdex - multidex 도우미
Facebook android app의 엔지니어링 삽질기는 씁쓸하지만 현실적으로 dex의 16bit 제약은 너무 가혹하다. 아마 intent권장 차원에서 결정된 사항이겠지만 좋아 보이는 라이브러리를 업어오면 부양가족이 따라오는데 깜놀한다. ('역시 C/C++이 답이다'라느니 하는 의견이 들린다)
글에선 class loader hack이랑 linear allocation hack이 나오는데 뒤에껀 도저히 이건 아니다 싶어서 못하겠더라.
method나 field 수 초과로 고생한다면 도움이 될 수 있습니다(더 많은 문제에 부딪힐지도 ^^)
dexdex on GitHub
Deque
Deque는 Double Ended Queue, 즉 '양방향 큐'를 뜻한다.
en-queue의 반대인 de-queue랑 혼동되기 때문에 Dequeue로 쓰지 않고 Deque라고 쓰며 [데크]라고 읽는다.
Deque는 Queue도 만족하는 interface이기 때문에
ThreadPoolExecutor의 Queue로 사용하면 FIFO가 아닌 형태로 사용 가능하다.
그런게 왜 필요한지는 패쓰..
Wikidpedia - Double-ended queue
munge - Java와 Preprocessor 이야기
"Java에는 왜 Preprocessor가 없는가?"는 아주 오래된 질문.
대세를 이루는 답은 "언어의 단순성을 위한것이며 constant primitive를 이용하면 compiler optimization 과정에서 prune되니 필요 없다"는 것이다.
하지만 늘 그러하듯 복잡함을 유발하는 것은 남용하지만 않고 적절히 사용하면 유용한데 이미 java preprocessor는 여러가지가 나와있다.
그 중 Munge라는 프로젝트는 재미있게도 preprocessor가 필요없다던 Sun microsystems에서 만들어졌다.
Munge의 아빠인 Tom ball의 글(Munge: Swing's Secret Preprocessor)을 보면 Swing을 개발하면서 Graphics를 사용하는(Java 1.1) 버젼과 Graphics2D를 사용하는 버젼(Java 2)를 모두 지원하기 위해 munge를 만들었단다.
언어에서 공식지원을 안하니 주석문에 지시자를 넣어야 한다.
이제 munge를 수행시킬때 'JDK1.2'라는 symbol을 설정하면 else[JDK1.2] 윗부분이 사용되거 else이하는 제거되는 식이다.
고맙게 maven plugin도 있다. 사용법도 쉽고 땡큐다.
P.S) 그런데 Sun에 다녔던 이 형은 지금 뭐할까 궁금할텐데 당연히도(?) Google에 다니고 얼마전 반짝하려다 만 J2Objc가 Tom아저씨의 작품
[상상] cover가 표시되는 양면 e-ink reader
(출처:구글검색)
한국이나 일본처럼 지하철 이용도가 높은 곳에서는
옆자리 남학생이 하는 애니팡을 보고 나도 설치해 본다.
맞은편 아가씨가 읽는 '로마인 이야기'를 보고 '저거 재밌나?'라고 생각한다.
혹은 카페베네의 훈남이 읽는 책도 호기심이 생길 것이다.
그런데 e-book은 책 홍보가 안되는 문제가 있다. 뒷판의 'Kindle'이나 'SAMSUNG'로고만 보여줄 뿐.
킨들이 screen saver에 광고를 넣는것도 좋지만
e-ink는 광고 뒷면에 현재 읽는 책 cover를 틀어둔다고 전기를 소모하는 것도 아니니(e-ink는 화면전환에만 전기를 소모한다) 양면으로 만들고 활용하는 방안을 생각해 볼 수도 있을듯.
물론 '케이스를 사용하면 어쩔 것이냐?', '성인물을 보려면?', '단가를 어쩔꺼냐'등 실제 제품이 나오기 까지는 더 많은 고민이 있을테지만..
스티커 모음(네이버 밴드, 다음 마이피플)
brown_and_cony (retina)
cherrycoco (retina)
dailylife (retina)
moon_and_james (retina)
밴드짱!!
P.S) 살펴보니 마이피플 스티커도 웹에 공개되어 있네요. 한 페이지에 모았습니다.
PS2) 밴드 스티커 손으로 다 등록했습니다. (1~36)
eclipse, maven, android의 3단 콤보를 쓰다가 'Un-recognised maven maven project type' 오류가 발생하는 경우가 있다.
이는 m2e-android의 문제로 보이는데 multi-module maven project에서 apklib을 dependency로 갖는 project가 있을때 발생한다. (간단한 예제만 만들어봐도 나타남)
m2e-android를 살짝 수정했는데(파일하나 수정) 적어도 내 경우는 잘 되는듯 보인다.
설치절차는
1) 설치된 Android Configurator for M2E(m2e-android) 제거
2) eclipse 종료
3) $ECLIPSE_HOME/dropins 에 여기의 두 파일 복사
4) eclipse 재시작 후 plugin version 확인(0.4.3.2013 어쩌구 여야 함)
사실 난 IntelliJ를 쓰기때문에 이런 문제 없다는... 갑시다 JetBrains로..
안드로이드에서의 debug build란?
'debug build냐?' 물으면 모호한 면이 있어서 잠시..
기본적으론 release build의 반대말이 debug build.
javac 수준 : javac 실행시 debug정보를 제거하였는가(-g:none)? maven-compiler-plugin에선 debug 속성으로 지정.
Code signing 수준 : debug key 혹은 release key로 sign 했는가에 따른 분류. 안드로이드에서 debug build는 이를 칭하는 경우도 많다. android SDK에서 제공하는 ANT script에는 debug 라는 target이 제공된다.
AndroidManifest.xml : manifest 파일의 application element에 debuggable 이라는 속성의 on/off 여부. 이 값이 true면 user mode(eng mode의 반대) ROM에서도 app이 debugging가능하다.
android, maven 관련 간단 용어 점검
비슷한 이름이 많아서 잠시 정리
android-maven-plugin : maven에서 android개발을 지원하는 plugin. eclipse와는 직접적인 관련이 없다. 초기에는 이름이 maven-android-plugin이었지만 'maven plugin들은 다들 xxx-maven-plugin이라고 이름 붙인단다' 라는 의견을 받아들여 개명함
m2eclipse : maven 지원을 위한 eclipse plugin. 줄여서 m2e라고 부른다. Eclipse Juno에는 내장되어있다. 직접적으로 android와는 상관이 없다.
m2e-android : m2e가 일반적인 maven기능을 eclipse에 추가한다면 m2e의 plugin이라 볼 수 있는 이 모듈은 android 지원을 추가한다. m2e-android configurator라고도 하고 m2e-android connector 라고도 한다.
아기와 아이패드
아직 말이 안통하는 아기가 있으면 아기가 패드를 밟고 서 있는 경우가 흔함을 알아야 한다.
난 Kindle DX Graphite를 쓰고 있었는데 아기가 밟아서 망가졌다. 지금은 iRiver Story HD를 쓴다.
iPad 2가 있는데 방에서 나와보면 아기가 액정을 늠름하게 밟고있다. 망가지면 Retina급의 뭔가로 교체하겠지
신제품을 사고픈 신혼 부부들은 아기를 만드시길
안녕하셔요 마이컴
어렸을때 집에서 마르고 닳도록 보던 책인데 몇번을 찾으려 하다가 소중한 사진을 발견
출처) 네이버 카페 - MSX는 구닥다리
이 책의 특징은 '안녕하세요'가 아니고 '셔요'라는 점이다.
저 책 말고 프로그래밍 관련 책이 한 권 더 있었는데 기억이 잘 안남. 삼보에서 출판했던거 같기도 하고. 아마 BASIC에 관한 책이었...
내용도 아주 재밌는데 정말 다시 보고 싶다능..
해 보지 않고 어떻게 아니?
나도 내 뜻을 관철하기 위해 종종 해버리곤 하는 말이지만 사실은 참 안 좋은 말.
동전이 던져서 누울지 일어설지 안 해보고 어떻게 아냐고 말하는 사람은 없다.
전문가와 아닌 사람의 차이는 저런 경우의 감의 차이가 아닐까?
비전문가는 해 봐야 안다며 안 해 보고 포기하지말라고 쉽게 말해버린다.
경험이 많을수록 감이 생기고 이걸 무시하면 안된다. 일억번 던지면 서지 못하라는 법 없냐는 말은 멍청한 생각이다.
라고 생각함.. :)