Building a .com in 24 hours

Posted on January 8th, 2008 in Development | No Comments »

Over at Dominiek.com I found this interesting article: Building a .com in 24 hours

This is about how I spend 24 concentrated hours spread out over 4 days during Holidays to build the online service Wigitize.com. It is part of my ongoing learning process on how to run a successful web startup.

Rails 2.0.2: Some new defaults and a few fixes

Posted on December 19th, 2007 in Development, Frameworks, Libraries, Programming | No Comments »

Recently Rails has been updated to version 2.0. On December 17 2007 a minor revision was released taking it to 2.0.2.

From the website:

Rails 2.0.2 is a drop-in replacement for Rails 2.0
To upgrade, just do “gem install rails” (if the gems are still not propagated, use—source http://gems.rubyonrails.org) or use the new rel_2-0-2 tag.

The rest of the changes are as follows:

Action Pack

  • Added delete_via_redirect and put_via_redirect to integration testing #10497 [philodespotos]
  • Allow headers[‘Accept’] to be set by hand when calling xml_http_request #10461 [BMorearty]
  • Added OPTIONS to list of default accepted HTTP methods #10449 [holoway]
  • Added option to pass proc to ActionController::Base.asset_host for maximum configurability #10521 [chuyeow]. Example:ActionController::Base.asset_host = Proc.new { |source| if source.starts_with?(’/images’) “http://images.example.com” else “http://assets.example.com” end }
  • Fixed that ActionView#file_exists? would be incorrect if @first_render is set #10569 [dbussink]
  • Added that Array#to_param calls to_param on all it’s elements #10473 [brandon]
  • Ensure asset cache directories are automatically created. #10337 [Josh Peek, Cheah Chu Yeow]
  • render :xml and :json preserve custom content types. #10388 [jmettraux, Cheah Chu Yeow]
  • Refactor Action View template handlers. #10437, #10455 [Josh Peek]
  • Fix DoubleRenderError message and leave out mention of returning false from filters. Closes #10380 [Frederick Cheung]
  • Clean up some cruft around ActionController::Base#head. Closes #10417 [ssoroka]

Active Record

  • Ensure optimistic locking handles nil #lock_version values properly. Closes #10510 [rick]
  • Make the Fixtures Test::Unit enhancements more supporting for double-loaded test cases. Closes #10379 [brynary]
  • Fix that validates_acceptance_of still works for non-existent tables (useful for bootstrapping new databases). Closes #10474 [hasmanyjosh]
  • Ensure that the :uniq option for has_many :through associations retains the order. #10463 [remvee]
  • Base.exists? doesn’t rescue exceptions to avoid hiding SQL errors. #10458 [Michael Klishin]
  • Documentation: Active Record exceptions, destroy_all and delete_all. #10444, #10447 [Michael Klishin]

Active Resource

  • Added more specific exceptions for 400, 401, and 403 (all descending from ClientError so existing rescues will work) #10326 [trek]
  • Correct empty response handling. #10445 [seangeo]

Active Support

  • Ruby 1.9 compatibility. #1689, #10466, #10468 [Cheah Chu Yeow, Pratik Naik, Jeremy Kemper]
  • TimeZone#to_s uses UTC rather than GMT. #1689 [Cheah Chu Yeow]
  • Refactor of Hash#symbolize_keys! to use Hash#replace. Closes #10420 [ReinH]
  • Fix HashWithIndifferentAccess#to_options! so it doesn’t clear the options hash. Closes #10419 [ReinH]

Rails

  • Changed the default database from mysql to sqlite3, so now running “rails myapp” will have a config/database.yml that’s setup for SQLite3 (which in OS X Leopard is installed by default, so is the gem, so everything Just Works with no database configuration at all). To get a Rails application preconfigured for MySQL, just run “rails -d mysql myapp” [DHH]
  • Turned on ActionView::Base.cache_template_loading by default in config/environments/production.rb to prevent file system stat calls for every template loading to see if it changed (this means that you have to restart the application to see template changes in production mode) [DHH]
  • Introduce `rake secret` to output a crytographically secure secret key for use with cookie sessions #10363 [revans]
  • Fixed that local database creation should consider 127.0.0.1 local #9026 [parcelbrat]
  • Fixed that functional tests generated for scaffolds should use fixture calls instead of hard-coded IDs #10435 [boone]
  • Added db:migrate:redo and db:migrate:reset for rerunning existing migrations #10431, #10432 [matt]
  • RAILS_GEM_VERSION may be double-quoted also. #10443 [James Cox]
  • Update rails:freeze:gems to work with RubyGems 0.9.5. [Jeremy Kemper]

PRADO 3.1.0 Beta

Posted on April 22nd, 2007 in Development, Frameworks, Libraries, Programming | No Comments »

Version 3.1.0 of the PRADO PHP framework has gone into beta. PRADO is a component-based and event-driven programming framework for developing Web applications in PHP 5. The beta, as well as support forums and documentation can be found at the official PRADO website.

We are proud to announce the BETA release of PRADO 3.1.0. This is the result of nearly one year of hard work from the PRADO Group and represents a major milestone in the PRADO development. We hereby thank all PRADO developers and supporters. Please note, since this is a beta release, part of the code (especially those related with new features) may not be stable and are subject to change. Be very cautious if you intend to use this release in a production environment.

WHAT’S NEW IN THIS RELEASE
- DB access: added three layers of database support, including PDO-based data access, Active Record and SqlMap.
- Active controls: a list of AJAX-enabled Web controls.
- Web services: added SOAP and JSON services.
- TOutputCache: a control that caches selective parts of rendered HTML pages and can improve performance significantly.
- TShellApplication: the base class for PRADO command line application
- TDbCache: a generic cache module using database as persistent storage
- TDbUserManager: a database-driven user manager module
- TClientScriptLoader: a control for loading JavaScript libraries
- Added five new demos, including chat, currency-converter, soap, sqlmap and time-tracker.
- Many minor feature enhancements and bug fixes.

xPDO

Posted on March 26th, 2007 in Development, Frameworks, Libraries, Programming | No Comments »

For those interested in data access libraries for PHP, the OpenExpedio project is well worth a look at. It will be part of the core for the upcoming release of MODx CMF. I haven’t had a chance to delve into the code to deeply, so any comments about your experiences with this library will be greatly appreciated.

OpenExpedio is our name for open eXtensions to PDO. It’s a light-weight ORB (object-relational bridge) library that works on PHP 4 and 5, and takes advantage of the newly adopted standard for database persistence in PHP 5.1+, PDO. It implements the very simple, but effective Active Record pattern for data access.

Been a long time

Posted on March 12th, 2007 in News | No Comments »

It has been a while since I’ve updated Adventures in Programming. One of the reasons for this is that I haven’t been out and about scouring the internet for development related articles as much as I should have been. The other is that I decided to learn a new scripting language called LUA. It is a very popular language used very often as a scripting engine in games, ie. Farcry and World of Warcraft. I’ve managed to created a few addons for World of Warcraft that can be found here.

I’m also delving deeper into the nuances of the newest version of PHP and am also getting AJAX and Web Services under the belt. :-)

Phising Exploit Discovered in ‘Google Public Search Service’

Posted on September 16th, 2006 in Development, Programming | No Comments »

Eric Farraro from software.dev discovered a nasty hole in the Google Public Search Service.

Yesterday I mentioned that I had discovered an exploit in a little known service from a major web company. It turns out that that exploit is in a little known service called ‘Google Public Service Search’. This service is meant for universities or other non-profit organizations to add a ‘Google’ search to their website. It differs from the other free Google site search in that it allows you to customize the header and footer of the search results page. It’s interesting to note that the code for your header and footer is actually hosted by Google, on their server.

You can read the original entry on his blog.

Dreamweaver Killer: Cross Platform Open Source (Javascript, HTML, CSS) IDE

Posted on July 28th, 2006 in Development, Digg, Programming | No Comments »

Digg: Dreamweaver Killer: Cross Platform Open Source (Javascript, HTML, CSS) IDE

Aptana is a robust, JavaScript-focused IDE for building dynamic web applications. Highlights include the following features: Code Assist on JavaScript, HTML, and CSS languages, including your own JavaScript functions Outliner that gives a snapshot view of your JavaScript, HTML, and CSS code structure Error and warning notification.

Digg: Five common PHP design patterns

Posted on July 19th, 2006 in Development, Digg, Programming | No Comments »

Digg: Five common PHP design patterns

This article explains five widely used design patterns in PHP with sample code to demonstrate each pattern. Intermediate level.

Digg: Open-source LAMP a beacon to developers

Posted on July 15th, 2006 in Development, Digg, Programming | No Comments »

Digg: Open-source LAMP a beacon to developers

The so-called LAMP stack of open-source software–which includes the Linux operating system, Apache Web server, MySQL database and scripting languages PHP, Perl or Python–is pushing its way into mainstream corporate computing.

jQuery

Posted on July 15th, 2006 in Development, Libraries, Programming | No Comments »

jQuery

jQuery is a new type of Javascript library. It is not a huge, bloated, framework promising the best in AJAX - nor is just a set of needlessly complex enhancements - jQuery is designed to change the way that you write Javascript.