<?xml version="1.0" encoding="iso-8859-1"?>
<?xml-stylesheet href="http://nfocipher.com/styles/rss.css" type="text/css"?>
<rdf:RDF 
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 
  xmlns="http://my.netscape.com/rdf/simple/0.9/"
>

 <channel>
  <title>Coding on a Budget</title>
  <link>http://nfocipher.com/index.php?blogId=1</link>
  <description>&lt;p&gt;Coding from a Small Business Point of View..&lt;/p&gt;
</description>
 </channel>
    <item>
   <title>48 Hours with Joel and Jeff..</title>
   <description>&lt;meta content=&quot;text/html; charset=utf-8&quot; http-equiv=&quot;CONTENT-TYPE&quot; /&gt;
&lt;title&gt;&lt;/title&gt;
&lt;meta content=&quot;OpenOffice.org 2.2  (Linux)&quot; name=&quot;GENERATOR&quot; /&gt;
&lt;meta content=&quot;20090412;4272300&quot; name=&quot;CREATED&quot; /&gt;
&lt;meta content=&quot;20090412;8451700&quot; name=&quot;CHANGED&quot; /&gt;
&lt;style type=&quot;text/css&quot;&gt;

&lt;/style&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
&lt;a href=&quot;http://www.joelonsoftware.com/AboutMe.html&quot; target=&quot;_blank&quot;&gt;Joel Spolsky&lt;/a&gt; of &lt;a href=&quot;http://fogcreek.com/&quot; target=&quot;_blank&quot;&gt;FogCreek Software&lt;/a&gt;
and &lt;a href=&quot;http://www.codinghorror.com/blog/archives/000021.html&quot; target=&quot;_blank&quot;&gt;Jeff Atwood&lt;/a&gt; of nothing
have joined forces to push out &lt;a href=&quot;http://stackoverflow.com/faq&quot; target=&quot;_blank&quot;&gt;StackOverflow&lt;/a&gt;. To generate hype and the all
important critical mass, they record a &lt;a href=&quot;http://blog.stackoverflow.com/category/podcasts/&quot; target=&quot;_blank&quot;&gt;weekly podcast&lt;/a&gt;. There are now 48
one hour long podcasts in the wild and I&#039;ve listened to all of them
while driving to &lt;a href=&quot;http://www.sweetpeppersdeli.com/&quot; target=&quot;_blank&quot;&gt;Sweet Peppers&lt;/a&gt; so
I can work on RoR-izing &lt;a href=&quot;http://fmip.org&quot; target=&quot;_blank&quot;&gt;FollowMeIP&lt;/a&gt;.
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
&lt;br /&gt;
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
At some point a conversation was had
about how cool it would be to have a website that would cater to the
asking and answering of programming questions - Stackoverflow was
born. Atwood is project manager over a couple of .net programmers and
Joel simply tells his readers about how cool it is. It&#039;s a great
situation really, Atwood does all the work, spends the money, takes
the risks and Joel sits back and waits for success or failure. Either
way, Joel will have tons of new material to write about. 
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
&lt;br /&gt;
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
Atwood seems to be in control of the
technology stack and server infrastructure. It&#039;s rather amusing at
times to listen to his rationale on why he did certain things. 
Stackoverflow is using ASP.NET MVC, microsoft&#039;s answer to ruby on
rails. He opted to use this stack which was in beta over the actual
RoR stack. He&#039;s definitely a microsoft centric developer and every
time he denies it, take a &lt;a href=&quot;http://nfocipher.com/index.php?op=ViewArticle&amp;amp;articleId=5&amp;amp;blogId=1&quot; target=&quot;_blank&quot;&gt;drink&lt;/a&gt;. It&#039;s also amusing listening to hardware issues he&#039;s having trying to
run his own server. In podcast 48, Atwood said software raid is better
than hardware raid. Having dealt with both - extensively - software
raid is one big slow steaming pile of crap. With drive sizes in the
2tb now, a nice hardware pci-e raid 1 solution is what you want. It&#039;s
clear Atwood hasn&#039;t had much experience with hardware and really
should move his project to some sort of cloud before he runs out of
money playing with different raid settings. 
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
&lt;br /&gt;
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
After listening to 48 hours of rambling
a few things become clear:
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
The only reason to listen is to hear
what Joel says.
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
Atwood mostly just says &amp;quot;right&amp;quot;
or &amp;quot;I agree&amp;quot; randomly.
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
Joel is not a Linux fan.
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
Atwood doesn&#039;t understand FOSS.
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
Atwood hasn&#039;t &amp;quot;been around&amp;quot;
as much as he&#039;d like to think he has.
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
Atwood should stick to writing.
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
The stackoverflow podcast is no longer
about stackoverflow.
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
&lt;br /&gt;
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
So how is stackoverflow doing? Fine I
suppose. People seem to be using it, but it doesn&#039;t matter because
Atwood made one fatal mistake - not open sourcing it. After the
initial release, people started asking the same question: can I spawn
a stackoverflow for xzy? Why not a stackoverflow for automotive
questions? Atwood has repeatedly said the site just can&#039;t be switched
from programming questions to some other type of question. That means
poor design or lack of vision - most likely a little of both. If
you&#039;ve been in computers your entire life it&#039;s rather hard to see
value in anything else. They missed the boat and the flood gates are
about to be opened. 
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
&lt;a href=&quot;http://www.cnprog.com/&quot; target=&quot;_blank&quot;&gt;CNProg.com&lt;/a&gt; has
replicated stackoverflow and &lt;a href=&quot;http://code.google.com/p/cnprog/&quot; target=&quot;_blank&quot;&gt;released it&lt;/a&gt; under the apache license. The
motivation was to enable Chinese programmers the ability to use a
site like stackoverflow which doesn&#039;t support anything but &lt;a href=&quot;http://www.codinghorror.com/blog/archives/001248.html&quot; target=&quot;_blank&quot;&gt;English&lt;/a&gt;. Once again
the podcast provided a smile on my face when Joel started talking
about copyright violation. Sure, it&#039;s copyright infringement if China
followed U.S. copyright laws - and they don&#039;t. When the Chinese government owns
and operates a &lt;a href=&quot;http://www.japanprobe.com/?p=1678&quot; target=&quot;_blank&quot;&gt;Disney Land clone&lt;/a&gt;, I seriously doubt they&#039;re going to
mind a stackoverflow clone.  
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
&lt;br /&gt;
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
I&#039;m reasonably sure CNProg didn&#039;t take
nearly as long to write and I&#039;m guessing a decent ruby on rails
developer could rewrite stackoverflow within a week. Considering
Atwood&#039;s poor choice in technology stacks, my prediction is someone
will clone stackoverflow using ruby on rails and release it under an
open source license. This will enable people to create their own
niche sites without debating with Atwood about what&#039;s possible.
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
&lt;br /&gt;
&lt;/p&gt;</description>
   <link>http://nfocipher.com/index.php?op=ViewArticle&amp;articleId=13&amp;blogId=1</link>
      <pubDate>Sun, 12 Apr 2009 08:47:23 -0500</pubDate>   
  </item>
    <item>
   <title>Git server setup using gitosis for Centos 5.2</title>
   <description>&lt;br /&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
This is a step by step HOWTO to host
git repositories using gitosis on a Centos 5.2 box.  I&#039;m currently
working on a &lt;a href=&quot;http://rubyonrails.org/&quot; target=&quot;_blank&quot;&gt;ruby on rails&lt;/a&gt; project with
&lt;a href=&quot;http://erebor.com&quot; target=&quot;_blank&quot;&gt;Ryan&lt;/a&gt;. The need for a source management solution
was apparent and I&#039;ve been using &lt;a href=&quot;http://subversion.tigris.org/&quot; target=&quot;_blank&quot;&gt;subversion&lt;/a&gt; for while. Of course I could make a
new subversion repo in no time, my server is already setup, backups
being done, and it just works - but according to &lt;a href=&quot;http://en.wikipedia.org/wiki/Linus_Torvalds&quot; target=&quot;_blank&quot;&gt;Linus&lt;/a&gt; I was &lt;a href=&quot;http://www.youtube.com/watch?v=4XpnKHJAok8&quot; target=&quot;_blank&quot;&gt;ugly and stupid&lt;/a&gt;. Ryan wants me to use
&lt;a href=&quot;http://git-scm.com/&quot; target=&quot;_blank&quot;&gt;git&lt;/a&gt; and I really didn&#039;t want to be ugly and
stupid. 
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
I go about searching the web for a &lt;a href=&quot;http://scie.nti.st/2007/11/14/hosting-git-repositories-the-easy-and-secure-way&quot; target=&quot;_blank&quot;&gt;git
server howto&lt;/a&gt; and found that git wasn&#039;t really meant to used in a server/client
situation, but more of a peer to peer environment. Gitosis was
written to emulate that server/client environment I&#039;m after. I also
didn&#039;t see anything useful on google that was CentOS specific with
setting up gitosis. 
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
Here&#039;s how I did it..
&lt;/p&gt;
&lt;ul&gt;
	&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
	&amp;nbsp;
	&lt;/p&gt;
&lt;/ul&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
Step 1 - (On your server)
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
Install python-setuptools on your
server, you&#039;ll need it to install gitosis.
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
As root:
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
yum -y install python-setuptools
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
&lt;br /&gt;
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
&lt;br /&gt;
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
Step 2 - (On your server)
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
Install git. You&#039;ll need the DAG RPM
repository for this one.
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
As root:
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
- Red Hat Enterprise Linux 5 / i386: 
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
rpm -Uhv
http://apt.sw.be/redhat/el5/en/i386/rpmforge/RPMS/rpmforge-release-0.3.6-1.el5.rf.i386.rpm
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
- Red Hat Enterprise Linux 5 / x86_64: 
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
rpm -Uhv
http://apt.sw.be/redhat/el5/en/x86_64/rpmforge/RPMS//rpmforge-release-0.3.6-1.el5.rf.x86_64.rpm
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
yum -y install git
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
&lt;br /&gt;
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
&lt;br /&gt;
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
Step 3 - (On your server)
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
Install
gitosis.
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
As
root:
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
git
clone git://eagain.net/gitosis.git
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
(it should download stuff and create a
gitosis directory)
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
cd gitosis
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
python setup.py install 
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
&lt;br /&gt;
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
&lt;br /&gt;
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
Step 4 - (On your server)
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
Make a user called git.
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
adduser git
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
Give your new user git a password.
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
passwd git
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
&lt;br /&gt;
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
&lt;br /&gt;
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
&lt;br /&gt;
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
Step 5 - (On your client)
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
The whole point of gitosis is to
transfer files via ssh using a shared key process (ie: no password
required to login to user git on your server). Now before you go and
start doing it the &lt;a href=&quot;http://nfocipher.com/index.php?op=ViewArticle&amp;amp;articleId=11&amp;amp;blogId=1&quot; target=&quot;_blank&quot;&gt;manual way&lt;/a&gt; - don&#039;t. Gitosis must create and maintain the authorized_keys file.
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
&lt;br /&gt;
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
As your normal user on your
client/development box:
&lt;/p&gt;
&lt;p&gt;
ssh-keygen -t rsa (take the defaults) 
&lt;/p&gt;
&lt;p&gt;
There is now a new file called id_rsa.pub in ~/.ssh/ 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
Copy the id_rsa.pub file to the server: 
&lt;/p&gt;
&lt;p&gt;
scp ~/.ssh/id_rsa.pub git@someServer.com:/home/git/ 
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
&lt;br /&gt;
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
&lt;br /&gt;
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
Step 6 - (On your server)
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
I&#039;m assuming you&#039;re still root on the
server.
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
Change to the git user.
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
&lt;br /&gt;
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
su git
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
cd /home/git
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
gitosis-init &amp;lt; id_rsa.pub
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
&lt;br /&gt;
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
It should reply with Initialized empty
Git repository in ./ - twice.. 
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
We can now remove id_rsa.pub as we
don&#039;t need it anymore.
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
&lt;br /&gt;
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
rm id_rsa.pub
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
&lt;br /&gt;
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
Now we must set some directory and file
permissions to let sshd see the new authorized_keys file.
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;
chmod 755 /home/git 
&lt;/p&gt;
&lt;p&gt;
chmod 700 /home/git/.ssh 
&lt;/p&gt;
&lt;p&gt;
chmod 644 /home/git/.ssh/authorized_keys 
&lt;/p&gt;
&lt;p&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;
Step 7 - (On your client)
&lt;/p&gt;
&lt;p&gt;
We&#039;re pretty much done server side. Now we&#039;re going to configure
the server via the client. 
&lt;/p&gt;
&lt;p&gt;
Although I assume this is obvious, you need to install git on your
client machine.
&lt;/p&gt;
&lt;p&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;
git clone git@someServer.com:gitosis-admin.git
&lt;/p&gt;
&lt;p&gt;
cd gitosis-admin
&lt;/p&gt;
&lt;p&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
You should see a gitosis.conf file and
keydir directory.  Here&#039;s the thing, anything you need to configure
on the server, you actually configure here and commit the changes to
the server. Open up gitosis.conf in your favorite text editor
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
Make a new group name for your project. It really doesn&#039;t matter what you name this group. Add users to the member section who will need push access. 
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
[group myTeam]
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
members = (copy and paste the user from
the members = line in the [group gitosis-admin] section)
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
writable = myNewProject
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
&lt;br /&gt;
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
Save the file. Why did we use that
members=user@someServer.com? If you look in the keydir directory,
you&#039;ll see your public key with the filename
user@someServer.com.pub. These are your users (minus the .pub).
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
&lt;br /&gt;
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
&lt;br /&gt;
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
Step 8 - (On your client)
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
You&#039;ve just made a configuration
change. You want the server to allow user@someServer.com to have
write access to a project called myNewProject. You must commit this
change to the server.
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
&lt;br /&gt;
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
git commit -a -m &amp;quot;Allow the
machine I am on right now write access to myNewProject&amp;quot;
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
git push
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
&lt;br /&gt;
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
Now it&#039;s time to make the directory
that will contain your project files. Move up out of the
gitosis-admin directory.
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
&lt;br /&gt;
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
cd ..
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
mkdir myNewProject
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
cd myNewProject
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
git init
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
git remote add origin
git@someServer.com:myNewProject.git
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
&lt;br /&gt;
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
Add your files, move some files, create
some files. Put some files in the myNewProject directory.
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
Now we can commit the initial push to
the server.
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
&lt;br /&gt;
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
git add .
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
git commit -a -m &amp;quot;This is my
initial commit for myNewProject&amp;quot;
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
git push origin
master:refs/heads/master
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
&lt;br /&gt;
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
Git will do some neat things and push
things to the server. Now to delete the directory you just created..
Yeah, I said it.
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
&lt;br /&gt;
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
cd ..
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
rm -fr myNewProject
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
&lt;br /&gt;
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
And now to pull myNewProject from the
server using clone..
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
&lt;br /&gt;
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
git clone
git@someServer.com:myNewProject
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
&lt;br /&gt;
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
Now you have a version of your code you
can actually use, make changes and commit to the server using normal
git commands. 
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
&lt;br /&gt;
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
As of now, you have a fully functioning
git server with a project and a client that can make changes. But
what about other people?
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
&lt;br /&gt;
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
&lt;br /&gt;
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
Step 9 - (On your client)
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
So your friend Bob wants to help you
out with myNewProject. Have Bob generate his own id_rsa.pub and send
it you. When you have it:
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
&lt;br /&gt;
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
cd gitosis-admin
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
&lt;br /&gt;
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
Assuming Bob&#039;s
id_rsa.pub is in your home directory, move it to the key directory renaming it at the same time:
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
&lt;br /&gt;
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
mv ~/id_rsa.pub keydir/bob.pub
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
&lt;br /&gt;
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
Tell git about the new file:
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
&lt;br /&gt;
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
git add keydir/bob.pub
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
&lt;br /&gt;
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
Edit your gitosis.conf file again. Look
for the members line in myNewProject and add Bob to it:
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
&lt;br /&gt;
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
members = user@someServer.com bob
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
&lt;br /&gt;
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
Now you could add bob to be in the
gitosis-admin group if you wanted him to be able to do what you&#039;re
doing now. How much do you trust Bob?
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
&lt;br /&gt;
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
Save the file and quit. It&#039;s time to
tell your server about Bob and send Bob&#039;s public key.
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
&lt;br /&gt;
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
git commit -a -m &amp;quot;Added commit
rights to Bob on myNewProject&amp;quot;
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
git push
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
&lt;br /&gt;
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
The server will automatically add Bob&#039;s
public key to authorized_keys. Do not attempt to add him manually.
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
&lt;br /&gt;
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
&lt;br /&gt;
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
Step 10 -
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
Do a little dance, you&#039;re done.
&lt;/p&gt;
&lt;p style=&quot;margin-bottom: 0in&quot;&gt;
&lt;br /&gt;
&lt;/p&gt;
&lt;meta content=&quot;text/html; charset=utf-8&quot; http-equiv=&quot;CONTENT-TYPE&quot; /&gt;
&lt;title&gt;&lt;/title&gt;
&lt;meta content=&quot;OpenOffice.org 2.2  (Linux)&quot; name=&quot;GENERATOR&quot; /&gt;
&lt;meta content=&quot;20090315;3513000&quot; name=&quot;CREATED&quot; /&gt;
&lt;meta content=&quot;20090315;8452900&quot; name=&quot;CHANGED&quot; /&gt;
&lt;style type=&quot;text/css&quot;&gt;
&lt;/style&gt;</description>
   <link>http://nfocipher.com/index.php?op=ViewArticle&amp;articleId=12&amp;blogId=1</link>
      <pubDate>Sun, 15 Mar 2009 08:46:10 -0500</pubDate>   
  </item>
    <item>
   <title>SSH without password HOWTO for CentOS 5.2</title>
   <description>&lt;p&gt;
This one is short and sweet and is for CentOS 5.2 installs.
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
On the client machine generate a public key. Do this command as the user you normally run under:
&lt;/p&gt;
&lt;p&gt;
 ssh-keygen -t rsa (take the defaults)
&lt;/p&gt;
&lt;p&gt;
There is now a new file called id_rsa.pub in ~/.ssh/
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
Copy the id_rsa.pub file to the server:
&lt;/p&gt;
&lt;p&gt;
scp ~/.ssh/id_rsa.pub someUser@someServer.com:/home/someUser/
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
Log into the server:
&lt;/p&gt;
&lt;p&gt;
ssh someUser@someServer.com
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
Append your client public key to authorized_keys:
&lt;/p&gt;
&lt;p&gt;
cat ~/id_rsa.pub &amp;gt;&amp;gt; ~/.ssh/authorized_keys
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
Remove the client public key on the server, you don&#039;t need it anymore:
&lt;/p&gt;
&lt;p&gt;
rm ~/id_rsa.pub
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
Set permissions on the server so sshd can see authorized_keys:
&lt;/p&gt;
&lt;p&gt;
chmod 755 /home/someUser
&lt;/p&gt;
&lt;p&gt;
chmod 700 /home/someUser/.ssh
&lt;/p&gt;
&lt;p&gt;
chmod 644 /home/someUser/.ssh/authorized_keys
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
That&#039;s it, the next time you login to the server via the client it shouldn&#039;t ask for a password. 
&lt;/p&gt;</description>
   <link>http://nfocipher.com/index.php?op=ViewArticle&amp;articleId=11&amp;blogId=1</link>
      <pubDate>Sun, 15 Mar 2009 05:22:39 -0500</pubDate>   
  </item>
  </rdf:RDF>

