Korean version of Spotify and iTunes

If you are music lover who used with music service like Spotify (for streaming) or iTunes Music (for buying MP3) and planning to live in Korea for extended amount of time, here is a bad news for you: Both service is yet available in Korea, which is understandable considering their “protectionist” policy on foreign internet service (Even Google are not so useful here, a lot of information can only be gathered via Naver/Daum).

Of course you are still able to use those service if you still paying using home issued credit card or connecting thorugh VPN (As for April 2016, you do not need any VPN to use premium Spotify or iTunes Music Store, just stick with your own language on the setting). But otherwise, if you curious enough to know what do Korean uses for this purpose, and want to use the service (which can be cheaper and payable in KRW) this article will show you some of their home-grown service.

At first, I want to list the service that I know offer both Music Download and Streaming:

Here are some common fact about those service:

  • They are only available in Korean. But if you can read some Hangeul, and learn some common terminology (I would show you later here), it is not as cryptic as you would expect.
  • They offer both music download and streaming service.
  • They offer several plan from the cheapest streaming only plan (무제한 감성) for as cheap as 5000KRW to 100-150 MP3 Download plan (MP3 저장) which cheaper than buying each music separately (usually 600-700KRW per music). Furthermore, they always offer 3 months of discounted price which you can take advantage on)
  • They offer several client from web based to smartphone.
  • They offer virtually same collection. If you like Korean music, you will find their service offer more collection than any other international service. For the foreign/non-Korean music, they offer fair amount of music that issued by top major labels and I never find any trouble finding popular American Pop or even Eurodance track with some exception of those come from independent labels.
  • They accept payment in same kind of payment method usually used in Korean website, you know, with Active-X stuff and thing.

Then if you are curious enough to start this service, given that you already familiar with Korean payment system, then you can start using one of those service. Not for purpose for endorsing a particular brand, but I would recommend you to use 멜론 as a first time trial for some reasons: They have a very good Windows based client which play the music along with its lyric like in Karaoke music video, albeit a bit pricier than other service.

Here are some terminology that you need to be familiar with if you want to use those services:

  • 이용권구매: The first time you open those website, look at this particular text (usually on upper right corner) and click on it to see what kind of plan do they offer.
  • 3개월 특가: Special price for 3 months, as mentioned earlier.
  • 전체 이용권: If you want to pay “separately” on each month, then you can use this plan although it is more expensive than using automatic payment (자동결제/정기결제)
  • 무제한 듣기: Unlimited listening / streaming
  • 구매: Order, 선물: Gift
  • 회원가입: New user registration
  • 결제방법: Payment method, this can be: 신용카드 (Credit Card/Check Card), 계촤이제 (Money Transfer), 휴대폰결제 (Mobile payment).
  • 전제이용권: Current plan
  • 차트: Chart / Music Chart
  • 최신음악: New song
  • 인기음악: Popular song
  • 장르: Genre
  • 가요/국내음악: Korean Music
  • 해외음악: International Music
  • 가사: Lyric
  • And the rest of terminology are mostly using Konglish.

Installing Theano with CUDA capability on Windows 10

If you are the one who struggle to install Python Theano (tensor based numerical computation library) with CUDA-based computation capability on modern Microsoft Windows operating system, this very article might helped you. Here is some steps I already tried in my freshly installed Windows 10 x64. The procedure here are based from this poorly written documentation.

Read More

RStudio like IDE for Python: IEP

I finally found an IDE for Python (basically just text editor with console on it) that has “execute selected code” feature like one in RStudio: IEP or Interactive Editor Python (http://www.iep-project.org/). This IDE is Free and Open Source, plus it runs on multiple OSes thanks to QT library. Even though it lacks some feature like obvious “Set as working directory”, the customizable UI plus it won’t hang itself during some demanding function calling (I had another IDE that has this bugs, I forgot the name of it) made this editor usable for more than a week I have been using it.

Windows 10 stuck with build 10240 [SOLUTION]

Yes, I would admit this: I have been comfortable using Windows 10 as main OS in my notebook since it was released around August 2015. Nevertheless, I am still using Linux in my laboratorium workstation though.

I would kind to appraise Windows 10 for its incremental regular update (that would promise some new incremental feature somehow). But after around six months using it, I felt like somehow there is nothing much better since its been released: The right-click menu still somewhat inconsistent, the title bar still white as ghost and never had any new feature November Update would promised even though I regularly checked Windows Update.

After I checked via “winver” program (Win+R, “winver”, OK), turns out that my Windows 10 system have been somehow stuck with Build 10240 (the first stable build of Windows 10) and goes nowhere further. Reading this article from Wikipedia made me realize that there have been so many new build that I left behind. Furthermore, Windows Update won’t give any help or anything to upgrade my Windows at least into build 10586.

For those who happens to have same issue, the easiest and hassle-free solution is to Upgrade your Windows 10 using the latest Windows 10 Update Tool. You can grab it directly from https://www.microsoft.com/en-gb/software-download/windows10.

winver.png

Daily Korean Vocabulary #1

Living in Korea would be a nightmare if you could not make any simple conversation in Korean, at least that’s how I am experiencing here for about four months. From beginning, I am a big no-no to try speak to them in English unless they started it first or it is in academic situation, so that I learn many Korean basically just by myself and take same Language Immersion steps with some local (Not very intense, just when I need something to buy or dealing with stranger 아저씨 that want to make a chat with 외국인).

One problem that still facing me to learn Korea is how different their vocabulary are, even though they are familiar with some English (and to some extent, Konglish) word, it is not as many as borrowed word from Chinese (Sino-Korea, 한자어). So from today, I want to try to make a daily Korean Vocabulary chart based mainly from Sino-Korean word etymology and any other context-specific term. This Daily Korean Vocabulary is basically intended to someone who know at least very basic Korean Writing System (한글) and Korean Grammar so I will not depicted any romanization whatsoever in here (I found that new Korean Romaja System are kinda awkward for English speaker to read, it’s better to learn the system directly from 한글)

For the first #1, I will introduce the usage of Hanja: 상 (想) which have a meaning surrounding idea and thought (In Hanja Dictionary, it is called 생각 상). The word 상 are not used by itself in Korean so you need to use it in word with atleast two syllables.

1-sang.png

PS: If you have problem seeing the image above, just click on it to see it.

Let’s learn Machine Learning

Yes, for all of you no matter what major you are on, as long as you know basic programming.

I have been learning many infrastructure thing during undergraduate time like operating system, computer network. But otherwise tends to avoid anything that very mathematical like statistics and artificial intelligence. But now, I realize that it is time for me to learn beyond my boundary that beneficial and has many possible outcome and research to do nowadays: Machine Learning. Yes, you heard that word already, it is how Autonomous Car could drive a car automatically without human interaction, it is where the Internet advertisement nowadays are show something that you are looking for, and many major application that make Internet become smart and helpful for human being. We have to realize that for no mater how complex your algorithm and programming technique you had to learn, it won’t make the program smart enough unless you give some sort of data and do some statistical based learning to it. That is where Machine Learning take place, you learn some statistics to utilize some data as bases for predicting and deciding something.

Even if you are kind a allergic with Mathematics, don’t worry, you can apply Machine Learning right away in your problem using many pre-written library and some basic fundamental concept of Machine Learning itself (personally I like to use sklearn library in Python).

So how do you should get started? As for me, I start with this very elaborate lecture from Coursera: Machine Learning with Andrew Ng. But otherwise, this is not a sole way to learn ML and you can do any other approaches such as reading from a book, attending a lecture, attending a confrence, etc.

Node.js: Array looping with async

To be honest, Node.js based asynchronous pattern makes me sick! It can be the worst idea to combine synchronous based coding pattern you’ve learned since first year in computer school. One of very special case of this sickening pattern is to use array based iteration (which is by default, synchronous) to process your data each by each asynchronously and do something else afterwards. Imagine you get code like this :

// data = [{_id: "1", childData: "1"}, {id: "2", childData: "2"}, {id: "3", childData: "2"});
// sum = [{_id: "1", sum: 500}, {_id: "2", sum: 600}]
db.data.find({}, function(err, datas) {
    var count = 0;
    for(idx in datas) {
        // Do MongoDB's relation query somewhere else
        db.childData.findOne({_id: datas[idx].childData}, function(err, childData) {
            count += childData.sum;
        });
    }

    // Show data output
    console.log(count)
});

Read More

Using Google Chrome’s Compression Proxy for every browser

I recently found a way to use Google Chrome’s Compression Proxy (which currently only available for mobile (Android/iOS) user) for desktop purpose and for every browser.

I take the inspiration from an Unofficial Google Chrome Compression Proxy plugin/extension for Google Chrome (which you can install and use it easily in only Google Chrome browser) here (background.js).

Read More

Deploying your Node.js application with OpenShift (Free-Plan)

Even wondering how to deploy your web-based Node.js application on internet? Sadly, I will tell to you that: You can’t do that inside your ordinary cpanel-ed web hosting because they mostly only support PHP. Yes, that very sad news because you can rent a web hosting as low as a buck per month.

So the solution is to deploy it inside a PAAS (Platform as a Service) provider which is one of Cloud Computing solution to deploy a web application with many kind of supported platform (such as Ruby, Python, Google Go, and even Java). Unlike ordinary cpanel based web hosting, your web doesn’t run inside shared machine with many other web application. But also unlike dedicated hosting, it doesn’t run your application in single physical machine because it run inside a sandboxed virtual machine which will isolated your application thus makes it not dependent each other.

There are some PAAS solution which provided by major company such as Google Apps Engine, Windows Azure (by Microsoft), OpenShift (by Redhat) and Amazon Web Service (a.k.a AWS). Some of them provided a free plan and all of them of course provided pay plan which unlike traditional web hosting, the plan is not only based on how much space you need but also how much the CPU power, network bandwidth you need to run your application.

Now in this post, I will tell you how to deploy your Node.js application inside Redhat’s OpenShift which has a free-plan (with maximum 3 application per account). Deploying Node.js application is very easy if you know how to make it easy.

Read More

RT3290 Bluetooth (rtbth) driver with Kernel >= 3.13 + PATCH!

NOTE Most of users here tell me that this doesn’t work (bluetooth detected and on, but no pairing or connection). There is a bug report still ongoing to resolve this issue.

In my previous post, I did compiled and installed this source coded driver from Ubuntu PPA without any hassle with my previous Ubuntu 12.04 LTS (Kernel 3.8.x). But after an-hour-long upgrade process to Ubuntu 14.04 LTS (with newer Kernel 3.13), I need to recompile (make clean; make) this driver but unfortunately it failed and I got this message :

/usr/src/rtbth-3.9.3/rtbth_core_bluez.c: In function ‘rtbt_hps_iface_init’:
/usr/src/rtbth-3.9.3/rtbth_core_bluez.c:404:13: warning: assignment from incompatible pointer type [enabled by default]
  hdev->send = rtbt_hci_dev_send;
             ^
/usr/src/rtbth-3.9.3/rtbth_core_bluez.c:406:6: error: ‘struct hci_dev’ has no member named ‘ioctl’
  hdev->ioctl = rtbt_hci_dev_ioctl;
      ^
/usr/src/rtbth-3.9.3/rtbth_core_bluez.c: At top level:
/usr/src/rtbth-3.9.3/rtbth_core_bluez.c:83:20: warning: ‘pkt_type_str’ defined but not used [-Wunused-variable]
 static const char *pkt_type_str[]=
                    ^
make[2]: *** [/usr/src/rtbth-3.9.3/rtbth_core_bluez.o] Error 1
make[1]: *** [_module_/usr/src/rtbth-3.9.3] Error 2
make[1]: Leaving directory `/usr/src/linux-headers-3.13.0-24-generic'
make: *** [all] Error 2

Read More