Archive for September, 2009

The Evolution of the LITA Program Planning Committee

Friday, September 25th, 2009

The LITA Program Planning Committee (PPC) is the committee that collects, reviews, and schedules LITA-sponsored programs for the ALA Annual Conference. The illustrious Jason Griffey is the chair of the committee for the 2008-2010 term. I was lucky to be appointed to the committee this year, at a time of significant transition for the program planning process.

For the upcoming ALA Annual Conference 2010, Jason Griffey and the LITA Program Planning Committee decided to switch the program proposal process from a paper form and in-person interview to an electronic exchange: a Google Form and email correspondence this year, and hopefully a conference planning system by next year. (The PPC ProgramProcess TaskForce recommends the Open Conference System, an open source application from the Public Knowledge Project.)

With generous help from Ranti Junus, Systems Librarian at Michigan State University Libraries, a senior member of the committee, and Chair of the PPC ProgramProcess TaskForce, I learned that the process used to be very involved:

  1. The chair, co-chair, or vice chair of the Interest Group (IG) sponsoring the program would fill out the paper form and make many copies for each PPC member to read. (The information requested on the paper form was exactly the same as that requested on the Google Form this year.)
  2. The IG would arrange an appointment and meet with the PPC for 20-30 minutes.
  3. Feedback from the PPC was immediate: clarifications, potential audience, etc. PPC sometimes suggested the IG collaborate with other IGs within LITA or with other divisions. Typical collaboration usually entailed asking the other IG/division to co-sponsor to share information about the program with their own members. Time slots were also discussed. (Usually, the PPC chair had the timetable with her so she could check with the conflicts.)
  4. The PPC would then come to a consensus.
  5. A PPC liaison who was assigned to the IG would take over communication to the IG proposing the program after ALA Annual. The liaison was the go-to person for the IG for all PPC-related communications and was responsible for making sure that the IG would get the information they needed in a timely manner. Liaisons were also responsible for reminding the IGs about turning in other information such as the names of the speakers, communicating PPC discussions related to the respective IGs, and informing PPC about the IG’s progress preparing the program.

This year, with the use of Google Docs, Griffey was able to set up a Google Form for program proposals. The information from the Google Form was funneled into a Google Spreadsheet shared by all the members of the PPC. This was the process so far this year: (more…)

Programming 101

Friday, September 4th, 2009

Through a happy coincidence, I attended a programming workshop presented by Joe Osborn, a software engineer, game designer, and my fiancé. Since our schedules have been wacky lately, we decided that I would go with him to campus to work on my own research today. But his presentation was too interesting to ignore, and I found myself taking notes.

Joe Osborn preparing for his workshop on programming at USC

Joe Osborn preparing for his workshop on programming at USC

Joe started with some pointers:

  1. Self-directed learning: In order to really learn a programming language, it needs to be self-motivated “otherwise it won’t stick.” Start with a programming language that makes sense to how you understand the world. If you’re good at/interested in math, start with a language that uses mathematical functions.
  2. Google it: Google is tremendously important and useful to learning how to program, as is Stack Overflow, a Q&A site for programmers. ”Generally if you have a programming problem, there is someone who has solved it.”
  3. When in doubt, try it: ”It’s not worth it to take the time and reason about it, just stick it in and try it.” ”Plug it in, run the numbers, and see what happens.”
  4. Ask your friends: ”If none of the above work, ask your friends.”

Environments

As computers got more complicated, we lost the “basic prompt.” What we have now is a bunch of different environments that we have to install to use.

Low Inertia Languages

All of these environments are really self-contained — download it, run it, and start playing — low inertia to get it running

  • Gamemaker Lite: draw tiles that say “move an object forward” or “stop an object,” good for prototyping, Windows only
  • Scratch: created by MIT, for graphical programming and can be used for games, click and drag, no syntax to worry about, “get used to the idea of thinking in steps”
  • Max/MSP: visual, “like programming with a flow chart”
  • PLT Scheme: language similar to Lisp, basic principle is “function applications,” “One of the classic learning languages,” great book called How to Design Programs, highly recommended, often used it to teach programming
    • (circle 10) will create a circle 10 pixels wide.
  • Squeak: created in 1980, environment for Smalltalk, “Squeak gives you a big interface, like an OS inside an OS,” some really cool features like any text can be treated like code and then run, breaks down barriers between running the program and writing the program, Squeak Wiki, Smalltalk designed to be accessible to everybody

More Involved Languages

  • Python: Windows and Mac installers, editing text files
  • Ruby: very simple as far as languages go, why’s poignant guide to Ruby (PDF)
  • Adobe Flex: not as friendly as other environments, but there is a huge community of users — lots of community support, Flash is applicable to Flex

One of the really nice things about programming, is that as soon as you learn one thing, it’s easy to learn something else.

Every good programmer needs to really hate the language they’re using at some point, and want to make a new one.

Everyone who programs has an opinion; everyone is biased.

If you learn any of these languages, it will be a lot easier to learn other languages.