Archive for August 2007

Article: an introduction to RSpec – Part I

an introduction to RSpec – Part I by David Chelimsky

Behaviour Driven Development is an Agile development process that comprises aspects of Acceptance Test Driven Planning, Domain Driven Design and Test Driven Development. RSpec is a BDD tool aimed at TDD in the context of BDD.

Comments

Article: Javascript Performance

Javascript Performance by Kirk Pepperdine from Fasterj.com

All in all the experience was interesting. I got to look at a couple of new tools, Firebug and YSlow (Yahoo). There wasn't any real surprises. Network calls and servers were the primary culprit of poor performance, testing clients is still a pain and our old and reliable performance tuning methodology worked.

Comments

2 Free Ruby ebooks

1. The Little Book Of Ruby by Huw Collingbourne
The Fastest, Easiest Way To Learn Ruby ‘by example’

Introduction: Welcome To The Little Book Of Ruby

- Learn Ruby In Ten Chapters
- What Is Ruby?
- What Is Rails?
- Download Ruby plus an Editor
- Get The Source Code Of The Sample Programs
- Running Ruby Programs
- How To Use This Book
- Making Sense Of The Text

Chapter One: Strings and Methods

- Strings and Embedded Evaluation
- Methods
- Numbers
- Testing a Condition: if … then

Chapter Two: Classes and Objects

- Instances and Instance Variables
- Constructors – new and initialize
- Inspecting Objects

Chapter Three: Class Hierarchies

- Superclasses and Subclasses

Chapter Four: Accessors, Attributes, Class Variables

- Accessor Methods
- Attribute Readers and Writers
- Attributes Create Variables
- Calling Methods of a Superclass
- Class Variables

Chapter Five: Arrays

- Using Arrays
- Creating Arrays
- Multi-Dimensional Arrays
- Iterating Over Arrays
- Indexing Into Arrays

Chapter Six: Hashes

- Creating Hashes
- Indexing Into A Hash
- Hash Operations

Chapter Seven: Loops and Iterators

- For Loops
- Blocks
- While Loops
- While Modifiers
- Until Loops

Chapter Eight: Conditional Statements

- If..Then..Else
- And..Or..Not
- If..Elsif
- Unless
- If and Unless Modifiers
- Case Statements

Chapter Nine: Modules and Mixins

- A Module Is Like A Class…
- Module Methods
- Modules as Namespaces
- Module ‘Instance Methods’
- Included Modules or ‘Mixins’
- Including Modules From Files
- Pre-Defined Modules

Chapter Ten: Saving Files, Moving On…

- Saving Data
- YAML
- Files
- Moving On…

2. Mr. Neighborly's Humble Little Ruby Book by Jeremy McAnally

1 Welcome to Ruby
Basic Concepts of Ruby
Types in Ruby
Collections
Variables and the Like

2 Break it down now!
Methods
Blocks and Proc Objects
Modules
Files

3 Hustle and flow (control)
Conditionals
Loops
Exceptions

4 The System Beneath
Filesystem Interaction
Threads and Forks and Processes
Environment variables, command line
Win32 and Beyond

5 Looking Beyond Home
Networking and the Web
It's Like Distributed or Something…
Data my base, please!

6 It's a Library!
String Manipulation
Date/Time
Hashing and Cryptography
Unit testing

Appendix A Links and the Like
Appendix B High Performance Ruby with C/C++

Comments

Online tutorial: Ruby Study Notes

Ruby Study Notes from RubyLearning.com

Core Ruby

* Introduction
* Installation
o What is Ruby?
o How Ruby can help you, in more detail
o Downloading Ruby and an Editor
o Ruby Programming Environment
* First Ruby Program
* Features
* Numbers in Ruby
o Operators and Precedence
* Fun with Strings
* Variables and Assignment
* Scope
o Global scope and global variables
o Built-in global variables
o Local scope
* Getting Input
* Ruby Names
o Variables
o Constants
o Method Names
* More on Ruby Methods
* Writing own Ruby Methods
o Bang (!) methods
* Method Missing
* More on Strings
o Listing all methods of a class or object
o Comparing two strings for equality
* Simple Constructs
o Case Expressions
* Ruby Arrays
* Ranges
* Ruby Blocks and Procs
* Random Numbers
* Read/Write files
o Traversing Directory Trees
o Random Access
* Writing our own Class
o Literal Constructors
o Garbage Collection
o Class Methods
* Including Other Files
* Ruby Open Classes
* Inheritance
* Duck Typing
* Ruby Overloading Methods
* Overriding Methods
o Usage of super
o Redefining methods
* Ruby Symbols
* Hashes
o Using Symbols as Hash Keys
* Ruby Time class
* Exceptions
o Raising an Exception
o Handling an Exception
* Access Control
o Top-level methods
o Are instance variables inherited by a sub-class?
* Ruby Syntactic Sugar
* Mutable and Immutable Objects
o Freezing Objects
* Object Serialization
* Constants
* Modules/Mixins
* Self
o The current/default object
o Top level context
o Self inside class and module definitions
o Self in instance method definitions
o Self in singleton-method and class-method definitions
* Regular Expressions
o Literal characters
o The wildcard character . (dot)
o Character classes
o Special escape sequences for common character classes

Comments

Article: Which open source CI tool is best suited for your application’s environment?

Which open source CI tool is best suited for your application's environment? by John Ferguson Smart, JavaWorld.com, 11/01/06

In this article, we will look at four of the better-known and more interesting continuous integration tools in the open source world and see how they measure up:

Cruise Control
Continuum
Luntbuild
Hudson

Comments

Article: Putting Flickr on Rails

Putting Flickr on Rails tutorial using Netbeans 6.0 M10 by Brian Leonard

This tutorial describes how to create a Ruby on Rails application that searches the Flickr database. This tutorial runs with NetBeans IDE 6.0 (M10) with Ruby support.

Comments

Blog: WiMAX – Wireless Broadband

Good information on WiMAX (802.16), 3GPP (WCDMA/UMTS/HSDPA/HSUPA), 3GPP2 (CDMA2000/EVDO), LTE and other jargons.

WiMAX – Wireless Broadband by Padmasree Warrior, CTO of Motorola

Walk into a crowded room and mention WiMAX – the next generation mobile broadband, and you will turn heads. The reaction will vary from wide-eyed bewilderment to wild-eyed techie passion! I was recently at the Fortune iMEME conference and watched in fascination, the WiMAX cross fire between Paul Jacobs and Kamran Elahian. Watching this impassioned debate, prompted me to pen this post with some technical facts.

Comments

Call for Contributions: MythSE – Myths in Software Engineering

MythSE – Myths in Software Engineering
Wiki: http://mythse.wikispaces.com/

Working Session @ ICSM: October 4, 2007, afternoon, Paris, France

SCOPE AND TOPICS

Myths and urban legends have become integrated into our daily lives.TV shows, such as MythBusters, tackle myths through experiments, which attempt to either debunk these myths or to explain the facts behind these myths. Myths exist also in science and hinder the progress of knowledge. For instance, the annual Workshop on Duplicating,Deconstructing, and Debunking provides a forum to "deconstruct prior findings by providing greater, in-depth insight into causal relationships or correlations" in the computer architecture domain.

Software Engineering (SE) contains its own set of myths and urban legends. The experience gained by researchers in the software maintenance community should be valuable in studying various SE myths and in separating myths from facts. The goal of this half-day working session is to increase awareness of many SE myths and to offer an open venue to discuss and understand them. WIKI The organizers are collecting popular SE myths online through a Wiki. Please participate, even if you don't pan to attend the working session at ICSM. Also feel free to add any additional myth candidates.

http://mythse.wikispaces.com/

You can participate as follows:- submit a 2 page position paper about a potential myth

- add references to your papers in the area of a potential myth
- provide empirical facts and experiences
- discuss potential myths

The participants of the Wiki will have the opportunity to present their ideas and research at an ICSM working session (see below).

WORKING SESSION

The organizers will select two myths for discussion in a working session at ICSM 2007 on October 4, 2007. For each myth, they will invite advocates and opponents to facilitate the discussion. The deliverable of the working session will be a collection of arguments and facts (e.g., published studies and experience reports) for each myth. Additionally, the audience will be polled before and after the session on each myth to decide if it is myth or fact.

PROPOSED MYTHS

The following list of myths was collected among participants of ICSE2007. The myths in the list are phrased in a provocative tone on purpose (in order to encourage the participation of advocates andopponents):

* Clones are evil. For a long time code cloning was considered harmful; however, recentstudies show that cloning might even be beneficial and desirable.

* Bugs reside in complex code. In the quest for metrics that predict bugs, many tools report variouscode complexity metrics; however, recent studies show that mostcomplexity metrics correlate with just LOC. Is it really complexitythat makes programs fail?

* Aspect-oriented programs are easy to maintain. Aspect-oriented programming seems to be a story of successes; however,after ten years of active research (including its own conference), itis not clear whether aspect-oriented programs are any easier tomaintain than traditional programs.

IMPORTANT DATES

Working Session: October 4, 2007, afternoon(No paper submission required, but Wiki participation appreciated.)

ORGANIZERS

Ahmed E. Hassan, University of Victoria, Canada
Thomas Zimmermann, Saarland University, Germany

Comments

Article: Hibernate vs Rails: The Persistence Showdown

Hibernate vs Rails: The Persistence Showdown by Patrick Peak

And the wires were all a buzz about Rails…
Much like a few other java folks, such as Bruce Tate and David Geary, I have been taking a look at a new web framework Rails. Of particular interest to me is its ORM (Object Relational Mapping) tool, ActiveRecord. Since choosing a technology always involves opportunity costs of some kind, I have written this article to compare and contrast with another popular ORM tool, Hibernate. It summarizes what I've learned about Rails, mainly by stacking it up against Hibernate, a technology I'm very familiar with.

Comments

Article: Where the Mind is Agile…

Where the Mind is Agile… by Roy Singham

Agile methodology intensely focuses on best practices such as iterative delivery, test-driven development, continuous integration, and agile testing which enables the developer to deliver high quality applications with unprecedented visibility of progress to customers.

Comments

« Previous Entries