기본 콘텐츠로 건너뛰기

7월, 2015의 게시물 표시

Writing in English

  I wrote twenty-one essays in English at this blog. I felt ashamed when reading my writings. There are many errors in grammar, and misspelling. More over, the length of essays is very short than when writing in Korean. I felt I became a elementary school boy who begins to learn how to writing.(The shortage of writing is for my poor english not my poor head.:) I should work hard to polish out, and I will keep writing in English by the time at the level of writing in Korean.   God bless me!!!

Android WiFi Direct vs iPhone MultiPeer Connectivity

  Our company added MultiPeer Connectivity to the i Phone client of  Whoopee . We added already WiFi Direct to the  Android client of Whoopee . Both features are not easy to manage. I wrote about the headache of WiFi Direct . MultiPeer Connectivity has also some problems about session. It doesn't work properly when lot of peers are trying to connect. and when working with WiFi bonjour.   According to the both experiences of WiFi Direct and MultiPeer Connectivity, the latter is somewhat convenient for programming and also using it. MultiPeer Connectivity provides all APIs for searching, connecting, sending, and receiving easily, the error rate of searching and connecting  is very lower than WiFi Direct, and there is happily, No System Dialog!!!   I think WiFi Direct is little short for commercial products than MultiPeer Connectivity.

Crab Basket, Wealth and Technology

    You need a cap for a basket where a crab is, but you don't need one for a basket where are  lots of crabs. Because one crab climbs to the top, others pull down it with their legs, so none of them could go away.     Today, I read a article about Kim Young Man, a master of Origami, who was once very famous in TV Show, but recently not shown on TV at all. It says some of Korean argue that he owns a foreign car. In consciousness of them, a old origami man should not drive a expensive foreign car. Or the education of Literature in Korea is very at the high level, they know the Balzac's word, "Behind every great fortune there is a crime".(Of course, it is very difficult to find the country where this word fits so perfectly.)     This article reveals two special features of Korean society. First, like Crab basket, people are timing and jealousy about other's success and richness, and drag down in the same oven, not doing a just evaluation and conceded celebration.

Being A Hacker and Startup Culture

  In Korea, the word, "Hacker' is used only in a narrow sense, who is do something for computer security, or it may be more known as an institute of English. But I wish t his definition of what is a hacker is more widespread in Korea.   As more I understand What is a hacker, the more I come to conclude that a startup should be founded by hackers. Most of the startup's founders want to build the strong culture of their company. But it is difficult to define a culture of the company and it is more difficult(Is there a word meaning more difficult?) to settle it.  I think if a startup is composed by hackers, there is no need of intentional effort to build a culture. Because there already will be the culture of hacker and that is more powerful than any others.

Old Man's Journey to Learning LISP

  I have a bad habit of buying many books even I don't have time to read.(I'm an avid buyer not a reader). The one of books in such case is 'Hackers and Painters' (Paul Graham). I read it recently though bought long ago. I think It's good to read for a startup.(I like the book of Joel Spolsky too. There is an interesting  article  for Joel and Paul.)   In the book, Paul Graham emphasizes the importance of a programming language to winning in the competition, and says LISP is the one.   I have met LISP in the graduate but didn't pay attention at it. But having get old, I start to learn LISP with SICP(Structure and Interpretation of Computer Programs). I hope this journey will finish with success.

The security system of WHOOPEE

  Recently, the security of SNS is hot issue: Korea Government's Censorship of Kakao Talk and Korea National Intelligence Service's purchase of hacking program.   We wanted to make Whoopee as the most secure app. Whoopee use SSL for network. Whoopee doesn't needs Cloud and doesn't leave any log at the server.   Visit the following link for more. https://medium.com/@lhsg/the-security-system-of-whoopee-35db0a24db69

The best way to share data between activities in Android

  When programming Android, the question that what is the best design pattern for this problem is always in mind. Among the questions, it is most common that the best way to share data between activities. There are many solutions for this question.( http://stackoverflow.com/questions/4878159/android-whats-the-best-way-to-share-data-between-activities ) I usually use a singleton class of the solutions.

Android Design Support Library - CollapsingToolbarLayout

  I have tried add CollapsingToolbarLayout to Pop Photo Album . But  Android Design Support Library has many bugs, and CollapsingToolbarLayout has one.   If It is used with transparent status bar and transparent navigation bar, CollapsingToolbarLayout doesn't work. As reported by others, in the device with Android 5.0 tool bar positions over the status bar.( this has a fix )   And if a transparent navigation option is set, It overscrolls as much as the size of transparent navigation bar in Kikat.   I tried with some code by googling to fix it but failed.  I decided to wait the next version with bug fix.

Android Studio Private Library Import Method

When importing custom modules in android studio, they are copied into the project folder. If you want the original library project to be imported to the project without copy, set as follows. In settings.gradle,   include 'custom-library'   project(':custom-library').projectDir = new File(settingsDir, 'relative/path/to/custom/library') In builde.gradle of App,   compile project(':custom-library')

Android Studio ProGuard and remove Log

If to remove Log.x for release, set ProGuard in build.gradle as follow proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' and add those to proguard-rules.pro   -assumenosideeffects class android.util.Log {       public static *** d(...);       ..   } Be careful, assumenosideeffects  make effect at optimization level, so you should use proguard-android-optimize.txt instead proguard-android.txt

Android WiFi Direct

  We have added Whoopee (the file transfer app,  mobile to mobile, mobile to pc and,  pc to mobile) a new feature of WiFi-Direct. We suffered from fragmentation of Android in WiFi-Direct. (Doesn't Google know the problems or they just ignore them?)   In KiKat, there are NO_SERVICE_REQUESTS problem. This can't be solved without resetting the WiFi connection. But even if NO_SERVICE_REQUESTS happens, the connection between peers can be made successfully. And more strange, if successful connection has been made, NO_SERVICE_REQUESTS problem goes away.(-.-) In UX, the system invitation dialog shows when it is connected first time. We can't control this according to our scenario. If two devices have been connected ever, when they enable WiFi-Direct, and find each other, they connect each other automatically. This also, is out of our scenario. WiFi-Direct is good technology but needs time to mature. Useful Link for WiFi-Direct     http://www.drjukka.com/blog/wordpress/?