From sam at vilain.net Sun Jan 7 21:49:18 2007 From: sam at vilain.net (Sam Vilain) Date: Mon, 08 Jan 2007 18:49:18 +1300 Subject: [Wellington-pm] Perl database stuff.... In-Reply-To: <459266F5.3000105@perltraining.com.au> References: <459256A5.5060007@vilain.net> <459266F5.3000105@perltraining.com.au> Message-ID: <45A1DB5E.8090106@vilain.net> Jacinta Richardson wrote: >> Surely just wrapping the entire operation in a transaction is enough? >> Or is that one of those cases that needs the TRANSACTION ISOLATION LEVEL >> set to max? >> > > Transactions don't solve the problem, regardless of their isolation level > (unless your levels mean something other than what I think they do). The race > condition exists because the underlying operating system handles multiple > processes all at the same time. As far as the operating system is concerned, > the database, scripts accessing the database, and anything else on the machine > are just processes. Each process deserves time slices to do their things in a > timely fashion. These are handled due to various algorithms but essentially > each process goes into a queue. The OS takes one out from the front of the > queue, sets up it's memory, runs it's instructions for a while and then swaps > its used memory out to disk (if necessary) and moves that to the back of the > queue. It then takes the next one out of the queue and processes that. > In summary, this is exactly the problem that ACID was designed to solve. (see, eg, http://en.wikipedia.org/wiki/ACID) > This > means that sometimes (in rare but possible cases) two or more processes can > collide and do the unexpected. For example consider the following: > > Process A selects stuff for business key X - it's not there > Operating system swaps Process A to memory/disk > Process B selects stuff for business key X - it's not there > Process B selects the sequence next val > Process B inserts stuff into the database > Operating system swaps Process B to memory/disk > Process A selects the sequence next val > Process A inserts it's stuff into the database for key X > > Now you have either an insertion failure (if you have unique indices) or a > duplicate entry. If Process A is using transactions and you do have unique > indices (separate from the id) then the transaction fails because the insert > fails. If you don't have a separate key then the transaction succeeds because > failure isn't detected. > To answer my own (earlier) question, the particular problem you refer to is known as "phantom read" (see http://www.postgresql.org/docs/8.2/interactive/transaction-iso.html). If you use the SERIALIZABLE transaction isolation level, then the transaction should protect you. This marginal extra overhead is only needed for this usage pattern; if you did it this way: Process A starts a transaction Process A selects the sequence next val Operating system swaps Process A to memory/disk Process B starts a transaction Process B selects the sequence next val Process B inserts stuff into the database Operating system swaps Process B to memory/disk Process A inserts it's stuff into the database Process B commits Process A commits Then you would not suffer from a potential phantom read. Note that B commits a higher sequence than A, before A commits. This is intentional, and why you use sequences rather than auto_increment; it's more scalable. It also means that in the event of a rollback there will be missing numbers. Sequences are atomic, and don't roll back with transactions. Let's look at the pattern you describe, and how the SERIALIZABLE isolation level solves the problem: Process A starts a transaction Process A selects the highest value from the table and computes the next key Operating system swaps Process A to memory/disk Process B starts a transaction Process B selects the highest value from the table and computes the next key Process B inserts stuff into the database Operating system swaps Process B to memory/disk Process A inserts it's stuff into the database Process B commits Process A tries to commit In this case, when Process A tries to commit it will be forced to roll back. Process B locked the phantom rows off the end of the index as a part of its transaction, and so process A cannot then commit; it has to replay. In the case where the information to be inserted was derived from rows that were actually present - and selected during the course of the transaction - then when process B tries to select those values it will block. This is the disadvantage of the REPEATABLE READ level - it's a trade-off that means you don't need to write transaction replay functionality, but with the side-effect that two concurrent transactions interfere with each other, at least in time. That being said, you don't save yourself completely - if two transactions lock rows in different orders you might end up with a deadlock and then they both lose. At least, that's the assumptions I've always worked with. I sure hope I got it right ;). > If I am using an id field, I set it to "auto-increment" if the > database allows. Most of the time these days though, I just use Class::DBI > (probably soon to change to DBIx::Class). I don't know what its policy is in > this regard, but I'm happy enough to trust it. > None of these toolkits can simply save you. You should be concious of at least the "Dirty Read" problem, and ideally, make sure that your application is prepared to handle the "Phantom Read" problem, or engineered to avoid it. Here's a few simple words of advice for writing safe transactions: 1. always start a transaction at the beginning of your "request" cycle (to get ACID support) 2. never use information from a previous transaction as input for an update (to avoid "Dirty Read"), or information from another database handle. 3. build your application so that you can replay transactions on a rollback indication from the database (to enable avoiding of "Phantom Read"), and turn on serializable isolation - or make sure you never allow the *absence* of rows to influence the committed result of a transaction, *and* select/insert things in a common order to avoid deadlocks aborting transactions for you. 4. don't hold transactions open too long. Now, points 4 and 2 have some interesting implications - for instance, what about information that you send to the user to review and edit, then when they hit "save", commit to the database? From an overall perspective, the user is locking the rows, making changes, and committing them to the database. Therefore, a simple and correct (but flawed) way to do this is to make sure that the user always uses the same database handle, and simply leave the transaction running while they edit. However, this violates principle 4 above, and when you get sufficient users you can run into capacity problems (ie, run out of rollback space). So, once good solution is to have a (hidden to the user) "object version" field, which is sent to the user with the rest of their information, and confirmed to match the row during the update cycle. An alternative that does not require an extra column is for the user to send back the complete original row that they were editing, which is compared before commit, or even a hash thereof. > in most of them it's probably less than 3. This kind of a thing is a nightmare > when creating items for an online store (or CMS) -- where a number of > administrators might try to add the exact same item -- but rarely a problem when > handling a shopping cart, because most people *expect* duplicate items to appear > if they buy the same item in the same session from two different pages. Dirty read gives you behaviour like the Smoke CDs site, where if you add a CD to your basket in two windows at near the same time, you might get only one in your basket at the end. In their case it meant that a potential customer, irritated at the poor performance of their site, went to $local_cd_store instead. > Thus in my situations the chances of hitting this kind of race condition is sufficiently > low that I was told not to spend the time worrying about it. > > It's a trade off: you can write some code correctly, or quickly. ;) > With the widespread availability of ACID compliant databases like Postgres (or even SQLite) You shouldn't need to compromise on transaction consistency for deadlines - just take on board the above guidelines and it should become automatic. Sam. From dan.horne at redbone.co.nz Mon Jan 8 20:21:34 2007 From: dan.horne at redbone.co.nz (Dan Horne) Date: Tue, 9 Jan 2007 17:21:34 +1300 Subject: [Wellington-pm] Perl database stuff.... In-Reply-To: <45A1DB5E.8090106@vilain.net> Message-ID: <000001c733a5$a60f9d10$6403a8c0@rdbxp02> > -----Original Message----- > From: wellington-pm-bounces+dan.horne=redbone.co.nz at pm.org > On Behalf Of Sam Vilain > Sent: Monday, 8 January 2007 6:49 p.m. > So, once good solution is to have a (hidden to the > user) "object version" field, which is sent to the user with > the rest of their information, and confirmed to match the row > during the update cycle. A lot of the Java ORMs have this approach to optimistic locking built in, but as far as I can see, none of the Perl ORMs do. I tried looking at the internals of DBIx::Class to figure out how to add support for this as a component, but basically got swamped by the details - I couldn't figure out how to trasparently compare the version numbers. But if anyone has any ideas on how to do this if anyone has got any pointers... From dan.horne at redbone.co.nz Mon Jan 8 20:24:33 2007 From: dan.horne at redbone.co.nz (Dan Horne) Date: Tue, 9 Jan 2007 17:24:33 +1300 Subject: [Wellington-pm] Perl database stuff.... In-Reply-To: <000001c733a5$a60f9d10$6403a8c0@rdbxp02> Message-ID: <000101c733a6$10ebb920$6403a8c0@rdbxp02> Whoops - I made a typo in the mail. The last line should read: But I'd be keen to revisit this if anyone has got any pointers... > -----Original Message----- > From: wellington-pm-bounces+dan.horne=redbone.co.nz at pm.org > [mailto:wellington-pm-bounces+dan.horne=redbone.co.nz at pm.org] > On Behalf Of Dan Horne > Sent: Tuesday, 9 January 2007 5:22 p.m. > To: 'Wellington Perl Mongers (Perl user group)' > Subject: Re: [Wellington-pm] Perl database stuff.... > > > > > -----Original Message----- > > From: wellington-pm-bounces+dan.horne=redbone.co.nz at pm.org > > On Behalf Of Sam Vilain > > Sent: Monday, 8 January 2007 6:49 p.m. > > > So, once good solution is to have a (hidden to the > > user) "object version" field, which is sent to the user > with the rest > > of their information, and confirmed to match the row during > the update > > cycle. > > A lot of the Java ORMs have this approach to optimistic > locking built in, but as far as I can see, none of the Perl > ORMs do. I tried looking at the internals of DBIx::Class to > figure out how to add support for this as a component, but > basically got swamped by the details - I couldn't figure out > how to trasparently compare the version numbers. But if > anyone has any ideas on how to do this if anyone has got any > pointers... > > _______________________________________________ > Wellington-pm mailing list > Wellington-pm at pm.org > http://mail.pm.org/mailman/listinfo/wellington-pm > From grant at mclean.net.nz Sun Jan 14 17:14:40 2007 From: grant at mclean.net.nz (Grant McLean) Date: Mon, 15 Jan 2007 14:14:40 +1300 Subject: [Wellington-pm] Happy New Year Mongers Message-ID: <1168823680.4218.19.camel@putnam.wgtn.cat-it.co.nz> Hello Wellington.pm I hope you all enjoyed a bit of a break over the Christmas/New Year period - I know I did. The first Wellington Perl Mongers Meeting of 2007 will be on Tuesday February 13th. We have had two previous lightning talk meetings and the format has been very popular. The idea is that rather than having a couple of speakers talk for 30-40 minutes each, we have 10 or more speakers talking for 5 minutes each. So what we need now is 10 or more people to 'sign up' to give one or more lightning talks. This is an especially good opportunity for people who have never given a talk before. If you're interested, send me an email to book a slot. There are more details and ideas on the web site: http://wellington.pm.org/lightning_talks.html On a completely different subject... If you're registered on the Old Friends web site, you can wear your Wellington.PM affiliation as a badge of pride via this link: http://www.oldfriends.co.nz/Institution.aspx?id=248948 Regards Grant From grant at mclean.net.nz Sun Jan 28 12:46:00 2007 From: grant at mclean.net.nz (Grant McLean) Date: Mon, 29 Jan 2007 09:46:00 +1300 Subject: [Wellington-pm] [Fwd: Newsletter from O'Reilly UG Program, January 26] Message-ID: <1170017160.5166.1.camel@putnam.wgtn.cat-it.co.nz> -------- Forwarded Message -------- > From: Marsee Henon > Subject: Newsletter from O'Reilly UG Program, January 26 > Date: Fri, 26 Jan 2007 16:53:17 -0800 > > ================================================================ > O'Reilly News for User Group Members > January 26, 2007 > ================================================================ > ---------------------------------------------------------------- > New Releases > ---------------------------------------------------------------- > -Access 2007 for Starters: The Missing Manual > -ActionScript 3.0 Programming (PDF) > -The Book of JavaScript, Second Edition > -Botnets: The Killer Web App > -Comp TIA RFID+ Study Guide and Practice Exam (RFO-001) > -CRAFT: Volume 02 > -Cyber Crime Investigations > -Developers Guide to Web Application Security > -Eight Great Ways to Get the Most from Your Zune > -Essential Electronics for Software Folk > -Excel 2007 for Starters: The Missing Manual > -Google Web Toolkit for Ajax (PDF) > -Introduction to Neogeography > -The OpenBSD 4.0 Crash Course > -Physical and Logical Security Convergence: Powered By Enterprise > Security Management > -PowerPoint 2007 for Starters: The Missing Manual > -Programming Firefox: Rough Cuts Version > -Rails Cookbook (Book or PDF) > -Rails for Java Developers > -Release It! > -Secure Your Network for Free > -Software Testing Foundations, Second Edition > -The OpenBSD 4.0 Crash Course (PDF) > -Using Samba, Third Edition > -Using XForms with Mozilla (PDF) > -What's New in Windows Vista? > -Windows Developer Power Tools > -Windows Vista for Starters: The Missing Manual > -Windows Vista in a Nutshell > -Word 2007 for Starters: The Missing Manual > -MAKE & CRAFT Magazine Subscriptions > ---------------------------------------------------------------- > Upcoming Events > ---------------------------------------------------------------- > -O'Reilly at ASTD TechKnowledge 2007, Las Vegas, NV-- > January 31-February 2 > -Geek Cruise Features David Pogue, Deke McClelland, and Eddie > Tapp, Eastern Caribbean--February 3-10 > -O'Reilly at Conferencia Internacional de Software Libre 3.0--Feb 7-11 > -Peter Krogh ("The DAM Book: Digital Asset Management for > Photographers") ASMP Evening and Next Day Presentations, Philadelphia, > PA--February 8-9 > -O'Reilly at RoR eXchange 2007, London, UK--Feb 9 > -Rob Orsini ("Rails Cookbook") at the North Bay Rails User's Group, > Sebastopol, CA--February 15 > -Rasmus Lerdorf at the 2007 PHP Conference, London, UK--February 23 > -Derrick Story ("Digital Photography Pocket Guide, 3rd Edition) > at NCMUG, Rohnert Park, CA--February 20 > -Emerging Telephony Conference 2007,Burlingame, CA-- > February 27-March 1 > -Rob Orsini ("Rails Cookbook") at SOCOSA, Sebastopol, CA--March 6 > -Peter Morville, "Information Architecture & Search" International > Master Class, Sydney, Australia--March 8-9 > -O'Reilly Authors at South by Southwest, Austin, TX--March 9-13 > -O'Reilly at ASTD TechKnowledge 2007, Las Vegas, NV-- > January 31-February 2 > -O'Reilly at the Photo Marketing Association, > Las Vegas, NV--March 8-11 > -O'Reilly at SD West, Santa Clara, CA--March 20-22, 2007 > ---------------------------------------------------------------- > Conference News > ---------------------------------------------------------------- > -New 40% Discount for the 2007 Emerging Telephony Conference > -Call for Participation for O'Reilly Open Source Convention > -Call for Participation for O'Reilly Energy Innovation Conference > -Register for ETech 2007 > -Register for Web 2.0 Expo > ---------------------------------------------------------------- > News > ---------------------------------------------------------------- > -Craftzine Interviews Amy Sedaris, Author of "I Like You: Hospitality > Under the Influence" > -David Pogue (Missing Manual Creator) talks with the Public Libraries > Association in the ?Podcast from Hell? > -Publishing for (Sales) Success > -New Course Featuring AJAX--O'Reilly/University of Illinois > Certificate Series > -Why I Stopped Coding and Why I'd Start Again > -Greylisting with PF > -Compare, Select, and Rate > -Free Pass for Photoshop World Tech Expo > -Digital Media Insider Podcast 6: Desktop Music in Japan > -Macworld 2007: 1984 All Over Again > -My Favorite Macworld Product: Indigo > -The Case for Freeware and Open Source Windows Tools > -The Five Best and Worst Things About Vista > -Word 2007 Missing Manual Screencast: Word's Ribbon > -Build a .NET App for Google Checkout > -Discovering a Java Application's Security Requirements > -Review/Preview: 2006 and 2007 in Java > -Accessible JavaScript > -SD West--Free Expo Pass > -Let's Speculate for 2007 > --------------------------------------------------------------- > New Releases--Books, PDFs, and Rough Cuts > ---------------------------------------------------------------- > Get 35% off from O'Reilly, No Starch, Paraglyph, PC Publishing, > Pragmatic Bookshelf, SitePoint, Syngress, or YoungJin books you > purchase directly from O'Reilly. > > Just use code DSUG when ordering online or by phone 800-998-9938. > > > Free ground shipping on orders of $29.95 or more. > For more details, go to: > > > Did you know you can request a free book or PDF to review for your > group? Ask your group leader for more information. > > For book review writing tips and suggestions, go to: > > > > ***Access 2007 for Starters: The Missing Manual > Publisher: O'Reilly > ISBN 10: 0596528337 > This fast-paced book teaches you the basics of Access 2007 so you can > start using the program right away. You'll learn how to design > databases, maintain them, search for valuable nuggets of information, > and build attractive forms for quick-and-easy data entry. > > > > ***ActionScript 3.0 Programming (PDF) > Publisher: O'Reilly > ISBN 10: 0596529236 > This Short Cut employs reusable code examples to demonstrate the basic > functionality of ActionScript 3.0 in the following topic areas: Packages > and Classes; Display Programming; Movie Clips and Buttons; and Basic > Structures. > > > > ***The Book of JavaScript, Second Edition > Publisher: No Starch Press > ISBN 10: 1593271069 > "The Book of JavaScript" teaches readers how to add interactivity, > animation, and other tricks to their web sites with JavaScript. Rather > than provide a series of cut-and-paste scripts, thau! takes the reader > through a series of real world JavaScript code with an emphasis on > understanding. Each chapter focuses on a few important JavaScript > features, shows how professional web sites incorporate them, and takes > readers through examples of how they might add those features to their > own web sites. > > > > ***Botnets: The Killer Web App > Publisher: Syngress > ISBN 10: 1597491357 > As a conscientious system administrator, network administrator, or > security professional, you've no doubt been frustrated by the lack of > good usable information about the latest, and most deadly internet > attack, botnets. > > > > ***Comp TIA RFID+ Study Guide and Practice Exam (RFO-001) > Publisher: Syngress > ISBN 10: 1597491349 > With the rising popularity of RFID technology, there is an increasing > need for RFID professionals. To help meet this need, CompTIA has just > introduced the RFID+ certification. > > > > ***CRAFT: Volume 02 > Publisher: O'Reilly > ISBN 10: 059651056X > Volume 02 of CRAFT, the first project-based magazine dedicated to the > crafting renaissance, is sure to inspire you with its theme of Creative > Replicas. Clone a designer handbag, needle felt faux fruit, have a > linoleum block print party, pay homage to your favorite art with a > fabric repro, spin unusual fibers, and much more! > > > > ***Cyber Crime Investigations > Publisher: Syngress > ISBN 10: 1597491330 > This foundational text examines the hard questions; the questions that > have the power to unite or divide the cyber crime investigative > community. Moving past current difficulties will allow cyber crime > investigations to progress to a new evolution. > > > > ***Developers Guide to Web Application Security > Publisher: Syngress > ISBN 10: 159749061X > This book defines Web application security, why it should be addressed > earlier in the lifecycle in development and quality assurance, and how > it differs from other types of Internet security. > > > > ***Eight Great Ways to Get the Most from Your Zune > Publisher: O'Reilly > ISBN 10: 0596529910 > The Zune is Microsoft's new media player. It does music. It does video. > It does pictures. In this quick guide, you'll learn the down and dirty > truth about getting the most from your Zune. No holds barred. No stones > unturned. > > > > ***Essential Electronics for Software Folk > Publisher: Pragmatic Bookshelf > ISBN 10: 0977616681 > Caleb Tennis explains it all. From a quick look at basic physics > (including fun with magnets) to electronic circuits, power supplies, and > networking, you'll see how it all works--and how to make it work for > you. > > > > ***Excel 2007 for Starters: The Missing Manual > Publisher: O'Reilly > ISBN 10: 0596528329 > Fast-paced and easy to use, this concise book teaches you the basics of > Excel 2007 so you can start using the program right away. You'll quick > learn to build spreadsheets, add and format information, print reports, > create charts and graphics, and use basic formulas and functions. > > > > ***Google Web Toolkit for Ajax (PDF) > Publisher: O'Reilly > ISBN 10: 0596510225 > The Google Web Toolkit (GWT) is a nifty framework that Java programmers > can use to create Ajax applications. The GWT allows you to create an > Ajax application in your favorite IDE, such as IntelliJ IDEA or Eclipse, > using paradigms and mechanisms similar to programming a Java Swing > application. After you code the application in Java, the GWT's tools > generate the JavaScript code the application needs. > > > > ***Introduction to Neogeography (PDF) > Publisher: O'Reilly > ISBN 10: 0596529953 > Learn what existing and emerging standards such as GeoRSS, KML, and > Microformats mean; how to add dynamic maps and locations to your web > site; how to pinpoint the locations of your online visitors; how to > create genealogical maps and Google Earth animations of your family's > ancestry; or how to geotag and share your travel photographs. > > > > ***The OpenBSD 4.0 Crash Course > Publisher: O'Reilly > ISBN 10: 0596510152 > OpenBSD is a Unix-like computer operating system that is widely regarded > for its excellent documentation and its fanatical focus on security. > "The OpenBSD Crash Course" Short Cut will help you get an x86 or > AMD64/EM64T server, desktop, or network appliance up and running quickly > with OpenBSD. > > > > ***Physical and Logical Security Convergence: Powered By Enterprise > Security Management > Publisher: Syngress > ISBN 10: 1597491225 > While physical and logical security disciplines are disparate, today's > threats are such that they need to be addressed in tandem. Gone are the > days when there was little to no communication between the IT and > physical security staff. Fraud investigation, complex incident analysis, > remediation, and incident tracking are just a few of the areas where > synergies between these groups can be leveraged. > > > > ***PowerPoint 2007 for Starters: The Missing Manual > Publisher: O'Reilly > ISBN 10: 0596527381 > This new book, written specifically for this version of the software, > not only offers the basics of how to create, save, set up, run, and > print a basic bullets-and-background slideshow, but takes you into the > world of multimedia, animation, and interactivity. You'll learn how to > add pictures, sound, video, animated effects, and controls (buttons and > links) to their slides, along with ways to pull text, spreadsheets, and > animations created in other programs. You can also create your own > reusable design templates and learn to automate repetitive tasks with > macros. Learn how to take advantage of advanced functions (such as > adding custom background images) that existed in previous PowerPoint > versions, but were so cleverly hidden that few people ever found them. > > > > ***Programming Firefox: Rough Cuts Version > Publisher: O'Reilly > ISBN 10: 0596529732 > This is the essential guide to building user interfaces and rich > internet applications for the Firefox web browser, the Thunderbird email > client and independent projects using free development tools from the > Mozilla Foundation. > > > > ***Rails Cookbook (Book or PDF) > Publisher: O'Reilly > ISBN 10: 0596527314 > This book is packed with the solutions you need to be proficient > developer with Rails, the leading framework for building the new > generation of Web 2.0 applications. Recipes range from the basics, like > installing Rails and setting up your development environment, to the > latest techniques, such as developing RESTful web services. Each recipe > includes a tested solution, plus a discussion of how and why it works. > > > > ***Rails for Java Developers > Publisher: Pragmatic Bookshelf > ISBN 10: 097761669X > In each chapter, we build a series of parallel examples to demonstrate > some facet of web development. Because the Rails examples sit next to > Java examples, you can start this book in the middle, or anywhere else > you want. You can use the Java version of the code, plus the analysis, > to quickly grok what the Rails version is doing. We have carefully > cross-referenced and indexed the book to facilitate jumping around as > you need to. > > > > ***Release It! > Publisher: Pragmatic Bookshelf > ISBN 10: 0978739213 > Everything changes after Release 1.0. The consultants leave; key > developers get reassigned to new projects, and the wild and free > environment of development gets replaced by change review boards and > defect reports. And the public starts beating on the system. Your > application needs to be ready to live in that environment--without you. > > > > ***Secure Your Network for Free > Publisher: Syngress > ISBN 10: 1597491233 > If you believe that an intrusion detection system, regular vulnerability > scanning, automated network device inventory, or firewall usage > statistics are not in the IT budget they are. All of these features and > many more are available for free. > > > > ***Software Testing Foundations, Second Edition > Publisher: Rocky Nook > ISBN 10: 1933952083 > This book covers the entry level, the "Foundations Level" and teaches > the most important methods of software testing. It is designed for > self-study and provides the necessary knowledge to pass the "Certified > Tester (Foundations Level)" exam as defined by the ISTQB. > > > > ***The OpenBSD 4.0 Crash Course (PDF) > Publisher: O'Reilly > ISBN 10: 0596510152 > OpenBSD is a Unix-like computer operating system that is widely regarded > for its excellent documentation and its fanatical focus on security. > "The OpenBSD Crash Course" Short Cut will help you get an x86 or > AMD64/EM64T server, desktop, or network appliance up and running quickly > with OpenBSD. > > > > ***Using Samba, Third Edition > Publisher: O'Reilly > ISBN 10: 0596007698 > This book is the comprehensive guide to Samba administration, officially > adopted by the Samba Team. Wondering how to integrate Samba's > authentication with that of a Windows domain? How to get Samba to serve > Microsoft Dfs shares? How to share files on Mac OS X? These and a dozen > other issues of interest to system administrators are covered. > > > > ***Using XForms with Mozilla (PDF) > Publisher: O'Reilly > ISBN 10: 0596550049 > The XForms technology gives you many advantages over ordinary XHTML > forms. The XForms technology separates your form's data and presentation > and submits your data as XML. XForms-aware applications can validate > your data as you type it and can also submit your data to different > servers and even store it in files. This tutorial shows you how to use > Mozilla to start working with XForms. > > > > ***What's New in Windows Vista? > Publisher: O'Reilly > ISBN 10: 0596510314 > Get ready for a quick blast through this significant change to Windows! > This guide will give you a quick look at many of the most significant > new features in Vista, Microsoft's first revision of Windows in nearly > six years. > > > > ***Windows Developer Power Tools > Publisher: O'Reilly > ISBN 10: 0596527543 > This book offers an encyclopedic guide to more than 170 free and open > source programming tools for those of you who want to extend your > development environment, write higher quality software, and increase > productivity. Each article includes a concise guide to implementing the > tool--you'll be able to get up to speed quickly and use the tools to > solve problems you face every day in your software development. > > > > ***Windows Vista for Starters: The Missing Manual > Publisher: O'Reilly > ISBN 10: 0596528264 > Fast-paced and easy to use, this concise book teaches you the basics of > Windows Vista so you can start using the operating system right away. > Written by "New York Times" columnist and Missing Manuals creator David > Pogue, the book covers Vista quickly and clearly so you can navigate the > desktop, the Media Center, Internet Explorer 7, and much more. > > > > ***Windows Vista in a Nutshell > Publisher: O'Reilly > ISBN 10: 0596527071 > This unique reference thoroughly documents every important setting and > feature in Windows Vista, with alphabetical listings for hundreds of > commands, windows, menus, listboxes, buttons, scrollbars and other > elements. To help you locate a specific setting, tool, or feature > quickly, the book is organized into separate references for the user > interface, file system, networking, hardware, security, mobility, > multimedia, and command prompt. Also includes a system overview and a > tour of the basics. > > > > ***Word 2007 for Starters: The Missing Manual > Publisher: O'Reilly > ISBN 10: 0596528302 > Fast-paced and easy to read, this concise guide teaches you the basics > of Word 2007 so you can start using the program right away. You'll learn > how to create documents, format and edit text, share the results, and go > beyond basic documents to handle graphics, create page layouts, and use > forms and tables. > > > > ***MAKE Magazine Subscriptions > MAKE Magazine Subscriptions > The annual subscription price for four issues is $34.95. When you > subscribe with this link, you'll get a free issue--one plus four > more for $34.95. So subscribe for yourself or friends with this > great offer for UG Members: five volumes for the cost of four. > Subscribe at: > > > > ***Craft Magazine Subscriptions > The annual subscription price for four issues is $34.95. When you > subscribe with this link, you'll get a free issue--the first one plus > four more for $34.95. So subscribe for yourself or friends with this > great offer for charter subscribers: five volumes for the cost of four. > Subscribe at: > > > ================================================ > Upcoming Events > ================================================ > ***For more events, please see: > > > ***O'Reilly at ASTD TechKnowledge 2007, Las Vegas, NV--January > 31-February 2 > Stop by the O'Reilly booth (#105) to say hi and learn about our Head > First Series. Scott Gray will be speaking about the O?Reilly Learning > program. > > > > ***Geek Cruise Features David Pogue, Deke McClelland, and Eddie > Tapp, Eastern Caribbean--February 3-10 > Join authors David Pogue (Missing Manual Series), Deke McClelland ("Adobe > Photoshop CS2 One-on-One"), and Eddie Tapp ("Practical Color Management") > on the "PC Paradise Speakers" Geek Cruise. > > > > ***O'Reilly at Conferencia Internacional de Software Libre 3.0--February 7-11 > Stop by our booth and check out the latest O'Reilly titles at this Free > Software World Conference. > > > > ***Peter Krogh ("The DAM Book: Digital Asset Management for > Photographers") ASMP Evening and Next Day Presentations, Philadelphia, > PA--February 8-9 > Author Peter Krogh will be teaching the "Get Your DAM Stuff Together" > track for ASMP's "It's Your Business" Series. > > > > ***O'Reilly at RoR eXchange 2007, London, UK--February 9 > Stop by our booth and check out the latest titles. Event speakers, > include Chad Fowler ("Rails Recipes:) who'll talk about the latest > developments of Ruby on Rails. > > > > ***Rob Orsini ("Rails Cookbook") at the North Bay Rails User's Group, > Sebastopol, CA--February 15 > Author Rob Orsini will be the presenter at the first meeting of the > North Bay Rails User's Group. > > > > ***Rasmus Lerdorf ("Programming PHP, Second Edition") at the 2007 PHP Conference--February 23 > Rasmus Lerdorf will be joined by other key speakers to discuss the state > of PHP. Don't forget to stop by our booth and check out our latest > titles. > > > > ***Derrick Story ("Digital Photography Pocket Guide, 3rd Edition) > at NCMUG, Rohnert Park, CA--February 20 > Author Derrick Story presents to the North Coast Mac Users Group. > Derrick will show the latest happenings in photo software for the Mac. > > > > ***Emerging Telephony Conference 2007,Burlingame, CA-- > February 27-March 1 > ETel brings you the best of what's happening at the cutting edge of the > entire IP telephony spectrum now, and how new technology is being > deployed by forward-thinking pioneers. > > > > ***Rob Orsini ("Rails Cookbook") at SOCOSA, Sebastopol, CA--March 6 > Author Rob Orsini will give an overview of Ruby on Rails at the Sonoma > County System Administrators March meeting. > > > > ***Peter Morville, "Information Architecture & Search" International > Master Class, Sydney, Australia--March 8-9 > This two-day class from Peter Morville (Information Architecture for the > World Wide Web, Third Edition and Ambient Findability) covers > information architecture from top to bottom, explaining how search and > navigation systems can be designed to support and shape user behaviour. > > > > ***O'Reilly Authors at South by Southwest, Austin, TX--March 9-13 > Kathy Sierra ("Head First Series"), Christopher Schmitt ("CSS Cookbook, > 2nd Edition"), Eric Meyer ("CSS: The Definitive Guide, Third Edition"), > and Phil Torrone (Makezine.com) will be speaking at SXSW Interactive > this year. > > > > ***O'Reilly at ah the Photo Marketing Association, > Las Vegas, NV--March 8-11 > Stop by the O'Reilly booth (#J244) to say hi, peruse our new titles, and > meet our expert authors. On hand will be Derrick Story, Mikkel Aaland, > Eddie Tapp, and more. > > > > ***O'Reilly at SD West, Santa Clara, CA--March 20-22, 2007 > Stop by the O'Reilly booth (# 217) to say hi. Check out our books, and > talk with O'Reilly editors and expert authors. Don't forget to enter our > drawing for great prizes including boxed sets of Make magazine. Watch > for the Jolt awards winners to be announced at this show. > > > > ================================================ > Conference News > ================================================ > ***New 40% Discount for the 2007 Emerging Telephony Conference > Explore the strategies for taming disruption and exploit opportunities > being created by web telephony innovations. February 27 to March 1, 2007 > in Burlingame, CA. > > > > Use code "etel07fnf40" when you register, and receive 40% off > the early registration price. > > To register for the conference, go to: > > > > ***Call for Participation for O'Reilly Open Source Convention > The next O'Reilly Open Source Convention, taking place July 23-27, 2007 > in Portland, Oregon, will bring over 2500 open source professionals > together to network, learn, and share the latest knowledge around open > source software. Share your favorite techniques, proven successes, and > newly-developed technology by leading sessions and tutorials at OSCON > 2007. Visit the Proposals page for more details and to submit your > ideas. Proposals are due no later than February 5, 2007. Registration > opens in April. > > > > ***Call for Participation for O'Reilly Energy Innovation Conference > Concern for the future of energy has reached critical mass. To explore > solutions to the world's significant energy challenges, O'Reilly has > launched its inaugural Energy Innovation Conference. We invite > technologists and strategists, CTOs and chief scientists, inventors, > researchers, programmers, hackers, policy makers, business developers, > and entrepreneurs to lead sessions and workshops at the 2007 Energy > Innovation Conference. The event is happening August 22-24, 2007 in San > Francisco, California. Proposals must be submitted by March 7, 2007. > For additional conference details and to submit a proposal, visit: > > > > ***Register for ETech 2007 > Last year ETech sold out to a standing room only audience, so don't > delay, lock in your registration today. Arthur C. Clarke said it best: > ?Any sufficiently advanced technology is indistinguishable from magic.? > Join us March 26-29, 2007 in San Diego as we make magic at ETech. > > > Use code "et07usrg" when you register, and receive 15% off > the early registration price. > > To register for the conference, go to: > > > > ***Register for Web 2.0 Expo > The Web 2.0 Expo is the first event specifically designed to help teach > Web 2.0 techniques and best practices to people in the trenches directly > involved in the design, development, engineering, marketing, and > business of second-generation internet technology. Register now and save > up to $200 on registration fees. Web 2.0 Expo happens April 15-18 at > Moscone West in San Francisco, CA. > > > > For complete conference information, go to: > > > ================================================ > News From O'Reilly & Beyond > ================================================ > --------------------- > General News > --------------------- > ***Craftzine Interviews Amy Sedaris, Author of "I Like You: Hospitality > Under the Influence" > Opening up Amy Sedaris's new book is like going into another world: the > world of Amy. For anyone who's a fan of her work, from the Comedy > Central TV show and movie, "Strangers with Candy," to her many comedic > scene-stealing guest appearances, you know and love Amy's world. > > > > ***David Pogue (Missing Manual Series Creator) talks with the Public Libraries > Association in the ?Podcast from Hell? > Interviewer Andrea Mercado says "This was, hands down, the most > interesting, humorous, and problem-laden interview I?ve done thus far, > part funny ha-ha, part funny uh-oh. You too can see why David calls > this the ?podcast from hell.? > > > > ***Publishing For (Sales) Success > Can eBooks be used for marketing consulting services? > Dave Hecker gives us his preliminary findings. > > > > ***New Course Featuring AJAX--O'Reilly/University of Illinois > Certificate Series > O'Reilly Learning is proud to announce their new Client-Side Web > Programming Certificate Series. These courses provide a complete > understanding of front-end web development, from HTML and CSS, to > JavaScript DOM and AJAX. > > > And don't forget, user group members receive a special 30% discount! > To redeem, use Promotion Code "ORALL1," good for a 30% discount, > in Step #3 of the enrollment process. Each course comes with a free > O'Reilly book and a 7-day money-back guarantee. Register online: > > > Other O'Reilly Learning Courses include: > -Linux/Unix System Administration > -Web Programming > -Open Source Programming > -.NET Programming > > --------------------- > Open Source > --------------------- > ***Why I Stopped Coding and Why I'd Start Again > What happens when programming stops being fun? What do you do when > juggling dependencies and worrying about installation issues takes all > of the joy out of writing code for other people? You can stop coding... > or you can try to address the underlying problems. Brian McConnell > postulates an enhancement of the Python language to make programming as > fun as it was in the BASIC-in-ROM minicomputer days. > > > > ***Greylisting With PF > Greylisting--delaying mail delivery briefly per the SMTP RFCs--is an > effective way to reduce the amount of incoming spam. While many > greylisting solutions require customization of your SMTP server, > OpenBSD's PF can do it too. Dan Langille shows how to use the powerful > packet filter to identify and pass legitimate mail, delay and divert > potential spammers, and throw in some OS fingerprinting to ward off > certain zombie clients. > > > --------------------- > Digital Media > --------------------- > ***Compare, Select, and Rate > Aperture's powerful sorting tools enable photographers to cull hundreds > of images quickly. This podcast features Derrick Story and Scott Bourne > explaining the compare, select, and rating tools, including stacks, > during a recent workshop at Macworld San Francisco. > > > > ***Free Pass for Photoshop World Tech Expo > The Photoshop World Tech Expo is open to the public one day only on > Thursday, April 5 from 10am to 5PM at the Hynes Convention Center in > Boston. If you are interested in mingling with the biggest names in the > industry and seeing the latest in Photoshop-related technology, you can > sign up for a free Tech Expo pass (valued at $20 per person) beginning > in late March. > > > > ***Digital Media Insider Podcast 6: Desktop Music in Japan > From Tokyo, David Battino interviews DTM Magazine's Daigo Yokota on the > state of Japanese music technology, tests Mixmeister's slick podcasting > software, and explores two cool songs on the DTM DVD. > > > --------------------- > Mac > --------------------- > ***Macworld 2007: 1984 All Over Again > Daniel Steinberg reports on the Macworld keynote. From the big iPhone > announcement and demo to the startling lack of Mac and Leopard news, > Daniel shares his impressions and provides detailed analysis of the > year's largest Apple event. > > > > ***My Favorite Macworld Product: Indigo > Each year Adam Goldstein likes to search out the cool new products at > Macworld. This year Adam takes a look at the powerful Indigo home > automation system. > > > --------------------- > Microsoft/.NET > --------------------- > ***The Case for Freeware and Open Source Windows Tools > In "Windows Developer Power Tools," James Avery and Jim Holmes tell you > about scores of incredibly useful, freely available tools for Windows > developers. In this article, they tell you about some of their favorite > ones. > > > > ***The Five Best and Worst Things About Vista > After five years, Windows Vista is finally here. What's good and what's > bad about it? Preston Gralla, author of "Windows Vista in a Nutshell," > tells you five things you'll love and five things you'll hate about > Vista. > > > For more info on Vista, go to: > > > > ***Word 2007 Missing Manual Screencast: Word's Ribbon > Get a closer look at how the Ribbon is Word 2007 works with > author Chris Grover ("Word 2007: The Missing Manual"). > > > For more examples from this title, go to: > > > > ****Build a .NET App for Google Checkout > Google Checkout, Google's online payment system, integrates with > websites such as Buy.com. In this article, Google's Martin Omander > details Google Checkout's plumbing and shows you how to build a .NET > application to integrate with it. > > > --------------------- > Java > --------------------- > ***Discovering a Java Application's Security Requirements > Java security manager policy files are powerful and flexible, but rather > grueling and error-prone to write by hand. In this article Mark Petrovic > employs a novel approach: a development-time SecurityManager that logs > your applications' calls and builds a suitable policy file. > > > > ***Review/Preview: 2006 and 2007 in Java > 2006 will be remembered as the year that Sun open-sourced Java under the > GPL, that EJB 3.0 finally shipped, and that Google surprised everyone > with its Google Web Toolkit. But how will history record the results of > these events? For the 2006 year-ender, ONJava editor Chris Adamson looks > at the year's events through the lens of how they may play out in 2007. > > > > ***Accessible JavaScript > Can developers make their JavaScript-based websites > accessible to visitors using screenreaders and other > assistive technology? James Edwards takes a look at > some basic issues. > > > --------------------- > Web > --------------------- > ***SD West--Free Expo Pass > Sign up for a free expo pass that grants you access to the expo floor > plus admission to the opening floor party, technical sessions, the > google party, the developer bowl, awards night and all keynotes. > > > > ***Let's Speculate for 2007 > Sitepoint blogger Wyatt Barnett makes some gutsy predictions > about web development in 2007. Chime in with your > guesses and comments. > > > > Until next time-- > > Marsee Henon > > > ================================================================ > O'Reilly > 1005 Gravenstein Highway North > Sebastopol, CA 95472 > http://ug.oreilly.com/ http://ug.oreilly.com/creativemedia/ > ================================================================