Category Archives: Life

Memory of R Programming and SAS

During my tenure as a CTO for the pharmaceutical company, I had to deal with both small and large datasets for biostatistics. The gold standard for data analysis in pharmaceutical is SAS since FDA reviewers use it. Although SAS is great and I got the basic training as seen below, the cost is rather higher than I liked.


When I heard about R project through a colleague back in 2003 or 2004, I had to jump on it and find out. After evaluating what it is and where it’s headed, I instantly loved it. It was very early in development, but I knew that this would be awesome. In fact, I love it so much that I became a supporting member (see below).

R Members

I don’t list R anywhere in my CV nor rants/blogs I post since it’s been long long time and I don’t have the expertise to be comfortable with it. But now that I have to deal once again with a large dataset on my private projects, I’ll pick it up again. There may even be a video diary of my learning. ;)

Want My Help?

I’ve tried a site where people can ping me for questions and pair up. This got annoying real fast as I was getting pinged at all hours, especially during my pomodoro.

Rather than using a service, I’m donating 1 hour each week to pair up with anyone needing help with Ruby, Objective-C, or any other programming. The only request I have is that I’ll be recording the sessions for others to share. If I don’t know the answer, we’ll go through the process of finding out the solution where we don’t just copy and paste answers from Stackoverflow.

If you’re interested, please email me at my name at this domain with [selfthis] in the subject line along with your name, question/subject, and available time . I’ll reply with the time. Let me know if you absolutely need the instant gratification.

We can pair up using VNC, Skype, or Hangout.

The reason I’m doing this is to give back something for all the things the community has given me, there aren’t any other motivation other than the fact that hopefully I helped someone and his/her benefited from my existence.


It’s hard to believe how much things have changed since I took the position at where I work. I haven’t been actively screencasting, something I enjoyed knowing others find them useful or entertaining. My promise made to myself to actively learn someting new also haulted. Working 16 hours a day took its toll on me and especially my family.

That all stops starting next week.

I’m going back to consulting and will only take on a position where I can balance both work and life. That does not mean I’ll stop pouring my heart into the work – I’m simply not built that way. But work little smarter and better rather than working unproductively without rest. That means that I won’t cater to constant panic of others that are not really something to panic about.

I will be taking a short rest to recharge my battery and will actively make contents and contribute to the communities that helped me so much, so please keep you eyes on this blog.

If you need a polyglot, please don’t hesitate to ping me at joon at this domain.

Creating Self-Contained Google Chrome App

Sick of opening different Google Chrome windows for work and private accounts? I use following script to create a separate standalone Chrome app for that. Take a look at the code and give it a spin. This is for Mac ONLY!!!


echo "What should the Application be called (no spaces allowed e.g. GCal)?"
read inputline

echo "What is the url (e.g."
read inputline

echo "What is the full path to the icon (e.g. /Users/username/Desktop/icon.png)?"
read inputline

chromePath="/Applications/Google Chrome"

# various paths used when creating the app

# make the directories
mkdir -p "$resourcePath" "$execPath" "$profilePath"

# convert the icon and copy into Resources
if [ -f "$icon" ] ; then
sips -s format tiff "$icon" --out "$resourcePath/icon.tiff" --resampleHeightWidth 128 128 >& /dev/null
tiff2icns -noLarge "$resourcePath/icon.tiff" >& /dev/null

# create the executable
cat >"$execPath/$name" < "$plistPath" <


Where Are You From?

Personally, it’s extremely difficult to find humor in this video when you have to deal with daily. Same goes for my friends and family. This may be the reason why it’s hard for me to think of myself as an American although it’s my nationality and home.

Another annoyance is when someone asks me how’s wherever a place in Korea is. I grew up in NJ – that should be enough punishment.

Google I/O 2014

One conference I really enjoy each year is Google I/O. This year, it was really intense geeking out for two days.

Although big sessions are available on YouTube, the primary reason for me to attend is meeting the engineers to get technical insights. That’s the value of attending the conference physically. This year, they had “Box Talks” that were intimate and really get ton of information. Below is a photo of a screen I captured as a note in Go testing Box Talk.


The only complain I really have is that Box Talks had really tight space and was getting really hot at some points. In this aspect, WWDC is better.

I really enjoy attending developer conferences, but with Apple and Google, there are too many non-developers due to product announcements that affects Wall Street.

Daily Vitamin #15 – iOS Web Server, Ubuntu 14.04LTS

Lightweight GCD based HTTP server for OS X & iOS (includes web based uploader & WebDAV server)

GCDWebServer was originally written for the ComicFlow comic reader app for iPad. It allow users to connect to their iPad with their web browser over WiFi and then upload, download and organize comic files inside the app.


Ubuntu 14.04LTS – New LTS, desktop looks lot more like Mac OS X, which means it’s friendlier to use.

Tips for Starting Haskell

I began recording a series of Haskell screencasts, but as always, had to move all my focus aways from anything personal due to work. Rather than throwing the notes away, I’ll post some of them here as I go through my spring cleaning.

Below are the links I was going to mention in the screencast.

To install Haskell on your Mac, use Homebrew by following these steps:
$ brew update
$ brew install haskell-platform
$ echo 'export PATH=~/.cabal/bin:$PATH' >> ~/.zshrc
$ cabal update

Please be advised that I use zsh, so that’s why the third step is .zshrc. If you use bash, then change that to .bashrc or .profile.

To verify that the installation, start ghci.

cabal is a package manager for the platform. Test the cabal by installing pandoc (since it’s an essential tool, right?) for documentation since we all LOVE documentation. ;)
$ cabal install pandoc