Re: [CODE4LIB] Advice on a class

2011-07-28 Thread Bill Dueber
Interestingly, I disagree with almost everything you say below. Of course
PARC is unlike almost everywhere else :-)

Unless you're in a very, *very* different library than mine, "all the
low-level stuff" written in C and variants are at a low-enough level (and in
very specialized domains) that I'd never have an expectation that anyone
working in the library would mess with it. I presume there are people in
research libraries that muck around with C/C++, rolling their own libraries
and what not, but I've been at Michigan for six years and I haven't heard of
it, here or elsewhere. For most of us, I think, doing something in C is
premature optimization.

I hear the assertion often that a programmer needs to know C/assembly so
they can truly understand how the machine is working at a deep level, and
I've grown over the years to dismiss that assertion. Almost no one who makes
a living programming in libraries is going to do a better job "by hand" than
a modern optimizing compiler, certainly not if you take ROI into account.
Data structures and Big-O is enough to tell you if you're moving down the
right path, and then it's just a matter of being smart enough to use
existing libraries where applicable --- and, again, avoiding premature
optimization, at the code level or at the selection-of-a-language level. If
you're hiring someone who's going to have to know the details of cache
misses and how far to unroll loops or whatnot, you know exactly what you're
hiring him/her for and don't need advice about hiring a generic programmer.

For stuff where you need not access to the bare metal but just raw speed,
Java is mature, super-fast, and has lots of optimized libraries available.
It also turns out many of us are using Solr these days, so Java has snuck
into the library infrastructure already. 90% of my argument for doing
green-field projects in Ruby is that I can access low-level Java libraries
to do the heavy lifting and get an optimizing VM for free.

I don't care what scripting language you use, as long as you use it well.
Python, Ruby, Perl, whatever. If you know one, you can learn the others. If
you're a Python shop and want someone who can hit the ground running, that's
fine, but Python's not ubiquitous. I don't speak Python except at the most
superficial level, and yet I consider myself to be "devoted to my craft".
People who have seen my code may disagree :-)

For languages that are, shall we say, "less commercial," I think they're
useful as an analog for formal computer science training. There are plenty
of people who gain great skills and knowledge purely through experience, but
formal training is basically designed to short-circuit experience, and I
think a formal computer science degree (and esp. a master's) does a great
job of training people to think hard (and correctly!) about algorithms and
data structures. I expect someone with a CS degree to have been exposed to
functional programming, s-expressions, and a variety of data structures.
Substantial experience with Erlang or Haskell or Scheme or whatever tells me
(as long as the project truly was *substantial*) that the candidate has at
least thought hard about issues deeper than the ones one often runs across
dashing off a program in PHP or Perl. I would never foist a project in, say,
OCaml or Scheme on my library, because who the hell is going to maintain it
(and its environment)?? But I sure want someone who understands side effects
and their effect on multi-threaded programming, because I've got a lot of
idle cores sitting around waiting for work.

Finally, I always ask someone what their favorite programming environment
is. I've had a few candidates tell me that they just use Notepad, and I
don't mind admitting that that's almost a dealbreaker for me. Using a good
editor or an IDE is a critical part of taking advantage of the language
ecosystem. A good programming editor is a must. Not having at least syntax
highlighting and checking is, to me, a sign that you haven't written enough
code for the lack of such functionality to drive you nuts yet. Java without
an IDE is insanity. And if the candidate proudly tells you that she uses vi,
well, make sure she really knows how to push it around. You don't get
street-cred for using a 30 year old program shittily.

 -Bill-




On Wed, Jul 27, 2011 at 10:32 PM, Bill Janssen  wrote:

> If I'm hiring a programmer, I want them to know C and Python.  C because
> all the low-level stuff is written in that, Python because it's simply
> the most useful all-around programming language at the moment, and if
> you don't know it, well, how devoted are you really to your craft?
>
> Various flavors of C are acceptable:  Objective-C is OK with me, and C++
> is a plus -- it's an order of magnitude more difficult than C to use
> properly, and people who can sling it properly are rare.  Additional
> languages which carry weight with me on a resume are OCaml, Processing,
> and any of Common Lisp, Scheme, or Clojure.
>
> If I w

Re: [CODE4LIB] Advice on a class

2011-07-28 Thread Cary Gordon
Thank the FSM!!!

No Singularity in our lifetime!

On Thu, Jul 28, 2011 at 11:01 AM, Fowler, Jason  wrote:
>> Until the Singularity happens, anyway.  I'd think there will always be lots 
>> of enterprise Java jobs around.
>
> The Singularity will be written in Java.
>
> Jason
>
> On 11-07-27 7:32 PM, "Bill Janssen" 
> mailto:jans...@parc.com>> wrote:
>
> If I'm hiring a programmer, I want them to know C and Python.  C because
> all the low-level stuff is written in that, Python because it's simply
> the most useful all-around programming language at the moment, and if
> you don't know it, well, how devoted are you really to your craft?
>
> Various flavors of C are acceptable:  Objective-C is OK with me, and C++
> is a plus -- it's an order of magnitude more difficult than C to use
> properly, and people who can sling it properly are rare.  Additional
> languages which carry weight with me on a resume are OCaml, Processing,
> and any of Common Lisp, Scheme, or Clojure.
>
> If I was hiring a digital *librarian*, I'd also expect them to know
> Javascript, the language at the heart of the EPUB format.  But
> Javascript is kind of tricky; it's a subtle powerful language with bad
> syntax and weak libraries.  I certainly wouldn't recommend it to start
> with.
>
> Cary Gordon mailto:listu...@chillco.com>> wrote:
> There are still plenty of opportunities for Cobol coders, but I
> wouldn't recommend that either.
>
> Java is the COBOL of the 21st century, so if you know Java well, there
> will be a job in that for the next 20-30 years, I'd expect.  Until the
> Singularity happens, anyway.  I'd think there will always be lots of
> enterprise Java jobs around.
>
> Bill
>



-- 
Cary Gordon
The Cherry Hill Company
http://chillco.com


[CODE4LIB] Systems Librarian Rochester NY

2011-07-28 Thread Jadlos, Melissa E


Lavery Library at St. John Fisher College invites applications for the position 
of Systems Librarian. Lavery has just received a $200,000 grant to create the 
College's first Learning Commons.  Be part of a team of award winning 
librarians providing outstanding service to the Fisher community.  The 
successful candidate will provide leadership in library technology  as part of 
a team of librarians providing reference, instruction and liaison services.   
This is a 12 month position with some evening and weekend hours required.

St. John Fisher College is located in the Finger Lakes Region of New York in a 
suburban setting.  Fisher was recognized in the 2009 US News & World Report in 
the Best Universities-Master's category North Region.  Approximately 2700 
undergraduate and 1000 graduate students are enrolled in 31 majors, 11 masters 
and 3 doctorate programs.  St. John Fisher College is an independent, liberal 
arts institution. The College emphasizes liberal learning for students in 
traditional academic disciplines, as well as for those in more directly 
career-oriented fields.

For more information, please visit the College website http://www.sjfc.edu/

Applications must be submitted via the CardinalCareers  website   
https://jobs.sjfc.edu/applicants/jsp/shared/frameset/Frameset.jsp?time=1311893497789

Screening of applicants will begin immediately and will continue until the 
position has been filled.  Applications received before September 9,  2011 will 
receive priority consideration.



__
Melissa Jadlos
Library Director
Lavery Library
St. John Fisher College
3690 East Avenue
Rochester, NY  14618
585-385-8164
585-385-8445 fax
mjad...@sjfc.edu

 [Lavery Library logo color (scaled down)]
<>

Re: [CODE4LIB] Advice on a class

2011-07-28 Thread Simon Spero

On Jul 27, 2011, at 10:32 PM, Bill Janssen wrote:

If I'm hiring a programmer, I want them to know C and Python.  [...]  
Various flavors of C are acceptable:  Objective-C is OK with me, and  
C++ is a plus -- it's an order of magnitude more difficult than C to  
use properly, and people who can sling it properly are rare.


I wouldn't say that C++ is an OOM harder than raw C to use properly;  
it just adds so many more ways to use it improperly, and templates are  
the work of the devil.   The problem with learning C++ is that it can  
be hard to predict what sort of code will be generated for very  
similar constructs, which is not a good thing for a low level  
language.  It's still always possible to fall back on C and inline  
assembler when you need it.


That's really the advantage of learning straight C as as low level  
language- it lets you see what sort of machine code corresponds to  
what sort of source code.  When combined with a good performance  
measuring suite you can get a much better feel for how different types  
of data access have completely different performance, what sort of  
things get optimized/vectorized cleanly, etc.  It also gives you an  
appreciation for how nice it is to be able to ignore these things most  
of the time  when using higher level languages.


Objective-C (counting the NS Foundation classes as part of the  
language) is a cleaner language, with a more dynamic object model;  
however, in current implementations the overhead of method calling is  
much too high, making the OO features only usable for relatively  
coarse grained methods. One thing that the Foundation classes show is  
how valuable it  can be to have long method names.


Additional languages which carry weight with me on a resume are  
OCaml, Processing, and any of Common Lisp, Scheme, or Clojure.


Did you mean Clozure?  The other two are kinds of lisp. :-P

Also, java should no more be considered in isolation from IntelliJ  
Idea that a lisp should be used without an emacs.


Simon


Re: [CODE4LIB] Seeking feedback on database design for an open source software registry

2011-07-28 Thread Peter Murray
Ken --

Thanks for this info and for forwarding my initial message to the LIS-OSS 
mailing list.  There does seem to be some overlap, and I need to study the 
great content on the wiki.

On a similar note, if folks are aware of other efforts in other disciplines or 
areas of the world, I'd appreciate hearing about them.


Peter

On Jul 27, 2011, at 10:03 AM, Ken Chad wrote:
> The issue of building a community was also looked at in a JISC supported
> SCONUL project earlier this year that culminated in the 'Open Edge, Open
> source in libraries' event. It looks to me that what you are doing could be
> a great way to help move the agenda forward.
> 
> The theme of the initiative was 'building capacity to help enable open
> source solutions to flourish in the HE library community'. After the event a
> (JISCMail) discussion list was set up lis-...@jiscmail.ac.uk. 
> 
> The outputs of the initiative and conference now form part of the SCONUL
> Higher Education Library Technology (HELibTech) wiki. This has a general
> page on open source
> http://helibtech.com/Open+Source and specific pages on 'community'
> http://helibtech.com/open+source+community and a very preliminary start at
> mapping various forms of 'capacity' (e.g. development expertise, expertise
> of licensing etc). http://helibtech.com/Open+Source+Capacity
> 
> Ken
> CEO, Ken Chad Consulting Ltd
> Tel +44 (0)7788 727 845. Email: k...@kenchadconsulting.com 
> www.kenchadconsulting.com
> Skype: kenchadconsulting   Twitter: @KenChad
> Open Library Systems Specifications:  http://libtechrfp.wikispaces.com
> 
> 
> -Original Message-
> From: Code for Libraries [mailto:CODE4LIB@LISTSERV.ND.EDU] On Behalf Of
> Peter Murray
> Sent: 18 July 2011 16:02
> To: CODE4LIB@LISTSERV.ND.EDU
> Subject: Re: [CODE4LIB] Seeking feedback on database design for an open
> source software registry
> 
> Nate --
> 
> Thanks for the pointer to NITRC.  There are some good interface elements
> there that might be useful to emulate.
> 
> I want to be clear that our grant mandate extends only to the FreshMeat
> registry functionality.  Source code hosting is definitely out of scope for
> what we are doing.
> 
> Building community will be hard, particularly because the intent of the
> registry isn't for just developers themselves but also for any library that
> is interested in applying open source solutions to their library needs.  It
> doesn't mean that the library will be developing or running the software
> themselves (that is where the "Provider" entity comes in, and it is a point
> that distinguishes this registry from FreshMeat and NITRC).
> 
> 
> Peter
> 
> On Jul 17, 2011, at 11:22 PM, Nate Vack wrote:
>> 
>> On Fri, Jul 15, 2011 at 2:09 PM, Peter Murray 
> wrote:
>>> On Jul 15, 2011, at 2:59 PM, Mike Taylor wrote:
 
 Isn't this pretty much what FreshMeat is for?
   http://freshmeat.net/
>>> 
>>> It is similar in concept to Freshmeat, but the scope is limited to
> library-oriented software (which might be too use-specific for Freshmeat and
> certainly harder to find among the vast expanse of non-library-oriented
> stuff).
>> 
>> You might look at NITRC[1], which has tried very hard to do the same
>> thing for neuroscience software in addition to providing project
>> hosting like Sourceforge. They get funded by some federal grant
>> thing[2].
>> 
>> Unfortunately, they've also found that the world wasn't really looking
>> for a site to review and host a small subset of open-source projects,
>> so their usage isn't high. They've convinced some projects to come
>> live in their domain, so they seem to attract enough funding to stay
>> online, but they've never succeeded in becoming much of a community.
>> And the "people who do neuroscience" crowd is probably two orders of
>> magnitude larger than the "people who do open-source in libraries"
>> crowd -- so building a vibrant community will be even harder in this
>> case.
>> 
>> The real problem for me is that their site doesn't seem to warrant
>> enough attention to really be made usable or stay up reliably. So if
>> you want to get software that's hosted only by them, it can be really
>> frustrating. It's like a crappy FreshMeat combined with a crappy,
>> unreliable Sourceforge.
>> 
>> My ultimate take: you can probably do something more interesting with
>> your grant money than building a FreshMeat-alike.
>> 
>> Either way, you might talk to the NITRC folks about their experiences



-- 
Peter Murray peter.mur...@lyrasis.orgtel:+1-678-235-2955
 
Ass't Director, Technology Services Development   http://dltj.org/about/
LYRASIS   --Great Libraries. Strong Communities. Innovative Answers.
The Disruptive Library Technology Jesterhttp://dltj.org/ 
Attrib-Noncomm-Share   http://creativecommons.org/licenses/by-nc-sa/2.5/


Re: [CODE4LIB] OPDS 1.1 review period

2011-07-28 Thread Ed Summers
edsu--

Except that it was from a month ago and the review period is over. Oh
well, I guess the v1.1 of opds might be of interest still ... it is to
me at least.

/me slowly inches towards the door

//Ed

On Thu, Jul 28, 2011 at 4:04 PM, Ed Summers  wrote:
> This might be of potential interest to code4lib folks who deal w/
> ebooks ... //Ed
>
> -- Forwarded message --
> From: Hadrien Gardeur 
> Date: Sun, Jun 19, 2011 at 12:47 PM
> Subject: OPDS 1.1 review period
> To: atom-syn...@imc.org
>
> Hello,
>
> The OPDS community just posted the final draft for OPDS 1.1:
> http://opds-spec.org/2011/06/15/opds-1-1-call-for-comments/
> During this two week review period, we're actively looking for any
> kind of feedback about the spec.
>
> OPDS is based on Atom and is widely used by book retailers & libraries
> to distribute electronic publications on any device. Some of the most
> popular ebook applications on iOS (Stanza, Bluefire Reader) and on
> Android (Aldiko, FBReader) are compatible with this standard.
>
> Hadrien
>


[CODE4LIB] OPDS 1.1 review period

2011-07-28 Thread Ed Summers
This might be of potential interest to code4lib folks who deal w/
ebooks ... //Ed

-- Forwarded message --
From: Hadrien Gardeur 
Date: Sun, Jun 19, 2011 at 12:47 PM
Subject: OPDS 1.1 review period
To: atom-syn...@imc.org

Hello,

The OPDS community just posted the final draft for OPDS 1.1:
http://opds-spec.org/2011/06/15/opds-1-1-call-for-comments/
During this two week review period, we're actively looking for any
kind of feedback about the spec.

OPDS is based on Atom and is widely used by book retailers & libraries
to distribute electronic publications on any device. Some of the most
popular ebook applications on iOS (Stanza, Bluefire Reader) and on
Android (Aldiko, FBReader) are compatible with this standard.

Hadrien


Re: [CODE4LIB] Advice on a class

2011-07-28 Thread Fowler, Jason
> Until the Singularity happens, anyway.  I'd think there will always be lots 
> of enterprise Java jobs around.

The Singularity will be written in Java.

Jason

On 11-07-27 7:32 PM, "Bill Janssen" mailto:jans...@parc.com>> 
wrote:

If I'm hiring a programmer, I want them to know C and Python.  C because
all the low-level stuff is written in that, Python because it's simply
the most useful all-around programming language at the moment, and if
you don't know it, well, how devoted are you really to your craft?

Various flavors of C are acceptable:  Objective-C is OK with me, and C++
is a plus -- it's an order of magnitude more difficult than C to use
properly, and people who can sling it properly are rare.  Additional
languages which carry weight with me on a resume are OCaml, Processing,
and any of Common Lisp, Scheme, or Clojure.

If I was hiring a digital *librarian*, I'd also expect them to know
Javascript, the language at the heart of the EPUB format.  But
Javascript is kind of tricky; it's a subtle powerful language with bad
syntax and weak libraries.  I certainly wouldn't recommend it to start
with.

Cary Gordon mailto:listu...@chillco.com>> wrote:
There are still plenty of opportunities for Cobol coders, but I
wouldn't recommend that either.

Java is the COBOL of the 21st century, so if you know Java well, there
will be a job in that for the next 20-30 years, I'd expect.  Until the
Singularity happens, anyway.  I'd think there will always be lots of
enterprise Java jobs around.

Bill