<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-4916144632005734182</id><updated>2011-07-29T00:16:22.676-07:00</updated><category term='galen'/><category term='stimulus'/><category term='documentation'/><category term='news'/><category term='programming'/><category term='development'/><category term='opac'/><category term='3.2'/><category term='koha'/><category term='sponsor'/><category term='sed'/><category term='find'/><category term='ldap'/><category term='sql structure'/><category term='git'/><category term='unix'/><category term='tips'/><category term='grep'/><category term='coding'/><category term='history of koha'/><category term='random idea'/><category term='koha disaster recovery'/><category term='kohacon09'/><category term='sip2'/><category term='rfid'/><title type='text'>Danny's Blog</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://dbouman.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4916144632005734182/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://dbouman.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Danny</name><uri>http://www.blogger.com/profile/15452430811956884144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>28</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4916144632005734182.post-3337832113883520521</id><published>2010-08-26T08:32:00.001-07:00</published><updated>2010-08-26T08:45:19.219-07:00</updated><title type='text'>Customizing Unix Shell</title><content type='html'>A few tools that really make working in a unix shell more enjoyable.&lt;br /&gt;&lt;br /&gt;&lt;a href="https://launchpad.net/byobu"&gt;Byobu &lt;/a&gt;- Replaces "screen" for a screen with a more useful display&lt;br /&gt;&lt;br /&gt;Change .bashrc file to include the following&lt;br /&gt;&lt;pre class="brush: shell"&gt;&lt;br /&gt;# Shell colors&lt;br /&gt;export LS_OPTIONS='--color=auto'&lt;br /&gt;eval "`dircolors`"&lt;br /&gt;alias ls='ls $LS_OPTIONS'&lt;br /&gt;&lt;br /&gt;alias screen='byobu'&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Create .vimrc file to make working in VIM easier&lt;br /&gt;&lt;pre class="brush: shell"&gt;&lt;br /&gt;" URL: http://vim.wikia.com/wiki/Example_vimrc&lt;br /&gt;" Authors: http://vim.wikia.com/wiki/Vim_on_Freenode&lt;br /&gt;" Description: A minimal, but feature rich, example .vimrc. If you are a&lt;br /&gt;"              newbie, basing your first .vimrc on this file is a good choice.&lt;br /&gt;"              If you're a more advanced user, building your own .vimrc based&lt;br /&gt;"              on this file is still a good idea.&lt;br /&gt;&lt;br /&gt;"------------------------------------------------------------&lt;br /&gt;" Features {{{1&lt;br /&gt;"&lt;br /&gt;" These options and commands enable some very useful features in Vim, that&lt;br /&gt;" no user should have to live without.&lt;br /&gt;&lt;br /&gt;" Set 'nocompatible' to ward off unexpected things that your distro might&lt;br /&gt;" have made, as well as sanely reset options when re-sourcing .vimrc&lt;br /&gt;set nocompatible&lt;br /&gt;&lt;br /&gt;" Attempt to determine the type of a file based on its name and possibly its&lt;br /&gt;" contents.  Use this to allow intelligent auto-indenting for each filetype,&lt;br /&gt;" and for plugins that are filetype specific.&lt;br /&gt;filetype indent plugin on&lt;br /&gt;&lt;br /&gt;" Enable syntax highlighting&lt;br /&gt;syntax on&lt;br /&gt;&lt;br /&gt;" Set font according to system&lt;br /&gt;set gfn=Monospace\ 10&lt;br /&gt;set shell=/bin/bash&lt;br /&gt;&lt;br /&gt;if has("gui_running")&lt;br /&gt;  set guioptions-=T&lt;br /&gt;  set t_Co=256&lt;br /&gt;  set background=dark&lt;br /&gt;  colorscheme peaksea&lt;br /&gt;  set nonu&lt;br /&gt;else&lt;br /&gt;  colorscheme zellner&lt;br /&gt;  set background=dark&lt;br /&gt;&lt;br /&gt;  set nonu&lt;br /&gt;endif&lt;br /&gt;&lt;br /&gt;set encoding=utf8&lt;br /&gt;try&lt;br /&gt;    lang en_US&lt;br /&gt;catch&lt;br /&gt;endtry&lt;br /&gt;&lt;br /&gt;set ffs=unix,dos,mac "Default file types&lt;br /&gt;&lt;br /&gt;"------------------------------------------------------------&lt;br /&gt;" Must have options {{{1&lt;br /&gt;"&lt;br /&gt;" These are highly recommended options.&lt;br /&gt;&lt;br /&gt;" One of the most important options to activate. Allows you to switch from an&lt;br /&gt;" unsaved buffer without saving it first. Also allows you to keep an undo&lt;br /&gt;" history for multiple files. Vim will complain if you try to quit without&lt;br /&gt;" saving, and swap files will keep you safe if your computer crashes.&lt;br /&gt;set hidden&lt;br /&gt;&lt;br /&gt;" Better command-line completion&lt;br /&gt;set wildmenu&lt;br /&gt;&lt;br /&gt;" Show partial commands in the last line of the screen&lt;br /&gt;set showcmd&lt;br /&gt;&lt;br /&gt;" Highlight searches (use &amp;lt;C-L&amp;gt; to temporarily turn off highlighting; see the&lt;br /&gt;" mapping of &amp;lt;C-L&amp;gt; below)&lt;br /&gt;set hlsearch&lt;br /&gt;&lt;br /&gt;" Modelines have historically been a source of security vulnerabilities.  As&lt;br /&gt;" such, it may be a good idea to disable them and use the securemodelines&lt;br /&gt;" script, &amp;lt;http://www.vim.org/scripts/script.php?script_id=1876&amp;gt;.&lt;br /&gt;" set nomodeline&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;"------------------------------------------------------------&lt;br /&gt;" Usability options {{{1&lt;br /&gt;"&lt;br /&gt;" These are options that users frequently set in their .vimrc. Some of them&lt;br /&gt;" change Vim's behaviour in ways which deviate from the true Vi way, but&lt;br /&gt;" which are considered to add usability. Which, if any, of these options to&lt;br /&gt;" use is very much a personal preference, but they are harmless.&lt;br /&gt;&lt;br /&gt;" Use case insensitive search, except when using capital letters&lt;br /&gt;set ignorecase&lt;br /&gt;set smartcase&lt;br /&gt;&lt;br /&gt;" Allow backspacing over autoindent, line breaks and start of insert action&lt;br /&gt;set backspace=indent,eol,start&lt;br /&gt;&lt;br /&gt;" When opening a new line and no filetype-specific indenting is enabled, keep&lt;br /&gt;" the same indent as the line you're currently on. Useful for READMEs, etc.&lt;br /&gt;set autoindent&lt;br /&gt;&lt;br /&gt;" Stop certain movements from always going to the first character of a line.&lt;br /&gt;" While this behaviour deviates from that of Vi, it does what most users&lt;br /&gt;" coming from other editors would expect.&lt;br /&gt;set nostartofline&lt;br /&gt;&lt;br /&gt;" Display the cursor position on the last line of the screen or in the status&lt;br /&gt;" line of a window&lt;br /&gt;set ruler&lt;br /&gt;&lt;br /&gt;" Always display the status line, even if only one window is displayed&lt;br /&gt;set laststatus=2&lt;br /&gt;&lt;br /&gt;" Instead of failing a command because of unsaved changes, instead raise a&lt;br /&gt;" dialogue asking if you wish to save changed files.&lt;br /&gt;set confirm&lt;br /&gt;&lt;br /&gt;" No sound on errors&lt;br /&gt;set novisualbell&lt;br /&gt;set noerrorbells&lt;br /&gt;set t_vb=&lt;br /&gt;set tm=500&lt;br /&gt;&lt;br /&gt;" Enable use of the mouse for all modes&lt;br /&gt;set mouse=v&lt;br /&gt;&lt;br /&gt;" Set the command window height to 2 lines, to avoid many cases of having to&lt;br /&gt;" "press &amp;lt;Enter&amp;gt; to continue"&lt;br /&gt;set cmdheight=2&lt;br /&gt;&lt;br /&gt;" Display line numbers on the left&lt;br /&gt;" set number&lt;br /&gt;&lt;br /&gt;" Quickly time out on keycodes, but never time out on mappings&lt;br /&gt;set notimeout ttimeout ttimeoutlen=200&lt;br /&gt;&lt;br /&gt;" Use &amp;lt;F11&amp;gt; to toggle between 'paste' and 'nopaste'&lt;br /&gt;set pastetoggle=&amp;lt;F11&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;"------------------------------------------------------------&lt;br /&gt;" Indentation options {{{1&lt;br /&gt;"&lt;br /&gt;" Indentation settings according to personal preference.&lt;br /&gt;&lt;br /&gt;" Indentation settings for using 2 spaces instead of tabs.&lt;br /&gt;" Do not change 'tabstop' from its default value of 8 with this setup.&lt;br /&gt;set shiftwidth=2&lt;br /&gt;set softtabstop=2&lt;br /&gt;set expandtab&lt;br /&gt;&lt;br /&gt;" Indentation settings for using hard tabs for indent. Display tabs as&lt;br /&gt;" two characters wide.&lt;br /&gt;"set shiftwidth=2&lt;br /&gt;"set tabstop=2&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;"------------------------------------------------------------&lt;br /&gt;" Mappings {{{1&lt;br /&gt;"&lt;br /&gt;" Useful mappings&lt;br /&gt;&lt;br /&gt;" Map Y to act like D and C, i.e. to yank until EOL, rather than act as yy,&lt;br /&gt;" which is the default&lt;br /&gt;map Y y$&lt;br /&gt;&lt;br /&gt;" Map &amp;lt;C-L&amp;gt; (redraw screen) to also turn off search highlighting until the&lt;br /&gt;" next search&lt;br /&gt;nnoremap &amp;lt;C-L&amp;gt; :nohl&amp;lt;CR&amp;gt;&amp;lt;C-L&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;"------------------------------------------------------------&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4916144632005734182-3337832113883520521?l=dbouman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dbouman.blogspot.com/feeds/3337832113883520521/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dbouman.blogspot.com/2010/08/customizing-unix-shell.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4916144632005734182/posts/default/3337832113883520521'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4916144632005734182/posts/default/3337832113883520521'/><link rel='alternate' type='text/html' href='http://dbouman.blogspot.com/2010/08/customizing-unix-shell.html' title='Customizing Unix Shell'/><author><name>Danny</name><uri>http://www.blogger.com/profile/15452430811956884144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4916144632005734182.post-2780813887129554122</id><published>2010-04-26T08:44:00.000-07:00</published><updated>2010-04-26T08:51:14.488-07:00</updated><title type='text'>SQL to Search All Tables for Column Name</title><content type='html'>&lt;pre class="brush: sql"&gt;declare @search_string  varchar(50)&lt;br /&gt;&lt;br /&gt;set @search_string = ''&lt;br /&gt;&lt;br /&gt;SELECT table_name=sysobjects.name,&lt;br /&gt;column_name=syscolumns.name,&lt;br /&gt;datatype=systypes.name,&lt;br /&gt;length=syscolumns.length&lt;br /&gt;FROM sysobjects&lt;br /&gt;JOIN syscolumns ON sysobjects.id = syscolumns.id&lt;br /&gt;JOIN systypes ON syscolumns.xtype=systypes.xtype&lt;br /&gt;WHERE sysobjects.xtype='U'&lt;br /&gt;and syscolumns.name LIKE '%' + @search_string + '%'&lt;br /&gt;ORDER BY sysobjects.name,syscolumns.colid&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Credit to: &lt;a href="http://codesnippets.joyent.com/posts/show/337"&gt;http://codesnippets.joyent.com/posts/show/337&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4916144632005734182-2780813887129554122?l=dbouman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dbouman.blogspot.com/feeds/2780813887129554122/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dbouman.blogspot.com/2010/04/sql-to-search-all-tables-for-column.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4916144632005734182/posts/default/2780813887129554122'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4916144632005734182/posts/default/2780813887129554122'/><link rel='alternate' type='text/html' href='http://dbouman.blogspot.com/2010/04/sql-to-search-all-tables-for-column.html' title='SQL to Search All Tables for Column Name'/><author><name>Danny</name><uri>http://www.blogger.com/profile/15452430811956884144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4916144632005734182.post-1266976847247791867</id><published>2010-04-22T14:58:00.000-07:00</published><updated>2010-04-26T08:53:34.390-07:00</updated><title type='text'>SQL Query to Search All Tables for an INT</title><content type='html'>Here is a really good query I want to remember for searching all tables in a database for a specific integer.&lt;br /&gt;&lt;pre class="brush: sql"&gt;declare  @sql varchar(8000), @tbl varchar(255), @col varchar(255), @data  varchar(50)&lt;br /&gt;&lt;br /&gt;set @data = '249753'&lt;br /&gt;&lt;br /&gt;declare cur_tbl cursor for&lt;br /&gt;     select a.name, b.name from sysobjects a, syscolumns b, systypes c where a.id = b.id and a.type = 'U' and c.xtype = b.xtype and c.name in ( 'int' )&lt;br /&gt;open cur_tbl&lt;br /&gt;fetch next from cur_tbl into @tbl, @col&lt;br /&gt;while @@fetch_status = 0&lt;br /&gt;begin&lt;br /&gt;     set @sql = '&lt;br /&gt;                       if exists (select * from [' + @tbl + '] where convert( varchar(255), [' + @col + '] ) = ''' + @data + ''')&lt;br /&gt;                             select tbl=''' + @tbl + ''', col=''' + @col + ''', [' + @col + '], * from [' + @tbl + '] where convert( varchar(255), [' + @col + '] ) = ''' + @data + '''&lt;br /&gt;                       '&lt;br /&gt;     exec(@sql)&lt;br /&gt;&lt;br /&gt;     fetch next from cur_tbl into @tbl, @col&lt;br /&gt;end&lt;br /&gt;close cur_tbl&lt;br /&gt;deallocate cur_tbl&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Or to search for a string&lt;br /&gt;&lt;pre class="brush: sql"&gt;declare  @sql varchar(8000), @tbl varchar(255), @col varchar(255), @data  varchar(50)&lt;br /&gt;&lt;br /&gt;set @data = 'string you are looking for'&lt;br /&gt;&lt;br /&gt;declare cur_tbl cursor for&lt;br /&gt;      select a.name, b.name from sysobjects a, syscolumns b, systypes c where a.id = b.id and a.type = 'U' and c.xtype = b.xtype and c.name in ( 'varchar', 'nvarchar', 'text', 'ntext' )&lt;br /&gt;open cur_tbl&lt;br /&gt;fetch next from cur_tbl into @tbl, @col&lt;br /&gt;while @@fetch_status = 0&lt;br /&gt;begin&lt;br /&gt;      set @sql = '&lt;br /&gt;                        if exists (select * from [' + @tbl + '] where convert( varchar(255), [' + @col + '] ) like ''%' + @data + '%'')&lt;br /&gt;                              select tbl=''' + @tbl + ''', col=''' + @col + ''', [' + @col + '], * from [' + @tbl + '] where convert( varchar(255), [' + @col + '] ) like ''%' + @data + '%''&lt;br /&gt;                        '&lt;br /&gt;      exec(@sql)&lt;br /&gt;&lt;br /&gt;      fetch next from cur_tbl into @tbl, @col&lt;br /&gt;end&lt;br /&gt;close cur_tbl&lt;br /&gt;deallocate cur_tbl&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Credit to:  http://www.experts-exchange.com/Microsoft/Development/MS-SQL-Server/Q_24142162.html&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4916144632005734182-1266976847247791867?l=dbouman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dbouman.blogspot.com/feeds/1266976847247791867/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dbouman.blogspot.com/2010/04/sql-query-to-search-all-tables-for-int.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4916144632005734182/posts/default/1266976847247791867'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4916144632005734182/posts/default/1266976847247791867'/><link rel='alternate' type='text/html' href='http://dbouman.blogspot.com/2010/04/sql-query-to-search-all-tables-for-int.html' title='SQL Query to Search All Tables for an INT'/><author><name>Danny</name><uri>http://www.blogger.com/profile/15452430811956884144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4916144632005734182.post-3538083725390177523</id><published>2010-03-08T14:26:00.000-08:00</published><updated>2010-03-08T14:29:54.955-08:00</updated><title type='text'>AV2010 has gotten worse!</title><content type='html'>It was preventing me from installing Malwarebytes, and everytime I would run any program the virus would be started. I had to use the following registry fix:&lt;br /&gt;&lt;br /&gt;Windows Registry Editor Version 5.00&lt;br /&gt;&lt;br /&gt;[-HKEY_CURRENT_USER\Software\Classes\.exe]&lt;br /&gt;[-HKEY_CURRENT_USER\Software\Classes\secfile]&lt;br /&gt;[-HKEY_CLASSES_ROOT\secfile]&lt;br /&gt;[-HKEY_CLASSES_ROOT\.exe\shell\open\command]&lt;br /&gt;&lt;br /&gt;[HKEY_CLASSES_ROOT\.exe]&lt;br /&gt;@=”exefile”&lt;br /&gt;“Content Type”=”application/x-msdownload”&lt;br /&gt;&lt;br /&gt;Then save as fix.reg and run it. After restarting the PC I was able to install Malwarebytes Anti-malware and remove the viruses.&lt;br /&gt;&lt;br /&gt;Thanks to Kwisatz - http://www.virusremovalguru.com/?p=5528#comment-34676&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4916144632005734182-3538083725390177523?l=dbouman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dbouman.blogspot.com/feeds/3538083725390177523/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dbouman.blogspot.com/2010/03/av2010-has-gotten-worse.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4916144632005734182/posts/default/3538083725390177523'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4916144632005734182/posts/default/3538083725390177523'/><link rel='alternate' type='text/html' href='http://dbouman.blogspot.com/2010/03/av2010-has-gotten-worse.html' title='AV2010 has gotten worse!'/><author><name>Danny</name><uri>http://www.blogger.com/profile/15452430811956884144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4916144632005734182.post-2940773534691564180</id><published>2010-01-25T14:47:00.000-08:00</published><updated>2010-01-29T14:55:36.267-08:00</updated><title type='text'>Steps to creating a EBS image from an AMI (Windows)</title><content type='html'>Download &lt;a href="http://s3.amazonaws.com/ec2-downloads/ec2-api-tools.zip"&gt;Amazon's EC2 API Tools&lt;/a&gt; to C:\ec2-api-tools&lt;br /&gt;&lt;br /&gt;# Run the following on a remote machine with Amazon's EC2 API Tools installed&lt;br /&gt;# Adjust these variables to match your own system&lt;br /&gt;set EC2_HOME=c:\ec2-api-tools&lt;br /&gt;set JAVA_HOME=c:\Program Files\Java\jre6&lt;br /&gt;&lt;br /&gt;# Update PATH&lt;br /&gt;set PATH=%PATH%:c:\ec2-api-tools\bin&lt;br /&gt;&lt;br /&gt;#Test by running&lt;br /&gt;ec2-version&lt;br /&gt;# Output: 1.3-46266 2009-11-30&lt;br /&gt;&lt;br /&gt;# Add keys&lt;br /&gt;set EC2_PRIVATE_KEY=c:\aws-keys\pk-XXXXXXX.pem&lt;br /&gt;set EC2_CERT=c:\aws-keys\cert-XXXXXXX.pem&lt;br /&gt;&lt;br /&gt;# Use AWS Management Console&lt;br /&gt;# Create new instance based on existing AMI&lt;br /&gt;# Once instance is launch and running create a volume, make sure that the availability zone is the same as the instance, set device to /dev/sdh&lt;br /&gt;# Attach the volume to the instance&lt;br /&gt;# Connect to the instance using Putty&lt;br /&gt;# Create the following script&lt;br /&gt;vi instance-to-ebs-ami.sh&lt;br /&gt;&lt;pre class="brush: shell"&gt;&lt;br /&gt;#!/bin/bash&lt;br /&gt;# Run this script on the instance to be bundled&lt;br /&gt;# tested with Canonical Ubuntu 9.10 base ami&lt;br /&gt;&lt;br /&gt;EBS_DEVICE=${1:-'/dev/sdh'}&lt;br /&gt;IMAGE_DIR=${2:-'/mnt/tmp'}&lt;br /&gt;EBS_MOUNT_POINT=${3:-'/mnt/ebs'}&lt;br /&gt;&lt;br /&gt;mkdir -p $EBS_MOUNT_POINT&lt;br /&gt;mkfs.ext3 ${EBS_DEVICE}&lt;br /&gt;mount ${EBS_DEVICE} $EBS_MOUNT_POINT&lt;br /&gt;&lt;br /&gt;#make a local working copy&lt;br /&gt;mkdir /mnt/tmp&lt;br /&gt;rsync --stats -av --exclude /root/.bash_history --exclude /home/*/.bash_history --exclude /etc/ssh/ssh_host_* --exclude /etc/ssh/moduli --exclude /etc/udev/rules.d/*persistent-net.rules --exclude /var/lib/ec2/* --exclude=/mnt/* --exclude=/proc/* --exclude=/tmp/* / $IMAGE_DIR&lt;br /&gt;&lt;br /&gt;#ensure that ami init scripts will be run&lt;br /&gt;chmod u+x $IMAGE_DIR/etc/init.d/ec2-init-user-data&lt;br /&gt;&lt;br /&gt;#clear out log files&lt;br /&gt;cd $IMAGE_DIR/var/log&lt;br /&gt;for i in `ls ./**/*`; do&lt;br /&gt;echo $i &amp;amp;&amp;amp; echo -n&gt; $i&lt;br /&gt;done&lt;br /&gt;&lt;br /&gt;cd $IMAGE_DIR&lt;br /&gt;tar -cSf - -C ./ . | tar xvf - -C $EBS_MOUNT_POINT&lt;br /&gt;#NOTE, You could rsync / directly to EBS_MOUNT_POINT, but this tar trickery saves some space in the snapshot&lt;br /&gt;&lt;br /&gt;umount $EBS_MOUNT_POINT&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;chmod +x instance-to-ebs-ami.sh&lt;br /&gt;./instance-to-ebs-ami.sh&lt;br /&gt;exit&lt;br /&gt;&lt;br /&gt;# Go back to AWS Management Console&lt;br /&gt;# Detach the volume&lt;br /&gt;# Create a snapshot of the volume&lt;br /&gt;&lt;br /&gt;# Now, we register the snapshot to be able to create an EBS image&lt;br /&gt;# Run this command from your remote machine with Amazon's EC2 API Tools installed&lt;br /&gt;# Fill in the required variables&lt;br /&gt;&lt;pre class="brush: shell"&gt;&lt;br /&gt;ec2-register --snapshot snap-xxxxxx --kernel aki-xxxxxxx --ramdisk ari-xxxxxxxx --description="" --name="debian-5.0-lenny-base-20091011" --architecture i386 --root-device-name /dev/sda1&lt;br /&gt;#sample output =&gt; IMAGE ami-xxxxxxx&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;References/Credits:&lt;br /&gt;&lt;a href="http://www.capsunlock.net/2009/12/create-ebs-boot-ami.html"&gt;http://www.capsunlock.net/2009/12/create-ebs-boot-ami.html&lt;/a&gt;&lt;br /&gt;&lt;a href="http://gist.github.com/249915"&gt;http://gist.github.com/249915&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Try this script for creating automated snapshots:&lt;br /&gt;&lt;a href="http://developer.amazonwebservices.com/connect/entry.jspa?categoryID=100&amp;amp;externalID=1663"&gt;http://developer.amazonwebservices.com/connect/entry.jspa?categoryID=100&amp;amp;externalID=1663&lt;/a&gt;&lt;br /&gt;or&lt;br /&gt;&lt;a href="http://johnwoconnor.blogspot.com/2009/06/automatic-volume-snapshots-using-amazon.html"&gt;http://johnwoconnor.blogspot.com/2009/06/automatic-volume-snapshots-using-amazon.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4916144632005734182-2940773534691564180?l=dbouman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dbouman.blogspot.com/feeds/2940773534691564180/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dbouman.blogspot.com/2010/01/untested-steps-to-creating-ebs-image.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4916144632005734182/posts/default/2940773534691564180'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4916144632005734182/posts/default/2940773534691564180'/><link rel='alternate' type='text/html' href='http://dbouman.blogspot.com/2010/01/untested-steps-to-creating-ebs-image.html' title='Steps to creating a EBS image from an AMI (Windows)'/><author><name>Danny</name><uri>http://www.blogger.com/profile/15452430811956884144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4916144632005734182.post-8311829694896934271</id><published>2009-07-17T13:05:00.001-07:00</published><updated>2009-07-17T13:57:00.802-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='git'/><title type='text'>Creating a Remote Git Repo</title><content type='html'>Here are some steps I used to create a remote Git repo based on my local files.&lt;br /&gt;&lt;br /&gt;Create the folder for the new application and change to that directory.&lt;br /&gt;&lt;span style="font-style: italic;font-size:85%;" &gt;&gt; mkdir /var/www/html/newapp&lt;br /&gt;&gt; cd /var/www/html/new&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-style: italic;"&gt;app&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Make sure git is installed, if not install it&lt;br /&gt;&lt;span style="font-style: italic;font-size:85%;" &gt;&gt; sudo apt-get install git-core git-doc&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Initialize the folder to become a git directory&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-style: italic;"&gt;&gt; git init&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;********* Now switch to your local files ***********&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-style: italic;"&gt;&gt; cd ~/myapp&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Initialize git with the local folder as well&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-style: italic;"&gt;&gt;git init&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Tell git about yourself&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-style: italic;"&gt;&gt;git config user.name "Your Name"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&gt;git config user.email "Your Email"&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Now, tell git which server to talk too&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-style: italic;"&gt;&gt;git remote add origin username@yourdomain.com:/var/www/html/newapp/.git&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;Make sure that this user has SSH access to the box.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-style: italic;"&gt;&gt;git config branch.master.remote origin&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&gt;git config branch.master.merge refs/heads/master&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Make your initial commit and push it to the remote server.&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-style: italic;"&gt;&gt;git commit -a -m "Initial commit"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&gt;git push origin master&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;And viola! Your files will be pushed to the remote server. Now, I was wondering why when I went to access the server, the files didn't seem to be in the working directory, even though I could see the log showed my Initial commit. It turns out that when things are pushed to master, they enter a limbo state. You have to do a &lt;span style="font-size:85%;"&gt;&lt;span style="font-style: italic;"&gt;git checkout -f&lt;/span&gt;&lt;/span&gt;, to actual have the commit become live. Note that doing a &lt;span style="font-size:85%;"&gt;&lt;span style="font-style: italic;"&gt;git checkout -f&lt;/span&gt;&lt;/span&gt;, will throw away any changes that have been made on the remote server.&lt;br /&gt;&lt;br /&gt;To make the updating of the server easier, you can do the following:&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-style: italic;"&gt;&gt; vi /var/www/html/newapp/.git/hooks/post-receive&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Add - git checkout -f&lt;br /&gt;Save the file&lt;br /&gt;&lt;span style="font-style: italic;font-size:85%;" &gt;&gt;chmod +x /var/www/html/newapp/.git/hooks/post-receive&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4916144632005734182-8311829694896934271?l=dbouman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dbouman.blogspot.com/feeds/8311829694896934271/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dbouman.blogspot.com/2009/07/creating-remote-git-repo.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4916144632005734182/posts/default/8311829694896934271'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4916144632005734182/posts/default/8311829694896934271'/><link rel='alternate' type='text/html' href='http://dbouman.blogspot.com/2009/07/creating-remote-git-repo.html' title='Creating a Remote Git Repo'/><author><name>Danny</name><uri>http://www.blogger.com/profile/15452430811956884144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4916144632005734182.post-4851908696764417648</id><published>2009-07-13T08:32:00.000-07:00</published><updated>2009-07-13T08:35:06.364-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tips'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>2 Good articles for programmers</title><content type='html'>&lt;span style="font-weight: bold;"&gt;5 Tips for creating good code every day; or how to become a good software developer&lt;/span&gt;&lt;br /&gt;&lt;a href="http://www.makinggoodsoftware.com/2009/05/15/5-tips-for-creating-good-code-every-day-how-to-become-a-good-software-developer/"&gt;http://www.makinggoodsoftware.com/2009/05/15/5-tips-for-creating-good-code-every-day-how-to-become-a-good-software-developer/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;5 Top non-technical mistakes made by programmers&lt;/span&gt;&lt;br /&gt;&lt;a href="http://www.makinggoodsoftware.com/2009/07/07/5-top-non-technical-mistakes-made-by-programmers/"&gt;http://www.makinggoodsoftware.com/2009/07/07/5-top-non-technical-mistakes-made-by-programmers/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4916144632005734182-4851908696764417648?l=dbouman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dbouman.blogspot.com/feeds/4851908696764417648/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dbouman.blogspot.com/2009/07/2-good-articles-for-programmers.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4916144632005734182/posts/default/4851908696764417648'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4916144632005734182/posts/default/4851908696764417648'/><link rel='alternate' type='text/html' href='http://dbouman.blogspot.com/2009/07/2-good-articles-for-programmers.html' title='2 Good articles for programmers'/><author><name>Danny</name><uri>http://www.blogger.com/profile/15452430811956884144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4916144632005734182.post-3013831132481169977</id><published>2009-06-26T13:53:00.000-07:00</published><updated>2009-07-13T08:31:59.690-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='documentation'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='coding'/><title type='text'>Read-optimize your source code</title><content type='html'>A good article about writing well-written code that will make it easy for other developers to quickly understand your code.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.brendel.com/consulting/blog/2009/06/read-optimized-source-code.html"&gt;http://www.brendel.com/consulting/blog/2009/06/read-optimized-source-code.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4916144632005734182-3013831132481169977?l=dbouman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dbouman.blogspot.com/feeds/3013831132481169977/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dbouman.blogspot.com/2009/06/re-blogging-read-optimize-your-source.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4916144632005734182/posts/default/3013831132481169977'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4916144632005734182/posts/default/3013831132481169977'/><link rel='alternate' type='text/html' href='http://dbouman.blogspot.com/2009/06/re-blogging-read-optimize-your-source.html' title='Read-optimize your source code'/><author><name>Danny</name><uri>http://www.blogger.com/profile/15452430811956884144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4916144632005734182.post-8919700982859989302</id><published>2009-06-26T13:49:00.000-07:00</published><updated>2009-06-26T13:53:35.615-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='find'/><category scheme='http://www.blogger.com/atom/ns#' term='tips'/><category scheme='http://www.blogger.com/atom/ns#' term='grep'/><category scheme='http://www.blogger.com/atom/ns#' term='unix'/><title type='text'>Another useful unix command to find text in many files</title><content type='html'>&lt;span style="font-weight: bold;"&gt;find . -type f -exec grep -il "text to find" {} \;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Will give you a list of all the files that contain "text to find", starting with your current directory and searching all sub-directories.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4916144632005734182-8919700982859989302?l=dbouman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dbouman.blogspot.com/feeds/8919700982859989302/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dbouman.blogspot.com/2009/06/another-useful-unix-command-to-find.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4916144632005734182/posts/default/8919700982859989302'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4916144632005734182/posts/default/8919700982859989302'/><link rel='alternate' type='text/html' href='http://dbouman.blogspot.com/2009/06/another-useful-unix-command-to-find.html' title='Another useful unix command to find text in many files'/><author><name>Danny</name><uri>http://www.blogger.com/profile/15452430811956884144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4916144632005734182.post-584694637000170149</id><published>2009-06-09T13:32:00.001-07:00</published><updated>2009-06-26T13:53:48.660-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='find'/><category scheme='http://www.blogger.com/atom/ns#' term='tips'/><category scheme='http://www.blogger.com/atom/ns#' term='unix'/><category scheme='http://www.blogger.com/atom/ns#' term='sed'/><title type='text'>Useful unix command to find and replace text in many files</title><content type='html'>Here is a useful unix command I used today to find and replace text across multiple files and multiple directories.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;find . -type f -exec sed -i "s/&lt;/span&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;string1&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;/&lt;/span&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;string2&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;/g" {} \;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This will replace all instances of &lt;span style="font-style: italic;"&gt;string1 &lt;/span&gt;with &lt;span style="font-style: italic;"&gt;string2&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;Credit to &lt;a href="http://www.google.com/"&gt;Google &lt;/a&gt;and &lt;a href="http://www.sb.fsu.edu/%7Esoma/Proj/How-to/Search+Replace.pdf"&gt;http://www.sb.fsu.edu/~soma/Proj/How-to/Search+Replace.pdf&lt;/a&gt; for helping me figure this out.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4916144632005734182-584694637000170149?l=dbouman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dbouman.blogspot.com/feeds/584694637000170149/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dbouman.blogspot.com/2009/06/useful-unix-command-to-find-and-replace.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4916144632005734182/posts/default/584694637000170149'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4916144632005734182/posts/default/584694637000170149'/><link rel='alternate' type='text/html' href='http://dbouman.blogspot.com/2009/06/useful-unix-command-to-find-and-replace.html' title='Useful unix command to find and replace text in many files'/><author><name>Danny</name><uri>http://www.blogger.com/profile/15452430811956884144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4916144632005734182.post-8214173053638641366</id><published>2009-05-06T12:16:00.000-07:00</published><updated>2009-05-06T14:45:45.233-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='koha'/><title type='text'>Koha April, 7th meeting</title><content type='html'>Galen plans to do a feature freeze at the end of August and release 3.2 at the end of October.&lt;br /&gt;&lt;br /&gt;Before June we should be able to test BibLibre's acq work and Liblime will be reporting on there development work.&lt;br /&gt;&lt;br /&gt;Galen will be doing a Release Manager  blog for Koha 3.2. If Nicole has time she will take a first stab at improving the Koha User list welcome message to include a good Koha FAQ and links to helpful tips and guides.&lt;br /&gt;&lt;br /&gt;hdl mentioned that Bugzilla can accept emails...interesting, I will have to look into this and see if it can improve my workflow in tracking and dealing with bugs.&lt;br /&gt;&lt;br /&gt;All new enhancements will be tracked using Bugzilla in order to keep everything in one place. This will help the community be better informed about what other Koha libraries are sponsoring and what developers are working on.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4916144632005734182-8214173053638641366?l=dbouman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dbouman.blogspot.com/feeds/8214173053638641366/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dbouman.blogspot.com/2009/05/koha-april-7th-meeting.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4916144632005734182/posts/default/8214173053638641366'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4916144632005734182/posts/default/8214173053638641366'/><link rel='alternate' type='text/html' href='http://dbouman.blogspot.com/2009/05/koha-april-7th-meeting.html' title='Koha April, 7th meeting'/><author><name>Danny</name><uri>http://www.blogger.com/profile/15452430811956884144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4916144632005734182.post-1056384099208486257</id><published>2009-04-28T14:54:00.000-07:00</published><updated>2009-04-28T14:59:35.626-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='random idea'/><title type='text'>Random Idea: Have PACMon manage computer updates</title><content type='html'>Writing this down so I don't forget.&lt;br /&gt;&lt;br /&gt;Have PACMon display a list of each upgrade that a PAC needs, and include a way of ignoring certain updates, with option of viewing the ignore list. Then click upgrade and it will automatically send message to the PACs to get updates. Also include display of seeing which PACs need which updates. These tasks would be perfomed using apt and could include custom repositories if special versions of software are required.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4916144632005734182-1056384099208486257?l=dbouman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dbouman.blogspot.com/feeds/1056384099208486257/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dbouman.blogspot.com/2009/04/random-idea-have-pacmon-manage-computer.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4916144632005734182/posts/default/1056384099208486257'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4916144632005734182/posts/default/1056384099208486257'/><link rel='alternate' type='text/html' href='http://dbouman.blogspot.com/2009/04/random-idea-have-pacmon-manage-computer.html' title='Random Idea: Have PACMon manage computer updates'/><author><name>Danny</name><uri>http://www.blogger.com/profile/15452430811956884144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4916144632005734182.post-4029264060879186105</id><published>2009-04-22T12:31:00.000-07:00</published><updated>2009-04-22T12:41:32.494-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='galen'/><category scheme='http://www.blogger.com/atom/ns#' term='news'/><category scheme='http://www.blogger.com/atom/ns#' term='koha'/><title type='text'>Post-KohaCon news</title><content type='html'>From Galen Charlton,&lt;br /&gt;&lt;ul&gt;&lt;li&gt;(Re)starting a weekly update newsletter for changes to Koha 3.2&lt;/li&gt;&lt;li&gt;[Galen] will be calling a monthly IRC meeting to discuss the status of Koha development. The next meeting will be Wednesday, 6 May 2009 at 19:00 UTC.&lt;/li&gt;&lt;li&gt;Making some improvements to using the bug database to record who is working on various bugs and enhancements.&lt;/li&gt;&lt;li&gt;Setting a convention to tag regressions so that they get a higher priority for bugfixes.&lt;/li&gt;&lt;li&gt;Making use of the bug voting feature in Bugzilla to help Koha users and contributors prioritize bugs.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4916144632005734182-4029264060879186105?l=dbouman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dbouman.blogspot.com/feeds/4029264060879186105/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dbouman.blogspot.com/2009/04/post-kohacon-news.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4916144632005734182/posts/default/4029264060879186105'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4916144632005734182/posts/default/4029264060879186105'/><link rel='alternate' type='text/html' href='http://dbouman.blogspot.com/2009/04/post-kohacon-news.html' title='Post-KohaCon news'/><author><name>Danny</name><uri>http://www.blogger.com/profile/15452430811956884144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4916144632005734182.post-1360301550733391873</id><published>2009-04-22T12:06:00.000-07:00</published><updated>2009-04-22T12:30:28.981-07:00</updated><title type='text'>Can you help Koha?</title><content type='html'>The Koha project is seeking:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Quality Assurance manager(s)&lt;/span&gt;, to review all patches that are sent in to uphold a particular level of quality among the Koha code base. It was suggested that perhaps this be a funded position through an organization or the &lt;a href="http://kudos.koha.org/"&gt;KUDOS &lt;/a&gt;user group since it would take a significant amount of time. It was also suggested that if a QA manager can not be found that developers do more peer review and sign-off on each others patches.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Bug wrangler(s)&lt;/span&gt;, to review the bugs at &lt;a href="http://bugs.koha.org"&gt;http://bugs.koha.org&lt;/a&gt; and make sure that old bugs are closed and all bugs are valid. The number of open bugs listed at the Koha bugzilla site is currently 827.&lt;/li&gt;&lt;li&gt;Funding or development of &lt;span style="font-weight: bold;"&gt;core code re-factoring&lt;/span&gt;, to clean existing Koha structure, make the entire development process more efficient, and increase code speed and readability. It is hard to find a specific library to want to sponsor an enhancement that would be something that only takes place behind the scenes, so it was suggested that this may fall to a group like the KUDOS user group. &lt;/li&gt;&lt;/ul&gt;These are just a few of the major roles that the Koha project is looking to fill. The project can always use more developers, documentation writers, translators, bug testers, and community adovocates. Anyone looking for more information on getting involved in the Koha project can visit &lt;a href="http://wiki.koha.org/doku.php"&gt;http://wiki.koha.org/doku.php&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4916144632005734182-1360301550733391873?l=dbouman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dbouman.blogspot.com/feeds/1360301550733391873/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dbouman.blogspot.com/2009/04/can-you-help-koha.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4916144632005734182/posts/default/1360301550733391873'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4916144632005734182/posts/default/1360301550733391873'/><link rel='alternate' type='text/html' href='http://dbouman.blogspot.com/2009/04/can-you-help-koha.html' title='Can you help Koha?'/><author><name>Danny</name><uri>http://www.blogger.com/profile/15452430811956884144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4916144632005734182.post-4107168205204551519</id><published>2009-04-19T12:55:00.000-07:00</published><updated>2009-04-19T12:56:20.278-07:00</updated><title type='text'>FRBR Diagram</title><content type='html'>FRBR diagram  from code4lib - http://www.frbr.org/files/frbr-er-diagram-5.png&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4916144632005734182-4107168205204551519?l=dbouman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dbouman.blogspot.com/feeds/4107168205204551519/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dbouman.blogspot.com/2009/04/frbr-diagram.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4916144632005734182/posts/default/4107168205204551519'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4916144632005734182/posts/default/4107168205204551519'/><link rel='alternate' type='text/html' href='http://dbouman.blogspot.com/2009/04/frbr-diagram.html' title='FRBR Diagram'/><author><name>Danny</name><uri>http://www.blogger.com/profile/15452430811956884144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4916144632005734182.post-6521180013662839867</id><published>2009-04-19T11:38:00.000-07:00</published><updated>2009-04-19T12:55:23.998-07:00</updated><title type='text'>Koha Thinking Outside the Box</title><content type='html'>Do we need MARC records? We do need the ability to import and edit in MARC record format, by why do we store it in the database in that format? In this day and age where searching technology has advanced considerably, why are we still cataloging in a format that hinders search results and is much more time consuming then taking a Google approach and doing a full-text type search.&lt;br /&gt;&lt;br /&gt;Caching would greatly improve performance. Using memcached would greatly increase this because it would store more information in memory. Nginx is a substitute to apache and apparently works very well with memcached and also would increase performance. Nginx talks directly to kernel and we be incredibly fast at serving static content. The NY Times profiler is a great tool to take a look where are the slow areas of a project. It would be great if someone could intstrument a way to make it easy to run the profiler against Koha. Idea for re-writing major dependcies of Koha like MARC and re-submitting it to CPAN. Using Yslow with Firebug extension is a good one to help determine what is taking a long time to load for front-end web sites.&lt;br /&gt;&lt;br /&gt;Switch the sessions and zebraqueue table to MyISAM because innodb never shrinks an only grows and grows.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4916144632005734182-6521180013662839867?l=dbouman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dbouman.blogspot.com/feeds/6521180013662839867/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dbouman.blogspot.com/2009/04/koha-thinking-outside-box.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4916144632005734182/posts/default/6521180013662839867'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4916144632005734182/posts/default/6521180013662839867'/><link rel='alternate' type='text/html' href='http://dbouman.blogspot.com/2009/04/koha-thinking-outside-box.html' title='Koha Thinking Outside the Box'/><author><name>Danny</name><uri>http://www.blogger.com/profile/15452430811956884144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4916144632005734182.post-2052101632420043681</id><published>2009-04-19T11:01:00.000-07:00</published><updated>2009-04-19T11:20:17.589-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='kohacon09'/><category scheme='http://www.blogger.com/atom/ns#' term='development'/><category scheme='http://www.blogger.com/atom/ns#' term='koha'/><category scheme='http://www.blogger.com/atom/ns#' term='sponsor'/><title type='text'>Koha Sponsoring Discussion</title><content type='html'>This is a late post, but I wanted to write down some information from the sponsorship talk that occurred on the last session of the Koha Con users conference(April 17, 2009).&lt;br /&gt;&lt;br /&gt;There was a heated discussion in regards to the best way for the community to get better about informing each other what projects are being sponsored and how best to do resource sharing. It was agreed upon that the community would use the existing to Bugzilla (http://bugs.koha.org) to input enhancement work and sponsored development. Since Bugzilla doesn't include fields for all the information we'd like to see about sponsored development features it was suggested that there be a sort of template/example bug placed so that others could see all the information that needed to be included into the comments field.&lt;br /&gt;&lt;br /&gt;Many people are hoping that with this method if someone doesn't have money to sponsor development or would like to help partially fund a development it will make it possible for others who are also interested in the idea the add feedback or even contribute.&lt;br /&gt;&lt;br /&gt;I like this idea, however, ultimately I would like to see a better tool developed as it could have a very positive impact on the Koha community. If there were a way for vendors to bid on features directly from this tool and a way for libraries or individuals to contribute to the feature right from the browser, it would just make the entire process much easier and efficient. You would be able to have a meter or similar feature to say something like, "Only $200 left needed to sponsors this project". It will also make it easy for people to vote and make certain feature requests more of a higher priority without having to search through the thousands of bugs in bugzilla. This type of system could also have a method for people to say I have $1000 to offer for this project, who would be interested in developing it.&lt;br /&gt;&lt;br /&gt;Does this type of service exist anywhere is there any type of open source tool similar? Could this be a website with support for many different projects to organize their development efforts?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4916144632005734182-2052101632420043681?l=dbouman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dbouman.blogspot.com/feeds/2052101632420043681/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dbouman.blogspot.com/2009/04/koha-sponsoring-discussion.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4916144632005734182/posts/default/2052101632420043681'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4916144632005734182/posts/default/2052101632420043681'/><link rel='alternate' type='text/html' href='http://dbouman.blogspot.com/2009/04/koha-sponsoring-discussion.html' title='Koha Sponsoring Discussion'/><author><name>Danny</name><uri>http://www.blogger.com/profile/15452430811956884144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4916144632005734182.post-7649715383423757320</id><published>2009-04-19T07:09:00.000-07:00</published><updated>2009-04-19T08:09:28.627-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='kohacon09'/><category scheme='http://www.blogger.com/atom/ns#' term='development'/><category scheme='http://www.blogger.com/atom/ns#' term='tips'/><category scheme='http://www.blogger.com/atom/ns#' term='koha'/><title type='text'>Koha Dev Workflow Tips and Tricks</title><content type='html'>&lt;p&gt;pieces "borrowered" from &lt;a href="http://blogs.liblime.com/developers/2009/04/19/tips-tricks-from-koha-developers/"&gt;Nicole Engard&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;blog post&lt;/a&gt; (thank you!)&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-weight: bold;"&gt;Git&lt;/span&gt;&lt;br /&gt;Chris - Git has a built in garbage collector $ git gc - if you run it after creating a branch and before checking it out, makes switch branches much faster (make a branch, run this and then checkout the branch).  &lt;/p&gt; &lt;p&gt;Joe - has a script he makes on different servers that he uses to get his shell to where he wants it to be for testing, it sets his self created variables and standard values (&lt;a href="http://blogs.liblime.com/developers/2009/04/19/simple-shell-trick/"&gt;http://blogs.liblime.com/developers/2009/04/19/simple-shell-trick/&lt;/a&gt;).  Also he posted a good tip on the LibLime blog: &lt;a href="http://blogs.liblime.com/developers/2009/04/10/simple-git-trick-for-bash/"&gt;http://blogs.liblime.com/developers/2009/04/10/simple-git-trick-for-bash/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Galen - One of the things that he does since he can’t claim to have the visual design skills that Owen does - he has become a real stickler about the HTML that is on the OPAC &amp;amp; Staff client - making it appear as XHTML.  There are tools in Firefox that can make for a good development environment: Fire Bug, for validation the HTML validator plugin in excellent at doing it quickly without submitting your site to an online validator, Firefox accessibility plugin lets you run automated tests against your site to meet requirements for ADA, Also the web developer plugin, Yahoo! Dev tools are slow, but they provide valuable info.  Something that is useful, but not a dev tool, is the Zotero plugin (citation manager) &lt;a href="http://www.zotero.org/"&gt;www.zotero.org&lt;/a&gt; — geared toward people to do lots of research online.&lt;br /&gt;&lt;/p&gt;&lt;span style="font-weight: bold;"&gt;Unix&lt;/span&gt;&lt;br /&gt;-screen command very useful! Look up example .screenrc files&lt;br /&gt;-cluster ssh, ability to have multiple ssh sessions open and run all commands at same time &lt;a href="http://sourceforge.net/projects/clusterssh/"&gt;http://sourceforge.net/projects/clusterssh/&lt;/a&gt;&lt;br /&gt;-sshfs mount a remote file system&lt;br /&gt;-nohup will run script in the background which is good for like doing a zebra rebuild in case your ssh session gets disconnected&lt;br /&gt;&lt;br /&gt;grep for file and | to xargs&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4916144632005734182-7649715383423757320?l=dbouman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dbouman.blogspot.com/feeds/7649715383423757320/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dbouman.blogspot.com/2009/04/general-koha-tips-and-tricks.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4916144632005734182/posts/default/7649715383423757320'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4916144632005734182/posts/default/7649715383423757320'/><link rel='alternate' type='text/html' href='http://dbouman.blogspot.com/2009/04/general-koha-tips-and-tricks.html' title='Koha Dev Workflow Tips and Tricks'/><author><name>Danny</name><uri>http://www.blogger.com/profile/15452430811956884144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4916144632005734182.post-153780815912279401</id><published>2009-04-18T12:19:00.000-07:00</published><updated>2009-04-18T15:23:20.920-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='kohacon09'/><category scheme='http://www.blogger.com/atom/ns#' term='git'/><title type='text'>Git tips</title><content type='html'>tig - cool way to look at commits&lt;br /&gt;&lt;br /&gt;git send-email 0001-patch1 0002-patch2 etc etc&lt;br /&gt;&lt;br /&gt;To get patches from email you can use mutt, fetchmail, etc. You can even use Thunderbird to get patches, by saving it as a .eml file.&lt;br /&gt;&lt;br /&gt;git am -u -s -3 -i /path/to/patch.eml&lt;br /&gt;&lt;br /&gt;-u = use utf-8&lt;br /&gt;-s = sign the commit&lt;br /&gt;-3 = use three-way merge, Galen says that this just makes it work&lt;br /&gt;-i = use interactive method&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4916144632005734182-153780815912279401?l=dbouman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dbouman.blogspot.com/feeds/153780815912279401/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dbouman.blogspot.com/2009/04/git-tips.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4916144632005734182/posts/default/153780815912279401'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4916144632005734182/posts/default/153780815912279401'/><link rel='alternate' type='text/html' href='http://dbouman.blogspot.com/2009/04/git-tips.html' title='Git tips'/><author><name>Danny</name><uri>http://www.blogger.com/profile/15452430811956884144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4916144632005734182.post-7454692011068018308</id><published>2009-04-18T07:29:00.000-07:00</published><updated>2009-04-18T15:24:48.636-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='kohacon09'/><category scheme='http://www.blogger.com/atom/ns#' term='koha'/><title type='text'>Notes on Koha structure</title><content type='html'>Make sure that get_user_and_template is the first call and no actions are required before it. It is a security risk if any calls are made before that line because the user could run it directly if they know the url without authentication.&lt;br /&gt;&lt;br /&gt;#!/usr/bin/perl&lt;br /&gt;use C4::something;&lt;br /&gt;use C4::something else;&lt;br /&gt;user C4::Output;&lt;br /&gt;&lt;br /&gt;(_) = get_template_and_user (..)&lt;br /&gt;&lt;br /&gt;my $query (or my $input) = new CGI; //allows you to grab params&lt;br /&gt;&lt;br /&gt;my $biblionumber = $query-&gt;param('biblionumber');&lt;br /&gt;&lt;br /&gt;sub functions should follow the naming convention, GetSomethingAndSomething&lt;br /&gt;&lt;br /&gt;Get&lt;br /&gt;New&lt;br /&gt;Mod&lt;br /&gt;Del&lt;br /&gt;&lt;br /&gt;$op = 'mod(get/new/del)' // often used means operation&lt;br /&gt;output_html_with_http_headers; (nothing executed after)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4916144632005734182-7454692011068018308?l=dbouman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dbouman.blogspot.com/feeds/7454692011068018308/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dbouman.blogspot.com/2009/04/notes-on-koha-structure.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4916144632005734182/posts/default/7454692011068018308'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4916144632005734182/posts/default/7454692011068018308'/><link rel='alternate' type='text/html' href='http://dbouman.blogspot.com/2009/04/notes-on-koha-structure.html' title='Notes on Koha structure'/><author><name>Danny</name><uri>http://www.blogger.com/profile/15452430811956884144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4916144632005734182.post-4993108884644908964</id><published>2009-04-17T08:46:00.000-07:00</published><updated>2009-04-17T09:56:43.294-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='3.2'/><category scheme='http://www.blogger.com/atom/ns#' term='kohacon09'/><category scheme='http://www.blogger.com/atom/ns#' term='development'/><category scheme='http://www.blogger.com/atom/ns#' term='koha'/><title type='text'>Status of Development for Koha 3.2</title><content type='html'>presented by Galen Charlton&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Goals for Koha 3.2 &lt;/span&gt;(an ambitious release)&lt;br /&gt;&lt;ul&gt;&lt;li&gt;New acquisitions module&lt;/li&gt;&lt;li&gt;Holdings support&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Many circulation improvements - allowing to configure the circulation rules to the nth degree&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Improving stability&lt;/li&gt;&lt;/ul&gt;RFCs - A statement of saying we want this bit of functionality or we (programmer,library, vendor) are going to implement this function for the next version of Koha. Sometimes the RFCs are wouldn't it be nice.&lt;br /&gt;&lt;br /&gt;Not all RFCs will be implemented for 3.2. Some were just proposals, and others didn't end up being sponsored.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;New acquisitions module&lt;br /&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;Developed by BibLibre&lt;/li&gt;&lt;li&gt;In production with one of their customers&lt;/li&gt;&lt;li&gt;Working on submitting their patches for 3.2&lt;/li&gt;&lt;li&gt;Review and testing period&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;Holdings structure&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Developed by LibLime, sponsored by WALDO&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Introduces "summary" records to Koha&lt;/li&gt;&lt;li&gt;Entering testing by WALDO&lt;/li&gt;&lt;li&gt;You will be able to load them and export then and in theory you can pretend that the 852 tag doesn't exist.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;WALDO circulation features&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Proxy patrons&lt;/li&gt;&lt;li&gt;Fines thresholds&lt;/li&gt;&lt;li&gt;Callslips, similar to request system&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Recalls, if someone has an item on loan and a faculty member has it the recall will say return it at once&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Hourly loans, meant to support having an item checked out for hours instead of days&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Email checkout slips&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;Other circulation features&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Calculate fines in days debarred, developed by BibLibre for 3.0 and will makes it way to 3.2 soon&lt;/li&gt;&lt;li&gt;Placing hold on multiple items, introduced by Alloy Computing (yay HCL and Alloy Computing)&lt;/li&gt;&lt;li&gt;Additional hold request improvements sponsored by NEKLS&lt;/li&gt;&lt;li&gt;Course reserves&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;OPAC enhancements&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Support for enhanced content providers, Syndetics, LibraryThing, Babeltheque&lt;/li&gt;&lt;li&gt;Tag multiple items (yay HCL and Alloy Computing)&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;Cataloging&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;biblios.net  marc record editor integration&lt;/li&gt;&lt;li&gt;Improved browse indexes&lt;/li&gt;&lt;li&gt;ISBN13 normalization (sponsored by PISD) - meaning if you only have 10 digit isbn it will compute isbn13 and visa versa&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Item bulk status change, BibLibre working on this and Liblime also working on a global change&lt;/li&gt;&lt;li&gt;Brief records&lt;/li&gt;&lt;li&gt;Record maintenance&lt;/li&gt;&lt;li&gt;Deleted records - ability to still be able to search for deleted items and bibs in a specific context&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;Serials &lt;/span&gt;(for a non-library person like myself, what are Serials?)&lt;br /&gt;&lt;ul&gt;&lt;li&gt;General improvements to serials display and predication pattern management&lt;/li&gt;&lt;li&gt;More control over display of recently checked in issues (WALDO)&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;Administration&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Improved system preference editor (Jesse Weaver, developer at small library)&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;Reporting&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Improvements to the guided reports, mainly the ability to add placeholder mechanism. It will let you put in a parameter at the time of running the report instead of having to edit the SQL everytime.&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;Miscellaneous&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Granular permissions (new acquisitions module already implements some of these)&lt;/li&gt;&lt;li&gt;Internet Explorer compatibility improvements (WALDO)&lt;/li&gt;&lt;li&gt;Improvements to overdue report (PISD)&lt;/li&gt;&lt;li&gt;Improved OAI-PMH server (Tamil)&lt;/li&gt;&lt;li&gt;URL checker (Tamil)&lt;/li&gt;&lt;/ul&gt;Galen, "There will be at least one cool new thing coming from the KohaCon development meeting this weekend"&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Timeline&lt;br /&gt;&lt;/span&gt;Not something that is finalized. The currently goal for 3.2 will likely be late summer or early autumn. 3.1 release for testing in early summer.&lt;br /&gt;&lt;br /&gt;The tip of the Koha bleeding edge is always and odd release number following the Linux kernel version numbering system.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4916144632005734182-4993108884644908964?l=dbouman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dbouman.blogspot.com/feeds/4993108884644908964/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dbouman.blogspot.com/2009/04/status-of-development-for-koha-32.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4916144632005734182/posts/default/4993108884644908964'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4916144632005734182/posts/default/4993108884644908964'/><link rel='alternate' type='text/html' href='http://dbouman.blogspot.com/2009/04/status-of-development-for-koha-32.html' title='Status of Development for Koha 3.2'/><author><name>Danny</name><uri>http://www.blogger.com/profile/15452430811956884144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4916144632005734182.post-9155075029896957367</id><published>2009-04-17T08:20:00.000-07:00</published><updated>2009-04-17T08:25:22.115-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='kohacon09'/><category scheme='http://www.blogger.com/atom/ns#' term='koha'/><category scheme='http://www.blogger.com/atom/ns#' term='stimulus'/><title type='text'>Stimulus package and Koha</title><content type='html'>It was mentioned that it might be possible to apply for Tech Stimulus package money to use for Koha development and expenses. It seems like it would be a great use of the money to go towards developing a free open source solution, which ultimately saves money in the future.&lt;br /&gt;&lt;br /&gt;Is this something we can investigate further?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4916144632005734182-9155075029896957367?l=dbouman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dbouman.blogspot.com/feeds/9155075029896957367/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dbouman.blogspot.com/2009/04/stimulus-package-and-koha.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4916144632005734182/posts/default/9155075029896957367'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4916144632005734182/posts/default/9155075029896957367'/><link rel='alternate' type='text/html' href='http://dbouman.blogspot.com/2009/04/stimulus-package-and-koha.html' title='Stimulus package and Koha'/><author><name>Danny</name><uri>http://www.blogger.com/profile/15452430811956884144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4916144632005734182.post-4404458131662951617</id><published>2009-04-17T06:30:00.000-07:00</published><updated>2009-04-17T08:27:19.723-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='opac'/><category scheme='http://www.blogger.com/atom/ns#' term='kohacon09'/><category scheme='http://www.blogger.com/atom/ns#' term='koha'/><title type='text'>Customize your OPAC</title><content type='html'>presented by Owen Leonard&lt;br /&gt;&lt;br /&gt;Owen works at Nelsonville Public Library and says that he wouldn't do it again. Although you can customize the templates very easily, it is a huge pain to have to maintain the templates.&lt;br /&gt;&lt;br /&gt;Changing the stylesheet is the best way to customize the OPAC because it doesn't need to be maintained each time you upgrade.&lt;br /&gt;&lt;br /&gt;Owen recommends a site called Listomatic, it gives you css and html code for many different types of menus that exist.&lt;br /&gt;&lt;br /&gt;opaccolorcss = file name of customize css file&lt;br /&gt;opacusercss = embedded in-line instead of a separate file&lt;br /&gt;&lt;br /&gt;Tools that Owen recommends for Web Development:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Firebug - Firefox extension (must have)&lt;/li&gt;&lt;li&gt;Jquery - javascript language&lt;/li&gt;&lt;/ul&gt;Link to Owen's blog - &lt;a href="http://www.myacpl.org/koha/"&gt;http://www.myacpl.org/koha/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4916144632005734182-4404458131662951617?l=dbouman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dbouman.blogspot.com/feeds/4404458131662951617/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dbouman.blogspot.com/2009/04/customize-your-opac.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4916144632005734182/posts/default/4404458131662951617'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4916144632005734182/posts/default/4404458131662951617'/><link rel='alternate' type='text/html' href='http://dbouman.blogspot.com/2009/04/customize-your-opac.html' title='Customize your OPAC'/><author><name>Danny</name><uri>http://www.blogger.com/profile/15452430811956884144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4916144632005734182.post-6957919906918276395</id><published>2009-04-16T14:08:00.000-07:00</published><updated>2009-04-17T08:26:14.545-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sip2'/><category scheme='http://www.blogger.com/atom/ns#' term='kohacon09'/><category scheme='http://www.blogger.com/atom/ns#' term='rfid'/><category scheme='http://www.blogger.com/atom/ns#' term='koha'/><category scheme='http://www.blogger.com/atom/ns#' term='ldap'/><title type='text'>Koha Integration: RFID, SIP2, LDAP</title><content type='html'>presented by Joe Atzberger&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;LDAP&lt;/span&gt;&lt;br /&gt;List of LDAP Tools&lt;br /&gt;1. Apache Directory Server &amp;amp; Studio (client) http://directory.apache.org&lt;br /&gt;   - Newer than openldap and more stable&lt;br /&gt;   - Runs on OSX, Win32, and linux&lt;br /&gt;   - Open source&lt;br /&gt;2. OpenLDAP - http://www.openldap.org&lt;br /&gt;   - Includes command line tools&lt;br /&gt;&lt;br /&gt;Koha LDAP does not go grab all your users as a "dump". That is what IMPORT is for. Instead it updates when they try to login.&lt;br /&gt;&lt;br /&gt;Main server configuration goes in koha-conf.xml file. The line looks similar to:&lt;br /&gt;&lt;ldapserver&gt;&lt;br /&gt;&lt;hostname&gt;ldap://auth.example.com:389&lt;/hostname&gt;&lt;br /&gt;&lt;bas3&gt;dc=example,dc=com&lt;/bas3&gt; really base, but base tag not allowed&lt;br /&gt;&lt;user&gt;cn=Admin,dc=example,dc=com&lt;/user&gt;&lt;br /&gt;&lt;pass&gt;example&lt;/pass&gt;&lt;br /&gt;&lt;br /&gt;Bind-as-auth has been hacked into Koha, but not done cleanly enough to import into main Koha.&lt;br /&gt;&lt;br /&gt;There are two options for replicate and update, which can sync the information between LDAP and Koha (very cool!!!)&lt;br /&gt;&lt;br /&gt;Know your own Schema, example used was inetOrgPerson.&lt;br /&gt;&lt;br /&gt;You can define data Koha cares about by using &lt;mapping&gt; elements in koha-conf.xml.&lt;br /&gt;&lt;mapping&gt;&lt;br /&gt;&lt;first is="givenname"&gt;&lt;/first&gt;&lt;br /&gt;&lt;surname is="sn"&gt;&lt;/surname&gt;&lt;br /&gt;&lt;branchcode is="branch"&gt;CPL&lt;/branchcode&gt; (this makes the default branch CPL)&lt;br /&gt;&lt;br /&gt;3 kinds of required data include things that are required by the database, login, and us.&lt;br /&gt;&lt;br /&gt;Database&lt;br /&gt;- surname&lt;br /&gt;- address&lt;br /&gt;- city&lt;br /&gt;&lt;br /&gt;Login&lt;br /&gt;- userid&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;SIP2&lt;/span&gt;&lt;br /&gt;Unlike LDAP, SIP2 runs as a totally different server process, normally on a completely different server.&lt;br /&gt;&lt;br /&gt;Extra dependecies - UNIVERSAL::require and Net::Server:Prefork&lt;br /&gt;&lt;br /&gt;Now a well-documented setup process in Appendix to the Koha Manual. Sipconfig.xml file contains info about the SIP server. In the Sipconfig.xml you can specify port, recommends using telnet so not to expose raw protocol to outside world. Make sure the user that SIP uses actually has correct permission to perform circulate functions.&lt;br /&gt;&lt;br /&gt;perl -I./ ./SIPServer.pm /home/koha/sipconfig/Sipconfig.xml (example command of SIP server running)&lt;br /&gt;&lt;br /&gt;Doesn't support things that are specified at the item level, such as, item level holds and all features that were added to Koha after the SIP implementation. Almost all 3M hardware, requires and extension to the SIP2 implementation and that is also not yet supported, but Joe believes that NEKLS will be sponsoring that change.&lt;br /&gt;&lt;br /&gt;There was some question about can you use SIP over SSL. Joe mentioned that when the SIP specifications were written they were assuming that you were going to use a serial connection or atleast be on the same network as the SIP server. Apparently, it is possible to setup a Secure SSH tunnel and use SIP over that connection.&lt;/mapping&gt;&lt;/mapping&gt;&lt;/ldapserver&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4916144632005734182-6957919906918276395?l=dbouman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dbouman.blogspot.com/feeds/6957919906918276395/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dbouman.blogspot.com/2009/04/koha-integration-rfid-sip2-ldap.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4916144632005734182/posts/default/6957919906918276395'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4916144632005734182/posts/default/6957919906918276395'/><link rel='alternate' type='text/html' href='http://dbouman.blogspot.com/2009/04/koha-integration-rfid-sip2-ldap.html' title='Koha Integration: RFID, SIP2, LDAP'/><author><name>Danny</name><uri>http://www.blogger.com/profile/15452430811956884144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4916144632005734182.post-2077201518786096594</id><published>2009-04-16T11:31:00.000-07:00</published><updated>2009-04-16T13:22:03.193-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='kohacon09'/><category scheme='http://www.blogger.com/atom/ns#' term='koha disaster recovery'/><category scheme='http://www.blogger.com/atom/ns#' term='koha'/><title type='text'>Koha Disaster Recovery</title><content type='html'>presented by Clay Fouts&lt;br /&gt;&lt;br /&gt;Clay's primary job is to maintain the centralized repository for the Liblime hosted Koha installations.&lt;br /&gt;&lt;br /&gt;Disaster is inevitable.... people will make mistakes, hardware will fail, malicious infiltrators can gain access. What is important is to understand how to minimize downtime, reduce frequency of failures and how to not lose important data.&lt;br /&gt;&lt;br /&gt;How is data stored in Koha?&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Koha source files and related configuration files&lt;/li&gt;&lt;li&gt;Perl dependencies&lt;/li&gt;&lt;li&gt;Zebra index content&lt;/li&gt;&lt;li&gt;MySQL database contents&lt;/li&gt;&lt;/ul&gt;There are a number of trade-offs you have to make when dealing with disaster recovery, such as, speed, expense, reliability, flexibility. For example, it is possible to get 99.99% up time, however, the expense of setting up a system to support this kind of up time will cost lots and lots of money because you will need multiple redundant servers, with raid hard drives and built-in automatic failover.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Storage Media&lt;/span&gt;&lt;br /&gt;Disk(Hard Drive) - Fastest way to move data, but not very portable and still expensive compared to other options&lt;br /&gt;DVD/CD - Extremely cheap and portable, but doesn't hold lots of data.&lt;br /&gt;Tape - Portable and supports more data then CD/DVD, but not as much as most hard drives. Very expensive...&lt;br /&gt;Cloud - unlimited capacity, redundant, so you will not lose data. Nice because you will not have to maintain another piece of hardware. Limiting capacity is network bandwidth.&lt;br /&gt;&lt;br /&gt;Simply making backups is &lt;span style="font-weight: bold;"&gt;NOT&lt;/span&gt; sufficient, you need to make sure that the backups actually work and that you are able to restore completely from them. Verify that the media doesn't degrade, that it is secure, and accessible. If you store the data off site will it be accessible in the middle of the night if you need to do recovery?&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Where to Store the data?&lt;/span&gt;&lt;br /&gt;Onsite - fast, cheap, easy access, but if the place burns, you lose everything.&lt;br /&gt;Offsite - Still have backups if your place burns, but it is difficult, expensive and slow access if you ever need them.&lt;br /&gt;Cloud - can be the best of both if your network supports it. Most providers have redundant disks stored at multiple facilities spread across the world.&lt;br /&gt;&lt;br /&gt;Optimal strategy is some kind of combination, for example, storing onsite if you need quick backups, but also storing the data offsite incase of a disaster.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;MySQL Data  Backups&lt;/span&gt; (most important)&lt;br /&gt;Most sensitive and impossible to rebuild it manually because you don't know who has checked out what, who owes what fines, etc. Should be backed up frequently using multiple methods. Recommends using MySQL's bin logs to back up data.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Logical&lt;/span&gt; using tools like mysqldump. Provides the ability to rebuild a database from raw SQL statements. Very portable and can even be moved to another platform. Slow to back up and restore. Database is inaccessible during backup operation.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Binary&lt;/span&gt; using tools like cp, dd, LVM snapshots. Faster than logical backups. Still blocks access during the backup, but for less time. LVM snapshots can be taken almost instantaneously. Need to script so that you prevent access to database while backup is taken because it does not do it inherently otherwise you will get corruption of data. Binary files and disk partitions are much larger than logical SQL backups. The backups are difficult to verify and less portable.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Mirroring&lt;/span&gt; using master/slave replication. Fatest because it's ongoing. The replication server can be used as a hot spare in case primary server goes down. Very useful in combination with logical and binary backups. Has other uses, for example, reports in which you can have the reports all generated based on the slave server and it won't degrade the performace of the master server. Can be  useful in combination with logical and binary backups because you can do backups based on the slave, so it never locks up the master server. Can introduce inconsistency in regards to storing timestamps, etc. To combat the inconsistency is make sure that the master server is not overloaded and prevent network latency.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Code base backup&lt;/span&gt;&lt;br /&gt;Useful if you have customized the data.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Zebra Index backup&lt;/span&gt;&lt;br /&gt;Huge database and not unique, no data loss if not backed up, but rebuilding will increase recovery time. Could take hours to rebuild the indexes if you have lots of data. Make sure that you are not adding to the index while the backups are going on.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4916144632005734182-2077201518786096594?l=dbouman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dbouman.blogspot.com/feeds/2077201518786096594/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dbouman.blogspot.com/2009/04/koha-disaster-recovery.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4916144632005734182/posts/default/2077201518786096594'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4916144632005734182/posts/default/2077201518786096594'/><link rel='alternate' type='text/html' href='http://dbouman.blogspot.com/2009/04/koha-disaster-recovery.html' title='Koha Disaster Recovery'/><author><name>Danny</name><uri>http://www.blogger.com/profile/15452430811956884144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4916144632005734182.post-4080325967704197062</id><published>2009-04-16T11:30:00.000-07:00</published><updated>2009-04-16T13:20:32.468-07:00</updated><title type='text'>Public Library Lunch Group</title><content type='html'>We walked over to the mall across the street from the conference center to have lunch (very nice mall by the way). After finally getting my food, I was fascinated to hear some of the stories about the other public libraries using Koha and migrating to Koha.&lt;br /&gt;&lt;br /&gt;I talked with two ladies from East Brunswick Public Library and was fascinated to hear very similar concerns to our own. They are currently using Horizon 7.4 and plan to go live on Koha in May (?). They mentioned that they plan to use Horizon to do cataloging and acquisitions since they found it difficult to currently use Koha to perform these tasks.&lt;br /&gt;&lt;br /&gt;Several people at the table also expressed concerns about not knowing what all these different vendors were doing and how do we know we are all not paying for the same feature? We would like the vendors to communicate more with the community in terms of what features are being developed.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4916144632005734182-4080325967704197062?l=dbouman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dbouman.blogspot.com/feeds/4080325967704197062/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dbouman.blogspot.com/2009/04/public-library-lunch-group.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4916144632005734182/posts/default/4080325967704197062'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4916144632005734182/posts/default/4080325967704197062'/><link rel='alternate' type='text/html' href='http://dbouman.blogspot.com/2009/04/public-library-lunch-group.html' title='Public Library Lunch Group'/><author><name>Danny</name><uri>http://www.blogger.com/profile/15452430811956884144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4916144632005734182.post-6211148204329957851</id><published>2009-04-16T09:16:00.000-07:00</published><updated>2009-04-16T13:24:02.660-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='kohacon09'/><category scheme='http://www.blogger.com/atom/ns#' term='sql structure'/><category scheme='http://www.blogger.com/atom/ns#' term='koha'/><title type='text'>SQL Structure</title><content type='html'>presented by Paul Poulain&lt;br /&gt;&lt;br /&gt;authorised_values table used to define lists available in a lot of places. Paul, "the swiss knife tool in Koha"&lt;br /&gt;&lt;br /&gt;Don't try to fill the biblios and items tables directly, use bulkmarcimport.pl tool or the API (more complex).&lt;br /&gt;&lt;br /&gt;Koha is setup behind the scenes to handle both UNIMARC and MARC21. Lots of data in MARC21, very few important and very frequently used like title, author, call no.&lt;br /&gt;&lt;br /&gt;History&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Koha 1.x was not dealing with MARC.&lt;/li&gt;&lt;li&gt;Koha 1.x implemented something like FRBR before FRBR existed.&lt;/li&gt;&lt;li&gt;Koha 2.0 implemented MARC but relied on the previous 3 tables&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;Biblio and Biblioitems tables&lt;/span&gt;&lt;br /&gt;Raw MARC data is stored in biblioitems table in the marcxml field. Some information is stored in a clearly named field in biblio table. The biblioitems table that contains information that is the root information of the edition.&lt;br /&gt;&lt;br /&gt;In Koha 3.0 you should have a 1 to 1 correlation between the biblio and biblioitems table. The two tables could be merged into one, but has not been implemented yet. Koha takes care of translating the MARC database into the clearly named field, that is why you must use the import tool or the API.&lt;br /&gt;&lt;br /&gt;The biblioitems table should be called biblioeditions, but no developer has renamed it yet.&lt;br /&gt;&lt;br /&gt;Which table is used..&lt;br /&gt;&lt;ul&gt;&lt;li&gt;On results lists, MARC detail from marcxml&lt;/li&gt;&lt;li&gt;On standard biblio detail screen, if you have XSLT the data is taken from marcxml (?)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;For UNIMARC detail screens, the biblio and biblioitems tables are used.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;If just a few key fields, it is grabbed from biblio and biblioitems tables&lt;/li&gt;&lt;/ul&gt;If you crash Zebra database, everything is stored in the MySQL table.&lt;br /&gt;&lt;br /&gt;Items table contains a row for each representation of the physical item in the library. All information is contained in the biblioitems.marcxml field, however, just like biblio table contains decoded information, the items table also contains some specific decoded fields.&lt;br /&gt;&lt;br /&gt;In Koha the primary key for biblio data is the biblio#.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Borrower table&lt;/span&gt;&lt;br /&gt;Surname is the only mandatory field in the borrower table. Personal information, first name, title, other names, intials, dateofbirth, address, street number,  street type, address, address2, zip code, city , phone, email are all examples of fields in the borrower table.&lt;br /&gt;&lt;br /&gt;The primary key for borrower table is the borrower#. The password in Koha is never stored in plain text and only stored in the md5 hash form.&lt;br /&gt;&lt;br /&gt;Some free to use fields are sort1 and sort2, linked to authorised_valules. Borrower_attributes table supports extended attributes.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Issues table&lt;/span&gt; (checkouts/checkins)&lt;br /&gt;All current issues are stored in issues table. All previous/finished issues are stored in old_issues table. They both have the same structure.&lt;br /&gt;&lt;br /&gt;Four important fields, borrowernumber, itemnumber, date_due, issuedate&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4916144632005734182-6211148204329957851?l=dbouman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dbouman.blogspot.com/feeds/6211148204329957851/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dbouman.blogspot.com/2009/04/sql-structure.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4916144632005734182/posts/default/6211148204329957851'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4916144632005734182/posts/default/6211148204329957851'/><link rel='alternate' type='text/html' href='http://dbouman.blogspot.com/2009/04/sql-structure.html' title='SQL Structure'/><author><name>Danny</name><uri>http://www.blogger.com/profile/15452430811956884144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4916144632005734182.post-3924338222628843832</id><published>2009-04-16T06:32:00.000-07:00</published><updated>2009-04-16T13:26:57.822-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='kohacon09'/><category scheme='http://www.blogger.com/atom/ns#' term='history of koha'/><category scheme='http://www.blogger.com/atom/ns#' term='koha'/><title type='text'>History of Koha</title><content type='html'>presented by Chris Cormack and Paul Poulain&lt;br /&gt;&lt;br /&gt;Chris is one of the original developers of Koha in 1999. There was no suitable responses to the RFP as they needed an application that worked over slow connections. Using a web based application was a natural choice because it works well over slow connections. There was no open source solutions at the time and open source was a natural choice because neither HLT or Katipo wanted to be a vendor. Developed in rapid prototype with lots of refining.&lt;br /&gt;&lt;br /&gt;It's just a database... but with lots and lots of rules.&lt;br /&gt;&lt;br /&gt;History of Koha: &lt;a href="http://stats.workbuffer.org/history.html"&gt;http://stats.workbuffer.org/history.html&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;When they first released version 1.0 of Koha, the first copy was downloaded in 20 minutes. In 2002, Paul Poulain got involved and Owen Leonard from Nelsonville Public Library.&lt;br /&gt;&lt;br /&gt;Chris soon realized that when working with libraries, standards meant "standards" and he often had to ask which MARC.&lt;br /&gt;&lt;br /&gt;In 2003, the community continues to grow, more developers, more translations. NPL went live in 2003. The NZ prime minister mentioned Koha in a speech.&lt;br /&gt;&lt;br /&gt;In 2004, the first koha docs were written at &lt;a href="http://www.kohadocs.org"&gt;www.kohadocs.org&lt;/a&gt; and first time a non-technical person contributed to Koha.&lt;br /&gt;&lt;br /&gt;In 2005, Liblime got on board with Koha to support U.S. libraries. Paul formed a partnership with Henri Damien Laurent to meet the demand for Koha support. Decided to go with Zebra for full-text searching. New &lt;a href="http://www.koha.org"&gt;www.koha.org&lt;/a&gt; site released.&lt;br /&gt;&lt;br /&gt;In 2006, Chris presented about Koha at Linux Conference Australia and Linus was in the audience! First, KohaCon held in Paris.&lt;br /&gt;&lt;br /&gt;In 2007, lots of talks with Liblime about hiring Chris and several others. Started Koha Days to fix features that no one was sponsoring, but needed to be done. Koha won a NZ Open Source Award, despite being in the same category with the guy that wrote Ruby on Rails.&lt;br /&gt;&lt;br /&gt;In 2008, Nicole did huge amounts of work on the Koha 3.0 manual. Paul and Henri formed Biblibre.  Chris left Liblime and now works for Catalyst, but is the translation manager. Chris says, "2008 should be called the year of India", as major libraries including Dehli Public Library switched to Koha and several major companies to support Koha.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4916144632005734182-3924338222628843832?l=dbouman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dbouman.blogspot.com/feeds/3924338222628843832/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dbouman.blogspot.com/2009/04/history-of-koha.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4916144632005734182/posts/default/3924338222628843832'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4916144632005734182/posts/default/3924338222628843832'/><link rel='alternate' type='text/html' href='http://dbouman.blogspot.com/2009/04/history-of-koha.html' title='History of Koha'/><author><name>Danny</name><uri>http://www.blogger.com/profile/15452430811956884144</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry></feed>
