Thursday, November 27, 2008

Speed.io

Speed.io is a modern DSL speedtest to analyze your broadband internet access. You find that your internet connection is too slow or you are just curious how fast you are - speed.io is a perfect tool for a fast speed check - worldwide.

speed.io measures your current internet speed to the nearest server (we have almost 50.000 server worldwide). We test your download (speed with which you receive data from internet), upload (speed with which you send data to the internet), connection test (maximal number of connections per minute) as well as ping (response time between your computer and the internet).

All test are performed within your browser over HTTP (TCP) and requires no further software than a newer browser with activated Flash.

http://www.speed.io

Sunday, November 23, 2008

Connection Pools

With the upcoming thread-safety of Rails comes the necessity of database connection pools. While less a feature and more a hidden implementation detail, you do have the ability to adjust the max size of these new pools (default is 5). In your database.yml configuration file just set the pool key:
development:
adapter: mysql
username: root
database: myapp_dev
pool: 10

Rails 2.1.2 and 2.2: Update Your RubyGems

There’s a mismatch between the most recent Rails releases (2.1.2 and 2.2RC1) and older versions of RubyGems. Judging by what I’ve seen in various discussion fora, this is well on the way to being a FAQ. It’s made more fun by the facts that

  • The error message doesn’t implicate RubyGems
  • You may think you’re up-to-date on RubyGems when you’re not
  • If you’re affected, you’ll see this message when you try to run script/generate in a Rails application:
    undefined method empty?' for /_generator$/:Regexp

    If you see this, don’t panic. It just means you need a newer RubyGems release. I’m not sure how current you need to be, but 1.1.1 is definitely too old. As I write this, 1.3.0 is current.

    Now, in theory, to update to the latest version of RubyGems, you just need to run
    sudo gem update --system

    But - depending on what version of RubyGems you have installed, running that command may lie and tell you that you have nothing to update. If you’re currently on RubyGems 1.1 or 1.2, you need to run a different set of commands to update RubyGems:
    sudo gem install rubygems-update
    sudo update_rubygems

    You can check your current RubyGems version with
    gem -v

    If it reports 1.3.0 or later, you should be good to use the recent Rails releases.

    Thursday, November 20, 2008

    Adding input:focus functionality to IE using prototype.js

    JS:
    Event.observe(window, 'load', function() {
    var fields = $$("input");
    fields.each(function(el) {
    $(el).observe('focus', function(){this.addClassName('focused');});
    $(el).observe('blur', function(){this.removeClassName('focused');});
    });
    });

    CSS:

    input:focus, /* works in FF without javascript */
    input.focused /* used by js */
    { background-color: #f7cd72; }

    Thursday, November 13, 2008

    WTFramework bookmarklet

    Ever wondered which JavaScript framework was used on a specific website but was too lazy to check the source code for the answer? Fear no more WTFramework is here.

    Here we have the work of my life – where by saying life I mean 20 minutes of it. This is a pretty simple and straight–forward bookmarklet.

    Say you come across a website, see a few pretty cool effects (right click to ensure it’s not Flash driven) and you’d like to know which of the some three fabulous JavaScript frameworks (MooTools, Yahoo User Interface, jQuery, the infamous Scriptaculous, Dojo Toolkit, Mochikit, etc.) are being used to rise the magic.

    Typically, you’d have to look for the script tag in the source. Well forget about it, now you have WTFramework – one click and a info pops–up informing which framework are we dealing with.

    http://blog.olicio.us/2008/11/08/wtframework-bookmarklet/

    Tuesday, November 11, 2008

    WaveMaker

    The WaveMaker platform consists of two components: WaveMaker Visual Ajax Studio™ for developing rich internet applications and WaveMaker Rapid Deployment Server™ for deploying applications into a standard and secure Java environment.

    Truly WYSIWYG Web 2.0 Development
    WaveMaker Visual Ajax Studio is an easy-to-use visual builder that enables the drag & drop assembly of scalable, web-applications using Ajax widgets, web services and databases. WaveMaker Studio will look and feel especially familiar to client/server developers who are used to working with visual tools.

    WaveMaker has helped customers reduced development costs by 67% and cut the lines of code written by 98%. Less code makes WaveMaker applications cheaper to maintain and easier to manage.

    http://wavemaker.com/

    JS Frameworks

    Peppy
    Peppy is a lightning fast CSS 3 compliant selector engine with no external library dependencies. Peppy can be used along side other libraries seamlessly.
    As it stands now Peppy is faster1 than all other major JavaScript libraries with DOM querying capabilities (Prototype 1.6.0.3, JQuery 1.2.6, MooTools 1.2.1, EXT 2.2, DoJo 1.2.0, YUI 2.6.0). It is faster2 than Sizzle by John Resig and it also is cross browser (IE included). Take a look for yourselves, I have a profiling page set up here.
    At 10k it is an ideal replacement for other excellent but bulkier libraries (whose feature sets span beyond DOM querying) when features additional to DOM querying are not needed in your web application. If you are designing your own JavaScript library or want to replace your existing libraries selector engine then Peppy is an ideal candidate.
    http://jamesdonaghue.com

    Sizzle
    This is a new pure-JavaScript CSS selector engine that I'm working on. Comes in at roughly 4x faster in Firefox 3, 3x faster in Opera 9, 1.5x faster in Safari 3 than the other major JavaScript libraries. It's completely standalone (no library dependencies) and clocks in at 4KB.
    Currently this engine is expected to become the new default selector engine of jQuery, MochiKit, Prototype, and Dojo.
    http://github.com/jeresig/sizzle/tree/master

    Prototype
    Prototype is a JavaScript Framework that aims to ease development of dynamic web applications.
    Featuring a unique, easy-to-use toolkit for class-driven development and the nicest Ajax library around, Prototype is quickly becoming the codebase of choice for web application developers everywhere.
    http://www.prototypejs.org/

    jQuery
    jQuery is a fast and concise JavaScript Library that simplifies HTML document traversing, event handling, animating, and Ajax interactions for rapid web development. jQuery is designed to change the way that you write JavaScript.
    http://jquery.com/


    MooTools

    MooTools is a compact, modular, Object-Oriented JavaScript framework designed for the intermediate to advanced JavaScript developer. It allows you to write powerful, flexible, and cross-browser code with its elegant, well documented, and coherent API.
    MooTools code respects strict standards and doesn't throw any warnings. It's extensively documented and has meaningful variable names: a joy to browse and a snap to understand.
    http://mootools.net

    Ext JS

    Ext JS is a cross-browser JavaScript library for building rich internet applications.

    • High performance, customizable UI widgets
    • Well designed, documented and extensible Component model
    • Commercial and Open Source licenses available
    http://extjs.com

    dojo
    Ajax, events, packaging, CSS-based querying, animations, JSON, language utilities, and a lot more. All at 26K (gzipped).
    http://dojotoolkit.org

    The Yahoo! User Interface Library
    The Yahoo! User Interface (YUI) Library is a set of utilities and controls, written in JavaScript, for building richly interactive web applications using techniques such as DOM scripting, DHTML and AJAX. The YUI Library also includes several core CSS resources.
    http://developer.yahoo.com/yui/

    MochaUI. A web applications user interface library

    MochaUI is a web applications user interface library built on the Mootools JavaScript framework.

    Uses:

    • Web Applications
    • Web Desktops
    • Web Sites
    • Widgets
    • Standalone Windows and Modal Dialogs
    http://mochaui.com/

    Monday, November 10, 2008

    Using mod_concat to Speed Up Start Render Times

    The most critical part of a page’s load time is the time before rendering starts. During this time, users may be tempted to bail, or try a different search result. For this reason, it is critical to optimize the head of your HTML to maximum performance, as nothing will be visible until it finishes loading the objects inside.

    One easy way to speed up rendering during this crucial time is to combine your CSS and JavaScript, saving the performance tax associated with every outbound request. While easy in theory, in practice this can be difficult, especially for large organizations.

    http://www.artzstudio.com/2008/08/using-modconcat-to-speed-up-render-start/

    Sunday, November 9, 2008

    SlickSpeed Selectors Test

    Speed/validity selectors test for frameworks

    Every framework runs in his own iFrame, thus no conflicts can happen. Tests are run selector by selector, with an interval to prevent the browser from freeezing.

    Tests are run in a neutral environment, no library or framework is included in the main javascript test, to avoid favoritism.

    http://jamesdonaghue.com/static/peppy/profile/slickspeed/

    The Best Cheat Sheets for Web Developers

    Cheat sheet is a reference tool that provides simple, brief instructions for accomplishing a specific task. We have collated a set of best cheat sheets for web developers. It includes some of the popular programming language, e.g. jQuery, Mootools, Prototype, PHP, MySQL and etc…

    http://www.webappers.com/2008/11/05/best-cheat-sheets-for-web-developers/

    The CouchDB Project

    Apache CouchDB is a distributed, fault-tolerant and schema-free document-oriented database accessible via a RESTful HTTP/JSON API. Among other features, it provides robust, incremental replication with bi-directional conflict detection and resolution, and is queryable and indexable using a table-oriented view engine with JavaScript acting as the default view definition language.

    Apache CouchDB is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator PMC. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the project has yet to be fully endorsed by the ASF.

    http://incubator.apache.org/couchdb/index.html

    Tuesday, November 4, 2008

    How to observe more fields with AJAX helper

    The observe_field AJAX helper allows to observe one field; if there is a change, it calls the specified method on the server side. It is possible to attach one value for the call.

    This is enough if we have one text box search for searching over multiple columns or for a full-text search.

    For a more complicated filtering functionality with more fields there are two main problems with the observe_field helper:

    • how to specify more parameter values in the observe_field helper.
    • it is necessary to write a observe_field call for each field.
    http://www.valibuk.net/2006/08/how-to-observe-more-fields-with-ajax-helper/