Hacker Newsnew | past | comments | ask | show | jobs | submit | ronnieCA's commentslogin

When I get that feeling, I know it's about time for a week or so of vacation. I have to break the routine up as much as possible, and stay away from the computer, cell phone, tv, etc.. For me, getting out of town and going camping, kayaking, or skiing for a few days usually does the trick. Even if you're tight on cash and can't get out of town, just intentionally detoxing from technology can be incredible for recharging your batteries. You don't realize how exhausting it is being tied to your cell phone or laptop until you get away from it for a few days.

Best of luck getting out of the rut.


Yes, that is how I got my current job was through a couple rounds of video chat. I'm a Canadian citizen working at a US startup through an I-84 work visa.


For straight up development work, I actually prefer my dual 24" monitors which I have at my office. At home I have the dell Ultrasharp 27" (which is the exact same panel as the apple cinema 27"). I like the 27" for the versatility. It's really great for movies, games, etc... when I need some distraction. It is hands down the most beautiful screen I've ever owned.


It's kind of like saying, I've heard of this wonderful book on learning French, can I use it to learn Spanish? They're similar languages, but not the same. The grammer is close, but different. The vocabulary is close, but different.

That being said, Land of Lisp is a fantastic way to get your feet wet in functional programming. I would highly suggest giving it a whirl. Learning Common Lisp will definitely help in learning Clojure. But you really need to look at it as two distinct steps towards your goal of learning Clojure.

There is also a new Clojure book coming out at the end of the month called the Joy of Clojure, which I'm really excited about. Currently the only two books out are Stewart Halloway's Programming Clojure, which is excellent. and Stuart Sierra's Practical Clojure, which is also very, very good. They are both focussed on Clojure 1.0, however, so you'll miss out on some of the features brought by 1.1 and 1.2. I own both, and can't recommend one over the other, though I might lean towards Practical Clojure purely for personal preference.


Clojure, C# (or more generally the .Net Framework), and Python.

As for natural languages, hands down Mandarin. I spent the summer in Hong Kong, and while they spoke Cantonese there, it was still a fantastic introduction to Chinese culture.


While logical programming is powerful, it is only useful in certain situations. Due to the way Prolog backtracks to find a final solution, it can be increadibly slow, and it has to be able to 'undo' an operation.

While it is a much different language now, Erlang was originally based on Prolog, and has been adopted, modified and extended to be a much better "realworld" language.


It's not that Prolog necessarily backtracks to find the final solution. It's the forward computation that actually builds the solution, backtracking only when one can't be found with assumptions made so far.

Sloppy programming can lead to lots of unnecessary backtracking, of course, but some of the main benefits of Prolog come in using it for problems where you would have otherwise written your own ad-hoc backtracking search process to find a solution. That is, good Prolog code only likely to be slow because of it's backtracking when an imperative solution would have been slower/buggier.

Runtime slowness because Prolog is a dynamically-typed language that also strongly encourages the development of meta-intepreters as a common tactic is a separate issue. Often times a slower run time is acceptable in exchange for a much faster development time with the use of custom metalanguages (DSLs).

Integrated search aside, another benefit of logic programming comes in declarative knowledge representation. In an expression optimizer I wrote, it was easy to concisely define several code substitution patterns as simple logical statements and then create the overall optimizer as an interpreter over those declared patterns.

For problems that don't really revolve around search or knowledge representation (i.e. most CRUD web stuff), Prolog doesn't provide practical benefits. Nonetheless, understanding the otherwise foreign concepts of the language can give you the seeds of new design patterns and idioms for your familiar languages.


Due to the way Prolog backtracks to find a final solution, it can be increadibly slow, and it has to be able to 'undo' an operation.

On top of that, from what I recall, it's pretty easy to have the backtracking to stumble into an infinite loop. As leaky abstractions go, that's pretty severe, probably enough to make people question the abstraction's usefulness.


I would whole heartedly suggest giving it a try! It may appear daunting, but if you take your time and go step by step, chances are, you'll be just fine. If you're really worried about screwing up your system, you can install it on a virtual machine first (virtual box is free and works well enough), as a trial run.

You're bound to learn a thing or two while you go through the install, so jump in and have fun!


I recently set up my personal web page at www.prgmr.com. For $8/month for 256mb/6gb, I have no problem paying that much. It's been a great experience, trying to get everything set up and running the way I want it. I couldn't be happier with it. I really enjoy running my own site, and getting to choose when and what gets upgraded.

You can always integrate external services as needed anyway. I use google apps for mail. I wanted to use Google App Engine for another project, but being restricted to Python 2.5 was a bit of a deal breaker for me, so for now I'm just testing it on a sub-directory on my personal site. When I'm ready to launch it on it's own domain, I will simply get another VPS and push the site over to it.


I don't know if this is outside of the scope of your plans, but threading issues are a big one that jump out for me. POSIX threads can cause all kinds of wonderful headaches, it would be nice to see some solid advice on the does and dont's.


I plan to follow Zed's model for 52 exercises, I don't see any reason why I shouldn't cover multi-threading and a perhaps a few different concurrency models in the latter half.


These are exactly my most productive hours. I often feel like I should move to the west coast and try and telecommute in the UK.


I feel like I should move to states. Will be very productive during day time over there :P


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: