Friday, March 31, 2006
The World's Most Perlish Newsletter
Perl.com update
--------------------------------------
The Email for www.perl.com Subscribers
===================================================================
Open with Confidence.
Join the Affordable Solutions for the Open Enterprise Web seminar series
April 11 and 12, hosted by Novell, Dell, JBoss and MySQL.
Running a successful small business and a cost-efficient edge
infrastructure at the same time isn't easy. But with the right network
edge computing solution, it is possible. Discover Open Enterprise
Solutions at an SMB price that only Dell can offer. Register today at:
http://www.oreilly.com/go/novell_perl
===================================================================
Hello, Perl hackers. Since the last newsletter two weeks ago, spring has
arrived in the northern hemisphere (at least if you go by the evidence
that your editor's cats have clustered against the open windows to smell
all of the smells of growing things and drying mud). Here's what you
should read if you haven't set Perl.com as your home page yet.
* Perl News in the Wild
Registration has opened for YAPC::NA, June 26 through 28 in Chicago,
Illinois. Now if the conference people would just confirm your editor's
talk....
<http://use.perl.org/article.pl?sid=06/03/28/087215>
Similarly, YAPC::EU has announced the dates of its conference in
Birmingham, U.K.--30 August through 01 September, 2006. Say goodbye to
summer with Old World Hackers:
<http://use.perl.org/article.pl?sid=06/03/28/2327245>
Perlcast has published an interview with Pugs/Bugs developer Audrey Tang.
If you're quick, you can also win access to the Rough Cuts version of Perl
Hacks:
<http://perlcast.com/2006/03/29/interview-with-audrey-tang/>
Dave Mitchell, Perl 5 porter, scared and impressed everyone by converting
the regular expression engine from recursive to iterative:
<http://use.perl.org/article.pl?sid=06/03/30/1337208>
* Perl on ORN
Your editor reviewed the recently released CPAN distribution Jifty::DBI:
<http://www.oreillynet.com/onlamp/blog/2006/03/cpan_module_review_jiftydbi.html>
Dave Cross posted slides from a recent talk about what Perl's
database-object bridges often lack:
<http://www.oreillynet.com/onlamp/blog/2006/03/whats_wrong_with_objectrelatio.html>
Your editor convinced Allison Randal to pair program with him using
Parrot's compiler tools (yes, the ones intended to put Perl 6 on Parrot):
<http://www.oreillynet.com/onlamp/blog/2006/03/inside_parrots_compiler_tools.html>
Finally, your editor posted the first five parts of a six-part series on
designing the world's most maintainable language. (Don't miss the
conclusion on Saturday morning):
<http://www.oreillynet.com/onlamp/blog/2006/03/the_worlds_most_maintainable_p.html>
That's it for this week. Next week, watch for an article on making the
most of the Perl debugger, an interview with maintperl Pumpking Nicholas
Clark, and the start of an extended series on refactoring a legacy
codebase--in real time.
Not sure what "in real time means" but it sounds cool,
- c
chromatic@oreilly.com
Editor, Perl.com, et cetera
===================================================================
Your Skills Are in Demand. More Skills. More Demand.
Choose from 45 webcasts organized by track--JSP, PHP, and ColdFusion. Each
track has been designed to take advantage of your existing Web development
skills and includes insightful content contributed by Dr. Dobb's and
O'Reilly.
http://www.oreilly.com/go/learn2asp_perl
===================================================================
*** Featured Articles ***
Using Ajax from Perl
The recently rediscovered Ajax technique makes the client side of web
programming much more useful and pleasant. However, it also means revising
your existing web applications to take advantage of this new power.
Dominic Mitchell shows how to use CGI::Ajax to give your Perl applications
access to this new power.
<http://www.perl.com/pub/a/2006/03/02/ajax_and_perl.html>
***
Advanced Subroutine Techniques
Subroutines seem like a basic building block of code. They're simple and
easy to understand and use, right? That's true--but there are a few
advanced techniques to make your code more maintainable and robust. Rob
Kinyon goes beyond making sense of subroutines to making subroutines work
for you.
<http://www.perl.com/pub/a/2006/02/23/advanced_subroutines.html>
***
Managing Rich Data Structures
Perl is so good at handling plain text files that it's seductively easy to
use them when you need something better. Yet sometimes using a
full-fledged database is just Too Much Work. If only Dave Baker had
written an article on using complex, persistent data structures with
MLDBM.
<http://www.perl.com/pub/a/2006/02/16/mldbm.html>
***
Debugging and Profiling mod_perl Applications
How do you use the debugger on a mod_perl application? How do you profile
an application embedded in a web server, with multiple child processes?
Don't worry. Where there's Perl, there's a way. Frank Wiles demonstrates
how to debug and profile mod_perl applications.
<http://www.perl.com/pub/a/2006/02/09/debug_mod_perl.html>
***
Test-Driving X11 GUIs
Is GUI testing as difficult as it seems? Maybe not, with the right testing
libraries. George Nistorica shows what X11::GUITest can and can't do to
make your Unix and Unix-like applications more robust.
<http://www.perl.com/pub/a/2006/02/02/x11_gui_testing.html>
***
More Advancements in Perl Programming
What's advanced Perl programming? The definition has changed over the
years. For a while it was XS and GUIs and typeglobs and OO. Now a lot of
it is using CPAN effectively. Since completing Advanced Perl Programming,
Second Edition, Simon Cozens has discovered even more ways to work more
smartly and effectively. Here's what he's learned.
<http://www.perl.com/pub/a/2006/01/26/more_advanced_perl.html>
***
===================================================================
BUY 2 BOOKS DIRECT, GET 1 FREE
Take advantage of O'Reilly's "Buy 2 Books, Get 1 Free" offer by cutting
and pasting code "OPC10" into our shopping cart. Any orders over $29.95
also qualify for free shipping in the US.
http://www.oreilly.com/store/?CMP=NLC-0Z7E11150382&ATT=perl1
===================================================================
------------------------------------------------------------------
Interested in sponsoring the Perl.com newsletter? Please email us at
advertising@oreilly.com for rate and availability information.
Thank you!
------------------------------------------------------------------
To change your newsletter subscription options, please visit
http://www.oreillynet.com/cs/nl/home
For assistance, email help@oreillynet.com
O'Reilly Media, Inc.
1005 Gravenstein Highway North
Sebastopol, CA 95472
(707) 827-7000
------------------------------------------------------------------
Thursday, March 30, 2006
httplib2: HTTP Persistence and Authentication
XML.com Xtra!
---------------------------------
The Email for XML.com Subscribers
=================================================================
Open with Confidence.
Join the Affordable Solutions for the Open Enterprise Web seminar series
April 11 and 12, hosted by Novell, Dell, JBoss and MySQL.
Running a successful small business and a cost-efficient edge
infrastructure at the same time isn't easy. But with the right network
edge computing solution, it is possible. Discover Open Enterprise
Solutions at an SMB price that only Dell can offer. Register today at:
http://www.oreilly.com/go/novell_xml
=================================================================
Dear Reader,
Welcome to another issue of XML.com.
Joe Gregorio continues his excellent explication of various parts of HTTP
that, if used correctly, will make your web service or application run
better. Joe's httplib2 is shaping up to be the best-of-breed HTTP library
for Python, and in his next article he'll show us some of the hard-core
techie details to using it.
httplib2: HTTP Persistence and Authentication
<http://www.xml.com/pub/a/2006/03/29/httplib2-http-persistence-and-authentication.html>
As always, thanks for reading.
Kendall Clark
kendall@xml.com
Managing Editor, XML.com
=================================================================
O'Reilly's latest PDF, "What Are Syndication Feeds," provides everything
you need to know about the elements that make up a feed, the different
formats (RSS 1.0, RSS 2.0, Atom), and the tools you need to manage
incoming and outgoing feeds.
Buy this PDF for just $7.95 now!
<http://www.oreilly.com/catalog/syndicationfeeds/?CMP=NLC-T5Z960052371&ATT=w11>
=================================================================
------------------------------------------------------------------
Interested in sponsoring the XML.com newsletter? Please email us at
advertising@oreilly.com for rate and availability information.
Thank you!
-----------------------------------------------------------------
To change your newsletter subscription options, please visit
http://www.oreillynet.com/cs/nl/home
For assistance, email help@oreillynet.com
O'Reilly Media, Inc.
1005 Gravenstein Highway North
Sebastopol, CA 95472
(707) 827-7000
-----------------------------------------------------------------
Object-Oriented Data Programming: C# Meets Cache
The Windows DevCenter Newsletter
---------------------------------------------------
The latest from http://www.windowsdevcenter.com
=====================================================================
Open with Confidence.
Join the Affordable Solutions for the Open Enterprise Web seminar series
April 11 and 12, hosted by Novell, Dell, JBoss and MySQL.
Running a successful small business and a cost-efficient edge
infrastructure at the same time isn't easy. But with the right network
edge computing solution, it is possible. Discover Open Enterprise
Solutions at an SMB price that only Dell can offer. Register today at:
http://www.oreilly.com/go/novell_win
=====================================================================
Object-Oriented Data Programming: C# Meets Cache
There are plenty of legacy databases using MUMPS and Cache--but what do
you do when you need to bring them into the modern world? Jesse Liberty
shows you how to bridge the worlds of object-oriented data programming and
old-time databases.
<http://www.windowsdevcenter.com/pub/a/windows/2006/03/28/oop-c-meets-cache.html>
From the Windows DevCenter Blogosphere
Has Microsoft Gotten Too Fat?
The New York Times points out that in the five years since the last
revision of Windows, Apple has released four new versions of its OS,
beating Microsoft with many features such as widgets and desktop search.
Why is Microsoft so slow? Find out in my blog.
<http://www.oreillynet.com/windows/blog/2006/03/has_microsoft_gotten_too_fat.html>
Mac to Run Windows? Huh... Didn't See That One Coming...
Ever since Apple announced Macs would run on Intel hardware, the rumor
mill has been working overtime about what this means. M. David Peterson
tries to track down the truth.
<http://www.oreillynet.com/windows/blog/2006/03/mac_to_run_windows_huh_didnt_s.html>
Microsoft Team Blogs
Microsoft product groups are into blogging in a big way. Mitch Tulloch
provides you with a list of all the "team blogs" he's been able to find on
MSDN and TechNet.
<http://www.oreillynet.com/windows/blog/2006/03/microsoft_team_blogs.html>
Check Out the ASP.NET 2.0 Training Center
As I mentioned last week, O'Reilly, CMP's Dr. Dobbs Journal, and Microsoft
have launched a new site, the ASP.NET 2.0 Training Center, which offers a
comprehensive set of development tools, how-to's, and training to help
programmers master ASP.NET 2.0.
You'll find articles from your favorite O'Reilly authors, such as Jesse
Liberty and others, and articles from Dr. Dobbs Journal. And there is an
excellent webcast series to help you get more out of ASP.NET 2.0 as well.
Sign up for the site's webcast series and you also get more than $400 in
tools and information, including Visual Studio(R) 2005 Standard Edition.
Visit the site at http://aspnet.cmp.com/, sign up for the webcasts, and
get more than $400 in goodies at
<http://www.oreilly.com/go/learn2asp_wdc>
See you next week.
Preston Gralla, editor
WindowsDevCenter.com
pgralla@oreilly.com
=====================================================================
Your Skills Are in Demand. More Skills. More Demand.
Choose from 45 webcasts organized by track--JSP, PHP, and ColdFusion. Each
track has been designed to take advantage of your existing Web development
skills and includes insightful content contributed by Dr. Dobb's and
O'Reilly.
http://www.oreilly.com/go/learn2asp_mak
=====================================================================
*** Top Five Windows and .NET Articles Last Week ***
1. Run Mac OS X on a PC
You can get the best of both worlds--you can run the real Mac OS X on your
own PC. Wei-Meng Lee shows you how to run the Mac operating system on an
emulator called PearPC.
<http://www.windowsdevcenter.com/pub/a/windows/2005/01/18/PearPC.html>
***
2. Windows Server Hacks: Remotely Enable Remote Desktop
What to do when you need to enable Remote Desktop on a remote server?
Mitch Tulloch, author of Windows Server Hacks, walks you through the
steps.
<http://www.windowsdevcenter.com/pub/a/windows/2004/05/04/serverhacks_remote.html>
***
3. Getting Your Bluetooth Headset to Work in XP
With Bluetooth support built into SP2, getting a Bluetooth headset to work
should be a breeze. But it ain't necessarily so. Wei-Meng Lee shows you
how to do it.
<http://www.windowsdevcenter.com/pub/a/windows/2005/07/05/bluetooth.html>
***
4. Enhancing ASP.NET Pages with JavaScript
A sprinkling of JavaScript code can enhance the reach and responsiveness
of your ASP.NET web pages without sacrificing ASP.NET's secure,
server-based model for your coding. Matthew MacDonald, coauthor of ASP.NET
in a Nutshell, 2nd Edition, shows you how to use JavaScript in an ASP.NET
web page to perform three common tasks: showing a pop-up window, changing
control focus, and handling frame navigation. You can use these tricks to
quickly solve problems that have no native .NET solution.
<http://www.ondotnet.com/pub/a/dotnet/2003/09/15/aspnet.html>
***
5. ASP.NET File Uploading
File upload and download are much simpler tasks in ASP.NET than in classic
ASP, thanks to the extensive .NET Framework class library. While file
upload in ASP.NET is as easy as retrieving an HTML form value, file
download is still a bit tricky.
<http://www.ondotnet.com/pub/a/dotnet/2002/04/01/asp.html>
***
---------------------------------------------------------------------
Interested in sponsoring the Windows DevCenter newsletter? Please
email us at advertising@oreilly.com for rate and availability
information. Thank you!
---------------------------------------------------------------------
To change your newsletter subscription options, please visit
http://www.oreillynet.com/cs/nl/home
For assistance, email help@oreillynet.com
O'Reilly Media, Inc.
1005 Gravenstein Highway North
Sebastopol, CA 95472
(707) 827-7000
---------------------------------------------------------------------
Maven 2.0, Dreaming in Java, and Zeroconf gaming
O'REILLY NETWORK'S ONJava.com NEWSLETTER
--------------------------------------------------
The Independent Source for Enterprise Java
==================================================================
Open with Confidence.
Join the Affordable Solutions for the Open Enterprise Web seminar series
April 11 and 12, hosted by Novell, Dell, JBoss and MySQL.
Running a successful small business and a cost-efficient edge
infrastructure at the same time isn't easy. But with the right network
edge computing solution, it is possible. Discover Open Enterprise
Solutions at an SMB price that only Dell can offer. Register today at:
http://www.oreilly.com/go/novell_jav
==================================================================
Greetings--
Most weeks, I use this first part of the newsletter to talk about one or
more of the new articles on the site, but this time, I want to point out
one of our blogs. Robert Cooper, one of our more prolific bloggers (and
that's in addition to his contributions to his "Temple of the Screaming
Penguin" site <http://www.screaming-penguin.com/>), has checked in with a
dense download of arguments, assertions and arcana in his blog entry
"Dreaming in Java." You'll find the link below. Covering everything from
the proposed invokedynamic JVM instruction to integrating XML into the
language to applets vs. Flash to Swing to--well, I could go on for a
while, and I still don't think I'd capture it all. Maybe I can express
the importance of what he calls his "braindump" by saying this: with
development on Java SE 7 ("Dolphin") about to get started, this is exactly
the time for developers to make their voices heard about they're happy and
unhappy about in Java, and what they want Java to be. Waiting to be
shocked, frustrated, or disappointed at the JavaOne 2007 keynote is not
going to do--now is the time to engage the community. Post comments on
blogs like Rob's, write your own blog, kick off an open source project
that does things your way--there are lots of ways to make your voice
heard.
"The hardest part of getting started with a Java application is, well,
getting started. So many logistical decisions have to be made up front.
Where should the Java source files go? Where do I place unit testing?
Where will we store dependency .jars? How will the project be built,
documented, tested, and deployed? The choices made at this stage will
follow a developer for the rest of the project." Chris Hardin suggests
that instead of having to become an expert in all these realms, you can
let Maven do the driving. In "Maven 2.0: Compile, Test, Run, Deploy, and
More," he looks at the new version of this popular project
building/testing/reporting/managing toolkit.
<http://www.onjava.com/pub/a/onjava/2006/03/29/maven-2-0.html>
Following two excerpts that exposed the Java APIs to the
Zeroconf/Bonjour/Rendezvous API, we close out our look at Stuart Cheshire
and Daniel H. Steinberg's "Zero Configuration Networking: The Definitive
Guide" with a thorough code example. "Zero Configuration Networking:
Using the Java APIs, Part 3" features a self-networking tic-tac-toe game,
in which each client advertises itself to the network and discovers
potential opponents. Look past the details of the Xs and Os and this
could be the foundation of any Zeroconf-enabled game or other network
application, written in Java.
<http://www.onjava.com/pub/a/onjava/excerpt/bonjour_ch08/index2.html>
Want to write an instant messenger, voice, or video chat client, or an
internet game? The process begins with the initiation of a "call" between
the participants, and if you want to work with the established standard in
this realm, you'll want to learn SIP. In the dev2dev article "An
Introduction to SIP, Part 1: Meet SIP," Emmanuel Proulx exposes the
anatomy of a SIP call and introduces some of the Java frameworks that work
with SIP, laying the groundwork for a part two that shows off a chat-room
application written with the SIP servlet API.
<http://dev2dev.bea.com/pub/a/2005/09/introduction-sip-part-1.html>
In this week's feature article from java.net, Chet Haase shows off some
"Smooth Moves." "Are you interested in doing some animations in your Java
applications, but find yourself plagued by results that seem stuttery and
choppy? Want to figure out the problems and smooth out those animations to
make them better and more seamless in your application? This article
examines some of the factors that affect animation smoothness and things
that you can do in your code to make your animations look better."
<http://today.java.net/pub/a/today/2006/02/23/smooth-moves-solutions.html>
Recent O'Reilly Network weblogs of interest to Java developers:
Robert Cooper: "Dreaming in Java"
<http://www.oreillynet.com/onjava/blog/2006/03/dreaming_in_java_1.html>
Bill Siggelkow: "A Tale of Two Tools: Maven 2 and StatCVS"
<http://www.oreillynet.com/onjava/blog/2006/03/a_tale_of_two_tools_maven2_and_1.html>
Check out more O'Reilly Network Java weblogs at:
<http://www.oreillynet.com/pub/q/weblog_s?x-subject=3&>
Please join us again next week.
Chris Adamson, Editor
ONJava.com
cadamson@oreilly.com
==================================================================
Your Skills Are in Demand. More Skills. More Demand.
Choose from 45 webcasts organized by track--JSP, PHP, and ColdFusion. Each
track has been designed to take advantage of your existing Web development
skills and includes insightful content contributed by Dr. Dobb's and
O'Reilly.
http://www.oreilly.com/go/learn2asp_jav
==================================================================
*** Java News and Weblogs ***
java.net Weblogs
http://weblogs.java.net/
O'Reilly Network Java Weblogs
http://www.oreillynet.com/pub/q/weblog_s?x-subject=3
Other Java News (channel -- LANG: JAVA)
http://www.oreillynet.com/meerkat/index.php
Java Cookbook Recipe of the Day
http://www.onjava.com/onjava/javacook/solution.csp?day=1
Java Events
http://www.onjava.com/onjava/events/
==================================================================
O'Reilly Learning Special Offer: Save 25% Now
<http://oreillylearning.com/promotion/>
"I would never, and I mean never, have imagined that a computer learning
course would actually be fun too."
-Kerry Beck, PR Specialist
O'Reilly Learning has an exciting year in store! You're invited to join
thousands of satisfied students worldwide who have discovered just how
much fun it can be to gain skills and experience in programming or system
administration with our unique system. And until March 31st, enjoy 25% off
tuition for our online University of Illinois Certificate courses.
Enroll today and make your daily accomplishment:
<https://oreillylearning.com/enroll/>
==================================================================
*** Other Related O'Reilly Network sites ***
O'Reilly Network
http://www.oreillynet.com
XML.com
http://xml.com/
ONLamp.com
http://onlamp.com
O'Reilly Media
http://www.oreilly.com/
O'Reilly Java
http://java.oreilly.com/
***
ONJava.com Affiliates
Servlets.com
http://www.servlets.com/
JDOM.org
http://www.jdom.org/
------------------------------------------------------------------
Interested in sponsoring the ONJava.com newsletter? Please email us
at advertising@oreilly.com for rate and availability information.
Thank you!
------------------------------------------------------------------
To change your newsletter subscription options, please visit
http://www.oreillynet.com/cs/nl/home
For assistance, email help@oreillynet.com
O'Reilly Media, Inc.
1005 Gravenstein Highway North
Sebastopol, CA 95472
(707) 827-7000
------------------------------------------------------------------
Tuesday, March 28, 2006
MAKE NEWS No. 37 -- MAKE Faire, MAKE takes home two web awards!
MAKE NEWS No. 37 -- MAKE Faire, MAKE takes home two web awards!
-----------------------------------------------------------------
Open with Confidence.
Join the Affordable Solutions for the Open Enterprise Web seminar series
April 11 and 12, hosted by Novell, Dell, JBoss and MySQL.
Running a successful small business and a cost-efficient edge
infrastructure at the same time isn't easy. But with the right network
edge computing solution, it is possible. Discover Open Enterprise
Solutions at an SMB price that only Dell can offer. Register today at:
http://www.oreilly.com/go/novell_mak
-----------------------------------------------------------------
March 28, 2006
================
Only a few weeks left before MAKER FAIRE! Join the creators of MAKE
magazine, the MythBusters, Robot magazine, and thousands of tech DIY
enthusiasts, crafters, educators, tinkerers, hobbyists, science clubs,
students, and authors at MAKE's first ever Maker Faire!
Meet all kinds of people who make amazing things in garages, basements,
and backyards for inspiration, know-how, and spirited mischief-making. An
incredible learning experience for the entire family, students of all ages
and their teachers are welcome.
<http://www.makezine.com/faire/>
Featured Makers...
===================
Squid Labs shows off laser cutting work, large-format printing, SmartRope,
and more.
A laser cutter is 45 watts of pure cutting power. It slices, it dices, it
makes French fries 20 different ways! The system can cut two-dimensional
patterns into wood, plastic, paper, foil, chocolate, glass, cake, etc. The
crew at Squid Labs will be engraving their faces into the sides of
pumpkins, making origami, designing microfluidic chips, and anything else
that they happen to come up with while fooling around.
What do you get when you combine the Gutenberg Project's text repository
with a 43" large format printer? A single page book! Come help Squid Labs
and MAKE print out all of "Alice in Wonderland" as a single, wall-spanning
work of art.
Squid Labs has developed a SmartRope technology (a rope that senses
electronically how much it's being pulled on) and will be building a
gigantic harp out of the ropes. You can make music while climbing -- how
hot is that?
One of the best parts of building stuff yourself is sharing what you've
done with the world. Instructables <http://instructables.com> is a
community website where people document what they've made, share their
ideas, and collaborate on building ever-better projects. Squid Labs will
have a large screen showing off some of the best projects and will do some
quick walkthroughs on using the system.
They'll also bring random tools, materials, electronics, equipment, and,
while hanging out, will inevitably start building something. Feel free to
provide advice, support, or inspiration. (Oh yeah, and they'll also have
some really big kites!)
Read more from the program overview:
<http://www.makezine.com/faire/program/>
====
MAKER FAIRE Sponsors:
Lego
Yahoo!
Geek Squad
Microsoft
Hobby Engineering
Robot Magazine
Exhibitors/Media Sponsors:
Amazing Magnets
blurb, Inc.
BoingBoing.net
Cornel Lab of Ornithology
Crafters.org
IFixit
Laughing Squid
Ready Made magazine
Mozes
Parallax, Inc.
treehugger.com
MAKE: Blog
===========
Makezine.com Wins SXSW Web Award and Bloggie!
At the 9th annual South By Southwest Festival Web Awards, makezine.com
took home the award for "Best Educational Resource." At the 6th annual
Weblog Awards, makezine.com took home a "Bloggie" for "Best Craft
Weblog."
We would like to thank all our readers and folks who voted for us! You
like us, you really do!
<http://2006.sxsw.com/interactive/web_awards/winners/>
<http://2006.bloggies.com/>
-----------------------------------------------------------------
Your Skills Are in Demand. More Skills. More Demand.
Choose from 45 webcasts organized by track--JSP, PHP, and ColdFusion. Each
track has been designed to take advantage of your existing Web development
skills and includes insightful content contributed by Dr. Dobb's and
O'Reilly.
http://www.oreilly.com/go/learn2asp_mak
-----------------------------------------------------------------
MAKE Flickr and MAKE del.icio.us
=================================
There are over 880 members of the MAKE Flickr photo pool with over 1,724
photos - and they're doing incredibly weird things.
Here are our faves for the week:
Wood Claw:
<http://www.flickr.com/photos/ocell/116802931/in/pool-make/>
DOOM-Playing LOTTO Machine:
<http://www.flickr.com/photos/command-tab/116979506/in/pool-make/>
Wi-Fi Bunny:
<http://www.flickr.com/photos/pmtorrone/114942817/in/pool-make/>
Final Days of Bracewell Observatory:
<http://www.flickr.com/photos/cyberspace/112754509/in/pool-make/>
RFID:
<http://www.flickr.com/photos/chadvavra/tags/rfid/>
=====
Over on our bookmark page, there are over 3,573 links to hacks, mods, DIY
projects, and all-around tinkering goodness. Be a MAKE voyeur and read
what we're reading:
Roomba Does Frogger Rumba:
<http://news.com.com/2300-1041_3-6049976-5.html?tag=ne.gall.pg>
Roomba Fights!:
<http://www.alternet.org/columnists/story/33526/>
Electrical Engineering Calculators:
<http://www.ifigure.com/engineer/electric/electric.htm>
Pimp My Segway:
<http://www.segwaychat.com/forum/topic.asp?TOPIC_ID=13068>
Mad Hatter's Tea Party:
<http://www.flickr.com/photos/laughingsquid/sets/72057594070949343/>
MAKE, Volume 05!
=================
We're working hard on the next issue of MAKE, but let us not forget the
fabulous MAKE Vol. 05, the first MAKE for 2006! Homemade electric
vehicles, high-powered water rockets, electricity-generating windmill, jet
engine in a jam jar, and a backyard zip line... You need this volume.
<http://www.makezine.com/05/>
Check out this great movie from the water rocket project:
<http://downloads.oreilly.com/make/05/rocket.mov>
Last up, if you're a MAKE subscriber, don't forget that you can log in to
see all of MAKE 05 with MAKE's digital edition.
<http://www.make-digital.com/make/vol05/>
=======
Don't buy what you can make, and don't make what you can find!
*The MAKE Team*
-----------------------------------------------------------------
O'Reilly Learning Special Offer: Save 25% Now
<http://oreillylearning.com/promotion/>
"I would never, and I mean never, have imagined that a computer learning
course would actually be fun too."
-Kerry Beck, PR Specialist
O'Reilly Learning has an exciting year in store! You're invited to join
thousands of satisfied students worldwide who have discovered just how
much fun it can be to gain skills and experience in programming or system
administration with our unique system. And until March 31st, enjoy 25% off
tuition for our online University of Illinois Certificate courses.
Enroll today and make your daily accomplishment:
<https://oreillylearning.com/enroll/>
-----------------------------------------------------------------
Interested in sponsoring the MAKE: newsletter? Please contact Dan Woods
for rate and availability information at 1-800-998-9938 ext.
7068, or email advertise@makezine.com. Thank you!
-----------------------------------------------------------------
To change your newsletter subscription options, please visit
http://www.oreillynet.com/cs/nl/home
For assistance, email help@oreillynet.com
O'Reilly Media, Inc.
1005 Gravenstein Highway North
Sebastopol, CA 95472
(707) 827-7000
-----------------------------------------------------------------
Monday, March 27, 2006
Apple vs. IBM vs. Linux
LINUX NEWS FROM O'REILLY NETWORK
----------------------------------------
The Latest from http://www.linuxdevcenter.com and http://ONLamp.com
=================================================================
Your Skills Are in Demand. More Skills. More Demand.
Choose from 45 webcasts organized by track--JSP, PHP, and ColdFusion. Each
track has been designed to take advantage of your existing Web development
skills and includes insightful content contributed by Dr. Dobb's and
O'Reilly.
http://www.oreilly.com/go/learn2asp_lnx
=================================================================
Welcome readers, to the final Linux newsletter of March 2006. In this
paragraph, your author tries to say something slightly unique and new
every week, while also explaining that "Linux newsletter" is merely easier
to explain than "LAMP." Here's what's new on the related O'Reilly Network
sites this week.
If most reviews of Linux distributions are worth reading (and they really
aren't), installing Linux is within the power of moderately experienced
and patient people these days. That doesn't make said installers experts,
however, and if there's one thing dangerous on the internet, it's people
with lots of power but not wise experience. At least with Linux and other
free Unixes, you can increase your security in well-documented and easily
explained ways. Aaron Brazell gives several simple and effective tips to
secure your new Linux server:
<http://www.linuxdevcenter.com/pub/a/linux/2006/03/23/secure-your-server.html>
Apple's actually migrated to Intel-based processors just as the PS3 is
about to get ready to come out. The Cell processor may resurrect the
PowerPC architecture. The PS3 may be a general-purpose Linux box sold
stealthily as a game device. What does this all mean for Linux? Is Apple
getting pinned between IBM and Linux? What do processor architectures
have to do with operating systems and the future of software? Adrien
Lamothe speculates how Apple's risks might open more doors for truly free
software:
<http://www.onlamp.com/pub/a/onlamp/2006/03/23/apple_vs_everyone.html>
In weblogs this week, brian d foy announces The Perl Review's Spring 2006
issue:
<http://www.oreillynet.com/onlamp/blog/2006/03/the_perl_review_spring_2006_th.html>
Dave Cross finds the expertise of so-called experts lacking:
<http://www.oreillynet.com/onlamp/blog/2006/03/experts.html>
Your editor writes a short overview of the Parrot compiler tools being
written and used for Perl 6:
<http://www.oreillynet.com/onlamp/blog/2006/03/inside_parrots_compiler_tools.html>
Kevin Shockey announces a mini-seminar about using Linux on the desktop:
<http://www.oreillynet.com/onlamp/blog/2006/03/tux_magazine_and_the_abcs_of_d.html>
Jeremy Jones documents the process of upgrading his laptop to Ubuntu
Dapper:
<http://www.oreillynet.com/onlamp/blog/2006/03/upgrading_to_ubuntu_dapper.html>
<http://www.oreillynet.com/onlamp/blog/2006/03/networkmanager_is_now_working.html>
<http://www.oreillynet.com/onlamp/blog/2006/03/high_cpu_utilization_in_dapper.html>
Steve Mallett anticipates the Best of Ruby Quiz book:
<http://www.oreillynet.com/ruby/blog/2006/03/best_of_ruby_quiz_available.html>
Tom Adelstein walks through securely removing a user:
<http://www.oreillynet.com/sysadmin/blog/2006/03/howto_remove_an_user_and_impro.html>
Anton Chuvakin hopes for a standard in the world of audit logging:
<http://www.oreillynet.com/sysadmin/blog/2006/03/audit_logging_standard_a_chanc.html>
That's all for this week. Come back again next week for the start of your
editor's five-part series on designing a truly maintainable programming
language.
No joke,
- c
chromatic
chromatic@oreilly.com
Technical Editor
O'Reilly Network
================================================================
Free on Safari
Quicken 2006 Missing Manual: Setting Up Your Quicken Environment
http://safari.oreilly.com/0596101279/quickenfstmm-CHP-1
After you install Quicken, you're merely a few steps away from
experiencing the joys of electronic personal finance. Chapter 1 of Quicken
2006 for Starters: The Missing Manual helps you come out of the gate
running by guiding you through launching and setting up Quicken as well as
the intricacies of Quicken preferences.
If you like this chapter, read the whole book (and up to nine others) on
Safari with a free trial subscription:
http://oreillynet.com/safari-trial/
================================================================
ONLamp.com and Linux Devcenter Top Five Articles Last Week
1. Apple's High-Water Mark?
Apple's latest moves have impressed observers, but the environment is
about to change drastically, with Apple likely facing its greatest
challenges. Where do the company and its users face competition? IBM,
Sony, and ... Linux? Adrien Lamothe explores the computing landscape of
2006.
<http://www.onlamp.com/pub/a/onlamp/2006/03/23/apple_vs_everyone.html>
***
2. Ajax on Rails
XMLHttpRequest and Ruby on Rails are two hot topics in web development. As
you ought to expect by now, they work really well together. Curt Hibbs
explains the minimal Ajax you need to know and the minimal Ruby you need
to write to Ajax-ify your Rails applications.
<http://www.onlamp.com/pub/a/onlamp/2005/06/09/rails_ajax.html>
***
3. Secure Your Linux Server
Linux is a powerful and popular operating system kernel. That popularity
means you might be running it even if you're not a dedicated Unix
administrator or high-powered programmer. That doesn't mean that
rock-solid security is out of your reach, though. Aaron Brazell shows how
to make Red Hat 9 (and other Linux distributions) much more secure in a
few easy steps.
<http://www.linuxdevcenter.com/pub/a/linux/2006/03/23/secure-your-server.html>
***
4. Fine-Tuning Kubuntu
Ubuntu is a well-maintained, well-organized Linux distribution. Kubuntu
adds the popular and powerful KDE desktop environment. As nice as Kubuntu
is, the default installation doesn't fit every user. Carla Schroder shows
how to get help, get access to more software packages, set up a firewall,
and review and get rid of unnecessary services.
<http://www.linuxdevcenter.com/pub/a/linux/2006/03/09/tuning-kubuntu.html>
***
5. PHP Form Handling
If your PHP program is a dynamic web page (and it probably is) and your
PHP program is dealing with user input (and it probably is), then you need
to work with HTML forms. David Sklar, author of Learning PHP 5, offers
tips for simplifying, securing, and organizing your form-handling PHP
code.
<http://www.onlamp.com/pub/a/php/2004/08/26/PHPformhandling.html>
***
=================================================================
O'Reilly Learning Special Offer: Save 25% Now
<http://oreillylearning.com/promotion/>
"I would never, and I mean never, have imagined that a computer learning
course would actually be fun too."
-Kerry Beck, PR Specialist
O'Reilly Learning has an exciting year in store! You're invited to join
thousands of satisfied students worldwide who have discovered just how
much fun it can be to gain skills and experience in programming or system
administration with our unique system. And until March 31st, enjoy 25% off
tuition for our online University of Illinois Certificate courses.
Enroll today and make your daily accomplishment:
<https://oreillylearning.com/enroll/>
=================================================================
------------------------------------------------------------------
Interested in sponsoring the Linux DevCenter newsletter? Please
email us at advertising@oreilly.com for rate and availability
information. Thank you!
-----------------------------------------------------------------
To change your newsletter subscription options, please visit
http://www.oreillynet.com/cs/nl/home
For assistance, email help@oreillynet.com
O'Reilly Media, Inc.
1005 Gravenstein Highway North
Sebastopol, CA 95472
(707) 827-7000
-----------------------------------------------------------------
Friday, March 24, 2006
Daily Dose of Mac
THE MAC DEVCENTER NEWSLETTER
-------------------------------------------
The latest from http://www.macdevcenter.com/
==================================================================
O'Reilly's latest PDF, "What Are Syndication Feeds," provides everything
you need to know about the elements that make up a feed, the different
formats (RSS 1.0, RSS 2.0, Atom), and the tools you need to manage
incoming and outgoing feeds.
Buy this PDF for just $7.95 now!
<http://www.oreilly.com/catalog/syndicationfeeds/?CMP=NLC-5YS097949027&ATT=w10>
==================================================================
Dear Mac Reader,
Have you been following our webloggers lately? Every day they're
adding clever and fascinating posts to Mac DevCenter. They cover Mac-
o-sphere culture, technology issues, software tricks, and reviews.
Our writers are smart, curious, and pure Mac to the (dual) core. If
you don't have time to stop by the home page, you can subscribe to
their posts via syndication: <http://www.oreillynet.com/pub/feed/3>.
We're still publishing articles too. Our current piece, "Getting
Started with Quartz Composer," by Erica Sadun (also one of our
esteemed webloggers) shows you how to create great animated graphics
with Apple's free developer tool. I had a ball working with this
tutorial, and I think you will too.
You may have noticed, however, that we're only publishing one
article per week right now instead of two. Quite honestly, this is the
result of a budget cut for all of our websites. Fear not! I have a
plan. We're going to start offering PDFs by summer that will have
more depth than our standard articles and will be downloadable for a
very reasonable price. I'll keep you posted as this project takes shape.
In the meantime, I hope you enjoy the daily news, the weblogs, and the
weekly article on Mac DevCenter. If you want to contribute, just drop
me a line.
Until next time,
-Derrick
Derrick Story
O'Reilly Network Editorial Director
derrick@oreilly.com
==================================================================
Free on Safari
Quicken 2006 Missing Manual: Setting Up Your Quicken Environment
http://safari.oreilly.com/0596101279/quickenfstmm-CHP-1
After you install Quicken, you're merely a few steps away from
experiencing the joys of electronic personal finance. Chapter 1 of Quicken
2006 for Starters: The Missing Manual helps you come out of the gate
running by guiding you through launching and setting up Quicken as well as
the intricacies of Quicken preferences.
If you like this chapter, read the whole book (and up to nine others) on
Safari with a free trial subscription:
http://oreillynet.com/safari-trial/
==================================================================
*** Featured Articles ***
Getting Started with Quartz Composer
Apple's free developer tool collection contains many overlooked gems. These aren't limited to programming-specific utilities. Take Quartz Composer, for example. It's a free utility that can bring new life and interest to your iMovie projects. In this article, you'll learn how to use your own pictures to create a simple but flashy animation.
<http://www.macdevcenter.com/pub/a/mac/2006/03/23/quartz-composer.html>
***
Digital Bookmark Mods
Matthew Russell shows you how to add better bookmarks to your audio books,
add slideshows to your music files, create enhanced podcasts, and share
your favorite mods with others--even if they're on protected audio.
<http://www.macdevcenter.com/pub/a/mac/2006/03/15/digital-bookmarks-mod.html>
***
Mac OS X Website Builder Face-Off
You may be a web expert, but surely everyone you know isn't. What tools do
you recommend to others? And, what would you use for those quick sites
that you don't want to code from scratch? Giles Turnbull compares three
potent offerings: iWeb, Sandvox, and RapidWeaver. The results are
surprising.
<http://www.macdevcenter.com/pub/a/mac/2006/03/08/web_builder.html>
***
*** Mac Devcenter Top Five Articles Last Week ***
1. Mac OS X Website Builder Face-Off
You may be a web expert, but surely everyone you know isn't. What tools do
you recommend to others? And, what would you use for those quick sites
that you don't want to code from scratch? Giles Turnbull compares three
potent offerings: iWeb, Sandvox, and RapidWeaver. The results are
surprising.
<http://www.macdevcenter.com/pub/a/mac/2006/03/08/web_builder.html>
***
2. iPod shuffle Tips and Tricks
The iPod shuffle is the easiest-to-use iPod to date. But that doesn't mean
you can't customize how you listen and upload music. Scott Knaster shows
you some very handy tips and tricks for the shuffle and iTunes 4.7.1.
<http://www.macdevcenter.com/pub/a/mac/2005/02/15/shuffle.html>
***
3. Getting the Video out of Your New iPod--for Cheap!
Yes, you can spend extra dollars for Apple's sleek white video cable for
TV connectivity, or you can hack your own together for cheap. Erica Sadun
shows you how.
<http://www.macdevcenter.com/pub/a/mac/2005/11/18/video-ipod.html>
***
4. Connecting Mac OS X to Windows PCs
A hands-on look at how you can share files between your Mac and your
Windows machines, then explore how Windows applications can be run on your
Mac
<http://www.macdevcenter.com/pub/a/mac/2002/11/19/mac_pc.html>
***
5. Top Ten Digital Photography Tips
You have a digital camera and have taken the typical shots of family and
friends. Now what? Here are ten tips to make your next batch of digital
images so impressive that people will ask: "Hey, what type of camera do
you have?" Guess what? It's not the camera.
<http://www.macdevcenter.com/pub/a/mac/2002/10/22/digi_photo_tips.html>
***
==================================================================
O'Reilly Learning Special Offer: Save 25% Now
<http://oreillylearning.com/promotion/>
"I would never, and I mean never, have imagined that a computer learning
course would actually be fun too."
-Kerry Beck, PR Specialist
O'Reilly Learning has an exciting year in store! You're invited to join
thousands of satisfied students worldwide who have discovered just how
much fun it can be to gain skills and experience in programming or system
administration with our unique system. And until March 31st, enjoy 25% off
tuition for our online University of Illinois Certificate courses.
Enroll today and make your daily accomplishment:
<https://oreillylearning.com/enroll/>
==================================================================
------------------------------------------------------------------
Interested in sponsoring the Mac DevCenter newsletter? Please email
us at advertising@oreilly.com for rate and availability information.
Thank you!
---------------------------------------------------------------------
To change your newsletter subscription options, please visit
http://www.oreillynet.com/cs/nl/home
For assistance, email help@oreillynet.com
O'Reilly Media, Inc.
1005 Gravenstein Highway North
Sebastopol, CA 95472
(707) 827-7000
---------------------------------------------------------------------
Thursday, March 23, 2006
Spring Configuration and Zero Configuration
O'REILLY NETWORK'S ONJava.com NEWSLETTER
--------------------------------------------------
The Independent Source for Enterprise Java
==================================================================
FREE Cross Training For Web Developers
FREE training webcasts, software, and how to's from Dr. Dobb's, O'Reilly
Media, and Microsoft. Choose from more than 40 webcasts, and see if you're
eligible to receive a FREE copy of Visual Studio Standard (NFR).
Complimentary copies of Visual Studio Standard (NFR) are limited, so act
today! http://www.oreilly.com/go/learn2asp_jav
==================================================================
Greetings--
Isn't sharing configuration files with source control great? I think I
was pretty much over this concept the first time I checked out a project
and it created a directory called "C:" on my Mac. And that's just
location. Source control is great for capturing the structure of config
files, but in all likelihood, it's a bad way to attend to the contents,
since the point of a config file is to put different values in for
different situations. So what do you do? Put in dummy data? Write a
heroic shell script or Ant task that tries to fix everything for you?
This week's first article takes a look at this very common problem from
the Spring space, and advocates a solution.
Developer box, integration box, production box. They'll all need the same
Spring configuration files, but with profoundly different values for most,
if not all, of the items to be configured. Merely annoying for
hand-editing name-value pairs, this becomes a real problem if you choose
to vary your bean wiring between deployments. In "Advanced Configuration
of the Spring MVC Framework," Dejan Bosanac shows how to synchronize bean
properties and wirings to get yourself out of this mess.
<http://www.onjava.com/pub/a/onjava/2006/03/22/advanced-spring-configuration.html>
Continuing with an excerpt from "Zero Configuration Networking, The
Definitive Guide," Stuart Cheshire and Daniel H. Steinberg move to the
client side in "Zero Configuration Networking: Using the Java APIs, Part
2." They show how to browse for and resolve services with Java, and how
to register a service with DNS TXT attributes.
<http://www.onjava.com/pub/a/onjava/excerpt/bonjour_ch08/index1.html>
"It sometimes seems like widely popular web-standards innovation halted
around 2000, and the last few years have been a period of very slow
catch-up. Various visions of a new Web, a better Web, have come and gone,
leaving behind useful parts but not yet transforming the Web. Are we on
the edge of the next big thing? It may make sense to look at the last few
big things, comparing their visions with what's happening today." In the
xml.com article "The Next Web?" Simon St. Laurent traces the promises and
progress of various "Next Big Thing" contenders: the XML Web, the Semantic
Web, the Services Web, the Next XHTML, and AJAX.
<http://www.xml.com/pub/a/2006/03/15/next-web-xhtml2-ajax.html>
In a feature article from java.net, Joshua Marinacci looks at "Building
GUIs with SwiXml." "In recent years, many developers have decided that it
is a good practice to separate the GUI layout from event handling and
program logic. This keeps the program logic cleaner and allows the layout
to be maintained separately, often by a different developer. Some have
gone a step further to specify layout in a language other than Java. These
days, the natural choice for any new language is of course XML, and a
quick internet search for 'java xml gui layout' will return many
commercial and open source layout products. One of the best is SwiXml, a
tiny but powerful library that transforms simple XML descriptions into
attractive user interfaces."
<http://today.java.net/pub/a/today/2006/02/21/building-guis-with-swixml.html>
Recent O'Reilly Network weblogs of interest to Java developers:
Dejan Bosanac: "Apache XML-RPC Adapter for Spring"
<http://www.oreillynet.com/onjava/blog/2006/03/apache_xmlrpc_adapter_for_spri.html>
Robert Cooper: "This Week in Java"
<http://www.oreillynet.com/onjava/blog/2006/03/this_week_in_java.html>
Check out more O'Reilly Network Java weblogs at:
<http://www.oreillynet.com/pub/q/weblog_s?x-subject=3&>
Please join us again next week.
Chris Adamson, Editor
ONJava.com
cadamson@oreilly.com
==================================================================
Free on Safari
Quicken 2006 Missing Manual: Setting Up Your Quicken Environment
http://safari.oreilly.com/0596101279/quickenfstmm-CHP-1
After you install Quicken, you're merely a few steps away from
experiencing the joys of electronic personal finance. Chapter 1 of Quicken
2006 for Starters: The Missing Manual helps you come out of the gate
running by guiding you through launching and setting up Quicken as well as
the intricacies of Quicken preferences.
If you like this chapter, read the whole book (and up to nine others) on
Safari with a free trial subscription:
http://oreillynet.com/safari-trial/
==================================================================
*** Java News and Weblogs ***
java.net Weblogs
http://weblogs.java.net/
O'Reilly Network Java Weblogs
http://www.oreillynet.com/pub/q/weblog_s?x-subject=3
Other Java News (channel -- LANG: JAVA)
http://www.oreillynet.com/meerkat/index.php
Java Cookbook Recipe of the Day
http://www.onjava.com/onjava/javacook/solution.csp?day=1
Java Events
http://www.onjava.com/onjava/events/
==================================================================
O'Reilly Learning Special Offer: Save 25% Now
<http://oreillylearning.com/promotion/>
"I would never, and I mean never, have imagined that a computer learning
course would actually be fun too."
-Kerry Beck, PR Specialist
O'Reilly Learning has an exciting year in store! You're invited to join
thousands of satisfied students worldwide who have discovered just how
much fun it can be to gain skills and experience in programming or system
administration with our unique system. And until March 31st, enjoy 25% off
tuition for our online University of Illinois Certificate courses.
Enroll today and make your daily accomplishment:
<https://oreillylearning.com/enroll/>
==================================================================
*** Other Related O'Reilly Network sites ***
O'Reilly Network
http://www.oreillynet.com
XML.com
http://xml.com/
ONLamp.com
http://onlamp.com
O'Reilly Media
http://www.oreilly.com/
O'Reilly Java
http://java.oreilly.com/
***
ONJava.com Affiliates
Servlets.com
http://www.servlets.com/
JDOM.org
http://www.jdom.org/
------------------------------------------------------------------
Interested in sponsoring the ONJava.com newsletter? Please email us
at advertising@oreilly.com for rate and availability information.
Thank you!
------------------------------------------------------------------
To change your newsletter subscription options, please visit
http://www.oreillynet.com/cs/nl/home
For assistance, email help@oreillynet.com
O'Reilly Media, Inc.
1005 Gravenstein Highway North
Sebastopol, CA 95472
(707) 827-7000
------------------------------------------------------------------
RSS Feeds for FTP Servers
XML.com Xtra!
---------------------------------
The Email for XML.com Subscribers
=================================================================
FREE Cross Training For Web Developers
FREE training webcasts, software, and how to's from Dr. Dobb's, O'Reilly
Media, and Microsoft. Choose from more than 40 webcasts, and see if you're
eligible to receive a FREE copy of Visual Studio Standard (NFR).
Complimentary copies of Visual Studio Standard (NFR) are limited, so act
today! http://www.oreilly.com/go/learn2asp_xml
=================================================================
Dear Reader,
Welcome to another issue of XML.com.
This week, Mark Woodman returns with an interesting PHP library for adding
RSS feeds to an FTP site. FTP is still an important part of the internet
infrastructure, and having RSS feeds for your favorite FTP site is going
to make life a lot easier.
"RSS Feeds for FTP Servers"
<http://www.xml.com/pub/a/2006/03/22/rss-feeds-for-ftp-servers.html>
Also worth reading:
"Why XForms Matter, Revisited"
<http://www.oreillynet.com/xml/blog/2006/03/why_xforms_matter_revisited.html>
As always, thanks for reading.
Kendall Clark
kendall@xml.com
Managing editor, XML.com
=================================================================
O'Reilly's latest PDF, "What Are Syndication Feeds," provides everything
you need to know about the elements that make up a feed, the different
formats (RSS 1.0, RSS 2.0, Atom), and the tools you need to manage
incoming and outgoing feeds.
Buy this PDF for just $7.95 now!
<http://www.oreilly.com/catalog/syndicationfeeds/?CMP=NLC-T5Z960052371&ATT=w10>
=================================================================
*** XML News from the XML Cover Pages by Robin Cover ***
WS-Transfer, WS-Eventing, and WS-Enumeration Specifications Submitted to W3C
For more information on any of these stories visit:
http://www.xml.com/pub/a/coverpage/newspage.html
***
=================================================================
O'Reilly Learning Special Offer: Save 25% Now
<http://oreillylearning.com/promotion/>
"I would never, and I mean never, have imagined that a computer learning
course would actually be fun too."
-Kerry Beck, PR Specialist
O'Reilly Learning has an exciting year in store! You're invited to join
thousands of satisfied students worldwide who have discovered just how
much fun it can be to gain skills and experience in programming or system
administration with our unique system. And until March 31st, enjoy 25% off
tuition for our online University of Illinois Certificate courses.
Enroll today and make your daily accomplishment:
<https://oreillylearning.com/enroll/>
=================================================================
------------------------------------------------------------------
Interested in sponsoring the XML.com newsletter? Please email us at
advertising@oreilly.com for rate and availability information.
Thank you!
-----------------------------------------------------------------
To change your newsletter subscription options, please visit
http://www.oreillynet.com/cs/nl/home
For assistance, email help@oreillynet.com
O'Reilly Media, Inc.
1005 Gravenstein Highway North
Sebastopol, CA 95472
(707) 827-7000
-----------------------------------------------------------------
Using the MultiView and Wizard Controls in ASP.NET 2.0
The Windows DevCenter Newsletter
---------------------------------------------------
The latest from http://www.windowsdevcenter.com
=====================================================================
Your Skills Are in Demand. More Skills. More Demand.
Choose from 45 webcasts organized by track--JSP, PHP, and ColdFusion.
Each track has been designed to take advantage of your existing Web
development skills and includes insightful content contributed by
Dr. Dobb's and O'Reilly.
http://www.oreilly.com/go/learn2asp_wdc
=====================================================================
Using the MultiView and Wizard Controls in ASP.NET 2.0
If you need to collect data from web pages, you need help, especially if
you want to create multiple pages for the task. But ASP.NET 2.0 makes it
easy with the use of MultiView and Wizard controls. Wei-Meng Lee shows you
how to take advantage of them.
<http://www.windowsdevcenter.com/pub/a/windows/2006/03/21/multiview-and-wizard-controls-in-aspnet-20.html>
From the Windows DevCenter Blogosphere
Vista Delay: Why Can't Microsoft Get Its Act Together?
Microsoft's announcement today that the consumer version of Vista won't be
ready until January 2007 is one of the more shocking pieces of news to
come out of Redmond in recent years. What's going on? Check out my blog
for details.
<http://www.oreillynet.com/windows/blog/2006/03/vista_delay_why_cant_microsoft.html>
Best Practices Analyzer Tools
Microsoft recently released a Best Practices Analyzer Tool (BPAT) for its
ISA Server 2004 product. This BPAT can be used to check the health of your
ISA server to make sure it's configured properly according to Microsoft
best practices. Mitch Tulloch has details.
<http://www.oreillynet.com/windows/blog/2006/03/best_practices_analyzer_tools.html>
From C# to VB.NET to Boo and Back, in Three Easy Steps
In a recent Amazon Developers Forum post, there was a question regarding
the availability of an S3 VB.NET Sample. There is an extremely easy way to
go from C# (a C# REST and SOAP sample was provided by the Amazon folks) to
VB.NET and/or Boo and back. M. David Peterson fills you in.
<http://www.oreillynet.com/windows/blog/2006/03/from_c_to_vbnet_to_boo_and_bac.html>
Check Out the ASP.NET 2.0 Training Center
As I mentioned last week, O'Reilly, CMP's Dr. Dobbs Journal, and Microsoft
have launched a new site, the ASP.NET 2.0 Training Center, which offers a
comprehensive set of development tools, how-to's, and training to help
programmers master ASP.NET 2.0.
You'll find articles from your favorite O'Reilly authors, such as Jesse
Liberty and others, and articles from Dr. Dobbs Journal. And there is an
excellent webcast series to help you get more out of ASP.NET 2.0 as well.
Sign up for the site's webcast series and you also get more than $400 in
tools and information, including Visual Studio(R) 2005 Standard Edition.
Visit the site at <http://aspnet.cmp.com/>, sign up for the webcasts, and
get more than $400 in goodies at
<https://www.learn2asp.net/CMP/Default.aspx>
See you next week.
Preston Gralla, editor
WindowsDevCenter.com
pgralla@oreilly.com
=====================================================================
O'Reilly's latest PDF, "What Are Syndication Feeds," provides everything
you need to know about the elements that make up a feed, the different
formats (RSS 1.0, RSS 2.0, Atom), and the tools you need to manage
incoming and outgoing feeds.
Buy this PDF for just $7.95 now!
<http://www.oreilly.com/catalog/syndicationfeeds/?CMP=NLC-UW7102220707&ATT=w10>
=====================================================================
*** Top Five Windows and .NET Articles Last Week ***
1. Run Mac OS X on a PC
You can get the best of both worlds--you can run the real Mac OS X on your
own PC. Wei-Meng Lee shows you how to run the Mac operating system on an
emulator called PearPC.
<http://www.windowsdevcenter.com/pub/a/windows/2005/01/18/PearPC.html>
***
2. Windows Server Hacks: Remotely Enable Remote Desktop
What to do when you need to enable Remote Desktop on a remote server?
Mitch Tulloch, author of Windows Server Hacks, walks you through the
steps.
<http://www.windowsdevcenter.com/pub/a/windows/2004/05/04/serverhacks_remote.html>
***
3. Getting Your Bluetooth Headset to Work in XP
With Bluetooth support built into SP2, getting a Bluetooth headset to work
should be a breeze. But it ain't necessarily so. Wei-Meng Lee shows you
how to do it.
<http://www.windowsdevcenter.com/pub/a/windows/2005/07/05/bluetooth.html>
***
4. Enhancing ASP.NET Pages with JavaScript
A sprinkling of JavaScript code can enhance the reach and responsiveness
of your ASP.NET web pages without sacrificing ASP.NET's secure,
server-based model for your coding. Matthew MacDonald, coauthor of ASP.NET
in a Nutshell, 2nd Edition, shows you how to use JavaScript in an ASP.NET
web page to perform three common tasks: showing a pop-up window, changing
control focus, and handling frame navigation. You can use these tricks to
quickly solve problems that have no native .NET solution.
<http://www.ondotnet.com/pub/a/dotnet/2003/09/15/aspnet.html>
***
5. ASP.NET File Uploading
File upload and download are much simpler tasks in ASP.NET than in classic
ASP, thanks to the extensive .NET Framework class library. While file
upload in ASP.NET is as easy as retrieving an HTML form value, file
download is still a bit tricky.
<http://www.ondotnet.com/pub/a/dotnet/2002/04/01/asp.html>
***
---------------------------------------------------------------------
Interested in sponsoring the Windows DevCenter newsletter? Please
email us at advertising@oreilly.com for rate and availability
information. Thank you!
---------------------------------------------------------------------
To change your newsletter subscription options, please visit
http://www.oreillynet.com/cs/nl/home
For assistance, email help@oreillynet.com
O'Reilly Media, Inc.
1005 Gravenstein Highway North
Sebastopol, CA 95472
(707) 827-7000
---------------------------------------------------------------------
Wednesday, March 22, 2006
Algorithms Explained By Ankit Fadia
Data Encryption Standard or DES
The U.S government in 1977 adopted the Data Encryption Standard (DES) algorithm. According to it’s developer the DES algorithm is:
“ It is a block cipher system which transforms 64-bit data blocks under a 56-bit secret key under a 56-bit secret key, by means of permutation and substitution.”
Now, this tutorial will guide you through the various steps of the DES encryption algorithm making you more confident in dealing with DES encryption.
The following is a step by step guide to the DES algorithm, which was originally written by Matthew Fischer and has been edited by me-:
1.) Firstly, we need to process the key.
1.1 Get a 64-bit key from the user. (Every 8th bit is considered a parity bit. For a key to have correct parity, each byte should contain an odd number of "1" bits.)
1.2 Calculate the key schedule.
1.2.1 Perform the following permutation on the 64-bit key. (The parity bits are discarded, reducing the key to 56 bits. Bit 1 of the permuted block is bit 57 of the original key, bit 2 is bit 49, and so on with bit
56 being bit 4 of the original key.)
Permuted Choice 1 (PC-1)
57 49 41 33 25 17 9
1 58 50 42 34 26 18
10 2 59 51 43 35 27
19 11 3 60 52 44 36
63 55 47 39 31 23 15
7 62 54 46 38 30 22
14 6 61 53 45 37 29
21 13 5 28 20 12 4
1.2.2 Split the permuted key into two halves. The first 28 bits are called C[0] and the last 28 bits are called D[0].
1.2.3 Calculate the 16 subkeys. Start with i = 1.
1.2.3.1 Perform one or two circular left shifts on both C[i-1] and D[i-1] to get C[i] and D[i], respectively. The number of shifts per iteration are given in the table below.
Iteration # 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Left Shifts 1 1 2 2 2 2 2 2 1 2 2 2 2 2 2 1
1.2.3.2 Permute the concatenation C[i]D[i] as indicated below. This will yield K[i], which is 48 bits long.
Permuted Choice 2 (PC-2)
14 17 11 24 1 5
3 28 15 6 21 10
23 19 12 4 26 8
16 7 27 20 13 2
41 52 31 37 47 55
30 40 51 45 33 48
44 49 39 56 34 53
46 42 50 36 29 32
1.2.3.3 Loop back to 1.2.3.1 until K[16] has been calculated.
2 Process a 64-bit data block.
2.1 Get a 64-bit data block. If the block is shorter than 64 bits, it should be padded as appropriate for the application.
2.2 Perform the following permutation on the data block.
Initial Permutation (IP)
58 50 42 34 26 18 10 2
60 52 44 36 28 20 12 4
62 54 46 38 30 22 14 6
64 56 48 40 32 24 16 8
57 49 41 33 25 17 9 1
59 51 43 35 27 19 11 3
61 53 45 37 29 21 13 5
63 55 47 39 31 23 15 7
2.3 Split the block into two halves. The first 32 bits are called L[0], and the last 32 bits are called R[0].
2.4 Apply the 16 subkeys to the data block. Start with i = 1.
2.4.1 Expand the 32-bit R[i-1] into 48 bits according to the bit-selection function below.
Expansion (E)
32 1 2 3 4 5
4 5 6 7 8 9
8 9 10 11 12 13
12 13 14 15 16 17
16 17 18 19 20 21
20 21 22 23 24 25
24 25 26 27 28 29
28 29 30 31 32 1
2.4.2 Exclusive-or E(R[i-1]) with K[i].
2.4.3 Break E(R[i-1]) xor K[i] into eight 6-bit blocks. Bits 1-6 are B[1], bits 7-12 are B[2], and so on with bits 43-48 being B[8].
2.4.4 Substitute the values found in the S-boxes for all B[j]. Start with j = 1. All values in the S-boxes should be considered 4 bits wide.
2.4.4.1 Take the 1st and 6th bits of B[j] together as a 2-bit value (call it m) indicating the row in S[j] to look in for the substitution.
2.4.4.2 Take the 2nd through 5th bits of B[j] together as a 4-bit value (call it n) indicating the column in S[j] to find the substitution.
2.4.4.3 Replace B[j] with S[j][m][n].
Substitution Box 1 (S[1])
14 4 13 1 2 15 11 8 3 10 6 12 5 9 0 7
0 15 7 4 14 2 13 1 10 6 12 11 9 5 3 8
4 1 14 8 13 6 2 11 15 12 9 7 3 10 5 0
15 12 8 2 4 9 1 7 5 11 3 14 10 0 6 13
S[2]
15 1 8 14 6 11 3 4 9 7 2 13 12 0 5 10
3 13 4 7 15 2 8 14 12 0 1 10 6 9 11 5
0 14 7 11 10 4 13 1 5 8 12 6 9 3 2 15
13 8 10 1 3 15 4 2 11 6 7 12 0 5 14 9
S[3]
10 0 9 14 6 3 15 5 1 13 12 7 11 4 2 8
13 7 0 9 3 4 6 10 2 8 5 14 12 11 15 1
13 6 4 9 8 15 3 0 11 1 2 12 5 10 14 7
1 10 13 0 6 9 8 7 4 15 14 3 11 5 2 12
S[4]
7 13 14 3 0 6 9 10 1 2 8 5 11 12 4 15
13 8 11 5 6 15 0 3 4 7 2 12 1 10 14 9
10 6 9 0 12 11 7 13 15 1 3 14 5 2 8 4
3 15 0 6 10 1 13 8 9 4 5 11 12 7 2 14
S[5]
2 12 4 1 7 10 11 6 8 5 3 15 13 0 14 9
14 11 2 12 4 7 13 1 5 0 15 10 3 9 8 6
4 2 1 11 10 13 7 8 15 9 12 5 6 3 0 14
11 8 12 7 1 14 2 13 6 15 0 9 10 4 5 3
S[6]
12 1 10 15 9 2 6 8 0 13 3 4 14 7 5 11
10 15 4 2 7 12 9 5 6 1 13 14 0 11 3 8
9 14 15 5 2 8 12 3 7 0 4 10 1 13 11 6
4 3 2 12 9 5 15 10 11 14 1 7 6 0 8 13
S[7]
4 11 2 14 15 0 8 13 3 12 9 7 5 10 6 1
13 0 11 7 4 9 1 10 14 3 5 12 2 15 8 6
1 4 11 13 12 3 7 14 10 15 6 8 0 5 9 2
6 11 13 8 1 4 10 7 9 5 0 15 14 2 3 12
S[8]
13 2 8 4 6 15 11 1 10 9 3 14 5 0 12 7
1 15 13 8 10 3 7 4 12 5 6 11 0 14 9 2
7 11 4 1 9 12 14 2 0 6 10 13 15 3 5 8
2 1 14 7 4 10 8 13 15 12 9 0 3 5 6 11
2.4.4.4 Loop back to 2.4.4.1 until all 8 blocks have been replaced.
2.4.5 Permute the concatenation of B[1] through B[8] as indicated below.
Permutation P
16 7 20 21
29 12 28 17
1 15 23 26
5 18 31 10
2 8 24 14
32 27 3 9
19 13 30 6
22 11 4 25
2.4.6 Exclusive-or the resulting value with L[i-1]. Thus, all together, your R[i] = L[i-1] xor P(S[1](B[1])...S[8](B[8])), where B[j] is a 6-bit block of E(R[i-1]) xor K[i]. (The function for R[i] is written as, R[i] = L[i-1] xor f(R[i-1], K[i]).)
2.4.7 L[i] = R[i-1].
2.4.8 Loop back to 2.4.1 until K[16] has been applied.
2.5 Perform the following permutation on the block R[16]L[16].
Final Permutation (IP**-1)
40 8 48 16 56 24 64 32
39 7 47 15 55 23 63 31
38 6 46 14 54 22 62 30
37 5 45 13 53 21 61 29
36 4 44 12 52 20 60 28
35 3 43 11 51 19 59 27
34 2 42 10 50 18 58 26
33 1 41 9 49 17 57 25
This has been a description of how to use the DES algorithm to encrypt one 64-bit block. To decrypt, use the same process, but just use the keys K[i] in reverse order. That is, instead of applying K[1] for the first
iteration, apply K[16], and then K[15] for the second, on down to K[1].
Summaries:
Key schedule:
C[0]D[0] = PC1(key)
for 1 <= i <= 16
C[i] = LS[i](C[i-1])
D[i] = LS[i](D[i-1])
K[i] = PC2(C[i]D[i])
Encipherment:
L[0]R[0] = IP(plain block)
for 1 <= i <= 16
L[i] = R[i-1]
R[i] = L[i-1] xor f(R[i-1], K[i])
cipher block = FP(R[16]L[16])
Decipherment:
R[16]L[16] = IP(cipher block)
for 1 <= i <= 16
R[i-1] = L[i]
L[i-1] = R[i] xor f(L[i], K[i])
plain block = FP(L[0]R[0])
To encrypt or decrypt more than 64 bits there are four official modes (defined in FIPS PUB 81). One is to go through the above-described process for each block in succession. This is called Electronic Codebook
(ECB) mode. A stronger method is to exclusive-or each plaintext block with the preceding ciphertext block prior to encryption. (The first block is exclusive-or'ed with a secret 64-bit initialization vector (IV).) This is called Cipher Block Chaining (CBC) mode. The other two modes are Output Feedback (OFB) and Cipher Feedback (CFB).
When it comes to padding the data block, there are several options. One is to simply append zeros. Two suggested by FIPS PUB 81 are, if the data is binary data, fill up the block with bits that are the opposite of the last bit of data, or, if the data is ASCII data, fill up the block with random bytes and put the ASCII character for the number of pad bytes in the last byte of the block. Another technique is to pad the block with random bytes and in the last 3 bits store the original number of data bytes.
The DES algorithm can also be used to calculate checksums up to 64 bits long (see FIPS PUB 113). If the number of data bits to be check summed is not a multiple of 64, the last data block should be padded with zeros. If the data is ASCII data, the first bit of each byte should be set to 0. The data is then encrypted in CBC mode with IV = 0. The leftmost n bits (where 16 <= n <= 64, and n is a multiple of 8) of the final ciphertext block are an n-bit checksum.
Wow, that was one heck of a paper on DES. That would be all you need to
implement DES. Well, if you still have not understood how the DES algorithm is
implemented, then I suggest you go through the following C program:
#include
static int keyout[17][48];
void des_init(),lshift(),cypher(),des_encrypt(),des_descrypt();
void des_init(unsigned char *key){
unsigned char c[28],d[28];
static int pc1[56] = {57,49,41,33,25,17,9,
01,58,50,42,34,26,18,
10,02,59,51,43,35,27,
19,11,03,60,52,44,36,
63,55,47,39,31,23,15,
07,62,54,46,38,30,22,
14,06,61,53,45,37,29,
21,13,05,28,20,12,04};
static int pc2[48] = {14,17,11,24,1,5,
3,28,15,6,21,10,
23,19,12,4,26,8,
16,7,27,20,13,2,
41,52,31,37,47,55,
30,40,51,45,33,48,
44,49,39,56,34,53,
46,42,50,36,29,32};
static int nls[17] = {
0,1,1,2,2,2,2,2,2,1,2,2,2,2,2,2,1};
static int cd[56],keyb[64];
static int cnt,n=0;
register int i,j;
for(i=0;i<8;i++) /*Read in key*/
for(j=0;j<8;j++) keyb[n++]=(key[i]>>j&0x01);
for(i=0;i<56;i++) /*Permuted choice 1*/
cd[i]=keyb[pc1[1]-1];
for(i=0;i<28;i++){
c[i]=cd[i];
d[i]=cd[i+28];
}
for(cnt=1;cnt<=16;cnt++){
for(i=0;i
}
for(i=0;i<28;i++){
cd[i]=c[i];
cd[i+28]=d[i];
}
for(i=0;i<48;i++) /*Permuted Choice 2*/
keyout[cnt][i]=cd[pc2[i]-1];
}
}
static void lshift(unsigned char shft[]){
register int temp,i;
temp=shft[0];
for(i=0;i<27;i++) shft[i]=shft[i+1];
shft[27]=temp;
}
static void cypher(int *r, int cnt, int *fout){
static int expand[48],b[8][6],sout[8],pin[48];
register int i,j;
static int n,row,col,scnt;
static int p[32]={
16,7,20,21,29,12,28,17,1,15,23,26,
5,18,31,10,2,8,24,14,32,27,3,9,
19,13,30,6,22,11,4,25};
static int e[48] = {32,1,2,3,4,5,
4,5,6,7,8,9,
8,9,10,11,12,13,
12,13,14,15,16,17,
16,17,18,19,20,21,
20,21,22,23,24,25,
24,25,26,27,28,29,
28,29,30,31,32,1};
static char s[8][64] = {
14,4,13,1,2,15,11,8,3,10,6,12,5,9,0,7, /*s1*/
0,15,7,4,14,2,13,1,10,6,12,11,9,5,3,8,
4,1,14,8,13,6,2,11,15,12,9,7,3,10,5,0,
15,12,8,2,4,9,1,7,5,11,3,14,10,0,6,13,
15,1,8,14,6,11,3,4,9,7,2,13,12,0,5,10, /*s2*/
3,13,4,7,15,2,8,14,12,0,1,10,6,9,11,5,
0,14,7,11,10,4,13,1,5,8,12,6,9,3,2,15,
13,8,10,1,3,15,4,2,11,6,7,12,0,5,14,9,
10,0,9,14,6,3,15,5,1,13,12,7,11,4,2,8, /*s3*/
13,7,0,9,3,4,6,10,2,8,5,14,12,11,15,1,
13,6,4,9,8,15,3,0,11,1,2,12,5,10,14,7,
1,10,13,0,6,9,8,7,4,15,14,3,11,5,2,12,
7,13,14,3,0,6,9,10,1,2,8,5,11,12,4,15,/*s4*/
13,8,11,5,6,15,0,3,4,7,2,12,1,10,14,9,
10,6,9,0,12,11,7,13,15,1,3,14,5,2,8,4,
3,15,0,6,10,1,13,8,9,4,5,11,12,7,2,14,
2,12,4,1,7,10,11,6,8,5,3,15,13,0,14,9,/*s5*/
14,11,2,12,4,7,13,1,5,0,15,10,3,9,8,6,
4,2,1,11,10,13,7,8,15,9,12,5,6,3,0,14,
11,8,12,7,1,14,2,13,6,15,0,9,10,4,5,3,
12,1,10,15,9,2,6,8,0,13,3,4,14,7,5,11, /*s6*/
10,15,4,2,7,12,9,5,6,1,13,14,0,11,3,8,
9,14,15,5,2,8,12,3,7,0,4,10,1,13,11,6,
4,3,2,12,9,5,15,10,11,14,1,7,6,0,8,13,
4,11,2,14,15,0,8,13,3,12,9,7,5,10,6,1,/*s7*/
13,0,11,7,4,9,1,10,14,3,5,12,2,15,8,6,
1,4,11,13,12,3,7,14,10,15,6,8,0,5,9,2,
6,11,13,8,1,4,10,7,9,5,0,15,14,2,3,12,
13,2,8,4,6,15,11,1,10,9,3,14,5,0,12,7, /*s8*/
1,15,13,8,10,3,7,4,12,5,6,11,0,14,9,2,
7,11,4,1,9,12,14,2,0,6,10,13,15,3,5,8,
2,1,14,7,4,10,8,13,15,12,9,0,3,5,6,11
};
for(i=0;i<48;i++) expand[i]=r[e[i]-1]; /*Expansion Function*/
for(i=n=0;i<8;i++) {
for(j=0;j<6;j++,n++) b[i][j]=expand[n]^keyout[cnt][n];
}
/*Selection functions*/
for(scnt=n=0;scnt<8;scnt++){
row=(b[scnt][0]<<1)+b[scnt][5];
col=(b[scnt][1]<<3)+(b[scnt][2]<<2)+(b[scnt][3]<<1)+b[scnt][4];
sout[scnt]=s[scnt][(row<<4)+col];
for(i=3;i>=0;i--){
pin[n]=sout[scnt]>>i;
sout[scnt]=sout[scnt]-(pin[n++]< }
}
for(i=0;i<32;i++) fout[i]=pin[p[i]-1]; /*Permutation Function*/
}
static int p[64] = {58,50,42,34,26,18,10,2,
60,52,44,36,28,20,12,4,
62,54,46,38,30,22,14,6,
64,56,48,40,32,24,16,8,
5 = {58,50,42,34,26,18,10,2,
60,52,44,36,28,20,12,4,
62,54,46,38,30,22,14,6,
64,56,48,40,32,24,16,8,
57,49,41,33,25,17,9,1,
59,51,43,35,27,19,11,3,
61,53,45,37,29,21,13,5,
63,55,47,39,31,23,15,7};
static int invp[64]={
40, 8,48,16,56,24,64,32,39, 7,47,15,55,23,63,31,
38, 6,46,14,54,22,62,30,37, 5,45,13,53,21,61,29,
36, 4,44,12,52,20,60,28,35, 3,43,11,51,19,59,27,
34, 2,42,10,50,18,58,26,33, 1,41, 9,49,17,57,25};
void des_encrypt(unsigned char *input){
static unsigned char out[64];
static int inputb[64],lr[64],l[32],r[32];
static int fn[32];
static int cnt,n;
register int i,j;
for(i=n=0;i<8;i++)
for(j=0;j<8;j++) inputb[n++]=(input[i]>>j&0x01);
for(i=0;i<64;i++){ /*Initial Permutation*/
lr[i]=inputb[p[i]-1];
if(i<32) l[i]=lr[i];
else r[i-32]=lr[i];
}
for(cnt=1;cnt<=16;cnt++){ /*Main encryption loop*/
cypher(r,cnt,fn);
for(i=0;i<32;i++){
j=r[i];
r[i]=l[i]^fn[i];
l[i]=j;
}
}
for(i=0;i<32;i++){
lr[i]=r[i];
lr[i+32]=l[i];
}
for(i=0;i<64;i++) out[i]=lr[invp[i]-1]; /*Inverse IP*/
for(i=1;i<=8;i++)
for(j=1;j<=8;j++) input[i-1]=(input[i-1]<<1)|out[i*8-j];
}
void des_decrypt(unsigned char *input){
static unsigned char out[64];
static int inputb[64],lr[64],l[32],r[32];
static int fn[32];
static int cnt,rtemp,n;
register int i,j;
for(i=n=0;i<8;i++)
for(j=0;j<8;j++) inputb[n++]=(input[i]>>j&0x01);
for(i=0;i<64;i++){ /*Initial Permutation*/
lr[i]=inputb[p[i]-1];
if(i<32) l[i]=lr[i];
else r[i-32]=lr[i];
}
for(cnt=16;cnt>0;cnt--){ /*Main decryption loop*/
cypher(r,cnt,fn);
for(i=0;i<32;i++){
rtemp=r[i];
if(l[i]==1 && fn[i]==1) r[i]=0;
else r[i]=(l[i] || fn[i]);
l[i]=rtemp;
}
}
for(i=0;i<32;i++){
lr[i]=r[i];
lr[i+32]=l[i];
}
for(i=0;i<64;i++) out[i]=lr[invp[i]-1]; /*Inverse IP*/
for(i=1;i<=8;i++)
for(j=1;j<=8;j++) input[i-1]=(input[i-1]<<1) | out[i*8-j];
}
int main(int argc, char *argv[]){
unsigned char *key;
unsigned char data[8];
int n;
FILE *in;
FILE *out;
if (argc!=4) {
printf("\r\nUsage: des [e][d]
return 1;
}
key=(unsigned char*)getpass("Enter Key:");
des_init(key);
if((in=fopen(argv[2],"rb"))==NULL){
fprintf(stderr,"\r\nCould not open input file: %s",argv[2]);
return 2;
}
if((out=fopen(argv[3],"wb"))==NULL){
fprintf(stderr,"\r\nCould not open output file: %s",argv[3]);
return 3;
}
if(argv[1][0]=='e'){
while ((n=fread(data,1,8,in)) >0){
des_encrypt(data);
printf("data enctyted");
if(fwrite(data,1,8,out) < 8){
fprintf(stderr,"\r\nError writing to output file\r\n");
return(3);
}
}
}
if(argv[1][0]=='d'){
while ((n=fread(data,1,8,in)) >0){
des_decrypt(data);
if(fwrite(data,1,8,out) < 8){
fprintf(stderr,"\r\nError writing to output file\r\n");
return(3);
}
}
}
fclose(in); fclose(out);
return 0;
}ntf(stderr,"\r\nError writing to output file\r\n");
return(3);
}
}
}
fclose(in); fclose(out);
return 0;
}
The RSA Encryption Algorithm
RSA is one of the most popular encryption algorithms around. It was invented in
1977 by three MIT scientists; Ronald Rivest, Adi Shamir and Leonard Adelman.
This algorithm uses very very large prime numbers to generate public and private
keys. For more details about the implementation of the RSA algorithm, read on.
The entire RSA algorithm is based on the concept of factoring. Factoring is
very easy to calculate i.e. an algorithm based on factoring can easily be
carried out, however, the strength of an algorithm based on factoring lies in
the fact that factoring is quite difficult to reverse. So, encrypting data using
a factoring algorithm can be done without much of a problem, however to decrypt
or crack an algorithm using a factoring algorithm is not that easy.
Say you have two numbers x and y. Now it is relatively easier to find out the
final numbers when they are multiplied by a number N, however on the other hand,
if only N is know to us, then it is not easy to calculate x and y. On top of
this in RSA, N is very large number. This makes the calculation all the more
difficult. RSA uses factors of around 150 digits, making it not only impossible
for manual calculation but also making sure that the RSA encryption cannot be
cracked within a feasible amount of time.
In case of the encryption process, as RSA is a block encryption algorithm, the
entire data is broken into blocks and each block is treated as a sequence of
bits, with the number of digits being just a little less than N. Each block is
considered as a single digit, and multiplied ‘e’ number of times by itself, [In
the case of PGP, e is normally 17]. The result thus obtained, is divided by N
and the remainder obtained is the final encrypted message.
In case of the decryption process, the recipient, makes use of another special
number; ‘k’ where (ke-1) is divisible by (p-1)(q-1). The value k is chosen such
that multiplying the encrypted message k times by itself and then dividing by N,
gives the original message as the remainder. So basically to find out k, p and q
should be known.
e and N constitute the public key which can be freely distributed, while k forms
the private key, which should be kept a secret.
Note: In this case, e and k and symmetric.
To understand the working of the RSA algorithm, study the following Perl program
which implements it.
#!/usr/local/bin/perl -s-- #export-a-crypto-system sig, RSA in 4 lines PERL:
#
# -d (decrypt)
# or -e (encrypt)
#
# $k is exponent, $n is modulus; $k and $n in hex
#
# use of -s was contributed by Jeff Friedl, a cool perl hacker
#
# the $e-$d (grok that? awesome hack by Jeff also) checks for -d or -e:
#
# when perl -s sets $x for -x so that means $d is set for -d, $e for -e
# if they are both set 1-1 = 0 so it fails if neither are set it fails
# and if either one is set we're ok! This is to get around using | ,
# as | has higher precedence than & things group wrongly.
#
$e-$d&(($k,$n)=@ARGV)==2||die"$0 -d|-e key mod
#
# $v will be the digits of output per block, $w the digits of input per block.
# If encrypting need to reduce $w so input is guaranteed to be less than
# modulus; for decrypting reduce $v to match.
#
# blocks are based on modulus size in hex digits rounded up to nearest even
# length (~1&1+length$n) so that things will unpack properly
#
$v=$w=1+length$n&~1;
$v-=$d*2:$w-=$e*2;
#
# Make $_ be the exponent $k as a binary bit string
#
# Add a leading 0 to make length of $k be even so that it will fill
# Bytes when packed as 2 digits per byte
#
$_=unpack('B*',pack('H*',1&length$k?"0$k":$k));
#
# strip leading 0's from $_
#
s/^0+//;
#
# Turn every 0 into "d*ln%", every 1 into "d*ln%lm*ln%". These are dc codes
# which construct an exponentiation algorithm for that exponent.
# "d*ln%" is duplicate, square, load n, modulus; e.g. square the number
# on the stack, mod n. "d*ln%lm*ln%" does this then, load m, multiply,
# load n, modulus; e.g. then multiply by m mod n. This is the square and
# multiply algorithm for modular exponentiation.
#
# (Kudos to Hal for shortened this one by 4 chars)
#
s/1/0lM*ln%/g;
s/0/d*ln%/g;
#
# Encryption/decryption loop. Read $w/2 bytes of data to $m.
#
while(read(STDIN,$m,$w/2)){
#
# Turn data into equivalent hex digits in $m
#
$m=unpack("H$w",$m);
#
# Run dc: 16 bit radix for input and output; $m into dc register "M";
# $n into dc register "n"; execute $_, the exponentiation program above.
# "\U...\E" forces upper case on the hex digits as dc requires.
# Put the result in $e.
#
$a=`echo 16oOi\U$m SM$n\Esn1$_ p|dc`;
#
# Pad the result with leading 0's to $v digits, pack to raw data and output.
#
print pack("H$v",'0'x($v+1-length$a).$a);
}
Blowfish
Blowfish is yet another popular encryption algorithm which is based on:
The following C program demonstrates the implementation of the Blowfish
encryption algorithm:
/*********************blowfish.h********************/
/* $Id: blowfish.h,v 1.3 1995/01/23 12:38:02 pr Exp pr $*/
#define MAXKEYBYTES 56 /* 448 bits */
#define bf_N 16
#define noErr 0
#define DATAERROR -1
#define KEYBYTES 8
#define subkeyfilename "Blowfish.dat"
#define UWORD_32bits unsigned long
#define UWORD_16bits unsigned short
#define UBYTE_08bits unsigned char
/* choose a byte order for your hardware */
/* ABCD - big endian - motorola */
#ifdef ORDER_ABCD
union aword {
UWORD_32bits word;
UBYTE_08bits byte [4];
struct {
unsigned int byte0:8;
unsigned int byte1:8;
unsigned int byte2:8;
unsigned int byte3:8;
} w;
};
#endif /* ORDER_ABCD */
/* DCBA - little endian - intel */
#ifdef ORDER_DCBA
union aword {
UWORD_32bits word;
UBYTE_08bits byte [4];
struct {
unsigned int byte3:8;
unsigned int byte2:8;
unsigned int byte1:8;
unsigned int byte0:8;
} w;
};
#endif /* ORDER_DCBA */
/* BADC - vax */
#ifdef ORDER_BADC
union aword {
UWORD_32bits word;
UBYTE_08bits byte [4];
struct {
unsigned int byte1:8;
unsigned int byte0:8;
unsigned int byte3:8;
unsigned int byte2:8;
} w;
};
#endif /* ORDER_BADC */
short opensubkeyfile(void);
unsigned long F(unsigned long x);
void Blowfish_encipher(unsigned long *xl, unsigned long *xr);
void Blowfish_decipher(unsigned long *xl, unsigned long *xr);
short InitializeBlowfish(unsigned char key[], short keybytes);
/*********************blowfish.c*********************/
/* TODO: test with zero length key */
/* TODO: test with a through z as key and plain text */
/* TODO: make this byte order independent */
#include
#ifdef MACINTOSH
#include
#endif
#include "blowfish.h"
#include "bf_tab.h" /* P-box P-array, S-box */
#define S(x,i) (bf_S[i][x.w.byte##i])
#define bf_F(x) (((S(x,0) + S(x,1)) ^ S(x,2)) + S(x,3))
#define ROUND(a,b,n) (a.word ^= bf_F(b) ^ bf_P[n])
inline
void Blowfish_encipher(UWORD_32bits *xl, UWORD_32bits *xr)
{
union aword Xl;
union aword Xr;
Xl.word = *xl;
Xr.word = *xr;
Xl.word ^= bf_P[0];
ROUND (Xr, Xl, 1); ROUND (Xl, Xr, 2);
ROUND (Xr, Xl, 3); ROUND (Xl, Xr, 4);
ROUND (Xr, Xl, 5); ROUND (Xl, Xr, 6);
ROUND (Xr, Xl, 7); ROUND (Xl, Xr, 8);
ROUND (Xr, Xl, 9); ROUND (Xl, Xr, 10);
ROUND (Xr, Xl, 11); ROUND (Xl, Xr, 12);
ROUND (Xr, Xl, 13); ROUND (Xl, Xr, 14);
ROUND (Xr, Xl, 15); ROUND (Xl, Xr, 16);
Xr.word ^= bf_P[17];
*xr = Xl.word;
*xl = Xr.word;
}
void Blowfish_decipher(UWORD_32bits *xl, UWORD_32bits *xr)
{
union aword Xl;
union aword Xr;
Xl = *xl;
Xr = *xr;
Xl.word ^= bf_P[17];
ROUND (Xr, Xl, 16); ROUND (Xl, Xr, 15);
ROUND (Xr, Xl, 14); ROUND (Xl, Xr, 13);
ROUND (Xr, Xl, 12); ROUND (Xl, Xr, 11);
ROUND (Xr, Xl, 10); ROUND (Xl, Xr, 9);
ROUND (Xr, Xl, 8); ROUND (Xl, Xr, 7);
ROUND (Xr, Xl, 6); ROUND (Xl, Xr, 5);
ROUND (Xr, Xl, 4); ROUND (Xl, Xr, 3);
ROUND (Xr, Xl, 2); ROUND (Xl, Xr, 1);
Xr.word ^= bf_P[0];
*xl = Xr.word;
*xr = Xl.word;
}
/* FIXME: Blowfish_Initialize() ??? */
short InitializeBlowfish(UBYTE_08bits key[], short keybytes)
{
short i; /* FIXME: unsigned int, char? */
short j; /* FIXME: unsigned int, char? */
UWORD_32bits data;
UWORD_32bits datal;
UWORD_32bits datar;
union aword temp;
/* fprintf (stderr, "0x%x 0x%x ", bf_P[0], bf_P[1]); /* DEBUG */
/* fprintf (stderr, "%d %d\n", bf_P[0], bf_P[1]); /* DEBUG */
j = 0;
for (i = 0; i < bf_N + 2; ++i) {
temp.word = 0;
temp.w.byte0 = key[j];
temp.w.byte1 = key[(j+1)%keybytes];
temp.w.byte2 = key[(j+2)%keybytes];
temp.w.byte3 = key[(j+3)%keybytes];
data = temp.word;
bf_P[i] = bf_P[i] ^ data;
j = (j + 4) % keybytes;
}
datal = 0x00000000;
datar = 0x00000000;
for (i = 0; i < bf_N + 2; i += 2) {
Blowfish_encipher(&datal, &datar);
bf_P[i] = datal;
bf_P[i + 1] = datar;
}
for (i = 0; i < 4; ++i) {
for (j = 0; j < 256; j += 2) {
Blowfish_encipher(&datal, &datar);
bf_S[i][j] = datal;
bf_S[i][j + 1] = datar;
}
}
return 0;
}
=============== bf_tab.h ==============
/* bf_tab.h: Blowfish P-box and S-box tables */
static UWORD_32bits bf_P[bf_N + 2] = {
0x243f6a88, 0x85a308d3, 0x13198a2e, 0x03707344,
0xa4093822, 0x299f31d0, 0x082efa98, 0xec4e6c89,
0x452821e6, 0x38d01377, 0xbe5466cf, 0x34e90c6c,
0xc0ac29b7, 0xc97c50dd, 0x3f84d5b5, 0xb5470917,
0x9216d5d9, 0x8979fb1b,
};
static UWORD_32bits bf_S[4][256] = {
0xd1310ba6, 0x98dfb5ac, 0x2ffd72db, 0xd01adfb7,
0xb8e1afed, 0x6a267e96, 0xba7c9045, 0xf12c7f99,
0x24a19947, 0xb3916cf7, 0x0801f2e2, 0x858efc16,
0x636920d8, 0x71574e69, 0xa458fea3, 0xf4933d7e,
0x0d95748f, 0x728eb658, 0x718bcd58, 0x82154aee,
0x7b54a41d, 0xc25a59b5, 0x9c30d539, 0x2af26013,
0xc5d1b023, 0x286085f0, 0xca417918, 0xb8db38ef,
0x8e79dcb0, 0x603a180e, 0x6c9e0e8b, 0xb01e8a3e,
0xd71577c1, 0xbd314b27, 0x78af2fda, 0x55605c60,
0xe65525f3, 0xaa55ab94, 0x57489862, 0x63e81440,
0x55ca396a, 0x2aab10b6, 0xb4cc5c34, 0x1141e8ce,
0xa15486af, 0x7c72e993, 0xb3ee1411, 0x636fbc2a,
0x2ba9c55d, 0x741831f6, 0xce5c3e16, 0x9b87931e,
0xafd6ba33, 0x6c24cf5c, 0x7a325381, 0x28958677,
0x3b8f4898, 0x6b4bb9af, 0xc4bfe81b, 0x66282193,
0x61d809cc, 0xfb21a991, 0x487cac60, 0x5dec8032,
0xef845d5d, 0xe98575b1, 0xdc262302, 0xeb651b88,
0x23893e81, 0xd396acc5, 0x0f6d6ff3, 0x83f44239,
0x2e0b4482, 0xa4842004, 0x69c8f04a, 0x9e1f9b5e,
0x21c66842, 0xf6e96c9a, 0x670c9c61, 0xabd388f0,
0x6a51a0d2, 0xd8542f68, 0x960fa728, 0xab5133a3,
0x6eef0b6c, 0x137a3be4, 0xba3bf050, 0x7efb2a98,
0xa1f1651d, 0x39af0176, 0x66ca593e, 0x82430e88,
0x8cee8619, 0x456f9fb4, 0x7d84a5c3, 0x3b8b5ebe,
0xe06f75d8, 0x85c12073, 0x401a449f, 0x56c16aa6,
0x4ed3aa62, 0x363f7706, 0x1bfedf72, 0x429b023d,
0x37d0d724, 0xd00a1248, 0xdb0fead3, 0x49f1c09b,
0x075372c9, 0x80991b7b, 0x25d479d8, 0xf6e8def7,
0xe3fe501a, 0xb6794c3b, 0x976ce0bd, 0x04c006ba,
0xc1a94fb6, 0x409f60c4, 0x5e5c9ec2, 0x196a2463,
0x68fb6faf, 0x3e6c53b5, 0x1339b2eb, 0x3b52ec6f,
0x6dfc511f, 0x9b30952c, 0xcc814544, 0xaf5ebd09,
0xbee3d004, 0xde334afd, 0x660f2807, 0x192e4bb3,
0xc0cba857, 0x45c8740f, 0xd20b5f39, 0xb9d3fbdb,
0x5579c0bd, 0x1a60320a, 0xd6a100c6, 0x402c7279,
0x679f25fe, 0xfb1fa3cc, 0x8ea5e9f8, 0xdb3222f8,
0x3c7516df, 0xfd616b15, 0x2f501ec8, 0xad0552ab,
0x323db5fa, 0xfd238760, 0x53317b48, 0x3e00df82,
0x9e5c57bb, 0xca6f8ca0, 0x1a87562e, 0xdf1769db,
0xd542a8f6, 0x287effc3, 0xac6732c6, 0x8c4f5573,
0x695b27b0, 0xbbca58c8, 0xe1ffa35d, 0xb8f011a0,
0x10fa3d98, 0xfd2183b8, 0x4afcb56c, 0x2dd1d35b,
0x9a53e479, 0xb6f84565, 0xd28e49bc, 0x4bfb9790,
0xe1ddf2da, 0xa4cb7e33, 0x62fb1341, 0xcee4c6e8,
0xef20cada, 0x36774c01, 0xd07e9efe, 0x2bf11fb4,
0x95dbda4d, 0xae909198, 0xeaad8e71, 0x6b93d5a0,
0xd08ed1d0, 0xafc725e0, 0x8e3c5b2f, 0x8e7594b7,
0x8ff6e2fb, 0xf2122b64, 0x8888b812, 0x900df01c,
0x4fad5ea0, 0x688fc31c, 0xd1cff191, 0xb3a8c1ad,
0x2f2f2218, 0xbe0e1777, 0xea752dfe, 0x8b021fa1,
0xe5a0cc0f, 0xb56f74e8, 0x18acf3d6, 0xce89e299,
0xb4a84fe0, 0xfd13e0b7, 0x7cc43b81, 0xd2ada8d9,
0x165fa266, 0x80957705, 0x93cc7314, 0x211a1477,
0xe6ad2065, 0x77b5fa86, 0xc75442f5, 0xfb9d35cf,
0xebcdaf0c, 0x7b3e89a0, 0xd6411bd3, 0xae1e7e49,
0x00250e2d, 0x2071b35e, 0x226800bb, 0x57b8e0af,
0x2464369b, 0xf009b91e, 0x5563911d, 0x59dfa6aa,
0x78c14389, 0xd95a537f, 0x207d5ba2, 0x02e5b9c5,
0x83260376, 0x6295cfa9, 0x11c81968, 0x4e734a41,
0xb3472dca, 0x7b14a94a, 0x1b510052, 0x9a532915,
0xd60f573f, 0xbc9bc6e4, 0x2b60a476, 0x81e67400,
0x08ba6fb5, 0x571be91f, 0xf296ec6b, 0x2a0dd915,
0xb6636521, 0xe7b9f9b6, 0xff34052e, 0xc5855664,
0x53b02d5d, 0xa99f8fa1, 0x08ba4799, 0x6e85076a,
0x4b7a70e9, 0xb5b32944, 0xdb75092e, 0xc4192623,
0xad6ea6b0, 0x49a7df7d, 0x9cee60b8, 0x8fedb266,
0xecaa8c71, 0x699a17ff, 0x5664526c, 0xc2b19ee1,
0x193602a5, 0x75094c29, 0xa0591340, 0xe4183a3e,
0x3f54989a, 0x5b429d65, 0x6b8fe4d6, 0x99f73fd6,
0xa1d29c07, 0xefe830f5, 0x4d2d38e6, 0xf0255dc1,
0x4cdd2086, 0x8470eb26, 0x6382e9c6, 0x021ecc5e,
0x09686b3f, 0x3ebaefc9, 0x3c971814, 0x6b6a70a1,
0x687f3584, 0x52a0e286, 0xb79c5305, 0xaa500737,
0x3e07841c, 0x7fdeae5c, 0x8e7d44ec, 0x5716f2b8,
0xb03ada37, 0xf0500c0d, 0xf01c1f04, 0x0200b3ff,
0xae0cf51a, 0x3cb574b2, 0x25837a58, 0xdc0921bd,
0xd19113f9, 0x7ca92ff6, 0x94324773, 0x22f54701,
0x3ae5e581, 0x37c2dadc, 0xc8b57634, 0x9af3dda7,
0xa9446146, 0x0fd0030e, 0xecc8c73e, 0xa4751e41,
0xe238cd99, 0x3bea0e2f, 0x3280bba1, 0x183eb331,
0x4e548b38, 0x4f6db908, 0x6f420d03, 0xf60a04bf,
0x2cb81290, 0x24977c79, 0x5679b072, 0xbcaf89af,
0xde9a771f, 0xd9930810, 0xb38bae12, 0xdccf3f2e,
0x5512721f, 0x2e6b7124, 0x501adde6, 0x9f84cd87,
0x7a584718, 0x7408da17, 0xbc9f9abc, 0xe94b7d8c,
0xec7aec3a, 0xdb851dfa, 0x63094366, 0xc464c3d2,
0xef1c1847, 0x3215d908, 0xdd433b37, 0x24c2ba16,
0x12a14d43, 0x2a65c451, 0x50940002, 0x133ae4dd,
0x71dff89e, 0x10314e55, 0x81ac77d6, 0x5f11199b,
0x043556f1, 0xd7a3c76b, 0x3c11183b, 0x5924a509,
0xf28fe6ed, 0x97f1fbfa, 0x9ebabf2c, 0x1e153c6e,
0x86e34570, 0xeae96fb1, 0x860e5e0a, 0x5a3e2ab3,
0x771fe71c, 0x4e3d06fa, 0x2965dcb9, 0x99e71d0f,
0x803e89d6, 0x5266c825, 0x2e4cc978, 0x9c10b36a,
0xc6150eba, 0x94e2ea78, 0xa5fc3c53, 0x1e0a2df4,
0xf2f74ea7, 0x361d2b3d, 0x1939260f, 0x19c27960,
0x5223a708, 0xf71312b6, 0xebadfe6e, 0xeac31f66,
0xe3bc4595, 0xa67bc883, 0xb17f37d1, 0x018cff28,
0xc332ddef, 0xbe6c5aa5, 0x65582185, 0x68ab9802,
0xeecea50f, 0xdb2f953b, 0x2aef7dad, 0x5b6e2f84,
0x1521b628, 0x29076170, 0xecdd4775, 0x619f1510,
0x13cca830, 0xeb61bd96, 0x0334fe1e, 0xaa0363cf,
0xb5735c90, 0x4c70a239, 0xd59e9e0b, 0xcbaade14,
0xeecc86bc, 0x60622ca7, 0x9cab5cab, 0xb2f3846e,
0x648b1eaf, 0x19bdf0ca, 0xa02369b9, 0x655abb50,
0x40685a32, 0x3c2ab4b3, 0x319ee9d5, 0xc021b8f7,
0x9b540b19, 0x875fa099, 0x95f7997e, 0x623d7da8,
0xf837889a, 0x97e32d77, 0x11ed935f, 0x16681281,
0x0e358829, 0xc7e61fd6, 0x96dedfa1, 0x7858ba99,
0x57f584a5, 0x1b227263, 0x9b83c3ff, 0x1ac24696,
0xcdb30aeb, 0x532e3054, 0x8fd948e4, 0x6dbc3128,
0x58ebf2ef, 0x34c6ffea, 0xfe28ed61, 0xee7c3c73,
0x5d4a14d9, 0xe864b7e3, 0x42105d14, 0x203e13e0,
0x45eee2b6, 0xa3aaabea, 0xdb6c4f15, 0xfacb4fd0,
0xc742f442, 0xef6abbb5, 0x654f3b1d, 0x41cd2105,
0xd81e799e, 0x86854dc7, 0xe44b476a, 0x3d816250,
0xcf62a1f2, 0x5b8d2646, 0xfc8883a0, 0xc1c7b6a3,
0x7f1524c3, 0x69cb7492, 0x47848a0b, 0x5692b285,
0x095bbf00, 0xad19489d, 0x1462b174, 0x23820e00,
0x58428d2a, 0x0c55f5ea, 0x1dadf43e, 0x233f7061,
0x3372f092, 0x8d937e41, 0xd65fecf1, 0x6c223bdb,
0x7cde3759, 0xcbee7460, 0x4085f2a7, 0xce77326e,
0xa6078084, 0x19f8509e, 0xe8efd855, 0x61d99735,
0xa969a7aa, 0xc50c06c2, 0x5a04abfc, 0x800bcadc,
0x9e447a2e, 0xc3453484, 0xfdd56705, 0x0e1e9ec9,
0xdb73dbd3, 0x105588cd, 0x675fda79, 0xe3674340,
0xc5c43465, 0x713e38d8, 0x3d28f89e, 0xf16dff20,
0x153e21e7, 0x8fb03d4a, 0xe6e39f2b, 0xdb83adf7,
0xe93d5a68, 0x948140f7, 0xf64c261c, 0x94692934,
0x411520f7, 0x7602d4f7, 0xbcf46b2e, 0xd4a20068,
0xd4082471, 0x3320f46a, 0x43b7d4b7, 0x500061af,
0x1e39f62e, 0x97244546, 0x14214f74, 0xbf8b8840,
0x4d95fc1d, 0x96b591af, 0x70f4ddd3, 0x66a02f45,
0xbfbc09ec, 0x03bd9785, 0x7fac6dd0, 0x31cb8504,
0x96eb27b3, 0x55fd3941, 0xda2547e6, 0xabca0a9a,
0x28507825, 0x530429f4, 0x0a2c86da, 0xe9b66dfb,
0x68dc1462, 0xd7486900, 0x680ec0a4, 0x27a18dee,
0x4f3ffea2, 0xe887ad8c, 0xb58ce006, 0x7af4d6b6,
0xaace1e7c, 0xd3375fec, 0xce78a399, 0x406b2a42,
0x20fe9e35, 0xd9f385b9, 0xee39d7ab, 0x3b124e8b,
0x1dc9faf7, 0x4b6d1856, 0x26a36631, 0xeae397b2,
0x3a6efa74, 0xdd5b4332, 0x6841e7f7, 0xca7820fb,
0xfb0af54e, 0xd8feb397, 0x454056ac, 0xba489527,
0x55533a3a, 0x20838d87, 0xfe6ba9b7, 0xd096954b,
0x55a867bc, 0xa1159a58, 0xcca92963, 0x99e1db33,
0xa62a4a56, 0x3f3125f9, 0x5ef47e1c, 0x9029317c,
0xfdf8e802, 0x04272f70, 0x80bb155c, 0x05282ce3,
0x95c11548, 0xe4c66d22, 0x48c1133f, 0xc70f86dc,
0x07f9c9ee, 0x41041f0f, 0x404779a4, 0x5d886e17,
0x325f51eb, 0xd59bc0d1, 0xf2bcc18f, 0x41113564,
0x257b7834, 0x602a9c60, 0xdff8e8a3, 0x1f636c1b,
0x0e12b4c2, 0x02e1329e, 0xaf664fd1, 0xcad18115,
0x6b2395e0, 0x333e92e1, 0x3b240b62, 0xeebeb922,
0x85b2a20e, 0xe6ba0d99, 0xde720c8c, 0x2da2f728,
0xd0127845, 0x95b794fd, 0x647d0862, 0xe7ccf5f0,
0x5449a36f, 0x877d48fa, 0xc39dfd27, 0xf33e8d1e,
0x0a476341, 0x992eff74, 0x3a6f6eab, 0xf4f8fd37,
0xa812dc60, 0xa1ebddf8, 0x991be14c, 0xdb6e6b0d,
0xc67b5510, 0x6d672c37, 0x2765d43b, 0xdcd0e804,
0xf1290dc7, 0xcc00ffa3, 0xb5390f92, 0x690fed0b,
0x667b9ffb, 0xcedb7d9c, 0xa091cf0b, 0xd9155ea3,
0xbb132f88, 0x515bad24, 0x7b9479bf, 0x763bd6eb,
0x37392eb3, 0xcc115979, 0x8026e297, 0xf42e312d,
0x6842ada7, 0xc66a2b3b, 0x12754ccc, 0x782ef11c,
0x6a124237, 0xb79251e7, 0x06a1bbe6, 0x4bfb6350,
0x1a6b1018, 0x11caedfa, 0x3d25bdd8, 0xe2e1c3c9,
0x44421659, 0x0a121386, 0xd90cec6e, 0xd5abea2a,
0x64af674e, 0xda86a85f, 0xbebfe988, 0x64e4c3fe,
0x9dbc8057, 0xf0f7c086, 0x60787bf8, 0x6003604d,
0xd1fd8346, 0xf6381fb0, 0x7745ae04, 0xd736fccc,
0x83426b33, 0xf01eab71, 0xb0804187, 0x3c005e5f,
0x77a057be, 0xbde8ae24, 0x55464299, 0xbf582e61,
0x4e58f48f, 0xf2ddfda2, 0xf474ef38, 0x8789bdc2,
0x5366f9c3, 0xc8b38e74, 0xb475f255, 0x46fcd9b9,
0x7aeb2661, 0x8b1ddf84, 0x846a0e79, 0x915f95e2,
0x466e598e, 0x20b45770, 0x8cd55591, 0xc902de4c,
0xb90bace1, 0xbb8205d0, 0x11a86248, 0x7574a99e,
0xb77f19b6, 0xe0a9dc09, 0x662d09a1, 0xc4324633,
0xe85a1f02, 0x09f0be8c, 0x4a99a025, 0x1d6efe10,
0x1ab93d1d, 0x0ba5a4df, 0xa186f20f, 0x2868f169,
0xdcb7da83, 0x573906fe, 0xa1e2ce9b, 0x4fcd7f52,
0x50115e01, 0xa70683fa, 0xa002b5c4, 0x0de6d027,
0x9af88c27, 0x773f8641, 0xc3604c06, 0x61a806b5,
0xf0177a28, 0xc0f586e0, 0x006058aa, 0x30dc7d62,
0x11e69ed7, 0x2338ea63, 0x53c2dd94, 0xc2c21634,
0xbbcbee56, 0x90bcb6de, 0xebfc7da1, 0xce591d76,
0x6f05e409, 0x4b7c0188, 0x39720a3d, 0x7c927c24,
0x86e3725f, 0x724d9db9, 0x1ac15bb4, 0xd39eb8fc,
0xed545578, 0x08fca5b5, 0xd83d7cd3, 0x4dad0fc4,
0x1e50ef5e, 0xb161e6f8, 0xa28514d9, 0x6c51133c,
0x6fd5c7e7, 0x56e14ec4, 0x362abfce, 0xddc6c837,
0xd79a3234, 0x92638212, 0x670efa8e, 0x406000e0,
0x3a39ce37, 0xd3faf5cf, 0xabc27737, 0x5ac52d1b,
0x5cb0679e, 0x4fa33742, 0xd3822740, 0x99bc9bbe,
0xd5118e9d, 0xbf0f7315, 0xd62d1c7e, 0xc700c47b,
0xb78c1b6b, 0x21a19045, 0xb26eb1be, 0x6a366eb4,
0x5748ab2f, 0xbc946e79, 0xc6a376d2, 0x6549c2c8,
0x530ff8ee, 0x468dde7d, 0xd5730a1d, 0x4cd04dc6,
0x2939bbdb, 0xa9ba4650, 0xac9526e8, 0xbe5ee304,
0xa1fad5f0, 0x6a2d519a, 0x63ef8ce2, 0x9a86ee22,
0xc089c2b8, 0x43242ef6, 0xa51e03aa, 0x9cf2d0a4,
0x83c061ba, 0x9be96a4d, 0x8fe51550, 0xba645bd6,
0x2826a2f9, 0xa73a3ae1, 0x4ba99586, 0xef5562e9,
0xc72fefd3, 0xf752f7da, 0x3f046f69, 0x77fa0a59,
0x80e4a915, 0x87b08601, 0x9b09e6ad, 0x3b3ee593,
0xe990fd5a, 0x9e34d797, 0x2cf0b7d9, 0x022b8b51,
0x96d5ac3a, 0x017da67d, 0xd1cf3ed6, 0x7c7d2d28,
0x1f9f25cf, 0xadf2b89b, 0x5ad6b472, 0x5a88f54c,
0xe029ac71, 0xe019a5e6, 0x47b0acfd, 0xed93fa9b,
0xe8d3c48d, 0x283b57cc, 0xf8d56629, 0x79132e28,
0x785f0191, 0xed756055, 0xf7960e44, 0xe3d35e8c,
0x15056dd4, 0x88f46dba, 0x03a16125, 0x0564f0bd,
0xc3eb9e15, 0x3c9057a2, 0x97271aec, 0xa93a072a,
0x1b3f6d9b, 0x1e6321f5, 0xf59c66fb, 0x26dcf319,
0x7533d928, 0xb155fdf5, 0x03563482, 0x8aba3cbb,
0x28517711, 0xc20ad9f8, 0xabcc5167, 0xccad925f,
0x4de81751, 0x3830dc8e, 0x379d5862, 0x9320f991,
0xea7a90c2, 0xfb3e7bce, 0x5121ce64, 0x774fbe32,
0xa8b6e37e, 0xc3293d46, 0x48de5369, 0x6413e680,
0xa2ae0810, 0xdd6db224, 0x69852dfd, 0x09072166,
0xb39a460a, 0x6445c0dd, 0x586cdecf, 0x1c20c8ae,
0x5bbef7dd, 0x1b588d40, 0xccd2017f, 0x6bb4e3bb,
0xdda26a7e, 0x3a59ff45, 0x3e350a44, 0xbcb4cdd5,
0x72eacea8, 0xfa6484bb, 0x8d6612ae, 0xbf3c6f47,
0xd29be463, 0x542f5d9e, 0xaec2771b, 0xf64e6370,
0x740e0d8d, 0xe75b1357, 0xf8721671, 0xaf537d5d,
0x4040cb08, 0x4eb4e2cc, 0x34d2466a, 0x0115af84,
0xe1b00428, 0x95983a1d, 0x06b89fb4, 0xce6ea048,
0x6f3f3b82, 0x3520ab82, 0x011a1d4b, 0x277227f8,
0x611560b1, 0xe7933fdc, 0xbb3a792b, 0x344525bd,
0xa08839e1, 0x51ce794b, 0x2f32c9b7, 0xa01fbac9,
0xe01cc87e, 0xbcc7d1f6, 0xcf0111c3, 0xa1e8aac7,
0x1a908749, 0xd44fbd9a, 0xd0dadecb, 0xd50ada38,
0x0339c32a, 0xc6913667, 0x8df9317c, 0xe0b12b4f,
0xf79e59b7, 0x43f5bb3a, 0xf2d519ff, 0x27d9459c,
0xbf97222c, 0x15e6fc2a, 0x0f91fc71, 0x9b941525,
0xfae59361, 0xceb69ceb, 0xc2a86459, 0x12baa8d1,
0xb6c1075e, 0xe3056a0c, 0x10d25065, 0xcb03a442,
0xe0ec6e0e, 0x1698db3b, 0x4c98a0be, 0x3278e964,
0x9f1f9532, 0xe0d392df, 0xd3a0342b, 0x8971f21e,
0x1b0a7441, 0x4ba3348c, 0xc5be7120, 0xc37632d8,
0xdf359f8d, 0x9b992f2e, 0xe60b6f47, 0x0fe3f11d,
0xe54cda54, 0x1edad891, 0xce6279cf, 0xcd3e7e6f,
0x1618b166, 0xfd2c1d05, 0x848fd2c5, 0xf6fb2299,
0xf523f357, 0xa6327623, 0x93a83531, 0x56cccd02,
0xacf08162, 0x5a75ebb5, 0x6e163697, 0x88d273cc,
0xde966292, 0x81b949d0, 0x4c50901b, 0x71c65614,
0xe6c6c7bd, 0x327a140a, 0x45e1d006, 0xc3f27b9a,
0xc9aa53fd, 0x62a80f00, 0xbb25bfe2, 0x35bdd2f6,
0x71126905, 0xb2040222, 0xb6cbcf7c, 0xcd769c2b,
0x53113ec0, 0x1640e3d3, 0x38abbd60, 0x2547adf0,
0xba38209c, 0xf746ce76, 0x77afa1c5, 0x20756060,
0x85cbfe4e, 0x8ae88dd8, 0x7aaaf9b0, 0x4cf9aa7e,
0x1948c25c, 0x02fb8a8c, 0x01c36ae4, 0xd6ebe1f9,
0x90d4f869, 0xa65cdea0, 0x3f09252d, 0xc208e69f,
0xb74e6132, 0xce77e25b, 0x578fdfe3, 0x3ac372e6,
};
************** TEST VECTORS ***********************************
This is a test vector.
Plaintext is "BLOWFISH".
The key is "abcdefghijklmnopqrstuvwxyz".
#define PL 0x424c4f57l
#define PR 0x46495348l
#define CL 0x324ed0fel
#define CR 0xf413a203l
static char keey[]="abcdefghijklmnopqrstuvwxyz";
This is another test vector.
The key is "Who is John Galt?"
#define PL 0xfedcba98l
#define PR 0x76543210l
#define CL 0xcc91732bl
#define CR 0x8022f684l
--------------------------------------------------------
Monday, March 20, 2006
Auto-fill Your PHP Forms
LINUX NEWS FROM O'REILLY NETWORK
----------------------------------------
The Latest from http://www.linuxdevcenter.com and http://ONLamp.com
=================================================================
Your Skills Are in Demand. More Skills. More Demand.
Choose from 45 webcasts organized by track--JSP, PHP, and ColdFusion. Each
track has been designed to take advantage of your existing Web development
skills and includes insightful content contributed by Dr. Dobb's and
O'Reilly.
http://www.oreilly.com/go/learn2asp_lnx
=================================================================
Hello, readers. You're skimming the almost always useless first paragraph
of the Linux newsletter, where your editor apologizes, every week, for its
name. Here's what's new in the world of ONLamp.com this week.
PHP programmers, do you despair of all of the typing? You know validating
user input is important, but keeping track of input while saying "Uh, we
really do need your credit card number to sell you widgets" can be
tedious... by hand. You don't have to do things the hard way, though.
Gavin Andresen shows how to make PHP forms that fill themselves in with
all of the value-adding and error-checking code--once you create some
nicely formatted HTML. Go, simplicity.
<http://www.onlamp.com/pub/a/php/2006/03/16/autofill-forms.html>
In weblogs this week:
brian d foy invites everyone to Powell's Technical Books in Portland,
Oregon this Saturday to meet several Perl authors:
<http://www.oreillynet.com/onlamp/blog/2006/03/oreilly_perl_authors_at_powell_1.html>
Jonathan Wellons recommends the cessation of not backing up, while the
budget is low:
<http://www.oreillynet.com/onlamp/blog/2006/03/in_a_budget_shortfall_we_are_f.html>
Dave Cross recommends Greg McCarroll's prototype 'Search What I Mean'
program:
<http://www.oreillynet.com/onlamp/blog/2006/03/swim.html>
Jeremy Jones wonders if mapping URLs to objects and methods is really as
simple, elegant, and pragmatic as some claim:
<http://www.oreillynet.com/onlamp/blog/2006/03/oo_pragmatic_design_url_mappin.html>
Your editor reviews the CPAN distribution Jifty::DBI:
<http://www.oreillynet.com/onlamp/blog/2006/03/cpan_module_review_jiftydbi.html>
Gregory Brown points to Higher Order Ruby:
<http://www.oreillynet.com/ruby/blog/2006/03/higher_order_ruby.html>
Anton Chuvakin takes a survey about system logging:
<http://www.oreillynet.com/sysadmin/blog/2006/03/a_poll_on_system_log_storage_a.html>
Tom Adelstein compares Ubuntu GNU/Linux, Mac OS X, and Windows XP:
<http://www.oreillynet.com/sysadmin/blog/2006/03/ubuntu_macintosh_and_windows_x.html>
That's all for this week. Come back next week to learn security tips for
Linux servers and to think about how the Cell processor might affect
Apple, IBM, and Linux.
Until next week,
- c
chromatic
chromatic@oreilly.com
Technical Editor
O'Reilly Network
================================================================
O'Reilly Learning Special Offer: Save 25% Now
<http://oreillylearning.com/promotion/>
"I would never, and I mean never, have imagined that a computer learning
course would actually be fun too."
-Kerry Beck, PR Specialist
O'Reilly Learning has an exciting year in store! You're invited to join
thousands of satisfied students worldwide who have discovered just how
much fun it can be to gain skills and experience in programming or system
administration with our unique system. And until March 31st, enjoy 25% off
tuition for our online University of Illinois Certificate courses.
Enroll today and make your daily accomplishment:
<https://oreillylearning.com/enroll/>
================================================================
ONLamp.com and Linux Devcenter Top Five Articles Last Week
1. Ajax on Rails
XMLHttpRequest and Ruby on Rails are two hot topics in web development. As
you ought to expect by now, they work really well together. Curt Hibbs
explains the minimal Ajax you need to know and the minimal Ruby you need
to write to Ajax-ify your Rails applications.
<http://www.onlamp.com/pub/a/onlamp/2005/06/09/rails_ajax.html>
***
2. Fine-Tuning Kubuntu
Ubuntu is a well-maintained, well-organized Linux distribution. Kubuntu
adds the popular and powerful KDE desktop environment. As nice as Kubuntu
is, the default installation doesn't fit every user. Carla Schroder shows
how to get help, get access to more software packages, set up a firewall,
and review and get rid of unnecessary services.
<http://www.linuxdevcenter.com/pub/a/linux/2006/03/09/tuning-kubuntu.html>
***
3. PHP Form Handling
If your PHP program is a dynamic web page (and it probably is) and your
PHP program is dealing with user input (and it probably is), then you need
to work with HTML forms. David Sklar, author of Learning PHP 5, offers
tips for simplifying, securing, and organizing your form-handling PHP
code.
<http://www.onlamp.com/pub/a/php/2004/08/26/PHPformhandling.html>
***
4. Virtualization with FreeBSD Jails
Consolidating several small machines into one powerful one has advantages
in administration and resource usage. It also has implications for
security and encapsulation. FreeBSD's jails feature allows you to host
multiple separate services on a single machine while keeping them securely
separate. Dan Langille shows how.
<http://www.onlamp.com/pub/a/bsd/2006/03/09/jails-virtualization.html>
***
5. Autofilled PHP Forms
PHP makes handling interactive web pages easy--but when you have large
forms to fill out, errors to handle, and lots of data to pass back and
forth, you can make your life easier by making PHP fill in all the form
values for you. Gavin Andresen shows how to make forms autopopulate from
PHP arrays.
<http://www.onlamp.com/pub/a/php/2006/03/16/autofill-forms.html>
***
=================================================================
Free on Safari
Quicken 2006 Missing Manual: Setting Up Your Quicken Environment
http://safari.oreilly.com/0596101279/quickenfstmm-CHP-1
After you install Quicken, you're merely a few steps away from
experiencing the joys of electronic personal finance. Chapter 1 of Quicken
2006 for Starters: The Missing Manual helps you come out of the gate
running by guiding you through launching and setting up Quicken as well as
the intricacies of Quicken preferences.
If you like this chapter, read the whole book (and up to nine others) on
Safari with a free trial subscription:
http://oreillynet.com/safari-trial/
=================================================================
------------------------------------------------------------------
Interested in sponsoring the Linux DevCenter newsletter? Please
email us at advertising@oreilly.com for rate and availability
information. Thank you!
-----------------------------------------------------------------
To change your newsletter subscription options, please visit
http://www.oreillynet.com/cs/nl/home
For assistance, email help@oreillynet.com
O'Reilly Media, Inc.
1005 Gravenstein Highway North
Sebastopol, CA 95472
(707) 827-7000
-----------------------------------------------------------------
Friday, March 17, 2006
Introducing Module Reviews
Perl.com update
--------------------------------------
The Email for www.perl.com Subscribers
===================================================================
FREE Cross Training For Web Developers
FREE training webcasts, software, and how to's from Dr. Dobb's, O'Reilly
Media, and Microsoft. Choose from more than 40 webcasts, and see if you're
eligible to receive a FREE copy of Visual Studio Standard (NFR).
Complimentary copies of Visual Studio Standard (NFR) are limited, so act
today! http://www.oreilly.com/go/learn2asp_perl
===================================================================
Happy St. Patrick's Day, Perl hackers. Rest easily in the knowledge that
today is the day for all Irish programmers to avoid snakes (and hopefully
turn to camels instead).
* Perl News in Brief
Perl programmer and CPAN contributor Slava Bizyayev recently died
tragically and unexpectedly. use Perl has a memorial notice:
<http://use.perl.org/article.pl?sid=06/03/14/2329207&mode=nocomment>
Timothy Appnel wrote in to say:
In supporting the use of Atom syndication format in Perl, I opened a
mailing list for discussing the topic and helping others with XML::Atom
and XML::Atom::Syndication. Those interested can join the atomic-perl
mailing list via <atomic-perl-subscribe@yahoogroups.com> or
<http://groups.yahoo.com/group/atomic-perl/>.
Timothy is the author of XML::Atom::Syndication. Learn more about the new
distribution and its fresh release at:
<http://code.appnel.com/changelog/2006/03/000022.html>
YAPC::Brazil 2006 has an official date now: April 19th to 22nd. If you're
in South America, go!
<http://use.perl.org/article.pl?sid=06/03/07/0150229>
ActiveState has released a new version of ActivePerl, based on Perl 5.8.8.
According to the announcement, this version includes a Universal Binary
for the Mac OS X distribution, as well as initial support for 64-bit
Windows and Linux and Sparc Solaris:
<http://use.perl.org/article.pl?sid=06/03/14/1551240>
If you're in the Pacific Northwest, stop by Powell's Technical Books on
March 25th to meet Allison Randal, Randal Schwartz, Tom Phoenix, brian d
foy, Curtis "Ovid" Poe, and your editor for an afternoon discussion of
Perl and programming and, well, a small stack of books:
<http://www.powells.com/calendar.html#910>
* Perl Articles and Weblogs
Your editor has reviewed two CPAN distributions. The first is
XML::XPathEngine:
<http://www.oreillynet.com/onlamp/blog/2006/03/cpan_module_review_xmlxpatheng.html>
The second is KinoSearch:
<http://www.oreillynet.com/onlamp/blog/2006/03/cpan_module_review_kinosearch.html>
brian d foy announced the release of the new book "Intermediate Perl" (the
Alpaca):
<http://www.oreillynet.com/onlamp/blog/2006/03/intermediate_perl_is_out.html>
Dave Cross reports on Greg McCarroll's clever SWIM invention:
<http://www.oreillynet.com/onlamp/blog/2006/03/swim.html>
That wraps up this bi-weekly mailing. Check back again for interviews
with Patrick Michaud and Luke Palmer, as well as module reviews of
Jifty::DBI and possibly B::sub_generation.
March 25 is next Saturday,
- c
chromatic@oreilly.com
Editor, Perl.com, et cetera
===================================================================
O'Reilly Learning Special Offer: Save 25% Now
<http://oreillylearning.com/promotion/>
"I would never, and I mean never, have imagined that a computer learning
course would actually be fun too."
-Kerry Beck, PR Specialist
O'Reilly Learning has an exciting year in store! You're invited to join
thousands of satisfied students worldwide who have discovered just how
much fun it can be to gain skills and experience in programming or system
administration with our unique system. And until March 31st, enjoy 25% off
tuition for our online University of Illinois Certificate courses.
Enroll today and make your daily accomplishment:
<https://oreillylearning.com/enroll/>
===================================================================
*** Featured Articles ***
Using Ajax from Perl
The recently rediscovered Ajax technique makes the client side of web
programming much more useful and pleasant. However, it also means revising
your existing web applications to take advantage of this new power.
Dominic Mitchell shows how to use CGI::Ajax to give your Perl applications
access to this new power.
<http://www.perl.com/pub/a/2006/03/02/ajax_and_perl.html>
***
Advanced Subroutine Techniques
Subroutines seem like a basic building block of code. They're simple and
easy to understand and use, right? That's true--but there are a few
advanced techniques to make your code more maintainable and robust. Rob
Kinyon goes beyond making sense of subroutines to making subroutines work
for you.
<http://www.perl.com/pub/a/2006/02/23/advanced_subroutines.html>
***
Managing Rich Data Structures
Perl is so good at handling plain text files that it's seductively easy to
use them when you need something better. Yet sometimes using a
full-fledged database is just Too Much Work. If only Dave Baker had
written an article on using complex, persistent data structures with
MLDBM.
<http://www.perl.com/pub/a/2006/02/16/mldbm.html>
***
Debugging and Profiling mod_perl Applications
How do you use the debugger on a mod_perl application? How do you profile
an application embedded in a web server, with multiple child processes?
Don't worry. Where there's Perl, there's a way. Frank Wiles demonstrates
how to debug and profile mod_perl applications.
<http://www.perl.com/pub/a/2006/02/09/debug_mod_perl.html>
***
Test-Driving X11 GUIs
Is GUI testing as difficult as it seems? Maybe not, with the right testing
libraries. George Nistorica shows what X11::GUITest can and can't do to
make your Unix and Unix-like applications more robust.
<http://www.perl.com/pub/a/2006/02/02/x11_gui_testing.html>
***
More Advancements in Perl Programming
What's advanced Perl programming? The definition has changed over the
years. For a while it was XS and GUIs and typeglobs and OO. Now a lot of
it is using CPAN effectively. Since completing Advanced Perl Programming,
Second Edition, Simon Cozens has discovered even more ways to work more
smartly and effectively. Here's what he's learned.
<http://www.perl.com/pub/a/2006/01/26/more_advanced_perl.html>
***
===================================================================
Free on Safari
Quicken 2006 Missing Manual: Setting Up Your Quicken Environment
http://safari.oreilly.com/0596101279/quickenfstmm-CHP-1
After you install Quicken, you're merely a few steps away from
experiencing the joys of electronic personal finance. Chapter 1 of Quicken
2006 for Starters: The Missing Manual helps you come out of the gate
running by guiding you through launching and setting up Quicken as well as
the intricacies of Quicken preferences.
If you like this chapter, read the whole book (and up to nine others) on
Safari with a free trial subscription:
http://oreillynet.com/safari-trial/
===================================================================
------------------------------------------------------------------
Interested in sponsoring the Perl.com newsletter? Please email us at
advertising@oreilly.com for rate and availability information.
Thank you!
------------------------------------------------------------------
To change your newsletter subscription options, please visit
http://www.oreillynet.com/cs/nl/home
For assistance, email help@oreillynet.com
O'Reilly Media, Inc.
1005 Gravenstein Highway North
Sebastopol, CA 95472
(707) 827-7000
------------------------------------------------------------------
Thursday, March 16, 2006
From glue to Seam
O'REILLY NETWORK'S ONJava.com NEWSLETTER
--------------------------------------------------
The Independent Source for Enterprise Java
==================================================================
Go beyond AJAX with Flex.
Adobe Flex 2.0 beta is the most complete application development solution
for creating and delivering cross-platform Rich Internet Applications
within the enterprise or across the Web. Combine the richness of desktop
software with the reach of the web. Download a copy now.
http://www.oreilly.com/go/adobeflex_31606
==================================================================
Greetings...
How much should one framework know about another? You don't want to
introduce inappropriate dependencies, but you also don't want to put up
walls if you can help it. Given a choice, the preference seems to be for
keeping frameworks away from one another. In fact, this attitude is so
prevalent, I was surprised when writing my "QuickTime for Java" book that
I could pull in Swing's undo/redo API and get it to work with the utterly
unrelated and dissimilar QTJ. Thing is, there are clearly some
combinations that are meant to be, like back-end business logic and web
presentation frameworks: one doesn't get you very far without the other.
"While the [...] synergy between EJB 3.0 and JSF is appealing, it is not
yet realized within the Java Enterprise Edition (JEE) 5.0 framework. In
plain Java EE, there is still a significant amount of glue code necessary
to use both JSF and EJB 3.0 when building a web application--even more, if
you add BPM to the recipe for a great application." Want to avoid writing
all that glue yourself? Try a seam instead. In "JBoss Seam," Thomas
Heute looks at how the Seam framework provides inter-framework plumbing
and a stateful component model, to make web app development less of a
hassle.
<http://www.onjava.com/pub/a/onjava/2006/03/15/jboss-seam.html>
Call it Zeroconf, Bonjour, or even Rendezvous (if the lawyers will let
you)... whatever it is, it's probably the best-known way of providing
spontaneous networking, as epitomized by popular applications like Apple's
iTunes. But why should native applications have all the fun? Apple has
provided a Java binding to its Rendezvous implementation on Mac, Windows,
Linux, Solaris, and *BSD. In "Zero Configuration Networking: Using the
Java APIs, Part 1," Stuart Cheshire and Daniel H. Steinberg, authors of
"Zero Configuration Networking: The Definitive Guide" show you how to
register a Zeroconf service in Java.
<http://www.onjava.com/pub/a/onjava/excerpt/bonjour_ch08/index.html>
Why let idle computers waste CPU time not doing anything? In the dev2dev
article "Use JMS Clients to Utilize Free Computer Resources," Nimish Doshi
proposes distributing computing work across the network. "This article
proposes a framework for placing Java Messaging Service (JMS) clients on
these underutilized machines to offload the work normally performed on a
server. The client can listen on a request queue for a unit of work to
perform, and respond on a reply queue."
<http://dev2dev.bea.com/pub/a/2006/02/jms-distributed-work.html>
Building your own Google? It's not as crazy an idea as you might
think--running your own search engine gives you a transparency in
understanding how the search rankings work, something that can be very
important in some kinds of organizations. Plus, it lets you index sites
that aren't visible to the public internet. And rather than writing your
own, you can turn to Apache Nutch to do all the hard parts. Wrapping up
the second part of a java.net series, Tom Nutch shows how to get results
from your Nutch index in "Introduction to Nutch, Part 2: Searching."
<http://today.java.net/pub/a/today/2006/02/16/introduction-to-nutch-2.html>
Recent O'Reilly Network weblogs of interest to Java developers:
Timothy M. O'Brien - Making Sense of the Maven 2 Repository
<http://www.oreillynet.com/onjava/blog/2006/03/making_sense_of_the_maven_2_re.html>
Steve Anglin - TheServerSide Java Symposium Is Near
<http://www.oreillynet.com/onjava/blog/2006/03/theserverside_java_symposium_i.html>
Dejan Bosanac - Proper handling of database-related exceptions
<http://www.oreillynet.com/onjava/blog/2006/03/proper_handling_of_databaserel.html>
Timothy M. O'Brien - Word of the Day: Contradistinction
<http://www.oreillynet.com/onjava/blog/2006/03/word_of_the_day_contradistinct.html>
Timothy M. O'Brien - Don't be misled, Xindice is dead
<http://www.oreillynet.com/onjava/blog/2006/03/dont_be_misled_xindice_is_dead.html>
Check out more O'Reilly Network Java weblogs at:
<http://www.oreillynet.com/pub/q/weblog_s?x-subject=3&>
Please join us again next week.
Chris Adamson, Editor
ONJava.com
cadamson@oreilly.com
==================================================================
FREE Cross Training For Web Developers
FREE training webcasts, software, and how to's from Dr. Dobb's, O'Reilly
Media, and Microsoft. Choose from more than 40 webcasts, and see if you're
eligible to receive a FREE copy of Visual Studio Standard (NFR).
Complimentary copies of Visual Studio Standard (NFR) are limited, so act
today! http://www.oreilly.com/go/learn2asp_jav
==================================================================
*** Java News and Weblogs ***
java.net Weblogs
http://weblogs.java.net/
O'Reilly Network Java Weblogs
http://www.oreillynet.com/pub/q/weblog_s?x-subject=3
Other Java News (channel -- LANG: JAVA)
http://www.oreillynet.com/meerkat/index.php
Java Cookbook Recipe of the Day
http://www.onjava.com/onjava/javacook/solution.csp?day=1
Java Events
http://www.onjava.com/onjava/events/
==================================================================
O'Reilly Learning Special Offer: Save 25% Now
<http://oreillylearning.com/promotion/>
"I would never, and I mean never, have imagined that a computer learning
course would actually be fun too."
-Kerry Beck, PR Specialist
O'Reilly Learning has an exciting year in store! You're invited to join
thousands of satisfied students worldwide who have discovered just how
much fun it can be to gain skills and experience in programming or system
administration with our unique system. And until March 31st, enjoy 25% off
tuition for our online University of Illinois Certificate courses.
Enroll today and make your daily accomplishment:
<https://oreillylearning.com/enroll/>
==================================================================
*** Other Related O'Reilly Network sites ***
O'Reilly Network
http://www.oreillynet.com
XML.com
http://xml.com/
ONLamp.com
http://onlamp.com
O'Reilly Media
http://www.oreilly.com/
O'Reilly Java
http://java.oreilly.com/
***
ONJava.com Affiliates
Servlets.com
http://www.servlets.com/
JDOM.org
http://www.jdom.org/
------------------------------------------------------------------
Interested in sponsoring the ONJava.com newsletter? Please email us
at advertising@oreilly.com for rate and availability information.
Thank you!
------------------------------------------------------------------
To change your newsletter subscription options, please visit
http://www.oreillynet.com/cs/nl/home
For assistance, email help@oreillynet.com
O'Reilly Media, Inc.
1005 Gravenstein Highway North
Sebastopol, CA 95472
(707) 827-7000
------------------------------------------------------------------
The Next Web?
XML.com Xtra!
---------------------------------
The Email for XML.com Subscribers
=================================================================
FREE Cross Training For Web Developers
FREE training webcasts, software, and how to's from Dr. Dobb's, O'Reilly
Media, and Microsoft. Choose from more than 40 webcasts, and see if you're
eligible to receive a FREE copy of Visual Studio Standard (NFR).
Complimentary copies of Visual Studio Standard (NFR) are limited, so act
today! http://www.oreilly.com/go/learn2asp_xml
=================================================================
Dear Reader,
Welcome to another issue of XML.com.
Simon St.Laurent, a well-known pundit in the XML world, offers his take on
the future of the Web, which has become, for good reasons, something of a
cottage industry. The Web is perhaps the single most important information
system in history, and the twists and turns of its evolution, even its
micro-evolution, are necessarily compelling and important.
If you've ever wondered what the next Web will be, you should read Simon's
article:
The Next Web?
<http://www.xml.com/pub/a/2006/03/15/next-web-xhtml2-ajax.html>
Also worth reading:
Timothy Appnel, ETech: Making the Standard
<http://www.oreillynet.com/xml/blog/2006/03/etech_making_the_standard.html>
As always, thanks for reading.
Kendall Clark
kendall@xml.com
Managing Editor, XML.com
=================================================================
O'Reilly's latest PDF, "What Are Syndication Feeds," provides everything
you need to know about the elements that make up a feed, the different
formats (RSS 1.0, RSS 2.0, Atom), and the tools you need to manage
incoming and outgoing feeds.
Buy this PDF for just $7.95 now!
<http://www.oreilly.com/catalog/syndicationfeeds/?CMP=NLC-T5Z960052371&ATT=w9>
=================================================================
*** XML News from the XML Cover Pages by Robin Cover ***
U.S. Federal Enterprise Architecture Data Reference Model (DRM) Version 2.0
IT Vendors Promote Service Component Architecture (SCA)
For more information on any of these stories visit:
http://www.xml.com/pub/a/coverpage/newspage.html
***
=================================================================
O'Reilly Learning Special Offer: Save 25% Now
<http://oreillylearning.com/promotion/>
"I would never, and I mean never, have imagined that a computer learning
course would actually be fun too."
-Kerry Beck, PR Specialist
O'Reilly Learning has an exciting year in store! You're invited to join
thousands of satisfied students worldwide who have discovered just how
much fun it can be to gain skills and experience in programming or system
administration with our unique system. And until March 31st, enjoy 25% off
tuition for our online University of Illinois Certificate courses.
Enroll today and make your daily accomplishment:
<https://oreillylearning.com/enroll/>
=================================================================
------------------------------------------------------------------
Interested in sponsoring the XML.com newsletter? Please email us at
advertising@oreilly.com for rate and availability information.
Thank you!
-----------------------------------------------------------------
To change your newsletter subscription options, please visit
http://www.oreillynet.com/cs/nl/home
For assistance, email help@oreillynet.com
O'Reilly Media, Inc.
1005 Gravenstein Highway North
Sebastopol, CA 95472
(707) 827-7000
-----------------------------------------------------------------
Directions in Windows Scripting
The Windows DevCenter Newsletter
---------------------------------------------------
The latest from http://www.windowsdevcenter.com
=====================================================================
Your Skills Are in Demand. More Skills. More Demand.
Choose from 45 webcasts organized by track--JSP, PHP, and ColdFusion. Each
track has been designed to take advantage of your existing Web development
skills and includes insightful content contributed by Dr. Dobb's and
O'Reilly.
http://www.oreilly.com/go/learn2asp_wdc
=====================================================================
Directions in Windows Scripting
Administering Windows platforms using scripts can be a big productivity
booster or a headache. Mitch Tulloch, author of "Windows Server Hacks,"
sits down with Don Jones, a Microsoft MVP and the creator of
ScriptingAnswers.com, for a no-holds-barred interview about the future of
scripting.
<http://www.windowsdevcenter.com/pub/a/windows/2006/03/14/directions-in-windows-scripting.html>
From the Windows DevCenter Blogosphere
Overcoming the Windows 2GB Caching Limit
For years Windows developers have struggled to exceed the 2GB per-process
memory limit, especially when attempting to architect large-scale caching
systems. Mike Richardson has a solution, one well worth checking out.
<http://www.windowsdevcenter.com/pub/wlg/9304>
Paper Bird Takes on Wings
Project Origami, Microsoft's new touch-enabled handheld PC has taken wings
and is ready to fly. Mitch Tulloch has the inside skinny.
<http://www.windowsdevcenter.com/pub/wlg/9294>
Check Out the ASP.NET 2.0 Training Center
As I mentioned last week, O'Reilly, CMP's Dr. Dobbs Journal, and Microsoft
have launched a new site, the ASP.NET 2.0 Training Center, which offers a
comprehensive set of development tools, how-to's, and training to help
programmers master ASP.NET 2.0.
You'll find articles from your favorite O'Reilly authors, such as Jesse
Liberty and others, and articles from Dr. Dobbs Journal. And there is an
excellent webcast series helping you get more out of ASP.NET 2.0 as well.
Sign up for the site's webcast series and you also get more than $400 in
tools and information, including Visual Studio(R) 2005 Standard Edition.
Visit the site at <http://aspnet.cmp.com/>, sign up for the webcasts, and
get more than $400 in goodies at
<https://www.learn2asp.net/CMP/Default.aspx>
See you next week.
Preston Gralla, editor
WindowsDevCenter.com
pgralla@oreilly.com
=====================================================================
O'Reilly's latest PDF, "What Are Syndication Feeds," provides everything
you need to know about the elements that make up a feed, the different
formats (RSS 1.0, RSS 2.0, Atom), and the tools you need to manage
incoming and outgoing feeds.
Buy this PDF for just $7.95 now!
<http://www.oreilly.com/catalog/syndicationfeeds/?CMP=NLC-UW7102220707&ATT=w9>
=====================================================================
*** Top Five Windows and .NET Articles Last Week ***
1. Run Mac OS X on a PC
You can get the best of both worlds--you can run the real Mac OS X on your
own PC. Wei-Meng Lee shows you how to run the Mac operating system on an
emulator called PearPC.
<http://www.windowsdevcenter.com/pub/a/windows/2005/01/18/PearPC.html>
***
2. Windows Server Hacks: Remotely Enable Remote Desktop
What to do when you need to enable Remote Desktop on a remote server?
Mitch Tulloch, author of Windows Server Hacks, walks you through the
steps.
<http://www.windowsdevcenter.com/pub/a/windows/2004/05/04/serverhacks_remote.html>
***
3. Getting Your Bluetooth Headset to Work in XP
With Bluetooth support built into SP2, getting a Bluetooth headset to work
should be a breeze. But it ain't necessarily so. Wei-Meng Lee shows you
how to do it.
<http://www.windowsdevcenter.com/pub/a/windows/2005/07/05/bluetooth.html>
***
4. Enhancing ASP.NET Pages with JavaScript
A sprinkling of JavaScript code can enhance the reach and responsiveness
of your ASP.NET web pages without sacrificing ASP.NET's secure,
server-based model for your coding. Matthew MacDonald, coauthor of ASP.NET
in a Nutshell, 2nd Edition, shows you how to use JavaScript in an ASP.NET
web page to perform three common tasks: showing a pop-up window, changing
control focus, and handling frame navigation. You can use these tricks to
quickly solve problems that have no native .NET solution.
<http://www.ondotnet.com/pub/a/dotnet/2003/09/15/aspnet.html>
***
5. ASP.NET File Uploading
File upload and download are much simpler tasks in ASP.NET than in classic
ASP, thanks to the extensive .NET Framework class library. While file
upload in ASP.NET is as easy as retrieving an HTML form value, file
download is still a bit tricky.
<http://www.ondotnet.com/pub/a/dotnet/2002/04/01/asp.html>
***
=====================================================================
Bill Gates in conversation with Tim O'Reilly and others at MIX:
Building the Next Web Now
LIVE IN VEGAS. MARCH 20-22: Microsoft's new MIX conference is for
developers, designers and business professionals who create
consumer-oriented web sites. MIX is a 72-hour conversation about enhancing
Web-based customer interactions. Attendees will have the opportunity to
hear Bill Gates, Tim O'Reilly, Amazon and other industry leaders talk
about the new and unique experiences that can be delivered over the Web.
MIX will focus on IE7, Windows Vista, Windows Media Center & Xbox 360,
InfoCard, Windows Presentation Foundation, the "Atlas" AJAX framework and
Windows Live!
http://www.mix06.com
=====================================================================
---------------------------------------------------------------------
Interested in sponsoring the Windows DevCenter newsletter? Please
email us at advertising@oreilly.com for rate and availability
information. Thank you!
---------------------------------------------------------------------
To change your newsletter subscription options, please visit
http://www.oreillynet.com/cs/nl/home
For assistance, email help@oreillynet.com
O'Reilly Media, Inc.
1005 Gravenstein Highway North
Sebastopol, CA 95472
(707) 827-7000
---------------------------------------------------------------------
Tuesday, March 14, 2006
The Future of Telephony
THE O'REILLY NETWORK NEWSLETTER
-------------------------------------
The latest from http://oreillynet.com
==================================================================
Simplify software project management across the development life cycle!
See how Rally unites Agile project management with tracking of
requirements, tests and defects so everyone has a real-time picture
of a project's features and quality, priorities, roadblocks and risks.
Test Drive Rally Today! http://www.oreilly.com/go/rallydev_orn31406
==================================================================
Dear Reader,
We've just published a new edition of Distributing the Future, and the
lead story is about the future of Telephony. Peter Cochrane joins the
show and discusses his vision of where handheld devices may be headed.
If you haven't downloaded an O'Reilly podcast yet, this edition would be a
terrific introduction to the series. The show also includes James Duncan
Davidson talking about his switch to digital photography and Sun's Simon
Phipps explaining why it's important to non-technologists to have open
formats supported by open source software.
I should also mention that, if you enjoy Peter's segment of the show, you
might want to take a look at our Emerging Telephony site run by Bruce
Stewart. You'll find daily posts that provide insights to this very hot
technology sector.
<http://www.oreillynet.com/etel/>
Until next week,
-Derrick
Derrick Story
O'Reilly Network Editorial Director
derrick@oreilly.com
=====================================================================
Your Skills Are in Demand. More Skills. More Demand.
Choose from 45 webcasts organized by track--JSP, PHP, and
ColdFusion. Each track has been designed to take advantage
of your existing Web development skills and includes insightful
content contributed by Dr. Dobb's and O'Reilly.
http://www.oreilly.com/go/learn2asp_orn
=====================================================================
*** Featured Articles ***
The Future of Telephony, Going Digital, and Open Formats
Peter Cochrane looks at the future of telephony and handheld devices,
James Duncan Davidson talks about his switch from film to digital
photography, and Simon Phipps explains the importance of open formats
backed up by open source software. (DTF 03-13-2006: 26 minutes 30 seconds)
<http://www.oreillynet.com/pub/a/network/2006/03/13/distributing-the-future.html>
***
Directions in Windows Scripting
Administering Windows platforms using scripts can be a big productivity
booster or a headache. Mitch Tulloch, author of Windows Server Hacks,
sits down with Don Jones, a Microsoft MVP and the creator of
ScriptingAnswers.com, for a no-holds barred interview about the future
of scripting.
<http://www.windowsdevcenter.com/pub/a/windows/2006/03/14/directions-in-windows-scripting.html>
***
Fine-Tuning Kubuntu
Ubuntu is a well-maintained, well-organized Linux distribution. Kubuntu
adds the popular and powerful KDE desktop environment. As nice as Kubuntu
is, the default installation doesn't fit every user. Carla Schroder shows
how to get help, get access to more software packages, set up a firewall,
and review and get rid of unnecessary services.
<http://www.linuxdevcenter.com/pub/a/linux/2006/03/09/tuning-kubuntu.html>
***
Mac OS X Website Builder Face-Off
You may be a web expert, but surely everyone you know isn't. What
tools do you recommend to others? And, what would you use for those
quick sites that you don't want to code from scratch? Giles Turnbull
compares three potent offerings: iWeb, Sandvox, and RapidWeaver.
The results are surprising.
<http://www.macdevcenter.com/pub/a/mac/2006/03/08/web_builder.html>
***
What Is Java
Everyone knows what Java is, right? Interpreted code, applets,
proprietary, and slow. Wrong, wrong, wrong, and wrong. In its second
decade, it's time to re-evaluate Java: the language and the virtual
machine are going their own ways, its open source sub-community is vibrant
and independent, and developers are taking the best ideas from other
languages and frameworks and bringing them to Java. In this article,
ONJava editor Chris Adamson tries to reset old assumptions about Java to
fit modern realities.
<http://www.onjava.com/pub/a/onjava/2006/03/08/what-is-java.html>
***
The Emerging Art of Agile Publishing
Michael Fitzgerald returns us to a core XML mission: publishing. The
technical questions are mostly well rehearsed, but what about the process
questions? Is your publishing process as agile as it could be? Michael
gives us some insights into agile publishing.
<http://www.xml.com/pub/a/2006/03/08/agile-publishing.html>
***
*** New Books from O'Reilly Media ***
MAKE: Technology on Your Time, Volume 05
<http://www.oreilly.com/catalog/makemag06v1/>
Web Site Cookbook
<http://www.oreilly.com/catalog/websiteckbk/>
How to Cheat at Configuring ISA Server 2004 (Syngress)
<http://www.oreilly.com/catalog/1597490571/>
Programming SQL Server 2005
<http://www.oreilly.com/catalog/progsqlsvr/>
Fixing Powerpoint Annoyances
<http://www.oreilly.com/catalog/powerpointannoy/>
Flickr Hacks
<http://www.oreilly.com/catalog/flickrhks/>
=====================================================================
O'Reilly's latest PDF, "What Are Syndication Feeds," provides everything
you need to know about the elements that make up a feed, the different
formats (RSS 1.0, RSS 2.0, Atom), and the tools you need to manage
incoming and outgoing feeds.
Buy this PDF for just $7.95 now!
<http://www.oreilly.com/catalog/syndicationfeeds/?CMP=NLC-5GS833754145&ATT=w9>
=====================================================================
*** O'Reilly Network Top Five Articles Last Week ***
1. What Is Web 2.0
Defining just what Web 2.0 means (the term was first coined at a
conference brainstorming session between O'Reilly and MediaLive
International, which also spawned the Web 2.0 Conference), still engenders
much disagreement. Some decry it as a meaningless marketing buzzword,
while others have accepted it as the new conventional wisdom. Tim O'Reilly
attempts to clarify just what we meant by Web 2.0, digging into what it
means to view the Web as a platform and which applications fall squarely
under its purview, and which do not.
<http://www.oreillynet.com/pub/a/oreilly/tim/news/2005/09/30/what-is-web-20.html>
***
2. Rolling with Ruby on Rails
The Ruby community is abuzz about Rails, a web application framework that
makes database-backed apps dead simple. What's the fuss? Is it worth the
hype? Curt Hibbs shows off Rails, building a simple application that even
non-Rubyists can follow.
<http://www.oreillynet.com/pub/a/onlamp/2005/01/20/rails.html>
***
3. Fine-Tuning Kubuntu
Ubuntu is a well-maintained, well-organized Linux distribution. Kubuntu
adds the popular and powerful KDE desktop environment. As nice as Kubuntu
is, the default installation doesn't fit every user. Carla Schroder shows
how to get help, get access to more software packages, set up a firewall,
and review and get rid of unnecessary services.
<http://www.oreillynet.com/pub/a/linux/2006/03/09/tuning-kubuntu.html>
***
4. Virtualization with FreeBSD Jails
Consolidating several small machines into one powerful one has advantages
in administration and resource usage. It also has implications for
security and encapsulation. FreeBSD's jails feature allows you to host
multiple separate services on a single machine while keeping them securely
separate. Dan Langille shows how.
<http://www.oreillynet.com/pub/a/bsd/2006/03/09/jails-virtualization.html>
***
5. Mac OS X Website Builder Face-Off
You may be a web expert, but surely everyone you know isn't. What tools do
you recommend to others? And, what would you use for those quick sites
that you don't want to code from scratch? Giles Turnbull compares three
potent offerings: iWeb, Sandvox, and RapidWeaver. The results are
surprising.
<http://www.oreillynet.com/pub/a/mac/2006/03/08/web_builder.html>
***
------------------------------------------------------------------
Interested in sponsoring the O'Reilly Network newsletter? Please
email us at advertising@oreilly.com for rate and availability
information. Thank you!
---------------------------------------------------------------------
To change your newsletter subscription options, please visit
http://www.oreillynet.com/cs/nl/home
For assistance, email help@oreillynet.com
O'Reilly Media, Inc.
1005 Gravenstein Highway North
Sebastopol, CA 95472
(707) 827-7000
---------------------------------------------------------------------
Learning Ajax - Get Started with Next-Generation Web Programming
THE HEAD FIRST NEWSLETTER
=======================================================================
Greetings, Head First Enthusiasts:
Welcome to the first Head First newsletter. Thank you to all who have been
patiently awaiting its arrival. There's plenty of Head First news to
share, so without further delay, let's take a look at the newest book in
the Head First series, "Head Rush Ajax," due out later this month...
*Head Rush Ajax--What's that all about?*
With every new technology, a new race starts--whether it's to be the first
to get a handle on the buzzwords, to publish on the subject, or to learn
to use the technology for a few new tricks--and the Ajax race is going
strong. There's a reason why: Ajax--or Asynchronous JavaScript and
XML--lets you build rich internet applications that are more interactive,
responsive, and easy to use than ever before. It puts an end to waiting
for tiresome page reloads. Instead, clunky old web applications feel fast
and smooth, like dynamic desktop apps.
So where do you turn if you want to learn Ajax fast and learn it well? To
learn it in a way that sticks in your brain, and even lets you have fun in
the process? "Head Rush Ajax" is the answer. It takes the same Head First
approach* you've seen before in "Head First Java" and "Head First Design
Objects" and blends it with a jolt of pure caffeine. It's an accelerated
learning style designed for experienced programmers and web designers;
it'll get the essentials of Ajax in your brain, fast. You'll learn how to
make your web pages talk and listen at the same time. Master out-of
this-world concepts, including the DOM, JSON, and XML. Load asynchronous
programming directly into your brain.
==================================================================
* When it comes to learning a new technology--really learning it in a way
that sticks--the Head First series, created by Kathy Sierra and Bert
Bates, has a proven track record. According to Sierra and Bates, the
latest research in cognitive science, neurobiology, and educational
psychology shows that learning at the deeper levels takes a lot more than
text on a page. Actively combining words and pictures not only helps in
understanding the subject, but in remembering it. The entertaining,
image-rich, conversational approach used in the Head First books actually
teaches the subject better by taking into account the way the human brain
learns. Readers interact with the material in unusual ways to learn more
deeply and more quickly, and--most importantly--to use what they learn.
==================================================================
So, what exactly is Head Rush? Author Brett McLaughlin says it best, "It's
kind of like drinking a Slurpee on a really hot day," he explains. "You're
burning up, the Slurpee's nice and cold, so you take a big hit
and--yow!--you get instant brain freeze. That's the way Head Rush
works."
"Only it doesn't hurt," he adds, "And it doesn't wear off in just a few
seconds."
Let's face it, you can race to be the first to talk Ajax with your
friends, or you can learn it in a way that lets you really put it to use.
"Head Rush Ajax" is the easy way to load the knowledge straight into your
brain. And it doesn't hurt. And it doesn't wear off.
"Head Rush Ajax" will be in stores March 29, or your can pre-order your
copy directly from Amazon or O'Reilly:
<http://www.oreilly.com/catalog/headra/>
Contents summary:
1) Using Ajax: Web Applications for a New Generation
2) Speaking the Language: Making Ajax Requests
3) She Blinded Me with Asynchrony: Asynchronous Apps
4) Web Page Forestry: The Document Object Model
5) Saying More with POST: Post Requests
6) More Than Words Can Say: XML Requests and Responses
7) A Fight to the Finish: JSON versus XML
Appendix 1: A Few Special Bonus Gifts: Extras
Appendix 2: "The Code, Ma'am, Just the Code": Utilities
Find out more about "Head Rush Ajax" at:
<http://www.oreilly.com/catalog/headra/>
Also of interest:
Creating Passionate Users blog:
<http://headrush.typepad.com/creating_passionate_users/>
Head First Series:
<http://www.headfirstlabs.com>
==================================================================
Stay tuned, in the next newsletter we'll take a look at what happens when
you put 19 Head First authors together in a single room for three days.
The results are surprising.
Kathryn Barrett and Head First Labs
O'Reilly Media, Inc.
<http://www.oreilly.com>
==================================================================
Praise for Head First books:
"This book is close to perfect, because of the way it combines expertise
and readability. It speaks with authority and it reads beautifully."
-David Gelernter, Professor of Computer Science, Yale University
"This book's admirable clarity, humor, and substantial doses of clever
make it the sort of book that helps even non-programmers think well about
problem solving."
-Cory Docotor, Co-Editor of Boing Boing and author of "Down and Out in the
Magic Kingdom" and "Someone Comes to Town, Someone Leaves Town"
"Just the right tone for the geeked-out, casual-cool guru coder in all of
us. The right reference for practical development strategies--gets my
brain going without having to slog through a bunch of tired, stale
professor-speak."
-Travis Kalanick, Founder of Scour and Red Swoosh Member of the MIT TR100
------------------------------------------------------------------
Interested in sponsoring the Head First newsletter? Please
email us at advertising@oreilly.com for rate and availability
information. Thank you!
------------------------------------------------------------------
To change your newsletter subscription options, please visit
http://www.oreillynet.com/cs/nl/home
For assistance, email help@oreillynet.com
O'Reilly Media, Inc.
1005 Gravenstein Highway North
Sebastopol, CA 95472
(707) 827-7000
---------------------------------------------------------------------
Monday, March 13, 2006
Rise, Weblogs, Rise
LINUX NEWS FROM O'REILLY NETWORK
----------------------------------------
The Latest from http://www.linuxdevcenter.com and http://ONLamp.com
=================================================================
Your Skills Are in Demand. More Skills. More Demand.
Choose from 45 webcasts organized by track--JSP, PHP, and
ColdFusion. Each track has been designed to take advantage
of your existing Web development skills and includes insightful
content contributed by Dr. Dobb's and O'Reilly.
http://www.oreilly.com/go/learn2asp_lnx
=================================================================
Greetings, Linux newsletter subscribers. This weekly mailing covers the
entire LAMP world and beyond, as seen through the lens of ONLamp.com.
Here's what happened this week.
If there's a new shiny in the Linux world, it's probably the Ubuntu
distribution. It builds on the solid Debian foundation to add spit,
polish, and a rhythmic release cycle. Reports describe it as an excellent
distribution for people who Just Want Things To Work. Yet there's often a
bit of customization for security or preference. Carla Schroder explains
how to fine-tune your fresh Kubuntu installation:
<http://www.linuxdevcenter.com/pub/a/linux/2006/03/09/tuning-kubuntu.html>
On the system administration side, consolidation is the old idea turned
new. That is, running a series of virtual servers on a single powerful box
has tremendous advantages. Not everyone wants to run virtual machines,
though. Sometimes you can get all of the advantages with simpler,
better-established technologies such as BSD's jails. Dan Langille shows
how to put the pieces together to run separate projects for separate
groups on the same machine while not worrying about security troubles:
<http://www.onlamp.com/pub/a/bsd/2006/03/09/jails-virtualization.html>
In weblogs this week, Kurt Cagle offers thoughts about complexity in
programming:
<http://www.oreillynet.com/pub/wlg/9280>
The unmissable-in-a-crowd Robert Kaye writes obsessively about ETech,
including a conference wrap-up:
<http://www.oreillynet.com/pub/wlg/9302>
Carla Schroder unearths Ubuntu's #1 bug:
<http://www.oreillynet.com/pub/wlg/9295>
Timothy Appnel documents the warranty-voiding Makers Faire:
<http://www.oreillynet.com/pub/wlg/9296>
Sam Griffith weighs the pros and cons of adding metaprogramming to Java:
<http://www.oreillynet.com/pub/wlg/9305>
Your editor attempts to debunk the magic pixie dust claims of type
inferencing and program "correctness":
<http://www.oreillynet.com/onlamp/blog/2006/03/typesafe_correct.html>
Jeremy Jones praises the open source business model the TurboGears author
is exploring:
<http://www.oreillynet.com/onlamp/blog/2006/03/the_open_source_business_model.html>
Your editor reviews the CPAN module KinoSearch:
<http://www.oreillynet.com/onlamp/blog/2006/03/cpan_module_review_kinosearch.html>
Brian K. Jones offers a sysadmin tip to save you hours:
<http://www.oreillynet.com/onlamp/blog/2006/03/a_sysadmin_tip_that_could_save.html>
Steve Yegge offers tips on interviewing programmers, especially for Ruby jobs:
<http://www.oreillynet.com/ruby/blog/2006/03/interviewing_ruby_programmers.html>
Stephane Faroult recommends analyzing surrogate key statistics in your databases:
<http://www.oreillynet.com/databases/blog/2006/03/check_your_counters.html>
That's it for this week. Be good to each other.
More CPAN module reviews on the way,
- c
chromatic
chromatic@oreilly.com
Technical Editor
O'Reilly Network
================================================================
Bill Gates in conversation with Tim O'Reilly and others at MIX:
Building the Next Web Now
LIVE IN VEGAS. MARCH 20-22: Microsoft's new MIX conference
is for developers, designers and business professionals who create
consumer-oriented web sites. MIX is a 72-hour conversation about
enhancing Web-based customer interactions. Attendees will have the
opportunity to hear Bill Gates, Tim O'Reilly, Amazon and other industry
leaders talk about the new and unique experiences that can be delivered
over the Web. MIX will focus on IE7, Windows Vista, Windows Media
Center & Xbox 360, InfoCard, Windows Presentation Foundation, the
"Atlas" AJAX framework and Windows Live!
http://www.mix06.com
================================================================
ONLamp.com and Linux Devcenter Top Five Articles Last Week
1. Fine-Tuning Kubuntu
Ubuntu is a well-maintained, well-organized Linux distribution. Kubuntu
adds the popular and powerful KDE desktop environment. As nice as Kubuntu
is, the default installation doesn't fit every user. Carla Schroder shows
how to get help, get access to more software packages, set up a firewall,
and review and get rid of unnecessary services.
<http://www.linuxdevcenter.com/pub/a/linux/2006/03/09/tuning-kubuntu.html>
***
2. Virtualization with FreeBSD Jails
Consolidating several small machines into one powerful one has advantages
in administration and resource usage. It also has implications for
security and encapsulation. FreeBSD's jails feature allows you to host
multiple separate services on a single machine while keeping them securely
separate. Dan Langille shows how.
<http://www.onlamp.com/pub/a/bsd/2006/03/09/jails-virtualization.html>
***
3. Ajax on Rails
XMLHttpRequest and Ruby on Rails are two hot topics in web development. As
you ought to expect by now, they work really well together. Curt Hibbs
explains the minimal Ajax you need to know and the minimal Ruby you need
to write to Ajax-ify your Rails applications.
<http://www.onlamp.com/pub/a/onlamp/2005/06/09/rails_ajax.html>
***
4. What Corporate Projects Should Learn from Open Source
Many corporate projects fail to produce quality software, yet many
large-scale open source projects succeed, and under much more difficult
conditions: no budget, a geographically distributed team, and a volunteer
workforce, to name a few. So how do open source project teams ensure
success? Andrew Stellman and Jennifer Greene introduce five basic
principles in their new book, Applied Software Project Management, that
will help any project succeed, open source or proprietary. The authors
detail these principles in this article.
<http://www.onlamp.com/pub/a/onlamp/2006/02/27/what-corp-projects-learn-from-open-source.html>
***
5. PHP Form Handling
If your PHP program is a dynamic web page (and it probably is) and your
PHP program is dealing with user input (and it probably is), then you need
to work with HTML forms. David Sklar, author of Learning PHP 5, offers
tips for simplifying, securing, and organizing your form-handling PHP
code.
<http://www.onlamp.com/pub/a/php/2004/08/26/PHPformhandling.html>
***
=================================================================
O'Reilly Learning Special Offer: Save 25% Now
http://oreillylearning.com/promotion/
"I would never, and I mean never, have imagined that a computer
learning course would actually be fun too."
-Kerry Beck, PR Specialist
O'Reilly Learning has an exciting year in store! You're invited to
join thousands of satisfied students worldwide who have discovered
just how much fun it can be to gain skills and experience in
programming or system administration with our unique system. And
until March 31st, enjoy 25% off tuition for our online University
of Illinois Certificate courses.
Enroll today and make your daily accomplishment:
https://oreillylearning.com/enroll/
=================================================================
------------------------------------------------------------------
Interested in sponsoring the Linux DevCenter newsletter? Please
email us at advertising@oreilly.com for rate and availability
information, or contact Pamela Fabrega-Frager directly at
503-731-9733. Thank you!
-----------------------------------------------------------------
To change your newsletter subscription options, please visit
http://www.oreillynet.com/cs/nl/home
For assistance, email help@oreillynet.com
O'Reilly Media, Inc.
1005 Gravenstein Highway North
Sebastopol, CA 95472
(707) 827-7000
-----------------------------------------------------------------
Thursday, March 09, 2006
The Emerging Art of Agile Publishing
XML.com Xtra!
---------------------------------
The Email for XML.com Subscribers
=================================================================
FREE Cross Training For Web Developers
FREE training webcasts, software, and how to's from Dr. Dobb's,
O'Reilly Media, and Microsoft. Choose from more than 40 webcasts,
and see if you're eligible to receive a FREE copy of Visual Studio
Standard (NFR).
Complimentary copies of Visual Studio Standard (NFR) are limited,
so act today! http://www.oreilly.com/go/learn2asp_xml
=================================================================
Dear Reader,
Welcome to another issue of XML.com.
This week we return to a core XML use case: publishing. Not
so much the technical detail but the human and business processes
behind what author Michael Fitzgerald calls "agile publishing."
Have you fine-tuned your publication process to match the speed
of business today?
The Emerging Art of Agile Publishing
<http://www.xml.com/pub/a/2006/03/08/agile-publishing.html>
Also worth reading:
Kurt Cagle, Thoughts on Complexity
<http://www.oreillynet.com/pub/wlg/9280>
As always, thanks for reading.
Kendall Clark
kendall@xml.com
Managing Editor, XML.com
=================================================================
O'Reilly's latest PDF, "What Are Syndication Feeds," provides everything
you need to know about the elements that make up a feed, the different
formats (RSS 1.0, RSS 2.0, Atom), and the tools you need to manage
incoming and outgoing feeds.
Buy this PDF for just $7.95 now!
<http://www.oreilly.com/catalog/syndicationfeeds/?CMP=NLC-T5Z960052371&ATT=w8>
=================================================================
*** XML News from the XML Cover Pages by Robin Cover ***
U.S. Federal Enterprise Architecture Data Reference Model (DRM) Version 2.0
IT Vendors Promote Service Component Architecture (SCA)
For more information on any of these stories visit:
http://www.xml.com/pub/a/coverpage/newspage.html
***
=================================================================
Bill Gates in conversation with Tim O'Reilly and others at MIX:
Building the Next Web Now
LIVE IN VEGAS. MARCH 20-22: Microsoft's new MIX conference is for
developers, designers and business professionals who create
consumer-oriented web sites. MIX is a 72-hour conversation about enhancing
Web-based customer interactions. Attendees will have the opportunity to
hear Bill Gates, Tim O'Reilly, Amazon and other industry leaders talk
about the new and unique experiences that can be delivered over the Web.
MIX will focus on IE7, Windows Vista, Windows Media Center & Xbox 360,
InfoCard, Windows Presentation Foundation, the "Atlas" AJAX framework and
Windows Live!
http://www.mix06.com
=================================================================
------------------------------------------------------------------
Interested in sponsoring the XML.com newsletter? Please email us at
advertising@oreilly.com for rate and availability information, or
contact Pamela Fabrega-Frager directly at 503-731-9733. Thank you!
-----------------------------------------------------------------
To change your newsletter subscription options, please visit
http://www.oreillynet.com/cs/nl/home
For assistance, email help@oreillynet.com
O'Reilly Media, Inc.
1005 Gravenstein Highway North
Sebastopol, CA 95472
(707) 827-7000
-----------------------------------------------------------------
Redefining Java
O'REILLY NETWORK'S ONJava.com NEWSLETTER
--------------------------------------------------
The Independent Source for Enterprise Java
==================================================================
Sponsored by Rally Software
Scale Software Agility from Single Team Projects to Multi-Team Programs!
See how Rally's on-demand solution for Agile life cycle management has
helped thousands of developers, testers, analysts and managers improve
their responsiveness, velocity, project visibility, and team
collaboration.
Test Drive Rally Today! http://www.oreilly.com/go/rallydev_jav3906
==================================================================
Greetings...
In previous newsletters, I've mentioned the "What Is" series of articles,
and its corresponding website <http://www.oreillynet.com/whatis/>. A few
weeks back, What Is editor Tara McGoldrick forwarded me a set of recently
received topic requests, including "What Is Java." My first reaction was
that an introductory article wouldn't really suit our established audience
of enterprise developers. And that reaction was right--but a
"re-introductory" article might be useful. After all, Java has changed
profoundly in recent years, and all the old definitions of the language
seem to me to be lacking. They don't, for example, talk about the open
source frameworks like Spring that are as much a de facto standard as EJB
is a de jure standard. They don't talk about running non-Java languages
on the JVM, or hacking the VM with bytecode manipulation, even though this
approach is used by inversion-of-control frameworks, AOP tools, and other
projects. They talk about interpreted bytecode or JIT's, not the modern
era of dynamic runtime compilation epitomized by HotSpot.
Looking at all of this, and in consultation with editor-in-chief Daniel
Steinberg, we saw an opportunity to reframe the discussion, to try to
reset the basic ideas of what Java is--language, VM, or both--and what it
could be. We don't know if we can make a big dent in the public
perception, but if we make one troll hesitate before typing "Java is slow"
on a Slashdot thread, we'll have made the world a slightly better place.
So what is Java? Lazy conventional wisdom spouts catch phrases about
applets, bad performance, Swing appearance problems, and other issues that
either aren't true or aren't relevant (and maybe never were). In "What Is
Java", we try to reframe the conversation for Java's second decade by
separating language from VM and taking a look at what each is and where
they're going, while also noting the profound size and influence of what
is the largest and arguably most underappreciated open source community in
existence today.
<http://www.onjava.com/pub/a/onjava/2006/03/08/what-is-java.html>
Sure, you can throw XML data into a database as a run of bytes, but in so
doing, you lose the inherent structure of the data. A database built to
work with XML can offer opportunities to the savvy developer. Deepak
Vohra's "Storing an XML Document in Apache Xindice" introduced Apache
Xindice, an open source database optimized for working with XML.
<http://www.onjava.com/pub/a/onjava/2006/03/08/storing-xml-document-with-apache-xindice.html>
Have you ever worked on a day job project that had less discipline and
organization than the open source project you hack on by night? You're
not alone. "Applied Software Project Management" authors Andrew Stellman
and Jennifer Greene write: "It is rare to find a corporate environment
where the project team has anything approaching the level of planning,
documentation, or review found in successful open source projects. For
some reason, as soon as a budget and a deadline are involved, all of the
lessons we've learned over the years and applied successfully to open
source projects seem to fly out the window." They take the lessons of
open source back to the enterprise in the ONLamp article "What Corporate
Projects Should Learn from Open Source."
<http://www.onlamp.com/pub/a/onlamp/2006/02/27/what-corp-projects-learn-from-open-source.html>
In our feature article from java.net, Jacobus Steenkamp shows you how to
achieve "Better File Uploads with AJAX and JavaServer Faces." "In this
article, we will take fresh a approach and implement an AJAX-powered
component that will not only upload the file to server, but also monitor
the actual progress of a file upload request in 'real time.'"
<http://today.java.net/pub/a/today/2006/02/09/file-uploads-with-ajax-and-jsf.html>
Recent O'Reilly Network weblogs of interest to Java developers:
Paul Browne - How to talk to your Boss about Agile
<http://www.oreillynet.com/onjava/blog/2006/03/how_to_talk_to_your_boss_about.html>
Timothy M. O'Brien - Maven Project Info Reports Considered Dangerous
<http://www.oreillynet.com/onjava/blog/2006/03/maven_project_info_reports_con.html>
Check out more O'Reilly Network Java weblogs at:
<http://www.oreillynet.com/pub/q/weblog_s?x-subject=3&>
Please join us again next week.
Chris Adamson, Editor
ONJava.com
cadamson@oreilly.com
==================================================================
Your Skills Are in Demand. More Skills. More Demand.
Choose from 45 webcasts organized by track--JSP, PHP, and
ColdFusion. Each track has been designed to take advantage
of your existing Web development skills and includes insightful
content contributed by Dr. Dobb's and O'Reilly.
http://www.oreilly.com/go/learn2asp_jav
==================================================================
*** Java News and Weblogs ***
java.net Weblogs
http://weblogs.java.net/
O'Reilly Network Java Weblogs
http://www.oreillynet.com/pub/q/weblog_s?x-subject=3
Other Java News (channel -- LANG: JAVA)
http://www.oreillynet.com/meerkat/index.php
Java Cookbook Recipe of the Day
http://www.onjava.com/onjava/javacook/solution.csp?day=1
Java Events
http://www.onjava.com/onjava/events/
==================================================================
O'Reilly Learning Special Offer: Save 25% Now
http://oreillylearning.com/promotion/
"I would never, and I mean never, have imagined that a computer
learning course would actually be fun too."
-Kerry Beck, PR Specialist
O'Reilly Learning has an exciting year in store! You're invited to
join thousands of satisfied students worldwide who have discovered
just how much fun it can be to gain skills and experience in
programming or system administration with our unique system. And
until March 31st, enjoy 25% off tuition for our online University
of Illinois Certificate courses.
Enroll today and make your daily accomplishment:
https://oreillylearning.com/enroll/
==================================================================
*** Other Related O'Reilly Network sites ***
O'Reilly Network
http://www.oreillynet.com
XML.com
http://xml.com/
ONLamp.com
http://onlamp.com
O'Reilly Media
http://www.oreilly.com/
O'Reilly Java
http://java.oreilly.com/
***
ONJava.com Affiliates
Servlets.com
http://www.servlets.com/
JDOM.org
http://www.jdom.org/
------------------------------------------------------------------
Interested in sponsoring the ONJava.com newsletter? Please email us
at advertising@oreilly.com for rate and availability information, or
contact Pamela Fabrega-Frager directly at 503-731-9733. Thank you!
------------------------------------------------------------------
To change your newsletter subscription options, please visit
http://www.oreillynet.com/cs/nl/home
For assistance, email help@oreillynet.com
O'Reilly Media, Inc.
1005 Gravenstein Highway North
Sebastopol, CA 95472
(707) 827-7000
------------------------------------------------------------------