December 23, 2014

Redesigned Blog


If this is your first time to my blog, then you probably didn't notice, but the entire blog has been redesigned! I customized a lot of Blogger's built-in template to make it look more like my personal website. I never realized that you could add your own custom CSS to Blogger templates--which saves me a ton of work because I thought I might have to create my own blog-site from scratch.

I also redid the label system as you can see in the sidebar to the right:
I think that this is a much cleaner way to keep track of the various posts in my blog. You'll notice that I combined my personal website changelog into my blog. That was because I was getting tired of manually updating my website anytime I changed something so I figured using my existing Blogger platform was a much better solution. 

UPDATE 1/1/2015 : Beta version is now live!

On a side note, if you have a spare moment, hop on over to the beta version of my website (

Well Traveled 2014

Twin Peaks, San Francisco
Rijksmuseum, Amsterdam
Frankfurt, Germany
Las Vegas, NV
Beale St., Memphis, TN
Dallas, TX
Napa Valley, CA
Yosemite National Park, CA
Sequoia National Park, CA

Berkeley, CA
Seattle, WA
Angel Island, San Francisco

Alcatraz, San Francisco

Golden Gate Bridge, SF

Stanford, CA

Central Park, NYC

On a side note, travelling is a lifelong disease--once you catch it you can never be cured from the powerful wanderlust.
Ft. Lauderdale, FL

November 04, 2014

Letter from the Past

Dear Wonmin,

Hey, congratulations on your graduation!

What are you going to do now? I hope that you're planning (if you already haven't made plans) on going to either Japan, China, or Korea.

I also really hope that you haven't fallen madly in love with some cute chick and plan to spend your post-graduation doing ridiculous things with her.

Please tell me that you're actually going to become bigger than any white person on this planet ever was. Prove to everybody what you are capable of! Prove to all those high schoolers, middle schoolers, friends, enemies, lovers, family, that you are the best.

While I don't know about your current circumstances, I do know that you will be an improved version of myself. Ideally, you can already speak pretty fluent Mandarin.

So be grateful for the past three years. Don't look back. Look forward. Step into graduation with open arms. Take the future. Don't spend your money needlessly. Don't waste your precious time with some flirty chick. These things are all a fleeting distraction. I hope that you have your priorities straight and can become what I know you will.

From your past self with love, admiration, and envy, 

Wonmin Lee

On a side note, the "bigger than any white person" thing was a phase I was going through when I noticed that a lot of executives, politicians, and influential people in America were white.
On a side side note, this was a letter I wrote to myself at the beginning of Brown--to be delivered upon graduating from Brown.

October 10, 2014

Multiplayer and Node

Just uploaded my multiplayer code for the multiplayer version of War of Shapes to Heroku. Please check it out here. I also changed several of the photos on the main page and created two versions of my resume--one for business and one for technical.

On a side note, Node.JS is awesome!

June 04, 2014

Between One and Ten

Here's some background information: I was a campus tour guide at Brown University, which means that for one hour every week, I had to give a tour to prospective students and parents who are interested in the university. There were quite a few of us and we are all assigned individual time slots. On my slot, (Monday, 3PM) there were three other tour guides for a total of four.

Now here's the scenario: there were three tour guides one day (one was sick) and about four prospective students. Clearly, only a single tour guide was necessary. But how do we choose which of us three has to give the tour in a fair and diplomatic way? Do we play rock-paper-scissors? But that could take ages.

Here's the method: each of the tour guides picks a number from one to ten (inclusive). Then a prospective student does the same. Whoever is closest to the student's number has to give the tour. The others picked three and five, while I picked four. The number was five. I did not have to give the tour.

Here's the problem: On the walk back to our student center, the other tour guide who picked three said to me that my method was incredibly fair and she was very surprised at how quickly I had come up with it. This led me to think--is it really all that fair? Is there a way to pick a number so as to minimize my chances of giving the tour? I guess it's time for some economics.
One through ten
As you can see from above, there are exactly ten choices that we could have picked. To start off, we assume that each number is equally likely to be picked with a probability of 10%. We also set that no two players may pick the same number. Therefore the game is also a consecutive one--players take turns picking numbers, with only the prospective student picking any number he/she wishes. Again, to reiterate the rules, the player closest to the prospective's number must give the tour. So we must be as far from that number as possible to minimize our chances of giving the tour. (Because college students are lazy).

In the above scenario, there were three players in the game. Let's first simplify the problem and pretend that there were only two tour guides--player 1 (P1), player 2 (P2), and the prospective student (PS).

How does the game play out?
  1. PS chooses a number independently.
  2. P1 chooses a number first.
  3. P2 chooses last.
Let's say P1 chooses the number 5 arbitrarily. What is the best response for P2? Intuitively we can see that the number 1 is the best choice to minimize the chances of giving the tour.
If P1 = 5, then P2 should play 1
What happens if the PS is 3? Then a fair coin would be used to decide who gives the tour. Therefore, as the above diagram depicts, there is a 75% chance that P1 gives the tour, whereas P2 only has a 25% chance.

Now let's say P1 knew all that, so he decides to choose 1 before P2 has the chance to. What is the best response for P2 now? We can easily calculate the probabilities for every other choice as such:
Probabilities of both players if P1 first picks 1
We can see from the above chart that if P1 first picks 1, then P2 minimizes his/her chances of giving a tour by picking 10. Knowing these probabilities, how would the rational person behave? We could derive a large 10 by 10 payoff matrix listing all the possibilities, but that would be too much. Instead, we can intuitively see that, assuming both players are rational (i.e. economics majors), that the Nash equilibrium is (1, 10) or (10, 1) with the probabilities of either player giving a tour at 50%. Not a very interesting conclusion.

But what if P1 is not rational? What if P1 isn't an economics major? What is the best response of P2 given any choice that P1 can make?
P1's choice, the best response of P2, and the respective probabilities
As you can see from the above chart, given any choice made by P1, the best response by P2 is either 1 or 10. But how is that determined? It's easy to see that P2 should pick the furthest number on the side with the least amount of numbers on it. So for example, if P1 picked 6, there are 4 numbers to its right, and 5 numbers to the left. The furthest number on the right is 10, so therefore P2 should pick 10 for the minimum probability of 25%. This rule stands except for the case of 1 and 10, in which case there is only one side to pick from.

What have we learned so far? What are the valid conclusions?
  • If you are P1:
    • Is P2 rational?
      • Play 1 or 10
    • Is P2 irrational?
      • Cannot tell what P2 will pick, but still pick 1 or 10 to minimize probability
  • If you are P2:
    • Is P1 rational?
      • Play 1 or 10, whichever P1 did not pick
    • Is P2 irrational?
      • Play the furthest number from P1's choice on the side with the least amount of numbers

April 10, 2014

Major Facelift

Many pages are now gone and all condensed into the main landing page. The main page is now a lot longer and more dynamic. The Navigation Bar was completely reworked and integrated into the main page. The Pages and Games pages were combined into a single section. The Contact page was condensed to a footer. The Resume page was replaced with a web page version with a link to the PDF. Finally this News page was renamed to Blog.

On a side note, please shoot me an email letting me know how your browsing experience was!

February 20, 2014

Oh How You Resize Me

My website should now be browser resize-friendly! That means that if you make the browser window smaller or bigger, the content should dynamically change as you change the size. This should also mean that my website is now mobile-friendly as well!

On a side note, if you notice any inconsistencies during your browsing experience, please shoot me an email!

February 11, 2014

1.6 Bold Patch Update

Good morning / afternoon / evening!

It is my great pleasure and honor to announce the release of the way overdue 1min 1.6 patch update. We here at 1min© have been spending countless days and nights for the past year and a half fine-tuning and experimenting with the source code, so that you, the end-user, can have the best experience possible. We finally have something that we believe is deserving of a major patch update.

Going along with patch 1.5’s naming scheme, patch 1.6 will also be named after an adjective that we feel is our current objective and future plans. After much deliberation, we have finally arrived at the word, “Bold.” But wait, isn’t that the same word as patch 1.5? That’s a great observation! We here at 1min felt that although the overall trajectory of our design has not been altered from the “Bold” direction, there have been significant improvements made to the code that it deserved its own special patch number.

Similar to past patches, we have done a lot of bug testing and number crunching and have fixed and/or deleted a lot of previous updates. This is in no way indicative of our future aspirations or goals, but reflect what the management feels is necessary for the best possible experience.

Like all our other patches and releases, please do note that nothing is final and everything is subject to change without prior announcement. Feel free to contact customer service if you wish to lodge a complaint or put forth your two cents worth.

So without further ado, I present patch 1.6 “Bold.”

February 09, 2014

To Live Once More!

Both my Guestbook and my Strawberry URL web applications are now fully functional and running. I recently purchased hosting with GoDaddy, allowing me to have my own MySQL database and a PHP back-end to run my code. Now I can finally work on keeping my new networking game up 100% of the time!

On a side note, I am planning on yet another redesign of the landing page and the contact page.

February 05, 2014

Redesigned Transitions

Completely redesigned the landing page and swapped it with this renamed page. Now instead of automatically landing on this page with news and recent information, you will land on the new redesigned landing page. Not only that, but with new CSS transitions, I am no longer relying on jQuery for most of the animations on my website. So ignore the last post, the side-notes are no longer JavaScript.

On a site node, what do you think about the new redesign?

February 04, 2014

ThinkVantage Custom Scripts

ThinkVantage Button (X1 Carbon)
If you own a Lenovo laptop, chances are that you have a "ThinkVantage" button on your keyboard. It's that
thin rectangle button on the top left of your keyboard (actual size and location depends on your laptop model).

You first have to do a registry edit to change the button from the default Lenovo software. Please refer to this link for instructions. You'd have to change the registry entry to point to the following BAT file I wrote.

Here are two files that I wrote to turn that button into a custom script for running a Google voice search. The actual usability of the script depends on your laptop and how quickly you can open a browser. I purposely put a long sleep timer on the VBS script to account for slower startup times on your browser. If you find that you are opening a new browser and waiting too long before the voice search starts, then feel free to lower the 5000 to a smaller number.

The script.bat file which points to the VBS file below. For some reason you can't just directly point to a VBS file in the registry so I had to work around it by using this BAT file.
@echo off
wscript "C:\script.vbs"
The script.vbs file. Opens a new browser, navigates to Google, pauses for a bit, then presses Ctrl+Shift+. to activate the voice search command.
Dim iURL
Dim objShell
iURL = ""
set objShell = CreateObject("WScript.Shell")
WScript.Sleep 5000
objShell.AppActivate "Chrome"
objShell.SendKeys "^+."

On a side note, what's the fastest way you can think of to search Google?

January 07, 2014

Hello 2014!

Wow it's been a while. Looking back, 2013 was a terrible year for my blog. I went from averaging 42 posts per year down to 2 for the entire last year. I am terribly sorry and I do apologize. I guess it was a combination of major life events (graduation, jobs, and relationships) and my own laziness that contributed to this great lack of content.

Since it's a new year, I figure I can make a public new year's resolution to blog more often. You heard me, 2014 is going to be a great year--I just know it.

I guess I can use this first post of 2014 to reflect back on 2013. Some key events include:
  1. Earning my Bachelor's Degree
  2. Being employed at Citrix Systems
    1. Moving to Florida for my new job
  3. Getting a stable relationship
I could dedicate twenty posts to each of the above topics as there is simply so much to talk about. So I'll try my best to condense it all into a few paragraphs.

My time at Brown was amazing. It had its share of ups and downs and I learned a great deal along the way. Certainly my overall outlook on life has changed many times throughout my undergraduate experience. And what is it currently? I'd say optimism is an apt description of my current mood. 

Towards the end of my college career, I discovered that I liked programming. I took two computer science classes (one for web developing and one for Java). Both of which were fantastic and ate up my weekends (in a good way). Which leads me to believe that college isn't about getting great grades or having fun (which isn't bad to do either), but rather about finding yourself. A bit cheesy, yes, but thanks to these two classes, I was able to create my own website, and even create a browser game!

I have been employed at Citrix for about seven months now. I recently graduated from the six-month New Hire Training program that they have here for college graduates. I feel as if I learned more in the past six months than my whole four years of college! Being part of a giant corporation is daunting at times, but I try to take it one day at a time. I'm generally a laid back informal type of person and trying to mold myself to fit into the formal business lifestyle has been a very enlightening and interesting journey.

Finally, I met a great girl who I really enjoy spending time with. I feel that the mere fact that I'm mentioning her in my personal blog is a milestone for me. Which is kind of weird seeing as how I wrote so many posts about relationships in the past. I recently visited her home in Vietnam and it was an incredibly enlightening journey (especially considering Asia was a part of my "future plans")

Anyways, I hope this serves as a good first post of the new year, I hope to post more often so as to keep track of my life and my feelings as I journey through life. I really like the sidebar description of my blog I wrote a long time ago--it really captures what I envision this blog to be.

On a side note, I never made a happy birthday post to my blog for 2013, but I guess as of today, my blog is about four and a half years old!