Wednesday, May 31, 2006
Right now Paraguay is leading 1-0 at half-time with a goal by N.H. Valdez in the 41st minute
Iran [5 - 2] Bosnia-Herzegovina
05' [0 - 1] Z. Misimovic
17' [0 - 2] S. Barbarez
25' [1 - 2] M. Madanchi
44' [2 - 2] R. Rezaei
45' [3 - 2] V. Hashemian
89' [4 - 2] R. Enayati
90' [5 - 2] R.P. Khatibi
Estonia [1 - 1] New Zealand
03' [1 - 0] R. Klavan
27' [1 - 1] Hay
Georgia [0 - 1] Paraguay
41' [0 - 1] N.H. Valdez
Saudi Arabia [0 - 1] Turkey
59' [0 - 1] N. Ates
Slovenia [3 - 1] Trinidad & Tobago
04' [1 - 0] M. Novakovic
16' [2 - 0] M. Novakovic
26' [2 - 1] C. Birchall
77' [3 - 1] M. Novakovic
Switzerland [1 - 1] Italy
10' [0 - 1] A. Gilardino
32' [1 - 1] D. Gygax
France [2 - 0] Denmark
13' [1 - 0] T. Henry
76' [2 - 0] S. Wiltord (pen.)
What triggered this press release appears to be the release of GWT a couple of weeks ago. At that time rumors of a partnership between Google and Morfik proved to be false. The press release seems to imply that Google may've infringed on Morfik's IP
Read more here
Visit the Morfik website
The company, which provides Internet phone service, said Tuesday that it would reimburse the bankers who handled the sale if any Vonage customers refused to pay for shares that were allotted to them.
Vonage gave its customers a chance to buy as much as 15 percent of the 31.25 million shares that were offered last week. About 10,000 of the company's 1.6 million customers ultimately received shares, which were sold at $17 each, according to a person briefed on the deal. Customers had until Tuesday to open an account with a specified broker and pay for their shares.
Some customers who participated in the "directed share program" were reluctant to pay for their shares after the stock fell. The shares have lost more than 26 percent of their value since their debut last Wednesday. They fell 52 cents, to $12.50 on Tuesday.
Read the rest here
Tuesday, May 30, 2006
Perpendicular recording does wonders for storage capacity, and thanks to denser platters, it can also improve drive performance. Couple those benefits with support for 300 MB/s Serial ATA transfer rates, Native Command Queuing, and up to 16 MB of cache, and the Barracuda 7200.10 starts to look pretty appealing. Throw in an industry-leading five year warranty and a cost per gigabyte that's competitive with 500 GB drives, and you may quickly find yourself scrambling to justify a need for 750 GB of storage capacity.
Perpendicular recording is believed to be capable of delivering up to 10 times the storage density of longitudinal recording, on the same recording media. There was some interest in using the system in floppy disks in the 1980s, but the system was never reliable. Today there is renewed interest in using it for hard drives, which are rapidly reaching their fundamental limits.
Current hard disk technology with longitudinal recording has an estimated limit of 100 to 200 gigabit per square inch due to the Superparamagnetic effect, though this estimate is constantly changing. Perpendicular recording is predicted to allow information densities of up to around 1 Tbit/sq. inch (1000 Gbit/sq. inch)
The main challenge in designing magnetic information storage media is retaining the magnetization of the medium despite thermal fluctuations. If the thermal energy is too high, there may be enough energy to reverse the magnetization in a region of the medium, destroying the data stored there. Since the energy required to reverse the magnetization of a magnetic region is proportional to the size of the magnetic region (where a larger magnetic region is more stable), there is a minimum size for a magnetic region at a given temperature. If it is any smaller it is likely to be randomly de-magnetized. Perpendicular recording keeps the same region sizes as in standard magnetic media, but organizes the magnetic regions in a more space-efficient way.
The popular explanation for the advantage of perpendicular recording is that it achieves higher storage densities by aligning the poles of the magnetic elements, which represent bits, perpendicularly to the surface of the disk platter, as shown in the illustration. Aligning the bits in this manner takes less platter than what would have been required had they been placed longitudinally. So they can be placed closer together on the platter, thus increasing the number of magnetic elements that can be stored in a given area. The true picture is a bit more complex, having to do with the use of a magnetically "stronger" (higher coercivity) material as the storage medium. This is possible due to the fact that in a perpendicular arrangement the magnetic flux is guided through a magnetically soft (and relatively thick) underlayer underneath the hard magnetic media films (considerably complicating and thickening the total disk structure). This soft underlayer can be effectively considered a part of the write head, making the write head more efficient, thus making it possible to produce a stronger write field gradient with essentially the same head materials as for longitudinal heads, and therefore allowing for the use of the higher coercivity magnetic storage medium. A higher coercivity medium is inherently thermally more stable, as stability is proportional to the product of bit (or magnetic grain) volume times the uniaxial anisotropy constant Ku, which in turn is higher for a material with a higher magnetic coercivity.
Read the rest here (including pictures) here
The Marshals expect to have as much as 80 percent of their production databases and all of their data running on Red Hat Enterprise Linux by the end of June, said John Campbell, an information technology specialist for the Marshals' Justice Detainee Information System. The move will include all databases for prisoner information, some financial databases and decision-support systems.
Red Hat Enterprise Server is cheaper and has better features than the Sun Microsystems (Nasdaq: SUNW) OS the Marshals have used for years, Campbell said. "It was a natural for us to consider Red Hat as an [operating system] to run on," he said.
A representative for the couple said Jolie, 30, had given birth to Shiloh Nouvel Jolie-Pitt on Saturday in Namibia, a sparsely populated desert country in southwest Africa. There were no further details available, People reported.
The couple, dubbed "Brangelina" by the tabloids, have been closely followed by the paparazzi in Namibia since arriving there weeks ago to have their baby.
Dapper Drake will be able to be downloaded from Ubuntu's Web site.
Friday, May 26, 2006
The Definitive Guide to SQLite is the first book to devote complete coverage to the latest version of this powerful database. It offers you a thorough overview of SQLite capabilities and APIs, while remaining cognizant of newcomers who may be making their first foray into a database environment with SQLite. This book serves as both a first-time tutorial and future reference guide.
You’ll learn about SQLite extensions available for C, Java, Perl, PHP, Python, Ruby, and Tcl.
The book thoroughly covers SQLite internals to help you take full advantage of its features while minimally impacting resource consumption.
Author Mike Owens is coauthor of Pysqlite, the popular Python extension for SQLite.
Table Of Contents
CHAPTER 1 Introducing SQLite
CHAPTER 2 Getting Started
CHAPTER 3 The Relational Model
CHAPTER 4 SQL
CHAPTER 5 Design and Concepts
CHAPTER 6 The Core C API
CHAPTER 7 The Extension C API
CHAPTER 8 Language Extensions
CHAPTER 9 SQLite Internals
APPENDIX A SQL Reference
APPENDIX B C API Reference
APPENDIX C Codd’s 12 Rules
Download sample chapter 1 here
The Amazon link is here
Picasa also makes advanced editing simple by putting one-click fixes and powerful effects at your fingertips. And Picasa makes it a snap to share your pictures – you can email, print photos home, and even post pictures on your own blog.
Download Picasa for Linux
Thursday, May 25, 2006
Vonage Hldgs Corp(NYSE:VG) is down another 11% today
While Mastercard Inc(NYSE:MA) is up 15%
44.75, +5.75 ( +14.74%)
MasterCard's offering of 61.52 million shares, or 46 percent of the company, was priced at $39 apiece, below a $40 to $43 forecast range.
The lower-than-expected pricing comes on the heels of the poor opening day performance of Internet telephone service provider Vonage Holdings Corp. (VG), whose shares plummeted 12.65 percent in the worst market debut of any U.S. IPO this year.
MasterCard is second only to Visa among credit card issuers worldwide.
Wednesday, May 24, 2006
- Uruguay beats Romania 2-0, Vargas scored in the 47th and 59th minute
- Hungary beats Zealand 2-0, Husztit scored in the 48th minute and Szabics scored in the 80th minute
- Paraguay and Norway tied 2-2, Johnsen scored for Norway in the 22nd and in the 61st minute
Gamarra scored in the 48th minute and Valdez scored in the 54th minute for Paraguay
- Turkey is leading Belgium 2-0 in the 31st minute with goals by Ates in the 2nd minute and Kabze in the 27th minute
The IPO, which priced Tuesday at $17 a share, its midpoint of a previously established range, raised about $531 million.
The Holmdel, N.J., company's IPO, one of the highest-profile stock debuts of 2006, opened at $17 a share, flat with its offering price, before dropping to $14.96, a dip of 12%.
If the losses hold, Vonage will ring up the steepest opening day loss of 2006, worse than the 6.7% drop by Resource Capital Corp. (RSO) on Feb. 6.
Vonage's IPO is the second-richest offering from the Internet sector in five years, according to Thomson Financial. In 2004, Google Inc. (GOOG) raised nearly $2 billion.
Users are urged to apply the update as soon as reasonably possible. Since the update affects client functionality, most driver projects will be updating this week as well.
Technical Information on Encoding-Based SQL Injection Exploit
An attacker able to submit crafted strings to an application that will embed those strings in SQL commands can use invalidly-encoded multibyte characters to bypass standard string-escaping methods, resulting in possible injection of hostile SQL commands into the database. The attacks covered here work in any multibyte encoding (but see also CVE-2006-2314). Affects all PostgreSQL versions before 8.1.4, 8.0.8, 7.4.13, 7.3.15.
The widely-used practice of escaping ASCII single quote "'" by turning it into "\'" is unsafe when operating in multibyte encodings that allow 0x5c (ASCII code for backslash) as the trailing byte of a multibyte character; this includes at least SJIS, BIG5, GBK, GB18030, and UHC. An application that uses this conversion while embedding untrusted strings in SQL commands is vulnerable to SQL-injection attacks if it communicates with the server in one of these encodings. While the standard client libraries used with PostgreSQL have escaped "'" in the safe, SQL-standard way of "''" for some time, the older practice remains common. As of PostgreSQL versions 8.1.4, 8.0.8, 7.4.13, 7.3.15, the server has been modified to reject "\'" when the client is using one of these encodings. This does NOT in itself fix all variants of the problem, but it will make it obvious that such a client is broken and in need of repair. A possible workaround for affected clients is to avoid use of the vulnerable character encodings.
The fundamental problem is that client-side and server-side code may have different behaviors when presented invalidly-encoded multibyte data. Given that client-side escaping has often been done by ad hoc code, the solution of "make sure they always act the same" seems unworkable, and we have instead tried to close off the problem at the server side by rejecting potentially-corrupted queries.
The particular issue described as CVE-2006-2313 stems from the fact that client-side escaping code commonly doesn't use any encoding knowledge at all, just treating any byte with the high bit set as a single non-ASCII character. In encodings such as UTF8 there is not anything obviously wrong with this practice (but see below for other encodings). However, the PostgreSQL server behaves differently, and that mismatch opens a hole. As an example, suppose that the client is operating in UTF8 encoding and an attacker submits a data string containing
0xc8 ' some text
(where 0xc8 represents a single byte with that hex value). In UTF8 0xc8 begins a two-byte character, but the second byte is supposed to have a value within 0xA0-0xFF; the above string is therefore not validly encoded. A non-encoding-aware client will ignore this problem and try to escape the quote mark, producing either
0xc8 ' ' some text
0xc8 \ ' some text
Previous versions of the PostgreSQL server would accept 0xc8 followed by any byte value at all as a two-byte character, so that the server would see the above as a two-byte character followed by a string-literal-ending quote mark. The text "some text" would then be successfully injected into the SQL query string supplied to the server. (In some contexts the server would warn about the invalid two-byte character, and then drop it, but a mere warning does not stop the attack.)
Our solution for CVE-2006-2313 is to modify the server to check multibyte encoding more carefully, and to treat invalid input as a query-stopping error rather than merely a warning. It will now reject 0xc8 followed by a byte that is not within 0xA0-0xFF. This closes off the problem without needing any assumptions about whether the client has been patched to understand about multibyte encodings explicitly. In "safe" encodings such as UTF8, we can now be sure that the client and server agree about which characters in the string are quotes and backslashes.
However, there are several Far Eastern character encodings in which 0x5c (the ASCII code for backslash) is a valid second byte for a two-byte character. For example, the two-byte sequence 0x95 0x5c is a valid character in SJIS. In these encodings, there are two additional risks which we have described as CVE-2006-2314.
First, a non-encoding-aware client is likely to try to escape what it thinks is a backslash. For example, the attacker sends the entirely legal SJIS string
0x95 0x5c ' some text
If the client is not encoding-aware it will take the 0x5c as a separate backslash character and will double it. It then also escapes the quote mark, producing either
0x95 0x5c \ ' ' some text
0x95 0x5c \ \ ' some text
Since the server will correctly perceive 0x95 0x5c as a single character, either case succeeds in injecting "some text": the last quote mark will appear unescaped to the server. A more subtle case is where 0x95 0x5c appears at the end of the string: the added backslash will effectively quote the intended string-ending quote mark. If the attacker can also control the next string literal in the query, he wins, eg
WHERE key1 = '0x95 0x5c \' AND key2 = 'injected text here' ...
Second, if the client escapes "'" as "\'", it can produce a valid multibyte character where there was none before. Again considering SJIS, suppose the attacker is able to send the (invalid) string
0x95 ' some text
If the client is not encoding-aware, and sees the quote mark as a separate character to be escaped, it will produce
0x95 \ ' some text
which is seen by the server as
0x95 0x5c ' some text
and thus again the injection attack succeeds.
The only real solution for these problems is to fix the client: escaping has to be done with awareness of the character set encoding (so that "backslashes" that are part of a multibyte character won't be escaped), and quotes need to be escaped using the SQL-standard representation "''" rather than "\'". Note that in none of these encodings is 0x27 a valid trailing byte, so that there is no corresponding problem for "''" escaping so long as the server checks multibyte encoding validity.
However, waiting around for clients to get fixed isn't a very workable security approach. We have instead modified the server so that (by default) it will reject "\'" as a representation of quote mark when operating in an encoding that allows embedded 0x5c. This change closes the security holes associated with a non-encoding-aware client trying to double an embedded 0x5c, so long as the client escapes "'" as "''"; note that in the cases above where the client did not use "\'", the server sees "\'" as a result of the mistaken doubling of 0x5c. Notice however that in the examples where the client did try to use "\'", the server sees a perfectly valid query with no apparent use of "\'". Therefore, rejecting "\'" will NOT by itself prevent injection attacks. Rather, this is a partial solution that will also have the effect of making it obvious in normal use that clients using this representation in unsafe encodings are broken. This should allow them to get fixed before they are attacked.
(Another reason for rejecting "\'" is that it fits into our long-term plan to transition to SQL-standard string literal rules, wherein backslash is not a special character. Clients that are still using "\'" at that point would have a new SQL-injection risk to contend with.)
There are a number of mitigating factors that may keep particular applications from being subject to these security risks:
- If application always sends untrusted strings as out-of-line parameters, instead of embedding them into SQL commands, it is not vulnerable.
- If client_encoding is a single-byte encoding (e.g., one of the LATINx family), there is no vulnerability.
- If application cannot pass invalidly encoded data to the server, there is no vulnerability (this probably includes all Java applications, for example, because of Java's handling of Unicode strings).
It is clear that CVE-2006-2314 is a fairly nasty problem, since a proper fix may require changes in application code rather than just a quick update of a library or server. This is mitigated by the fact that it occurs only when certain character encodings are in use, and (at least outside the Far East) these are not popular encodings for Web-exposed applications. A workaround for applications that can't be updated promptly is to avoid use of these encodings while processing untrusted data.
The PostgreSQL Global Development Group thanks Akio Ishida and Yasuo Ohgaki for identifying and reporting these issues.
Get the downloads here: http://www.postgresql.org/download/
Tuesday, May 23, 2006
Undefeated throughout their World Cup qualifying campaign, Croatia set up their latest victory with two first half goals from Werder Bremen striker Ivan Klasnic.
Second half strikes from Marko Babic and Bosko Balaban sealed an assured performance by Zlatko Kranjcar's team.
Korea and Senegal also played a friendly game, they tied, goals by Kim and N'Diaye
And also two European Under 21 Championship games
Serbia & Montenegro 0 - 1 Germany
Portugal 0 - 1 France
BeleniX 0.4.3a with JDK 1.5 released !
Download BeleniX 0.4.3a Now !
Another release of the LiveCD this month. The significant feature of this release is the inclusion
of JDK 1.5 under the new Distributors License for Java (DLJ) as announced by SUN on May 16th in
JavaOne. See the JDK Distros Project for more details.
- As above JDK 1.5 has been included in the CD. However due to a licensing issue with a required SUN Studio C++ runtime library it is currently an installable bundle and does not execute off the LiveCD. This is expected to be resolved soon. The JDK bundle gets installed once BeleniX gets installed to harddisk. The required LibC patch is also downloaded and installed automatically if you have a network conection.
- Fixed installer bugs that caused a few troubles after installation
- Used the 7Zip compression technique to schieve greater compression ratio while keeping the Zlib format instact. The p7zip port is used to compress an archive in native LZMA format that reduce the archive size from 20MB to 16MB. A modified version from Advancecomp package is used to compress the CDROM filesystem to achive 1.5% extra compression while retaining the Zlib format.
- Re-Compressed the compressed 45MB JDK 1.5 bundle using p7zip and it reduces the archive size by 5MB !
- The above coupled with the removal of less used software like Graphviz and Tcl/Tk allowed us to fit in the 40MB JDK bundle on the CDROM
- Included a sort list for the overall CDROM ISO image so that loading of the initial GRUB menu is now faster.
- A bunch of installer changes to allow installing the new JDK 1.5 install bundle
- A new script /usr/bin/setup_jdk is provided to install the JDK (after harddisk install of BeleniX) in the event that the libC patch has to be manually downloaded. See How to Setup the JDK for more details.
- Added one more missing function to the ported FreeBSD math library that makes it more compatible with SUN math library
Monday, May 22, 2006
Larry Augustin was a grad student at Stanford when he started VA Linux - now VA Software. The company went public in December 1999, opening at $30 a share and closing at $238.25, a 698 percent increase on the first day of trading, making Larry a billionaire on paper. VA went on to create Sourceforge, and fund OSDN and Slashdot. Today Larry is on the forefront of open source software for the enterprise. He's on the board of open source companies like Zend, Fonality, Hyperic, Jboss, MedSphere, SugarCRM, and Pentaho. We talked with him about the history of VA Software, why he started Sourceforge and OSDN, and the future of software.
Read Larry's article on Open Source software in the Enterprise here.
Get the podcast here (http://twit.tv/floss6)
Sunday, May 21, 2006
In the two recent separate studies, researchers examined caveolin-3 (CAV3) and the cardiac ryanodine receptor (RyR2) and found molecular and functional evidence in both to implicate them as SIDS-susceptibility genes. Researchers examined the tissue of 135 unrelated cases of SIDS -- in infants with an average age of 3 months old -- that had been referred to Mayo Clinic's Sudden Death Genomics Laboratory for molecular autopsy. In each study, two of the 135 cases possessed mutations in either CAV3 or RyR2.
SIDS -- the sudden, unexplained death of an infant under 1 year old -- is estimated to cause 2,500 infant deaths each year. "Combined with our previous discoveries, we now estimate that defects in genes that provide the blueprints for the critical controllers of the heart's electrical system might have played a key role in more than 300 of those tragedies," says Michael J. Ackerman, M.D., Ph.D., principal investigator of both studies and director of Mayo Clinic's Long QT Syndrome Clinic and Sudden Death Genomics Laboratory. "We are continuing to expose the causes of SIDS. So far, we have now added six genes to the SIDS most-wanted list."
Read the rest here
Some callers to the Ekho Moskvy radio station proclaimed Dima Bilan's superiority to the Finnish group Lordi; one aggrieved woman said the result was the latest in a series of anti-Russian moves by Europeans.
Read the rest here
Friday, May 19, 2006
"This is reminiscent of the Holocaust," said Rabbi Marvin Hier, the dean of the Simon Wiesenthal Center in Los Angeles. "Iran is moving closer and closer to the ideology of the Nazis."
Iranian expatriates living in Canada yesterday confirmed reports that the Iranian parliament, called the Islamic Majlis, passed a law this week setting a dress code for all Iranians, requiring them to wear almost identical "standard Islamic garments."
The law, which must still be approved by Iran's "Supreme Guide" Ali Khamenehi before being put into effect, also establishes special insignia to be worn by non-Muslims.
Iran's roughly 25,000 Jews would have to sew a yellow strip of cloth on the front of their clothes, while Christians would wear red badges and Zoroastrians would be forced to wear blue cloth.
Mr. Ahmadinejad has repeatedly described the Holocaust as a myth and earlier this year announced Iran would host a conference to re-examine the history of the Nazis' "Final Solution."
He has caused international outrage by publicly calling for Israel to be "wiped off the map."
Iran does not yet have nuclear weapons, but Tehran believed by Western nations to be developing its own nuclear military capability, in defiance of international protocols and peace treaties.
The United States, France and Israel accuse Iran of using a civilian nuclear program to secretly build a weapon. Iran denies this, saying its program is confined to generating electricity.
Read the complete article here
Sun Microsystems, Inc. (NASDAQ: SUNW), the creator and leading advocate of Java technology, announced a series of new programs for developers to take advantage of the Sun Grid Compute Utility. New programs include developer access to 100 free CPU hours on the Sun Grid; a contest in which developers can win up to $100,000 in prizes; a private project space for independent software vendors (ISVs); and a Compute Server community project. With Sun Grid, the world's first compute utility available at the low price of $1/CPU-hr in the U.S, along with Java technology, the Solaris 10 Operating System (OS) and the NetBeans Integrated Development Environment (IDE), software developers now have easy, secure, affordable and flexible access to compute power over the network.
"Developers represent the single largest community with interest in and ability to leverage grid technology," said Stuart Wells, executive vice president, Utility Computing at Sun. "Since we made Sun Grid available to the public in March, ISVs and application developers have been asking for tools and programs to support their development of Sun Grid applications. With today's announcements, Sun is making it easier for these developers to create grid-enabled applications. Sun is the first and only vendor to offer developers access to enormous compute power over the network and our new programs will allow developers to easily build applications and further their Sun Grid knowledge and skill set."
"AMD has long supported Sun's leadership in bringing grid computing to the mainstream and we are pleased to work with the developer community to increase the industry's awareness and use of the benefits of this technology -- which may include better system utilization, better scalability, increased overall performance, and reduction of total cost of ownership," said Marty Seyer, senior vice president, Commercial and Performance Computing at AMD. "Sun Grid, which is powered by AMD64 technology, lets developers deliver applications more rapidly to market."
The Sun Grid programs announced today include:
- 100 free CPU hours on Sun Grid -- Sun is offering a promotion of 100 free CPU hours for qualified Sun Grid developers who join Sun's Grid developer community at http://developer.network.com. The Sun Grid developer community now provides developers with access to a full suite of collaborative development tools, such as Lifecycle Management and Source Code Control, hosted for Sun by CollabNet. In addition, the community provides documentation, code samples, sample applications, forums, chats, and newsgroups to assist Sun Grid developers.
- Sun Grid Compute Utility Cool Apps Prize for Innovation contest -- Sun is announcing a contest where developers can compete for $50,000 in prizes. Additional contests will be announced later this year, bringing the total potential winnings to $100,000. See http://coolapps.developer.network.com site for complete rules -- developers can get started today.
- Private Project Space for ISVs -- Sun is making available private project space at http://developer.network.com for ISVs to leverage the community's collaborative development environment while porting applications to the Sun Grid -- or having Sun Grid enable their application.
- Compute Server Community Project -- Sun is creating a Sun Grid developer community project -- the Compute Server Project -- that aims to enable developers to easily and efficiently use Sun Grid for the distributed execution of parallel computations. Inviting collaboration with the Java technology, the Solaris OS, and NetBeans software developer communities, the Sun Grid Developer Community facilitates direct and open engagement with developers who are interested in exploring how to make the leap to utility-based grid computing. Members of the Sun Grid Developer Community can download an early access version of the Grid Compute Server Plug-in for NetBeans IDE from the Compute Server project by visiting http://computeserver.developer.network.com.
- Grid Compute Server Plug-in for Net Beans IDE released under Apache License, v2.0 -- The Apache license helps ensure that developers may enjoy broad freedoms in their use and testing of the technology.
For more information on developer programs for Sun Grid, please visit http://developer.network.com.
Thursday, May 18, 2006
Some very cool free historical sounds in MP3 Format
Get the files from the site here
Below is just a partial list of what is available
Apollo 11 - The Eagle Has Landed
Apollo 11 - One Small Step For Man
Apollo 13 - Houston We Have a Problem
Fidel Castro - Cuban Revolution
Fidel Castro - We Have The Power
Neville Chamberlain - Meeting With Hitler
Winston Churchill - Finest Hour
Thomas Edison - Electricity and Progress
Albert Einstein - E=mc^2
Al Gore - Internet
Adolf Hitler - Announcement of his death
Adolf Hitler - War Declaration
Lyndon Johnson - All Men Are Equal
John F. Kennedy - Cuban Missile Crisis
John F. Kennedy - Announcement that he had been shot
John F. Kennedy - Announcement of his death
Pearl Harbor Attack - BBC Announcement
Pearl Harbor Attack - CBS Announcement
Pearl Harbor Attack - NBC Announcement
Josef Stalin - Address
Josef Stalin - Fight Fascists
Margaret Thatcher - Falkland Islands
President Truman - Atomic Bombing of Japan
President Truman - Threatening Japan
Woodrow Wilson - 1915 Speech to Indians
The 25 million share offering, which represents a 19 percent stake in the company, sold for $17 per share, at the high end of a $15 to $17 forecast.
Burger King (Research) plans to list its shares on the New York Stock Exchange under the ticker symbol BKC
Yesterday was also the IPO of Restore Medical and Penson Worldwide
Proposed Ticker: REST
Expected Pricing Date: 05/17/2006 07:00:00
Expected Price: 9.00 - 11.00
Lead Underwriter: Deutsche Bank
Total Shares: 4,000,000
Filing Date: 3/13/2006
Est. Offering Amount: 40,000,000
Proposed Ticker: PNSN
Expected Pricing Date: 05/17/2006 07:00:00
Expected Price: 15.00 - 17.00
Lead Underwriter: J.P. Morgan
Total Shares: 7,465,759
Filing Date: 8/10/2005
Est. Offering Amount: 119,452,100
Tomorrow Darwin Professional Underwriters is expected to have their IPO
Darwin Professional Underwriters
Proposed Ticker: DR
Expected Pricing Date: 05/19/2006 07:00:00
Expected Price: 15.00 - 17.00
Lead Underwriter: Merrill Lynch
Total Shares: 5,217,391
Filing Date: 3/10/2006
Est. Offering Amount: 83,478,260
Wednesday, May 17, 2006
So far there has been 1 red card for Lehman (Arsenal) in the 20th minute and a yellow card for Eboue (Arsenal) in the 22nd minute
Come on Ronaldinho where are the goals?
The posession is 56% against 44% in the favor of Barcelona
Barcelona had 5 shots and Arsenal had 2 with both having 2 shots on target
Campbell scores for arsenal in the 37th minute
It is still 1-0 at half-time
51st minute, yellow card for Henry (Arsenal)
69th Minute, yellow card for Oleguer (Barcelona)
Eto'o scores for Barcelona in the 76th minute
Belletti scores for Barcelona in the 81st minute, Barcelona is leading 2-1
Barcelona wins the 2006 UEFA Champions League!
Arsenal lineup:Jens Lehmann Sol Campbell Emmanuel Eboue Kolo Toure Ashley Cole Gilberto Francesc Fabregas Alexander Hleb Robert Pires Manuel Almunia Fredrik Ljungberg Thierry Henry
Barcelona lineup:Víctor Valdés Oleguer Edmílson Giovanni van Bronckhorst Carles Puyol Rafael Marquez Ludovic Giuly Mark van Bommel Deco Samuel Eto`o Ronaldinho
Here's the GWT development cycle:
Use your favorite Java IDE to write and debug an application in the Java language, using as many (or as few) GWT libraries as you find useful.
Confirm that your application works in each browser that you want to support, which usually takes no additional work
Java technologies offer a productive development plaform, and with GWT, they can instantly become the basis of your AJAX development platform as well. Here are some of the benefits of developing with GWT:
You can use all of your favorite Java development tools (Eclipse, IntelliJ, JProfiler, JUnit) for AJAX development.
Static type checking in the Java language boosts productivity while reducing errors.
Code prompting/completion is widely available.
Automated Java refactoring is pretty snazzy these days.
Java-based OO designs are easier to communicate and understand, thus making your AJAX code base more comprehensible with less documentation.
Google Web Toolkit Architecture
java.iodon't apply to web applications since they access the network and local file system.
- GWT Web UI class libraryThe GWT web UI class library is a set of custom interfaces and classes that let your create web browser "widgets," like buttons, text boxes, images, and text. This is the core user interface library used to create GWT applications. GWT ships with the complete source code for the library under an open source license.
Read The rest here
Tuesday, May 16, 2006
What is Mandriva One?
Live & Install CD
Everything for your office work, Internet and multimedia
Unmatched stability and hardware recognition
Mandriva One brings you a top-notch operating system and best-in-class software applications, all on one CD! Simply insert the Mandriva One CD in your CD-ROM drive to launch the system and access office, Internet and multimedia tools, with no need to install. Later, if you choose to, a few clicks are all that's needed to install Mandriva One onto your hard drive, along with any files you created while in Live mode!
Get the ISo image here Mandriva-One-Americas-Western-Europe-2006-CD.iso (659MB, MD5).
Harry Dean Stanton has starred in the following movies "Cool Hand Luke", "The Godfather II", "Alien", "Repo Man", "Wild at Heart."
Harry Dean Stanton talks about life as Roman Grant, singing with Dylan
and watching the Game Show channel.
He also has a couple of movies coming out soon
There's David Lynch's "Inland Empire," which just finished shooting. And Nick Cassavetes' "Alpha Dog" (starring Big Love's Amanda Seyfried). And a film called "Chrystal," with Billy Bob Thornton, which should be coming out in video soon.
The link is here
It spreads by Chat and Peer-to-peer programs
Turns off anti-virus applications
Deletes files off the computer
Drops more malware
Reduces system security
Installs itself in the Registry
Read more here
Technorati is currently tracking 39.7 million sites and 2.4 billion links.
Technorati displays what's important in the blogosphere — which bloggers are commanding attention, what ideas are rising in prominence, and the speed at which these conversations are taking place. Technorati makes it possible for you to find out what people on the Internet are saying about you, your company, your products, your competitors, your politics, or other areas of interest — all in real-time. All this activity is monitored and indexed within minutes of posting. Technorati provides a live view of the global conversation of the web.
These are today's top searches
America The Fearful
Da Vinci Code
Internet-Connected Appliances Could Lower Energy Bills
Pilot test in Washington and Oregon lets dryers and water heaters check electricity prices and decide if its worth waiting until off-peak times.
Dryers and Water Heaters
The GridWise Initiative, led by the Pacific Northwest National Laboratory, is testing dryers, thermostats, and water heaters that are wirelessly connected to a server, which uses a broadband connection to fetch prices. Homeowners also can set monthly energy budgets and monitor in real time whether they're sticking to them. In another experiment, 50 dryers are equipped with a chip that will respond to instability on the power grid and shut off the heating units on the dryers for a few minutes. Spread across millions of homes, this program could provide a shock absorber in the grid, giving producers the few minutes needed at times of peak demand to bring new power online.
The project takes a market approach to trying to lower power consumption--or shift it to off-peak times. That could let utilities put off building new power plants, says Don Hammerstrom, Pacific Northwest National Lab's project manager.
Whirlpool and IBM modified Kenmore dryers and water heaters so they can connect to the Internet and use the data collected from the Net. IBM also customized the middleware that enables the interaction. "This has never been done live," says Ron Ambrosio, an IBM manager on the project.
Read the rest here
Monday, May 15, 2006
This is probably the best FLOSS podcast so far. Leo Laporte and Chris DiBona are interviewing the charismatic co-creator of the GNOME desktop, founder of Ximian, and father of the controversial Mono Project, designed to port dot-Net to Linux.
The 4 books mentioned in the podcast are:
The Soul of a New Machine - by Tracy Kidder
Startup - by Jerry Kaplan
Show Stopper! - by G. Pascal Zachary
High Stakes, No Prisoners - by Charles Ferguson
You can get the podcast here
What is Mono?
Mono, the open source development platform based on the .NET framework, allows developers to build Linux and cross-platform applications with improved developer productivity. Mono's .NET implementation is based on the ECMA standards for C# and the Common Language Infrastructure
Sponsored by Novell, the Mono project has an active and enthusiastic contributing community. Mono includes both developer tools and the infrastructure needed to run .NET client and server applications. It is positioned to become the leading choice for development of Linux applications.
Mono includes compilers, an ECMA-compatible runtime engine (the Common Language Runtime, or CLR), and many libraries. The libraries include Microsoft .NET compatibility libraries (including ADO.NET, System.Windows.Forms and ASP.NET), Mono's own and third party class libraries.Gtk# (http://www.mono-project.com/using/gtk-sharp.html), a set of .NET bindings for the gtk+ toolkit and assorted GNOME libraries can be found in the latter. This library allows you to build fully native Gnome application using Mono and includes support for user interfaces built with the Glade interface builder. Furthermore, Mono's runtime can be embedded into applications for simplified packaging and shipping. In addition, the Mono project offers an IDE (http://www.monodevelop.com), Debugging, and a documentation browser.
This CD is based on the CentOSPlus Kernel and the CentOS-4.3 i386distribution.It can be used a Workstation, with the following software:
Open Office 1.1.2
k3b 0.11.14 (for burning CDs and DVDs)
Built in support for the NVIDIA and ATI proprietary drivers.
It is also a great recovery / rescue tool containing the following:Read / write access to XFS, JFS, ext3, ext2, NTFS, reiserfs.LVM2 graphical tool
GNU Parted http://www.gnu.org/software/parted/ CLI partition tool
QtParted http://qtparted.sourceforge.net/ GUI partition tool
PartImage http://www.partimage.org/ partition imager
EVMS http://evms.sourceforge.net/ Enterprise volume management
smb4K http://smb4k.berlios.de/ GUI SMB tool
ClamAV <http://www.clamav.net/ for virus scanning
chkrootkit http://www.chkrootkit.org/ for finding potential root kits
MemTest86+ <http://www.memtest.org/ memory testerSystem Log Viewer
The CentOS-4.3 i386 Live CD is available for download from the following mirrors http://isoredirect.centos.org/centos/4/isos/i386/
Apple iPhone launch 'imminent' says US research firm
Japans' Nihon Keizai Shimbun appears to have confirmed the persistent rumours that Apple is planning to launch a cellular phone with iPod functionality, claiming it is being developed in conjunction with Japanese company Softbank, which has just purchased Vodafone Japan.
Nihon Keizai Shimbun said that Softbank president, Masayoshi Son and Apple CEO, Steve Jobs had met and reached a basic agreement on the partnership, and that they would release a 3G iPhone for the Japanese market sometime in 2006.
It said the phone would be sold in the Vodafone shops acquired by Softbank as well as volume electronics retailers, and that Softbank would carry other Apple products at its cellphone shops.
Read the rest here
Friday, May 12, 2006
What is Grails
Grails aims to bring the "coding by convention" paradigm to Groovy. It's an open-source web application framework that leverages the Groovy language and complements Java Web development. You can use Grails as a standalone development environment that hides all configuration details or integrate your Java business logic.
Grails has been specifically designed and developed to attract new developers to the Java platform. If you are a developer of web applications whether it be with PHP, Perl or Python the concepts in Grails will make you feel at home. Grails shields much of the technicalities away from the developer and offers a gentle introduction to the Groovy language and Grails. If you have a basic understanding of programming techniques you will be able to start using Grails straight away.
If you are a seasoned Java developer you will find Grails much easier to develop complex web based applications than other MVC frameworks. You can enjoy the seamless integration of AJAX and database access, also when using existing code bases.
Check out the Grails site (http://grails.org/)
The seven-minute preview of 20th Century Fox's X-Men: The Last Stand, aired on Fox and is now exclusively available at Dell.com/X-Men!
Visit the Dell site here (http://www.dell.com/html/us/xmen/index.html)
Download the file here: http://thelaststand.dell.com.edgesuite.net/sneakpeek/video/large.wmv
For bsSvnBrowser to work, you will need the following software installed:
Ruby on Rails: You will need Ruby on Rails 1.1 or later. Instructions can be found on Ruby on Rails’s site.
Subversion Ruby Bindings: You will need to have the ruby bindings from subversion 1.3.x (which requires SWIG). Instructions can be found in a variety of places (if you’re running ubuntu dapper or debian testing then “apt-get install libsvn-ruby” is all you need).
Component or Full?
They offer two release types of bsSvnBrowser. The component release is designed to be incorporated into an existing ruby on rails application (for example at /svn). The full version is designed to run as a stand alone Ruby on Rails application (essentially it’s an empty Ruby on Rails project with the component release installed). Once you’ve decided and downloaded the release you want, you should head over to the installation instructions
The download page is here (https://bssvnbrowser.bountysource.com/downloads)
Thursday, May 11, 2006
188.8.131.52 also includes support for web presence, which allows you to showcase your online status on the web or in an email signature.
To activate web presence, go to Preferences -> Privacy, and tick the box saying ‘Allow my status to be shown on the web’. More info about web presence here.
Finally, Skype has been translated into Traditional Chinese for this version. More languages to follow in upcoming releases.
Get it from Amazon
Google Co-op Beta
Google Co-op beta is a community where users can contribute their knowledge and expertise to improve Google search for everyone. Organizations, businesses, or individuals can label web pages relevant to their areas of expertise or create specialized links to which users can subscribe.
Once a user has subscribed to a provider's content, all of that provider's labels and subscribed links are added to the user's search results for relevant queries. These contributions serve as meta information that helps Google's search algorithms connect users to the most relevant information for their specific query. Users interested in contributing can get started at http://www.google.com/coop.
For example, a doctor can label web pages related to arthritis, and users who subscribe to that doctor's information will receive options at the top of the results for more specific information such as "treatment," "symptoms," or "for health professionals" when they enter a relevant query.
As a first step, Google has worked with partners to annotate web pages related to health and city guides and to offer dozens of subscribed links to specialized content such as restaurant and movie information. Going forward, the broader online community will begin building out new topic areas and subscribed links to help improve the way people find and discover information online.
Users can subscribe to content and providers at www.google.com/coop/directory. Google Co-op is available today on all English language Google domains including Australia, Canada, New Zealand, and the United Kingdom.
Google Desktop 4 Beta
Also announced today, Google Desktop 4 beta – available in English, French, Italian, German, Spanish, Dutch, and Brazilian Portuguese – offers another way for users to improve their search experience, by personalizing their desktops with the introduction of Google Gadgets. These gadgets are mini-applications that reside on users' desktops and deliver a variety of personalized information such as games, media players, weather and news. Google Desktop can also recommend new gadgets and can automatically create a personalized homepage for users based on the subjects they frequently search and access.
Google currently has hundreds of gadgets users can add to their desktops and with the new Google Desktop Gadgets API, developers can easily create and share their own gadgets with other users.
Google Desktop 4 also enables users to:
Access their Google Gadget content and settings from other computers and protect it from computer crashes by saving it online.
Add favorite gadgets from their personalized Google homepage right onto their desktops.
Easily access other Google services from their desktop. For example, users can view upcoming birthdays with the orkut.com gadget, see what's popular on Google Video, or access their Google Calendar directly on the desktop.
Manually re-index their computers or remove deleted files from search results.
Additionally, Google Desktop 4 now offers an option for network administrators to disable Search Across Computers on both the consumer and enterprise versions of the product at the network level by simply blocking access to a specific URL.
Google Desktop 4 will be available in additional languages and include more localized features for users around the world as the product evolves. Additional information on the newest version of Google Desktop is available at http://desktop.google.com.
Google Trends from Google Labs
Available today from Google Labs at http://www.google.com/trends, Google Trends builds on the Google Zeitgeist to help users find facts and trends related to Google usage around the world. Google Trends enables users to learn how popular a particular search term has been on Google over time and see the relevant news articles that ran on that subject.
"For the first time ever, Google is making it possible to sift through billions of search queries from around the world to see what people are thinking about," said Marissa Mayer, vice president, Search Products and User Experience, Google Inc.
With Google Trends, users will be able to observe the collective interests of all Google users to gain general insight into topics such as people's preferences on ice cream flavors, American Idol contestants, or the relative popularity of brands and politicians in specific countries.
Google Notebook from Google Labs
Google Notebook is a simple way for users to save and organize their thoughts when conducting research online. This personal browser tool permits users to clip text, images, and links from the pages they're browsing, save them to an online "notebook" that is accessible from any computer, and share them with others.
Google Notebook is an interactive scratch pad for every website a user visits, offering a single online location to collect web findings without having to leave the browser window. For example, if a user were planning a vacation, she could clip the most relevant materials on the pages she visits and add personal notes to help organize all of her research.
Users can make their Google Notebook public and share the notes they've taken with others. As a result, the time and effort put into their research can be harnessed by the online community as a whole.
Google Notebook will be available next week from Google Labs at http://www.google.com/notebook.
Wednesday, May 10, 2006
From their site: "I'm very excited to announce the launch of a new section here on Dynamic Drive- Dynamic Drive CSS Library! Since our site was first launched in 1998, we've always strived to have our two feet planted in the real world as we provide practical, usable DHTML scripts for your site. Like any technology, the definition of DHTML has been evolving over the past few years, with one component of DHTML- CSS- really maturing. What was once possible only through scripting can now sometimes be accomplished with CSS alone, especially basic menu interfaces. In these cases, it makes sense to resort to CSS to accomplish the desired task, as CSS generally translates into lighter, easier to maintain, and more search engine friendly code.
We recongize the increasing importance CSS plays in your site, and we want to be there to offer practical, usable CSS codes just as we have with DHTML scripts. And with that said, our CSS Library is born. The new section is designed with you in mind, with an emphasis on CSS menu codes, all laid out in an easy to follow, categorized fashion. Easily highlight and copy the source code, or expand it to view it in its entirety. And as always, the codes are completely free to use on both personal and commerical web sites based on similar usage terms as our DHTML scripts'.
So what's next, apart from continuing to work on the DHTML and now new CSS code libraries? Well, for the later, there are also plans to build up the new Blog Area, which includes possibily getting a few people to write for it. You can also expect CSS code contests periodically, where we'll be offering prizes to the best CSS code submitted. And then there are some crucial features we'd like to add to the CSS Library, such as the ability to rate each code etc."
Users of the Wii console will browse the Internet using their consoles. Navigating via the innovative new Wii Remote controller, users can visit Web sites in between gaming sessions.
"Nintendo is clearly visionary in leading the gaming industry into the new era in gaming, and a wonderful partner for Opera," says Jon von Tetzchner, CEO, Opera Software. "We are thrilled to expand our partnership with Nintendo, and work with them to deliver the best gaming experience on the Wii console and the Nintendo DS™."
"For our Wii console launch in 2006, we required a browser that was fast and secure with support for the latest standards including AJAX. Opera proved perfect for our purposes and is an exceptional addition to both the Nintendo DS and the Wii console," said Genyo Takeda, senior managing director and general manager, Integrated Research & Development Division, Nintendo Co., Ltd.
Opera and Nintendo announced their partnership to deliver the full Opera browser for the Nintendo DS on February 15, 2006. The Nintendo DS browser is scheduled for release in Japan this summer. Nintendo has not yet announced its global launch plans for this product.
About Opera for Devices
Opera provides an optimized implementation of Internet technologies for handheld devices, digital TV and other devices, with innovative and powerful features that seamlessly adapt the Internet experience to suit varying screen sizes and input devices. In addition to being a full Internet browser, Opera is a high performance execution environment for Web applications and dynamic user interfaces based on interoperable open Web technologies such as AJAX.
About Opera Software ASA
Opera Software ASA has redefined Web browsing for PCs, mobile phones and other networked devices. Opera's cross- platform Web browser technology is renowned for its small size, performance and standards-compliance, while giving users a faster, safer and more dynamic online experience. Opera Software is headquartered in Oslo, Norway, with offices around the world. The company is listed on the Oslo Stock Exchange under the ticker symbol OPERA. Learn more about Opera at www.opera.com.
Tuesday, May 09, 2006
Ruby for Rails
Ruby techniques for Rails developers by David A. Black
Ruby for Rails helps Rails developers achieve Ruby mastery. Each chapter deepens your Ruby knowledge and shows you how it connects to Rails. You’ll gain confidence working with objects and classes and learn how to leverage Ruby’s elegant, expressive syntax for Rails application power. And you'll become a better Rails developer through a deep understanding of the design of Rails itself and how to take advantage of it.
Newcomers to Ruby will find a Rails-oriented Ruby introduction that’s easy to read and that includes dynamic programming techniques, an exploration of Ruby objects, classes, and data structures, and many neat examples of Ruby and Rails code in action.
Table Of Contents:
Part 1 The Ruby/Rails landscape 1
- 1 How Ruby works 3
- The mechanics of writing a Ruby program 4
- Getting the preliminaries in place 5, A Ruby literacy bootstrap guide 5, A brief introduction to method calls and Ruby objects, Writing and saving a sample program 8, Feeding the program to Ruby 9, Keyboard and file input 11, One program, multiple files 14
- Techniques of interpreter invocation 15
- Command-line switches 16, A closer look at interactive Ruby interpretation with irb 20
- Ruby extensions and programming libraries 21
- Using standard extensions and libraries 21, Using C extensions 22, Writing extensions and libraries 23
- Anatomy of the Ruby programming environment 24
- The layout of the Ruby source code 24, Navigating the Ruby installation 25, Important standard Ruby tools and applications 27
- Summary 31
- 2 How Rails works 33
- Inside the Rails framework 34
- A framework user’s–eye view of application development 35, Introducing the MVC framework concept 36, Meet MVC in the (virtual) flesh 37
- Analyzing Rails’ implementation of MVC 38
- A Rails application walk-through 41
- Introducing R4RMusic, the music-store application 42, Modeling the first iteration of the music-store domain 43, Identifying and programming the actions 50, Designing the views 53, Connecting to the application 58
- Tracing the lifecycle of a Rails run 59
- Stage 1: server to dispatcher 61, Stage 2: dispatcher, to controller 62, Stage 3: performance of a controller action 62, Stage 4: the fulfillment of the view 65
- Summary 65
- 3 Ruby-informed Rails development 67
- A first crack at knowing what your code does 69
- Seeing Rails as a domain-specific language 70, Writing program code with a configuration flavor 73, YAML and configuration that’s actually programming 75
- Starting to use Ruby to do more in your code 77
- Adding functionality to a controller 79, Deploying the Rails helper files 80, Adding functionality to models 82
- Accomplishing application-related skills and tasks 85
- Converting legacy data to ActiveRecord 85, The irb-based Rails application console 89
- Summary 90
Part 2 Ruby building blocks 93
- 4 Objects and variables 95
- From “things” to objects 96
- Introducing object-oriented programming 97, I, object! 98, Modeling objects more closely: the behavior of a ticket 103
- The innate behaviors of an object 108
- Identifying objects uniquely with the object_id method 109, Querying an object’s abilities with the respond_to? method 110, Sending messages to objects with the send method 111
- Required, optional, and default-valued arguments 112
- Required and optional arguments 112, Default values for arguments 113, Order of arguments 114
- Local variables and variable assignment 115
- Variable assignment in depth 117, Local variables and the things that look like them 119
- Summary 120
- 5 Organizing objects with classes 121
- Classes and instances 122
- A first class 123, Instance variables and object state 126
- Setter methods 130
- The equal sign (=) in method names 131, ActiveRecord properties and other =-method applications 133
- Attributes and the attr_* method family 136
- Automating the creation of attribute handlers 137, Two (getter/setter) for one 138, Summary of attr_* methods 139
- Class methods and the Class class 140
- Classes are objects too! 140, When, and why, to write a class method 141, Class methods vs. instance methods, clarified 143, The Class class and Class.new 144
- Constants up close 145
- Basic usage of constants 145, Reassigning vs. modifying constants 146
- Inheritance 148
- Inheritance and Rails engineering 149, Nature vs. nurture in Ruby objects 151
- Summary 153
- 6 Modules and program organization 154
- Basics of module creation and use 155
- A module encapsulating “stack-like-ness” 157, Mixing a module into a class 158, Leveraging the module further 160
- Modules, classes, and method lookup 163
- Illustrating the basics of method lookup 163, Defining the same method more than once 166, Going up the method search path with super 168
- Class/module design and naming 170
- Mix-ins and/or inheritance 171, Modular organization in Rails source and boilerplate code 173
- Summary 176
- 7 The default object (self) and scope 177
- Understanding self, the current/default object 179
- Who gets to be self, and where 179, Self as default receiver of messages 184, Instance variables and self 186
- Determining scope 188
- Global scope and global variables 188, Local scope 191, Scope and resolution of constants 194
- Deploying method access rules 197
- Private methods 197, Private methods as ActionController access protection 199, Protected methods 201
- Writing and using top-level methods 203
- Defining a top-level method 203, Predefined (built-in) top-level methods 204
- Summary 205
- 8 Control flow techniques 206
- Conditional code execution 207
- The if keyword and friends 208, Conditional modifiers 211, Case statements 211
- Repeating actions with loops 215
- Unconditional looping with the loop method 215, Conditional looping with the while and until keywords 216, Looping based on a list of values 218
- Code blocks, iterators, and the yield keyword 219
- The basics of yielding to a block 219, Performing multiple iterations 222, Using different code blocks 223, More about for 223
- Error handling and exceptions 225
- Raising and rescuing exceptions 225, Raising exceptions explicitly 227, Creating your own exception classes 228
- Summary 230
Part 3 Built-in classes and modules 231
- 9 Built-in essentials 233
- Ruby’s literal constructors 234
- Recurrent syntactic sugar 236
- Special treatment of += 237
- Methods that change their receivers (or don’t) 238
- Receiver-changing basics 239, bang (!) methods 240, Specialized and extended receiver-changing in ActiveRecord objects 241
- Built-in and custom to_* (conversion) methods 242
- Writing your own to_* methods 243
- Iterators reiterated 244
- Boolean states, Boolean objects, and nil 245
- True and false as states 246, true and false as objects 248, The special object nil 249
- Comparing two objects 251
- Equality tests 251, Comparisons and the Comparable module 252
- Listing an object’s methods 253
- Generating filtered and selective method lists 254
- Summary 255
- 10 Scalar objects 257
- Working with strings 258
- String basics 258, String operations 260, Comparing strings 265
- Symbols and their uses 267
- Key differences between symbols and strings 267, Rails-style method arguments, revisited 268
- Numerical objects 270
- Numerical classes 270, Performing arithmetic operations 271
- Times and dates 272
- Summary 275
- 11 Collections, containers, and enumerability 277
- Arrays and hashes compared 278
- Using arrays 279
- Creating a new array 279, Inserting, retrieving, and removing array elements 280, Combining arrays with other arrays 283, Array transformations 285, Array iteration, filtering, and querying 286, Ruby lessons from ActiveRecord collections 289
- Hashes 292
- Creating a new hash 293, Inserting, retrieving, and removing hash pairs 294, Combining hashes with other hashes 296, Hash transformations 297, Hash iteration, filtering, and querying 298, Hashes in Ruby and Rails method calls 301
- Collections central: the Enumerable module 303
- Gaining enumerability through each 304, Strings as Enumerables 306
- Sorting collections 307
- Sorting and the Comparable module 309, Defining sort order in a block 310
- Summary 311
- 12 Regular expressionsand regexp-basedstring operations 312
- What are regular expressions? 313
- A word to the regex-wise 314, A further word to everyone 314
- Writing regular expressions 314
- The regular expression literal constructor 315, Building a pattern 316
- More on matching and MatchData 319
- Capturing submatches with parentheses 319, Match success and failure 321
- Further regular expression techniques 323
- Quantifiers and greediness 323, Anchors and lookahead assertions 326, Modifiers 328, Converting strings and regular expressions to each other 329
- Common methods that use regular expressions 331
- String#scan 332, String#split 332, sub/sub! and gsub/gsub! 333, grep 334
- Summary 335
- 13 Ruby dynamics 337
- The position and role of singleton classes 338
- Where the singleton methods live 339, Examining and modifying a singleton class directly 340, Singleton classes on the method lookup path 342, Class methods in (even more) depth 345
- The eval family of methods 347
- eval 347, instance_eval 349, The most useful eval: class_eval (a.k.a. module_eval) 349
- Callable objects 351
- Proc objects 351, Creating anonymous functions with the lambda keyword 355, Code blocks, revisited 356, Methods as objects 357
- Callbacks and hooks 359
- Intercepting unrecognized messages with method_missing 360, Trapping include operations with Module#included 361, Intercepting inheritance with Class#inherited 363, Module#const_missing 365
- Overriding and adding to core functionality 365
- A cautionary tale 366
- Summary 367
Part 4 Rails through Ruby, Ruby throug Rails 369
- 14 (Re)modeling the R4RMusic application universe 371
- Tracking the capabilities of an ActiveRecord model instance 372
- An overview of model instance capabilities 373, Inherited and automatic ActiveRecord model behaviors 374, Semi-automatic behaviors via associations 378
- Advancing the domain model 380
- Abstracting and adding models (publisher and edition) 380, The instruments model and many-to-many relations 382, Modeling for use: customer and order 386
- Summary 390
- 15 Programmatically enhancing ActiveRecord models 392
- Soft vs. hard model enhancement 393
- An example of model-enhancement contrast 394
- Soft programmatic extension of models 396
- Honing the Work model through soft enhancements 398, Modeling the customer’s business 399, Fleshing out the Composer 401, Ruby vs. SQL in the development of soft enhancements 401
- Hard programmatic enhancement of model functionality 404
- Prettification of string properties 404, Calculating a work’s period 409, The remaining business of the Customer 414
- Extending model functionality with class methods 419
- Soft and hard class methods 419
- Summary 421
- 16 Enhancing the controllers and views 422
- Defining helper methods for view templates 424
- Organizing and accessing custom helper methods 425, The custom helper methods for R4RMusic 427
- Coding and deploying partial view templates 429
- Anatomy of a master template 429, Using partials in the welcome view template 430
- Updating the main controller 436
- The new face of the welcome action 436
- Incorporating customer signup and login 438
- The login and signup partial templates 438, Logging in and saving the session state 439, Gate-keeping the actions with before_filter 441, Implementing a signing-up facility 444, Scripting customer logout 445
- Processing customer orders 446
- The view_cart action and template 446, Viewing and buying an edition 448, Defining the add_to_cart action 449, Completing the order(s) 449
- Personalizing the page via dynamic code 450
- From rankings to favorites 450, The favorites feature in action 452
- Summary 454
- 17 Techniques for exploring the Rails source code 455
- Exploratory technique 1: panning for info 456
- Sample info panning: belongs_to 457
- Exploratory technique 2: shadowing Ruby 458
- Choosing a starting point 458, Choose among forks in the road intelligently 459, On the trail of belongs_to 460, A transliteration of belongs_to 463
- Exploratory technique 3: consulting the documentation 464
- A roadmap of the online Rails API documentation 466
- Summary 469
Appendix: Ruby and Rails installation and resources 471
Sample Chapter 5
Sample Chapter 10
The Amazon link is here