China is the manufacturing capital of the world. With over 800 million workers, its workforce is the largest in the world. The obvious answer to manufacturing anything anywhere is China. Because of one reason: it is cheap.

China has a detrimental obsession with cutting costs. Lower costs to their manufacturing means more corporate profits. (Obviously, workers aren’t seeing any of that. Their wages are decreasing.) In fact, the sole reason that China is really any manufacturing power is because of the two reasons:

  1. Cheap labour.
  2. …due to the arbitration of cost of living and currency value.

Currency value drives the low manufacturing expense. Workers work for dollars a day. Their living expense is lowered, because of the low cost of goods in their country. The low cost of goods in China makes less money for the people selling the goods, which is okay because they don’t need much to live up on either. It’s a vicious cycle. If you go to any city in China, your one dollar will get you far more than what it would in the United States.

Even still, cutting costs is something that is still being done. However, the cutting of costs leads to many, many downsides with its quality, workers, Chinese residents, and China as a whole.

  1. Lower quality
  2. Less inspection (high risk to consumers)
  3. Worker conditions and nonexistent worker rights

Lower Quality

The lower costs to production lead to lower quality goods. Products made from cheap materials are rampant in China. Unfortunately, the words “Made In China” is sometimes associated with low-quality goods. And in some cases, it is fitting.

Although the quality of goods is decent in exports, the quality of goods for consumption in the nation itself is a completely different story. The production of products for use internally by China is governed by an extremely aggressive cost-cutting strategy. There have been, however, incidents with exported Chinese goods that are indeed low quality, and unless the clients of the manufacturers change, nothing in that area will ever change.

Less Inspection (high risk to customers)

Throughout the years, there have been cases of anything extremely awful happening with exports to the United States or other purchasing companies, including a few large incidents that are usually few and far in between. However, as previously stated, the story is different when dealing with Chinese goods.

I rarely go to China these days. I love the country, but the quality of goods there is something to take note of. Although the risk is low, I’m extremely wary of the low quality of goods produced in China. I try to avoid buying manufacturered goods and foods and instead opt for direct-from-farm food.

There are two foodstuffs that I try to avoid from manufacturers at all costs: meat and milk. Those to have been through many internal incidents (since they are rarely exported, to the best of my knowledge.) Milk is very different in China than in other places.

The inspection problem is rampant in China. Many times, I do not even opt for the direct-from-farm milk produced by farmers and delivered directly to the door. At China’s massive size, reach, and traditional village and individual autonomy, it is virtually impossible to impose laws and inspections upon the farmers that produce the foods. One does not, for example, know even if pasteurization had been performed on the milk. With farmers barely getting by every year, it is not difficult to imagine the cost-cutting that farmers may take part in.

Manufactured is not better, nor does it give much more confidence to the informed consumer. Although one may say that manufactured milk is more regulated and less autonomous in terms of government intervention, that argument has some merit, but not much. The government seems not to care much about its own people and inspections, though I imagine exist, are not powerful enough. Nor does the government want them to be powerful enough: the more interventions, the higher the cost for the manufacturers, the higher cost for the consumers, and thus, less money exchanges hands, cutting off the blood supply of the national market. Like the small individual farmers, the manufactuers have a will to cut costs.

The problem with laissez-faire economics and market ideals is this very idea. China, despite its socially Communist connections, is a very much based on laissez-faire economics and markets. This is not because the government pushed for this. It is because in a normal capitalist society like that of the United States, United Kingdom, or any other established power, interventions exist in the trajectory of capitalism. With a free market, none of these interventions exist, effectively giving the corporation more power than the government. A normal established capitalistic society has these interventions to protect both their power in their respective nations as well as the well-being of their customers. These are inspections and regulations such as with the FDA.

The difference here is that American manufacturers deal with these inspections and imposed regulations. Thus, the quality of goods is directed by the government, who does have the power to change the regulations and tell manufacturers to comply or get out. Interestingly, China has some power in this as well, despite its extensive size. There is little will to do so, though.


Labour is a huge problem in the nation. Few laws really govern the rights of workers in China. Even still, such laws are rarely followed, given the large extent of the nation. The working conditions in China are notoriously miserable. Cramped areas, hard, fast-paced, dangerous work, in any sector of work, be it manufacturing, mining, buliding, anything.

It is difficult to gauge the quality of working condintions in China. The problem is with the indifferent mindset of consumers: we know that someone produces the goods that we purchase. But do we care about their conditions? Are they just not simply replacable, behind-the-scenes workers?

This disappointing mindset is the block for change towards responsible and ethical working conditions.

Though there seems to be some reports of manufacturing factories being not as bad as they seem, one has to understand that, especially in this economy, the amount of manufacturing work that is outsourced to China is increased every day. They are pushed to produce and produce more. It is most likely true that the amount of new clients and new manufacturing contracts to China outpaces the improvement of working conditions in China.

Interestingly, labour is one thing that can be changed, at least for manufacturers that serve 1st world clients. That’s my next article.

How to determine what’s important, and what you should drop

Throughout high school, I’ve racked up many achievements and leadership positions related to school. Every year, though—I’ve decided to give it all up to focus.

  • Sophomore Year: Sophomore Representative to School Council (and the year before as well) — could have done junior year, decided to quit
  • Junior Year: Debate Club President — could have won President again, but decided to quit
  • Junior Year: Convention Coordinator at the Northeast State of the JSA — could have campaigned for the top position as Governor, but decided to quit

All decisions, all about giving up positions of authority and prestige up, after working very hard to get to them. I’ve found that I sometimes regret these decisions, and whether they were the best to make.

The Problem with Focusing

The main problem with focus is that focus usually means dropping other things. When we’re talking about things you’ve worked hard to achieve—positions of leadership or otherwise—it’s hard to let go.

However, the things that you do that don’t line up with what your real focus (and areas of development) will act like leeches on your time and energy. In many cases, that’s more detrimental than hanging on. When you’re at that point, it’s important to know how to rotate your focus ring with precision.

Areas of Development

I’ve identified three areas of development that I’d like to see from everything that I voluntarily work on.

  1. personal development — helping me work with teams, people in general, getting work done
  2. social development — chances of meeting new and valuable people in the process of work
  3. college and résumé/career development — chances to improve my chances in college and in my career
  4. extrapersonal benefit — helping others, including those who can’t help me back (a life goal)

Think about your own areas of development. Like above, write down the area and a description on why it’s important to you to develop.

Questions I Asked Myself

Indeed, they weren’t easy decisions to make—each of them required a lot of thinking beforehand to determine whether they were the best decisions to make. They were based on:

  • If I continued, how much workload (time) would I have to spend on it?
  • Will this workload affect my ability to do work that I really, really want to focus on? (entrepreneurship)
  • Is continuing an acceptable sacrifice for the areas of development?
  • Is quitting an acceptable sacrifice for focus?
  • Is this really something that contributes to my life goals and areas of development? How?

Ask these questions to yourself with regard to your areas of development. Is it something you’d like to still pursue?

Through experience, I’ve seen that maintaining focus is important. It has affected my hard-earned positions of leadership, but it’s important. A tough choice to make, but in the end, one that is very valuable.

As I step on the subway, I take note of society around me. I love the subway. It’s one of the best places to explore one’s curiosities about society and the world. However, today I notice one thing.

Everyone is connected.

Through mobile.

Let’s take a step back. Let’s look at mobile from the big picture standpoint. Mobile is what connects us. It is what breaks barriers of distance and time. It allows humans to communicate notwithstanding the normal constraints of communication. We can call, text, or MMS anyone we know in the world.

Everyone around me there are mobiles. iPhones, Blackberries, Nokias, Motorolas. All of them connected in an international network that connects all people to each other.

What is so amazing about mobile is that it is the first technology to connect people wherever they are. As opposed to before.

It’s a completely revolutionary technology. Mobile. 3 billion subscribers. And we’re just getting started.

Although I’ve expressed approval for the new Facebook redesign, it’s obvious that many, many people hate it. If you’ve been on the new Facebook for more than a few milliseconds, you would have figured this out.

Let’s analyse this disapproval. Firstly, every single Facebook redesign or new feature, since it went mainstream, has been criticised by users. Everyone seems to hate them.

  • News Feeds 2007
  • Applications/Platform 2007
  • Beacon Ads 2008
  • New Facebook 2008
  • News Feed Redesign 2009

With the exception of Beacon Ads 2008 (and hopefully News Feed Redesign 2009), all users have gotten used to them and realised the potential and usefulness of the new features or redesign. This is obvious.

A Little Poll Comes Along

Some guy develops a Facebook app, covered by TechCrunch: Facebook Poll: 94% Of Users Don’t Like Redesign. This is an area which I really, really like to think about all the time: statistical bias. In a specific area: how bias is achieved through ignorance.

Main gist: there are three barriers to entry in this voting system.

  1. Giving a crap.
  2. Clicking through to the poll.
  3. Installing the application to vote for the poll.

People that feel that the Facebook redesign sucks will go ahead and have an initiative to ask Facebook to change it, because it apparently sucks. They pass all three barriers, because they have a drive to be against the Facebook redesign.

Others that feel that the design is indeed a pretty good design, and the “yes” people accept it as the status quo, and don’t make any noise about it. Therefore, many of them don’t have the initiative to fight against the naysayers, and go through the trouble of installing the application, so therefore we see a lesser-than-actual “yes”-sayer audience.

Another Facebook-related bias is the outrage against the Facebook Terms of Service change. Although probably less than 0.1% of people really cared about it (and that’s a pretty high estimate, since that’s about 200,000 people) are the ones who made the most noise and had the biggest audience. Not saying that’s a bad thing—it can be an important matter to concerned users—but that’s the reality of it.

Do you think anyone that didn’t really care about the Terms of Service changes had any initiative to argue for it?


Gnomedex was an amazing experience and the best technology conference that I’ve been to (which is admittedly not many.) Excellent sessions, excellent setup, excellent people. These are mostly lessons learned from mistakes, a couple of what I did right, but mostly mistakes.


Gnomedex was my first speaking gig ever. Presenting in front of 280 Gnomedex attendees in addition to 850 viewers through the Ustream stream online was a nervewracking experience, which wasn’t particularly helped by some hardball questions. Nor did it help that, at 16, I was the youngest speaker at the conference.

1. You aren’t talking to 1130 people– you’re conversing with just one person.

This advice was given to me by Todd Sawicki of Lookery an hour before my presentation, which, as much as I wanted to make happen, on stage didn’t. The knowledge that more than a thousand people are watching you is intimidating. You aren’t afraid of speaking, you’re afraid of making a mistake.

After the presentation, Brian Westbrook asked me to participate in a radio interview. During the interview, I felt completely comfortable. Without stuttering or giving vague answers, I was able to bring up points I’d forgotten to mention in my presentation.

The way I’m going to look at this from now on is to think of the entire audience not as 200 people but a person directly in front of you that you’re demoing your deck to. The seats are empty.

When answering a question, you’re not addressing the entire audience, but the questioner.

As Todd also mentioned, it’s also much easier to think of that person in front of you or that questioner as someone you’ve talked to and feel comfortable with. In my case, I should have thought of this guy or that questioner as Brian or Todd or Ben Huh (of I Can Has Cheezburger.)

With this mindset, it’s much easier to hold a relaxed speaking session.

2. Actually take said advice, or you’ll be worse off.

On stage I doubted the effectiveness of Todd’s advice. (Though in hindsight, why the hell would I? He’s experienced in the matter.) Would I mess up that way, by applying that advice, taking the audience and removing them? Would it put me in the wrong mindset?

Answer is, if you don’t take it, you’ll be worse off. Still doubting? Consider my experience, first hand experience. First hand experience is what I lacked when trying to apply advice given, and now I have it. And in a way, now you do, too.

3. Don’t be a pessimist.

There are many times and places where it’s appropriate to be a pessimist. Speaking is not one of them. If you think you’ll mess up, chances are you will. Your mind will be far too preoccupied with that thought, and you’ll be dedicating concentration and attention to that, and you’ll have to ask for things to be repeated, not think correctly, forget to deliver vital points, and so on. Think positively.

4. Be humble.

Gnomedex pushed a lot of (maybe too much) recognition for myself, which was mostly my fault. I’m just as much of a developer as the next guy (or less so) and I wasn’t really anything special, nor was the stuff that I did that I was recognized for, even though that’s the idea that was given off.

Being an arrogant dbag doesn’t really go down well with the audience. When you can, refute false claims people make about you (or those that are simply exaggerated) make instead of laughing them off.

In addition, if someone underestimates you, don’t correct them unless it is vital to do so. I made the mistake of looking like an arrogant dbag, when Chris Pirillo said “he’s sold a Facebook app” and I corrected him with “actually like three.” (Update: Thanks all for your opinion. Didn’t really know what the audience thought – now I do. Many thanks!)

5. Even if you’re winging it, rehearse. A lot.

Not many presentations these days have the speaker looking down on a script (though you could say the new scripts are four-level bulleted 10 point text size slides, in which case put on your headphones and just read the slides like the speaker is.) Most presentations, people are taking it from their head. Rehearse a lot, and that doesn’t mean rehearse silently in your head. The ideas originate through your head, the ideas come through your mouth. It’ll get you into a procedure and regularity and you’ll help to prevent forgetting points and nervousness.

6. You have friends, they have a minute.

Chances are, your friends would be down with helping you rehearse your presentation and giving feedback on them, like my friend and business partner Dan Grover of Wonder Warp Software. Not only is it a relaxed environment, you’ll get better feedback than that voice in your head since they’re like an audience member. Do this with a few people to get a diverse range of minds. Do it over iChat theatre, Adobe Acrobat Connect, or send them the slides (if applicable) and do it over Skype or the phone. If you do this a few times, with the right people (as in those that are like the audience that you’re presenting to) you’ll get a general idea of what the audience will think.

Furthermore, don’t shrug off criticism, find out what caused it, if changing things would help, and then decide whether if you need to fix it. And, remember to return the favour.

7. Say “I don’t know.”

At my Gnomedex session, 30 minutes of the 45-minute session were devoted to Q&A. Many of their questions asked me to predict the future and make blanket statements and observations about Generation Y. Many of these I couldn’t answer; I’m an entrepreneur, not a fortune teller. So I opted to bullshit my way through. As a friend suggested, it would have been more effective to just say “I don’t know.”

8. You can’t please everyone.

After I stepped off the stage, I was in a state of panic. I thought I had screwed up badly. This wasn’t helped by the anonymous reviews on RateMyTalk, which contained a few “not interesting”s (more than one which made my blood pressure high.) J.P. Taylor offered the following, though: You can’t please everybody. There will always be critics. And that’s the risk you take when doing a speaking thing or presentation like this.

Jason L. Baptiste of Publictivity also offered the following to me online. You can’t lose confidence with yourself. Once you do, you’ll lose everything.


9. Continue the connection.

Often during the conference, someone would say “hey Mark, nice presentation” and I would say “hey, much thanks!” followed by an awkward period of both of us walking and not looking at each other. In this situation, STICK OUT YOUR FUCKING HAND and introduce yourself. Nothing sucks more than a loose end, and immediately after you miss the connection you’ll feel a sharp pang of regret, followed by you looking for that person, but they’re not anywhere in sight.

9a. Just network, damnit.

Like mentioned at Gnomedex by Ignite speaker, “relax, damnit!”, just network. Damnit. Chances are, the other person you see is just as happy to network with you as you are with them. Again, stick out your hand and introduce yourself. The worst thing that can happen is that they ignore you and don’t want to talk to you. And in such a case, is that a connection you really want to have anyway?

9b. If you’re just walking around trying to find someone to talk to, look for the guys that are as lonely as you are.

Actively seek, don’t passively wait. If you’re walking around, so is at least one other person that is trying to find someone to talk to. And don’t be afraid to get into a group conversation. Return the favour; if you see someone trying to get into a discussion circle you’re in, invite them and introduce them to the group.

10. Follow up.

This was a step I (and many other people) kinda forgot a lot. Following up serves two purposes, as a courtesy, and more importantly to initiate conversation that would have not been possible during the five minutes that you talked. This is part of continuing the connection. Don’t follow up immediately afterwards (“hey, it was a pleasure meeting you a minute and a half ago”) but rather the night or the next day after the event. And, it’s always nice to follow up, and since not many do so, you’ll be a more memorable contact, so do it.

11. If they don’t have a business card, you have a pen.

“I don’t have a card [with me]” and “oh, that’s fine, you have mine anyway” kind of sucks. A majority of people don’t follow up (and I used to not do so, so I’m also guilty of the sad truth) so grab an extra card of yours and a pen, and have them write it down on yours.

I’m extremely grateful for Chris and Ponzi Pirillo and Maryam Scoble for inviting me to speak at Gnomedex. That was the best weekend I’ve had, ever.

I’m also very thankful to have great people supporting me and giving me advice either at Gnomedex or outside of it.

Much thanks to Dan Grover of Wonder Warp Software for editing a first draft of this article.

News.YC readers: After receiving feedback on my original post, I decided to delete that posting and to rewrite it, with some more insight into less of what I did and rather why.

After being somewhat burned out of my Avecora OnDemand project (because my CSS and Javascript were throwing fits in Internet Explorer) (yes, this is the cause of my burnout) and after seeing a few “how I built a webapp with just $x,000 and x people” I decided to go ahead and build something I’ve been thinking about for a while.

Thus SpeakHQ was born. SpeakHQ is a service that lets you take the micro-update/micro-blogging idea that is embedded within Twitter, for your group. This was originally developed for Avecora OnDemand, however I wanted to make it free to use for all, and with some other features like joining multiple groups.

Just to clarify, this doesn’t use the Twitter API (or else I’d have to deal with it going down every 10 minutes, hitting 70-requests-per-hour limits with 35 requests, etc.) and it’s built from scratch.


  • Mark Bao, developer, designer, everything else
  • July 3rd: 10am – 12am EDT.
  • July 4th: 10am – 2pm.
Why it’s useful:
  • Communication with micro-updates forces people to be concise and not go into large amounts of detail, one of the problems that plagues email (and skimming email)
  • Twitter demonstrated this – small updates are easy to digest. If they didn’t have a 140 character limit, Twitter would be nothing but a simplified weblog community.
  • Groups with Twitter is hard to do – the easiest way I’ve seen to do this is distributed direct messages. Although it leverages the user database of Twitter, it doesn’t present a clean solution.
  • Keep track of your own private groups with groups or projects, with co-workers, friends, or other group members, as well as public discussion groups with public groups through the group finder.
How it went down:
  1. July 3rd. 10am EDT: I used a PHP MVC framework I wrote a few months back called ActiveVC. Doesn’t have anything to do with venture capitalists, though it is a MVC framework without the Model; essentially it is a simple template engine. (See Decisions Made below for more information.) I might release it sometime for the hell of it. Decided to use moo.ajax with prototype.lite.js at first, but decided that jQuery would be better for more useful Ajax calls as well as the rest of its set of features in CSS manipulation, etc. Started database schema and planned out the UI.
  2. 12pm: User account system ready, session data is able to be handled. Working on the basic user-group membership association, and loading groups and posting messages via Ajax.
  3. 3pm: decided on the name speakhq (it was either that or groupchan) and registered the domain. Cost: $6.99
  4. 4pm: new group, group settings, user settings… and preview testing with some friends.
  5. 5pm: refreshed the interface, looks a little less bad now.
  6. 7pm: groups directory. joining/leaving.
  7. 9pm: new account creation, email invitations to public and private groups.
  8. 11pm: data sanitization (should have thought of it first) using a php function called __() (two underscores) that instead of using echo $var I use __($var) and it echos sanitized output.
  9. 12pm: bugfixing and then sleep.
  10. July 4th. 10am EDT: checking on domain registration (T_T) and then fixing miscellaneous bugs and stuff.
  11. 12pm: opening VMware to test in IE6 and IE7. OH MY GOD IT IS SO BROKEN
  12. 12:30pm: half an hour wasted fixing IE problems with PNGs, margins, random stupid width problems, etc. Thank you stilleye guy for IEmarginsFix.js, and to whoever came up with the underscore hack.
  13. 1pm: uploading to server, changing database stuff, and it’s released. yay!
Decisions made:
  • PHP MVC framework. Although my primary PHP development framework is Kohana, I decided to use my ActiveVC framework as it was light and fast at processing pages – and I didn’t need all of the features and larger library of Kohana (as it would only get in the way.)
  • Usernames or emails + name? To ensure that all user accounts were universal in the application, and to reduce confusion, I decided to deviate from Twitter’s username + name model (which made things somewhat confusing) and just went with usernames.
  • Database schema. I didn’t get a chance to catch Twitter’s SQL yesterday, but decided to set it up as follows:
    | Tables_in_speakhq |
    | groups            |
    | invites           | (table holding invite codes)
    | members           |
    | messages          | (these are status messages)
    | users             |
    5 rows in set (0.00 sec)
    This makes things logical for SELECTs and JOINs, and I'm not sure how Twitter does their schema. I chose InnoDB for its better locking levels (row level lock in InnoDB vs table level lock in MyISAM.) Since I'm updating the groups table as new messages are posted, and that new messages are easily (and frequently) posted, InnoDB was the better choice for the database.
  • Public vs. private groups. I implemented the different privacy levels to easily facilitate SpeakHQ “discussion groups” on a certain topic, such as the group speakhq suggestions where users suggest improvements for the service. Based off of this, in public groups anyone that is a member of that group is allowed to invite others to the group, whereas in private groups only the group owner is allowed to invite (with a one-use randomly generated invite code that adds them automatically to the group upon registration completion.)
  • No private messages and no profiles in first release. SpeakHQ is based on group discussion and collaboration, whereas Twitter is based on individuals sharing information to a group of other individuals (followers.) I’m still looking into what kind of messaging system should be put in place – form for email, or a system like Twitter’s direct messages?
  • Lack of replies and permalinks. I will be implementing permalinks in the future, but I don’t see the value in replies in a group space – unlike Twitter, conversations aren’t between a large number of people (at least in private groups.) However, I’m going to expect that people will be asking for it, so I will implement it soon.
  • User levels. Implemented into the database (binary member or administrator) but I didn’t implement a member level editor, for the reason that it would become more confusing in terms of how much control other group owners other than the group creator had over the member list, and the group privacy level (and we’re trying to keep things simple here.) Group owners don’t usually have much control over a group, other than changing group privacy level and the name of the group (and later deleting status messages, kicking people from the group, etc.)
Still left to do:
  • forgot password / password and email changing
  • deleting status updates
  • public group viewing
  • member list for administrators to be able to edit the group members (kicking, admining?)
  • customizable group avatars, environment (background colors, etc.)
  • yes, I will be releasing an API soon
  • outgoing SMS gateway
  • new design (it really needs one)
  • incorporate some colors

Recently, I’ve been experiencing a high CPU usage by the process syslogd in Mac OS X 10.5.2 Leopard, coupled with strange behavior. If you’re experiencing this as well, give this a shot and see if it works (at your own risk.)


FIrst, you should check if this is a problem on your system, which is usually caused by large asl.db files. Open (Applications/Utilities/ and enter the following:

du -hs /var/log/asl.db

and hit enter. If it shows that your asl.db file is pretty huge (mine was 80MB) you’ll want to run this fix. If it isn’t, a rampant syslogd is probably not due to the asl.db file, but instead some application doing a lot of logging. Open Console and look if there’s any applications that are logging a lot, like if you see ” — last message repeated 500 times —“, that’s probably what is causing syslogd to own a lot of CPU.

If asl.db is huge, do the following. You’ll first have to enable a root user to your system. Then, go to Terminal, and enter the following (enter one by one, and hit enter afterwards):

sudo launchctl stop
sudo mv /var/log/asl.db /var/log/aslold.db
sudo touch /var/log/asl.db
sudo launchctl start

You will be asked to enter the root password on the first command, while subsequent commands will automatically be authenticated as root.

Once you do this, the syslogd process should restart, but the CPU it uses should be next to nothing. Hope this helped.