Qrafter

Qrafter :

Qrafter is one of the better QR Code readers for iPhone and iPad. Most importantly, it handles vCards. Since we’re using a lot of QR Codes at YAPC::NA 2012, do yourself a favor and get Qrafter, if you’re an iOS user.

[From the YAPC::NA Blog.]

is a type system a hindrance to programming creatively ?

Just thinking out aloud, for the sake of clarity.

Consider music improvisation. Should a musician stop and restart because one tune was a bit off ?

(I am not talking about reproducing mozart here but improvisation i.e, coming up with new tunes, maybe even a mozart remix)

I think not.

Programming languages without type systems don't complain much. This makes it easier to program despite the obvious errors. This makes it easy to _improvise_ algorithms.

Most improvised music can sound pretty _dirty_. This is why, after an improvisation session , what follows is an editing session which adds *structure* and *corrections* to make it sound _clean_

- unit tests --> music idea
- programming without a type system --> improvisation
- functional testing / benchmarks --> editing the music

Interestingly classical music with all of its "harmony" formulae and chord sequences analogically maps to type system and design patterns

So what do you prefer ?

Stingy mozart

or

Smooth jazz ?

Where was Sharon Hopkins's Perl Poetry Published?

I'm looking for references to Sharon Hopkins's Perl poetry in The Economist and The Guardian for my update of the Camel Book. The Economist website is down right now, and my search in The Guardian turned up nothing.

Does anyone have these references? She didn't list them in "Camel and Needles".

Q: Local audio cd db - Too many modules

Hi Folks

What do people think about modules to build a local music db?

I'd prefer a well-maintained module. This is for Debian.

TIA.

QR Droid

QR Droid :

QR Droid is one of the better QR Code readers for Android. Most importantly, it handles vCards. Since we’re using a lot of QR Codes at YAPC::NA 2012, do yourself a favor and get QR Droid, if you’re an Android user.

[From the YAPC::NA Blog.]

A real fork() call could be possible on Windows (XP onwards)

Prompted by BrowserUk in his post on Perlmonks on Win32, fork and XS globals, I looked into the PAGE_WRITECOPY for CreateFileMapping, and it seems that, in fact, this function, together with a bit of work could be made to implement a (data-)fork call on Windows, with real sharing of identical pages.

There is this sample program on the MSDN, which outlines how to use a mapped view of a file for shared memory IPC, and by using the PAGE_WRITECOPY flag instead of FILE_MAP_ALL_ACCESS, we should get COW semantics for the shared area.

The part for implementing fork() would seem to just be:

  1. (and that is the hard part) Determine the range of data to be shared with the child
  2. CreateFileMapping in the parent process to share the area from 0.
  3. MapViewOfFile
  4. Launch the child process
  5. In the child process, call OpenFileMapping() to connect to the data area from the parent process.
  6. Fix up any cached values that need changing after a fork(), for example $$

About Obligations

First off, documentation is important. I love good documentation, and I try documenting my code as good as I can. But I do that because I want, I can, and I have the time. It is not because I have to.

As you might have noticed there’s been some talk about whether people should be free to release Open Source software the way they want to, or if we should try to bully them into compliance. Since the original author has now started to drop ad-hominems and directly attacking people who disagree with him, I will follow Gabor’s example and not link there. I’m also not gonna go into the topic of “People should be allowed to bully others. If you don’t like it, go away.” That one is left as an exercise to the reader.

Why Dart is not the language of the future

So I've been looking at the Dart language specification recently published by Google (draft version 0.01). So far, I'm not really enthusiastic. Here's my reading notes.

Class-based OO and Interfaces

At first glance Dart code looks like Java (and nothing's wrong with that, I'm not going to criticize a language based on my idiomatic preferences). The syntax is very similar, with the dot to invoke methods, the curly braces for blocks, the required semicolon to terminate statements, the main() function, the general feeling of verbosity. The familiar classes and interfaces are here. There is only single-inheritance, abstract interfaces being provided instead of full multiple inheritance to solve the diamond inheritance problem.

This is a QR Code. We’re going to use QR Codes a lot at...



This is a QR Code. We’re going to use QR Codes a lot at YAPC::NA 2012, so make sure you have a QR Code reader on your phone before you come to YAPC.

The exhibitors at the job fair will be encouraged to use them for each of their job listings. We’ll be using them to share links to important information such as maps that can help you find your way around the conference. And we probably will even put them on each of your badges so that you can easily share your contact information with someone else just by scanning their code.

[From the YAPC::NA Blog.]

Peeking into archives

Peeking into archives

At little insight goes a long way. I often say that I get my best ideas when I'm in the shower. I relax and my sometimes my brain makes some pretty neat connections.

One example of this is CPAN::Mini::Webserver, which allows you to search and browse a MiniCPAN. One insight was that the 02packages file in CPAN mirrors was full of enough information to be useful to search. The other was that browsing through distributions didn't actually require the distributions to be unpacked - they could be unpacked on the fly. That lead to Archive::Peek.

A map of the CPAN Ecosystem

I'm making a map of the CPAN Ecosystem for Programming Perl:

cpan-map.png

It's just something I threw together so the O'Reilly people could make a nice looking diagram. I'm a bit fuzzy on some of the services pulling either from the CPAN master, a mirror, or something else.

I left a lot out; I only have a page so large and I don't cover other things in the CPAN chapter.

My Perl hero of the week: Eric Strom (ASG)

http://search.cpan.org/~asg/

Hash-Abbrev-0.01  Text::Abbrev with aliases
List-Gen-0.96         provides functions for generating lists
Lvalue-0.21            add lvalue getters and setters to existing objects
Perl6-Feeds-0.20       implements perl6 feed operators in perl5 via source filtering
Test-Magic-0.21    terse tests with useful error feedback
Whatever-0.21       a perl6ish whatever-star for perl5
XUL-Gui-0.63         render cross platform gui applications with firefox from perl

He seems to be seriously into functional programming, Haskell and perl6 alike, which seems to be totally weird.

E.g. look what he is doing with us:

Google+ Page for YAPC::NA

Google+ Page for YAPC::NA :

Gabor Szabo has generously decided to create a YAPC::NA Google Plus page and cross-post all of the YAPC::NA 2012 blog content to it as it comes out. Hopefully at some point there will be an easy way to just automate this, but for the time being this is the only way to get the posts out to Google Plus users. 

Thank you Gabor!

[From the YAPC::NA Blog.]

How I learnt Perl despite the bad press

By bad press I mean, "Perl is an unreadable language ... you should not use it"

I use perl for sys admin stuff and prototyping some pretty lame ideas.

some observations
For the beginners, perl on the tubes has two presses

  1. perl is difficult to learn because of all the "rules", "different contexts", edge cases along with the above bad press
  2. perl is easy to pick up because with a minimum amount of concepts you can write successful programs

And some pretty long fucking answers

People of the perl land, when some one asks - should I learn perl ? | is perl difficult to learn?, just say

"yes and perl programmers will gladly help you learn it"

how i learnt it
perldoc, the perl test suite and the perl cookbook

The perl test suite helped me quite a bit. Any irritating syntax doubts directly got clarified. And not just the perl syntax, but each module comes with a test suite which is awesome since I can see the api in action.

That's how I got to learn baby perl.

I bought the camel book. After that I grew more confidence in my scripts and began thinking out aloud in perl.

Tools I'm using to write the book

Since I can't really share the book with you, I figured I could share some of the tools I'm using to write it. They're a pile of hacks as I tend to flounder outside of Perl, but they work and I figured geeks would get some useful stuff out of them.

The worst Perl API's

Perl usually has a pretty and wellthought API and tools to maintain it.

But of cause there is also a hall of shame in some old dirty corners, nobody ever uses.

No.1 B.xs: make_warnings_object

In order to provide Perl read-access to lexical warnings some fake SV is passed to B, created internally by make_warnings_object(). A warning is basically a short integer between 1-6, and lexical warnings are integers > 6 checked by bitmasks e.g. see warnings.pm.

The C API is SV* until 5.8.9 and since 5.10 STRLEN*, which is basically a int*.

Thank You Sponsors!

We’d like to thank our sponsors for stepping up to support us. We really couldn’t do this without their support.

You too could sponsor YAPC.

[From the YAPC::NA Blog.]

Opa: The language with a db, web server etc built in

Hi Folks

Looks amazing.

"Opa is a programming language and a standard library comprising a database management system, a web server, a server-side framework, a client-side framework, a distribution middleware, a security audit tool, but without the complexity of deployment, administration, or impedance mismatch stemming from the use of many different technologies."

Home page.

Is anybody using this, or has seen it used in a project? I'd love to get some feedback.

Perl and Parsing 11: Are all Perl programs parseable?

Before going further in this series, I want to touch on a question I have so far avoided: Are all Perl programs parseable?

Most languages do not pose this question. It was Adam Kennedy, in creating PPI, who first ran up against it. Adam conjectured that in fact Perl parsing may be undecidable. While in the planning stages for Marpa, I found Adam's conjecture and turned it into a formal proof.

Being the first to formalize this result, I took the initial heat over it, and now I get the credit. The dust has pretty much settled, and to my mild surprise, the result has proved of interest to the academic community. The initial revulsion at the idea of undecidable parsing has subsided, even to the extent that others now want to get into the act. I read on Wikipedia that LISP parsing is also undecidable. So all the cool kids seem to be doing it.

Data-Mining a Diagnosis in the ICU

Data-mining has found its way into hospital Intensive Care Units (ICUs):

I confess unease upon reflecting on Predictive Medical Technologies monitoring software, as the phrase "secret sauce" leads me to think of trade secrets – and trade secrets are in opposition to the tradition of open research. The only defense I can come up with is that their "secret sauce" might be in how quickly they process the information (as a process that takes 2 weeks to process 8 hours of results would be useless except as a proof-of-concept). On the other hand, it sounds like the IBM/UOIT collaboration should result in standard, open research results.

Pretty cool stuff all around, though.

About blogs.perl.org

blogs.perl.org is a common blogging platform for the Perl community. Written in Perl with a graphic design donated by Six Apart, Ltd.