<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">  
  <title>christopherroach.com - Posts tagged 'cocoa'</title>
  <link href="/feed/tag/cocoa.xml" rel="self"/>
  <link href="http://christopherroach.com/"/>
  <updated>2010-09-06T04:10:01+00:00</updated>
  <id>http://christopherroach.com/</id>
  <author>
    <name>Christopher Roach</name>
    <email>christopher.roach@me.com</email>
  </author>
  
<entry>
<title>Ruby Fibonacci Shootout, Part 2</title>
<link href="/2010/01/21/ruby-fibonacci-shootout-2"/>
<updated>2010-01-21T00:00:00+00:00</updated>
<id>http://christopherroach.com/2010/01/21/ruby-fibonacci-shootout-2</id>
<content type="html">
  &lt;p&gt;This is just a quick update on a &lt;a href=&quot;http://christopherroach.com/2010/01/02/ruby-fibonacci-shootout/&quot;&gt;short post&lt;/a&gt; I wrote a few days ago where I compared the speed of a few different Ruby VM's using a simple recursive Fibonacci algorithm (compliments of &lt;a href=&quot;http://antoniocangiano.com/2007/11/28/holy-shmoly-ruby-19-smokes-python-away/&quot;&gt;this article&lt;/a&gt;) to see just how well the new &lt;a href=&quot;http://www.macruby.org/&quot;&gt;MacRuby&lt;/a&gt; VM stacks up to the rest of them. The results had me pleasantly surprised when MacRuby blew them all away and was even able to compete with a C version (unoptimized&amp;#151;of course) of the same code.&lt;/p&gt; &lt;p&gt;Well, today as I was, once again, perusing the links on &lt;a href=&quot;http://www.reddit.com/r/programming/&quot;&gt;Proggit&lt;/a&gt;, I came across this tempting little morsel: &lt;a href=&quot;#&quot;&gt;&quot;LuaJIT makes Lua nearly as fast as Fortran on the Benchmarks Game&quot;&lt;/a&gt;. Considering that my interests in MacRuby are mainly to find a fast scripting language that is enjoyable to use and easily embeddable within a Cocoa application, I couldn't resist checking out the latest &lt;a href=&quot;http://luajit.org/&quot;&gt;LuaJIT&lt;/a&gt; compiler to see how it performed on the same test relative to MacRuby. Below is the Lua code that I used to perform the tests:&lt;/p&gt; &lt;script src=&quot;http://gist.github.com/267631.js&quot;&gt;&lt;/script&gt; &lt;p&gt;The results below show Lua's best time compared to the latest MacRuby implementation.&lt;br/&gt; &lt;/p&gt; &lt;h5&gt;LuaJIT 1.1.5&lt;/h5&gt; &lt;pre&gt;&lt;code&gt;real 0m2.068s user 0m2.049s sys...
</content>
</entry>


<entry>
<title>Ruby Fibonacci Shootout</title>
<link href="/2010/01/15/ruby-fibonacci-shootout"/>
<updated>2010-01-15T00:00:00+00:00</updated>
<id>http://christopherroach.com/2010/01/15/ruby-fibonacci-shootout</id>
<content type="html">
  &lt;p&gt;As I was perusing &lt;a href=&quot;http://www.reddit.com/r/programming/&quot;&gt;Proggit&lt;/a&gt; yesterday, I ran across a &lt;a href=&quot;http://www.mysoftparade.com/blog/ruby-19-doesnt-smoke-python-away/&quot;&gt;little rant&lt;/a&gt; in reply to an earlier &lt;a href=&quot;http://antoniocangiano.com/2007/11/28/holy-shmoly-ruby-19-smokes-python-away/&quot;&gt;blog post&lt;/a&gt; on the speed improvements of the new Ruby 1.9 VM vs Python. The Python article was a bit unfair in its assessment of Python's speed vs Ruby's since the author essentially translated a highly recursive algorithm into an iterative one and used that for his comparison. Nevertheless, it did get me a bit more interested in just how much better the new Ruby VM's are performing. After trying the tests in the original article a few times and being truly impressed with Ruby 1.9's nearly 5x speed improvement over the old 1.8 VM, I thought why not give &lt;a href=&quot;http://www.macruby.org/&quot;&gt;MacRuby&lt;/a&gt; a try since it is supposed to be a highly optimized Ruby VM for my computing platform of choice, and let me tell ya, it did not disappoint.&lt;/p&gt; &lt;p&gt;For those of you who are not in the know, MacRuby is a port of Ruby 1.9 for Mac OS X. But where MacRuby differs from other ports of Ruby to the Mac platform, is in its implementation details. MacRuby is built directly on top of Objective-C and, thus, shares...
</content>
</entry>


<entry>
<title>The Road to Independence</title>
<link href="/2009/10/08/road-independence-month-1"/>
<updated>2009-10-08T00:00:00+00:00</updated>
<id>http://christopherroach.com/2009/10/08/road-independence-month-1</id>
<content type="html">
  &lt;p&gt;I have been busy, busy, busy, but I have finally found, correction, made the time (I mean sleep when you're dead, right?) to write the second post in my series on creating a small software business. So, considering that time is very short these days, let's just get right down to brass tacks, what have I been up to with respect to this journey I've set out for myself?&lt;/p&gt; &lt;blockquote&gt;&lt;p&gt;To keep my posts organized, I've tried to come up with a list of areas in which I will discuss my progress during the life of the product and of the company. Each of those areas is detailed below with a small summary of what I've been doing in each for the past time period (in this case the past month).&lt;/p&gt;&lt;/blockquote&gt; &lt;h3&gt;Design&lt;/h3&gt; &lt;p&gt;Well, first and foremost, I've worked on the design of my first application a bit more, fleshing out some of the details of how the app will work. The design of the GUI itself will stay roughly similar to my first draft until I can get something coded up that I can play around with. I did have another little breakthrough though with respect to application design&amp;mdash;a second application...
</content>
</entry>


<entry>
<title>The Road to Independence</title>
<link href="/2009/09/11/road-independence-week-1"/>
<updated>2009-09-11T00:00:00+00:00</updated>
<id>http://christopherroach.com/2009/09/11/road-independence-week-1</id>
<content type="html">
  &lt;p&gt;For a while now, I have had three goals in the back of my mind that I hope to accomplish within my lifetime. The first is to write a book, probably a technical book of some sort. Second, get my Ph.D., most likely in Computer Science, but if not it will be in something that has a lot in common with CS. And, the third, would be to start my own company. Now by company, I don't mean Microsoft, Apple, Google, etc, etc. What I mean is a &lt;a href=&quot;http://www.ericsink.com/bos/Micro_ISV.html&quot; title=&quot;Exploring Micro-ISV's&quot;&gt;micro-ISV&lt;/a&gt; (Independent Software Vendor, for the uninitiated). I don't particularly care if this company never turns into anything more than a fun little &amp;mdash; and hopefully, at least slightly lucrative &amp;mdash; side project. The main benefit that I hope to take away from starting my own company is the experience and the permission to say that I, unlike so many others out there, was not defeated by my own fear of failure, and, as a result, I was able to provide something of value to the world based totally on my own ideas and hard work.&lt;/p&gt; &lt;p&gt;So, in an attempt to prod myself along into realizing at least one...
</content>
</entry>


<entry>
<title>Git for the Cocoa Developer</title>
<link href="/2008/12/22/git-for-the-cocoa-developer-remote-branching"/>
<updated>2008-12-22T00:00:00+00:00</updated>
<id>http://christopherroach.com/2008/12/22/git-for-the-cocoa-developer-remote-branching</id>
<content type="html">
  &lt;p&gt;If you've been following the rest of this series, so far what you've learned is how to set up a Cocoa-specific project folder, how to host a bare repository for the project on a remote server, and how to set up your local project to deal with an alternate ssh port on the remote machine. In this episode, I'll go over the few commands that you'll need to branch your project and push those branches to your remote repository.&lt;/p&gt; &lt;h3&gt;Creating the Remote Branch&lt;/h3&gt; &lt;p&gt;To create a remote branch what we'll do is create a new local branch and then push the new branch to the remote repository. Creating a new branch is easy, simply call the &lt;code&gt;git branch&lt;/code&gt; command and pass into it the name you wish to associate with the new branch. Pushing the new branch to the remote repository is just as easy. Just call the &lt;code&gt;git push&lt;/code&gt; command as we've done in earlier posts with the name of the remote repository (in our case that would be &lt;code&gt;origin&lt;/code&gt;) and append to that the name of the local branch.&lt;/p&gt; &lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt; % git branch &amp;lt;local_branch_name&amp;gt; % git push origin &amp;lt;local_branch_name&amp;gt; &lt;/pre&gt; &lt;/div&gt; &lt;p&gt;Now that you've created a new...
</content>
</entry>


<entry>
<title>Git for the Cocoa Developer</title>
<link href="/2008/12/15/git-for-the-cocoa-developer-remote-setup"/>
<updated>2008-12-15T00:00:00+00:00</updated>
<id>http://christopherroach.com/2008/12/15/git-for-the-cocoa-developer-remote-setup</id>
<content type="html">
  &lt;p&gt;If your remote repository exists on a server whose &lt;code&gt;ssh&lt;/code&gt; server is relegated to something other than the typical port, you might find it hard to connect to your repository with Git. Git offers---as far as I can tell---no command line option to change the default port number to one of your own choosing. So, in order to get your work done, you'll have to add a new host configuration to your user-scoped &lt;code&gt;ssh&lt;/code&gt; config file. The rest of this post deals with creating a new host configuration and setting up your Git repositories to use the new configuration when connecting to a remote repository.&lt;/p&gt; &lt;p&gt;To add a new host configuration to ssh, you'll need to open the config file which can be found at &lt;code&gt;~/.ssh/config&lt;/code&gt;, or, if one doesn't currently exist at that location, you can just create a new config file. After you've opened---or created, if necessary---the config file, you'll need to add a new configuration just like the one I've listed below.&lt;/p&gt; &lt;script src=&quot;http://gist.github.com/267442.js&quot;&gt;&lt;/script&gt; &lt;p&gt;Each new host configuration in your &lt;code&gt;ssh&lt;/code&gt; config file must contain a &lt;code&gt;Host&lt;/code&gt; key, value pair. This will take the place of the hostname that you usually pass into the &lt;code&gt;ssh&lt;/code&gt; command when...
</content>
</entry>


<entry>
<title>Git for the Cocoa Developer</title>
<link href="/2008/11/26/git-for-the-cocoa-developer-typical-workflow"/>
<updated>2008-11-26T00:00:00+00:00</updated>
<id>http://christopherroach.com/2008/11/26/git-for-the-cocoa-developer-typical-workflow</id>
<content type="html">
  &lt;p&gt;Lately I've been doing a bit of Cocoa development. To be perfectly honest, Between an &lt;a href=&quot;http://en.wikipedia.org/wiki/Agent-based_model&quot;&gt;ABM&lt;/a&gt; Simulation Framework I've been working on (I'll talk about this a bit more in a future post) and the &lt;a href=&quot;http://www.stanford.edu/class/cs193p/cgi-bin/index.php&quot;&gt;iPhone development class&lt;/a&gt; that I'm taking, I've actually been doing quite a lot of Cocoa development. Now, I like to use some type source control system when I develop software, even when I'm developing by myself. I also typically like to use a distributed source control system (the reasons for why are another blog post for another time when I'm feeling a bit more iconoclastic) such as Mercurial or Git. When I started developing my ABM framework I decided that I would give SVN a try since support for it was built into Xcode and typically if you try not to fight the tools, you find that development is quite a bit easier. Unfortunately, this time that didn't ring true. From the get-go I ran into troubles, and considering my disdain for SVN and all the other centralized repository systems, I decided to drop it and go with Git instead.&lt;/p&gt; &lt;p&gt;The rest of this post deals with everything I've learned along the way....
</content>
</entry>


<entry>
<title>Introduction to Objective-C, Part 1</title>
<link href="/2008/08/07/introduction-to-objc-1"/>
<updated>2008-08-07T00:00:00+00:00</updated>
<id>http://christopherroach.com/2008/08/07/introduction-to-objc-1</id>
<content type="html">
  &lt;p&gt;In order to really know Cocoa you first need to get a good understanding of the language upon which it is built. So, with that in mind, we'll be going over the Objective-C language for the next several blog posts. We'll start out by looking at Objective-C as a separate entity from Cocoa, and Apple for that matter. In our first few posts we'll cover the inception and history of Objective-C, it's life outside of Cocoa, the basics of the language, and finally how to create a simple application using nothing more than the GNU Compiler Collection's version of Objective-C. In latter posts, we'll look into how the language is integrated into the Cocoa development environment.&lt;/p&gt; &lt;h3&gt;A quick history lesson&lt;/h3&gt; &lt;p&gt;Objective-C, like Bjarne Stroustrup's C++, is an object-oriented extension to the C programming language invented by Brad Cox. Unlike C++ however, which was based on the ideas of the Simula programming langauge, Objective-C took its inspiration from the works of Alan Kay and incorporated Smalltalk's message passing features into the language. A somewhat amusing tidbit is that both languages were designed around the same time period (the early 80's) and with the very same goals in mind, namely to make...
</content>
</entry>


</feed>