<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" version="2.0">

<channel>
	<title>The Mark Bao Weblog.</title>
	
	<link>http://weblog.markbao.com</link>
	<description>Entrepreneur, President &amp; CEO of Avecora, and high school junior.</description>
	<pubDate>Fri, 01 May 2009 05:53:34 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/auxiom" type="application/rss+xml" /><item>
		<title>China’s Detrimental Obsession with Cutting Costs</title>
		<link>http://weblog.markbao.com/2009/china-cutting-costs/</link>
		<comments>http://weblog.markbao.com/2009/china-cutting-costs/#comments</comments>
		<pubDate>Fri, 01 May 2009 05:48:16 +0000</pubDate>
		<dc:creator>Mark Bao</dc:creator>
		
		<category><![CDATA[Society]]></category>

		<category><![CDATA[World]]></category>

		<guid isPermaLink="false">http://weblog.markbao.com/?p=53</guid>
		<description><![CDATA[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 [...]]]></description>
			<content:encoded><![CDATA[<p><strong>China is the manufacturing capital of the world. </strong>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.</p>
<p>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:</p>
<ol>
<li>Cheap labour.</li>
<li>…due to the arbitration of cost of living and currency value.</li>
</ol>
<p>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.</p>
<p>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.</p>
<ol>
<li>Lower quality</li>
<li>Less inspection (high risk to consumers)</li>
<li>Worker conditions and nonexistent worker rights</li>
</ol>
<h3>Lower Quality</h3>
<p>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.</p>
<p>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.</p>
<h3>Less Inspection (high risk to customers)</h3>
<p>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.</p>
<p>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.</p>
<p>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.</p>
<p>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.</p>
<p>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.</p>
<p>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.</p>
<p>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.</p>
<h3>Labour</h3>
<p>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.</p>
<p>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?</p>
<p>This disappointing mindset is the block for change towards responsible and ethical working conditions.</p>
<p>Though there seems to be some reports of manufacturing factories being <a href="http://www.chinasuccessstories.com/2007/12/04/chinese-working-conditions">not as bad as they seem</a>, 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.</p>
<p>Interestingly, labour is one thing that can be changed, at least for manufacturers that serve 1st world clients. That’s my next article.</p>
]]></content:encoded>
			<wfw:commentRss>http://weblog.markbao.com/2009/china-cutting-costs/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Giving It All Up</title>
		<link>http://weblog.markbao.com/2009/giving-it-all-up/</link>
		<comments>http://weblog.markbao.com/2009/giving-it-all-up/#comments</comments>
		<pubDate>Thu, 09 Apr 2009 22:49:06 +0000</pubDate>
		<dc:creator>Mark Bao</dc:creator>
		
		<category><![CDATA[Life]]></category>

		<guid isPermaLink="false">http://weblog.markbao.com/?p=54</guid>
		<description><![CDATA[How to determine what&#8217;s important, and what you should drop
Throughout high school, I&#8217;ve racked up many achievements and leadership positions related to school. Every year, though—I&#8217;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 [...]]]></description>
			<content:encoded><![CDATA[<h3><em>How to determine what&#8217;s important, and what you should drop</em></h3>
<p>Throughout high school, I&#8217;ve racked up many achievements and leadership positions related to school. Every year, though—I&#8217;ve decided to give it all up to focus.</p>
<ul>
<li>Sophomore Year: Sophomore Representative to School Council (and the year before as well) — could have done junior year, decided to quit</li>
<li>Junior Year: Debate Club President — could have won President again, but decided to quit</li>
<li>Junior Year: Convention Coordinator at the Northeast State of the JSA — could have campaigned for the top position as Governor, but decided to quit</li>
</ul>
<p>All decisions, all about giving up positions of authority and prestige up, after working very hard to get to them. I&#8217;ve found that I sometimes regret these decisions, and whether they were the best to make.</p>
<h3>The Problem with Focusing</h3>
<p>The main problem with focus is that focus usually means dropping other things. When we&#8217;re talking about things you&#8217;ve worked hard to achieve—positions of leadership or otherwise—it&#8217;s hard to let go.</p>
<p>However, the things that you do that don&#8217;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&#8217;s more detrimental than hanging on. When you&#8217;re at that point, it&#8217;s important to know how to rotate your focus ring with precision.</p>
<h3>Areas of Development</h3>
<p>I&#8217;ve identified three areas of development that I&#8217;d like to see from everything that I voluntarily work on.</p>
<ol>
<li>personal development — helping me work with teams, people in general, getting work done</li>
<li>social development — chances of meeting new and valuable people in the process of work</li>
<li>college and résumé/career development — chances to improve my chances in college and in my career</li>
<li>extrapersonal benefit — helping others, including those who can&#8217;t help me back (a <a href="http://markbao.com/lifegoals">life goal</a>)</li>
</ol>
<p>Think about your own areas of development. Like above, write down the area and a description on why it&#8217;s important to you to develop.</p>
<h3>Questions I Asked Myself</h3>
<p>Indeed, they weren&#8217;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:</p>
<ul>
<li>If I continued, how much workload (time) would I have to spend on it?</li>
<li>Will this workload affect my ability to do work that I really, really want to focus on? (entrepreneurship)</li>
<li>Is continuing an acceptable sacrifice for the areas of development?</li>
<li>Is quitting an acceptable sacrifice for focus?</li>
<li>Is this really something that contributes to my life goals and areas of development? How?</li>
</ul>
<p>Ask these questions to yourself with regard to your areas of development. Is it something you&#8217;d like to still pursue?</p>
<p>Through experience, I&#8217;ve seen that maintaining focus is important. It has affected my hard-earned positions of leadership, but it&#8217;s important. A tough choice to make, but in the end, one that is very valuable.</p>
]]></content:encoded>
			<wfw:commentRss>http://weblog.markbao.com/2009/giving-it-all-up/feed/</wfw:commentRss>
		</item>
		<item>
		<title>All Of A Sudden, We Are Connected</title>
		<link>http://weblog.markbao.com/2009/all-of-a-sudden-we-are-connected/</link>
		<comments>http://weblog.markbao.com/2009/all-of-a-sudden-we-are-connected/#comments</comments>
		<pubDate>Tue, 24 Mar 2009 05:28:41 +0000</pubDate>
		<dc:creator>Mark Bao</dc:creator>
		
		<category><![CDATA[Life]]></category>

		<category><![CDATA[Technology]]></category>

		<category><![CDATA[mobile]]></category>

		<guid isPermaLink="false">http://weblog.markbao.com/2009/all-of-a-sudden-we-are-connected/</guid>
		<description><![CDATA[As I step on the subway, I take note of society around me. I love the subway. It&#8217;s one of the best places to explore one&#8217;s curiosities about society and the world. However, today I notice one thing.
Everyone is connected.
Through mobile. 
Let&#8217;s take a step back. Let&#8217;s look at mobile from the big picture standpoint. [...]]]></description>
			<content:encoded><![CDATA[<p>As I step on the subway, I take note of society around me. I love the subway. It&#8217;s one of the best places to explore one&#8217;s curiosities about society and the world. However, today I notice one thing.</p>
<p>Everyone is connected.</p>
<p>Through mobile. </p>
<p>Let&#8217;s take a step back. Let&#8217;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.</p>
<p>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. </p>
<p>What is so amazing about mobile is that it is the first technology to connect people wherever they are. As opposed to before.</p>
<p>It&#8217;s a completely revolutionary technology. Mobile. 3 billion subscribers. And we&#8217;re just getting started.</p>
]]></content:encoded>
			<wfw:commentRss>http://weblog.markbao.com/2009/all-of-a-sudden-we-are-connected/feed/</wfw:commentRss>
		</item>
		<item>
		<title>A Little Case in Statistical Bias</title>
		<link>http://weblog.markbao.com/2009/a-little-case-in-statistical-bias/</link>
		<comments>http://weblog.markbao.com/2009/a-little-case-in-statistical-bias/#comments</comments>
		<pubDate>Thu, 19 Mar 2009 22:32:34 +0000</pubDate>
		<dc:creator>Mark Bao</dc:creator>
		
		<category><![CDATA[General]]></category>

		<category><![CDATA[Web]]></category>

		<category><![CDATA[bias]]></category>

		<category><![CDATA[facebook]]></category>

		<category><![CDATA[statistics]]></category>

		<guid isPermaLink="false">http://weblog.markbao.com/?p=40</guid>
		<description><![CDATA[Although I&#8217;ve expressed approval for the new Facebook redesign, it&#8217;s obvious that many, many people hate it. If you&#8217;ve been on the new Facebook for more than a few milliseconds, you would have figured this out.
Let&#8217;s analyse this disapproval. Firstly, every single Facebook redesign or new feature, since it went mainstream, has been criticised by [...]]]></description>
			<content:encoded><![CDATA[<p>Although I&#8217;ve <a href="http://weblog.markbao.com/2009/why-i-love-the-new-facebook-design/">expressed approval</a> for the new Facebook redesign, it&#8217;s obvious that many, many people hate it. If you&#8217;ve been on the new Facebook for more than a few milliseconds, you would have figured this out.</p>
<p>Let&#8217;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.</p>
<ul>
<li>News Feeds 2007</li>
<li>Applications/Platform 2007</li>
<li>Beacon Ads 2008</li>
<li>New Facebook 2008</li>
<li>News Feed Redesign 2009</li>
</ul>
<p>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.</p>
<h3>A Little Poll Comes Along</h3>
<p>Some guy develops a Facebook app, covered by TechCrunch: <a href="http://www.techcrunch.com/2009/03/19/facebook-polls-users-on-redesign-94-hate-it/">Facebook Poll: 94% Of Users Don’t Like Redesign</a>. 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 <em>ignorance</em>.</p>
<p>Main gist: there are three barriers to entry in this voting system.</p>
<ol>
<li>Giving a crap.</li>
<li>Clicking through to the poll.</li>
<li>Installing the application to vote for the poll.</li>
</ol>
<p>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.</p>
<p>Others that feel that the design is indeed a pretty good design, and the &#8220;yes&#8221; people accept it as the status quo, and don&#8217;t make any noise about it. Therefore, many of them don&#8217;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 &#8220;yes&#8221;-sayer audience.</p>
<p>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&#8217;s a pretty high estimate, since that&#8217;s about 200,000 people) are the ones who made the most noise and had the biggest audience. Not saying that&#8217;s a bad thing—it can be an important matter to concerned users—but that&#8217;s the reality of it.</p>
<p>Do you think anyone that didn&#8217;t really care about the Terms of Service changes had any initiative to argue for it?</p>
<p>No.</p>
]]></content:encoded>
			<wfw:commentRss>http://weblog.markbao.com/2009/a-little-case-in-statistical-bias/feed/</wfw:commentRss>
		</item>
		<item>
		<title>11 Things I Learned From Speaking and Networking at Gnomedex</title>
		<link>http://weblog.markbao.com/2008/11-things-learned-from-gnomedex-speaking-and-networking/</link>
		<comments>http://weblog.markbao.com/2008/11-things-learned-from-gnomedex-speaking-and-networking/#comments</comments>
		<pubDate>Mon, 25 Aug 2008 04:24:18 +0000</pubDate>
		<dc:creator>Mark Bao</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://weblog.markbao.com/?p=29</guid>
		<description><![CDATA[Gnomedex was an amazing experience and the best technology conference that I&#8217;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.
Speaking
Gnomedex was my first speaking gig ever. Presenting in front of 280 Gnomedex attendees [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://gnomedex.com">Gnomedex</a> was an amazing experience and the best technology conference that I&#8217;ve been to (which is admittedly not many.) Excellent sessions, excellent setup, <strong>excellent people</strong>. These are mostly lessons learned from mistakes, a couple of what I did right, but mostly mistakes.</p>
<p><strong>Speaking</strong></p>
<p>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.</p>
<p><strong>1. You aren&#8217;t talking to 1130 people– you&#8217;re conversing with just one person.</strong></p>
<p><strong><span style="font-weight: normal;">This advice was given to me by <a href="http://www.sawickipedia.com/blog/">Todd Sawicki</a> of <a href="http://lookery.com/">Lookery</a> an hour before my presentation, which, as much as I wanted to make happen, on stage didn&#8217;t. The knowledge that more than a thousand people are watching you is intimidating. You aren&#8217;t afraid of speaking, you&#8217;re afraid of making a mistake.</span></strong></p>
<p><strong><span style="font-weight: normal;">After the presentation, <a href="http://www.brianwestbrook.com/">Brian Westbrook</a> 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&#8217;d forgotten to mention in my presentation.</span></strong></p>
<p>The way I&#8217;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&#8217;re demoing your deck to. The seats are empty.</p>
<p>When answering a question, you&#8217;re not addressing the entire audience, but the questioner.</p>
<p>As Todd also mentioned, it&#8217;s also much easier to think of that person in front of you or that questioner as someone you&#8217;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 <a href="http://icanhascheezburger.com">I Can Has Cheezburger</a>.)</p>
<p>With this mindset, it&#8217;s much easier to hold a relaxed speaking session.</p>
<p><strong>2. Actually take said advice, or you&#8217;ll be worse off.</strong></p>
<p>On stage I doubted the effectiveness of Todd&#8217;s advice. (Though in hindsight, why the hell would I? He&#8217;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?</p>
<p>Answer is, if you don&#8217;t take it, you&#8217;ll be worse off. Still doubting? Consider my experience, first hand experience. <strong>First hand experience is what I lacked when trying to apply advice given</strong>, and now I have it. And in a way, now you do, too.</p>
<p><strong>3. Don&#8217;t be a pessimist.</strong></p>
<p>There are many times and places where it&#8217;s appropriate to be a pessimist. Speaking is not one of them. If you think you&#8217;ll mess up, chances are you will. Your mind will be far too preoccupied with that thought, and you&#8217;ll be dedicating concentration and attention to that, and you&#8217;ll have to ask for things to be repeated, not think correctly, forget to deliver vital points, and so on. Think positively.</p>
<p><strong>4. Be humble.</strong></p>
<p>Gnomedex pushed a lot of (maybe too much) recognition for myself, which was mostly my fault. I&#8217;m just as much of a developer as the next guy (or less so) and I wasn&#8217;t really anything special, nor was the stuff that I did that I was recognized for, even though that&#8217;s the idea that was given off.</p>
<p>Being an arrogant dbag doesn&#8217;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.</p>
<p>In addition, if someone underestimates you, don&#8217;t correct them unless it is vital to do so. <span style="text-decoration: line-through;">I made the mistake of looking like an arrogant dbag, when Chris Pirillo said &#8220;he&#8217;s sold a Facebook app&#8221; and I corrected him with &#8220;actually like three.&#8221;</span> (Update: Thanks all for your opinion. Didn&#8217;t really know what the audience thought – now I do. Many thanks!)</p>
<p><strong>5. Even if you&#8217;re winging it, rehearse. A lot.</strong></p>
<p>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&#8217;t mean rehearse silently in your head. The ideas originate through your head, the ideas come through your mouth. It&#8217;ll get you into a procedure and regularity and you&#8217;ll help to prevent forgetting points and nervousness.</p>
<p><strong>6. You have friends, they have a minute.</strong></p>
<p>Chances are, your friends would be down with helping you rehearse your presentation and giving feedback on them, like my friend and business partner <a href="http://dangrover.com/">Dan Grover</a> of <a href="http://wonderwarp.com">Wonder Warp Software</a>. Not only is it a relaxed environment, you&#8217;ll get better feedback than that voice in your head since they&#8217;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&#8217;re presenting to) you&#8217;ll get a general idea of what the audience will think.</p>
<p>Furthermore, don&#8217;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.</p>
<p><strong>7. Say &#8220;I don&#8217;t know.&#8221;</strong></p>
<p>At my Gnomedex session, 30 minutes of the 45-minute session were devoted to Q&amp;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&#8217;t answer; I&#8217;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 &#8220;I don&#8217;t know.&#8221;</p>
<p><strong>8. You can&#8217;t please everyone.</strong></p>
<p>After I stepped off the stage, I was in a state of panic. I thought I had screwed up badly. This wasn&#8217;t helped by the anonymous reviews on <a href="http://ratemytalk.com">RateMyTalk</a>, which contained a few &#8220;not interesting&#8221;s (more than one which made my blood pressure high.) <a href="http://www.theleetgeeks.com/">J.P. Taylor</a> offered the following, though: You can&#8217;t please everybody. There will always be critics. And that&#8217;s the risk you take when doing a speaking thing or presentation like this.</p>
<p>Jason L. Baptiste of <a href="http://publictivity.com">Publictivity</a> also offered the following to me online. You can&#8217;t lose confidence with yourself. Once you do, you&#8217;ll lose everything.</p>
<p><strong>Networking</strong></p>
<p><strong>9. Continue the connection.</strong></p>
<p>Often during the conference, someone would say &#8220;hey Mark, nice presentation&#8221; and I would say &#8220;hey, much thanks!&#8221; followed by an awkward period of both of us walking and not looking at each other. In this situation, <strong>STICK OUT YOUR FUCKING HAND</strong> and introduce yourself. Nothing sucks more than a loose end, and immediately after you miss the connection you&#8217;ll feel a sharp pang of regret, followed by you looking for that person, but they&#8217;re not anywhere in sight.</p>
<p><strong>9a. Just network, damnit.</strong></p>
<p>Like mentioned at Gnomedex by Ignite speaker, &#8220;relax, damnit!&#8221;, 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&#8217;t want to talk to you. And in such a case, is that a connection you really want to have anyway?</p>
<p><strong>9b. If you&#8217;re just walking around trying to find someone to talk to, look for the guys that are as lonely as you are.</strong></p>
<p>Actively seek, don&#8217;t passively wait. If you&#8217;re walking around, so is at least one other person that is trying to find someone to talk to. And don&#8217;t be afraid to get into a group conversation. Return the favour; if you see someone trying to get into a discussion circle you&#8217;re in, invite them and introduce them to the group.</p>
<p><strong>10. Follow up.</strong></p>
<p>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&#8217;t follow up immediately afterwards (&#8221;hey, it was a pleasure meeting you a minute and a half ago&#8221;) but rather the night or the next day after the event. And, it&#8217;s always nice to follow up, and since not many do so, you&#8217;ll be a more memorable contact, so do it.</p>
<p><strong>11. If they don&#8217;t have a business card, you have a pen.</strong></p>
<p>&#8220;I don&#8217;t have a card [with me]&#8221; and &#8220;oh, that&#8217;s fine, you have mine anyway&#8221; kind of sucks. A majority of people don&#8217;t follow up (and I used to not do so, so I&#8217;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.</p>
<p>I&#8217;m extremely grateful for Chris and Ponzi Pirillo and Maryam Scoble for inviting me to speak at Gnomedex. That was the best weekend I&#8217;ve had, ever.</p>
<p>I&#8217;m also very thankful to have great people supporting me and giving me advice either at Gnomedex or outside of it.</p>
<p>&#8211;</p>
<p>Much thanks to <a href="http://dangrover.com">Dan Grover</a> of <a href="http://wonderwarp.com">Wonder Warp Software</a> for editing a first draft of this article.</p>
]]></content:encoded>
			<wfw:commentRss>http://weblog.markbao.com/2008/11-things-learned-from-gnomedex-speaking-and-networking/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Building a group micro-update webapp in 18 hours</title>
		<link>http://weblog.markbao.com/2008/how-i-built-a-webapp-in-18-hours-for-699/</link>
		<comments>http://weblog.markbao.com/2008/how-i-built-a-webapp-in-18-hours-for-699/#comments</comments>
		<pubDate>Fri, 04 Jul 2008 17:13:56 +0000</pubDate>
		<dc:creator>Mark Bao</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[Add new tag]]></category>

		<guid isPermaLink="false">http://weblog.markbao.com/?p=25</guid>
		<description><![CDATA[
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 [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://speakhq.com/images/screenshot1.png" alt="" width="430" height="319" /></p>
<p><strong>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.</strong></p>
<p>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 <a href="http://www.techcrunch.com/2008/07/03/how-to-build-a-web-app-in-four-days-for-10000-say-hello-to-matt/">&#8220;how I built a webapp with just $x,000 and x people&#8221;</a> I decided to go ahead and build something I&#8217;ve been thinking about for a while.</p>
<p>Thus <a href="http://speakhq.com/">SpeakHQ</a> 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.</p>
<p>Just to clarify, this doesn&#8217;t use the Twitter API (or else I&#8217;d have to deal with it going down every 10 minutes, hitting 70-requests-per-hour limits with 35 requests, etc.) and it&#8217;s built from scratch.</p>
<p><strong>Team:</strong></p>
<ul>
<li>Mark Bao, developer, designer, everything else</li>
</ul>
<div><strong>Timeframe:</strong></div>
<div>
<ul>
<li>July 3rd: 10am - 12am EDT.</li>
<li>July 4th: 10am - 2pm.</li>
</ul>
<div><strong>Why it&#8217;s useful:</strong></div>
<div>
<ul>
<li>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)</li>
<li>Twitter demonstrated this - small updates are easy to digest. If they didn&#8217;t have a 140 character limit, Twitter would be nothing but a simplified weblog community.</li>
<li>Groups with Twitter is hard to do - the easiest way I&#8217;ve seen to do this is distributed direct messages. Although it leverages the user database of Twitter, it doesn&#8217;t present a clean solution.</li>
<li>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.</li>
</ul>
</div>
<div><strong>How it went down:</strong></div>
</div>
<ol>
<li>July 3rd. 10am EDT: I used a PHP <span style="text-decoration: line-through;">M</span>VC framework I wrote a few months back called ActiveVC. Doesn&#8217;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.</li>
<li>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.</li>
<li>3pm: decided on the name speakhq (it was either that or groupchan) and registered the domain. Cost: <strong>$6.99</strong></li>
<li>4pm: new group, group settings, user settings&#8230; and preview testing with some friends.</li>
<li>5pm: refreshed the interface, looks a little less bad now.</li>
<li>7pm: groups directory. joining/leaving.</li>
<li>9pm: new account creation, email invitations to public and private groups.</li>
<li>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.</li>
<li>12pm: bugfixing and then sleep.</li>
<li>July 4th. 10am EDT: checking on domain registration (T_T) and then fixing miscellaneous bugs and stuff.</li>
<li>12pm: opening VMware to test in IE6 and IE7. OH MY GOD IT IS SO BROKEN</li>
<li>12:30pm: half an hour wasted fixing IE problems with PNGs, margins, random stupid width problems, etc. Thank you stilleye guy for <a href="http://www.stilleye.com/temp/marginfix.html">IEmarginsFix.js</a>, and to whoever came up with the underscore hack.</li>
<li>1pm: uploading to server, changing database stuff, and it&#8217;s released. yay!</li>
</ol>
<div><strong>Decisions made:</strong></div>
<div>
<ul>
<li><strong>PHP MVC framework. </strong>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&#8217;t need all of the features and larger library of Kohana (as it would only get in the way.)</li>
<li><strong>Usernames or emails + name? </strong>To ensure that all user accounts were universal in the application, and to reduce confusion, I decided to deviate from Twitter&#8217;s username + name model (which made things somewhat confusing) and just went with usernames.</li>
<li><strong>Database schema. </strong>I didn&#8217;t get a chance to catch Twitter&#8217;s SQL yesterday, but decided to set it up as follows:
<pre>+-------------------+
| Tables_in_speakhq |
+-------------------+
| groups            |
| invites           | (table holding invite codes)
| members           |
| messages          | (these are status messages)
| users             |
+-------------------+
5 rows in set (0.00 sec)</pre>
<pre><span style="font-family: 'Lucida Grande'; line-height: 19px; white-space: normal;">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.</span></pre>
</li>
<li><strong>Public vs. private groups.</strong> I implemented the different privacy levels to easily facilitate SpeakHQ &#8220;discussion groups&#8221; 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.)</li>
<li><strong>No private messages and no profiles in first release. </strong>SpeakHQ is based on group discussion and collaboration, whereas Twitter is based on individuals sharing information to a group of other individuals (followers.) I&#8217;m still looking into what kind of messaging system should be put in place - form for email, or a system like Twitter&#8217;s direct messages?</li>
<li><strong>Lack of replies and permalinks.</strong> I will be implementing permalinks in the future, but I don&#8217;t see the value in replies in a group space - unlike Twitter, conversations aren&#8217;t between a large number of people (at least in private groups.) However, I&#8217;m going to expect that people will be asking for it, so I will implement it soon.</li>
<li><strong>User levels.</strong> Implemented into the database (binary member or administrator) but I didn&#8217;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&#8217;re trying to keep things simple here.) Group owners don&#8217;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.)</li>
</ul>
</div>
<div><strong>Still left to do:</strong></div>
<div>
<ul>
<li>forgot password / password and email changing</li>
<li>deleting status updates</li>
<li>public group viewing</li>
<li>member list for administrators to be able to edit the group members (kicking, admining?)</li>
<li>customizable group avatars, environment (background colors, etc.)</li>
<li>yes, I<strong> will</strong> be releasing an API soon</li>
<li>outgoing SMS gateway</li>
<li>new design (it really needs one)</li>
<li>incorporate some colors</li>
</ul>
</div>
]]></content:encoded>
			<wfw:commentRss>http://weblog.markbao.com/2008/how-i-built-a-webapp-in-18-hours-for-699/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Mac OS X: Fix High CPU Usage by syslogd</title>
		<link>http://weblog.markbao.com/2008/mac-os-x-fix-high-cpu-usage-by-syslogd/</link>
		<comments>http://weblog.markbao.com/2008/mac-os-x-fix-high-cpu-usage-by-syslogd/#comments</comments>
		<pubDate>Sat, 24 May 2008 20:57:39 +0000</pubDate>
		<dc:creator>Mark Bao</dc:creator>
		
		<category><![CDATA[General]]></category>

		<category><![CDATA[fix]]></category>

		<category><![CDATA[mac]]></category>

		<category><![CDATA[macosx]]></category>

		<guid isPermaLink="false">http://weblog.markbao.com/?p=19</guid>
		<description><![CDATA[Recently, I&#8217;ve been experiencing a high CPU usage by the process syslogd in Mac OS X 10.5.2 Leopard, coupled with strange Console.app behavior. If you&#8217;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 [...]]]></description>
			<content:encoded><![CDATA[<p>Recently, I&#8217;ve been experiencing a high CPU usage by the process <strong>syslogd</strong> in Mac OS X 10.5.2 Leopard, coupled with strange Console.app behavior. If you&#8217;re experiencing this as well, give this a shot and see if it works (at your own risk.)</p>
<p><img src="/images/syslogd.png" alt="syslogd" width="399" height="69" /></p>
<p>FIrst, you should check if this is a problem on your system, which is usually caused by large asl.db files. Open Terminal.app (Applications/Utilities/Terminal.app) and enter the following:</p>
<p><code>du -hs /var/log/asl.db</code></p>
<p>and hit enter. If it shows that your asl.db file is pretty huge (mine was 80MB) you&#8217;ll want to run this fix. If it isn&#8217;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&#8217;s any applications that are logging a lot, like if you see &#8220; &#8212; last message repeated 500 times &#8212;&#8221;, that&#8217;s probably what is causing syslogd to own a lot of CPU.</p>
<p>If asl.db is huge, do the following. You&#8217;ll first have to <a href="http://www.macosxhints.com/article.php?story=20071025100950309">enable a root user to your system</a>. Then, go to Terminal, and enter the following (enter one by one, and hit enter afterwards):</p>
<p><code>sudo launchctl stop com.apple.syslogd<br />
sudo mv /var/log/asl.db /var/log/aslold.db<br />
sudo touch /var/log/asl.db<br />
sudo launchctl start com.apple.syslogd</code></p>
<p>You will be asked to enter the root password on the first command, while subsequent commands will automatically be authenticated as root.</p>
<p>Once you do this, the syslogd process should restart, but the CPU it uses should be next to nothing. Hope this helped.</p>
]]></content:encoded>
			<wfw:commentRss>http://weblog.markbao.com/2008/mac-os-x-fix-high-cpu-usage-by-syslogd/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Coding on the Facebook Platform.</title>
		<link>http://weblog.markbao.com/2007/coding-on-the-facebook-platform/</link>
		<comments>http://weblog.markbao.com/2007/coding-on-the-facebook-platform/#comments</comments>
		<pubDate>Sun, 10 Jun 2007 03:35:35 +0000</pubDate>
		<dc:creator>Mark Bao</dc:creator>
		
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://weblog.markbao.com/?p=7</guid>
		<description><![CDATA[It is Saturday, May 26th. I am at home, headbanging to music, and catching NeighborFi (rare.) I’m just finding the Facebook Applications update. I look through the directory. In all nine pages at the time, I didn’t notice a del.icio.us or Flickr app. I decided that for that day I will work on developing a [...]]]></description>
			<content:encoded><![CDATA[<p>It is Saturday, May 26th. I am at home, headbanging to music, and catching NeighborFi (rare.) I’m just finding the Facebook Applications update. I look through the directory. In all nine pages at the time, I didn’t notice a del.icio.us or Flickr app. I decided that for that day I will work on developing a del.icio.us app for Facebook Platform.</p>
<p><span id="more-7"></span></p>
<p>I had no idea where to start. I downloaded the PHP5 client libraries, looked at the documentation, and became confused. This was the first time I was using an API for actuality. This was the real deal, the real stuff. Went to IRC to chat a bit in #randomshapes – but remembered something. /j #facebook.</p>
<p>I saw the topic.</p>
<p><code>*** topic is Facebook Development Platform: http://developers.facebook.com :: Wiki: http://wiki.f8.facebook.com :: DJTrey's channel stats: http://74.236.248.200:8081/facebook/<br />
&lt;StevenBao&gt; This is the channel that I need!!</code></p>
<p>I was pointed to the Wiki at some point, where I educated myself on the Facebook Platform; I then went to the golden resource, a lesson by example, a tutorial on coding Facebook Platform Applications. I started reading the example. Didn’t get it at first. Didn’t get it at second. Got it at third. I store session data and usernames in my database. The only thing I really do is push data out to Facebook in the form of FBML. I then asked some stupid questions such as:</p>
<p><code>&lt;StevenBao&gt; does anyone know how to fix the problem of HTML tag not supported: "html"</code></p>
<p>And</p>
<p><code>&lt;StevenBao&gt; How do I display something on the profile page...?<br />
&lt;@OSUKid7&gt; profile.setFBML</code></p>
<p>Then I remembered that I wasn’t really sure how to use my Facebook app since it was hosted on my local server. I didn’t have a PHP5 server ready, and my host (a friend) was out on vacation and couldn’t upgrade to PHP5 anyway. I decided, for the time being, to port-forward the router and get a no-ip. The only way that I was going to do that, though, was to ‘hack’ into my neighbor’s router and change the port forwarding.</p>
<p>Easy enough. They didn’t care to change the password for the Linksys administration. I went in and port-forwarded Port 80 to my IP on the network. Hope they don’t notice. I haven’t rolled it back yet since it bugged out again later the next day.<br />
I then proceeded to set up a no-ip address and forward that stuff. Sloppy, but it needs to work for the time being. After a few short hours, I declared the beta of the del.icio.us app finished. It displayed the five latest links from a person’s del.icio.us account. It might have been, and should have been, alpha; I ran a slow-as-hell manual “cron” every fifteen minutes to ensure that I held my word that it updated every fifteen minutes, plus any manual updates a user may execute by going to the application page. This “cron” which turned out to update every half hour was probably the source of future, huge problems.</p>
<p>I submitted it to the application directory and waited, and expected a long wait. After a few hours, my del.icio.us app gained about 30 users. It blew my mind. Amazing. Thirty users. (Without sarcasm.) I then proceeded to develop a Flickr application, not intended to be at first extremely intense, but as it caused large amounts of criticism among users I decided to make it more of a developed application than it started out. The first beta required users to retrieve their usernames. I introduced this (read: linkspammed) this to two of my IRC channels, and gained a few users; then, the wireless crashed.</p>
<p>I was under a large amount of stress to get this stuff working. I already had del.icio.us on its own server that <a href="http://deusexcelsior.com/">Anthony Cole</a> of Fresh Pacific Media was kind enough to donate. However, my Flickr app, which I guess was gaining popularity, was offline because I was offline. I therefore went to a friend’s house as soon as possible and uploaded the Flickr application and its database to the server.</p>
<p>I was then notified on IRC by chips[zof] with the following:</p>
<p><code>&lt;chips[zof]&gt; StevenBao: well done on getting into the directory!</code></p>
<p>It was not even day after I submitted it to the applications directory, and amidst all of the others asking to be submitted, such as for Last.fm and other applications, I was submitted with my humble del.icio.us application. Not sure why, but okay! I was overjoyed. I watched the user count grow from 30 to 100.</p>
<p>The next day. I check. 300 users using my del.icio.us app! Amazing. However, I looked at the reviews. Errors. Stuff not showing up. Shit. I spent the next hour debugging and debugging the system. Something then happened, everything was resolved, I ran two crons for good measure.</p>
<p>The problem was that I as using a free DNS subdomain, and the domain was www.facebook.si. I registered sbao.facebook.si and apps.facebook.si. I found both of them deleted from my DNS account. I did an extremely quick fix, registering a .us.to and moving files over. Whew. Little did I know, though, that it wasn’t my last, nor largest crisis.</p>
<p>My Flickr app was criticized thoroughly. As I wanted to get the Flickr app out before anyone else, I opted to not learn how to use SimpleXML and use REST to get a username’s ID. That was my downfall. On Tuesday I was faced with a huge amount of ‘criticism’ (or better said, that it didn’t work), more than I could take, and I then took an hour to rewrite part of the system to function correctly, and then placed quite a number of todo items on my plate.</p>
<p>However, before that, a large crisis arose when I was on a 1.0mbps no-signal WiFi network. The system suddenly stopped working. FBML was working. My server was working. I tested and implemented a new parser for data. No luck. I went back to my previous parser and tried another data source. Worked. I was forced to come to the conclusion that del.icio.us blocked me from accessing their data. This is while I have about 700 users using this app. Not good.</p>
<p>In the little time I had left at the other friends’ house, I quickly hacked together a sort of proxy to access del.icio.us and eventually be banned from it altogether by my other server. I noticed that Joshua, the founder of del.icio.us, friended me on Facebook, and was using my del.icio.us app. Maybe he knew del.icio.us blocked me. Maybe not. However, the truth of the matter was that I hacked together a few lines of PHP that connected to a MySQL database with columns id (serialized), delicioususername, datastream, and requestnum, and every five requests requestnum was set back to zero and the del.icio.us server was asked for the data again. I called this my megacache; I used it once to update my del.icio.us links on Facebook, it worked, I jumped for joy, started to run a cron, but then the wireless disappeared.</p>
<p>I had nothing else to do but to ask another friend over phone to post on the del.icio.us app page that the problem should be fixed as of now.</p>
<p>Next day. TV/Video class. I log in to the other server’s cPanel account, and check my bandwidth. 500 megabytes of bandwidth was used by my application in eight hours alone. Astonishing. I check the number of people that are using my application. 1300 for del.icio.us. 500 for Flickr. Wow. I did a quick <code>SELECT * FROM cachefiles WHERE requestnum &gt; 0</code>. Nothing. I didn’t even store anything into MySQL. Damn.</p>
<p>I then proceeded to finish an email I was writing to the founder of del.icio.us, which was at finishing point somewhat stubborn-sounding (though the negative connotations were not intended) and at nine full paragraphs. Later that afternoon I sent it to him, feeling bad for the founder because my email was so damn demanding-sounding.</p>
<p>Then I updated the Flickr as explained above, then stopped Facebook apps for the day. I had enough for Tuesday, even though only one hour was actual coding.</p>
<p>The next day. The founder of del.icio.us emails me back. He states that he can manually unblock my system from contacting del.icio.us data sources. He also stated that del.icio.us was building an offical Facebook application. That’s what I’ve been waiting for. An official application. I never expected that my del.icio.us app would be permanent; like other 3rd party apps, I anticipated it to be a temporary one. Nor did I expect it to gain such a huge response. I said I’d be happy to cooperate with him.</p>
<p>This was my first time managing a relatively large-scale project, and it was an excellent experience. I don’t really know what my motive is for creating this application, but who knows? That’s not the matter now; it’s not so much the matter of why one created something, but the response ensuing.</p>
]]></content:encoded>
			<wfw:commentRss>http://weblog.markbao.com/2007/coding-on-the-facebook-platform/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
