<?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/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" version="2.0">

<channel>
	<title>existence, refactored</title>
	
	<link>http://blog.bryanbibat.net</link>
	<description>With kindness comes naïveté. Courage becomes foolhardiness. And dedication has no reward.</description>
	<lastBuildDate>Thu, 04 Apr 2013 09:47:02 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/ExistenceRefactored" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="existencerefactored" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>Fixing broken earphone plugs</title>
		<link>http://blog.bryanbibat.net/2013/04/04/fixing-broken-earphone-plugs/</link>
		<comments>http://blog.bryanbibat.net/2013/04/04/fixing-broken-earphone-plugs/#comments</comments>
		<pubDate>Thu, 04 Apr 2013 09:31:30 +0000</pubDate>
		<dc:creator>Bry</dc:creator>
				<category><![CDATA[Brain Dumps]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[DIY]]></category>
		<category><![CDATA[repair]]></category>

		<guid isPermaLink="false">http://blog.bryanbibat.net/?p=1885</guid>
		<description><![CDATA[What do I do if I want to buy in-ear headphones that won&#8217;t break? Seriously these things always break down after 6-12 months of use. @ramio &#8212; Rico Sta. Cruz (@rstacruz) March 31, 2013 Rico&#8217;s tweet a couple of days ago reminded me of my drawer full of perfectly fine earphones &#8212; the only reason [...]]]></description>
				<content:encoded><![CDATA[<blockquote class="twitter-tweet"><p>What do I do if I want to buy in-ear headphones that won&#8217;t break? Seriously these things always break down after 6-12 months of use. @<a href="https://twitter.com/ramio">ramio</a></p>
<p>&mdash; Rico Sta. Cruz (@rstacruz) <a href="https://twitter.com/rstacruz/status/318307968431050752">March 31, 2013</a></p></blockquote>
<p><script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script></p>
<p>Rico&#8217;s tweet a couple of days ago reminded me of my drawer full of perfectly fine earphones &#8212; the only reason I can&#8217;t use them is that they have worn connections on their plug causing only one side to work. (Actually, both sides can work but you have to hold the wire near the plug at <em>exactly</em> the right position. Move a bit and one side loses sound.)</p>
<p>This got me wondering: <em>is it easy to replace a busted earphone plug?</em></p>
<p>A quick Google search told me the answer was &#8220;<strong>yes</strong>&#8220;. This Instructables article on <a href="http://www.instructables.com/id/Replacing-the-jack-on-a-pair-of-headphones/" target="_blank">replacing the jack on a pair of headphones</a> only required a cheap replacement plug and some basic tools.</p>
<p>Seeing this as a good opportunity to procrastinate on my current projects, I bought a 3.5 jack at my friendly neighborhood hardware store when I went out to lunch today.</p>
<p><img src="http://images.bryanbibat.net/oldnew.jpg" alt="busted jack and new metal jack" class="aligncenter retina" /></p>
<p>Here it is beside the busted earphone jack.</p>
<p><img src="http://images.bryanbibat.net/solder_tools.jpg" alt="soldering tools" class="aligncenter retina" /></p>
<p>And here are the tools I used:</p>
<ul>
<li>wire cutter &#8211; for cutting  and stripping the wire</li>
<li>pliers &#8211; to hold the jack in place while soldering</li>
<li>lighter &#8211; to burn the wires&#8217; insulators prior to soldering</li>
<li>soldering iron and solder &#8211; for soldering, obv</li>
<li>tissue and water &#8211; I can&#8217;t find my soldering stand with sponge so I had to improvise the latter; it&#8217;s just a quick solder so no need for a stand</li>
</ul>
<p>As much as the smell of molten solder can be kinda nostalgic, I moved my workspace from my enclosed air-conditioned room to the open living room for safety. </p>
<p><img src="http://images.bryanbibat.net/soldered.jpg" alt="wires soldered to jack" class="aligncenter retina" /></p>
<p>After an hour or two of trial and error, mostly in threading the wires into the pins and testing stability of the connection, here&#8217;s the wires soldered to the pins. The actual soldering took only around 5 minutes and I was surprised that it didn&#8217;t suck like my soldering in high school.</p>
<p><img src="http://images.bryanbibat.net/finished_jack.jpg" alt="finished product" title="WE'LL SACRIFICE THE SON OF MAN!!!" class="aligncenter retina" /></p>
<p>And here&#8217;s the fully assembled jack. A quick test confirmed that both sides are working properly even when playing around with the wire.</p>
<p><strong>Total cost:</strong> P25 for the plug, ~2 hours for research, prep, and assembly.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bryanbibat.net/2013/04/04/fixing-broken-earphone-plugs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>I am not a “Blogger”</title>
		<link>http://blog.bryanbibat.net/2013/03/24/i-am-not-a-blogger/</link>
		<comments>http://blog.bryanbibat.net/2013/03/24/i-am-not-a-blogger/#comments</comments>
		<pubDate>Sun, 24 Mar 2013 13:27:29 +0000</pubDate>
		<dc:creator>Bry</dc:creator>
				<category><![CDATA[Brain Dumps]]></category>
		<category><![CDATA[Memetics]]></category>
		<category><![CDATA[blogging]]></category>
		<category><![CDATA[drama]]></category>

		<guid isPermaLink="false">http://blog.bryanbibat.net/?p=1859</guid>
		<description><![CDATA[I&#8217;ve been recently getting emails from various sources grouping me with the local blogging community. I usually just ignore them, giving a passing glance at those that may contain usable information. Last night, however, I received a message that forced me to write this post. For the sake of those who are not familiar with [...]]]></description>
				<content:encoded><![CDATA[<p>I&#8217;ve been recently getting emails from various sources grouping me with the local blogging community. I usually just ignore them, giving a passing glance at those that may contain usable information. Last night, however, I received a message that forced me to write this post.</p>
<p>For the sake of those who are not familiar with me, let me introduce myself first. I am someone who has taken (and is still taking on) many roles: <a href="http://bryanbibat.net">freelance web developer</a>, <a href="https://github.com/bryanbibat">software engineer</a>, <a href="http://pd.bryanbibat.net">teacher</a>, <a href="http://devcon.ph/faq#officers">volunteer</a>, <a href="https://speakerdeck.com/bryanbibat">public speaker</a>, and so on.</p>
<p>&#8220;Blogger&#8221; is not one of them.</p>
<h3>But if you&#8217;re not a blogger, what is this site (blog.bryanbibat.net) then?</h3>
<p>True, this is indeed a we<strong>b log</strong> in the technical sense. However, it&#8217;s not a blog in the &#8220;blogger&#8221;&#8216;s sense. A quick look and you&#8217;ll see the difference:</p>
<p><strong>No Ads.</strong> I&#8217;m a Rails developer. Any ad money I could get will be far lower than what I&#8217;d get even from part-time work.</p>
<p><strong>Super Fast.</strong> <a href="http://jekyllrb.com/">Jekyll</a> = street cred. Since I don&#8217;t feel like migrating yet, I&#8217;ll have to make do with optimizing WordPress using <a href="http://nginx.org/">nginx (dev)</a> + <a href="http://php-fpm.org/">PHP-FPM</a> + <a href="http://php.net/manual/en/book.apc.php">PHP-APC</a> on an <a href="http://www.linode.com/">8-processor server</a> and adding <a href="http://www.windowsazure.com/en-us/home/features/caching/">CDN</a> and <a href="http://wordpress.org/extend/plugins/wp-super-cache/">caching</a>. </p>
<p><strong>Minimalist.</strong> Free responsive theme. Twitter microblog. Links to my sites and affiliates. A tongue-in-cheek appearance list. Obligatory archive links and stats. Copyright information. Nothing else.</p>
<p><strong>Deeper content.</strong> I&#8217;m writing <a href="/2012/12/10/unofficial-solutions-to-devcon-c-cup-2012-problems/">10 pages of algorithm analysis</a> while other &#8220;blogs&#8221; are dropping smartphones off buildings.</p>
<p>My reason for going away from the norm is simple:</p>
<h3>No one wants their site to be labeled as a &#8220;blog&#8221;</h3>
<p>If this was 2004, it would be fine to have a slow, cluttered ad plastered site with stupid content.</p>
<p>But this is 2013. No one wants their site to be lumped together with the stereotype. Just look at the top 2 &#8220;blogs&#8221; in my current spheres of interest:</p>
<p><a href="http://webgeek.ph/">WebGeek.ph</a> may appear like a blog at first glance, but in reality it&#8217;s a vibrant community of developers and designers. Not only do they get large turnouts in their events, they even get sponsorships from all over &#8211; not bad considering none of the key people within the community are working on it full time.</p>
<p><a href="http://thebobbery.com">theBobbery</a> may also appear like a blog, but scrolling down and visiting a few pages will immediately tell you that it&#8217;s the type of news and information site that other blogs should have been in the first place.</p>
<p>Clean, ad-free sites with quality content; I am fairly certain that John Arce and Franky Branckaute would give me a look of disapproval if I would call their sites &#8220;blogs&#8221;. </p>
<p>Now I&#8217;ve already made it clear why I don&#8217;t want people calling this brain dump/soapbox a &#8220;blog&#8221;, let&#8217;s go back to the word &#8220;blogger&#8221;.</p>
<h3>You can do better than &#8220;Blogger&#8221;</h3>
<p>&#8220;Blogger&#8221; is a stupid label. I know it&#8217;s a <a href="/2010/01/22/crab-mentality-2/">catch-all term</a>, but this doesn&#8217;t excuse it&#8217;s stupidity.</p>
<p>Again, it&#8217;s 2013. Web-based publications have gained enough mainstream acceptance that they&#8217;ve already killed off some established <a href="http://en.wikipedia.org/wiki/Newsweek#Cessation_of_print_format">print</a> <a href="http://en.wikipedia.org/wiki/Reader%27s_Digest">publications</a>; don&#8217;t you think it&#8217;s time for people to label themselves more specifically? For example, I can call myself a &#8220;software engineering writer&#8221;. Other bloggers can go with &#8220;gadget reviewer&#8221;, &#8220;independent journalist&#8221;, or &#8220;foodie&#8221; (<em>groan</em>).</p>
<p>But more importantly, the term &#8220;blogger&#8221; is forever tainted by those who chose to label themselves as such in the early days of the Internet: unprofessional freeloading hacks who follow no journalism ethics and standards.</p>
<p>Which brings us back to the message I got last night, a message that tried to drag me into an <em>Internet drama</em> that does not concern me. Not only that, but all signs point it to being a case of identity theft; a sloppy, easily verified one at that.</p>
<p>So here I am, a guy who finds <a href="http://www.rockpapershotgun.com/2013/03/16/simcity-bosss-straight-answers-seem-pretty-wiggly/">multi-million dollar blunders</a> and <a href="http://amandablumwords.wordpress.com/2013/03/21/3/">industry-wide discrimination debates</a> merely <em>amusing</em>, and someone thinks I&#8217;d care about some idiotic personal feud just because I have a blog with over a hundred posts?</p>
<p><em><strong>Screw that!</strong></em></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bryanbibat.net/2013/03/24/i-am-not-a-blogger/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Pessimism Porn</title>
		<link>http://blog.bryanbibat.net/2013/02/06/pessimism-porn/</link>
		<comments>http://blog.bryanbibat.net/2013/02/06/pessimism-porn/#comments</comments>
		<pubDate>Tue, 05 Feb 2013 19:58:51 +0000</pubDate>
		<dc:creator>Bry</dc:creator>
				<category><![CDATA[Brain Dumps]]></category>
		<category><![CDATA[Memetics]]></category>
		<category><![CDATA[bloggers]]></category>

		<guid isPermaLink="false">http://blog.bryanbibat.net/?p=1849</guid>
		<description><![CDATA[Pessimist political blogs. You&#8217;ve probably seen their articles posted and shared on Facebook, Twitter, or whatever social network you&#8217;re using. The theme is always the same: it&#8217;s about how the Philippines suck and there&#8217;s nothing you can do about it. On the surface, there&#8217;s nothing bad about being critical the various aspects of your country&#8217;s [...]]]></description>
				<content:encoded><![CDATA[<p>Pessimist political blogs. You&#8217;ve probably seen their articles posted and shared on Facebook, Twitter, or whatever social network you&#8217;re using. The theme is always the same: it&#8217;s about how the Philippines suck and there&#8217;s nothing you can do about it.</p>
<p>On the surface, there&#8217;s nothing bad about being critical the various aspects of your country&#8217;s society and culture. Even I like to be a <a href="/2010/01/22/crab-mentality-2/">devil&#8217;s advocate</a> from time to time.</p>
<p>But the problem lies when you keep on talking about the same pessimistic shit over and over again. Let me give you an example:</p>
<blockquote><p>When I entered UP, I was enamored by the protesters around the campus, the ones I only used to see on TV. They opened my eyes to the ills of society, and when I see them protesting, I&#8217;m like</p>
<p>&#8220;<em>Wow, these guys are great! The country needs more of them!</em>&#8221;</p>
<p>By my graduating year, whenever the protesters pass by the halls chanting whatever they&#8217;re protesting against, that sentiment became:</p>
<p>&#8220;<em>Will you guys just shut up?!? Wouldn&#8217;t it be better if you go back to your classes to study so when you graduate you have a better chance of changing the system from within?!?</em>&#8220;</p></blockquote>
<p>And that&#8217;s the thing we&#8217;re seeing here, <strong>no one likes a pessimist who does nothing but whine</strong>.</p>
<p>The more you think about how these pessimist blogs are written, the more you realize what&#8217;s wrong about their approach.</p>
<p>First off, they&#8217;re not &#8220;realists&#8221;. They&#8217;re pessimists. Period. Realists would know that what they&#8217;re doing is <em>counterproductive to his goals in the long run</em> as it <strong>desensitizes and promotes apathy</strong> as I experienced with the protesters in UP. </p>
<p>Secondly, anyone who has seriously studied revolutions will tell you that what they&#8217;re doing will not result in a drastic change of the status quo. When all is said and done, all they&#8217;re doing is armchair pseudo-intellectualism, hiding behind shallow &#8220;rationalism&#8221; while ignoring the realities of society and human psychology (e.g. <a href="/2009/07/13/learned-helplessness/">Learned Helplessness</a>, <a href="/2009/06/20/angry-monkeys/">Angry Monkeys</a>).</p>
<p>If you want to change the status quo, you&#8217;ll need to get your hands dirty with <em>concrete action</em>. Writing pessimistic political blog posts (or worse, reading and sharing them, giving these people page views) will not change anything.</p>
<p>In short, all of these articles should be considered <strong>pessimism porn</strong> &#8211; pieces of work created to give smug satisfaction to pseudo-intellectuals who, instead of working towards fixing those problems, are content with &#8220;masturbating&#8221; to it.</p>
<p>Keep this in mind whenever you see another anti-Filipino rant from not-so-friendly neighborhood conspiracy nutjob.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bryanbibat.net/2013/02/06/pessimism-porn/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to Fix “Your Conference Presentation”</title>
		<link>http://blog.bryanbibat.net/2013/01/26/how-to-fix-your-conference-presentation/</link>
		<comments>http://blog.bryanbibat.net/2013/01/26/how-to-fix-your-conference-presentation/#comments</comments>
		<pubDate>Fri, 25 Jan 2013 19:15:30 +0000</pubDate>
		<dc:creator>Bry</dc:creator>
				<category><![CDATA[Brain Dumps]]></category>
		<category><![CDATA[Training]]></category>
		<category><![CDATA[public talk]]></category>

		<guid isPermaLink="false">http://blog.bryanbibat.net/?p=1842</guid>
		<description><![CDATA[A few days ago, a PHD Comics cartoon appeared on the Startup PH Facebook group: While it&#8217;s not there anymore (possibly because it deals with academic conferences and not tech/startup conferences and therefore not relevant to the group), I had a voice at the back of my head nagging me to write a blog post [...]]]></description>
				<content:encoded><![CDATA[<p>A few days ago, a <a href="http://www.phdcomics.com/comics/archive.php?comicid=1553">PHD Comics cartoon</a> appeared on the Startup PH Facebook group:</p>
<p><a href="http://www.phdcomics.com/comics/archive.php?comicid=1553"><img class="retina aligncenter" src="http://images.bryanbibat.net/conf1553.png" alt="your conference presentation" /></a></p>
<p>While it&#8217;s not there anymore (possibly because it deals with academic conferences and not tech/startup conferences and therefore not relevant to the group), I had a voice at the back of my head nagging me to write a blog post on how the strip makes it look like speaking in conferences is a lot harder than it is.</p>
<p>So here&#8217;s a blog post on how to prepare yourself for the worst things that can happen when participate in a public speaking engagement.</p>
<p><strong>Previous speaker runs late and eats into your time.</strong> </p>
<p>Not really a problem, as almost all of the events I&#8217;ve been in perform the laptop setup during the Q&#038;A of the previous speaker. So even if the speaker runs late, it&#8217;s not going to eat into your allotted time.</p>
<p><strong>Technical difficulties connecting your laptop.</strong></p>
<p>In my experience, the biggest cause of technical difficulties in laptop setup are Macs. &#8220;They just work&#8221; my ass.</p>
<p>First off, they need special adapters for video. Your brand new MacBook Air is cool and all, but you&#8217;re pretty much screwed if you forgot to bring your mini-DP to VGA adapter.</p>
<p>Second is that non-frequent speakers don&#8217;t know how to change the display settings of their Mac to provide the optimal presentation experience. Unless you&#8217;re presenting in a Mac heavy venue, don&#8217;t expect the technical staff to help you with that.</p>
<p>I&#8217;m not saying that if you are using a laptop with a VGA connector, you&#8217;re out of the woods already. You still need to know how to change your monitor settings. You can even set your laptop display to 1024 x 768 even before connecting it to the projector to reduce the possibility of getting just a blank screen.</p>
<p>There&#8217;s also a plan B for all laptops: Export your presentation to PDF and/or upload it to an online presentation site (eg. SpeakerDeck, Slideshare, or Prezi if you&#8217;re feeling fancy). This way, even if your machine fails to connect to the projector, you can borrow another laptop and still be able to have your slides.</p>
<p>&#8220;But what about my presentation animations?&#8221; you may ask.</p>
<p>Screw animations. Go read Presentation Zen and educate yourself on why you don&#8217;t need them.</p>
<p><strong>Forget introducing yourself.</strong></p>
<p>Let me tell you a secret that you&#8217;ve probably forgotten once you got that invite to speak on stage:</p>
<p><em>Nobody gives a shit who you are.</em></p>
<p>Giving a long introduction about yourself at the beginning of the talk is stupid. For one, if it&#8217;s a big conference, you&#8217;ll probably have your bio on the programme. On the other hand, if it&#8217;s a small conference, you&#8217;ll probably be forgotten by the audience by the end of the day especially if you give a boring talk.</p>
<p>And if for some reason you&#8217;re a really big name in the field, why introduce yourself to people who already know all about you?</p>
<p>So don&#8217;t waste your time talking about who you are. Make a memorable talk and put your website/facebook/twitter/etc on the last slide and people will look you up themselves.</p>
<p><strong>Spend waay too much time describing the outline.</strong><br />
<strong>Realize you have 3 minutes left.</strong><br />
<strong>Power through the rest of your 30 slides.</strong></p>
<p>Let&#8217;s ignore for a moment that tech/startup conference talks don&#8217;t have motivation, methodologies and shit.</p>
<p>Anyway, timing problems can be easily be solved by having 2 things: practice and a timer.</p>
<p>Practice is obvious, but too often I see newbie speakers just wing it in front. When I do my talks, I immediately see in the first few practice runs what parts can eat up a lot of time and what parts allow me some time to ad lib. And the shorter and more time-constrained my talks are, the more practice runs I do &#8211; this way, I could consider all possibilities and think of backup plans far in advance of the talk.</p>
<p>The timer can be anything: the timer in your presentation software, a pocket watch, or a timer in your handheld clicker/presenter. Combined with practice, you will eventually know what time to expect to reach certain parts of your talk and all you need to do is to adjust accordingly.</p>
<p><strong>Motiva &#8211; Annoying audience member interrupts with self-aggrandizing question &#8211; tion</strong></p>
<p>You are the speaker. The audience has no control over you. In fact, you are in control of them.</p>
<p>If an annoying audience member (as opposed to good audience members that facilitate interaction and discussion) constantly interrupts your talk, it is your responsibility to put them in their place. It&#8217;s up to you whether you&#8217;ll humiliate them to shut them up or just tell them to talk to you directly after your presentation &#8211; point is, you don&#8217;t let them waste your time.</p>
<p><strong>Awkward silence Q&#038;A</strong></p>
<p>Just expect this to happen. Out of the dozens of talks I&#8217;ve done these past few years, only about 1 in 10 had engaging Q&#038;As, while only 1 in 3 even had questions for me.</p>
<p>&#8211;</p>
<p>Now that wasn&#8217;t so hard, was it?</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bryanbibat.net/2013/01/26/how-to-fix-your-conference-presentation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Programming Joke</title>
		<link>http://blog.bryanbibat.net/2013/01/02/programming-joke/</link>
		<comments>http://blog.bryanbibat.net/2013/01/02/programming-joke/#comments</comments>
		<pubDate>Wed, 02 Jan 2013 04:08:12 +0000</pubDate>
		<dc:creator>Bry</dc:creator>
				<category><![CDATA[Brain Dumps]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Software Engineering]]></category>
		<category><![CDATA[joke]]></category>
		<category><![CDATA[pet peeves]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://blog.bryanbibat.net/?p=1833</guid>
		<description><![CDATA[A wife asks her husband, a programmer, “Could you please go shopping for me and buy one carton of milk, and if they have eggs, get 6?” A short time later the husband comes back with 6 cartons of milk and his wife asks, “Why did you buy 6 cartons of milk?” He replies, “They [...]]]></description>
				<content:encoded><![CDATA[<blockquote><p>A wife asks her husband, a programmer, “Could you please go shopping for me and buy one carton of milk, and if they have eggs, get 6?”</p>
<p>A short time later the husband comes back with 6 cartons of milk and his wife asks, “Why did you buy 6 cartons of milk?”</p>
<p>He replies, “They had eggs.”</p></blockquote>
<p>I find this to be the most unfunny programming joke in the dozens of programming jokes I&#8217;ve heard since I started programming. It&#8217;s even worse than the &#8220;Why is Halloween the same as Christmas?&#8221; joke &#8211; at least that one&#8217;s a cute coincidence for number systems.</p>
<p>At first glance, it looks like a straightforward joke: a direct translation of the statement make the husband buy six cartons of milk:</p>
<pre class="brush: ruby; title: ; notranslate">
milk_to_be_bought = 1
if they_have_eggs
  milk_to_be_bought = 6
end
buy_cartons_of_milk(milk_to_be_bought)
</pre>
<p><em>But that&#8217;s not even a direct translation!</em> A direct translation would be:</p>
<pre class="brush: ruby; title: ; notranslate">
buy_one_carton_of_milk
if they_have_eggs
  buy_six_cartons_of_milk
end
</pre>
<p>This results in the husband buying 7 cartons of milk!</p>
<p>But no, the conversion from command to program is <em>still incorrect</em>. Here&#8217;s a much more direct translation:</p>
<pre class="brush: ruby; title: ; notranslate">
buy_one_carton_of_milk
if they_have_eggs
  get_six
end
</pre>
<p><code>get_six</code> what?</p>
<p>That&#8217;s the thing: no self respecting programmer would do what the husband did in the joke. A joke computer scientist would not do anything until the linguistic ambiguity is resolved, while a joke software engineer would also refuse to do anything until the unclear requirements are clarified, documented, and signed off.</p>
<p>Now if the joke went like <em>&#8220;A wife asks her husband, who just started Codecademy last night&#8230;</em>&#8220;, it would probably work.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bryanbibat.net/2013/01/02/programming-joke/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Unofficial Solutions to DevCon C-Cup 2012 Problems</title>
		<link>http://blog.bryanbibat.net/2012/12/10/unofficial-solutions-to-devcon-c-cup-2012-problems/</link>
		<comments>http://blog.bryanbibat.net/2012/12/10/unofficial-solutions-to-devcon-c-cup-2012-problems/#comments</comments>
		<pubDate>Mon, 10 Dec 2012 10:47:36 +0000</pubDate>
		<dc:creator>Bry</dc:creator>
				<category><![CDATA[Brain Dumps]]></category>
		<category><![CDATA[Software Engineering]]></category>
		<category><![CDATA[Training]]></category>
		<category><![CDATA[DevCon PH]]></category>
		<category><![CDATA[programming challenge]]></category>

		<guid isPermaLink="false">http://blog.bryanbibat.net/?p=1799</guid>
		<description><![CDATA[Two weekends ago, DevCon held its Code Challenge Cup (C-Cup) at Xavier School Greenhills. Now while I am the current VP for Technology of the said group and spent 6 hours painstakingly checking a good chunk of the submissions, I wasn&#8217;t involved in the making of the problems (I was the tech support guy, not [...]]]></description>
				<content:encoded><![CDATA[<p>Two weekends ago, DevCon held its <a href="http://devcon.ph/events/devcon-code-challenge-cup-c-cup">Code Challenge Cup (C-Cup)</a> at Xavier School Greenhills.</p>
<p>Now while I am the current VP for Technology of the said group and spent 6 hours painstakingly checking a good chunk of the submissions, I wasn&#8217;t involved in the making of the problems (I was the tech support guy, not a &#8220;judge&#8221;). I didn&#8217;t even look at the problems until it was <a href="http://appcongress.com/c-cup/problemset.pdf">linked to</a> on the event page days after the event.</p>
<p>Anyway, being a sucker for <a href="/2009/06/15/quick-programming-challenges/">computer science</a> <a href="/2012/05/27/lobangclub-webgeek-developer-challenge-analysis/">problems</a> I&#8217;ve decided to solve all of them on my own. And given that nobody used <a href="http://pinoyrb.org">Ruby</a> at the event, I going to use Ruby to solve them.</p>
<p>Note that while I&#8217;ve confirmed that the solutions below pass the judges&#8217; test cases, they are not (yet) endorsed by any of the judges in the event.</p>
<p>Oh, and yeah, to back up my claim that <a href="http://www.facebook.com/groups/devconph/permalink/452993471402666/?comment_id=453505208018159">Quiwa&#8217;s <em>Data Structures</em> will allow you to solve most of the problems in programming competitions</a>, I&#8217;ve included references to the said book in the solutions below.</p>
<p><img src="http://i.imgur.com/zc95o.jpg?1" class="aligncenter" /></p>
<h3>Problem A: Best-Fit Lines</h3>
<p><strong>Problem Type:</strong> Statistics</p>
<p>My solution:<br />
<script src="https://gist.github.com/4195830.js?file=team_x_prob_a.rb"></script></p>
<p>While this problem can be solved with some difficulty using brute-force, going through all possibilities of <code>a</code> and <code>b</code> in 0.001 steps, the formula for this problem (simple linear regression) <a href="http://en.wikipedia.org/wiki/Simple_linear_regression#Numerical_example">is pretty straightforward</a>.</p>
<p>A few things to note about the code above:</p>
<ul>
<li>I use <code>String#strip()</code> in all of the problems just to be sure. I don&#8217;t really need to do it.</li>
<li>Truncate is preferred over rounding (even though both will get full points) but Ruby doesn&#8217;t have a built-in truncate function. And so I had to make one.</li>
<li>Unlike Python, Ruby doesn&#8217;t have a built-in <code>sum()</code> function. Using a full <code><a href="http://ruby-doc.org/core-1.9.3/Enumerable.html#method-i-reduce">reduce()</a></code> works fine but I don&#8217;t like the syntax so I chose a <a href="http://en.wikipedia.org/wiki/Map_(higher-order_function)">map</a>-<a href="http://en.wikipedia.org/wiki/Fold_(higher-order_function)">reduce</a> form instead.</li>
</ul>
<h3>Problem B: Weird Writing</h3>
<p><strong>Problem Type:</strong> Coding</p>
<p>My solution:<br />
<script src="https://gist.github.com/4195830.js?file=team_x_prob_b.rb"></script></p>
<p>This is what I&#8217;d call a &#8220;coding problem&#8221;. There are no Computer Science or Math related tricks here; the problem can be solved by anyone who knows the basics of programming e.g. basic data structures, string manipulation, and sorting.</p>
<p>The lines 20 &#8211; 26 above can be confusing for non-Ruby or non-Perl programmers due to the amount of small things done per line. Let&#8217;s translate it one by one:</p>
<p>Line 20 creates a translation table/hash which we&#8217;ll use to translate the words.</p>
<ul>
<li><code>alphabet.split(//)</code> &#8211; converts the string to a character array, as Ruby does not have this built in</li>
<li><code>.zip('A'..'Z')</code> &#8211; &#8220;zips&#8221; the array with the real alphabet creating an array like <code>[["Q", "A"], ["W", "B"]...]</code></li>
<li><code>Hash[*...flatten]</code> &#8211; flattens the array so we could turn it into a Hash e.g. <code>{ "Q" => "A", "W" => "B", ...}</code></li>
</ul>
<p>Line 21 &#8211; 24 creates a new array containing word pairs consisting of the input words and their equivalent words in the Ripley alphabet. </p>
<ul>
<li><code>word_pairs = words.map do |word|</code> &#8211; maps the entire array to a new array based on the return value of the block</li>
<li><code>word.split(//)</code> &#8211; again, converts the string to a character array</li>
<li><code>.map { |c| translation_table&#91;c] }.join</code> &#8211; maps each character to the Ripley alphabet using the hash we made earlier. The <code>join</code> turns the array back to a string</li>
<li><code>[word, ...]</code> &#8211; return value of the block is the word pair array e.g. <code>["SCOTT", "RVIEE"]</code></li>
</ul>
<p>After line 24 you now have an array like <code>[["SCOTT", "RVIEE"], ["WEAVER", "BCSWCD"]]</code>. We then sort this list by the second element of the pair (i.e. <code>.sort_by { |pair| pair[1] }</code>) and put each word on the output file (i.e. <code>.each { |pair| output.puts pair[0] }</code>)</p>
<h3>Problem C: Congressional Progression</h3>
<p><strong>Problem Type:</strong> Graph Theory</p>
<p>My solution:<br />
<script src="https://gist.github.com/4195830.js?file=team_x_prob_c.rb"></script></p>
<p>This is the first problem whose solution you could find in <em>Data Structures</em>. A major district in the problem is a vertex, once removed, produces a graph where there is no path between one or more pairs of vertices. This can easily be determined once you have a <a href="http://en.wikipedia.org/wiki/Transitive_closure#In_graph_theory">transitive closure</a> for the graph, which we will construct using <a href="http://en.wikipedia.org/wiki/Floyd%E2%80%93Warshall_algorithm#Applications_and_generalizations">Warshall&#8217;s algorithm</a>.</p>
<p>The code above a bit straightforward:</p>
<ul>
<li>Line 24 simply removes all of the edges that contain the currently tested major district / vertex</li>
<li>Lines 25 &#8211; 28 looks fancy, but all it does is create a translation table for the name of the district with their respective positions e.g. <code>{ "Borgia" => 0, "Camelville" => 1 }</code></li>
<li>Lines 33 &#8211; 45 is a direct translation of the Warshall&#8217;s Algorithm from the book to Ruby</li>
<li>Line 46 determines if the district is major by checking for the existence of <code>false</code>s in the adjacency matrix.</li>
</ul>
<p><strong><em>Data Structures</em> reference:</strong> page 331, Warshall&#8217;s Algorithm</p>
<h3>Problem D: Islands</h3>
<p><strong>Problem Type:</strong> Graph Theory</p>
<p>My solution:<br />
<script src="https://gist.github.com/4195830.js?file=team_x_prob_d.rb"></script></p>
<p>This problem can be solved in many ways, with the simplest being graph traversal algorithms. And the simplest of those is <a href="http://en.wikipedia.org/wiki/Depth-first_search">depth-first search</a> which is used by the code above.</p>
<p>To summarize what the code above does:</p>
<ul>
<li>Look for an island tip closest to the top.</li>
<li>Increment the island count.</li>
<li>Use DFS to delete the island piece by piece.</li>
<li>Repeat until there are no islands left.</li>
</ul>
<p><strong><em>Data Structures</em> reference:</strong> page 253, Depth-First Search</p>
<h3>Problem E: Basketball</h3>
<p><strong>Problem Type:</strong> Coding</p>
<p>My solution:<br />
<script src="https://gist.github.com/4195830.js?file=team_x_prob_e.rb"></script></p>
<p>Another coding problem. Expect to fail many technical interviews if you can&#8217;t program this in less than 30 minutes.</p>
<p>The existence of <code>Array#count()</code> makes this problem too easy in Ruby.</p>
<h3>Problem F: Utility Maximization</h3>
<p><strong>Problem Type:</strong> Mathematical Optimization / Microeconomics</p>
<p>My solution:<br />
<script src="https://gist.github.com/4195830.js?file=team_x_prob_f.rb"></script></p>
<p>Like <em>Problem A</em>, this problem can be solved either through brute-force or having knowledge of microeconomics or mathematical optimization.</p>
<p>And it can be solved using blind luck.</p>
<p>To explain why it can be solved through luck, we must first look at a &#8220;real&#8221; solution using <a href="http://en.wikipedia.org/wiki/Lagrange_multiplier">Lagrange multipliers</a>:</p>
<p><img src="http://images.bryanbibat.net/utility00.png" class="aligncenter" /></p>
<p>Not fun, right?</p>
<p>However, if you set the function and constraint to the ones given in the problem and take time to solve the partial differential equations, you&#8217;ll end up with something like:</p>
<p><img src="http://images.bryanbibat.net/utility01.png" class="aligncenter" /></p>
<p>If you were lucky, you could&#8217;ve seen this pattern in the examples:</p>
<p><img src="http://images.bryanbibat.net/utility02.png" class="aligncenter" /></p>
<p><img src="http://images.bryanbibat.net/utility03.png" class="aligncenter" /></p>
<p>In short, the price x quantity of each good is proportional to their substitutability scale. From there, it should not be hard to derive:</p>
<p><img src="http://images.bryanbibat.net/utility04.png" class="aligncenter" /></p>
<p>i.e. line 18 above.</p>
<h3>Problem G: Evolution of Industries</h3>
<p><strong>Problem Type:</strong> Graph Theory</p>
<p>My solution:<br />
<script src="https://gist.github.com/4195830.js?file=team_x_prob_g.rb"></script></p>
<p>We need to find the path between two points in the graph that produces the highest probability. Calculating probability of independent events is simple (<a href="http://en.wikipedia.org/wiki/Probability#Independent_probability">just multiply them all together</a>) while finding the path is only a matter of choosing which pathfinding algorithm to choose. For the code above, I chose the most common algorithm: <a href="http://en.wikipedia.org/wiki/Dijkstra%27s_algorithm">Dijkstra&#8217;s Algorithm</a>.</p>
<p>Line 24 onwards is a direct implementation of the algorithm from the book.</p>
<p><strong><em>Data Structures</em> reference:</strong> page 312, Dijkstra&#8217;s Algorithm</p>
<h3>Problem H: Relatively Prime</h3>
<p><strong>Problem Type:</strong> Number Theory</p>
<p>My solution:<br />
<script src="https://gist.github.com/4195830.js?file=team_x_prob_h.rb"></script></p>
<p>The easiest problem of the set. All it takes is for you to know how to calculate the GCF of two numbers efficiently. If you&#8217;re not using Ruby or Python (which has built in GCD functions), you can code the <a href="http://en.wikipedia.org/wiki/Euclidean_algorithm#Implementations">Euclidian Algorithm</a> in less than a minute.</p>
<p><strong><em>Data Structures</em> reference:</strong> page 5, Euclid&#8217;s Algorithm</p>
<h3>Problem I: Jugs</h3>
<p><strong>Problem Type:</strong> Graph Theory</p>
<p>My solution:<br />
<script src="https://gist.github.com/4195830.js?file=team_x_prob_i.rb"></script></p>
<p>This classic puzzle isn&#8217;t that hard when you use graph-traversal algorithms on it. Since we&#8217;ve already used DFS and Dijkstra&#8217;s algorithm above, I chose to use <a href="http://en.wikipedia.org/wiki/Breadth-first_search">Breadth-First Search</a> this time around. (Note that DFS is fine because there&#8217;s no &#8220;shortest path&#8221; requirement.)</p>
<p>Here&#8217;s how BFS can be used to solve the first example, 3 5 4:</p>
<p><img src="http://images.bryanbibat.net/bfs00.png" class="aligncenter" /></p>
<p>We start with our first node, representing 0 gallons for jug A and 0 gallons for jug B.</p>
<p><img src="http://images.bryanbibat.net/bfs01.png" class="aligncenter" /></p>
<p>We can only do two things, fill A and fill B. All other moves returns you to the same node.</p>
<p><img src="http://images.bryanbibat.net/bfs02.png" class="aligncenter" /></p>
<p>On node (3,0), we can fill B and pour A B. Again, all else returns you to a previously visited node.</p>
<p><img src="http://images.bryanbibat.net/bfs03.png" class="aligncenter" /></p>
<p>On node (0,5), we can only fill A and pour B A. Note that (3,5) has already been created in the previous step.</p>
<p><img src="http://images.bryanbibat.net/bfs04.png" class="aligncenter" /></p>
<p>Node (3,5) is a dead end.</p>
<p><img src="http://images.bryanbibat.net/bfs05.png" class="aligncenter" /></p>
<p>On node (0,3), we can fill A.</p>
<p><img src="http://images.bryanbibat.net/bfs06.png" class="aligncenter" /></p>
<p>On node (3,2), we can empty A.</p>
<p><img src="http://images.bryanbibat.net/bfs07.png" class="aligncenter" /></p>
<p>On node (3,3), we can pour A B.</p>
<p><img src="http://images.bryanbibat.net/bfs08.png" class="aligncenter" /></p>
<p>On node (0,2), we can pour B A.</p>
<p><img src="http://images.bryanbibat.net/bfs09.png" class="aligncenter" /></p>
<p>On node (1,5), we can empty B.</p>
<p><img src="http://images.bryanbibat.net/bfs10.png" class="aligncenter" /></p>
<p>On node (2,0), we can fill B.</p>
<p><img src="http://images.bryanbibat.net/bfs11.png" class="aligncenter" /></p>
<p>On node (1,0), we can pour A B.</p>
<p><img src="http://images.bryanbibat.net/bfs12.png" class="aligncenter" /></p>
<p>On node (2,5), we can pour B A leaving 4 gallons on jug B.</p>
<p>Backtracking, we now have our solution.</p>
<p>The whole thing, animated:</p>
<p><img src="http://images.bryanbibat.net/bfs_ccup.gif" class="aligncenter" /></p>
<p>My BFS implementation is kinda weird in that it doesn&#8217;t use a real queue (it uses a simple array) and we store the back edges along with the action in a hash of a hash.</p>
<p>The solution above also finds the solution for putting N gallons in jug B. According to the spec, you only need to put the water in either jug. We&#8217;ll just leave modifying the solution above to do this as your assignment.</p>
<p><strong><em>Data Structures</em> reference:</strong> page 265, Breadth-First Search</p>
<h3>Problem J: Just the Facts</h3>
<p><strong>Problem Type:</strong> Coding</p>
<p>My solution:<br />
<script src="https://gist.github.com/4195830.js?file=team_x_prob_j.rb"></script></p>
<p>Last and probably one of the least, we have this coding problem.</p>
<p>Your main problem here is how to calculate factorials &#8211; using normal integers, you&#8217;ll get to the integer limit very quickly. There are many clever ways of calculating the last non-zero digit of a factorial, but there&#8217;s really no need to do that. Using arbitrary-precision arithmetic (e.g. Java&#8217;s <code>BigInteger</code>) you can calculate <code>10000!</code> in all of the given languages in less than a second using less than 1MB of memory.</p>
<p>Here&#8217;s what we did in the Ruby code above:</p>
<ul>
<li><code>(1..n).reduce(:*)</code> &#8211; calculate factorial using <code>reduce()</code>. Ruby automatically converts integers to <code>Bignum</code> when they reach a certain size.</code></li>
<li><code>.to_s.gsub("0", "")</code> - convert factorial to string and replace all 0's with blanks</li>
<li><code>[-1]</code> - get the last character</li>
</ul>
<p>--</p>
<p>And that's that. To summarize, we got</p>
<ul>
<li>3 problems that can be solved with minimal CS instruction</li>
<li>5 that can be solved using Quiwa's <em>Data Structures</em></li>
<li>2 niche statistics and economics problems (A and F)</li>
</ul>
<p>In other words, it's a pretty good problem set for programmers of all levels. I might even go as to say that, given enough time, a <em>second-year</em> Computer Science student should be able to answer 8 of them armed only with a laptop, their textbooks, and a complete programming language API.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bryanbibat.net/2012/12/10/unofficial-solutions-to-devcon-c-cup-2012-problems/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to Vote in the Global Startup Battle (because the site sucks)</title>
		<link>http://blog.bryanbibat.net/2012/11/25/how-to-vote-in-the-global-startup-battle-because-the-site-sucks/</link>
		<comments>http://blog.bryanbibat.net/2012/11/25/how-to-vote-in-the-global-startup-battle-because-the-site-sucks/#comments</comments>
		<pubDate>Sun, 25 Nov 2012 08:32:18 +0000</pubDate>
		<dc:creator>Bry</dc:creator>
				<category><![CDATA[Follow-Up]]></category>
		<category><![CDATA[Global Startup Battle]]></category>
		<category><![CDATA[My Startup Academy]]></category>

		<guid isPermaLink="false">http://blog.bryanbibat.net/?p=1795</guid>
		<description><![CDATA[From our testing and based on the large discrepancy between the number of likes and the number of votes on the entries, we&#8217;ve concluded that the Global Startup Battle&#8217;s voting site&#8217;s usability sucks. The correct way to vote would be to like the Startup Weekend page, then add Offerpop as an app, then wait for [...]]]></description>
				<content:encoded><![CDATA[<p><img src="http://i.imgur.com/i20WY.png" class="aligncenter"></p>
<p>From our testing and based on the large discrepancy between the number of likes and the number of votes on the entries, we&#8217;ve concluded that the Global Startup Battle&#8217;s voting site&#8217;s usability <strong>sucks</strong>.</p>
<p>The correct way to vote would be to like the Startup Weekend page, then add Offerpop as an app, then wait for the entry to fully load before clicking the small orange Vote button.</p>
<p>Go vote now! <a href="http://bit.ly/mystartupacademy">http://bit.ly/mystartupacademy</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bryanbibat.net/2012/11/25/how-to-vote-in-the-global-startup-battle-because-the-site-sucks/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>My Startup Academy – Global Startup Battle entry</title>
		<link>http://blog.bryanbibat.net/2012/11/22/my-startup-academy-global-startup-battle-entry/</link>
		<comments>http://blog.bryanbibat.net/2012/11/22/my-startup-academy-global-startup-battle-entry/#comments</comments>
		<pubDate>Wed, 21 Nov 2012 21:47:51 +0000</pubDate>
		<dc:creator>Bry</dc:creator>
				<category><![CDATA[Site News]]></category>
		<category><![CDATA[Global Startup Battle]]></category>
		<category><![CDATA[Startup Weekend]]></category>

		<guid isPermaLink="false">http://blog.bryanbibat.net/?p=1792</guid>
		<description><![CDATA[Please vote for our entry in the Global Startup Battle! http://bit.ly/RR8apT (You may have to like the page, though =/)]]></description>
				<content:encoded><![CDATA[<p>Please vote for our entry in the Global Startup Battle! <a href="http://bit.ly/RR8apT" target="_blank">http://bit.ly/RR8apT</a> </p>
<p>(You may have to like the page, though =/)</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bryanbibat.net/2012/11/22/my-startup-academy-global-startup-battle-entry/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Project Araro – Bigas Hackathon</title>
		<link>http://blog.bryanbibat.net/2012/11/15/project-araro-bigas-hackathon/</link>
		<comments>http://blog.bryanbibat.net/2012/11/15/project-araro-bigas-hackathon/#comments</comments>
		<pubDate>Thu, 15 Nov 2012 12:00:22 +0000</pubDate>
		<dc:creator>Bry</dc:creator>
				<category><![CDATA[Brain Dumps]]></category>
		<category><![CDATA[Gaming]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[hackathon]]></category>
		<category><![CDATA[IRRI]]></category>
		<category><![CDATA[Project Araro]]></category>

		<guid isPermaLink="false">http://blog.bryanbibat.net/?p=1786</guid>
		<description><![CDATA[In a C-Cup meeting the week before the IRRI/Smart Bigas Hackathon, MRTtrackr&#8216;s Michie suggested I do a Farmville type game for the event. I originally didn&#8217;t want to do it, instead favoring more relevant apps for IRRI. However, two things convinced me to go with making a game: If I was to participate, I needed [...]]]></description>
				<content:encoded><![CDATA[<p>In a <a href="http://devcon.ph/events/devcon-code-challenge-cup-c-cup">C-Cup</a> meeting the week before the <a href="http://bigashackathon.eventbrite.com/">IRRI/Smart Bigas Hackathon</a>, <a href="http://www.mrttrackr.com/">MRTtrackr</a>&#8216;s Michie suggested I do a Farmville type game for the event. I originally didn&#8217;t want to do it, instead favoring more relevant apps for <a href="http://irri.org/">IRRI</a>. However, two things convinced me to go with making a game:</p>
<ul>
<li>If I was to participate, I needed to have a team. The only teammate I could get was Alvin who was there mainly as an observer. For those who don&#8217;t know Alvin Chan, he&#8217;s a <em>game designer</em>.</li>
<li>IRRI actually needs a game: their educational rice growing simulation was written in <a href="http://www.truebasic.com/">True Basic</a> and badly needed a port/update.</li>
</ul>
<p>Long story short, we made a game and we <a href="http://smartdevnet.wordpress.com/2012/11/11/and-the-winners-of-the-first-ever-irri-and-smart-bigas-hackathon-are/">won the game category</a>.</p>
<p>You can play the game now at <a href="http://araro.karaniwan.org/">araro.karaniwan.org</a>. The source code is also available on <a href="https://github.com/bryanbibat/araro">Github</a>.</p>
<p>Here&#8217;s a video of our &#8220;winning presentation&#8221;:</p>
<p><iframe width="560" height="315" src="http://www.youtube-nocookie.com/embed/tWwcA-Z0XfI?rel=0" frameborder="0" allowfullscreen></iframe></p>
<p>If you want to learn more about how we did the app, attend the <a href="http://webgeek.ph/events/pre-hackathon-meetup-4sqhackph/">Pre-Hackathon meetup for the 4SQHackPH</a>. I&#8217;ll be there to talk about hackathon stuff.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bryanbibat.net/2012/11/15/project-araro-bigas-hackathon/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tayo’y Maglaro: Towns v0.60a</title>
		<link>http://blog.bryanbibat.net/2012/10/07/tayoy-maglaro-towns-v0-60a/</link>
		<comments>http://blog.bryanbibat.net/2012/10/07/tayoy-maglaro-towns-v0-60a/#comments</comments>
		<pubDate>Sun, 07 Oct 2012 04:37:59 +0000</pubDate>
		<dc:creator>Bry</dc:creator>
				<category><![CDATA[Brain Dumps]]></category>
		<category><![CDATA[Gaming]]></category>
		<category><![CDATA[review]]></category>
		<category><![CDATA[Tayo'y Maglaro]]></category>
		<category><![CDATA[Towns (game)]]></category>

		<guid isPermaLink="false">http://blog.bryanbibat.net/?p=1780</guid>
		<description><![CDATA[Been busy for the past few weeks. Took a break from work to record a 1-hour Tagalog Let&#8217;s Play of a beta indie game I&#8217;ve been playing for the past few months, Towns. (best viewed in HD) Apologies for not lowering the game sound channel. I only realized it after uploading 700MB with a crappy [...]]]></description>
				<content:encoded><![CDATA[<p>Been busy for the past few weeks. Took a break from work to record a 1-hour Tagalog Let&#8217;s Play of a beta indie game I&#8217;ve been playing for the past few months, <a href="http://townsgame.com/">Towns</a>.</p>
<p><object width="560" height="315"><param name="movie" value="http://www.youtube-nocookie.com/v/n4iPnB6Qgxo?version=3&amp;hl=en_US&amp;rel=0"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube-nocookie.com/v/n4iPnB6Qgxo?version=3&amp;hl=en_US&amp;rel=0" type="application/x-shockwave-flash" width="560" height="315" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p>(best viewed in HD)</p>
<p>Apologies for not lowering the game sound channel. I only realized it after uploading 700MB with a crappy PLDT myDSL line.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bryanbibat.net/2012/10/07/tayoy-maglaro-towns-v0-60a/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss><!-- Dynamic page generated in 0.390 seconds. --><!-- Cached page generated by WP-Super-Cache on 2013-05-26 01:36:58 -->
