FLAT & MINIMAL
Designer and techie with a background in architecture. Co-founder Thinkerous
Youtube Large Player Fix
When watching videos on Youtube, there’s been an annoying page design flaw present when on the Macbook Pro with retina display, or I assume any other large, high resolution display. This happens when you’re viewing videos in “Large Player” mode on fully scaled retina resolution. See the image above? The dotted box visually represents what I’ve just explained, and if you’re in the same position as me, you know exactly what I mean. So I wrote a short userscript to fix it by making the player the same width as the content div under.

 

// ==UserScript==
// @name       Youtube Retina Display Fix
// @namespace  http://cheeyoonlee.com
// @version    0.23
// @description  Fixes the annoying large player and content width mismatch on scaled 
    Retina displays
// @match      https://www.youtube.com/watch?*
// @copyright  2014+ @cheeyoon
// ==/UserScript==

function addGlobalStyle(css) {
    var head, style;
    head = document.getElementsByTagName('head')[0];
    if (!head) { return; }
    style = document.createElement('style');
    style.type = 'text/css';
    style.innerHTML = css;
    head.appendChild(style);
}

addGlobalStyle('.site-center-aligned #player.watch-large, .site-center-aligned 
    #player.watch-medium, .site-center-aligned #player.watch-medium-540 { margin-bottom: 0 
    !important; }');
addGlobalStyle('.site-center-aligned #player.watch-medium { width: 1040px !important; }');
addGlobalStyle('.watch-medium .player-height { height: 615px !important; }');
addGlobalStyle('.watch-medium .player-width { width: 1040px !important; }');
addGlobalStyle('.watch-medium .html5-main-video, .html5-video-content { width: 1040px 
    !important; height: 585px !important; }');



 
It’s basically a javascript file that’s injected into the targeted page when loaded to replace given style parameters with custom values. As noted by @match, I’m only targeting the video page by using the HTML query string watch?* where the * represents any video ID. Next, I define the addGlobalStyle(css) function which will add my edited style rules to the page’s loaded CSS. Finally, I call up the function by finding specific classes and ID’s and replacing them with my own values; the !important markers are used to force the changes no matter what, a bit of a dirty trick. That’s all there’s to it.
I’m really surprised no one has addressed this issue, as much as I’ve searched, and neither has Youtube. Am I alone here..?
Installation: You first need either Greasemonkey (for Firefox) or Tampermonkey (for Chrome) if you don’t so already. Then simply install my script here and it should be enabled upon installation. Enjoy!
Discussion for original issue here.
Released under the MIT License (MIT)

Youtube Large Player Fix

When watching videos on Youtube, there’s been an annoying page design flaw present when on the Macbook Pro with retina display, or I assume any other large, high resolution display. This happens when you’re viewing videos in “Large Player” mode on fully scaled retina resolution. See the image above? The dotted box visually represents what I’ve just explained, and if you’re in the same position as me, you know exactly what I mean. So I wrote a short userscript to fix it by making the player the same width as the content div under.

 

// ==UserScript==
// @name       Youtube Retina Display Fix
// @namespace  http://cheeyoonlee.com
// @version    0.23
// @description  Fixes the annoying large player and content width mismatch on scaled 
    Retina displays
// @match      https://www.youtube.com/watch?*
// @copyright  2014+ @cheeyoon
// ==/UserScript==

function addGlobalStyle(css) {
    var head, style;
    head = document.getElementsByTagName('head')[0];
    if (!head) { return; }
    style = document.createElement('style');
    style.type = 'text/css';
    style.innerHTML = css;
    head.appendChild(style);
}

addGlobalStyle('.site-center-aligned #player.watch-large, .site-center-aligned 
    #player.watch-medium, .site-center-aligned #player.watch-medium-540 { margin-bottom: 0 
    !important; }');
addGlobalStyle('.site-center-aligned #player.watch-medium { width: 1040px !important; }');
addGlobalStyle('.watch-medium .player-height { height: 615px !important; }');
addGlobalStyle('.watch-medium .player-width { width: 1040px !important; }');
addGlobalStyle('.watch-medium .html5-main-video, .html5-video-content { width: 1040px 
    !important; height: 585px !important; }');

 

It’s basically a javascript file that’s injected into the targeted page when loaded to replace given style parameters with custom values. As noted by @match, I’m only targeting the video page by using the HTML query string watch?* where the * represents any video ID. Next, I define the addGlobalStyle(css) function which will add my edited style rules to the page’s loaded CSS. Finally, I call up the function by finding specific classes and ID’s and replacing them with my own values; the !important markers are used to force the changes no matter what, a bit of a dirty trick. That’s all there’s to it.

I’m really surprised no one has addressed this issue, as much as I’ve searched, and neither has Youtube. Am I alone here..?

Installation: You first need either Greasemonkey (for Firefox) or Tampermonkey (for Chrome) if you don’t so already. Then simply install my script here and it should be enabled upon installation. Enjoy!

Discussion for original issue here.

Released under the MIT License (MIT)

Pley (Pleygo)
Recently this month, I came across a neat service I’d wished I knew about earlier called Pley, formally known as Pleygo. Pley is a subscription based LEGO rental service - some sites describe it as a Netflix for LEGO’s, and if you’re still renting DVD’s on it, they’re probably right.
The service is really cool and simple. You choose one of three plans: Fan, Super Fan, and Mega Fan; each plan increasing in cost for more complex and advanced sets. They offered a month-long free trial of the “Super Fan” subscription tier so I gave it a try.
 

You start off by filling up your “Pleylist” with sets available to your chosen plan. You can easily search for particular sets by name, collection, keyword, or set number. I found their collection a bit limited but I’m told they’re frequently adding more sets which is good to hear. For this reason, it was a bit difficult for me to fill up my Pleylist, but that was what the “Autofill” feature was for. It let me configure which sets I preferred and automatically filled up the rest. 
 

As you can tell, the order of the Pleylist sets don’t seem to apply to which set you’d receive respectfully. This bothered me a bit since I was expecting the “Blackbeard’s Duel” set from the Lego Movie collection. Instead I received the “Droid Escape” set. Please note, though, as this could just be a bug in their system. I was still excited, nonetheless.
 

After a couple days my first set arrived in a plastic envelope, which also serves as a prepaid return envelope: bonus points for free shipping both ways. Inside was a welcome and info pamphlet and the bag containing the LEGO set with the building instruction manual. At this point I felt like a kid discovering LEGO’s for the first time, again.
 

I laid out the set and individually inspected all pieces. I was missing a few small ones, which was unfortunate, but not entirely unexpected. Luckily, Pley’s service is awesome enough to ship you the missing pieces as soon as you report them on their site. And for those asking, yes the set was clean. They’re sanitized after every return to the same standards approved by the FDA for restaurants.
 

Some minutes and a few page turns later I completed the “Droid Escape” set to my liking. Despite the error and a couple missing pieces, I thoroughly enjoyed this subscription experience. Pley satisfied my nostalgic childhood craving by bringing back LEGO’s in a convenient and simple service. It’s a brilliant idea that allows for more families to affordably gift their children new sets to play around with every month. Finished with a set? Take it apart and return it to receive another set from your Pleylist as many times as you want. Want to keep the set? Purchase it for a discount. I’d definitely recommend it and to at least give it a try. Oh, and it’s free for a month of the “Super Fan” plan with my referral: Pley.com

Pley (Pleygo)

Recently this month, I came across a neat service I’d wished I knew about earlier called Pley, formally known as Pleygo. Pley is a subscription based LEGO rental service - some sites describe it as a Netflix for LEGO’s, and if you’re still renting DVD’s on it, they’re probably right.

The service is really cool and simple. You choose one of three plans: Fan, Super Fan, and Mega Fan; each plan increasing in cost for more complex and advanced sets. They offered a month-long free trial of the “Super Fan” subscription tier so I gave it a try.


 

You start off by filling up your “Pleylist” with sets available to your chosen plan. You can easily search for particular sets by name, collection, keyword, or set number. I found their collection a bit limited but I’m told they’re frequently adding more sets which is good to hear. For this reason, it was a bit difficult for me to fill up my Pleylist, but that was what the “Autofill” feature was for. It let me configure which sets I preferred and automatically filled up the rest. 


 

As you can tell, the order of the Pleylist sets don’t seem to apply to which set you’d receive respectfully. This bothered me a bit since I was expecting the “Blackbeard’s Duel” set from the Lego Movie collection. Instead I received the “Droid Escape” set. Please note, though, as this could just be a bug in their system. I was still excited, nonetheless.


 

After a couple days my first set arrived in a plastic envelope, which also serves as a prepaid return envelope: bonus points for free shipping both ways. Inside was a welcome and info pamphlet and the bag containing the LEGO set with the building instruction manual. At this point I felt like a kid discovering LEGO’s for the first time, again.


 

I laid out the set and individually inspected all pieces. I was missing a few small ones, which was unfortunate, but not entirely unexpected. Luckily, Pley’s service is awesome enough to ship you the missing pieces as soon as you report them on their site. And for those asking, yes the set was clean. They’re sanitized after every return to the same standards approved by the FDA for restaurants.


 

Some minutes and a few page turns later I completed the “Droid Escape” set to my liking. Despite the error and a couple missing pieces, I thoroughly enjoyed this subscription experience. Pley satisfied my nostalgic childhood craving by bringing back LEGO’s in a convenient and simple service. It’s a brilliant idea that allows for more families to affordably gift their children new sets to play around with every month. Finished with a set? Take it apart and return it to receive another set from your Pleylist as many times as you want. Want to keep the set? Purchase it for a discount. I’d definitely recommend it and to at least give it a try. Oh, and it’s free for a month of the “Super Fan” plan with my referral: Pley.com

Flappy Doge

Hate it or love it, we’re reluctant to admit our addition to this ridiculously popular frustrating mobile game, “Flappy Bird”. This fat-lipped, viral bird was just too much for me after countless play-throughs that something had to be done. I didn’t delete the app like any wise person would…instead, I made it oddly enjoyable (original conception by SadPandaTerrabang on reddit). Behold, the adorable Doge featuring Dogecoins!


 

In short, I modified the texture asset “atlas.png” (show above) located within the application folder. It took me a while as this was my first time working with pixel art, so there was a bit of design process and learning. It’s not much, but it’ll make you smile.

Installation: Replace the “atlas.png” file with the above given within “Flappy.app” in its application folder. You will need a jailbroken iOS to do so. For details, check the discussion on the reddit post here or for mod suggestions and what not.

Fun Facts: I’m the original creator of this doge sprite. I did not give “Dumpy Doge” and any other “Flappy Doge” clones permission to use my mod or art asset for commercial use. Apparently, this release has also spawned inspiration for few other popular clones featuring Miley Cyrus and Drake.

Released under Creative Commons — Attribution-NonCommercial 4.0 International — CC BY-NC 4.0

Sony PlayStation 4
After passing it up during its launch, I finally decided to get myself the PS4 as a personal Christmas gift. Those who are interested probably have already read numerous reviews so I won’t bother with a formal one. Instead, I’ll comment on the first thing I did before even turning it on: a harddrive upgrade.
 

Changing out the preinstalled 500GB HDD is fairly simple. Slide off the top, glossy cover and remove a single screw holding the HD tray in place. Then slide out the bay, remove four more screws which secure the HD and replace the drive with any SATA 2.5” HD you want, whether it be a HDD, SSD or SSHD (hybrid - which I went for), as long as it’s at least 250GB in storage size. You can find the drive I got here. It’s probably the most cost efficient for speed HD you can get. 
 

The great thing about the SSHD is that it’s the best of both worlds; part SSD for speedy memory read and write, and part HDD for affordably large storage. Benchmarks show the speed difference between a pure SSD vs this SSHD is merely a couple seconds in system startup and game loading time, which isn’t noticeable, yet considerably faster than the original HDD. Once done, screw and slide everything back into place.
 

Next, you need to configure a USB stick loaded with the system restore file to format the new drive and install the operating system. Sony provides a thorough instruction here. Be sure to place the update file into the correct folder or the system will fail to find it upon boot.
 

Reconnect the cables and plug in the USB. Turn the console on into recovery mode by holding the power on button for 7 seconds or until you hear two beeps and follow the on-screen instructions to setup the system. The system should reboot and you’re all done.
The PS4 is a great console. I chose it over the Xbox One specifically for the lineup of exclusive games and content that I’m looking forward to. We could debate about the different features and platform superiority but that’s kind of pointless. Each console has its pro’s and con’s but I don’t care for them so much than what I’ll actually spend most of my time on the system for, which is how everyone else should make their judgement. That said, I personally think the PS4 is more aesthetic and thanks to the new hardware architecture, it provides an easier and better platform for studios to develop games for. It’s a gaming console in its purest.

Sony PlayStation 4

After passing it up during its launch, I finally decided to get myself the PS4 as a personal Christmas gift. Those who are interested probably have already read numerous reviews so I won’t bother with a formal one. Instead, I’ll comment on the first thing I did before even turning it on: a harddrive upgrade.


 

Changing out the preinstalled 500GB HDD is fairly simple. Slide off the top, glossy cover and remove a single screw holding the HD tray in place. Then slide out the bay, remove four more screws which secure the HD and replace the drive with any SATA 2.5” HD you want, whether it be a HDD, SSD or SSHD (hybrid - which I went for), as long as it’s at least 250GB in storage size. You can find the drive I got here. It’s probably the most cost efficient for speed HD you can get. 


 

The great thing about the SSHD is that it’s the best of both worlds; part SSD for speedy memory read and write, and part HDD for affordably large storage. Benchmarks show the speed difference between a pure SSD vs this SSHD is merely a couple seconds in system startup and game loading time, which isn’t noticeable, yet considerably faster than the original HDD. Once done, screw and slide everything back into place.


 

Next, you need to configure a USB stick loaded with the system restore file to format the new drive and install the operating system. Sony provides a thorough instruction here. Be sure to place the update file into the correct folder or the system will fail to find it upon boot.


 

Reconnect the cables and plug in the USB. Turn the console on into recovery mode by holding the power on button for 7 seconds or until you hear two beeps and follow the on-screen instructions to setup the system. The system should reboot and you’re all done.

The PS4 is a great console. I chose it over the Xbox One specifically for the lineup of exclusive games and content that I’m looking forward to. We could debate about the different features and platform superiority but that’s kind of pointless. Each console has its pro’s and con’s but I don’t care for them so much than what I’ll actually spend most of my time on the system for, which is how everyone else should make their judgement. That said, I personally think the PS4 is more aesthetic and thanks to the new hardware architecture, it provides an easier and better platform for studios to develop games for. It’s a gaming console in its purest.

Nike+ Fuelband SE Rose Gold
I’ve been planning to get the fuelband as soon as the SE, or second edition, came out but just few days later learned Nike was releasing the first of its new METALUXE Collection featuring the SE in rose gold.
 

The design itself is not any different from the current line of SE’s and first editions - clean, minimal design with a single button to scroll through different options. The rose gold model features PVD-coated stainless steel clasp, bezel and screws, which are handworked, mirror-polished surfaces to highlight craftsmanship and detail. It’s quite nice in person and rain/shower-proof.
 

It’s ergonomically shaped and made flexible to stay on your wrist comfortably all day and night, while subtle enough to be worn as an accessory item to match any style of clothing. Two additional extension links are also included to help adjust a finer fit for your wrist. I got the M/L size and it fit well without the need for them.
 

The USB is hidden within the clasp system (two pictures above) and plugs directly into most laptop computers for charging and syncing your data. An extended USB cord is included, of course, but it’s nice to have this wire-free option beautifully crafted into the device itself. It lasts a week and charges very fast, may I add.
 

The fuelband can also be synced via Bluetooth through the official mobile app (currently iOS only) which keeps detailed track of your activity and progress through standard numerical values and NikeFuel which are essentially gamified experience points for self motivation and friendly competition.
 

The device itself is great overall but I’d like to see two options in the future. The first being software, I think there should be an option to have the display remain on once the battery is further improved. It’s a bit unnecessary to have to press the button to see the clock every time. The second being hardware, I wish it had vibration feedback for reminders/alerts. Currently, the display creeps on with a message “Go Cheeyoon” but it’s not very effective.
I understand there are many who think this is an unnecessary device but I don’t believe so. The fuelband acts as a multifunctional smart-watch. For $150 USD ($170 for rose gold), you get a standard digital watch, fitness tracker, sleep tracker, step counter, and ultimately keeps you motivated to stay active through its competitive NikeFuel system, all in an elegant design. Wearable technology is the future and the Fuelband SE proved to be a great stepping stone.

Nike+ Fuelband SE Rose Gold

I’ve been planning to get the fuelband as soon as the SE, or second edition, came out but just few days later learned Nike was releasing the first of its new METALUXE Collection featuring the SE in rose gold.


 

The design itself is not any different from the current line of SE’s and first editions - clean, minimal design with a single button to scroll through different options. The rose gold model features PVD-coated stainless steel clasp, bezel and screws, which are handworked, mirror-polished surfaces to highlight craftsmanship and detail. It’s quite nice in person and rain/shower-proof.


 

It’s ergonomically shaped and made flexible to stay on your wrist comfortably all day and night, while subtle enough to be worn as an accessory item to match any style of clothing. Two additional extension links are also included to help adjust a finer fit for your wrist. I got the M/L size and it fit well without the need for them.


 

The USB is hidden within the clasp system (two pictures above) and plugs directly into most laptop computers for charging and syncing your data. An extended USB cord is included, of course, but it’s nice to have this wire-free option beautifully crafted into the device itself. It lasts a week and charges very fast, may I add.


 

The fuelband can also be synced via Bluetooth through the official mobile app (currently iOS only) which keeps detailed track of your activity and progress through standard numerical values and NikeFuel which are essentially gamified experience points for self motivation and friendly competition.


 

The device itself is great overall but I’d like to see two options in the future. The first being software, I think there should be an option to have the display remain on once the battery is further improved. It’s a bit unnecessary to have to press the button to see the clock every time. The second being hardware, I wish it had vibration feedback for reminders/alerts. Currently, the display creeps on with a message “Go Cheeyoon” but it’s not very effective.

I understand there are many who think this is an unnecessary device but I don’t believe so. The fuelband acts as a multifunctional smart-watch. For $150 USD ($170 for rose gold), you get a standard digital watch, fitness tracker, sleep tracker, step counter, and ultimately keeps you motivated to stay active through its competitive NikeFuel system, all in an elegant design. Wearable technology is the future and the Fuelband SE proved to be a great stepping stone.

Museum of Contemporary Art
Spring 2013 Project for Southern California Institute of Architecture
Location: W Grant Ave, Prada, San Francisco

Blurring the line between the stability of more institutionalized, civic museums and the more rapidly changing culture of couture, our building seeks to provide a venue for exhibiting change. It asks for, beyond the simple accommodation of artifacts, a progressive, contemporary architecture, emblematic of this new type of institution in the city. In many ways the architectural and urban experience of the museum will be as or more important than its contents… [Read More]

Chicago Union Station
Fall 2012 Project for Southern California Institute of Architecture
Location: Union Station, Chicago

This project locates the idea of architecture at the intersection of various systems of information: from technical to cultural, from visual to tactile. We consider the uses of precedent and antecedent in their work, while the main investigation examines the impact of structure and material systems on site and building form, and the capacity to use transformation as a methodological tool to guide a rigorous approach to decision making… [Read More]