<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <id>http://urbanfaubion.com/</id>
  <title>urbanfaubion.com Syndication</title>
  <updated>2012-03-03T08:00:00Z</updated>
  <link rel="alternate" href="http://urbanfaubion.com/"/>
  <link rel="self" href="http://urbanfaubion.com/atom.xml"/>
  <author>
    <name>Urban Faubion</name>
    <uri>http://urbanfaubion.com/</uri>
  </author>
  <entry>
    <id>tag:urbanfaubion.com,2012-03-03:/articles/2012/03/03/new_computer_setup.html</id>
    <title type="html">New Computer Setup</title>
    <published>2012-03-03T08:00:00Z</published>
    <updated>2012-03-03T08:00:00Z</updated>
    <link rel="alternate" href="http://urbanfaubion.com/articles/2012/03/03/new_computer_setup.html"/>
    <content type="html">&lt;p&gt;Work recently issued me a new computer and realized I should write down the programs I use daily and the tools I use for development.&lt;/p&gt;

&lt;h2&gt;General:&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href="http://www.skype.com/intl/en-us/home"&gt;Skype&lt;/a&gt;&lt;/strong&gt; is an application for making free voice and video calls over the internet. It also lets you make group calls, instant message and for a low rate, make phone calls.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href="http://www.dropbox.com/"&gt;Dropbox&lt;/a&gt;&lt;/strong&gt; is a tool for syncing files across different devices and the web.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href="http://lightheadsw.com/caffeine/"&gt;Caffeine&lt;/a&gt;&lt;/strong&gt; is a utility for keeping your Mac from going to sleep.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href="http://growl.info/"&gt;Growl&lt;/a&gt;&lt;/strong&gt; is a notification system for OS X. It centralizes all of your notifications, has theme support and allows you control notifications on a per-application basis or all at once.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href="http://toolbar.google.com/gmail-helper/notifier_mac.html"&gt;Google Notifier&lt;/a&gt;&lt;/strong&gt; is a menu bar application that allows you to see new Gmail messages or upcoming Google Calendar events without having to open a web browser.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href="http://wafflesoftware.net/growlergn/"&gt;Growler for Google&lt;/a&gt;&lt;/strong&gt; shows Google Notifier notifications using Growl&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;Design:&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href="http://www.adobe.com/products/photoshop.html"&gt;Photoshop CS5&lt;/a&gt;&lt;/strong&gt; is a digital picture and photo editing application.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href="http://www.adobe.com/products/illustrator.html"&gt;Illustrator CS5&lt;/a&gt;&lt;/strong&gt; is a vector graphics editor.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href="http://www.adobe.com/products/indesign.html"&gt;InDesign CS5.5&lt;/a&gt;&lt;/strong&gt; is a layout program for posters, flyers, brochures, magazines, newspapers and books.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href="http://www.adobe.com/products/photoshoplightroom/"&gt;Lightroom 3&lt;/a&gt;&lt;/strong&gt; is a digital photo management and editing program.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;Development:&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href="http://macromates.com/"&gt;TextMate&lt;/a&gt;&lt;/strong&gt; is a general-purpose GUI text editor.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href="http://panic.com/transmit/"&gt;Transmit&lt;/a&gt;&lt;/strong&gt; is a file transfer program for FTP and SFTP servers, Amazon S3, or WebDAV.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href="http://www.charlesproxy.com/"&gt;Charles&lt;/a&gt;&lt;/strong&gt; is an HTTP proxy / HTTP monitor / Reverse Proxy that enables a developer to view all of the HTTP and SSL / HTTPS traffic between their machine and the Internet.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href="http://processing.org/"&gt;Processing&lt;/a&gt;&lt;/strong&gt; is an open source programming language and environment.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href="http://developer.apple.com/xcode/"&gt;Xcode&lt;/a&gt;&lt;/strong&gt; is a suite of tools for developing software for Mac OS X and iOS. I use it for iOS development and some of the tools it ships with to set up my other development environments.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href="https://github.com/kennethreitz/osx-gcc-installer"&gt;OSX GCC Installer&lt;/a&gt;&lt;/strong&gt; is usefull if you don’t want to install Xcode and you just need GCC and related tools to set up a development environment.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href="http://mxcl.github.com/homebrew/"&gt;Homebrew&lt;/a&gt;&lt;/strong&gt; is a great package installer for UNIX tools that don’t ship with the Mac by default. I use it to install other libraries such as:
    &lt;ul&gt;
      &lt;li&gt;&lt;strong&gt;&lt;a href="http://growl.info/extras.php#growlnotify"&gt;growlnotify&lt;/a&gt;&lt;/strong&gt; - a command-line tool for posting notifications to Growl.&lt;/li&gt;
      &lt;li&gt;&lt;strong&gt;&lt;a href="http://nodejs.org/"&gt;node&lt;/a&gt;&lt;/strong&gt; - an event-driven, non-blocking I/O model that makes it great for real-time applications.&lt;/li&gt;
      &lt;li&gt;&lt;strong&gt;&lt;a href="http://www.phantomjs.org/"&gt;phantomjs&lt;/a&gt;&lt;/strong&gt; - a headless WebKit with a JavaScript API.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href="http://git-scm.com/"&gt;Git&lt;/a&gt;&lt;/strong&gt; is an open source, distributed version control system.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href="https://github.com/sstephenson/rbenv"&gt;rbenv&lt;/a&gt;&lt;/strong&gt; is a simple, unobtrusive UNIX tool for switching between multiple versions of Ruby.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href="https://github.com/sstephenson/ruby-build"&gt;ruby-build&lt;/a&gt;&lt;/strong&gt; provides a simple way to compile and install different versions of Ruby on UNIX-like systems.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href="http://pow.cx/"&gt;Pow&lt;/a&gt;&lt;/strong&gt; is a zero-config Rack server for Mac OS X.
    &lt;ul&gt;
      &lt;li&gt;&lt;strong&gt;&lt;a href="https://github.com/Rodreegez/powder"&gt;powder&lt;/a&gt;&lt;/strong&gt; - command-line utility that makes it easier to add applications, tail your log files, and restart Pow.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;a href="http://gembundler.com/"&gt;Bundler&lt;/a&gt;&lt;/strong&gt; a tool for managing Ruby application dependencies.&lt;/li&gt;
&lt;/ul&gt;

</content>
    <summary type="html">Applications and tools I use daily with my work computer</summary>
  </entry>
  <entry>
    <id>tag:urbanfaubion.com,2012-03-02:/articles/2012/03/02/ruby_programming_language.html</id>
    <title type="html">Ruby Programming Language</title>
    <published>2012-03-02T08:00:00Z</published>
    <updated>2012-03-02T08:00:00Z</updated>
    <link rel="alternate" href="http://urbanfaubion.com/articles/2012/03/02/ruby_programming_language.html"/>
    <content type="html">&lt;p&gt;Ruby is a dynamically typed, reflective, object-oriented programming language by Yukihiro “Matz” Matsumoto. Created in Japan during the mid-1990s, Matz drew on the influences other languages of that time such as &lt;a href="http://en.wikipedia.org/wiki/Perl"&gt;Perl&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/Lisp_(programming_language)"&gt;Lisp&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/Smalltalk"&gt;Smalltalk&lt;/a&gt; and a few others to form a new language that balanced &lt;a href="http://en.wikipedia.org/wiki/Functional_programming"&gt;functional&lt;/a&gt; programming with &lt;a href="http://en.wikipedia.org/wiki/Imperative_programming"&gt;imperative&lt;/a&gt; programming. In many ways, Ruby is similar to other scripting languages however Matz emphasized for the programmer rather than the computer when planning the syntax. He said:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Often people, especially computer engineers, focus on the machines. They think, “By doing this, the machine will run faster. By doing this, the machine will run more effectively. By doing this, the machine will something something something.” They are focusing on machines. But in fact we need to focus on humans, on how humans care about doing programming or operating the application of the machines. We are the masters. They are the slaves.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Ruby is similar to other scripting languages however Matz opted for programmer instead of language efficiency in order to make Ruby natural and fun.&lt;/p&gt;

&lt;p&gt;Ruby is an &lt;a href="http://en.wikipedia.org/wiki/Object-oriented"&gt;object-oriented&lt;/a&gt; scripting language where every value is an object (even primitives). Every object can have their own &lt;strong&gt;properties&lt;/strong&gt; (instance variables) and &lt;strong&gt;actions&lt;/strong&gt; (methods). Variables hold object references and functions return objects. The language also supportes a wide range programing paradigms including &lt;a href="http://en.wikipedia.org/wiki/Procedural_programming"&gt;procedural&lt;/a&gt; and &lt;a href="http://en.wikipedia.org/wiki/Functional_programming"&gt;functional&lt;/a&gt; programming. It also has support for &lt;a href="http://en.wikipedia.org/wiki/Introspection_(computer_science)"&gt;introspection&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/Reflection_(computer_science)"&gt;reflection&lt;/a&gt; and &lt;a href="http://en.wikipedia.org/wiki/Metaprogramming"&gt;metaprogramming&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;To execute ruby files, in the command line by typing &lt;code&gt;$ ruby path/to/file/file_name.rb&lt;/code&gt;. For example, type the following into a file named “hello_world.rb” and save it to your “Desktop”. To execute this file type &lt;code&gt;ruby ~/Desktop/hello_world.rb&lt;/code&gt; into the command-line.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;#!/usr/bin/env ruby

def say_hello
  "Hello World!"
end

puts say_hello
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;For more information about the Ruby Language, check out the Ruby Language website at &lt;a href="http://ruby-lang.org"&gt;ruby-lang.org&lt;/a&gt; or try it out in your browser at &lt;a href="http://tryruby.org"&gt;tryruby.org&lt;/a&gt;.&lt;/p&gt;

</content>
    <summary type="html">The Ruby programming language.</summary>
  </entry>
  <entry>
    <id>tag:urbanfaubion.com,2011-03-17:/articles/2011/03/17/Basic_Unix.html</id>
    <title type="html">Unix and Basic Shell Scripting</title>
    <published>2011-03-17T07:00:00Z</published>
    <updated>2011-03-17T07:00:00Z</updated>
    <link rel="alternate" href="http://urbanfaubion.com/articles/2011/03/17/Basic_Unix.html"/>
    <content type="html">&lt;p&gt;UNIX is a collection of software known as a computer &lt;strong&gt;operating system (OS)&lt;/strong&gt; that is used to communicate with a computer&amp;#8217;s &lt;strong&gt;central processing unit (CPU)&lt;/strong&gt; and &lt;strong&gt;memory&lt;/strong&gt;. The OS software is also responsible for communications between the CPU/memory and the computer&amp;#8217;s other &lt;strong&gt;peripherals&lt;/strong&gt; (disks, printers, networks and etc.). Unix however does not refer to a single well-defined collection of software. Instead Unix is a generic term for a number of similar collections of software that differ depending on the supplier of the OS software. &lt;/p&gt;

&lt;p&gt;The Unix OS is made up of the &lt;strong&gt;kernel&lt;/strong&gt; and &lt;strong&gt;shell&lt;/strong&gt;. The kernel is the main control program that is responsible for machine level operations of the system and the connection to hardware. The shell is a command interpreter that can communicate with any part of the system except the hardware. The shell parses, checks, translates and etc., inputs that are then passed to the kernel for execution.&lt;/p&gt;

&lt;p&gt;Technically, &lt;strong&gt;utilities&lt;/strong&gt; are not part of the OS. They
are a collection of basic software tools that are often distributed
with the Unix OS. They make the operating system more immediately
useful to the user by simplifying the tasks of communications,
programming, editing text and more.&lt;/p&gt;

&lt;h2&gt;History&lt;/h2&gt;

&lt;p&gt;Unix was originally developed in 1969 by a group of employees at AT&amp;amp;T Bell Laboratories. In 1973, Unix was rewritten in C, a computer programming language also developed at Bell Labs. This allowed Unix to be installed and run on different computers which had a C compiler. Since then there has been a large adoptions of Unix and Unix-like operating system such as Berkley Standard Distribution (BSD), Sun Microsystems, Mac OS X and Linux. These &amp;#8220;flavors&amp;#8221; of Unix are all very similar but all use a slightly different dialect, like slang speech for the same common tongue.&lt;/p&gt;

&lt;h2&gt;The Shell&lt;/h2&gt;

&lt;p&gt;In Unix, to get things done you need to type commands that a shell can interpret. A shell can read command lines from a terminal or from a file (called a shell script or program). Because the shell is a program, scripting is possible without using a programming language. Any command that can be typed after a &lt;strong&gt;prompt&lt;/strong&gt; can be used in a shell.&lt;/p&gt;

&lt;h2&gt;Basic Commands&lt;/h2&gt;

&lt;p&gt;Unix is a command-driven OS. Below is a list of basic commands that can get you started using Linux and other UNIX variation. All these commands will work on the Mac OS X, BSD, Linux and on windows using Cygwin. If you are using Mac OS X, you can open the Terminal located at /Applications/Utilities/Terminal and execute the commands after the &lt;strong&gt;Bash&lt;/strong&gt; shell prompt ($).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Info about paths and root&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Unix separates file and directory paths with the forward slash &amp;#8220;/&amp;#8221;. Also, a path that starts with the forward slash, means it is an absolute path from the &amp;#8220;root&amp;#8221; directory. If a path does not lead with the forward slash, then it is a relative path from the current directory.&lt;/p&gt;

&lt;h2&gt;Examples:&lt;/h2&gt;

&lt;pre&gt;&lt;code class="language-unix"&gt;/         # "root" directory
/usr      # directory usr (sub-directory of / "root" directory)
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;strong&gt;Moving through the file system&lt;/strong&gt;&lt;/p&gt;

&lt;pre&gt;&lt;code class="language-unix"&gt;pwd                 # shows the path of the current directory
cd                  # change the current directory to you HOME directory
cd /apps            # change to the "apps" sub-directory of "root"
cd ..               # changes the current directory to it's parent
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;strong&gt;List directory contents&lt;/strong&gt;&lt;/p&gt;

&lt;pre&gt;&lt;code class="language-unix"&gt;ls         # list the current directories contents
ls -l      # list in long (detailed) format
ls -a      # list and including hidden files
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;strong&gt;Copying, renaming and moving files&lt;/strong&gt;&lt;/p&gt;

&lt;pre&gt;&lt;code class="language-unix"&gt;cp file1 file2            # copy "file1" and name the copy "file2"
mv file1 /applications    # move "file1" to the applications directory
mv file1 newname          # rename "file1" to "newname"
mkdir dir1                # make a new directory named "dir1"
rm file1                  # remove "file1"
rmdir dir1                # remove the empty directory "dir1"
rm -r dir1                # recursively remove "dir1" and it's content
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;strong&gt;Changing file permissions and attributes&lt;/strong&gt;&lt;/p&gt;

&lt;pre&gt;&lt;code class="language-unix"&gt;chmod 775 file             # change permissions of file to be read(r),
                           # write(w) and execute(x) (rwx) for the
                           # owner and rx for everyone else.
chgrp user file            # make the file belong to the group user
chown username file        # make username the owner of file
chown -R username dir      # make username the owner of dir
                           # and everything in its directory tree
&lt;/code&gt;&lt;/pre&gt;</content>
    <summary type="html">Basic introduction to Unix and the command line.</summary>
  </entry>
  <entry>
    <id>tag:urbanfaubion.com,2011-03-01:/articles/2011/03/01/Community_Core_Vision.html</id>
    <title type="html">DIY Multi-Touch with CCV</title>
    <published>2011-03-01T08:00:00Z</published>
    <updated>2011-03-01T08:00:00Z</updated>
    <link rel="alternate" href="http://urbanfaubion.com/articles/2011/03/01/Community_Core_Vision.html"/>
    <content type="html">&lt;p&gt;If you've every wanted to get into multi-touch programming, &lt;a href="http://ccv.nuigroup.com/"&gt;Community Core Vision&lt;/a&gt; (CCV) by the &lt;a href="http://nuicode.com/"&gt;NUI Group&lt;/a&gt; is a great way to get started. It's an open source, cross-platform solution for computer vision that supports several multi-touch lighting techniques (&lt;a href="http://wiki.nuigroup.com/FTIR"&gt;FTIR&lt;/a&gt;, &lt;a href="http://wiki.nuigroup.com/Diffused_Illumination"&gt;DI&lt;/a&gt;, &lt;a href="http://wiki.nuigroup.com/Diffused_Surface_Illumination"&gt;DSI&lt;/a&gt;, and &lt;a href="http://wiki.nuigroup.com/Laser_Light_Plane_Illumination"&gt;LLP&lt;/a&gt;). &lt;/p&gt;

&lt;img src="/assets/images/uploads/2011-02-28-CCV_GUI.png" alt="CCV GUI" width="610" height="386" /&gt;

&lt;p&gt;It's very easy to get started using CCV and build a simple Front DI multi-touch device for prototyping. All you need is a cardboard box, picture frame and PS3 Eye Camera. Below is the video tutorial I used that explains how to build your own.&lt;/p&gt;

&lt;iframe title="YouTube video player" width="609" height="486" src="http://www.youtube.com/embed/pQpr3W-YmcQ" frameborder="0" &gt;&lt;/iframe&gt;

&lt;p&gt;Once you have your hardware set up you can &lt;a href="http://ccv.nuigroup.com/#downloads"&gt;download CCV&lt;/a&gt; and start playing with the different Flash Example Clients available.&lt;/p&gt;</content>
    <summary type="html">If you've every wanted to get into multi-touch programming, Community Core Vision (CCV) by the NUI Group is a great way to get started.</summary>
  </entry>
  <entry>
    <id>tag:urbanfaubion.com,2011-02-15:/articles/2011/02/15/drunk_history.html</id>
    <title type="html">Drunk History</title>
    <published>2011-02-15T08:00:00Z</published>
    <updated>2011-02-15T08:00:00Z</updated>
    <link rel="alternate" href="http://urbanfaubion.com/articles/2011/02/15/drunk_history.html"/>
    <content type="html">&lt;p&gt;&lt;a href="http://www.funnyordie.com/drunkhistory"&gt;Drunk History&lt;/a&gt; is a series of online videos featuring drunk people trying to narrate specific historical events as they remember them. Each story is a mix of the inebriated historian and a re-enactment by a changing cast of comedians such as Will Ferrell, John C. Reilly and more.&lt;/p&gt;

&lt;p&gt;My favorite episode below, &lt;a href="http://www.youtube.com/watch?v=AwI1Xpwhyi8"&gt;Drunk History Vol. 6 - Tesla&lt;/a&gt;, better known as, &amp;ldquo;the electric Jesus&amp;rdquo;.&lt;/p&gt;

&lt;iframe title="YouTube video player" width="609" height="373" src="http://www.youtube.com/embed/AwI1Xpwhyi8" frameborder="0"&gt; &lt;/iframe&gt;</content>
    <summary type="html">Drunk History is a series of online videos featuring drunk people trying to narrate specific historical events as they remember them.</summary>
  </entry>
</feed>

