Re: [CODE4LIB] newbie
Nothing beats E- http://en.wikipedia.org/wiki/E_%28programming_language%29 sexy e - 924,000 hits But oh poor Erlang sexy erlang - 2 hits (both of them telling me: erlang isn't sexy) P@ -Original Message- From: Code for Libraries on behalf of Tim Spalding Sent: Fri 26-3-2010 4:21 To: CODE4LIB@LISTSERV.ND.EDU Subject: Re: [CODE4LIB] newbie Ruby may be sexy but sexy ruby on rails gets only four hits. As for sexy python, well, no comment. T On Thu, Mar 25, 2010 at 10:36 PM, Andrew Hankinson andrew.hankin...@gmail.com wrote: Just out of curiosity I tried them in quotes: sexy ruby - 72,200 sexy python - 37,900 sexy php - 25,100 sexy java - 16,100 sexy asp - 14,800 sexy perl - 8,080 sexy C++ - 177 sexy FORTRAN - 67 sexy COBOL - 8 I tried sexy lisp but the results were skewed by speech impediment fetishes. Which I'd say is even less strange than 8 people thinking you can write sexy COBOL.
Re: [CODE4LIB] newbie
sexy groovy - 43,200 On Thu, Mar 25, 2010 at 10:36 PM, Andrew Hankinson andrew.hankin...@gmail.com wrote: Just out of curiosity I tried them in quotes: sexy ruby - 72,200 sexy python - 37,900 sexy php - 25,100 sexy java - 16,100 sexy asp - 14,800 sexy perl - 8,080 sexy C++ - 177 sexy FORTRAN - 67 sexy COBOL - 8 I tried sexy lisp but the results were skewed by speech impediment fetishes. Which I'd say is even less strange than 8 people thinking you can write sexy COBOL. On 2010-03-25, at 10:20 PM, Tim Spalding wrote: Finally, I never would have put the strings PHP and sexiness in a sentence together (though I guess I just did). A simple Google search shows how very wrong you are: sexy php - 56,100,000 results sexy asp - 8,380,000 sexy java - 6,360,000 sexy ruby - 2,840,000 sexy perl - 532,000 sexy C++ - 488,000 sexy smalltalk - 113,000 sexy fortran - 107,000 sexy COBOL - 58,100 There are also very high results for sexy logo. Perhaps, since I was in fourth grade, someone's figured out something interesting to do with that stupid turtle! Tim
Re: [CODE4LIB] newbie
sexy code4lib - 0 (with quotes); 2,380 (without quotes) Thanks, Becky sexy librarian - 73,700... sexy coder - 1,950... On Fri, Mar 26, 2010 at 9:06 AM, Ross Singer rossfsin...@gmail.com wrote: sexy groovy - 43,200 On Thu, Mar 25, 2010 at 10:36 PM, Andrew Hankinson andrew.hankin...@gmail.com wrote: Just out of curiosity I tried them in quotes: sexy ruby - 72,200 sexy python - 37,900 sexy php - 25,100 sexy java - 16,100 sexy asp - 14,800 sexy perl - 8,080 sexy C++ - 177 sexy FORTRAN - 67 sexy COBOL - 8 I tried sexy lisp but the results were skewed by speech impediment fetishes. Which I'd say is even less strange than 8 people thinking you can write sexy COBOL. On 2010-03-25, at 10:20 PM, Tim Spalding wrote: Finally, I never would have put the strings PHP and sexiness in a sentence together (though I guess I just did). A simple Google search shows how very wrong you are: sexy php - 56,100,000 results sexy asp - 8,380,000 sexy java - 6,360,000 sexy ruby - 2,840,000 sexy perl - 532,000 sexy C++ - 488,000 sexy smalltalk - 113,000 sexy fortran - 107,000 sexy COBOL - 58,100 There are also very high results for sexy logo. Perhaps, since I was in fourth grade, someone's figured out something interesting to do with that stupid turtle! Tim
Re: [CODE4LIB] newbie
Ruby may be sexy but sexy ruby on rails gets only four hits. As for sexy python, well, no comment. T Also no comment: perl necklace Although see http://necklace.pl/ (and the T-shirt is clever). -- Michael -Original Message- From: Code for Libraries [mailto:code4...@listserv.nd.edu] On Behalf Of Tim Spalding Sent: Thursday, March 25, 2010 10:21 PM To: CODE4LIB@LISTSERV.ND.EDU Subject: Re: [CODE4LIB] newbie Ruby may be sexy but sexy ruby on rails gets only four hits. As for sexy python, well, no comment. T On Thu, Mar 25, 2010 at 10:36 PM, Andrew Hankinson andrew.hankin...@gmail.com wrote: Just out of curiosity I tried them in quotes: sexy ruby - 72,200 sexy python - 37,900 sexy php - 25,100 sexy java - 16,100 sexy asp - 14,800 sexy perl - 8,080 sexy C++ - 177 sexy FORTRAN - 67 sexy COBOL - 8 I tried sexy lisp but the results were skewed by speech impediment fetishes. Which I'd say is even less strange than 8 people thinking you can write sexy COBOL.
Re: [CODE4LIB] newbie
To offer a counterpoint to no PHP folks, One reason I like PHP is because right now its pretty much essential to know if you are using open source web applications like MediaWiki, Wordpress or Drupal. I feel like Javascript is also a must for web work. Agreed. I actually hated both PHP and JavaScript, but found I had to know them. I've become more of a fan of JavaScript, even though it is an odd beast. It is just so accessible and (carefully deployed) powerful that it is hard to resist. A kind of Dennis the Menace of the web. PHP is another story. I do need it for just those apps Karen describes. When I want to dig in I need PHP. But I still hate PHP. The online documentation is great, but it really _needs_ this documentation since it seems every function uses a slightly different parameter order or return type and you never know what to expect without looking it up. Unfortunately, this loose ethic has infected code written with PHP so that Drupal and WordPress both suffer the same problems. Yes, if you are going to dig into existing apps you may need PHP. That's why it is good to know what problems you need to solve _before_ committing to your language. The code already written is part of the _community_ of the language. You will do better if you can speak the language of the community. But if you do not have to learn PHP, I would not make it a starting point. It is just too scattered to be fun, at least for me. I would never use PHP to teach programming, though I might use JavaScript or Ruby with new or returning programmers. I keep toying with Ruby on Rails and getting about 1/3 of the way into the book I have before getting completely sidetracked by another project. I had this same problem for a few years. Part of the turn-off for me was the very insiderness of the Ruby crowd. Rails, especially, forces a way of thinking on you, a religion as I often term it. Many languages do this, but I found many of the books assumed you were ready to adopt the religion, and I was not. I finally broke through this barrier with the help of Learning Rails from O'Reilly press. The authors of this book are explicitly skeptical of some of the Rails religion, and make it clear when they are following the way and when they wander afield a bit. I found this welcoming and very helpful for arriving at Rails with my own set of questions and assumptions. I don't think Rails is magical or a solution to all (or even most) problems. But I do think it is a great deal of fun and a very efficient and effective framework for database-backed web apps. Especially if you have found yourself enjoying SmallTalk, Model-View-Controller, Cocoa programming, or the like, you might find a comfortable home and community in Ruby on Rails once you break through the crusty religious barrier. ...Eric Eric Celeste / e...@clst.org / http://eric.clst.org / 651-323-2009
Re: [CODE4LIB] newbie
On Wed, Mar 24, 2010 at 2:24 PM, jenny jennynotanyd...@gmail.com wrote: My question is, where would you recommend I would begin? What's hot right now in the library world? Python, PERL, Ruby? Any advice you'd have for a beginner like me or even recommendations for online courses would be extremely appreciated Hi Jenny, You've gotten lots of good advice and debate about programming languages but my advice is going to be a little bit on a different track. First, in general I'd re-empathize what some other folks have said. Projects are great way to learn a language, although i find a intro to x language also useful to work through at the very beginning of a language. I have found that classes are useful for me mainly because they give me deadlines and I usually try to go above and beyond the call of duty as far as classes go. It's not so much I'm learning from the lectures as it provides a structure for me to learn from and deadlines to work toward. The standards for many classes though are lower than the standards I set for myself so I tend to do overkill for actual assignments. So community college classes might be useful for that purpose. I'd also say some really good courses in software design and engineering can be really good, but it's hard to find good courses in those from what I can tell. Some signs of a good course: frequent group projects, long-term projects, design being taught, a versioning and feature/bug tracking framework setup for students and students are expected to use it, professor does code reviews. Mostly, lots of reading and lots of coding. Look around for tutorials on the web that go beyond hello world. Safari can be really good here, and 24x7 isn't bad. If you can get someone else to pay for it or use an institutional account that would be good. Choose some books on your programming language. Also read some non-programming language specific books like The Pragmatic Programmer, Peopleware, and the Mythical Man-month. (The latter two are older but still some of the best non-technical/management type books I've read). Find a programming environment that's comfortable for you and also try out some different operating systems and interfaces. You could start easy and start looking into various Live CD distributions. That way you can burn a cd or dvd with a new operating system and boot from it and poke around. Another thing you might want to investigate is using Virtual Machines. I have to confess that I haven't used virtual machines in my home environment much, but I suspect it would be really, really useful for learning. That way you can set up a virtual server and install things like databases or web servers without worrying about mucking up your own system. There is some (Indeed, had you asked this question six to eight years ago, I'd say make sure you have a setup where you can mess up your machine but recover). Hopefully after trying different operating systems, text editors, IDEs, version control systems, etc you find tools you really like. (Oh yeah, try to start learning some version control tools too...they're life-savers). Jon Gorman I JC
Re: [CODE4LIB] newbie
On Wed, 24 Mar 2010 17:51:38 -0400, Mark Tomko mark.to...@simmons.edu wrote: I wouldn't recommend PHP to learn as a programming language, if your goal is to have a general purpose programming language at your disposal. PHP is a fine language for building dynamic web pages, but it won't help you to slice and dice a big text file or process a bunch of XML or do some other odd job that you don't want to do by hand. To be precise, PHP can indeed do these kind of things, particularly in command line mode. I certainly don't recommend it, but if you're used to PHP for other reasons, and you already have it available to you, you can do 'odd jobs' with PHP. You can also use your teeth to open a tight bottle cap, the edge of a knife as a screwdriver, and duct tape to perform auto repairs. Brian
Re: [CODE4LIB] newbie
If you don't have access to Safari or books 24x7 through other means (e.g. work, affiliation with a public or academic library), you can get access to a decent collection of current programming ebooks by joining ACM, see http://pd.acm.org/ for details. A Professional membership is $99 annually. Though I haven't tried them yet myself, Professional membership also provides access to online courses in programming and related topics. Shirley On Thu, Mar 25, 2010 at 6:19 AM, Jon Gorman jonathan.gor...@gmail.com wrote: On Wed, Mar 24, 2010 at 2:24 PM, jenny jennynotanyd...@gmail.com wrote: My question is, where would you recommend I would begin? What's hot right now in the library world? Python, PERL, Ruby? Any advice you'd have for a beginner like me or even recommendations for online courses would be extremely appreciated Hi Jenny, You've gotten lots of good advice and debate about programming languages but my advice is going to be a little bit on a different track. First, in general I'd re-empathize what some other folks have said. Projects are great way to learn a language, although i find a intro to x language also useful to work through at the very beginning of a language. I have found that classes are useful for me mainly because they give me deadlines and I usually try to go above and beyond the call of duty as far as classes go. It's not so much I'm learning from the lectures as it provides a structure for me to learn from and deadlines to work toward. The standards for many classes though are lower than the standards I set for myself so I tend to do overkill for actual assignments. So community college classes might be useful for that purpose. I'd also say some really good courses in software design and engineering can be really good, but it's hard to find good courses in those from what I can tell. Some signs of a good course: frequent group projects, long-term projects, design being taught, a versioning and feature/bug tracking framework setup for students and students are expected to use it, professor does code reviews. Mostly, lots of reading and lots of coding. Look around for tutorials on the web that go beyond hello world. Safari can be really good here, and 24x7 isn't bad. If you can get someone else to pay for it or use an institutional account that would be good. Choose some books on your programming language. Also read some non-programming language specific books like The Pragmatic Programmer, Peopleware, and the Mythical Man-month. (The latter two are older but still some of the best non-technical/management type books I've read). Find a programming environment that's comfortable for you and also try out some different operating systems and interfaces. You could start easy and start looking into various Live CD distributions. That way you can burn a cd or dvd with a new operating system and boot from it and poke around. Another thing you might want to investigate is using Virtual Machines. I have to confess that I haven't used virtual machines in my home environment much, but I suspect it would be really, really useful for learning. That way you can set up a virtual server and install things like databases or web servers without worrying about mucking up your own system. There is some (Indeed, had you asked this question six to eight years ago, I'd say make sure you have a setup where you can mess up your machine but recover). Hopefully after trying different operating systems, text editors, IDEs, version control systems, etc you find tools you really like. (Oh yeah, try to start learning some version control tools too...they're life-savers). Jon Gorman I JC
Re: [CODE4LIB] newbie
On 3/25/2010 10:24, Brian Stamper wrote: On Wed, 24 Mar 2010 17:51:38 -0400, Mark Tomko mark.to...@simmons.edu wrote: I wouldn't recommend PHP to learn as a programming language, if your goal is to have a general purpose programming language at your disposal. PHP is a fine language for building dynamic web pages, but it won't help you to slice and dice a big text file or process a bunch of XML or do some other odd job that you don't want to do by hand. To be precise, PHP can indeed do these kind of things, particularly in command line mode. I certainly don't recommend it, but if you're used to PHP for other reasons, and you already have it available to you, you can do 'odd jobs' with PHP. You can also use your teeth to open a tight bottle cap, the edge of a knife as a screwdriver, and duct tape to perform auto repairs. ++ Especially if you're doing or thinking of doing things in the general web arena, PHP is widely used, well-supported by a variety of open-source libraries/frameworks/other projects, and webhosts. It can probably do X, though something else might do it better. That's why I adopted PHP: overall success. See also http://i.imgur.com/pG3q7.jpg -- Yitzchak Schaffer Systems Manager Touro College Libraries 33 West 23rd Street New York, NY 10010 Tel (212) 463-0400 x5230 Fax (212) 627-3197 Email yitzchak.schaf...@tourolib.org Access Problems? Contact systems.libr...@touro.edu
Re: [CODE4LIB] newbie
On 3/24/2010 17:43, Joe Hourcle wrote: I know there's a lot of stuff written in it, but *please* don't recommend PHP to beginners. Yes, you can get a lot of stuff done with it, but I've had way too many incidents where newbie coders didn't check their inputs, and we've had to clean up after them. Another way of looking at this: part of learning a language is learning its vulnerabilities and how to deal with them. And how to avoid security holes in web code in general. -- Yitzchak Schaffer Systems Manager Touro College Libraries 33 West 23rd Street New York, NY 10010 Tel (212) 463-0400 x5230 Fax (212) 627-3197 Email yitzchak.schaf...@tourolib.org Access Problems? Contact systems.libr...@touro.edu
Re: [CODE4LIB] newbie
As someone who uses PHP to do the small things I would recommend using Python or another language. I am trying to transition away from PHP to Python as it is not a panacea. PHP's great for web scripting but was never intended to do all of the duct taped projects that I have put together with it. On Thu, Mar 25, 2010 at 10:56 AM, Yitzchak Schaffer yitzchak.schaf...@gmx.com wrote: On 3/24/2010 17:43, Joe Hourcle wrote: I know there's a lot of stuff written in it, but *please* don't recommend PHP to beginners. Yes, you can get a lot of stuff done with it, but I've had way too many incidents where newbie coders didn't check their inputs, and we've had to clean up after them. Another way of looking at this: part of learning a language is learning its vulnerabilities and how to deal with them. And how to avoid security holes in web code in general. -- Yitzchak Schaffer Systems Manager Touro College Libraries 33 West 23rd Street New York, NY 10010 Tel (212) 463-0400 x5230 Fax (212) 627-3197 Email yitzchak.schaf...@tourolib.org Access Problems? Contact systems.libr...@touro.edu
Re: [CODE4LIB] newbie
You should /join #code4lib. Only there will you learn the secret one true path to wisdom. On Thu, Mar 25, 2010 at 11:31 AM, Matthew Bachtell matthewbacht...@gmail.com wrote: As someone who uses PHP to do the small things I would recommend using Python or another language. I am trying to transition away from PHP to Python as it is not a panacea. PHP's great for web scripting but was never intended to do all of the duct taped projects that I have put together with it. On Thu, Mar 25, 2010 at 10:56 AM, Yitzchak Schaffer yitzchak.schaf...@gmx.com wrote: On 3/24/2010 17:43, Joe Hourcle wrote: I know there's a lot of stuff written in it, but *please* don't recommend PHP to beginners. Yes, you can get a lot of stuff done with it, but I've had way too many incidents where newbie coders didn't check their inputs, and we've had to clean up after them. Another way of looking at this: part of learning a language is learning its vulnerabilities and how to deal with them. And how to avoid security holes in web code in general. -- Yitzchak Schaffer Systems Manager Touro College Libraries 33 West 23rd Street New York, NY 10010 Tel (212) 463-0400 x5230 Fax (212) 627-3197 Email yitzchak.schaf...@tourolib.org Access Problems? Contact systems.libr...@touro.edu
Re: [CODE4LIB] newbie
He means JavaScript. ;) Honestly, though, PHP and all it's fault not withstanding, I highly recommend starting with a C syntax-based language such as JavaScript, PHP, Java, or even C# (and obviously C and C++). Get some basic programming concepts understood, and then pursue the language the fits the bill for the task you're trying to solve. Most languages share some similarities, so moving between them gets easier as you go a long. Starting with a C syntax-based language will put you in good stead for learning several more (the list above is by no means exhaustive). If you want to check out some language usage statistics, I recommend these two sites: http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html http://langpop.com/ And do join the #code4lib IRC channel. It's enjoyable regardless of the language you pick. :) On 3/25/10 11:36 AM, Gabriel Farrell wrote: You should /join #code4lib. Only there will you learn the secret one true path to wisdom. On Thu, Mar 25, 2010 at 11:31 AM, Matthew Bachtell matthewbacht...@gmail.com wrote: As someone who uses PHP to do the small things I would recommend using Python or another language. I am trying to transition away from PHP to Python as it is not a panacea. PHP's great for web scripting but was never intended to do all of the duct taped projects that I have put together with it. On Thu, Mar 25, 2010 at 10:56 AM, Yitzchak Schaffer yitzchak.schaf...@gmx.com wrote: On 3/24/2010 17:43, Joe Hourcle wrote: I know there's a lot of stuff written in it, but *please* don't recommend PHP to beginners. Yes, you can get a lot of stuff done with it, but I've had way too many incidents where newbie coders didn't check their inputs, and we've had to clean up after them. Another way of looking at this: part of learning a language is learning its vulnerabilities and how to deal with them. And how to avoid security holes in web code in general. -- Yitzchak Schaffer Systems Manager Touro College Libraries 33 West 23rd Street New York, NY 10010 Tel (212) 463-0400 x5230 Fax (212) 627-3197 Email yitzchak.schaf...@tourolib.org Access Problems? Contact systems.libr...@touro.edu
Re: [CODE4LIB] newbie
On Thu, 25 Mar 2010, Yitzchak Schaffer wrote: On 3/24/2010 17:43, Joe Hourcle wrote: I know there's a lot of stuff written in it, but *please* don't recommend PHP to beginners. Yes, you can get a lot of stuff done with it, but I've had way too many incidents where newbie coders didn't check their inputs, and we've had to clean up after them. Another way of looking at this: part of learning a language is learning its vulnerabilities and how to deal with them. And how to avoid security holes in web code in general. Unfortunately, it's not all web code. Part of the issue is in selecting the correct tool for the job. Case in point -- I've been working for the last year to integrate a new data system into our federation. The system officially hasn't gone live yet, so as the institution building the system had replaced their full time DBA with a contractor, the contractor decided he was going to replace all of the work that the DBA had already done to enable external sites to subscribe to collections within the system. Unfortunately, he did the entire thing in shell, and he's passing around SQL scripts, applying them to the database without any validation, and he's hard-coded assumptions about how directories are laid out and where the script has permissions to write. Needless to say, when you get someone reading stuff from config files with *no* taint checking and *no* escaping or even quoting of arguments passed to other commands, I have to clean it up. I even try passing my changes back upstream, but I'm told that the contractor has to make the changes (and he then picks and chooses which security changes he's going to make ... then decides to wrap each 'rm' and dozen other commands in functions (so I can override what command's being called?), and I now have a shell script that's over 1000 lines. (okay, that's not fair ... his version is only 968 lines, it only gets over 1000 when I try to add my corrections to it, and it's only 702 lines when you strip out comments and blank lines) Now, much of it's just plain bad programming -- I mean, would you test to see if variables were set BEFORE loading the config file? Would you run through a series of functions where each one required the other one to complete without actually testing to see if any of them actually worked? (and well, one of those functions was the one that removed a tarball that took an hour to generate at the server, and the next one report back the 'success' to the server, so I couldn't get the server to run it again without getting someone to correct things manually) ... I probably wouldn't be so hot on the topic, if it hadn't occupied the better part of the last month of my life, and all of this last week. (well, it seems that scp'ing a file for the subscription manager to service to process, and create a tarball response with the contents for your database doesn't work too well when the service isn't actually running ... but the way it's written you have *no* idea what the status of the server is). ... sorry, I just needed to vent. Anyway, part of what makes a good programmer is knowing the correct tools to use. (and unfortunately, by definition, any newbie isn't going to have enough languages in their toolbox to be able to make a good selection). Yes, we always have to deal with determining the 'best' language based on what we know, who's going to maintain it, etc, so we sometimes have to go with sub-optimal choices. But much of it's trying to identify what's going to go wrong with what we build, and trying to make sure that it doesn't break in spectacularly bad ways.[1] I guess most people don't have the men with guns show up and take your servers for forensic analysis when some types of things go wrong, which makes me a little more paranoid in my error handling. But if you put it out there on the internet, someone, sooner or later will attempt to abuse it. It could be link spam on blogs, or usurping a guest book program to send spam, or even people claiming that compression artifacts in your data are UFOs[2], resulting in DDoS of your servers. The bad ones are where they find a way to modify your database, add something to your filesystem, or give them a shell on your system. -Joe [1] http://xkcd.com/327/ [2] http://www.google.com/search?q=disclosure+nasa+sun+2010
Re: [CODE4LIB] newbie
On 3/24/2010 4:47 PM, Kyle Banerjee wrote: Just so I can use some of my favorite technical jargon, you need to find a reference implementation. That's a fancy way of saying, find the simplest example you can. Then just copy and tweak the code until you grok it. There's an infinite amount to learn, so just take on things one at a time. This is some of the best advice. Reading and adapting good code has been my favorite way to learn. There was a discussion a couple years back on a code4lib code repository of some kind[1]. I'd love to resurrect this idea. A private pastebin[2] might be a decent option. I also know that a number of us use GitHub[3], which allows for collecting syntax highlighted code snippets and has some nifty social networking features that let you follow other coders and projects. GitHub is certainly not a solution for a code4lib repository but is another way to share code and learn from each other. I'm happy to help in any way to push this forward. Aaron [1] https://listserv.nd.edu/cgi-bin/wa?A2=ind0803L=CODE4LIBD=0X=09B7A8434FAC4C7567P=163887 [2] http://pastebin.com/help [3] http://github.com
Re: [CODE4LIB] newbie
On Thu, Mar 25, 2010 at 12:29 PM, Aaron Rubinstein arubi...@library.umass.edu wrote: This is some of the best advice. Reading and adapting good code has been my favorite way to learn. There was a discussion a couple years back on a code4lib code repository of some kind[1]. I'd love to resurrect this idea. A private pastebin[2] might be a decent option. I also know that a number of us use GitHub[3], which allows for collecting syntax highlighted code snippets and has some nifty social networking features that let you follow other coders and projects. GitHub is certainly not a solution for a code4lib repository but is another way to share code and learn from each other. I disagreed with this back in the day, and I still disagree with running our own code repository. There are too many good code hosting solutions out there for this to be justifiable. We used to run an SVN repo at code4lib.org, but we never bothered rebuilding it after our server got hacked. Actually I think GitHub/Google Code and their ilk are a much better solution -- especially for pastebins/gists/etc. What would be useful, though, is an aggregation of the Code4lib's community spread across these sites, sort of what like the Planet does for blog postings, etc. or what Google Buzz does for the people I follow (i.e. I see their gists). I'd buy in to that (and help support it), but I'm not sure how one would go about it. -Ross.
Re: [CODE4LIB] newbie
Newbie programmers (and established ones still looking to improve) might be interested in this blog article that I wrote a few days ago about some of the best programmers I've had the privilege of working with: http://reprog.wordpress.com/2010/03/21/the-hacker-the-architect-and-the-superhero-three-completely-different-ways-to-be-an-excellent-programmer/ Enjoy! On 25 March 2010 16:47, Ross Singer rossfsin...@gmail.com wrote: On Thu, Mar 25, 2010 at 12:29 PM, Aaron Rubinstein arubi...@library.umass.edu wrote: This is some of the best advice. Reading and adapting good code has been my favorite way to learn. There was a discussion a couple years back on a code4lib code repository of some kind[1]. I'd love to resurrect this idea. A private pastebin[2] might be a decent option. I also know that a number of us use GitHub[3], which allows for collecting syntax highlighted code snippets and has some nifty social networking features that let you follow other coders and projects. GitHub is certainly not a solution for a code4lib repository but is another way to share code and learn from each other. I disagreed with this back in the day, and I still disagree with running our own code repository. There are too many good code hosting solutions out there for this to be justifiable. We used to run an SVN repo at code4lib.org, but we never bothered rebuilding it after our server got hacked. Actually I think GitHub/Google Code and their ilk are a much better solution -- especially for pastebins/gists/etc. What would be useful, though, is an aggregation of the Code4lib's community spread across these sites, sort of what like the Planet does for blog postings, etc. or what Google Buzz does for the people I follow (i.e. I see their gists). I'd buy in to that (and help support it), but I'm not sure how one would go about it. -Ross.
Re: [CODE4LIB] newbie
On 3/25/2010 12:47 PM, Ross Singer wrote: I disagreed with this back in the day, and I still disagree with running our own code repository. There are too many good code hosting solutions out there for this to be justifiable. We used to run an SVN repo at code4lib.org, but we never bothered rebuilding it after our server got hacked. Actually I think GitHub/Google Code and their ilk are a much better solution -- especially for pastebins/gists/etc. What would be useful, though, is an aggregation of the Code4lib's community spread across these sites, sort of what like the Planet does for blog postings, etc. or what Google Buzz does for the people I follow (i.e. I see their gists). I'd buy in to that (and help support it), but I'm not sure how one would go about it. -Ross. I think the old discussion was looking more for a way to host code snippets as opposed to version controlled projects, which I agree that GitHub and the like already do nicely. Would we really need more than a code4lib.pastebin.com? That being said, a code planet would be really cool. I know that GitHub and BitBucket publish ATOM feeds of a user's activity but I'm not so sure about other code hosting sites. Anyways, just a thought... Aaron
Re: [CODE4LIB] newbie
Google code has project feeds in Atom, too. --Dave == David Walker Library Web Services Manager California State University http://xerxes.calstate.edu From: Code for Libraries [code4...@listserv.nd.edu] On Behalf Of Aaron Rubinstein [arubi...@library.umass.edu] Sent: Thursday, March 25, 2010 10:21 AM To: CODE4LIB@LISTSERV.ND.EDU Subject: Re: [CODE4LIB] newbie On 3/25/2010 12:47 PM, Ross Singer wrote: I disagreed with this back in the day, and I still disagree with running our own code repository. There are too many good code hosting solutions out there for this to be justifiable. We used to run an SVN repo at code4lib.org, but we never bothered rebuilding it after our server got hacked. Actually I think GitHub/Google Code and their ilk are a much better solution -- especially for pastebins/gists/etc. What would be useful, though, is an aggregation of the Code4lib's community spread across these sites, sort of what like the Planet does for blog postings, etc. or what Google Buzz does for the people I follow (i.e. I see their gists). I'd buy in to that (and help support it), but I'm not sure how one would go about it. -Ross. I think the old discussion was looking more for a way to host code snippets as opposed to version controlled projects, which I agree that GitHub and the like already do nicely. Would we really need more than a code4lib.pastebin.com? That being said, a code planet would be really cool. I know that GitHub and BitBucket publish ATOM feeds of a user's activity but I'm not so sure about other code hosting sites. Anyways, just a thought... Aaron
Re: [CODE4LIB] newbie
Agreed -- I coded up many nice SQL injection vulnerabilities before I ever learned PHP. As for Perl, anyone remember the notorious formmail.cgi from Matt's Script Archive? For **web** programming specifically, it's critically important for newbies to get a grounding in security issues, regardless of the language being used. Also, in usability issues, accessibility issues, etc. for anything that's actually going to get used by the public. But really, that mainly applies if you're going to be developing a whole app complete with web-accessible front end. If your interests aren't particularly in web development, you have a whole other set of potential issues to learn about, and I'm probably ignorant of most of them. My first language was C, which according to langpop.com [1] is still the most popular language around! If you don't want to get bogged down in the web security issues, etc., then you might lean toward learning a general-purpose language like C or Java, rather than one designed for a specific purpose as PHP is for web development. [1] http://www.langpop.com/ yitzchak.schaf...@gmx.com 03/25/10 07:56AM On 3/24/2010 17:43, Joe Hourcle wrote: I know there's a lot of stuff written in it, but *please* don't recommend PHP to beginners. Yes, you can get a lot of stuff done with it, but I've had way too many incidents where newbie coders didn't check their inputs, and we've had to clean up after them. Another way of looking at this: part of learning a language is learning its vulnerabilities and how to deal with them. And how to avoid security holes in web code in general.
Re: [CODE4LIB] newbie
Speaking of Regular Expression, O'Reilly Media has an ebook deal of the day for the Regular Expression Cookbook ($9.99, use code DDREC) [1] OK. I don't know if it's OK to post the info like above, but they advertise that on their Facebook page [2] and I can't resist sharing the saving. ranti. [1] http://oreil.ly/bgvSuD [2] http://www.facebook.com/OReilly?v=wall On Thu, Mar 25, 2010 at 5:30 PM, Tim Shearer sh...@ils.unc.edu wrote: Warning: regular expressions can become addictive. And, for some of us batch manipulation of large text sets can provide a whole lot of satisfaction. Finally, I never would have put the strings PHP and sexiness in a sentence together (though I guess I just did). -t -- Bulk mail. Postage paid.
Re: [CODE4LIB] newbie
Finally, I never would have put the strings PHP and sexiness in a sentence together (though I guess I just did). A simple Google search shows how very wrong you are: sexy php - 56,100,000 results sexy asp - 8,380,000 sexy java - 6,360,000 sexy ruby - 2,840,000 sexy perl - 532,000 sexy C++ - 488,000 sexy smalltalk - 113,000 sexy fortran - 107,000 sexy COBOL - 58,100 There are also very high results for sexy logo. Perhaps, since I was in fourth grade, someone's figured out something interesting to do with that stupid turtle! Tim
Re: [CODE4LIB] newbie
Just out of curiosity I tried them in quotes: sexy ruby - 72,200 sexy python - 37,900 sexy php - 25,100 sexy java - 16,100 sexy asp - 14,800 sexy perl - 8,080 sexy C++ - 177 sexy FORTRAN - 67 sexy COBOL - 8 I tried sexy lisp but the results were skewed by speech impediment fetishes. Which I'd say is even less strange than 8 people thinking you can write sexy COBOL. On 2010-03-25, at 10:20 PM, Tim Spalding wrote: Finally, I never would have put the strings PHP and sexiness in a sentence together (though I guess I just did). A simple Google search shows how very wrong you are: sexy php - 56,100,000 results sexy asp - 8,380,000 sexy java - 6,360,000 sexy ruby - 2,840,000 sexy perl - 532,000 sexy C++ - 488,000 sexy smalltalk - 113,000 sexy fortran - 107,000 sexy COBOL - 58,100 There are also very high results for sexy logo. Perhaps, since I was in fourth grade, someone's figured out something interesting to do with that stupid turtle! Tim
Re: [CODE4LIB] newbie
Ruby may be sexy but sexy ruby on rails gets only four hits. As for sexy python, well, no comment. T On Thu, Mar 25, 2010 at 10:36 PM, Andrew Hankinson andrew.hankin...@gmail.com wrote: Just out of curiosity I tried them in quotes: sexy ruby - 72,200 sexy python - 37,900 sexy php - 25,100 sexy java - 16,100 sexy asp - 14,800 sexy perl - 8,080 sexy C++ - 177 sexy FORTRAN - 67 sexy COBOL - 8 I tried sexy lisp but the results were skewed by speech impediment fetishes. Which I'd say is even less strange than 8 people thinking you can write sexy COBOL.
Re: [CODE4LIB] newbie
Jenny, I discovered (i think through a code4libber) the other day a great series of videos on learning python. It was put out by Google as part of a series they do for their employees. http://code.google.com/edu/languages/ I myself don't know Python (i wish i did), but that section of the page seems the most robust. That in conjunction with a book might be useful. And if your partner knows it, all the better. Also we've had this debate in the past. Maybe taking a look in the code4lib archives might also be useful. Rosalyn On Wed, Mar 24, 2010 at 3:24 PM, jenny jennynotanyd...@gmail.com wrote: A newly-minted library school grad who has up to this point focused my studies on Rare Books and Book Arts, I've been interested in getting back into some programming--I took two classes in college (VisualBASIC), have a smattering of web design and php, MySQL, exposure, but I'd like to try my hand at teaching myself a language in my free time. My partner is a former dotcom programmer (now studying neuroscience) and has offered to assist when needed, so I'm not completely on my own (thank goodness). My question is, where would you recommend I would begin? What's hot right now in the library world? Python, PERL, Ruby? Any advice you'd have for a beginner like me or even recommendations for online courses would be extremely appreciated JC
Re: [CODE4LIB] newbie
On Mar 24, 2010, at 3:24 PM, jenny wrote: My question is, where would you recommend I would begin? What's hot right now in the library world? Python, PERL, Ruby? Any advice you'd have for a beginner like me or even recommendations for online courses would be extremely appreciated If you are approaching the problem for the point of view of learning a programming language, then then you have outlined pretty good choices. At the risk of starting a religious war, I like Perl, but PHP is more popular. Java is pretty good too, but IMHO it doesn't really matter. In the end you will need to use the best tool for the job. Another way to approach the problem is to have a programming language dictated to you. Is there a particular (open source) software package that interests you? Koha? WordPress? Lucene? If so, then choose the language of that software package. Perl, PHP, and Java, respectively. Just as important as the actual language may be the programming techniques you will have to learn. Now-a-day knowing how to read and write XML is almost imperative. Knowing how to do I/O against a database is all but necessary. Understanding how to send URL's to remote resources and parsing the results is common place. Learning how to output your content as an HTTP response is all too common. All of the languages incorporate extensions for doing such things. Finally, the whole thing usually boils down to, What works for you? Personally, I have never been able to pick up a computer language without first having real-world problem to solve. Do you have any itches that need scratching? -- Eric Lease Morgan University of Notre Dame
Re: [CODE4LIB] newbie
A newly-minted library school grad who has up to this point focused my studies on Rare Books and Book Arts, I've been interested in getting back into some programming--I took two classes in college (VisualBASIC), have a smattering of web design and php, MySQL, exposure, but I'd like to try my hand at teaching myself a language in my free time. My partner is a former dotcom programmer (now studying neuroscience) and has offered to assist when needed, so I'm not completely on my own (thank goodness). My question is, where would you recommend I would begin? What's hot right now in the library world? Python, PERL, Ruby? Any advice you'd have for a beginner like me or even recommendations for online courses would be extremely appreciated Pick something that you need for a specific project. You already know how to program, so picking up a language for its own sake will mostly be an academic exercise for you. If you just take a course or pick up a book to learn a new language, you'll wind up doing the same things you already know how to do just using slightly different syntax. Syntax is the least important difference between the languages. More important is knowing which ones are better suited to which applications. My advice would be to work on a project and if it calls for a language that you don't know, then pick up that. If it calls for something you already know like PHP, just use that and pick up your new language when you need to later. In other words, learn what you need. It's dang hard to remember anything you don't actively use. kyle -- -- Kyle Banerjee Digital Services Program Manager Orbis Cascade Alliance baner...@uoregon.edu / 503.999.9787
Re: [CODE4LIB] newbie
On 3/24/2010 at 4:08 PM, emor...@nd.edu wrote: [snip] Just as important as the actual language may be the programming techniques you will have to learn. Now-a-day knowing how to read and write XML is almost imperative. Knowing how to do I/O against a database is all but necessary. Understanding how to send URL's to remote resources and parsing the results is common place. Learning how to output your content as an HTTP response is all too common. All of the languages incorporate extensions for doing such things. [/snip] As a relative newbie myself, any advice on how/where to pick up these particular things? (Especially everything after the XML.) Thanks, Laura Harris Web Services Librarian Grand Valley State University
Re: [CODE4LIB] newbie
I agree with the responses that suggest you look at the problems you want to solve and then decide which language, and more importantly which _community_ surrounding a language, is most in tune with solving those problems. If you are not sure what you want to solve, but just looking for ways to stay sharp, I have two current favorite ways to do that: (1) JavaScript is already available to you, very versatile, and a lot of fun to play with. JavaScript is built in to every browser. You don't need to have access to a web server to have a lot of fun with it. There are a ton of books, lots of websites, and all kinds of small problems you can solve with it. It is the foundation of client-side computation on the web, a key way that current websites become more responsive to their users. Add some study of CSS (cascading style sheets) and you can do miraculous things with JavaScript. If you go this route, don't be shy of using jQuery from the beginning. It only makes JavaScript easier to use when manipulating web pages. (2) Ruby is a blast, and Ruby on Rails is a rocket. Most server side tools require a whole suite of tools working in concert to get going. PHP depends on Apache and often on plugins that can take a bit of tweaking. Ruby, on the other hand, pretty much depends on itself. And Ruby on Rails gives you a whole web server environment to play with on your own machine without much hassle. You don't really even need to install a database to get started, since it can use SQLite. If you get serious, you can even deploy a Rails app via Heruku for free or cheap. Ruby is, IMHO, a beautiful syntax and may actually make you smile as you code. Rails made me laugh out loud as it simplified what I thought of as horribly complex tasks in other languages and environments, though it also made my head hurt as I unlearned old habits. If nothing else, you may be entertained while learning. Give http://tryruby.org 20 minutes for a taste. These are my current thoughts, very different than what you might have heard from me a year ago. But really, a lot depends on the problems you are trying to solve. Think about those for a while and let them lead you. ...Eric Eric Celeste / e...@clst.org / http://eric.clst.org / 651-323-2009 On Wed, Mar 24, 2010 at 2:24 PM, jenny jennynotanyd...@gmail.com wrote: A newly-minted library school grad who has up to this point focused my studies on Rare Books and Book Arts, I've been interested in getting back into some programming--I took two classes in college (VisualBASIC), have a smattering of web design and php, MySQL, exposure, but I'd like to try my hand at teaching myself a language in my free time. My partner is a former dotcom programmer (now studying neuroscience) and has offered to assist when needed, so I'm not completely on my own (thank goodness). My question is, where would you recommend I would begin? What's hot right now in the library world? Python, PERL, Ruby? Any advice you'd have for a beginner like me or even recommendations for online courses would be extremely appreciated JC
Re: [CODE4LIB] newbie
Just as important as the actual language may be the programming techniques you will have to learn. Now-a-day knowing how to read and write XML is almost imperative. Knowing how to do I/O against a database is all but necessary. Understanding how to send URL's to remote resources and parsing the results is common place. Learning how to output your content as an HTTP response is all too common. All of the languages incorporate extensions for doing such things. As a relative newbie myself, any advice on how/where to pick up these particular things? (Especially everything after the XML.) Just so I can use some of my favorite technical jargon, you need to find a reference implementation. That's a fancy way of saying, find the simplest example you can. Then just copy and tweak the code until you grok it. There's an infinite amount to learn, so just take on things one at a time. Eric's advice that you need to figure out which community is the best match for the problems you want to solve is spot on. Once you do that, everything will naturally fall into place. The right community will help you figure out how to wrap your mind around what you're trying to solve, what you need to pursue, and give advice on specific challenges you face. kyle
Re: [CODE4LIB] newbie
Not to start any flame wars, I'll have to agree with Rosalyn on Python. My favorite, one reason is the syntax requires readablity, for instance, indention is part of the syntax. And, I am running Zope/Plone servers (since 1992) which are written in C and python, and python scripting integrates really well by design. By the way, you will see a lot of Python at Google, talking with some of their employees there is a lot of programming done in Python for internal and public use for years. I think the book Dive Into Python is available free in electronic format and is highly rated. But my conviction has always been, use a language you like because the same result can be obtained from the languages you mentioned and others. The good thing is, there are is a lot experience now in these different languages in libraries. Test the waters, and which ever you choose you may want to first checkout: http://showmedo.com It started out as just a Python tutorial site but has grown. From their WEB page: Showmedo is a peer-produced video-tutorials and screencasts site for free and open-source software - with the exception of some club videos, the large majority are free to watch and download. Follow our progress building the site with Python, Javascript, Jquery, CSS, HTML, Flash, etc.., plus open-source news, advocacy and just plain interesting stuff in the FOSS world: Beginner Programming241 videos Python 529 videos Ruby68 videos Java39 videos Perl6 videos Javascript 22 videos C 29 videos Django 61 videos Rubyonrails 39 videos Turbogears 23 videos Firefox 16 videos Eclipse 19 videos Vim 11 videos Gimp45 videos Inkscape21 videos Blender 51 videos Linux 189 videos Openoffice 117 videos Ubuntu 93 videos Scribus 31 videos Wxpython76 videos Pygame 12 videos Pyopengl32 videos Ipython 48 videos Wingware34 videos Similar to Ethan's suggestion, are there certain projects that interest you already, then what language do they use, Koha, Evergreen, etc..? And to be on the cutting edge (maybe), you might want to look at Go. No major systems language has emerged in over a decade, but over that time the computing landscape has changed tremendously ... The Go project was conceived to make it easier to write the kind of server and other software Google uses internally ... See : http://golang.org/doc/go_faq.html From what I've read about Go Programming Language, this would be a perfect candidate for a robust ILS to be written in. I think this and languages like this may end up requiring the need for even faster bus speeds and faster networking. Thomas On Wednesday 24 March 2010 15:24:55 you wrote: A newly-minted library school grad who has up to this point focused my studies on Rare Books and Book Arts, I've been interested in getting back into some programming--I took two classes in college (VisualBASIC), have a smattering of web design and php, MySQL, exposure, but I'd like to try my hand at teaching myself a language in my free time. My partner is a former dotcom programmer (now studying neuroscience) and has offered to assist when needed, so I'm not completely on my own (thank goodness). My question is, where would you recommend I would begin? What's hot right now in the library world? Python, PERL, Ruby? Any advice you'd have for a beginner like me or even recommendations for online courses would be extremely appreciated JC -- == Thomas McMillan Grant Bennett Appalachian State University Operations Systems AnalystP O Box 32026 University LibraryBoone, North Carolina 28608 (828) 262 6587 Library Systems Help Desk: https://www.library.appstate.edu/help/ ==
Re: [CODE4LIB] newbie
Kyle Banerjee wrote: [snip] Pick something that you need for a specific project. You already know how to program, so picking up a language for its own sake will mostly be an academic exercise for you. [snip] My advice would be to work on a project and if it calls for a language that you don't know, then pick up that. If it calls for something you already know like PHP, just use that and pick up your new language when you need to later. In other words, learn what you need. It's dang hard to remember anything you don't actively use. kyle Seconding. I am not a programmer, but I've been able (by and large) to figure out what I need to do when faced with a specific problem. I have never been successful at my attempts to learn a language just for the heck of it. A sample project that jumped to my mind given your interest in rare books and book arts would be digital libraries. If I were in your shoes, I might look at what's available in that area. I know of Greenstone (not because of any experience with it on my own, but because of classmates who were using it for their digital libraries class) but I'm sure there's a lot more out there. Here's one of the projects I remember being done: http://gslis.simmons.edu/henty/team.htm And now, back to my regularly scheduled lurking. Ellen -- Ellen Knowlton Wilson Instruction Coordinator Instructional Technology/Reference Librarian Room 250, University Library University of South Alabama Mobile, AL 36688 6-2826 | (251) 460-7025 ewil...@jaguar1.usouthal.edu
Re: [CODE4LIB] newbie
On Wed, 24 Mar 2010, Eric Lease Morgan wrote: On Mar 24, 2010, at 3:24 PM, jenny wrote: My question is, where would you recommend I would begin? What's hot right now in the library world? Python, PERL, Ruby? Any advice you'd have for a beginner like me or even recommendations for online courses would be extremely appreciated If you are approaching the problem for the point of view of learning a programming language, then then you have outlined pretty good choices. At the risk of starting a religious war, I like Perl, but PHP is more popular. Java is pretty good too, but IMHO it doesn't really matter. In the end you will need to use the best tool for the job. I know there's a lot of stuff written in it, but *please* don't recommend PHP to beginners. Yes, you can get a lot of stuff done with it, but I've had way too many incidents where newbie coders didn't check their inputs, and we've had to clean up after them. Just yesterday, I was helping someone at another federal agency clean up after someone got in through a PHP script and had turned their site into an ad for cialis. (but cleverly disguised, using their header / footer, and it only showed up when you passed the correct query_string to it) The problem's gotten so bad here, that we've been asked to send our entire web directory on each server to our security office, so that they can run it through some security scanner that looks for problems in PHP code. (they relented to my running 'find' on the system for PHP scripts, as we serve a few dozen TB of data over HTTP) We're also running intrusion detection software that managed to catch someone attempting to exploit refbase (and that was strike #2 against it ... I've never gotten a response to my e-mails to the maintainer, so we've since had to scrap the installs of it that we had). So, anyway ... don't do PHP. Even Tim Bray recommended that at ASIST's 2009 annual meeting, where he gave the plenary. (He recommended people learn Ruby, instead) Personally, I do most of my work in Perl, where I can, but I'd recommend Ruby or Python over someone learning PHP (unless it was to learn enough to migrate code off of PHP). ... and yes, I know I've stirred this pot before: http://www.mail-archive.com/code4lib@listserv.nd.edu/msg06630.html http://www.mail-archive.com/code4lib@listserv.nd.edu/msg06648.html ... And if you're using PHP, and can't get away from it, consider using something like mod_security to watch for signs of malicious behavior: http://www.modsecurity.org/ (note -- not an endorsement, I don't use it myself, as they've got something installed on the upstream firewall that does it ... which means that someone else sees it happen, and then we have to clean it up, fill out paperwork that we've cleaned it up, have meetings about how we're going to clean it up (when we already did), etc.) -Joe
Re: [CODE4LIB] newbie
I wouldn't recommend PHP to learn as a programming language, if your goal is to have a general purpose programming language at your disposal. PHP is a fine language for building dynamic web pages, but it won't help you to slice and dice a big text file or process a bunch of XML or do some other odd job that you don't want to do by hand. Ruby has many devotees. Perl is great for processing text files, but I (personally) would not want to write a large application in Perl (Koha notwithstanding). Python has a really nice syntax and offers good opportunities for exploring different programming styles (functional, OO, procedural). Also, Python's type system is neither cumbersome nor anemic. JavaScript is an interesting suggestion. With Rhino (http://www.mozilla.org/rhino/), you can write whole software applications in JavaScript, or harness Java libraries from the comfort of a dynamic language. I had a coworker at Amazon (in my former life) who implemented a fairly sophisticated tool using JavaScript and Rhino, and a big Java library I'd written. But since it's also implemented in every web browser and so neatly interacts with HTML, you're likely to find opportunities to use it if you do any web development at all. I wish I could plug my favorite language, Clojure (http://www.clojure.org/), but I'm not certain that it's ready to go out of the box unless you're already familiar with at least one of Lisp, Scheme, or Java. Its other drawback is that few people use it (yet), but it has a very lively and helpful development community. Like JavaScript (and Ruby, and Python, if you use JRuby or Jython), you can use it seamlessly with Java libraries, or as a standalone language. Good luck! Mark On Mar 24, 2010, at 3:34 PM, Ethan Gruber wrote: Hi Jenny, What are your professional interests in the library? You should pick a language that is relevant and a useful tool for doing what interests you. Ethan On Wed, Mar 24, 2010 at 3:31 PM, Rosalyn Metz rosalynm...@gmail.com wrote: Jenny, I discovered (i think through a code4libber) the other day a great series of videos on learning python. It was put out by Google as part of a series they do for their employees. http://code.google.com/edu/languages/ I myself don't know Python (i wish i did), but that section of the page seems the most robust. That in conjunction with a book might be useful. And if your partner knows it, all the better. Also we've had this debate in the past. Maybe taking a look in the code4lib archives might also be useful. Rosalyn On Wed, Mar 24, 2010 at 3:24 PM, jenny jennynotanyd...@gmail.com wrote: A newly-minted library school grad who has up to this point focused my studies on Rare Books and Book Arts, I've been interested in getting back into some programming--I took two classes in college (VisualBASIC), have a smattering of web design and php, MySQL, exposure, but I'd like to try my hand at teaching myself a language in my free time. My partner is a former dotcom programmer (now studying neuroscience) and has offered to assist when needed, so I'm not completely on my own (thank goodness). My question is, where would you recommend I would begin? What's hot right now in the library world? Python, PERL, Ruby? Any advice you'd have for a beginner like me or even recommendations for online courses would be extremely appreciated JC
Re: [CODE4LIB] newbie
I've been focusing on XSL and XQuery, but Python's on my list to do although I want to do a turn in Perl first, very versatile. Just a javascript background. regards, dana On Wed, Mar 24, 2010 at 2:24 PM, jenny jennynotanyd...@gmail.com wrote: A newly-minted library school grad who has up to this point focused my studies on Rare Books and Book Arts, I've been interested in getting back into some programming--I took two classes in college (VisualBASIC), have a smattering of web design and php, MySQL, exposure, but I'd like to try my hand at teaching myself a language in my free time. My partner is a former dotcom programmer (now studying neuroscience) and has offered to assist when needed, so I'm not completely on my own (thank goodness). My question is, where would you recommend I would begin? What's hot right now in the library world? Python, PERL, Ruby? Any advice you'd have for a beginner like me or even recommendations for online courses would be extremely appreciated JC -- Dana Pearson dbpearsonmlis.com
Re: [CODE4LIB] newbie
Language choice where there are no decisive external factors - like business requirements - is tricky. For most programmers, the language we prefer is nothing more than that - a preference. But new programmers by definition don't know enough to have a preference. If you're a free spirit and like expressive power - the ability to say what you want in the manner you want - Perl may be a good start. It's true that Perl lets you make just about every mistake a programmer can, but you can't learn from mistakes you're not allowed to make. If you're a pedantic authoritarian, then Python may be good start. It enforces a right way to do things and thereby eliminates many of the mistakes you might have had the opportunity to make in Perl. If you've got OCD and like futzing about with a million little pieces, Java may be a good start. (No, I'm kidding, Java isn't a good start. Nor is it a good end. But seriously, when learning to program, compiled languages like Java add unneeded overhead.) Javascript, on the other hand, may be a very good place to start. It's an odd language, but the prominence of the browser makes it a compelling option. Where in Perl the motto is There's more than one right way to do it and in Python it's There's one right way to do it, you might say the motto for Javascript is There's more than one wrong way to do it. If you choose Javascript, only bother to make things work in one browser at first. Cross-browser functionality is for the professionally insane. Ruby. I don't really know enough about Ruby to say anything about it. PHP. I have to agree with others - don't bother with PHP. I found a brief article that goes over a few more esoteric languages which may be of interest. http://www.h3rald.com/articles/10-programming-languages/ I'm thinking of looking into Lua, myself. Devon -Original Message- From: Code for Libraries [mailto:code4...@listserv.nd.edu] On Behalf Of Joe Hourcle Sent: Wednesday, March 24, 2010 5:44 PM To: CODE4LIB@LISTSERV.ND.EDU Subject: Re: [CODE4LIB] newbie On Wed, 24 Mar 2010, Eric Lease Morgan wrote: On Mar 24, 2010, at 3:24 PM, jenny wrote: My question is, where would you recommend I would begin? What's hot right now in the library world? Python, PERL, Ruby? Any advice you'd have for a beginner like me or even recommendations for online courses would be extremely appreciated If you are approaching the problem for the point of view of learning a programming language, then then you have outlined pretty good choices. At the risk of starting a religious war, I like Perl, but PHP is more popular. Java is pretty good too, but IMHO it doesn't really matter. In the end you will need to use the best tool for the job. I know there's a lot of stuff written in it, but *please* don't recommend PHP to beginners. Yes, you can get a lot of stuff done with it, but I've had way too many incidents where newbie coders didn't check their inputs, and we've had to clean up after them. Just yesterday, I was helping someone at another federal agency clean up after someone got in through a PHP script and had turned their site into an ad for cialis. (but cleverly disguised, using their header / footer, and it only showed up when you passed the correct query_string to it) The problem's gotten so bad here, that we've been asked to send our entire web directory on each server to our security office, so that they can run it through some security scanner that looks for problems in PHP code. (they relented to my running 'find' on the system for PHP scripts, as we serve a few dozen TB of data over HTTP) We're also running intrusion detection software that managed to catch someone attempting to exploit refbase (and that was strike #2 against it ... I've never gotten a response to my e-mails to the maintainer, so we've since had to scrap the installs of it that we had). So, anyway ... don't do PHP. Even Tim Bray recommended that at ASIST's 2009 annual meeting, where he gave the plenary. (He recommended people learn Ruby, instead) Personally, I do most of my work in Perl, where I can, but I'd recommend Ruby or Python over someone learning PHP (unless it was to learn enough to migrate code off of PHP). ... and yes, I know I've stirred this pot before: http://www.mail-archive.com/code4lib@listserv.nd.edu/msg06630.html http://www.mail-archive.com/code4lib@listserv.nd.edu/msg06648.html ... And if you're using PHP, and can't get away from it, consider using something like mod_security to watch for signs of malicious behavior: http://www.modsecurity.org/ (note -- not an endorsement, I don't use it myself, as they've got something installed on the upstream firewall that does it ... which means that someone else sees it happen, and then we have to clean it up, fill out paperwork that we've cleaned it up, have meetings about how we're going to clean it up (when we already did), etc.) -Joe
Re: [CODE4LIB] newbie
PHP. I have to agree with others - don't bother with PHP. Largest website in Perl: Del.icio.us Largest website in PHP: Facebook Tim
Re: [CODE4LIB] newbie
A friend of mine once described PHP as 'brain-dead PERL', but I like and use both languages quite a bit. David. On 24 March 2010 23:17, Tim Spalding t...@librarything.com wrote: PHP. I have to agree with others - don't bother with PHP. Largest website in Perl: Del.icio.us Largest website in PHP: Facebook Tim -- David Kane Systems Librarian Waterford Institute of Technology Ireland http://library.wit.ie/ davidfk...@googlewave.com T: ++353.51302838 M: ++353.876693212
Re: [CODE4LIB] newbie
On 3/24/2010 7:43 PM, David Kane wrote: A friend of mine once described PHP as 'brain-dead PERL', but I like and use both languages quite a bit. David. On 24 March 2010 23:17, Tim Spaldingt...@librarything.com wrote: PHP. I have to agree with others - don't bother with PHP. Largest website in Perl: Del.icio.us Largest website in PHP: Facebook Tim Ok, I know there are people that use PHP out there. :) I'd recommend PHP, especially to a beginner, but only if they are going to learn the whole LAMP system and how to make it work. Oh, and learn the changes between versions, like between 5.1 and 5.2. And read every comment on their manual pages. And never install a widely distributed PHP program unless you rename it(scanners know all the famous ones). We use the PHP CLI as a replacement for perl and for processing XML and a thousand other things without even going through Apache. But above all, if you do learn it and use it for years, don't tell the programmers in an email list that you did. -Paul
Re: [CODE4LIB] newbie
On 24-Mar-10, at 8:21 PM, Paul Cummins wrote: On 3/24/2010 7:43 PM, David Kane wrote: A friend of mine once described PHP as 'brain-dead PERL', but I like and use both languages quite a bit. David. On 24 March 2010 23:17, Tim Spaldingt...@librarything.com wrote: PHP. I have to agree with others - don't bother with PHP. Largest website in Perl: Del.icio.us Largest website in PHP: Facebook Tim Ok, I know there are people that use PHP out there. :) I'd recommend PHP, especially to a beginner, but only if they are going to learn the whole LAMP system and how to make it work. Oh, and learn the changes between versions, like between 5.1 and 5.2. And read every comment on their manual pages. And never install a widely distributed PHP program unless you rename it(scanners know all the famous ones). We use the PHP CLI as a replacement for perl and for processing XML and a thousand other things without even going through Apache. But above all, if you do learn it and use it for years, don't tell the programmers in an email list that you did. -Paul You could always claim that you write Python instead: import os os.system('/usr/local/bin/php utility.php')
Re: [CODE4LIB] newbie
On Mar 24, 2010, at 7:17 PM, Tim t...@librarything.com wrote: Largest website in Perl: Del.icio.us Largest website in PHP: Facebook You're assuming the only use for a programming language is to dynamically serve up a web site. That would be a serious mistake. Roy
Re: [CODE4LIB] newbie
To offer a counterpoint to no PHP folks, One reason I like PHP is because right now its pretty much essential to know if you are using open source web applications like MediaWiki, Wordpress or Drupal. I feel like Javascript is also a must for web work. Personally, I'm also a fan of XSLT to do transformation if I have XML to work with. As others have pointed out though, programming is web-centric. So IMHO it really depends on what your needs are and where you want to go. Others can offer better advice about non-web work. I keep toying with Ruby on Rails and getting about 1/3 of the way into the book I have before getting completely sidetracked by another project. Karen On Wed, Mar 24, 2010 at 7:57 PM, Roy Tennant roytenn...@gmail.com wrote: On Mar 24, 2010, at 7:17 PM, Tim t...@librarything.com wrote: Largest website in Perl: Del.icio.us Largest website in PHP: Facebook You're assuming the only use for a programming language is to dynamically serve up a web site. That would be a serious mistake. Roy
Re: [CODE4LIB] Newbie asking for some suggestions with javascript
Thanks for the suggestions and links, everyone. I'll check them out and see what will work for me. -- Derik A. Badman Digital Services Librarian Reference Librarian for Education and Social Work Temple University Libraries Paley Library 209 Philadelphia, PA Phone: 215-204-5250 Email: dbad...@temple.edu AIM: derikbad Research makes times march forward, it makes time march backward, and it also makes time stand still. -Greil Marcus
Re: [CODE4LIB] Newbie asking for some suggestions with javascript
Or use the modified xissn service of OCLC: http://xissn.worldcat.org/webservices/xid/issn/1095-9203?method=getMetadatafl=issnl,rssurl Peter Drs. P.J.C. van Boheemen Hoofd Applicatieontwikkeling en beheer - Bibliotheek Wageningen UR Head of Application Development and Management - Wageningen University and Research Library tel. +31 317 48 25 17 http://library.wur.nl http://library.wur.nl/ P Please consider the environment before printing this e-mail From: Code for Libraries on behalf of Godmar Back Sent: Fri 12-6-2009 5:55 To: CODE4LIB@LISTSERV.ND.EDU Subject: Re: [CODE4LIB] Newbie asking for some suggestions with javascript Yes - see this email http://serials.infomotions.com/code4lib/archive/2009/200905/0909.html If you can host yourself, the stand-alone version is efficient and easy to keep up to date - just run a cronjob that downloads the text file from JISC. My WSGI script will automatically pick up if it has changed on disk. - Godmar On Thu, Jun 11, 2009 at 4:08 PM, Annette Bailey afbai...@vt.edu wrote: Godmar Back wrote a web service in python for ticTOC with an eye to incorporating links into III's Millennium catalog. http://code.google.com/p/tictoclookup/ http://tictoclookup.appspot.com/ Annette On Thu, Jun 11, 2009 at 12:34 PM, Derik Badmandbad...@temple.edu wrote: Hello all, Just joined the list, and I'm hoping to get a suggestion or two. I'm working on using the ticTOCs ( http://www.tictocs.ac.uk/ ) text file of rss feed urls for journals to insert links to those feeds in our Serials Solution Journal Finder. I've got it working using a bit of jQuery. Demo here: http://155.247.22.22/badman/toc/demo.html The javascript is here: http://155.247.22.22/badman/toc/toc-rss.js Getting that working wasn't too hard, but I'm a bit concerned about efficiency and caching. I'm not sure the way I'm checking isbns against the text file is the most efficient way to go. Basically I'm making an ajax call to the file that takes the data and makes an array of objects. I then query the isbn of each journal on the page against the array of objects. If there's a match I pull the data and put it on the page. I'm wondering if there's a better way to do this, especially since the text file is over 1mb. I'm not looking for code, just ideas. I'm also looking for any pointers about using the file itself and somehow auto-downloading it to my server on a regular basis. Right now I just saved a copy to my server, but in the future it'd be good to automate grabbing the file from ticTOCs server on a regular basis and updating the one on my server (perhaps I'd need to use a cron job to do that?). Thanks for much for any suggestions or pointers. (For what it's worth, I can manage with javascript or php.) -- Derik A. Badman Digital Services Librarian Reference Librarian for Education and Social Work Temple University Libraries Paley Library 209 Philadelphia, PA Phone: 215-204-5250 Email: dbad...@temple.edu AIM: derikbad Research makes times march forward, it makes time march backward, and it also makes time stand still. -Greil Marcus
Re: [CODE4LIB] Newbie asking for some suggestions with javascript
On Thu, Jun 11, 2009 at 11:34 AM, Derik Badmandbad...@temple.edu wrote: Hello all, I'm not sure the way I'm checking isbns against the text file is the most efficient way to go. Basically I'm making an ajax call to the file that takes the data and makes an array of objects. I then query the isbn of each journal on the page against the array of objects. If there's a match I pull the data and put it on the page. I'm wondering if there's a better way to do this, especially since the text file is over 1mb. I'm not looking for code, just ideas. I guess the first question is if it is really necessary to use a text file? I'm not entirely clear on this process, but perhaps the text file could be imported into a database. You could attempt to use some sort of function that cleans up ISBNs and use that as the lookup. You might run into occasional issues such as ISBNs not being unique, but it sounds like you could run into that issue in any case. Then of course perhaps there's some way to add this to the Serials Solution database directly? Then you don't need another javascript at all? I'm also looking for any pointers about using the file itself and somehow auto-downloading it to my server on a regular basis. Right now I just saved a copy to my server, but in the future it'd be good to automate grabbing the file from ticTOCs server on a regular basis and updating the one on my server (perhaps I'd need to use a cron job to do that?). cron + wget/curl would be a good first step it would seem. You might want some sort of script that monitors changes or the like. (Maybe send you an email if there's no updates in x days or something like that). Jon Gorman
Re: [CODE4LIB] Newbie asking for some suggestions with javascript
Hi Derik, This looks good... I suppose the question to some of your questions is what's in your toolbox? Specifically: - Are you running on windows or unix on the server? - Are you able to install anything on the server - are you an admin or similar? - Are you able to run a scripting language like PHP on the server? - Do you have access to a database such as MySQL or MSSQL, etc? I agree with Jon - it'd be much more efficient to store this in a database, and your looking at a simple table to store the ticTocs data. Answers to these questions will help listserv members come up with suitable suggestions - it seems you're comfortable with javascript, so I think you'd be fine with something like Perl of PHP. cheers, Tom On Fri, Jun 12, 2009 at 4:34 AM, Derik Badman dbad...@temple.edu wrote: Hello all, Just joined the list, and I'm hoping to get a suggestion or two. I'm working on using the ticTOCs ( http://www.tictocs.ac.uk/ ) text file of rss feed urls for journals to insert links to those feeds in our Serials Solution Journal Finder. I've got it working using a bit of jQuery. Demo here: http://155.247.22.22/badman/toc/demo.html The javascript is here: http://155.247.22.22/badman/toc/toc-rss.js Getting that working wasn't too hard, but I'm a bit concerned about efficiency and caching. I'm not sure the way I'm checking isbns against the text file is the most efficient way to go. Basically I'm making an ajax call to the file that takes the data and makes an array of objects. I then query the isbn of each journal on the page against the array of objects. If there's a match I pull the data and put it on the page. I'm wondering if there's a better way to do this, especially since the text file is over 1mb. I'm not looking for code, just ideas. I'm also looking for any pointers about using the file itself and somehow auto-downloading it to my server on a regular basis. Right now I just saved a copy to my server, but in the future it'd be good to automate grabbing the file from ticTOCs server on a regular basis and updating the one on my server (perhaps I'd need to use a cron job to do that?). Thanks for much for any suggestions or pointers. (For what it's worth, I can manage with javascript or php.) -- Derik A. Badman Digital Services Librarian Reference Librarian for Education and Social Work Temple University Libraries Paley Library 209 Philadelphia, PA Phone: 215-204-5250 Email: dbad...@temple.edu AIM: derikbad Research makes times march forward, it makes time march backward, and it also makes time stand still. -Greil Marcus
Re: [CODE4LIB] Newbie asking for some suggestions with javascript
On Thu, Jun 11, 2009 at 2:03 PM, Jon Gorman jonathan.gor...@gmail.comwrote: I guess the first question is if it is really necessary to use a text file? I'm not entirely clear on this process, but perhaps the text file could be imported into a database. At this point the text file is a stop-gap api that ticTOCs is offering (supposedly working an actual api), so this will probably be a temporary situation. I could put all the data into mysql, though then I'd have to figure out how to check the text file for changes and then update the database accordingly. Then of course perhaps there's some way to add this to the Serials Solution database directly? Then you don't need another javascript at all? I'm so disillusioned with them, that I didn't even consider that... cron + wget/curl would be a good first step it would seem. You might want some sort of script that monitors changes or the like. (Maybe send you an email if there's no updates in x days or something like that). Thanks, I'll look into that. -- Derik A. Badman Digital Services Librarian Reference Librarian for Education and Social Work Temple University Libraries Paley Library 209 Philadelphia, PA Phone: 215-204-5250 Email: dbad...@temple.edu AIM: derikbad Research makes times march forward, it makes time march backward, and it also makes time stand still. -Greil Marcus
Re: [CODE4LIB] Newbie asking for some suggestions with javascript
On Thu, Jun 11, 2009 at 2:46 PM, Tom Pasley tom.pas...@gmail.com wrote: - Are you running on windows or unix on the server? -Are you able to install anything on the server - are you an admin or similar? - Are you able to run a scripting language like PHP on the server? - Do you have access to a database such as MySQL or MSSQL, etc? Its unix with php and mysql working on it. I'm not an admin though. it seems you're comfortable with javascript, so I think you'd be fine with something like Perl of PHP. I can get by with php, probably moreso than with javascript at this point. -- Derik A. Badman Digital Services Librarian Reference Librarian for Education and Social Work Temple University Libraries Paley Library 209 Philadelphia, PA Phone: 215-204-5250 Email: dbad...@temple.edu AIM: derikbad Research makes times march forward, it makes time march backward, and it also makes time stand still. -Greil Marcus
Re: [CODE4LIB] Newbie asking for some suggestions with javascript
This data (the Tic-Tocs RSS URLs) is also available via xISSN. For example: http://xissn.worldcat.org/webservices/xid/issn/1095-9203?method=getMetadata format=xmlfl=* Look for the rssurl attribute. For information on xISSN see: http://xissn.worldcat.org/xissnadmin/ Roy On 6/11/09 6/11/09 12:36 PM, Derik Badman dbad...@temple.edu wrote: On Thu, Jun 11, 2009 at 2:03 PM, Jon Gorman jonathan.gor...@gmail.comwrote: I guess the first question is if it is really necessary to use a text file? I'm not entirely clear on this process, but perhaps the text file could be imported into a database. At this point the text file is a stop-gap api that ticTOCs is offering (supposedly working an actual api), so this will probably be a temporary situation. I could put all the data into mysql, though then I'd have to figure out how to check the text file for changes and then update the database accordingly. Then of course perhaps there's some way to add this to the Serials Solution database directly? Then you don't need another javascript at all? I'm so disillusioned with them, that I didn't even consider that... cron + wget/curl would be a good first step it would seem. You might want some sort of script that monitors changes or the like. (Maybe send you an email if there's no updates in x days or something like that). Thanks, I'll look into that. --
Re: [CODE4LIB] Newbie asking for some suggestions with javascript
Roy, Just to clarify, you have to be an OCLC cataloging member to use this beyond 100 uses per day, correct? Thanks, Annette On Thu, Jun 11, 2009 at 4:48 PM, Roy Tennanttenna...@oclc.org wrote: This data (the Tic-Tocs RSS URLs) is also available via xISSN. For example: http://xissn.worldcat.org/webservices/xid/issn/1095-9203?method=getMetadata format=xmlfl=* Look for the rssurl attribute. For information on xISSN see: http://xissn.worldcat.org/xissnadmin/ Roy On 6/11/09 6/11/09 € 12:36 PM, Derik Badman dbad...@temple.edu wrote: On Thu, Jun 11, 2009 at 2:03 PM, Jon Gorman jonathan.gor...@gmail.comwrote: I guess the first question is if it is really necessary to use a text file? I'm not entirely clear on this process, but perhaps the text file could be imported into a database. At this point the text file is a stop-gap api that ticTOCs is offering (supposedly working an actual api), so this will probably be a temporary situation. I could put all the data into mysql, though then I'd have to figure out how to check the text file for changes and then update the database accordingly. Then of course perhaps there's some way to add this to the Serials Solution database directly? Then you don't need another javascript at all? I'm so disillusioned with them, that I didn't even consider that... cron + wget/curl would be a good first step it would seem. You might want some sort of script that monitors changes or the like. (Maybe send you an email if there's no updates in x days or something like that). Thanks, I'll look into that. --
Re: [CODE4LIB] Newbie asking for some suggestions with javascript
Yes - see this email http://serials.infomotions.com/code4lib/archive/2009/200905/0909.html If you can host yourself, the stand-alone version is efficient and easy to keep up to date - just run a cronjob that downloads the text file from JISC. My WSGI script will automatically pick up if it has changed on disk. - Godmar On Thu, Jun 11, 2009 at 4:08 PM, Annette Bailey afbai...@vt.edu wrote: Godmar Back wrote a web service in python for ticTOC with an eye to incorporating links into III's Millennium catalog. http://code.google.com/p/tictoclookup/ http://tictoclookup.appspot.com/ Annette On Thu, Jun 11, 2009 at 12:34 PM, Derik Badmandbad...@temple.edu wrote: Hello all, Just joined the list, and I'm hoping to get a suggestion or two. I'm working on using the ticTOCs ( http://www.tictocs.ac.uk/ ) text file of rss feed urls for journals to insert links to those feeds in our Serials Solution Journal Finder. I've got it working using a bit of jQuery. Demo here: http://155.247.22.22/badman/toc/demo.html The javascript is here: http://155.247.22.22/badman/toc/toc-rss.js Getting that working wasn't too hard, but I'm a bit concerned about efficiency and caching. I'm not sure the way I'm checking isbns against the text file is the most efficient way to go. Basically I'm making an ajax call to the file that takes the data and makes an array of objects. I then query the isbn of each journal on the page against the array of objects. If there's a match I pull the data and put it on the page. I'm wondering if there's a better way to do this, especially since the text file is over 1mb. I'm not looking for code, just ideas. I'm also looking for any pointers about using the file itself and somehow auto-downloading it to my server on a regular basis. Right now I just saved a copy to my server, but in the future it'd be good to automate grabbing the file from ticTOCs server on a regular basis and updating the one on my server (perhaps I'd need to use a cron job to do that?). Thanks for much for any suggestions or pointers. (For what it's worth, I can manage with javascript or php.) -- Derik A. Badman Digital Services Librarian Reference Librarian for Education and Social Work Temple University Libraries Paley Library 209 Philadelphia, PA Phone: 215-204-5250 Email: dbad...@temple.edu AIM: derikbad Research makes times march forward, it makes time march backward, and it also makes time stand still. -Greil Marcus