Posted by ezmobius
Mon, 14 Jan 2008 21:35:00 GMT
We are currently slaving away on a complete refactor/revamping of the merb framework on our way towards 1.0.
Here is a nice article about the progress and roadmap we are taking.
http://yehudakatz.com/2008/01/14/merbnext/
You can follow the merb-core development on github here:
http://github.com/wycats/merb-core/tree/master
Basically we are completely refactoring merb into a merb-core and merb-more gem plus many pliugins. This is to make it as tight as humanly possible going forward so merb1.0 will be a stable api and system upon release.
This means new documentation standards as well as full Rack support so merb will run on mongrel, evented_mongrel, swiftiplied_mongrel, thin, fcgi, webrick and ebb. Plus any other rack servers that come into existence.
This also means that merb’s app layout is no longer hard coded. You will be able to run a single file merb app or the current rails-like app layout or create your own with a flexible dsl.
I’m pretty excited about the future of Merb. Yehuda Katz and I are now working full time on Merb and related technologies. Engine Yard’s new control panel will be written in merb and EY is also offering the same level of support for Merb that it does for Rails apps. Cool stuff is on the horizon.
So bear with us a bit as we head for Merb 1.0 with a scalable API as well as scalable ruby web platform.
Tags merb | 16 comments
Posted by ezmobius
Fri, 11 Jan 2008 21:44:00 GMT
Just a quick note here so say that we’ve finally let the cat out of the bag. We’ve been working with Benchmark Venture Capital on this investment for the past 4 months and it has finally closed!
Our hosting business has already been profitable for some time now and this investment will allow us to pursue the goal of our own Engine Yard open source technology stack. The stack includes Rubinius, Rails, Merb and our custom Xen clustering management technologies.
I’m really excited about the future of Engine Yard and what we plan to do for the Ruby community. Hard to believe we started with 4 people and 6 servers in October of 2006 and now we have many clusters and 32 employees across the globe!
Tags engineyard | 12 comments
Posted by ezmobius
Thu, 10 Jan 2008 08:45:00 GMT
We’ve just cut the 0.5.0 release of merb. This release has numerous improvements and features, such as:
- Improved Haml support including pre-compiling and fast inlining of haml partials.
- built in Sass support, just add a sass directory in public/stylesheets, it will automatically regenerate the CSS in dev mode as well if you change the .sass files.
- Refactor server.rb into config.rb and boot_loader.rb
- Got rid of MERB_ROOT and other ugly constants and replaced them with Merb.root and friends.
- Asset Bundling
- New param protection plugin
- Built in support for ruby-debug
- New releases of the merb_datamapper, merb_sequel, merb_activerecord and merb_helpers plugins.
- better support for namespaced routes
- More generators, including Part generators
- Removed FormControlMixin, use merb_helpers instead.
- Improved spec and test helpers.
This release cleans up the merb boot and configuration process and got rid of a bunch of constants and replaced them with the Merb object. See this pastie for the mapping from the old constants used to the new way of accessing the same info. If you are updating your 0.4.x merb app to 0.5 you will need to update your merb_init.rb, boot.rb and dependencies.rb to reflect the new style of accessing config values. Generate a fresh app and make your app match the changes in these 3 files.
This release has a lot of contributions from the growing merb community. Merb is still a young one though at 0.5 and we have some big(and little) plans for the next release. We will be splitting the framework into merb-core and merb-more. Merb-core will be all the HTTP tooling code as well as the dispatcher, router, controller, views and glue to hold them together. Everything else will be moved to merb-more or a plugin. There will still be a merb gem, but it will just install merb-core and merb-more as dependencies.
The whole idea of merb-core is to keep a very small tight core framework that deals with the infrastructure needed to write highly scalable, fast web services and back-ends. merb-core plus merb-more will be a more full featured framework. This way Merb can scale your apps from tiny to as large as you need instead of assuming you need the whole kitchen sink, allowing you to start with merb-core and cherry pick the features you need from merb-more.
So gem install merb should get you the 0.5.0 release now. If you want to follow or help with merb development the trac is here merb.devjavu.com/
This is the “Thanks Zed” release. Thanks for mongrel Zed, it has truly been a great dog. You will be missed.
Tags datamapper, merb, sequel | 23 comments
Posted by ezmobius
Thu, 03 Jan 2008 18:56:00 GMT
Engine Yard is looking to hire one or two more team members in the European timezones.
These positions are for Ruby/Rails application support technicians. You would be working with customers to deploy and maintain their applications. You would also have a hand in building our set of ruby based automation tools.
If you think you have what it takes and would be interested in working here then please send a resume and short description of why you would kick ass to :
jvandyke@engineyard.com
We are also looking for people in Australia, so if you are interested send am email to :
degan@engineyard.com
Tags engineyard | no comments
Posted by ezmobius
Fri, 14 Dec 2007 08:53:00 GMT
Merb 0.4.2 is released as a gem. This release polishes up a number of rough spots and vastly improves performance in some areas. Should be a simple upgrade for anyone on 0.4.0 or later.
Here is the changelog:
== 0.4.2 “Surf’s up.” 2007-12-14
- Super-huge speed boost for rendering Erubis templates with partials
- Windows-specific fixes to Merb’s Rakefile
- Blocking write is called when in development, test, Windows and jRuby environments and platforms.
- merb_helpers: form field labels are now explicit, huge documentation update, added select, fieldset, more helpers
- Fixed merb.show_routes within merb -i
- Fixed image_tag, css_include_tag, and js_include_tag to work with path_prefix
- Adds spec helper methods with_route and dispatch_to
- fix rakefile cfor cygwin
- add count with collection to partial()
- Form control mixin is deprecated Use merb_helpers plugin.
- add redirect matcher to rspec test helpers
- allow r.resource(:foo, :myparam => 42) resource routes pass on params to underlying match() call
- spit out error and help message if you call merb with no args
- get rid of dependency on mongrel for escape and unescape
- make sure not to use write_nonblock when logging to STDOUT
- Fixed image_tag, css_include_tag, and js_include_tag to work with path_prefix
- fix set_status to actually work, add docs,
- config/merb.yml is now correctly loaded from Rake and test environment – using Merb::Server.load_config
- added config option to disable loading of the JSON gem – still enabled by default
- don’t raise if names local on a partial is nil
- Use svn export instead of checkout upon merb:freeze_from_svn
- Extracted url and other general methods out of ControllerMixin into GeneralControllerMixin
- fix caching of @_buffer in render, form_for
- Seperates spec helpers into the Merb::Test namespace to prevent spec methods leaking into specs
- Changes the spec url helper method to the same used in the controller
- Made Request#parse_multipart return an empty hash instead of nil if the request is not multipart
- Changes throw_content so that it can be called without a block
- Added :namespace option to routes.
Tags merb | 3 comments
Posted by ezmobius
Thu, 06 Dec 2007 23:26:00 GMT
We are looking for a few killer Sysadmins/Cluster Engineers.
The engineer will build, maintain and support clusters of machines. This role also provides application and network support and communicates with users on systems status, including system changes, problems, enhancements and potential impacts.
This is a telecommute position. You will get to play with badass hardware.
Requirements:
- 3 years experience managing server class hardware
- 3 years experience as a Linux Administrator. Including configuration and maintenance.
- Experience with Gentoo Linux. Other distros a plus.
- Working knowledge with most of the following software/technologies: LVS (Linux Virtual Server), Bash shell scripting, Linux iptables, CoRAID AoE devices, RedHat Cluster Suite, TinyDNS, Exim, nginx, apache, mysql, postgresql, ruby, python, nagios.
- Experience performing 1st and 2nd level 24×7 production support
- Capable of implementing small to medium sized technology projects from implementation documents.
- Strong verbal and written communication skills.
- Capable of developing documentation to support completed tasks.
- Ability to create and maintain positive and professional business relationships with both internal associates and external customers.
- Must be able to work effectively in a team environment.
If you think you have the chops for this gig please send your resume and some text about why you would kick ass to:
Edward Muller emuller@engineyard.com
Tags sysadmins | no comments
Posted by ezmobius
Wed, 05 Dec 2007 23:58:00 GMT
We’re having a Rubinius Sprint here at Engine Yard’s new San Francisco headquarters this week. Lot’s of great hacking going on. I’m am super excited about the future of Rubinius.
But the awesome news is that Ryan Davis (zenspider) and Eric Hodel (drbrain) have been officially hired to work on Rubinius full time along with Evan.
And Starting in January, Wilson Bilkovich (Defiler) and Brian Ford (brixen) will also start doing paid work on rubinius.
I feel that rubinius has a very important role to play in the future of Ruby as a language. I can’t say enough how stoked I am that EngineYard is able to do this. We were just a tiny startup with 6 servers a year and a half ago ;)
Go Rubinius!
Tags rubinius | 10 comments
Posted by ezmobius
Sun, 02 Dec 2007 01:07:00 GMT
This is a tutorial for people that want to familiarize themselves with the merb framework code and how a request travels through the framework. This is not a complete walkthrough but it will definitely get you into the code base and peeking around at key areas.
To follow along at home with you should grab Merb trunk from svn here:
svn co http://svn.devjavu.com/merb/trunk merb
This tutorial was written with svn rev #1058 which is trunk as of today. It is probably subject to some change but mostly covers code that is on the hot path and doesn’t change very often.
Read more...
Tags merb | 9 comments
Posted by ezmobius
Mon, 26 Nov 2007 21:15:00 GMT
Here is a nice little snippet for nginx that took me forever to figure out. The scenario is that you have a facebook app and you want to use rails built in page caching that writes out an html file that the webserver serves directly instead of hitting rails for the page.
The problem is that facebook only sends POST requests and Nginx and most other webservers do not allow serving a static file in response to a POST request. Nginx will return a 405 error.
The way to solve this is to catch the 405 error with an error_page directive and change it to a 200 ok request and serve the page cached file. Of course this still has to work with checking for html extensions and falling back to mongrel if there is no page cache. So here is the solution .. add this to your nginx vhost server{} block at the bottom and you will be good to go:
error_page 405 =200 @405;
location @405 {
index index.html index.htm;
# needed to forward user's IP address to rails
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect false;
proxy_max_temp_file_size 0;
proxy_next_upstream error;
if (-f $request_filename) {
break;
}
if (-f $request_filename.html) {
rewrite (.*) $1.html break;
}
if (!-f $request_filename) {
proxy_pass http://mongrel;
break;
}
}
Enjoy ;)
Tags facebook, nginx | 1 comment
Posted by ezmobius
Tue, 20 Nov 2007 00:11:00 GMT
EDIT: These guys we’re cool about things. They have removed all of our design from their site. They said it was the web developer they hired and they we’re unaware that it was copied. Kudos to them for reacting quickly.
13 comments