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 15 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 15 hours ago
What an odd topic, you might be thinking. Some time ago, I began teaching my elders (who are rapidly becoming my contemporaries, curse you, Father Time) how to navigate the Internet. After almost two years of this, I've become more sensi...
What an odd topic, you might be thinking. Some time ago, I began teaching my elders (who are rapidly becoming my contemporaries, curse you, Father Time) how to navigate the Internet. After almost two years of this, I've become more sensitized to seeing the 'Net from their POV. Here's a small fragment of a page I saw today (actual size): The page numbers and arrowheads are the only navigation elements on this huge, complex page that allow you to move around the list of products. The numbers are an 11px font, and the arrowheads are 6px by 8px. For a senior citizen, or indeed anyone with less than perfect vision and eye-hand coordination, this is pretty challenging to find on the page, let alone use. Here's a quick challenge for you as web designer: try dimming your screen down a bit, to the point where it's noticeably uncomfortable to use. Does your page still seem easy to navigate? Now try switching from your dominant hand to your other hand, and try clicking your page navigation elements (not just buttons, but drop-downs, menus, etc.). Still usable? If not, you may be designing your page to keep away some users. Just a thought.
about 23 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?!?!
1 day ago
At End Point we frequently use GnuPG for PGP-compatible secure data storage and delivery, both internally and with some of our clients. For many years, GnuPG 1 has been the standard for Unix-like operating systems such as Linux and Mac ...
At End Point we frequently use GnuPG for PGP-compatible secure data storage and delivery, both internally and with some of our clients. For many years, GnuPG 1 has been the standard for Unix-like operating systems such as Linux and Mac OS X, as well as Windows. Relatively new is GnuPG 2, which is a modularized version but not (yet) a replacement. It's often built and installed as "gpg2" so it can coexist with trusty old "gpg" version 1. I mention this to raise awareness, since it seems to be little known. When you have an encrypted file, how can you see who the recipients are who will be able to decrypt it? It's easy enough to test if you can decrypt it, by just trying and seeing if it lets you. But what if you want to confirm others can see it before you send it to them? The manpage shows this option: --list-only Changes the behaviour of some commands. This is like --dry-run but different in some cases. The semantic of this command may be extended in the future. Currently it only skips the actual decryption pass and therefore enables a fast listing of the encryption keys. That sounds like the answer. And it almost is. However, for no reason I can discern, it doesn't show any recipients who have a secret key in the keyring of the running GnuPG instance! They just aren't included. We can't simply assume we are recipients, either, because there's no visible difference between not being a recipient and being one with it being omitted. I've looked for an answer to this before, and found people saying --list-only does include everyone, but for both gpg 1 and 2 that just isn't true for me. Taking desperate measures, I moved my ~/.gnupg/secring.gpg away and then it worked fine, because it can no longer see my secret keys, so I'm like any other recipient. Now, to achieve that same effect without actually moving the secret keyring around. Here's how: gpg --list-only --no-default-keyring --secret-keyring /dev/null $infile I'd love to hear of any easier way to achieve this, but in the meantime, that works. (Cute safe icon by VisualPharm.)
1 day 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.
1 day 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