Quick jump:  What's new

 
Go to:
 
Weblog: Recent Changes 
in Hackathon Chicago, Nov 10-12, 2006
EDF Energy Customer Services

Edf Energy company supplying energy and telephone services to homes and businesses in the UK. If you are already Edf Energy Customer , we are very interested to hear about your views on their phone menu system. If you have decided that you want to change your current energy supplier, you can call the Edf Energy-customer-services helpline on 0844 381 5192,and discuss with a member of EDF’s EnergyTeam what are the benefits of becoming their customer.

http://www.contacttelephonenumbers.com/edf-energy-customer-services/

permalink
Hackathon Chicago, Nov 10-12, 2006

This is the home page wiki for Hackathon Chicago, Nov 10-12, 2006. The static website is at http://hackathon.info

Did you write about the Hackathon?

If you wrote about the hackathon, or posted pictures, please post them on the reporting page.

Lessons learned from this Hackathon

Pete and Andy and a bunch of other people wrote up this post-hackathon recap.

Please add your advice for future Hackathon attendees to the Hackathon Attendees HOWTO.

The Perl-ish people -- who we are

  • The attendees list is as complete as it can be. Make it more complete if you can.

The Perl-ish work -- what we do; what we did!

  • The projects are the reason for coming
    • Hackers: add your name to a project.
    • Leaders: add a project to the list.
  • If you're looking for a project, then highlight your skills so that project leaders can find you.
  • Our successes for the weekend!
  • Other notable events from the weekend.
  • Leave your feedback here.

Communications (human, email, and computer)

Hackathon logistics

  • The Todo list tracks organizational tasks. Add your name if you can help out.

Transportation

  • The Arrival Schedule will help coordinate transportation. Make a note if you'll need a ride to the hotel from either the Holiday Inn (van Galder bus drop-off point) or the Pingree Road (not the Crystal Lake) Metra station. The hotel will pick you up on Friday; Pete and Andy will do so other times. Please make it easy for them to schedule their time by signing up; they can't read minds.
  • Use the Departure Schedule if you'd like to coordinate your leaving.

Lodging, Food, and Meeting space

  • Country Inn & Suites is the place we're doing this. There's a special rate.
  • Pete and Andy are going to get lots of snacks 'n' food 'n' stuff for hacking. Make specific requests, we'll do what we can.
  • There is food nearby for meals.

Here's a list of Hackathon projects. Please note that the Hackathon is NOT just about Perl 6 and Parrot. Anyone who has a Perl project they'd like to work on is welcome.

Feel free to add your own, and if you have an svn repository that you would like mirrored on-site, please mention it at SVK Mirrors

List of all projects:



Thursday

Pete/Andy set up stuff, and bring people in.

Friday

8am -- Pete arrives / setup and organization
6pm -- Dinner/food in the meeting room

Saturday

6pm -- Dinner/food in the meeting room
6pm -- Krugle presentation in the meeting room

Sunday

8am-1pm -- Meeting room unavailable
6pm -- Dinner/food in the meeting room



  Who Fri Sat Sun From Where Online
A David Adler (dha) New York dha on irc.perl.org
B Jess Balint X? X X? Chicago jessb5760jessb5760
C chromatic   ! Portland, OR  
  Jason Carter   !   Crystal Lake, IL  
  Jason Crome   DeKalb, IL TheOneCromeDomeTheOneCromeDome
D Richard Dice ! Toronto, ON  
  Matt Diephouse X Ann Arbor, MI  
  Chris Dolan     Madison, WI  
  Clyde Forrester   X   Forest Park, IL  
F Mike Fragassi   X   Chicago  
G Jerry Gay Seattle, WA mikethepodmikethepod
  Patty Giorgas X     Chicago  
  Ryan Gerry   X McHenry, IL  
  Jason Gessner       Milwaukee, WI  
H Todd Hepler X X St. Louis, MO  
I Kelli Ireland   Pittsburgh, PA kelli3125kelli3125
J Andrew Johnson ?   Downers Grove, IL  
  Kirsten Jones Scotts Valley, CA synedra@mac.comsynedra@mac.com
K Jim Keenan Brooklyn, NY irc.perl.org: kid51
  Pete Krawczyk Wonder Lake, IL pkrawczypkrawczy
  Ken Krugler     Silicon Valley, CA  
L Andy Lester McHenry, IL petdancepetdance
  Doug Lim X X Schaumburg, IL dlim60194dlim60194 doug_lim.rmdoug_lim.rm
M Josh McAdams   X Chicago, IL  
  John Melesky ! X   Chicago, IL phaedrusdeinusphaedrusdeinus
  Adnan Menon X     Chicago  
O Bill Odom St. Louis, MO  
P Steve Peters   X? X Madison, WI fisharerojofisharerojo
  Pete Prodoehl     Milwaukee, WI pjrasterpjraster
  Jonathan Rockway X Chicago, IL irc.perl.org: jrockway
  Andrew Rodland     Chicago irc: hobbs
S Chip Salzenberg Jupiter irc.perl.org: chip GroutNASAGroutNASA
  Michael Schwern Portland, OR MichaelSchwernMichaelSchwern irc.perl.org:Schwern
  Rick Scott Sault Ste Marie, ON irc.perl.org:shadowspar
  Elliot Shank Chicago, IL elliotshankelliotshank
  Mark W. "catfood" Schumann   X X Cleveland, OH  
  Vishal Soni X X X Minneapolis, MN  
  Michael Stemle X Chicago, IL irc.perl.org:manchicken mannhuhnmannhuhn
  Ken Swanson X   St. Louis, MO  
T Al Tobey       Grand Rapids, MI Tobert42Tobert42
W Michael R. Wolf Seattle, WA  
  Jonathan Worthington Scarborough, England irc.perl.org: jonathan

marks people who have arrived.

(Please keep this in alphabetical order)



Thinking of bringing a spouse or kids? Get some idea about what's around from the Hacker Widows and Hacker Orphans pages.

permalink
First Post in Online Calculator Weblog

Calculator is an imperative tool for a businessman, financier, married man and even a school-age child. Quickly, clearly and firmly on-line calculator permits you to perform all the quality mathematical operations like division, subtraction, addition or multiplication, further as operations with decimal fractions. To use the online calculator, that isn't necessary to transfer, you merely enter the specified variety by suggests that of graphical buttons, and counting on the specified operation, click on the image ‘division’, ‘subtraction’, ‘multiplication’ or ‘addition’. Using free online calculators you mostly can decipher your budgets properly and, therefore, it will assist you to save lots of cash and to grow financially. At constant time online scientific calc can assist you to resolve issues associated with physics, chemistry, algebra, geometry, and different engineering sciences.

permalink
First Post in Modern Perl Programming Weblog

This Perl programming tutorial is a great scripting guide to help you fully understand Perl script. Find Perl tutorials and programming examples to master your knowledge of Perl Scripting.

Perl programming tutorial

1. Using The Perl interpreter

1.1. Find Perl Interpreter

which perl 

http://linuxconfig.org/images/find-perl-interpreter.gif

1.2. Implicit Execution

NOTE:*Every script starts with *shebang:"#!" which is not read as a comment. First line is also a place where you put your interpreter which in this case is perl.

#!/usr/bin/perl print "Perl Programming\n"; 

Make Perl Script Executable:

chmod +x perl_script.pl 

http://linuxconfig.org/images/perl-implicit_execution.gif

1.3. Explicit Execution

print "Perl Programming\n"; 

Make Perl Script Executable:

chmod +x perl_script.pl 

http://linuxconfig.org/images/perl-explicit_execution.gif

2. Simple Perl script

#!/usr/bin/perl # print "Perl Programming Tutorial\n"; 

http://linuxconfig.org/images/simple-perl-script-example.gif

3. Current path to Perl modules

List all available current paths to perl modules:

perl -e 'print "@INC" . "\n";' 

http://linuxconfig.org/images/perl-modules-path.gif

4. Variables

$ - Scalar Variable
% - Hash Variable
@ - Array
& - Subroutines

4.1. Using Perl default variable $_

#!/usr/bin/perl
$_ = "Perl Programming default variable.\n";
print; 

http://linuxconfig.org/images/perl-default-variable.gif

4.2. Defined Function

#!/usr/bin/perl

# declare perl scalar do but not define value
$perl_scalar;
#we can use conditional operator '?:' to test perl defined funtion
$variable = defined($perl_scalar) ? "Variable \$perl_scalar is Defined!"
 : "Variable \$perl_scalar is NOT Defined!";
print $variable."\n";
# declare perl scalar with value
$perl_scalar="perl";
$variable = defined($perl_scalar) ? "Variable \$perl_scalar is Defined!" 
: "Variable \$perl_scalar is NOT Defined!";
print $variable."\n"; 

http://linuxconfig.org/images/perl-defined-function.gif

4.3. Scalar variable

#!/usr/bin/perl
#Scalars hold just single data type: string, number or perl reference
#Scalars definition in Perl
$scalar_number = -5; 
$scalar_string1 = "In PERL Scalars are always referenced with \x24 in front of each variable name. ";
$scalar_string2 = "5 items";
#Undescore can be use for big numbers 
$scalar_milion = 1_000_000;
#Print scalar values
print $scalar_number."\n";
print $scalar_string1."\n";
print $scalar_string2."\n";
print $scalar_milion."\n";
#perl scalar addition
print $scalar_number + $scalar_milion."\n"; 

http://linuxconfig.org/images/perl-scalar-variable-example.gif

4.3.1. Single-Quoted Strings

#!/usr/bin/perl
 
#Single-Quoted scalar strings
$scalar_string1='perl';
print "String 1: ".$scalar_string1."\n";
$scalar_string2='#!/usr/bin/perl';
print "String 2: ".$scalar_string2."\n";
$scalar_string3='Perl
Programming
Tutorial';
print "String 3: ".$scalar_string3."\n";
$scalar_string4='Perl\n';
print "String 4: ".$scalar_string4."\n";
$scalar_string5='\'\'\\';
print "String 5: ".$scalar_string5."\n";
$scalar_string6='';
print "String 6: ".$scalar_string6."\n";
$scalar_string7='I\'m reading Perl Programming Tutorial';
print "String 7: ".$scalar_string7."\n"; 

http://linuxconfig.org/images/single-quoted-trings-perl.gif

4.3.2. Double-Quoted Strings

#!/usr/bin/perl
#Double-Quoted scalar strings
$scalar_string1="perl";
print "String 1: ".$scalar_string1."\n";
$scalar_string2="#!/usr/bin/perl";
print "String 2: ".$scalar_string2."\n";
$scalar_string3="Perl
Programming
Tutorial";
print "String 3: ".$scalar_string3."\n";
$scalar_string4="Perl\n";
print "String 4: ".$scalar_string4."\n";
$scalar_string5="\'\'\\\"";
print "String 5: ".$scalar_string5."\n";
$scalar_string6="";
print "String 6: ".$scalar_string6."\n";
# add "!" ASCII character in octal form !=041
$scalar_string7="I\'m reading Perl Programming Tutorial \041";
print "String 7: ".$scalar_string7."\n";
# add "@" ASCII character in hexadecimal form @=40
$scalar_string8="Any feedback about this \uperl \uprogramming
 \ututorial to: web\x40\lL\LINUXCONFIG.ORG\E";
print "String 8: ".$scalar_string8."\n"; 

http://linuxconfig.org/images/double-quoted-strings-perl.gif

4.3.3. String Operators

#!/usr/bin/perl

#Scalar string Operators
$scalar_string1="pe"."rl";
print "String 1: ".$scalar_string1."\n";
$scalar_string2="Perl Programming Tutorial " x (1+1);
print "String 2: ".$scalar_string2."\n";
$scalar_string3="3"."\ttabs" x 3;
print "String 3: ".$scalar_string3."\n";
$scalar_string4="Perl\x20".'Programming '."Tutorial";
print "String 4: ".$scalar_string4."\n";
$scalar_string5=9x5;
print "String 5: ".$scalar_string5."\n"; 

http://linuxconfig.org/images/perl-string-operators.gif

4.3.4. Non-Decimal Integers

#!/usr/bin/perl
 
#perl binary integer
$hash_binary_integer = 0b10000;
#perl octal integer
$hash_octal_integer = 020;
#perl hexadecimal integer
$hash_hexadecimal_integer1 = 0x10;
$hash_hexadecimal_integer2 = 0x124c_78_aa;
 
print $hash_octal_integer."\n";
print $hash_binary_integer."\n";
print $hash_hexadecimal_integer1."\n";
print $hash_hexadecimal_integer2."\n"; 

http://linuxconfig.org/images/perl-Non-Decimal-integers.gif

4.3.5. Scalar Constant Variable

#!/usr/bin/perl
 
$ordinary_scalar = 5;
$ordinary_scalar = 10; 

print $ordinary_scalar."\n";

#perl constant declaration
*SCALAR_CONSTANT = 5;
$SCALAR_CONSTANT = 10; 

http://linuxconfig.org/images/perl-scalar-constant-variable.gif

4.3.6. String And Numeric comparison Operators

Comparison String Numeric
Equal eq ==
Not Equal ne !=
Less than lt <
Greater than gt >
Less than or equal le <=
Greater than or equal ge >=
#!/usr/bin/perl
# String comparison
if ( 'Perl' eq 'perl' ) {
print "TRUE\n";
} else {
print "FALSE\n";
}

# Numeric comparison
if ( '2.4' != '2.6' ) {
print "TRUE\n";
} else {
print "FALSE\n";
} 

http://linuxconfig.org/images/string-and-numeric-comparison-operators.gif

4.4. Lists

#!/usr/bin/perl

#Lists definition in Perl
print ("Perl ","programming ","Tutorial","\n"); 

http://linuxconfig.org/images/perl-lists.gif

4.5. Arrays

4.5.1. Create and print array

#!/usr/bin/perl
 
#CREATE AN ARRAY
@perl_array1 = qw(Perl Programming Tutorial );
@perl_array2 = ("Perl ", "Programing ", "Tutorial", "\n");
@perl_array3 = (1 .. 3);
$perl_array4[0] = "Perl ";
$perl_array4[1] = "Programming ";
$perl_array4[2] = "Tutorial";
$perl_array4[50] = "\n";

#ADD ELEMENTS TO AN ARRAY
$perl_array1[3] = "\n";

#PRINT ARRAY
print @perl_array1;
print @perl_array2;
print @perl_array3;
print $perl_array1[3];
print @perl_array4;
# What index has a last element of an array
print "Last element of perl_array4 has index: " .  $#perl_array4 ."\n"; 

http://linuxconfig.org/images/create-and-print-perl-array.gif

4.5.2. Push and Pop Arrays

#!/usr/bin/perl

# CREATE AN ARRAY
@perl_array = (1 .. 3);

# PUSH NEW ELEMENT TO THE AND OF AN ARRAY
push(@perl_array, "\n");

# PRINT ARRAY
print  @perl_array;

# POP LAST ELEMENT FROM AN ARRAY
$perl_scalar = pop(@perl_array);
print  @perl_array;

# PRINT NEW LINE
print $perl_scalar; 

http://linuxconfig.org/images/push-and-pop-arrays-in-perl.gif

4.5.3. Determine The Length of an Array

#!/usr/bin/perl
 
#CREATE AN ARRAY
@perl_array = (1 .. 3);
$number_of_elements = @perl_array;
print "\@perl_array has: " . $number_of_elements  . " elements.\n";
print "\@perl_array has: " . scalar(@perl_array)  . " elements.\n"; 

http://linuxconfig.org/images/determine-the-length-of-an-array-in-perl.gif

4.5.4. Merge and Append Arrrays

#!/usr/bin/perl
 
#CREATE AN ARRAY

@perl_array1 = (".\n", "easy", "very ") ;
@perl_array2 = ("is ", "Programming ", "Perl ");
@perl_array3 = (@perl_array1, @perl_array2);
# REVERSING ELEMENTS 
print reverse @perl_array3; 

http://linuxconfig.org/images/merge-and-append-arrrays-in-perl.gif

4.5.5. Sort Arrays

#!/usr/bin/perl
 
#CREATE AN ARRAY
 
@perl_array = (3, 4, 1, 2);
@sorted_array1 = sort @perl_array;
@sorted_array2 = sort {$b <=> $a} @perl_array;
 
print "@sorted_array1 \n";
print "@sorted_array2 \n"; 

http://linuxconfig.org/images/sort-arrays-in-perl.gif

4.5.6. Delete Element from an Array

#!/usr/bin/perl
 
#CREATE AN ARRAY
@perl_array = (1, 2, 3, 4);
# CHECK IF THE ARRAY ELEMENT EXISTS
if (exists($perl_array[2])) {
	delete $perl_array[2];
} else {
	print "Array element is mising!\n"
}
print @perl_array, "\n"; 

http://linuxconfig.org/images/delete-element-from-array-in-perl.gif

4.6. Hash

4.6.1. Create Hash

#!/usr/bin/perl
 
# CREATE HASH
%perl_hash = ( 
	browser => iceweasel,
# you can also use comma instead of arrow operator
	os , linux,
);
# PRINT HASH ELEMENT
print "$perl_hash{'browser'}\n"; 

http://linuxconfig.org/images/create-hash-in-perl.gif

4.6.2. Add Element to a Hash

#!/usr/bin/perl

# CREATE HASH
%perl_hash = ( 
	browser => iceweasel,
# you can also use comma instead of arrow operator
	os , linux,
);
# PRINT HASH ELEMENT
print "$perl_hash{'browser'}\n";

# ADD ELEMENTS TO A HASH
%perl_hash = (%perl_hash, programming, perl);

# PRINT ALL ELEMENTS
print join(" ", %perl_hash). "\n"; 

http://linuxconfig.org/images/add-element-to-hash-in-perl.gif

4.6.3. Print Hash

#!/usr/bin/perl

# CREATE HASH
%perl_hash = qw( 
	ssh 22
	http 80
	https 443
	telnet 23
	postgres 5432
);
 
while (($hash_key, $hash_value) = each %perl_hash ){
	print "$hash_key uses port $hash_value\n";
} 

  • Teach Yourself Web Publishing with HTML 3.2 in 14 Days, _ Laura Lemay_, Sams.Net Publishing.
  • The Internet Unleashed, J. Ellsworth, B. Baron, et al., Sams.Net Publishing
  • The Internet Complete Reference(2nd Ed.), H. Hahn, McGraw-Hill
  • Webmaster in a Nutshell, S. Spainhour and V. Quercia, O'Reilly and Associates Inc.
  • Every Student's Guide to the World Wide Web, K. Pitter and R. Minato, McGraw Hill
  • HTML Sourcebook, I.S. Graham, Wiley and Sons
  • Definitive Guides, tutorials & How-to's, C. Musciano and B. Kennedy, Fixithere. Inc.
permalink
Hackathon-Attendees-HOWTO

Hackathon-Attendees' HOWTO


This document is an attempt to gather suggestions and recommendations so that people coming to their first Hackathon can more easily hit the ground running and have a better Hackathon experience in general.

A fair number of the Chicago Hackathon participants were attending their first such event. While hopefully everyone enjoyed themselves and felt like their time at the Hackathon was worthwhile, the impression I got was that a lot of folks could have had an easier time 'getting started', as it were.

Whether you're a hardened Hackathoner or someone who just attended your first Perl Foundation event, you surely have some tidbits of advice to share. Please contribute freely and edit ruthlessly.


Pre-Hackathon preparation

  • Pick a project: Have a look at the projects list and pick one that you might be interested in working on. (Better yet, pick two or three). If time permits before the Hackathon, check out the source code, build it, and muck around with it a little bit. Having a basic feel for how the project works will let you work on more interesting things once you're actually at the Hackathon.
    • If you don't have time, or have trouble building from the sources, don't worry about it -- there will be plenty of folks at the Hackathon who'll be more than happy to help you get up and running.
  • If you'll be travelling any appreciable distance to the Hackathon, consider trying to find out who else is going from your area. You may be able to find a travelling companion to speak Perl to on your trip instead of having to listen to the guy in the next airline seat drone on about his colon surgery.

Stuff to bring

  • Laptop: Obviously, you'll want a computer to work on, and a laptop is most convenient for this sort of thing -- not only because it's easy to bring to the Hackathon, but because it lets you easily move around and join the impromptu sessions that tend to spring up around the pool or in the hotel lobby. A desktop could probably be made to work, though, so long as you're willing to lug it back and forth from your room each day, and as long as it has...
  • WiFi: most hotels these days provide internet connectivity only in wireless form. While there'll certainly be someone around who's nice enough to share an ethernet port, if you can manage to get a hold of a WiFi adapter your networking will be much more convenient.
  • Miscellaneous things: Think it might be useful? Bring it along! At Chicago, we had more than enough networking and power cables, but more never hurts. Other things that turned out to be useful were networking gear and spare laptop power adapters. Things we missed included a projector and a proper bottle opener.
  • Your comfy coding clothes: If you'd rather lounge around in slippers and pyjama pants than shoes and khakis, by all means bring them. I left my favourite fuzzy blue socks at home, then felt a bit foolish when the guy across the room was coding in pink monkey banana pyjamas.

Arrival

  • Geeky shirt: If you own a Perl-themed shirt or something else that makes it obvious you're a Hackathon attendee, consider wearing it to the Hackathon, especially if you'll be showing up at the Hackathon early and if you've never met the organizers face-to-face. It'll be easier for your fellow Perl hackers to pick you out.

At the Hackathon

  • Don't be afraid to ask questions. Nobody will look down upon you for calling out "Hey, can somebody help me compile X?" (In fact, some of the most interesting things that went on at Chicago sprung from trying to help people build Parrot.)

After the Hackathon

  • Contribute your newfound insights to this Hackathon Attendees HOWTO, so that the next generation of first-time attendees can benefit from them. =)
permalink
Attendees
  Who Fri Sat Sun From Where Online
A David Adler (dha) New York dha on irc.perl.org
B Jess Balint X? X X? Chicago jessb5760jessb5760
C chromatic   ! Portland, OR  
  Jason Carter   !   Crystal Lake, IL  
  Jason Crome   DeKalb, IL TheOneCromeDomeTheOneCromeDome
D Richard Dice ! Toronto, ON  
  Matt Diephouse X Ann Arbor, MI  
  Chris Dolan     Madison, WI  
  Clyde Forrester   X   Forest Park, IL  
F Mike Fragassi   X   Chicago  
G Jerry Gay Seattle, WA mikethepodmikethepod
  Patty Giorgas X     Chicago  
  Ryan Gerry   X McHenry, IL  
  Jason Gessner       Milwaukee, WI  
H Todd Hepler X X St. Louis, MO  
I Kelli Ireland   Pittsburgh, PA kelli3125kelli3125
J Andrew Johnson ?   Downers Grove, IL  
  Kirsten Jones Scotts Valley, CA synedra@mac.comsynedra@mac.com
K Jim Keenan Brooklyn, NY irc.perl.org: kid51
  Pete Krawczyk Wonder Lake, IL pkrawczypkrawczy
  Ken Krugler     Silicon Valley, CA  
L Andy Lester McHenry, IL petdancepetdance
  Doug Lim X X Schaumburg, IL dlim60194dlim60194 doug_lim.rmdoug_lim.rm
M Josh McAdams   X Chicago, IL  
  John Melesky ! X   Chicago, IL phaedrusdeinusphaedrusdeinus
  Adnan Menon X     Chicago  
O Bill Odom St. Louis, MO  
P Steve Peters   X? X Madison, WI fisharerojofisharerojo
  Pete Prodoehl     Milwaukee, WI pjrasterpjraster
  Jonathan Rockway X Chicago, IL irc.perl.org: jrockway
  Andrew Rodland     Chicago irc: hobbs
S Chip Salzenberg Jupiter irc.perl.org: chip GroutNASAGroutNASA
  Michael Schwern Portland, OR MichaelSchwernMichaelSchwern irc.perl.org:Schwern
  Rick Scott Sault Ste Marie, ON irc.perl.org:shadowspar
  Elliot Shank Chicago, IL elliotshankelliotshank
  Mark W. "catfood" Schumann   X X Cleveland, OH  
  Vishal Soni X X X Minneapolis, MN  
  Michael Stemle X Chicago, IL irc.perl.org:manchicken mannhuhnmannhuhn
  Ken Swanson X   St. Louis, MO  
T Al Tobey       Grand Rapids, MI Tobert42Tobert42
W Michael R. Wolf Seattle, WA  
  Jonathan Worthington Scarborough, England irc.perl.org: jonathan

marks people who have arrived.

(Please keep this in alphabetical order)

permalink
Post-hackathon recap

Picking a place

We went for cheap this time out. For all we knew, it would be Andy, Pete and Chip sitting around scratching our butts. Our only real requirements were:

  • Wifi
  • Meeting room near sleeping rooms
  • Relatively inexpensive
  • Near commerce, preferably including a 24-hour store
  • Able to bring in our own food

We were out in far northwest suburban Crystal Lake, which may have been harder to get to, but we wouldn't have been to get $79 any closer to the city. We also were not interested in having a lot of other interesting things in the area, since the goal was to have people working on code.

When we got down to it, we found that there was no Ethernet in the walls, and for the one guy with a laptop without wifi, Pete had to route his Internet traffic to a hub for him. Having the ability to get on the network through a jack would have been a big win, both for that guy, and to have alternate, backup WAPs.

The BYOfood requirement was the first thing on our minds, because we'd gotten in trouble at YAPC::NA 2006 for bringing in our own pizza & snacks, because Sodhexo cornered the IIT food market. They were pretty upset with us. This excluded the local Holiday Inn.

Continuous space usage was important. Losing out Sunday morning, to a long-standing church group, meant fewer people showed up. We wound up clustered in the breakfast nook and around the pool with laptops waiting for our space to become free again. More people may have shown up Sunday had our space been available the entire time. Still, we had until 6am on Sunday to use the space, and we were in there until 2am.

Not having a VGA projector was a problem, leaving Ken Krugler scrambling to get one a few hours before his presentation. We should have been more explicit that he would need to supply one if he needed it, since we were doing no presentations. Turns out the hotel thought we meant an "overhead projector" and not a "laptop projector" in our discussions.

More than the presentations, it would have been good if people working on projects could have had a common screen to work, or to do demonstrations to the groups. Also worthwhile would have been the social aspects of showing movies when hacking was done for the night.

When people actually show up

You can't plan for everything. Power outage, thunderstorm, etc.

Dinner by democracy works to a point - 12 Chinese dishes was OK, but 3 thin and 8 pan pizzas was about 3 pans too many. (If we had paid for the pizzas, it might have been a bigger issue.)

Always be sure to have labels, both for humans and their belongings. We emptied my labelmaker, and the corny "Hello My Name Is" tags were indispensable when we had 30 people clustered around six tables on Saturday night.

Having defined start/stop times might have been helpful, so people knew when to show up.

There were a handful of people who came in and said "How can I help? Who do I talk to?" Next time, project owners should have very specific, bite-sized tasks that people can work on as soon as they walk in the door. If possible, those tasks should cover a range of skill levels.

Snacks were purchased as needed. This helped cut down on waste (although there is quite a bit left over) at the expense of lower food costs, because they weren't bought from Costco or Sam's Club. If a good store is nearby, get some basics and let people decide what else they want. (We spent less on snacks at this hackathon than at the one after YAPC.) The key is, we bought small at first, and bought more later.

Location

Public transit wasn't as good at this location, so Andy and Pete did a lot of shuttling people around. (For that matter, we did a lot of not shuttling people around as communications got crossed.) The jury is out as to whether this was good or bad, as it removed more distractions and kept people together and hacking.

We didn't make explicitly clear in the site that people should fly into O'Hare. All our discussions of getting to the hotel assumed that people would fly into O'Hare, and not Midway. Since Midway is served by a number of low-cost airlines, a few people went through Midway and had a much harder time getting out to Crystal Lake than they should have. This was aggravated by the bad weather Thursday and Friday.

Try and line up taxi recommendations for next time. If people can cluster arrival or departure, a $90 taxi among 3-4 people may be better than wasting 2-3 extra hours with public transit.

Projects

Have a focus, but don't force people to do it. If someone comes into the room, be able to answer the question, "What can I do to help?"

Be able to introduce a newbie and have them help right away. We had more new people contributing to Parrot during the hackathon than established programmers.

Don't be afraid to vocalize questions. "Does anyone know X" will often get a couple bites. Jim Keenan specifically mentioned how free he felt to collaborate and ask "dumb" questions of the group. Bill says he's heard it from half a dozen people.

Have one or two status/boasting meetings. Let people discuss what they've done and what they still need to do. Aggregating status and success highlights all the work being done. Showing successes after the hackathon is crucial, both for future energy and future sponsors, so do not neglect this.

People won't use a central wiki unless you keep poking them, and then they'll do it just to stop the poking. Pete wound up taking most of the attendance, and the major portion of the successes page came from Saturday night's meeting. HOWEVER, the Wiki was invaluable in prepping projects and people for the weekend.

It helped having different tables designated, with signs, for which projects they were devoted to. There was a Perl::Critic table and three Parrot tables.

As the day wore on, there was more tendency for people to break into smaller groups.

There was a perception among many before that the hackathon was all Perl 6. We need to make sure that it's understood to be about any Perl project.

A lot of people wound up working on Parrot than we expected. There were six Parrot folks at the start of the hackathon, and fourteen when it was over.


chromatic's oreillynet article

The Perl community is not new to hackathons; the Pugs hackathon in Toronto in 2005 before YAPC::NA is one of the best known. However, most of these sprints took place before or after conferences: OSCON, YAPC, et cetera.

I went to the Chicago Perl Hackathon this past weekend. Barring some troubles during the trip, it went flawlessly.

The organizers, Andy Lester and Pete Krawczyk, found a small hotel in a little town outside of the Chicago suburbs. It was accessible from public transportation, had a small conference room for us, and was within walking distance of a handful of restaurants.

Better yet, we had tables, chairs, wifi, electricity, and snacks.

Though there were a few out of towners (a couple of us from Portland, two from Seattle, a couple of people from California, two from New York City, and one from the UK), most of the attendees were from the midwest. This was a goal, and it was a great help. The total attendance was somewhere around thirty people.

Two projects dominated the event. One was the Perl::Critic project. Several attendeed squashed bugs, refined policies, and improved one of the most useful software development tools I’ve used in years.

The biggest success may have been for the Parrot project, however. Six of the attendees were Parrot contributors before the weekend started (including your author) and by the end of Saturday night, we had added eight more contributors.

I spent the weekend fixing broken tests in Parrot, and had the time to add a couple of new features. (My big goal — fixing Parrot::Embed on non-Unix platforms — didn’t quite happen, but Jerry Gay and I did track down some of the problems.) This cleaning was necessary for Chip Salzenberg (also in attendance) to release Parrot 0.4.7, codename “Caique”. We also took advantage of being in person to discuss some weighty design issues related to our object system. Unfortunately, three of the core Parrot developers couldn’t be there, but we caught up on IRC with Leo Toetsch and Patrick Michaud.

Was it a success? By all means! The best part was sitting down with people who’d never touched Parrot before and walking through adding a new feature or fixing a bug. For example, Jerry and I helped Jim Keenan compile Parrot for the first time. He’d found a bug in our configuration process. Though Jerry and I both recognized the error (being very much too familiar with compiling Parrot), walking Jim through the fix on his own virtually would have taken a lot of time. It went much faster in person, and now Jim is providing patches to related build files.

If you ask any of the other attendees, you’ll hear similar stories – especially, I hope, from people new to a project. A few people dropped by for a few hours without any particular plans, just hoping that they could contribute to something.

To me, that’s the real goal of a hackathon. I’m very proud of the work we’ve done on the Parrot release, but I’m even prouder that we helped eight more people contribute to Parrot. Maybe some of them will never contribute again, and that’s okay. Maybe some of them will continue to produce good patches and even become committers. I’d like that a lot.

However, each of them tried something new and contributed to a project that’s bigger than any single person. All of the developers of the project are better for their work, and all of the current and future users of the project benefit too. You can, of course, start to contribute to almost any free software project without ever leaving your house, but if it takes flying halfway across the country in wild weather and giving up a weekend every now and then to help someone else make that jump, I think it’s well worth it.

TPF, how about a west coast hackathon sometime early next year? Portland’s nice.


Andy & Pete: Thanks again for your efforts in organizing the Chicago Perl Hackathon. When you get a chance, I'd like to learn more about the financial costs of putting the hackathon on. I'd like to help organize one in the Northeast but will need to know the cost structure first.

Jim Keenan

contributed by Jim Keenan on Dec 10 5:55pm

permalink
Socialtext Open

Leader: Andy Lester

Socialtext Open is the software on which this wiki runs. A list of tasks is available on the Socialtext Open development page at the Socialtext Open Source Software wiki.

Kelli Ireland had a crazy idea and suggested that a wiki should include flow charting capabilities. Then one could click on a flow chart box or arrow and go to the page that expands on that topic/action/etc.

Chris Fedde is just experementing to see if this is something that could replace our current Kwiki incantation.

I want a form feature that lets people add and edit semi-structured text.

permalink
Reporting

Reporting live from the scene of the Chicago hackathon!

permalink
Feedback

Leave your comments and feedback about the hackathon here. Please use the Comment button instead of editing the page.


Andy should have made it clear that O'Hare was the airport of choice, not Midway. The people who came in to Midway had to go through hell.

contributed by Andy Lester on Nov 11 8:30am

No, just the Chicago suburbs. I can see how you might confuse the two though.


I made a number of blog posts (Hackathon: Perl::Critic, Hackathon: Parrot, Hackathon: Krugle, Hackathon: Summary…) about the Hackathon. Personally most of the projects being worked on were over my head code-wise, but I still had a good time and learned a lot. Thanks for putting it on. (I've also put photos on Flickr...)

contributed by pete@rasterweb.net


I had fun, even though I only attended for one day. I had intended to work with the Parrot folks to work on their own Perl::Critic tests, but time was too short. In an email to the perl-critic list, I made a brain dump of the non-coding accomplishments and the list was surprisingly long.

I was also surprised that I enjoyed the krugle.com presentation and discussion. Ken Krugler is a thoughtful and interesting guy.

-- Chris Dolan


I enjoyed the weekend. The only thing I would have liked is better organization to get people into projects.

A lot of people seemed to be there and just work on what they wanted to, which was great. But for someone like me--who is experienced in perl but hasn't worked on much in the community--I didn't come in with a set goal in mind. I just wanted to work and give something back. It was kind of hard for me to get going on any particular project.

-Ken Swanson

contributed by kswanson@watson.wustl.edu on Nov 13 5:20pm


I want to pitch in 2 more cents here, in that like Ken, I really wished I could have contributed a bit more to Perl in general. All I really got to do of note is post photos and write blog posts. I did offer my services though, so maybe it was just my lack of skills in certain areas. (Plus I was only there for one day.)

contributed by pete@rasterweb.net on 2006-11-14

Pete, I don't want to pick on you (no offense intended!), but I have to speak from the other side a little bit. When you approached me on Saturday, I explained to you what Perl::Critic was and what Michael and I were working on, but you never even sat down with us to look at some code. While I do agree strongly that project leaders should have been more proactive about recruiting help, I also think that the newcomers have to be proactive about getting their hands dirty in code.
-- Chris Dolan


I could be wrong about my recollection here (you know how I am with matching faces and names, and even if it's not Pete, it was someone else that this still applies to), but I think that Pete sat down with Chris, and was intimidated by the scope of the project.

Maybe what we need to do is ease the new people into it. On the Parrot side, there are a lot of stories of "Bob installed Parrot successfully the first time." Maybe that's what we do with brand new people. "Here, go install Perl::Critic, and run it on a project of yours, so you get a feel for what it does."

contributed by Andy Lester on Nov 15 9:47am

permalink
Weblog Navigation
Loading...
Weblog Archives
  • Loading...

Upload Files

Click "Browse" to find the file you want to upload. When you click "Upload file" your file will be uploaded and added to the list of attachments for this page.

Maximum file size: 50MB

 
 
 
File Name Author Date Uploaded Size

Save Page As

Enter a meaningful and distinctive title for your page.

Page Title:

Tip: You'll be able to find this page later by using the title you choose.

Page Already Exists

There is already a page named XXX. Would you like to:

Save with a different name:

Save the page with the name "XXX"

Append your text to the bottom of the existing page named: "XXX"

Upload Files

Click "Browse" to find the file you want to upload. When you click "Add file" this file will be added to the list of attachments for this page, and uploaded when you save the page.

 
 
 
Add Tags

Enter a tag and click "Add tag". The tag will be saved when you save the page.

Tag: 

Suggestions: