<?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"
	>

<channel>
	<title>Hackerdude</title>
	<atom:link href="http://www.hackerdude.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.hackerdude.com</link>
	<description>Software Development Blog</description>
	<pubDate>Wed, 07 May 2008 02:43:18 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5.1</generator>
	<language>en</language>
			<item>
		<title>Twitter</title>
		<link>http://www.hackerdude.com/2008/03/10/twitter/</link>
		<comments>http://www.hackerdude.com/2008/03/10/twitter/#comments</comments>
		<pubDate>Mon, 10 Mar 2008 16:59:36 +0000</pubDate>
		<dc:creator>Hackerdude</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.hackerdude.com/2008/03/10/twitter/</guid>
		<description><![CDATA[I am now using Twitter again. I am hackerdude, of course. Come join the fun!
]]></description>
			<content:encoded><![CDATA[<p>I am now using <a href="http://twitter.com/" title="Twitter: What are you doing?" onclick="javascript:pageTracker._trackPageview ('/outbound/twitter.com');">Twitter</a> again. I am <a href="http://twitter.com/hackerdude" onclick="javascript:pageTracker._trackPageview ('/outbound/twitter.com');">hackerdude</a>, of course. Come join the fun!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hackerdude.com/2008/03/10/twitter/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Software Libre: ¿Rebeldía Estéril of Física Cuántica?</title>
		<link>http://www.hackerdude.com/2008/02/22/software-libre-%c2%bfrebeldia-esteril-of-fisica-cuantica/</link>
		<comments>http://www.hackerdude.com/2008/02/22/software-libre-%c2%bfrebeldia-esteril-of-fisica-cuantica/#comments</comments>
		<pubDate>Fri, 22 Feb 2008 22:12:41 +0000</pubDate>
		<dc:creator>Hackerdude</dc:creator>
		
		<category><![CDATA[Espa&ntilde;ol]]></category>

		<guid isPermaLink="false">http://www.hackerdude.com/2008/02/22/software-libre-%c2%bfrebeldia-esteril-of-fisica-cuantica/</guid>
		<description><![CDATA[En Consumer.es, Alexey Pazhitnov (creador de Tetris) dice que El software libre sólo es una rebeldía estéril, y se pone a opinar acerca de capitalismo versus socialismo.
Creo que reducir esto a "socialismo/capitalismo" es una reacción que sobresimplifica un asunto que es por naturaleza complejo, tomando prestados temas de política para crear miedo, con la idea [...]]]></description>
			<content:encoded><![CDATA[<p>En Consumer.es, Alexey Pazhitnov (creador de Tetris) dice que <a href="http://www.consumer.es/web/es/tecnologia/software/2008/02/21/174286.php" onclick="javascript:pageTracker._trackPageview ('/outbound/www.consumer.es');">El software libre sólo es una rebeldía estéril</a>, y se pone a opinar acerca de capitalismo versus socialismo.</p>
<p>Creo que reducir esto a "socialismo/capitalismo" es una reacción que sobresimplifica un asunto que es por naturaleza complejo, tomando prestados temas de política para crear miedo, con la idea probablemente de proteger su mercado (como hacer pipí en los árboles si eres canino), y demuestra un problema de entendimiento tanto de los sistemas de libre mercado como de los sistemas socialistas. Me explico:</p>
<p />
<p /><!-- technorati tags begin -->
<p style="font-size:10px;text-align:right;">technorati tags:<br />
<a href="http://technorati.com/tag/software" rel="tag" onclick="javascript:pageTracker._trackPageview ('/outbound/technorati.com');">software</a><br />
<a href="http://technorati.com/tag/opensource" rel="tag" onclick="javascript:pageTracker._trackPageview ('/outbound/technorati.com');">open source</a><br />
<a href="http://technorati.com/tag/economics" rel="tag" onclick="javascript:pageTracker._trackPageview ('/outbound/technorati.com');">economics</a><br />
<a href="http://technorati.com/tag/business" rel="tag" onclick="javascript:pageTracker._trackPageview ('/outbound/technorati.com');">business</a>
</p>
<p><!-- technorati tags end --></p>
<p><span id="more-520"></span></p>
<p>
El malentendido más bien estriba en pensar en Software como "pelotitas" (productos físicos) en vez de ideas - y proviene de una manera anticuada de ver a la economía. Los hombres de negocios "flojos" sólo pueden pensar en software como un producto físico que se puede vender. Este es el paradigma en el que Pazhitnov se encuentra, y es el paradigma de la industria comercial de software. La sobresimplificación es una necesidad para ellos; por ejemplo, hace algunos años trabajé con alguien que estaba en una casa comercial de software en los 80s, y me dijo: <i>Entonces era muy sencillo saber si a la gente le gustaba tu software - simplemente veías el "Loading Dock" por varios días. Si los camiones regresaban llenos, tu software estaba siendo rechazado. Si regresaban vacíos, a la gente le gusta tu product</i>. Es en realidad tentador que manejar tu negocio sea tan sencillo.
</p>
<p>El problema es que, tal como la luz exhibe propiedades de ondas pero también de partículas dependiendo del caso, el software es en muchos casos "ideas" (mi maestro de física decía que la física puede explicar cualquier tema en el mundo, vamos a ver si es cierto).
</p>
<p>En realidad no hay solución fija a esta cuestion: Depende del tipo del mercado, el nivel de comoditización del mismo, y el tipo de interacción del software con el usuario, será el nivel de esterilidad o prosperidad de la idea del software libre o fuente abierta.</p>
<p>En videojuegos tiene más sentido que se trate como un producto físico. Lo compras, te gusta, lo juegas y lo desinstalas. Mucho después lo instalas otra vez, lo juegas otra vez, lo desinstalas. Pero en sistemas operativos, que son la base del trabajo de todos, tiene sentido que el software sea ideas. Lo instalas; lo usas para correr programas; lo usas para hacer scripts que atan programas juntos; lo usas para crear otros programas; lo usas para enlazar las máquinas juntas y hacer soluciones; servidores; mercados enteros como el Web 2.0. Cuando utilizas software de esta manera, la idea de que sea un producto y no lo puedas abrir o recompilar es un limitante de mercado muy real.</p>
<p>Entonces, software tratado como ideas crea mercados que son por naturaleza muy diferentes al software tratado como un producto físico. Esto se complica también porque el software por un lado puede ser manufacturado instantáneamente (el día que tengamos "personal fabricators" las economías también van a tener que cambiar). Y por otro lado, el software "nunca está terminado", así que siempre hay posibilidad de nuevas versiones (aunque el delta de uttilidad de las nuevas versiones en el mercado es mucho menor al costo de las mismas).</p>
<p>En un ambiente donde el software es tratado como ideas (dejemos GPL por un momento y pensemos en licencias más liberales como MIT o BSD para clarificar el modelo), la única barrera a la colaboración es el tiempo que toma a una persona comprender las ideas existentes (el código) de una manera suficientemente eficiente para colaborar con el mismo o bien internalizarlo en un producto. Esta es una inversión importante de tiempo y dinero para una compañía, y una inversión que la gente joven o gente que tiene más tiempo disponible (o una compañía ya sea pequeña o al menos ágil) es más capaz de hacer por su cuenta (porque, como el arte, se vuelve una pasión). Todo esto enfoca a industrias abiertas a hacer dinero en servicios en lugar de en productos (porque es más fácil poner precio a servicios). El problema es que el mercado de servicios es más complejo que el de productos. Las compañías de servicios no pueden descansar en sus laureles - sólo son tan buenas como el servicio que proporcionan hoy, y su flujo de caja puede ser interrumpido en cualquier momento. Una compañía de productos puede navegar en una misma línea de producción por muchos años (Coca Cola, Microsoft) sin problemas de flujo de caja.</p>
<p>También influye el hecho de que las ideas son reutilizables - varias compañías de software como producto pueden colaborar con fuente abierta para un bién común (World of Warcraft-LUA, Apple-Darwin, IBM-un chorro), acabando con un modelo que es parte producto, parte ideas y por ende más complicado de contabilizar. Si eres compañía de producto, típicamente colaboras con ideas hasta que tengas tus necesidades cubiertas y combines para crear un producto. Si eres servicio, das el producto gratis con la compra de un contrato de servicio. Así que los dos modelos tienden a canibalizarse.</p>
<p>Una persona de negocios pragmática (que siempre son los más exitosos) debe pensar que estos modelos están aquí para quedarse y pensar en éstos nuevos términos para decidir en un modelo de trabajo que proporcione ya sea un flujo de caja óptimo o un dominio de mercado total - depende de los objetivos de la compañía, o como físicos cuánticos, tratar de encontrar un modelo mixto que no desaparezca en una implosión nuclear. <img src='http://www.hackerdude.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.hackerdude.com/2008/02/22/software-libre-%c2%bfrebeldia-esteril-of-fisica-cuantica/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Steve Jobs on Success - from D5 conference</title>
		<link>http://www.hackerdude.com/2007/12/18/steve-jobs-on-success-from-d5-conference/</link>
		<comments>http://www.hackerdude.com/2007/12/18/steve-jobs-on-success-from-d5-conference/#comments</comments>
		<pubDate>Tue, 18 Dec 2007 15:02:19 +0000</pubDate>
		<dc:creator>Hackerdude</dc:creator>
		
		<guid isPermaLink="false">http://www.hackerdude.com/2007/12/18/steve-jobs-on-success-from-d5-conference/</guid>
		<description><![CDATA[Here are some thoughts on success by Steve Jobs, prompted by a question asked at the D5 conference where he had a joint interview with Bill Gates. The whole thing is worth watching, or listening to, or reading the transcripts but this is relevant if you work in this business.

First, you have to have a [...]]]></description>
			<content:encoded><![CDATA[<p>Here are some thoughts on success by Steve Jobs, prompted by a question asked at <a href="http://www.tow.com/2007/06/05/steve-jobs-and-bill-gates-at-d5/" onclick="javascript:pageTracker._trackPageview ('/outbound/www.tow.com');">the D5 conference</a> where he had a joint interview with Bill Gates. The whole thing is <a href="http://phobos.apple.com/WebObjects/MZStore.woa/wa/viewPodcast?id=256972720" onclick="javascript:pageTracker._trackPageview ('/outbound/phobos.apple.com');">worth watching, or listening to</a>, <a href="http://d5.allthingsd.com/20070531/d5-gates-jobs-transcript/#more-130" onclick="javascript:pageTracker._trackPageview ('/outbound/d5.allthingsd.com');">or reading the transcripts</a> but this is relevant if you work in this business.</p>
<p><span id="more-519"></span></p>
<p>First, you have to have a lot of passion for what you're doing. And the reason is that you have to work so hard that if you don't, any rational person would give up. And you have to do it over an extended period of time. So if you don't love it, you're not really have fun doing it, you don't really love it, you're going to give up. And that's what happens to most people, actually, if you really look at the ones that ended up being "successful" in the eyes of society and the ones who didn't, the ones that are successful oftentimes loved what they did so they could persevere when it got really tough. And the ones that didn't love it quit, because they're sane - who would want to put up with this stuff if they don't love it? So it's a lot of hard work and a lot of worrying, constantly and if you don't love it you're going to fail. So you have to love it and you have to have passion, and that's the high order bit.</p>
<p>The second thing is you have to be a really good talent scout. Because no matter how smart you are, you need a team of great people. And you have to figure out how to size people up fairly quickly, make decisions without knowing people too well, and hire them and see how you do and refine your intuition and be able to build an organization that eventually can just build itself. Because you need great people around you.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hackerdude.com/2007/12/18/steve-jobs-on-success-from-d5-conference/feed/</wfw:commentRss>
		</item>
		<item>
		<title>MacGeekery: Launchd items</title>
		<link>http://www.hackerdude.com/2007/11/28/macgeekery-launchd-items/</link>
		<comments>http://www.hackerdude.com/2007/11/28/macgeekery-launchd-items/#comments</comments>
		<pubDate>Wed, 28 Nov 2007 18:00:05 +0000</pubDate>
		<dc:creator>Hackerdude</dc:creator>
		
		<guid isPermaLink="false">http://www.hackerdude.com/2007/11/28/macgeekery-launchd-items/</guid>
		<description><![CDATA[I set up instiki locally for my own notes and I needed to get it to start automatically in a proper way. I found an excellent tip on how to create launchd items using the property list editor. Works like a charm.
Now I even made a web clipping dashboard widget with the homepage of my [...]]]></description>
			<content:encoded><![CDATA[<p>I set up <a href="http://www.instiki.org" onclick="javascript:pageTracker._trackPageview ('/outbound/www.instiki.org');">instiki</a> locally for my own notes and I needed to get it to start automatically in a proper way. I found an excellent tip on how to <a href="http://www.macgeekery.com/tips/all_about_launchd_items_and_how_to_make_one_yourself" onclick="javascript:pageTracker._trackPageview ('/outbound/www.macgeekery.com');">create launchd items</a> using the property list editor. Works like a charm.</p>
<p>Now I even made a web clipping dashboard widget with the homepage of my instiki on localhost. Awesome.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hackerdude.com/2007/11/28/macgeekery-launchd-items/feed/</wfw:commentRss>
		</item>
		<item>
		<title>How I set up a new Customer on a Mac Workstation</title>
		<link>http://www.hackerdude.com/2007/10/10/how-i-set-up-a-new-customer-on-a-mac-workstation/</link>
		<comments>http://www.hackerdude.com/2007/10/10/how-i-set-up-a-new-customer-on-a-mac-workstation/#comments</comments>
		<pubDate>Wed, 10 Oct 2007 16:39:24 +0000</pubDate>
		<dc:creator>Hackerdude</dc:creator>
		
		<guid isPermaLink="false">http://www.hackerdude.com/2007/10/10/how-i-set-up-a-new-customer-on-a-mac-workstation/</guid>
		<description><![CDATA[I do consulting and sometimes I deal with different clients/projects. This requires a bit of compartmentalized thinking, but I still like to do it fast without having to endlessly tweak my setup. By now I have evolved a way to set up a new customer (when I get a whole new project) on my Mac. [...]]]></description>
			<content:encoded><![CDATA[<p>I do consulting and sometimes I deal with different clients/projects. This requires a bit of compartmentalized thinking, but I still like to do it fast without having to endlessly tweak my setup. By now I have evolved a way to set up a new customer (when I get a whole new project) on my Mac. This discusses my filters, calendars, and other programs. So this is basically my cheatsheet.</p>
<p><span id="more-517"></span></p>
<ul>
<li><b>iCal</b>: I add a calendar named Clients:ClientName for color-coding their appointments (and hide/showing).</li>
<li><b>Mail</b>: I try to practice <a href="http://www.43folders.com/izero" title="43 Folders Series: Inbox Zero | 43 Folders" onclick="javascript:pageTracker._trackPageview ('/outbound/www.43folders.com');">Inbox Zero</a>. For this I use MailTags and I try to do something with an e-mail within 2-5 seconds after scanning or reading it. <a href="http://indev.ca/MailActOn.html" title="Mail Act-On: Associate mail rules to keystrokes" onclick="javascript:pageTracker._trackPageview ('/outbound/indev.ca');">Mail Act-On</a> is crucial for this. So I do the following:
<ul>
<li>Add a Mail folder ClientName under Clients</li>
<li>Add an Act-On rule for the client's initial letter that will: Set <a href="http://indev.ca/MailTags.html" title="MailTags: Add Meaning to your Messages" onclick="javascript:pageTracker._trackPageview ('/outbound/indev.ca');">MailTags</a> project to ClientName, Move E-Mail to the Clients/ClientName folder</li>
</ul>
</li>
<li><b>Finder</b>: Under Documents/Clients, add a ClientName folder. Using <a href="http://www.selenic.com/mercurial/wiki/" title="Mercurial - Mercurial" onclick="javascript:pageTracker._trackPageview ('/outbound/www.selenic.com');">Mercurial</a>, "hg init" the folder, or do whatever you do to put it under version control.</li>
<li><b><a href="http://www.officetime.net/" title="OfficeTime - a time tracking app" onclick="javascript:pageTracker._trackPageview ('/outbound/www.officetime.net');">OfficeTime</a></b>: Add a ClientName project</li>
<li><b><a href="http://bargiel.home.pl/iGTD/" title="bartek:bargiel : iGTD" onclick="javascript:pageTracker._trackPageview ('/outbound/bargiel.home.pl');">iGTD</a></b>: Add a ClientName project</li>
</ul>
<p>If you already use this, all of this takes less than 10 minutes, and it's only done once per client. Finger-memory takes care of the rest, because all your other clients work the same way.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hackerdude.com/2007/10/10/how-i-set-up-a-new-customer-on-a-mac-workstation/feed/</wfw:commentRss>
		</item>
		<item>
		<title>iPhone: No, we do need a real programming model</title>
		<link>http://www.hackerdude.com/2007/09/27/iphone-no-we-do-need-a-real-programming-model/</link>
		<comments>http://www.hackerdude.com/2007/09/27/iphone-no-we-do-need-a-real-programming-model/#comments</comments>
		<pubDate>Thu, 27 Sep 2007 16:59:43 +0000</pubDate>
		<dc:creator>Hackerdude</dc:creator>
		
		<guid isPermaLink="false">http://www.hackerdude.com/2007/09/27/iphone-no-we-do-need-a-real-programming-model/</guid>
		<description><![CDATA[I do love my iPhone. But.. I'm writing this while commuting on an underground train, of course without a connection. And of course there's Airplane mode. Being out of the country. There's a million reasons to need to use the iPhone disconnected.
You just can't tell me that, since the programming model is fully on the [...]]]></description>
			<content:encoded><![CDATA[<p>I do love my <a href="http://www.apple.com/iphone/" title="Apple - iPhone" onclick="javascript:pageTracker._trackPageview ('/outbound/www.apple.com');">iPhone</a>. But.. I'm writing this while commuting on an underground train, of course without a connection. And of course there's Airplane mode. Being out of the country. There's a million reasons to need to use the iPhone disconnected.</p>
<p>You just can't tell me that, since the programming model is fully on the web, that I cannot use my apps when not connected. People's brains just don't work like that. It's a major cognitive dissonance that of the 12 main menu options on the machine, 5 don't work unless you are connected at the time.</p>
<p>So a "real" programming model, with a rich language and apps that get downloaded to the machine and store their data locally simply makes sense.</p>
<p>I mean, this machine has 8Gb of storage, for crying out loud.</p>
<p>At least my <a href="http://www.blackberry.com/" title="BlackBerry" onclick="javascript:pageTracker._trackPageview ('/outbound/www.blackberry.com');">Blackberry</a> was smart enough to know when it was disconnected and would save the request for when it connected again (so it could show me the pages on the message viewer). I missed that today.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hackerdude.com/2007/09/27/iphone-no-we-do-need-a-real-programming-model/feed/</wfw:commentRss>
		</item>
		<item>
		<title>The Mind Map approach to interviewing</title>
		<link>http://www.hackerdude.com/2007/08/10/the-mind-map-approach-to-interviewing/</link>
		<comments>http://www.hackerdude.com/2007/08/10/the-mind-map-approach-to-interviewing/#comments</comments>
		<pubDate>Sat, 11 Aug 2007 00:10:28 +0000</pubDate>
		<dc:creator>Hackerdude</dc:creator>
		
		<guid isPermaLink="false">http://www.hackerdude.com/2007/08/10/the-mind-map-approach-to-interviewing/</guid>
		<description><![CDATA[Interviewing is difficult. Technical vetting is even more difficult. You only have an hour to determine if the person knows his/her salt.
I've been doing a lot of these lately, and I seem to be getting slightly better at them. In my worry to make sure we don't hire the wrong people, I eventually settled with [...]]]></description>
			<content:encoded><![CDATA[<p>Interviewing is difficult. Technical vetting is even more difficult. You only have an hour to determine if the person knows his/her salt.</p>
<p>I've been doing a lot of these lately, and I seem to be getting slightly better at them. In my worry to make sure we don't hire the wrong people, I eventually settled with this as a way to break the ice and start talking difficult problems. I call it the mind map method of technical vetting, or the Mind map approach to interviewing.</p>
<h3>The problem</h3>
<p>Basically, you only have an hour or two to completely technically vet someone on what may be 20 years of experience. Even if you yourself are very smart, there's simply not enough bandwidth in the world to guarantee a level of competency. And certifications are usually no help, because none of the stuff in there tends to relate to real world experience for your particular type of position.</p>
<p>The other problem is that the candidate is likely to be nervous at their best and sometimes plain scared out of their wits - even if they're the perfect candidate. Not exactly conducive to your best thought processes. You don't want to skip someone just because they're nervous or the shy type.</p>
<p>So what to do? A little workshop with a mind map.</p>
<p>I thought about this originally when I interviewed a now-coworker. So he helped me test-drive it. Maybe part of the success is that it worked the first time I tried it? Anyway, I've been using it for a little while now on the technical vettings and it seems to have worked so far.</p>
<p />
<p /><!-- technorati tags begin -->
<p style="font-size:10px;text-align:right;">technorati tags:<br />
<a href="http://technorati.com/tag/interviewing" rel="tag" onclick="javascript:pageTracker._trackPageview ('/outbound/technorati.com');">interviewing</a>
</p>
<p><!-- technorati tags end --></p>
<p><span id="more-515"></span></p>
<h3>Mind Mapping an Interview</h3>
<p>Basically the idea is to create a quick <a href="http://en.wikipedia.org/wiki/Mindmapping" title="Mind map - Wikipedia, the free encyclopedia" onclick="javascript:pageTracker._trackPageview ('/outbound/en.wikipedia.org');">mind-map</a>, based on circles, of the technologies you can ask good questions on (not necessarily of the ones you actually know yourself, you just need to know enough to ask questions, even if they're just "tell me about X"'). Your mind map may be different values to mine (indeed mine seems to be different every time I write it down).</p>
<p>Here's a very small example, just to give you an idea (I use many, many more circles than these, including "Database" and "OOP" circles, put "rails" off ruby, that kind of thing):</p>
<p><center><img src="http://www.hackerdude.com/wp-content/uploads/2007/08/interviewing-mind-map-sample.png" alt="Interviewing Mind map Sample" height="270" width="297"/></center></p>
<p>Note there's not a lot of logic to it. You're not writing an outline here, just a map. Even the thinnest association is probably fine.</p>
<p>So you start with small talk, what they've done on their last position, let them get comfortable. Depending on how comfortable the person seems with eye contact (some geeks are actually less comfortable than others - you can gauge it usually within the first couple of minutes), stand up and start the mindmap, asking them to continue telling you about the position (it's amazing how quick you can get at these once you did it once - it's probably one of those "memory recall" features). If not, wait until the end of that question then stand up and start it - if they're the hyperactive type they can join in as soon as you create the first couple of circles.</p>
<p>What you will instruct them to do is simple. They are to stand up next to you and put a dot with the red pen on the stuff that she feels very comfortable in, a green pen on the stuff he feels okay in, and leave blank the stuff she'd rather not be asked questions about. Also she can feel free to add circles for stuff you may have left out, or help you finish the map.</p>
<p>If you don't have two markers, ask her to do a big dot, a little dot - in fact some people have spontaneously decided to use several sizes of dots, and sometimes it has actually work better than colors if you leave large spaces on the mind map circles.</p>
<p>What this seems to accomplish, in my experience, is the following:</p>
<ul>
<li>Gives Suzie Dev a feeling of initial control over the interview process, reducing stress. After all, she helped decide on the topics to cover!</li>
<li>Gets her standing up and interacting on the whiteboard on something simple. So it sets the tone for feeling comfortable standing up again (in case she feels like coding along, drawing diagrams, etcetera).</li>
<li>Provides you with a quick map of how they actually feel about the technical vetting, <b>greatly</b> increasing how much ground you can cover in such a short time. The resume may be bunk some "pro" wrote or have stuff that they used so long ago that it's useless to try to get them to answer questions anymore, etcetera.</li>
</ul>
<h4>Inquisition Time</h4>
<p>Now to asking the questions. This is up to you but basically (depending on the confidence of the candidate) I like to "go for the yugular" on difficulty and then step back. I try to concentrate on API usage and knowledge. If they know a lot of APIs and classes and what they're for, and then can describe their usage and maybe write something on the board (java code, XML config stuff) that is more or less correct, I figure they've done it before.</p>
<p><b>If you are following this approach, be upfront about it, letting them know you go for difficult questions first then work backwards, and they should not feel self-conscious about their ability to answer</b>. It's important not to let the tension build to a point where now they feel like they don't know anything and clam up due to nervousness.</p>
<p>Why do this? Questioning in reverse difficulty order tends to make it so they have to understand the building blocks that you would normally ask afterwards. This has the effect to accelerate the interviews of the "very smart people" and slow down the interviews of the "not so much there". Within the first few minutes you are likely to get a feel if the person has what it takes to put up with reverse questioning, and it helps avoid the candidate <a href="http://en.wikipedia.org/wiki/Bozo_bit" title="Bozo bit - Wikipedia, the free encyclopedia" onclick="javascript:pageTracker._trackPageview ('/outbound/en.wikipedia.org');">flipping the Bozo Bit</a> on you if you start too simple for their taste.</p>
<p>So what you want to do is start with the stuff they branded themselves as most familiar and go to the stuff they're least familiar afterwards. If you notice them having trouble, jump around questions in their different areas of expertise (keep looking at the map and you'll remember to go back to the original line of questioning).</p>
<p>What I have found, more often than not, is that I can use this method to cover enormous swaths of technology with an okay degree of confidence. They also feel like they got a real workout, no matter how experienced or inexperienced in a specific technology they are.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hackerdude.com/2007/08/10/the-mind-map-approach-to-interviewing/feed/</wfw:commentRss>
		</item>
		<item>
		<title>iBank Review</title>
		<link>http://www.hackerdude.com/2007/07/31/ibank-review/</link>
		<comments>http://www.hackerdude.com/2007/07/31/ibank-review/#comments</comments>
		<pubDate>Wed, 01 Aug 2007 05:52:40 +0000</pubDate>
		<dc:creator>Hackerdude</dc:creator>
		
		<category><![CDATA[Mac]]></category>

		<guid isPermaLink="false">http://www.hackerdude.com/2007/07/31/ibank-review/</guid>
		<description><![CDATA[After my nightmare with Quicken I decided to try many different financial packages. I ended up deciding on iBank 2.3.2. I have been using it for a little while now and here are my impressions.


technorati tags:
finances
osx
mac



Migrating from Quicken
I tried migrating from Quicken (2007 for Mac) 3 times, but it was my mistake for not checking [...]]]></description>
			<content:encoded><![CDATA[<p>After <a href="http://www.hackerdude.com/2007/07/09/osx-personal-finance-software-alternatives/" title="Hackerdude &raquo; OSX Personal Finance Software Alternatives">my nightmare with Quicken</a> I decided to try many different financial packages. I ended up deciding on <a href="http://www.hackerdude.com/2007/07/09/osx-personal-finance-software-alternatives/" title="Hackerdude &raquo; OSX Personal Finance Software Alternatives">iBank 2.3.2</a>. I have been using it for a little while now and here are my impressions.</p>
<p />
<p /><!-- technorati tags begin -->
<p style="font-size:10px;text-align:right;">technorati tags:<br />
<a href="http://technorati.com/tag/funny" rel="finances" onclick="javascript:pageTracker._trackPageview ('/outbound/technorati.com');">finances</a><br />
<a href="http://technorati.com/tag/funny" rel="osx" onclick="javascript:pageTracker._trackPageview ('/outbound/technorati.com');">osx</a><br />
<a href="http://technorati.com/tag/funny" rel="mac" onclick="javascript:pageTracker._trackPageview ('/outbound/technorati.com');">mac</a>
</p>
<p><!-- technorati tags end --></p>
<p><span id="more-513"></span></p>
<h3>Migrating from Quicken</h3>
<p>I tried migrating from Quicken (2007 for Mac) 3 times, but it was my mistake for not checking the help file on how to do it. It turns out all you have to do (after exporting the QIF from Quicken) is to select a checkbox that says "Create Accounts for this file" while on the Open File for Import dialog box. On the final try everything came in and the balances looked sane.</p>
<p>It wasn't a seamless upgrade however - it couldn't tell that the bracketed categories (which in Quicken are actually accounts) are actually meant to be account transfers, so it duplicated the transfers. I spent some time cleaning it and removing the extra transfer (I just set the appropriate account on one of the transactions and zeroed out the other one). At the end I ended up with a bunch of categories with brackets (as many as I had accounts) with zero amounts for me to delete. So do budget a bit of time (maybe 2/3 hours) for this process. I don't see why this couldn't be done automatically, and as most people would be switching from Quicken (unless <a href="http://www.applematters.com/index.php/section/comments/mac-personal-finance-software-disappointment/" title="Apple Matters | Mac Personal Finance Software = Disappointment" onclick="javascript:pageTracker._trackPageview ('/outbound/www.applematters.com');">they want to add the price of Windows, Parallels and the disk space to the price of Quicken</a>) I think it's worth doing.</p>
<h3>First Impressions and Setting things Up</h3>
<p>The UI is very, very nice, taking advantage of all the OS X features; for example, start typing on the search box on the top right and things immediately get filtered. The program's design is very practical. For example, whenever the account info pane is not open, an automatic spending graph is shown on it. On transactions, an image can be attached, which is extremely useful if your bank's website provides images of your checks. In full OS X style, you just drag the image from the browser to the image field, which is oversized so it can easily be dropped on.</p>
<p><center><img src="http://www.hackerdude.com/wp-content/uploads/2007/07/ibank.png" alt="iBank" height="480" width="640"/></center></p>
<p>Accounts can also be set to a currency. If you live or have business out of the country where you live this is specially useful, as it will download the exchange rates for you and update your account values automatically.</p>
<p>It seems to have some problems with scrolling on my Macbook Pro, especially when I have my second monitor attached and I keep moving the windows back and forth. The UI has crashed on me a few times (I drive software hard). But it's never brought down the file with it. I either Save then quit when things get strange or just force quit. I have lost the last transaction once or twice (usually when pasting a dollar number from the web, during the pressing escape or trying to get out of the "invalid format" error caused by the dollar sign or spaces around it). Compared to what I had to suffer under Intuit's product, however, this is easily suffered, and it only takes a couple of times to learn to avoid it.</p>
<p>Although it lacks "wizard-style" setup for a lot of things, iBank is full of nice details that make things easier after they've been set up. Accounts can be grouped, and the groups nicely subtotal the accounts under it. The account icon also shows an exclamation point when you have provided a minimum balance and it is overdrawn. Debt shows up in red. Categories can be assigned colors.</p>
<h3>Adding Data</h3>
<p>Entering single transactions is as easy as on Quicken. Splits are comparatively annoying to enter but not impossible. Because of the insistence on modeless UIs you usually get in a pickle trying to put the cursor in the right place and such. It's specially annoying that a split puts two rows, but entering a paycheck takes a lot more. It's counterintuitive that you have to go to the parent of the split, right click and select "Split Transaction" again to get a single extra row, instead of right clicking and selecting "New Transaction" from inside the split (which instead creates a whole new "top-level" transaction).</p>
<p>It memorizes the transactions you enter (for auto-suggesting later), but not the ones that you imported. This can be considered either a bug or a feature.</p>
<h4>Importing from Online Accounts</h4>
<p>Quicken and MS Money have what amounts to an <a href="http://en.wikipedia.org/wiki/Oligopoly" title="Oligopoly - Wikipedia, the free encyclopedia" onclick="javascript:pageTracker._trackPageview ('/outbound/en.wikipedia.org');">Oligopoly</a> on direct web connection. Having said that, iBank's forums mention they are trying hard to provide direct web connect features. They do open OFX and QIF files after you've downloaded them (and you can associate them to iBank so they open more or less directly). But you still have to go to your bank to download the appropriate transaction files.</p>
<p>Before you consider this a deal killer and go buy Quicken for Mac, review the Mac-specific list of financial institutions on Web Connect, since it is a much smaller list on the Mac, and <a href="http://consumerist.com/consumer/quicken/quicken-claims-to-sync-with-bank-of-america-it-does-unless-you-have-quicken-for-mac-235618.php" title="Quicken: Quicken Claims To Sync With Bank Of America. It Does, Unless You Have Quicken For Mac. - Consumerist" onclick="javascript:pageTracker._trackPageview ('/outbound/consumerist.com');">for no good technical reason</a>.</p>
<p>Importing the transactions was relatively painless, about Quicken 98 (for Windows) level - If the QIF file is old style, it shows some of the data and asks you what date format it should use (with a checkbox to remember the decision), and then it provides the pre-imported list. It seems to find duplicates okay. I dedicate a couple of hours a month to just download all the statements. For Bank stuff, I do it once a week but it's only a couple of files so it doesn't take long.</p>
<p>iBank has the concept of Smart Import Rules but it doesn't pre-fill them as you enter the categories. So although you can tell the system to automatically assign the Dining category to items with the word "Restaurant" in them, when you start frantically filling in categories it does not create a corresponding rule for you the way Quicken does.</p>
<h3>Investments</h3>
<p>When I researched the Mac versions of money management apps, investments was the hardest part to get a right feel for. Almost no product seemed to fully work. iBank does pretty well in that respect, although it is by no means perfect.</p>
<p>Portfolio management is very nice. Cost basis are calculated correctly, with First-in/First-out and Average as calculation options. Quotes are downloaded with a single button, and unlike Quicken, which always only uses its own services (and fails to do so on the Mac half the time), this one pretty much always works, and you can use Motley Fool, Yahoo, Google or Excite as your source for quotes. Right clicking on a portfolio item takes you to the appropriate research page for the service you have selected. You can add Indices for tracking (NASDAQ, SP, etc). I only had one problem with BRK-B, which imported as BRK.B and had a problem getting the quote (just a matter of changing the dot to a dash on the ticker after the fact and re-downloading quotes).</p>
<p>The real Achilles heel of this was importing the data for the portfolio on CSV (QIF works fine). When importing the CSV, iBank was expecting a completely different set of columns and I could never import the data. To be fair, I never tried importing data from this particular format under Quicken either.</p>
<h3>Getting Data</h3>
<p>Reporting is strange. You do reporting by doing Graphs. The graphs request the accounts, the categories, interval and currency, and then you have tabs for category pie, cash flow line, a tree view with categories and interval cutoffs, and the list of matching transactions. If you are dependent on accounting-style reports, try them first to make sure you like them.</p>
<p>Budgeting is okay. No auto-budget, but there is a quick keystroke to show the track budget window, with graphs that go green/yellow/red depending on how close you are to the limit.</p>
<p>Like a modern Mac app, it features Smart Accounts. I haven't had the need to use them yet, but I played with them and they work as well as you would expect. You set up the account with a filter of category, amount or date. It doesn't provide an option of match "all" versus match "any" like other applications do however.</p>
<h4>Beautifully Open</h4>
<p>If you are technically inclined however, you will love two things: One, what seems to be full Applescript and Automator support. File commands include the standard open/save, print checks, download quotes, importing. It has data types for accounts, transactions, securities, etcetera. Automator actions include creating account summaries, adding transactions and even sending an SMS message to a Mobile phone with your account data. The <a href="http://www.iggsoftware.com/forums/viewforum.php?f=4" title="IGG Software - iBank Discussion" onclick="javascript:pageTracker._trackPageview ('/outbound/www.iggsoftware.com');">iBank forums</a> are lively and full of smart people.</p>
<p>If you are more of a low-level database type person, the iBank data file is a Core Data file in sqlite format. So go ahead and write some SQL queries. If you choose this route though try to keep it read-only until you know the data very well, and keep some backups. Now what kind of report you said you really needed?</p>
<h3>Conclusion</h3>
<p>Overall I'm very happy with iBank. It is no Quicken for Windows, but it's much better than the Mac version. It has a lively community around it and the feature set demonstrates experience on the part of the development team on both Mac technology and financial knowledge.</p>
</p>
<p>I'm also happily looking forward to the next version. I expect great things from it.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hackerdude.com/2007/07/31/ibank-review/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Concurrency Strategies for Hibernate Caching</title>
		<link>http://www.hackerdude.com/2007/07/30/concurrency-strategies-for-hibernate-caching/</link>
		<comments>http://www.hackerdude.com/2007/07/30/concurrency-strategies-for-hibernate-caching/#comments</comments>
		<pubDate>Mon, 30 Jul 2007 19:07:49 +0000</pubDate>
		<dc:creator>Hackerdude</dc:creator>
		
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://www.hackerdude.com/2007/07/30/concurrency-strategies-for-hibernate-caching/</guid>
		<description><![CDATA[Caching and concurrency management are tricky. If you have a cache that lives in memory but you have updates to the database that the objects originally came from, how are you going to make sure that the cached objects still reflect the contents of the database?
This really depends on what type of data you are [...]]]></description>
			<content:encoded><![CDATA[<p>Caching and concurrency management are tricky. If you have a cache that lives in memory but you have updates to the database that the objects originally came from, how are you going to make sure that the cached objects still reflect the contents of the database?</p>
<p>This really depends on what type of data you are dealing with. Data types that are mostly read (news, notices, articles) probably benefit from whatever caching you can provide, while areas of data that change a lot (shopping carts, server status records) probably won't benefit from caching at all.</p>
<p>Here are the concurrency strategies on hibernate caching explained:</p>
<p />
<p /><!-- technorati tags begin -->
<p style="font-size:10px;text-align:right;">technorati tags:<br />
<a href="http://technorati.com/tag/hibernate" rel="tag" onclick="javascript:pageTracker._trackPageview ('/outbound/technorati.com');">hibernate</a><br />
<a href="http://technorati.com/tag/java" rel="tag" onclick="javascript:pageTracker._trackPageview ('/outbound/technorati.com');">java</a>
</p>
<p><!-- technorati tags end --></p>
<p><span id="more-511"></span></p>
<ul>
<li><b>Transactional:</b> Full Transaction Isolation, even <a href="http://en.wikipedia.org/wiki/Isolation_(computer_science)#REPEATABLE_READ" title="Repeatable Read Isolation - Wikipedia, the free encyclopedia" onclick="javascript:pageTracker._trackPageview ('/outbound/en.wikipedia.org');">repeatable-read</a>. This is not particularly fast, but it does guarantee full transactional isolation.</li>
<li><b>Read-Write:</b> A bit more relaxed than transactional, it uses a timestamp to maintain <a href="http://en.wikipedia.org/wiki/Isolation_(computer_science)#READ_COMMITTED" title="Read Commited Isolation (computer science) - Wikipedia, the free encyclopedia" onclick="javascript:pageTracker._trackPageview ('/outbound/en.wikipedia.org');">Read-Commited</a> transaction isolation.</li>
<li><b>Non-Strict Read-Write:</b> With this one, you start ending up with stale data, because since it is not strict it provides no guarantee of consistency. If you think things may be updated and provide you with stale data, set a short timeout for expiration.</li>
<li><b>Read-Only</b>: Use this one for Reference data that never changes (days of months, cities, states, etc).</li>
</ul>
<p>Note that, on hibernate, the concurrency strategies available will depend on your cache provider. Also note that all caching only focuses on things your application updated. If you have other applications also updating data on the same database consider not using caching at all for those classes.</p>
<p>If you insist on using caching in this situation, be prepared for caching errors on production and be ready to do some cache management - provide a way to look into the cache statistics and clear the cached elements, and use timeouts that are sensible.</p>
<p>Finally, caching should be your last option for performance, not your first. I can't tell you how many times I've seen teams want to mess around with the cache settings when they have queries so bloated that would make Windows Vista blush. Fix your query issues first, then apply caching. If you add caching when you haven't fixed underlying query problems you only accomplish two things: Sweeping your problem under the rug (but you can still see the bump), and cause OutOfMemory errors.</p>
<p>Category: Best Practices</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hackerdude.com/2007/07/30/concurrency-strategies-for-hibernate-caching/feed/</wfw:commentRss>
		</item>
		<item>
		<title>OSX Personal Finance Software Alternatives</title>
		<link>http://www.hackerdude.com/2007/07/09/osx-personal-finance-software-alternatives/</link>
		<comments>http://www.hackerdude.com/2007/07/09/osx-personal-finance-software-alternatives/#comments</comments>
		<pubDate>Mon, 09 Jul 2007 19:40:41 +0000</pubDate>
		<dc:creator>Hackerdude</dc:creator>
		
		<guid isPermaLink="false">http://www.hackerdude.com/2007/07/09/osx-personal-finance-software-alternatives/</guid>
		<description><![CDATA[Is it too much to ask for a decent personal finance software package for OS X? I have used Quicken on PCs since 3.0. MS Money is also nice although I never really used it for more than trying it out.
I had heard Quicken for Mac was not as far ahead as the Windows version. [...]]]></description>
			<content:encoded><![CDATA[<p>Is it too much to ask for a decent personal finance software package for OS X? I have used Quicken on PCs since 3.0. MS Money is also nice although I never really used it for more than trying it out.</p>
<p>I had heard Quicken for Mac was not as far ahead as the Windows version. But I thought, "the Windows version is so good, how bad can it be?" Boy was I wrong.</p>
<p>The app looks and feels like it's put together in a rush, with no attention to detail, by people who got their first course of OSX development about a week ago. It is <b>BAD</b>. </p>
<p />
<p /><!-- technorati tags begin -->
<p style="font-size:10px;text-align:right;">technorati tags:<br />
<a href="http://technorati.com/tag/osx" rel="tag" onclick="javascript:pageTracker._trackPageview ('/outbound/technorati.com');">osx</a><br />
<a href="http://technorati.com/tag/finances" rel="tag" onclick="javascript:pageTracker._trackPageview ('/outbound/technorati.com');">finances</a>
</p>
<p><!-- technorati tags end --></p>
<p><span id="more-510"></span></p>
<p>Tried contacting support a couple of times because it cannot seem to download quotes. Yeah, that was fun - the feel is that they don't use the product, and they keep asking you to try it some other time, hopefully enough time away that the issue "expires" (I can read the status on the support incidents, thank you). Seems to me they are more worried about their issue resolution reports than actually solving the user's problem.</p>
<p>I'd be willing to bet that even Microsoft, with their office codebase already mostly running on OSX (so yes, it feels a little weird, but it works great), would wipe out the Mac personal finance software market in the two days that takes for FedEx to deliver the software.</p>
<p>Anyway, enough ranting. Since I refuse to keep a Windows partition just to count money, I'm looking for alternatives. I don't have time to play with all of them, but I'm listing them here for now.</p>
<h3>Full-featured</h3>
<ul>
<li><a href="http://www.moneydance.com/" title="Moneydance&reg; 2007" onclick="javascript:pageTracker._trackPageview ('/outbound/www.moneydance.com');">Moneydance</a> - Commercial Product. I hear good things about it but I've looked at it for about 2 minutes. Has a developers API.</li>
<li><a href="http://www.gnucash.org/" title="GNUCash" onclick="javascript:pageTracker._trackPageview ('/outbound/www.gnucash.org');">GNU Cash</a> - Tried it a looong time ago. It didn't work out for me but that's because I tried it so early (pre-1.0, had to compile it myself). Probably worth another try although needing X11 is a bit of a turnoff (someone seems to be working on that though).</li>
<li><a href="http://www.iggsoftware.com/ibank/" title="iBank - IGG Software, LLC" onclick="javascript:pageTracker._trackPageview ('/outbound/www.iggsoftware.com');">IBank</a> - Looks very nice, and it integrates with iCal. Uses core data (I wonder if I can write SQL against it?)</li>
</ul>
<h3>Basic functionality</h3>
<p>I doubt these will be a full solution, but it may work for some people with only basic tracking needs.</p>
<ul>
<li><a href="http://www.arachnoid.com/PLCash/index.html" title="PLCash" onclick="javascript:pageTracker._trackPageview ('/outbound/www.arachnoid.com');">PLCash</a> - I used Arachnophilia way back when, this is the same guy. Written in Java.</li>
<li><a href="http://www.fadingred.org/cashbox/screenshots/" title="Cashbox" onclick="javascript:pageTracker._trackPageview ('/outbound/www.fadingred.org');">Cashbox</a> - Pretty.</li>
<li><a href="http://www.midnightapps.com/" title="Cha-Ching v1.0" onclick="javascript:pageTracker._trackPageview ('/outbound/www.midnightapps.com');">Cha-Ching</a> - This looks awesome. This is what a professional app for OS X <b>should</b> look like (listening, Intuit?). It imports QIF. They don't mention reporting or investment tracking.</li>
<li><a href="http://www.splasm.com/checkbook/index.html" title="CheckBook" onclick="javascript:pageTracker._trackPageview ('/outbound/www.splasm.com');">CheckBook</a> - small and underfeatured. It does support transaction downloading though.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.hackerdude.com/2007/07/09/osx-personal-finance-software-alternatives/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
