From george at metaart.org Mon Jan 1 20:33:07 2007 From: george at metaart.org (George Woolley) Date: Mon, 1 Jan 2007 20:33:07 -0800 Subject: [oak perl] Review of "Bash Quick Reference" Message-ID: <200701012033.07832.george@metaart.org> Hi All, There's a short review of "Bash Quick Reference" (short cut) on our site at http://www.metaart.org/opug/reviews/short_bashqr.html should you wish to read it. George P.S. for Marsee: I also submitted the review on O'Reilly's site. From george at metaart.org Fri Jan 12 22:18:25 2007 From: george at metaart.org (George Woolley) Date: Fri, 12 Jan 2007 22:18:25 -0800 Subject: [oak perl] Fwd: Perl Opportunity Message-ID: <200701122218.25014.george@metaart.org> ---------- Forwarded Message ---------- Subject: Perl Opportunity Date: Friday 12 January 2007 16:42 From: "Elise Holland" ... -----Original Message----- Hello, Happy New Year! My name is Elise Holland and I am one of the owners of a boutique recruiting agency (TriNova). One of our clients (described below) is looking for a talented OO Perl developer to function as their lead Web developer. I think this is a wonderful opportunity for the right person as it's an interesting, niche-oriented company with a fun, intellectually-stimulating crew of people on board. Given that they are in Berkeley, I thought that someone in your users group (Oakland PM) may be interested in hearing about this. Is this something you might be interested in? Or, do you know anyone who may be interested? I would be happy to provide more information, if so. Also, my firm gladly pays referral bonuses if we place your referrals. Thank you so much in advance for any help. All the best, Elise Elise Holland TriNova, LLC 415.834.1311 www.trinova.com ABOUT THIS COMPANY: Founded by academics in 1999, this company produces tools to improve scholarly communication. These tools provide innovative and effective means of content production and dissemination. In order to drive and define this new market, they have built a top-notch crew of diverse, intelligent, upbeat professionals. Now, they need to hire a talented Lead Developer with Architect/Manager potential (more about this below). Their products break down into two basic areas; Publications: Company publishes high quality peer-reviewed journals, as well as working papers, institutional repository materials, and A wealth of other scholarly information. Services: Company develops and licenses technologies to help the academic community produce, archive, and disseminate scholarly work. ABOUT THIS JOB: Senior Web Developer (Perl) / Team Lead We are a provider of cutting-edge, Web-based solutions for the academic/scholarly community. We are a small, growing Berkeley-based company with a collaborative work-environment where technical and non-technical colleagues work together to create great software, serve our customers and create the future of academic publishing and scholarly career solutions. We're looking to hire a senior software engineer with extensive Perl experience. Our existing software architecture is mature and provides the base for multiple existing products. We are both evolving existing products and building new products on the existing software infrastructure. Other features of this opportunity: . Possibility of growing into a management role, if desired . Significant input to architecture and design decisions . Competitive salary and excellent benefits . Laid-back, fun work atmosphere General requirements: o Senior-level Web-based software engineer in terms of experience, maturity, focus, productivity, technical capabilities, and communication skills o Strong OO Perl skills o Strong Unix skills o Work as a part of team that ensures 24/7 operation; some off-hours work required Ideally, this person will have several years experience with a commercial, high-volume Apache/mod_perl/SQL database backed website. Will have experience with as many of the following as possible: CGI / HTML / Javascript / HTTP / XML / SQL /Apache plus familiarity with some type of template-based programming (PHP, ASP, ColdFusion, XSLT, etc.) Desirable experience/skills: . Familiarity with document/content management systems . DBA knowledge . Experience developing workflow-oriented applications . Automated e-mail processing . AJAX . Knowledge of CVS or other version control . PDF processing . Web UI design skills and usability knowledge ------------------------------------------------------- From david at fetter.org Mon Jan 15 12:14:31 2007 From: david at fetter.org (David Fetter) Date: Mon, 15 Jan 2007 12:14:31 -0800 Subject: [oak perl] Internationalizing a Perl application Message-ID: <20070115201431.GE10489@fetter.org> Kind people, With DBI-Link's growing popularity world-wide, I'm getting more requests for translation of the docs and strings. This presents a huge bunch of opportunities for me to make mistakes, so I'm asking for the collective wisdom out there. * Where do I start? * What are some good techniques for dividing the work? * What am I going to stub my toes on no matter what I do? * What pains can I avoid, and how? Cheers, Dave. -- David Fetter http://fetter.org/ phone: +1 415 235 3778 AIM: dfetter666 Skype: davidfetter Remember to vote! From david at fetter.org Mon Jan 15 15:24:51 2007 From: david at fetter.org (David Fetter) Date: Mon, 15 Jan 2007 15:24:51 -0800 Subject: [oak perl] [sf-perl] Internationalizing a Perl application In-Reply-To: <20070115230651.GB33954@fu.funkspiel.org> References: <20070115201431.GE10489@fetter.org> <20070115230651.GB33954@fu.funkspiel.org> Message-ID: <20070115232451.GJ10489@fetter.org> On Mon, Jan 15, 2007 at 03:06:51PM -0800, Quinn Weaver wrote: > On Mon, Jan 15, 2007 at 12:54:05PM -0800, Matthew Lanier wrote: > > > > [ posted to sfpug only, i certainly can't post on the other pugs ] > > > > David- > > > > first, congrats on needing to internationalize DBI-Link. that's a > > good sign. > > > > As for the docs, have you run them through babbelfish or something > > of that ilk? if the results are sufficient, I question the need > > to translate them now, and to continue translating future > > revisions, as you could instruct folks to babbelfish it > > themselves. > > Bad idea. Babelfish can barely handle the most basic English, and > technical writing will foul it up beyond belief. Babelfish is so > bad that laughing at its incomprehensible translations has become a > party game. :) OK, I'll just use Babelfish for its entertainment value :) > > As for the strings (are you talking about error codes and such), > > can you make them constants and map the constants to descriptive > > error strings in the docs? > > Good idea. For error codes, there should be a localized > human-readable explanation, but there should also be an invariant > code. That way client code (if there's any kind of API or log) will > work no matter what the locale. I'm unclear as to the differences between locale and encoding, but I'm thinking that for a given PostgreSQL database where the software is installed, it should have sane defaults for error messages. > If you're writing a log, you should begin messages with a number > (the constant Matt mentions). OK, I'll see what I can do about this. I suspect SQL error codes may play a part. > If people are writing client code against your API, it's a must to > die with object-oriented exceptions, rather than strings. Perl Best > Practices explains how to do this; see p. 287, OO Exceptions (in > Chapter 13, Error Handling). > > I'm not sure exactly how this applies to DBI-Link--would people > write "client" code against it?--but David can figure out that part. Depends what you mean by "client" code. DBI-Link is a little like DBI, except that I can't really picture what "subclassing" it would mean. Generally, people use SQL with DBI-Link, and it's usually so transparent that they may not even know it's installed. > As to the rest... I have prepared a lengthy email with a bunch of > advice, ubt I'm waiting to get subscribed to all the CC'ed lists so > I can send it out all at once. Hold in there... Thanks :) (Cheers|Sant??|Salud|????????????), D -- David Fetter http://fetter.org/ phone: +1 415 235 3778 AIM: dfetter666 Skype: davidfetter Remember to vote! From quinn at fairpath.com Mon Jan 15 18:02:07 2007 From: quinn at fairpath.com (Quinn Weaver) Date: Mon, 15 Jan 2007 18:02:07 -0800 Subject: [oak perl] [sf-perl] Internationalizing a Perl application Message-ID: <20070116020207.GB28294@tao.fairpath.com> On Mon, Jan 15, 2007 at 12:14:31PM -0800, David Fetter wrote: > Kind people, > > With DBI-Link's growing popularity world-wide, I'm getting more > requests for translation of the docs and strings. This presents a > huge bunch of opportunities for me to make mistakes, so I'm asking for > the collective wisdom out there. I have many individual clues. Hopefully they add up to something useful. First of all, you really have two tasks: I) translate the documentation, which basically just requires some human translators, and II) translate the strings in the program, which requires some human translators plus retrofitting DBI-Link with internationalization and localization (I18N / L10N) code. Don't worry; it's not painful. Now, some definitions. These all apply to task II. I'm giving them because you asked the difference between locale and encoding; forgive me if I'm repeating the obvious. A. locale: the "culture" in which your app is running--for instance Spanish, American English, or British English. Locales determine language, and sometimes things like number formatting (think 3,14 versus 3.14). Probably you just have to worry about language. There's an RFC that defines the familiar two-letter codes for locales, like es, en-US, and en-GB. See http://en.wikipedia.org/wiki/Locale . Your program finds out what locale it's running in by querying the operating environment somehow. You'll want to use some library like GNU gettext that will take care of these details for you. B. internationalization (a.k.a. I18N): the process of (re)writing your app so that it can support different locales. In common practice (e.g. with gettext), this means wrapping all your English strings with some function that will return the English in an English locale, and the appropriate translation in any other locale. Of course, this requires a database of translation strings, which brings us to... C. localization (a.k.a. L10N): the process of adding translations. First you internationalize it; then you add a database of translation strings for Italian, a database for Chinese, et cetera. There's a nice separation of concerns, so that you just add a new file for each new language; you don't have to change your actual code, and, in fact, you can accept localization databases (or "modules") from non-coders, which is just what you want to do. So much for I18N and L10N. Now on to encoding, a separate issue: D. encoding: how you represent a language on the level of bits and bytes. Familiar encodings are ASCII, UTF-8 (one of several Unicode encodings), and ISO-Latin-1. You don't need to know much about these, because you want to use UTF-8, a Unicode encoding. Trust me. E. Unicode: a standardized character set that encompasses all the written languages of the world (well, all the ones that someone's bothered defining standards for. There's space for many more. People are actively reserving that space and adding new languages, like Tibetan). Unicode has become _the_ standard encoding for written language. It's supported much more widely than anything else. F: UTF-8: the most popular way of encoding Unicode. One big advantage of UTF-8 is that it's a proper superset of ASCII. That means all ASCII strings are already UTF-8. (For languages like Chinese which have many characters, UTF-8 uses a special "escape" character followed by multibyte characters.) Encoding summary: use UTF-8 and don't worry about it. :) (You may need to alter your regexes slightly, but this is true for any encoding besides ASCII. I'll explain further later on.) Now, with these definitions out of the way, I'll take a stab at your other questions: > * Where do I start? 1. Probably the people who are requesting translations are the very people most able to provide them. They're contacting you in English to make the request, right? And they're native speakers of the target language? They're certainly motivated, and they probably have contacts among other DBI-Link users (e.g. at work) who are also native speakers. In other words, when people ask "Why aren't there docs in Portuguese?" you say, "Because you haven't written them yet." ;) 1a. If they're willing, send them the English localization module file, and have them translate it into their native language (written in UTF-8, of course). This is easy; it's just a bunch of strings. 1b. It may be harder to get them to commit to translating the documentation, but if they're willing, great! 1c. If they can't do it, ask them if they know someone who can. 2. There have been attempts to mount organized translation projects for (e.g.) the Linux HOWTOs. I don't know how successful these have been. You should try searching for "translation project" or "Linux translation project", or the like. > * What are some good techniques for dividing the work? 3. From a linguistic perspective, give translators full control. Your role is to accept and present/distribute what they produce. 3a. Temper this with instant peer review. Use a wiki or some other user-editable format so other native speakers can improve and clarify. 4. From a technical perspective, GNU gettext is popular among C programmers. As I wrote earlier, it lets you write and maintain a separate localization module for each language, without mucking with the code. This is a good model. If you have to use it, you're in pretty good shape. 4b. There is a Gettext module on CPAN that interfaces to GNU gettext. As a side note, it's written by James Briggs, who used to run Silicon Valley Perl Mongers (dormant since August). 4c. There may be something even better. Perl Monks is a good place to ask about what is really useful. > * What am I going to stub my toes on no matter what I do? 5. To get proper Unicode support, you must use Perl 5.8 or higher. However, I think DBI-Link already has this requirement--right? So maybe it's not an issue. > * What pains can I avoid, and how? 6. Use UTF-8! Picking an encoding used to be a big issue, but UTF-8's wide adoption solves that problem. 6a. That said, you'll have to learn how to handle Unicode properly in your Perl code, including your regexes. 6a(i). Advanced Perl Programming (Second Edition only) has a chapter on Unicode. I see this by looking up the Table of Contents in Safari. I haven't read that chapter, but you should check it out. 6a(ii). Perl Best Practices p. 248 says you should use Unicode character classes within regexes, using the \p{} syntax (because character classes like [A-Za-z] won't capture all Unicode). man perlunicode(1) for details. 7. Wherever possible, recruit native speakers of your target languages. If you use non-native translators, no matter how fluent they are, they will make mistakes. These can range from amusing (think of all those badly translated Japanese video games) to downright confusing. 7a. On the other hand, bad translation are better than no translations. If you can't find a native speaker, and someone else is volunteering, let them go for it. Again, always use a wiki (or similar) format so people can make corrections. OK, I hope all that helps. I know it's somewhat desultory. You can see there are big gaps in what I know, but I hope you can pick up on some of these leads. If they prove helpful, consider including me in the DBI-Link credits. Good luck, -- Quinn Weaver DBA Fairpath http://fairpath.com/quinn/contact/ President, San Francisco Perl Mongers http://sf.pm.org/ From david at fetter.org Wed Jan 17 12:38:08 2007 From: david at fetter.org (David Fetter) Date: Wed, 17 Jan 2007 12:38:08 -0800 Subject: [oak perl] fwd: Internationalizing a Perl application In-Reply-To: <45ACE907.1090907@ngo.org.uk> References: <20070115201431.GE10489@fetter.org> <4c714a9c0701151219p56c90d56k33fc3c55497e12e7@mail.gmail.com> <45ACE907.1090907@ngo.org.uk> Message-ID: <20070117203808.GJ20683@fetter.org> Folks, I'd like to get this one in the archives. Thanks to Nik Clayton of London.pm for this, and to David Alban for asking London.pm about it :) Cheers, D On Tue, Jan 16, 2007 at 03:02:31PM +0000, Nik Clayton wrote: > >With DBI-Link's growing popularity world-wide, I'm getting more > >requests for translation of the docs and strings. This presents a > >huge bunch of opportunities for me to make mistakes, so I'm asking for > >the collective wisdom out there. > > > >* Where do I start? > > Ignoring the documentation aspect, and just dealing with your application's > output for the time being. > > You need to: > > a) Have a mechanism that, given a string-code, can return the correct > version of that string given the users preferred language choice. > > b) Have a mechanism to allow users to specify their preferred language. > > c) Have translations of your strings available. > > For (a) and (b) I recommend using Locale::Maketext::Simple, which does most > of the hard work for you. This supports keeping your translations in > separate files (en.po for English, fr.po for French, and so on), and, given > a string, finds the translation of that string. > > It handles most of the hard work concerning what to do with different > languages and how they behave with things like plurals. > > I do this in SVN::Web. Internally, any string that might be displayed to > the user is represented as "(short string)" -- I use brackets because it > makes it obvious in the user interface if an untranslated string is being > displayed. > > Then the proper representations of those strings (even the English ones) > are kept in separate files. Locale::Maketext::Simple provides loc_lang() > (to set the current language) and loc() (to look up a strings > representation in the language dictionary). So the code looks something > like: > > my $lang = get_users_preferred_language(); # 'en', 'fr', etc > > loc_lang($lang); # Set the preferred language > > print loc('(choose repos)'); > > If $lang is 'en' then it will look in the English dictionary, which has > this entry; > > msgid "(choose repos)" > msgstr "Please select a repository to browse:" > > fr.po has this in it. > > msgid "(choose repos)" > msgstr "Veuillez selectionner le depot parcourir :" > > Same message id, different message string. > > You can either use Locale::Maketext::Simple as is, or you can subclass it > if you need new functionality. I had to do that in SVN::Web, where I need > to be able to add new paths to language dictionaries at runtime. You can > see the resulting code in SVN::Web::I18N. > > So, broadly: > > 1. Get Locale::Maketext::Simple working > > 2. Use loc_lang() to set the current language > > 3. Replace code like > > print "This is a string"; > > with code like > > print loc("(this-is-a-string)"); > > and in en.po have > > msgid "(this-is-a-string)" > msgstr "This is a string" > > You don't have to use the same convention with braces that I have. > > You can do variable interpolation in to translated strings using %1, %2, %3 > placeholders. For example, given this entry in the .po file: > > msgid "(file not found: %1 %2)" > msgstr "File '%1' could not be found in directory '%2'" > > you'd write code like so: > > print loc('(file not found: %1 %2)', $file, $directory); > > Suppose you then want to change the output. The code stays the same, but > the msgstr becomes: > > msgstr "Directory %2 does not contain file %1" > > Your dictionary can also specify many alternatives depending on the value > of a parameter. For example, suppose you want to write: > > my $duration = a_long_process(); > print "Process took $duration seconds"; > > But you might be on really fast hardware, and it only took one second. > Typically you might solve that with: > > print "Process took $duration second" . $duration != 1 ? 's' : ''; > > With message dictionaries you can put that logic in the dictionary instead. > > print loc('(%1 second)'); # in the code > > msgid "(%1 second)" > msgstr "%quant(%1, second, seconds)" > > See SVN::Web::I18N for code, Locale::Maketext::TPJ13 for an article from > "The Perl Journal" which should help make some of this clear. > > Hope that helps, > > N -- David Fetter http://fetter.org/ phone: +1 415 235 3778 AIM: dfetter666 Skype: davidfetter Remember to vote! From doom at kzsu.stanford.edu Thu Jan 25 01:16:33 2007 From: doom at kzsu.stanford.edu (Joe Brenner) Date: Thu, 25 Jan 2007 01:16:33 -0800 Subject: [oak perl] [sf-perl] Internationalizing a Perl application In-Reply-To: <20070116020207.GB28294@tao.fairpath.com> References: <20070116020207.GB28294@tao.fairpath.com> Message-ID: <200701250916.l0P9GXU4023793@kzsu.stanford.edu> Quinn Weaver wrote: > David Fetter wrote: > > * What pains can I avoid, and how? Don't use built-up strings. Programmers like to do clever things like write a generic message where nouns are filled in like a game of madlibs: Could not find the ____ named _____, please try a different one. Then they hand that off to be localized, even though it's effectively impossible to do it (e.g. in many languages different nouns have different "gender", which changes the appropriate determiner to use in place of "the"). Other potential gotchas: The order of words can change in translation. Plurals don't just get an "s" tacked on the end. You can cover your self on almost all of these problems if you code all messages in complete sentences. In the above example you want to have a separate "Could not find" string for each noun, even if it seems really redundant to do it that way in English. It's probably okay to have a string you're going to substitute a number into ("Found ___ matches."), but you should keep in mind you'll want separate strings for the singular and plural case. Complete sentences also help provide a little context for the linguists, who can easily have trouble figuring out how a string is used by the software (if you just see the string "file", how do you know if that's a noun or a verb?). There are other potential headaches that hopefully you won't be stung by. For one thing, strings can expand a lot in translation (english is a pretty tight language). Even if you're using an automatic layout manager, that can still be a problem (differential expansion rates can invert a ratio: the designer expected one line would always be shorter than another, but... ). Another good one is when you need to choose keyboard shortcuts that use letters in the command names. Some languages work a smaller set of letters harder than English does, making it impossible to choose an unambiguous set of shortcuts for a given menu. One of my all time favorite problems was running into a synonym shortage in the target language: The English app had commands to "search", "find", "seek", "browse"... and there were only two available similar words we could use in translation. That then messed up the context sensitive help (which could no longer figure out which search/find/seek/browse thingie we were talking about). (I used to do this stuff for a living, in case you couldn't tell, though that was a long time ago... we had only barely heard of UTF8 in those days.) From david at fetter.org Thu Jan 25 12:17:38 2007 From: david at fetter.org (David Fetter) Date: Thu, 25 Jan 2007 12:17:38 -0800 Subject: [oak perl] [sf-perl] Internationalizing a Perl application In-Reply-To: <200701250916.l0P9GXU4023793@kzsu.stanford.edu> References: <20070116020207.GB28294@tao.fairpath.com> <200701250916.l0P9GXU4023793@kzsu.stanford.edu> Message-ID: <20070125201738.GD26502@fetter.org> On Thu, Jan 25, 2007 at 01:16:33AM -0800, Joe Brenner wrote: > Quinn Weaver wrote: > > > David Fetter wrote: > > > > * What pains can I avoid, and how? > > Don't use built-up strings. Programmers like to do clever things like > write a generic message where nouns are filled in like a game of > madlibs: [many good suggestions elided] Thanks, Joe :) Cheers, D -- David Fetter http://fetter.org/ phone: +1 415 235 3778 AIM: dfetter666 Skype: davidfetter Remember to vote! From david at fetter.org Thu Jan 25 12:17:38 2007 From: david at fetter.org (David Fetter) Date: Thu, 25 Jan 2007 12:17:38 -0800 Subject: [oak perl] [sf-perl] Internationalizing a Perl application In-Reply-To: <200701250916.l0P9GXU4023793@kzsu.stanford.edu> References: <20070116020207.GB28294@tao.fairpath.com> <200701250916.l0P9GXU4023793@kzsu.stanford.edu> Message-ID: <20070125201738.GD26502@fetter.org> On Thu, Jan 25, 2007 at 01:16:33AM -0800, Joe Brenner wrote: > Quinn Weaver wrote: > > > David Fetter wrote: > > > > * What pains can I avoid, and how? > > Don't use built-up strings. Programmers like to do clever things like > write a generic message where nouns are filled in like a game of > madlibs: [many good suggestions elided] Thanks, Joe :) Cheers, D -- David Fetter http://fetter.org/ phone: +1 415 235 3778 AIM: dfetter666 Skype: davidfetter Remember to vote! From george at metaart.org Fri Jan 26 23:14:44 2007 From: george at metaart.org (George Woolley) Date: Fri, 26 Jan 2007 23:14:44 -0800 Subject: [oak perl] Fwd: Newsletter from O'Reilly UG Program, January 26 Message-ID: <200701262314.44266.george@metaart.org> ---------- Forwarded Message ---------- Subject: Newsletter from O'Reilly UG Program, January 26 Date: Friday 26 January 2007 16:53 From: "Marsee Henon" ... ================================================================ 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/ ================================================================ -------------------------------------------------------