<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	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/"
	>

<channel>
	<title>That Puerto Rican Rubyist &#187; Computer Science</title>
	<atom:link href="http://www.dennmart.com/category/computer-science/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.dennmart.com</link>
	<description>Official Blog of Dennis Martinez</description>
	<lastBuildDate>Fri, 19 Aug 2011 05:17:51 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>How the gym and Japanese made me a better developer</title>
		<link>http://www.dennmart.com/2011/08/18/how-the-gym-and-japanese-made-me-a-better-developer/</link>
		<comments>http://www.dennmart.com/2011/08/18/how-the-gym-and-japanese-made-me-a-better-developer/#comments</comments>
		<pubDate>Fri, 19 Aug 2011 05:17:51 +0000</pubDate>
		<dc:creator>Dennis Martinez</dc:creator>
				<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[Opinion]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[tips]]></category>

		<guid isPermaLink="false">http://www.dennmart.com/?p=232</guid>
		<description><![CDATA[For the past ten years or so, even before I graduated from college, a large chunk of my spare time has been dedicated to studying. More specifically, it&#8217;s been dedicated to studying technology. Everything from programming languages I&#8217;ve wanted to use to new frameworks that look shiny and new to electronics and Arduinos and everything [...]]]></description>
			<content:encoded><![CDATA[<p>For the past ten years or so, even before I graduated from college, a large chunk of my spare time has been dedicated to studying. More specifically, it&#8217;s been dedicated to studying technology. Everything from programming languages I&#8217;ve wanted to use to new frameworks that look shiny and new to electronics and Arduinos and everything in between. I&#8217;ve spent lots of time and money reading up on anything tech. It&#8217;s really my passion. That&#8217;s why I got into Computer Science to begin with. I love this.</p>
<p>But after all those years, I&#8217;ve been getting burned out doing this. There&#8217;s just a lot of little things that lead to me feeling this way. The biggest reason, however, is the following: I&#8217;ve read and studied about a lot of cool things that I never got to do at my current day job, making it impossible to retain anything long-term and making me eventually lose interest. This would then spiral into me feeling guilty on spending so much time on something and not use it. To compensate, I would jump to some other tech-related book or project that excited me, only to have the same thing happen again. It was a vicious cycle that I hated and was desperate to get out of. But I didn&#8217;t want to dump tech at all. I love this stuff.</p>
<p>Finally, I decided to just hold back on all the new learning. I stopped buying books and trying to jump on the bandwagon of the latest hotness out on the streets. But that made me even more miserable. I felt like I was getting left behind. Like a drug junkie, I yearned to get my fix, even though I knew it was slowly killing me inside. So I had to focus on something else, far away from the things I&#8217;ve been doing for the past ten years. And oddly enough, shifting my focus away from tech was just what I needed to get my focus back on tech.</p>
<p>First off, I finally decided to go to a gym. Before last year, I had never stepped into a gym before in my life. Outside of walking around town or visiting a new park from time to time, I never really made an attempt to make physical activity a part of my routine. So at age 29, my electronic scale at home read 298.8 pounds, and a recent blood test showed my cholesterol levels a bit on the high side. I knew I had to do something. Since my current office is located right next door, literally, to a gym, I signed up and started going.</p>
<p>Going to the gym and exercising regularly has been by far the best decision I&#8217;ve ever made in my life. Outside of weight loss and other physiological benefits, I never really believed the mental benefits of exercising, but they&#8217;re very, very true. I feel much more alert during the day, up to the point where I don&#8217;t need a caffeine boost during the day. I also got much better at retaining new things I&#8217;ve learned. Work seems to come out effortlessly, and I think the quality of my code has gone noticeably up in the last couple of months, since I&#8217;ve been going to the gym more often. Finally, I&#8217;ve noticed myself in a much better mood every single day, with rarely any &#8220;bad hair days&#8221;, as I used to have periodically. Seeing the benefits of the hard work put at the gym helps with that a lot: Yesterday I weighed myself using the same scale that mockingly showed 298.8 over a year ago, and now it ready &#8217;258.8&#8242;. Suck it, electronic scale.</p>
<p>Besides the gym, I wanted something else to focus on, but nothing related to technology. So I decided to take up learning a new language &#8211; a natural language, in particular, Japanese. I&#8217;m already fluent in English and Spanish, so I wanted to take something that was totally different, something not a Germanic or Romance language. I thought that Japanese was one of the most difficult languages outside of those groups, so I signed up for a class to feel challenged by something new. I&#8217;m about to finish my introductory class next week, and I loved it so much that I&#8217;m planning to stay at the language school for at least a full year, and then I&#8217;ll be taking a few weeks to actually visit Japan.</p>
<p>The thing is, since I&#8217;ve been spending a noticeable chunk of time with the gym and learning Japanese, I&#8217;ve noticed a surprising side-effect &#8211; I&#8217;ve been doing much better in the tech department. Taking time to study Japanese clears my mind and really energizes me, so when I go back to coding I put in a much better effort than I did before. And the physical and mental energy boost that the gym has given me helps me be able to learn and retain more than I ever did. It&#8217;s an awesome feeling, and I&#8217;m loving studying all over again.</p>
<p>As developers and engineers, our passion leads us to spend too much time on technology, but in the long haul that&#8217;s not sustainable. I&#8217;ve heard the phrase &#8220;sometimes we need to step back to be able to move forward&#8221; many, many times before. It&#8217;s totally true. Believe it.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dennmart.com/2011/08/18/how-the-gym-and-japanese-made-me-a-better-developer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>My Quick Recap of MongoSF 2011</title>
		<link>http://www.dennmart.com/2011/05/25/my-quick-recap-of-mongosf-2011/</link>
		<comments>http://www.dennmart.com/2011/05/25/my-quick-recap-of-mongosf-2011/#comments</comments>
		<pubDate>Thu, 26 May 2011 03:47:31 +0000</pubDate>
		<dc:creator>Dennis Martinez</dc:creator>
				<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[Conferences]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Opinion]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.dennmart.com/?p=225</guid>
		<description><![CDATA[Now that I live on the West Coast, I&#8217;ve been able to attend many of the wonderful tech conferences that are hosted in the Bay Area. Yesterday, I attended MongoSF in beautiful San Francisco. I&#8217;ve been using MongoDB for a while now, mostly for personal projects. I&#8217;ve written some projects on GitHub that uses MongoDB [...]]]></description>
			<content:encoded><![CDATA[<p>Now that I live on the West Coast, I&#8217;ve been able to attend many of the wonderful tech conferences that are hosted in the Bay Area. Yesterday, I attended <a href="http://www.10gen.com/conferences/mongosf2011">MongoSF</a> in beautiful San Francisco. I&#8217;ve been using <a href="http://www.mongodb.org/">MongoDB</a> for a while now, mostly for personal projects. I&#8217;ve written <a href="https://github.com/dennmart/mongoshort">some projects</a> on GitHub that uses MongoDB as the primary data store, and I have also migrated some existing MySQL tables in other projects to use MongoDB instead. Having read <a href="http://oreilly.com/catalog/0636920001096">MongoDB: The Definitive Guide</a> from front to back, and spending quite some time on the <a href="http://www.mongodb.org/display/DOCS/Home">MongoDB docs</a>, I feel like I have a good grasp on the tool. So I was pretty excited to go to this conference and discover some more things about my one of favorite pieces of tech.</p>
<p>There were multiple tracks in this conference, and unfortunately I still can&#8217;t clone myself in this day and age, so I&#8217;ll just briefly touch on those sessions that I was able to attend.</p>
<p><strong>Monitoring &#038; Queuing MongoDB:</strong> This talk, given by <a href="http://twitter.com/#!/davidmytton">David Mytton</a> from <a href="http://www.serverdensity.com/">Server Density</a> touched on some of the integrated monitoring tools and commands that MongoDB has baked in. He also showed a bit of Server Density&#8217;s <a href="http://www.serverdensity.com/mongodb-monitoring/">MongoDB monitoring system</a>, which looks to be incredibly useful. Overall, the talk was decent, but anyone who has MongoDB running in production should know most of this stuff already.</p>
<p><strong>Evolving from relational to document store:</strong> <a href="http://twitter.com/#!/tackers">Graham Tackley</a>, lead for the web development team over at the U.K.&#8217;s <a href="http://www.guardian.co.uk/">Guardian news site</a>, gave an interesting talk on how the site has evolved over time since the mid-90s (Lots of Perl / CGI goodness). Currently they are in the process of moving certain parts of the site to use MongoDB. Besides the history lesson on the site, he also mentioned how they are dealing with possible future changes in architecture, notably by building APIs around the site functionality. This talk got my gears running about some of my own projects, and how I might build any new projects I have in my mind.</p>
<p><strong>MongoDB Profiling and Tuning:</strong> This talk was given by <a href="http://twitter.com/#!/kennygorman">Kenny Gorman</a>, who works as a data architect at <a href="http://www.shutterfly.com/">Shutterfly</a>. Kenny went through some of the steps used to profile MongoDB, like using <a href="http://www.mongodb.org/display/DOCS/Optimization#Optimization-Explain">explain()</a> on your queries, and how to make things faster, not only on the software side, but also on hardware. He brought up Facebook&#8217;s Flashcache, and how it makes MongoDB speed up. I particularly enjoyed hearing the hardware side of things, as I feel like hardware is mostly overlooked by developers.</p>
<p><strong>MongoDB&#8217;s New Aggregation Features &#8211; A Sneak Peek:</strong> <a href="http://twitter.com/#!/cwestin63">Chris Westin</a> is a core MongoDB contributor, and he gave us a sneak peek at a new framework for aggregating records in MongoDB. This framework is really not meant to replace <a href="http://www.mongodb.org/display/DOCS/MapReduce">Map/Reduce</a>, which will still serve very well for massive data. But for people like me, who need to aggregate smaller amounts of data (thousands of documents instead of millions), this will be much easier and faster to deal with. Very cool stuff, and I can&#8217;t wait to use it.</p>
<p><strong>Lessons Learned from Migrating 2+ Billion Documents at Craigslist:</strong> Former Yahoo! and current Craigslist employee <a href="http://twitter.com/#!/jzawodn">Jeremy Zawodny</a> spoke about how Craigslist is using MongoDB for their posting archive, and the lessons learned along the way, like the usage of replica sets even in development, document encoding, and how important data types are when migrating collections. He had a similar talk at <a href="http://www.10gen.com/conferences/mongosv2010">MongoSV</a> a few months ago, so I didn&#8217;t feel like there wasn&#8217;t much new information here. Still, a good talk about migrating a large amount of data from MySQL to MongoDB &#8211; it can be done.</p>
<p><strong>Practical Scaling and Sharding:</strong> <a href="http://twitter.com/#!/eliothorowitz">Eliot Horowitz</a> is one of the main MongoDB contributors, and the CTO of the company that backs MongoDB, <a href="http://www.10gen.com/">10gen</a>. He went through the features and usage of Replica Sets and Sharding, with a few use cases and live examples. This seemed more like an introductory talk more than anything else, so there was nothing groundbreaking here.</p>
<p><strong>MongoDB at Foursquare:</strong> This talk was given by <a href="http://twitter.com/#!/jorgeortiz85">Jorge Ortiz</a>, an engineer at Foursquare, who proceeded to mention briefly how MongoDB was being used at Foursquare, some of the lessons they&#8217;ve learned throughout the years with MongoDB, and talked about their Scala library for querying MongoDB called <a href="https://github.com/foursquare/rogue">Rogue</a>. Frankly, I was disappointed with this talk, as Jorge didn&#8217;t give much insight outside of a few numbers and oft-repeated tips. I was expecting a more informative talk here.</p>
<p><strong>Indexing &#038; Query Optimization:</strong> <a href="http://twitter.com/#!/jonnyeight">Alvin Richards</a>, a West Coast 10gen employee, gave an in-depth talk about indexes in MongoDB. He went through everything, from basic indexes, to indexing order, to new indexing options in MongoDB 1.8 (<a href="http://www.mongodb.org/display/DOCS/Indexes#Indexes-SparseIndexes">sparse indexes</a> and <a href="http://www.mongodb.org/display/DOCS/Retrieving+a+Subset+of+Fields#RetrievingaSubsetofFields-CoveredIndexes">covered indexes</a>), to even showing representations of the internal B-Tree implementation. Very informative.</p>
<p><strong>Lightning Talks:</strong> This was divided in three shorter talks. First up was <a href="http://twitter.com/#!/mikegoff">Michael Goff</a>, who spoke about how his company, <a href="http://cocoafish.com/">Cocoafish</a> uses MongoDB to serve up data to mobile apps. Next was Chris Carrier (Is he on Twitter? I couldn&#8217;t find an account to link here) from Zuberance, speaking about how to create a reporting backend using MongoDB. Last, but not least, was <a href="http://twitter.com/#!/chadarimura">Chad Arimura</a>, who went through <a href="http://www.simpleworker.com/">SimpleWorker</a>, a cloud-based job scheduling service that uses MongoDB. These talks were short &#8211; which you might have figured out with &#8216;Lightning&#8217; in the title &#8211; and seemed to be mostly about the speakers&#8217; particular sites more than anything else.</p>
<p>At the end, Eliot Horowitz gave a quick rundown on the upcoming features for MongoDB 2.0, like TTL collections, online data compaction, faster Map/Reduce, etc. Surprisingly, this 2.0 release is scheduled for June 2011, as in next month. Seems like they&#8217;re going to be doing quicker iterations and getting new stuff out there as soon as possible, which can only lead to good stuff for users. There was an after-party, but when I swung by the place there was a massive line outside to get in, so I decided to head home instead. Unfortunately, this is the third time in as many conference after-parties that I&#8217;ve had to do this, so it seems like these after-parties don&#8217;t scale well.</p>
<p>Overall, while the conference was pretty good, and everything was organized very well, most of the times I felt like I was out of place or at the wrong talk. Judging from the few people I spoke to, and those that I overheard, it seems like most people at the conference hadn&#8217;t used MongoDB much (or at all), and many talked I went to touched on what I consider some of the basics of MongoDB. Even if they weren&#8217;t basic topics, like Replica Sets or Sharding, if you have read a recent MongoDB book, you knew what most of the speakers were talking about. Also, there was plenty of repeating of the same tips over and over again in a lot of the talks. For example, in the nine talks I went to, the speaker mentioned the &#8220;always keep indexes in memory&#8221; rule of thumb in at least five of those talks. Truth be told, MongoDB isn&#8217;t really a super-deep technology (even the aforementioned O&#8217;Reilly book clocks in at a bit north of 200 pages), so this can be the reason why. But I wanted to know more on the upcoming features in MongoDB (I only really saw one talk in the schedule like this, which was the new aggregation framework), and some more in-depth views of how companies are leveraging MongoDB in their technology stack instead of just pointing out how awesome MongoDB is &#8211; which we already know.</p>
<p>In any case, I had tons of fun, learned some new tips and tricks, and got some fresh inspiration to use in my own work soon. The best thing about these conferences is knowing that what you&#8217;re learning and using is valuable not just to you, but to many out there, and it just gives you motivation to keep on using those tools in familiar and new ways. Much props go out to 10gen for making this conference go smoothly, and hopefully there&#8217;s another one of these sometime next year.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dennmart.com/2011/05/25/my-quick-recap-of-mongosf-2011/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>No Rest For The Unemployed</title>
		<link>http://www.dennmart.com/2010/01/26/no-rest-for-the-unemployed/</link>
		<comments>http://www.dennmart.com/2010/01/26/no-rest-for-the-unemployed/#comments</comments>
		<pubDate>Wed, 27 Jan 2010 04:25:42 +0000</pubDate>
		<dc:creator>Dennis Martinez</dc:creator>
				<category><![CDATA[Books]]></category>
		<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[Databases]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Opinion]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Ruby On Rails]]></category>
		<category><![CDATA[tips]]></category>

		<guid isPermaLink="false">http://www.dennmart.com/?p=178</guid>
		<description><![CDATA[After two years, yesterday was my final day of being a developer for BarterQuest. As anyone living in expensive New York City in the same situation, I have been focusing part of my energy looking for a new gig. I&#8217;m pretty confident, despite the current economy, that I will land on my feet sooner rather [...]]]></description>
			<content:encoded><![CDATA[<p>After two years, yesterday was my final day of being a developer for <a href="http://www.barterquest.com/">BarterQuest</a>. As anyone living in expensive New York City in the same situation, I have been focusing part of my energy looking for a new gig. I&#8217;m pretty confident, despite the current economy, that I will land on my feet sooner rather than later. I have a few leads, with one in particular that I am really hoping will come through.</p>
<p>In the meantime, I&#8217;m not just throwing my resumé in the face of companies everywhere in the U.S. I have also decided that since now that I have quite a few extra hours in my days, I should really do productive things instead of sitting on my couch and re-watching all previous seasons of <em>24</em> (believe me, I would watch all 7 seasons in a row if I could) or jamming away to <em>Guitar Hero</em>. This is a perfect chance to do lots of technical things I&#8217;ve been wanting to do for months, but just never got the time to do so. Here&#8217;s a short list of some goals I&#8217;d like to get started on.</p>
<p><strong>Learning new stuff</strong></p>
<p>For the past two years, I&#8217;ve been exclusively using Ruby and Ruby on Rails at my day job. I&#8217;ve always wanted to broaden my skills by doing other types of programming, but when you take into consideration that I would usually be at work more between 9-10 hours per day, plus a commute that would sap an additional two hours, there wasn&#8217;t much time for me to be able to do personal things, let along learn new stuff. Now that I&#8217;m finally free, I can now spend more time with those things I&#8217;ve wanted to experiment with.</p>
<p>I&#8217;ve always wanted to learn iPhone application development. I know the basics of Objective-C, and have the book <a href="http://pragprog.com/titles/amiphd/iphone-sdk-development">iPhone SDK Development</a> by Bill Dudney, but I was never able to sit down and code something up. I have a few ideas for apps, so even if I can make a simple app that&#8217;s accepted to Apple&#8217;s App Store will be an achievement for me.</p>
<p>I&#8217;ve been very interested in implementing <a href="http://en.wikipedia.org/wiki/Push_technology">Push technology</a> to web apps, like <a href="http://en.wikipedia.org/wiki/Comet_%28programming%29">Comet</a> or <a href="http://dev.w3.org/html5/websockets/">Web Sockets</a>, using nginx&#8217;s <a href="http://pushmodule.slact.net/">Push Module</a> and <a href="http://orbited.org/">Orbited</a>.</p>
<p>Although I&#8217;ve never had the opportunity to work with extremely large data sets, I&#8217;ve always been curious about frameworks like <a href="http://labs.google.com/papers/mapreduce.html">Google&#8217;s MapReduce</a> and <a href="http://hadoop.apache.org/">Apache Hadoop</a>, particularly how well they can &#8220;crunch&#8221; the data thrown at them.</p>
<p><strong>Keep on with what I already know</strong></p>
<p>As I mentioned, I&#8217;ve been using Ruby for years now, and I know Ruby on Rails and Sinatra pretty well. However, just because I want to learn new things doesn&#8217;t mean that I want to abandon this awesome language. In fact, I want to keep using it more with the latest toys.</p>
<p>Thanks to <a href="http://rvm.beginrescueend.com/">Ruby Version Manager</a>, I was able to safely install the latest versions of Ruby 1.9 and MacRuby and start learning their new features. I was also able to check any possible compatibility issues in my older applications with different major Ruby versions. Seriously, if you are a Ruby developer using a Mac or Linux, install RVM now if you haven&#8217;t.</p>
<p>Recently, there have been more and more news about Ruby on Rails 3, the next major release for the wonderful framework. I&#8217;d like to stay one step ahead of the pack and start learning about the new changes before it officially hits the web. One of the leaders of the newest Rails changes, Yahuda Katz, has written <a href="http://yehudakatz.com/tags/rails-3/">lots of blog posts relating to the changes in Rails 3</a>. They&#8217;re definitely worth a read.</p>
<p><strong>Strengthening my shortcomings</strong></p>
<p>There are quite a few things &#8211; development-wise &#8211; that have been bugging me for a long time, yet I&#8217;ve never taken the proper steps to correct. Now is as good a time as any to take on these things and finally conquer them.</p>
<p>My main weakness, as a web developer, is that I&#8217;m pretty bad at design. I know CSS and its properties, I know about browser incompatibilities (having been a victim many times before by the evil and immortal Internet Explorer 6 browser) and all that stuff. But as far as design goes, like font sizes, element placement, usability and colors, these things are not my strong suit. I&#8217;ve actually stocked up on some books about these subjects (like <a href="http://www.sensible.com/dmmt.html">Don&#8217;t Make Me Think</a> by Steve Krug and <a href="http://pragprog.com/titles/bhgwad/web-design-for-developers">Web Design for Developers</a> by Brian Hogan), so I hope that by the time my unemployment ends, I&#8217;ll be much better off making my work look good &#8211; or at least decent.</p>
<p>Another weakness I consider is that I get distracted from development from time to time. It&#8217;s not frequent enough to affect the quality of my work, but it&#8217;s enough to annoy me when I do it subconsciously and I then catch myself in the act. I have read some people who had some success using the <a href="http://www.pomodorotechnique.com/">Pomodoro technique</a>, so starting tomorrow I decided that I&#8217;ll give it a try. There&#8217;s a nice little app called <a href="http://getconcentrating.com/">Concentrate</a> for the Mac that seems to be just the thing I need during those times when I need to get stuff done and not get distracted.</p>
<p><strong>Beef up my GitHub profile</strong></p>
<p>I have to admit that I&#8217;m a little bit ashamed to see my <a href="http://github.com/dennmart">GitHub profile</a> virtually empty. For a long time, I&#8217;ve been wanting to add more of the projects that I have in my laptop to GitHub and see if some of them take a life of their own. Sadly, for whatever reason, I haven&#8217;t done that. Most of the times I&#8217;m a bit too critical at my code and think it&#8217;s embarrassing to make public, but that&#8217;s really what I need to do to get better as a developer. I can take criticism with the best of them, so there&#8217;s really no excuse. I need to make more of my code open-source, period.</p>
<p>Not only do I want to show my own work, I also want to give back to the community. I have used so many open-source projects over the years, yet I&#8217;ve only submitted a handful of patches to very few projects. I don&#8217;t want to be a person who takes, takes, takes and never gives anything back in return. So I&#8217;m going to take steps to correct that. I&#8217;ve started cloning some repositories of my favorite projects from GitHub to my computer to start reading their code more in-depth, which I had been doing anyway. I&#8217;ll check if these projects have <a href="http://lighthouseapp.com/">Lighthouse</a> pages with open tickets, or if there are any open issues on their GitHub page. A few years ago, Dr. Nic wrote an excellent post titled <a href="http://drnicwilliams.com/2007/06/01/8-steps-for-fixing-other-peoples-code/">&#8220;8 steps for fixing other people’s code&#8221;</a> that inspired me to start finding features or defects that I can handle.</p>
<p>I have to say, I&#8217;m only one day into this routine, and I don&#8217;t remember the last time I felt this free and liberated doing what <em>I</em> wanted to do. Full-time employment is great for earning money and making substantial stuff, but sometimes there&#8217;s a feeling of emptiness due to not being able to explore on your own. Being unemployed doesn&#8217;t mean that you need to spend all your time looking for work. Unless you&#8217;re truly struggling economically and can&#8217;t pay the bills in the next couple of weeks or even days, why not spend part of your time gearing up for the future?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dennmart.com/2010/01/26/no-rest-for-the-unemployed/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Well, excuse me for not going to Harvard&#8230;</title>
		<link>http://www.dennmart.com/2009/09/03/well-excuse-me-for-not-going-to-harvard/</link>
		<comments>http://www.dennmart.com/2009/09/03/well-excuse-me-for-not-going-to-harvard/#comments</comments>
		<pubDate>Fri, 04 Sep 2009 00:59:29 +0000</pubDate>
		<dc:creator>Dennis Martinez</dc:creator>
				<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[Opinion]]></category>

		<guid isPermaLink="false">http://www.dennmart.com/?p=168</guid>
		<description><![CDATA[Recently, I&#8217;ve been looked over two different job opportunities. That&#8217;s nothing new, and nothing that will bring me down. However, the reasons behind why I was looked over annoyed me a lot. Apparently, these companies were looking for people from Ivy League schools. Seriously? That was the main reason? If it was, to me it&#8217;s [...]]]></description>
			<content:encoded><![CDATA[<p>Recently, I&#8217;ve been looked over two different job opportunities. That&#8217;s nothing new, and nothing that will bring me down. However, the reasons behind why I was looked over annoyed me a lot. Apparently, these companies were looking for people from Ivy League schools. Seriously? That was the main reason? If it was, to me it&#8217;s one of the most stupidest reasons out there to not give a job to someone who would otherwise be qualified for the job.</p>
<p>I do know that the difference between a well-qualified developer and an average one is usually huge. But is there really that big of a difference between a Harvard graduale and a graduate from another university with the same degree? It&#8217;s not like the fundamentals of Computer Science are different anywhere else. It&#8217;s not like people in Harvard use different design patterns, or use them more efficiently (or worse &#8211; come on, we&#8217;re all human). I still don&#8217;t understand why someone is over-looked because of the name of the university on their degree.</p>
<p>I guess these employers probably see that someone who graduated from one of these &#8216;high-class&#8217; schools is a dedicated, super-smart individual. It doesn&#8217;t mean that I don&#8217;t have those qualities because I went to the <a href="http://ponce.inter.edu">Interamerican University of Puerto Rico</a>. Perhaps I didn&#8217;t have thousands and thousands of dollars to go to one of those schools. The joke I have with my mom now ever since I told her this is that I will &#8220;never forgive her&#8221; for not sending me to an Ivy League school and ruining my life.</p>
<p>There are tons of smart, bright, über-talented people out there. I&#8217;m willing to bet most of them didn&#8217;t go to Harvard or Brown or Yale. Don&#8217;t skip a diamond in the rough because of their <em>Alma Mater</em>. You&#8217;d be surprised at what you can find if you broaden your views just a little bit.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dennmart.com/2009/09/03/well-excuse-me-for-not-going-to-harvard/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>&#8220;Women in Development&#8221;? How about just &#8220;People in Development&#8221;?</title>
		<link>http://www.dennmart.com/2008/03/19/women-in-development-how-about-just-people-in-development/</link>
		<comments>http://www.dennmart.com/2008/03/19/women-in-development-how-about-just-people-in-development/#comments</comments>
		<pubDate>Wed, 19 Mar 2008 19:02:26 +0000</pubDate>
		<dc:creator>Dennis Martinez</dc:creator>
				<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[Opinion]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.dennmart.com/2008/03/19/women-in-development-how-about-just-people-in-development/</guid>
		<description><![CDATA[For some reason, I wasn&#8217;t too much into podcasts until recently, when long trips in the subway made me find something constructive to do while traveling to work. So I&#8217;ve been downloading a ton of podcasts that have been out there for a while now. My favorite has to be Ask A Ninja &#8211; it&#8217;s [...]]]></description>
			<content:encoded><![CDATA[<p>For some reason, I wasn&#8217;t too much into podcasts until recently, when long trips in the subway made me find something constructive to do while traveling to work. So I&#8217;ve been downloading a ton of podcasts that have been out there for a while now. My favorite has to be <strong><a href="http://askaninja.com/">Ask A Ninja</a></strong> &#8211; it&#8217;s just hilarious. But as far as tech podcasts go, the <strong><a href="http://podcast.rubyonrails.org/">Ruby On Rails Podcast</a></strong> is one I&#8217;ve been going way back to download and listen as many as I can.</p>
<p>One particular podcast (or rather, two podcasts which were from the same interview, just split in two) that caught my attention was a roundtable discussion about women in development (<strong><a href="http://podcast.rubyonrails.org/programs/1/episodes/roundtable-women-in-open-source">Part 1</a></strong> / <strong><a href="http://podcast.rubyonrails.org/programs/1/episodes/roundtable-women-in-development-ii">Part 2</a></strong>).</p>
<p>I found this discussion interesting, as I have to admit I haven&#8217;t encountered that many female developers myself. During my university days, I probably saw less than 10 different females taking Computer Science courses during my nearly five years there. Half of those were in the introductory programming courses, from which they rapidly switched their major when they realized they didn&#8217;t like it. The other half stuck around, but most of them didn&#8217;t seem to enjoy it much. It could probably be due to the fact that they were female.</p>
<p>No, I&#8217;m not saying that because they&#8217;re women, they immediately shun all types of advanced technology or science courses. I say this because in one course, I was paired with a female student for a class project. At the end of the project, while at the library finishing up on some details, she said she was surprised during this project with me, When I asked why, she said that in every Computer Science class, in every single project she&#8217;s been teamed up with boys, the guys either dumbed down what was given to her to work on, or she would be constantly be getting hit on. This was the first time someone from the opposite sex seemingly treated her <em>as an equal</em>, which I did.</p>
<p>This is a sad truth in those academic fields where men outnumber women greatly. They&#8217;re either perceived to be dumb, or simply viewed as a potential mate. And I honestly never viewed one of these girls who took classes with me like this. Okay, maybe once I took a liking to one girl, but I still would&#8217;ve liked her no matter which major she was, so I feel like I&#8217;m clear of all charges against  me. I&#8217;m not sure if this has to do with the extremely-low number of Computer Science students who are female, but I&#8217;m suspecting this has something to do with it.</p>
<p>Trying to put myself in their shoes, I&#8217;m sure it&#8217;s difficult to deal with these things when all you want to do is just learn and be a software developer like any other. Still, I find it somewhat odd that the women need to start off groups like <strong><a href="http://www.devchix.com/">DevChix</a></strong> and <strong><a href="http://www.phpwomen.org/">PHPWomen</a></strong>. It&#8217;s cool to see enough females get together and form these groups and get recognized for it. But I think these groups just <em>label</em> them as a different breed of developer, instead of just trying to get themselves being viewed as equals. Or maybe these groups are really necessary to combat all the obstacles I mentioned that women in this field encounter. It doesn&#8217;t seem like there&#8217;s an easy way for this behavior to end.</p>
<p>In any case, I&#8217;m all for the females getting their voices heard, showing the world what I have known all along: women are awesome developers. Their genetics don&#8217;t have a damn thing to do with their abilities, so stop viewing them as &#8220;that programmer chick&#8221;.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dennmart.com/2008/03/19/women-in-development-how-about-just-people-in-development/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>I wish we all could be &#8220;Dreaming In Code&#8221;</title>
		<link>http://www.dennmart.com/2007/05/12/i-wish-we-all-could-be-dreaming-in-code/</link>
		<comments>http://www.dennmart.com/2007/05/12/i-wish-we-all-could-be-dreaming-in-code/#comments</comments>
		<pubDate>Sat, 12 May 2007 20:17:13 +0000</pubDate>
		<dc:creator>Dennis Martinez</dc:creator>
				<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://blog.dennmart.com/2007/05/12/i-wish-we-all-could-be-dreaming-in-code/</guid>
		<description><![CDATA[A couple of weeks ago, I purchased the book &#8220;Dreaming In Code&#8221; by Scott Rosenberg, after spotting it in my nearest Borders bookstore. I had read a bit about this book from Joel Spolsky&#8217;s site, and I was very interested in the process of building software that would be &#8220;revolutionary&#8221;. I was also interested in [...]]]></description>
			<content:encoded><![CDATA[<p><center><img src='http://blog.dennmart.com/wp-content/uploads/2007/05/dreaming_code_cover.jpg' alt='Dreaming In Code Book Cover' /></center></p>
<p>A couple of weeks ago, I purchased the book &#8220;<strong><a href="http://www.dreamingincode.com/">Dreaming In Code</a></strong>&#8221; by Scott Rosenberg, after spotting it in my nearest Borders bookstore. I had read <a href="http://www.joelonsoftware.com/items/2007/01/02.html">a bit about this book</a> from Joel Spolsky&#8217;s site, and I was very interested in the process of building software that would be &#8220;revolutionary&#8221;. I was also interested in how the group of developers would work.</p>
<p>I finished reading the book this weekend, and I have to say that it was extremely interesting from the beginning. From the initial idea of the software to the formation of the group, to the many setbacks and would be inevitably encountered, it offered me a great inside look at the group effort in producing software. As I&#8217;m already accustomed of <a href="http://blog.dennmart.com/2007/02/21/can-one-person-do-it-all/">working on my own</a>, I wanted to see how larger groups of talented people could (and should) work. And surprisingly enough, the same things that happen to me at work happened to the <a href="http://chandler.osafoundation.org/">Chandler</a> developers as well.</p>
<p>What surprised me about this book is the fact that it goes back in time, and mentioned many breakthrough moments of software engineering history, like the <a href="http://homepages.cs.ncl.ac.uk/brian.randell/NATO/NATOReports/index.html">1968 NATO Software Engineering Conference</a>, and Douglas Engelbart&#8217;s <a href="http://video.google.com/videoplay?docid=-8734787622017763097">legendary demonstration in San Francisco</a> (called by some as &#8220;The Mother Of All Demos&#8221;).</p>
<p>These moments, and many others, were non-existant to me before reading this book. Anyone who has a Computer Science or Software Engineering degree should be required to read this. It&#8217;s a very important part of the history of what we do. Like any History major who needs to know about Ancient Rome and Greece, people in the software development field <em>need</em> to know about what happened during the infancy of computers and programming.</p>
<p>While the story of Chandler&#8217;s development is a great read and what attracted me to this book, it was refreshing to read about the current problems in software development today. I know that this industry is far from perfect. But the constant changes that occur on a frequent basis simply show that <em>we&#8217;re trying to make things better</em>. We need to remember that compared to other scientific and engineering professions, computer science / software engineering is still a baby, an extremely-young 60 year old baby.</p>
<p>I hope that someday things will change for the better in our industry, and the software development process can be a painless, quick one. However, I&#8217;m afraid that the way the future generation are being <a href="http://blog.dennmart.com/2007/02/05/poor-computer-science/">taught the profession</a>, most likely the same mistakes will be repeated over and over again. Like I said, the industry &#8211; or better yet, <em>we</em> &#8211; are not perfect at all. But we need to learn from our past mistakes. Certainly, those who cannot remember the past are condemned to repeat it.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dennmart.com/2007/05/12/i-wish-we-all-could-be-dreaming-in-code/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Learn to write code for my sanity</title>
		<link>http://www.dennmart.com/2007/03/05/learn-to-write-code-for-my-sanity/</link>
		<comments>http://www.dennmart.com/2007/03/05/learn-to-write-code-for-my-sanity/#comments</comments>
		<pubDate>Mon, 05 Mar 2007 14:45:09 +0000</pubDate>
		<dc:creator>Dennis Martinez</dc:creator>
				<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://blog.dennmart.com/2007/03/05/learn-to-write-code-for-my-sanity/</guid>
		<description><![CDATA[I&#8217;m currently at work, and I seriously needed a break, which is why I&#8217;m here, writing something for my blog. Why? It&#8217;s a long story, but I&#8217;ll keep it short. My boss decided to start using part of our program that hasn&#8217;t been modified since 2004, and last used in early 2005. Of course, with [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m currently at work, and I seriously needed a break, which is why I&#8217;m here, writing something for my blog. Why? It&#8217;s a long story, but I&#8217;ll keep it short.</p>
<p>My boss decided to start using part of our program that hasn&#8217;t been modified since 2004, and last used in early 2005. Of course, with all the changes we&#8217;ve done, lots of bugs started cropping up, so he put that on my lap. The problem is, I didn&#8217;t make this part of the program. Someone else who worked here until early 2005 worked completely on that module. Now that person is long gone, and I&#8217;m stuck with his code.</p>
<p><em>&#8220;No biggie&#8221;</em>, I thought. <em>&#8220;This shouldn&#8217;t be too difficult to modify for what the boss wants now.&#8221;</em> Then I opened the file&#8230; <strong>It was a total mess</strong>.</p>
<p>I mean, I had seen messy code, a lot from myself. But this was <strong><em>messy</em></strong>. And if I have to bold and italicize a word, it&#8217;s because I really mean it. This was the worst code I have ever seen written by any developer ever. I know that PHP has a reputation for producing some awful code, but this really took the cake.</p>
<p>We start off with lots of Dreamweaver generated code at the beginning (some Javascript code that apparently doesn&#8217;t do anything in the application). Then we head off towards the land of unknown variables: <em>$dbQuery1</em>, <em>$dbQuery2</em>, <em>$dbQuery3</em>, and my personal fave, <em>$c</em>. Also, there was virtually no indentation all around, and the indentation that did exist was very poorly done (some if-else blocks were completely on the left margin of the code). Add up that there were exactly two comments consisting of only one word throughout the 600 lines of code, and you have a developer with a huge headache, trying to figure out what the damn thing does. And while it kinda works, now I&#8217;m faced with the dilemma of trying to add new functionality to the module while not breaking anything.</p>
<p>The worst part of it all is that I showed the code to one of the technicians here who actually studied in the same web-development class as the previous developer, and he told me &#8220;That&#8217;s how he&#8217;s always programmed.&#8221; So I asked what the teacher did with that code, and he told me &#8220;The teacher probably writes worse code than that.&#8221; <em>What?</em> A college professor writing worse code than that?</p>
<p>I can&#8217;t believe that Computer Science professors aren&#8217;t enforcing their students to learn how to write clean and maintainable code. And I don&#8217;t think this is an isolated incident, because at my university, the professors didn&#8217;t enforce this either. And while we were taught to use indentation correctly, informative variable names and all that, they never said anything if we didn&#8217;t follow those simple steps.</p>
<p>If I were a college professor giving a programming class, I would enforce those rules, probably almost harshly. If I see generic variable names (like the ones I mentioned above), I&#8217;ll dock one or two points from the final grade. If indentation isn&#8217;t used correctly, another one or two points disappear. And if the code is as unreadable as the code I&#8217;m working on now, I&#8217;ll probably fail the student, or at least give him one more day to fix that code before giving it back to me.</p>
<p>I&#8217;m curious to know if anyone else has seen this at college, or if it&#8217;s just another Puerto Rican incident.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dennmart.com/2007/03/05/learn-to-write-code-for-my-sanity/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Poor Computer Science</title>
		<link>http://www.dennmart.com/2007/02/05/poor-computer-science/</link>
		<comments>http://www.dennmart.com/2007/02/05/poor-computer-science/#comments</comments>
		<pubDate>Mon, 05 Feb 2007 22:54:53 +0000</pubDate>
		<dc:creator>Dennis Martinez</dc:creator>
				<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://blog.dennmart.com/2007/02/05/poor-computer-science/</guid>
		<description><![CDATA[I just came across this article, which speaks about the death of Computer Science as we know it. If you&#8217;re one of the few that have actually read my information, you&#8217;ll know I have a degree in Computer Science, so this obviously caught my attention. It basically talks about the drop is Computer Science students [...]]]></description>
			<content:encoded><![CDATA[<p>I just came across <a href="http://www.bcs.org/server.php?show=ConWebDoc.9662">this article</a>, which speaks about the death of Computer Science as we know it. If you&#8217;re one of the few that have actually read <a href="http://www.dennmart.com/aboutme.html">my information</a>, you&#8217;ll know I have a degree in Computer Science, so this obviously caught my attention. It basically talks about the drop is Computer Science students across the world, the faults that universities have and most of the time fail to address, and how long this can continue. Unfortunately, this article makes a lot of good points that I have witnessed first hand while in college.</p>
<p>First off, the article mentions the perception that&#8217;s given to those who study or work with computers, particularly in the programming front. It&#8217;s sad to say that this still exists nowadays in college. But I&#8217;ve noticed it&#8217;s because there are a lot of people who just represent the stereotype of a computer geek: glasses, unkempt hair, unshaven. It didn&#8217;t matter that most of these are some of the nicest, most helpful people you&#8217;ll ever meet. But what about women? I think I only met about ten girls &#8211; <strong>total</strong> &#8211; throughout my college days who were Computer Science majors. And unfortunately, most of them were there for the wrong reasons (more on that later).</p>
<p>The article also mentions the impact globalization has had on the IT industry. With the end of the dot-com era, along with the offshoring many of those jobs to places like India, many people view this industry as shaky, at best. And I guess this is also true, as well. There just aren&#8217;t that many jobs as there were eight years ago, particularly here in Puerto Rico. But I don&#8217;t think this is sufficient reasoning as to why Computer Science is in a current downward spiral.</p>
<p>Like I said, the article has a lot of good points. But there are also some points I&#8217;d like to make that I&#8217;ve seen myself. The first one, and the most important one in my view, is the fact that the curriculum for Computer Science in most universities is <strong>very</strong> out of date. When I started my introductory programming courses back in 1999, I started with C++. But as time went on, I was mostly fed a steady diet of Visual Basic 6.0 and other Microsoft assorted software. I didn&#8217;t realize it at the time, but with so many different technologies and programming languages out there, why don&#8217;t they update their classes? I&#8217;m guessing that it&#8217;s a pretty long and arduous path in updating a college curriculum, but they should at least consider this as a priority.</p>
<p>Last year, the brother of an old college buddy called me up, because he was taking a programming course (at my alma mater, mind you) and needed some help. I told him to send along his assignment via E-Mail. I was shocked (yet sort of expecting it at the same time) when the assignment consisted of a Visual Basic.NET with Microsoft Access as the database back-end. At least they updated their version of Visual Studio. But it means that they&#8217;re still teaching this stuff in college. And unfortunately, this doesn&#8217;t help the students at all. Not to go on an anti-Microsoft tirade here (which I&#8217;m not, believe me), but Visual Basic will only teach Computer Science students how to drag and drop controls onto a form. Yes, I know you need the code logic and knowledge to make those controls work. But it only teaches the student to be lazy, and not to find out how things actually work. That&#8217;s how I feel about it.</p>
<p>There are so many great programming languages and software nowadays, that it&#8217;s a shame no one in college taking the time to pass it along to the future of this industry. Languages like Ruby, Python and even Java to me are better options than C++ and Visual Basic. Why give Microsoft Access as your main tool for a database class, if there are relational databases like MySQL and PosgreSQL that are more fully-featured? And why just give everything Microsoft, whenyou can dive into Linux, Mac OS X and other Unix-based systems like Solaris? It&#8217;s still unknown to me.</p>
<p>Another reason in this decline is the fact that many people in the past have failed to get their Computer Science major because they got into the field for the wrong reasons. Or, more directly, they&#8217;re in it because of the perceived money they&#8217;ll earn. Maybe back in 1998 it was true, but nowadays getting a job, much less a well-paying one, is difficult enough. Here in Puerto Rico, I know former graduates of Computer Science spend two and three years finding a job in this field, and they still haven&#8217;t gotten a programming job ever. But besides the fact that there aren&#8217;t too many positions available, there&#8217;s a bigger problem: many fail to realize that this is a life-long journey.</p>
<p>I bet most of those guys who graduated with me have only Visual Basic (and probably C++) in their resumes. They don&#8217;t want to continue forward and learn new things. I don&#8217;t know whether it&#8217;s because they think that what they learned in college was enough to have a job for life, or because they want money now, but an alarming number of fellow graduates I&#8217;ve seen throughout the years fail to continue learning. And in a field that changes ever-so-rapidly, the worse thing you can do is remain stagnant for long periods of time. Hell, even because &#8220;out of the loop&#8221; in the IT business for 9 months or a year is killer.</p>
<p>So while Computer Science departments all over the world are having problems, I think they&#8217;re remediable.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dennmart.com/2007/02/05/poor-computer-science/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic Page Served (once) in 0.235 seconds -->

