<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" xml:lang="en-US">
  <title>Syntactic Saccharose - Home</title>
  <id>tag:www.carotena.net,2009:mephisto/</id>
  <generator uri="http://mephistoblog.com" version="0.8.0">Mephisto Drax</generator>
  
  <link href="http://www.carotena.net/" rel="alternate" type="text/html" />
  <updated>2009-05-25T08:18:00Z</updated>
  <geo:lat>41.440917</geo:lat><geo:long>2.012461</geo:long><link rel="self" href="http://feeds.feedburner.com/syntactic" type="application/atom+xml" /><entry xml:base="http://www.carotena.net/">
    <author>
      <name>victor</name>
    </author>
    <id>tag:www.carotena.net,2009-05-25:3319</id>
    <published>2009-05-25T08:17:00Z</published>
    <updated>2009-05-25T08:18:00Z</updated>
    <category term="job" />
    <category term="polymita" />
    <category term="startup" />
    <link href="http://feedproxy.google.com/~r/syntactic/~3/SSklKjI8WLI/leaving-polymita" rel="alternate" type="text/html" />
    <title>Leaving Polymita</title>
<content type="html">
            &lt;p&gt;In a week, I'll be changing jobs yet again. Except for the first gig, I've been working on progressively earlier stages during the live of a company: I worked for the publishing powerhouse &lt;a href="http://www.planeta.es/"&gt;Planeta Group&lt;/a&gt;, a big corporation with slow reflexes. Then, in the Barcelona office of &lt;a href="http://www.pivetal.com"&gt;Pivetal&lt;/a&gt;, a UK company with advanced automation and quality management products (don't let their website fool you) for the telco industry. After that, came &lt;a href="http://www.polymita.com"&gt;Polymita Technologies&lt;/a&gt;, a growth stage startup that sells a unique BPM platform that integrates all the infrastructure for today's business applications. And next month, I'll be joining an early stage startup. A web startup, in a way of speaking&lt;/p&gt;

&lt;p&gt;I've enjoyed my stay at Polymita. I was currently in a support analyst position and, while not having the glamour of R&amp;amp;D or the hectic pace of the operations department (which I'm not sure I like anyway), it was rewarding all the same because everyday was different, I didn't know beforehand what would the cases be like. But lately, with the product being so stable, my mad skillz were going unused (and please excuse my hubris, that's how we geeks are). I hadn't planned to leave or anything, but I was offered this new position last year and my inner engineer started to see lots of potential directions this tech could go to. Even so, at first I didn't clearly see the way the technology could be monetized (that's what reading &lt;a href="http://techcrunch.com"&gt;TechCrunch&lt;/a&gt; will do to you). I didn't hear back from this people until some weeks ago, where they presented me some changes that could make the product a hit. While I had figured out that my next job would involve Rails or Cocoa, looks like I'll be sticking with Java (for the time being at least) on this new company. Still, the development platform of choice in the new company are MacBook Pro's, so there's still hope. I could do some internal tool with Cocoa or an iPhone client, who knows?&lt;/p&gt;

&lt;p&gt;So, I decided to switch jobs in this crazy economic climate. I'm abandoning the stability and job security that Polymita provides me and diving head first into the dangerous waters and stressing climate of a true web startup. While some people have commented that I must be mad, some others have complimented me, and I think this is a golden opportunity to learn first-hand all an entrepreneur has to know. If the progression holds, my next job could be on my own company and I would need this knowledge. And anyway, I'll get to work on lots of interesting stuff, there might even be some parsing involved (making this site's motto relevant once more).&lt;/p&gt;

&lt;p&gt;It could also be that this idea flops, but then again, I'm not overly stressed by this possibility. After a handful of interviews looking for new staff, I realized how difficult it is for companies to find competent engineers. I know that I wouldn't be on the dole for too long.&lt;/p&gt;
          &lt;img src="http://feeds.feedburner.com/~r/syntactic/~4/SSklKjI8WLI" height="1" width="1"/&gt;</content>  <feedburner:origLink>http://www.carotena.net/2009/5/25/leaving-polymita</feedburner:origLink></entry>
  <entry xml:base="http://www.carotena.net/">
    <author>
      <name>victor</name>
    </author>
    <id>tag:www.carotena.net,2009-01-01:3281</id>
    <published>2009-01-01T21:25:00Z</published>
    <updated>2009-01-02T17:34:46Z</updated>
    <category term="2009" />
    <category term="resolution" />
    <link href="http://feedproxy.google.com/~r/syntactic/~3/ONbw-ronxn0/resolutions-for-2009" rel="alternate" type="text/html" />
    <title>Resolutions for 2009</title>
<content type="html">
            &lt;p&gt;I don't usually write a list of resolutions, mostly because I don't use to formalize this kind of list as such. But I though this year I could give it a try, at least one that can be bloggable. Without further a do, let's go for it:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Write more on this blog. Currently I'm posting more to my Spanish blog, &lt;a href="http://principia.info"&gt;Principia Programmatica&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Put an XML-RPC plugin into mephisto to be able to blog on the move from my iPhone. I also want to use my own themes.&lt;/li&gt;
&lt;li&gt;Learn a new programming language. I'm almost decided for Smalltalk, but it could also be Processing or Nu&lt;/li&gt;
&lt;li&gt;Practice Objective-C and Cocoa. Perhaps on the iPhone, even.&lt;/li&gt;
&lt;li&gt;Also, I want to learn RubyCocoa or MacRuby. Whichever. As for Python, I don't think I would be able to fit Python 3.0 in the schedule, I don't currently have a use for it.&lt;/li&gt;
&lt;li&gt;Finish reading at least 70% of all the books I currently have started but haven't finished yet.&lt;/li&gt;
&lt;li&gt;Write a Facebook application.&lt;/li&gt;
&lt;li&gt;Get a media center for the living room. I'm saving for an AppleTV, but withouth HDMI on the TV set it's a bit silly yet. I haven't found a reasonably priced adapter kit yet. Perhaps the Mac Mini slated for Macworld expo next week will do, who knows?&lt;/li&gt;
&lt;li&gt;Contribute to some open source project. I have already sent patches here and there, but since I'm using Mephisto intensively, I'll scratch my own itch and write a couple of plugins at least.&lt;/li&gt;
&lt;li&gt;Master git, and perhaps buy a subscription to github. I don't really need a paid account yet, though&lt;/li&gt;
&lt;li&gt;Modernize my home network. I have some scattered old PCs that aren't currently being used, and their old hard disks are beginning to catch bit rot. I'd like to get a new home server, to store all my pictures/movies/mail, and perhaps to develop some of my projects on it.&lt;/li&gt;
&lt;li&gt;I want to use all of my skills at work, at least the most enjoyable ones. If that means switching jobs (in this dire economic situation) so be it. I'm tired of reading people like Paul Graham or Jason Calacanis, but being afraid of leaving my comfortable and safe work place.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Ok. That's about it, I think. Let's review this list in a year or so...&lt;/p&gt;
          &lt;img src="http://feeds.feedburner.com/~r/syntactic/~4/ONbw-ronxn0" height="1" width="1"/&gt;</content>  <feedburner:origLink>http://www.carotena.net/2009/1/1/resolutions-for-2009</feedburner:origLink></entry>
  <entry xml:base="http://www.carotena.net/">
    <author>
      <name>victor</name>
    </author>
    <id>tag:www.carotena.net,2008-04-09:2991</id>
    <published>2008-04-09T20:28:00Z</published>
    <updated>2008-04-09T20:29:37Z</updated>
    <category term="star wars" />
    <category term="swlotd" />
    <link href="http://feedproxy.google.com/~r/syntactic/~3/5Mx-EjkzA-U/swlotd" rel="alternate" type="text/html" />
    <title>SWLOTD</title>
<content type="html">
            &lt;p&gt;Cut'n'fold &lt;a href="http://home.comcast.net/~kymcat3/character001.html"&gt;Stormtroopers&lt;/a&gt;!&lt;/p&gt;
          &lt;img src="http://feeds.feedburner.com/~r/syntactic/~4/5Mx-EjkzA-U" height="1" width="1"/&gt;</content>  <feedburner:origLink>http://www.carotena.net/2008/4/9/swlotd</feedburner:origLink></entry>
  <entry xml:base="http://www.carotena.net/">
    <author>
      <name>victor</name>
    </author>
    <id>tag:www.carotena.net,2008-04-08:2989</id>
    <published>2008-04-08T08:48:00Z</published>
    <updated>2008-04-09T08:59:33Z</updated>
    <category term="star wars" />
    <category term="swlotd" />
    <link href="http://feedproxy.google.com/~r/syntactic/~3/eMmUsL9EHJE/star-wars-link-of-the-day" rel="alternate" type="text/html" />
    <title>Star Wars link of the day</title>
<content type="html">
            &lt;p&gt;A coworker, Juanma, and I use to send over IM more or less daily an star wars related link. In order to avoid all this effort to be lost, I'll post them here as time permits.&lt;/p&gt;

&lt;p&gt;Here is the first one: 
&lt;a href="http://www.superdeluxe.com/sd/contentDetail.do?id=D81F2344BF5AC7BBDF72CDEA065DF6EC96C87E8B3E62B9C7"&gt;Dave Hill: Jedi Master&lt;/a&gt;&lt;/p&gt;
          &lt;img src="http://feeds.feedburner.com/~r/syntactic/~4/eMmUsL9EHJE" height="1" width="1"/&gt;</content>  <feedburner:origLink>http://www.carotena.net/2008/4/8/star-wars-link-of-the-day</feedburner:origLink></entry>
  <entry xml:base="http://www.carotena.net/">
    <author>
      <name>victor</name>
    </author>
    <id>tag:www.carotena.net,2007-08-25:2766</id>
    <published>2007-08-25T15:32:00Z</published>
    <updated>2007-10-18T16:03:37Z</updated>
    <category term="blog" />
    <category term="hosting" />
    <category term="textdrive" />
    <link href="http://feedproxy.google.com/~r/syntactic/~3/dprsTYh4dVQ/standby" rel="alternate" type="text/html" />
    <title>Standby</title>
<content type="html">
            &lt;p&gt;As you might know if you visit this blog regularly, I'm not updating quite often. Part of the reason behind that is my schedule, and part of it is the current hosting situation: this blog is hosted at &lt;a href="http://textdrive.com"&gt;Textdrive&lt;/a&gt; on one of their shared &lt;a href="http://freebsd.org"&gt;FreeBSD&lt;/a&gt; servers.&lt;/p&gt;

&lt;p&gt;Unfortunately, some time ago the powers that be at Textdrive decided to limit the resource consumption of their shared accounts, and since then, rails applications on Textdrive are often killed due to their excessive memory usage (for values of excessive starting at 48MB). Since the blog is powered by &lt;a href="http://mephistoblog.com"&gt;Mephisto&lt;/a&gt;, a rails application, it often occurred that I had to abandon editing a new entry, or updating the design.&lt;/p&gt;

&lt;p&gt;However, not all is lost. As it turns out, Texdrive is massively migrating their FreeBSD accounts to their shared Accelerators, powerful &lt;a href="http://sun.com"&gt;Sun&lt;/a&gt; servers running &lt;a href="http://www.opensolaris.org/"&gt;OpenSolaris&lt;/a&gt;, and with much broad resource limits. According to users who have completed the migration, the new servers fly!&lt;/p&gt;

&lt;p&gt;So, this post is mostly to announce that, until my account is moved to the new servers, I'll refrain from updating the blog. I hold a Premier account, so I'll be in the first lot of customers to move, though I'll still have to wait, since the order is alphabetical and my account begins with 'v'. Please be patient and stay tuned.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Update 18/10/2007:&lt;/strong&gt; If you can see this, it means I'm on the new server&lt;/p&gt;
          &lt;img src="http://feeds.feedburner.com/~r/syntactic/~4/dprsTYh4dVQ" height="1" width="1"/&gt;</content>  <feedburner:origLink>http://www.carotena.net/2007/8/25/standby</feedburner:origLink></entry>
  <entry xml:base="http://www.carotena.net/">
    <author>
      <name>victor</name>
    </author>
    <id>tag:www.carotena.net,2007-07-01:2705</id>
    <published>2007-07-01T17:24:00Z</published>
    <updated>2007-07-01T17:52:25Z</updated>
    <category term="choclit" />
    <category term="books" />
    <category term="bookshelf" />
    <category term="cocoa" />
    <category term="delicious library" />
    <category term="f-script" />
    <category term="nsview" />
    <link href="http://feedproxy.google.com/~r/syntactic/~3/eiPoG8VeBns/a-bit-of-fiddling-with-f-script-anywhere" rel="alternate" type="text/html" />
    <title>A bit of fiddling with F-Script Anywhere...</title>
<content type="html">
            &lt;p&gt;and here you have the results :)&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.flickr.com/photos/vich/685694960/" title="Photo Sharing"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Of course, not all my books are in &lt;a href="http://www.delicious-monster.com/"&gt;Delicious Library&lt;/a&gt; yet. Specially since Amazon doesn't carry most of my books in Spanish. But this is, anyway, a representative sample.&lt;/p&gt;
          &lt;img src="http://feeds.feedburner.com/~r/syntactic/~4/eiPoG8VeBns" height="1" width="1"/&gt;</content>  <feedburner:origLink>http://www.carotena.net/2007/7/1/a-bit-of-fiddling-with-f-script-anywhere</feedburner:origLink></entry>
  <entry xml:base="http://www.carotena.net/">
    <author>
      <name>victor</name>
    </author>
    <id>tag:www.carotena.net,2007-02-21:2633</id>
    <published>2007-02-21T08:20:00Z</published>
    <updated>2007-04-18T21:22:39Z</updated>
    <category term="choclit" />
    <category term="cocoa" />
    <category term="objc" />
    <category term="randomapp" />
    <category term="ruby" />
    <category term="rubycocoa" />
    <category term="xcode" />
    <link href="http://feedproxy.google.com/~r/syntactic/~3/_WV4zvoteF8/cp-chapter-2-random-number-generator" rel="alternate" type="text/html" />
    <title>CP, Chapter 2: Random number generator</title>
<summary type="html">&lt;p&gt;As I said in the previous post, doing this example in Objective-C is trivial and its only purpose is getting familiarized with the tools, so let's try and do it in Ruby instead.&lt;/p&gt;

&lt;p&gt;Following the text, the first thing to do is launch XCode and create a new project. Since &lt;a href="http://www.carotena.net/2007/2/21/installing-rubycocoa"&gt;we installed RubyCocoa&lt;/a&gt;, we'll have a new type of project, &lt;em&gt;Cocoa-Ruby Application&lt;/em&gt;:&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</summary><content type="html">
            &lt;p&gt;As I said in the previous post, doing this example in Objective-C is trivial and its only purpose is getting familiarized with the tools, so let's try and do it in Ruby instead.&lt;/p&gt;

&lt;p&gt;Following the text, the first thing to do is launch XCode and create a new project. Since &lt;a href="http://www.carotena.net/2007/2/21/installing-rubycocoa"&gt;we installed RubyCocoa&lt;/a&gt;, we'll have a new type of project, &lt;em&gt;Cocoa-Ruby Application&lt;/em&gt;:&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;
&lt;p&gt;After telling XCode which name we want to give to the project, it will generate its skeleton. As we can see, an &lt;code&gt;rb_main.rb&lt;/code&gt; script has been created, that is called from the entry point (in &lt;code&gt;main.m&lt;/code&gt;); and the RubyCocoa framework has been added as well. If we build and launch this project, we can see that it runs normally.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;If we look closely at the generated code, we'll see that &lt;code&gt;main.m&lt;/code&gt;, instead of calling &lt;code&gt;NSApplicationMain&lt;/code&gt;, is actually calling &lt;code&gt;RbApplicationMain&lt;/code&gt; and passing it the script name as an argument.&lt;/p&gt;

&lt;p&gt;The script, for its part, looks somewhat more complex:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;require 'osx/cocoa'

def rb_main_init
  path = OSX::NSBundle.mainBundle.resourcePath.fileSystemRepresentation
  rbfiles = Dir.entries(path).select {|x| /.rb\z/ =~ x}
  rbfiles -= [ File.basename(__FILE__) ]
  rbfiles.each do |path|
    require( File.basename(path) )
  end
end

if $0 == __FILE__ then
  rb_main_init
  OSX.NSApplicationMain(0, nil)
end
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;The first thing the script does is require the Cocoa libraries (for Ruby). Then defines a function, &lt;code&gt;rb_main_init&lt;/code&gt;, that is called if the script it's the same as the one that was passed as a parameter, proceeding then to call the method &lt;code&gt;NSApplicationMain&lt;/code&gt;, which loads the NIB files and begins the main Cocoa application loop.&lt;/p&gt;

&lt;p&gt;What does this function do? It iterates over the package (the bundle) files, looking for all the ruby scripts within, and &lt;code&gt;require&lt;/code&gt; them all, presumably so that they are available before being used from the application.&lt;/p&gt;

&lt;p&gt;Having seen this, we can proceed with the application, launching Interface Builder and defining the interface, as explained in the book. Once the main application window is created, we are expected to define a class &lt;code&gt;Foo&lt;/code&gt; with an outlet and an action, and then have XCode generate the code for that class. But XCode does not yet generate Ruby code, so the only thing we can obtain from it is Objective-C code. I have done this in order to convert it to Ruby, but you can skip this step and use the following code:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;#
#  Foo.rb
#  RbRandomApp
#
#  Created by Victor Jalencas on 18/02/07.
#

require 'osx/cocoa'

class Foo &amp;lt; OSX::NSObject

    ib_outlets :textField

    def generate(sender)
    end

    def seed(sender)
    end

end
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Now we're ready to instantiate Foo. If we look at the Connection inspector, we'll see that there is an outlet, which is there thanks to the class method we used to declare it, &lt;code&gt;ib_outlets&lt;/code&gt; (which is, actually, an alias to &lt;code&gt;attr_writer&lt;/code&gt;). However, there isn't yet a method for declaring the actions, so that our only course of action is adding them by hand in Interface Builder. I've heard rumors that it will soon exist such a method, though.&lt;/p&gt;

&lt;p&gt;Next, we'll connect the outlets and actions as normally. Then it's just a matter of implementing the methods we had declared:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;#
#  Foo.rb
#  RbRandomApp
#
#  Created by Victor Jalencas on 18/02/07.
#

require 'osx/cocoa'

class Foo &amp;lt; OSX::NSObject

    ib_outlets :textField

    def generate(sender)
      generated = (rand(100))+1
      @textField.setIntValue(generated)
    end

    def seed(sender)
      srand(Time.now.to_i)
      @textField.setStringValue "Generator seeded"
    end

end
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;If we build and launch the project now, we'll see that it works perfectly. Where in the original code we would have called C functions (&lt;code&gt;random&lt;/code&gt;, &lt;code&gt;srand&lt;/code&gt; and &lt;code&gt;time&lt;/code&gt;), I have now used the ruby counterparts.
We'll also see that the outlets are used as instance variables, and that there's no need to convert ruby strings to &lt;code&gt;NSString&lt;/code&gt; (that is one of the few automatic conversions RubyCocoa offers us)&lt;/p&gt;

&lt;p&gt;To finish the example, we'll add the &lt;code&gt;awakeFromNib&lt;/code&gt; method:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;def awakeFromNib
  now = OSX::NSCalendarDate.calendarDate
  @textField.setObjectValue now
end
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;And with this, the application is finished. We could run the Ruby and the ObjC applications side-by-side and we'd get the same results, save for the fact that in Ruby, if you don't seed the random number generator, it's by default seeded with a value that depends on the time and the PID, while the C function &lt;code&gt;random&lt;/code&gt; does not and will always repeat the same sequences if it's not properly seeded.&lt;/p&gt;
          &lt;img src="http://feeds.feedburner.com/~r/syntactic/~4/_WV4zvoteF8" height="1" width="1"/&gt;</content>  <feedburner:origLink>http://www.carotena.net/2007/2/21/cp-chapter-2-random-number-generator</feedburner:origLink></entry>
  <entry xml:base="http://www.carotena.net/">
    <author>
      <name>victor</name>
    </author>
    <id>tag:www.carotena.net,2007-02-21:2632</id>
    <published>2007-02-21T08:12:00Z</published>
    <updated>2007-02-21T08:19:45Z</updated>
    <category term="choclit" />
    <category term="cocoa" />
    <category term="macports" />
    <category term="osx" />
    <category term="ruby" />
    <category term="rubycocoa" />
    <category term="xcode" />
    <link href="http://feedproxy.google.com/~r/syntactic/~3/dC5eKDjOdOk/installing-rubycocoa" rel="alternate" type="text/html" />
    <title>Installing RubyCocoa</title>
<content type="html">
            &lt;p&gt;Since the first exercise on the book - on chapter 2- consists merely on following along the instructions and build a simple application, I'm gonna start by doing this same exercise with Ruby. To that end, the &lt;a href="http://rubycocoa.sourceforge.net/doc/"&gt;RubyCocoa&lt;/a&gt; bridge must be installed.&lt;/p&gt;

&lt;p&gt;I use the ruby from  &lt;a href="http://www.macports.org/"&gt;MacPorts&lt;/a&gt; (formerly known as DarwinPorts), so I can't use the binary that one can download from RubyCocoa's site, since that is for the ruby that comes with Mac OS X Tiger. If that were your case, just download the biinary, but be warned that Apple's ruby is buggy.&lt;/p&gt;

&lt;p&gt;Installing the bridge is as simple as&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;sudo port install rb-cocoa
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;The system will fetch and install the newest version available from the bridge. If a message like this appeared&lt;/p&gt;

&lt;blockquote&gt;
    &lt;p&gt;Error: Target com.apple.activate returned: Image error: /Developer/Documentation/RubyCocoa/build.en.html already exists and does not belong to a registered port.  Unable to activate port rb-cocoa.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;it means that you already had the package installed for Apple's ruby and in trying to install it, it finds some conflicting files (while they are installed in different places, some files do indeed go to the same place, such as documentation and XCode templates). In that case, you will have to use the following command to activate the port:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;sudo port -f activate rb-cocoa
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;To check that it's working, we'll invoke the interactive interpreter:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;$ irb
irb(main):001:0&amp;gt; require 'osx/cocoa'
=&amp;gt; true
&lt;/code&gt;&lt;/pre&gt;
          &lt;img src="http://feeds.feedburner.com/~r/syntactic/~4/dC5eKDjOdOk" height="1" width="1"/&gt;</content>  <feedburner:origLink>http://www.carotena.net/2007/2/21/installing-rubycocoa</feedburner:origLink></entry>
  <entry xml:base="http://www.carotena.net/">
    <author>
      <name>victor</name>
    </author>
    <id>tag:www.carotena.net,2007-02-21:2631</id>
    <published>2007-02-21T08:00:00Z</published>
    <updated>2007-02-21T08:12:05Z</updated>
    <category term="choclit" />
    <category term="c#" />
    <category term="cocoa" />
    <category term="objc" />
    <category term="osx" />
    <category term="ruby" />
    <category term="rubycocoa" />
    <link href="http://feedproxy.google.com/~r/syntactic/~3/9Tq96Fnr0oI/cocoa-programming-exercises" rel="alternate" type="text/html" />
    <title>Cocoa Programming exercises</title>
<content type="html">
            &lt;p&gt;Since I bought the Mac I'm trying to learn to program in that environment. I have a couple of books to that effect, but for some reason I can't &lt;em&gt;retain&lt;/em&gt; (pun intended) the knowledge in my head to effectively develop on the Mac - that is, I'm constantly referring to the books for every step I need to take. Be it for having to use Interface Builder and its myriad options, or the fact that not using automatic garbage collection scares me (my pointers are certainly rusty), the thing is, I'm sure that if I exercise regularly - as in a code Kata - in the end I will master it.&lt;/p&gt;

&lt;p&gt;That's why I'm starting this new section. I'm gonna follow the exercises in Aaron Hillegass' book, &lt;a href="http://www.amazon.com/gp/product/0321213149?ie=UTF8&amp;amp;tag=victorweb-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=0321213149"&gt;Cocoa(R) Programming for Mac(R) OS X&lt;/a&gt; in public, commenting and expanding them, so that the peer pressure makes me do it regularly. Mi intention is, provided I have the time and skill, to also rewrite the exercises in some other language than Objective-C -but with bindings for Cocoa, of course- such as Ruby or C# and, while doing so, prepare myself for the release of Leopard, where alternative languages will gather more importance.&lt;/p&gt;

&lt;p&gt;Even better if, in doing this, some reader can benefit from it. Likely, having the book will be a requisite to follow the posts effectively, but I will try to make them self-contained. Let's see how I fare...&lt;/p&gt;
          &lt;img src="http://feeds.feedburner.com/~r/syntactic/~4/9Tq96Fnr0oI" height="1" width="1"/&gt;</content>  <feedburner:origLink>http://www.carotena.net/2007/2/21/cocoa-programming-exercises</feedburner:origLink></entry>
  <entry xml:base="http://www.carotena.net/">
    <author>
      <name>admin</name>
    </author>
    <id>tag:www.carotena.net,2007-02-05:2622</id>
    <published>2007-02-05T15:03:00Z</published>
    <updated>2007-02-14T10:06:49Z</updated>
    <category term="mephisto" />
    <category term="rails" />
    <category term="txd" />
    <link href="http://feedproxy.google.com/~r/syntactic/~3/kDK9Yg9yWVg/just-testing-if-this-will-stand-its-own" rel="alternate" type="text/html" />
    <title>Just testing if this will stand its own</title>
<content type="html">
            &lt;p&gt;Please pardon the dust... again. Looks like the resources at TXD are rather tight. Changing themes can bring the samurai's wrath upon the processes, &lt;em&gt;if ye catch me meaning&lt;/em&gt;.&lt;/p&gt;
          &lt;img src="http://feeds.feedburner.com/~r/syntactic/~4/kDK9Yg9yWVg" height="1" width="1"/&gt;</content>  <feedburner:origLink>http://www.carotena.net/2007/2/5/just-testing-if-this-will-stand-its-own</feedburner:origLink></entry>
  <entry xml:base="http://www.carotena.net/">
    <author>
      <name>admin</name>
    </author>
    <id>tag:www.carotena.net,2006-09-25:2612</id>
    <published>2006-09-25T21:41:00Z</published>
    <updated>2007-02-04T19:32:02Z</updated>
    <link href="http://feedproxy.google.com/~r/syntactic/~3/IfuVzfPyoys/okay-let-s-try-more-things" rel="alternate" type="text/html" />
    <title>Okay, let's try more things</title>
<content type="html">
            &lt;p&gt;Since I’m still getting to know mephisto, I thought I’d try a couple of things out…&lt;/p&gt;
          &lt;img src="http://feeds.feedburner.com/~r/syntactic/~4/IfuVzfPyoys" height="1" width="1"/&gt;</content>  <feedburner:origLink>http://www.carotena.net/2006/9/25/okay-let-s-try-more-things</feedburner:origLink></entry>
  <entry xml:base="http://www.carotena.net/">
    <author>
      <name>admin</name>
    </author>
    <id>tag:www.carotena.net,2006-09-25:2616</id>
    <published>2006-09-25T21:23:00Z</published>
    <updated>2007-02-04T19:34:02Z</updated>
    <link href="http://feedproxy.google.com/~r/syntactic/~3/SIelee0JYZI/this-is-just-a-test-post" rel="alternate" type="text/html" />
    <title>This is just a test post</title>
<content type="html">
            &lt;p&gt;Lately, rails has been playing tricks on me. The applications would go and disappear under my feet, segfaulting sometimes without even logging a message. That’s why I’m posting this, to see if the problem appears now that the TXD folks are having an eye on it.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Update: * Umm… somehow, it’s good news that no problems occur… but then, if there really is a problem, it won’t help that it doesn’t appear now… &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It’s a bit annoying somehow. I migrated to mephisto because I suspected typo’s bloat would have something to do with the problems, and now I am missing some features that mephisto doesn’t yet implement (I don’t doubt it will, mephisto is very young still). And yet, I won’t go back, since I’m interested in hosting multiple sites with a single instance of whichever rails app will do that, and just now, only mephisto does it. If it stays stable for one more day, I’ll deem the issue –closed– vanished and try this feature (yes, I haven’t really tried it yet)&lt;/p&gt;
          &lt;img src="http://feeds.feedburner.com/~r/syntactic/~4/SIelee0JYZI" height="1" width="1"/&gt;</content>  <feedburner:origLink>http://www.carotena.net/2006/9/25/this-is-just-a-test-post</feedburner:origLink></entry>
  <entry xml:base="http://www.carotena.net/">
    <author>
      <name>admin</name>
    </author>
    <id>tag:www.carotena.net,2006-09-01:2615</id>
    <published>2006-09-01T08:32:00Z</published>
    <updated>2007-02-04T19:34:32Z</updated>
    <link href="http://feedproxy.google.com/~r/syntactic/~3/gPNHDo04m9I/alatriste" rel="alternate" type="text/html" />
    <title>Alatriste</title>
<content type="html">
            &lt;p&gt;Tonight is the premier of the long-expected movie adaptation of the &lt;a href="http://www.amazon.com/exec/obidos/redirect?link_code=ur2&amp;amp;tag=victorweb-20&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;path=external-search%3Fsearch-type=ss%26index=books%26keyword=alatriste"&gt;Alatriste&lt;/a&gt; novels, created by Arturo Pérez-Reverte. The plot is set in XVIIth Century’s Madrid, when the Spanish empire was beginning its decline. With Viggo Mortensen as Captain Alatriste and lots of other first-line Spanish actors and actresses in the cast, I can’t wait to see it (but I will, at least until tomorrow ;)&lt;/p&gt;

&lt;blockquote&gt;
    &lt;p&gt;No queda sino batirse!&lt;/p&gt;
&lt;/blockquote&gt;
          &lt;img src="http://feeds.feedburner.com/~r/syntactic/~4/gPNHDo04m9I" height="1" width="1"/&gt;</content>  <feedburner:origLink>http://www.carotena.net/2006/9/1/alatriste</feedburner:origLink></entry>
  <entry xml:base="http://www.carotena.net/">
    <author>
      <name>admin</name>
    </author>
    <id>tag:www.carotena.net,2006-08-30:2614</id>
    <published>2006-08-30T13:55:00Z</published>
    <updated>2007-02-04T19:35:04Z</updated>
    <link href="http://feedproxy.google.com/~r/syntactic/~3/sC1RKZarp4c/new-gtd-app" rel="alternate" type="text/html" />
    <title>New GTD app</title>
<content type="html">
            &lt;p&gt;I have just downloaded &lt;a href="http://www.midnightbeep.com/?p=79"&gt;Inbox&lt;/a&gt; during the lunch time and launched it, and then hibernated the machine, so I don’t yet have an opinion. But looks very nice!!&lt;/p&gt;

&lt;p&gt;More comments when I test it…&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; Yeah well… I can say it’s going to be very nice working with Inbox. The beta, though, still doesn’t do automatic processing of items, but looks very promising. I have decided I’ll pony up for it, without waiting to the &lt;a href="http://maczot.com"&gt;MacZot&lt;/a&gt; or anything.&lt;/p&gt;
          &lt;img src="http://feeds.feedburner.com/~r/syntactic/~4/sC1RKZarp4c" height="1" width="1"/&gt;</content>  <feedburner:origLink>http://www.carotena.net/2006/8/30/new-gtd-app</feedburner:origLink></entry>
  <entry xml:base="http://www.carotena.net/">
    <author>
      <name>admin</name>
    </author>
    <id>tag:www.carotena.net,2006-08-29:2613</id>
    <published>2006-08-29T13:27:00Z</published>
    <updated>2007-02-04T19:35:25Z</updated>
    <link href="http://feedproxy.google.com/~r/syntactic/~3/7iASPSndJEE/lazyweb-work" rel="alternate" type="text/html" />
    <title>Lazyweb@work</title>
<content type="html">
            &lt;p&gt;Via the &lt;a href="http://mephistoblog.com"&gt;Mephisto&lt;/a&gt; site, I’ve found that one of the projects that I have in the freezer (namely, the &lt;a href="http://www.carotena.net/2005/6/10/recent-projects"&gt;client-based syntax highlighter&lt;/a&gt;) already has a &lt;a href="http://projects.danwebb.net/wiki/CodeHighlighter"&gt;working implementation&lt;/a&gt; by &lt;a href="http://www.danwebb.net/"&gt;Dan Webb&lt;/a&gt;. I don’t know how well it works yet, I’ll have to try it. I’m curious as to its support for nested languages and complex expressions (judging from the language definition files, it is only based on regexen, so I don’t know if Dan will have added support for that)&lt;/p&gt;

&lt;p&gt;In any case, it’s in a more advanced state than mine and working on Safari, too! Cheers Dan!&lt;/p&gt;
          &lt;img src="http://feeds.feedburner.com/~r/syntactic/~4/7iASPSndJEE" height="1" width="1"/&gt;</content>  <feedburner:origLink>http://www.carotena.net/2006/8/29/lazyweb-work</feedburner:origLink></entry>
</feed>
