<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss'><id>tag:blogger.com,1999:blog-16786167</id><updated>2009-09-22T16:40:57.371+02:00</updated><title type='text'>Frantic Typing</title><subtitle type='html'>Life as a sysadmin @ hyves</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://frantictyping.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16786167/posts/default'/><link rel='alternate' type='text/html' href='http://frantictyping.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Ramon</name><uri>http://www.blogger.com/profile/03817463479057495838</uri><email>noreply@blogger.com</email></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>5</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-16786167.post-1908825434462125065</id><published>2009-06-28T23:00:00.000+02:00</published><updated>2009-06-28T23:00:03.260+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='git'/><category scheme='http://www.blogger.com/atom/ns#' term='subversion'/><category scheme='http://www.blogger.com/atom/ns#' term='sysadmin'/><title type='text'>Using git to develop against subversion repositories</title><content type='html'>A lot of people have written about using git and why it is in their opinion the best thing since sliced bread or even worse than a stinking turd in your bed....&lt;br /&gt;&lt;br /&gt;Go read those if you're interested in yet-another-opinion about sourcecode management :-)&lt;br /&gt;&lt;br /&gt;I'm interested in developing with git against a subversion repository which holds the main body of code for whatever reason: company politics, historic reasons, need for a centralized repository, whatever.&lt;br /&gt;&lt;br /&gt;This is in fact very simple with the git svn wrappers, it's trivial to create a git-repository which is based on a subversion repository AND stays in sync all the time as well.&lt;br /&gt;&lt;br /&gt;Please read: http://www.viget.com/extend/effectively-using-git-with-subversion/ for a nice overview.&lt;br /&gt;&lt;br /&gt;What is not much covered is setting up a git repository based on a non-standard subversion layout. I searched around on the net using google and couldn't find a good description.&lt;br /&gt;&lt;br /&gt;And guess what I had :-(&lt;br /&gt;&lt;br /&gt;I've setup a git repository for a subversion repository which had a non-standard layout for historic reasons. It was way too much trouble to reorganize the subversion repository so I decided to make the git repository match the subversion repos.&lt;br /&gt;&lt;br /&gt;The subversion is layed out like this:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;/&lt;br /&gt;/trunk&lt;br /&gt;/stable&lt;br /&gt;/branches/virtual&lt;br /&gt;/branches/redesign&lt;br /&gt;/josephs_stuff&lt;br /&gt;/tryout1&lt;br /&gt;/tryout2&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Basically the stable branch was started not inside a branches subdir as is standard but on the root of the repository. Later on someone realized that a branches subdir was a good thing to have and added it.&lt;br /&gt;&lt;br /&gt;Ideally I'd like to have all branches that are relevant to me as a branch inside git.&lt;br /&gt;&lt;br /&gt;The branches I'm interested in are: trunk, stable, virtual and redesign, the rest is just old cruft, left there for no specific good reasons.&lt;br /&gt;&lt;br /&gt;I've inited the git repos with the following command:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;git svn init --trunk trunk https://svn.server.not/svn/ git-repos&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Afterwards I needed to add the other three branches, you need to edit you git config file for this which you can find in:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;git-repos/.git/config&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;The relevant part of my git config looks like this:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;[svn-remote "svn"]&lt;br /&gt;url = https://svn.server.not/svn/&lt;br /&gt;fetch = trunk:refs/remotes/trunk&lt;br /&gt;fetch = stable:refs/remotes/stable&lt;br /&gt;fetch = branches/virtual:refs/remotes/virtual&lt;br /&gt;fetch = branches/redesign:refs/remotes/redesign&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;After saving my git config it's time to actually pull in the subversion content:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;git svn fetch&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;That's it.... now you have a fully functional git repository with branches for the different "branches" in your old and crufty subversion repository.&lt;br /&gt;&lt;br /&gt;The format appears to be:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;url = $SVN_BASE_URL&lt;subversion&gt;&lt;br /&gt;fetch = $SVN_DIR&lt;subversion&gt;:refs/remotes/$GITBRANCHNAME&lt;git&gt;&lt;br /&gt;&lt;/git&gt;&lt;/subversion&gt;&lt;/subversion&gt;&lt;/pre&gt;&lt;br /&gt;I'd think twice before I'd deviate the git branch-names from the subversion branch names.&lt;br /&gt;&lt;br /&gt;Happy hacking.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16786167-1908825434462125065?l=frantictyping.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://frantictyping.blogspot.com/feeds/1908825434462125065/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=16786167&amp;postID=1908825434462125065' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16786167/posts/default/1908825434462125065'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16786167/posts/default/1908825434462125065'/><link rel='alternate' type='text/html' href='http://frantictyping.blogspot.com/2009/06/using-git-to-develop-against-subversion.html' title='Using git to develop against subversion repositories'/><author><name>Ramon</name><uri>http://www.blogger.com/profile/03817463479057495838</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03818725484428058425'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16786167.post-797292296425870275</id><published>2009-06-24T21:52:00.006+02:00</published><updated>2009-06-24T23:21:58.671+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gentoo'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='sysadmin'/><category scheme='http://www.blogger.com/atom/ns#' term='ssh'/><category scheme='http://www.blogger.com/atom/ns#' term='ldap'/><title type='text'>public and private ssh keys in ldap</title><content type='html'>&lt;blockquote&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;/blockquote&gt;Marlon did some great work on setting up a ldap servercluster for our serverpark at &lt;a href="http://www.hyves.nl/"&gt;hyves&lt;/a&gt;.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;We want to use that ldap repository to stick all user-accounts in so we have a better control over who gets to access what.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;In order to make that happen we need both the public AND the private key for ssh access in our ldap server.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Getting the public keys in ldap proved fairly trivial, head over to the &lt;a href="http://code.google.com/p/openssh-lpk/"&gt;openssh-lpk project on code.google&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Applying the patches is easy if you use Gentoo: &lt;/div&gt;&lt;pre&gt;USE="ldap" emerge openssh&lt;/pre&gt;&lt;div&gt;will do the trick, your milage may vary on other distributions :-)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Getting the private keys in ldap is completely undocumented....&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Here's how you do it:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Add the following to the schema provided by the openssh-lpk guys:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;attributetype ( 1.3.6.1.4.1.24552.500.1.1.1.14 NAME 'sshPrivateKey'&lt;br /&gt;  DESC 'OPTIONAL: OpenSSH Private key'&lt;br /&gt;  EQUALITY octetStringMatch&lt;br /&gt;  SYNTAX 1.3.6.1.4.1.1466.115.121.1.40 )&lt;br /&gt;&lt;br /&gt;objectclass ( 1.3.6.1.4.1.24552.500.1.1.2.1 NAME 'ldapPrivateKey' SUP top AUXILIARY&lt;br /&gt;   DESC 'OPTIONAL: OpenSSH LPK objectclass'&lt;br /&gt;   MAY ( sshPrivateKey $ uid )&lt;br /&gt;)&lt;br /&gt;&lt;/pre&gt;Now you need to load the public and private key into the ldap server.&lt;br /&gt;The public key again is easy: It's a single string with no linebreaks in it, any tool will do.&lt;br /&gt;But the private key is slightly more involved, the first couple of lines from my private key are:&lt;pre&gt;-----BEGIN DSA PRIVATE KEY-----&lt;br /&gt;Proc-Type: 4,ENCRYPTED&lt;br /&gt;DEK-Info: DES-EDE3-CBC,A683EAADB7A65E5C&lt;br /&gt;&lt;br /&gt;o+sletw5nmOZN1Hu62HSIRMaMsqWWDSqbxrRKu5zfk/rXWKDzIU9ULSQ3giGmCRx&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;div&gt;You can't load that with ldapmodify into your ldap server because it will mistake the content of your key for ldap attributes. I tried loading it through the webinterface (phpLDAPadmin) but that didn't work either.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;The solution is specified in the RFC, you need to encode the key in base64.&lt;/div&gt;&lt;pre&gt;base64 -w0 &lt;&gt; yourprivatekey_base64&lt;/pre&gt;After that it's trivial to load it into your ldapserver, use whatever tool you like.&lt;br /&gt;&lt;br /&gt;Here's a sample ldif file for ldapmodify:&lt;pre&gt;dn: cn=your common name,ou=your department,dc=domain,dc=tld&lt;br /&gt;changetype: modify&lt;br /&gt;replace: sshPrivateKey&lt;br /&gt;sshPrivateKey: LS0tLS1CRUdJTiBEU0EgUFJJVkFURSBLRVktLS0tLQpQcm9jLVR5cGU6IDQsRU5DUllQVEVECkRFSy1JbmZvOiBERVMtRURFMy1DQkMs&lt;/pre&gt;Once you have loaded the private and public keys in ldap you need a script to install them in the homedir of your server.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;We settled on a combination of &lt;a href="http://www.intraperson.com/autodir/"&gt;autodir&lt;/a&gt; and &lt;a href="http://www.reductivelabs.com/"&gt;puppet&lt;/a&gt;. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Autodir will create the homedir for the user once he logs in for the first time.&lt;/div&gt;&lt;div&gt;We populate the skel directory with puppet, the bash_profile file below takes care of pulling in the keys into the .ssh directory. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;# /etc/skel/.bash_profile&lt;br /&gt;&lt;br /&gt;LOGNAME=$(whoami)&lt;br /&gt;NUMSESSIONS=$(who |grep ${LOGNAME} |wc -l)&lt;br /&gt;HOST=$(hostname)&lt;br /&gt;[[ -f ~/.firstrun ]] &amp;amp;&amp;amp; source ~/.firstrun&lt;br /&gt;&lt;br /&gt;if [[ "${FIRSTRUN}" == "YES" ]]&lt;br /&gt;then&lt;br /&gt;# Pick up private keys from ldap&lt;br /&gt;echo "This is a firsttime run"&lt;br /&gt;echo "I need to import your ssh-keys from the ldap server"&lt;br /&gt;echo "Please provide the ldap password when asked"&lt;br /&gt;# Find DN for user&lt;br /&gt;LDAP_DN=$(ldapsearch -LLL -ZZ "(uid=$LOGNAME)" dn | cut -f2 -d:)&lt;br /&gt;ldapsearch -LLL -ZZ -F~/.ssh/ -T ~/.ssh/ -D"${LDAP_DN}" -W -x -tt "(uid=${LOGNAME})" sshPublicKey sshPrivateKey&lt;br /&gt;echo "Decoding your private key"&lt;br /&gt;base64 -w0 -d ~/.ssh/ldapsearch-sshPrivateKey-* &gt; ~/.ssh/id_key&lt;br /&gt;echo "Adding your public key"&lt;br /&gt;mv ~/.ssh/ldapsearch-sshPublicKey-* ~/.ssh/id_key.pub&lt;br /&gt;echo "Cleaning up temporary files"&lt;br /&gt;rm ~/.ssh/ldapsearch-*&lt;br /&gt;sed -i -e 's!YES!NO!g' ~/.firstrun&lt;br /&gt;echo "Your ssh keys have been setup"&lt;br /&gt;fi&lt;br /&gt;&lt;br /&gt;# only check if this is the first login&lt;br /&gt;if [ "${NUMSESSIONS}" = "1" ]&lt;br /&gt;then&lt;br /&gt;# cleaning up possible old sessions&lt;br /&gt;/usr/bin/keychain --clear -q&lt;br /&gt;&lt;br /&gt;#keychain&lt;br /&gt;echo -e "\e[32;1mAdding private keys to keychain\e[m"&lt;br /&gt;&lt;br /&gt;for i in $(find ~/.ssh |grep id |grep -v pub)&lt;br /&gt;do&lt;br /&gt;  /usr/bin/keychain -q ${i}&lt;br /&gt;done&lt;br /&gt;fi&lt;br /&gt;&lt;br /&gt;# load ssh agent via keychain&lt;br /&gt;source ~/.keychain/$(hostname)-sh&lt;br /&gt;&lt;br /&gt;[[ -f /etc/profile.d/bash-completion ]] &amp;amp;&amp;amp; source /etc/profile.d/bash-completion&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Keychain is a useful tool written by Daniel Robbins, the original Gentoo architect. It loads your keys into ssh-agent and exports the relevant variables into your shell environment, the net effect is that you have to type your passphrase once.&lt;br /&gt;You can find his current homepage &lt;a href="http://www.funtoo.org/"&gt;here&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Maybe this is helpful for someone trying to do something similar, if you need more detail you can always try emailing me :-)&lt;br /&gt;&lt;br /&gt;Ramon&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;P.S&gt; No, the above script is not production ready, it lacks error checking and support for multiple keys.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16786167-797292296425870275?l=frantictyping.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://frantictyping.blogspot.com/feeds/797292296425870275/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=16786167&amp;postID=797292296425870275' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16786167/posts/default/797292296425870275'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16786167/posts/default/797292296425870275'/><link rel='alternate' type='text/html' href='http://frantictyping.blogspot.com/2009/06/public-and-private-ssh-keys-in-ldap.html' title='public and private ssh keys in ldap'/><author><name>Ramon</name><uri>http://www.blogger.com/profile/03817463479057495838</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03818725484428058425'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16786167.post-8070040069183567749</id><published>2008-08-04T22:08:00.002+02:00</published><updated>2008-08-04T22:35:38.079+02:00</updated><title type='text'>Mijn huis is onbewoonbaar verklaard</title><content type='html'>Vandaag is mijn huis door de inspectie voor bouw- &amp;amp; woningtoezicht in Amsterdam Oud-West tot onbewoonbaar verklaard.&lt;br /&gt;&lt;br /&gt;Dat ging zo:&lt;br /&gt;&lt;br /&gt;Zaterdag om 00:30 hoorde we een geluid alsof de bovenburen een bowlingbal hadden laten vallen.&lt;br /&gt;Daar dachten we eerst niet zo veel van maar toen we de volgende zondagochtend 2 grote scheuren in een kruisvorm in het midden van het plafond maakten we ons toch een beetje zorgen. Contact met de woningbouw opgenomen en afgesproken dat als de scheur groter werd we terug moesten bellen en dat ze het dan maandag kwamen repareren. So far so good.&lt;br /&gt;&lt;br /&gt;Om een uurtje of 8 's avonds hoorden we een tweede knal in het plafond en nu werd de scheur alarmerend snel groter. Opnieuw woningbouw de Alliantie gebeld, maar nu kregen we een of ander chagerijnig mens aan de telefoon.&lt;br /&gt;&lt;br /&gt;Die kon niets, wist niets en we moesten maandag maar met het gewone kantoor bellen. Omdat het plafond inmiddels begon door te buigen werden we toen een beetje boos, maar ook dat mocht niet baten. Toen we naar haar naam vroegen om eventueel een klacht in te kunnen dienen hing ze stomweg de telefoon op.&lt;br /&gt;&lt;br /&gt;Daarna wist ik het ook niet meer en heb ik de brandweer maar gebeld, dat leek me de meest voor de hand liggende alarmdienst. Die kwamen binnen 5 minuten met een hele wagen met brandweermannen. Die keken naar het plafond, riepen: "dat ziet er niet best uit, meneer" en hebben boven bij de buren op de vloer heen en weer gesprongen om de balken te testen (die waren goed).&lt;br /&gt;&lt;br /&gt;En daarna een flink gat in ons plafond gemaakt.&lt;br /&gt;&lt;br /&gt;Toen bleek dat alle het hele plafond met nog maar een paar schroeven vast zat en ieder moment naar beneden zouden kunnen komen.&lt;br /&gt;&lt;br /&gt;Toen werden er snel balken en stutten geregeld en uiteindelijk werd het plafond onderstut met twee palen zodat het in ieder geval tot maandag boven bleef en wij &lt;span style="font-style: italic;"&gt;"rustig"&lt;/span&gt; naar bed konden.&lt;br /&gt;&lt;br /&gt;Dat zou al wel genoeg geweest zijn.......&lt;br /&gt;&lt;br /&gt;Maar de volgende dag zagen tot onze grote schrik om 13:00 dat de &lt;span style="font-weight: bold;"&gt;vloer&lt;/span&gt; voor in de woonkamer sinds 's ochtends op eens een kuil van meer dan 5 cm vertoonde. Toen hebben we maar de belangrijkste  spullen gepakt en zijn we het huis uitgelopen. Buiten heb ik toen de inspectie voor bouw &amp;amp; woningtoezicht gebeld. Die stuurde binnen 10 minuten een inspecteur langs voor inspectie. En die heeft uiteindelijk de hele etage onbewoonbaar verklaard.&lt;br /&gt;&lt;br /&gt;We logeren vandaag even bij de buren die zo lief waren om dat aan te bieden, zodat we rustig alle spullen en zaken die we nodig hebben kunnen verzamelen. Morgen gaan we een hotel zoeken om de komende tijd in te wonen en opnieuw onderhandelen met de woningbouw over hoe het nu verder moet.&lt;br /&gt;&lt;br /&gt;Vrijdag komen de andere twee kinderen terug en zijn we weer met z'n vijven.....&lt;br /&gt;&lt;br /&gt;O en voor diegenen die zich het afvragen, dit is een nieuw gerenoveerd huis uit november 2006.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16786167-8070040069183567749?l=frantictyping.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://frantictyping.blogspot.com/feeds/8070040069183567749/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=16786167&amp;postID=8070040069183567749' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16786167/posts/default/8070040069183567749'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16786167/posts/default/8070040069183567749'/><link rel='alternate' type='text/html' href='http://frantictyping.blogspot.com/2008/08/mijn-huis-is-onbewoonbaar-verklaard.html' title='Mijn huis is onbewoonbaar verklaard'/><author><name>Ramon</name><uri>http://www.blogger.com/profile/03817463479057495838</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03818725484428058425'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16786167.post-8868429539604940061</id><published>2008-06-06T11:50:00.005+02:00</published><updated>2009-06-25T01:50:48.341+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gentoo'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='vmware'/><category scheme='http://www.blogger.com/atom/ns#' term='osx'/><title type='text'>MacBook with OSX | Gentoo Linux</title><content type='html'>I like OSX I've been using it privately for a long time.&lt;br /&gt;&lt;br /&gt;Koen used to joke that I was the only sysadmin he ever saw with an Apple, which is basically why the about page on hyves lists my nickname as Big Mac :-)&lt;br /&gt;&lt;br /&gt;The last two years I used a dell laptop as my primary workstation with gentoo installed and a VMWare Windows image for the occasional time that I couldn't do without exchange support.&lt;br /&gt;&lt;br /&gt;My wife has since nicked my old Powerbook and I haven't seen it back, it's been converted to german as primary language (can't find anything in the menu's :-) ) and solidly in use. I've given  up all hope of ever getting it back unless I buy her a new one.&lt;br /&gt;&lt;br /&gt;Since the dell was showing signs of wear and tear I decided that my new work laptop was going to be an apple again. So on my desk is sitting this really nice and shiny new MacBook Pro dual-core 2.6Ghz machine and 4Gig of memory.&lt;br /&gt;&lt;br /&gt;But after working in linux for so many years I'm missing some of the productivity and development tools I'm used to on linux. I really like the productivity tools I gained by moving back to OSX (have a look here: www.omnigroup.com they make great stuff) but still, it nags.&lt;br /&gt;&lt;br /&gt;I've been using with gentoo-prefix for a while which certainly fills part of the gap, but for some stuff I really need a native linux environment. One of the things I still do for hyves is building the system OS images with catalyst, the gentoo release tool. I can't do that properly in a prefix environment (I think.... fabian will probably correct me if I'm wrong)&lt;br /&gt;&lt;br /&gt;So I've been looking at alternatives to get a native linux environment working. I rarely need GUI access, most of that is covered by OSX + Gentoo Prefix. But I do need a native commandline linux and I hate to dual-boot just for that. I want to be able to read my mail|browse the web while doing a bunch of other stuff in linux.&lt;br /&gt;&lt;br /&gt;There have been rumours that Xen might support OSX in the near future, but nothing has materialized so far. Apparently the problem is that OSX | Aqua is really tightly coupled with the hardware. That makes sense to do for Apple since they make both the hardware and the OS :-) But doesn't work really well in a virtualized environment.&lt;br /&gt;&lt;br /&gt;I tried parallels but it doesn't support 64bit linux, I build 64bit serverimages so that doesn't help a lot :-(&lt;br /&gt;&lt;br /&gt;But today I found this post: http://taylorbanks.com/blog/ubuntu-on-the-macbook-pro-physical-virtual-or-both/&lt;br /&gt;&lt;br /&gt;which details how to install a virtual 64bit copy inside VMWare Fusion.&lt;br /&gt;And the best part is.... now I get to choose whether I want to dual-boot into one of my OS's or that I run OSX + linux in a virtual machine.&lt;br /&gt;&lt;br /&gt;Yay, here I come :-)&lt;br /&gt;&lt;br /&gt;P.S&gt; After a very long time away from this blog, I'll see if I can keep it more current. The idea is to write stuff every week if I manage with all the other stuff going on in my life :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16786167-8868429539604940061?l=frantictyping.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://frantictyping.blogspot.com/feeds/8868429539604940061/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=16786167&amp;postID=8868429539604940061' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16786167/posts/default/8868429539604940061'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16786167/posts/default/8868429539604940061'/><link rel='alternate' type='text/html' href='http://frantictyping.blogspot.com/2008/06/macbook-with-osx-gentoo-linux.html' title='MacBook with OSX | Gentoo Linux'/><author><name>Ramon</name><uri>http://www.blogger.com/profile/03817463479057495838</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03818725484428058425'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16786167.post-112683253854785617</id><published>2005-09-16T02:48:00.000+02:00</published><updated>2005-09-16T03:12:11.916+02:00</updated><title type='text'>Hit by a car door</title><content type='html'>Yesterday as I was biking to my uncle's (mike) in the inner city of Amsterdam, someone was friendly enough to open his car door right in the spot I was biking at the moment.&lt;br /&gt;&lt;br /&gt;I managed to get out with fairly little damage....&lt;br /&gt;&lt;br /&gt;Luckily I didn't hit it right on, he sorta hit me in the knee with the door.&lt;br /&gt;The street I was on (Kinkerstraat) has a kind of roofed walkway with big massive concrete pillars in between that support the upper buildings. I managed to swerve between two of them and more or less crash into a contactlens shop.&lt;br /&gt;&lt;br /&gt;Funny thing was that I was talking to my mother on the phone while this happened, no idea what she must have heard...&lt;br /&gt;I lost my bluetooth earpiece pretty soon in the proces :-)&lt;br /&gt;Must be weird hearing a live-accident happing to the person you're talking to.&lt;br /&gt;&lt;br /&gt;Anyway after a few minutes of bending my knee to check whether anything was broken and a glass of water from the contactlens shop I felt a lot better. Aside from a dull ache in my knee and some weird tingly sensations in my toes I seemed to be alright so I continued biking towards my uncle and managed to arrive.&lt;br /&gt;&lt;br /&gt;The actual guy who opened the door without looking was extremely sorry and we exchanged addresses in case anything serious would develop from it.&lt;br /&gt;&lt;br /&gt;Meanwhile at mike's place my knee started to hurt pretty bad (not really surprising, car doors are probably harder than my knee). Although I could stand on it and it wasn't broken it hurt so bad that I decided to call my GP.&lt;br /&gt;&lt;br /&gt;As usual he gave me the sensible and expected advice to rest, keep cool with ice and come by tomorrow if it still hurts :-(&lt;br /&gt;Good advice but I already thought of that myself.... &lt;br /&gt;&lt;br /&gt;Even though I was pretty happy that X-rays were not neccessary it still makes you feel kind of useless if you get the same advice from your GP as you thought of yourself.&lt;br /&gt;&lt;br /&gt;I ended up taking a taxi home because I couldn't stand properly and didn't dare to ride the bike back.&lt;br /&gt;&lt;br /&gt;So right now I just got back, knee is hurting like hell.&lt;br /&gt;I'll need to call the GP first thing tomorrow for an appointment and hobble over there.&lt;br /&gt;&lt;br /&gt;Anyway, how was your day ?&lt;br /&gt;&lt;br /&gt;Ramon&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16786167-112683253854785617?l=frantictyping.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://frantictyping.blogspot.com/feeds/112683253854785617/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=16786167&amp;postID=112683253854785617' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16786167/posts/default/112683253854785617'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16786167/posts/default/112683253854785617'/><link rel='alternate' type='text/html' href='http://frantictyping.blogspot.com/2005/09/hit-by-car-door.html' title='Hit by a car door'/><author><name>Ramon</name><uri>http://www.blogger.com/profile/03817463479057495838</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03818725484428058425'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry></feed>