<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>SMYCK</title>
	<atom:link href="http://smyck.net/feed/" rel="self" type="application/rss+xml" />
	<link>http://smyck.net</link>
	<description></description>
	<lastBuildDate>Mon, 23 Apr 2012 16:41:57 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Why Erlang?</title>
		<link>http://smyck.net/2012/04/22/why-erlang/</link>
		<comments>http://smyck.net/2012/04/22/why-erlang/#comments</comments>
		<pubDate>Sun, 22 Apr 2012 19:16:26 +0000</pubDate>
		<dc:creator>hukl</dc:creator>
				<category><![CDATA[digital]]></category>
		<category><![CDATA[english]]></category>
		<category><![CDATA[erlang]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[concurrency]]></category>
		<category><![CDATA[functional programming]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://smyck.net/?p=2092492022</guid>
		<description><![CDATA[The chance that you are reading this blog post on a device with a multicore cpu is increasing on a daily basis which is why everybody is talking about concurrency now. Concurrency for our web applications and API backends means that we&#8217;d like our htop to look like this: I&#8217;ve recently been to a really [...]]]></description>
			<content:encoded><![CDATA[<p>The chance that you are reading this blog post on a device with a multicore cpu is increasing on a daily basis which is why everybody is talking about concurrency now. Concurrency for our web applications and API backends means that we&#8217;d like our htop to look like this:</p>
<p><img src="http://smyck.net/blogimages/concurrent.jpg" alt="htop screenshot" /></p>
<p>I&#8217;ve recently been to a really awesome <a href="http://railsberry.com/">ruby conference</a> and three or four talks out of 21 were about concurrency. The ruby community is quite open and so many possibilities were discussed: Using threads, using different ruby runtimes to circumvent the <a href="https://en.wikipedia.org/wiki/Global_Interpreter_Lock">GIL</a>, using more processes, using the <a href="https://en.wikipedia.org/wiki/Actor_model">actor model</a> via libraries like <a href="http://celluloid.io/">Celluloid</a> or even using <a href="http://akka.io/">Akka</a> through JRuby. </p>
<p>While the actor model seems to be a good fit for building concurrent network applications it often suffers from problems if the runtime it is implemented in has no &#8220;native&#8221; support for it. There are implementations for Ruby, Python and Java but they all have to jump through several hoops to get the job done and are not necessarily yielding the best performance. This is one of many reasons why Erlang would be a much better choice but first, lets talk about this actor model for a bit to understand why it is such a good fit. </p>
<h2>The Actor Model</h2>
<p>There is this nice quote from wikipedia which offers a first glimpse:</p>
<blockquote><p>»The Actor model adopts the philosophy that everything is an actor. This is similar to the everything is an object philosophy used by some object-oriented programming languages, but differs in that object-oriented software is typically executed sequentially, while the Actor model is inherently concurrent.«</p></blockquote>
<p>While there are some resemblances between actors and objects, like modularity, encapsulation and message passing, the main feature of actors is that they are being run at the same time.</p>
<p>Strictly using message passing for sharing state with other actors which run in parallel enables asynchronous communication, meaning that the sender does not have to wait for a response from the receiver.</p>
<p>Another big difference to the OOP world is that in the actor model there is no global state and therefore also no shared memory between actors. In languages like Java, Ruby and Python there is always global state and threads have access to shared memory. This is often a cause for trouble in the form of deadlocks or race conditions and is maybe the biggest pain of using threads.</p>
<p>In the actor model each actor has its own internal state and is only sharing it via messages. Thereby it is acting as a serializer for access to its state and effectively preventing deadlocks and race conditions.</p>
<p>It might be also worth noting that the actor model especially makes sense for functional languages as they embrace the concept of immutable data.</p>
<p>There is a lot more to read about actors but I would say these are the most important bits to know. In general the actor model makes designing and implementing concurrent applications a lot easier. Compared to threads there is no need of managing the access to information with mutexes, locks or semaphores or other complex abstractions.</p>
<h2>Ok, so what about Erlang?</h2>
<p>First let me tell you that for years I have been a passionate Ruby developer. I really like the language and community a lot. From time to time though I felt I was hitting some invisible walls when it came to network applications like web apps, web servers, proxies etc. Basically everything that had to handle a lot of requests and/or did non trivial tasks.</p>
<p>I had Erlang on my radar for quite some time but coming from my ivory tower with a ruby rooftop it took several attempts to convince me that it was worth a try. Conceptually it already made a lot of sense to me and I&#8217;m sure that most people who read about Erlang will agree. I have to admit that I was mostly appalled by the weird syntax so much that it stopped me from trying. This was a big mistake though and a large part of my motivation to write this blog post is about telling you that you should try out Erlang as soon as possible.</p>
<p>Anyway, first lets describe Erlang in one line:</p>
<p>Erlang is a functional language, implementing the actor model for concurrency.</p>
<p>Its a language which was developed by Ericsson for their carrier grade telecom switches and the design goals were to create a language that would allow to design fault tolerant, highly available and concurrently running systems.</p>
<p>You can read all about it on <a href="http://en.wikipedia.org/wiki/Erlang_(programming_language)">wikipedia</a> or this awesome website: <a href="http://learnyousomeerlang.com/">http://learnyousomeerlang.com/</a> &#8211; They do a much better job describing the language.</p>
<h2>Case study for Erlang at Wooga</h2>
<p>This post is about getting you to try it and I will do that by telling a story about Erlang at <a href="http://www.wooga.com/">Wooga</a>.</p>
<p>Wooga makes social games with millions of daily active users. The games constantly talk to the servers to transform and persist the users game state. Some of our game backends are developed in Ruby and that worked really well so far. Ruby, like I said, is a really nice programming language and although it is certainly not the fastest, you can squeeze a lot of performance out of it when you know what you are doing.</p>
<p>Our biggest game in terms of users, revenue and backend complexity runs on about 80 to 200 application servers though. It handles about 5000-7000 requests per second and almost all of them are changing the game state of the user. I&#8217;d say the amount of application servers is still reasonable for the amount of load but its certainly not the most impressive number.</p>
<p>Then some day a new backend had to be built for a game with similar complexity and my colleague <a href="http://twitter.com/#!/hungryblank">Paolo</a> suggested to use Erlang this time as he thought it would be a really great fit for us. We hired an experienced Erlang developer (<a href="http://twitter.com/#!/knutin">Knut</a>) and together they implemented the backend. By now this game has approximately 50% of the users of the other game and the number of application servers they need is: 1!</p>
<p>They run the backend on two or three servers for redundancy purposes but it could perfectly run on one. Even if it would actually need four it would still be drastically more efficient and performant that the other backend(s).</p>
<p>Now of course they also knew about all the mistakes we have made in previous games and its not alone Erlang alone that gave them so much better performance but rather they could implement the backend in a unique way which is really easy with the actor model and rather hard everywhere else.</p>
<p>Basically they&#8217;ve build a stateful web server which means that each user who is playing the game is represented by an actor inside of the Erlang VM. The user starts playing and an actor with the users game state is spawned. All subsequent requests for the time the user is playing are going directly to this actor. Since the game state is held in the actors own memory all requests, which would otherwise hit the database, can be processed and answered extremely quickly.</p>
<p>If the actor crashes, all the other actors are not being harmed since there is no shared / global state. When the user stops playing, the actor will save the game state to a persistent data store and terminate making it easy for the garbage collection. Since the data is immutable it is always possible to revert to the game state before the transformation started in case something goes wrong.</p>
<p>It is really awesome and there is a lot more to tell about it. Fortunately Knut and Paolo have spoken on a couple of conferences about it and shared their slides so you can get some more insights:</p>
<p>* <a href="http://www.slideshare.net/wooga/erlang-factory-sanfran">http://www.slideshare.net/wooga/erlang-factory-sanfran</a><br />
* <a href="http://www.slideshare.net/hungryblank/getting-real-with-erlang">http://www.slideshare.net/hungryblank/getting-real-with-erlang</a></p>
<h2>More Erlang at Wooga</h2>
<p>After Paolo&#8217;s and Knut&#8217;s success the Erlang virus spread inside of the company. We have started new game backends in Erlang and built smaller additional services with it. Personally I can confirm that the more you learn about Erlang the more it makes sense and feels right. It made me even feel a little bit sorry for those at the Ruby conference who were struggling with different runtimes and libraries to introduce the level of concurrency and ease of development that Erlang delivers in one package. A package that has been in production use for more than 20 years.</p>
<p>The hard part of learning new languages is to find a reasonably sized project to start with. Learning just by reading books is always slow as you forget most of what you read when you don&#8217;t play around with it. Apart from the weird syntax which I don&#8217;t find that weird anymore, not having an actual project to try Erlang was the biggest show stopper for me. So I encourage you to pick a small little project and play around with Erlang. I think you will not regret it.</p>
<p>I hope I will find the time for a follow up blog post about how I learned Erlang and about getting started in it soon. In the meantime go to <a href="http://learnyousomeerlang.com/">learnyousomeerlang.com</a> and get started on your own. Trust me &#8211; this site is better than any book about Erlang which you can buy right now.</p>
<p>PS: Thanks to <a href="http://twitter.com/#!/elise_huard">Elise Huard</a> for proof reading! If you have feedback, drawings of an ivory tower with a ruby rooftop to make this blog post more colorful or any other contributions send it right away!</p>
 <p><a href="http://smyck.net/?flattrss_redirect&amp;id=2092492022&amp;md5=9eae33336a77a6d33710b5f84c3698e2" title="Flattr" target="_blank"><img src="http://smyck.net/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://smyck.net/2012/04/22/why-erlang/feed/</wfw:commentRss>
		<slash:comments>32</slash:comments>
		<atom:link rel="payment" href="https://flattr.com/submit/auto?user_id=hukl&amp;popout=1&amp;url=http%3A%2F%2Fsmyck.net%2F2012%2F04%2F22%2Fwhy-erlang%2F&amp;language=en_GB&amp;category=text&amp;title=Why+Erlang%3F&amp;description=The+chance+that+you+are+reading+this+blog+post+on+a+device+with+a+multicore+cpu+is+increasing+on+a+daily+basis+which+is+why+everybody+is+talking+about+concurrency...&amp;tags=concurrency%2Cerlang%2Cfunctional+programming%2Cruby%2Cblog" type="text/html" />
	</item>
		<item>
		<title>Text Editors for Programmers on the Mac</title>
		<link>http://smyck.net/2011/10/02/text-editors-for-programmers-on-the-mac/</link>
		<comments>http://smyck.net/2011/10/02/text-editors-for-programmers-on-the-mac/#comments</comments>
		<pubDate>Sun, 02 Oct 2011 12:44:22 +0000</pubDate>
		<dc:creator>hukl</dc:creator>
				<category><![CDATA[apple]]></category>
		<category><![CDATA[english]]></category>
		<category><![CDATA[editors]]></category>
		<category><![CDATA[mac]]></category>

		<guid isPermaLink="false">http://smyck.net/?p=2092491995</guid>
		<description><![CDATA[Preface In the last 10 years many new text editors became available for Mac OS X. Since I have tried most of them I wanted to give an overview and a brief description about each one of them. This is for developers that are looking for decent editors on the mac to get their job [...]]]></description>
			<content:encoded><![CDATA[<h3>Preface</h3>
<p>In the last 10 years many new text editors became available for Mac OS X. Since I have tried most of them I wanted to give an overview and a brief description about each one of them. This is for developers that are looking for decent editors on the mac to get their job done.</p>
<p>Lets get straight to it then.</p>
<h3>The Editors</h3>
<h4>Emacs / Vim</h4>
<p>Emacs and Vim are really the dinosaurs of text editors for programmers. Both have a immensely rich feature set and can be extended to a degree where you can forget about the OS they are running on. Although there <a href="http://xkcd.com/378/">is and always was a strong debate</a> about which one of the two is superior, it is mostly a matter of personal taste in the end. Both have a steep learning curve and both are probably not something you want to give your web development intern on the first day at the office. However they are really powerful and they have one big advantage in common which is that they are available on a lot of operating systems and are installed by default on most of them. Whenever you log into a linux, bsd, osx or other unix machine you can be sure that vi or emacs or both are already there. On some shared web hosts you can&#8217;t even install your own packages so you are stuck with one of them. The cool thing is that you have to learn only one editor and all its specialities and you can work with it on almost any platform and on any remote machine. Since they are both really old they are known to work. They can handle big text files without crashing and for every problem you encounter there is already an extension to solve it. This is why many experienced programmers which started with more modern editors come back to them.</p>
<p>Some of the features that very few other editors offer are: horizontal and vertical split views, whole project tab completion ( most other editors only complete words from the same file ), fundamental customization of almost every behavior of the editor.</p>
<p>Besides the features related to programming they are also powerful text editors.</p>
<p>Both editors have OS X versions with a nice GUI wrapper to make them better integrated citizens, <a href="http://aquamacs.org/">AquaEmacs</a> and <a href="http://code.google.com/p/macvim/">MacVim</a>.</p>
<p>I really recommend reading the <a href="http://yehudakatz.com/2010/07/29/everyone-who-tried-to-convince-me-to-use-vim-was-wrong/">blog post by Yehuda Katz</a> about switching to MacVim.</p>
<p>Both of them are open source and free of charge.</p>
<h4>BBEdit / TextWrangler</h4>
<p>Speaking of dinosaurs of course <a href="http://www.barebones.com/products/bbedit/">BBEdit</a> and the light weight version called TextWrangler come to mind. They are not as old as Emacs and Vim but BBEdit is around for 20 years! It claims to be the editor »that doesn&#8217;t suck« and it is a strong contender. However it is really focussed on text rather than programming. It has a lot of features dealing with plain text manipulation, search and replace etc. but lacks some of the features I need in my daily programming job. It has syntax highlighting, auto completion, syntax checking for a few languages and much more but in the end it always feels a little dusty compared to other editors. For example it supports SVN, CVS and Perforce but not Git in its most recent version.</p>
<p>I&#8217;d recommend BBEdit more to markup authors than to programmers but its worth checking out the website and the trial version.</p>
<h4>SubEthaEdit</h4>
<p>I&#8217;m not sure how log <a href="http://www.subethaedit.de/index.html">SubEthaEdit</a> exists but its at least 6 or 7 years I&#8217;d say. The wikipedia page does not say anything about it so if one of the readers has a more accurate number let me know.</p>
<p>SubEthaEdit shines in collaborative editing and most of the time that also applies more to plain text than to programming but still, its a cool feature which allows you to edit text documents via internet or local <a href="http://en.wikipedia.org/wiki/Bonjour_(software)">bonjour</a> connection. Other than that it is also a decent editor for programming with support for a lot of different programming languages. It is simple and does not take a whole lot of time to learn. In the end though it is also limited compared to the other more powerful editors. Non the less I think it belongs on this list.</p>
<h4>Smultron</h4>
<p>When it comes to simple and basic text editors for programming activities you have to take a look at <a href="http://www.peterborgapps.com/smultron/">Smultron</a>. It used to be free but now its around 5$ in the Mac App Store. Still quite cheap and it features an icon you can&#8217;t miss in your dock! But seriously &#8211; its probably one of the most straight forward and simple text editors for the mac. Possibly a good entry point when you are just starting with programming and only need syntax highlighting and other basic editing features.</p>
<h4>Textmate</h4>
<p><a href="http://macromates.com/">Textmate</a> was and probably still is the default text editor for many ruby developers. When the web framework Ruby on Rails first came out, the screencasts that came with it demonstrated the editing powers of Textmate so that everybody else started to use it as well. Compared to the other editors that were available at the time it was superior in almost every discipline. It was a lot better integrated into the mac environment compared to emacs or vim, offering standard shortcuts, preferences and native text controls. It supported a lot of languages and so called bundles which are a mixture of snippets, macros and other useful language specific functions like syntax validation or build system integration. It offered more comfort and flexibility than SubEthaEdit or BBEdit. It felt more productive and faster and it was easy to learn.</p>
<p>Why am I using the past tense here? Most of this still applies but Textmate did not receive a major update in years. Textmate2 became what Duke Nukem Forever was already famous for: <a href="http://en.wikipedia.org/wiki/Vaporware">Vaporware</a>. Just recently some Textmate developer <a href="http://blog.macromates.com/2011/whats-next/">claimed</a> that there would be an alpha release by the end of the year but I won&#8217;t believe it until a download link shows up on their website.</p>
<p>The problem with Textmate is mostly its lack of performance with big files, the instability of some really useful extensions and the lack of some features I have learned to love in other text editors like split views for example.</p>
<p>I quit using Textmate because I used some extensions which made it crash to often and because it crashed and locked up when working with big files. Other than that it is still a great editor and its principles were copied to a lot of other editors on other platforms.</p>
<p>Even today I use it for html, xml and other markup languages because its just the fasted editor to work with in that discipline.</p>
<p>I highly recommend trying it. There is a 30-day trial version.</p>
<h4>Kod</h4>
<p>When the people realized that TextMate2 was vaporware and no new version to fix the issues described above was in sight, alternative editors slowly began to appear. One of them is <a href="http://kodapp.com/">Kod</a>, although it is really in an early state it is a decent and simple to use editor for programming. Its not offering a lot of features, not like Textmate or the other more powerful editors, but still quite usable. If you don&#8217;t want to spend a few dollars for Smultron, this might be just the right editor for you. I mentioned Smultron before because it is more mature while Kod is at version 0.0.3. For additional hipness it is worth knowing that its build upon Googles V8 JS engine.</p>
<p>Readers pointed out that the development is stagnating and nothing really happens anymore but as a basic editor it still works I think.</p>
<h4>Sublime Text 2</h4>
<p>Like Kod, <a href="http://www.sublimetext.com/">Sublime Text</a> appeared as well received alternative to Textmate but compared to Kod it has the same kind of feature set as Textmate and more. It even supports Textmates color themes and language definitions which makes a migration to it quite easy.</p>
<p>It even has split views and its lighting fast. It has vertical / column selection (like Vim/Emacs/Textmate), multiple line / word select and different ways to expand the current scope of selection. Really, when I tried it the first time I was amazed how snappy it is. Like Textmate it features snippets, macros and build system integration. On the other side its highly configurable though you have to use simple config files instead of the standard OS X preference panes. I&#8217;d say its a perfect mixture of Vims configurability and Textmates editing comfort and speed. I highly recommend giving it a try if you are looking for a powerful, feature rich text editor for programming.</p>
<p>Also worth noting: Sublime Text 2 is a cross platform editor which runs on Windows, Linux and Mac OS X. That fact scares many mac users away without even trying it but I can assure you once more that it runs stable and snappy on OS X and feels as much as a cocoa app as I&#8217;d expect it to. </p>
<p>Its price tag is a bit higher than others, currently 59$, but I did not have to hesitate long to support the development of this editor after using it for a couple of days in trial mode.</p>
<h4>Vico</h4>
<p>If you like the concepts of Vim but MacVim is not wrapping enough of Vims &#8220;awkwardness&#8221; for you then <a href="http://www.vicoapp.com/">Vico</a> might be the right editor for you. Basically it uses the vim key bindings and therefore you hardly ever need a mouse to use it and it shows all the shortcuts in a native OS X menu bar. Other than split view support it is a very basic text editor for programming and features a custom scripting language to customize it.</p>
<h4>Chocolat</h4>
<p>This is yet another Textmate contender but it is currently in private beta phase and its too early to really judge it as many many features are missing in it. I have to say it has the most intuitive split view implementation of all the editors mentioned here but elementary things like vertical / column selection or parenthesis / scope highlighting are still missing.</p>
<p>If you want to give it a try nonetheless go to <a href="http://chocolatapp.com/">http://chocolatapp.com/</a> and sign up for the beta or go to their irc channel on the freenode network and ask for an invite. Took me 5 minutes to get one.</p>
<h4>Coda/Espresso</h4>
<p>These tools, although from different vendors, focus on the same group of people: web developers. They try to bring the entire development tool set together by bundling the functionality together that is otherwise only found in separate tools like file transfers, version control etc.</p>
<p>I tried them both but although they bundle together lots of features they are very limited at the same time to a certain flavor of web development.</p>
<p>Still on the list as I think they will appeal to some people.</p>
<p><a href="http://www.panic.com/coda/">Code</a> • <a href="http://macrabbit.com/espresso/">Espresso</a></p>
<h4>skEdit</h4>
<p><a href="http://www.beforedawnsolutions.com/applications/skedit">skEdit</a> is the only editor I haven&#8217;t used personally yet so I can&#8217;t say much about it other that a colleague of mine is using it as his primary editor for quite some time now so I wanted to mention it for completeness sake. Like Coda and Espresso it is focused on web development but its not as limited to it.</p>
<h3>Final words</h3>
<p>My first editor was emacs although I only used it in a very basic way. After that I have used Textmate for a couple of years and switched briefly to MacVim for about half a year. Currently I&#8217;m using Sublime Text 2 on a daily basis for my programming work.</p>
<p>Personally, I don&#8217;t like IDE&#8217;s. There are programming languages or environments where an IDE is necessary and really superiour to text editors for programmers but I just don&#8217;t like these languages or environments either. So please don&#8217;t start a &#8220;but $IDE does all of that and more&#8221; discussion here. This is about text editors only and yes, I know … some text editors are almost like an IDE.</p>
<p>If I forgot to mention your favorite editor please let me know!</p>
<p>For a more elaborate list checkout <a href="http://en.wikipedia.org/wiki/Comparison_of_text_editors">wikipedias comparison of text editors</a></p>
 <p><a href="http://smyck.net/?flattrss_redirect&amp;id=2092491995&amp;md5=c4cae6fe9b04204e9572494e57d34aff" title="Flattr" target="_blank"><img src="http://smyck.net/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://smyck.net/2011/10/02/text-editors-for-programmers-on-the-mac/feed/</wfw:commentRss>
		<slash:comments>55</slash:comments>
		<atom:link rel="payment" href="https://flattr.com/submit/auto?user_id=hukl&amp;popout=1&amp;url=http%3A%2F%2Fsmyck.net%2F2011%2F10%2F02%2Ftext-editors-for-programmers-on-the-mac%2F&amp;language=en_GB&amp;category=text&amp;title=Text+Editors+for+Programmers+on+the+Mac&amp;description=Preface+In+the+last+10+years+many+new+text+editors+became+available+for+Mac+OS+X.+Since+I+have+tried+most+of+them+I+wanted+to+give+an+overview+and...&amp;tags=editors%2Cmac%2Cblog" type="text/html" />
	</item>
		<item>
		<title>Online Backup Services Revisited</title>
		<link>http://smyck.net/2011/08/21/online-backup-services-revisited/</link>
		<comments>http://smyck.net/2011/08/21/online-backup-services-revisited/#comments</comments>
		<pubDate>Sun, 21 Aug 2011 14:05:44 +0000</pubDate>
		<dc:creator>hukl</dc:creator>
				<category><![CDATA[digital]]></category>
		<category><![CDATA[english]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[arq]]></category>
		<category><![CDATA[backup]]></category>
		<category><![CDATA[crashplan]]></category>
		<category><![CDATA[osx]]></category>

		<guid isPermaLink="false">http://smyck.net/?p=2092491984</guid>
		<description><![CDATA[In my last post I compared several online backup services and decided that Crashplan was my personal winner when looking at the features and the price. In the following weeks a couple of people started to complain about the slow transfer rates to their backup servers. I also tested the upload speeds from several networks [...]]]></description>
			<content:encoded><![CDATA[<p>In my last <a href="http://smyck.net/2011/07/10/evaluating-online-backup-services/">post</a> I compared several online backup services and decided that Crashplan was my personal winner when looking at the features and the price. In the following weeks a couple of people started to complain about the slow transfer rates to their backup servers. I also tested the upload speeds from several networks in germany on internet connections with up to 100 MBit in both directions and I could not get any transfer rate above 3 MBit/s.</p>
<p>I also contacted the support which confirmed that Crashplan is not limiting the bandwidth at all. Inside the Crashplan application settings there are a few options which potentially limit the transfer rate but changing those did not improve the situation for me. I&#8217;d be interested to know if US customers get better transfer rates.</p>
<p>Anyway, it is quite unusable like this and so I finally gave up on Crashplan for now. Instead I am now evaluating <a href="http://www.haystacksoftware.com/arq/">Arq</a>. Since it uses Amazon S3 storage, you can choose the region in which the datacenter is in and that seems to make a huge difference. I was able to upload my backups with up to 4 MByte/s ( 32 Mbit/s ) on a 100 MBit network which is still not wire speed but much better than the transfer rates of Crashplan. The graphical user interface of Arq is also surprisingly simple and pleasant to use. But this is just a small update. More after I have used Arq for some time.</p>
<p><strong>UPDATE</strong></p>
<p>Arq 2 was just released: <a href="http://www.haystacksoftware.com/blog/2011/08/arq-2-is-out/">http://www.haystacksoftware.com/blog/2011/08/arq-2-is-out/</a></p>
 <p><a href="http://smyck.net/?flattrss_redirect&amp;id=2092491984&amp;md5=3f6a51c3e1346abcb1924a73a0235598" title="Flattr" target="_blank"><img src="http://smyck.net/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://smyck.net/2011/08/21/online-backup-services-revisited/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		<atom:link rel="payment" href="https://flattr.com/submit/auto?user_id=hukl&amp;popout=1&amp;url=http%3A%2F%2Fsmyck.net%2F2011%2F08%2F21%2Fonline-backup-services-revisited%2F&amp;language=en_GB&amp;category=text&amp;title=Online+Backup+Services+Revisited&amp;description=In+my+last+post+I+compared+several+online+backup+services+and+decided+that+Crashplan+was+my+personal+winner+when+looking+at+the+features+and+the+price.+In+the+following+weeks...&amp;tags=arq%2Cbackup%2Ccrashplan%2Cosx%2Cblog" type="text/html" />
	</item>
		<item>
		<title>Evaluating Online Backup Services</title>
		<link>http://smyck.net/2011/07/10/evaluating-online-backup-services/</link>
		<comments>http://smyck.net/2011/07/10/evaluating-online-backup-services/#comments</comments>
		<pubDate>Sun, 10 Jul 2011 20:48:11 +0000</pubDate>
		<dc:creator>hukl</dc:creator>
				<category><![CDATA[digital]]></category>
		<category><![CDATA[english]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[backup]]></category>
		<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[freenas]]></category>
		<category><![CDATA[nas]]></category>
		<category><![CDATA[online]]></category>
		<category><![CDATA[osx]]></category>
		<category><![CDATA[service]]></category>

		<guid isPermaLink="false">http://smyck.net/?p=2092491958</guid>
		<description><![CDATA[Backups, the everlasting topic. Years after several hard drive crashes, after manual backups and semi automatic backups I&#8217;m still thinking about the right solution. Current Setup Currently I&#8217;m using an USB / SATA adaptor to connect various hard drives without enclosure to my computer to run Time Machine semi automatic backups. With OS X 10.7 [...]]]></description>
			<content:encoded><![CDATA[<p>Backups, the everlasting topic. Years after several hard drive crashes, after manual backups and semi automatic backups I&#8217;m still thinking about the right solution.</p>
<h3>Current Setup</h3>
<p><img src="http://smyck.net/wp-content/uploads/2011/07/disks2.jpg" alt="Pile of hard drives" /></p>
<p>Currently I&#8217;m using an USB / SATA adaptor to connect various hard drives without enclosure to my computer to run Time Machine semi automatic backups. With OS X 10.7 (Lion) Time Machine will add local snapshots for the time I&#8217;m not connected to my backup drive and it will write those snapshots to the backup drive once I connect it again. That is all quite nice but not an optimal solution. Over the years I&#8217;ve collected quite a few drives and with every new drive I get more annoyed by the pile they form on my desk. This is still better than no backup but it requires me to connect my drives regularly to my computer. Sometimes I do &#8211; sometimes I don&#8217;t.</p>
<h3>NAS Options</h3>
<p>My setup could be vastly improved by using a NAS or Apples Time Capsule. This would allow me to back up over the air with no wires and drives lying around on my desk.</p>
<p>I don&#8217;t like Time Capsule because it is just one drive in a plastic box with no direct access to the hard disk or the files. You can attach a recovery disk but that just makes it a little better. Only one drive also means no data redundancy. If the disk crashes the backup is gone. As far as I know there are also no checks for data integrity so if some bits flip on the disk you never know. If thats not correct please leave a comment.</p>
<p>When I buy something like a network attached storage I would also want to use it as a fileserver and other things and Time Capsule just doesn&#8217;t offer this kind of flexibility.</p>
<p>The other option I considered was buying a NAS. I really don&#8217;t like the consumer plastic boxes like the Drobo, Qnap and Synology products. On the one side they offer lots of nice features like Time Machine compatibility, web interfaces, fileserver and file sharing features. On the other side they are quite expensive, most of them are ugly, they use Filesystems like Ext3/4 or HFS+ and I also heard real horror stories of complete data losses especially with Drobo. To be fair, these stories are one ore two years old.</p>
<p>Then I thought about buying an »Acer Aspire easyStore H341« or an »HP ProLiant &#8211; MicroServer« and building my own custom NAS. These are basically small Atom powered PCs with four HDD slots and no display connector. They usually come with Microsoft Windows Server and require some time investment to get going. I thought about using <a href="http://www.freenas.org/">FreeNAS</a> as I like <a href="http://en.wikipedia.org/wiki/Freebsd">FreeBSD</a> and it uses the <a href="http://en.wikipedia.org/wiki/ZFS">ZFS</a> as filesystem. It comes with a nice interface and offers everything I would need. Modern filesystem with data integrity checks, fileserver and file sharing capabilities and Time Machine compatibility.</p>
<p>But again, with hard drives included it wouldn&#8217;t be cheap. It would still be no real offsite backup, it could still suffer from hardware failure or theft. Besides the costs for the hardware and the time of setting everything up, there are also some costs for power as this machine would have to run 24/7/365.</p>
<p>One final disadvantage of all those »local« backup solutions is that I have to be home to run my backups but I also want to backup when I&#8217;m at work or somewhere entirely different.</p>
<p>This is why I think that those NAS solutions are not right for me.</p>
<h3>Online Backup Services</h3>
<p>So what are the alternatives? After coming to the conclusion that I actually don&#8217;t want a NAS device I thought about online backup services.</p>
<p>Of course, the first question that comes to mind is privacy and security in general. I don&#8217;t want to hand over my precious data to some company without strong and secure encryption and by that I mean that nobody but me should ever be able to get my data.</p>
<p>The second thing to consider is storage. How much do I have to pay for how many gigabytes? How redundant is my data stored and is it checked for data integrity?</p>
<p>Luckily a quick google search revealed that there are a couple of interesting options available:</p>
<ul>
<li><a href="http://www.backblaze.com/">Backblaze</a></li>
<li><a href="http://www.crashplan.com/">Crashplan</a></li>
<li><a href="https://spideroak.com/">Spideroak</a></li>
<li><a href="https://www.jungledisk.com/">JungleDisk</a></li>
<li><a href="http://www.haystacksoftware.com/arq/">Arq</a></li>
</ul>
<p>All of those offer encrypted backups. The data is encrypted locally before it is send to the storage servers in the internet. All of those services have detailed informations about their architecture and features and all of them seem to have happy customers.</p>
<p>Personally after researching for two hours I think I will try Crashplan and here is why:</p>
<h4>Pricing</h4>
<p>Crashplan is cheap. Its not the cheapest but its cheap enough. You get to backup one computer with unlimited online storage for 49$/year and they have offerings for multiple computers too.</p>
<p>Arq and Jungledisk store the data on Amazon S3 or Rackspace Cloud which are a little more expensive than the other services with their own data centers. The client software of Arq costs another 29$.</p>
<p>Spideroak is carging 10$ / Month / 100 GB.</p>
<h4>Security</h4>
<p>All the named services offer good encryption and they seem to take similar approaches as well. The important thing is that they offer the option to use a self generated private key which is crucial for having completely private backups. Even if the police would take away all the machines they wouldn&#8217;t be able to get to the actual data. Spideroak and Crashplan explain the encryption process very detailed on their websites.</p>
<h4>Consistency / Data Integrity</h4>
<p>Arq and Jungledisk can use S3 which is considered to be quite save from data corruptions but there are also stories of missing data floating around. But nobody is giving you a full guaranty. Spideroark is claiming a 0.0000% error margin. Crashplan claims daily data verification and auto repair should it ever get corrupted.</p>
<p>The named services seem to have a good reputation of not losing data.</p>
<p>On the Arq website there is also a section about metadata and how the different services manage to keep track of it. The systems are tested with a software called <a href="http://www.n8gray.org/blog/2007/04/27/introducing-backup-bouncer/">Backup Bouncer</a>. JungleDisk and Arq seem to be the only ones passing all tests, Crashplan fails in one test, Dropbox and Backblaze fail in 19 of 20! The section might be outdated though and since Backup Bouncer is a free tool you can verify it yourself.</p>
<h4>Software / Integration</h4>
<p>With every of these services comes some kind of software. Arq and Backblaze have native OS X clients while the others have mutli platform tools that do not feel like native apps. This is the only real drawback I found with Crashplan.</p>
<h4>Extras</h4>
<p>Interestingly enough you also get de-duplicated, compressed and encrypted backups on all these services. With Crashplan you can even choose to not use de-duplication to reduce potential cpu load on your computer while checking for duplicate data. The backups are of course differential which means that only changed data is transmitted, not entire snapshots (except the first). Crashplan allows unlimited file sizes while other services have file size limits of 4GB! It can backup locked and files and if you decide to backup your OS X unix directories Crashplan will happily do so. </p>
<p>Over all Crashplan seems to offer fine grained control over varius aspects of backups &#8211; which I like. Their support seems to be alright too. I&#8217;ve asked how de-duplication actually works and I got a reply within four hours on a sunday without having an account or anything.</p>
<p>As I said, I will try Crashplan and in addition I will keep backing up irregulary to my external Time Machine disk &#8211; just to be sure.</p>
<p>I know that there a a lot of other tools out there and I&#8217;m still interested in other suggestions although I&#8217;ve probably checked them out already.</p>
<p>You might also want to check out Wikipedias »<a href="http://en.wikipedia.org/wiki/Comparison_of_online_backup_services">Comparison of online backup services</a>«</p>
<p>Its worth checking out the FAQs and detailed features of all those services as they usually answer most of the questions you come up with.</p>
<p>Lastly you can google for &#8220;Service A vs Service B&#8221; and you will get a lot of more articles like these on the web to make up your own mind. </p>
<p><strong>UPDATE 1</strong> </p>
<p>Somebody on twitter just pointed me to <a href="https://crashplan.zendesk.com/entries/477690-crashplan-3-0-2-mac-menubar-beta-available">this post in the Crashplan Support forum</a> where a native mac menu bar app in beta status is available.</p>
<p><strong>UPDATE 2</strong></p>
<p>Thomas posted a link in the comments to a <a href="http://skowron.biz/artikel/backup-services/">comparison matrix</a> that he made. </p>
<p><strong>UPDATE 3</strong></p>
<p>Another interesting hint from the comments: <a href="http://www.dollydrive.com/">Dolly Drive</a><br />
Apparently they offer TimeMachine backups in the &#8220;cloud&#8221;. Unfortunately their faq is a little short on details especially on security and data integrity so I guess I will write them a mail and put the info into another post.</p>
<p><strong>UPDATE 4</strong></p>
<p>Several (european) readers pointed out that the upload to the crashplan datacenter is really slow, maxing out at 1.3Mbps. This is definitively one major drawback for european customers and something where Arq or other european providers could shine. </p>
 <p><a href="http://smyck.net/?flattrss_redirect&amp;id=2092491958&amp;md5=2bb2c057854c99ddf9f01dadff2e9f7a" title="Flattr" target="_blank"><img src="http://smyck.net/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://smyck.net/2011/07/10/evaluating-online-backup-services/feed/</wfw:commentRss>
		<slash:comments>35</slash:comments>
		<atom:link rel="payment" href="https://flattr.com/submit/auto?user_id=hukl&amp;popout=1&amp;url=http%3A%2F%2Fsmyck.net%2F2011%2F07%2F10%2Fevaluating-online-backup-services%2F&amp;language=en_GB&amp;category=text&amp;title=Evaluating+Online+Backup+Services&amp;description=Backups%2C+the+everlasting+topic.+Years+after+several+hard+drive+crashes%2C+after+manual+backups+and+semi+automatic+backups+I%26%238217%3Bm+still+thinking+about+the+right+solution.+Current+Setup+Currently+I%26%238217%3Bm+using+an...&amp;tags=backup%2CFreeBSD%2Cfreenas%2Cnas%2Conline%2Cosx%2Cservice%2Cblog" type="text/html" />
	</item>
		<item>
		<title>Camel Case in MySQL Table Names is a Bad Idea</title>
		<link>http://smyck.net/2011/06/21/camel-case-in-mysql-table-names-is-a-bad-idea/</link>
		<comments>http://smyck.net/2011/06/21/camel-case-in-mysql-table-names-is-a-bad-idea/#comments</comments>
		<pubDate>Tue, 21 Jun 2011 20:44:13 +0000</pubDate>
		<dc:creator>hukl</dc:creator>
				<category><![CDATA[digital]]></category>
		<category><![CDATA[english]]></category>
		<category><![CDATA[conventions]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[mysql]]></category>

		<guid isPermaLink="false">http://smyck.net/?p=2092491948</guid>
		<description><![CDATA[Today at work I encountered all kinds of &#8220;naming schemes&#8221; for MySQL tables and columns. Camel case table names in particular can cause serious pain because: Table names directly correspond to filenames on your hard drive There are tons of different filesystems and some of them are case insensitive. So if you develop on OS [...]]]></description>
			<content:encoded><![CDATA[<p>Today at work I encountered all kinds of &#8220;naming schemes&#8221; for MySQL tables and columns. Camel case table names in particular can cause serious pain because:</p>
<ol>
<li>Table names directly correspond to filenames on your hard drive</li>
<li>There are tons of different filesystems and some of them are case insensitive. So if you develop on OS X (case insensitive) but deploy on Linux (case sensitive) things can get funny quickly</li>
<li>There are several different SQL servers which handle camel case / case sensitivity differently. When you switch to PostgreSQL or Oracle you are likely to encounter problems</li>
<li>Read <a href="http://dev.mysql.com/doc/refman/5.1/en/identifier-case-sensitivity.html">this document to learn about possible implications in MySQL itself</a></li>
</ol>
<p>If you use lowercase table names, separated by underscores, you can skip all those potential problems. Luckily renaming tables is not as expensive as altering them.</p>
 <p><a href="http://smyck.net/?flattrss_redirect&amp;id=2092491948&amp;md5=0bf8cf37f93a255754e322f3982f5810" title="Flattr" target="_blank"><img src="http://smyck.net/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://smyck.net/2011/06/21/camel-case-in-mysql-table-names-is-a-bad-idea/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<atom:link rel="payment" href="https://flattr.com/submit/auto?user_id=hukl&amp;popout=1&amp;url=http%3A%2F%2Fsmyck.net%2F2011%2F06%2F21%2Fcamel-case-in-mysql-table-names-is-a-bad-idea%2F&amp;language=en_GB&amp;category=text&amp;title=Camel+Case+in+MySQL+Table+Names+is+a+Bad+Idea&amp;description=Today+at+work+I+encountered+all+kinds+of+%26%238220%3Bnaming+schemes%26%238221%3B+for+MySQL+tables+and+columns.+Camel+case+table+names+in+particular+can+cause+serious+pain+because%3A+Table+names+directly+correspond...&amp;tags=conventions%2Cdevelopment%2Cmysql%2Cblog" type="text/html" />
	</item>
		<item>
		<title>Cannot delete File / unmount disk because it is in use …</title>
		<link>http://smyck.net/2011/06/19/cannot-delete-file-unmount-disk-because-it-is-in-use-%e2%80%a6/</link>
		<comments>http://smyck.net/2011/06/19/cannot-delete-file-unmount-disk-because-it-is-in-use-%e2%80%a6/#comments</comments>
		<pubDate>Sun, 19 Jun 2011 16:35:04 +0000</pubDate>
		<dc:creator>hukl</dc:creator>
				<category><![CDATA[apple]]></category>
		<category><![CDATA[digital]]></category>
		<category><![CDATA[english]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[macosx]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[finder]]></category>
		<category><![CDATA[osx]]></category>
		<category><![CDATA[trash]]></category>

		<guid isPermaLink="false">http://smyck.net/?p=2092491936</guid>
		<description><![CDATA[On OS X there are these moments when Finder tells you that the trash cannot be emptied or that a disk can not be unmounted because some files in/on them are still being used. When emptying the trash, Finder even tells you about the files in question but not about the app that is accessing [...]]]></description>
			<content:encoded><![CDATA[<p>On OS X there are these moments when Finder tells you that the trash cannot be emptied or that a disk can not be unmounted because some files in/on them are still being used. When emptying the trash, Finder even tells you about the files in question but not about the app that is accessing them.</p>
<p>There are two ways to find out:</p>
<p><strong>1. opensnoop</strong></p>
<p>With opensnoop you can display what files are currently being accessed (as in live) including the process id and the name of the application. Either you can display all the files or just the one you are interested in.</p>
<p>For example I have an image on my desktop. I can attach to that file and when I open it via double click in Finder I get the following output:</p>
<p><code>
<pre>sudo opensnoop -f /Users/hukl/Desktop/IMG_0434.JPG
Password:
  UID    PID COMM          FD PATH
  501  10244 Finder         9 /Users/hukl/Desktop/IMG_0434.JPG
  501     32 mds           15 /Users/hukl/Desktop/IMG_0434.JPG
  501  10278 Preview        6 /Users/hukl/Desktop/IMG_0434.JPG
  501  10278 Preview        6 /Users/hukl/Desktop/IMG_0434.JPG
  501  10278 Preview        7 /Users/hukl/Desktop/IMG_0434.JPG
  501  10278 Preview        8 /Users/hukl/Desktop/IMG_0434.JPG
  501     32 mds           15 /Users/hukl/Desktop/IMG_0434.JPG
  501  10278 Preview        6 /Users/hukl/Desktop/IMG_0434.JPG
</pre>
<p></code></p>
<p>This only helps though if the file is being actively accessed. More often though an application only holds a reference to the file, preventing Finder to delete it. In this case opensnoop is no good but luckily there is another way:</p>
<p><strong>2. lsof </strong></p>
<p>lsof basically lists information about all files opened by applications. Therefore if I want to know why I can&#8217;t delete this image I just opened I can run:</p>
<p><code>
<pre>
lsof | grep /Users/hukl/Desktop/IMG_0434.JPG
Preview   10278 hukl    8r     REG               14,5    1584476 483868 /Users/hukl/Desktop/IMG_0434.JPG
</pre>
<p></code></p>
<p>Now that I know that Preview.app is still accessing the File I can kill the process and delete the file. </p>
<p>Many times its Finder itself still holding references to the files even if all the applications are closed and there is no apparent reason for not deleting the file. In this case option-click on the Finder icon in the dock and relaunch Finder (you can also kill it in Terminal of course). The files should be deletable and the disks should be unmountable.</p>
 <p><a href="http://smyck.net/?flattrss_redirect&amp;id=2092491936&amp;md5=2f9bde8539aae4bfdbd9123713d52170" title="Flattr" target="_blank"><img src="http://smyck.net/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://smyck.net/2011/06/19/cannot-delete-file-unmount-disk-because-it-is-in-use-%e2%80%a6/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<atom:link rel="payment" href="https://flattr.com/submit/auto?user_id=hukl&amp;popout=1&amp;url=http%3A%2F%2Fsmyck.net%2F2011%2F06%2F19%2Fcannot-delete-file-unmount-disk-because-it-is-in-use-%25e2%2580%25a6%2F&amp;language=en_GB&amp;category=text&amp;title=Cannot+delete+File+%2F+unmount+disk+because+it+is+in+use+%E2%80%A6&amp;description=On+OS+X+there+are+these+moments+when+Finder+tells+you+that+the+trash+cannot+be+emptied+or+that+a+disk+can+not+be+unmounted+because+some+files+in%2Fon+them...&amp;tags=finder%2Cosx%2Ctrash%2Cblog" type="text/html" />
	</item>
		<item>
		<title>Using the Intel 510 Series SSD in a 2011 MacBook Pro at full speed and with TRIM</title>
		<link>http://smyck.net/2011/06/02/using-the-intel-510-series-ssd-in-a-2011-macbook-pro-at-full-speed-and-with-trim/</link>
		<comments>http://smyck.net/2011/06/02/using-the-intel-510-series-ssd-in-a-2011-macbook-pro-at-full-speed-and-with-trim/#comments</comments>
		<pubDate>Thu, 02 Jun 2011 20:15:42 +0000</pubDate>
		<dc:creator>hukl</dc:creator>
				<category><![CDATA[digital]]></category>
		<category><![CDATA[english]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[macosx]]></category>
		<category><![CDATA[intel]]></category>
		<category><![CDATA[osx]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[ssd]]></category>
		<category><![CDATA[trim]]></category>

		<guid isPermaLink="false">http://smyck.net/?p=2092491932</guid>
		<description><![CDATA[I just got a new MacBook Pro from my current employer and since I got it without an SSD I bought the Intel 510 250GB and installed it. Everything worked smoothly after the first boot. However, as @denis2342 pointed out, there are a few extra steps to make it run at full speed and performance. [...]]]></description>
			<content:encoded><![CDATA[<p>I just got a new MacBook Pro from my current employer and since I got it without an SSD I bought the Intel 510 250GB and installed it. Everything worked smoothly after the first boot. However, as <a href="https://twitter.com/denis2342">@denis2342</a> pointed out, there are a few extra steps to make it run at full speed and performance.</p>
<p>First of all, although this MacBook Pro has a SATA-III interface with up to 6 Gigabit, the System Profiler only showed a »Negotiated Link Speed« of 3 Gigabit. In order to make it negotiate to 6 Gigabit a <a href="http://support.apple.com/kb/HT3964">SMC reset</a> has to be performed. Basically you have to press the (left side) Shift-Control-Option keys and the power button at the same time and after that you have to boot normally.</p>
<p>After that System Profiler showed a »Negotiated Link Speed« of 6 Gigabit.</p>
<p>Then, although OS X enables TRIM support for Apples own SSD drives on the latest MacBook Pros, it doesn&#8217;t enable it for 3rd party SSDs. There were workarounds which involved patching a CoreFramework it was kind of messy and not something you&#8217;d recommend to any beginner. Luckily there is now a tool called »<a href="http://www.macupdate.com/app/mac/37852/trim-enabler">TRIM Enabler</a>« which allows to backup and restore the Core Framework library and also to patch it with the click of a button. This also worked as expected and after another reboot the System Profiler showed that TRIM was enabled for my 3rd party SSD.</p>
<p>After I ran an Update the TRIM support was disabled again and I had to run TRIM Enabler once more.</p>
<p>I really hope that Apple is enabling TRIM for all SSDs with Lion to make this step unnecessary.</p>
<p>That is about it. This SSD is really blazing fast. If you&#8217;re interested, there is a nice in-depth review at <a href="http://www.anandtech.com/show/4202/the-intel-ssd-510-review">anandtech.com</a></p>
<p>While the SSDs from other vendors are still faster, the Intel SSDs offer a higher reliability.</p>
 <p><a href="http://smyck.net/?flattrss_redirect&amp;id=2092491932&amp;md5=1fa54f43a9ccdada13979847d0acecac" title="Flattr" target="_blank"><img src="http://smyck.net/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://smyck.net/2011/06/02/using-the-intel-510-series-ssd-in-a-2011-macbook-pro-at-full-speed-and-with-trim/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		<atom:link rel="payment" href="https://flattr.com/submit/auto?user_id=hukl&amp;popout=1&amp;url=http%3A%2F%2Fsmyck.net%2F2011%2F06%2F02%2Fusing-the-intel-510-series-ssd-in-a-2011-macbook-pro-at-full-speed-and-with-trim%2F&amp;language=en_GB&amp;category=text&amp;title=Using+the+Intel+510+Series+SSD+in+a+2011+MacBook+Pro+at+full+speed+and+with+TRIM&amp;description=I+just+got+a+new+MacBook+Pro+from+my+current+employer+and+since+I+got+it+without+an+SSD+I+bought+the+Intel+510+250GB+and+installed+it.+Everything+worked...&amp;tags=intel%2Cosx%2Cperformance%2Cssd%2Ctrim%2Cblog" type="text/html" />
	</item>
		<item>
		<title>Mac OS X Keyboard Shortcut for locking the screen</title>
		<link>http://smyck.net/2011/06/02/mac-os-x-keyboard-shortcut-for-locking-the-screen/</link>
		<comments>http://smyck.net/2011/06/02/mac-os-x-keyboard-shortcut-for-locking-the-screen/#comments</comments>
		<pubDate>Thu, 02 Jun 2011 18:59:30 +0000</pubDate>
		<dc:creator>hukl</dc:creator>
				<category><![CDATA[digital]]></category>
		<category><![CDATA[english]]></category>
		<category><![CDATA[macosx]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[keyboard]]></category>
		<category><![CDATA[osx]]></category>
		<category><![CDATA[shorcut]]></category>

		<guid isPermaLink="false">http://smyck.net/?p=2092491923</guid>
		<description><![CDATA[For years I&#8217;ve been searching for a keyboard shortcut that would instantly lock my screen / desktop. I&#8217;ve seen this on Linux window managers and something like this probably exists on every major operating system. My current workaround was to open Keychain.app, enable the menu bar icon in the preferences and click each time on [...]]]></description>
			<content:encoded><![CDATA[<p>For years I&#8217;ve been searching for a keyboard shortcut that would instantly lock my screen / desktop. I&#8217;ve seen this on Linux window managers and something like this probably exists on every major operating system. </p>
<p>My current workaround was to open Keychain.app, enable the menu bar icon in the preferences and click each time on the menu bar item -> lock screen.</p>
<p>I tried AppleScript, I tried Automator, I even convinced a friend that it would be necessary to write a small app for this. Recently however, <a href="http://twitter.com/quasrich">somebody</a> said that there is such a shortcut and that it exists since Mac OS 8.</p>
<p>This holy shortcut is:</p>
<p>⌃ + ⇧ + ⏏ (Control + Shift + Eject)</p>
<p>You have to enable »Require Password immediately after sleep or screen saver begins« in the System Preferences -> Security to make this truly lock your screen. </p>
<p>There are probably many other shortcuts in Mac OS I don&#8217;t know. If you have any hints where to get a complete list, please let me know!</p>
<p><strong>Updates</strong></p>
<ul>
<li>In Mac OS X terminology this shortcut puts the display immediately to sleep.</li>
<li>A website listing this and other shortcuts can be found <a href="http://www.danrodney.com/mac/">here</a></li>
</ul>
 <p><a href="http://smyck.net/?flattrss_redirect&amp;id=2092491923&amp;md5=1f6a642ff2b81639b61a8ba3f48935b1" title="Flattr" target="_blank"><img src="http://smyck.net/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://smyck.net/2011/06/02/mac-os-x-keyboard-shortcut-for-locking-the-screen/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		<atom:link rel="payment" href="https://flattr.com/submit/auto?user_id=hukl&amp;popout=1&amp;url=http%3A%2F%2Fsmyck.net%2F2011%2F06%2F02%2Fmac-os-x-keyboard-shortcut-for-locking-the-screen%2F&amp;language=en_GB&amp;category=text&amp;title=Mac+OS+X+Keyboard+Shortcut+for+locking+the+screen&amp;description=For+years+I%26%238217%3Bve+been+searching+for+a+keyboard+shortcut+that+would+instantly+lock+my+screen+%2F+desktop.+I%26%238217%3Bve+seen+this+on+Linux+window+managers+and+something+like+this+probably+exists...&amp;tags=keyboard%2Cosx%2Cshorcut%2Cblog" type="text/html" />
	</item>
		<item>
		<title>Files with mixed and invalid Encodings in Ruby</title>
		<link>http://smyck.net/2011/05/13/files-with-mixed-and-invalid-encodings-in-ruby/</link>
		<comments>http://smyck.net/2011/05/13/files-with-mixed-and-invalid-encodings-in-ruby/#comments</comments>
		<pubDate>Fri, 13 May 2011 13:02:24 +0000</pubDate>
		<dc:creator>hukl</dc:creator>
				<category><![CDATA[english]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[encoding]]></category>
		<category><![CDATA[iconv]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://smyck.net/?p=2092491917</guid>
		<description><![CDATA[Recently I encountered a file which mostly contained UTF-8 characters. I could read the file and even throw it at Nokogiri and there was no problem. When I wanted to preprocess the content of the file with gsub ruby raised this Exception: invalid byte sequence in UTF-8 (ArgumentError) Now what to do? There aren&#8217;t many [...]]]></description>
			<content:encoded><![CDATA[<p>Recently I encountered a file which mostly contained UTF-8 characters. I could read the file and even throw it at Nokogiri and there was no problem.</p>
<p>When I wanted to preprocess the content of the file with gsub ruby raised this Exception:</p>
<pre>invalid byte sequence in UTF-8 (ArgumentError)</pre>
<p>Now what to do?</p>
<p>There aren&#8217;t many attractive options. I googled around for quite some time but nobody seemed to have a reasonable solution so I tried wrapping a begin…rescue around each element I extracted with nokogiri and attempted to do the gsub clean up work there and if that would fail I would either try to guess the right encoding (ISO Latin or ASCII) or skip that element entirely. However even if that would have silenced the exceptions it would most likely be incorrect in the end.</p>
<p>My favorite option would be to simply ignore the bad sequences all together but I couldn&#8217;t find a proper way to do it in Ruby. After some time of googling I found <a href="http://po-ru.com/diary/fixing-invalid-utf-8-in-ruby-revisited/">this blog post describing how this can be achieved with Iconv</a></p>
<p>In case the blog post disappears I will write down the executive summary here:</p>
<pre>
ic = Iconv.new('UTF-8//IGNORE', 'UTF-8')
valid_string = ic.iconv(untrusted_string)
</pre>
<p>I guess this is useful outside the ruby universe as well. I hate encoding issues &#8211; I really do. Somehow though you end up with them in _every_ project.</p>
 <p><a href="http://smyck.net/?flattrss_redirect&amp;id=2092491917&amp;md5=3deb2106702c81c5d94d042a4579a45d" title="Flattr" target="_blank"><img src="http://smyck.net/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://smyck.net/2011/05/13/files-with-mixed-and-invalid-encodings-in-ruby/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<atom:link rel="payment" href="https://flattr.com/submit/auto?user_id=hukl&amp;popout=1&amp;url=http%3A%2F%2Fsmyck.net%2F2011%2F05%2F13%2Ffiles-with-mixed-and-invalid-encodings-in-ruby%2F&amp;language=en_GB&amp;category=text&amp;title=Files+with+mixed+and+invalid+Encodings+in+Ruby&amp;description=Recently+I+encountered+a+file+which+mostly+contained+UTF-8+characters.+I+could+read+the+file+and+even+throw+it+at+Nokogiri+and+there+was+no+problem.+When+I+wanted+to...&amp;tags=encoding%2Ciconv%2Cprogramming%2Cruby%2Cblog" type="text/html" />
	</item>
		<item>
		<title>How to setup SparkleShare beta2 for mac with your own server</title>
		<link>http://smyck.net/2011/02/13/how-to-setup-sparkleshare-beta2-for-mac-on-your-own-server/</link>
		<comments>http://smyck.net/2011/02/13/how-to-setup-sparkleshare-beta2-for-mac-on-your-own-server/#comments</comments>
		<pubDate>Sun, 13 Feb 2011 11:58:02 +0000</pubDate>
		<dc:creator>hukl</dc:creator>
				<category><![CDATA[digital]]></category>
		<category><![CDATA[english]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[macosx]]></category>
		<category><![CDATA[dropbox]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[osx]]></category>
		<category><![CDATA[sparkleshare]]></category>
		<category><![CDATA[syncing]]></category>

		<guid isPermaLink="false">http://smyck.net/?p=2092491885</guid>
		<description><![CDATA[Today the first SparkleShare beta for mac came out. SparkleShare is somehow very similar to dropbox but instead of being bound to one company, SparkleShare is based on git and therefor allows hosting your repositories on your own servers. I&#8217;ve been waiting for this release for because one of my colleagues is already using it [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.bomahy.nl/hylke/blog/sparkleshare-02-beta2-for-mac/">Today the first SparkleShare beta for mac came out</a>. SparkleShare is somehow very similar to dropbox but instead of being bound to one company, SparkleShare is based on git and therefor allows hosting your repositories on your own servers. I&#8217;ve been waiting for this release for because one of my colleagues is already using it on linux for quite a while. </p>
<p>Unfortunately the documentation is a little thin about self hosted repositories so here are the necessary steps to get it working:</p>
<ol>
<li>Download and install SparkleShare for Mac</li>
<li>Create a bare git repository on your server and make sure you can connect to it using public key authentication</li>
<li>Start up SparkleShare and add a new folder. In the address field add the address of your server to which you can log in to via public key authentication. In the folder field add the absolute path to the repository on the server.</li>
</ol>
<p>Initially I tried to set it up via the built in setup assistant but for some reason an error occurred. I was able to log in and clone via the command line though. It turned out that I misinterpreted the address field because I was thinking that the usual ssh://user@server url would go in there. </p>
<p>You can also add a remote folder via the command line although that doesn&#8217;t seem to be recommended as mentioned in the comments.</p>
<ol>
<li>Open up a Terminal and cd to ~/SparkleShare</li>
<li>Then clone your remote repository into that folder: git clone user@server/path/to/repo.git</li>
<li>The folder should now appear in the SparkleShare menu and work as expected</li>
</ol>
<p>Also make sure to have a working /usr/bin/git executable or symlink an existing git binary to that location otherwise SparkleShare will crash right away.</p>
 <p><a href="http://smyck.net/?flattrss_redirect&amp;id=2092491885&amp;md5=26fcfbcac7a0d88436f1c459291ea867" title="Flattr" target="_blank"><img src="http://smyck.net/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://smyck.net/2011/02/13/how-to-setup-sparkleshare-beta2-for-mac-on-your-own-server/feed/</wfw:commentRss>
		<slash:comments>20</slash:comments>
		<atom:link rel="payment" href="https://flattr.com/submit/auto?user_id=hukl&amp;popout=1&amp;url=http%3A%2F%2Fsmyck.net%2F2011%2F02%2F13%2Fhow-to-setup-sparkleshare-beta2-for-mac-on-your-own-server%2F&amp;language=en_GB&amp;category=text&amp;title=How+to+setup+SparkleShare+beta2+for+mac+with+your+own+server&amp;description=Today+the+first+SparkleShare+beta+for+mac+came+out.+SparkleShare+is+somehow+very+similar+to+dropbox+but+instead+of+being+bound+to+one+company%2C+SparkleShare+is+based+on+git+and...&amp;tags=dropbox%2Cgit%2Cosx%2Csparkleshare%2Csyncing%2Cblog" type="text/html" />
	</item>
	</channel>
</rss>

