M

Mislav Marohnić

mislav.uniqpath.com · Personal blog · on HN since 2009

Mislav Marohnić, a Ruby and open-source developer, hosts why's Poignant Guide to Ruby alongside posts on Vim, Git, and JavaScript.

What HN saysHN links it for the Poignant Guide, praised as one of the best programming books, and for his Vim and merge-vs-rebase posts.
100HN people shared it
74linked it in comments
29stories submitted
1.1Kstory points
11 years agolast shared
2009people per year2026

Most-shared posts

  1. 1
    Why's (poignant) Guide to Ruby
    39 people · 1 points · first shared 2009 · discussion on HN
  2. 2
    Semicolons in JavaScript are optional
    10 people · 36 points · first shared 2010 · 37 comments on HN
  3. 3
    Why's Poignant Guide to Ruby
    10 people · 1 points · first shared 2010 · discussion on HN
  4. 4
    Vim: revisited
    5 people · 392 points · first shared 2011 · 114 comments on HN
  5. 5
    Git Tips
    5 people · 334 points · first shared 2010 · 9 comments on HN
  6. 6
    Book
    5 people · first shared 2009
  7. 7
    Chapter 3
    4 people · first shared 2010
  8. 8
    Click hijack
    3 people · 5 points · first shared 2011 · discussion on HN
  9. 9
    Every line of code is always documented
    2 people · 158 points · first shared 2014 · 101 comments on HN
  10. 10
    _why: "Goodbye until I can shake this."
    2 people · 130 points · first shared 2009 · 50 comments on HN
  11. 11
    Git: Merge vs. Rebase
    2 people · 10 points · first shared 2013 · discussion on HN
  12. 12
    You're cuking it right
    2 people · 1 points · first shared 2010 · discussion on HN
  13. 13
    The soundtrack to why’s (poignant) guide to ruby
    2 people · 1 points · first shared 2010 · discussion on HN
  14. 14
    Things I learned from iPhone and Droid ads
    1 people · 6 points · first shared 2009 · 1 comments on HN
  15. 15
    Creating the missing Instagram web interface
    1 people · 5 points · first shared 2010 · discussion on HN

What HN people wrote when they linked it

jashkenas · 2015-06-22
Yo progg'n books — I'm really happy for you, I'll let you finish, but The Poignant Guide is one of the best books on programming of all time. One of the best of all time! http://mislav.uniqpath.com/poignant-guide/book/chapter-1.html
infinotize · 2014-09-03
This is one of my favorite Vim tricks/guides posts: http://mislav.uniqpath.com/2011/12/vim-revisited/
bpp4dt · 2013-09-20
I've always been looking for something like this to send to friends wanting to learn to code. A couple of recommended This step by step guide to learning Github: http://www.thinkful.com/learn/a-guide-to-using-github-pages/ My first [hilarious] exposure to Ruby http://mislav.uniqpath.com/poignant-guide/book/chapter-1.html Eloquent Javascript [built in console with examples]: https://eloquentjavascript.net/contents.html If anyone's interested in some front-end web development sources: http://www.quora.com/What-are-the-best-sources-to-learn-web-coding-in-… [You won't need to make an account with this url] [1st answer has the skills you'll need to learn with documentation and 2nd has a great collection of resources for newbies]
djbender · 2013-04-30
Mislav has a great article on this topic: http://mislav.uniqpath.com/2013/02/merge-vs-rebase/
milesf · 2013-04-18
I'm working on a project called "decyphering_why" that seeks to explain that. He's an artist who created books, blogs, code, music, videos, and more. For example when he released the book "why's poignant guide to ruby" (http://mislav.uniqpath.com/poignant-guide/) teaching the Ruby programming language, he released a soundtrack with it as well! Here's my favourite song from that: https://soundcloud.com/wondible/chapter-2-this-book-is-made Hopefully the primer I'm writing will help for those new to the person that is Why the Lucky Stiff.
donaldguy · 2013-04-12
http://en.wikipedia.org/wiki/Why_the_lucky_stiff http://www.slate.com/articles/technology/technology/2012/03/ruby_ruby_… http://www.smashingmagazine.com/2010/05/15/why-a-tale-of-a-post-modern… TL;DR a prolific pseudonymous rubyist who was very active in the ruby and rails community. Noted for his particularly whimsical (and/or arful) style of approaching problems and communication. Probably best known for "why's poignant guide to ruby", currently mirrored here: http://mislav.uniqpath.com/poignant-guide/book/chapter-1.html
steveklabnik · 2013-01-07
> people who are excited about that don't need to be told not to be. Whoah, if you got "Don't be excited" out of this, then I've failed: I am trying to not get too excited, just in case, but it's certainly exciting. At the end of the Poignant Guide, _why talks about his own return: http://mislav.uniqpath.com/poignant-guide/book/chapter-7.html > Don't "hi" us!! Where have you _been_? > > Just Around. > > ... > > What about us? Do we have to take a nap? > > No no! We got chapter eight... I don't want to read too much into the emphasis placed on the 'U' in 'around'... Seeing a great actor pick up his most famous role and re-take the stage is certainly a reason for excitement.
crisnoble · 2012-09-13
Writing less code is good; emphasized by the no optional semicolons rule, by no curly braces where not necessary and by using functional programming constructs whereever possible. Is omitting semicolons really the standard? I am fairly new to programming but I find semicolons injs to be very helpful. Edit: just read the linked http://mislav.uniqpath.com/2010/05/semicolons/ very good explanation why semicolons are questionable at best.
aseemk · 2012-06-12
Came here to mention this exact issue. (And related, e.g. cmd+clicking.) Mislav wrote a great post on how to do this robustly: http://mislav.uniqpath.com/2011/03/click-hijack/ Hope that helps!
danso · 2012-06-05
I know that tryruby is based off of why's guide, but here's his great book in HTML form http://mislav.uniqpath.com/poignant-guide/book/chapter-1.html I'd also recommend Zed's book as a place to do some exercises. It is pretty much a straight port of his Python book, so you won't learn the idioms, but it's still well structure http://ruby.learncodethehardway.org/
pook1e · 2012-04-21
As others have mentioned, there are plenty of good Ruby tutorials around. Personally, I thought "why's (poignant) Guide to Ruby"[1] was pretty great. It goes off topic quite a lot, but I think it's a joy to read while still learning the core concepts. [1] http://mislav.uniqpath.com/poignant-guide/
nhebb · 2012-04-15
The GitHub style guide recommends the opposite: "Do your best to never use a semicolon. This means avoiding them at line breaks and avoiding multi-statement lines. For more info, read Mislav's blog post [2]." FWIW, I agree with the Google style guide. Maybe I'm interpreting it wrong, but ASI struck me as a fail-safe to protect coders that forgot the occasional semicolon and was later mis-identified as a feature. Having Brendan Eich weigh in on this is akin to having Thomas Jefferson pop his head into the Ninth Circuit and clarify an issue over Constitutional intent. If it were me, I'd listen to Thomas Jefferson. [1] https://github.com/styleguide/javascript [2] http://mislav.uniqpath.com/2010/05/semicolons/
alwillis · 2012-01-11
Agreed. There's a great post Vim: revisited with a minimal .vimrc file that I used after having to start over learning Vim because of using someone else's .vimrc I didn't need or fully understand: http://mislav.uniqpath.com/2011/12/vim-revisited/
TrevorBurnham · 2010-07-10
The parent isn't quite as inane a comment as it may seem. It's a reference to Why's Poignant Guide to Ruby, a widely beloved introduction to the language that you can read free online at http://mislav.uniqpath.com/poignant-guide/ The Ruby ecosystem is very rich. You don't need a $100 course to learn the language, though it might help to provide motivation.
tron_carter · 2010-05-11
I started recently learning with a pretty good book on Python. It teaches by having you create little games. "Python Programming for the Absolute Beginner, 3rd Edition" By Michael Dawson. For Ruby on Rails, a great, if a little wacky introduction, would be: http://mislav.uniqpath.com/poignant-guide/
emilam · 2010-03-11
I thought this previous post covered it pretty well. http://news.ycombinator.com/item?id=1162371 They recommend why's guide to ruby which is a fun book to read through even if you do understand basic concepts. http://mislav.uniqpath.com/poignant-guide/
scorchin · 2010-02-01
In all honesty, read through _why's (poignant) guide to ruby first to understand the basics of Ruby and read some cool comics along the way. Once you're happy you've got a good footing in Ruby (will only take an afternoon+evening to read and try the examples) you can go for one of the many "Rails" books that are likely to be recommended here. http://mislav.uniqpath.com/poignant-guide/ Crunchy Bacon!
harpastum · 2009-10-08
Why's it's not technically what most people would consider a 'textbook,' I'm surprised Why's (poignant) Guide to Ruby isn't there. I would recommend it to anyone interested in a solid (yet quirky) introduction to Ruby. It's license is CC-Share-Alike, so it clearly fits under the category of 'free.' You can find it online here: http://mislav.uniqpath.com/poignant-guide/ or buy the paperback ($6+shipping) here: http://www.lulu.com/content/paperback-book/whys-(poignant)-guide-to-ru…
pygy_ · 2011-08-23
He's a top notch high and low-level programmer with excellent taste for API design (and a language geek). He's also a talented poet/writer, painter/cartoonist/web designer and composer/singer/musician. From ~2002 to 2009, he released a tremendous amount of material (dozens of code projects, thousands of blog posts), then disappeared abruptly, deleting almost everything he had ever published. His blog posts were humorous yet insightful. His libraries were excellent, some of his snippets were completely baffling. The libraries were always artfully and pedagogically documented. He wrote in 2005 an essay lamenting the high barier of entry to programming for children in the 2000's whereas Basic was available in every 8/16bit computers when he was a kid. From then on, he tried to improve the situation: first by writing his Poignant guide to Ruby, then by writing http://http://tryruby.org/, the first online REPL, wrapped in an interactive tutorial. At last, he started the Hackety Hack project: an development environment to teach programming to children. Extremely creative, he (used to?) consider programming to be an art in and of itself, but frequently mixed genres too. His programming book is illustrated with cartoons, fantastic stories and has a sound track that illustrates either the code, the stories, or the book writing process itself. The "This book is made (of rabbits and lemonade)" and "The parts of Ruby/Chunky Bacon" songs gives you a good sample of what his overall…
tijmenb · 2011-06-24
Good for you. I've started working with Ruby and RoR about three weeks ago now, also from PHP. These are some of the the things I've read/watched to get a grasp on the whole: Why's Poignent Guide To Ruby http://mislav.uniqpath.com/poignant-guide/ I found the RailsCasts invaluable. It's great to just see someone code stuff, instead of finished examples: http://railscasts.com/ Read every one of the Rails guides: http://guides.rubyonrails.org/ I started reading Russ Olsen's Eloquent Ruby yesterday, which is absolutely awesome. I'm already half way trough. Wish he could rewrite every programming book I ever read. http://www.amazon.com/Eloquent-Ruby-Addison-Wesley-Professional/dp/032… It felt really daunting at first, because it seems there's so much new stuff to learn (Ruby, Rails, Passenger/Phusion, Gems, Capistrano, RVM, Rake, db migrations, etc etc). But hang in there. As I said, I started only a couple of weeks ago and already feel like I never want to go back.
dutchrapley · 2011-05-05
Your question is more in regards to Ruby itself, and not Rails. You don't have to swap out implementations in Ruby. Implementations aside, when you do DI in Java, it serves two purposes: 1) instantiates an object and 2) wires it into another object. Remember that in Java, each class is in it's own file. In ruby, you can break classes into several files, but you don't have to. Ruby simply reads class declarations at runtime and instantiates those classes into constants. This means that your classes are always available. If you've defined a class method, you can call SomeClass.some_class_method. If you want to work with an instance of that class, you would call SomeClass.new - to which you can pass args to a constructor. In your instance, you could have three classes - User, UserLdap, and UserDb. You might call User.find( person ), and in the find method you would test your conditional on whether to use UserLdap or UserDb. If you had common methods you wanted to share between the two, you could place those in User and extend that class for use with an instance object. Another option for sharing methods cold be to place them in a module, which you can then include in your class. It's hard for me the make a recommendation for your specific problem at hand. My best advice is to read up and Ruby a little and begin to put what you learn into practice. Here's a couple of recommendations: http://www.humblelittlerubybook.com/ http://mislav.uniqpath.com/poignant-guide/ My light…
blacksmythe · 2011-03-16
>> READ: Hacker News is a reasonable starting point these days. In my experience, almost the opposite order is best. I find reading Hacker News very enjoyable, but by far not the best use of time early on. An hour spent programming is 10-100x more valuable than an hour spent reading Hacker News, until you have enough experience to put the information in context. I would suggest: optional Read "Teach Yourself Programming in Ten Years"(http://norvig.com/21-days.html) 1) Learn basic HMTL/CSS 2) Learn Python or Ruby fundamentals (http://learnpythonthehardway.org/index or http://mislav.uniqpath.com/poignant-guide/) 3) Learn Django or Rails 4) Learn jQuery 5) Build a few Django (or Rails) projects 6) Find someone to pay you to build things 7) Use Stack Overflow to help you solve customer problems 8) Spend time you are not busy with customers reading Hacker News, attending local meetings, learning whatever catches your interest.
verysimple · 2011-02-22
Zed Shaw has some guidelines about that http://learnpythonthehardway.org. You'll learn some basic programming in a very good and versatile language. I learned web programming a few years ago. In my opinion, I gained about a 3 weeks head-start in productivity by choosing PHP, but I ended up making up for it for the next 3 years. There are other commendable books geared towards beginner programmers, but only a few that also target web enabled languages come to mind. JavaScript: http://eloquentjavascript.net/ (I recommend the interactive HTML version). Ruby: http://mislav.uniqpath.com/poignant-guide/ If I were to begin programming with the goal of working in the web today, I would love that someone pointed me to any of these 3 resources. Like I said there are other beginner books and online tutorials using languages that aren't usual for the web like The Little Schemer (Scheme). It's always a plus. You'll need to learn to use a good text editor or an IDE. I'm biased toward Vim, it takes time, but it's a good investment. You'll need to learn HTML and some CSS. There are countless lists of recommendations out there for best books on x. Just checkout StackOverflow with similar queries for JavaScript, CSS and HTML. e.g. http://blog.reybango.com/2010/12/15/what-to-read-to-get-up-to-speed-in… You'll need to learn to interact with databases. You'll need to learn some SQL. However, I've been doing this for quite some time and I've only recently been playing with…
scythe · 2011-02-02
I'm going to break the rules here and answer two languages. First, you should learn one of the easy dynamic languages. This means Perl, PHP, Python, Ruby, Lua, Clojure. I think Ruby is a good choice because it has a lot of cool concepts built in to the core language that the others lack, and so it can be a foundation for learning many different styles of programming -- it does this, in my opinion, better than Python, and has a nicer syntax than Perl. _why's poignant guide to ruby is a bit outdated but still a pretty awesome and cool introduction. http://mislav.uniqpath.com/poignant-guide/ Second, and this might come as a shock, some form of basic assembler. I recommend LC-3 assembler. And the main reason here is that a decent understanding of the memory model is going to help you a lot when it comes to dealing with pointers, complex data structures, or anything, really. You'll probably never write a program longer than 100 lines in LC-3, but the short things you do write will give you a deeper understanding of your code everywhere else. http://en.wikipedia.org/wiki/LC-3 http://highered.mcgraw-hill.com/sites/0072467509/student_view0/lc-3_si… There may actually be a newer "learning assembler"-styled language out there, but I am not aware of it. LC-3 is showing its age, but it was great when I learned to program, and I learned as much programming for three months in LC-3 as two years prior in Java. That said, you should definitely familiarize yourself with…
bphogan · 2010-10-11
It's far from wasteful for us. The stories we write are exactly plain text which we have successfully had clients help us write. Unfortunately some programmers don't speak "plain text" and insist on writing code-like stories using "tables" instead which then can make it very, very wasteful. For us, the mere excercise of writing the stories with customers has been very useful in getting the requirements out of their heads. We can then say "You helped us write these, the app does what you said you wanted it to" and there are less issues with communication. It's saved us time and money. Here's just an example of how we use it, using EmailSpec. Given I'm logged in to the central authentication service as "bphogan" And I am on the home page Then I should see "Welcome, Brian" When I select "Administrative Information" And I follow "Change Address" Then I should see "Fill in this form to change your address" When I fill in "Address 1" with "123 Fake Stree" And I fill in "City" with "Springfield" And I select "OR" from "States" And I fill in "12345" for "Postal Code" And I press "Change Address" Then I should see "Your address has been updated" And I should receive an email When I open the email Then I should see "We have updated your address" That alone tells a client so much about what we're doing, and tells the developers what real tasks need to be extracted from the story to make it all pass. Things like…
folz · 2010-09-21
I, too, am in high school, but have been programming for several years. One of the best things that I've been able to do that I wholeheartedly recommend you try to do as well is to find someone in your school or community that knows computer science (the theory and principles involved, not just how to program). A solid knowledge of computer science is a terrific foundation to have, but it's hard to learn on your own. If you have a mentor (I found mine in my school's computer science teacher, and a professor at my local college), you will have someone to guide you and someone to go to when you're confused about something. In addition, as tommynazareth said, find something to make. It doesn't have to be the next Facebook or the Linux 2.8 kernel, but you should find something that you can program. You mentioned Android/iPhone applications were something you were interested in doing. If that is the case, try deciding on a single-functionality app like, for example, a "Where's My Car" clone, where you create an app that remembers where the user last parked his car by using the Android's GPS data. Or maybe you want to make an app that can interact with Twitter. Whatever the case is, pick something and make it. If you have a mentor, you can go to him or her if you get stuck (or even for project ideas!). Contributing to open-source projects (once you're comfortable programming in whatever language the open-source project is in) is a great way to not only make contacts in…
jackowayed · 2010-08-14
I'd get a stronger command of Ruby first. It'll help you, and Ruby is awesome. Rails may not be your thing even if Ruby is. It's probably not the best way to learn Ruby, but the most fun way is definitely reading _why's poignant guide[1]. It's awesome and teaches you pretty well (you can find PDFs and such out there too). Once you're satisfied with your command of Ruby: I'm not really sure what the best way to get started is. I think RailsGuides[2] is supposed to be pretty good. The "getting started" page looks good and complete. When I started, the first thing I did is read the very-introductory parts of the Pragmatic Programmers' book[3], which is great. I didn't bother with the whole thing, just got the basics from it and then learned by doing, occasionally referring to it. Once I read a few chapters of the pragprog book, I looked at official rails docs (I think it was guides.rubyonrails.org, but that site has evolved a lot since then), got started with something pretty simple, and googled if I had any trouble. For specific issues like getting exceptions, the api documentation[4] can be pretty useful. Though really, you should use apidock.com/rails because it's way more searchable (it's the same docs, plus some comments that apidock users have added, they just made a better search and made it less ugly). Also, if Rails isn't doing it for you (especially if you do love Ruby), take a look at Sinatra and Padrino. There's of course way more plugins out there for Rails,…
KlausTrainer · 2010-07-26
> For me it's a 'yes' based on the simple rule that explicit is always better than implicit. That sort of 'optimisation' seems to be really cool when you're just starting out in a language but in the long run it isn't worth it. I don't really get what you call implicit when you terminate statements with semicolons instead of linebreaks... ... Ok, I get what you're hinting it: there are some (very) few exceptions. However, I cannot see where there is any 'optimisation' in using linebreaks instead of semicolons. You better need to explain why someone should use both linebreaks _and_ semicolons, when only using linebreaks is actually as good as well. Basically, it's just a matter of style. Aside from a few exceptions (e.g. described in http://inimino.org/~inimino/blog/javascript_semicolons), linebreaks terminate a statement. If you stick with writing only one statement per line, I don't see what's so implicit with it. Rather terminating a statement both with a line break and a semicolon is a tautology, and hence introduces unnecessary redundancy. The actual question is, whether one can require that developers know the (maybe a handful) exceptions where a line break doesn't terminate a statement. I have decided (for myself) that I can require that knowledge, as it really comes down to only a few exceptions (that I believe are easy to remember). But, of course, I'm aware that one can also come do another reasonable conclusion. The only important thing is that people make a…
amix · 2009-12-12
I think you can become a decent programmer quickly, especially now when there are so many good books, high-order languages and tutorials on the subject. To master programming (like everything else) takes a lot of effort thought (check out Peter Norvig's "Teach yourself programming in Ten years" [1]). But even if it takes 10 years you will only be 34 and have about ~25 work years left in you... 25 years, that's a long time. So if you are really liking the idea of programming, start small and do a small project - - like creating a site for one of your hobbies. I can recommend checking out Dive Into Python[2] and Why's (Poigant) Guide to Ruby [3]. There are lots of great (and free) books on programming out there, so you don't really have to invest any money... Good luck :) [1] http://norvig.com/21-days.html [2] http://www.diveintopython.org/ [3] http://mislav.uniqpath.com/poignant-guide/
cjpa · 2015-06-22
The Little Schemer By Daniel P. Friedman and Matthias Felleisen - https://mitpress.mit.edu/index.php?q=books/little-schemer Why's poignant guide to Ruby - http://mislav.uniqpath.com/poignant-guide/book/

Keyboard shortcuts

/Search
j kNext / previous blog
EnterOpen selected blog
vVisit the blog site
fFollow / unfollow
lSwitch grid / list view
dSwitch dark mode
g hHome
g pTop posts
g tTopics
g fFollowing
g lLiked
g yHistory
g qFAQ
EscBack / close