Unsung Koha Heroes – 18

Glen Stewart

Glen Stewart was the first developer outside of Katipo to submit code to Koha. To this day, nearly 10 years later, the code he wrote for decoding cuecat barcodes is still being used. Glen was only involved in Koha for about 6 months but by being the first contributor outside of the original developers, he has a special place in the history of the project.

Playing with plackup

I spent a little time playing with plack again this weekend, first I benchmarked apache2.


Benchmarking opac.koha.workbuffer.org (be patient)
Server Software: Apache/2.2.12
Server Hostname: opac.koha.workbuffer.org
Server Port: 80
Document Path: /cgi-bin/koha/opac-main.pl
Document Length: 7754 bytes
Concurrency Level: 5
Time taken for tests: 356.021 seconds
Complete requests: 1000
Failed requests: 0
Write errors: 0
Total transferred: 8113454 bytes
HTML transferred: 7754000 bytes
Requests per second: 2.81 [#/sec] (mean)
Time per request: 1780.103 [ms] (mean)
Time per request: 356.021 [ms] (mean, across all concurrent requests)
Transfer rate: 22.26 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 4 6 2.7 5 51
Processing: 776 1773 291.0 1768 2648
Waiting: 767 1755 290.2 1741 2642
Total: 780 1779 291.2 1772 2661
Percentage of the requests served within a certain time (ms)
50% 1772
66% 1922
75% 1986
80% 2031
90% 2149
95% 2248
98% 2406
99% 2519
100% 2661 (longest request)

Then next with nginx and plack.


Benchmarking opac.koha.workbuffer.org (be patient)
Server Software: nginx/0.7.62
Server Hostname: opac.koha.workbuffer.org
Server Port: 82
Document Path: /cgi-bin/koha/opac-main.pl
Document Length: 7737 bytes
Concurrency Level: 5
Time taken for tests: 17.453 seconds
Complete requests: 1000
Failed requests: 0
Write errors: 0
Total transferred: 8087000 bytes
HTML transferred: 7737000 bytes
Requests per second: 57.30 [#/sec] (mean)
Time per request: 87.263 [ms] (mean)
Time per request: 17.453 [ms] (mean, across all concurrent requests)
Transfer rate: 452.51 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 3 7 3.6 7 22
Processing: 41 80 28.8 75 359
Waiting: 34 71 28.1 66 349
Total: 44 87 29.4 82 364
Percentage of the requests served within a certain time (ms)
50% 82
66% 92
75% 99
80% 104
90% 116
95% 125
98% 139
99% 222
100% 364 (longest request)

Kohacon10 presentation topics make me happy

The speakers page on the Kohacon website has been upated (Thanks Kristina) and since Jo did a great blog post about the presentations, which included her personal highlights, I thought I would do one too.

I agree with all of her choices, but wanted to add a couple more myself.

Anthony Ching-Chen Mao – Koha Taiwan

Anthony has been around Koha for a long time, using it, promoting it, translating it. In his talk he will be talking about a student organized volunteer group Library Service Team at the Department of Library and Information Science, Fu Jen Catholic University. Who since 2000, have helped more than 50 schools and local govt organisations set up their libraries. Since 2006 they have been deploying Koha in these libraries. They even set up Koha remotely across the Pacific at the library of the University of Belize.

If you send a team of dozen students to a remote Chinese county library, they do not only set up Koha but also show the patrons how to start a people’s library. I want to share our story about Koha, a Taiwanese primary school library and my lovely students.

Olugbenga Adara – Koha uptake in Nigeria: Prospects and challenges

Olugbenga Adara is a consultant on implementing open source software projects in Projektlink Konsult Ltd. He specialises in intranets, website design and library automation. He has served as a consultant to library automation projects at Bowen University Iwo, National Mathematical Centre Abuja, Cocoa Research Institute of Nigeria Ibadan and the Kwara State Government House Ilorin, all in Nigeria, among others.
In his talk he will be talking about the recent upsurge in uptake of Koha as the Library Management System of choice in Nigeria. At present, at least over 12 institutions have adopted Koha in Nigeria in the past 18 months. His presentation seeks to highlight the issues faced by the adopters and present a viewpoint from a developing country.

Presentations like this are ones that remind me of how much good people working together can achieve, who would seriously have thought a library system that started out in small town New Zealand, would be helping people in Taiwan, China, Belize, Nigeria ….

Useless statistics

So, I decided on a whim to work out how many of the 4668759 lines in Koha were last edited by each person. So using this

git ls-files | xargs -n1 -d'n' -i git blame {} | perl -n -e '/s((.*?)s[0-9]{4}/ && print "$1n"' | sort -f | uniq -c -w10 | sort -r

I then realised that as translation manager, I had the .po files credited to me so the numbers were too high, so I then ran

git ls-files -x *.po | xargs -n1 -d'n' -i git blame {} | perl -n -e '/s((.*?)s[0-9]{4}/ && print "$1n"' | sort -f | uniq -c -w10 | sort -r

To just get the numbers without the .po files

Without the .po the official master koha branch has  947177 lines broken down by person like this:

      1 brendan                                                                                                              
      1 David Bavousett                                                                                                      
      1 Frère Sébastien Marie                                                                                                
      1 lavide                                                                                                               
      1 Magnus Enger                                                                                                         
      1 QA Manager                                                                                                           
      1 Robin Sheat                                                                                                          
      1 Ryan HIggins                                                                                                         
      1 sergerenaux                                                                                                          
      2 James Winter                                                                                                         
      2 NYUHSL                                                                                                               
      3 acli                                                                                                                 
      3 Brendan A. Gallagher                                                                                                 
      3 Cindy Murdock Ames                                                                                                   
      3 Matthew Hunt                                                                                                         
      3 Nicolas Morin                                                                                                        
      4 kados                                                                                                                
      4 Koha User                                                                                                            
      4 Koustubha Kale                                                                                                       
      4 shedges                                                                                                              
      4 szrj1m                                                                                                               
      5 Marcel de Rooy                                                                                                       
      7 NCE                                                                                                                  
      8 Frédéric DEMIANS                                                                                                   
      8 Koha                                                                                                                 
      8 plugz                                                                                                                
      9 dnmeid                                                                                                               
     10 amit gupta                                                                                                           
     10 Nahuel Angelinetti                                                                                                   
     11 amillar                                                                                                              
     11 Chris                                                                                                                
     11 Stan Brinkerhoff                                                                                                     
     13 dnmeid                                                                                                               
     13 pate                                                                                                                 
     14 PTFS Contractor                                                                                                      
     14 tonnesen                                                                                                             
     15 toins                                                                                                                
     16 Chris Catalfo                                                                                                        
     17 Clay Fouts                                                                                                           
     17 Cory Jaeger                                                                                                          
     17 koha                                                                                                                 
     21 Daniel Sweeney                                                                                                       
     21 truth_nz                                                                                                             
     21 Vincent Danjean
     24 Koha Production                                                                                                      
     29 root                                                                                                                 
     35 koha                                                                                                                 
     36 Jared CAMINS-ESAKOV                                                                                                  
     36 PTFS                                                                                                                 
     39 stan                                                                                                                 
     40 Nahuel ANGELINETTI                                                                                                   
     42 Liz Rea                                                                                                              
     46 Srdjan Jankovic                                                                                                      
     48 Christopher Hyde                                                                                                     
     51 Brian Harrington                                                                                                     
     55 savitra.sirohi                                                                                                       
     59 Nahuel Angelinetti                                                                                                   
     67 Danny Bouman                                                                                                         
     68 pate                                                                                                                 
     69 DeAndre Carroll                                                                                                      
     71 genjimoto                                                                                                            
     71 hpassini                                                                                                             
     78 Ian Walls                                                                                                            
     81 Nahuel Angelinetti                                                                                                   
     87 slef                                                                                                                 
     98 alaurin                                                                                                              
     99 Sébastien Hinderer                                                                                                   
    120 Nahuel Angelinetti                                                                                                   
    129 Zeno Tajoli                                                                                                          
    130 David Birmingham                                                                                                     
    135 sushi                                                                                                                
    167 acli                                                                                                                 
    167 John Soros                                                                                                           
    168 Rick Welykochy                                                                                                       
    180 J. David Bavousett                                                                                                   
    190 wolfpac444                                                                                                           
    216 Wolfgang Heymans                                                                                                     
    229 btoumi                                                                                                               
    257 Will Stokes                                                                                                          
    258 doxulting                                                                                                            
    260 David Goldfein                                                                                                       
    265 Alex Arnaud                                                                                                          
    332 brendan                                                                                                              
    334 finlayt                                                                                                              
    335 Donovan Jones                                                                                                        
    342 plg                                                                                                                  
    364 Kyle Hall                                                                                                            
    366 rych                                                                                                                 
    382 Allen Reinmeyer
    494 Nahuel ANGELINETTI                                                                                                   
    522 Pianohacker                                                                                                          
    529 Darrell Ulm                                                                                                          
    529 joshferraro                                                                                                          
    537 bob_lyon                                                                                                             
    563 MJ Ray                                                                                                               
    615 tgarip1957                                                                                                           
    631 Paul Poulain                                                                                                         
    673 MJ Ray                                                                                                               
    684 arensb                                                                                                               
    754 kados                                                                                                                
    797 Marc Chantreux                                                                                                       
    890 Paul POULAIN                                                                                                         
    897 tonnesen                                                                                                             
    926 Mason James                                                                                                          
   1105 Kyle M Hall                                                                                                          
   1110 thd                                                                                                                  
   1185 Garry Collum                                                                                                         
   1275 Andrew Elwell                                                                                                        
   1480 paul                                                                                                                 
   1680 Nahuel ANGELINETTI                                                                                                   
   1853 root                                                                                                                 
   1918 oleonard                                                                                                             
   2148 John Beppu                                                                                                           
   2150 oleonard                                                                                                             
   2152 Stephen Edwards                                                                                                      
   2343 Jean-André Santoni                                                                                                   
   2469 Nicole Engard                                                                                                        
   2652 Colin Campbell                                                                                                       
   2923 Michael Hafen                                                                                                        
   2935 Ricardo Dias Marques                                                                                                 
   2968 acli                                                                                                                 
   3925 Ryan Higgins                                                                                                         
   4024 Lars Wirzenius                                                                                                       
   4317 Frédéric Demians                                                                                                     
   4720 Jesse Weaver                                                                                                         
   4831 Jane Wagner                                                                                                          
   4940 Matthias Meusburger                                                                                                  
   6003 hdl                                                                                                                  
   6198 toins                                                                                                                
  10333 Andrew Moore 
  11565 Ryan Higgins                                                                                                         
  17381 Joe Atzberger                                                                                                        
  21592 Henri-Damien LAURENT                                                                                                 
  27268 Chris Cormack                                                                                                        
  33829 Joshua Ferraro                                                                                                       
  36276 Russel Garlick                                                                                                       
  36947 Owen Leonard                                                                                                         
  42002 Galen Charlton                                                                                                       
  45025 Frederic Demians                                                                                                     
  46317 Katrin Fischer                                                                                                       
  48135 thd                                                                                                                  
  48371 Piotr Wejman                                                                                                         
  62207 Chris Nighswonger                                                                                                    
  85964 Paul Poulain                                                                                                         
 283600 Nahuel ANGELINETTI

Out of curiosity I did the same with PTFS’ Harley release which without the .po files is 603087 lines. Broken done by person it looks like

      1 brendan
      1 Frère Sébastien Marie
      1 hdl
      1 Paul Poulain
      1 QA Manager
      1 Ryan HIggins
      1 sergerenaux
      2 rangi
      3 Brendan A. Gallagher
      4 Andrei V. Toutoukine
      4 kados
      4 Koha User
      4 shedges
      4 szrj1m
      5 NCE
      6 lavide
      6 Magnus Enger
      6 oleonard
      6 root
      6 tipaul
      6 tipaul
      9 Frédéric DEMIANS
     11 amillar
     11 Chris
     11 dnmeid
     11 Stan Brinkerhoff
     12 James Winter
     12 Paul Poulain
     13 dnmeid
     13 pate
     13 Paul Poulain
     13 plugz
     14 tonnesen
     15 PTFS Contractor
     15 toins
     16 Chris Catalfo
     17 Clay Fouts
     17 Cory Jaeger
     17 David Bavousett
     19 Liz Rea
     20 Daniel Sweeney
     21 Ian Walls
     22 truth_nz
     22 Vincent Danjean
     24 Koha Production
     24 Nahuel ANGELINETTI
     31 kyletest
     34 Nahuel Angelinetti
     36 hdl
     39 stan
     43 Paul Poulain
     49 Ian Walls
     51 Brian Harrington
     52 Andrew Elwell
     52 Danny Bouman
     53 toins
     54 doxulting
     55 Christopher Hyde
     56 Arcadia Koha
     56 savitra.sirohi
     56 Zeno Tajoli
     59 Nahuel Angelinetti
     59 Paul POULAIN
     64 koha
     65 dev3
     71 DeAndre Carroll
     71 hpassini
     72 pate
     73 genjimoto
     91 Paul Poulain
     91 slef
     93 PTFS
    100 kyletest
    105 alaurin
    110 Sébastien Hinderer
    124 Katrin Fischer
    127 acli
    143 Matthias Meusburger
    156 toins
    167 acli
    171 Rick Welykochy
    188 Nahuel Angelinetti
    221 Wolfgang Heymans
    222 wolfpac444
    232 doxulting
    238 btoumi
    256 sushi
    295 David Goldfein
    365 Paul POULAIN
    368 rych
    379 finlayt
    416 Allen Reinmeyer
    451 acli
    485 Jean-André Santoni
    533 joshferraro
    541 MJ Ray
    564 plg
    579 Kyle Hall
    582 Darrell Ulm
    608 Kyle M Hall
    678 Mason James
   719 MJ Ray
    728 bob_lyon
    755 arensb
    762 Pianohacker
    794 Marc Chantreux
    943 kados
    946 Nahuel ANGELINETTI
    948 Garry Collum
    986 Nahuel ANGELINETTI
    989 Paul POULAIN
   1057 tonnesen
   1110 thd
   1181 tgarip1957
   1309 Nicole Engard
   1362 rangi
   1471 paul
   1722 Frédéric Demians
   1918 oleonard
   2161 John Beppu
   2278 Stephen Edwards
   2365 oleonard
   2421 acli
   2932 Michael Hafen
   2937 Ricardo Dias Marques
   3104 Paul POULAIN
   3452 David Birmingham
   3770 Colin Campbell
   3962 Ryan Higgins
   4648 Jesse Weaver
   4714 Paul POULAIN
   4967 Jane Wagner
   6490 hdl
   6517 PTFS
   7167 toins
   9670 J. David Bavousett
  10373 Paul POULAIN
  10706 tipaul
  10920 Andrew Moore
  10987 Henri-Damien LAURENT
  11886 Ryan Higgins
  18508 Joe Atzberger
  34379 Owen Leonard
  36286 Russel Garlick
  42306 Galen Charlton
  46674 Chris Cormack
  48135 thd
  48166 Joshua Ferraro
  50450 tipaul
  56119 Chris Nighswonger
  62542 Frederic Demians

Kohacon10 speakers confirmed

I have been working on finalising the programme for Kohacon10, and the good news is all except a couple of the presenters chosen have confirmed they will present.

Which means we have presenters confirmed from Nigeria, Taiwan, Pakistan, Malaysia, UK, France, USA, Australia and New Zealand. The conference will go up online in the next few days so be sure to check it out and register to come along.

http://www.kohacon10.org.nz

Looking out for your clients, long and short term

Over the years of working in software development I have come to realise that it is as important to look after your clients long term needs as it is their short term needs. It is something that is easily overlooked when you are in the throes of resolving issues that impact the client right here and now. But it is important that an equal amount of energy is spent on long term wellbeing as on getting the short term results.

In software engineering there is a concept called ‘Technical Debt’ it basically boils down to making choices that win you something in the short term, but you end up paying for in years to come. When working on a free software project this concept is still applicable, but an added dimension comes into play … lets call it ‘Social Debt’. There are often times you can make a decision that may afford you a short term gain, but may detrimentally impact the relationships with other members of the project. I posit that while Technical Debt is bad for the project as a whole, Social Debt usually hurts the debtor far more than the project. It is also far harder to recover from than Technical Debt.

Therefore I think it is in the best interests of any developers clients, that the developer takes care to not only make decisions that cause minimal Technical Debt, but also ones that cause minimal Social Debt.

Some libraries to thank

In the course of looking through the PTFS public repository with an eye to integrating the code into koha, I thought it would be nice to pull out a list of the libraries who had sponsored the code.

Apologies to anyone I have missed, and corrections accepted.

  • East Brunswick Public Library, East Brunswick, NJ, USA
  • Middletown Township Public Library, Middletown, NJ, USA
  • Plano Independent School district
  • George Washington’s Estate and Gardens (Mount Vernon) Library and Gunston Hall Library & Archives, Virginia.
  • Arcadia University.

So a big thanks to all these libraries.

Code hits the wild

PTFS have just made a lot of previously unreleased code available in their public repository

http://github.com/ptfs/Koha-PTFS

This includes the just released ‘Harley’ branch. It’s great to see the code seeing the light of day, and now the release management team will have the fun job of integrating it for 3.4.0.  🙂

Congratulations to the people at PTFS who worked hard to get this code written  and released, and I’m sure there will be many an hour spent discussing how best to integrate it into mainstream now.

I have cloned the harley branch and pushed to both my home and work repositories.

UPDATE

Thanks to the awesome Galen Charlton (current Koha release manager) we now have a wiki page tracking integration of the code into mainstream.

http://wiki.koha-community.org/wiki/PTFSHarleyIntegration

UPDATE 2

Some great clarification on Koha releases.

Unsung Koha heroes – Part 17

Pat Eyler

Us old timers will remember Pat well, but the newer members of the community will not have had the opportunity to meet him. Pat was the first Koha Kaitiaki, and did a huge amount to promote Koha and to foster a strong community. Pat first became involved in Koha in April 2002, and became the 8th person to commit code to Koha. In May 2002 Pat was elected Kaitiaki, some of the neat things he did in that role were

  • A monthly newsletter, which Nicole has now resurrected
  • Wrote and had published a 3 page article on Koha for the linux journal, published both online and in print.
  • Was first point of contact for press
  • Wrote the first scripts to allow koha to create RSS feeds
  • Hung out on irc answering hundreds of questions.

There is little doubt in my mind, that without Pat Koha would not have made such inroads in the US. I know that Pat spent quite a bit of time talking with Stephen Hedges when Athens County Public libraries were first looking at Koha.

Pat thank you for all the work you put in. We think of you often