Skip to content
HomeVideosBooksBlogs
AllTop postsTopics
Podcasts
HistoryListsWatch laterLiked videosFollowing

The videos, books, blogs and podcasts Hacker News keeps recommending, all in one place.

VideosBooksBlogsPodcastsAboutPrivacySettings

Data from Hacker News, HackerTube, HackerBooks, HackerBlogs and Open Library. Credits · Not affiliated with Y Combinator.

HomeVideosBooksBlogsPodcasts
Ctrl K
    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.

    Visit blogHN submissions
    ProgrammingOpen Source & Linux
    What HN says

    HN links it for the Poignant Guide, praised as one of the best programming books, and for his Vim and merge-vs-rebase posts.

    Stats for nerds
    100HN people shared it
    29linked in comments
    1.1Kstory points
    Jun 2015last shared
    2009people per year2015

    Top posts on HN

    1. 1
      Vim: revisited
      5 people · 392 points · first shared 2011 · 114 comments on HN
    2. 2
      Git Tips
      5 people · 334 points · first shared 2010 · 9 comments on HN
    3. 3
      Every line of code is always documented
      2 people · 158 points · first shared 2014 · 101 comments on HN
    4. 4
      _why: "Goodbye until I can shake this."
      2 people · 130 points · first shared 2009 · 50 comments on HN
    5. 5
      Semicolons in JavaScript are optional
      10 people · 36 points · first shared 2010 · 37 comments on HN
    6. 6
      Git: Merge vs. Rebase
      2 people · 10 points · first shared 2013 · Discussion on HN
    7. 7
      Things I learned from iPhone and Droid ads
      1 person · 6 points · first shared 2009 · 1 comments on HN
    8. 8
      Click hijack
      3 people · 5 points · first shared 2011 · Discussion on HN
    9. 9
      Creating the missing Instagram web interface
      1 person · 5 points · first shared 2010 · Discussion on HN
    10. 10
      Ruby verbose mode and how it's broken
      1 person · 3 points · first shared 2011 · Discussion on HN

    What HN people wrote when they linked it

    • folzSep 2010

      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…

    • dutchrapleyMay 2011

      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…

    • jackowayedAug 2010

      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,…

    • KlausTrainerJul 2010

      > 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…

    • pygy_Aug 2011

      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…

    • scytheFeb 2011

      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_simulator.html

      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…

    Related

    Ruby Insiderubyinside.com147 people

    Sinatra 1.0 Released: Major Milestone for Ruby’s Best Webapp DSL

    Ruby Inside
    Publication · last shared 2021
    Sam Rubyintertwingly.net64 people

    Sam Ruby, Brendan Eich, and Jeremy Ashkenas on CoffeeScript and "JS-next"

    Sam Ruby
    Personal · last shared 2026
    Jeff Kreeftmeijerjeffkreeftmeijer.com40 people

    Why aren't you using git-flow?

    Jeff Kreeftmeijer
    Personal · last shared 2024
    Eric Kiddrandomhacks.net65 people

    Rust lifetimes: Getting away with things that would be reckless in C++

    Eric Kidd
    Personal · last shared 2026
    Avdi Grimmdevblog.avdi.org132 people

    Your Code is My Hell

    Avdi Grimm
    Personal · last shared 2025
    Steve Klabnikwords.steveklabnik.com284 people

    A Sad Day for Rust

    Steve Klabnik
    Personal · last shared 2026
    _whywhytheluckystiff.net30 people

    _why's site is back up

    _why
    Personal · last shared 2025
    Isaac Schlueterblog.izs.me88 people

    A member of our community is missing, help find him

    Isaac Schlueter
    Personal · last shared 2026