Skip to content

Learning by Doing: Some Thoughts on Sponsr.Us

Startups are difficult. Everyone says and knows this. It’s a time consuming, frustrating, and so often fruitless process. But as I – and many others – have discovered, it’s precisely those difficulties that make entrepreneurship such a rewarding experience.
Yesterday, our team saw the fruits of our labor come to life. On our launch day alone, we got over $400 in pledges for our projects in addition to nearly 2,000 pageviews.
From legal issues, such as gaining 501(c)(3) tax-exempt status from the IRS, to the complexities of planning and developing a comprehensive plan leading up to launch day, I’m unbelievably proud of the work we’ve done to get to where we are today. But more importantly, I’ve been humbled by the challenges that entrepreneurs face each and every day and the support we’ve received to overcome those challenges.

Let me first take a step back.

Sponsr.Us is a student-run non-profit transforming the way high school and college students start their own clubs, community service projects, and other non-profits. Our five-person team, consisting of some of my closest friends from my high school years, wants to foster conditions for experiential learning for students by helping them bring their ideas to life. We plan to accomplish this through our own online social fundraising platform and good, old-fashioned mentorship – a combination we think will not only be effective, but scalable.

Here are some of our experiences as a startup – lessons learned and suggestions for your own initiative.

You don’t have to reinvent the wheel. Leverage existing examples, tools, and people.

Our startup, like all startups, takes advantage of existing models for success and builds upon them to create a unique model for our targeted market.

Specifically, we’ve incorporated existing crowd-fundraising strategies, implemented by successful companies such as Kickstarter, into building our own platform. However, our platform is not only exclusive to student initiatives, but also adopts a 100% donation model, modeled off of the successes of Watsi and Charity:Water, where all donations go directly to the project a donor is supporting (In contrast, Kickstarter takes a cut of about 10% off of each transaction). We cover our own operational costs and even credit card transaction fees through private donors – something that we hope will really promote donations to our student projects.

Furthermore, from our own experience, and seeing the successes of programs such as Ashoka’s Youth Venture program, we know that mentorship is as essential as fundraising. We’re replicating that experience by pairing our students with mentors to guide them throughout the process. From defining a solid idea to budgeting to fundraising, planning, pitch-video filming, and actually launching and sustaining the initiative, we want to be with our students every step of the way.

Never forget the value of iterating and adapting

Sponsr.Us as it exists today is very different from the idea we started with, which was essentially just a fundraising platform open to all students who wanted to start something. Yet as we worked and did more research, we realized that fundraising is not the only obstacle students face in taking their ideas to the next step. To be successful, most individuals also need to bounce ideas off of like-minded people as well as support on how to fundraise and how to promote an initiative. What started out as just a website became an organization with a fully developed program. We hope that the ecosystem we’ve devised will work for not just the projects in our first round, but potentially thousands more as we scale up our operations and as current project members become future mentors.

Keep your ultimate goal in mind, but never be afraid to pivot to a better solution, even if it’s radically different from your original idea. We wanted to empower students to start their own initiatives, but just providing an online platform was not enough to make the difference we wanted.

Plan, but set a timeframe to launch

One of the parts that I’ve found especially frustrating is how much of a logistical mess startups are – deadlines are so often pushed back, especially when everyone on the team is in school. As any programmer will tell you, developing something takes a lot longer than you’d initially expect. There’s a fine line all startups walk between getting it right and getting a product out quickly. We’ve taken the slow path to get to where we are – and that’s fine for our case. But for many startups, that just won’t work, especially for tech startups; things just change too quickly. At the end of the day, even the best product won’t be any use until it’s launched – and we’re so glad to have launched. Pick a timeframe and work towards it in manageable milestones.

Our fingers are crossed that we’ve set a solid groundwork for Sponsr.Us not only for now, but also for the many years to come. We’ve done our research, filed the necessary paperwork, coded the platform, written the fine print, convinced as many students as we could to apply to our program, and spent countless hours debating the nuances of our organization. Plus, we’re starting small – three projects are a part of our initial pilot round.

Even then, we’ll undoubtedly run into hiccups. But hey, if we didn’t, what would be the fun of it all?

Read the press release for the Sponsr.Us launch here.
Learn more about Sponsr.Us and support our projects here.
Like us on Facebook (/SponsrUs) and follow us Twitter (@SponsrUs).

Reposted from the Harvard College Venture Partners‘ blog.

So excited to be a part of the HCVP team! Will be sharing more about my experience soon.

Categories: Personal Experience, Sponsr.Us.

Final Project – Self Balancing Robot

For my final project, I worked to create a two-wheeled self-balancing robot — somewhat like a Segway, but without speed/direction control. The idea was for the robot to be able to compensate falling action (as measured by a gyroscope and accelerometer) by producing opposite torque through motors. I built this robot with my friend, Sam, out of parts from the VEX robotics system.

Overall, there were two major hurdles:

  • Filtering the angle from the gyroscope/accelerometer
  • Figuring out an algorithm that would compensate for the falling robot

To address the first issue, I implemented a complementary filter that combined the reading from the accelerometer and gyroscope to produce one, more accurate reading.

    \[\theta (n) = C_{gyro} * \theta_{gyro} + C_{accel} * \theta_{accel} \]

    \[ = 0.90 * \int_{0}^{t}d\theta + 0.10 * \frac{x}{\sqrt{x^2 + y^2}} \]

The issue with gyroscopes is that they exhibit “drift” over time due to the time integral (gyroscopes give a reading in terms of rotations/sec — hence the need to integrate over time). On the other hand, accelerometers are inherently really noisy. Above, I calculate the angle from the two components of the accelerometer through a sin approximation:

    \[\sin \theta  = \frac{opposite}{hypotenuse}\Rightarrow \theta \approx \frac{opposite}{hypotenuse}\]

I heavily weighted the gyro reading because of its accuracy and relative lack of noise. Combined with the accelerometer, I’m able to minimize the effects of drift over time. Take a look at the image below, which is a sample of readings from the gyro/accelerometer after letting the readings run for a while. Clearly the gyro (green line ) has drifted significantly over time — but because I’m also “complementing” the gyro reading with the accelerometer (red line), I get a nice reading from the combination of the two (blue line). The formulas above make it possible to take the best parts of both accelerometer-calculated and gyroscope-calculated angles. See my implementation here (includes file for Arduino and Processing display).

Red: accelerometer (note the noise); Green – gyro (note the drift); Blue – combined angle

To address the second issue, I’ve adapted an standard algorithm called a PID controller. Essentially it’s a feedback loop where three terms are weighed to provide an appropriate output value to reach a target value. In our case, we’re measuring the angle relative to the upright position (theta = 0). The output is the pulse length (which controls speed and direction) provided to the motors.

The three terms are the proportional, integral, and derivative terms. The proportional term serves at the main error correction factor: the larger the error, the more needed to correct the error. The integral term takes into account past errors to better correct the error. In our case, this acts as a term that accelerates the motor when the P-term fails to compensate for the falling. Finally, the derivative term enables correction of future errors and acts as a “dampening” factor to minimize oscillations around the target point.

    \[ output(t) = K_{p}  * \theta(t) + K_{i} * \int_{0}^{t} \theta(t)dt + K_{d} * \frac{d\theta(t)}{dt} \]

Take a look at my full implementation in this Github repo.

My self-balancing robot

Breadboard close-up

Unfortunately, the robot did not end up working for longer than a few seconds. My feeling is that the problem lies in the “looseness” in the motors due to the range where you can turn the wheels without activating the internal clutch of the motor. Hence, in most cases when the robot fell and the motors started compensating for the fall, by the time the motors had “caught up” with the gears to counterbalance the initial fall of the robot, it was already too late to stop the robot from falling over on the opposite side. Perhaps faster motors might fix the problem. (I did try messing around with the gear ratio a bit, but couldn’t make the motors too much faster without loosing the torque needed to keep it up)

Perhaps in a later iteration, I’ll try using different motors or try anticipating the subsequent falls in an adaptation of the PID controller.

It’s been a ton of fun this term exploring physical computing and computing fundamentals through the Arduino. I’ve learned a ton! When I get a chance later on, I’ll clean up the other things I’ve worked on this term and post them on this blog.

Any thoughts? Leave me a comment!

Categories: Projects, School, Technology.

Tags: , , , , , , , , ,

So what exactly is a microcontroller?

So I’m doing an independent project on microcontrollers. Perhaps you’re wondering what I’m referring to when I say “microcontroller.” I’m supplementing my Arduino Cookbook with Computer Architecture: A Quantitative Approach by John Hennessy and David Patterson. I was lucky to be able to get a copy (albeit an out-dated version — the 3rd edition) through the library network. According to Wikipedia:

microcontroller (sometimes abbreviated µCuC or MCU) is a small computer on a single integrated circuit containing a processor core, memory, and programmable input/output peripherals. Program memory … is also often included on chip, as well as a typically small amount of RAM. Microcontrollers are designed for embedded applications, in contrast to the microprocessors used in personal computers or other general purpose applications.

The Arduino Uno uses the Atmel ATmega328 (large chip, see photo below), an 8-bit AVR RISC-based microcontroller, as the primary “brain.” 8-bits corresponds to the size of the “unit” of data used by the processor (ie. the registers are each an octet (8-bits) in size). AVR the name of the processor architecture created by Atmel. RISC — Reduced Instruction Set Computing — refers to a broader architecture type.

The Uno also uses the Atmel ATmega16U2 (small chip, see photo below) as a USB-to-serial converter. This microprocessor is not typically programmed as it enables communication of the ATmega328 with a computer (or other serial enabled device).

The two microcontrollers on the Arduino: the Atmel ATmega328 (main one, top) and the Atmel ATmega16U2 (used as a USB-to-serial converter, bottom)

I’m love the fact that one can strip away all the extraneous layers on top the Arduino to directly program the Atmel microcontroller in assembly — a low level programming language that correlates mnemonics (ie. SLEEP) with a corresponding binary op-code (operation code) that the microcontroller “understands” (ie. 1001 0101 1000 1000).

I was previously unaware of “endianness.” This refers to the order of significance of a number. Big endian means that the first number is most significant, as it is in “normal” numerical representations (ie. in the number 110, the first 1 correlates with 4, so that the number equals 1*4  + 1*2 + 0*1 = 6). But in little endian, the same binary number equals 3, where the first 1 correlates with 1 (ie. 1*1 + 1*2 + 0*4 = 3). Things are “backwards”! On the Atmel microprocessor, numbers are interpreted in little endian order with a byte being the “unit” length. So a number such as 0x0c94 (0x means the number is in hexadecimal) is actually interpreted as ox940c. (In hexadecimal, two digits correspond to a byte)

How does the Arduino interact with the ports? Well, there are three types of “registers” that directly relate with ports (imagine them as chunks of storage that the processor can access): DDRs (Data Direction Register), PORT registers (for output), and PIN registers (for input). The values in the DDR determine if the port is set as an input or an output.

Each pin corresponds with a particular bit (a 0 or 1) in the particular 8-bit register that it’s associated with (A through D). For example, the “last” bit in DDRB corresponds with pin 8 (remember it’s in little endian!). So if I wanted to make pin 8 an output, I would set DDRB to 0000 0001.

In the Arduino language, all of these nitty-gritty details are hidden through functions such as pinMode(), which does the grunt work of setting that register to the appropriate value.

Because the Arduino is open-source, all the code that goes into making this happen is ready available. Exploring some of it firsthand makes this independent project that much more interesting and exciting.

Take a look at this article for more details about the inner workings of the Arduino:

Exploring Assembly

As mentioned above, assembly is a microprocessor specific low-level language that is readily compiled into a hex format that can be “flashed” to the microcontroller so it can understand and process the program. Take a look at the Arduino build process page:

My first dip into assembly was programming a 10 segment LED bar graph that I got from SparkFun (

Simply, the program “rotates” the LEDs in sequential order. A simple task from the description, but not as simple when writing in assembly. Programming in assembly requires a completely different mode of thinking — one that I’m not used to.

One challenge was figuring out how to “delay” a program. In the Arduino language, the delay() function is a handy tool to pause a program for a bit. But there’s no “delay” opcode.

Instead, I implemented a small subroutine that capitalizes on the time it takes to execute a command (number of “clock cycles”)— essentially filling time with a defined looping command. (see line 58 of the source code)

Take a look at the source code that makes this program happen on my GitHub account under Assembly/rotating_led_bar_graph/rotating_led_bar_graph.asm. I’ve created a repository for Arduino Examples at

Rotating LED Bar graph — programmed in assembly!

So why would you program in assembly? It allows you to achieve a more compact and efficient program, which is important when dealing with microcontrollers with their limited storage and processing capabilities.

It’s pretty awesome to try out assembly programming. It makes you really appreciate “high-level” programming languages such as the Arudino Language, Java, PHP, and Python for simplifying the coding process (but of course, at a cost!)

Categories: Projects, School, Technology.

Tags: , , , , , , , ,

Introduction to Circuits

Essentially, a computer is just a really clever arrangement of circuits that enable “useful” functions. The processor, the “brain” of the computer, is an extremely complex arrangement of transistors and other components that enable it to perform calculations.

However, these calculations are not done in the base-10 fashion we’ve become accustomed to, but rather are done in base-2: 1s and 0s. In truth tables, “true” and “false” are often used, and in electronics, “high” and “low,” to represent 1s and 0s, respectfully.

Over the (relatively) short history of computer science, people have come up with clever ways of representing what we know from numbers to text to images into the “machine” code of 1s and 0s.

Amazingly, the logic behind representing something as complex as a photograph comes down to the use of the basic logical operators: NOT, AND, and OR. It’s interesting to note that using just NAND (NOT AND) or just NOR (NOT OR), you can create all other two-input operators.

Using an Arduino without the Arduino

A nice feature of the Arduino is its built in voltage regulator, which produce a consistent 3.3V and 5V output. This is really useful for electronics projects that aren’t programmed, but just need a reliable power source.

Below are some logical operators created with simple buttons on a breadboard.


At first, I had some difficulty figuring out how to wire up a button to the Arduino (simple digital input). I made the beginner’s mistake of not “pulling down/up” the button to the ground/voltage source— I left the button “floating.” This can cause extremely unpredictable results, especially given the sensitivity of the Arduino inputs. “Pulling down/up” gives the input a default value of 0 or 1, respectfully, and ensures that the Arduino reads that input when the button is not pressed down. This can either be manually done by actually grounding the button with a resistor or programmatically through the built in function “pinMode([pinNum], INPUT_PULLUP).” This function “pulls” the button up to the 5v source via a built in resistor and thus inverses on and off.

The Arduino can accept a wide range of inputs ranging from potentiometers to light sensors to accelerometers to GPS antennas. This wide range is made possible by both digital inputs (1s and 0s) and analog inputs (mapped between 0 and 1023). More complex instruments will often have its own IC chip to process the signal and convert it into a readily readable binary format. I’ll talk more about these communication formats later in the term.


As the building block of modern computing, transistors are important to understand. In digital electronics, transistors act like a switch (in some ways like the buttons above). In analogue electronics, they act as amplifiers.

A transistor has three “legs”: a base, a collector, and an emitter. The base acts like the “gate” for the flow of electricity between the collector and the emitter.

In an NPN transistor (as used above), the transistor is made up of a sandwich of n-type (negative type), p-type (positive type), and n-type semiconductors. These kinds of semiconductors are known as doped semiconductors — where impurities are added to change the property of a pure semiconductor.  When a current is provided to the base, even if it’s minimal, it can trigger a large current flow from the collector to the emitter.

Categories: Projects, School, Technology.

Tags: , , , , , , , , , ,

What’s an Arduino?

This term, I’m pursing an independent project at Phillips Academy in computer science to explore the Arduino microcontroller board through the Abbot Independent Scholars Program. By the end of the term, my goal is to answer some questions not only about this marvelous little board, but also about some computing fundamentals. How is a microcontroller similar to the computers we use everyday? How is it different? What makes the Arduino such a unique tool and what role does open-source play? How does the Arduino combine various components into a useful package for programmers and hardware developers? How does an Arduino communicate with a computer and other digital components? What limitations does the Arduino have? How does the Arduino IDE convert Java-like code into something the Atmel processor can understand? What allows a processor to really “process” inputs into useful outputs? How can microcontrollers permeate our lives to make things around us smarter and more engaging? What’s the future of low cost computing?

Whew. That’s a huge list, but hopefully it gives you a sense of the scope of what I’m trying to tackle. Last year, I learned a ton about programming screen-based applications in Java through AP Computer Science. This term, I hope to do some “physical computing” and better understand what goes into making our computers tick. Given the increasingly important role of computers, I think it’s valuable to know what makes a computer so versatile.

For this course, I’ll be primarily using the “Arduino Cookbook” written by Michael Margolis and published by O’Reilly. Taking a look at the first few chapters, I’m really excited to be pursing this project over the next eleven weeks. I’ll also be supplementing that with online resources, such as MIT OpenCourseWare.

I’ll be blogging throughout the term about my explorations of the Arduino and physical computing. In some ways, my computer science independent project is also partially an electrical engineering project as it deals at lot with how you can utilize and program electronic components. As such, this will be my first dive into EE — the backbone of computer science.

Follow along! I’ll be tagging all the articles with “Computer Science: Microcontrollers” (the course name I’ve come up with) and “Project 600″ (The school’s course code for independent projects).

Interested in learning more about computer science, physical computing, microcontrollers, and/or the Arduino? Send me an email at contact[at]! At Phillips Academy and love computer science? I’d love to chat with you some time!

Thank you so much to Ms. Litvin for teaching me so much last year in AP computer science and for advising me in my independent project.

My trusty Arduino Uno (left) and self-soldered Maker Shield (right)

Categories: Projects, School, Technology.

Tags: , , , , , , ,

Touchpad Heartstrings

I recently was fortunate enough to pick up one of the last available HP Touchpads in New York City. Late afternoon, I figured the tablets HP was basically giving away would have been long sold out in the Best Buy on 5th avenue — but there happened to be a couple left.

After HP announced that it would be discontinuing the Touchpad and dropped the price to $99 and $149 respectively for the 16gb and 32gb versions, people flocked to the HP website to buy one. I’m sure that many like me bought one in hopes of running Android instead of the dying OS in the near future (btw, the folks over at CyanogenMod (which I currently run on my Samsung Galaxy :D ) are making good headway on that)

But after getting one, there was a bit of tugging at my heart for Palm. After using its long outdated PalmOS for years, they developed WebOS. To be honest, I’ve really developed an appreciation for the platform. Struggling against the massively popular Android and Apple devices, the late-to-the-game player with sub-par devices couldn’t remain standing. I really think that if Palm had made their devices nearly perfect at first, the situation would be starkly different from today. The Pre, although nice, just couldn’t really match the iPhone in build and polish. The same goes for the HP Touchpad. It’s nice, but even as HP found out, the hardware is just too limiting. WebOS runs nearly twice as fast on an iPad 2. HP bought up a fantastic company, but with some execution issues (both Palm’s fault and HP’s) now it’s left with a falling community of users.

WebOS is really nicely suited for a tablet interface. I liked it on a smartphone (though laggy at times), but I love it on the large screen of the Touchpad. The multitasking implementation is easy to use and intuitive, but again, the hardware lags behind the software. Boot time is way too long and things just lag all around. It seems just that HP was in a hurry to get the Touchpad onto the market.

Although Microsoft’s Windows Phone was a late player as well, I feel the combination of quality hardware and a larger selection of devices made the difference for the software giant. WP7 is sure to be a huge player in the mobile market and with the introduction of Windows 8, we’re sure to see some shiny tablets running ARM-based Windows soon too.

Although HP is going to license out WebOS for third party hardware developers, it’s probably too late for any major companies to pick up the OS given the strong alternatives available now.

At the same time, Blackberry is riding on a shaky bridge as well. The Playbook is pretty bad in my opinion, designed as a “complement” to a Blackberry smartphone. Although not terrible, I feel the Blackberry new touch-based OS is too deeply rooted in the older Blackberry OS and as a result, feels clunky.

In some ways, I feel HP might have pulled the plug a bit early on the TouchPad. Better hardware and a clear advertising campaign could have turned it around. But then again, focusing on core business instead has its merits as well.

As many wait for Honeycomb on the TouchPad, I think a lot of people will come to realize the potential WebOS had to shake up the mobile computing market. Maybe HP’s hope is that some major software developers will recognize and bring more quality apps to WebOS. But to these people, first building better Android apps is probably much higher on their to-do list.

Palm, rest well, you’ll be remembered in many people’s hearts. The contributions you’ve made to mobile computing are extraordinary.

Overall, I’m really glad I got a TouchPad. There are a couple really nice apps (WordPress for Touchpad!) and hey you never know, maybe WebOS will make a come back…. throwing so many devices into consumer hands has to have some effect.

UPDATE: Thought I’d mention some cool pluses. You get 50GB of free cloud storage through — for life. The other thing is that messing with the Touchpad is ridiculously easy: you enable Developer Mode (though a code that you type into the search box) and install Preware (basically Cydia for WebOS). I have to say that I’ve significantly reduced lagging with some patches and installing an overclocked kernel.

Categories: Other Devices, Technology.

Tags: , , ,

Pulse – Open Source Community News Platform

Back in the spring, I came up with this idea for a community news source for my high school. Combining news feeds from Twitter and a user-generated stream of bite size content, this “Pulse” intends to be a gateway for campus news.

I got a chance last week to start coding up the platform and I’m basically done implementing the basics. In a nutshell, it aggregates (using SimplePie) RSS feeds into a single stream of news and then displays it. I’m using Tumblr as the provider of the user submitted content since it 1)allows for anyone to contribute out of the box and 2)has that focus on “bite sized content”, which can be short posts or photos or even videos.

I could have just kept it straightforward and just a single page, but from there, I figured I would take it a step further and integrate in some javascript. Now, the PHP-based platform is complete with jQuery effects and AJAX loading.

I’ve open sourced the code for anyone to use. I really think this kind of community news source would be great within a lot of high school and college communities, but we’ll see how it goes at my school.

Check out Andover Pulse at and the code is available on GitHub at

Let’s start a change in how news is made and discovered on campuses! Interested in starting a Pulse at your school? Contact me!

Categories: Projects, Software, Web.

Tags: , , , , , ,

Sponsr.Us – The Future of Student Initiative Funding

I’ve recently been working hard at a new project. It’s called “Sponsr.Us“. The basic premise comes from a program offered at my school called “Abbot Grants” — this program allow student projects to receiving funding from the school to make them a reality. Students use the money to purchase items for clubs, bring in guest speakers, etc. But beyond the boundaries of Phillips Academy, students may find it difficult to raise funds necessary for projects.

Here’s where Sponsr.Us comes in. It’s a two part website: part social fundraising (a la Facebook Causes, Kickstarter, StayClassy, etc.), part a fund provider for students. I’m hoping to apply for Sponsr.Us to be a non-profit organization and to work with local business and individuals to raise funds.

What distinguishes Sponsr.Us is a couple of things:

  • Fundraising is for something specific: rather than raising funds for “cancer research”, “science education”, and so on. It’s focused towards something specific like purchasing a video camera for a school film-making club or purchasing new lab equipment to start a higher level chemistry class or provide transportation costs for a competition.
  • Sponsr.Us is geared towards students, mainly high school and college students
  • Our organization provides funding for student projects: groups will apply for the funding (6 or 12 month cycles)
  • We’re non-profit: donations can be tax-deductable

I’ve already registered the domain and started development using a Python web framework called Django (somewhat similar to Ruby-on-Rails)

Interested in joining in? Send me an message! We’re looking for motivated students to be a part of the team.


Categories: Projects.

ReflectionUpon 2010

The year’s wrapping up… and it’s really been quite a year. From a summer in China, to finishing my first year at Andover (and starting my second), to designing websites (including redesigning this blog and EricOuyang.Com), to really getting into photography, 2010 has been a memorable year.

I really need to post more often on this blog, so I’ve decided to do more microblogging (something like this post rather than a longer one). In the future, I’ll post links to sites, photos I’ve taken, and other tidbits on ReflectionUpon more often than a long article.

Random photo I thought I’d share: (By the way, I got a Flickr Pro account— so you’ll be seeing many more photos on my Photostream (and in original resolution too :D))

Stark Tree

A Stark Tree

I’m planning on getting a new lens and a Canon Speedlite, so look for photos in my photostream using those in the upcoming months!

2011 — here we come!

Categories: Photography, Uncategorized.

Tags: , , ,

Reflections Upon… This Summer (Part 2-Public Transportation)

China (according to 2010 estimates) has over 1.3 billion people. That’s a lot of people at just under 20% of the world’s population and it’s a good thing that not all of them own a car (or two or three, like it is in the United States). Plus, best of all, there is a well established infrastructure of public transportation.

Shanghai Metro Line 2

As you know from my last post (here), I was in China this past summer and I visited the world’s most populous city (by city proper), Shanghai (though that’s disputable). Inside Shanghai’s city proper, there is a population of 13.8 million people in a space of a little under 2,000 square km, so it’s very crowded (and now even more so with the world Expo there). In each square km, there is over 7000 people. How are these people getting to work each day and around the city? It would be a nightmare if they drove to work. Shanghai, with the world’s longest network of metro rail, has very good public transportation. It is one of the world’s fastest growing subway networks with 12 lines right now (minus the Maglev) and 22 planned to be completed by 2020. And— it only started operating in 1995, 15 years ago.

Although many of the locations surrounding the planned stations (and even some of the outer city ones now) aren’t exactly populated yet, Shanghai is planning for the future. Even with the one child policy, China’s population is still growing extremely quickly and it’s better to be prepared.

When I was in China, subway was definitely the preferred way of transportation. Shanghai has clean, fast trains (manufactured by various companies including Alstom, Bombardier, and Siemens) that avoid the nasty traffic above ground and get me to basically anywhere I need to go. With a daily ridership of 4.78 million, it’s well used. Very rarely would I want to ride on a taxi (unless it’s late at night) since the subway would bring me there much more quickly, especially during rush hour (which is quite scary to be honest both above and below ground)

China has caught on with the idea of building subways in it’s urban centers, currently planning or constructing several subway systems across the country  to provide the transportation people need to get around more efficiently than above ground buses, taxis, and cars. Last year, there were at least 15 cities with subway systems under construction and 12 with subways in planning. With billions of dollars poured down the throat of metros, China is trying to avoid even more traffic congestion. Selling more cars to it’s people than the United States, a lot of cars are put onto the road each year. In other cities where the subway isn’t as developed, it is more convenient having a car, and as more and more people have the money to purchase cars and the prices of cars get lower, more and more people will get cars. And that’s not good considering all the issues of traffic congestion and pollution (which in itself leads to global warming, lung disease, etc.). China realizes this and because of this is willing to send all this money into public transportation.

The high speed train on conventional rail to Hangzhou, China

Public transportation between cities is excellent as well. With upgraded traditional rail, and new elevated tracks running across the country, China has the world’s largest network of high speed rail (with the definition of having trains run at an average speed of 200km/h or higher). Right now, China has about 7000 km of high speed rail. The entire length is planned to reach 13,000km by 2012 and 16,000km in 2020. By contrast, the U.S. only has one high speed rail running from Boston to Washington D.C. and that’s by the Department of Transportation’s definition. This rail only has an average speed of 109km/h, though it reaches 240km/h.

Just like the youth of China’s subway system, this new push towards high speed rail is fairly recent as well. In 1993, the average speed of commercial trains in China was only 48.1 km/h.

Both China’s metro and high speed rail systems are very impressive, particularly looking at where they are headed. Although China’s need for these systems can be easily seen, the U.S. should more heavily consider developing it’s public transportation further. Considering airplane fuel costs and environmental issues as well as population growth, high speed rail and subways should be created and upgraded across the United States. Honestly, the U.S. doesn’t really have the money to do it now, but really Uncle Sam, as soon as you have the money to, consider your options for the future of transportation.

Sources/For more info:

Categories: Personal Experience.

Tags: , , , , , , ,