<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>XHTML This Blog</title>
    <link>http://xhtmlthis.com/blog</link>
    <description>The blog of Garrett Bjerkhoel and his endevours</description>
    <item>
      <title>The Process of Making an Application</title>
      <link>http://xhtmlthis.com/blog/read/the-process-of-making-an-application</link>
      <description>&lt;p&gt;So it has always been in my interest to make a Mac application, heck, that is the only real reason I bought one. Is to mess with Xcode and Interface Builder (my favorite).&lt;/p&gt;
&lt;p&gt;Anyhow, this is a simple outline of what you have to go through to make, develop, and push out an application.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Thinking of the idea&lt;/strong&gt;&lt;br /&gt;
I think this is the hardest part other than coding the idea. The idea is something that will obviously benefit you, and it has to be marketable to others. You aren&amp;#8217;t going to want to spend dozens of hours making a program that is only targeted to a low amount of people.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Developing the application&lt;/strong&gt;&lt;br /&gt;
This takes a lot of dedication, you spend 8 hour days working on it, avoiding everything. Some things make you want to pull your hair out, but by the end of the day its all for a good cause.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Designing the application&lt;/strong&gt;&lt;br /&gt;
You have to know when to not make it look, well, unusable. It can get very easy to go over board, but simple icons and the usual Mac interface will get you where you need to go so the users know where everything is.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Developing the site&lt;/strong&gt;&lt;br /&gt;
This is another hard one, its the first thing that the user will see before using your application. It should stand out and grab them to use your program. Some sites that do this very well, are, &lt;a href="http://www.discoapp.com/"&gt;Disco&lt;/a&gt; and &lt;a href="http://www.checkoutapp.com/"&gt;Checkout&lt;/a&gt; its the subtle icons, the nice application icon, and a download link that is easy to find.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Making a secure bridge to license the application&lt;/strong&gt;&lt;br /&gt;
This will be a tough one for me, not the actual authentication, just where do I set the line? You can only register it 4-5 times? I would hate for my application to have one key used hundreds of times for multiple people. My plan is to have them input a few details about them, like the key itself, and their email address that is used.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Future Updates&lt;/strong&gt;&lt;br /&gt;
When do you cut off a release and push it to the public? When do you just keep on going? I think its the each critical feature, then you push out a X.1 or a X.X.1. Something I will have to wait to see.&lt;/p&gt;
&lt;p&gt;I will post more about the app as time progresses and its almost finished.&lt;/p&gt;</description>
      <category>Cocoa</category>
    </item>
    <item>
      <title>The Power of Rails</title>
      <link>http://xhtmlthis.com/blog/read/the-power-of-rails</link>
      <description>&lt;p&gt;I hope to show the power of Ruby on Rails tomorrow with a screencast, from design to setting up the Virtual Hosts and launching the application with mod_rails.&lt;/p&gt;
&lt;p&gt;I will have it full and all that, I will have many versions, because I have nothing to do essentially. I will have a mix of versions with my; iSight, Music (that I listen to during), time lapse (maybe 2 minutes), I hope to upload it all to my S3 server when I am done as well as Vimeo so I can post it here.&lt;/p&gt;</description>
      <category>Coding</category>
    </item>
    <item>
      <title>TextMate Drawer File Creation Problem</title>
      <link>http://xhtmlthis.com/blog/read/textmate-drawer-file-creation-problem</link>
      <description>&lt;p&gt;For the past, month or two, TextMate has been giving me no love in it&amp;#8217;s drawers. Anyhow, I was never able to create files in the drawer, it was killing me. I was going crazy, having to open a new window save it, etc. Anyhow, here is the solution that worked for me.&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;Repair your permissions&lt;/li&gt;
	&lt;li&gt;&lt;strong&gt;Delete the application support file for TextMate&lt;/strong&gt;, which will leave all your snippets, etc. You will have to re-create your &lt;code&gt;mate&lt;/code&gt; link, and put your license in.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Anyhow, if anybody ever gets this, here you go, I posted for help on Mac Rumors and on the TextMate mailing list and no love, so here we go, here is a true solution.&lt;/p&gt;</description>
      <category>Coding</category>
    </item>
    <item>
      <title>Upgraded My Slice to 512mb</title>
      <link>http://xhtmlthis.com/blog/read/upgraded-my-slice-to-512mb</link>
      <description>&lt;p&gt;I have been hosted with &lt;a href="https://manage.slicehost.com/customers/new?referrer=1355319339"&gt;SliceHost&lt;/a&gt; for about 2 months now. The support for Ruby on Rails is awesome, and how I have control over every little thing, it makes it the only solution that I plan to have in the future.&lt;/p&gt;
&lt;p&gt;I just upgraded the 256mb slice to 512mb, which I can already notice the speed increase. I hope to be up to 8gb by the end of the year, (only joking, well somewhat). I am not even sure if thats possible.&lt;/p&gt;
&lt;p&gt;Anyhow, I plan to have few more sites popping up in the near future anyhow. Just thought I would do an update.&lt;/p&gt;</description>
      <category>Announcements</category>
    </item>
    <item>
      <title>Styling Ordered Lists</title>
      <link>http://xhtmlthis.com/blog/read/styling-ordered-lists</link>
      <description>&lt;p&gt;So a project a came up where I needed to style just the numbers inside the &lt;code&gt;&amp;lt;ol&amp;gt;&lt;/code&gt;, although it had to be site wide, every time it was used. My only option was really JavaScript because &lt;span class="caps"&gt;CSS&lt;/span&gt; doesn&amp;#8217;t support the styling of its bullets without setting the color in &lt;code&gt;&amp;lt;ol&amp;gt;&lt;/code&gt;, then resetting the &lt;code&gt;&amp;lt;li&amp;gt;&lt;/code&gt; color.&lt;/p&gt;
&lt;p&gt;Here is an example of what the &lt;code&gt;&amp;lt;ol&amp;gt;&lt;/code&gt; needs to look like:&lt;br /&gt;
&lt;ol style="color: #0088cc"&gt;&lt;li&gt;&lt;span style="color: #333"&gt;&lt;span class="caps"&gt;XHTML&lt;/span&gt; This is a coding service.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="color: #333"&gt;This is a blog post.&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/p&gt;
&lt;p&gt;There is no problem making it work, but to work on every instance of the &lt;code&gt;&amp;lt;ol&amp;gt;&lt;/code&gt;, you need some tweaking. You need the JavaScript to scan the page, for every &lt;code&gt;&amp;lt;ol&amp;gt;&lt;/code&gt; and for every &lt;code&gt;&amp;lt;li&amp;gt;&lt;/code&gt; inside of it, get the contents and wrap it in a &lt;code&gt;&amp;lt;span&amp;gt;&lt;/code&gt; or any other selector you want to use.&lt;/p&gt;
&lt;p&gt;Here is the JavaScript:&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;window.onload = function () {         
  var li = document.getElementsByTagName('ol');
  for(i=0;i&amp;lt;li.length;i++) {
     if(li[i].childNodes[1].nodeName == 'LI') {
        var li_count = li[i].childNodes.length;
        for(b=0;b&amp;lt;li_count;b++) {
          li[i].childNodes[b].innerHTML = '&amp;lt;span&amp;gt;'+li[i].childNodes[b].innerHTML+'&amp;lt;/span&amp;gt;';
        }
     }
  }
};
&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
To know exactly what it does, here is the code that we start with:&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;ol&amp;gt;
  &amp;lt;li&amp;gt;XHTML This is a coding service.&amp;lt;/li&amp;gt;
  &amp;lt;li&amp;gt;This is a blog post.&amp;lt;/li&amp;gt;
&amp;lt;/ol&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
Then this is what we end up with:&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;ol&amp;gt;
  &amp;lt;li&amp;gt;&amp;lt;span&amp;gt;XHTML This is a coding service.&amp;lt;/span&amp;gt;&amp;lt;/li&amp;gt;
  &amp;lt;li&amp;gt;&amp;lt;span&amp;gt;This is a blog post.&amp;lt;/span&amp;gt;&amp;lt;/li&amp;gt;
&amp;lt;/ol&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;</description>
      <category>Coding</category>
    </item>
    <item>
      <title>Site has finally launched</title>
      <link>http://xhtmlthis.com/blog/read/site-has-finally-launched</link>
      <description>&lt;p&gt;This portfolio has been in the works for about 3 weeks now, on and off about an hour every night. I am trying to take a new direction and start leaning off of coding others templates, but developing your ideas. Yes, full sites, but that is to come, for now I am still going to offer &lt;span class="caps"&gt;PSD&lt;/span&gt; to &lt;span class="caps"&gt;XHTML&lt;/span&gt;/&lt;span class="caps"&gt;CSS&lt;/span&gt; conversion.&lt;/p&gt;
&lt;p&gt;I have a few awesome ideas I hope to develop by summers end, I will be posting a bit more about it on here. &lt;em&gt;Just a quick note, this will be my personal and announcement related blog&lt;/em&gt;, so there may be a few non-site-related posts from time to time.&lt;/p&gt;
&lt;p&gt;I just want to start this off with how many lines of actual code it took me to do the backend of this site. This example really shows the power of rails, just run &lt;code&gt;rake stats&lt;/code&gt; and it generates:&lt;/p&gt;
&lt;pre&gt;
+----------------------+-------+-------+---------+---------+-----+-------+
| Name                 | Lines |   LOC | Classes | Methods | M/C | LOC/M |
+----------------------+-------+-------+---------+---------+-----+-------+
| Controllers          |   364 |   288 |       9 |      23 |   2 |    10 |
| Helpers              |    37 |    30 |       0 |       4 |   0 |     5 |
| Models               |    64 |    53 |       9 |       6 |   0 |     6 |
| Libraries            |    65 |    56 |       0 |       4 |   0 |    12 |
| Integration tests    |     0 |     0 |       0 |       0 |   0 |     0 |
| Functional tests     |    64 |    48 |       8 |       8 |   1 |     4 |
| Unit tests           |    73 |    55 |       9 |       9 |   1 |     4 |
+----------------------+-------+-------+---------+---------+-----+-------+
| Total                |   667 |   530 |      35 |      54 |   1 |     7 |
+----------------------+-------+-------+---------+---------+-----+-------+
  Code LOC: 427     Test LOC: 103     Code to Test Ratio: 1:0.2
&lt;/pre&gt;
&lt;p&gt;So it took me a total of 427 lines of code (that I wrote) to generate this site, this really helps me make changes later on, so I can have sometime to refer back to and see if I have been able to do everything with less code. Lets see what the site is able to do&amp;#8230;&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;&lt;strong&gt;Blog&lt;/strong&gt;
	&lt;ul&gt;
		&lt;li&gt;Create blog posts, delete them, and update them.&lt;/li&gt;
		&lt;li&gt;Add comments to blog posts with &lt;span class="caps"&gt;AJAX&lt;/span&gt; and still being unobtrusive.&lt;/li&gt;
		&lt;li&gt;Add categories for posts&lt;/li&gt;
		&lt;li&gt;Support &lt;a href="http://hobix.com/textile/"&gt;Textile&lt;/a&gt; Comments and Blog Posts&lt;/li&gt;
	&lt;/ul&gt;&lt;/li&gt;
	&lt;li&gt;&lt;strong&gt;Clients&lt;/strong&gt;
	&lt;ul&gt;
		&lt;li&gt;Add new clients, edit, and delete them.&lt;/li&gt;
		&lt;li&gt;Upload images for each client.&lt;/li&gt;
		&lt;li&gt;Add descriptions for each client.&lt;/li&gt;
	&lt;/ul&gt;&lt;/li&gt;
	&lt;li&gt;&lt;strong&gt;Order Form&lt;/strong&gt;
	&lt;ul&gt;
		&lt;li&gt;Able to load all of my services, along with their price.&lt;/li&gt;
		&lt;li&gt;Add and take away new fields&lt;/li&gt;
	&lt;/ul&gt;&lt;/li&gt;
	&lt;li&gt;&lt;strong&gt;Admin&lt;/strong&gt;
	&lt;ul&gt;
		&lt;li&gt;To add new languages (very top), delete them, and edit them.&lt;/li&gt;
		&lt;li&gt;To add questions that also populate the &lt;a href="/questions"&gt;&lt;span class="caps"&gt;FAQ&lt;/span&gt;&lt;/a&gt; page.&lt;/li&gt;
	&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>Announcements</category>
    </item>
  </channel>
</rss>
