What I want to talk about tonight is cool code. It's the kind of the observation that coding has a history and we are very bad at history in software development. We don't pay enough attention to it. We're also very bad at recognizing that there's kind of a vast work of literature in software by which I mean the code. There are lots of examples that we can learn from, lots of examples that amuse us, and we're not very good at collecting this and treating that as a community. So I'll start off with this little book that I edited. 97 Things Every Program Should Know. This is the Japanese translation, which I love dearly. I can't read it, but I love it dearly. Because the quality of production is fantastic. I remember my publisher saying, oh yeah, you've got to wait for the Japanese edition because it's so well produced. Quality of paper, different templates. It even has a dust cover. If you're going to kill trees, this is a great way to do it. Now in the preface I wrote, and I've conveniently translated it back into English for your benefit, but there is an art, craft and science to programming that extends far beyond the program. The act of programming marries the discrete world of computers with the fluid world of human affairs, which puts programmers in a rather curious position of mediating between the kind of the negotiated and uncertain truths that we find in the world of business and the very crisp uncompromising domain of bits and bytes and our constructed types. This is one of the challenges in software development. It's not so much just the code, and it's not so much just the humans. It's the fact that the very act of programming has to bridge these. That is one of the things that each one of its own is hard enough, but to try and bridge that is a challenge. It's also quite exciting. Now, when I say art, it's worth clarifying that software developers are the greatest producers of installation art on this planet. This is one of my favourite pieces from Copenhagen Airport about three years ago. I like the shade of blue. I think it's quite exciting. I also like the extended and rotated landscape. I think it's provocative. I think it says something about the post-modern condition. I was disappointed that when I returned back through Copenhagen Airport on that visit, they had replaced it with some advertising. But, you know, we do produce the largest amount and greatest amount of installation art. Now, Kariana Berg, in 97 Things, wrote a little piece, Read Code. And she observed, we programmers are weird creatures. You know what? I was prepared to accept this article just on the first sentence. But Read On. We love writing code, but when it comes to reading it, we usually shy away. After all, writing code is so much more fun and reading code is hard. And other people's code, particularly. We have a name for other people's code. It's called Legacy. But to be fair, not necessarily because other people's code is bad, but because they probably think and solve problems in a different way than you. But did you ever consider that reading someone else's code could improve your own? A lot of the time, people are thinking other people's code on my project. What I'm inviting you to do is think other people's code outside of your project and outside of anything that is directly relevant to what you're doing. Now, it is important to understand that you can't just read any old code and expect to learn from it. Well, maybe we can learn things, but not necessarily good things. Okay, let's just clarify what this is. Hello World. I love the fact that it is dignified as a Hello World app. All the rest is copyright. The copyright message. These are your rights and conditions.  So let us clarify what we mean by cool code. The comment is great. It's great and magnificent in a negative sense. If you ever were... Remember, you should comment your code. Are you so sure? So we can learn something from it, but perhaps not the lesson that was intended. Here is how to do Hello World. We want code that is cool. I think we're reasonably okay with code. A system of words, figures or symbols used to represent other set of instructions for a computer. More importantly and more challenging, a set of conventions or principles governing behavior activity in a particular domain. We have codes of practice, spoken and unspoken, within teams, beyond teams and across a profession. A collection of writings. A code is a collection of writings, often referred to as a codex, but historically a code. But what do we mean by cool? Fashionably attractive or impressive. That sounds good. I want that in my code. Excellent. Used to express acceptance or agreement. I've got a tween age sum. I'm hearing a lot of that these days. I show him something cool. In fact, I email him YouTube links and pages, and I get these one-word replies. Cool. And cool includes an exclamation mark. It's not cool exclamation mark. I'm pretty sure the way he says it and thinks it is cool, including the exclamation mark. Used as an intensive. Yeah, he uses that one as well. And then there's the other one used when a conversation goes silent. Cool. Marked by deliberate effrontery or lack of due respect or discretion. I like the sound of that. We're going to look at some examples that fit that. I'm restrained or relaxed in style. I think we need to balance things out. So let's look at this. This was described as the greatest program ever written by a games program. It's a day as frogly. He blogged about it about 10 years ago. And it was written in 1983 by Jack called David Hall. This is Z80 assembler. It was for a ZX81, which was in the UK, one of the key home computers to really change the face of computing from the kind of hobbyist perspective. It made computing accessible or programming accessible. What is impressive about this? This is a game of chess. What is impressive about this, where it's part of the game of chess, there's actually another screen of this, is that the ZX81 out of the box comes with 1K of memory. I remember my older boy asking me what a kilobyte was.  You know what a megabyte is? Yeah, it's a thousandth of a megabyte. What's the point of that, Dad? That doesn't make any sense. How can you have something so little? But you don't even get the full 1024 bytes because there's a runtime. This takes 672 bytes. That's 4.8 tweets. Can you describe chess in 4.8 tweets? I don't think so. This allows you to play the computer. It allows the computer to play you. And it recognizes a win or a draw. Somebody clearly didn't tell David Hallman this was not possible. Had they told him it was not possible, he might not have done it. This is quite profound. In that sense, we might say, well, you know, we don't have this problem anymore. Yes, we do. We're human. When somebody says we offer you this much bandwidth, we take it. When somebody says we give you this much memory, you have this much, now we have this much. Oh, but we now need this much. It will never be enough. We confront things, little things that it turns out that we can't change. Little things like, oh, I don't know, the speed of light. We had a go at trying to change that a couple of years ago, but neutrinos turned out to be surprisingly and boringly subluminal in their speed. So we don't get to change. There are certain things we are not going to change. Bandwidth is we're going to hit a wall. We've hit a wall with clock cycles. We're trying all kinds of other things, but we ultimately hit various walls. Whenever we think we've got enough, we will always want more. Now, while we're on the subject of assembler, this is quite a historic piece of code. This is some of the code for the lunar landing module, Apollo 11, the lunar landing module. It's available on Google Code. They released it on the 40th anniversary of the first lunar landing in July 1969. And this is really interesting. It's revealing in many, many ways. So we're talking about kind of slow clock speeds. The computer on the lunar lander, let me think, it was, get ready for the fast clock speed, around 40 kilohertz. So that's 0.0004 gigahertz to give you a sort of a real sense of comparison. 36K of memory, based on 14-bit words. Yeah, you can't port Java to it. And the code was written in a thing called MAC, MAC, the MIT Algebraic Compiler. The code was written in MAC, and it was compiled down to assembler by hand.  Well, the incremental compilation is not keeping up with my lightning typing. I want you to think back, hand-compiled. It's also why the comments are so good. But it was hand-compiled, and then hand-punched into another system. Hand-compiled, wow. But it does, there are some great comments here. You can't quite see it, but around the middle of the screen, there's a little thing there that says, temporary, I hope, hope, hope. It also turns out that there was a little bug in the system. But it wasn't really revealed until a little bit later, because it was counteracted by another bug. It's one of those terrible cases of a sympathetic bug. And it was to do with the throttle and latency in the hardware, which got fixed. But there was a bug in the code that actually allowed the whole thing to work. Neil Armstrong replied, that it's a little bit shaky on the way down. We tend to remember, if you follow things like spaceflight and the history of spaceflight, Apollo 11's landing, the Eagle's landing on the moon, was fairly dramatic. Neil Armstrong switched to manual when he realized that the original landing site was inappropriate, would not be good for the lander. So he switched to manual and moved over. Landed with something like 30 seconds of fuel left. The whole thing could have just gone completely pear-shaped at that point. But the funny thing is, it could have been much worse. It could have actually been something far more disastrous. Apollo 12 flew with the same bug. They fixed it for Apollo 13, but they had other issues with that. Actually, if you've ever seen the film of Apollo 13, I read there's a beautiful thing. They tend to do screenings against sample audiences to get a feeling for the film. What's it like?  Had this happened for real, the astronauts would have died in space. They'd never have made it back to Earth. Again, maybe it's not just software developers that aren't very good with their history. We also have other examples a little closer to home. Things that have had a profound effect on the way that we work. This is something that has direct relevance in the world of test-driven development. This is an early draft of J-Moc. I got Nat Price to send me the coat, and this is kind of the beating heart. Obviously, there's an awful lot more to it, but this is the essence. This is what makes the whole thing tick. He made a comment. He kind of laments a little bit the loss of simplicity that has happened as J-Moc has grown, but there's a simple beating heart. It's interesting because there's a couple of things here that are stylistically not regular Java, but the thing that I love most is something you don't see enough. It's over there. He respects the fact that humans can't scan more than about 60 columns. 80 columns is the upper limit of what you can scan properly. And yes, when you write 120 column line, it's not readable. So whenever I go hard on the 80 columns, people think I'm being really retro. I am being retro because I'm human. We have not had a chance to evolve to deal with wide-screen capacities. I would like you, if you're working for a web company, to go to the people who prepare the content and go to the web designers and you know what? I think all the columns on the front page should be 120-plus characters. They will march you out of the room.  Humans have a particular way of reading and it turns out it's not the way programmers think. Anyway, while we're talking about test-driven development, here's another one. It's an early version of JUnit 3. I'm still trying to get out of Kent Beck some of the JUnit 2 code. But again, this is the beating heart. Without this, there is nothing else. And yet it's surprisingly simple. There's a certain simplicity and elegance to it. It's not hard to produce a testing framework. It's just presumptuous to do so. And this was very presumptuous at the time. And this is really important. It's changed things. Whilst we're on the subject of small pieces of code and whilst we're talking about Kent Beck, programming buddy, Ward Cunningham, wrote a little thing in 1995 in Pearl of all things. Pearl, as a friend described to me and I'm fond of repeating, executable line noise. This is 200 lines of executable line noise. I've shown the top and the tail. It's the first wiki. That's kind of important. I can't impress my kids with anything else. And the people that I might know in software development they're unimpressed until you say, oh, yeah, Dad knows the guy that invented the wiki. Oh, okay, that's worth talking about, Dad. 200 lines. It's a beautiful example of what Dick Gabriel referred to as the worst is better principle. In fact, Dick really got the name wrong on that. It's completely not what it's about. It's nothing to do with something being worse. It is simply a particular way of framing simplicity. Let's just do a first draft, something really simple. It's so simple that if it doesn't work out we can throw it away. Let's just try it out, see what people do with it. Turns out they do a lot. Also, you don't have to make a mess. People often assume that when you're writing Pearl you have to abandon all hope and all style. I mean, I'm presuming that because that's what I see. People often assume that when they're doing web programming and programming either ASPs or JSPs or whatever that they have to abandon all style. Because, you know, it's the web. We do things differently there, not at all. What you see here, and the reason I chose the tail end is that the bit in the middle sets up all of the processing logic in appropriate subroutines. And then at the end we have everything brought together. Very, very simple, very effective. In other words, we can actually understand this top-down design. This is almost a Pascal program in some senses that you can actually describe what's going on.   This little book came out in 1999, Practice of Programming, T-POP for short. Brian Kernighan and Rob Pike. Two other people who've been busy inventing the future. I think that's for you. Who've been busy inventing the future. I don't have any phone code. I feel I ought to have some phone code. There's a lovely example in this book. I remember reading it, and I flicked over the page and thought, you're kidding, that's it. This is a really stripped-down, simplified version of grep. It covers many of the common cases that people will use regular expressions for. It's really simple. It's embarrassingly simple. And yet, it's also very intricate. To be able to write that kind of thing in that little space is quite profound. It's been for a long time one of my favorite pieces of code. When Brian Kernighan contributed to the beautiful code book from O'Reilly, he chose this piece of code, which made me feel kind of good. It's just like, yes, I can see a classic as well. Rob Pike apparently knocked this one up in an afternoon. Just kind of threw it together. It's a really good example of many things. Idiomatic C. A lot of people kind of program into the language they're working with, rather than programming with it. They don't embrace its idioms. It's really difficult to write this kind of thing in Java. Well, you can do it. It'll be a lot longer, and we call that enterprise code. It's really simple. It takes advantage of some of the things that annoy people in C and actually turns this apparent weakness into a strength. It's also a very good example of mutual recursion, employee examples that people normally deal with. So, profoundly instructive. Now, whilst we're on the subject of recursion, this is really interesting. This is a piece of code that does not compile. It was written by Irvin Unruh, who used to work for the compiler group at Siemens. This is in 1994. He presented it to the C++ Standardization Committee, and this was the beginning of template metaprogramming. If you don't know what template metaprogramming is, well, let's first of all start with templates in C++. Templates are kind of like generics done so that they work. So those of you who work in Java, it's not like that. It's proper. Those of you who work in Csharp, it's still like that. Not like that. It's proper. Templates are profound, and this was the great discovery. Templates are Turing complete. Anything that can be computed can be computed using templates at compile time, and this code does not compile and its error message is the first few prime numbers. That's cool. That's crazy. A program that does not compile and gives you useful output. Template metaprogramming is a technique that C++ programmers use to preserve their jobs. Nobody will understand that you can't get rid of them because it's just like, what does this do? I love this example. Adam Patterson and he used a template metaprogramming library which is very much like functional programming at compile time to program the common Carter and challenge of fizzbuzz. Now, if you Google for fizzbuzz you will find two different categories of entry. There are those entries that say fizzbuzz is a drinking game and there are those entries that say it's a kids game. So I'm kind of intrigued. I often like to note that there's not a lot of difference between adults and children but I'm not entirely sure what the children do as a forfeit because the idea is you go around the table feel free to try this later you go around the table one, two, fizz every time you hit a multiple of three you say fizz four, buzz every time you hit a multiple of five you say buzz fizz, seven, eight when you hit a multiple of both three and five in other words, fifteen you go fizzbuzz if at any point you get this wrong you have to down a drink and if we're talking alcoholic drinks I mean I don't know, do kids drink more water more milk or something I'm not entirely sure what the forfeit is because with the adult version of the game it all goes downhill for some reason this has been embraced as a coding cutter in the craftsmanship community and this program doesn't compile either and it's error message there you go one, two, fizz four, buzz, fizz seven, eight, fizz, buzz eleven, fizz, thirteen, fourteen, fizz, buzz are your error messages this exciting? are they computationally complete? there you go it's also an example of functional programming which I think is a kind of a curious side effect so here's another implementation this is fizzbuzz now if you know the answer to this I want you to keep quiet if you already know where this comes from shhh I want everybody else, guess the language this, that's got a bad Ada, not a bad guess I've got some Ada in my slides tomorrow no scheme, another good guess we've got some scheme later Ruby you didn't see that coming this is done by Tom Stewart who has a book out later this year, Understanding Computation you can find this article which will be in the book as a chapter it's called Programming with Nothing what he decided to do was to restrain his use of language features he would program he would do fizzbuzz and he would program it without using numbers and without using Boolean logic and without using conditional statements in fact without Ruby he only allowed himself two things the ability to define a lambda that took one argument and the ability to call the lambda if you have a background in mathematics or computer science theory this is basically church numerals in other words what you're doing is you're defining a number system by certain operations it's related to the idea of defining the natural numbers based on sets for example you pick an empty set then that represents zero if I pick a set that has the empty set that's got one thing in it number one if I take a set that has that and so on I can create the number two so in other words we can define a natural number system he goes a step further and does this with lambdas he recreates control structures he gains up one other luxury which is also to allow himself to define constants so that he could write it this this short if you expand it from the constants it looks like this and you can see that there's not a lot of anything but defining defining lambdas passing things to them given that it's supposed to do the numbers from one to a hundred just to let you know that's a hundred yeah I strongly encourage you to read the article it's absolutely fascinating slightly mind bending, slightly mad but nonetheless a great deal of insight I did say there'd be some lisp this was a list 1.5 it's written in the early 60s you can find the pdf of this online but I guess I quite like old books so I went and spent good money on getting my own copy it's really quite inspiring because it's very it's particularly readable as well for a book written in the early 60s by a bunch of academics it doesn't simply tell you how to implement lisp the book as you go through if you're bored one afternoon try it it's really quite profound it shows you the inner workings it's one of these examples of don't simply understand how to drive the car understand how to take the car apart and put it back together again and lisp has been a source of inspiration for many programmers and exasperation for many others but it has some really profound ideas one of them was metacircularity the idea of defining a language in itself this is an idea that is fundamental to many of the tools that we deal with the idea of self-hosting systems lisp was written was defined initially in lisp but you don't have to translate it hand translate it into the appropriate implementation but we find the idea elsewhere linux is built and hosted on linux junit is self-tested using junit and so on you have the idea of cross-compilers the first time you encounter cross-compilers how can a c-compiler compile a c-program that is the c-compiler for another platform how does that work I try and explain this to my older boy on the way to school one day I'm not entirely sure it worked out but it is a profound idea this metacircularity is quite profound the point that we see this this is taken from structure interpretation of computer programs which uses scheme and similar idea the idea of the eval procedure here is a simple way of defining scheme written in scheme Alan Kay, inventor of small talk once described this kind of approach Maxwell's equations for computer science the original version of small talk was written with small talk defined in small talk Dan Ingalls went and implemented it in 1972 he went and implemented it at home I need you to think about that here we have somebody implementing something at home in 1972 didn't have home computers back then so he would have been on a time-sharing terminal that he had access to what was the language that was designed for time-sharing systems for people to be able to program this is a real test of your history 1960s begins with B ends in ASIC you see, you're sharp you're sharp, I can't get one past you basic it turns out the original version of small talk the purest of the pure was written in basic yeah that upsets some small talkers when they find out but it is profound, we see this reflected in this example from Peter Norvig the director of research at Google he decided to have a go at writing a really simple version of Lisp so in 90 lines or 91 lines it's called Lispy, he wrote it in Python and there we see the eval function and we also see the main rappel the main interpreting loop and it's there but there's your eval I think it's an interesting side note that he said, yes I tried implementing it in Java it took 1400 lines which is why there are more jobs than some programmers let's move away from Java to a thing that is characteristically not Java except for its first four letters JavaScript this is the basic of the 21st century this is what kids are using and messing about with not when they're actually being taught to program they use more sensible languages then but when they want to try and get something done and they're hacking away instead of hacking away in assembly they're hacking away in JavaScript any application that can be written in JavaScript will eventually be written in JavaScript and this is kind of a there is kind of an interesting observation, now I realize I don't have an internet connection in this room so I'm kind of glad that I it wasn't a very good connection but here's one I prepared earlier this is it was developed by Fabrice Bellard it is basically an Intel interpreter in JavaScript upon which he has layered a small installation of Red Hat Linux so this is Linux running on a JavaScript chip within my Chrome environment on Windows 8 now I can't actually see this because I'm running an extended desktop so please forgive any mistakes that I make and there we go we've got stuff there's a Hello World program see it all fits together there's talk about this program now I'm going to edit this program because I'm a little I'm a little concerned about the punctuation there you go should have a comma if you're not sure why just consider the following two sentences let's eat Grandma let's eat Grandma yeah one of them has a comma the other has cannibalism so it saves lives okay now I'm going to compile it this is going to be kind of slow you know oh that's actually quicker than I expected yes we have achieved programmingness alright now there's other things we could do it appears we're already running enough operating systems this is getting a little bit like Inception okay yeah there we go that was unexpected it does normally run however that does reflect my own personal feelings on Emacs it wasn't me that did it it was the run time right now we're going to get that one back let's kill that in the background let me just bring that out for a moment yeah that's going to be interesting you say we have a signal in here let's actually find yeah that's kind of annoying ah there we go that's interesting I had not run Emacs like that before let's just try and connect up what's the login is airtel demo isn't it this doesn't like it that's annoying what's the ballroom one do airtel demo br yeah okay let's try that one and that's still okay let's try running that don't worry let's go somewhere there you go so that's Emacs for you let's try that so I've got another version excellent there you go that's the boot up sequence welcome to you so let's have a look at something else because if you are careful you will have noticed that there is also a DOS directory in the DOS directory LA no I don't think I wanted that one try and bring that one home and this is really not happy today don't run Emacs it's the moral of the story yeah whatever right so that's the example we've got there I'd like to present you with another piece of art this is the 1989 winner in the best layout category for the international obfuscated C code in contest it calculates E which is kind of interesting kind of provocative if you actually want to calculate Pi you need to use this program which is the winner of the 1988 best layout category this one calculates Pi to 2 decimal places by measuring its own surface area which is kind of cool now whilst on the subject of globes here we can get that this is one of the most profound examples this is known as the club it was written by Yusuke Endo in 2010 and when you execute it it rotates the world through 45 degrees I'm wary of doing anything live with code at this point because I've just been disconnected from the ballroom you know what I did actually upload the video earlier so let's just see if it's still in the buffer I'm suspecting the answer is no sadly let's try and reconnect that's really very frustrating air tail disconnect air tail connect automatically let's try that yeah that's unfortunate an error code yes what could possibly go wrong exactly what we expected would go wrong however I did find conveniently enough the original page when you execute it it produces the logo rotated through 45 degrees when you execute the code from that it rotates it a further 45 degrees and so on you can actually specify the number of degrees you wish it to rotate on the command line so you can rotate it by one degree at a time this is a coin it's a multi coin a program that produces itself as its own output or a variant of itself such that it eventually gets back to the original now I think one of the things that's most interesting about this one is the comments this is awe inspiring thank you you are a madman you are completely insane very very impressive wow my favorite one though do you accept worshipers it really is a masterpiece so yeah that's kind of one of the more certainly one of the more provocative and profound examples now let's just see if we can find a window that actually works yeah this is going to be interesting let's just see if we can find a shell that works MinGW shell right this is going to be interesting because I was going to use JS Linux to do this however that's not working out so well for us so I'm going to do something else let's see the next piece of code is a very interesting piece of code let's see if we can get that we don't know who wrote it they posted anonymously let's just do this let's but it does something rather interesting if I'm really lucky this will actually work I'll just pull this shell up I put up a simpler version of the script that doesn't use a function basically if we execute this oops I can't see what I'm typing there script I'm really lucky this will actually work okay so what's this code doing now what's it doing you're telling me how it's doing it damn it why do programmers always do that I don't want to know how it does it I can see how it does it it's sorting it yes ladies and gentlemen this is sleep sort as I said we don't know who created it but we do know when it was created man am I a genius check out the sorting algorithm I just invented so anonymous we don't know the beginning of 2011 I think the first comment after this oh god it works this is a supremely cool code it's possibly one of the least efficient ways of sorting it's not the least efficient way of sorting however I think what is interesting for the algorithmic geeks amongst you is to work out what the computational complexity of this is it's linear yes we have a linear sorting algorithm that's pretty cool but it doesn't so tell us that maybe the complexity is not the only thing we care about when we're dealing with algorithms it's instructive in that sense it's certainly better in this sense than what's known as Bogo sort Bogo sort is where you take a sequence of numbers and you randomly shuffle it and you check whether or not it's sorted if it's not sorted, repeat until it's sorted so this is a little better than that a little more ingenious and actually there is something again here that is subtly profound because this is the basis of many distributed algorithms this idea of just fork out lots of different processes and you harvest the values back together again although it has some terrible performance worse cases there's something in here that is quite sort of insightful so not content with demos that don't work this is one of my favorite regular expressions now normally when people deal with regular expressions basically people describe this as oh yeah I had a problem and then I used a regular expression now I have two problems this one's kind of interesting because this works in Ruby it works in Perl if I put this in if I'm really lucky this will work what does that do see it's all about primes and pi tonight primes this calculates in unary forget binary, unary, base one whether or not a number is a prime number without this without any loops relying on a backtracking property of some regular expression matches because if you can match a multiple of something then it's not a prime because you can divide it if you can't match it then it must be a prime it may be the least efficient way to calculate primes but it's certainly one of the most ingenious if you tell somebody oh yeah there's a regular expression that matches primes you can initially think of something like huge and monstrous but it turns out it's smaller monstrous instead now whilst we're on the subject of prime numbers the let's see if we can get let's see if we can get that one this is what is known as an illegal prime Phil Carmody in 2001 found a prime number this is over a thousand digits long found a prime number that when expressed in hexadecimal and where the hex represents byte values or pairs each hex value represents a nibble then that corresponds to a g-zipped version of a c-program that when unzipped allows you to crack dvd encryption which is why it is known as an illegal prime because you're not supposed to be able to crack that and certainly if you do you're not supposed to tell anybody about it hence it is illegal so this is one of the more interesting numbers there's a whole load of illegal primes as well there are actually so this one you actually have to g-unzip and then compile there is actually a larger illegal prime that is the executable code that when you write it to file and execute it it will crack it and then compile it or decompress it obviously it's slightly platform specific but I'm not going to hold that against it so you end up with these kind of like really crazy examples this is a really interesting one from Alexei Shveshnikov it's a one line web server now of course some of the heavy lifting is done by other applications but you can see there's your 404 message your protocol HTTP 1.0 you've got all the bits and pieces there and there's 200 ok I don't really recommend that you go back on Monday and say to hell with Apache forget internet forget the IAS stuff we're just going to go for this I think it might have some security issues but this kind of compression is quite a profound idea there's lots of really small examples from which we can learn a great deal practical in the sense of you can quickly get on a closed network a very simple web server up and running you can probably even get it running on that version of JS Linux if only it would run so a lot of this interesting enough comes back to some things on a lot of the ideas come out of Unix originally this is the Lyons book the John Lyons, the late John Lyons of the University of New South Wales he put this together in the 1970s because he wanted to teach an operating systems course but he wanted to use a real operating system and around that time AT&T were basically made the source to Unix available and so he wrote a complete commentary on the operating system so he basically published the code with a commentary there's only about 10,000 Lyons in the kernel of the 6th edition of Unix I just want you to think about that for a moment and think about your current project you can get an operating system for 10,000 Lyons what's your project doing? I've seen classes that are longer than that okay, they scare me so when somebody says, yeah it needs to be this so what are you doing, we're taking data from here and putting it there you used to be able to buy an operating system for that for free it's a very geeky thing to have as you can see it was passed around by Samizdat basically people photocopied this stuff for those of you who are too young to remember what a photocopier is it's like a scanner but more expensive and more social if you're at a university you spend quality time hanging around by the photocopier hoping to meet interesting people failing some of the people on your own course you sit there photocopying large tracts of stuff so, yeah we've lost out something on the sociability side there but you do end up with students it used to be the case that students would make very careful cost-benefit analyses of this I remember at uni when one guy decided that he would photocopy Kearling and Richie the C programming language because it was 10% cheaper than buying the book which also shows you that the whole thing about time is money no, not when you're a student so I put the kind of retro lightsabers in there these are my kids' lightsabers they're not real sadly but there's also something else here again, educational from a paper in the early 70s from the late Dennis Richie in can Thompson they made an observation that I think is as true today as it ever has been there have always been fairly severe size constraints on the Unix operating system and its software given the partially antagonistic desires for reasonable efficiency and expressive power the size constraint has encouraged not only economy but a certain elegance of design without that constraint it's likely you would not have had many of the design decisions indeed Unix was born out of the ashes of the Maltix project which was fairly unconstrained and that lack of constraint was an issue you need to be working against a constraint to really find the concepts now again everything has a long history one of the most interesting things about the Unix command line that is spread through to other command line systems is the functional programming model that you get on the command line a lot of people aren't aware of it as being a functional programming model but pipeline architectures are basically data flow architectures they are relatively stateless the state is affected only at the end of the pipeline and this idea of the pipeline is a really interesting one and it has a prehistory Doug McElroy and this paper there's all this memo from 1964 makes the observation we should have some ways of coupling programs like garden hoses screw in another segment when it becomes necessary to massage data in another way and this is the way of IO also in other words a unified model for processing and communication and this garden hose metaphor seen in 1964 it's worth kind of going back to 1964 and thinking what they had because they didn't there really wasn't an awful lot of computing around and this was far sighted a couple of other things here they're interesting our loader should be able to do stuff yeah fine our library system et cetera and then I love the technical jargon in this it should be possible to get private system components for buggering around with just to you know that's it because that's what we're going to do we're going to mess it out with this stuff now sometime after seeing this I found another little discussion that went back on the history while Thompson and Richie were laying out a file system McElroy was sketching out how to do data processing by connecting together cascades of processes and he was looking for a kind of prefix notation do not underestimate the power of notation the Nobel physicist Richard Feynman once observed that the history of mathematics is the history of notation when you are able to grasp an idea and you have a notation for it it becomes thinking and expressing that idea that becomes simpler never underestimate the importance of notation a lot of programmers do a lot of programming language designers do notation matters and basically they pre-varicated so spent a couple of years trying to come up with this and Ken Thompson who is very much a doer said I'm going to do this we're messing about with this for so long and he basically put pipes into Unix and overnight there was a change originally all of these features all of these simple tools had command line arguments but suddenly you ended up with this pipeline model and in the way that programmers will rush in to fill a void the next morning we had this orgy of one liners everybody had a one liner and that started the Unix philosophy that started this whole compositional approach otherwise it would have merely been something another kind of VMS style system so it wasn't just a slightly good idea it actually transformed a little piece of notation the pipe sometimes difficult to find on some keyboards easier these days but it used to be quite hard and normally jumps around based on your nationalization features which are very frustrating having tried to use a I remember this company I used to work at we had a job lot of spare Spanish keyboards using an operating system that only had a US mapping while all the rest of our operating systems had UK all the rest of the systems had UK mappings and you're sitting there going like don't look down but where's the pipe can somebody direct me I can't do programming where's the pipe where's the back tick program without these once you figured it out it was good so I'd like to draw this to a close with another little piece of history a very important piece of history is the original announcement take this stuff for granted most of our ability to share information with one another and share code and to basically make available all of this knowledge this history is enabled by this and there's a little piece of code out there which is the worldwide web and I'd just like to close with this observation from the author Stephen King if you don't have time to read you don't have the time or the tools to write I hope that's been interesting thank you


It's a new year for new FOSDOM. Welcome everybody. And hopefully it will be a successful FOSDOM this year again. And a good social talks. Maybe yesterday evening already for the beers. And for the rest there are a lot of conferences. Enjoy yourself over the coming next two days. And we hope to see you again with people present already. Welcome. For those who stay welcome. It will be a very busy day as you can see on the agenda. There is no lunch break but everybody can go and leave when they want and enter. Beware when the room is full it will be full on the close. Then don't come and enter. Okay. This is the backup and disaster recovery death room. So there are a lot of talks about the backup of course and of disaster recoveries. The agenda is here. The next speaker will be Johannes who is sitting there. And the other speakers are sitting there and over there. And also a speaker for three years. If you have a question and are responsible of this room you can always ask me for something. Otherwise there are a lot of people of FOSDOM who can help you with other arrangements. The restaurant you know is over there. Over there I'm not sure. Okay. So the next talk will be the ascents about disaster recovery with relax and recover. This is a talk that will discuss of course disaster recovery with a tool called relax and recover. It will be an introduction and the introduction is important because the talk after that is the guys from disaster recovery Linux manager over there.  So then don't need the introduction then to relax and recover because under the hood they use relax and recover. Thereafter it's time for the barrios. The guys from barrios will give me center. Still have some few minutes before we start. And a backup about the backup tools. And thereafter it's also a guy from slow from Red Hat who will talk about incremental backup forever I think. Afterwards it's again Johannes with some I think it's a kind of workshop about relax and recover.  And afterwards it's again a schedule about barrios and some nice tools to have plugins. And at the end of the day we have a session. It's an open session so that everybody can discuss about barrios and relax and recover about future ideas and things that are missing should be improved and anything that's open for any discussion. So I think we have to stop at 7 p.m. sharp. But okay if it's finished it's finished of course. So are there any questions so far? No? So I think I will round up and then Johannes can prepare himself for the next talk. Maybe for the a few words for the presenters. The timekeeper sitting over here. Follow her very closely. It's not for the audience, it's for the speakers. She will have paper sheets with 10 minutes, 5 minutes left. It's very important that we keep the time because the recording is fully automated and it's live on the internet. And if you are going too much over time then I have too much work this evening to review the videos because you can still shift it a bit but the better we keep on time the less work for the full video presentations are online then. Okay I would say enjoy the day. Is it here? Is it somewhere else in the Fosnum? I hope you have a nice time and learn a lot. Thank you for being present already. Please enter.


Hey everybody, this is Brian. Welcome to the 18th lamp tutorial today. We're making discussing multi-dimensional arrays I promise the last of the array tutorials I know that we've kind of beaten this up a little bit arrays in our partner part of any programming language So let's dive right in What is a multi-dimensional array? Well, let's think back an array is a value or I should say a variable that holds multiple values So what's a multi-dimensional array? Well, it's a you guessed it Variable that holds other arrays How does that work exactly? here's our variable families and It is an array this whole big chunk and the first value in the or should say the first index in the array Because this is a associative array It is actually an array in itself. I Know that sounds confusing, but don't worry. We're gonna cover this Open up your trusty IDE And let's just say pet Owners Equal array We'll say Brian And we're going to make this an array. Let's say shakes not shanks. Drup Yeah, I'm naming my cats. These are not their full names and Laser thingy. That's one of the cats toys. Did I actually misspell laser? I did. Oh my gosh You got to be talented when you misspell laser I call laser thinking one of the pets because I have to constantly feed a battery so to keep the cats occupied All right now we're going to say Heather my daughter And let's say she's got a An array Let's say her pet is fishy. She's got pet fish and then let's just say Mike I cannot spell today at all Mike's got an array of pets Let's say he's got doggy because he's got a dog and you can tell I'm really creative with names here and Let's give him a really unique pet like What was that thing I call? Oh, yeah Liger. It's a combination between a lion and a tiger. Those actually do exist They're quite freaky if you've ever seen one So wow, let's look at the syntax of this thing As you've guessed it working with multi-dimensional rays comes with its own headaches I mean look at the syntax of that you misspell one little thing and that whole variable was just shot So how do you access items in a multi-dimensional array? Well, I'm glad you asked So let's just keep it simple here and we'll say Brian. Whoops Okay sensitive and let's just say we want to access the first item in here Shakes, that's our first item Then if you wanted to access the second one remember, this is a zero based index failure and then Third one Laser thingy Now let's grab Heather here and let's grab the first one in Heather Now let's grab the second one in Heather Oh, there's nothing there because see how Heather's array only has one item That is another interesting question is how do you tell how many things are in an array? Well, you use the function called count You see the syntax for count is count the number of elements in a variable usually an array and it's a mixed variable So what we're going to do is we're just going to say Copy this little guy so you're grabbing the first value That matches Heather So what it's doing is it's going to pet owners. It's grabbing. Okay. Here's the first value Is that got in the label of Heather? No, so then here's the another one. Does that have a label of Heather? Yes, so it grabs that one and then it says, okay, what is the value for that value Well, this is an array We can prove that it's an array By simply printing it out. See now. Let's give this a more meaningful example So we are echoing out The Heather index the first value in that multi-dimensional array, which is fishy see right here fishy and Then we're just echoing out the Heather index or I should say the Heather value Which is this right here? What that saying is it's an array so you know this is an array and Then we're going to count the elements in that array Heather one So let's grab Mike here. We haven't done anything with Mike. So let's Plug Mike in there and see what happens Notice how it says doggy because doggy is the first element in the Mike array And then we're going to grab that and showing that This is an array We could put strings integers whatever we want, but it's important to note that it's printing out array Which means it knows PHP is a typeless programming language means it doesn't really care what you put into a value or into a variable You can put an integer a string a double a single etc. It doesn't care, but it keeps track internally and that's what it's saying is hey I know that's an array and then we're saying how many items are in the Mike array to Pretty complex subject and I have to admit multi-dimensional arrays in the real world Really aren't used too heavily there are better programming Ways of doing things, but we're not going to cover those just yet So that's all for now. This is Brian. Thank you for watching


Hello. I'm Leanne George. I'm the coordinator of the spec survey program here at the Association of Research Libraries. And I'd like to thank you for joining us for the fifth in the series of spec survey webcasts. Today we'll hear from the author of the survey on Supporting Digital Scholarship in ARL Libraries. And the results of this survey have been published at spec kit 350. But before we begin, there are just a couple of announcements. First, everyone but the presenter has been muted to cut down on background noise. So if you are part of a group today, feel free to speak among yourselves. We do want you to join the conversation by typing questions in the chat box in the lower left corner of your screen. We will take questions at the end of the presentation. I'll read them aloud and Rick will answer them. Finally, this webcast is being recorded and we'll send all registrants the slides and the link to the recording in the next week. Now let me introduce the survey author. Rick Mulligan is an American Council of Learned Societies public fellow posted as a program officer for scholarly publishing here at the Association. He is a humanities scholar and trained as a digital humanist at the Roy Rosenzweig Center for History and New Media at George Mason University and Matrix at Michigan State University. While at ARL, he's been tracking the developments and initiatives in digital publishing and digital scholarship as part of scholarly communications. For the past year, this work is focused on how the digital humanities and digital scholarship more broadly are supported within ARL Libraries. As you can see on your screen, you can use the hashtag ARL spec kit 350 to continue the conversation with him on Twitter or to submit questions during the webcast. Now, let me turn the presentation over to Rick. Thanks, Leon. Hello, everyone. Thank you all for joining us today. One thing we found with this is that we realize every institution is unique and the need for digital scholarship services and support first develops at the local level. It grows organically until the needs of individual faculty and disparate departments begin to overlap. Generating a more consistent demand that requires collaboration, strategic planning, and partners beyond the library who can help support the use of digital tools and methods throughout the entire research cycle. Some institutions in their libraries have a very long history of working with digital tools or techniques, supporting text analysis from humanities computing, multimedia and digital humanities work, or geospatial information and digital mapping, while others are only beginning to receive requests for such consultations, advice, or services. In every case, no matter how new or well-established, each digital scholarship community is almost entirely dependent on the interests of local researchers and faculty advocates, efforts to make its holdings and special collections available online, and in many cases, the participation of offices for research and university-wide IT to supply an infrastructure for these tools and projects. Interdisciplinary programs might also strengthen these digital communities by attracting and recognizing the work of students, graduate and undergraduate in many cases. This is just some of the points made by a few of the 73 institutions who responded to our survey. So, in the interest of time, and because no one wants to sit through yet another history of digital humanities, I'm putting it under the umbrella definition for digital scholarship that we use to situate this survey. Quote, the use of digital evidence and methods, digital authoring, digital publishing, digital curation and preservation, and digital use and reuse of scholarship. End quote. Simply put, digital tools, datasets and methods increase access as well as generate new possibilities for interactive use and reuse by researchers and students. They move beyond traditional print research by creating hybrid scholarship that uses multiple channels combining print and web-based text, video, audio, still images, and annotation. This can mean new modes of multi-threaded, nonlinear discourse that only exist online. Now, because the STEM fields tend to integrate digital tools as a matter of course, to collect process and visualize massive amounts of data, it is now within the humanities and social sciences that we're really seeing big data, data visualization, multimedia and interactivity rapidly and sometimes dramatically change the very concept of research. From how it's envisioned, conducted, and shared to its integration into experiential teaching and the ongoing scholarly discourse. My objectives for today are to provide a context for this spec survey, give a brief overview of DS activities in our libraries, dig a little into the roles of library staff and faculty, including how they're organized and with whom they work. We'll end the session by looking at some of the future challenges to digital scholarship from the perspective of the library. So to begin with this context, we started considering digital scholarship as a focus for a spec survey. When we did this, we already had an idea that support for this work has been growing within our member libraries. This hunch was validated by Shanika Morris, the AERAL survey coordinator and our data analyst. She compared the past three years of AERAL survey, salary survey responses from 2012 through 15 and found that a steady rise in the percentage of professional staff in AERAL libraries who have specific digital scholarship responsibilities has been increasing. From 453 in 12 to 13 to 507 in 13 to 14 and 561 in 2014 to 2015, this same data also revealed that most AERAL libraries, 93% as of late 2015, now have some portion of their staff involved in digital scholarship. One of the goals of this survey is to better understand how the professional faculty and staff of AERAL libraries do this work. The steady rise in staff with specific DS responsibilities can be seen in the recent proliferation of new job postings for digital humanities or digital scholarship librarians or coordinators in the new titles in the profile section of this report and the new tasks library faculty and staff have been assigned or picked up and in the statements made by AERAL library deans and directors among others regarding the repurposing of vacant staff lines or the expanding duties of entire classes of librarians. So as you can see, these four librarians contributed a great deal to this survey, in particular helping establish the 19 categories of digital scholarship activities and portions of the profile questionnaire. This spec survey was designed in part with the goals of their proposals in mind. The first led us to try and understand how libraries are structuring their services, organization and partnerships to better collaborate in digital scholarship. The second meant to better understand the role of individual librarians in this work. But surveying each member of every AERAL library is so far beyond the scope of the spec survey that, well, we've asked respondents to help us develop profiles for those most responsible to digital scholarship at their institutions. By building these profiles, we hope to gain greater insight into their roles, tasks and how they're positioned within the libraries. This table displays both the categories we use to differentiate between varieties of digital scholarship activities and to identify where such support is available for researchers. Broadly stated, more than half of the institutions who responded offer support for all 19 activities through their libraries almost all provide support with the services of collaboration from familiar set of tasks and tools that involve digitization, collections and exhibits. These are available from almost all of these libraries, 84% or more of the time. Almost as many support a number of emerging activities involving data management visualization from between 66, 83%. Support and assistance for the rest of these activities are still found more often in the library than beyond it with a few exceptions such as statistical analysis and support or 3D modeling. Even the least supported activity, digital scholarship development, is provided by at least one in four of these libraries. So, talking about familiar activities, the digitization and imaging of analog material to increase access and enable better preservation is a mature service provided by many libraries through dedicated units or departments. Beyond scanning and reformatting material, these groups often also handle metadata creation and collaborate on digital exhibits. Our analysis of spec survey data reveals that digitization imaging support have grown from a few grant funded projects to become one of the most prevalent forms of support available in libraries. This work is closely followed by digital preservation, metadata creation and digital collections and digital exhibits. For instance, while the Digital Public Library of America, the DPLA, is becoming well-known as an aggregator of metadata and thumbnails for digital objects and collections, many of our respondents have started their own digital libraries and some are acting or beginning to act as regional hubs for the DPLA, which may in part explain some of the strong support for these activities. Librarians and archivists in particular provide the greatest share of the support. This includes the archives, digitization teams, rare books and special collections, and some others. The participation of digital projects and e-scholarship librarians, catalogers, and other specialists with specific training, or who work with, for instance, art history, architecture, or other related domains are principal amongst these efforts. Metadata creation is also available from data management librarians and departments in some instances and adds to this effort, in some cases coordinated by the centers but also outside them. Speaking of which, at this time only a minority of respondents support this work through digital scholarship centers, hubs, or labs, but the comments we received suggest that this is part of the distributed support across campus and that the number of centers will grow. Now for emerging activities, the increasing support for data, its curation, management, and visualization is not just an emergent form of work, but it's strongly represented and supported by many of these responding institutions. GIS and digital mapping, for instance, and data curation and management support are available from about 89% of these libraries in one form or another. Most also accommodate digital publishing about 85% of the time, although it's worth noting these activities vary from assistance with creating student and graduate student ETDs and digital dissertations to the availability and use of platforms such as the open journal system or other publishing opportunities. The support is not universal or I should say is not balanced between all of these and some of this can be seen in the comments. Something that stands out in particular that we found was project planning, an activity that 84% of these libraries support. Based on the comments in particular, this is a steadily growing activity rather than a dedicated specialty. For now it is rendered most often by digital scholarship coordinators and librarians or digital humanities librarians, but also very often by liaison librarians, subject specialists, and can be connected to digital humanists more broadly in some cases with those who are collaborating or in joint appointments with departments as well as coming from within the digital scholarship centers. After speaking with the leaders of library digital scholarship teams and some of those who lead these or direct these centers, we found that the demand for this work continues to increase, especially as a way to coordinate the library's involvement often at the beginning or at the end of the research life cycle when the project scope is first being set and envisioned and later when the work is being handed off and it begins to be part of the development of preservation policies or possibly integrated with the repository or for other forms of sustainable access. Speaking of digital publishing and scarlet communications, as we've already seen digital publishing is supported by many of these institutions often in a consultative role. This might help explain why a number of activities aligned with scarlet communications have been associated with this spec survey on digital scholarship. This work is not merely the creation of a digital form of publication but increasingly deals with intellectual property issues surrounding images, audio, video, and other multimedia. The movement for open educational resources and open access publications are directly tied to digital research products and sharing digitized materials online and consultations regarding office rights, copyright, and open access are available through some of these libraries and digital scholarship centers often coordinated with other units on campus. So the distributed support is becoming the norm. It's well worth noting that even where these libraries have a dedicated staff and units they often work in collaboration with other campus units to provide support in a much more coherent fashion. Of the 73 respondents only 20 have a library-based digital scholarship center providing support for these activities. The number of such centers is growing but for now this work requires distributed support employing a larger number of library units and their dedicated teams. Only a few of which have been mentioned. Some of these are virtual teams or groups who operate as virtual centers while other institutions have no plans to create a primary DS center or hub and intend to remain virtual. So in terms of organization some support multiple library and external units so collaborative and distributed. Brown University offers a great deal of closely aligned support in its libraries through its Center for Digital Scholarship. It's DS Lab and Digital Studio all of which are augmented externally by other units such as the GIS and data visualization of the spatial structures and social sciences initiative. However even with 30 years of history in humanities computing and digital scholarship and with these exciting collaborative spaces that offer high tech and low tech collaborative opportunities digital tools and often experienced consultants most of the projects Brown supports remain limited to the humanities and social sciences at least for now. Columbia University offers an example of distributed support through its award-winning Center for Digital Research and Scholarship. It also has four other digital centers supporting science, social science, humanities, and music in particular. These along with its institutional repository the academic commons are all part of the same organization the Columbia University library slash information service at CULIS. Yet again what they've said is that they're only beginning to collaborate as units on more of these projects all offer support to faculty and students in one manner or another. Moving on the University of Illinois at Urbana Champaign maintains a DS Center in its library the Scarley Commons that maintains a specific space technology and office consultations. It often works as the first point of consultation and contact and it helps connect researchers and students with other resources such as the undergraduate media commons or the IDEA lab in Granger Engineering Library. The staff of these units are augmented by liaison and subject matter librarians with extensive experience or training with digital schools and tools and methods. Moving to the virtual centers so we have the University of Washington who have no plans to create a digital scholarship center within their library. Their argument is they have the Simpson Center for the Humanities that is already deeply engaged in advancing digital work and it offers a range of support including summer fellowships in the digital humanities and others. The UW library sometimes work with the Simpson Center or other partners such as the UW E Science Institute to promote the S&DH. They contribute to this distributed support model through a digital scholarship website that operates as a virtual center. It lists services, people, makerspaces and tools, projects and even funding opportunities. These funding opportunities in particular show the wide reach of their initiatives including individual fellowships for faculty and graduate students along with cross departmental working groups and support for conferences and symposia as well as community engagement collaborations. Florida State University also has no physical digital scholarship center but library staff and faculty including several liaison librarians operate as a virtual digital scholarship center. They at this point in time have no intent to create physical space but are looking at the demand and reconsidering. Last, Cornell University. They view digital scholarship as a larger overarching aspect of all research supported by the institution and so it is far beyond the scope of any single center to coordinate in-house. Their service and collaboration model involves many of its programs. These include digital consulting and production services decaps, the arts and sciences grants program, research data management services group, the RDMSG, and support for public access mandates, scarlet communication programs, graduate student immersion programs and the Summer Digital Humanities Institute. This again is a form of distributed activity that requires and recognizes the contributions of liaison librarians and a vast number of other professional staff. So we've made a number of documents or we've made a number of the documents submitted by our respondents available within the report itself. If you carefully review especially the service descriptions, the organization charts, and the job descriptions, you'll have a much more complete picture of the number of units engaged in supporting digital scholarship. As these reveal, no single team can handle all of this work, much less any individual. The number of managers, coordinators, and DHDS specialists in these descriptions do not always match to the organizational charts. The suggesting part that the effort to find these people and hire them remains a challenge from any organization. Come back to that later. So speaking of the future for digital scholarship within our institutions, first let's look at the proliferation. Both defining digital scholarship and how it is supported by libraries present a number of challenges. In surveying ARL institutions, formally and informally, we found that the definition of center could be both fluid and fraught. Some of the best known DH centers and labs are A, not in libraries, and B, not at ARL institutions. Our survey gathered responses from 73 member institutions, 69 of which are research libraries. 41 reported that they had created a new department or unit to support digital scholarship, including a number of dedicated teams and centers for specific forms of work. Our informal survey duplicated some of this data, but brought our total to 47 centers. Now many choose, many of our institutions choose not to host DH centers as one-stop shops, although almost all partner with other campus units to create distributed DH capacity. All avoid being approached as just a service center. Their ethos is one of teaching the teacher while fulfilling the service ethic of the library. Looking carefully at our data and respond in comments, it's clear that there's been a trend in creating digital scholarship or digital humanities centers within ARL libraries with the greatest growth since 2010. At the time of the survey, at least another 11 ARL institutions were considering creating a DS center within the next one to five years, but this trend as I said extends far beyond ARL. As a new source of information for you, C&I and ARL jointly hosted a two-day planning a digital scholarship center workshop this past May in Arlington Virginia. We had 114 attendees representing 45 institutions who had recently started a plan to create a digital scholarship or humanities center. Perhaps of more interest to you as a group are that 20 of these teams came from non-arrow libraries and then almost half were liberal arts colleges rather than universities. Based on the results of both our survey and analysis of teams attending the DSCW 2016, we're seeing that more than 40 digital scholarship or humanities centers will be opening in the next five years. So again returning you to just take a look at those supporting documents and the lists of positions. We expect to see these grow and we also expect to see more divisions for specialties and different units as time progresses. So a few final thoughts for you on the challenges that we saw especially coming through the comments and in some of our discussions and interviews with those running centers. The first is cultural change which incorporates outreach and communication in particular. What we found looking at the comments and we can see this in specific cohorts where all liaison librarians have been asked to take on digital scholarship tasks and activities to support them. In many cases to work closely with digital humanities specialists to augment their capacity, their ability to provide this work. Some of this is following with the evolving liaison model in that they're being asked to approach faculty, those running projects, those using digital scholarship within their courses and in their ongoing research activities to find out what new tools, what new methods are going to be needed within the library or more broadly supported on campus. This means in many instances they're not operating in a reactive role but one that is proactively collaborating across the campus and in some cases recently. This also requires them to perform more outreach. The group that is most resistant to a coherent digital scholarship program on these campuses tend to be the STEM disciplines. The explanations we've received are that in many instances STEM already have digital tools and digital savvy graduate students as part of their labs so they don't often approach the library for additional consultations. Some of the areas that have shown up of interest are actually data management planning and curation though these are more anecdotal stories for now but the suggestion is that this will grow over time. This brings us to this issue of capacity and coherence. This work takes shared efforts not just digital humanities as scholarship specialists but amongst everyone in the library in one form or another. This work engages in multiple phases and as mentioned earlier project management planning may come at the beginning phase but help understand all of the phases of the project. Project management will in some cases work as a coordinator or a collaborator to point to different groups in the library and those especially beyond the library who are supporting this work as it develops over time and take up the reins in some cases when we reach the end of a research track when the research faculty is looking to hand off a project they're ready to move on to something new and so the weight of this effort falls to those who are helping set up the preservation and curation of the project or in some instances its sustainability as a form of interactive discourse or a collaborative online community. This brings us to professional development and recruiting. This was mentioned by some comments but it's been coming out more with our series of digital scholarship profiles in their interviews. This view of the library as providing a hub for digital scholarship means that some of the deans and directors are considering where new skills where new tools are being picked up and where there are opportunities to cross-train specific groups or individuals in the library or to help support these specialists and coordinators who in many cases are running workshops. This suggestion has been in many instances this can be done in the library first and increase the number of those aware of these talents or these skills and tools and the first community again that approaches this tend to be the subject matter experts and the liaison librarians. The other part of this is it requires maintaining a lot of contact with the digital scholarship community broadly RIT. So the Digital Library Federation is one source paying attention to of all things Twitter feeds, reading publications such as Digital Humanities Now or the Digital Humanities Quarterly help those who are coordinating these activities and planning for training and professional development remain aware of what the cutting edge of the services are such as in many libraries right now GIS data visualization and digital mapping those are the new black and frequently supported some very well known out of North Carolina but a number of other institutions. So the last point to leave you here many of the problems with digital humanities projects are discoverability, preservation, sustainability. In the case of projects these are done in many instances one-off to prove that something can be done used to be done in small boutique faculty led projects that were a part of a research publication that helped generate print of all things rather than an ongoing or a sustainable digital source. This is changing but the libraries core missions its tradition have been to support discoverability, preservation, and sustainability so as Digital Humanities especially faculty are running into these problems many for the first time they increasingly are turning to the library for help and understanding how do they maintain this work how do they hand it off so that they do not become the sole point of contact this is a growing concern for those where the collaborative teams dissipate after a project is done especially those that are collaborations across multiple campuses or multiple institutions and this is where the library is becoming more prevalent in supporting such action but with that I'd like to thank you very much for listening today and we're open to your questions and comments. Indeed we do welcome your questions and please join the conversation by typing them in the chat box in the lower left corner of your screen I'll read them aloud and then Rick will answer them. I know it may take you a minute to get organized to end your questions. Let me ask Rick was there any particular surprise of findings from the survey? I'll be honest as a digital humanist the the thing I found most surprising is the sharp uptick in a range of data support and the fact that both GIS GIS and data visuals are digital mapping where the first mentioned but followed immediately by research data management planning data curation that form support is also something that I'm less familiar with but a number of institutions especially Purdue or Bona Champagne UCLA have very strong programs already in place to do this work and in some cases are looking to better educate in fact that's a surprise this work is available but many of our respondents noted that campus outreach is necessary to make more of their faculty more the researchers aware of the library provides this form of support in any way. We have a question about business schools Rick had mentioned digital scholarship support for STEM and humanities did anyone report support for business schools in the survey? To be honest we did not receive anything specifically speaking to the business school I'd need to do a careful poll for all of our comments I do know that there's been some discussion of that in the broader community that some of the business schools are looking at data visualization and in some cases are leading the use of data visualization what I've had explained is that the tools that exist were often designed for the tech sector or business sectors in the first place so business schools are finding these as a natural fit their difficulty their challenge has been that those supporting these technologies are looking to repurpose them for other disciplines in the library and I would probably expect us to talk to some business librarians more directly and find how they are engaging in this work so I can't give you a good answer on that right now but it's well worth additional digging. Erin asks do you have any examples of libraries charging fees for services especially for publication related services? Nothing in the survey suggested there were such charges ongoing however let me reverse track here a number of the respondents made a point that funding that the library services are being provided for free that there was no cost recovery that said there are some digital scholarship centers that do have some form of chargeback model especially for work that involves a grant but this is again local it isn't a strong trend when it comes to digital publishing that still I'm still uncertain about that because those that I know who are trying to concentrate efforts for digital publishing within the library which at this point we have 23 ARL institutions with the libraries either reporting to or beginning to report to the I'm sorry press is reporting to the library directors we haven't heard enough about their engagement their cooperation with the digital scholarship effort or center that said I wouldn't be surprised if there will be some negotiation about payments but the ones who've been most strident most vocal have argued about open access so taking that in line we may be looking at APCs in many instances. Another question what about sustainability efforts are there any indication of how libraries are keeping these projects going five or ten years after it's been completed? The the also cut the answer would be that so few of the library supported projects are actually five years old but considering the work that's been going on at Brown, North Carolina State, Columbia for that matter from what I understand with the comments and also in some of our interviews sustainable sustainability is part of the project plan so I don't have any numbers for yet in terms of the number of projects that remain supported within the libraries anecdotally we can look at some of those coming from the University of Virginia that are supported by the scholars lab many of which have roots going back to the early 1990s and we can still find those projects online today now some do not work in full they're their full complement of features is no longer sustained because the technology has changed over time and I know that this is an active concern for the myth group at the University of Maryland in that they are looking at emulation software to try and maintain the ability to run earlier projects and look into the data but I don't I don't know in full detail what their strategies are for preserving a broad range especially when we have the technical challenges of well let's look at flash for instance that used to be one of the standards for animated visualization and is now no longer supported by so many technologies Erica asks in those organizations that don't have a DS center who seems to emerge as the point person for campus constituents as I understand looking at some of these in particular and I'm looking at the University of Florida and Florida State is two that have spoken with in detail in both instances they have the equivalence of digital humanity specialist or coordinator or director I need to look at their titles to be frank with you but they have one to two people who are the point for digital scholarship Duke University also comes to mind in having a digital scholarship librarian that works as a first point of contact or often works as a first point of contact and in many instances helps not provision the work but set up coordination or introductions or help the those who are sending inquiries understand where to go or who to work with and in other instances they're definitely doing some of the work or helping coordinate efforts of additional librarians that are available to them we have a follow-up comment on the question about business schools says that their business librarian is seeing a request for support for data mining and text analysis as well as visualization fantastic um did you get comments about campus wide funding and coordination to bring separate units together well it comes to the source of funds we did ask some questions and we understand that the support for digital scholarship is coming in many instances from the library's general budget first when it comes to when you're asking about funding do you mean funds to help bring these together as more coherent services in collaboration or just how the work is supported when it isn't using a chargeback or cost recovery system well we look for a reply there were there any institutions that implemented shared digital services such as sharing a data visualization specialist between their libraries or departments again in specific comments some suggest that there are individuals who are kind of floating so support the work of different units and can be called on by different libraries specialist libraries to engage in this effort um i'm thinking in particular that again or about a champagne i've heard of some of this and i believe Cornell as well but what we heard more of is that there are some who are using joint appointments so a library faculty who is also faculty in an English department or history department these seem to be the most common from the from the few i've seen this also matches some of the recent job postings and descriptions that are asking for this kind of unicorn that this person is expected to be a subject matter expert and to provide some measure of support broadly through the library but for those i guess asking most often for digital human and humanities or digital scholarship support in a department or allied series of departments um for going back to the funding question the answer was yes it's funding to bring about so the closest answer i have for you is that several institutions their own institutions in particular but also those outside have been using things like iMLS funds um melon seed funds to begin the development of centers brown is one in particular that uh i'd say brown the University of Connecticut a few other institutions that that uh you can do a quick google search as a matter of fact which i should do um i can think of the number of hits about 10 that i'd have to go dig out for you but the support's coming from grantors first however what i've heard is the requirement that there be matching funds available from the institution and that there be provision for this work not to be limited to say a two-year um clear fellow or a three-year uh visiting scholar that the plan is to use this to begin the development of the work and coordinate it to hire a new person to do an environmental survey and find out what kind of efforts are underway and what need greater coordination collaboration and then a very definite plan for recruitment to bring in a minimum number of uh staff of whatever rank to support this work well we've got several questions about staff um one is uh that an ALA accredited MLS used to be required for so many professional positions at air libraries are these openings hiring uh non-mls degree professionals as a matter of fact um a significant number are as you might see from just job postings right now um there has been a trend to ask in many instances for an MLS or MSIS first but to then ask for or to ask for the equivalent training in some instances both emphasizing experience is what i'd i'd note in these more fully um but what we found with the survey with our profiles is that about 53 of those profiles that we were given have an MA or an MS 67 percent actually have an MLIS for uh MS MS LAS i guess that said those two overlap but we have almost a quarter of these positions also having a PhD or having a PhD instead of the MLS or the MSIS so yes there is a trend especially going for humanities especially going for humanities faculty or former humanities faculty or the alt-ac community who've been trained to use these tools as part of research part of teaching and they're being brought into the libraries um i can't give you a hard number but i'm seeing more postings asking for this kind of shift honestly every week or two weeks through the you know the normal channels um and there's a question uh could you say some more about recruiting and staff challenges um and and what's working for recruiting i'm not sure we specifically ask that question but you've been talking to lots of this is where i'm in the field i apologize i'm falling entirely on uh talking to people at the the cni meetings or dlf or some of those who are running digital scholarship centers what they've told me and i'm afraid this may be one of our last questions um recruitment is or is is recruitment remains a challenge the difficulty is it requires someone of personality who wants to be in the research library who wants to be part of higher education because their digital skillset in many instances will draw a significantly higher paycheck if they're an industry that said those who have the phd seem to overlap here with the desire to maybe leave the classroom and do a combination of research and training in the libraries promote digital scholarship promote these these ways of doing work so what has shown up a number of cases is dedicated research time for those who've been hired to come in and support digital scholarship broadly that their work becomes part of the support their work becomes part of the profile and in many instances they are some of the first or foremost building new tools and exploring new methods that then they share with the rest of their staff or others in the library and that they can promote to their local faculty so that's one critical aspect um another seems to be the level of probably say the level of freedom they have to engage these pursuits so specific directors have talked about hiring people because they've already done research and they're already interested in presenting it further one example i might give you would be Amanda Visconti at Purdue University that was brought into the library after doing her uh her doctorate at University of Maryland as one of the she developed one of the first holy digital online dissertations so she's able to use her work as part of her education efforts as part of her outreach efforts for others on campus and i believe is part of the basis for developing a coherent digital humanities program in the near future we're about out of time i'm going to take one last question here uh they ask if we had any responses about consortia or multiple institutions working together on shared infrastructure or joint projects and i actually i would direct you to question 24 in the survey questions and responses section where we asked about partners and other libraries other agencies other societies we're asked about and i am seeing responses about consortia there yeah i can also augment that by emphasizing some are regionally located so for instance georgia is looking to develop something along the lines of a southeast uh virtual consortium that would engage not just a rail members say the university georgia georgia state but also emery and other institutions leveraging the range of potential players they have without trying to duplicate all skills in any one school another area doing this kind of regional work is uh southern california as a matter of fact a number of institutions small liberal arts colleges and major institutions research one throughout the los angeles area and beyond and from hearing they're looking to expend it beyond la to northern california in the future well thank you rick and thank all of you for joining us today to discuss the results of this survey on supporting digital scholarship uh you will receive uh slides and a link to the recording within the next week