Subscribe to: Posts Comments Photos Links 250 Posts and 424 Comments till now

Life after school

I have neglected to mention on this blog that 1) I am done with school (I will graduate in May, but no more classes), and 2) I got a new job.

Close upI am now the Digital Resources Designer at the Center for Digital Research in the Humanities (new job, same place.) The somewhat ironic thing is that the new job does not require a MLS degree. I don’t regret getting the library degree though—a lot of what I learned (like ways to search and information storage and even things like marketing) will directly impact my job. So whether or not I end up as a librarian in the future, I’m glad I got the degree.

I’m not sure right now whether I will become a librarian, and if so, when. The new job is a great chance to hone my technical and design skills, and after I have been here for a while I can better determine what exactly I want to do. Many aspects of librarianship are still attractive to me, like working with lots of different people, working with technology—basically, being able to do a bit of everything. But I’m also REALLY excited about the new job despite it’s non librarian-ness, and can’t wait to see where it leads.

Yia Yia'sSo for now, I will be concentrating on the new job and things that relate to it. This might mean I’ll be doing a bit less in terms of library stuff. For instance, I probably won’t go to ALA this summer. I’m hoping instead to attend a Digital Humanities conference. My blog will probably take more of a techie/design direction while I explore aspects of the new job. That’s not to say I will never post anything library related—I’ll be very concerned with search, data organization, accessibility, usability, semantic markup and metadata—all things important in the library world.

What will I do with all my free time? A lot of projects have fallen by the wayside in the last semester or two – commitments I have made, projects I have meant to keep up, home repairs that need to be done. I will come back to these things in full force. Also, I will read, dance, paint, hang out with friends, and otherwise occupy myself.

Making Spiced PecansI had a hard time last semester. Actually, during the last two semesters I felt I was losing focus and drive. From talking to other students I know it’s a common thing. I think part of the problem for me was that I never really focused in my education. Towards the beginning I figured that I would find some kind of focus as school went on. But due to somewhat limited course options, I pretty much took what was available. I was also just plain burnt out from full time work and school towards the end. Because of all the superstars I know that manage to do so much more than me, I feel like a bit of a slacker. But, I recognize my limitations, and my need for free time.

I have also been suffering from writers block the last few months. Well, not a block, exactly. My mind has been busy, but I just can’t seem to get the ideas out. I’m hoping forcing myself to write will improve things. :)

A confession (more on Librarians and programming)

By flickr user dav

By flickr user dav

I have been following the replies to my post on teaching programming in library school, and I have a confession to make before I continue:

I am horribly biased.

I’ve wanted to learn to program for a long time, and actually learning how to has really opened my eyes to so many possibilities. I’m now teaching myself PHP so I can learn to write my own WordPress plugins.

But I can understand this comment by Susannah M.:

Why would I want to learn any of these? What does “ruby” actually DO? what does “PHP” actually DO? How would I use these in my job? I’ve never even heard of these before. My computer does what I want it to do – why would I want to re-program it? Neither this entry nor the comments have explained this to me.

By flickr user the mad LOLscientist

By flickr user the mad LOLscientist

Dorothea Salo and Meredith Farkas blogged  that programming isn’t what is needed, but better tech training in general. While I agree with this, I can attest that learning programming is a lot different from learning a lot of the other tech stuff. I’m lucky enough (and stubborn enough) to know a good amount about programming stuff. I run Linux at home (right now in fact) and I can accomplish a lot of things without understanding the programming involved.

Meredith said:

I’ve even done stuff with PHP and JavaScript, but it just involved messing around with stuff that already existed. I’d break it, figure out what I did and how it impacted things, and then fix it. Eventually I’d usually get it to do what I needed it to do.

This description really sounds familiar. I have managed to do a LOT without knowing a lick of programming, and I can attest that it is indeed possible. At the same time, I wish, oh I wish, that I had learned to program back in high school. I would have saved myself perhaps hundreds (if not more) of hours doing things that could have been accomplished much quicker if I actually knew how things worked.

But here’s the deal: programming is hard. Especially starting out. (Trevor Owens noted this as well.) I’m finding the second language easier to pick up because I can carry things over from the first language. But I honestly don’t know if I could have figured it out without a fantastic teacher that took the time to put things into context and explain things. It is all about context. Simply requiring library students to take a computer science course won’t do it. What library schools need are more library centered tech courses—like Dorothea’s and Meredith’s—that put technology in the context of librarianship.

One other point that has been rambling around my brain in the last week is how different library school student goals may be. What I think of librarianship—active and participatory maintenance and stewardship of information—isn’t everyone’s reason for going to library school. I suppose my definition leans toward the ‘information’ area of library school. In any case, I would urge anyone interested in information management/maintenance/finding in general to find a way to learn to program. It will change the way you think about computers.

And, it’s fun—if you’re the type that likes puzzles and brain teasers. :)

Why every Library Science student should learn programming

 by elliottcable

by elliottcable

The title is meant to incite a bit of discussion. I myself am not entirely convinced that every library student should be required to take a semester long course in programming, but I also think there are several very good reasons for librarians to learn programming:

  1. Information is increasingly in digital form and programming is the most powerful tool to search and work with digital information.
  2. Data migration will always be a problem, and learning programing can help one migrate data—or, at the very least understand why some forms are easier to migrate than others.
  3. Computers are possibly the most common piece of equipment in every librarian’s job. Learning to program gives one a way to take control of the machine, or at least not feel so much at its mercy.
  4. Programming librarians would allow libraries to develop more autonomy from outside vendors.
  5. Programming is becoming a basic skill, like reading, writing, and math.
  6. Information is increasingly electronic, and if librarians are going to be stewards of that information, we need to know how to manipulate it and preserve it.
  7. Many people would like programming if they tried, but if not forced to try, will hang on to the idea that it is “too hard.”
  8. Would teach future librarians that programmers are not superhuman and to understand a little what to expect when buying software.
  9. An army of programming librarians can do a great deal of good in the world.

During this, my last semester of library school (!), I took a class in which I learned the Ruby programming language (taught by Stephen Ramsay). While I feel I only scratched the surface of programming knowledge, the class really opened my eyes to the possibilities of  and limitations of programming. Even if I never went any further with programming, I have learned several important things:

Programming is everywhere! (photo by Mike Skalnik)

Programming is everywhere! (photo by Mike Skalnik)

  • How a search engine, in very simple terms, works.
  • How much of programming is  thinking, and how comparatively little can be spent actually writing code.
  • How much of programming is just finding bits of code to reuse.
  • How to conceptualize a program. I can think out the parts now. I can’t, at this point, just go put it all together, but I could talk to a programmer and explain it much more succinctly than before.
  • Programming isn’t as hard as it seems, practically.
  • Programming is much harder than it seems, conceptually.

While I think the benefits of taking a programming class are great, I also think few will actually take a programming class, even if t is offered, because it “is just too hard.” I think this is a shame, because often people will be surprised by what they can do when they have the right motivation and instruction. As an example, I was always a horrible math student in high school. I struggled with it constantly. I just didn’t get it. But when I moved to a new school district with better teachers, I understood it perfectly. I got A’s in math—easily—for the first time in my life. The point was further driven home when I later transferred back into my old school district and was making C’s in math again. This time, though, I knew that the problem wasn’t that I couldn’t learn math, just that I would have to find ways outside of class to do so (which is a sad commentary on education, but I digress).

My goal in library science is to work with technology, so it is hard for me to look at the programming question from other viewpoints. Programming is undoubtedly useful for me personally, but how useful would it be to someone who just wants to be a children’s librarian? I think programming can come in handy in many surprising ways, but it’s hard to think of an immediate practical application for some library jobs. How could a library school encourage future librarians to take programming without requiring it, especially knowing some people are terrified of the very idea of learning to code? I’m not sure I have an answer to this. Perhaps very basic programming concepts could be included in an intro to technology course—and presented in a non-scary way. Maybe the requirements of a library master’s aren’t the same for everyone, but depend on the student’s area of interest. Maybe programming is a pre-requisite to other tech based courses, such as digital libraries. In any case, I think the profession of librarianship would benefit greatly if the majority of future librarians learned something of it—even if they never took it further.

A few tips to someone who wants to learn how to program.

Pippy, a program that teaches the Python programming language, on the One Laptop Per Child (photo by Erik)

Unfortunately, not everyone can have a great teacher like I did. Like math teachers, I’m afraid good programming teachers may be few and far between. But there are a lot of good resources out there to learn programming on your own (list below) and you’d be surprised at how quickly you can pick stuff up.

One of the first questions you might ask yourself if you decide you want to learn to write code is “what language should I pick?” This turns out to be both difficult and easy to answer. My teacher said it doesn’t matter because the concepts you learn for one language carry over to others – and while that is true, I think it really does matter in some aspects. For me, I wanted to learn something that I could use right away, something that is fairly forgiving, and that there are a lot of good, beginning resources for. Ruby works for this, but there are others. As far as using it right away, if you have a blog or other web software written in PHP, by all means, learn PHP. You’ll be able to write something useful – like how to write a plugin for your blogging software – right away. Without classroom assignments (and grades) to drive you, you’ll need something else to drive you, something you are excited about.

Try to find several resources. Sometimes you’ll get stuck in one book/webpage and another will explain it another way. One of the best resources you can start with is code, which is another reason to try and pick a language you are already working with. Also, if you can, find someone you can ask for help. I have had tremendous help from people online.

Finally, here are a few sources I have found useful, though I have not worked through them all. A resource that’s great for someone else might not work for you,so try out a bunch.

Links

  • Alice is “an educational software that teaches students programming in a 3D environment.” I have not used this myself, but it has been recommended by many.
  • Processing is a computer language for programming images and animations.
  • Snipplr is a repository for code snippits. A great place to look if you are stuck.
  • Regular Expressions are a basic building block of programming that allow you to manipulate text. But Regular Expressions are useful by themselves, too- many text editors support RegEx search and replace.

Ruby

PHP

Python

Some Ideas

What can you do with programming? Try these projects:

If you have any additional links, please leave them in the comments.

Thanks to my Twitter and Friendfeed buddies for helping me solidify my own thoughts on this subject. :)

Embedding RSS into a webpage using PHP

Thing #6 on Nebraska Learns 2.0 is about using a feedreader to find feeds. In keeping with trying to learn something new, I decided to learn how to embed RSS into a web page for Thing #6. Turns out this is pretty easy.

There is an extremely easy way to do this: You can use Feed2JS Build JavaScript tool to embed an RSS feed on your website. But I wanted to learn how to do this naively, and, since I am trying to learn PHP, I wanted to learn to do it using PHP.

Why naively?

Well, I don’t like depending on an external site (beyond the RSS feed, of course) to display the content- it’s just one more thing that can break. If all the code resides on my own server, it will be up when my site is up. You can Download Feed2JS and host on your own server as well.

There are, as it turns out, lots of ways to do this, and as with most things I am learning, someone has already done all the hard work.

All I had to do was search for “rss php” and the very first thing that came up was a nice set of php scripts called Magpie RSS. Download the package, extract (I use portable 7-Zip for this) and copy these files to a new directory:

  • folder: extlib
  • rss_cache.inc
  • rss_fetch.inc
  • rss_parse.inc
  • rss_utils.inc

Then you need a php page in that same directory with something like the following code:

<?php
require_once('rss_fetch.inc');

$url = 'http://l2ne.blogspot.com/feeds/posts/default?alt=rss';
$rss = fetch_rss($url);

echo "Site: ", $rss->channel['title'], "<br>\n";
foreach ($rss->items as $item ) {
	$title = $item[title];
	$url   = $item[link];
	echo "<a href=$url>$title</a></li><br>\n";
}
?>

This will work as long as your php page is in the same directory as the scripts. If you want to store the scripts in another place on the server, you have to alter the first line slightly:

define('MAGPIE_DIR', '/path/to/your/directory/');
require_once(MAGPIE_DIR.'rss_fetch.inc');

And, of course, you have to change the URL to the RSS feed you want to display. There are lots of other options- the download comes with some sample files to play with. It’s easier than I thought it would be. :)

On digital projects

ooooold web pageIn the Digital Humanities, there is a lot of talk about digital projects. But what exactly is a digital project?

I came to this question while browsing through some of my old sites. One that’s still online is my Frida Kahlo site. I put this back up because it is one of the most consistently hit pages on my site. It is a digital project of sorts- a little collection of Frida Kahlo images, a little bit from her diary, and a biography. When I made this (in high school, please excuse the horrible HTML and proofing) I had visions of greatness. I was going to transcribe her diary, bring in collaborators who could speak Spanish and help me transcribe, write a huge and in depth biography. In the end, the project just didn’t go much of anywhere. I was just a high school student, back then there wasn’t a lot of interest in Frida Kahlo (the movie wasn’t out, and only a few biographies existed.)

The funny thing is, looking back on this tiny project, I see a lot of similarities to digital work today. The issues I faced with foreign language characters (which I never quite resolved) are still an issue, though we have more sophisticated and standard ways of dealing with them. I dealt with how to display the transcribed text, and was never satisfied with the result. I struggled with design. I thought about navigation. Later, I wondered about and dealt with migration. Obviously, at 17 I didn’t have everything figured out, but it’s interesting to me that some of the fundamental problems of digital projects are pretty similar.

Also interesting to me is the desire to make a digital project. I wouldn’t have called this a digital project back then- it was just a project, a web page, a fun way to spend my time. It was originally connected to a home page (now lost) on which I had a blog of sorts, which was mainly a place for me to put things I’d collected. In essence, my web presence was a digital project- I was trying to accurately portray who I was, or who I wanted to be, or at least what image I wanted to present to the world. The Frida Kahlo site was a part of that. I suppose the drive to make a website, digital project, whatever, is the same as the drive to write a book, make a painting, etc. It’s sort of refreshing to think back to the 17 year old me, who just wanted to make something. Even if it was small, and incomplete, it was there- and it still gets a lot of hits to this day. I didn’t spend a lot of time agonizing over details, I just made it.

Scholarly Digital Projects, of course, need more than this. In order to preserve the data, make the site future proof, and create a site with scholarly authority, things like markup and data structure and metadata and file types must be considered. It is important. But I’d like to find a way to capture the spontaneity of “oooo, isn’t this cool!” discoveries while keeping the scholarly aspects of the site. One way I can think of to do this is to work with a Center like ours. This way, a scholar can have ideas, and we can do the best we can to implement them. The more sites we do, the easier it gets (right?). However, not every scholar has access to a center like ours, and even in digital humanities centers some projects come along where we just don’t need to reinvent the wheel.

Another way to keep some of the spontaneity is to build the site using software that allows for this kind of thing. When I was building my Frida Kahlo site, I would have loved something like Wordpress to power it. Scholarly sites – at least object driven scholarly sites – can now use Omeka. Though it is still pretty new, it shows a lot of promise for getting projects out there quickly.  More of these tools will pop up, and eventually, we may not need to develop a custom framework for every project. Of course, the bigger projects will, but there are plenty of smaller projects that wouldn’t need to mess with hand coding, etc. My dream is that we’ll eventually have transcription systems that can generate needed markup and feed right into an Omeka-like program for display. There will also be the ability to add contents, easily invite and add collaborators, and tie projects together. and, of course, the search mechanisms will be awesome. (Software is pretty cool in my dreamland of a brain.)

Someone told me recently that they thought all this money going into tools is a bit of a waste. I disagree. Though there are many similar projects right now, that is the kind of activity is what is needed to come up with the best solution. Only time will tell if it will work.

Incidentally, this post is pretty timely because the “Tools for Data-Driven Scholarship” invitation only meeting, co-hosted by George Mason University’s Center for History and New Media (CHNM) and the Maryland Institute for Technology in the Humanities (MITH), starts today. Although the meeting is invitation only, the site is open to all, and it links to some nice resources.

« Previous PageNext Page »