<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>Elite Frontier - Home</title>
  <id>tag:www.elitefrontier.com,2012:mephisto/</id>
  <generator uri="http://mephistoblog.com" version="0.8.0">Mephisto Drax</generator>
  <link href="http://www.elitefrontier.com/feed/atom.xml" rel="self" type="application/atom+xml"/>
  <link href="http://www.elitefrontier.com/" rel="alternate" type="text/html"/>
  <updated>2012-01-10T23:26:57Z</updated>
  <entry xml:base="http://www.elitefrontier.com/">
    <author>
      <name>rdegraci</name>
    </author>
    <id>tag:www.elitefrontier.com,2012-01-10:1232</id>
    <published>2012-01-10T23:23:00Z</published>
    <updated>2012-01-10T23:26:57Z</updated>
    <link href="http://www.elitefrontier.com/2012/1/10/homebrew-and-macports" rel="alternate" type="text/html"/>
    <title>Homebrew and Macports</title>
<content type="html">
            &lt;p&gt;1) Safely install Homebrew into into its own directory (downloaded bottles will be downloaded into here)
&lt;pre&gt;
cd ~
mkdir ~/Developer
cd ~/Developer
git clone https://github.com/mxcl/homebrew.git
&lt;/pre&gt;

&lt;p&gt;2) To set up the symlinks without having to chown /usr/local, just use chmod o+w
&lt;pre&gt;
sudo chmod -R o+w /usr/local
&lt;/pre&gt;

&lt;p&gt;3) Symlink the Cellar from /usr/local to ~/Developer/homebrew. This is necessary so that installed bottles can reference Cellar correctly.
&lt;pre&gt;
ln -s ~/Developer/homebrew/Cellar /usr/local/Cellar
&lt;/pre&gt;

&lt;p&gt;4) Install the bottle, in this case I used erlang. Be aware that Homebrew will still create symlinks into /usr/local
&lt;pre&gt;
brew install erlang
&lt;/pre&gt;

&lt;p&gt;5) Now that the bottle is installed, change the permissions on /usr/local back using chmod o-w
&lt;pre&gt;
sudo chmod -R o-w /usr/local
&lt;/pre&gt;

&lt;p&gt;Note: When installing more bottles, just do step 2, then step 4, and finally step 5.
          </content>  </entry>
  <entry xml:base="http://www.elitefrontier.com/">
    <author>
      <name>rdegraci</name>
    </author>
    <id>tag:www.elitefrontier.com,2012-01-04:1216</id>
    <published>2012-01-04T14:58:00Z</published>
    <updated>2012-01-04T15:09:14Z</updated>
    <link href="http://www.elitefrontier.com/2012/1/4/git-merge-two-repos" rel="alternate" type="text/html"/>
    <title>git merge two repos</title>
<content type="html">
            &lt;p&gt;To merge two different repos and keep histories is very easy with git:
&lt;p&gt; First create a branch for the other project
&lt;pre&gt;
git checkout master
git checkout -b other-project-branch
&lt;/pre&gt;

&lt;p&gt;Then add a remote that points to the other project
&lt;pre&gt;
git remote add remote-repo gitosis@myserver.com:otherproject.git
&lt;/pre&gt;

&lt;p&gt;Finally, fetch and merge 
&lt;pre&gt;
git fetch remote-repo
git merge remote-repo/other-project-branch #SEE NOTE BELOW!
&lt;/pre&gt;

&lt;p&gt;&lt;span class=&quot;caps&quot;&gt;NOTE&lt;/span&gt;: If you know that the other project will cause a merge conflict &lt;em&gt;and&lt;/em&gt; you want to force the merge then use:
&lt;pre&gt;
git merge -s recursive -X theirs remote-repo/other-project-branch
&lt;/pre&gt;
          </content>  </entry>
  <entry xml:base="http://www.elitefrontier.com/">
    <author>
      <name>rdegraci</name>
    </author>
    <id>tag:www.elitefrontier.com,2012-01-04:1215</id>
    <published>2012-01-04T14:54:00Z</published>
    <updated>2012-01-04T15:12:06Z</updated>
    <link href="http://www.elitefrontier.com/2012/1/4/git-merge-overwrite" rel="alternate" type="text/html"/>
    <title>git merge force overwrite</title>
<content type="html">
            &lt;p&gt;Sometimes, it is necessary to force merge another branch that is known to be the latest source code.  This is especially the case where certain files are &lt;em&gt;huge&lt;/em&gt; textual, but non-human parseable and therefore a normal git merge is not feasible.
&lt;p&gt;Git merge the branch and prefer the changes within the branch:
&lt;pre&gt;
git merge -s recursive -X theirs branch
&lt;/pre&gt;
          </content>  </entry>
  <entry xml:base="http://www.elitefrontier.com/">
    <author>
      <name>rdegraci</name>
    </author>
    <id>tag:www.elitefrontier.com,2011-09-12:931</id>
    <published>2011-09-12T15:20:00Z</published>
    <updated>2011-10-28T03:34:55Z</updated>
    <link href="http://www.elitefrontier.com/2011/9/12/rad-0-2-2-gem-list" rel="alternate" type="text/html"/>
    <title>RAD 0.3.1 and Arduino Duemilanove</title>
<content type="html">
            &lt;p&gt;&lt;span class=&quot;caps&quot;&gt;RAD&lt;/span&gt; is a framework for programming the Arduino physcial computing platform using Ruby. &lt;span class=&quot;caps&quot;&gt;RAD&lt;/span&gt; converts Ruby scripts written using a set of Rails-like conventions and helpers into C source code which can be compiled and run on the Arduino microcontroller. It also provides a set of Rake tasks for automating the compilation and upload process.

&lt;h2&gt;Gem List&lt;/h2&gt;
&lt;p&gt;Please note that Rad 0.3.0 requires ParseTree version 2.2.0, since Rad 0.3.1 is not fully compatible with ParseTree v3.0.x 

&lt;pre&gt;
hoe (2.12.3)
ParseTree (2.2.0) 
rad (0.2.2)
rake (0.9.2)
RubyInline (3.10.0)
RubyToC (1.0.0.5)
sexp_processor (3.0.6)
ZenTest (4.6.2)
&lt;/pre&gt;

&lt;h2&gt;Source&lt;/h2&gt;
&lt;p&gt;Original Source Code:
&lt;a href=&quot;https://github.com/atduskgreg/rad&quot;&gt;atduskgreg / rad&lt;/a&gt;

&lt;p&gt;My Fork (rake 0.9.2+ with rspec 2.6.0)
&lt;a href=&quot;https://github.com/rdegraci/rad&quot;&gt;rdegraci / rad&lt;/a&gt;

&lt;h2&gt;&lt;span class=&quot;caps&quot;&gt;OSX&lt;/span&gt; Instructions&lt;/h2&gt;
&lt;p&gt; Download and install the latest &lt;a href=&quot;http://arduino.cc/en/Guide/MacOSX&quot;&gt;&lt;span class=&quot;caps&quot;&gt;OSX&lt;/span&gt; Arduino Dev Environment &lt;/a&gt;
&lt;p&gt; Download and install the &lt;a href=&quot;http://files.arduino.cc/downloads/arduino-0012-mac.zip&quot;&gt;arduino-012&lt;/a&gt; and install into your /Applications folder
&lt;pre&gt;
rvm gemset create rad031dev
gem install rake -v 0.9.2
git clone git://github.com/rdegraci/rad.git
rake install_gem --trace
...
gem uninstall ParseTree
gem install ParseTree -v 2.2.0
rake #run the tests
rake install_gem --trace #install the gem locally
mkdir ~/testing
cd ~/testing
rad BasicBlink
cd BasicBlink
vi BasicBlink.rb #edit the file to match the sample code below
rake make:upload --trace
&lt;/pre&gt;

&lt;h2&gt;Sample Code&lt;/h2&gt;
&lt;p&gt;Be sure you&#8217;ve edited BasicBlink.rb and inserted the sample code below:
&lt;pre&gt;
#
# NOTE: The class is named Basicblink with a lowercase 'b' in the blink :)
#
class Basicblink &amp;lt; ArduinoSketch
  # hello world (uncomment to run)

  output_pin 13, :as =&amp;gt; :led

  def loop
    blink led, 100 
    x = 4
  end
end
&lt;/pre&gt;

&lt;p&gt;

          </content>  </entry>
  <entry xml:base="http://www.elitefrontier.com/">
    <author>
      <name>rdegraci</name>
    </author>
    <id>tag:www.elitefrontier.com,2011-08-17:866</id>
    <published>2011-08-17T00:42:00Z</published>
    <updated>2011-10-28T03:33:55Z</updated>
    <link href="http://www.elitefrontier.com/2011/8/17/gource-0-35-and-osx-snow-leopard" rel="alternate" type="text/html"/>
    <title>Gource 0.35 and OSX Snow Leopard</title>
<content type="html">
            &lt;p&gt;Software projects are displayed by Gource as an animated tree with the root directory of the project at its centre. Directories appear as branches with files as leaves. Developers can be seen working on the tree at the times they contributed to the project.

&lt;pre&gt;
sudo port install gource
sudo port install ffmpeg
&lt;/pre&gt;

&lt;p&gt;Commandline to output to a .mp4 video file
&lt;br&gt;
&lt;code&gt;
 gource --hide filenames --file-idle-time 0 --seconds-per-day 0.25 -1280x720 -o - | ffmpeg -y -b 10000K -r 60 -f image2pipe -vcodec ppm -i - -vcodec libx264 -fpre /opt/local/share/ffmpeg/libx264-lossless_slow.ffpreset  -threads 0 -bf 0 ~/Desktop/gource.x264.mp4
&lt;/code&gt;


          </content>  </entry>
  <entry xml:base="http://www.elitefrontier.com/">
    <author>
      <name>rdegraci</name>
    </author>
    <id>tag:www.elitefrontier.com,2011-08-16:865</id>
    <published>2011-08-16T17:20:00Z</published>
    <updated>2011-08-16T17:21:18Z</updated>
    <link href="http://www.elitefrontier.com/2011/8/16/lan-device-ip-lookup-osx" rel="alternate" type="text/html"/>
    <title>LAN device IP lookup OSX</title>
<content type="html">
            &lt;p&gt;If the device is viewable in the Finder then you should be able to do the following:&lt;/p&gt;


&lt;pre&gt;
ping devicename.local.
&lt;/pre&gt;

	&lt;p&gt;For example, let&#8217;s say you have a Network Attached Storage device named, nas&lt;/p&gt;


&lt;pre&gt;
MyWorkstation:~ rdegraci$ ping nas.local.
PING nas.local (192.168.1.250): 56 data bytes
64 bytes from 192.168.1.250: icmp_seq=0 ttl=64 time=1.067 ms
64 bytes from 192.168.1.250: icmp_seq=1 ttl=64 time=7.846 ms
&lt;/pre&gt;
          </content>  </entry>
  <entry xml:base="http://www.elitefrontier.com/">
    <author>
      <name>rdegraci</name>
    </author>
    <id>tag:www.elitefrontier.com,2011-05-01:519</id>
    <published>2011-05-01T20:39:00Z</published>
    <updated>2011-10-28T03:36:24Z</updated>
    <link href="http://www.elitefrontier.com/2011/5/1/osx-memcached" rel="alternate" type="text/html"/>
    <title>OSX memcached</title>
<content type="html">
            &lt;p&gt;Easy installation and startup via Mac Ports
&lt;pre&gt;
sudo port install memcached
memcached -d -m 24 -p 11211
&lt;/pre&gt;

&lt;p&gt;

          </content>  </entry>
  <entry xml:base="http://www.elitefrontier.com/">
    <author>
      <name>rdegraci</name>
    </author>
    <id>tag:www.elitefrontier.com,2011-04-24:507</id>
    <published>2011-04-24T17:33:00Z</published>
    <updated>2011-04-24T17:40:03Z</updated>
    <link href="http://www.elitefrontier.com/2011/4/24/iphone-tracking" rel="alternate" type="text/html"/>
    <title>iPhone Tracking</title>
<content type="html">
            &lt;p&gt;Much has been written about the secret, so called tracking information, that is stored by the iPhone.  But actually the technical reason is not clearly written by the bloggers and pundits.  Here is my explanation:

&lt;p&gt;It&#8217;s simple: iPhone has a battery. Using &lt;span class=&quot;caps&quot;&gt;GPS&lt;/span&gt; radio consumes the battery. Using Cell Tower locations and calculating approximate location consumes less battery, giving you more time to play MP3s or listen to iTunes or watch youTube; whatever.

&lt;p&gt;Apple&#8217;s solution to saving the battery: cache as much cell tower location as possible, when the iPhone is used, so that when it comes time for an App to get location, it can triangulate the position without have to use up your battery by activating your &lt;span class=&quot;caps&quot;&gt;GPS&lt;/span&gt; radio when it can just calculate via triangulation (if the App requests to force use the &lt;span class=&quot;caps&quot;&gt;GPS&lt;/span&gt; radio, then the &lt;span class=&quot;caps&quot;&gt;GPS&lt;/span&gt; radio is used).

&lt;p&gt;If Apple limited the cache to only let&#8217;s say 3 days, but the end-user travels a lot to-from the same set of cities (let&#8217;s say NY and Jersey) , the end result is that the end-user would be using up more battery; she would be freshing the cache with data it already had 4 days earlier and you&#8217;d be using the &lt;span class=&quot;caps&quot;&gt;GPS&lt;/span&gt; radio to request information that the cached info could have answered via triangulation easily. 

&lt;p&gt;Apple could sidestep this whole issue by: Letting the User choose to keep the cache for: 0 hours, 24 hours, 72 hours, 1 week, 1 month, 6 months, or 1 year.  And let the User know that the shorter the cache purge rate, the more battery will be used since the iPhone would have to rely more on the &lt;span class=&quot;caps&quot;&gt;GPS&lt;/span&gt; radio instead of the cache.

&lt;p&gt;My opinion, Apple decided it was too technical an issue for the end-user to decide and just decided to go with saving battery life by keeping the cache as long as possible.
          </content>  </entry>
  <entry xml:base="http://www.elitefrontier.com/">
    <author>
      <name>rdegraci</name>
    </author>
    <id>tag:www.elitefrontier.com,2011-04-05:459</id>
    <published>2011-04-05T19:15:00Z</published>
    <updated>2011-10-28T03:42:05Z</updated>
    <link href="http://www.elitefrontier.com/2011/4/5/git-svn-workflow" rel="alternate" type="text/html"/>
    <title>git-svn workflow</title>
<content type="html">
            &lt;h3&gt;In this article, we will discuss the workflow for using git-svn.  We will use a local merge branch named &#8216;local-staging&#8217; as the branch into which we will merge our feature branches and from which to dcommit to the remote svn repository.  The &#8216;master&#8217; branch will always track the remote svn repository.  This is just a description of what works for me, but should not be considered best-practice.&lt;/h3&gt;

&lt;p&gt;1) Clone the svn repository
&lt;pre&gt;
git svn clone -s https://server/svn/product/
&lt;/pre&gt;

&lt;p&gt;2) Create a local-staging branch.  The master branch will always track the svn repository, therefore we do not merge anything into the local master. The local-staging branch is used as the trunk into which all feature branches are merged into, before dcommitting to the remote svn repository master.
&lt;pre&gt;
git checkout master
git branch local-staging
git checkout local-staging
&lt;/pre&gt;

&lt;p&gt;3) Let&#8217;s say we want to create feature branch. We update the local-staging branch and create a local feature branch
&lt;pre&gt;
git checkout local-staging
git svn rebase   #update from remote svn
git branch my-feature
git checkout my-feature
&lt;/pre&gt;

&lt;p&gt;4) Let&#8217;s say that a co-developer has updated the remote svn repository and we need to update our local feature-branch.  We use the rebase command and it will roll-back your code changes, then download the latest changes from the remote repository, then roll-forward the code by re-applying your code changes.
&lt;pre&gt;
git checkout my-feature
git svn rebase
&lt;/pre&gt;

&lt;p&gt;5) Let&#8217;s say we write code within the local feature branch and we wish to commit to the local feature branch.  We then create a commit on the local feature branch:
&lt;pre&gt;
git checkout my-feature
hack hack hack
git add .
git commit -m &quot;my commit message&quot; 
&lt;/pre&gt;

&lt;p&gt;6) When the local feature branch is complete, merge it into the local-staging branch. Then create a commit and then push to the remote svn repository master. Be sure to use the&#8212;squash to squash all the commits of the local feature branch into a single commit
&lt;pre&gt;
git checkout local-staging
git svn rebase
git merge --squash -m &quot;merge message&quot;  my-feature 
git commit -m &quot;my commit message&quot; 
git svn dcommit 
git -d my-feature   #highly suggested
&lt;/pre&gt;

&lt;p&gt;&lt;span class=&quot;caps&quot;&gt;NOTE&lt;/span&gt;: we delete the my-feature branch since it has been squashed and merged into local-staging and dcommitted to the remote svn repository.

&lt;p&gt;If you don&#8217;t delete my-feature, then &lt;span class=&quot;caps&quot;&gt;REMEMBER&lt;/span&gt;:   A local feature branch that has been squashed into the local merge branch and dcommitted, must be considered frozen!  If you need to update/change a local feature-branch that has been merged/squashed, &lt;span class=&quot;caps&quot;&gt;DON&lt;/span&gt;&#8217;T; instead create a &lt;em&gt;new&lt;/em&gt; local feature-branch from the local-staging branch.

&lt;p&gt;7) Update the local master branch with the latest changes from the remote svn repository
&lt;pre&gt;
git checkout master
git svn rebase
&lt;/pre&gt;

&lt;p&gt;When you have completed steps 6 and 7 and you are ready to create a new feature branch, proceed back to step 3.

&lt;p&gt;

          </content>  </entry>
  <entry xml:base="http://www.elitefrontier.com/">
    <author>
      <name>rdegraci</name>
    </author>
    <id>tag:www.elitefrontier.com,2011-04-03:448</id>
    <published>2011-04-03T17:19:00Z</published>
    <updated>2011-10-28T03:43:11Z</updated>
    <link href="http://www.elitefrontier.com/2011/4/3/postgis-rails-ios" rel="alternate" type="text/html"/>
    <title>PostGIS + Rails + iOS</title>
<content type="html">
            &lt;p&gt;PostGIS adds support for geographic objects to the PostgreSQL object-relational database. In effect, PostGIS &#8220;spatially enables&#8221; the PostgreSQL server, allowing it to be used as a backend spatial database for geographic information systems (GIS), much like &lt;span class=&quot;caps&quot;&gt;ESRI&lt;/span&gt;&#8217;s &lt;span class=&quot;caps&quot;&gt;SDE&lt;/span&gt; or Oracle&#8217;s Spatial extension.

&lt;p&gt;I spent a few hours testing a PostGIS server setup. I&#8217;ve determined how to execute the stored-procedure queries against the PostGIS server from Rails. 

&lt;p&gt;Details to follow&#8230;

&lt;p&gt;

          </content>  </entry>
  <entry xml:base="http://www.elitefrontier.com/">
    <author>
      <name>rdegraci</name>
    </author>
    <id>tag:www.elitefrontier.com,2011-04-01:440</id>
    <published>2011-04-01T15:14:00Z</published>
    <updated>2011-04-01T15:17:01Z</updated>
    <link href="http://www.elitefrontier.com/2011/4/1/debian-postgresql-superuser" rel="alternate" type="text/html"/>
    <title>Debian PostgreSQL Superuser</title>
<content type="html">
            &lt;p&gt;PostgreSQL creates a postgres user for you. It&#8217;s simpler to create a new database user as superuser, for example using your user_name

&lt;pre&gt;
su - postgresql
createuser --superuser your_username -U postgres
&lt;/pre&gt;

&lt;p&gt;Now you can create your database
&lt;pre&gt;
createdb my_database
&lt;/pre&gt;
          </content>  </entry>
  <entry xml:base="http://www.elitefrontier.com/">
    <author>
      <name>rdegraci</name>
    </author>
    <id>tag:www.elitefrontier.com,2011-04-01:439</id>
    <published>2011-04-01T15:08:00Z</published>
    <updated>2011-04-01T15:14:19Z</updated>
    <link href="http://www.elitefrontier.com/2011/4/1/installing-postgresql-procedural-languages" rel="alternate" type="text/html"/>
    <title>Installing PostgreSQL Procedural Languages</title>
<content type="html">
            &lt;p&gt;According to PostgreSQL docs, &#8220;A procedural language must be &#8220;installed&#8221; into each database where it is to be used. But procedural languages installed in the database template1 are automatically available in all subsequently created databases. So the database administrator can decide which languages are available in which databases and can make some languages available by default if he chooses.&#8221; 

&lt;pre&gt;
su - postgres
createlang plpgsql template1
&lt;/pre&gt;
          </content>  </entry>
  <entry xml:base="http://www.elitefrontier.com/">
    <author>
      <name>rdegraci</name>
    </author>
    <id>tag:www.elitefrontier.com,2011-03-31:433</id>
    <published>2011-03-31T00:19:00Z</published>
    <updated>2011-10-28T03:44:59Z</updated>
    <link href="http://www.elitefrontier.com/2011/3/31/jruby-1-6-0-and-updating-rubygems" rel="alternate" type="text/html"/>
    <title>jRuby 1.6.0 and Updating Rubygems</title>
<content type="html">
            &lt;p&gt;To upgrade from Rubygems v1.5.1 that comes with jRuby 1.6.0 simply do the following:
&lt;pre&gt;
gem install rubygems-update -v 1.5.2
update_rubygems
&lt;/pre&gt;

&lt;p&gt;Once you are on Rubygems 1.5.2 then you can update using:
&lt;pre&gt;
gem update --system -v 1.x.x
&lt;/pre&gt;

&lt;p&gt;If you need to downgrade:
&lt;pre&gt;
gem install rubygems-update -v 1.5.1
gem uninstall rubygems-update -v 1.5.2
update_rubygems
&lt;/pre&gt;

&lt;p&gt;

          </content>  </entry>
  <entry xml:base="http://www.elitefrontier.com/">
    <author>
      <name>rdegraci</name>
    </author>
    <id>tag:www.elitefrontier.com,2011-02-14:361</id>
    <published>2011-02-14T11:06:00Z</published>
    <updated>2011-10-28T03:44:18Z</updated>
    <link href="http://www.elitefrontier.com/2011/2/14/debian-hudson-postgres" rel="alternate" type="text/html"/>
    <title>Debian-6.0 Hudson-1.396 Postgres-8.4.7 Rails-2.3.8</title>
<content type="html">
            &lt;p&gt;Hudson is a good CI server. The configuration and set up under Debian has some challenges because the Hudson server runs as hudson:nogroup.  You have to setup permissions on the Postgres server correctly.

&lt;p&gt;Luckily, PostgreSQL can be installed as part of the Debian installation, however to get it working with Rails you will need to install libpq-dev

&lt;pre&gt;
apt-get install libpq-dev
&lt;/pre&gt;

&lt;p&gt;Create the hudson postgresql acct as super user. This is necessary since postgres will check the ident of the account trying to create/modify the databases and simply setting that information in the database.yml file is not enough. Hudson runs, under Debian, as hudson:nogroup

&lt;pre&gt;
createuser --superuser hudson -U postgres
&lt;/pre&gt;

&lt;p&gt;By default the password will be empty, so log into psql and set the password of the hudson user. 

&lt;pre&gt;
/usr/bin/psql
ALTER ROLE hudson WITH ENCRYPTED PASSWORD 'hudsonpw';
&lt;/pre&gt;

&lt;p&gt;Finally in your database.yml file use:
&lt;pre&gt;
username: hudson
password: hudsonpw
&lt;/pre&gt;

&lt;p&gt;Now you can run rake db:create etc  and you should be able to build the project using Hudson.

&lt;p&gt;

          </content>  </entry>
  <entry xml:base="http://www.elitefrontier.com/">
    <author>
      <name>rdegraci</name>
    </author>
    <id>tag:www.elitefrontier.com,2011-02-01:335</id>
    <published>2011-02-01T14:55:00Z</published>
    <updated>2011-08-18T03:57:23Z</updated>
    <link href="http://www.elitefrontier.com/2011/2/1/osx-10-6-0-and-tomcat6-and-hudson" rel="alternate" type="text/html"/>
    <title>OSX 10.6.0 and Tomcat6 and Hudson</title>
<content type="html">
            &lt;p&gt;Install Tomcat via Ports

&lt;pre&gt;
sudo port install tomcat6
sudo touch /opt/local/share/java/tomcat6/conf/local.env
&lt;/pre&gt;

&lt;p&gt;Create an environment file

&lt;pre&gt;
sudo vi /opt/local/share/java/tomcat6/conf/local.env 
&lt;/pre&gt;

&lt;p&gt;and adjust the memory limits by editing the local.env

&lt;pre&gt;
export JAVA_JVM_VERSION=CurrentJDK
export JAVA_OPTS=&quot;-Xmx3000M -Xms3000M -Djava.awt.headless=true -Duser.timezone=UTC&quot; 
&lt;/pre&gt;

&lt;p&gt;Add Hudson as a servlet

&lt;pre&gt;
cd /opt/local/share/java/tomcat6/webapps
wget http://hudson-ci.org/latest/hudson.war
chown _www:_www hudson.war
&lt;/pre&gt;

&lt;p&gt;Startup Tomcat

&lt;pre&gt;
sudo /opt/local/share/java/tomcat6/bin/startup.sh
&lt;/pre&gt;

&lt;p&gt;Use your webbrowser to log into http://localhost:8080/hudson

&lt;p&gt;The Hudson server runs as root, so if you want to push to a remote git repository then you&#8217;ll need to create ssl credentials for root:
&lt;pre&gt;
sudo bash
su -
ssh-keygen -t rsa
&lt;/pre&gt;
&lt;p&gt;No need to set a passphrase
          </content>  </entry>
</feed>

