Ruby

Phusion Passenger is software that deploys Ruby and Python web apps, by integrating into Apache and Nginx and turning them into a fully-featured application server. It is very fast, stable and robust and thus used by the likes of New Yor...
Phusion Passenger is software that deploys Ruby and Python web apps, by integrating into Apache and Nginx and turning them into a fully-featured application server. It is very fast, stable and robust and thus used by the likes of New York Times, AirBnB, Symantec, Pixar, etc. It comes with many features that makes your life easier and your application perform better. Phusion Passenger is under constant maintenance and development. Version 4.0.3 is a bugfix release. Phusion Passenger also has an Enterprise version which comes with a wide array of additional features. By buying Phusion Passenger Enterprise you will directly sponsor the development of the open source version. Recent changes Better protection is now provided against application processes that are stuck and refuse to shut down cleanly. Since version 4.0.0, Phusion Passenger already forcefully shuts down all processes during web server shutdown. In addition to this, 4.0.3 now also forcefully shuts down processes that take more than 1 minute to shut down, even outside the context of web server shutdowns. This feature does not, however, protect against requests that take too long. Use PassengerMaxRequestTime (Apache) or passenger_max_request_time (Nginx) for that. Fixed a crash in the HelperAgent which results in frequent process restarts in some traffic patterns. Fixes issue #862. Fixed a problem that prevents processes from being spawned correctly if the user’s bashrc changes working directory. Fixes issue #851. passenger-status now also displays CPU usage. The installer now checks for checksums when automatically downloading PCRE and Nginx. Contributed by Joshua Lund. An error is now printed when trying to daemonize Phusion Passenger Standalone on Ruby implementations that don’t support forking. Contributed by Benjamin Fleischer. Although Phusion Passenger already supported JRuby, installing Phusion Passenger with JRuby was not possible. This has been fixed. Various other minor bug fixes. Installing 4.0.3 Quick install/upgrade Phusion Passenger Enterprise users can download the Enterprise version of 4.0.3 from the Customer Area. Open source users can install the open source version of 4.0.3 with the following commands: gem install passenger passenger-install-apache2-module passenger-install-nginx-module You can also download the tarball at Google Code. We strongly encourage you to cryptographically verify files after downloading them. In-depth instructions In-depth installation and upgrade instructions can be found in the Installation section of the documentation. The documentation has been updated to cover 4.0 changes, including Enterprise features. You can view them online here: Apache manual Nginx manual Final If you would like to stay up to date with Phusion news, please fill in your name and email address below and sign up for our newsletter. We won’t spam you, we promise. Email address First and last name
about 6 hours ago
Just finished speaking at the delightful Cloud East Conference in Cambridge, England! Glad to say that my velociraptor slide went over well. Bridget and I have been visiting customers in London and Brighton, and are going to Berlin on Mo...
Just finished speaking at the delightful Cloud East Conference in Cambridge, England! Glad to say that my velociraptor slide went over well. Bridget and I have been visiting customers in London and Brighton, and are going to Berlin on Monday for DevOps Day! If you’re there, be sure to say hi! The intrepid Kevin Holler and inimitable Slava will also be in attendance. --Tasha Drew, Product Manager Engineering Updates We have a couple fun and useful items in our early access phase! If you go to the dashboard, and from the menu select Tools >> Early Access, you will now find Application Takeover Preference and Ruby 2.0. Application takeover preference allows you to easily set how you want our automated application takeovers to occur, in case our default behavior isn’t working for you.  Once enabled, you can go to “Edit Environment,” and you will see a new dropdown: So if you’ve been having any trouble with your specific customizations not booting properly when we are automatically handling application takeover, you can select to instead boot from a new volume; have a takeover occur, but without booting a new application slave to replace the one being promoted; or disable the feature entirely. As with all our early access features, we would be delighted if you shared your thoughts on these as you use them. Need something additional? Anything not working correctly? Documentation confusing? Love it and want to let us know? Tell us any and everything at our Early Access Forum! And, also in early access, we have big news for our Rubyists: Engine Yard now has Ruby 2.0! We’ve had Rails 4 for a while now if you want to try them together. The full featured Ruby 2.0 integration in the UI, etc., is still getting some work done, so for now the installation instructions have some unique steps (i.e. not through the dashboard). See our docs for all the details! Data Data Data As we continue to enhance our new cluster model, we are in the planning phase for upcoming new data stacks! One of our top priorities is our mySQL database stack and how to make it more awesome as it takes advantage of the new data model. We are in the early stages of re-productizing it, so if you have any wish lists of things you’d like to see from our mySQL offering, please let us know in the feature request forums! Social Calendar (Come say hi!) Monday May 27th - Tuesday May 28th: Engine Yard will be participating as a sponsor of DevOps Day Berlin! Kevin Holler will be delivering a 5 minute talk about Engine Yard Cloud, and Tasha Drew and Bridget Gleason will cheer him on from the audience. Wednesday May 29th: Our Portland office will be hosting the weekly Coder Dojo PDX! Thursday May 30th: Engine Yard's Dublin office is host to another addition of Node.js Dublin, featuring Dominykas Blyž?, Daniel McKay, and Isaac Schlueter.  Pizza and beer will be served! Saturday June 1st: Engine Yard Dublin will host an IXDA Prototyping workshop. In this workshop you will learn how to create wireframes and interactive prototypes using the popular tool Axure RP. Articles of Interest  Cern launched a public appeal to find the world’s oldest webpage, and this is what they found. What would the Games of Thrones characters look like if the show was staged in the 1990’s? Now we know.
about 6 hours ago
An Intervention for ActiveRecord, Using Gems in RubyMtion, GemConfig, using Nested Attributes with BackBone, Lyricfy (sorry - Chris made me sing!), and a shoutout to Josh Kemp in this RubyLoco-Powered episode of Ruby5. Listen to this e...
An Intervention for ActiveRecord, Using Gems in RubyMtion, GemConfig, using Nested Attributes with BackBone, Lyricfy (sorry - Chris made me sing!), and a shoutout to Josh Kemp in this RubyLoco-Powered episode of Ruby5. Listen to this episode on Ruby5 This episode is sponsored by New Relic You should be using NewRelic by now, but you might not be checking out their blog regularly. They feature a constant stream of news relevant to the entire developer community, not just their customer base. This week their blog features an article about the permutation testing they go on their Ruby Agent, testing it out against various Ruby versions, Rails versions, Sinatra versions, and other popular third-party gems. If you are looking into testing permutations, this is definitely worth a read! And as always, NewRelic is still awesome and accounts are still free. go get one at newrelic.com ActiveRecord Intervention Ernie Miller's talk from RailsConf is up online. If you've been curious about the inner workings of ActiveRecord, here's your brain-food! MotionBundler If you're using RubyMotion, you've probably run into the situation where a gem you'd really like to use just isn't includable in your project. MotionBundler solves that with a single line of code. Don't try to use gems with C extensions though... GemConfig Gem authors - how do you add configuration options to your gem? Yaml? a little dsl? a Hash exposed into the Global namespace? Well check out GemConfig for a nice reusable solution to this problem. Backbone Nested Attrs Vicente Mundim recently blogged about a new gem named backbone-nested-attributes. It provides your backbone models with 1-1 and 1-N relations support, as well as Rails-like nested attributes Lyricfy I'm sorry. So very, very sorry. Josh Kemp Do horses prefer Nike, Adidas, or Rebok? Josh Kemp can tell you. He can also whip up a few domain models and a little bit of CSS into a custom rails app. For months, Josh has been learning to become a developer and blogging about his journey, down the material he's working on and the hours he's spent doing it. (He's also the guy that inspired us to talk about RTanque a few months back). A lot of people have taken his journey, but few have done it with such visibility and passion. He launched his resume site last week and gained a little retweet love from the likes of Corey Haines and Uncle Bob Martin - go watch him pound out a horseshoe - dude has a freakin forge in the back of his car?!?!
about 15 hours ago
Rails 4, turbolinks and wiselinks - A look at two ways to get in-page updates. Summer of Design - 12 week online course for developers.
Rails 4, turbolinks and wiselinks - A look at two ways to get in-page updates. Summer of Design - 12 week online course for developers.
about 17 hours ago
Send to Kindle 7 secrets every developer should know before getting into a manager or lead role This guest post is contributed by Pramod Paranjape, who till recently ran a diverse delivery team of IT engineers and managers. He writes ar...
Send to Kindle 7 secrets every developer should know before getting into a manager or lead role This guest post is contributed by Pramod Paranjape, who till recently ran a diverse delivery team of IT engineers and managers. He writes articles for new managers at ConverSight.com. He actively contributes on Quora on topics like team management and IT outsourcing. He releases slide decks based on real life management case studies on slideshare. At some point of time in your career, you have to decide if you want to continue on a technical path or to take up a management role. Imagine that you have taken up a management role; how would your life look like? The foundations remain the same for both technical and management tracks. Here is what will not change: Sound technical background: Many successful project managers have been excellent technical developers earlier in their careers. Strong technical skills go a long way in identifying technology risks in projects. If you have a sound foundation of technical skills, you have equal chances of taking up either of these career paths. Using software engineering techniques in daily life: Delivering good code in a timely manner requires understanding of standard coding practices, defect management system, version control system and timesheet systems. It may sound obvious, but using the basic software engineering techniques ensures predictable delivery. Whatever path you choose, make sure you have an in-depth knowledge of software engineering techniques. What will change when you get into manager or lead role? 7 secrets nobody told you: A developer has to focus on his/her own tasks. When you become a manager, you will need to get the tasks done by the team members. You will need to allocate work to your team members based on their abilities. You will have to identify strengths and weaknesses of each team member. You will also give due consideration to their aspirations. As a manager, you will need to allocate tasks according to team members’ strengths to maximize output. While completing the assigned work, a team member may be stuck. A manager listens to him/her and analyses the situation. The team member may have adopted an unconventional approach to complete the task. This approach may be vastly different from the approach you would have taken. In a manager’s role, you will need to analyse from the team member’s perspective. A manager plans the work based on an overall strategy of solving a problem. Based on the strategy, he/she sets priorities. Prioritizing is deciding what is important over what is less important. A manager decides the strategy to obtain a solution because a developer focuses on completing the work assigned to him/her. Be ready to take the bigger picture into account in a manager’s role. Team members may need protection from conflicting power centers within the organization. Managers who can provide ‘air cover’ get their team’s respect. A manager defends his/her team members, so that they can focus on their work. This is a critical leadership trait to succeed as a manager. Team members like to work with a manager from whom they can learn. A conscious effort to share knowledge motivates the team. As a manager, you will have to share your knowledge and let the team learn from you. A manager conducts meetings to communicate various messages. He/She writes to different stakeholders to communicate the task status. Speaking and writing may seem basic skills, but using these skills effectively is very important for a manager. You have to hone your communication skills to become an effective manager. A manager does not develop code or test it. In some cases, a manager may take up some part of a team member’s work. Ultimately, a manager’s success depends on his team members completing their work. Highly motivated and happy team members complete their work in time. You will need to motivate team members to complete their assigned work. To summarize the seven
1 day ago
This last week End Point participated in the Google I/O conference for the third year in a row. As the lead agency for Liquid Galaxy development and deployment, our engineers were active in the development efforts for the two Liquid Gal...
This last week End Point participated in the Google I/O conference for the third year in a row. As the lead agency for Liquid Galaxy development and deployment, our engineers were active in the development efforts for the two Liquid Galaxy systems that were showcased at the conference this year.We sent two of our rock stars to the show, Kiel and Matt. This year both Liquid Galaxies used Google Maps API functionality in the browser rather than the stand-alone Google Earth app: Treadmill-driven Google Trekker: Working with Sparks Online, this showed a treadmill connected to the Google Trekker Trails panoramic imagery. Walking on the treadmill moves the view forward through the Bright Angel Trail in Grand Canyon. The tricky part being the curves in the trail, especially switchbacks: with no mouse to adjust the view, how to keep the view on the path when the input (the movement of the treadmill) was just “straight forward”? Our engineer, Kiel, used functions around Maps API data to automatically calculate the “closest frame” that would be next in line, and then force-feeds it to the Trail View, so “forward” is always centered on the path, no matter if the next frame is actually five to ten degrees (or in the case of the switchbacks, up to 150 degrees) left or right of center. WebGL Skydiving Game: In support of the creative agency Instrument, Matt provided expert consulting leading up to the show on the Liquid-Galaxy-enabling of the WebGL game demo Instrument developed that allows people to “skydive” down thru a series of rings suspended in mid-air. Maybe it’s just better to show the game: End Point’s full support included equipment rental to Instrument for development, developing and configuring the new Liquid Galaxy used in the Skydiving game, setting up the Liquid Galaxies at the show, onsite support, and repacking of the systems at the conclusion of the conference. We make things as turnkey as possible. Kiel said the following: “Google I/O is getting bigger, more interesting, and more packed every year. The GLASS track was a lot of fun”. Matt added “Google is as committed as ever to user experience, and they happily share all of their tricks with developers year after year.”Matt and Kiel appreciated the hands-on support of Andreu Ibàñez, from End Point’s partner, Ponent 2002, in the physical setup of the Liquid Galaxies we installed at the show and his sharing in the staffing of the skydiving exhibit.Feedback from show attendees was overwhelmingly positive, the whole Google Maps area drawing quite a crowd to take part in each experience.End Point welcomes opportunities to work with creative agencies and event planners to build unique and compelling visualization experiences that utilize the Liquid Galaxy platform. Please contact us at ask@endpoint.com if you’ve got an idea. Also, see our Liquid Galaxy website to see some of the many uses for the system.
1 day ago
By now you’ve heard that Engine Yard is proudly presenting our inaugural developer conference, Distill, on August 8-9. In addition to a lovely Treasure Island venue and a stellar lineup of speakers, we will also be throwing a kickoff par...
By now you’ve heard that Engine Yard is proudly presenting our inaugural developer conference, Distill, on August 8-9. In addition to a lovely Treasure Island venue and a stellar lineup of speakers, we will also be throwing a kickoff party the likes of which you’ve never seen. In keeping with the theme of distillation, which during the daytime events means learning, best practices and collaboration, we’ve dubbed the sure-to-be-awesome kick-off soiree “Moonshine”  as a nod to the tasty beverages we’ll be providing for you all. World-class DJs will kick out the jams as you enjoy our distillation-themed smorgasboard of hors d'oeuvres and the company of your fellow conference-goers. Throughout the evening, we’ll also be doing a few surprise giveaways (and if you know Engine Yard, you know that we don’t disappoint!) Moonshine will take place at the Old Mint in San Francisco. We want to thank our partner New Relic for sponsoring. If you haven’t purchased your ticket for Distill yet, hurry and grab your First Batch (early bird discounted) ticket! Tickets will be increasing in cost from $400 to $500 on June 1.
1 day ago
Love Ruby on Rails? Love teaching? Like blogging? Want to help contribute back to the Rails community? Look no farther friends, you can do so here!  Email me or comment on this post if you’re interested in contributing links, news,...
Love Ruby on Rails? Love teaching? Like blogging? Want to help contribute back to the Rails community? Look no farther friends, you can do so here!  Email me or comment on this post if you’re interested in contributing links, news, and information to the community.
1 day ago
Remember when "clear your cookies and try it again" was the first suggestion when a webpage was behaving badly? I remember that time of darkness, that time of early Internet Explorer, well, existing. I remember it being the only browser ...
Remember when "clear your cookies and try it again" was the first suggestion when a webpage was behaving badly? I remember that time of darkness, that time of early Internet Explorer, well, existing. I remember it being the only browser allowed in some offices and even being mandatory for some major websites. Remember that? Pepperidge Farm remembers. But we've evolved. These are brighter days. Around these parts, "Did you clear your cookies?" is typically only said in jest. So, imagine my surprise when I accidentally discovered that clearing my cookies was exactly what resolved my issue with our Travis-CI.org build logs failing to display. Seriously. Imagine it. Go ahead, I'll wait. On March 21st 2013, the beautiful and talented Travis CI service deployed a bad build of their own app. It contained a bug that caused build logs to fail to display. You could still see the builds and statuses under the Build History tab, but never any logs. This was right about the same time I had pushed a big refactor that used a new config file format for our app. It passed all our tests locally, but it was driving me nuts that I couldn't find out why it was failing on Travis. It was also displaying that sad-trombone image in our GitHub repo's README.md. The Travis crew actually fixed their bug just a few hours after it was discovered, but the issue persisted for me for a few days. I was confident enough in our local integration tests that I didn't roll back, but it was driving me nuts. I believe it was Socrates that said, "It's only after we've lost everything that we're free to do anything." So that's what I did - I cleared my cookies for no rational reason, and it worked. Travis logs, both old and new, started displaying correctly. Bam. Lessons learned: It's important to appreciate the classics (and also to subscribe to Travis updates.)
1 day ago
Three Approaches to Remote Pair Programming - A quick rundown on the current state of the art. Intermediate RubyGem Development - Covering dependency management, testing, and releasing your gem. Ruby on Rails 3 with Salesforce: Conclus...
Three Approaches to Remote Pair Programming - A quick rundown on the current state of the art. Intermediate RubyGem Development - Covering dependency management, testing, and releasing your gem. Ruby on Rails 3 with Salesforce: Conclusion - "Don't do it." am I a woman progammer? - "I am a programmer. I am a woman. Those are two independent facts."
1 day ago