Re: [CODE4LIB] Choosing development platforms and/or tools, how'd you do it?
Thanks, Naomi, I need to try out the latest version (haven't looked at it for a few months now), and then I will do just that. On Wed, Jan 6, 2010 at 3:56 PM, Naomi Dushay ndus...@stanford.edu wrote: Marijane, Yes, I would encourage you to ask for help on the blacklight list, with specifics about the problems you're having. We've set up Blacklight on a bunch of non-Marc Solr indexes here. - Naomi On Jan 6, 2010, at 1:32 PM, marijane white wrote: I've read about Blacklight's ability to run on any Solr index, but I've struggled to make it work with mine. Honestly, I've been left with the impression that my data should be in MARC if I want to use it. Is there some documentation on this somewhere that I've overlooked? (Maybe I should ask this on the BL list) On Wed, Jan 6, 2010 at 12:24 PM, Naomi Dushay ndus...@stanford.edu wrote: Marijane, It also makes sense to examine the available software for what you wish to accomplish. Available software goes beyond current features to - maintainability (one reason Stanford switched to Blacklight) I'll talk a little bit about this in our Code4Lib 2010 presentation about testing. - community - active development - potential applicability to additional projects. (we like Blacklight for its ability to run on any solr index, regardless of what's in there) probably some other stuff I've left out. Our experience at Stanford Libraries is that the common conventions of Rails give us a lot more ease in reading each others' code. - Naomi On Jan 5, 2010, at 3:04 PM, marijane white wrote: Greetings Code4Lib, Long time lurker, first time poster here. I've been turning over this question in my mind for a few weeks now, and Joe Hourcle's postscript in the Online PHP Course thread has prompted me to finally try to ask it. =) I'm interested in hearing how the members of this list have gone about choosing development platforms for their library coding projects and/or existing open source projects (ie like VuFind vs Blacklight). For example, did you choose a language you already were familiar with? One you wanted to learn more about? Does your workplace have a standard enterprise architecture/platform that you are required to use? If you have chosen to implement an existing open source project, did you choose based on the development platform or project maturity and features or something else? Some background -- thanks to my undergraduate computer engineering studies, I have a pretty solid understanding of programming fundamentals, but most of my pre-LIS work experience was in software testing and did not require me to employ much of what I learned programming-wise, so I've mostly dabbled over the last decade or so. I've got a bit of experience with a bunch of languages and I'm not married to any of them. I also kind of like having excuses to learn new ones. My situation is this: I would like to eventually implement a discovery tool at MPOW, but I am having a hell of a time choosing one. I'm a solo librarian on a content team at a software and information services company, so I'm not really tied to the platforms used by the software engineering teams here. I know a bit of Ruby, so I've played with Blacklight some, got it to install on Windows and managed to import a really rough Solr index. I'm more attracted to the features in VuFind, but I don't know much PHP yet and I haven't gotten it installed successfully yet. My collection's metadata is not in an ILS (yet) and not in MARC, so I've also considered trying out more generic approaches like ajax-solr (though I don't know a lot of javascript yet, either). I've also given a cursory look at SOPAC and Scriblio. My options are wide open, and I'm having a rough time deciding what direction to go in. I guess it's kind of similar to someone who is new to programming and attempting to choose their first language to learn. I will attempt to head off a programming language religious war =) by stating that I'm not really interested in the virtues of one platform over another, moreso the abstract reasons one might have for selecting one. Have any of you ever been in a similar situation? How'd you get yourself unstuck? If you haven't, what do you think you might do in a situation like mine? -marijane
Re: [CODE4LIB] Choosing development platforms and/or tools, how'd you do it?
On Jan 5, 2010, at 10:13 PM, Ross Singer wrote: Dan Chudnov, for example, seems to think in Python. When I tried Python, it never really clicked -- I muddled through a few projects but never really got it. Actually, I think in Hoosier, but as the late Kurt Vonnegut might remind me, that's awfully silly. I mostly agree with Ross, though - find something that fits your brain and lets you get your stuff done and stick with it. It just might take a while. I have used python as a main language for about seven years now and it pays off in many ways. I didn't arrive at it quickly, though. At my first regular job 10-12 years ago I built stuff in perl, java, php, and vb, all of which turned into code I had to support for one user group or another for some period of time or another. It's one thing to experiment with toy code, it's another thing to do an experiment that brings you hard data and experiences that can help to inform future decisions. Here's how it went for me, but YMMV: I knew perl first, and everything I wrote in perl worked quickly and was easy to install in our hosting environment but was hard to fix later when it broke because I couldn't read it after I'd forgotten what I'd done. Java was just hard for me, period, and hard to install back then (tomcat wasn't particularly stable, yet, for one thing). VB was super easy to develop with but meant desktop support in the long run when everything was moving to the web. PHP was easy to write and install but I wrote a lot of bad code with holes all over the place, partly because of how easy it was. After all of these experiences, and having gained some insights about what I preferred, I tried python, and it clicked immediately. It wasn't so easy to install on a web server reliably back then, but it was doable, and it had all the other positives I was looking for: I could get stuff done quickly, get it installed, it made sense when I went back to look a! t it again, and I tended to write things slightly more securely than I had in the past. I was hooked. Seems like Ross is saying the same things about Ruby, for him. None of the stuff I was building back then was intended to be widely-used or even depended-upon, which helped a lot, but some of it turned out to be one or both, and that shines a bright light on the positives and negatives of platform choices. If I'd tried the languages in a different order maybe my experiences screwing up a lot of stuff early on would have led me to like a different fifth language; I definitely got better along the way. These days I am spending more time in Java and JavaScript than I would have expected but find that they're both less hard than they were the last time I tried them both, partly because they've become easier to work with based on frameworks and such but also because I have more experience, period. If you want help prioritizing which to choose first I could hardly argue with any of php, python, or ruby, for the same reasons others state, and as Ross said, building something with Solr is a great idea, because you can then try building follow-on apps with the same solr backend in different languages and see how they compare. Also, using solr often means writing less original code yourself, which is a big win in any language. I'd also suggest spending some time with javascript and a framework like jquery because it's applicable to anything you might do on the web. More than anything, though, build something you care about, and give it to real users, and then you'll start to see how you really feel about it. :) One last note... I do all my development behind screen-wrapped ssh sessions using vim. If I have to set up an IDE just to use a language, its happiness quotient drops immediately. This approach isn't for everybody, but it works best for me, so platform choices that mesh well with this preference increase their happiness quotient. Don't discount that factor, whichever way you feel about it, since that's how you'll spend much of your time. -Dan
Re: [CODE4LIB] Choosing development platforms and/or tools, how'd you do it?
I agree with Dan's last point about avoiding using a special IDE to develop with a language. That can be expensive and/or hinder others supporting the application down the road. I use vim for most of my development as well, although we officially use Dreamweaver at work mostly because of its Site features. I also try to stick with languages that are cross-platform. I use Linux at home and Windows at work, and I know that there are many developers in the same situation. I like to know that if I write an application that with minimal tweaking it will be portable to any(ish) machine/environment. Joel Marchesoni Tech Support Analyst Hunter Library @ Western Carolina University jma...@email.wcu.edu -Original Message- From: Code for Libraries [mailto:code4...@listserv.nd.edu] On Behalf Of Dan Chudnov Sent: Wednesday, January 06, 2010 8:17 AM To: CODE4LIB@LISTSERV.ND.EDU Subject: Re: [CODE4LIB] Choosing development platforms and/or tools, how'd you do it? On Jan 5, 2010, at 10:13 PM, Ross Singer wrote: Dan Chudnov, for example, seems to think in Python. When I tried Python, it never really clicked -- I muddled through a few projects but never really got it. Actually, I think in Hoosier, but as the late Kurt Vonnegut might remind me, that's awfully silly. I mostly agree with Ross, though - find something that fits your brain and lets you get your stuff done and stick with it. It just might take a while. I have used python as a main language for about seven years now and it pays off in many ways. I didn't arrive at it quickly, though. At my first regular job 10-12 years ago I built stuff in perl, java, php, and vb, all of which turned into code I had to support for one user group or another for some period of time or another. It's one thing to experiment with toy code, it's another thing to do an experiment that brings you hard data and experiences that can help to inform future decisions. Here's how it went for me, but YMMV: I knew perl first, and everything I wrote in perl worked quickly and was easy to install in our hosting environment but was hard to fix later when it broke because I couldn't read it after I'd forgotten what I'd done. Java was just hard for me, period, and hard to install back then (tomcat wasn't particularly stable, yet, for one thing). VB was super easy to develop with but meant desktop support in the long run when everything was moving to the web. PHP was easy to write and install but I wrote a lot of bad code with holes all over the place, partly because of how easy it was. After all of these experiences, and having gained some insights about what I preferred, I tried python, and it clicked immediately. It wasn't so easy to install on a web server reliably back then, but it was doable, and it had all the other positives I was looking for: I could get stuff done quickly, get it installed, it made sense when I went back to look a! t it again, and I tended to write things slightly more securely than I had in the past. I was hooked. Seems like Ross is saying the same things about Ruby, for him. None of the stuff I was building back then was intended to be widely-used or even depended-upon, which helped a lot, but some of it turned out to be one or both, and that shines a bright light on the positives and negatives of platform choices. If I'd tried the languages in a different order maybe my experiences screwing up a lot of stuff early on would have led me to like a different fifth language; I definitely got better along the way. These days I am spending more time in Java and JavaScript than I would have expected but find that they're both less hard than they were the last time I tried them both, partly because they've become easier to work with based on frameworks and such but also because I have more experience, period. If you want help prioritizing which to choose first I could hardly argue with any of php, python, or ruby, for the same reasons others state, and as Ross said, building something with Solr is a great idea, because you can then try building follow-on apps with the same solr backend in different languages and see how they compare. Also, using solr often means writing less original code yourself, which is a big win in any language. I'd also suggest spending some time with javascript and a framework like jquery because it's applicable to anything you might do on the web. More than anything, though, build something you care about, and give it to real users, and then you'll start to see how you really feel about it. :) One last note... I do all my development behind screen-wrapped ssh sessions using vim. If I have to set up an IDE just to use a language, its happiness quotient drops immediately. This approach isn't for everybody, but it works best for me, so platform choices that mesh well with this preference increase their happiness quotient. Don't discount that factor
Re: [CODE4LIB] Choosing development platforms and/or tools, how'd you do it?
On Wed, Jan 6, 2010 at 8:53 AM, Joel Marchesoni jma...@email.wcu.eduwrote: I agree with Dan's last point about avoiding using a special IDE to develop with a language. I'll respectfully, but vehemently, disagree. I would say avoid *forcing* everyone working on the project depend on a special IDE -- avoid lockin. Don't avoid use. There's a spectrum of how much an editor/environment can know about a program. At one end is Smalltalk, where the development environment *is* the program. At the other end is something like LISP (and, to an extent, Ruby) where so little can be inferred from the syntax of the code that a smart IDE can't actually know much other than how to match parentheses. For languages where little can be known at compile time, an IDE may not buy you very much other than syntax highlighting and code folding. For Java, C++, etc. an IDE can know damn near everything about your project and radically up your productivity -- variable renaming, refactoring, context-sensitive help, jump-to-definition, method-name completion, etc. It really is a difference that makes a difference. I know folks say they can get the same thing from vim or emacs, but at that level those editors are no less complex (and a good deal more opaque) than something like Eclipse or Netbeans unless you already have a decade of experience with them. If you're starting in a new language, try a couple editors, too. Both Eclipse and Netbeans are free and cross-platform, and have support for a lot of languages. Editors like Notepad++, EditPlus, Textmate jEdit, and BBEdit can all do very nice things with a variety of languages. -- Bill Dueber Library Systems Programmer University of Michigan Library
Re: [CODE4LIB] Choosing development platforms and/or tools, how'd you do it?
I should have worded my response differently. I didn't mean one shouldn't use any IDE at all, but as Dan said if there is a special IDE *for that language* and otherwise one can't develop it I would stay away from it. Joel -Original Message- From: Code for Libraries [mailto:code4...@listserv.nd.edu] On Behalf Of Bill Dueber Sent: Wednesday, January 06, 2010 9:23 AM To: CODE4LIB@LISTSERV.ND.EDU Subject: Re: [CODE4LIB] Choosing development platforms and/or tools, how'd you do it? On Wed, Jan 6, 2010 at 8:53 AM, Joel Marchesoni jma...@email.wcu.eduwrote: I agree with Dan's last point about avoiding using a special IDE to develop with a language. I'll respectfully, but vehemently, disagree. I would say avoid *forcing* everyone working on the project depend on a special IDE -- avoid lockin. Don't avoid use. There's a spectrum of how much an editor/environment can know about a program. At one end is Smalltalk, where the development environment *is* the program. At the other end is something like LISP (and, to an extent, Ruby) where so little can be inferred from the syntax of the code that a smart IDE can't actually know much other than how to match parentheses. For languages where little can be known at compile time, an IDE may not buy you very much other than syntax highlighting and code folding. For Java, C++, etc. an IDE can know damn near everything about your project and radically up your productivity -- variable renaming, refactoring, context-sensitive help, jump-to-definition, method-name completion, etc. It really is a difference that makes a difference. I know folks say they can get the same thing from vim or emacs, but at that level those editors are no less complex (and a good deal more opaque) than something like Eclipse or Netbeans unless you already have a decade of experience with them. If you're starting in a new language, try a couple editors, too. Both Eclipse and Netbeans are free and cross-platform, and have support for a lot of languages. Editors like Notepad++, EditPlus, Textmate jEdit, and BBEdit can all do very nice things with a variety of languages. -- Bill Dueber Library Systems Programmer University of Michigan Library
Re: [CODE4LIB] Choosing development platforms and/or tools, how'd you do it?
I definitely agree with Bill here. There is a definitely a totemistic attitude about vim or emacs being all the IDE I need. Knowing your way around vim (or possibly emacs) is certainly important -- after all, everybody has to eventually fix something remotely -- but just languages, some editors look or feel better. My basic credo is that I want to find the absolute least resistance between what I see in my head and what eventually gets run. This applies to my office chair, my keyboard, my monitor, operating system, editor, language, SCM, deployment manager, etc. Every layer provides amperage that must be accounted for. Because in the end, I'm spending 8+ hours a day, 5+ days a week looking at and working on this setup; I might as well be comfortable. Personally, I use TextMate for practically all the code I write. I don't actually use all the features that generally draw people to TextMate (SCM integration, macros for automating certain tasks in particular languages/frameworks, etc.) at all. I just like the way it looks, it's relatively lean and I can easily cut and paste (which is my major knock on the character-based editors). I have a mouse, dammit, so let me use it. I also use NetBeans, sometimes, although, honestly, it's only when I need to run SQL queries against JDBC databases anymore. If I was a real developer (meaning I wrote code intended to be compiled, etc.), I couldn't imagine not using something like NetBeans or Eclipse to automate some of the tedium. -Ross. On Wed, Jan 6, 2010 at 9:23 AM, Bill Dueber b...@dueber.com wrote: On Wed, Jan 6, 2010 at 8:53 AM, Joel Marchesoni jma...@email.wcu.eduwrote: I agree with Dan's last point about avoiding using a special IDE to develop with a language. I'll respectfully, but vehemently, disagree. I would say avoid *forcing* everyone working on the project depend on a special IDE -- avoid lockin. Don't avoid use. There's a spectrum of how much an editor/environment can know about a program. At one end is Smalltalk, where the development environment *is* the program. At the other end is something like LISP (and, to an extent, Ruby) where so little can be inferred from the syntax of the code that a smart IDE can't actually know much other than how to match parentheses. For languages where little can be known at compile time, an IDE may not buy you very much other than syntax highlighting and code folding. For Java, C++, etc. an IDE can know damn near everything about your project and radically up your productivity -- variable renaming, refactoring, context-sensitive help, jump-to-definition, method-name completion, etc. It really is a difference that makes a difference. I know folks say they can get the same thing from vim or emacs, but at that level those editors are no less complex (and a good deal more opaque) than something like Eclipse or Netbeans unless you already have a decade of experience with them. If you're starting in a new language, try a couple editors, too. Both Eclipse and Netbeans are free and cross-platform, and have support for a lot of languages. Editors like Notepad++, EditPlus, Textmate jEdit, and BBEdit can all do very nice things with a variety of languages. -- Bill Dueber Library Systems Programmer University of Michigan Library
Re: [CODE4LIB] Choosing development platforms and/or tools, how'd you do it?
. Thanks to Ross for forestalling what might have easily sunk into yet another platform war === Discussing our professional preferences is diametrically opposed to war. I am encouraged by our differences and ability to identify and handle them professionally. Do we need mediators to maintain peace (where peace==trivialize differences)? Do we need someone to help us from sinking into war? I don¹t think so. Let¹s talk some more differences. Ya¹aqov Ziso
Re: [CODE4LIB] Choosing development platforms and/or tools, how'd you do it?
At the risk of making this worse... Bill makes good points, and I wasn't saying don't use an IDE. I meant I don't like using an IDE, so I don't want to be forced to, and that affects my language/tool preferences. You might want to consider whether you like using a particular IDE or not, in addition to other considerations. Where I work we try hard to keep IDE-specific files and choices out of the vcs, aside from maybe adding some patterns to the .ignore file to reinforce this. We value letting all the different developers use whatever tools they prefer, and we do often use different ones (emacs, vim, eclipse, coda, etc.) to work on the same project and the same code at the same time without stomping on each other's toes, which is a Good Thing. I love you all. Really. -Dan On Jan 6, 2010, at 9:37 AM, Joel Marchesoni wrote: I should have worded my response differently. I didn't mean one shouldn't use any IDE at all, but as Dan said if there is a special IDE *for that language* and otherwise one can't develop it I would stay away from it. Joel -Original Message- From: Code for Libraries [mailto:code4...@listserv.nd.edu] On Behalf Of Bill Dueber Sent: Wednesday, January 06, 2010 9:23 AM To: CODE4LIB@LISTSERV.ND.EDU Subject: Re: [CODE4LIB] Choosing development platforms and/or tools, how'd you do it? On Wed, Jan 6, 2010 at 8:53 AM, Joel Marchesoni jma...@email.wcu.eduwrote: I agree with Dan's last point about avoiding using a special IDE to develop with a language. I'll respectfully, but vehemently, disagree. I would say avoid *forcing* everyone working on the project depend on a special IDE -- avoid lockin. Don't avoid use. There's a spectrum of how much an editor/environment can know about a program. At one end is Smalltalk, where the development environment *is* the program. At the other end is something like LISP (and, to an extent, Ruby) where so little can be inferred from the syntax of the code that a smart IDE can't actually know much other than how to match parentheses. For languages where little can be known at compile time, an IDE may not buy you very much other than syntax highlighting and code folding. For Java, C++, etc. an IDE can know damn near everything about your project and radically up your productivity -- variable renaming, refactoring, context-sensitive help, jump-to-definition, method-name completion, etc. It really is a difference that makes a difference. I know folks say they can get the same thing from vim or emacs, but at that level those editors are no less complex (and a good deal more opaque) than something like Eclipse or Netbeans unless you already have a decade of experience with them. If you're starting in a new language, try a couple editors, too. Both Eclipse and Netbeans are free and cross-platform, and have support for a lot of languages. Editors like Notepad++, EditPlus, Textmate jEdit, and BBEdit can all do very nice things with a variety of languages. -- Bill Dueber Library Systems Programmer University of Michigan Library
Re: [CODE4LIB] Choosing development platforms and/or tools, how'd you do it?
Joel Marchesoni wrote: I agree with Dan's last point about avoiding using a special IDE to develop with a language. That can be expensive and/or hinder others supporting the application down the road. I use vim for most of my development as well, although we officially use Dreamweaver at work mostly because of its Site features. I am a long time vi user (since about 1984) and for many years preferred to develop code using vi from a command line whether working on a unix based or windows machine. A few years ago I started playing with a couple of IDEs and started using Eclipse and have become a total convert. Most of the programming I do is in java (I have also been using the Spring Framework for about 5 years) but I also do a bit of PHP and since most of the development work is in web applications with with xml, html, css, javascript, java server pages, etc. Eclipse handles all of them well. -- John Fereira Cornell University Twitter: @john_fereira Google Wave: fere...@googlewave.com
Re: [CODE4LIB] Choosing development platforms and/or tools, how'd you do it?
Well, I'll quickly run down why we chose Drupal (hence, PHP). I mention Drupal because to me it's more of a framework which just happens to have a CMS built on top of it =) Before Drupal, my team knew PHP. We had PHP books in the library, students were learning some PHP in classes, etc. We were lured to Drupal because other libraries were using it (AADL at the time). It seemed to have good code, good security, and could be hacked politely (or extended) and securely (if you follow the rules). Most of all, Drupal has good people behind it =) Now, even though Drupal is PHP (and, as some say, PHP lets you be as insecure and as bad a coder you want...) the code that goes into its core has pretty strict coding standards. Of course you can find lots of modules which are not up to par, but you can depend on core to be tight. _alejandro marijane white said the following on 05/01/2010 05:04 p.m.: Greetings Code4Lib, Long time lurker, first time poster here. I've been turning over this question in my mind for a few weeks now, and Joe Hourcle's postscript in the Online PHP Course thread has prompted me to finally try to ask it. =) I'm interested in hearing how the members of this list have gone about choosing development platforms for their library coding projects and/or existing open source projects (ie like VuFind vs Blacklight). For example, did you choose a language you already were familiar with? One you wanted to learn more about? Does your workplace have a standard enterprise architecture/platform that you are required to use? If you have chosen to implement an existing open source project, did you choose based on the development platform or project maturity and features or something else? Some background -- thanks to my undergraduate computer engineering studies, I have a pretty solid understanding of programming fundamentals, but most of my pre-LIS work experience was in software testing and did not require me to employ much of what I learned programming-wise, so I've mostly dabbled over the last decade or so. I've got a bit of experience with a bunch of languages and I'm not married to any of them. I also kind of like having excuses to learn new ones. My situation is this: I would like to eventually implement a discovery tool at MPOW, but I am having a hell of a time choosing one. I'm a solo librarian on a content team at a software and information services company, so I'm not really tied to the platforms used by the software engineering teams here. I know a bit of Ruby, so I've played with Blacklight some, got it to install on Windows and managed to import a really rough Solr index. I'm more attracted to the features in VuFind, but I don't know much PHP yet and I haven't gotten it installed successfully yet. My collection's metadata is not in an ILS (yet) and not in MARC, so I've also considered trying out more generic approaches like ajax-solr (though I don't know a lot of javascript yet, either). I've also given a cursory look at SOPAC and Scriblio. My options are wide open, and I'm having a rough time deciding what direction to go in. I guess it's kind of similar to someone who is new to programming and attempting to choose their first language to learn. I will attempt to head off a programming language religious war =) by stating that I'm not really interested in the virtues of one platform over another, moreso the abstract reasons one might have for selecting one. Have any of you ever been in a similar situation? How'd you get yourself unstuck? If you haven't, what do you think you might do in a situation like mine? -marijane -- _ ___ _ _ _ _ _ _ _ *Ing. Alejandro Garza González* Coordinación de proyectos y desarrollo de sistemas Centro in...@te, Centro para la Innovación en Tecnología y Educación Tecnológico de Monterrey Tel. +52 [81] 8358.2000, Ext. 6751 Enlace intercampus: 80.689.6751, 80.788.6106 http://www.itesm.mx/innovate/ El contenido de este mensaje de datos no se considera oferta, propuesta o acuerdo, sino hasta que sea confirmado en documento por escrito que contenga la firma autógrafa del apoderado legal del ITESM. El contenido de este mensaje de datos es confidencial y se entiende dirigido y para uso exclusivo del destinatario, por lo que no podrá distribuirse y/o difundirse por ningún medio sin la previa autorización del emisor original. Si usted no es el destinatario, se le prohíbe su utilización total o parcial para cualquier fin. The content of this data transmission must not be considered an offer, proposal, understanding or agreement unless it is confirmed in a document signed by a legal representative of ITESM. The content of this data transmission is confidential and is intended to be delivered only to the addressees. Therefore, it shall not be distributed and/or disclosed through any means without the authorization of the original sender. If you are not the addressee, you are forbidden from using
Re: [CODE4LIB] Choosing development platforms and/or tools, how'd you do it?
If you are looking for abstract reasons to determine which programming tool to use for a library project, it's worth considering long term support for your institution. If the future technical support at your institution is 1 librarian-turned-coder (and you don't have strong personal preferences), you might want to think about which languages/tools/frameworks are commonly available amongst this pool (I think you'll find PHP/Ruby much more often than Java, for example). That way your institution isn't up-a-creek when you leave and they hire your replacement. -emily lynema NCSU Libraries 2010/1/6 Alejandro Garza Gonzalez alejandro.ga...@itesm.mx Well, I'll quickly run down why we chose Drupal (hence, PHP). I mention Drupal because to me it's more of a framework which just happens to have a CMS built on top of it =) Before Drupal, my team knew PHP. We had PHP books in the library, students were learning some PHP in classes, etc. We were lured to Drupal because other libraries were using it (AADL at the time). It seemed to have good code, good security, and could be hacked politely (or extended) and securely (if you follow the rules). Most of all, Drupal has good people behind it =) Now, even though Drupal is PHP (and, as some say, PHP lets you be as insecure and as bad a coder you want...) the code that goes into its core has pretty strict coding standards. Of course you can find lots of modules which are not up to par, but you can depend on core to be tight. _alejandro marijane white said the following on 05/01/2010 05:04 p.m.: Greetings Code4Lib, Long time lurker, first time poster here. I've been turning over this question in my mind for a few weeks now, and Joe Hourcle's postscript in the Online PHP Course thread has prompted me to finally try to ask it. =) I'm interested in hearing how the members of this list have gone about choosing development platforms for their library coding projects and/or existing open source projects (ie like VuFind vs Blacklight). For example, did you choose a language you already were familiar with? One you wanted to learn more about? Does your workplace have a standard enterprise architecture/platform that you are required to use? If you have chosen to implement an existing open source project, did you choose based on the development platform or project maturity and features or something else? Some background -- thanks to my undergraduate computer engineering studies, I have a pretty solid understanding of programming fundamentals, but most of my pre-LIS work experience was in software testing and did not require me to employ much of what I learned programming-wise, so I've mostly dabbled over the last decade or so. I've got a bit of experience with a bunch of languages and I'm not married to any of them. I also kind of like having excuses to learn new ones. My situation is this: I would like to eventually implement a discovery tool at MPOW, but I am having a hell of a time choosing one. I'm a solo librarian on a content team at a software and information services company, so I'm not really tied to the platforms used by the software engineering teams here. I know a bit of Ruby, so I've played with Blacklight some, got it to install on Windows and managed to import a really rough Solr index. I'm more attracted to the features in VuFind, but I don't know much PHP yet and I haven't gotten it installed successfully yet. My collection's metadata is not in an ILS (yet) and not in MARC, so I've also considered trying out more generic approaches like ajax-solr (though I don't know a lot of javascript yet, either). I've also given a cursory look at SOPAC and Scriblio. My options are wide open, and I'm having a rough time deciding what direction to go in. I guess it's kind of similar to someone who is new to programming and attempting to choose their first language to learn. I will attempt to head off a programming language religious war =) by stating that I'm not really interested in the virtues of one platform over another, moreso the abstract reasons one might have for selecting one. Have any of you ever been in a similar situation? How'd you get yourself unstuck? If you haven't, what do you think you might do in a situation like mine? -marijane -- _ ___ _ _ _ _ _ _ _ *Ing. Alejandro Garza González* Coordinación de proyectos y desarrollo de sistemas Centro in...@te, Centro para la Innovación en Tecnología y Educación Tecnológico de Monterrey Tel. +52 [81] 8358.2000, Ext. 6751 Enlace intercampus: 80.689.6751, 80.788.6106 http://www.itesm.mx/innovate/ El contenido de este mensaje de datos no se considera oferta, propuesta o acuerdo, sino hasta que sea confirmado en documento por escrito que contenga la firma autógrafa del apoderado legal del ITESM. El contenido de este mensaje de datos es confidencial y se entiende dirigido y para uso exclusivo
Re: [CODE4LIB] Choosing development platforms and/or tools, how'd you do it?
Ross wrote: I honestly think choosing the best* development language is very similar to how one settles on politics, religion, diet, etc. Environment plays a part, of course, but, in the end, what generally works best is the language that jibes best with you and your personality. Since you've dabbled with several different languages, you've had to have come across this - some languages just feel better than others. This is, however, an entirely personal choice. I also think that the IDEs or editors (and languages, like Ross is pointing out) one chooses is connected to an amalgam of a person's 1 - history and experiences, 2 - mode of learning/working On #2 and editors/IDEs, I've written a little more extensively on this pet theory of mine here: http://zzzoot.blogspot.com/2009/07/emacs-mode-and-learning-modes.html My theory is that - like learning, where it has been established that different people learn in different ways (Visual/Verbal, Visual/Nonverbal, Auditory/Verbal, Tactile/Kinesthetic) - I believe that particular modes of human-machine interaction are better suited to some individuals than others. -Glen Dan wrote: At the risk of making this worse... Bill makes good points, and I wasn't saying don't use an IDE. I meant I don't like using an IDE, so I don't want to be forced to, and that affects my language/tool preferences. You might want to consider whether you like using a particular IDE or not, in addition to other considerations. Where I work we try hard to keep IDE-specific files and choices out of the vcs, aside from maybe adding some patterns to the .ignore file to reinforce this. We value letting all the different developers use whatever tools they prefer, and we do often use different ones (emacs, vim, eclipse, coda, etc.) to work on the same project and the same code at the same time without stomping on each other's toes, which is a Good Thing. I love you all. Really. -Dan On Jan 6, 2010, at 9:37 AM, Joel Marchesoni wrote: I should have worded my response differently. I didn't mean one shouldn't use any IDE at all, but as Dan said if there is a special IDE *for that language* and otherwise one can't develop it I would stay away from it. Joel -Original Message- From: Code for Libraries [mailto:code4...@listserv.nd.edu] On Behalf Of Bill Dueber Sent: Wednesday, January 06, 2010 9:23 AM To: CODE4LIB@LISTSERV.ND.EDU Subject: Re: [CODE4LIB] Choosing development platforms and/or tools, how'd you do it? On Wed, Jan 6, 2010 at 8:53 AM, Joel Marchesoni jma...@email.wcu.eduwrote: I agree with Dan's last point about avoiding using a special IDE to develop with a language. I'll respectfully, but vehemently, disagree. I would say avoid *forcing* everyone working on the project depend on a special IDE -- avoid lockin. Don't avoid use. There's a spectrum of how much an editor/environment can know about a program. At one end is Smalltalk, where the development environment *is* the program. At the other end is something like LISP (and, to an extent, Ruby) where so little can be inferred from the syntax of the code that a smart IDE can't actually know much other than how to match parentheses. For languages where little can be known at compile time, an IDE may not buy you very much other than syntax highlighting and code folding. For Java, C++, etc. an IDE can know damn near everything about your project and radically up your productivity -- variable renaming, refactoring, context-sensitive help, jump-to-definition, method-name completion, etc. It really is a difference that makes a difference. I know folks say they can get the same thing from vim or emacs, but at that level those editors are no less complex (and a good deal more opaque) than something like Eclipse or Netbeans unless you already have a decade of experience with them. If you're starting in a new language, try a couple editors, too. Both Eclipse and Netbeans are free and cross-platform, and have support for a lot of languages. Editors like Notepad++, EditPlus, Textmate jEdit, and BBEdit can all do very nice things with a variety of languages. -- Bill Dueber Library Systems Programmer University of Michigan Library
Re: [CODE4LIB] Choosing development platforms and/or tools, how'd you do it?
On Wed, Jan 06, 2010 at 09:23:09AM -0500, Bill Dueber wrote: There's a spectrum of how much an editor/environment can know about a program. At one end is Smalltalk, where the development environment *is* the program. At the other end is something like LISP (and, to an extent, Ruby) where so little can be inferred from the syntax of the code that a smart IDE can't actually know much other than how to match parentheses. You've never tried SLIME in Emacs. All kinds of fancy LISPness for pretty much everything you mention below. For languages where little can be known at compile time, an IDE may not buy you very much other than syntax highlighting and code folding. For Java, C++, etc. an IDE can know damn near everything about your project and radically up your productivity -- variable renaming, refactoring, context-sensitive help, jump-to-definition, method-name completion, etc. It really is a difference that makes a difference. I know folks say they can get the same thing from vim or emacs, but at that level those editors are no less complex (and a good deal more opaque) than something like Eclipse or Netbeans unless you already have a decade of experience with them. I guess I did say that, but I'd argue that the opacity depends on your definition of opaque. And I'd say it's more like five years. Vim4life! :) Gabriel
Re: [CODE4LIB] Choosing development platforms and/or tools, how'd you do it?
+1 [A good informed response] -glen Gabriel wrote: On Wed, Jan 06, 2010 at 09:23:09AM -0500, Bill Dueber wrote: There's a spectrum of how much an editor/environment can know about a program. At one end is Smalltalk, where the development environment *is* the program. At the other end is something like LISP (and, to an extent, Ruby) where so little can be inferred from the syntax of the code that a smart IDE can't actually know much other than how to match parentheses. You've never tried SLIME in Emacs. All kinds of fancy LISPness for pretty much everything you mention below. For languages where little can be known at compile time, an IDE may not buy you very much other than syntax highlighting and code folding. For Java, C++, etc. an IDE can know damn near everything about your project and radically up your productivity -- variable renaming, refactoring, context-sensitive help, jump-to-definition, method-name completion, etc. It really is a difference that makes a difference. I know folks say they can get the same thing from vim or emacs, but at that level those editors are no less complex (and a good deal more opaque) than something like Eclipse or Netbeans unless you already have a decade of experience with them. I guess I did say that, but I'd argue that the opacity depends on your definition of opaque. And I'd say it's more like five years. Vim4life! :) Gabriel
Re: [CODE4LIB] Choosing development platforms and/or tools, how'd you do it?
Taking time to explore is rarely a a waste of time in this area, because exploring is how you learn in programming/software engineering. marijane white wrote: I may have worded that poorly, abstract reasons to choose a language was exactly what I was looking for. Your suggestion matches my natural inclinations, I think I just needed some reassurance that taking the time to explore wouldn't be a waste of time. Thank you. =) On Tue, Jan 5, 2010 at 7:13 PM, Ross Singer rossfsin...@gmail.com wrote: I realize you didn't want to start a religious war nor were you interested in the abstract reasons people chose a particular language, that being said... I honestly think choosing the best* development language is very similar to how one settles on politics, religion, diet, etc. Environment plays a part, of course, but, in the end, what generally works best is the language that jibes best with you and your personality. Since you've dabbled with several different languages, you've had to have come across this - some languages just feel better than others. This is, however, an entirely personal choice. Dan Chudnov, for example, seems to think in Python. When I tried Python, it never really clicked -- I muddled through a few projects but never really got it. I then got introduced to Ruby, everything made sense, and I never looked back. I recently did a project in Groovy/Grails and my takeaway was that it was a scripting language that only somebody that had spent their career as a Java developer could love. My coworker (who has spent his career as a Java developer) LOVES Groovy. He thinks Ruby is a Fisher-Price language. To each their own. Since you don't seem to have institutional constraints on what you can develop in, I would recommend you try something like this: Take a handful of languages that look interesting to you and try writing a simple app to take some of your data, model it and shove it into Solr and make an interface to look at it. Solr's pretty perfect for this sort of project: it's super simple to work with and immediately gives you something powerful and versatile to wrap your app around. If you can't make something useful quickly around Solr, then move on to the next language because that one's not for you. If the ones that click happen to be PHP, Python or Ruby, well, there you go. If not, I, for one, look forward to your new Lua (or whatever) based discovery interface. Ultimately, any project you choose for your discovery interface is going to require a lot of customization to make it work the way you want -- the key is finding the environment that stands the least in the way between turning what's in your head into a working app. Good luck, -Ross. On Tue, Jan 5, 2010 at 6:04 PM, marijane white marijane.wh...@gmail.com wrote: Greetings Code4Lib, Long time lurker, first time poster here. I've been turning over this question in my mind for a few weeks now, and Joe Hourcle's postscript in the Online PHP Course thread has prompted me to finally try to ask it. =) I'm interested in hearing how the members of this list have gone about choosing development platforms for their library coding projects and/or existing open source projects (ie like VuFind vs Blacklight). For example, did you choose a language you already were familiar with? One you wanted to learn more about? Does your workplace have a standard enterprise architecture/platform that you are required to use? If you have chosen to implement an existing open source project, did you choose based on the development platform or project maturity and features or something else? Some background -- thanks to my undergraduate computer engineering studies, I have a pretty solid understanding of programming fundamentals, but most of my pre-LIS work experience was in software testing and did not require me to employ much of what I learned programming-wise, so I've mostly dabbled over the last decade or so. I've got a bit of experience with a bunch of languages and I'm not married to any of them. I also kind of like having excuses to learn new ones. My situation is this: I would like to eventually implement a discovery tool at MPOW, but I am having a hell of a time choosing one. I'm a solo librarian on a content team at a software and information services company, so I'm not really tied to the platforms used by the software engineering teams here. I know a bit of Ruby, so I've played with Blacklight some, got it to install on Windows and managed to import a really rough Solr index. I'm more attracted to the features in VuFind, but I don't know much PHP yet and I haven't gotten it installed successfully yet. My collection's metadata is not in an ILS (yet) and not in MARC, so I've also considered trying out more generic approaches
Re: [CODE4LIB] Choosing development platforms and/or tools, how'd you do it?
Very true, however, since programming is not part of my core job duties, I'd like to avoid spending much time on something I won't end up using. But that doesn't mean not exploring, I think it just means choosing carefully. This discussion has steered me towards focusing on exploring things I'm really interested in, rather than just trying everything that might be available. On Wed, Jan 6, 2010 at 10:40 AM, Jonathan Rochkind rochk...@jhu.edu wrote: Taking time to explore is rarely a a waste of time in this area, because exploring is how you learn in programming/software engineering. marijane white wrote: I may have worded that poorly, abstract reasons to choose a language was exactly what I was looking for. Your suggestion matches my natural inclinations, I think I just needed some reassurance that taking the time to explore wouldn't be a waste of time. Thank you. =) On Tue, Jan 5, 2010 at 7:13 PM, Ross Singer rossfsin...@gmail.com wrote: I realize you didn't want to start a religious war nor were you interested in the abstract reasons people chose a particular language, that being said... I honestly think choosing the best* development language is very similar to how one settles on politics, religion, diet, etc. Environment plays a part, of course, but, in the end, what generally works best is the language that jibes best with you and your personality. Since you've dabbled with several different languages, you've had to have come across this - some languages just feel better than others. This is, however, an entirely personal choice. Dan Chudnov, for example, seems to think in Python. When I tried Python, it never really clicked -- I muddled through a few projects but never really got it. I then got introduced to Ruby, everything made sense, and I never looked back. I recently did a project in Groovy/Grails and my takeaway was that it was a scripting language that only somebody that had spent their career as a Java developer could love. My coworker (who has spent his career as a Java developer) LOVES Groovy. He thinks Ruby is a Fisher-Price language. To each their own. Since you don't seem to have institutional constraints on what you can develop in, I would recommend you try something like this: Take a handful of languages that look interesting to you and try writing a simple app to take some of your data, model it and shove it into Solr and make an interface to look at it. Solr's pretty perfect for this sort of project: it's super simple to work with and immediately gives you something powerful and versatile to wrap your app around. If you can't make something useful quickly around Solr, then move on to the next language because that one's not for you. If the ones that click happen to be PHP, Python or Ruby, well, there you go. If not, I, for one, look forward to your new Lua (or whatever) based discovery interface. Ultimately, any project you choose for your discovery interface is going to require a lot of customization to make it work the way you want -- the key is finding the environment that stands the least in the way between turning what's in your head into a working app. Good luck, -Ross. On Tue, Jan 5, 2010 at 6:04 PM, marijane white marijane.wh...@gmail.com wrote: Greetings Code4Lib, Long time lurker, first time poster here. I've been turning over this question in my mind for a few weeks now, and Joe Hourcle's postscript in the Online PHP Course thread has prompted me to finally try to ask it. =) I'm interested in hearing how the members of this list have gone about choosing development platforms for their library coding projects and/or existing open source projects (ie like VuFind vs Blacklight). For example, did you choose a language you already were familiar with? One you wanted to learn more about? Does your workplace have a standard enterprise architecture/platform that you are required to use? If you have chosen to implement an existing open source project, did you choose based on the development platform or project maturity and features or something else? Some background -- thanks to my undergraduate computer engineering studies, I have a pretty solid understanding of programming fundamentals, but most of my pre-LIS work experience was in software testing and did not require me to employ much of what I learned programming-wise, so I've mostly dabbled over the last decade or so. I've got a bit of experience with a bunch of languages and I'm not married to any of them. I also kind of like having excuses to learn new ones. My situation is this: I would like to eventually implement a discovery tool at MPOW, but I am having a hell of a time choosing one. I'm a solo librarian on a content team at a software and information services company, so I'm not really tied to the platforms used by the software engineering
Re: [CODE4LIB] Choosing development platforms and/or tools, how'd you do it?
Marijane, It also makes sense to examine the available software for what you wish to accomplish. Available software goes beyond current features to - maintainability (one reason Stanford switched to Blacklight) I'll talk a little bit about this in our Code4Lib 2010 presentation about testing. - community - active development - potential applicability to additional projects. (we like Blacklight for its ability to run on any solr index, regardless of what's in there) probably some other stuff I've left out. Our experience at Stanford Libraries is that the common conventions of Rails give us a lot more ease in reading each others' code. - Naomi On Jan 5, 2010, at 3:04 PM, marijane white wrote: Greetings Code4Lib, Long time lurker, first time poster here. I've been turning over this question in my mind for a few weeks now, and Joe Hourcle's postscript in the Online PHP Course thread has prompted me to finally try to ask it. =) I'm interested in hearing how the members of this list have gone about choosing development platforms for their library coding projects and/ or existing open source projects (ie like VuFind vs Blacklight). For example, did you choose a language you already were familiar with? One you wanted to learn more about? Does your workplace have a standard enterprise architecture/platform that you are required to use? If you have chosen to implement an existing open source project, did you choose based on the development platform or project maturity and features or something else? Some background -- thanks to my undergraduate computer engineering studies, I have a pretty solid understanding of programming fundamentals, but most of my pre-LIS work experience was in software testing and did not require me to employ much of what I learned programming-wise, so I've mostly dabbled over the last decade or so. I've got a bit of experience with a bunch of languages and I'm not married to any of them. I also kind of like having excuses to learn new ones. My situation is this: I would like to eventually implement a discovery tool at MPOW, but I am having a hell of a time choosing one. I'm a solo librarian on a content team at a software and information services company, so I'm not really tied to the platforms used by the software engineering teams here. I know a bit of Ruby, so I've played with Blacklight some, got it to install on Windows and managed to import a really rough Solr index. I'm more attracted to the features in VuFind, but I don't know much PHP yet and I haven't gotten it installed successfully yet. My collection's metadata is not in an ILS (yet) and not in MARC, so I've also considered trying out more generic approaches like ajax-solr (though I don't know a lot of javascript yet, either). I've also given a cursory look at SOPAC and Scriblio. My options are wide open, and I'm having a rough time deciding what direction to go in. I guess it's kind of similar to someone who is new to programming and attempting to choose their first language to learn. I will attempt to head off a programming language religious war =) by stating that I'm not really interested in the virtues of one platform over another, moreso the abstract reasons one might have for selecting one. Have any of you ever been in a similar situation? How'd you get yourself unstuck? If you haven't, what do you think you might do in a situation like mine? -marijane
Re: [CODE4LIB] Choosing development platforms and/or tools, how'd you do it?
I'm glad someone mentioned maintainability. I used to work in embedded systems, where design, testing, and maintainability were of utmost importance, and coding is just the brief stage in between design and test. I lived by the adage, Code as if the person who will maintain your code is a homicidal maniac who knows where you live. Sharon M. Foster, JD, MLS Technology Librarian http://firstgentrekkie.blogspot.com/ Have you tried switching it off and on again? On Wed, Jan 6, 2010 at 3:24 PM, Naomi Dushay ndus...@stanford.edu wrote: Marijane, It also makes sense to examine the available software for what you wish to accomplish. Available software goes beyond current features to - maintainability (one reason Stanford switched to Blacklight) I'll talk a little bit about this in our Code4Lib 2010 presentation about testing. - community - active development - potential applicability to additional projects. (we like Blacklight for its ability to run on any solr index, regardless of what's in there) probably some other stuff I've left out. Our experience at Stanford Libraries is that the common conventions of Rails give us a lot more ease in reading each others' code. - Naomi On Jan 5, 2010, at 3:04 PM, marijane white wrote: Greetings Code4Lib, Long time lurker, first time poster here. I've been turning over this question in my mind for a few weeks now, and Joe Hourcle's postscript in the Online PHP Course thread has prompted me to finally try to ask it. =) I'm interested in hearing how the members of this list have gone about choosing development platforms for their library coding projects and/or existing open source projects (ie like VuFind vs Blacklight). For example, did you choose a language you already were familiar with? One you wanted to learn more about? Does your workplace have a standard enterprise architecture/platform that you are required to use? If you have chosen to implement an existing open source project, did you choose based on the development platform or project maturity and features or something else? Some background -- thanks to my undergraduate computer engineering studies, I have a pretty solid understanding of programming fundamentals, but most of my pre-LIS work experience was in software testing and did not require me to employ much of what I learned programming-wise, so I've mostly dabbled over the last decade or so. I've got a bit of experience with a bunch of languages and I'm not married to any of them. I also kind of like having excuses to learn new ones. My situation is this: I would like to eventually implement a discovery tool at MPOW, but I am having a hell of a time choosing one. I'm a solo librarian on a content team at a software and information services company, so I'm not really tied to the platforms used by the software engineering teams here. I know a bit of Ruby, so I've played with Blacklight some, got it to install on Windows and managed to import a really rough Solr index. I'm more attracted to the features in VuFind, but I don't know much PHP yet and I haven't gotten it installed successfully yet. My collection's metadata is not in an ILS (yet) and not in MARC, so I've also considered trying out more generic approaches like ajax-solr (though I don't know a lot of javascript yet, either). I've also given a cursory look at SOPAC and Scriblio. My options are wide open, and I'm having a rough time deciding what direction to go in. I guess it's kind of similar to someone who is new to programming and attempting to choose their first language to learn. I will attempt to head off a programming language religious war =) by stating that I'm not really interested in the virtues of one platform over another, moreso the abstract reasons one might have for selecting one. Have any of you ever been in a similar situation? How'd you get yourself unstuck? If you haven't, what do you think you might do in a situation like mine? -marijane
Re: [CODE4LIB] Choosing development platforms and/or tools, how'd you do it?
I've read about Blacklight's ability to run on any Solr index, but I've struggled to make it work with mine. Honestly, I've been left with the impression that my data should be in MARC if I want to use it. Is there some documentation on this somewhere that I've overlooked? (Maybe I should ask this on the BL list) On Wed, Jan 6, 2010 at 12:24 PM, Naomi Dushay ndus...@stanford.edu wrote: Marijane, It also makes sense to examine the available software for what you wish to accomplish. Available software goes beyond current features to - maintainability (one reason Stanford switched to Blacklight) I'll talk a little bit about this in our Code4Lib 2010 presentation about testing. - community - active development - potential applicability to additional projects. (we like Blacklight for its ability to run on any solr index, regardless of what's in there) probably some other stuff I've left out. Our experience at Stanford Libraries is that the common conventions of Rails give us a lot more ease in reading each others' code. - Naomi On Jan 5, 2010, at 3:04 PM, marijane white wrote: Greetings Code4Lib, Long time lurker, first time poster here. I've been turning over this question in my mind for a few weeks now, and Joe Hourcle's postscript in the Online PHP Course thread has prompted me to finally try to ask it. =) I'm interested in hearing how the members of this list have gone about choosing development platforms for their library coding projects and/or existing open source projects (ie like VuFind vs Blacklight). For example, did you choose a language you already were familiar with? One you wanted to learn more about? Does your workplace have a standard enterprise architecture/platform that you are required to use? If you have chosen to implement an existing open source project, did you choose based on the development platform or project maturity and features or something else? Some background -- thanks to my undergraduate computer engineering studies, I have a pretty solid understanding of programming fundamentals, but most of my pre-LIS work experience was in software testing and did not require me to employ much of what I learned programming-wise, so I've mostly dabbled over the last decade or so. I've got a bit of experience with a bunch of languages and I'm not married to any of them. I also kind of like having excuses to learn new ones. My situation is this: I would like to eventually implement a discovery tool at MPOW, but I am having a hell of a time choosing one. I'm a solo librarian on a content team at a software and information services company, so I'm not really tied to the platforms used by the software engineering teams here. I know a bit of Ruby, so I've played with Blacklight some, got it to install on Windows and managed to import a really rough Solr index. I'm more attracted to the features in VuFind, but I don't know much PHP yet and I haven't gotten it installed successfully yet. My collection's metadata is not in an ILS (yet) and not in MARC, so I've also considered trying out more generic approaches like ajax-solr (though I don't know a lot of javascript yet, either). I've also given a cursory look at SOPAC and Scriblio. My options are wide open, and I'm having a rough time deciding what direction to go in. I guess it's kind of similar to someone who is new to programming and attempting to choose their first language to learn. I will attempt to head off a programming language religious war =) by stating that I'm not really interested in the virtues of one platform over another, moreso the abstract reasons one might have for selecting one. Have any of you ever been in a similar situation? How'd you get yourself unstuck? If you haven't, what do you think you might do in a situation like mine? -marijane
Re: [CODE4LIB] Choosing development platforms and/or tools, how'd you do it?
Marijane, Yes, I would encourage you to ask for help on the blacklight list, with specifics about the problems you're having. We've set up Blacklight on a bunch of non-Marc Solr indexes here. - Naomi On Jan 6, 2010, at 1:32 PM, marijane white wrote: I've read about Blacklight's ability to run on any Solr index, but I've struggled to make it work with mine. Honestly, I've been left with the impression that my data should be in MARC if I want to use it. Is there some documentation on this somewhere that I've overlooked? (Maybe I should ask this on the BL list) On Wed, Jan 6, 2010 at 12:24 PM, Naomi Dushay ndus...@stanford.edu wrote: Marijane, It also makes sense to examine the available software for what you wish to accomplish. Available software goes beyond current features to - maintainability (one reason Stanford switched to Blacklight) I'll talk a little bit about this in our Code4Lib 2010 presentation about testing. - community - active development - potential applicability to additional projects. (we like Blacklight for its ability to run on any solr index, regardless of what's in there) probably some other stuff I've left out. Our experience at Stanford Libraries is that the common conventions of Rails give us a lot more ease in reading each others' code. - Naomi On Jan 5, 2010, at 3:04 PM, marijane white wrote: Greetings Code4Lib, Long time lurker, first time poster here. I've been turning over this question in my mind for a few weeks now, and Joe Hourcle's postscript in the Online PHP Course thread has prompted me to finally try to ask it. =) I'm interested in hearing how the members of this list have gone about choosing development platforms for their library coding projects and/or existing open source projects (ie like VuFind vs Blacklight). For example, did you choose a language you already were familiar with? One you wanted to learn more about? Does your workplace have a standard enterprise architecture/platform that you are required to use? If you have chosen to implement an existing open source project, did you choose based on the development platform or project maturity and features or something else? Some background -- thanks to my undergraduate computer engineering studies, I have a pretty solid understanding of programming fundamentals, but most of my pre-LIS work experience was in software testing and did not require me to employ much of what I learned programming-wise, so I've mostly dabbled over the last decade or so. I've got a bit of experience with a bunch of languages and I'm not married to any of them. I also kind of like having excuses to learn new ones. My situation is this: I would like to eventually implement a discovery tool at MPOW, but I am having a hell of a time choosing one. I'm a solo librarian on a content team at a software and information services company, so I'm not really tied to the platforms used by the software engineering teams here. I know a bit of Ruby, so I've played with Blacklight some, got it to install on Windows and managed to import a really rough Solr index. I'm more attracted to the features in VuFind, but I don't know much PHP yet and I haven't gotten it installed successfully yet. My collection's metadata is not in an ILS (yet) and not in MARC, so I've also considered trying out more generic approaches like ajax-solr (though I don't know a lot of javascript yet, either). I've also given a cursory look at SOPAC and Scriblio. My options are wide open, and I'm having a rough time deciding what direction to go in. I guess it's kind of similar to someone who is new to programming and attempting to choose their first language to learn. I will attempt to head off a programming language religious war =) by stating that I'm not really interested in the virtues of one platform over another, moreso the abstract reasons one might have for selecting one. Have any of you ever been in a similar situation? How'd you get yourself unstuck? If you haven't, what do you think you might do in a situation like mine? -marijane
Re: [CODE4LIB] Choosing development platforms and/or tools, how'd you do it?
On the IDE question, I'll just add that I find an interactive debugger to be a necessity.
[CODE4LIB] Choosing development platforms and/or tools, how'd you do it?
Greetings Code4Lib, Long time lurker, first time poster here. I've been turning over this question in my mind for a few weeks now, and Joe Hourcle's postscript in the Online PHP Course thread has prompted me to finally try to ask it. =) I'm interested in hearing how the members of this list have gone about choosing development platforms for their library coding projects and/or existing open source projects (ie like VuFind vs Blacklight). For example, did you choose a language you already were familiar with? One you wanted to learn more about? Does your workplace have a standard enterprise architecture/platform that you are required to use? If you have chosen to implement an existing open source project, did you choose based on the development platform or project maturity and features or something else? Some background -- thanks to my undergraduate computer engineering studies, I have a pretty solid understanding of programming fundamentals, but most of my pre-LIS work experience was in software testing and did not require me to employ much of what I learned programming-wise, so I've mostly dabbled over the last decade or so. I've got a bit of experience with a bunch of languages and I'm not married to any of them. I also kind of like having excuses to learn new ones. My situation is this: I would like to eventually implement a discovery tool at MPOW, but I am having a hell of a time choosing one. I'm a solo librarian on a content team at a software and information services company, so I'm not really tied to the platforms used by the software engineering teams here. I know a bit of Ruby, so I've played with Blacklight some, got it to install on Windows and managed to import a really rough Solr index. I'm more attracted to the features in VuFind, but I don't know much PHP yet and I haven't gotten it installed successfully yet. My collection's metadata is not in an ILS (yet) and not in MARC, so I've also considered trying out more generic approaches like ajax-solr (though I don't know a lot of javascript yet, either). I've also given a cursory look at SOPAC and Scriblio. My options are wide open, and I'm having a rough time deciding what direction to go in. I guess it's kind of similar to someone who is new to programming and attempting to choose their first language to learn. I will attempt to head off a programming language religious war =) by stating that I'm not really interested in the virtues of one platform over another, moreso the abstract reasons one might have for selecting one. Have any of you ever been in a similar situation? How'd you get yourself unstuck? If you haven't, what do you think you might do in a situation like mine? -marijane
Re: [CODE4LIB] Choosing development platforms and/or tools, how'd you do it?
I reckon if you are building webapps either get into Rails (as you know ruby this should be simple) or get into Grails as Brad suggests. Both are pretty powerful, have interesting and active communities and there are sufficient ruby and java library libraries for library related development. If you prefer to work with PHP then I can recommend CodeIgniter as a MVC framework. It's not the only one. But I have enjoyed developing php using it. Have fun :) Terence On 6/01/10 10:50 AM, Brad Rhoads bdr...@gmail.com wrote: When starting my current project (http://trac.serveall.net/ibidem/), I knew I wanted to base it on the Spring framework (http://www.springsource.org/). It's a Java based application framework that provides a very good base to build on. However, it does have a learning curve. In the process of studying Spring, I discovered Grails. Grails (http://www.grails.org/) is a framework uses the Groovy language and sits on top of Spring and Hibernate (an object relational mapper). Groovy is a dynamic language that compiles down to Java byte code. The nice thing about Grails is its philosophy of convention over configuration. This ends up giving you the benefits of Spring with an easier learning curve. It's really the development environment that I've always dreamed of working in. HTH -Brad On Tue, Jan 5, 2010 at 5:04 PM, marijane white marijane.wh...@gmail.comwrote: Greetings Code4Lib, Long time lurker, first time poster here. I've been turning over this question in my mind for a few weeks now, and Joe Hourcle's postscript in the Online PHP Course thread has prompted me to finally try to ask it. =) I'm interested in hearing how the members of this list have gone about choosing development platforms for their library coding projects and/or existing open source projects (ie like VuFind vs Blacklight). For example, did you choose a language you already were familiar with? One you wanted to learn more about? Does your workplace have a standard enterprise architecture/platform that you are required to use? If you have chosen to implement an existing open source project, did you choose based on the development platform or project maturity and features or something else? Some background -- thanks to my undergraduate computer engineering studies, I have a pretty solid understanding of programming fundamentals, but most of my pre-LIS work experience was in software testing and did not require me to employ much of what I learned programming-wise, so I've mostly dabbled over the last decade or so. I've got a bit of experience with a bunch of languages and I'm not married to any of them. I also kind of like having excuses to learn new ones. My situation is this: I would like to eventually implement a discovery tool at MPOW, but I am having a hell of a time choosing one. I'm a solo librarian on a content team at a software and information services company, so I'm not really tied to the platforms used by the software engineering teams here. I know a bit of Ruby, so I've played with Blacklight some, got it to install on Windows and managed to import a really rough Solr index. I'm more attracted to the features in VuFind, but I don't know much PHP yet and I haven't gotten it installed successfully yet. My collection's metadata is not in an ILS (yet) and not in MARC, so I've also considered trying out more generic approaches like ajax-solr (though I don't know a lot of javascript yet, either). I've also given a cursory look at SOPAC and Scriblio. My options are wide open, and I'm having a rough time deciding what direction to go in. I guess it's kind of similar to someone who is new to programming and attempting to choose their first language to learn. I will attempt to head off a programming language religious war =) by stating that I'm not really interested in the virtues of one platform over another, moreso the abstract reasons one might have for selecting one. Have any of you ever been in a similar situation? How'd you get yourself unstuck? If you haven't, what do you think you might do in a situation like mine? -marijane -- --- www.maf.org/rhoads www.ontherhoads.org
Re: [CODE4LIB] Choosing development platforms and/or tools, how'd you do it?
I realize you didn't want to start a religious war nor were you interested in the abstract reasons people chose a particular language, that being said... I honestly think choosing the best* development language is very similar to how one settles on politics, religion, diet, etc. Environment plays a part, of course, but, in the end, what generally works best is the language that jibes best with you and your personality. Since you've dabbled with several different languages, you've had to have come across this - some languages just feel better than others. This is, however, an entirely personal choice. Dan Chudnov, for example, seems to think in Python. When I tried Python, it never really clicked -- I muddled through a few projects but never really got it. I then got introduced to Ruby, everything made sense, and I never looked back. I recently did a project in Groovy/Grails and my takeaway was that it was a scripting language that only somebody that had spent their career as a Java developer could love. My coworker (who has spent his career as a Java developer) LOVES Groovy. He thinks Ruby is a Fisher-Price language. To each their own. Since you don't seem to have institutional constraints on what you can develop in, I would recommend you try something like this: Take a handful of languages that look interesting to you and try writing a simple app to take some of your data, model it and shove it into Solr and make an interface to look at it. Solr's pretty perfect for this sort of project: it's super simple to work with and immediately gives you something powerful and versatile to wrap your app around. If you can't make something useful quickly around Solr, then move on to the next language because that one's not for you. If the ones that click happen to be PHP, Python or Ruby, well, there you go. If not, I, for one, look forward to your new Lua (or whatever) based discovery interface. Ultimately, any project you choose for your discovery interface is going to require a lot of customization to make it work the way you want -- the key is finding the environment that stands the least in the way between turning what's in your head into a working app. Good luck, -Ross. On Tue, Jan 5, 2010 at 6:04 PM, marijane white marijane.wh...@gmail.com wrote: Greetings Code4Lib, Long time lurker, first time poster here. I've been turning over this question in my mind for a few weeks now, and Joe Hourcle's postscript in the Online PHP Course thread has prompted me to finally try to ask it. =) I'm interested in hearing how the members of this list have gone about choosing development platforms for their library coding projects and/or existing open source projects (ie like VuFind vs Blacklight). For example, did you choose a language you already were familiar with? One you wanted to learn more about? Does your workplace have a standard enterprise architecture/platform that you are required to use? If you have chosen to implement an existing open source project, did you choose based on the development platform or project maturity and features or something else? Some background -- thanks to my undergraduate computer engineering studies, I have a pretty solid understanding of programming fundamentals, but most of my pre-LIS work experience was in software testing and did not require me to employ much of what I learned programming-wise, so I've mostly dabbled over the last decade or so. I've got a bit of experience with a bunch of languages and I'm not married to any of them. I also kind of like having excuses to learn new ones. My situation is this: I would like to eventually implement a discovery tool at MPOW, but I am having a hell of a time choosing one. I'm a solo librarian on a content team at a software and information services company, so I'm not really tied to the platforms used by the software engineering teams here. I know a bit of Ruby, so I've played with Blacklight some, got it to install on Windows and managed to import a really rough Solr index. I'm more attracted to the features in VuFind, but I don't know much PHP yet and I haven't gotten it installed successfully yet. My collection's metadata is not in an ILS (yet) and not in MARC, so I've also considered trying out more generic approaches like ajax-solr (though I don't know a lot of javascript yet, either). I've also given a cursory look at SOPAC and Scriblio. My options are wide open, and I'm having a rough time deciding what direction to go in. I guess it's kind of similar to someone who is new to programming and attempting to choose their first language to learn. I will attempt to head off a programming language religious war =) by stating that I'm not really interested in the virtues of one platform over another, moreso the abstract reasons one might have for selecting one. Have any of you ever been in a similar situation? How'd you get yourself unstuck? If you haven't, what do
Re: [CODE4LIB] Choosing development platforms and/or tools, how'd you do it?
Thanks to Ross for forestalling what might have easily sunk into yet another platform war. He makes some excellent points, with none better than that it is an entirely personal choice, barring other criteria that must be considered (e.g., demands of your place of employment). Therefore, his advice to take a look at a few of the more popular choices and see what floats your boat is some of the best language selection advice you'll ever get. As I've been know to say in the past, there is no single path to success. Lord only knows I'm living proof of that. I mean, just how many people do you know who have their face on a thong? The fact that I don't (yet) have my face on a Depends undergarment simply means I have yet higher pinnacles of success to achieve. I'm counting on such luminaries as Michael Giarlo, Rob Casson, and Ross Singer, among others, to help me reach such a height. Once that has been achieved, I can retire content. Roy On 1/5/10 1/5/10 7:13 PM, Ross Singer rossfsin...@gmail.com wrote: I realize you didn't want to start a religious war nor were you interested in the abstract reasons people chose a particular language, that being said... I honestly think choosing the best* development language is very similar to how one settles on politics, religion, diet, etc. Environment plays a part, of course, but, in the end, what generally works best is the language that jibes best with you and your personality. Since you've dabbled with several different languages, you've had to have come across this - some languages just feel better than others. This is, however, an entirely personal choice. Dan Chudnov, for example, seems to think in Python. When I tried Python, it never really clicked -- I muddled through a few projects but never really got it. I then got introduced to Ruby, everything made sense, and I never looked back. I recently did a project in Groovy/Grails and my takeaway was that it was a scripting language that only somebody that had spent their career as a Java developer could love. My coworker (who has spent his career as a Java developer) LOVES Groovy. He thinks Ruby is a Fisher-Price language. To each their own. Since you don't seem to have institutional constraints on what you can develop in, I would recommend you try something like this: Take a handful of languages that look interesting to you and try writing a simple app to take some of your data, model it and shove it into Solr and make an interface to look at it. Solr's pretty perfect for this sort of project: it's super simple to work with and immediately gives you something powerful and versatile to wrap your app around. If you can't make something useful quickly around Solr, then move on to the next language because that one's not for you. If the ones that click happen to be PHP, Python or Ruby, well, there you go. If not, I, for one, look forward to your new Lua (or whatever) based discovery interface. Ultimately, any project you choose for your discovery interface is going to require a lot of customization to make it work the way you want -- the key is finding the environment that stands the least in the way between turning what's in your head into a working app. Good luck, -Ross. On Tue, Jan 5, 2010 at 6:04 PM, marijane white marijane.wh...@gmail.com wrote: Greetings Code4Lib, Long time lurker, first time poster here. I've been turning over this question in my mind for a few weeks now, and Joe Hourcle's postscript in the Online PHP Course thread has prompted me to finally try to ask it. =) I'm interested in hearing how the members of this list have gone about choosing development platforms for their library coding projects and/or existing open source projects (ie like VuFind vs Blacklight). For example, did you choose a language you already were familiar with? One you wanted to learn more about? Does your workplace have a standard enterprise architecture/platform that you are required to use? If you have chosen to implement an existing open source project, did you choose based on the development platform or project maturity and features or something else? Some background -- thanks to my undergraduate computer engineering studies, I have a pretty solid understanding of programming fundamentals, but most of my pre-LIS work experience was in software testing and did not require me to employ much of what I learned programming-wise, so I've mostly dabbled over the last decade or so. I've got a bit of experience with a bunch of languages and I'm not married to any of them. I also kind of like having excuses to learn new ones. My situation is this: I would like to eventually implement a discovery tool at MPOW, but I am having a hell of a time choosing one. I'm a solo librarian on a content team at a software and information services company, so I'm not really tied to the platforms used by the software engineering teams