<?xml version="1.0" encoding="iso-8859-15" ?>

<feed xmlns="http://www.w3.org/2005/Atom" >
<title type="text">newton.gra2.com</title>
<subtitle type="text">Blog about technology and opinion by Daniel Alvarez.</subtitle>
<link rel="self" href="http://www.gra2.com/backend/index.rdf"/>
<link rel="alternate" type="text/html" href="http://www.gra2.com/"/>
<id>http://www.gra2.com/</id>
<updated>2009-08-09T11:58:35+02:00</updated>
<author>
<name>newton.gra2.com</name>
<email>admin@gra2.com</email>
</author>

<entry>
<title type="html">After the crisis and the future of science</title>
<link rel="alternate" type="text/html" href="http://www.gra2.com/article.php/after-the-crisis-and-future-of-science"/>
<id>tag:www.gra2.com,2009-05-05:/article.php/after-the-crisis-and-future-of-science</id>
<published>2009-05-05T21:19:11+02:00</published>
<updated>2009-05-05T21:19:11+02:00</updated>
<author>
<name>daniel</name>
</author>
<content type="html">Great talk about the crisis and the disciplines in science that will drastically change for the next few years, with an excellent orator, &lt;a href=&quot;http://www.ted.com/index.php/speakers/juan_enriquez.html&quot;&gt;Juan Enriquez&lt;/a&gt;:
&lt;br /&gt;&lt;br/&gt;
&lt;div style=&quot;text-align:center&quot;&gt;
&lt;object width=&quot;446&quot; height=&quot;326&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://video.ted.com/assets/player/swf/EmbedPlayer.swf&quot;&gt;&lt;/param&gt;&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot; /&gt;&lt;param name=&quot;wmode&quot; value=&quot;transparent&quot;&gt;&lt;/param&gt;&lt;param name=&quot;bgColor&quot; value=&quot;#ffffff&quot;&gt;&lt;/param&gt; &lt;param name=&quot;flashvars&quot; value=&quot;vu=http://video.ted.com/talks/embed/JuanEnriquez_2009-embed_high.flv&amp;su=http://images.ted.com/images/ted/tedindex/embed-posters/JuanEnriquez-2009.embed_thumbnail.jpg&amp;vw=432&amp;vh=240&amp;ap=0&amp;ti=463&quot; /&gt;&lt;embed src=&quot;http://video.ted.com/assets/player/swf/EmbedPlayer.swf&quot; pluginspace=&quot;http://www.macromedia.com/go/getflashplayer&quot; type=&quot;application/x-shockwave-flash&quot; wmode=&quot;transparent&quot; bgColor=&quot;#ffffff&quot; width=&quot;446&quot; height=&quot;326&quot; allowFullScreen=&quot;true&quot; flashvars=&quot;vu=http://video.ted.com/talks/embed/JuanEnriquez_2009-embed_high.flv&amp;su=http://images.ted.com/images/ted/tedindex/embed-posters/JuanEnriquez-2009.embed_thumbnail.jpg&amp;vw=432&amp;vh=240&amp;ap=0&amp;ti=463&quot;&gt;&lt;/embed&gt;&lt;/object&gt;
&lt;/div&gt;</content>
</entry>
<entry>
<title type="html">Weeklog 2009/16</title>
<link rel="alternate" type="text/html" href="http://www.gra2.com/article.php/weeklog-2009-16"/>
<id>tag:www.gra2.com,2009-04-20:/article.php/weeklog-2009-16</id>
<published>2009-04-20T13:16:52+02:00</published>
<updated>2009-04-20T13:16:52+02:00</updated>
<author>
<name>daniel</name>
</author>
<content type="html">Below, a short list of links that caught my attention this week:
&lt;br /&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.salon.com/mwt/feature/2009/04/11/real_estate/index.html&quot;&gt;Confessions of a real estate agent&lt;/a&gt;, on how real estate agents contributed to the financial meltdown.
&lt;br /&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.parade.com/news/what-people-earn/articles/how-our-salaries-are-changing.html&quot;&gt;How our salaries are changing&lt;/a&gt; since the beginning of the current crisis.
&lt;br /&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.newsweek.com/id/193506&quot;&gt;Partying like it's 2008&lt;/a&gt; in Germany, where consumer spending and car sales are up.
&lt;br /&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.time.com/time/arts/article/0,8599,1890927,00.html&quot;&gt;What would the world look like by 2050&lt;/a&gt;, future wars, climate and other predictions.
&lt;br /&gt;&lt;br /&gt;
&lt;a href=&quot;http://news.bbc.co.uk/2/hi/technology/8003799.stm&quot;&gt;Court jails Pirate bay founders&lt;/a&gt;, sentenced to a year in prison and a fine of &amp;#36;4.5 Mio.
&lt;br /&gt;&lt;br /&gt;
&lt;a href=&quot;http://mithridates.blogspot.com/2009/04/iran-in-1970s-before-islamic-revolution.html&quot;&gt;Iran in the 1970s before the Islamic Revolution&lt;/a&gt;, in pictures.
&lt;br /&gt;&lt;br /&gt;
&lt;a href=&quot;http://gatesofvienna.blogspot.com/2009/04/more-on-fitna-sequel.html&quot;&gt;Wilders announces Fitna sequel&lt;/a&gt;, with filmmaking assistance from Hollywood.
&lt;br /&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.sun.com/third-party/global/oracle/index.jsp&quot;&gt;Oracle to buy Sun&lt;/a&gt; for &amp;#36;7.4 milliard, bringing Sun's stock up 36% today.</content>
</entry>
<entry>
<title type="html">Credit Crisis Explained - The Animation</title>
<link rel="alternate" type="text/html" href="http://www.gra2.com/article.php/credit-crisis-explained-the-animation"/>
<id>tag:www.gra2.com,2009-03-03:/article.php/credit-crisis-explained-the-animation</id>
<published>2009-03-03T19:36:33+01:00</published>
<updated>2009-03-03T19:36:33+01:00</updated>
<author>
<name>daniel</name>
</author>
<content type="html">&lt;center&gt;
&lt;object width=&quot;580&quot; height=&quot;326&quot;&gt;&lt;param name=&quot;allowfullscreen&quot; value=&quot;true&quot; /&gt;&lt;param name=&quot;allowscriptaccess&quot; value=&quot;always&quot; /&gt;&lt;param name=&quot;movie&quot; value=&quot;http://vimeo.com/moogaloop.swf?clip_id=3261363&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=00ADEF&amp;amp;fullscreen=1&quot; /&gt;&lt;embed src=&quot;http://vimeo.com/moogaloop.swf?clip_id=3261363&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=00ADEF&amp;amp;fullscreen=1&quot; type=&quot;application/x-shockwave-flash&quot; allowfullscreen=&quot;true&quot; allowscriptaccess=&quot;always&quot; width=&quot;580&quot; height=&quot;326&quot;&gt;&lt;/embed&gt;&lt;/object&gt;
&lt;/center&gt;
&lt;br /&gt;

Everything you wanted to know about the Credit Crunch and never dared to ask, via &lt;a href=&quot;http://laughingsquid.com/an-animated-visualization-of-the-crisis-of-credit/&quot;&gt;Laughing Squid&lt;/a&gt;.</content>
</entry>
<entry>
<title type="html">Anyone who thinks LHC will destroy the world is a twat</title>
<link rel="alternate" type="text/html" href="http://www.gra2.com/article.php/anyone-who-thinks-lhc-will-destroy-world"/>
<id>tag:www.gra2.com,2008-09-09:/article.php/anyone-who-thinks-lhc-will-destroy-world</id>
<published>2008-09-09T23:40:07+02:00</published>
<updated>2008-09-09T23:40:07+02:00</updated>
<author>
<name>daniel</name>
</author>
<content type="html">The &lt;a href=&quot;http://en.wikipedia.org/wiki/Large_Hadron_Collider&quot;&gt;LHC&lt;/a&gt; is ready, and will start operation early tomorrow, 9am CET, Wednesday 10th of September (&lt;a href=&quot;http://webcast.cern.ch/index.html&quot;&gt;Webcast&lt;/a&gt;), while the first collisions will start on October 21st, so sorry to disappoint, but no end of the world yet.&lt;br /&gt;
&lt;br /&gt;
LHC stands for Large Hadron Collider, spans along the Swiss and French borders, and it's the largest particle accelerator, and with a circumference of 27km long, the biggest machine ever built. The purpose is pure research, used to test several high energy physics theories, being probably the most famous one the (non) existence of the &lt;a href=&quot;http://en.wikipedia.org/wiki/Higgs_Boson&quot;&gt;Higgs Boson&lt;/a&gt;, or so-called God Particle.&lt;br /&gt;
&lt;br /&gt;
The title of this post is a reference to an interview with &lt;a href=&quot;http://www.astroengine.com/?p=1240&quot;&gt;Brian Cox where he tried to debunk the myth that the LHC would destroy the world&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
As far as I can remember, the myth was started by two American nuts, a lawyer and a self-called scientist with a &lt;a href=&quot;http://www.telegraph.co.uk/earth/main.jhtml?view=DETAILS&amp;amp;grid=&amp;amp;xml=/earth/2008/04/01/scibang101.xml&quot;&gt;lawsuit against CERN in the US&lt;/a&gt;, trying to bring to a standstill the construction of the LHC by stopping shipments from Fermilab to CERN.&lt;br /&gt;
&lt;br /&gt;
In the last few weeks we have been flooded with articles written by poorly informed journalists predicting the end of the world for tomorrow, in a shameful sort of apocalyptic pamphlets (&amp;quot;&lt;a href=&quot;http://www.dailymail.co.uk/sciencetech/article-1052354/Are-going-die-Wednesday.html&quot;&gt;Are we all going to die Wednesday&lt;/a&gt;&amp;quot; and &lt;a href=&quot;http://www.news.com.au/heraldsun/comments/0,22023,24303939-5012749,00.html&quot;&gt;comments&lt;/a&gt;), getting to the point where &lt;a href=&quot;http://www.telegraph.co.uk/earth/main.jhtml?xml=/earth/2008/09/05/scilhc105.xml&quot;&gt;CERN employees have received death threats&lt;/a&gt;, mainly due to the fact that the &lt;a href=&quot;http://www.unisci.com/stories/20014/1001012.htm&quot;&gt;LHC might create tiny black holes&lt;/a&gt; that would quickly decay.&lt;br /&gt;
&lt;br /&gt;
To be honest, I think the &amp;quot;You are evil and dangerous and you are going to destroy the world&amp;quot; quote in the article perfectly shows the faint-heartedness of our society, where the mass never wants to take a risk to advance in any field, as we have seen many times through history.&lt;br /&gt;
&lt;br /&gt;
Just because you fear what you don't understand, here's very interesting video by Brian Cox explaining what is and what is the purpose of the LHC: &lt;a href=&quot;http://www.ted.com/index.php/talks/brian_cox_on_cern_s_supercollider.html&quot;&gt;Brian Cox on CERN's supercollider&lt;/a&gt;. The talk is great, and you can definitely see he loves about what he is talking about, and what is more important, he is able to explain what all the LHC is about to regular people.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;!--cut and paste--&gt;
&lt;div align=&quot;center&quot;&gt; 
&lt;object width=&quot;446&quot; height=&quot;326&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://video.ted.com/assets/player/swf/EmbedPlayer.swf&quot;&gt;&lt;/param&gt;&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot; /&gt;&lt;param name=&quot;wmode&quot; value=&quot;transparent&quot;&gt;&lt;/param&gt;&lt;param name=&quot;bgColor&quot; value=&quot;#ffffff&quot;&gt;&lt;/param&gt; &lt;param name=&quot;flashvars&quot; value=&quot;vu=http://video.ted.com/talks/embed/BrianCox_2008-embed_high.flv&amp;su=http://images.ted.com/images/ted/tedindex/embed-posters/BrianCox-2008.embed_thumbnail.jpg&amp;vw=432&amp;vh=240&amp;ap=0&amp;ti=253&quot; /&gt;&lt;embed src=&quot;http://video.ted.com/assets/player/swf/EmbedPlayer.swf&quot; pluginspace=&quot;http://www.macromedia.com/go/getflashplayer&quot; type=&quot;application/x-shockwave-flash&quot; wmode=&quot;transparent&quot; bgColor=&quot;#ffffff&quot; width=&quot;446&quot; height=&quot;326&quot; allowFullScreen=&quot;true&quot; flashvars=&quot;vu=http://video.ted.com/talks/embed/BrianCox_2008-embed_high.flv&amp;su=http://images.ted.com/images/ted/tedindex/embed-posters/BrianCox-2008.embed_thumbnail.jpg&amp;vw=432&amp;vh=240&amp;ap=0&amp;ti=253&quot;&gt;&lt;/embed&gt;&lt;/object&gt;
&lt;/div&gt;</content>
</entry>
<entry>
<title type="html">Merge a branch with the trunk in Subversion</title>
<link rel="alternate" type="text/html" href="http://www.gra2.com/article.php/merge-branch-trunk-in-subversion"/>
<id>tag:www.gra2.com,2008-04-29:/article.php/merge-branch-trunk-in-subversion</id>
<published>2008-04-29T15:04:17+02:00</published>
<updated>2008-04-29T15:04:17+02:00</updated>
<author>
<name>daniel</name>
</author>
<content type="html">I restart my blog posting activity by sharing with you a little cookbook that may be useful if you use Subversion to manage your source code repository.
&lt;br /&gt;&lt;br /&gt;
If you are using Subversion, you most likely have already created (or thinking of creating) branches to manage different versions of your source code.
&lt;br /&gt;&lt;br /&gt;
When the time comes to merge my changes between branches or a branch and the trunk, I always forget the syntax, so here's a small step by step merge execution.
&lt;br /&gt;&lt;br /&gt;
I am assuming you have checked out both the branch and trunk from your subversion repository. If you haven't done so, you can easily checkout with:
&lt;br /&gt;&lt;br /&gt;
&lt;div style=&quot;border: 1px solid rgb(132, 153, 186); background-color: rgb(225, 240, 218); padding-left: 10px; margin-left: 20px; margin-right: 20px;&quot;&gt;
svn co &amp;lt;repository&amp;gt;
&lt;/div&gt;
&lt;br /&gt;
First of all, go to the branch main directory, and execute the following:
&lt;br /&gt;&lt;br /&gt;
&lt;div style=&quot;border: 1px solid rgb(132, 153, 186); background-color: rgb(225, 240, 218); padding-left: 10px; margin-left: 20px; margin-right: 20px;&quot;&gt;
svn log --stop-on-copy
&lt;/div&gt;
&lt;br /&gt;
The last entry is the version number corresponding to the creation of the branch, and looks something like the following:
&lt;br /&gt;&lt;br /&gt;
&lt;div style=&quot;border: 1px solid rgb(132, 153, 186); background-color: rgb(225, 240, 218); padding-left: 10px; margin-left: 20px; margin-right: 20px;&quot;&gt;
r2887 | daniel | 2008-03-25 12:20:52 +0100 (Tue, 25 Mar 2008) | 1 line
&lt;br /&gt;Creation of new branch for version 1.6.
------------------------------------------------------------------
&lt;/div&gt;
&lt;br /&gt;
So, we have found out that the version is 2887. Now, change directory to the trunk, and execute the following command:
&lt;br /&gt;&lt;br /&gt;
&lt;div style=&quot;border: 1px solid rgb(132, 153, 186); background-color: rgb(225, 240, 218); padding-left: 10px; margin-left: 20px; margin-right: 20px;&quot;&gt;
svn up
&lt;/div&gt;
&lt;br /&gt;
The output of this command should be something like:
&lt;br /&gt;&lt;br /&gt;
&lt;div style=&quot;border: 1px solid rgb(132, 153, 186); background-color: rgb(225, 240, 218); padding-left: 10px; margin-left: 20px; margin-right: 20px;&quot;&gt;
At revision 3117.
&lt;/div&gt;
&lt;br /&gt;
Basically, that means that we have to merge the changes from revision 2887 to 3117, using the following command:
&lt;br /&gt;&lt;br /&gt;
&lt;div style=&quot;border: 1px solid rgb(132, 153, 186); background-color: rgb(225, 240, 218); padding-left: 10px; margin-left: 20px; margin-right: 20px;&quot;&gt;
svn merge -r2887:3117 https://&amp;lt;repository&amp;gt;/branches/&amp;lt;version&amp;gt;
&lt;/div&gt;
&lt;br /&gt;
Now, you should check the changes performed to your local copy, and resolve any change conflicts that may appear.
&lt;br /&gt;&lt;br /&gt;
Once you have verified that the changes are correct, you can check in with the usual svn ci.</content>
</entry>
<entry>
<title type="html">MacBook Air: The ultralight laptop from Apple</title>
<link rel="alternate" type="text/html" href="http://www.gra2.com/article.php/macbook-air-ultralight-laptop-from-apple"/>
<id>tag:www.gra2.com,2008-01-16:/article.php/macbook-air-ultralight-laptop-from-apple</id>
<published>2008-01-16T18:03:14+01:00</published>
<updated>2008-01-16T18:03:14+01:00</updated>
<author>
<name>daniel</name>
</author>
<content type="html">Yesterday, &lt;a href=&quot;http://www.tuaw.com/2008/01/15/the-macworld-2008-keynote-liveblog/&quot;&gt;Steve Jobs unveiled&lt;/a&gt; the new &lt;a href=&quot;http://www.apple.com/macbookair/&quot;&gt;MacBook Air&lt;/a&gt;, as I'm sure you all know, following a week of rumors that this time were true, even having a photoshopped picture of the Air surprisingly similar to the end product. Apart from that, a new Apple TV with updated HDTV support has been launched, and an Airport Extreme with a 500GB or 1TB &amp;quot;server grade hard disk drive&amp;quot; on it (think of wireless Time Machine), called &lt;a href=&quot;http://www.apple.com/timecapsule/specs.html&quot;&gt;Time Capsule&lt;/a&gt; (I love the name!).&lt;br /&gt;
&lt;br /&gt;
So, the MacBook Air. The machine is less than 2cm thick (0.4 cm in its thinnest side, and 1.94cm in the thickest), and weights about 1.3kg.&lt;br /&gt;
&lt;br /&gt;
&lt;div align=&quot;center&quot;&gt;&lt;img width=&quot;440&quot; height=&quot;163&quot; src=&quot;http://www.gra2.com/images/library/Image/macbook-air-keynote-1-15-08.jpg&quot; alt=&quot;&quot; /&gt;&lt;br /&gt;
&lt;/div&gt;
&lt;br /&gt;
Among the things I also like is the CPU (a standard Core 2 Duo 1.6 or 1.8GHz), which apparently had to be reduced 60% in size compared to the Core 2 Duo that other MacBooks have, and that Apple reportedly persuaded Intel to build it for them.&lt;br /&gt;
&lt;br /&gt;
The standard (non expandable) RAM memory is also enough (2GB), and the battery life (apparently having wireless on) is a whopping 5 hours.&lt;br /&gt;
&lt;br /&gt;
As for the rest of the features, it is pretty much a small MacBook Pro (iSight, Bluetooth, Backlit keyboard, Micro-DVI output).&lt;br /&gt;
&lt;br /&gt;
Another great feature is the inclusion of an iPhone-like, bigger than usual trackpad. It allows you to scroll, zoom, pinch, rotate... the whole deal.&lt;br /&gt;
&lt;br /&gt;
It only has one USB and no Optical Drive, though, which I find completely understandable just by looking at its size. And I don't miss the Optical Drive, specially in such a small form factor laptop.&lt;br /&gt;
&lt;br /&gt;
No Ethernet adaptor either, but again, I understand as this is a travel laptop, the Air is supposed to work with AirPort, and leave the cables behind.&lt;br /&gt;
&lt;br /&gt;
Apple has come up with an already well known but improved feature to resolve the lack of a SuperDrive. All you have to do is enable CD/DVD sharing on a computer with one (apparently you have to install additional software if it's a PC) and it will automagically appear on Finder, so you can install all the software you need (it even works if you want to reinstall Leopard, for instance).&lt;br /&gt;
&lt;br /&gt;
As for the things I like less are, for instance, the size of the hard drive (80GB), and the price of the super-fast 64GB SSD optional disk (about EUR 900). The battery is sealed, as in the iPhone, so you can't get a replacement and change it yourself if you want. &lt;br /&gt;
&lt;br /&gt;
In a few words, this is a travel laptop, it's great to carry it around, has good battery life and you can work exactly the same as in a MacBook Pro. I'm already picturing myself working on it in an Airport Lounge. &lt;br /&gt;
&lt;br /&gt;
Just so you know, I'm getting one already, so I'll let you know how it performs.</content>
</entry>
<entry>
<title type="html">Hallo aus Z&amp;uuml;rich</title>
<link rel="alternate" type="text/html" href="http://www.gra2.com/article.php/hallo-aus-zuerich"/>
<id>tag:www.gra2.com,2007-12-04:/article.php/hallo-aus-zuerich</id>
<published>2007-12-04T18:06:41+01:00</published>
<updated>2007-12-04T18:06:41+01:00</updated>
<author>
<name>daniel</name>
</author>
<content type="html">For those of you who don't know where I am, and wondering why the hell I am and why aren't your e-mails answered as soon as usual, here it is: I have recently moved to Z&amp;uuml;rich, and my Internet connection is a bit &amp;quot;unstable&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;div align=&quot;center&quot;&gt;&lt;img width=&quot;500&quot; height=&quot;375&quot; src=&quot;http://www.gra2.com/images/library/Image/snowy-zuri.jpg&quot; alt=&quot;&quot; /&gt;&lt;br /&gt;
&lt;/div&gt;
&lt;br /&gt;
While waiting for Cablecom to deliver my cablemodem, I usually go to a nearby Starbucks and drink a Green Tea while enjoying the 30 minute free Internet. Also, I have discovered that the connections that are already active do not get disconnected after those 30 minutes, so one can open a SSH tunnel and bypass that limit - but I'm not suggesting anything at all ;-)</content>
</entry>
<entry>
<title type="html">My Review of Leopard</title>
<link rel="alternate" type="text/html" href="http://www.gra2.com/article.php/my-review-of-leopard"/>
<id>tag:www.gra2.com,2007-11-06:/article.php/my-review-of-leopard</id>
<published>2007-11-06T17:33:24+01:00</published>
<updated>2007-11-06T17:33:24+01:00</updated>
<author>
<name>daniel</name>
</author>
<content type="html">I have been using Leopard, Apple's last &lt;em&gt;&amp;uuml;berfeline&lt;/em&gt;, for more than a week now. It is without any doubt, the best operating system I have ever used.&lt;br /&gt;
&lt;br /&gt;
&lt;div align=&quot;center&quot;&gt;&lt;img src=&quot;http://www.gra2.com/images/library/Image/leopard.png&quot; alt=&quot;&quot; /&gt;&lt;br /&gt;
&lt;/div&gt;
&lt;br /&gt;
Leopard is the natural successor to Tiger, which basically improves its older brother and adds some other very interesting features.&lt;br /&gt;
&lt;br /&gt;
I recently bought an iMac, so I got it almost free (~EUR 9). The only bad thing is that it is only an update DVD (i.e. you need Tiger to install it), and that it comes without the fancy retail box. Apart from that, it's the real thing. If you have bought an Apple computer after October 1st, you are entitled to your almost free copy of Leopard. Check the &lt;a href=&quot;http://www.apple.com/macosx/uptodate/&quot;&gt;Up-to-Date site&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Most of the Apple-made applications seem to run faster (particularly Safari, iTunes and iPhoto). &lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt; Time Machine&lt;/strong&gt; is astonishing. As easy as 1-2-3.&lt;br /&gt;
&lt;br /&gt;
Once you connect a Firewire or USB disk to the Mac, a menu automatically pops up asking you whether you want to use the disk as the Time Machine Backup Disk. If you answer affirmatively, an initial copy starts, which in my case, took less than an hour.&lt;br /&gt;
&lt;br /&gt;
&lt;div align=&quot;center&quot;&gt;&lt;img width=&quot;399&quot; height=&quot;90&quot; src=&quot;http://www.gra2.com/images/library/Image/timemachine.png&quot; alt=&quot;&quot; /&gt;&lt;br /&gt;
&lt;/div&gt;
&lt;br /&gt;
The great thing is that Time Machine doesn't require the disk to be dedicated to it. You still can use it to store other files. Time Machine just creates a folder called Backups.backupdb, where you can browse through the snapshots, stored in folders identified by date and time of backup.&lt;br /&gt;
&lt;br /&gt;
By default, Time Machine backups the incremental changes on your disk in one hour intervals. &lt;br /&gt;
&lt;br /&gt;
&lt;div align=&quot;center&quot;&gt;&lt;img src=&quot;http://www.gra2.com/images/library/Image/timemachine2.png&quot; alt=&quot;&quot; /&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;br /&gt;
When you click the Time Machine icon on the Dock, whether you have a Finder window open, iTunes, iPhoto, Mail, or any other supported application, the already well known space animation starts and lets you restore previously deleted files. &lt;br /&gt;
&lt;br /&gt;
&lt;div align=&quot;center&quot;&gt;&lt;img src=&quot;http://www.gra2.com/images/library/Image/timemachine3.png&quot; alt=&quot;&quot; /&gt;&lt;br /&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Spaces&lt;/strong&gt; is VirtueDesktop replacement, only it works better and is perfectly integrated.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Terminal&lt;/strong&gt; has tabs now, and several other aesthetic changes. I was using &lt;a href=&quot;http://iterm.sourceforge.net&quot;&gt;iTerm&lt;/a&gt; on Tiger, and trashed it almost instantly after seeing Terminal. &lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;QuickLook&lt;/strong&gt; allows you to preview almost any type of file without opening the actual application. &lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Mail&lt;/strong&gt; lets you write Notes and To-Do's. Unfortunately, it doesn't currently sync with the iPhone.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;iChat&lt;/strong&gt; allows desktop sharing, document sharing, video sharing. And you can be in the Tour Eiffel for free. Really cool.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Finder&lt;/strong&gt; has now CoverFlow. I personally don't use it, as I think it's easier to browse through files shown as icons, but may be useful for somebody who wants to see previews of the files of a folder at a glance.&lt;br /&gt;
&lt;br /&gt;
&lt;div align=&quot;center&quot;&gt;&lt;img src=&quot;http://www.gra2.com/images/library/Image/leopard-coverflow.png&quot; alt=&quot;&quot; /&gt;&lt;br /&gt;
&lt;/div&gt;
&lt;br /&gt;
Some other extra details:&lt;br /&gt;
- &lt;strong&gt;iCal&lt;/strong&gt;'s icon on the Dock now displays the current date, and not a static icon as it did on Tiger. Nice detail.&lt;br /&gt;
- &lt;strong&gt;Dictionary&lt;/strong&gt; now also searches on the Wikipedia.&lt;br /&gt;
- &lt;strong&gt;Spotlight&lt;/strong&gt; returns dictionary entries as well.&lt;br /&gt;
- &lt;strong&gt;Preview&lt;/strong&gt; now allows you to resize images.&lt;br /&gt;
&lt;br /&gt;
The only issue I've had so far is that MySQL ceases working, a recognised &lt;a href=&quot;http://bugs.mysql.com/bug.php?id=32019&quot;&gt;MySQL bug&lt;/a&gt;. Apparently, the update to Leopard messes up the mysql directory permissions. It can be fixed by manually chown(ing) the mysql directory:&lt;br /&gt;
&lt;strong&gt; chown -R mysql /usr/local/mysql-5.0.45-osx10.4-i686/&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
But the PreferencePane is definitely broken. You will have to start MySQL running&lt;strong&gt; /usr/local/mysql/bin/mysqld_safe &amp;amp;&lt;/strong&gt; from the Terminal.</content>
</entry>
<entry>
<title type="html">in.solit.us meets iPhone</title>
<link rel="alternate" type="text/html" href="http://www.gra2.com/article.php/insolitus-meets-iphone"/>
<id>tag:www.gra2.com,2007-10-26:/article.php/insolitus-meets-iphone</id>
<published>2007-10-26T16:54:40+02:00</published>
<updated>2007-10-26T16:54:40+02:00</updated>
<author>
<name>daniel</name>
</author>
<content type="html">We have been developing a new web interface made for iPhone (which should also work for those of you who have another mobile internet device), &lt;a href=&quot;http://in.solit.us/iphone&quot;&gt;in.solit.us for iPhone&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
The great thing is that you can have all your files on the go. Just upload your documents to in.solit.us and you will have them on your iPhone wherever you go!&lt;br /&gt;
&lt;br /&gt;
Once you log in the first time on your iPhone to in.solit.us, you will be presented with the following screen:&lt;br /&gt;
&lt;br /&gt;
&lt;div align=&quot;center&quot;&gt;&lt;img width=&quot;250&quot; height=&quot;360&quot; src=&quot;http://www.gra2.com/images/library/Image/insolitus-iphone.png&quot; alt=&quot;&quot; /&gt;&lt;br /&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
In your home page, in a similar way to the standard web interface, you will be able to see all the files and subfolders you have inside a folder, and navigate through them.&lt;br /&gt;
&lt;br /&gt;
Once you touch a file, it will open instantly in Safari, provided that it is a supported file. Safari currently supports PDFs, Images, Text files, Office files (Word, Excel and PowerPoint files), MP3, AAC, and some QuickTime video formats.&lt;br /&gt;
&lt;br /&gt;
Another great feature is live search. where you will be able to search within your files (public search is coming soon).&lt;br /&gt;
&lt;br /&gt;
&lt;div align=&quot;center&quot;&gt;&lt;img width=&quot;250&quot; height=&quot;359&quot; src=&quot;http://www.gra2.com/images/library/Image/insolitus-iphone-search.png&quot; alt=&quot;&quot; /&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div align=&quot;left&quot;&gt;I hope you like it as much as I do. Please give it a try and post your suggestions either here on in the &lt;a href=&quot;http://in.solit.us/forums&quot;&gt;in.solit.us forums&lt;/a&gt;.&lt;/div&gt;
&lt;/div&gt;</content>
</entry>
<entry>
<title type="html">Setting up database replication on MySQL</title>
<link rel="alternate" type="text/html" href="http://www.gra2.com/article.php/setting-up-database-replication-on-mysql"/>
<id>tag:www.gra2.com,2007-10-02:/article.php/setting-up-database-replication-on-mysql</id>
<published>2007-10-02T20:54:00+02:00</published>
<updated>2007-10-02T20:54:00+02:00</updated>
<author>
<name>daniel</name>
</author>
<content type="html">Database replication is, as the americans would say, quite awesome. It provides, for one, an always fresh database backup. But most of the time you won't do it for backups. The greatest thing about database replication is that you can use it for load balancing. &lt;br /&gt;
&lt;br /&gt;
Just replicate the database onto another server, and you have two atabase servers for SELECTs and you can leave the master for INSERTs, DELETEs and UPDATEs. The only bad thing about this is that you will need different connections for read and write (&lt;a href=&quot;http://drnicwilliams.com/2007/04/12/magic-multi-connections-a-facility-in-rails-to-talk-to-more-than-one-database-at-a-time/&quot;&gt;nothing that Dr. Nic's magic can't resolve&lt;/a&gt;), and you must have a fast connection between the two servers or you may have records that don't show up instantly when you store them (that's bad for a web application).&lt;br /&gt;
&lt;br /&gt;
First of all, I'm supposing you already have a production database running in a server. If you start from scratch with several database servers, then it's much easier, as you don't have to dump/restore databases.&lt;br /&gt;
&lt;br /&gt;
Go to your master server (let's say her name is scherie), and edit &lt;strong&gt;/etc/mysql/my.cnf&lt;/strong&gt;:&lt;br /&gt;
&lt;br /&gt;
Make sure you have set server-id to 1:&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;border: 1px solid rgb(132, 153, 186); background-color: rgb(225, 240, 218); padding-left: 10px; margin-left: 20px; margin-right: 20px;&quot;&gt; server-id = 1 &lt;/div&gt;
&lt;br /&gt;
You need to uncomment the bind-address line, as we need port 3306 open for our slave:&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;border: 1px solid rgb(132, 153, 186); background-color: rgb(225, 240, 218); padding-left: 10px; margin-left: 20px; margin-right: 20px;&quot;&gt; #bind-address = 127.0.0.1 &lt;/div&gt;
&lt;br /&gt;
By default, Debian for instance, already saves the transaction log. Uncomment or add it if you don't have it:&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;border: 1px solid rgb(132, 153, 186); background-color: rgb(225, 240, 218); padding-left: 10px; margin-left: 20px; margin-right: 20px;&quot;&gt; log_bin&amp;nbsp; = /var/log/mysql/mysql-bin.log&lt;/div&gt;
&lt;br /&gt;
Add a line for the database that will be dumped to the binary log:&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;border: 1px solid rgb(132, 153, 186); background-color: rgb(225, 240, 218); padding-left: 10px; margin-left: 20px; margin-right: 20px;&quot;&gt;binlog-do-db=database_to_be_replicated&lt;/div&gt;
&lt;br /&gt;
You can now restart the database:&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;border: 1px solid rgb(132, 153, 186); background-color: rgb(225, 240, 218); padding-left: 10px; margin-left: 20px; margin-right: 20px;&quot;&gt; scherie:~# /etc/init.d/mysql restart&lt;br /&gt;
&lt;/div&gt;
&lt;br /&gt;
Open a mysql client, and create a new user called replication_user (change this to whatever you want):&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;border: 1px solid rgb(132, 153, 186); background-color: rgb(225, 240, 218); padding-left: 10px; margin-left: 20px; margin-right: 20px;&quot;&gt; scherie:~# mysql -u root -p&lt;br /&gt;
&lt;br /&gt;
mysql&amp;gt; grant replication slave on *.* to 'replication_user'@'%' identified by 'password';&lt;br /&gt;
&lt;/div&gt;
&lt;br /&gt;
Now we have to lock temporarily the database while we proceed to dump it, so we have the correct binary log offset (Position).&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;border: 1px solid rgb(132, 153, 186); background-color: rgb(225, 240, 218); padding-left: 10px; margin-left: 20px; margin-right: 20px;&quot;&gt; mysql&amp;gt; flush tables with read lock;&lt;br /&gt;
Query OK, 0 rows affected (0.00 sec)&lt;br /&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;border: 1px solid rgb(132, 153, 186); background-color: rgb(225, 240, 218); padding-left: 10px; margin-left: 20px; margin-right: 20px;&quot;&gt; mysql&amp;gt; show master status&amp;#092;G;&lt;br /&gt;
*************************** 1. row ***************************&lt;br /&gt;
File: mysql-bin.00002&lt;br /&gt;
Position: 230&lt;br /&gt;
Binlog_Do_DB: database_to_be_replicated&lt;br /&gt;
Binlog_Ignore_DB: &lt;br /&gt;
&lt;br /&gt;
1 row in set (0.00 sec)&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;strong&gt;&lt;br /&gt;
Don't close the mysql client&lt;/strong&gt;. Leave the terminal open, otherwise, the database will be unlocked. Write down the File and Position values, we will need them later. &lt;br /&gt;
&lt;br /&gt;
Dump the database (&lt;a href=&quot;http://dev.mysql.com/doc/refman/5.0/en/load-data-from-master.html&quot;&gt;you could use load data from master&lt;/a&gt;, but it's deprecated and will be removed in the future).&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;border: 1px solid rgb(132, 153, 186); background-color: rgb(225, 240, 218); padding-left: 10px; margin-left: 20px; margin-right: 20px;&quot;&gt; scherie:~# mysqldump -u root -p database_to_be_replicated &amp;gt; database_to_be_replicated.sql&lt;br /&gt;
Enter password: &lt;br /&gt;
&lt;/div&gt;
&lt;br /&gt;
Once dumped return to the open terminal, and unlock tables:&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;border: 1px solid rgb(132, 153, 186); background-color: rgb(225, 240, 218); padding-left: 10px; margin-left: 20px; margin-right: 20px;&quot;&gt; mysql&amp;gt; unlock tables;&lt;br /&gt;
Query OK, 0 rows affected (0.00 sec)&lt;br /&gt;
&lt;br /&gt;
mysql&amp;gt; quit;&lt;br /&gt;
Bye&lt;br /&gt;
&lt;/div&gt;
&lt;br /&gt;
It would be a good idea to compress the database dump before transferring it:&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;border: 1px solid rgb(132, 153, 186); background-color: rgb(225, 240, 218); padding-left: 10px; margin-left: 20px; margin-right: 20px;&quot;&gt; scherie:~# bzip2 database_to_be_replicated.sql&lt;br /&gt;
scherie:~# scp database_to_be_replicated.sql daniel@athena:&lt;br /&gt;
&lt;/div&gt;
&lt;br /&gt;
You should also allow access from the slave to the master server, but block it otherwise (basic iptables rules):&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;border: 1px solid rgb(132, 153, 186); background-color: rgb(225, 240, 218); padding-left: 10px; margin-left: 20px; margin-right: 20px;&quot;&gt; -A INPUT -s ip_of_slave_server -p tcp -m tcp --dport 3306 -j ACCEPT&lt;br /&gt;
-A INPUT -p tcp -m tcp --dport 3306 -j REJECT --reject-with icmp-port-unreachable&lt;br /&gt;
&lt;/div&gt;
&lt;br /&gt;
You're done with the master configuration. Let's open a terminal to our slave server (let's say she is called athena):&lt;br /&gt;
&lt;br /&gt;
Check whether we have access to the master:&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;border: 1px solid rgb(132, 153, 186); background-color: rgb(225, 240, 218); padding-left: 10px; margin-left: 20px; margin-right: 20px;&quot;&gt; athena:~# mysql -u replication_user -p -h scherie&lt;br /&gt;
Enter password: &lt;br /&gt;
Welcome to the MySQL monitor.&amp;nbsp; Commands end with ; or g.&lt;br /&gt;
Your MySQL connection id is 38&lt;br /&gt;
Server version: 5.0.45-Debian_1-log Debian etch distribution&lt;br /&gt;
&lt;/div&gt;
&lt;br /&gt;
We can restore now the database dump from the master:&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;border: 1px solid rgb(132, 153, 186); background-color: rgb(225, 240, 218); padding-left: 10px; margin-left: 20px; margin-right: 20px;&quot;&gt; athena:~# bzip2 -d insolitus.sql.bz2 &lt;br /&gt;
athena:~# mysql -u root -p insolitus &amp;lt; insolitus.sql &lt;br /&gt;
Enter password: &lt;br /&gt;
&lt;/div&gt;
&lt;br /&gt;
Add the following data to the slave's my.cnf, under the [mysqld] section:&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;border: 1px solid rgb(132, 153, 186); background-color: rgb(225, 240, 218); padding-left: 10px; margin-left: 20px; margin-right: 20px;&quot;&gt; server-id&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 2&lt;br /&gt;
master_host&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = ip_of_master_server&lt;br /&gt;
master_user&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = replication_user&lt;br /&gt;
master_password&amp;nbsp;&amp;nbsp;&amp;nbsp; = password&lt;br /&gt;
replicate_do_db&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = database_to_be_replicated&lt;br /&gt;
&lt;/div&gt;
&lt;br /&gt;
Restart mysql:&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;border: 1px solid rgb(132, 153, 186); background-color: rgb(225, 240, 218); padding-left: 10px; margin-left: 20px; margin-right: 20px;&quot;&gt; athena:~# /etc/init.d/mysql restart&lt;br /&gt;
Stopping MySQL database server: mysqld.&lt;br /&gt;
Starting MySQL database server: mysqld.&lt;br /&gt;
&lt;/div&gt;
&lt;br /&gt;
Connect as root to our slave server:&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;border: 1px solid rgb(132, 153, 186); background-color: rgb(225, 240, 218); padding-left: 10px; margin-left: 20px; margin-right: 20px;&quot;&gt; athena:~# mysql -u root -p&lt;br /&gt;
&lt;/div&gt;
&lt;br /&gt;
Stop the slave:&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;border: 1px solid rgb(132, 153, 186); background-color: rgb(225, 240, 218); padding-left: 10px; margin-left: 20px; margin-right: 20px;&quot;&gt; mysql&amp;gt; slave stop;&lt;br /&gt;
Query OK, 0 rows affected (0.00 sec)&lt;br /&gt;
&lt;/div&gt;
&lt;br /&gt;
Now, we need those File and Position parameters we got from the master, change the values on master_log_file and master_log_pos for those you wrote down previously:&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;border: 1px solid rgb(132, 153, 186); background-color: rgb(225, 240, 218); padding-left: 10px; margin-left: 20px; margin-right: 20px;&quot;&gt; mysql&amp;gt; change master to master_host='ip_of_master_server', master_user='replication_user', master_password='password',master_log_file='mysql-bin.000002', master_log_pos=230;&lt;br /&gt;
Query OK, 0 rows affected (0.01 sec)&lt;br /&gt;
&lt;/div&gt;
&lt;br /&gt;
We start the slave:&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;border: 1px solid rgb(132, 153, 186); background-color: rgb(225, 240, 218); padding-left: 10px; margin-left: 20px; margin-right: 20px;&quot;&gt; mysql&amp;gt; slave start;&lt;br /&gt;
Query OK, 0 rows affected (0.00 sec)&lt;br /&gt;
&lt;/div&gt;
&lt;br /&gt;
Now, if we issue a show slave status, you should see the following variables to 'Yes':&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;border: 1px solid rgb(132, 153, 186); background-color: rgb(225, 240, 218); padding-left: 10px; margin-left: 20px; margin-right: 20px;&quot;&gt; mysql&amp;gt; show slave statusG;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Slave_IO_Running: Yes&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Slave_SQL_Running: Yes&lt;br /&gt;
&lt;/div&gt;
&lt;br /&gt;
If you have Slave_IO_Running set to No, you haven't probably locked correctly the database prior to dumping it. You will have to repeat the dumping process locking correctly the database.&lt;br /&gt;
&lt;br /&gt;
If everything is correct, your database will be automatically replicated. Doing a simple show processlist; in either the master or the slave will show whether the communication is working.&lt;br /&gt;
&lt;br /&gt;
You can also take a look at the full guide to &lt;a href=&quot;http://dev.mysql.com/doc/refman/5.0/en/replication.html&quot;&gt;replication at the MySQL official site&lt;/a&gt;.</content>
</entry>
</feed>

