Notes from a Newbie 20: YAPC::NA 2013 Austin

This entry provides details for my talk Notes from a Newbie that I will give at YAPC::NA 2013 Austin.

Among other things, I will briefly discuss a series of tutorials I created titled Notes from a Newbie, which document the creation and deployment of yardbirdfanclub.org with Perl Catalyst on shared hosting. They are intended for a Perl Catalyst Newbie who would like to study the creation and deployment of a simple Perl Catalyst application.

Why I am Publishing this Blog Entry

When I registered for YAPC::NA 2013 Austin I saw the call for speakers and thought – what the heck, I doubt if many others will be interested in talking to Newbies. So I submitted a proposal and was surprised and pleased that it was accepted. But as I watched people add Notes from a Newbie to their schedules, I realized few if any are Newbies, and I'm a little concerned about this.

I'm a Newbie and my talk is intended for Newbies, what can I do to make it worthwhile for those who already use what I plan to discuss? Will there even be any Newbies attending my talk?

I tried to address these concerns in my preparation, but came to the conclusion that 20 minutes goes by very quickly. So I will limit myself to what I think may be most important to Newbies, for they are who I want to address. I want to make sure they get the necessary details, to use both what I present and may not have time to present in my talk, so I am publishing this blog entry to insure that this happens.

My adventures with Perl began shortly before attending the Pittsburgh Perl Workshop in 2011. I had yet to do much of anything, other than work through the Llama (Learning Perl) book - I really don't recall how much I had done, but I know I felt awkward and intimidated, and kept to myself at the workshop. That is no reflection on the workshop itself, but rather the life struggles I was going through at the time, and the fact that I had yet to do much of anything with Perl.

I was staying at a campground with my two dogs outside of Pittsburgh, and one of my immediate concerns was finding a way for them to be cared for during the day while I attended the workshop. The campground owner helped me with that. He let me put up my tent in his backyard, where he put up a temporary fence for them to stay while I was gone. Him and his wife also let me take showers in their home, and kept me and my dog's food in their refrigerator - they were very kind and generous people. I had driven to Pittsburgh from my home in Maine and was attending the workshop on the cheap. I was not your typical attendee.

The best thing that happened was that I met 3 or 4 people who went out of their way to help me feel welcome at the workshop. They suggested to lurk around and connect with people at chat sites, that they are generally accepting of Newbies. But as far as the talks I attended - and again this is not meant to denigrate the workshop, I didn't understand most of what was presented.

So now that I have a chance to offer something to other Newbies, I want to give them what I think would have helped me at my first Perl event. Information about Perldoc::Server and irc.perl.org are at the top of my list, followed by blogs.perl.org and a few other important sites and modules, and the opportunity to meet and exchange email addresses with other Newbies and Perl users.

I realize this may not be interesting to those already using these resources, but it may help Newbies (as new with Perl as I was) who have not yet used them.

Perldoc::Server

After working through the Llama (Learning Perl) and most of the Alpaca (Intermediate Perl) book, I was fortunate to stumble upon this information in the Perl Advent Calender:

I had been trying to use Perl documentation by viewing it with perldoc, without success because of these limitations:

  • Having to know the module or document name to open and view it.
  • Navigating and reading a document was difficult once I had it open and was viewing it.
  • Documents commonly refer to other documents, and having multiple documents open at the same time was difficult.

Once I started using Perldoc::Server, I began to effectively use Perl documentation and became productive with Perl, exploring and using modules I had been reading about, such as Moose, DBIx::Class and Catalyst. The article linked to above should be enough to get you started using Perldoc::Server.

Perldoc::Server finds your documentation and converts it from POD to HTML, so that you may view it nicely formatted with a web browser. I use Google Chrome version 26, with the SmoothScroll extension version 0.5 to control vertical length of scrolling. I found this to be necessary for the floating menu to not cover-up content at the top of the page.

irc.perl.org

I configured XChat IRC (I use linux) to use irc.perl.org and irc.freenode.net. You should have no problem finding information online to configure and connect with a client of your choice, but I think I had to register with Freenode and do more to set it up than was necessary with irc.perl.org, and I ended up using the #catalyst channel at irc.perl.org almost exclusively. Use a memorable nickname that others may identify you by. I started using j0e after getting help from t0m.

It was several months before I found a need to chat with anybody at irc.perl.org. But there came a time when I was unable to solve a problem on my own, and this gave me the incentive I needed to find courage and ask for help.

I should mention that before asking for help at irc.perl.org, I had previously asked for and received help with MySQL and Linux at the following sites:

I mention these because you can get help for both non-Perl and Perl issues there too, and they may be a good choice if you don't feel brave enough to use irc.perl.org. They are not chat sites, they are more like blogs where you post a question and check back later to view any responses people may have made - it's not a "live" interaction like when you are chatting. You can probably set email notification to be notified when somebody posts a response. You won't get an immediate response like is possible at irc.perl.org, but because it is not "live" it may be less intimidating for you than irc.perl.org.

I received lots of help at irc.perl.org, and found people to be very knowledgeable, patient and willing to help. It still amazes me that people are so willing to give so freely of their time.

There are a few things I learned about using irc.perl.org, and I'll give you the following advice:

1) Do your best to figure things out on your own, then feel free to go to irc.perl.org and ask specific questions armed with details from your efforts.

2) Trust that people who help you know what they are talking about, and do what they suggest that you do.

3) Read before you type. Sometimes it's difficult when I have details I want to provide, but get responses from one or more others before I finish typing my thoughts. I found it best to stop typing and to read what others ask or suggest, for not doing so can cause irritated responses - and rightfully so.

4) Don't paste into irc.perl.org! When you connect to an irc.perl.org channel, you should see a link to http://paste.scsys.co.uk. This site will allow you to paste code and other information that it will make available via a link it will post at irc.perl.org. Along with code, this is a good place to provide details which may be difficult to type into irc.perl.org - see 3) above.

You can get help at irc.perl.org, and begin to know people and feel connected to the Perl community there.

blogs.perl.org

When I first started reading blog entries, I understood little of what people were writing about. But now I find myself understanding more than I used to, and reading them is contributing to my knowledge.

Though you don't need to register for a free membership to view entries, you do need to do so to comment or create your own.

With membership you can edit your profile to tell others a little about yourself, and upload a photo if you want to do so. You can also enable email notifications so that you will be notified when somebody comments on one of your entries.

I was surprised and relieved when I published my first entry, that people welcomed me and provided encouragement for doing so. That boosted my self-confidence and increased my motivation to continue this work.

You can increase your knowledge at blogs.perl.org, and begin to know people and connect to the Perl community by posting your own blog entries and commenting there.

Use the "EXTENDED" Feature when Creating Blog Entries

For your entry not to intrude on others, create a short introduction page under the "BODY" tab, and put the rest of your entry under the "EXTENDED" tab. After publishing an entry, a link to “Continue reading >>” will appear at the bottom of your introduction page, which users may select to view the rest of your entry.

I use the Markdown formatting option, but there are others you may choose from.

For example, I put 1-6 hash marks (#) at the beginning of a line to make it a header, the number of hashes equals the resulting HTML header level. To specify a block of code, indent every line of the block by 4 spaces or 1 tab.

For details about the above and other formatting syntax, see:

yardbirdfanclub.org

I wanted to learn how to create and deploy web applications with Catalyst, so I created the Yardbird Fan Club, because it seemed like a fun way to do that:

I also created a series of tutorials titled Notes from a Newbie at blogs.perl.org, which document the creation and deployment of yardbirdfanclub.org on shared hosting:

Important

Books

  • Learning Perl (Llama)
  • Intermediate Perl (Alpaca)
  • Modern Perl

Sites

Modules

I use Perlbrew to manage multiple Perl installations in my $HOME directory:

I use cpanm to install Perl modules:

Though I have yet to use it, Pinto is an application for creating and managing a custom CPAN-like repository of Perl modules:

Though I have yet to use it, Stratopan uses Pinto to provide custom repositories of Perl modules securely hosted in the cloud:

Software

I use Linux.

I use GVim as my editor, with the Vimwiki and snipMate extensions:

I especially like using Vimwiki to take notes. It uses a simple markup syntax for generating HTML, and I use SyntaxHighlighter and CSS to format code and display attractive pages:

As mentioned previously, I use Google Chrome version 26, with the SmoothScroll extension version 0.5 to control vertical length of scrolling. I found this to be necessary with Perldoc::Server, for its floating menu to not cover-up content at the top of a page.

A Matter of Perspective

When I was a kid growing up in Nebraska, old codgers sat around telling stories about how hard they had it in the lean old days. Like when they were kids, how they walked 5 miles home from school in 3 feet of snow during a blizzard, and plugged up holes in their boots with cardboard and rags, then continued wearing them because their parents didn't have money to buy new ones. I bet a lot of these stories were true, people had it hard on the plains in the 20's and 30's. I started writing code in the mid-80's, but got out before the tech bubble in the mid-90's. Now that I'm trying to get back in, I am very enthusiastic about what I am doing. Preparing this talk made me realize how past experience is influencing my perspective.

When I went to college I began writing BASIC and Pascal programs on 8-bit Apple IIe desktop computers. They ran on Apple-ProDOS, used only proprietary software, and came standard with 64K of RAM, two 5.25-inch floppy drives, and a monochrome monitor that featured 80 columns (280x192 in high-res mode) of lower and upper-case text. We learned Fortran and COBOL on an IBM 370 mainframe running VM/CMS that printed to a huge, industrial-strength printer that must have cost a fortune to supply with paper. My senior year we got a lab of PC's running MS-DOS, and I learned Assembly and C by doing an independent honors project. I continued to use Assembly and C with MS-DOS to program realtime embedded systems in my software engineering jobs that followed.

During this time I didn't use computers connected by networks. The only way we communicated was by telephone or in person, sharing applications and code on floppy disks. I had no resources for learning other than teachers, classmates, co-workers, books and magazines. I did not use any open-source software, and had practically no software development community.

Now I do my work on a laptop, running entirely on open-source software, connected to the world via the Internet, with power and capabilities I never would have imagined before. Engaged in self-directed learning, using resources and connecting to community that didn't previously exist. Collaborating with people from around the world, acquiring knowledge and developing skills, using irc.perl.org and blogs.perl.org, and participating in YAPC::NA 2013 Austin.

Whereas before I was a big fish in a small pond, now I am a small fish in a very large pond!

YAPC::NA 2013 Austin

I won't be sleeping in a tent at this conference, and I'm leaving my car and dog at home. I'm looking forward to good eats and good company, relaxing and having a good time. I hope to see you there.

Update

I had a great time at YAPC, staying up until wee hours of the morning, meeting people for the first time in person who helped me in cyberspace, and those I had not known before. It really felt like I was welcomed into a huge family, and I greatly enjoyed hanging out with everybody.

Matt Trout suggested that I mention virtual hackathons in my talk and I failed to do so. He told me all are welcome, and you can learn more here:

I've been enjoying going through the hiring process with several companies I connected with at the job fair. I have been working long hours at my current job, and have yet to follow through on some things Peter Rabbitson helped me with - but I'll get to them sooner or later. I've been slowly emailing people I connected with at YAPC, but it will take me awhile - and there are some people who's faces I remember who I'll have to wait until next years YAPC in Orlando to reconnect with because I don't remember their names.

I wanted to launch my reentry back into the software development world in Austin at this conference, which is fitting because Austin is where I made my move to get out of it. As Harry Chapin said, all my life's a circle.

CIRCLES
Harry Chapin

All my life's a circle
Sunrise and sundown
Moon rolls through the nighttime
Till daybreak comes around
All my life's a circle
Still I wonder why
Seasons spinning 'round again
Years keep rolling by

Seems like I've been here before
Can't remember when
I got this funny feeling
We'll all be together again
No straight lines make up my life
All my roads have bends
No clear cut beginnings
So far no dead ends

I've met you a thousand times
I guess you've done the same
Then we lose each other
It's like a children's game
But now I find you here again
The thought comes to my mind
Our love is like a circle
Let's go 'round one more time

2 Comments

Hi j0e,

You said it yourself - it is a matter of perspective. I can't speak for other "non-newbies", but for me your talk is interesting specifically because it will not tell me anything new in a technical sense. It is prepared for a very specific target audience - an audience with which I am gradually losing connection.

So I am going to be in this room to listen what bothers "small fish in a big pond" - both you and other attendees who will ask you questions etc. I am likely to sit through the entire talk, listen, not say anything and leave. I may even look entirely uninterested and plain bored - none of this is your concern.

You announced a talk, and people signed up to see it. Nobody expects more than what was said on the schedule - the extra is just "let it be a surprise". So please do not adjust your talk for "old farts" - this is not why we want to come anyway :)

Cheers

Leave a comment

About j0e

user-pic I am a Perl Catalyst Newbie who is documenting the creation and deployment of yardbirdfanclub.org.