I’ve been using git for about 18 months now and thought I knew it pretty well. Then we had Scott Chacon from GitHub over to do some training at LVS, a supplier/developer of betting/gaming software (where I’m currently contracting) and I learnt a ton in the first day.
As someone who’s always felt fairly comfortable in Git, I thought sharing some of the nuggets I learnt with the community might help someone to find an answer without needing to do lots of research.
We have a large Rails site live which runs with production level logging. Occasionally there is a problem where debug-level logs would help us track down a problem quickly, but we can’t restart one of the Rails servers to have logs put in debug mode for a single request (and don’t want to run in debug mode for long as the servers are heavily used).
For our purposes it would be nice to have just the log output for the single request we want to look at. Rails’ console and the app object to the rescue!
Having just launched a major Ruby on Rails site, there has been a period during which we’ve had to improve performance dramatically. While most of the benefits have been had by using a custom Rails middleware class there have been a number of actions that aren’t cacheable so I’ve needed to profile the request and then optimise some internals.
Fortunately starting with Leopard, Apple has included a patched version of Ruby that has DTrace probes support.
I recently had the time to ask Grandmaster Pan Sim Woon, 8th Dan in Taekwondo, some questions about his views in Taekwondo, poomsae and his upcoming web site.
There are times when Rails feels very heavy! Jason Seifer has joked for ages about how Rails can’t scale, and we all know that’s a fallacy, but there are times when you know a bit of code is simple and could be really lightweight but having it as part of a controller, having gone through the Rails routing process and all the filters would just slow it down.
At the end of 2008 Rail Metal was introduced and it came like a breath of fresh air. It simply works as a lightweight class dropped in to /app/metal/ that is given the opportunity to handle a request before the main Rails stack.
When I first started reading about Rails Metal/Middleware it seemed like a great idea, but it didn’t really offer anything with a real tangible benefit. Can it be used in real life, or is it a nice bit of icing – something fancy to show off to non-Rails/Rack developers?
You may be familiar with Sau Sheong Chang's blog at blog.saush.com and if not I'd recommend checking it out (after reading this blog post of course). Sau Sheong is an expert at describing how to create common web systems with very minimal Ruby code - see his blog posts on Clone TinyURL in 40 lines of Ruby code and Write an Internet search engine with 200 lines of Ruby code for more examples of what I'm talking about.
I actually found his book Ruby on Rails Web Mashup Projects on Amazon after reading his blog and snapped it up immediately, hoping it was just as good as his blog.
Do you need to know how to create an X.509/SSL encrypted client socket in Ruby? I did for a client and there wasn't anything complete on the net (that Google would find), so I found out and here's how I did it.
Many projects developed for a LAMP stack use the mainstay of subversion for version control. It's been a while since I've heard of anyone still using CVS and most LAMP projects haven't yet moved to git. As I'm a dual PHP/Ruby on Rails developer I've jumped the fence and now use git for hosting all projects (except for the ones at my current contract where subversion is still the department standard). There are many reasons why git is better than other version control systems, but in this article I'm just going to talk about one particular git host - GitHub.com and what makes it so great.
Often the term Agile means so many things to so many different people. Business people can think it means that the developers want to "wing it" without any formal planning. Developers can think that it means the business wants them to be constantly at their beckon call, dropping work to create their "latest urgent job" and doing more work with less people.
The truth of the matter is that this is slightly true to a certain point. It may sound to all the agile experts out there that I've been drinking or I don't really understand agile development or project management - trust me, I really grok agile and love living the agile way. My thoughts will become clear.