tag:blogger.com,1999:blog-38255119733980689672024-03-14T04:49:49.318+01:00OstervallHobby engineeringGauthierhttp://www.blogger.com/profile/17129814908142884872noreply@blogger.comBlogger8125tag:blogger.com,1999:blog-3825511973398068967.post-88367908195218807302012-12-20T15:45:00.000+01:002012-12-20T15:45:05.409+01:00Vectorizing scansI am always unhappy about the way my scanned handwritten documents look. Pencil looks especially bad. I have earlier used the fantastic <a href="http://inkscape.org/">inkscape</a> to trace bitmaps and create vectorized versions of my scans, with success. But the process is somewhat cumbersome, and I tend to forget how to do it between the times I need it.<br />
<br />
The result is worth it, though. Black is real black, and since it produces vector graphics the edges are not pixelated, even if you zoom in.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://2.bp.blogspot.com/-BH-HzxcQkdY/UNMf5qUivWI/AAAAAAAAAyk/NeyJbeM3ND8/s1600/original.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="243" src="http://2.bp.blogspot.com/-BH-HzxcQkdY/UNMf5qUivWI/AAAAAAAAAyk/NeyJbeM3ND8/s400/original.png" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Original scan, grey and pixelated.</td></tr>
</tbody></table><br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://3.bp.blogspot.com/-LV1u7x4NCyc/UNMf6afQ2YI/AAAAAAAAAyw/9fioknN6tJM/s1600/vectorized.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="250" src="http://3.bp.blogspot.com/-LV1u7x4NCyc/UNMf6afQ2YI/AAAAAAAAAyw/9fioknN6tJM/s400/vectorized.png" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">After the vectorizing, black and white, and no visible pixelation (you may distinguish pixels here, since I converted the image from pdf to png).</td></tr>
</tbody></table><br />
Here comes a way to do it in one command from a terminal.<br />
<a name='more'></a><br />
<br />
<h2>Install the tools</h2>Inkscape uses <a href="http://potrace.sourceforge.net/">potrace</a> to trace bitmaps. Luckily, potrace is available as a standalone program. You need to install it. I used the package manager <a href="http://www.finkproject.org/">fink</a> to do that:<br />
<codeblock>$>fink install potrace</codeblock><br />
<br />
You need also <a href="http://en.wikipedia.org/wiki/Pdfimages">pdfimages</a> to extract images from the original pdf. It is included in <a href="http://en.wikipedia.org/wiki/Xpdf">xpdf</a>, which I also installed with fink:<br />
<codeblock>$>fink install xpdf</codeblock><br />
<br />
I did not need to install mkbitmap or ghostscript (<code>gs</code>), but I might have installed them earlier with other programs. If you get complaints about either of them, you'll need to install them as well.<br />
<br />
<h2>Create a script</h2>The process of conversion is as follows:<br />
- Extract images from the original pdf<br />
- Threshold the images to get black and white pixels only<br />
- Trace the bitmap images to vectors and generate pdf files<br />
- Merge the pdf files into one single pdf<br />
<br />
Here is the script that does all of that:<br />
<codeblock>#! /bin/sh<br />
# Create ppm images, one per pdf page.<br />
pdfimages $1.pdf $1_conv_temp<br />
# Create pbm images (no grey levels) from the ppm.<br />
mkbitmap $1_conv_temp*.ppm -t 0.48<br />
# Create pdf files from the pbm images, one per original page.<br />
potrace -b pdf -r 150 $1_conv_temp*.pbm<br />
# Combine the several pdf files into one.<br />
gs -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite \<br />
-sOutputFile=$1_vect.pdf $1_conv_temp*.pdf<br />
<br />
# Clean up<br />
rm $1_conv_temp* <br />
</codeblock><br />
<br />
Copy this to a new file, which you can call vectorize.sh, for example.<br />
Then you need to make this script executable with:<br />
<codeblock>$>chmod +x vectorize.sh</codeblock><br />
Make it accessible from anywhere by <a href="http://www.tech-recipes.com/rx/2621/os_x_change_path_environment_variable/">adding the scripts location to your path</a>.<br />
<br />
<h2>Run!</h2>When you are setup, run this script in a terminal:<br />
<codeblock>$>vectorize original</codeblock><br />
and your file <code>original.pdf</code> will be copied and vectorized to <code>original_vect.pdf</code>.<br />
Gauthierhttp://www.blogger.com/profile/17129814908142884872noreply@blogger.com1tag:blogger.com,1999:blog-3825511973398068967.post-41873088857137290872012-08-08T20:47:00.001+02:002012-08-08T20:49:26.342+02:00Mounting an exFAT disk in UbuntuI recently had trouble mounting an external drive in Ubuntu 11.04. <br />
<br />
I <a href="http://www.ostervall.se/2011/11/disk-backup-with-dd.html">take system disc images with dd</a>, from Ubuntu booted with a live CD. One of the steps of the process is to mount the drive where the backup file is to be stored. To do that I need to know the format of the drive.<br />
<br />
My problem was that <code>fdisk -l</code> told me that the destination drive was HPFS/NTFS, which was wrong. Connecting the drive to a Windows machine made it clear that it was formatted as exFAT.<br />
<br />
Ubuntu does not support the exFAT format in its current distribution (at least not in 11.04), which explains why <code>fdisk</code> gave the wrong information.<br />
<br />
If you have trouble connecting an external drive to your Ubuntu install, and <code>fdisk</code> tells you it is NTFS, read on...<br />
<a name='more'></a><br />
If you want Ubuntu to support exFAT, you can install fuse-exfat.<br />
<br />
Add the repository to apt-get:<br />
<codeblock>sudo add-apt-repository ppa:relan/exfat</codeblock><br />
Update apt-get so it is aware of the new repo:<br />
<codeblock>sudo apt-get update</codeblock><br />
Install fuse-exfat:<br />
<codeblock>sudo apt-get install fuse-exfat</codeblock><br />
After that, mount your external drive as you normally would:<br />
<codeblock>sudo mkdir /media/mydrive<br />
sudo mount -t exfat /dev/sdc1 /media/mydrive<br />
</codeblock><br />
Besides this (which needs to be done every time if you are running off a live CD as I do), exFAT is very practical since it works on Windows, Mac OS X, and Linux!<br />Gauthierhttp://www.blogger.com/profile/17129814908142884872noreply@blogger.com0tag:blogger.com,1999:blog-3825511973398068967.post-22987186461821358562012-06-03T11:16:00.000+02:002012-06-03T11:16:10.168+02:00Making system backup smallerWhile taking a snapshot of my system disk, I discovered that the image file produced by <code>dd</code> had grown way too large. This post explains what happened and how to solve it.<br />
<a name='more'></a><br />
<h1><code>dd</code> takes anything</h1>As described in <a href="http://www.ostervall.se/2011/11/disk-backup-with-dd.html">this</a> post, I use <code>dd</code> to take system snapshots, in case I mess up my installation. What <code>dd</code> does is a bit-to-bit copy of the input device, no matter the content. It does not care about file system, format, or even if there is any real information at a given location.<br />
<br />
<h1>System disc full</h1>I had a little mishappening while <a href="http://www.ostervall.se/2012/02/data-backup-with-rsync.html">backing up my data with rsync</a>. <br />
A mistake in the destination disc resulted in all my data (500 GB) being copied to the system disc (120 GB).<br />
Since there was not enough room for the whole data, <code>rsync</code> copied what it could then stopped when the system disc was full.<br />
<br />
<h1>Backup size</h1>Next time I took a system snapshot with <code>dd</code>, the resulting image file was 57 GB. Since the original clean image was 14 GB, this size was unexpected.<br />
<br />
<h1>Deleted files</h1>When files are deleted form a disc, the memory area they occupy is marked as free. Any program that wants to use memory to store data may use this freed area and overwrite its content.<br />
<br />
The act of deleting does not discard the data though. The bit content is still in place, although marked as overwritable. This is why deleting the content of large folders is much faster than copying (only about five seconds for 200 GB of data, as I could accidentally experience on my machine), marking as free is much faster than overwriting all the bits.<br />
<br />
After filling up my system disc with backup data, all bits in the free memory areas had been written to. Deleting this data did mark these areas as free, but the bit content was left.<br />
<br />
As mentioned before, <code>dd</code> takes all bits no matter what they mean. This includes the free memory areas. My <code>dd</code> system backup included all the data backup I had mistakenly put on the disc then erased.<br />
<br />
The system backups I make run also through <code>gzip</code>. The areas of my system disc that had never been written to had homogeneous data (all ones or all zeroes), making it easy for <code>gzip</code> to compress very effectively. With real data in these areas, <code>gzip</code> could not compress as much.<br />
<br />
In short:<br />
<ul><li>The system disc had first all 0 or all 1 in the unused memory areas,</li>
<li>the erroneous data backup wrote data to these formerly unused locations,</li>
<li>the data backup was deleted, thus freeing the memory areas again, but leaving the bit values as they were,</li>
<li>the next <code>dd</code> did backup these freed memory areas into the image file,</li>
<li><code>gzip</code> could not compress as easily as when there were large chunks of homogeneous data.</li>
</ul><br />
<h1>Clearing the free areas</h1>To fill up the free areas is easy: just create a big file full of zeroes, and this file will be placed wherever there is free memory.<br />
<br />
Delete the file full of zeroes, and these areas will be marked as free again.<br />
<br />
To do this, <code>dd</code> can be used again, with <a href="http://en.wikipedia.org/wiki//dev/zero">/dev/zero</a> as input. <code>/dev/zero</code> is an infinite stream that produces zeroes as long as requested.<br />
<br />
<codeblock>dd if=/dev/zero of=/big_zero_file<br />
rm /big_zero_file<br />
</codeblock><br />
Since there is no limit given in that command line, <code>dd</code> goes on until the disc is full.<br />
<br />
<h1>Next system backup</h1>... was only 19 GB instead of 57. No actual data was removed, only the free areas were replaced with zeroes, to give <code>gzip</code> a little push.<br />
<br />
This can also serve as a reminder: deleted files are easy to recover until the areas where they were placed is overwritten. Zeroing the free areas as described here is not sufficient either, there are analysis methods that can recreated data even if overwritten. If you really want to make sure that data is destroyed, you should overwrite it with random data using <code>/dev/random</code>, and do that several times. Or bring your disc to a <a href="http://www.youtube.com/watch?v=jGXh6RVTuq0&feature=related">grinder</a>.Gauthierhttp://www.blogger.com/profile/17129814908142884872noreply@blogger.com0tag:blogger.com,1999:blog-3825511973398068967.post-80138518769675381052012-02-19T16:47:00.000+01:002012-04-05T22:18:35.598+02:00Data backup with rsyncAfter years of backing up personal data on an external disk and keeping the disk in a cupboard, I finally got to implement something a bit more safe.<br />
<br />
<br />
<h1>Off site copy</h1><br />
Having your backup disk at home protects you against data loss in case of disk failure. Should your house burn down, your backup disk would not help much.<br />
If burglars pay you a visit and take your computer, they may just as well take all your electronic equipment as well, including your backup copy.<br />
<a name='more'></a><br />
The solution is of course to keep your backup copy (or a copy of your backup copy) outside your home.<br />
<br />
In my home backup implementation, I use two identical external disks. One disk stays at home for a month and takes periodical backups (weekly or daily), while the other one is locked at work. <br />
Once in a month, I swap the home disk with the work disk.<br />
<br />
If the disk that I currently have at home gets destroyed or stolen with my computer, I still have the data that I had at the latest disk swap.<br />
<br />
<h1>Periodical backup</h1>The primary failure of my previous backup (copy and forget) is that it was manual. Several months could go by between copying to my external disk. This new backup system is going to be automatic. <br />
<br />
I must also find a good way to enforce the monthly switch with the offsite disk, which I may easily forget. The best I can do so far is to automate a monthly notification.<br />
<br />
<h1>Disk format</h1>The data saved on my backup disks must be as readable as possible. If my hackintosh crashes, I do not want to need another Mac to recover the data. The <a href="http://en.wikipedia.org/wiki/ExFAT">exFAT</a> format is the first one I could find that supports writing and reading both in Windows and Mac OS X. Unfortunately, Snow Leopard does not let you format a disk in exFAT (surely because of legal issues, since Microsoft owns exFAT), so I had to do that from my Windows 7 machine.<br />
<br />
<h1>Smart copying</h1>Rather than just copying all data from an internal disk to the external, it would be better to only copy new files. Luckily, that is exactly what <code>rsync</code> does. <br />
<br />
From <a href="http://linux.about.com/gi/o.htm?zi=1/XJ&zTi=1&sdn=linux&cdn=compute&tm=119&f=10&su=p284.13.342.ip_p504.6.342.ip_&tt=2&bt=1&bts=1&zu=http%3A//www.samba.org/rsync/">rsync's man page</a>:<br />
<blockquote>Rsync is a fast and extraordinarily versatile file copying tool. [...] It offers a large number of options that control every aspect of its behavior and permit very flexible specification of the set of files to be copied. It is famous for its delta-transfer algorithm, which reduces the amount of data sent over the network by sending only the differences between the source files and the existing files in the destination. </blockquote><br />
<code>rsync</code> is available on Mac OS X, and probably on all modern linux distributions.<br />
<br />
So far, this command is what I use:<br />
<br />
<codeblock>$ rsync -av --exclude '*.app' ~/ /Volumes/Bluebird/</codeblock><br />
<ul><li><code>-a</code> is for archive, which preserves dates, permissions, owners, groups, symlinks, and the like. It also browse the source folder recursively.</li>
<li><code>-v</code> is for verbose. I like to see what is happening, this will probably be removed when I feel confident that the script is doing what I want.</li>
<li><code>--exclude</code> excludes file patterns from the backup. I have some applications that stubbornly put themselves in my home directory. I have also excluded <code>.Trash</code>, and will probably exclude <code>Library/</code>. A list of patterns to exclude may be provided in an external text file.</li>
<li><code>~/</code> is the source folder being backed up, and <code>/Volumes/Bluebird/</code> is where the backup files are being copied to. Note the <b>trailing slashes</b> in the paths!</li>
</ul><br />
<h1>Future improvements</h1>I do the copying with <code>rsync</code> and the swapping manually for now. Planned improvements are:<br />
<ul><li>automate the local copying with <code>cron</code></li>
<li>save the result in a log file</li>
<li>send a notification if something went wrong</li>
</ul><br />
To avoid swapping manually, I could put my offsite copy on an external server. This kind of services is already available from big companies, but I am not sure how much it would cost for several hundreds of gigabytes of raw format pictures and videos. It certainly wouldn't give me the satisfaction of having done the setup myself.<br />
<br />
Another alternative is to use a friend's server to connect my offsite copy disk to. This would require a reliable friend (or encryption, or both), who has a server on most of the time, and a decent line. It seems like a viable option, which I may look into in the future.<br />
<br />
I'll keep writing when I find time to implement these improvements.<br />Gauthierhttp://www.blogger.com/profile/17129814908142884872noreply@blogger.com3tag:blogger.com,1999:blog-3825511973398068967.post-45977061220959887452011-11-18T23:19:00.000+01:002011-11-27T22:03:19.733+01:00Disk backup with ddThis post describes how to create an image of a whole disk with dd. I use this to backup my Mac OS X system disk before a major change, for example upgrading from Snow Leopard to Lion. Since I see such operations as risky (<a href="http://www.ostervall.se/2011/10/my-hackintosh-build.html">not running on Apple hardware</a>), I want to be able to go back to a working state easily.<br />
<br />
This process is not limited to Mac OS X, you can follow this guide to create a disk image of whatever disk you want: your windows OS disk, your data, anything.<br />
<br />
Here are the steps I am going to go through in this post:<br />
<ul><li> start up in linux, </li>
<li> find the device name of the disk to backup, </li>
<li> find the mounted name of the disk where to save the backup, </li>
<li> run the <code>dd</code> command with the appropriate attributes, </li>
<li> test that the backup worked. </li>
</ul><a name='more'></a><br />
<h1>Start up in linux</h1>It feels safer to backup a system disk while the OS is not running. Therefore an OS running from a live CD seems a good solution. An <a href="http://www.ubuntu.com/download/ubuntu/download">Ubuntu live CD</a> provides all the command line tools needed. Burn a CD, boot up on it, and you are good to start.<br />
<br />
<h1>Find your OS disk</h1>Fire up a terminal. <code>$ls /dev</code> shows a list of all devices on your machine.<br />
Your disks are likely to be named by three letter combinations, such as sda, sdb, sdc, and so on. They may also be called hda, hdb, if you are using IDE disks and an old version of the linux kernel. <br />
You can also see cdrom, dvd, spu, hpet.<br />
<br />
Besides the disks' name, the partitions on these disks show up. For example in my installation, <code>sda1</code>, <code>sda2</code> are present, as partitions of the <code>sda</code> disk.<br />
<br />
Check your drives with the following command: <code>$sudo fdisk -l</code><br />
<br />
The result of this command gives you information about the physical volumes as well as their partitions.<br />
<br />
<codeblock>ubuntu@ubuntu:~$ sudo fdisk -l<br />
<br />
WARNING: GPT (GUID Partition Table) detected on '/dev/sda'! The util fdisk doesn't support GPT. Use GNU Parted.<br />
<br />
Disk /dev/sda: 120.0 GB, 120034123776 bytes<br />
255 heads, 63 sectors/track, 14593 cylinders<br />
Units = cylinders of 16065 * 512 = 8225280 bytes<br />
Sector size (logical/physical): 512 bytes / 512 bytes<br />
I/O size (minimum/optimal): 512 bytes / 512 bytes<br />
Disk identifier: 0x00000000<br />
<br />
Device Boot Start End Blocks Id System<br />
/dev/sda1 1 14594 117220823+ ee GPT<br />
/dev/sda2 * 1 1 0 0 Empty<br />
Partition 2 does not end on cylinder boundary.<br />
<br />
WARNING: GPT (GUID Partition Table) detected on '/dev/sdb'! The util fdisk doesn't support GPT. Use GNU Parted.<br />
<br />
Disk /dev/sdb: 2000.4 GB, 2000398934016 bytes<br />
255 heads, 63 sectors/track, 243201 cylinders<br />
Units = cylinders of 16065 * 512 = 8225280 bytes<br />
Sector size (logical/physical): 512 bytes / 4096 bytes<br />
I/O size (minimum/optimal): 4096 bytes / 4096 bytes<br />
Disk identifier: 0x00000000<br />
<br />
Device Boot Start End Blocks Id System<br />
/dev/sdb1 1 243202 1953514583+ ee GPT<br />
Partition 1 does not start on physical sector boundary.<br />
</codeblock><br />
Apparently <code>fdisk</code> does not like the format of my Mac OS X partitions. It does not really matter: no need to understand the content of the disk to make a bit copy of it.<br />
<br />
The disks are now identified: <code>sda</code> is the OS disk (120 GB), <code>sdb</code> is the data disk (2 TB). <br />
<br />
The content of the folder <code>/media</code> shows that both disks have been mounted:<br />
<br />
<codeblock>ubuntu@ubuntu:~$ ls /media<br />
cdrom data Snow Leopard<br />
</codeblock><br />
<br />
<h1>Unmounting</h1>Check where the volumes are mounted by using the command <code>mount</code> with no parameter. Filter the output with grep if you find it convenient:<br />
<codeblock>ubuntu@ubuntu:~$ mount | grep sda<br />
/dev/sda2 on /media/Snow Leopard type hfsplus (rw,nosuid,nodev,uhelper=udisks)</codeblock><br />
Then unmount the partition (in this case Snow Leopard):<br />
<codeblock>ubuntu@ubuntu:~$ umount /media/Snow\ Leopard </codeblock>Note that in my version of Ubuntu, the disk is still present in the file explorer, and selecting it mounts the disk automatically. Close your file explorer if you want to make sure that the disk does not get mounted by mistake.<br />
<br />
Note also that your disk's mounting point might not be in <code>/media</code>, depending on your version of linux. It could be called <code>/mnt/sda</code>, for example. You can check this in the output of the <code>mount</code> command.<br />
<br />
<h1>Destination</h1>You need somewhere to put the backup image. Since the goal of the backup is to restore in case I screw up, the image could very well be placed on a disk that already is in the computer. Unfortunately all my disks are formatted for Mac OS X and seem to be mounted as read-only. I'll save the image on an USB-disk.<br />
<br />
If you want to save the image as is, you need a destination disk at least as big as your source disk. It does not matter if the source disk is nearly empty, since all bits (even non-sense bits in the empty part of the disk) are going to be copied.<br />
<br />
The output of <code>dd</code> can be compressed, as we'll see later.<br />
<br />
After connecting the external hard drive, it gets mounted automatically. On my computer, the result of <code>mount</code> tells that the device is called <code>sdc</code>, and its mounting point is <code>/media/maxtor</code>.<br />
<br />
<h1>The dd command</h1>Now we have:<br />
<ul><li> an unmounted source disk,</li>
<li> the name of the source disk device,</li>
<li> a mounted external disk to save the backup to.</li>
</ul><br />
<a href="http://www.gnu.org/software/coreutils/manual/html_node/dd-invocation.html" title="dd">dd</a> copies bits from a source to a destination. There are some <a href="http://en.wikipedia.org/wiki/Dd_%28Unix%29" title="joke">jokes</a> about dd standing for "disk destroyer" or "delete data", more probable name origins would be "disk dump", "dump data", "data description". People cannot seem to agree on which.<br />
<br />
The syntax of the command parameters is a bit unusual, which can lead to confusion. It has certainly led to data destruction: if you get it wrong you might copy your empty destination unto your precious source.<br />
<pre>if is the source.
of is the destination.</pre>If you do not specify the parameter <code>if</code>, <code>dd</code> takes the standard input. If you do not specify the parameter <code>of</code>, <code>dd</code> takes the standard output. This means that <code>dd</code> can be used in combination with pipes, typically to <code>gzip</code>.<br />
<br />
Other options that I used with <code>dd</code> are:<br />
- <code>conv=sync,noerror</code>: makes <code>dd</code> jump over errors and put something (<code>NULL</code>) in the produced image to replace erroneous areas, so that the source and the destination are not misaligned.<br />
- <code>bs=64K</code>: large read chunks seem to <a href="http://www.linuxweblog.com/dd-image">speed up the process</a>, although I have not tested anything else personally.<br />
<br />
The command I finally used is the following:<br />
<codeblock>sudo dd if=/dev/sda conv=sync,noerror bs=64K | gzip -c > /media/maxtor/mac_os_x.img.gz</codeblock><ul><li> <code>if</code> is the Mac OS X system disk (<code>sda</code>),</li>
<li> there is no <code>of</code> argument, instead the output of <code>dd</code> is directed to the standard output,</li>
<li> the pipe gets this standard output or directs it to <code>gzip</code></li>
<li> <code>gzip</code> compressed this output and places it in a compressed image file on my mounted external hard drive.</li>
</ul>The resulting compressed image for my rather clean Mac OS X install (on a 120 GB disk) is around 14 GB. The disk was new just before installing the OS, it is supposedly filled with 0 or 1 in its empty areas, making the job of gzip easy.<br />
<br />
<h1>Validate the backup</h1>A backup solution is not valid until you have actually tried to restore. <br />
<br />
<h2>Destroy</h2>It felt a bit hard to willingly overwrite my working hackintosh system disk, but it would be harder to find out the backup was not working when I would need it.<br />
<br />
After the image is created (it takes approximately 30 minutes for my system) it's time to erase the disk, filling it up with zeroes: <codeblock>sudo dd if=/dev/zero of=/dev/sda bs=1M</codeblock>I actually tried to boot on <code>sda</code>. Needless to say, it did not work. <br />
<br />
<h2>Restore</h2>The reverse operations of those described earlier need to be run:<br />
<ul><li> uncompress the compressed image file with <code>gzip</code> and direct the result to the standard output,</li>
<li> pipe this standard output to the input of <code>dd</code>,</li>
<li> make <code>dd</code> put the resulting bit stream on the original (erased) Mac OS X disk.</li>
</ul>Here is the command:<br />
<codeblock>root@ubuntu:~# gunzip -c /media/matrox/mac_os_x.img.gz | dd of=/dev/sda bs=64K<br />
dd: writing `/dev/sda': No space left on device<br />
942+3661267 records in<br />
942+3661266 records out<br />
120034123776 bytes (120 GB) copied, 945.293 s, 127 MB/s<br />
</codeblock>If you cannot gain root access with <code>su</code>, do not forget to add <code>sudo</code> before <code>dd</code>. Putting <code>sudo</code> at the beginning of the command does not propagate to the other side of the pipe.<br />
<br />
Note that there is no <code>conv=sync,noerror</code> for <code>dd</code> this time. Running with these options did not work for me. I suppose that the erroneous areas were filled with <code>NULL</code> when the image was created, and did not need being taken care of at restoring (writing <code>NULL</code> back to erroneous areas should not matter). I am not certain about this theory, please comment if you know better.<br />
<br />
Booting on <code>sda</code> worked like a charm!<br />
<br />
Note: after the restore, the permissions on the content of <code>/System/Library/Extensions</code>, which I have under version control, had changed. The files became executable. I don't know if <code>dd</code> did that, or if something else did. The content of <code>/Extra/Extensions</code> was untouched. If you have an explanation, please leave a comment.<br />
<br />
---<br />
References:<br />
- <a href="http://www.debianhelp.co.uk/ddcommand.htm" title="debian help on the dd command">Debian help on the dd command</a><br />
- a man page for <a href="http://compute.cnr.berkeley.edu/cgi-bin/man-cgi?fdisk+1">fdisk</a><br />
- a man page for <a href="http://compute.cnr.berkeley.edu/cgi-bin/man-cgi?dd">dd</a><br />
- <a href="http://www.linuxweblog.com/dd-image">http://www.linuxweblog.com/dd-image</a>Gauthierhttp://www.blogger.com/profile/17129814908142884872noreply@blogger.com3tag:blogger.com,1999:blog-3825511973398068967.post-65107555856579595652011-11-08T23:03:00.000+01:002011-11-09T22:52:17.351+01:00Installing Mac OS XInstalling OS X on a non-apple hardware is easier than it sounds, as long as the hardware is <a href="http://www.ostervall.se/2011/10/my-hackintosh-build.html">compatible</a>.<br />
<br />
<h1>Method at tonymacx86</h1>Tonymacx86 provides a <a href="http://tonymacx86.blogspot.com/2010/04/iboot-multibeast-install-mac-os-x-on.html">standard method</a> for installing Mac OS X on a Sandy Bridge system. This method worked fine for basic funtionality, and only a few more tweaks were needed for sound and network to work.<br />
What you need besides the computer is:<br />
<ul><li> a blank CD, for iBoot and Multibeast</li>
<li> an OS disk purchased from Apple</li>
</ul><br />
The method makes it very important not to restart after updating to 10.6.8. That is precisely where my computer crashed, so I had no choice but to restart anyway. That did not seem to cause any problem, though.<br />
<br />
From the Multibeast installer, you are presented with two options: EasyBeast and UserDSDT.<br />
<br />
<a name='more'></a><br />
<h2><span class="Apple-style-span" style="font-size: small;"><span class="Apple-style-span" style="font-weight: normal;"><br />
</span></span> EasyBeast</h2>This is the cookie cutter method of installing Mac OS X. No headache, but apparently you cannot expect all components to work at their best.<br />
After installing with EasyBeast, I had a kind-of-working-hackintosh, with no sound and no network. The graphics card seemed to work fully, with no need to tweak by hand.<br />
<br />
<h2>Motherboard specific DSDT</h2>Tonymacx86 publishes <a href="http://www.tonymacx86.com/dsdt.php">ready made DSDT</a> for a number of motherboards.<br />
Since not all functionalities of my motherboard were enabled, this seemed to be the road to take.<br />
The DSDT are automatically generated and not necessarily tested. Be sure to use a DSDT that matches you BIOS version, or upgrade your BIOS. I had troubles with the DSDT for version F6 of my BIOS, so I had to run with F5.<br />
<br />
If you plan on building a hackintosh, I would recommend to select a motherboard that has a published DSDT.<br />
<br />
<h1>What does Multibeast do?</h1>Multibeast lets the user select packages to install. As far as I understand, it:<br />
<ul><li> adds kexts (short for "kernel extension", the mac equivalent to drivers) in the following folders: <code>/System/Library/Extensions</code> or <code>/Extra/Extensions</code></li>
<li> updates plist files in <code>/Extra/Extensions</code></li>
<li> creates your own <code>DSDT.aml</code> in <code>/Extra/Extensions</code>.</li>
</ul><br />
<h2>A tree</h2><div class="separator" style="clear: both; text-align: center;"><a href="https://lh6.googleusercontent.com/-qq5qI2XZHlQ/TrmlSVsDNeI/AAAAAAAAAGc/RHQZ-u4k5wY/s576/multibeast.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://lh6.googleusercontent.com/-qq5qI2XZHlQ/TrmlSVsDNeI/AAAAAAAAAGc/RHQZ-u4k5wY/s576/multibeast.png" width="450" /></a></div>Multibeast's interface is a tree of clickable items. It installs what you select, but <b>does not uninstall what you do not select</b>. This can cause problems because some of the items are incompatible with one another. If you install 'item a' to test it, then later install 'item b' which is incompatible with 'a', your system might just stop booting.<br />
You cannot try items one by one until everything works, you need to uninstall what you tried before going to the next item. See the following section about reverting changes.<br />
<br />
<h2>Parent nodes</h2><div class="separator" style="clear: both; text-align: center;"><a href="https://lh4.googleusercontent.com/-0HrNPzzRtYY/Trmjm2Mb-dI/AAAAAAAAAGM/rd54Bo76tKw/s576/multibeast_parent_node.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://lh4.googleusercontent.com/-0HrNPzzRtYY/Trmjm2Mb-dI/AAAAAAAAAGM/rd54Bo76tKw/s576/multibeast_parent_node.png" width="450" /></a></div>Multibeast items that have children are also selectable. Clicking on such a node selects all the children items, even if these are incompatible with one another. Selecting a parent item and thus all its children is a very easy mistake to make.<br />
<br />
<h1>Reverting changes</h1>A key skill when installing kexts is apparently to be able to remove or undo the changes you just tested.<br />
<br />
Unfortunately, Multibeast provides no log files of what it does to your installation. A text file mentioning when and where it added what files would be very nice. Being told "you installed 5 HDAEnablers for different chips" would have saved me much time.<br />
<br />
What you can do to revert changes that did not turn out well is to:<br />
<ul><li> Remove the offending kexts,</li>
<li> Delete your whole <code>/Extra</code></li>
<li> Rerun Multibeast and select <code>System Utilities</code> parent node (or both its children nodes).</li>
</ul>You need to know what kexts to remove, which I generally do not. The description text for each item in Multibeast can be helpful, but it is not always clear which kexts were installed and where.<br />
<br />
In order to compensate for that, I have now set <code>/System/Library/Extensions</code> and <code>/Extra/Extensions</code> under version control, using <code>git</code>. Now if my install breaks, I will be able to see what files have been added since the last time, and remove the changes with a single command: <code>git reset --hard</code>. I might write a crash course about using git for this purpose in the near future.<br />
<br />
<h1>Adding sound and network</h1>Sound was working with the universal VoodooHDA 0.2.72 kext. I noticed however that the levels were really low (only up to half of the VU-meter on my mixer board input). I had to crank up the stereo's volume quite a bit to get a normal sound output, and then the background noise was way too high, especially for a sound chip that advertises 108 dB signal to noise ratio (SNR). Of course 108 dB theoretical SNR is just a marketing value, but this was so far off that I knew something was wrong.<br />
<br />
A possible explanation: the VoodooHDA kext may have used only part of the bits available in hardware for each sample. Theoretical 108 dB SNR implies 18 bits resolution ([dB] = 20 × log<sub>10</sub>(2<sup>[number of bits]</sup>)).<br />
Using only 16 of these 18 bits would give a signal 12 dB lower for the same amount of background noise. By turning up the volume of the stereo I would compensate to get 12 dB extra on the signal, thus increasing the background noise by 12 dB as well.<br />
<br />
Tonymacx86 published an ALC HDA sound installation method that seems made for motherboards such as mine: <a href="http://tonymacx86.blogspot.com/2010/12/new-unified-realtek-onboard-audio.html">New Unified Realtek Onboard Audio Solution: ALC8xxHDA</a><br />
<br />
This did not work at once. At first try, the OS stopped booting and gave cryptical error messages.<br />
After reviewing the content of <code>/System/Library/Extensions</code>, I noticed that all HDAEnabler kexts available in Multibeast were present. I did not remember selecting all these kext files, what happened is probably what I described in "Parent nodes" above: selecting the whole "HDAEnablers" item also selected all of its children. <br />
I must have selected this parent node by mistake at some time, and they started conflicting.<br />
<br />
The solution was to uninstall all these kexts, as described in the above section "Reverting changes", then reinstall the correct kext alone. The difference on the sound output was dramatic, I am impressed that a sound chip integrated to a motherboard (and not a specially expensive one) can have such high quality. I had already purchased an external sound card, but I wonder if this integrated sound chip would not have been enough for my modest music studio needs.<br />
<br />
Adding network was just a matter of testing the (at the time) two available options. Interestingly, the recommended choice did not work for me.<br />
<br />
<h1>Playing safe</h1>There is still much that I do not understand with how the system files are organized. While I feel pretty confident about version controlling the <code>/System/Library/Extensions</code> and <code>/Extra/Extensions</code> folders, I am not aware of other locations that are susceptible to change and break.<br />
<br />
Once happy with the state of the install it was time to create a disk image of the whole OS disk, but that is the subject of a future post.Gauthierhttp://www.blogger.com/profile/17129814908142884872noreply@blogger.com1tag:blogger.com,1999:blog-3825511973398068967.post-33411053482721981222011-10-30T21:52:00.000+01:002011-11-09T22:52:38.423+01:00My hackintosh buildI finally decided that Apple was missing to my culture and that it needed to be fixed.<br />
<br />
<h1>What is a hackintosh?</h1>In short, a hackintosh is a regular PC on which you install Mac OS X. The challenge is that not all hardware is supported, so there is some research to do ahead. You do not want to pay for a fancy graphics card that doesn't work with the OS.<br />
<br />
<h1>Why?</h1>The "it just works" concept did not appeal to me very much. The main idea was to learn, and there is no better way for that than doing it yourself. (To be honest, the price of Apple's hardware helped me make that decision as well.)<br />
<br />
Add that I enjoy doing the research and learning about all the new hardware finesses since the last time I built a computer (2005), plus that I appreciate to tackle a challenge.<br />
<br />
My old computer was getting crippled and too loud to my taste. These are just further excuses for having fun building a new computer.<br />
<br />
As for many decisions people make, I think that <a href="http://en.wikipedia.org/wiki/Somatic_markers_hypothesis">my guts just decided to do it</a>, then found or invented seemingly rational reasons.<br />
<br />
<a name='more'></a><br />
<h1>How?</h1>Luckily, there are amazing resources on the internet for building hackintoshes. The best I have found is <a href="http://www.tonymacx86.com/">tonymacx86</a>. This site has even a <a href="http://tonymacx86.blogspot.com/search/label/CustoMac">shopping list page</a> listing hardware verified to work fully. This was my starting point, the motherboard I selected is from that list, as well as the processor.<br />
<br />
I hate loud computers. The last time I built one I spent quite some time on <a href="http://silentpcreview.com/">silentpcreview</a>, a heaven for noise-aware computer builders.<br />
<br />
Choosing parts involved the following requirements:<br />
<ul><li> compatible with Mac OS X (either as part of the shopping list mentioned above, or after discussions on <a href="http://www.tonymacx86.com/index.php">tonymacx86's forum</a>),</li>
<li> quiet components according to <a href="http://silentpcreview.com/">silentpcreview</a>,</li>
<li> prices low enough that the final price tag would not get even close to the corresponding Apple hardware.</li>
</ul>Finally I added one more constraint:<br />
<ul><li>linux compatible.</li>
</ul>My previous rig had a <a href="http://www.creative.com/emu/products/product.aspx?category=505&pid=19169">nice sound card</a>, I noticed only too late that it had no driver for linux. If installing Mac OS X failed, I'd always have linux as a backup plan. Paying the sum required for windows was not an option, given that I don't feel a big need to widen my microsoft related culture.<br />
<br />
<h1>The hardware</h1>Here is what I ended up with:<br />
<br />
<h2>Processor</h2><a href="http://ark.intel.com/products/52210">Intel Core i5-2500K @ 3.30 GHz</a>. I decided I did not have the budget or the need for an i7. This also gives me the possibility to overclock in the future.<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://1.bp.blogspot.com/-qIten4mrN7A/TqcAGPyPXUI/AAAAAAAAABQ/1eVVOZ92Y-8/s1600/processor.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://1.bp.blogspot.com/-qIten4mrN7A/TqcAGPyPXUI/AAAAAAAAABQ/1eVVOZ92Y-8/s320/processor.JPG" width="550" /></a></div><br />
<h2>Motherboard</h2><a href="http://www.gigabyte.com/products/product-page.aspx?pid=3768">Gigabyte GA-H67MA-UD2H-B3 (rev. 1.1)</a>.<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://4.bp.blogspot.com/-j-hEkCwP6XE/TqcA4zCXsCI/AAAAAAAAABc/e767sYHfgY4/s1600/motherboard.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://4.bp.blogspot.com/-j-hEkCwP6XE/TqcA4zCXsCI/AAAAAAAAABc/e767sYHfgY4/s400/motherboard.JPG" width="550" /></a></div><br />
It feels now that I could have used more time reading about the chipset options. I decided that I did not need internal connectors for USB3, since I selected a case that did not have USB3 connectors.<br />
<br />
This is one of the motherboards in tonymacx86's <a href="http://tonymacx86.blogspot.com/search/label/CustoMac">recommended builds</a> with Sandy Bridge.<br />
<br />
<h2>Graphics card</h2>Gigabyte's <a href="http://www.gigabyte.com/products/product-page.aspx?pid=3584#ov">GV-R577SL-1GD</a>. Passive cooling, no added noise.<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://lh5.googleusercontent.com/-zE49vFzoLZc/TqcBvXOkCyI/AAAAAAAAABo/Bj13DTZgAYY/s800/graphics.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://lh5.googleusercontent.com/-zE49vFzoLZc/TqcBvXOkCyI/AAAAAAAAABo/Bj13DTZgAYY/s800/graphics.JPG" width="550" /></a></div>This thing is enormous, so it influenced the choice of a case.<br />
<br />
At least some Mac Pros have an HD5770, so I figured this would be a good choice for a hackintosh. Given that I wanted passive cooling, the choice was dramatically reduced. I took that as a blessing.<br />
<br />
<h2>RAM</h2>Nothing special to be said here. Twice 4 GB.<br />
Corsair XMS3 8 GB 1333mhz DDR3.<br />
<br />
<h2>Power supply</h2><a href="http://www.seasonicusa.com/NEW_X-series_560.htm">Seasonic X-560</a>.<br />
Silentpcreview's <a href="http://www.silentpcreview.com/article986-page1.html">editor's choice</a>, you can't go wrong with that. The PSU was the major source of noise in my old computer. This one turns off its fan when it does not need it.<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://3.bp.blogspot.com/-d643MuqykTc/TqcEruD3WRI/AAAAAAAAAB0/7WFLKU9NpiM/s1600/psu.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://3.bp.blogspot.com/-d643MuqykTc/TqcEruD3WRI/AAAAAAAAAB0/7WFLKU9NpiM/s400/psu.JPG" width="550" /></a></div>The packaging is ridiculous. A velvet pouch, and a bag in strong impregnated fabrics with gold colored paint containing the cables. I suppose that Seasonic's marketing department wanted to increase the premium feeling of the PSU, but I just felt sad about the unnecessary resources used for packaging I'll never look at. Perhaps the resource cost is negligible compared to that used for the PSU itself, but I dislike the principle.<br />
<br />
The PSU can be mounted in the case in two directions: fan facing up (towards the inside of the case, contributing to its air flow), or down (towards the bottom venting hole of the case, with no contact with the case's air flow). I chose to mount it with the fan facing downwards to separate it from the case's air flow, easing the regulation of intake and exhaust in the future.<br />
<br />
I expect the PSU fan to be off most of the time anyway.<br />
<br />
<h2>CPU cooler</h2><a href="http://www.scythe-usa.com/product/cpu/118/images/ScytheUSA-ProductsCPUCoolerMUGEN3.html">SCYTHE Mugen 3</a>.<br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://1.bp.blogspot.com/-q60ljO0PNdo/TqcFU1xUCYI/AAAAAAAAACA/ssRchob4V4M/s1600/CPU_cooler_back.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://1.bp.blogspot.com/-q60ljO0PNdo/TqcFU1xUCYI/AAAAAAAAACA/ssRchob4V4M/s400/CPU_cooler_back.JPG" width="550" /></a></div>Installing big heatsinks has become easier with access to the back side of the motherboard.<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://2.bp.blogspot.com/-6CtFozFh9aQ/TqcFo3nVoJI/AAAAAAAAACM/Y5UzHwxj3wc/s1600/CPU_paste.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://2.bp.blogspot.com/-6CtFozFh9aQ/TqcFo3nVoJI/AAAAAAAAACM/Y5UzHwxj3wc/s400/CPU_paste.JPG" width="550" /></a></div><div style="text-align: center;"><i>Thermal grease applied.</i></div><div style="text-align: center;"><br />
</div><div class="separator" style="clear: both; text-align: center;"><a href="http://4.bp.blogspot.com/-UqPT5aKOP4w/TqcGCm70_4I/AAAAAAAAACY/CIm3IaI68uo/s1600/CPU_cooler1.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://4.bp.blogspot.com/-UqPT5aKOP4w/TqcGCm70_4I/AAAAAAAAACY/CIm3IaI68uo/s400/CPU_cooler1.JPG" width="550" /></a></div><div style="text-align: center;"><i>The Scythe mugen 3</i></div><br />
This is also big. I actually purchased a Mugen 2, I got a bit nervous about receiving a Mugen 3 (version upgrade does not always mean better performance). A quick search showed that the performance was very similar.<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://1.bp.blogspot.com/-utwslR8T4qg/TqcGe2pcNEI/AAAAAAAAACk/xmMhCpWNxuc/s1600/CPU_cooler_in_case.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://1.bp.blogspot.com/-utwslR8T4qg/TqcGe2pcNEI/AAAAAAAAACk/xmMhCpWNxuc/s400/CPU_cooler_in_case.JPG" width="550" /></a></div><div style="text-align: center;"><i>In place in the case, before installing the fan.</i></div><br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://2.bp.blogspot.com/-Q5k6Rhfli0Y/TqcHO0bNpWI/AAAAAAAAACw/YcL9mfsjryM/s1600/CPU_cooler_tight.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://2.bp.blogspot.com/-Q5k6Rhfli0Y/TqcHO0bNpWI/AAAAAAAAACw/YcL9mfsjryM/s400/CPU_cooler_tight.JPG" width="550" /></a></div><div style="text-align: center;"><i>The installation is tight, the fan cable touches the RAM. I ended up rotating the fan 90 degrees.</i></div><br />
<h2>Drives</h2><h3>System disk</h3>SSD <a href="http://www.codinghorror.com/blog/2011/05/the-hot-crazy-solid-state-drive-scale.html">of course</a>! <a href="http://www.ocztechnology.com/ocz-agility-3-sata-iii-2-5-ssd.html">OCZ Agility 3 Series SATA III 2.5" SSD 120GB</a>.<br />
I nearly bought another brand but checked max read and write speeds at the last second. There seem to be big variations across the brands, make sure to compare thoroughly before you buy one.<br />
<br />
<h3>Data disk</h3><a href="http://www.wdc.com/en/products/products.aspx?id=120">Western Digital Green Caviar, 2 TB</a>. SATA 6 Gb/s. Apparently 5400 RPM according to <a href="http://www.silentpcreview.com/article927-page1.html">silentpcreview</a>. A quiet disk, which I also suspended in the hard disk tray with cheap rubber bands.<br />
<br />
<h3>Optical drive</h3>A random blue-ray reader and DVD-burner. It turns out that Mac OS X does not support blue-ray out of the box, something I failed to check.<br />
<br />
<h2>Case</h2><a href="http://www.fractal-design.com/?view=product&prod=48">Fractal Design Define R3</a>.<br />
I was recommended this box on the silentpcreview forum, and I was amazed at its low price. It is also stylish, although it's blue LED is a bit intrusive.<br />
<br />
A lot of possible fan configurations, bottom placement of the PSU, nice cable routing system.<br />
<br />
Most importantly, it is big enough to accomodate for the Mugen CPU cooler and the big fanless graphics card.<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://4.bp.blogspot.com/-oTaqXtitIX0/TqcIF2ovq6I/AAAAAAAAAC8/ZhPqH0n3RRg/s1600/case_CPU_cooler_closed.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://4.bp.blogspot.com/-oTaqXtitIX0/TqcIF2ovq6I/AAAAAAAAAC8/ZhPqH0n3RRg/s400/case_CPU_cooler_closed.JPG" width="400" /></a></div><div style="text-align: center;"><i>The top of the CPU cooler's heatpipes, in the closed case.</i></div>The heatpipes reach almost all the way to the cover. Shot taken through a backside venting hole.<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://3.bp.blogspot.com/-P9rkTZXC3OQ/TqcIgM2JWBI/AAAAAAAAADI/buQZCYgVin8/s1600/case_CPU_and_graphics.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://3.bp.blogspot.com/-P9rkTZXC3OQ/TqcIgM2JWBI/AAAAAAAAADI/buQZCYgVin8/s400/case_CPU_and_graphics.JPG" width="400" /></a></div><div style="text-align: center;"><i>Inside the case with the CPU cooler (lower right), the graphics card (where it says Gigabyte). In the back, a bottom venting hole and the PSU.</i></div><br />
It looks like the CPU cooler and the heat sink of the graphics card take almost the whole width of the case. With my current fan configuration (bottom of the front panel, top of the back panel), nearly the whole airflow should go through both coolers, and there is not much room for the air to pass by on the side of them.<br />
<br />
<h1>Conclusions</h1>Once mounted (it took a while, with all the photo sessions), I was surprised and a little proud to see the computer boot to BIOS at once!<br />
<br />
<h2>Noise</h2>While the noise level is very low, I would not call this a silent PC, but definitely quiet. The case fans are the default Fractal Design, and the CPU fan is what came with the Mugen. I might to do some research for replacement in the future, <a href="http://www.noctua.at/main.php?show=start">Noctua</a> seems to have interesting <a href="http://www.legitreviews.com/article/1007/1/">alternatives</a>.<br />
I am very happy with the noise level overall, it sounds less than a standard laptop.<br />
<br />
<h2>Temperature</h2>I cannot say much yet, but the cores are at about 32°C while I am surfing. Playing half-life 2 at max settings increases the temperatures by about 10°C. It is an old game, so I do not think this shows much, I will have to write a new post if I find the interest in benchmarking.<br />
<br />
<h2>Price</h2>Grand total of 9394 SEK (1433 USD, 1030 EUR, according to Google's <a href="http://www.google.se/search?gcx=c&sourceid=chrome&ie=UTF-8&q=9394+sek+in+usd">currency converter</a>). Note that I do not count the hours of research, the hassle of building, installing the OS... These would add up to an obscene amount.<br />
<br />
For reference, here is a <a href="http://store.apple.com/us_smb_78313/browse/home/shop_mac/family/mac_pro">link to apple's site</a>, featuring the price of their Quad-Core Mac Pro: 2.8 GHz, 3 GB RAM, 1 TB Hard drive, a similar graphics card as mine.<br />
<br />
Finally, a picture of the whole finished system:<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://3.bp.blogspot.com/-DhjYMDtujcg/TqcWxLf1FbI/AAAAAAAAADU/8h8_KtrF7JI/s1600/whole_system.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://3.bp.blogspot.com/-DhjYMDtujcg/TqcWxLf1FbI/AAAAAAAAADU/8h8_KtrF7JI/s400/whole_system.JPG" width="550" /></a></div>Gauthierhttp://www.blogger.com/profile/17129814908142884872noreply@blogger.com0tag:blogger.com,1999:blog-3825511973398068967.post-83231745793899418052011-10-23T11:54:00.000+02:002011-10-27T22:38:54.025+02:00One new blog to the Internet!This is a new blog. As if there were not enough of them.<br />
<br />
The reason why I start this is mainly egoistic, naturally. I have been frustrated with myself lately: I get inspired, I get ambitions, sometimes I even have my own novel ideas (this is rare), but it goes past that point too seldom to my taste.<br />
<br />
I am currently reading Professor Richard Wiseman's book <a title="59 seconds" href="http://www.amazon.co.uk/59-Seconds-Think-little-change/dp/0330511602/ref=sr_1_1?ie=UTF8&qid=1317760318&sr=8-1" target="_blank">59 seconds</a>. While I am usually sceptical to self-help books, this one is interestingly backing up its claims with actual references to research papers. In the book, Professor Wiseman points out that making your goals public helps you reaching them, referring to [1]:<br />
<br />
<blockquote>Two studies were conducted to identify mechanisms responsible for observed "self-reinforcement" effects. In Experiment 1, using a studying task, self-reinforcement procedures did not work when they were private (i.e., when others are not aware of the goals or contingencies), but did work when they were public. Self-delivery of consequences added nothing to the effectiveness of the procedure. The data suggested that public goal setting was the critical element in the procedure's effectiveness.</blockquote>So maybe if I start reporting about the projects I dream about working on, I would actually make them happen? My main focus will be on technical stuff, computer or electronics related. I will probably start writing on the hackintosh I just built, and hopefully report on future hardware projects.<br />
<br />
I sure hope that once I publish my future results, I can get feedback from which I can learn! This is a second reason for starting this blog.<br />
<br />
I might also post on something different every now and then. I’ll try and find a practical way to sort posts in categories or with tags, so that you can setup your RSS readers to follow only the part you are interested in.<br />
<br />
---<br />
<br />
[1] S.C.Hayes, I. Rosenfarb, E. Wolfert, E. Munt, Z. Korn and R. D. Zettle (1985). "<a href="http://www.ncbi.nlm.nih.gov/pmc/articles/PMC1308011/pdf/jaba00029-0017.pdf" target="_blank">Self-Reinforcement Effects: An Artifact of Social Standard Setting?</a>", <em>Journal of Applied Behavior Analysis</em>, 18 (3), pages 201-214.Gauthierhttp://www.blogger.com/profile/17129814908142884872noreply@blogger.com1