Deprecated: Array and string offset access syntax with curly braces is deprecated in /homepages/18/d158249911/htdocs/blogs/inc/_core/_misc.funcs.php on line 5524

Deprecated: Function get_magic_quotes_gpc() is deprecated in /homepages/18/d158249911/htdocs/blogs/inc/_core/_param.funcs.php on line 2220

Warning: Cannot modify header information - headers already sent by (output started at /homepages/18/d158249911/htdocs/blogs/inc/_core/_misc.funcs.php:5524) in /homepages/18/d158249911/htdocs/blogs/inc/_core/_template.funcs.php on line 398

Warning: Cannot modify header information - headers already sent by (output started at /homepages/18/d158249911/htdocs/blogs/inc/_core/_misc.funcs.php:5524) in /homepages/18/d158249911/htdocs/blogs/inc/_core/_template.funcs.php on line 40

Warning: Cannot modify header information - headers already sent by (output started at /homepages/18/d158249911/htdocs/blogs/inc/_core/_misc.funcs.php:5524) in /homepages/18/d158249911/htdocs/blogs/inc/_core/_template.funcs.php on line 336

Warning: Cannot modify header information - headers already sent by (output started at /homepages/18/d158249911/htdocs/blogs/inc/_core/_misc.funcs.php:5524) in /homepages/18/d158249911/htdocs/blogs/inc/_core/_template.funcs.php on line 337

Warning: Cannot modify header information - headers already sent by (output started at /homepages/18/d158249911/htdocs/blogs/inc/_core/_misc.funcs.php:5524) in /homepages/18/d158249911/htdocs/blogs/inc/_core/_template.funcs.php on line 338

Warning: Cannot modify header information - headers already sent by (output started at /homepages/18/d158249911/htdocs/blogs/inc/_core/_misc.funcs.php:5524) in /homepages/18/d158249911/htdocs/blogs/inc/_core/_template.funcs.php on line 339
Charlie's Thoughts

Japan Day 1: Flying

11/05/14 | by Comp615 [mail] | Categories: Travel

Warning: "continue" targeting switch is equivalent to "break". Did you mean to use "continue 2"? in /homepages/18/d158249911/htdocs/blogs/plugins/_bbcode.plugin.php on line 234

Deprecated: Array and string offset access syntax with curly braces is deprecated in /homepages/18/d158249911/htdocs/blogs/plugins/_auto_p.plugin.php on line 502

Deprecated: Array and string offset access syntax with curly braces is deprecated in /homepages/18/d158249911/htdocs/blogs/plugins/_auto_p.plugin.php on line 500

Deprecated: Array and string offset access syntax with curly braces is deprecated in /homepages/18/d158249911/htdocs/blogs/plugins/_auto_p.plugin.php on line 500

Deprecated: Array and string offset access syntax with curly braces is deprecated in /homepages/18/d158249911/htdocs/blogs/plugins/_texturize.plugin.php on line 116

Just last night I sat at home booking my final hostels for the end of my trip. Somehow trips such as this never seem real to me anymore and as I race over the Pacific, I eagerly await that moment when we?ll descend through the clouds and the landscape and architecture below us will emerge, materializing the dream.

My last trip of this magnitude was two months traveling Europe after college. Worlds away now as two years of work, change, and the "real world" feels like it has stifled that magical lightness one feels in college. No longer are there built in trips beckoning around every corner. Instead we limit ourselves to a paltry handful of vacation days throughout the year and what trips we can justify as a business expense.

A friend recently took a new position for which he anticipates 5 vacation days next year (plus holidays though!). To me, that seems like slave labor conditions. I've always dreamed of working for 9 months and traveling for 3, or maybe working remotely. There's simply too much to see, and in Europe I distinctly remember watching Hulu in Venice because after weeks of trying to pack Paris into a handful of days or Pisa into a few hours' afterthought, you simply can't keep up. But we'll see how Japan plays out over these next 3 weeks?

Almost as an homage to an employer that enabled such an adventure, I started the trip by sending my first tweet with a picture of a 787, my 787 naturally. I took longer than I care to admit to find a way of getting to fly on a 787, and sitting on it, it's lived up to expectations and served as an excellent start to the journey.

It somehow feels more magical to fly on this plane specifically, if that's possible. The design of the overhead bins seems to open up the cabin and make it feel more spacious. Seven hours in, I still feel fresh, perhaps because of the lower cabin pressure or perhaps because of the adrenaline. And despite it being pitch black midnight outside, I've fiddled with the electronic window shades no less than a dozen times.

What truly sets this plane apart though was the departure. I'm sitting just in line with the flaps (the rear of the wing) on the right side of the aircraft; the curvature of the wing was a remarkable site as I sat down. As the engines powered up and we began to taxi, I was noticed the truly breathtaking thing about this plane: the windows. I can't begin to do the image justice, but the entire plane feels like a series of panoramic trip tics; windows and fuselage have switched roles. Technically, I think the windows are something like 60% larger than other aircraft, but the feeling is totally non-scientific. The windows rise maybe 10 inches above the seats, and instead of cramming my head in one to look outside, I actually looked across the plane as the lights and landscape of the terminal were on full display.

As the engines powered up and propelled us down the runway, I noticed I didn't hear them. Instead, I simply heard silence and a small high pitched electric hum (oh the burden of being young). When we retracted the flaps and gear up after takeoff, it was again almost silent, surreally so. We flew through totally clear skies directly over the western coast of the peninsula with a sweeping right turn giving an unrivaled view of the city from 8,000 feet. Finally, we traced the golden gate north leaving the city behind.

I don't know if I noticed all this because I was looking for the changes, or because it genuinely was that different. But either way, I?m convinced this is the way to fly. Give it a try if you can find a route!

Night marches on and soon I'll be hitting that all-nighter feeling where words become mush. But I wanted to write something for the first day. I'm going to try to collect and summarize my thoughts and photos as I travel, maybe once per day, maybe once per city, we'll see how it goes. Hopefully you?ll follow along for the ride!

Scientific Mysteries - Why I Love to Fly

12/04/13 | by Comp615 [mail] | Categories: The Mind, Technology

The idea of flying has always been one of those weird blendings of the real and unreal for me; as I write this, I sit comfortably in my chair on an A320, watching us seemingly levitate through the air, cutting through the clouds. The winglets appear to hold us fixed in a straight flight through some unseen current, almost like a car on a Hot Wheels track.

And yet I understand that the magical sensation we know as lift is caused by a pressure differential forming around the plane based on the carefully designed shape of the wing which allows the air passing over and under the wing to flow at different speeds.

A few weeks ago I passed a checkride and officially became a pilot. I've done the requisite number of hours in various flight conditions and understand most of the physical components of a plane and of the atmosphere which allow flight from the properties of a wing to the effects of humidity on aircraft performance. Even as I flew my first commercial flight since starting my training, I could see the perfectly executed entry into the pattern "on the 45."

Yet despite the addition of checklists, rules and all that practical knowledge, I realize that I've maintained that sense of wonder; maintained the passion for the mysterious experience that is flight. For me, being able to use physics, logic, and well-defined concepts to create something so totally inconceivable and magical is truly gratifying.

I realize, in hindsight, that this is the second such passion I've been able to explore. Photography bears a strange number of similarities to flight. As I explored photography, I was told to use the "Rule of Thirds" which says that if the subject is generally on the one-third portion of the frame, it's often more interesting. I even led workshops in college, teaching people how to use flash in their photographs to ensure that the subject is well lit and easily distinguished from the background. It's quite simple really, just a matter of tweaking settings and coloring the light to match the frequency of the surrounding light. Yet I looked back through some old pictures and I saw myself applying the simple lighting tricks, but somehow capturing the life's work of a retiring swim coach or a moment of warring ideologies and changing times in a street debate between protestors. Even things so banal as a ping pong ball falling in a cup of beer seem to somehow convey more than the splash that's depicted and frozen in time.

Many great photographers often tell stories with or speak about the inspiration for their photos, people often refer to them as artists. Yet no matter the subject matter, I'll always consider myself simply a photo journalist. I'm capturing a tangible, real moment with (hopefully) proper exposure, composition and light balance. When I see it on paper though, that photo is not a page from a history book, but rather seems to tell a story. What story I cannot begin to understand, but I know that there's something more there, even if only a memory in my own mind.

Even programming, one could say, exhibits these characteristics. I sit and type in a well-defined language that might as well be French to most people, yet is nevertheless very rigid. But when people open up a site I've made, or a well-coded game…the experience they have on there can be truly transformative in a way that can't possible adhere to the constraints of a strongly typed programming language.

Every time I snap a picture and see it presented back…the result seems so much different, so much more magical than what I was just seeing through the viewfinder. And every time I reach rotation speed and feel the wheels gently ease off the runway, I find myself confused for a moment. I understand why they are doing this, yet the fact that they are, that the plane is in flight, seems wonderfully impossible. The application of science, of the definite and tangible rules of physics, to create something wholly foreign is…well, indescribable. But needless to say, I'm pretty confident that I'll enjoy being a pilot, a programmer, and a photographer for years to come, even as I search for the next mystery of science to unravel.

Tags: flying

My Latest Project

04/19/12 | by Comp615 [mail] | Categories: Web, Travel

Check out my latest project, Yale Travelogue! A site that let's Yalies old and new alike coordinate travel and connect across the globe. We won 1st in the YCC app challenge yesterday and are excited to continue to improve upon it.


Numbered Markers in Leaflet

04/02/12 | by Comp615 [mail] | Categories: Web, Technology

UPDATE: A Gist with the code is available here. You will still need to download the image I mention below.

One of the projects I'm currently working on deals heavily with mapping locations. Although Google Maps is great, I decided to go with a newer and more flexible solution, Leaflet. This little utility allows you to hook into CloudMade's huge database of tilesets to completely change how the maps look, in addition, Leaflet is just generally a super solid and fast mapping library.

After playing around with Leaflet, I really needed a way to label markers 1,2,3,etc. and wasn't able to find any easy way of doing this. So here's a quick little trick that should get anyone else looking for this functionality started.

First, make sure you are using the 4.0+ version of Leaflet, that's what I modeled this after, although you could probably use a similar approach for 3.0 as well.

The default marker wasn't quite the right size for fitting text inside, so I took it and distorted it a bit in photoshop. It's by no means perfect, but should do in a pinch. Download my custom marker here.

Next, we need to create our own icon class. Add the following code to a javascript file in your project, editing the path to the image as appropriate (Mine is ERB js):

L.NumberedDivIcon = L.Icon.extend({
options: {
iconUrl: '<%= image_path("leaflet/marker_hole.png") %>',
number: '',
shadowUrl: null,
iconSize: new L.Point(25, 41),
iconAnchor: new L.Point(13, 41),
popupAnchor: new L.Point(0, -33),
iconAnchor: (Point)
popupAnchor: (Point)
className: 'leaflet-div-icon'

createIcon: function () {
var div = document.createElement('div');
var img = this._createImg(this.options['iconUrl']);
var numdiv = document.createElement('div');
numdiv.setAttribute ( "class", "number" );
numdiv.innerHTML = this.options['number'] || '';
div.appendChild ( img );
div.appendChild ( numdiv );
this._setIconStyles(div, 'icon');
return div;

//you could change this to add a shadow like in the normal marker if you really wanted
createShadow: function () {
return null;

Now we need to unstyle the disgusting default div, and a little bit of styling will line up our number nicely. This goes in your CSS somewhere:

.leaflet-div-icon {
background: transparent;
border: none;
.leaflet-marker-icon .number{
position: relative;
top: -37px;
font-size: 12px;
width: 25px;
text-align: center;

And that's it! Now we have a nice new class we can use to number things, for instance:

var marker = new L.Marker(new L.LatLng(0, 0), {
icon: new L.NumberedDivIcon({number: '1'})

Hopefully someone finds this useful! I'd love to see a better implementation of this make it into Leaflet master, but till then this should do nicely. Enjoy and happy mapping!

The Android Experience (Day 3)

09/05/11 | by Comp615 [mail] | Categories: Technology

Well I never thought the day would come, but I finally gave up my trusty old Blackberry for a shiny new Droid 3 from Verizon. When they finally came up with a decent android phone with a physical keyboard, I ran out of reasons not to upgrade. These are some of my initial impressions after using the phone for a couple days.

My entire family actually was due for phone upgrades, so most of us got the Droid 3 (my mom also enjoys the physical keyboards). My brother was actually the only one to choose an Iphone, which I'm almost certain is due to the overwhelming social pressures to fit-in he experiences as a freshmen in high school. Nevertheless, my experiences with the Droid have not been totally positive. Partially because of certain design choices, but also because I'm so used to a blackberry. This isn't a review of the specific phone so much as it is of the overall Android experience (Gingerbread for those interested).

It took me all of an hour to get all my applications setup how I wanted. I never needed to search the internet or read the manual to figure out what I was doing. Just like when I was 5, I simply pushed buttons until I figured out what they did. Once I got over the initial fun of a touch screen (just moving things back and forth for a couple minutes), I quickly went to the marketplace and loaded up some much needed apps.

Armed with my flashlight, Google maps, Facebook, and the angry birds series. I went to configure my home screens.

Here's the thing. IPhones have a great design and aesthetic. As long as you enjoy that aesthetic and are willing to conform the way you use your phone to fit it, that works. But I was immediately struck by this nifty thing on the android called widgets. I can search the web, YouTube or Facebook, quickly browse my email inbox, or view the weather all from my home screen. No I mean it's literally ON my homescreen, I don't have to push an icon to go to it.

While that's great, and the quick view of information is helpful, here's a super concrete example of why widgets are better than icons. When an Iphone user wants to use the "flashlight" feature of their phone, they click the icon to open the flashlight app, then push a button to turn the light on. Simple right?

When I want to use my flashlight, I click an icon on my homescreen and the flashlight turns on or off. Wow! Why add extra clicks when I don't need them? Since widgets/icons can execute arbitrary code within an app, I'm not really using the app...I'm extending the functionality of my phone through this app. Moreover on the search widgets. Since they aren't forced into a rigid icon structure, but rather a modular design, they can do a lot more from the home screen.

This isn't a concrete example, but is more of a philosophical point. Android is designed to be a framework. It doesn't tell me how I should use my phone, rather it provides a framework for me to setup my phone the way I want. After I installed the skype app, when I clicked on someone's phone number, I was presented with a modal box asking me which application I wanted to use to complete the action, "Phone or Skype". Being a normal user, I clicked the remember my decision box and chose phone. But for those who have limited minutes in a data heavy environment, skype could be the default dialer.

The framework is integration, I don't have to go into an options menu to change it (initially) nor do I have to open the skype app and dial a number. I can change nearly everything about how my phone functions easily.

This lies at the core of why I love Android. It doesn't presume to understand how I want to use my phone, nor do I ever feel like there's a task I want to accomplish that cannot be done because of operating system limitations.

For instance, I now have every facebook friend as a contact in my phone, it's a lot more than I had, and kind of overwhelming, but when someone asks me if I have someone's number...chances are I do. The total integration of app and phone is both scary to me, but also immensely useful. Google apps such as calendar and mail are obviously integrated flawlessly, but I haven't used them too much yet.

It's not perfect out of the box. One of the things that annoyed me most was that there is no way to select all email messages and then mark them as read. Sucks right. But I could download an app and alter the way it works!

Another really cool feature I just discovered today is call-back texts. Basically, if someone calls me and I ignore the call, I immediately get a selection of three text messages I can click on to send the caller. Naturally these are configurable, and the two I see myself using the most are: "Hey I'm in class, what's up?" and "Hold on. I'll call you back in a couple minutes." Looking back I can't help but wonder how many times I've typed out that first message after someone calls me during class. It's genius.

The modularity of the framework leads to some very nice features as well. For instance, I can task kill things eating up resources. Or even better, I can view my battery usage based on application. (Angry Birds is killing my battery life). Just nice touches.

Finally, from a development stand point. It's so easy to develop for Android. So easy. It took me around 2 hours to get my environment setup and start debugging live on my phone. In contrast: 1) Steve Jobs decided I will never be deserving enough to develop for Iphone because I am a PC user (or because he's a money hoarder), 2) It's been about 6 weeks and we still can't get the development app paperwork done with Apple.

It's certainly not perfect, but Android is something that makes with happy with the underlying values it seems to support. The flexibility is much appreciated and the niftiness is icing. I'm actually quite pleased with it initially (despite the fact that the keys are now too big for my fingers!) I'll try and scrounge up a few other tidbits to share as I have some more time using it.

Pages: 1 2 4 ...6 ...7 8 9 10 11 12 ... 29

A collection of musings from my time at Yale along with some thoughts about my "Freshman year of life" in San Francisco.


  XML Feeds

Free blog engine