boy, do clients like their corners to be rounded. luckily css3 makes it possible without images, but its not much fun to type due to mozilla/webkit’s syntax deviation. jacob bijani’s cool tool makes it easy to generate this code for copying.
The
Palm
Civet
i’ve been very persuaded by john nunemaker’s passionate writing that mongo db might be the next new thing i have to try. sure, sql databases are the norm, but mongo’s document-based database format rings truer to me the more of a rubyist i become.
gridfs is mongo’s way of storing file uploads within the database and with the release of its new ruby driver, using grid FS is faster and easier. check the simplicity in this example code =>
db = Mongo::Connection.new.db('testing')
grid = Mongo::Grid.new(db)
# returns object id
id = grid.put(File.read('mr_t.jpg'), 'mr_t.jpg')
# get the file using object id
file = grid.get(id)
# read the file from grid fs
puts file.read
# delete the file
grid.delete(id)
the active development of john’s mongomapper gem for rails models and grip plugin for gridfs should definitely be on anyone’s radar who is exploring nosql options.
javascript array shortcut functions
jquery is tight, but when you have to resort to plain old javascript, it can be frustrating that a lot of common tasks are not dead simple or elegant. here are some syntactical shortcuts for working with objects in arrays =>
// add an object to an array
function addObj(arr,obj) {
arr.push(obj);
return arr;
}
// remove an object from array
function removeObj(arr,obj) {
arr.splice(arr.indexOf(obj), 1);
return arr;
}
// check if object is included in array
function include(arr, obj) {
for(var i=0; i=<arr.length; i++) {
if (arr[i] == obj) return true;
}
}
not particularly useful to a command line junkie like myself, but this is a beautiful interface that will hopefully introduce boatloads more to the wonder world of less css.
sleek html5 video player. eagerly looking forward to firefox and ie flash fallback support.
rendering rails partials with ajax w/o a framework
ever wanted to quickly create a link in rails that, when clicked, dynamically renders a partial in a targeted element? accepting bonus points for being framework agnostic? throw this puppy in your application helper =>
def remote_partial_link(*args)
name = args.first
partial = args.second
target_id = args.third
html_options = args.fourth
locals = args.fifth
if html_options
html_options = html_options.stringify_keys
tag_options = tag_options(html_options)
else
tag_options = nil
end
if locals
p = render_to_string :partial => partial, :locals => locals
else
p = render_to_string :partial => partial
end
p = escape_javascript(p).gsub("\"","'")
"<a onclick=\"document.getElementById('#{target_id}').innerHTML = '#{p}'\" "+
"#{tag_options}>#{name}</a>"
end
basically, its a bastardized version of rails built-in link_to helper. with it, in your views you can write =>
<%= remote_partial_link("Add Link", "lists/link", "link-#{i}",
{ :class => "ajax" }, { :i => i }) %>
the only limitation is that these are generated on the page’s load, so it can’t account for any remote calls that happens after that. but that also makes this solution good for performance, since the script is baked inline to the element and ready to fire. the only other piece of set-up is making the render_to_string method accessible in your helpers from your application controller =>
helper_method :render_to_string
fluid for web development
i have been using fluid, the mac osx application for wrapping sites as their own webkit applications for a while, but only for beasts like gmail and google reader. then i realized, fluid makes a great sidekick for my new emacs driven development environment:
* it saves the previous session’s tabs, so you can preserve and separate your development from daily browsing.
* you can give it a global hotkey to pull it up quickly.
* you get to use webkit’s ever-improving, top-notch webkit inspector.
setting it up is super easy. for example, if you’re working in rails, create a new fluid app at the address 0.0.0.0:3000, call it whatever you want, give it a fancy icon and you’re ready to apple+tab between the guts and face of your project.
more rails development means more time in the script/console and irb, but it can quickly become a headache with doing ugly things like returning activerecord objects. for that, hirb’s table view is a lifesaver. check out this example output =>
irb>> Tag.last
+-----+-------------------------+---------------+-----------+-----------+-------+
| id | created_at | name | namespace | predicate | value |
+-----+-------------------------+---------------+-----------+-----------+-------+
| 907 | 2009-03-06 21:10:41 UTC | gem:tags=yaml | gem | tags | yaml |
+-----+-------------------------+---------------+-----------+-----------+-------+
1 row in set
=>true
if you want to get more snazzy, you can define your own views for a more custom output. git it at hirb’s github page.
to enable hirb by default in any local rails application, add this to your ~/.irbrc file =>
if ENV['RAILS_ENV']
require 'rubygems'
require 'hirb'
Hirb.enable
end
want to use javascript to create images and graphs with html5’s sexy <canvas> element? cool, but internet explorer doesn’t support it? slap this canvas to vml converting library in your head. done.
compiling and sharing code, ideas, and tools for making better websites and applications.
by justin talbott {email me}