<?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, 17 May 2012 13:53:52 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</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>Pangkaraniwang Developer – matuto ng Computer Science at Programming</title>
		<link>http://blog.bryanbibat.net/2012/05/17/pangkaraniwang-developer-matuto-ng-computer-science-at-programming/</link>
		<comments>http://blog.bryanbibat.net/2012/05/17/pangkaraniwang-developer-matuto-ng-computer-science-at-programming/#comments</comments>
		<pubDate>Thu, 17 May 2012 13:42:26 +0000</pubDate>
		<dc:creator>Bry</dc:creator>
				<category><![CDATA[Brain Dumps]]></category>
		<category><![CDATA[Site News]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Software Engineering]]></category>
		<category><![CDATA[Training]]></category>
		<category><![CDATA[fundamentals]]></category>
		<category><![CDATA[pangkaraniwang developer]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://blog.bryanbibat.net/?p=1601</guid>
		<description><![CDATA[&#8220;Turuan ang sinumang Pilipino na gustong matuto ng Programming o Computer Science.&#8221; If there&#8217;s a tagline for my current project, Pangkaraniwang Developer, that would be it. No need for a lengthy blog post, just head over to the About page and learn why I&#8217;m doing this. Donations are always welcome. LOL]]></description>
			<content:encoded><![CDATA[<p><a href="http://pd.bryanbibat.net" title="pangkaraniwang developer"><img src="http://images.bryanbibat.net/pd.png" class="aligncenter" /></a></p>
<p><em>&#8220;Turuan ang sinumang Pilipino na gustong matuto ng Programming o Computer Science.&#8221;</em></p>
<p>If there&#8217;s a tagline for my current project, <a href="http://pd.bryanbibat.net" title="pangkaraniwang developer">Pangkaraniwang Developer</a>, that would be it.</p>
<p>No need for a lengthy blog post, just head over to the <a href="http://pd.bryanbibat.net/about">About</a> page and learn why I&#8217;m doing this. </p>
<p>Donations are always welcome. LOL</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bryanbibat.net/2012/05/17/pangkaraniwang-developer-matuto-ng-computer-science-at-programming/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Surreal thing about Startup Weekend Manila</title>
		<link>http://blog.bryanbibat.net/2012/05/03/surreal-thing-about-startup-weekend-manila/</link>
		<comments>http://blog.bryanbibat.net/2012/05/03/surreal-thing-about-startup-weekend-manila/#comments</comments>
		<pubDate>Thu, 03 May 2012 08:27:38 +0000</pubDate>
		<dc:creator>Bry</dc:creator>
				<category><![CDATA[Brain Dumps]]></category>
		<category><![CDATA[Event Report]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Startup Weekend Manila]]></category>

		<guid isPermaLink="false">http://blog.bryanbibat.net/?p=1595</guid>
		<description><![CDATA[I didn&#8217;t get to tweet this but I think it deserves at least a short blog post. Last Sunday, while waiting for the final pitches, I (an unemployed slacker, LOL) got to sit at the same table as John Arce of WebGeek, Jason Torres of Proudcloud and ArtisteConnect, Rico Sta. Cruz of (among other things) [...]]]></description>
			<content:encoded><![CDATA[<p>I didn&#8217;t get to tweet this but I think it deserves at least a short blog post.</p>
<p><a href="http://manila.startupweekend.org/">Last Sunday</a>, while waiting for the final pitches, I (an unemployed slacker, LOL) got to sit at the same table as <a href="https://twitter.com/johnarcews">John Arce</a> of <a href="http://webgeek.ph/">WebGeek</a>, <a href="https://twitter.com/jasontorres">Jason Torres</a> of <a href="http://www.proudcloud.net/">Proudcloud</a> and <a href="http://www.artisteconnect.com/">ArtisteConnect</a>, <a href="https://twitter.com/rstacruz">Rico Sta. Cruz</a> of (among other things) <a href="http://js2coffee.org/">JS2Coffee</a> and <a href="https://github.com/rstacruz/sparkup">Sparkup</a>, and <a href="https://twitter.com/ericzoo">Eric Su</a> of <a href="http://piclyf.com/">PicLyf</a>.</p>
<p>The surreal thing about this was not just the fact that I got to be with these big names in the local tech industry, but the fact that, contrary to what the tech media would lead you to believe, there was no &#8220;rockstar&#8221; thing going on in that table.</p>
<p>As it stood, we were just a bunch of people who build software talking about building software.</p>
<p>We need more of this in the tech industry: people collaborating and talking about great ideas, and less pissing matches and <a href="https://twitter.com/wycats/status/197769106232057856">startup fan fiction</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bryanbibat.net/2012/05/03/surreal-thing-about-startup-weekend-manila/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MySQL tuning and Rails Best Practices talks from Friendster</title>
		<link>http://blog.bryanbibat.net/2012/04/26/mysql-tuning-and-rails-best-practices-talks-from-friendster/</link>
		<comments>http://blog.bryanbibat.net/2012/04/26/mysql-tuning-and-rails-best-practices-talks-from-friendster/#comments</comments>
		<pubDate>Thu, 26 Apr 2012 08:26:52 +0000</pubDate>
		<dc:creator>Bry</dc:creator>
				<category><![CDATA[Brain Dumps]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PhRUG]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Ruby on Rails]]></category>

		<guid isPermaLink="false">http://blog.bryanbibat.net/?p=1589</guid>
		<description><![CDATA[Just posted the videos from last night&#8217;s PhRUG meetup over at the website. Go over there and watch them now.]]></description>
			<content:encoded><![CDATA[<p>Just posted the videos from last night&#8217;s <a href="https://groups.google.com/forum/#%21forum/ruby-phil">PhRUG</a> meetup over at the website.</p>
<p><a href="http://pinoyrb.org/ruby/april-2012-meetup-videos">Go over there and watch them now.</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bryanbibat.net/2012/04/26/mysql-tuning-and-rails-best-practices-talks-from-friendster/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to prepare for a Technical Interview</title>
		<link>http://blog.bryanbibat.net/2012/04/14/how-to-prepare-for-a-technical-interview/</link>
		<comments>http://blog.bryanbibat.net/2012/04/14/how-to-prepare-for-a-technical-interview/#comments</comments>
		<pubDate>Sat, 14 Apr 2012 11:06:18 +0000</pubDate>
		<dc:creator>Bry</dc:creator>
				<category><![CDATA[Brain Dumps]]></category>
		<category><![CDATA[Software Engineering]]></category>
		<category><![CDATA[Training]]></category>
		<category><![CDATA[fundamentals]]></category>
		<category><![CDATA[interviewing]]></category>
		<category><![CDATA[Object Oriented]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://blog.bryanbibat.net/?p=1575</guid>
		<description><![CDATA[With April being the graduation month here in the Philippines, you&#8217;ll be seeing fresh graduates in various forums and discussion groups looking for advice on how to pass technical interviews. Here&#8217;s one posted over at the PHP Users Group forum earlier today: Can you help me with this? I&#8217;m going to take a technical written [...]]]></description>
			<content:encoded><![CDATA[<p>With April being the graduation month here in the Philippines, you&#8217;ll be seeing fresh graduates in various forums and discussion groups looking for advice on how to pass technical interviews. Here&#8217;s one posted over at the PHP Users Group forum earlier today:</p>
<blockquote><p>Can you help me with this? I&#8217;m going to take a technical written exam for a job i&#8217;m applying. Here is the list of what are expected on the exam:<br />
-Basic Programming<br />
-OOP<br />
-recursive programming and variables in programming<br />
-? statement<br />
-conditional statements<br />
-loop statements<br />
-flowcharting<br />
-pseudocodes (strings,odd/even)<br />
Can you guys give me tips and heads up on where to focus and what to expect on the exam? The exam will be next week and I want to be prepared for it. Thanks in advance.</p>
<p>PS: Hindi ko alam kung anong programming language ung eexam. (<em>I don&#8217;t know what programming language will be used in the test</em>)</p></blockquote>
<p>Whenever I see these type of questions, the first thing I do is give a <a href="https://www.google.com/search?q=look+of+disapproval" title="look of disapproval">ಠ_ಠ</a> to my monitor. The listed coverage above is so basic that every 2<sup>nd</sup> year college student should have no problem with it.</p>
<p>It&#8217;s like a carpenter asking what tool to focus on when applying for a carpenter position: screwdrivers, hammers, saws, or measuring tape? Yes, it&#8217;s <em>that</em> basic.</p>
<p>Unhelpful snarkiness aside, what advice would I give to these fresh grads?</p>
<p><span id="more-1575"></span>There only need to do two things:</p>
<p><strong>1. Relearn the basics</strong></p>
<p>If you&#8217;re not confident about the things listed above once you&#8217;ve graduated college, it may mean that you don&#8217;t have a good foundation with the <a href="http://blog.bryanbibat.net/tag/fundamentals/">fundamentals</a> yet. So the best advice I could give for that problem would be to <em>forget everything you know and start over using the following books</em>:</p>
<ul>
<li><a href="http://pine.fm/LearnToProgram/">Learn to Program</a> by Chris Pine</li>
<li><a href="http://learnpythonthehardway.org/book/">Learn Python the Hard Way</a> by Zed Shaw</li>
<li><a href="http://www.greenteapress.com/thinkpython/thinkpython.html">Think Python</a> or <a href="http://www.greenteapress.com/thinkapjava/">Think Java</a> by Allen Downey</li>
<li><a href="http://mitpress.mit.edu/sicp/">Structure and Interpretation of Computer Programs</a> by Harold Abelson and Gerald Sussman (<em>optional, if you want to double your starting salary. LOL</em>)
</ul>
<p>When reading these books, you may find out how outdated or incomplete your college courses were back when you were taught programming. This is normal, and is an important part of the (re)learning process.</p>
<p>While you are reading these books, you may do the second advice at the same time:</p>
<p><strong>2. Practice. Practice. PRACTICE!!!!</strong></p>
<p>Apart from lack of fundamentals, the other reason you might not be that confident in going into a technical interview is the lack of coding practice &#8212; you should&#8217;ve encountered all of the things above had you coded thousands of lines of code before graduating.</p>
<p>So practice! Go to <a href="http://projecteuler.net/">Project Euler</a> and try to solve the problems! Go to <a href="http://www.topcoder.com/">Top Coder</a> and do the same with the High School competitions!</p>
<p>Find algorithms and try to implement them! Start with simple ones like the <a href="http://en.wikipedia.org/wiki/Sieve_of_Eratosthenes">Sieve of Erasthosenes</a> and <a href="http://en.wikipedia.org/wiki/Conway%27s_Game_of_Life">Conway&#8217;s Game of Life</a>, then move on to progressively harder ones like <a href="http://en.wikipedia.org/wiki/Quicksort">Quicksort</a> and <a href="http://en.wikipedia.org/wiki/Dijkstra%27s_algorithm">Dijkstra&#8217;s Algorithm</a>.</p>
<p>Also, don&#8217;t be content with just writing code; make an effort to <strong>read code</strong>. Good programmers are like good novelists; they read a lot more code than they write so they know what looks right and what looks wrong.</p>
<p>In other words, if you can&#8217;t figure out how to code something, just search for sample code on the internet and study them.</p>
<p>&#8212;</p>
<p>Just to wrap things up, I&#8217;ll be commenting on the items in the &#8220;technical interview coverage&#8221; listed at the start of this post.</p>
<blockquote><p>-Basic Programming<br />
&#8230;<br />
-&#8230;variables in programming<br />
-conditional statements<br />
-loop statements</p></blockquote>
<p>If you&#8217;re not familiar with these after a CS/IT course in college, I really question the quality of your education.</p>
<blockquote><p>-? statement</p></blockquote>
<p>It&#8217;s the <a href="http://en.wikipedia.org/wiki/%3F:">conditional operator</a>, used for writing if-then-else statements in shorthand. </p>
<p>Technically speaking, you really don&#8217;t need to use this (and in turn, don&#8217;t really need to know this) but there are a lot of cases where the shorter form makes code much easier to read. (And there are a lot of cases where it makes code really <em>hard</em> to read, but that&#8217;s another story.)</p>
<blockquote><p>-recursive programming &#8230;</p></blockquote>
<p><a href="http://en.wikipedia.org/wiki/Recursion_%28computer_science%29">This is recursion.</a> There are two types of interviews that use recursion:</p>
<ul>
<li>The bullshit type that makes you use recursion for tasks that can be done with simple loops like <a href="http://en.wikipedia.org/wiki/Recursion_%28computer_science%29#Factorial">factorial</a> and <a href="http://en.wikipedia.org/wiki/Recursion_%28computer_science%29#Fibonacci">fibonacci sequence</a>. If you know what loops are (and you should) and what recursion is, this shouldn&#8217;t be hard for you.
<p>Why do I find it bullshit? Because any programmer worth his/her salt knows how bad <a href="http://en.wikipedia.org/wiki/Tail_call">tail recursion</a> can be in certain languages.</p>
<p>If a decent technical interviewer would ask me this question, I&#8217;d expect a follow up question on how to eliminate the tail call.</li>
<li>The good type of interview that really requires recursion i.e. the ones that require stacks and backtracking. For example:<br />
<blockquote><p>Given a string of characters, find the longest palindrome within the string.</p></blockquote>
<p>These problems may be harder, but they&#8217;re very much doable if you practiced the way suggested above.
</li>
</ul>
<blockquote><p>-flowcharting</p></blockquote>
<p>As I&#8217;ve mentioned in <a href="www.twitter.com/bry_bibat/status/190804146885103617">last night&#8217;s tweet</a>, flowcharts are cute but useless. Anything less than <a href="http://en.wikipedia.org/wiki/Data_flow_diagram">Data Flow Diagrams</a> or <a href="http://en.wikipedia.org/wiki/Unified_Modeling_Language">UML</a> Diagrams can be better written as pseudocode.</p>
<blockquote><p>-pseudocodes (strings,odd/even)</p></blockquote>
<p>Which brings us to this one. <a href="http://en.wikipedia.org/wiki/Pseudocode">Pseudocode</a> has nothing to do with &#8220;strings,odd/even&#8221;. My guess is that this just wants the applicant to be comfortable with writing pseudocode that deals with strings. (and numbers?)</p>
<blockquote><p>-OOP</p></blockquote>
<p>Now here&#8217;s the hard part. Even I didn&#8217;t have good OOP knowledge even after graduating from college.</p>
<p>Fortunately, the books listed above have decent chapters on OOP so just read up on the topic and practice.</p>
<p>And finally:</p>
<blockquote><p>PS: Hindi ko alam kung anong programming language ung eexam. (<em>I don&#8217;t know what programming language will be used in the test</em>)</p></blockquote>
<p>This means the test is language agnostic and you will be coding in pseudocode. Just use the language you&#8217;re most familiar with.</p>
<p>If the interviewer berates you for syntax errors on code written on a whiteboard or a piece of paper, you probably won&#8217;t want to work in such a company. Trust me.</p>
<p>&#8211;</p>
<p>In closing, most technical interviews are just there to weed out applicants who pose as developers but can&#8217;t really write a line of code. So if you <em>really</em> know how to code, you shouldn&#8217;t have a problem with them.</p>
<p>And if you do fail, just take it as a sign that you need to practice harder. Unlike in other fields, a few months of practice in programming will actually help you get better jobs.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bryanbibat.net/2012/04/14/how-to-prepare-for-a-technical-interview/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Quick Look at Notepad++ as a Windows Ruby/Rails Editor</title>
		<link>http://blog.bryanbibat.net/2012/03/30/quick-look-at-notepad-as-a-windows-rubyrails-editor/</link>
		<comments>http://blog.bryanbibat.net/2012/03/30/quick-look-at-notepad-as-a-windows-rubyrails-editor/#comments</comments>
		<pubDate>Fri, 30 Mar 2012 11:58:29 +0000</pubDate>
		<dc:creator>Bry</dc:creator>
				<category><![CDATA[Brain Dumps]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[editors]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://blog.bryanbibat.net/?p=1569</guid>
		<description><![CDATA[Last year, I looked at the better Ruby/Rails editors in Windows. With Notepad++ version 6 released recently, I decided to check whether it&#8217;s good enough to be an alternative to those two. Screenshot again with my depressing lotto app: Overall, it&#8217;s ok, especially with the Explorer plugin. However, there are still a bunch of stuff [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.bryanbibat.net/2011/02/14/free-windows-rubyrails-editors-redcar-and-sublime-text-2/">Last year</a>, I looked at the better Ruby/Rails editors in Windows. <a href="http://notepad-plus-plus.org/news/notepad-6.0-release.html">With Notepad++ version 6 released recently</a>, I decided to check whether it&#8217;s good enough to be an alternative to those two.</p>
<p>Screenshot again with my depressing lotto app:</p>
<p><a href="http://images.bryanbibat.net/notepadpp-ruby.png"><img src="http://images.bryanbibat.net/notepadpp-ruby.jpg" alt="notepad++" class="aligncenter" /></a></p>
<p>Overall, it&#8217;s ok, especially with the Explorer plugin. However, there are still a bunch of stuff I&#8217;d nitpick about:</p>
<ul>
<li>Split screen is limited to 2 screens. Which is weird limitation considering both vim and emacs can do an infinite number of them.</li>
<li>EOL symbols are ugly and can&#8217;t be modified.</li>
<li>No Haml support yet.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.bryanbibat.net/2012/03/30/quick-look-at-notepad-as-a-windows-rubyrails-editor/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Other languages you should learn</title>
		<link>http://blog.bryanbibat.net/2012/03/28/other-languages-you-should-learn/</link>
		<comments>http://blog.bryanbibat.net/2012/03/28/other-languages-you-should-learn/#comments</comments>
		<pubDate>Tue, 27 Mar 2012 20:24:26 +0000</pubDate>
		<dc:creator>Bry</dc:creator>
				<category><![CDATA[Brain Dumps]]></category>
		<category><![CDATA[Follow-Up]]></category>
		<category><![CDATA[Software Engineering]]></category>

		<guid isPermaLink="false">http://blog.bryanbibat.net/?p=1564</guid>
		<description><![CDATA[At first glance, this tweet in response to my previous post looks like a simple joke. But it&#8217;s actually true the more you think about it. Understanding body language is important because software engineering is more about dealing with people than with software itself: almost all failed software projects are due to people problems (e.g. [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://images.bryanbibat.net/body_language.png" alt="body language" class="aligncenter" /></p>
<p>At first glance, this tweet in response to my <a href="http://blog.bryanbibat.net/2012/03/20/what-programming-language-should-i-learn/">previous post</a> looks like a simple joke. But it&#8217;s actually true the more you think about it.</p>
<p>Understanding <strong>body language</strong> is important because <a href="http://blog.bryanbibat.net/category/brain-dump/software-engineering-daily-entry/">software engineering</a> is more about dealing with people than with software itself: almost all failed software projects are due to people problems (e.g. management and client problems) instead of technology problems.</p>
<p>Here are some cases where knowing body language can make a difference:</p>
<ul>
<li><em>A client asks for too many features under an impossible deadline</em> &#8211; by gauging the client&#8217;s behavior, you can determine if she&#8217;s basically bluffing (to which you negotiate a compromise by reducing the scope) or if she&#8217;s really that stupid/sadistic (to which you drop the client for better ones).</li>
<li><em>A developer puts in too many hours into overtime</em> &#8211; depending on the dev&#8217;s behavior, a good manager would determine if that dev is simply temporarily getting brownie points for a promotion or upcoming long vacation. On the other hand, it may also mean that that dev is incompetent to the point that he needs more hours to fix his crappy code. At the worst case, it may also mean that that dev is already at <a href="blog.bryanbibat.net/2009/06/05/burnout">stage 2 &#8211; 3 of going into burnout</a>.
</ul>
<p>Another non-technical language you need to learn is <strong>Basic English</strong>.</p>
<p>Go ahead, laugh. But then recall the last time you&#8217;ve seen a &#8220;<a href="https://www.google.com/search?q=plz+send+me+teh+codez">plz send me teh codez</a>&#8221; post in a public forum or a job posting full of misspellings and grammatical errors (a big <em>warning sign</em>) and you&#8217;ll quickly realize how important it is to have a good grasp of the English language.</p>
<p>Lack of proper written English skills is a somewhat widespread problem in the current generation, with the prevalence of text-speak and the fact that a lot of young people don&#8217;t join international community websites/forums/mailing lists/chat rooms. This can be a problem when they enter the corporate world, where semi-formal English is the lingua franca: I&#8217;ve even heard of stories of project managers re-writing some of the team members mail before sending them to their foreign counterparts because of their poor English.</p>
<p>Note that your English doesn&#8217;t need to be at the level of essayists or other professional writers. In fact, simple, direct to the point (but at the same time, polite) messages is much more effective at communicating to clients or team members when compared to long-winded messages full of highfaluting words. Doubly so when dealing with clients whose primary language isn&#8217;t English.</p>
<p>To wrap things up, I just realized that I wrote about a similar topic <a href="http://blog.bryanbibat.net/2009/09/19/t-shaped-people/">a few years ago</a>. You don&#8217;t need to click that link, as the tl;dr is just the same thing I&#8217;ve been saying all the time: <em>developers need to learn more than just coding</em>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bryanbibat.net/2012/03/28/other-languages-you-should-learn/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>What programming language should I learn?</title>
		<link>http://blog.bryanbibat.net/2012/03/20/what-programming-language-should-i-learn/</link>
		<comments>http://blog.bryanbibat.net/2012/03/20/what-programming-language-should-i-learn/#comments</comments>
		<pubDate>Tue, 20 Mar 2012 11:28:35 +0000</pubDate>
		<dc:creator>Bry</dc:creator>
				<category><![CDATA[Brain Dumps]]></category>
		<category><![CDATA[Software Engineering]]></category>
		<category><![CDATA[Training]]></category>
		<category><![CDATA[career]]></category>
		<category><![CDATA[fundamentals]]></category>
		<category><![CDATA[programming languages]]></category>
		<category><![CDATA[public talk]]></category>

		<guid isPermaLink="false">http://blog.bryanbibat.net/?p=1556</guid>
		<description><![CDATA[I got to talk for DevCon again last Saturday at STI Makati. Instead of preparing a new talk, I just rehashed an old talk to save time. The new talk is also over at Slideshare. Anyway, the point of this post is to answer a question posed to me by a student in the Q&#038;A [...]]]></description>
			<content:encoded><![CDATA[<p>I got to talk for DevCon again last Saturday at STI Makati. Instead of preparing a new talk, I just rehashed an <a href="http://www.slideshare.net/bryanbibat/latest-trends-in-open-source-web-technologies">old talk</a> to save time. The new talk is also over at <a href="http://www.slideshare.net/bryanbibat/latest-trends-in-web-technologies">Slideshare</a>.</p>
<p>Anyway, the point of this post is to answer a question posed to me by a student in the Q&#038;A portion of the talk:</p>
<blockquote><p><em>Anong programming language ang dapat naming pag-aralan?</em><br />
(What programming language should we learn?)</p></blockquote>
<p>Here&#8217;s a question I wouldn&#8217;t want to hear answered by someone else (i.e. someone who&#8217;s also invited to talk to students). The question itself may seem simple, but unless you&#8217;ve seen how the industry works as a whole, you&#8217;ll probably give a wrong answer.</p>
<p>The traditional answer I don&#8217;t want to hear is to give a suggested list of languages based on market demand. </p>
<p>Simply put, this is bullshit. This is the same sort of bullshit that pressures our youth to take nursing courses even though they&#8217;re just in it for the money, money that they probably won&#8217;t get due to the eventual over-supply of nurses.</p>
<p>So for the student&#8217;s question, I gave two answers:</p>
<p><strong>Programming language and platform choice doesn&#8217;t matter, because for the most part it&#8217;s a business decision.</strong></p>
<p>Yes, I&#8217;m talking about <a href="http://blog.bryanbibat.net/2009/04/26/zed-shaw-the-acl-is-dead/">steaks and strippers</a>. In a large company, you may be initially hired to work on a single language, but eventually there will be a time where the company will make a business decision to shift technologies, whether due to market pressure or due to a new client. If you focus too much on a language, you will not be prepared for the change and you may end up getting fired or demoted.</p>
<p>In smaller companies or in a freelance setting, language still doesn&#8217;t matter, though for another reason: the client will not care about the language as long as you deliver the product.</p>
<p>This leads to the other answer:</p>
<p><strong>Focus on the fundamentals, not on the language/platform.</strong></p>
<p>A common mistake among fresh grads is that they&#8217;re confident they know language A or platform B because they were able to make their school projects or theses while at the same time not having their <a href="http://blog.bryanbibat.net/tag/fundamentals/">fundamentals</a> down pat. Not only does this make them inflexible in terms of learning new languages, it also makes their work brittle and sloppy.</p>
<p>In other words, a student who has 4 years of school &#8220;experience&#8221; in Java is nothing compared to a developer who just had learned Java a month ago but has solid fundamentals in OOP.</p>
<p>You might say &#8220;Screw learning, I&#8217;m just in this for the money!&#8221;. But the fact is, there&#8217;s this thing called the <a href="http://www.paulgraham.com/pypar.html">Python Paradox</a>: developers who are passionate enough to learn more than their peers often end up in higher-earning and less-stressful jobs.</p>
<p><strong>Bottom line:</strong> There is no &#8220;best&#8221; language that you need to learn in order to earn a lot of money. However, if you have good fundamentals, learning the language and platform that the market needs will be much easier for you.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bryanbibat.net/2012/03/20/what-programming-language-should-i-learn/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Quick Tips on Installing Mint on a Laptop</title>
		<link>http://blog.bryanbibat.net/2012/02/28/quick-tips-on-installing-mint-on-a-laptop/</link>
		<comments>http://blog.bryanbibat.net/2012/02/28/quick-tips-on-installing-mint-on-a-laptop/#comments</comments>
		<pubDate>Tue, 28 Feb 2012 11:51:12 +0000</pubDate>
		<dc:creator>Bry</dc:creator>
				<category><![CDATA[Brain Dumps]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[backgrounds]]></category>
		<category><![CDATA[laptop]]></category>
		<category><![CDATA[Lenovo]]></category>
		<category><![CDATA[Linux Mint]]></category>
		<category><![CDATA[Mint 11]]></category>
		<category><![CDATA[wifi]]></category>

		<guid isPermaLink="false">http://blog.bryanbibat.net/?p=1544</guid>
		<description><![CDATA[A recent system upgrade gave me a spare SSD for my laptop. I decided to install Linux Mint on it given my good experience on the Ubuntu based OS. Here are some tips/thoughts related to this install: Gnome 3 = Full Retard mode It&#8217;s been a while since Ubuntu introduced Unity as the default display [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.bryanbibat.net/images/500px-Linux_Mint_Official_Logo.svg.png" class="aligncenter" /></p>
<p>A recent system upgrade gave me a spare SSD for my laptop. I decided to install <a href="http://www.linuxmint.com/index.php">Linux Mint</a> on it given my good experience on the Ubuntu based OS.</p>
<p>Here are some tips/thoughts related to this install:</p>
<h3>Gnome 3 = Full Retard mode</h3>
<p>It&#8217;s been a while since Ubuntu introduced Unity as the default display manager and it still feels sucky. The mere fact that I can&#8217;t change the number of workspaces easily on Mint 12 Gnome was enough to make me format the drive and try again with Mint 11 (which is still Gnome 2).</p>
<p>So I suggest you give Mint 12 a try first for a couple of hours and see if the &#8220;simplified&#8221; desktop appeals to you. If you&#8217;re not satisfied, just go with <a href="http://www.linuxmint.com/oldreleases.php">Mint 11</a> or Mint 12 KDE.</p>
<h3>Lenovo wifi bug also happens on Mint</h3>
<p>Remember that post about <a href="http://blog.bryanbibat.net/2011/05/02/fix-disabled-wireless-in-ubuntu-on-lenovo-laptops/">wifi not working in Ubuntu on my Lenovo laptop</a>?</p>
<p>The same thing happened on my Mint installs. And the same solution still applies.</p>
<h3>Changing lockscreen and login background on Mint 11</h3>
<p>Remember that post about <a href="http://blog.bryanbibat.net/2011/07/11/customize-ubuntu-lock-screen-background/">changing your lock screen on Ubuntu</a>?</p>
<p>While that solution works, there&#8217;s also a simpler solution:</p>
<pre class="brush: plain; title: ; notranslate">$ sudo ln -sf /path/to/another-background.jpg /usr/share/backgrounds/linuxmint/default_background.jpg</pre>
<p>Note that, unlike in the old post, this only changes the background and not the whole lock screen.</p>
<p>As for the login background, some people might say that the default background trick will work but unfortunately it doesn&#8217;t. The real solution is <a href="http://askubuntu.com/questions/66398/how-to-modify-the-system-default-login-background-image/66409#66409">an old trick from Ubuntu</a>, namely:</p>
<pre class="brush: plain; title: ; notranslate">$ sudo cp /usr/share/applications/gnome-appearance-properties.desktop /usr/share/gdm/autostart/LoginWindow</pre>
<p>Logout. The appearance window will appear on the login screen and will allow you to change the background. After making your changes and logging in, prevent the window from opening again at login by doing:</p>
<pre class="brush: plain; title: ; notranslate">$ sudo unlink /usr/share/gdm/autostart/LoginWindow/gnome-appearance-properties.desktop</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.bryanbibat.net/2012/02/28/quick-tips-on-installing-mint-on-a-laptop/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Changing Gimp’s Default Save Folder</title>
		<link>http://blog.bryanbibat.net/2012/02/21/changing-gimps-default-save-folder/</link>
		<comments>http://blog.bryanbibat.net/2012/02/21/changing-gimps-default-save-folder/#comments</comments>
		<pubDate>Tue, 21 Feb 2012 01:39:58 +0000</pubDate>
		<dc:creator>Bry</dc:creator>
				<category><![CDATA[Brain Dumps]]></category>
		<category><![CDATA[Productivity]]></category>
		<category><![CDATA[GIMP]]></category>

		<guid isPermaLink="false">http://blog.bryanbibat.net/?p=1539</guid>
		<description><![CDATA[Having to deal with image manipulation every once in a while, having Gimp not remember my last save folder is a bit annoying since my image folder isn&#8217;t the same as My Pictures. A quick Google search later, I found that the fix was pretty easy. The trick here is that Gimp considers the current [...]]]></description>
			<content:encoded><![CDATA[<p>Having to deal with image manipulation every once in a while, having <a href="http://www.gimp.org">Gimp</a> not remember my last save folder is a bit annoying since my image folder isn&#8217;t the same as My Pictures. A quick Google search later, I found that the fix was pretty easy.</p>
<p>The trick here is that Gimp considers the current directory (i.e. where it is executed) as the default directory. Thus, to change the &#8220;default&#8221; directory setting in Windows, all you need to do is to open the launcher properties:</p>
<p><img src="http://www.bryanbibat.net/images/gimp-folder.png" alt="gimp settings" class="aligncenter" /></p>
<p>And change the &#8220;Start in&#8221; setting to the folder of your choice.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bryanbibat.net/2012/02/21/changing-gimps-default-save-folder/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Convert FanFiction.net Stories into PDF</title>
		<link>http://blog.bryanbibat.net/2012/02/19/convert-fanfiction-net-stories-into-pdf/</link>
		<comments>http://blog.bryanbibat.net/2012/02/19/convert-fanfiction-net-stories-into-pdf/#comments</comments>
		<pubDate>Sun, 19 Feb 2012 05:39:02 +0000</pubDate>
		<dc:creator>Bry</dc:creator>
				<category><![CDATA[Brain Dumps]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Training]]></category>
		<category><![CDATA[ffnpdf]]></category>
		<category><![CDATA[LaTeX]]></category>
		<category><![CDATA[pandoc]]></category>
		<category><![CDATA[publishing]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://blog.bryanbibat.net/?p=1531</guid>
		<description><![CDATA[Had a coding itch last week related to web scraping and LaTeX PDF conversion. One thing led to another and the end result was my first ever Ruby Gem: ffnpdf, a tool that converts FanFiction.net stories into PDF files. (Great for putting your favorite Harry Potter slash fics on your mobile phone or tablet for [...]]]></description>
			<content:encoded><![CDATA[<p>Had a coding itch last week related to web scraping and LaTeX PDF conversion. One thing led to another and the end result was my first ever <a href="http://en.wikipedia.org/wiki/RubyGems">Ruby Gem</a>: </p>
<p><a href="https://rubygems.org/gems/ffnpdf"><code>ffnpdf</code></a>, a tool that converts <a href="http://fanfiction.net">FanFiction.net</a> stories into PDF files. </p>
<p>(Great for putting your favorite Harry Potter slash fics on your mobile phone or tablet for portable use! LOL)</p>
<p>The code and documentation are found at <a href="https://github.com/bryanbibat/ffnpdf">the Github page</a>. Theoretically, this gem can work anywhere Ruby, pandoc, and XeTeX can be installed (e.g. Windows, OS X, *nix) but I&#8217;ve only been able to make the whole thing work in Ubuntu/Mint.</p>
<p>Demo and how-tos are posted in <a href="http://www.youtube.com/playlist?list=PLA7C6F157E1651A69">this playlist</a>:</p>
<p><iframe width="560" height="315" src="http://www.youtube.com/embed/videoseries?list=PLA7C6F157E1651A69&amp;hl=en_US" frameborder="0" allowfullscreen></iframe></p>
<p>I haven&#8217;t gotten around to make a license for this, but I assume that anyone into fanfiction knows that publishing and selling fanfics without consent from the rights owner is a <em>big no-no</em>. Thus, I don&#8217;t need remind them that this tool is just for personal use and not for commercial purposes.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bryanbibat.net/2012/02/19/convert-fanfiction-net-stories-into-pdf/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss><!-- Dynamic page generated in 0.655 seconds. --><!-- Cached page generated by WP-Super-Cache on 2012-05-18 15:47:29 -->

