Friday, August 31, 2012

adium: skype dialogues initiated by sb else don't make their way to adium

I posted this problem to the Adium Beta forum on forums.cocoaforge.com .

cocoaforge • View topic - skype dialogues initiated by sb else …

the Apache web server on openSUSE

browsers and their developer tools

(from Head First jQuery)

upgrading my ASUS portable PC to openSUSE-12.1

During the installation (on system "a") itself the only problem I faced was, that fetchmsttfonts had to get skipped.

My grub bootloader problem:

The first relevant problem then: grub does not boot the system, complaining like this:
kernel …
Error 22: No such partition
Press any key to continue…
How to recover?

I searched the web for "Error 22: No such partition", and I recognised, that grub enumerates the internal disks somehow inconsistently not quite, as you expect it. 

You can change bootloader details ad hoc within the bootloader – but if you want to get details changed in an enduring way, you have to change the config file /boot/grub/menu.lst.

The grub bootloader has a notation of (HARD_DISK,PARTITION)FILE_WITH_PATH, and it supports file name completion. So change the HARD_DISK, shorten the FILE_WITH_PATH a little, and get it completed. If it does get completed, than obviously it exists, otherwise change your HARD_DISK number, try again!

If you want to change the config file: boot into the Rescue System, mount the boot disk on /mnt (e.g.), and edit /mnt/boot/grub/menu.lst on the boot disk.

Update 2012-09-14:
Actually the hard disk numbering is determined by the order within .../boot/grub/device.map ; I suggest you change the order there and you use a meaningful numbering within .../boot/grub/menu.lst .

My X11 problem:
/var/log/xorg... mentioned, it loaded /etc/X11/xorg.conf and also config files from /etc/X11/xorg.conf.d/ . I removed /etc/X11/xorg.conf and everything was fine.

Power management:
Letting the system sleep and esp. awake again still does not work.
Hibernation …

how to transfer all modules from one perlbrew environment to another?

I mean something like rvm's migrate resp. upgrade.
Looks like list-modules helps me there.

I had to upgrade somehow, but the published path didn't work for me. After I removed $HOME/.perlbrew and I did a fresh installation, I was successfully upgraded.
Now this runs smoothly:
$ perlbrew list-modules
Right now I am running a
$ perlbrew upgrade-perl # upgrading to 5.16.1
And I hope, even this will run smoothly afterwards:
$ perlbrew list-modules | perlbrew exec --with perl-5.16.1 cpanm 
It said:

Upgrading perl-5.16.0 to 5.16.1
Fetching perl-5.16.1 as /usr/local/perlbrew/dists/perl-5.16.1.tar.bz2
Installing /usr/local/perlbrew/build/perl-5.16.1 into /usr/local/perlbrew/perls/perl-5.16.0

Installing 5.16.1 broke today. Alright, I will try something else:
$ perlbrew list-modules | perlbrew exec --with perl-5.14.2 cpanm

I had a few messages like this one:
! Finding HTML-TableExtract on cpanmetadb failed.
Installing manually with cpanm replacing "-" by "::" worked anyway, eg. HTML::TableExtract instead of HTML-TableExtract.

==========


I will try installing ("upgrade-perl") 5.16.1 again sooner or later …

I wonder, what this will say afterwards:
$ perlbrew list
Will it list 5.16.0 and also 5.16.1?

I like my "stable" alias:
$ perlbrew alias create perl-5.16.1 stable 

Thursday, August 30, 2012

EC2 DNS - SSH into EC2 instances via their public hostnames

fruux/ec2dns

[scraping related] how does a browser tell a web-server, that it doesn't want JavaScript?

Rephrasing …
If I tell a browser to not "accept" JavaScript, what does the browser do with that directive?

  • is that related to the User-Agent or Accept HTTP header fields?
  • does that "just" mean, that the browser doesn't execute the JavaScript bits?

(where to disable JavaScript in browsers? [link])

Does Michael Schrenk talk about this in his book or on the related website?

Webbots, Spiders, and Screen Scrapers:







He mentions JavaScript a couple of times.
  • "JavaScript can change a form just before submission", page 70 – nope
  • "bizarre JavaScript and cookie behavior", page 229 – nope
  • "web design techniques that hinder search engine spiders", esp. JavaScript, page 300 – nope
  • "killing spiders", "use cookies, encryption, JavaScript, and redirection", page 313 – nope

X11 with nvidia proprietary drivers on openSUSE-12.1 in conflict kernel module

Yesterday I installed nvidia's proprietary drivers from within yast from the respective community repository, and restarted rcxdm thereafter. No, I didn't reboot the machine then. Everything seemed fine then.

This morning I booted the machine after its nightly sleep, and I launched this:
root# rcxdm start
And that failed, saying this:
[   317.548] (EE) NV: The PCI device 0x10de06e9 (GeForce 9300M GS) at 01@00:00:0 has a kernel module claiming it.
[   317.548] (EE) NV: This driver cannot operate until it has been unloaded.
[   317.548] (EE) No devices detected.
Alright:
root# rmmod nvidia
root# rcxdm restart
Success. Not really fixed the problem, but at least I know my way around.

how to reach the screensaver on openSUSE's KDE?

Looks like I can start it through "run command…", but I looked around a lot, and I cannot find it in the menu tree. Isn't that odd?

Wednesday, August 29, 2012

DRBD (Distributed Replicated Block Device) is a distributed storage system for the GNU/Linux platform

I am having a look into this interesting technology.
  • en.wikipedia.org/wiki/DRBD
  • the official website: DRBD.org
  • distributed storage system
  • "DRBD layers logical block devices (…) over existing local block devices on participating cluster nodes. … and may be used both below and on top of the Linux LVM stack. …"
  • failover, failbackswitchoversplit brain

Gearman: distributing appropriate computer tasks to multiple computers, so large tasks can be done more quickly

I am having a look into this interesting technology.
  • en.wikipedia.org/wiki/Gearman
  • the official website: Gearman.org
  • it is Open Source
  • The name "Gearman" was chosen as an anagram for "Manager", "since it dispatches jobs to be done, but does not do anything useful itself."
  • have a look at the documentation at Gearman.org [Link]
  • "Getting Started with Gearman" [Link]
"Through Gearman, the job server, client, and worker can all be running on separate machines."

bazaar (software, "bzr") is a distributed revision control system sponsored by Canonical

Bazaar (software) - Wikipedia, the free encyclopedia

plupload - a tool for uploading files using Flash, Silverlight, Google Gears, HTML5 or Browserplus

Plupload - A tool for uploading files using Flash, Silverlight, Google Gears, HTML5 or Browserplus

I am having a look into this awesome technology for uploading files.

  • implemented in JavaScript plus … – your interface is in JavaScript
  • it is Open Source
  • find it listed and compared at en.wikipedia.org/wiki/Upload_components
  • the official website: plupload.com
  • have a look at the examples at plupload.com [Link]
  • have a look at the documentation at plupload.com [Link]
  • they also have forums at plupload.com [Link], one of them is called Tutorials

where to disable JavaScript in browsers

This list will not be complete, I just gave it such a general name, so that it's short enough.
  • Chromium, Google Chrome: Settings > Privacy > Content settings > JavaScript > Manage exceptions > JavaScript exceptions > Hostname pattern
  • Mozilla Firefox: Firefox itself only has the general JavaScript Yes/No switch; through NoScript you can declare a site untrusted; there is a NoScript multi-function button on your navigation toolbar, that helps you with that

Ruby: can I name the class of a particular variable? is there something like "is_a?"?

What is a simple / elegant way in Ruby to tell if a particular variable is a Hash or an Array? - Stack Overflow

The answer is of course: yes, you can.
And: yes, exactly.

XmlSimple treats elements with attributes as Hash, w/o attributes they are simply String.

"googlecl-0.9.12 -> googlecl-0.9.13" brought a change, where a specific element now does not have attributes any longer, and this broke my code, that reads "google contacts list … --fields=xml".

Solved one of my two urgent home software problems.

if the X.Org X11 drivers cannot read my display's EDID …

... – how can I supply the display capabilities to X11 anyway?

Tuesday, August 28, 2012

my X11 sessions keep aborting all of a sudden

That's a new phenomenon with openSUSE-12.1 on my ASUS notebook
NOUVEAU(0): Chipset: "NVIDIA NV98"

My /var/log/Xorg.0.log shows a Backtrace, then "Fatal server error":
Caught signal 3 (Quit). Server aborting
I found similar reports dating back to 2011, suggesting to try a new kernel. Well, I should have newer kernels.

Maybe I should give the proprietary nvidia X11 binaries a try.
I have to add the nvidia repository for that: "nVidia Graphics Drivers" – you find them within the "Community Repositories". If you search the "Software Management" for nvidia, simply choose the ones with the largest revision numbers, although they sound like they match only newer GPUs.

Update 2012-08-29:
The nvidia X11 driver seems to support the chipset:

[   693.912] (--) NV: Found NVIDIA GeForce 9300M GS at 01@00:00:0
[   693.912] (II) Loading /usr/lib/xorg/modules/drivers/nv_drv.so
Update 2012-08-30:

[  1374.741]
Backtrace:
[  1374.741] 0: /usr/bin/Xorg (xorg_backtrace+0x37) [0x80a86b7]
[  1374.741] 1: /usr/bin/Xorg (0x8048000+0x64a0a) [0x80aca0a]
[  1374.741] 2: (vdso) (__kernel_rt_sigreturn+0x0) [0xffffe40c]
[  1374.741] 3: /lib/libc.so.6 (__select+0x28) [0xb733c8d8]
[  1374.741] 4: /usr/bin/Xorg (WaitForSomething+0x18c) [0x80a5f3c]
[  1374.741] 5: /usr/bin/Xorg (0x8048000+0x2d792) [0x8075792]
[  1374.741] 6: /usr/bin/Xorg (0x8048000+0x207cc) [0x80687cc]
[  1374.741] 7: /lib/libc.so.6 (__libc_start_main+0xf3) [0xb7287003]
[  1374.741] 8: /usr/bin/Xorg (0x8048000+0x20ae1) [0x8068ae1]
[  1374.742]
Fatal server error:
[  1374.742] Caught signal 3 (Quit). Server aborting
[  1374.742]
[  1374.742]
Please consult the The X.Org Foundation support
         at http://wiki.x.org
 for help.
[  1374.742] Please also check the log file at "/var/log/Xorg.0.log" for additional information.
Seems to happen once only after cold booting the machine. With NOUVEAU and also with the nvidia proprietary drivers. "Alright".

Monday, August 27, 2012

O'Reilly Media book: Version Control with Git, 2nd Edition

Version Control with Git:
Get up to speed on Git for tracking, branching, merging, and managing code revisions. Through a series of step-by-step tutorials, this practical guide takes you quickly from Git fundamentals to advanced techniques, and provides friendly yet rigorous advice for navigating the many functions of this open source version control system.

O'Reilly Media book: Learning JavaScript Design Patterns

Learning JavaScript Design Patterns:
With Learning JavaScript Design Patterns, you’ll learn how to write beautiful, structured, and maintainable JavaScript by applying classical and modern design patterns to the language. If you want to keep your code efficient, more manageable, and up-to-date with the latest best practices, this book is for you.

O'Reilly Media book: jQuery Pocket Reference

jQuery Pocket Reference:
jQuery is the "write less, do more" JavaScript library. Its powerful features and ease of use have made it the most popular client-side JavaScript framework for the Web. This book is jQuery's trusty companion: the definitive "read less, learn more" guide to the library. jQuery Pocket Reference explains everything you need to know about jQuery, completely and comprehensively.

O'Reilly Media: Regular Expressions Cookbook, 2nd Edition

Regular Expressions Cookbook, 2nd Edition:
Take the guesswork out using regular expressions to search and manipulate text. With this updated cookbook, you’ll learn powerful new tricks, steer clear of flavor-specific gotchas, and save valuable time with this huge library of solutions to difficult, real-world problems.

O'Reilly Media: JavaScript & jQuery: The Missing Manual

JavaScript & jQuery: The Missing Manual:
You don't need programming experience to add interactive and visual effects to your web pages with JavaScript. This Missing Manual shows you how the jQuery library makes JavaScript programming fun, easy, and accessible to web designers at every level of experience. You'll quickly learn how to use jQuery to help your site run smoothly and look great across multiple web browsers -- without typing a lot of code.

Wednesday, August 22, 2012

nice tools to deal with an nvidia GPU: nvidia-settings, nvdock

This article helps you in finding the right package, that contains them.

locate RPM packages which contain a certain file | Racker Hacker

Locate RPM packages which contain a certain file | Racker Hacker

my Eee Box running openSUSE-12.1: the NVIDIA GPU "ION" can't read the EDID of the TFT display attached through VGA

That's sad, because that results in rather basic assumptions wrt the display resolution.

X11 log files with timestamps: ignore the timestamps and compare there anyway

/var/log/Xorg.0.log and /var/log/Xorg.0.log.old have timestamps on (most of) their lines, so you are not able to compare them directly.

This is the perl one-liner, that I just used for replacing the timestamp by white space:
perl -pe 's/^\[..........\]/[          ]/' /var/log/Xorg.0.log >  /var/log/Xorg.0.log.NODATE
If you apply this to Xorg.0.log and also to Xorg.0.log.old, you are able to compare the respective results.

Monday, August 20, 2012

I hate this X11 message: "kdm[999]: X server for display :0 terminated unexpectedly"

Happens all of a sudden, cannot recognise any reason yet.

my openSUSE Linux notebook (ASUS) finds it too hot and halted itself

I never experienced that problem before. Maybe the OS just got a little smarter now:

kernel: [ 6072.179381] Critical temperature reached (91 C), shutting down.
I opened the notebook (if I only had known, how easy it is to open this one), cleaned the CPU fan (wow, what a lot of dust!), …, finally I left the bottom cover off, and put the notebook and 2 dishes instead, in order to help with air circulation and heat transmission.
The CPU fan does no longer run smoothly, ordered a new one. Costs me like 90 Euro. Does not look that expensive, but then – what are the alternatives?
Managed to configure gkrellm, so that it shows temperatures. So I know at least, when it gets critical resp. how far away from critical it is.

Saturday, August 18, 2012

Musical Piano FREE/Pro - Android Apps on Google Play

Piano keyboards on my Android tablet – I really like this.
For now this is good enough to help my son exercising the music for his choir.
Also works as a metronome …

Wednesday, August 15, 2012

RSpec - Wikipedia, the free encyclopedia

RSpec - Wikipedia, the free encyclopedia

the "German Testing Board" (ISTQB) provides free glossaries for English and German/English

German Testing Board - Downloads

the "German Testing Board" (ISTQB) provides free curriculums in English and German

German Testing Board - Downloads

Apparently you should have yours at hand whilst studying and reading your respective book. The curriculum shows definitely, what you have to expect to get certified on. In case of conflict between curriculum and book, go for the curriculum!

why does my FRITZ!Box keep logging "(date) chronyd[(pid)]: Source (IP-address) online" resp. "... offline"?

Is that necessary? helpful? ...?

O'Reilly Media book: Switching to the Mac: The Missing Manual, Mountain Lion Edition

Switching to the Mac: The Missing Manual, Mountain Lion Edition:
Ready to move to the Mac? This incomparable guide helps you make a smooth transition. New York Times columnist and Missing Manuals creator David Pogue gets you past three challenges: transferring your stuff, assembling Mac programs so you can do what you did with Windows, and learning your way around OS X. Whether you’re using Windows XP or Windows 7, we’ve got you covered.

BDD = Behavior-Driven Development - Wikipedia, the free encyclopedia

The Pragmatic Bookshelf: Cucumber Recipes – Automate Anything with BDD Tools and Techniques

pragprog.com/book/dhwcr/cucumber-recipes


Cucumber Recipes: Automate Anything with BDD Tools and Techniques now in beta

English as written around the World – to be regarded as "funny"

Wonderful 'English' from Around the World  

In a Bangkok Temple:        

IT IS FORBIDDEN TO ENTER A WOMAN, EVEN A FOREIGNER, IF DRESSED AS A MAN.  

Cocktail lounge, Norway:  

LADIES ARE REQUESTED NOT TO HAVE CHILDREN IN THE BAR.          

Doctor's office, Rome:        

SPECIALIST IN WOMEN AND OTHER DISEASES.           

Dry cleaners, Bangkok:      

DROP YOUR TROUSERS HERE FOR THE BEST RESULTS.          

In a Nairobi restaurant:      

CUSTOMERS WHO FIND OUR WAITRESSES RUDE, OUGHT TO SEE THE MANAGER.      

On the main road to Mombasa, leaving Nairobi:

TAKE NOTICE:  WHEN THIS SIGN IS UNDER WATER, THIS ROAD IS IMPASSABLE.        

On a poster at Kencom:      

ARE YOU AN ADULT THAT CANNOT READ?  IF SO WE CAN HELP.          

In a City restaurant:

OPEN SEVEN DAYS A WEEK AND WEEKENDS.   

In a Cemetery:        

PERSONS ARE PROHIBITED FROM PICKING FLOWERS, FROM ANY BUT THEIR OWN GRAVES.   

Tokyo hotel's rules and regulations:        

GUESTS ARE REQUESTED NOT TO SMOKE, OR DO OTHER DISGUSTING BEHAVIOURS IN BED.            
           
On the menu of a Swiss Restaurant:        

OUR WINES LEAVE YOU NOTHING TO HOPE FOR.         

In a Tokyo Bar:        

SPECIAL COCKTAILS FOR THE LADIES WITH NUTS.      

Hotel, Yugoslavia:  

THE FLATTENING OF UNDERWEAR WITH PLEASURE, IS THE JOB OF THE CHAMBERMAID.       

Hotel, Japan:

YOU ARE INVITED TO TAKE ADVANTAGE OF THE CHAMBERMAID.        

In the lobby of a Moscow Hotel, across from a Russian Orthodox Monastery:

YOU ARE WELCOME TO VISIT THE CEMETERY, WHERE FAMOUS RUSSIAN AND SOVIET COMPOSERS, ARTISTS AND WRITERS ARE BURIED DAILY, EXCEPT THURSDAY.           

A sign posted in Germany's Black Forest:

IT IS STRICTLY FORBIDDEN ON OUR BLACK FOREST CAMPING SITE, THAT PEOPLE OF DIFFERENT SEX, FOR INSTANCE, MEN AND WOMEN, LIVE TOGETHER IN ONE TENT, UNLESS THEY ARE MARRIED WITH EACH OTHER FOR THIS PURPOSE. 

Hotel, Zurich:

BECAUSE OF THE IMPROPRIETY OF ENTERTAINING GUESTS OF THE OPPOSITE SEX IN THE BEDROOM, IT IS SUGGESTED THAT THE LOBBY BE USED FOR THIS PURPOSE.            

Advertisement for donkey rides, Thailand:          

WOULD YOU LIKE TO RIDE ON YOUR OWN ASS?          

Airline ticket office, Copenhagen:

WE TAKE YOUR BAGS AND SEND THEM IN ALL DIRECTIONS.  (Just Like British Airways!!!)       

A Laundry in Rome:

LADIES, LEAVE YOUR CLOTHES HERE AND THEN SPEND THE AFTERNOON HAVING A GOOD TIME.


And finally the all time classic:

Seen in an Abu Dhabi Souk shop window:

IF THE FRONT IS CLOSED, PLEASE ENTER THROUGH MY BACKSIDE…


Monday, August 13, 2012

CPAN modules for checking credit card numbers (LUHN check)

CPAN modules for checking credit card numbers (LUHN check):

This is a review and comparison of 9 CPAN modules that can be used to do a LUHN check on a number. … 
 

do I need a Raspberry Pi? or a NAS? …

Requirements:
  • low power
  • fanless / self-cooling
  • SSH shell access (?!?)
  • file access through SMB, rsync, SFTP
  • user accounts
  • sudo is not for everybody
Requirements regarding big external disks:
  • (I want them)
  • RAID-1 (mirroring) (highly desired, going to be a must)
  • automatic powering down those disks after a timeout period is a must, and of course powering up on demand as well
  • encryption
FRITZ!Box disadvantages:
  • the external disk is not encrypted.

(To be continued.)

Linux+LUKS: mounting encrypted fs error: "remove ioctl failed: Device or resource busy"

Mounting encrypted fs error: remove ioctl failed: Device or resource busy

Sounds like I shouldn't worry. But in fact I almost always stop+start again and again, until it mounts w/o this message.

The Pragmatic Bookshelf: Raspberry Pi

The Pragmatic Bookshelf | Raspberry Pi

Sunday, August 12, 2012

O'Reilly Media book: Classic Shell Scripting




nice scripts shown there and available in the sample code:
  • pathfind.sh – rather similar to my own find_file_on_PATH.sh
  • show-identical-files.sh – rather similar to my own group_by_content.sh – but has a problem with "md5sum"
  • puser.sh



O'Reilly Media book: 21st Century C

21st Century C:
If you know how to program with a general purpose language such as Ruby or Python, you can also learn how to use the C language in a practical and modern style. However, you need many techniques that are entirely absent from every C textbook on the market—except this one. 21st Century C assembles all the tools you need to write efficient, state-of-the-art programs with C.

Update 2012-08-13
No print book yet.

O'Reilly Media book: jQuery Cookbook

jQuery Cookbook: Getting started with the jQuery library is easy, but it can take years to fully realize its breadth and depth; jQuery Cookbook shortens the learning curve considerably. You'll learn patterns and practices from 19 leading developers who use jQuery for everything from integrating simple components into websites and applications to developing complex, high-performance user interfaces. The recipes start with the basics and then move into practical use cases with tested solutions to common web development hurdles.

Saturday, August 11, 2012

giving my Linux notebook a rest through the weekend

It has been running 24*7 for quite a while. Just sometimes I shut it down for a night or a weekend. That's because the fan frightens me …

Thursday, August 9, 2012

O'Reilly Media book: Learning Unix for OS X Mountain Lion

Learning Unix for OS X Mountain Lion:
Beneath OS X easy-to-use GUI interface lies a powerful Unix engine. Mac users have Unix, as well as a host of tools ported over from Linux, at their fingertips; the just need to know how to access it. Learning Unix for OS X provides Mac users with a user-friendly tour of the Unix world concealed beneath OS X's hood and shows how to make the most use of the command-line tools.

Thoroughly revised and updated for Mac OS X Lion and Mountain Lion, this new edition introduces Mac users to the Terminal application and shows you how to navigate the command interface an explore hundreds of Unix applications that come with the Mac.

a book published through Lulu: Moose – authors: Dave Rolsky, Stevan Little

Moose by Dave Rolsky, Stevan Little; e-book and paperback

Update 2012-08-13
purchased the e-book, and uploaded it to my tablet.

Friday, August 3, 2012

Perl Best Practices: Command-Line Processing

Perl Best Practices - O'Reilly Media

Again: rather worth reading and making use of it.

Personally I have been using Getopt::Long and Pod::Usage together for quite a while. I can seriously recommend them.

Perl Best Practices: Regular Expressions: Always use /xms



Almost always at least.

DC explains quite well in the beginning of the section on Regular Expressions  [Link], why each of /x, /m, and /s is rather, rather reasonable to use.

  • /x : extended formatting / legibility
  • /m : let ^ and $ also match next to embedded \n; "multiline mode"
  • /s : let . also match newline; "single …"

Perl Best Practices: Regular Expressions: Backtracking – Prevent useless backtracking


OMG!

Is there a way resp. tool to check, that some code, that I will look at, will in fact comply to the recipes at the end of that chapter?
I mean, yes, of course, I can always by default encode regexes the way, DC suggests there, but that makes them far harder to read than necessary, right?

VTI's tutorial on "web scraping with LWP"

Perltuts.com | Interactive Perl tutorials

on Chabad Lubavitch: Their Ten Core Elements for Success | eJewish Philanthropy

Unpacking Chabad: Their Ten Core Elements for Success | eJewish Philanthropy: Your Jewish Philanthropy Resource

Rather detailed and critical look at Chabad.

Oracle VM VirtualBox: Downloads – platform packages, extension pack, …

Downloads – Oracle VM VirtualBox

O'Reilly Media book: Mastering Perl – Creating professional programs with Perl

Addison-Wesley book: Effective Perl Programming: Ways to Write Better, More Idiomatic Perl, 2/E


topics:
  • chapter 9: Distributions; has "Item 84. Check your POD"
  • chapter 10: Testing
  • chapter 12: Databases

Thursday, August 2, 2012

PacktPub book: Jenkins Continuous Integration Cookbook

http://www.packtpub.com/jenkins-continuous-integration-cookbook/book

O'Reilly Media book: Head First jQuery

Head First jQuery:
Want to add more interactivity and polish to your websites? Discover how jQuery can help you build complex scripting functionality in just a few lines of code. Head First jQuery shows you how to navigate HTML documents while handling events, effects, callbacks, and animations. By the time you've completed the book, you'll be incorporating Ajax apps, working seamlessly with HTML and CSS, and handling data with PHP, MySQL and JSON.

O'Reilly Media book: Intermediate Perl, 2nd Edition

Intermediate Perl:
Get a clear roadmap for improving your skills with Intermediate Perl, and gain working knowledge of Perl's objects, references, and modules—ingredients that make the language so versatile and effective. Written by the authors of the bestselling Llama book, Learning Perl, and updated for Perl 5.14, this book offers a gentle but thorough introduction to intermediate programming in Perl.

  • Chapters 14 and 20: testing
  • Chapter 12: Creating Your Own Perl Distribution; has a section on "Plain Ol’ Documentation" (POD)
  • Chapter 19: Moose
  • Chapter 13 and 15: OO

Alex Howard: On email privacy, Twitter’s ToS and owning your own platform - O'Reilly Radar

On email privacy, Twitter’s ToS and owning your own platform - O'Reilly Radar

Somebody ("Guy Adams") had tweeted somebody else's ("Gary Zenkel") e-mail address, and he got his twitter account suspended for this. In the end it got released again ... . You may want to read this article.

TidBITS Publishing e-book (only): Take Control of Using Mountain Lion

Take Control of Using Mountain Lion:
Learn to function effectively with OS X 10.8 Mountain Lion, whether you want to embrace recently added features (such as Notifications, Launchpad, gestures, and Mission Control) or want to strike a balance between old and new options. Most importantly, you'll get a thorough grounding in Mountain Lion's new "modern document model" that gives you three ways to save documents: the old way, the new way, or the new way with iCloud. Written by Mac expert and former professor Matt Neuburg, this ebook also discusses how you can tweak Mountain Lion to best meet your needs--with details on customizing the menu bar, Finder windows, Dock, Launchpad--and much more.

TidBITS Publishing e-book (only): Take Control of Upgrading to Mountain Lion

Take Control of Upgrading to Mountain Lion:
Best-selling author Joe Kissell guides you through every step in the process of upgrading to Mountain Lion. You'll begin with a compatibility check, learn to make a suitable pre-upgrade backup, and then follow assorted pre-upgrade advice, including managing your Apple ID, deleting digital detritus, and making a safe copy of the installer file. Joe helps you pick an upgrade plan: in-place (easy), clean install (for control freaks), over Leopard (a time-saving option), and even to a new Mac that's running Mountain Lion. He also describes the basics of installing Mountain Lion Server. After guiding you through the upgrade, Joe gets you started with key post-installation steps. You'll also find troubleshooting advice in case of upgrade failure, along with a chapter about Recovery mode.

Wednesday, August 1, 2012

developing software in Perl – I really like it with cpanm and perlbrew

  • my own updated notes on App::perlbrew [Link]; including a note on creating a stable alias for steady and ongoing use
  • my own notes on App::cpanminus, "yet another CPAN installer" [Link]
(Just for me, for finding my way through confusion.)

My usual starting point before installing a CPAN module:
$ perlbrew switch stable

Addison-Wesley book: The Procmail Companion

Pearson Education - The Procmail Companion

You can order an "on demand" paper copy of this book [UK Link], [Link for Germany].

I owe a paper copy of this book (I got mine through Amazon), and I would love to have a PDF available.

Yes, of course, there are a few manual pages for procmail etc., but this book still makes sense.

PerlMonks - The Monastery Gates

PerlMonks - The Monastery Gates: A community committed to sharing Perl knowledge and coding tips. The site contains questions and answers, useful snippets, and a library of code.

Regexp::Common : numbered captures, named captures

Regexp::Common - Provide commonly requested regular expressions - metacpan.org

I came across R::C through the chapter on Canned Regexes in the Perl Best Practices book [Link].

Don't get me wrong: I really appreciate R::C (i.e. this package)! Really! All due respect!

Under "-keep" results from R::C get returned as numbered captures.

If I figure that out correctly, R::C got (mainly) created and further developed before the dawn of named captures in Perl. And I guess, named captures never really made their way into R::C. (Pls let me know, if I'm wrong! I am glad to scrap this article, once I know better.)

Recently I wrote some code, where I parsed date+time strings using named captures. The regexes weren't really that fancy but rather precise.

Now I rewrote the code to make use of R::C resp. Regexp::Common::time. Pls get me right: I really like to specify the format the strftime way. But that's only half the cake. As mentioned I wasn't able to make use of named captures in order to access the parsed values then. It would be nice, to use the strftime specifiers for accessing the values through named captures by the same name, wouldn't it?!?

Maybe that's mainly stubborn me, because I don't like numbered captures any more, esp. if the regex is a little bigger and has the tendency to even grow.
Of course with R::C my code and esp. the date+time matching is far more flexible, but still with named captures and w/o R::C in this rather narrow context it is fare more readable and everything is in one place.

Regexp::Common : "the various patterns are not anchored"

Regexp::Common - Provide commonly requested regular expressions - metacpan.org

The various patterns are not anchored. ... This is by design, and not a bug. If you want the pattern to be anchored, use something like: ...

I.e. enclose it in something like this: m{^RE{...}$} !

And as opposed to advises elsewhere by the original author of the package (being also the author of "... Best Practices" – but then, you do know this: style develops through time, right?), do not add "xms". Why? You might have white space within a "-pat" directive and the "x" swallows the white space.