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

Michael Hartl's Rails tutorial (https://www.railstutorial.org/) is a great example of this.

It'll run you through building a twitter clone and introduce you to git, heroku, a bit of CSS/HTML, and even goes into AJAX a bit.

I can't recommend it enough to people looking to get into rails.


Not only that, but for me what was super helpful was the "this is how real developers would approach this" in terms of covering lots of workflow things, design patterns, Git, unit tests, setting up your dev environment, sprucing it up with some gems, etc.

Can't recommend it enough.


This is the inspiration behind the book I am working on - Web Development with Go (see https://www.usegolang.com).

Michael's book is fantastic and I really wanted something similar for people getting into go. My book doesn't cover git or testing but that is because rails is a framework with tons done for you, and in my book you basically build all of that from scratch. You learn a ton, but it is long and adding git or testing would have made the book like 600 pages (instead of ~400ish).

If you are interested in Go I'd love to get your feedback :)


I subscribed to your blog and your newsletter some months ago, and I must say I like what you do. Although I'm focused on C++ now for some courses I'm taking, I still hope to catch up on Go later, and I think your book will be helpful. Personally, I wouldn't mind a hands-on exploration of a programming language having some pages, and links to good resources, on version control. Learning 'git' in such practical way (as part of a project) seems better to me (Harvard's CS50 now takes that approach too: https://github.com/blog/2322-how-cs50-at-harvard-uses-github...).


Feel free to email me if you want to discuss this in more detail. I'm not opposed to something like this but I suspect a video format may work better. jon@calhoun.io


I've been planning to get into Go so the book looks interesting. One question though: How far into the book do you introduce tools for automated testing?


This book doesn't cover testing at all. I wanted to, but there just wasn't room for it and it would have lead to information overload.

What I am thinking about doing is writing a companion book that covers git, testing, etc. Eg after every chapter the companion book then walks you through writing tests, committing to git, merging it into master, etc. That way someone could optionally choose to do those things along the way. I might also experiment with other formats, but time will tell.


I love that book and recommend it to anyone. The only thing I don't really like is its focus on MiniTest when practically everyone in the Ruby ecosystem has moved to RSpec. If I had to find a reason for this choice I'd say, one less gem to install and configure, and again convention over configuration.


I think MiniTest is a good starting point even if you end up going with Rspec, as MiniTest/jUnit style testing feels a little bit lower level. In the same sense, the book implements authentication from scratch, whereas many apps will end up using a library like Devise.


> I don't really like is its focus on MiniTest when practically everyone in the Ruby ecosystem has moved to RSpec

Is this true? I know RSpec is the popular one in open source, but last I checked the two were still pretty even as far as big name recommendations. I used to believe RSpec was the default when I first started Rails development, but as a professional dev I had seen plenty of Minitest implementation.


It's been a while since I went through it, but did the tutorial not originally use RSpec, then switch it out at about version 4 (along with a few other tools) so that everything in the book made use of the most basic, out-of-the-box tools (as much as possible)?


I am interested in the heroku part, but I would like that for different services. Like Amazon, Digital Ocean (I used it for single VPS but I'd like to see how to set up different vps, connect with each other, do vertical and horizontal scaling, etc).

Any recommendations in this area?


Packer + Docker + custom cloud elastic stuff.

You can use docker compose and swarm but at some point you need to interface with how the cloud offering does elastic scaling (for example google has instance groups and deploy templates).

I haven't seen a good resource on this last part other than PaaS/IaaS doc itself. So I am curious as well.

There sort of needs to be a packer of deployment + composition but I suppose that is what chef and puppet are sort of for (I despise those tools).


is there something similar to this but for python based frameworks, or javascript based? Seems like every great tutorial / books that I find are using ruby


Django has good tutorials, I don't know about building "one app" though. I'm sure you can find some of lesser quality; Hartl's tutorial is one of the very best.

If you don't mind drawing out your learning process, you could walk through Hartl's tutorial and do the equivalent in Python (probably with much help from google). So you couldn't use his code examples, but you could set up the same DB structure, the same types of tests, etc, and hit all the important parts of the web dev process.

Edit: found this in another comment below. Just thought I'd include it in case you gloss over it! https://blog.miguelgrinberg.com/post/the-flask-mega-tutorial...


Django Unleashed is written as a step-by-step guide to building a single Django project. The link below has links to Amazon or to Pearson's own site (DRM-Free!).

http://django-unleashed.com/

Full Disclosure: I'm the author.

If you're looking to go nuts, I recommend reading the first twelve chapters of Django Unleashed, following it up with Harry Percival's Test Driven Development with Python book (also written as a step-by-step guide), and then finishing Unleashed.

http://chimera.labs.oreilly.com/books/1234000000754/index.ht...

Two Scoops of Django (not a guide) is great to have after that.

https://www.twoscoopspress.com/products/two-scoops-of-django...

Hope that helps!


The closest thing I know of is Test-Driven Development in Python. http://chimera.labs.oreilly.com/books/1234000000754

It goes through making an app in Django, but is heavier on TDD than Hartl's book.


For what it's worth, it's fairly agnostic when it comes to languages or frameworks. Yes, you'll learn Rails, and some Ruby on the way, but the intent is to learn web development from the ground up. You'll learn concepts that will apply to anything else you might be using. It's invaluable, and a great place to start with web development.


This is also the first thing that came to mind for me. One of the finest web dev tutorials ever written.


I loved it so much that I bought the movies just to make sure he earned something from me for such an extraordinary piece of work.


I've been working on creating a platform for a non profit to get veterans coding (http://operationcode.org/). We're a slack based community and have been rolling out some home grown slack bots and we currently have a rails app hosted on heroku. Managing and keeping track of the different apps was getting unwieldy so in an effort to consolidate our apps and reduce costs I evaluated a few different options. I ended up going with rancher and after working with it a bit I'm pretty happy.

I have github hooked up to travis. When a new PR (or commit) is pushed travis shoves the app into its container, and runs the test suite inside the container.

If that passes AND the branch is master we push the image to docker hub. As of now we manually update the app inside of rancher but I think automating that will be a simple API call. Once we get more stable I'll be investigating that.

I still haven't quite figured out secret management but outside of that and a tiny learning curve it's been pretty smooth sailing.

An example travis config: https://github.com/OperationCode/operationcode_bot/blob/mast...


I do something very similar but with GitHub and Teamcity.

Automating the upgrades (i.e. redeploys) in Rancher is pretty straight forward - their API is super easy to use. I ended up writing a simple tool in mostly Bash to handle it, and threw it in a Docker container to run on Teamcity.


Offtopic, but that's a really awesome idea for our veterans. Thanks for working on it!


Operation Code (http://operationcode.org)

Operation Code is an open source project that helps military, guard & reserve troops, veterans and their families get coding and building software to change the world.

We're overhauling the signup flow to make it easier for software mentors, new signups and contributors to get started.

HTML/CSS, JavaScript, Ruby on Rails

https://github.com/operationcode/operationcode

https://github.com/OperationCode/operationcode/blob/master/C....

MIT


Operation Code (http://operationcode.org)

Operation Code is an open source project that helps military, guard & reserve troops, veterans and their families get coding and building software to change the world.

We're overhauling the signup flow to make it easier for software mentors, new signups and contributors to get started.

HTML/CSS, JavaScript, Ruby on Rails

https://github.com/operationcode/operationcode

https://github.com/OperationCode/operationcode/blob/master/C...

MIT


Hey, wanted to add to this - we're always looking for volunteers to help mentor developers at Operation Code. If you're interested in teaching, send us an email at mentorship@operationcode.org!


Using Firefox/Chrome on a linux box doesn't really compare to getting a dev environment setup.

For a rails app it's not a stretch to have to install postgres, rvm, ruby, some compiled gems, and redis. Then you need to make sure postgres and your rails server are running.

These aren't insurmountable and we can write documentation around it but compare that to 'Log into c9.io, copy this workspace and work on a ticket'.

I work with people that want to learn how to program and I hear feedback that getting an environment setup is overwhelming somewhat regularly. These online IDEs look like they can really combat that.


As long as they didn't state you can't use external libs it IS a good solution.

Their response lets their team dynamic and environment shine through. They came across an unexpected but valid solution and instead of accepting their question was beaten within the rules they rejected it. I'd wager they didn't fix the wording of the question afterwords either.



There is not much here. Real roadmaps look bit more complex than this. This seems like a roadmap created for hiring purposes.


FYI your page is empty of any content with ghostery enabled.


My team at a recent Startup Weekend did this.

RasPI with a PID loop turning a fan on (increase heat)/off (decrease heat). The RasPI fed this into a backend server via websocket. We through a front end on to graph the temp, humidity etc. We could even set the temp and turn the fans on/off via the site.


I haven't done much with Phoenix but I think there are a few libraries out there. I think addict is the front runner:

https://github.com/trenpixster/addict

https://github.com/opendrops/passport

Also here's a nice blog post that was in the elixir newsletter that may help!

http://nithinbekal.com/posts/phoenix-authentication/


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

Search: