<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>The Open Sourcerer &#187; Ubuntu</title>
	<atom:link href="http://www.theopensourcerer.com/category/ubuntu/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.theopensourcerer.com</link>
	<description>The Magic of Open Source</description>
	<lastBuildDate>Tue, 24 Jan 2012 09:10:00 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.4</generator>
		<item>
		<title>Free Ubuntu 11.10 CDs for the UK</title>
		<link>http://www.theopensourcerer.com/2011/10/18/free-ubuntu-11-10-cds-for-the-uk/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=free-ubuntu-11-10-cds-for-the-uk</link>
		<comments>http://www.theopensourcerer.com/2011/10/18/free-ubuntu-11-10-cds-for-the-uk/#comments</comments>
		<pubDate>Tue, 18 Oct 2011 17:29:05 +0000</pubDate>
		<dc:creator>Alan Bell</dc:creator>
				<category><![CDATA[FLOSS in the news]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://www.theopensourcerer.com/?p=3037</guid>
		<description><![CDATA[Today the Ubuntu UK LoCo team CD allocation arrived from Canonical, as is traditional I have upgraded the Kubuntu CD that my chickens peck at. I have a different set of chickens to the ones in the last photo due to a series of unfortunate events. In July we restocked by purchasing three rather young [...]]]></description>
			<content:encoded><![CDATA[<p><a href="https://picasaweb.google.com/lh/photo/VLb79I8OteL-0wiczoQ6Tg?feat=embedwebsite"><img class="alignright" src="https://lh6.googleusercontent.com/-RwMhI4ONNBA/Tp1-UU9b8II/AAAAAAAABXw/d0nkzJtOh7Y/s288/2011-10-18%25252014.23.29.jpg" alt="" width="288" height="216" /></a>Today the Ubuntu UK LoCo team CD allocation arrived from Canonical, as is traditional I have upgraded the Kubuntu CD that my chickens peck at. I have a different set of chickens to the ones in the last photo due to a series of unfortunate events. In July we restocked by purchasing three rather young hens, Specky, Chocolate and Snowdrop who entertained the crowds at the Oggcamp Crew BBQ and have been growing fast ever since. Pictured here with the new Kubuntu CD is Specky. We wanted three nice new hens to lay lots of eggs and they are approaching egg time. Of the three, Specky has grown the fastest and has a nice comb and a tail and really is quite a lot bigger than the others and . . . actually Specky is looking a bit um, butch, for a hen. . . and those cockadoodledoo noises are not a good sign. I think we may have a problem here. Girls are lovely and useful and hard working. Boys are big, noisy and useless. I think Specky needs to urgently get in touch with it&#8217;s feminine side and lay some eggs, or there will be a less full henhouse and a more full curry pot.</p>
<p>Anyhow, back to the subject of this post, which is the CDs. If you are living in the UK and want an Ubuntu CD, a Kubuntu CD or an Ubuntu Server CD (or combination thereof) then you are most welcome to one. Please <a href="http://ubuntu-uk.org/free-cds/">follow the procedure</a> and I will send one out to you. For a while I will also include an 11.04 CD until I run out of them. If you want more than one CD then do ask me and we will try and work something out particularly if you are wanting to distribute them at a University or similar.</p>
<p>I almost forgot to mention, I removed their old Kubuntu 11.04 CD and washed the muck off and stuck it in a desktop, it still boots!<br />
<a href="https://picasaweb.google.com/lh/photo/CxgVU3GPEYTRfqxWjQXx1Q?feat=embedwebsite"><img src="https://lh3.googleusercontent.com/-Vo2hLc7esqs/Tp2BLGeZO4I/AAAAAAAABYM/yepZZdDWEtc/s288/2011-10-18%25252014.36.26.jpg" alt="" width="288" height="216" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.theopensourcerer.com/2011/10/18/free-ubuntu-11-10-cds-for-the-uk/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Hello World in Python</title>
		<link>http://www.theopensourcerer.com/2011/09/05/hello-world-in-python/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=hello-world-in-python</link>
		<comments>http://www.theopensourcerer.com/2011/09/05/hello-world-in-python/#comments</comments>
		<pubDate>Mon, 05 Sep 2011 21:49:42 +0000</pubDate>
		<dc:creator>Alan Bell</dc:creator>
				<category><![CDATA[FLOSS in the news]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://www.theopensourcerer.com/?p=3019</guid>
		<description><![CDATA[Today I ran a class session as part of the Ubuntu Application Developer week. My topic was a really basic introduction to python, starting with the traditional &#8220;Hello World!&#8221; program and here is the transcript from the logs: [19:01] good morning/afternoon/evening all [19:01] welcome to this Application Developer week session on Python [19:02] so after [...]]]></description>
			<content:encoded><![CDATA[<p>Today I ran a class session as part of the <a href="https://wiki.ubuntu.com/UbuntuAppDeveloperWeek">Ubuntu Application Developer week</a>. My topic was a really basic introduction to python, starting with the traditional &#8220;Hello World!&#8221; program and here is the transcript from the logs:</p>
<p><code>[19:01]  good morning/afternoon/evening all<br />
[19:01]  welcome to this Application Developer week session on Python<br />
[19:02]  so after jderose turning things up to 11 we are going to go back and start with 1 2 3<br />
[19:02]  This session is an introduction to Python from the very very beginning, I going to do my best to assume no prior knowledge at all.<br />
[19:02]  just so I can see who is here say hi in the #ubuntu-classroom-chat channel o/<br />
[19:03]  great, I love to have an audience <img src='http://www.theopensourcerer.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
[19:03]  so Python is a programming language, but not a scary hard one.<br />
[19:03]  Python is kind of like BASIC, except you don't have to be embarrassed about saying you are a Python programmer!<br />
[19:04]  we are going to write a computer program, which is a set of instructions to the computer to tell it to do some interesting stuff for us.<br />
[19:04]  Lets get set up first, we are going to need a text editor to write the instructions in and a terminal to tell the computer to do the instructions.<br />
[19:05]  hopefully you will find them next to each other in the Applications-Accessories menu<br />
[19:05]  or if you are using unity hit the super key and type gedit and return for the editor<br />
[19:05]  and terminal for the terminal<br />
[19:06]  they are also somewhere to be found in the apps lens, but that is another story altogether<br />
[19:06]  so open both of them now and get comfortable with the three windows on screen, IRC, terminal and gedit<br />
[19:06]  are we sitting comfortably?<br />
[19:07]  plain old text editor is perfect, none of your fancy IDEs for this session<br />
[19:08]  Traditionally the first program you should write in any language is one to get the computer to say hello to the world! so lets do that.<br />
[19:08]  in the text editor type the following:<br />
[19:08]  print "Hello, World!"<br />
[19:09]  that is it, your first program, now lets save it and run it (I did tell you it looked like BASIC)<br />
[19:09]  file-save as and call it hello.py<br />
[19:09]  this will save it into your home directory by default, fine for now, but you would probably want to be a bit more organised when doing something serious<br />
[19:10]  feel free to be more organised right now if you like <img src='http://www.theopensourcerer.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
[19:10]  ok, now in the terminal lets run the program<br />
[19:10]  python hello.py<br />
[19:10]  did it say hello to you?<br />
[19:12]  as I saved it in the home directory and terminal starts there by default it should just work, if you are putting things in folders you might need to navigate to it with the cd command or specify the path to the program<br />
[19:13]  ok, so that was running the program by running python then the name of our application, but we can do it a different way, by telling Ubuntu that our program is executable<br />
[19:13]  What we are going to do now is try to make our program directly executable, in the terminal we are going to CHange the MODe of the program to tell Ubuntu that it is eXecutable<br />
[19:13]  so at the $ prompt of the terminal type:<br />
[19:13]  chmod +x hello.py<br />
[19:14]  now we can try to run it<br />
[19:14]  again at the $ prompt<br />
[19:14]  ./hello.py<br />
[19:14]  oh noes!!!<br />
[19:14]  Warning: unknown mime-type for "Hello, World!" -- using "application/octet-stream"<br />
[19:14]  everyone get that?<br />
[19:16]  ubuntu doesn't know how to run this application yet, we need to add some extra magic at the top of our program to help it understand what to do with it.<br />
[19:16]  back in the editor, above the print "Hello, World!" add the following line<br />
[19:16]  #!/usr/bin/env python<br />
[19:16]  so the /usr/bin/env bit is some magic that helps it find stuff, and the thing it needs to run this application is python<br />
[19:16]  now you should be able to save that and flip back to the terminal and run your program<br />
[19:17]  ./hello.py<br />
[19:17]  that should now run <img src='http://www.theopensourcerer.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
[19:18]  as has been pointed out in python 3 you need to put brackets round the string so<br />
[19:18]  print ("hello world")<br />
=== mohammed is now known as Guest99895<br />
[19:19]  which works in all versions of python<br />
[19:20]  OK, lets go on to the next concept, giving our program some structure<br />
[19:20]  back to the editor, and between the two lines we have already add a new line<br />
[19:20]  while 2+2==4:<br />
[19:20]  and on the next line put four spaces before the print ("Hello, World!")<br />
[19:20]  and save that<br />
[19:21]  Moshanator asked: can i just ./hello.py?<br />
[19:21]  lunzie asked: â€‹â€†are the quote brackets proper form?<br />
[19:21]  the brackets round the quotes are better form as they work on python 3<br />
[19:22]  so the while statement we added starts a loop, in this instance it will carry on until 2+2 is equal to something other than 4<br />
[19:22]  the double equals means "is equal to" a single equals is used to assign a value to something (more on that later)<br />
[19:23]  the colon at the end is an important part of the while statement<br />
[19:23]  There is no "until" "wend" "end while" type statement at the end, as you might expect to find in lesser languages <img src='http://www.theopensourcerer.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
=== yofel_ is now known as yofel<br />
[19:23]  the indentation of the print statement is not just cosmetic and for our benefit<br />
[19:23]  the indentation level is part of the language, when the indentation stops that is the end of the loop (or other structure that you might expect to have an end)<br />
[19:24]  this means that python always looks neat and tidy (or it doesn't work)<br />
[19:24]  Always use four spaces to indent, not three, not five and certainly not a tab.<br />
[19:24]  Other indentations will work, but if you ever have to work with anyone else you must always be using the same indentation, so we all get in the habit of using four spaces.<br />
[19:24]  in gedit you can set it up to use 4 spaces instead of a tab<br />
[19:25]  edit-preferences, on the editor tab choose tab width 4 and insert spaces instead of tabs<br />
[19:25]  many other editors and IDEs have a similar option<br />
[19:25]  Lets run our new program, just save it in the editor and run it again in the terminal with ./hello.py<br />
[19:26]  and that is 4 spaces per level of indentation you want so if you have a loop in a loop then the inner one will be 8 spaces indented<br />
[19:26]  now we can wait for 2+2 to be something other than 4<br />
[19:26]  * AlanBell taps fingers<br />
[19:27]  or, if you are in a hurry, you can press ctrl+c<br />
[19:28]  ok, so ctrl+c is handy for breaking in to an out-of-control python program<br />
[19:28]  you can do other fun stuff with the print statement, if you change it to read:<br />
[19:28]      print "Ubuntu totally rocks!   ",<br />
[19:28]  and run it again (note the comma at the end)<br />
[19:29]      print ("Ubuntu totally rocks!   "),  &amp;lt;- for the python 3 contingent I should think<br />
[19:30]  it should fill the terminal with text<br />
[19:30]  the comma prevents it doing a newline<br />
[19:31]  ctrl+c again to break out of it<br />
[19:31]  lets do something different now<br />
[19:31]  in the terminal, type python at the $ prompt and hit return<br />
[19:31]  you should have a &amp;gt;&amp;gt;&amp;gt; prompt and a cursor<br />
[19:32]  this is the interactive python console<br />
[19:32]  you can type print("hello") here if you want<br />
[19:32]  or do some maths like:<br />
[19:32]  print 2**1000<br />
[19:32]  which will show you the result of 2 multiplied by itself a thousand times<br />
[19:33]  python is kinda good at maths<br />
[19:33]  you don't need the print statement here either<br />
[19:33]  so 2**1000 should work in python 2.7 or 3<br />
[19:34]  you could even try 2**100000 it won't take long, and you can always stop it with ctrl+c<br />
[19:35]  while we are on the subject of maths, lets get the value of pi<br />
[19:36]  print pi won't do anything useful (but feel free to try it)<br />
[19:36]  we need more maths ability than the python language has built in<br />
[19:37]  so we need to get a library of specialist maths stuff, so type<br />
[19:37]  import math<br />
[19:37]  it will look like it did nothing, but don't worry<br />
[19:37]  now type<br />
[19:37]  math.pi<br />
[19:37]  &amp;gt;&amp;gt;&amp;gt; import math<br />
[19:37]  &amp;gt;&amp;gt;&amp;gt; math.pi<br />
[19:37]  3.141592653589793<br />
[19:38]  So we have seen here how to import a library of functions to do something, and called one of the functions from the library (to return the value of pi)<br />
[19:39]  ok, so what is in the math package, apart from pi?<br />
[19:39]  try typing dir(math) at the python console<br />
[19:39]  ['__doc__', '__name__', '__package__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2', 'atanh', 'ceil', 'copysign', 'cos', 'cosh', 'degrees', 'e', 'exp', 'fabs', 'factorial', 'floor', 'fmod', 'frexp', 'fsum', 'hypot', 'isinf', 'isnan', 'ldexp', 'log', 'log10', 'log1p', 'modf', 'pi', 'pow', 'radians', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'trunc']<br />
[19:40]  you can also look at http://docs.python.org/library/math.html<br />
[19:40]  callaghan asked: Is there a way to see which functions are in the imported library?<br />
[19:40]  yes <img src='http://www.theopensourcerer.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
[19:41]  and to get more descriptive help on each one try help(math)<br />
[19:41]  so dir() lists the names and help() lists names, parameters and a little bit of help text<br />
[19:43]  TheOpenSourcerer asked: is help() a python function useful for anything else?<br />
[19:43]  try help(help)<br />
[19:44]  it is a function that could be used, I can't off hand think of any particularly useful use of it other than for getting help<br />
[19:44]  Mipixal asked: Your favourite IDE for dev with Python, on bigger projects. (In before IDE flame wars :p )<br />
[19:45]  honestly my favourite is gedit<br />
[19:45]  I have used eclipse and pydev<br />
[19:45]  and I liked stani's python editor (SPE) for a bit<br />
[19:46]  but all I really want is a text editor with syntax highlighting<br />
[19:46]  and normally several terminal windows open across a couple of monitors<br />
[19:46]  All this command line stuff is all very well, but we want to do applications that have pretty windows and stuff!<br />
[19:47]  In the interactive console type or paste the following<br />
[19:47]  import gtk<br />
[19:47]  which will load a library full of stuff to do with the gtk toolkit that powers the gnome desktop<br />
[19:47]  now type<br />
[19:47]  foo=gtk.Window(gtk.WINDOW_TOPLEVEL)<br />
[19:47]  that assigns a window object to a variable called foo<br />
[19:47]  (the name doesn't matter, the single equals does)<br />
[19:48]  but nothing  much seems to have happened yet, so type:<br />
[19:48]  foo.show()<br />
[19:48]  yay, a real live little window should be on screen now!<br />
[19:49]  lets see what we can do to it with dir(foo)<br />
[19:49]  quite a lot! lets try:<br />
[19:49]  foo.set_title("my little window")<br />
[19:49]  go ahead and change the title a few times<br />
[19:50]  so if you type "foo.show"<br />
[19:50]<br />
[19:50]  There are 10 minutes remaining in the current session.<br />
[19:51]  you get printed out a reference to where the code for the show function is<br />
[19:51]  you need to do foo.show() to actually call the function<br />
[19:51]  ahayzen asked: In gedit is there anyway of adding code completion for python programming, like pydev in eclipse, via a plugin?<br />
[19:51]  teemperor asked: is there any naming convention in python? (because of set_title)<br />
[19:52]  ahayzen: I believe there are some plugins for that, last time I tried one it was rubbish though<br />
[19:53]  if anyone has any good ones I would be interested to know of them<br />
[19:53]  teemperor: http://www.python.org/dev/peps/pep-0008/ here is the python style guide<br />
[19:54]  many projects have their own more detailed conventions for object names<br />
[19:54]  everyone agrees on the indentation levels though <img src='http://www.theopensourcerer.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
[19:54]  Alliancemd asked: In a program changelog I saw a developer saying that he ported the code from python to java to make it faster and he said "because java is sometimes x10-x100 times faster than python". We know that java is very slow, does python have this big impact on speed?<br />
[19:55]  this is a myth<br />
[19:55]  There are 5 minutes remaining in the current session.<br />
[19:55]  sometimes java does take a while to start if it has to launch a JVM, this gave applets a reputation for being slow<br />
[19:56]  once up and running it is not particularly slow<br />
[19:56]  unless you are doing something massively time sensitive (where every nanosecond counts) then any language will do any task<br />
[19:57]  the performance problem is never the language, it is always the algorithm<br />
[19:57]  normally rewriting code so that it does fewer disk or database accesses will speed it up thousands of times more than changing the language it is implemented in<br />
[19:58]  Alliancemd asked: What do u think of PyQt? Is it that good how people say?<br />
[19:58]  mohammedalieng asked: what about python performance compared to Java ?<br />
[19:58]  callaghan asked: will there be a follow-up lesson, or where should unexperienced python-devs go from here?<br />
[19:59]  not played with Qt much<br />
[19:59]  there are some great books<br />
[19:59]  snake wrangling for kids is excellent<br />
[20:00]  and the dive into python book is in the repos, you can install it from software centre<br />
[20:00]  I believe there are other python classes in this channel so check the schedule<br />
[20:00]  Logs for this session will be available at http://irclogs.ubuntu.com/2011/09/05/%23ubuntu-classroom.html<br />
[20:00]  ok, think I am out of time<br />
[20:00]  thanks everyone o/</code></p>
<p>It was great fun to do, and thanks to David Planella and the classroom team for putting on these regular educational events.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.theopensourcerer.com/2011/09/05/hello-world-in-python/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>The science of meetings</title>
		<link>http://www.theopensourcerer.com/2011/09/01/the-science-of-meetings/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=the-science-of-meetings</link>
		<comments>http://www.theopensourcerer.com/2011/09/01/the-science-of-meetings/#comments</comments>
		<pubDate>Wed, 31 Aug 2011 23:29:38 +0000</pubDate>
		<dc:creator>Alan Bell</dc:creator>
				<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://www.theopensourcerer.com/?p=2990</guid>
		<description><![CDATA[This post isn&#8217;t going to make an huge amount of sense to people who are not using IRC or involved in the Ubuntu project, feel free to let your eyes glaze over and wait for the next article. The #ubuntu-meeting IRC channel is the place where most of the regular team meetings of the Ubuntu [...]]]></description>
			<content:encoded><![CDATA[<p>This post isn&#8217;t going to make an huge amount of sense to people who are not using IRC or involved in the Ubuntu project, feel free to let your eyes glaze over and wait for the next article.<br />
The #ubuntu-meeting IRC channel is the place where most of the regular team meetings of the Ubuntu project take place. There was a bot called MootBot in the channel which was there to facilitate meetings, which it did for a number of years. I was never that impressed by what it did with the minutes, there was too much manual writing of meeting minutes which really the bot should have been doing for people. I started making a few tweaks to a copy of the bot so that it would generate formatted minutes in moin wiki syntax for pasting direct into wiki.ubuntu.com I had also been working on a complete rewrite of the code in Python rather than TCL that was started by the Debian project. This was a bit of a background task for me and was nowhere near finished, when a couple of weeks ago the original Mootbot broke and nobody had time to go fix it. As a result of this my next generation meeting bot was pressed into service somewhat ahead of schedule, bugs and all, and is now working hard in the #ubuntu-meeting channel under the name meeting<a href='http://www.youtube.com/watch?v=vEfKEzX9QLE' >ology</a>. The code is at <a href="https://code.launchpad.net/~ubuntu-bots/ubuntu-bots/meetingology">https://code.launchpad.net/~ubuntu-bots/ubuntu-bots/meetingology</a> and patches are very welcome. I am running a development version of the bot in the #meetingology channel, feel free to pop in and test it there.<br />
Meetingology supports rather more commands than the old bot and you can use the old form with square brackets [TOPIC] or just #topic and it isn&#8217;t case sensitive about commands. The full list of commands is documented here <a href="https://wiki.ubuntu.com/meetingology">https://wiki.ubuntu.com/meetingology</a>. In particular note that you can now do &#8220;#startmeeting meetingname&#8221; to set the overall meeting title. There are a number of improvements and issues to fix with the output minutes, I will get round to that over the next few weeks (patches are welcome remember). Some teams have their own meeting syntax and scripts to parse it, if you want a particular output format for your meeting then do come and find me and we can make it happen. The goal is that the post-meeting effort for the chair is copy-paste-done. Writing up minutes is a task that is not worthy of a human.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.theopensourcerer.com/2011/09/01/the-science-of-meetings/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Going dotty</title>
		<link>http://www.theopensourcerer.com/2011/08/31/going-dotty/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=going-dotty</link>
		<comments>http://www.theopensourcerer.com/2011/08/31/going-dotty/#comments</comments>
		<pubDate>Wed, 31 Aug 2011 20:47:08 +0000</pubDate>
		<dc:creator>Alan Bell</dc:creator>
				<category><![CDATA[Personal Stuff]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://www.theopensourcerer.com/?p=2960</guid>
		<description><![CDATA[Back when the very nice Ubuntu font was initially being developed I did some testing of it using the fontforge application and some looking through the Unicode specification for blocks of characters that should be implemented. There is all sorts of character sets tucked away in the Unicode standard including Klingon and Braille. Sadly the [...]]]></description>
			<content:encoded><![CDATA[<p>Back when the very nice <a href="http://font.ubuntu.com/">Ubuntu font</a> was initially being developed I did some testing of it using the <a href="http://fontforge.sourceforge.net/">fontforge</a> application and some looking through the Unicode specification for blocks of characters that should be implemented. There is all sorts of character sets tucked away in the Unicode standard including <a href="https://bugs.launchpad.net/ubuntu-font-family/+bug/650729">Klingon</a> and <a href="https://bugs.launchpad.net/ubuntu-font-family/+bug/669102">Braille</a>. Sadly the Klingon wishlist has been parked with a status of wontfix but Braille is an interesting one. I was expecting a block of characters in alphabetical order somewhere, but it isn&#8217;t quite like that. The specification has <a href="http://www.alanwood.net/unicode/braille_patterns.html">all the dot patterns</a> but quite how you type &#8220;this is in braille&#8221; and get &#8220;⠞⠓⠊⠎⠀⠊⠎⠀⠊⠝⠀⠃⠗⠁⠊⠇⠇⠑&#8221; is not defined in Unicode as there are a number of different mapping tables you can use to go from letters to dot patterns. So it would be great if the Ubuntu font had those glyphs, however they would be of limited practical use to most people who are interested in Braille. At this point I should clarify that I do know that Braille patterns on screen or printed flat on paper are as much use as a chocolate teapot, they have to be embossed to be read by the fingers. I am taking a broad interpretation of &#8220;people who are interested in Braille&#8221; and I am including in that someone who wants to make a simple sign that can be read in Braille perhaps using a bit of sheet metal and a centre punch and teachers wanting to get a class to make labels for their coat pegs with their names in Braille, that kind of thing. So for these use-cases and not for typesetting a book in Braille I have made as my first fontforge project a little font which has Braille dot patterns as the characters. This means you can type something in LibreOffice Writer (or word processor of your choosing) and change the font to see it in Braille. You can print it out and stick things on the dots, (if you want to do the centre punch thing do bear in mind that you need to punch through the back of the paper over the dots or you will make a sign that is mirrored and incomprehensible). So here it is, <a href="http://people.ubuntu.com/~alanbell/LibertusBraille.ttf">Libertus Braille</a>, a Free font for simple educational uses of Braille.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.theopensourcerer.com/2011/08/31/going-dotty/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>A Professional keyboard with an Ubuntu Logo on the super key</title>
		<link>http://www.theopensourcerer.com/2011/07/04/a-super-key-you-will-want-to-press/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=a-super-key-you-will-want-to-press</link>
		<comments>http://www.theopensourcerer.com/2011/07/04/a-super-key-you-will-want-to-press/#comments</comments>
		<pubDate>Mon, 04 Jul 2011 19:58:49 +0000</pubDate>
		<dc:creator>Alan Bell</dc:creator>
				<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://www.theopensourcerer.com/?p=2964</guid>
		<description><![CDATA[Today I got a new keyboard, nothing unusual and particularly blogworthy in that you might think, but look a little closer, especially at the two little keys on the bottom row that traditionally host two little adverts for a legacy operating system &#8211; they are gone! The little flags (previously discussed in the context of [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_2965" class="wp-caption alignleft" style="width: 310px"><a href="http://www.theopensourcerer.com/wp-content/uploads/2011/07/keyboard.jpg"><img class="size-medium wp-image-2965 " title="keyboard" src="http://www.theopensourcerer.com/wp-content/uploads/2011/07/keyboard-300x225.jpg" alt="" width="300" height="225" /></a><p class="wp-caption-text">Keyboard made from pure awesome</p></div>
<p>Today I got a new keyboard, nothing unusual and particularly blogworthy in that you might think, but look a little closer, especially at the two little keys on the bottom row that traditionally host two little adverts for a legacy operating system &#8211; they are gone! The little flags (<a href="http://www.theopensourcerer.com/2009/07/08/the-google-chrome-key/">previously discussed</a> in the context of Google ChromeOS) are replaced with the Circle of Friends, the Ubuntu Logo that symbolises friendship and freedom. So where, I hear you ask, did I get such a marvel of modern clavicula engineering? Well the answer to that is from our friends at the <a href="http://www.keyboardco.com">Keyboard Company</a> where they distribute and customise high end and specialist keyboards. This one is a <a href="http://www.keyboardco.com/keyboard_details.asp?PRODUCT=646">Filco Majestouch</a> which they modified by replacing the super keys with custom printed ones with the Circle of Friends on. Now you might note the price tag for this keyboard is £95 ex VAT, and yes this is a high end keyboard. It has a solid quality feel to it and the key action is superb. In fact when ordering you can specify one of three different key actions, tactile action, click action or linear action. I got the tactile one, which is not clicky, but has a point of resistance to push past in the travel at the actuation point. Kind of like pushing the accelerator on an automatic car past the bump to get it to kick down a gear.</p>
<p>It also does N Key rollover, which is great. Most cheap keyboards have a <a href="http://www.dribin.org/dave/keyboard/one_html/">matrix of wires and switches</a> that link keys into groups and when pressing multiple keys together this can lead to ambiguous signals that cause ghosting (keys being signalled as pressed which were not) and jamming (keys pressed, but not signaled). This keyboard has each key individually addressable, you can press a whole bunch of keys at once and it will know exactly which ones you have got pressed. This helps for the rapid typist and in gameplay where you might be holding down a bunch of keys to move a character whilst jumping, turning and firing. A missed keypress in this scenario could lead to an almost tragic loss of virtual life.</p>
<div id="attachment_2971" class="wp-caption alignright" style="width: 310px"><a href="http://www.theopensourcerer.com/wp-content/uploads/2011/07/stenqwerty.png"><img class="size-medium wp-image-2971" title="stenqwerty" src="http://www.theopensourcerer.com/wp-content/uploads/2011/07/stenqwerty-300x163.png" alt="" width="300" height="163" /></a><p class="wp-caption-text">Qwerty to Steno keyboard mapping</p></div>
<p>I am not really a gamer, but the N-Key rollover does interest me for a completely different reason, it means I can try out the chorded keyboard typing with <a href="http://plover.stenoknight.com/">Plover</a>. This allows you to write instead of one key at a time by pressing a chord of multiple keys like a court reporter would do on a stenotype machine, this can in theory allow you to communicate at a blistering 250wpm. This open source software reads what you are typing using the steno chords and maps it from a kind of syllable level shorthand into what you intended to say.</p>
<p>If you would like to have one of these fine keyboards you can order them from the <a href="http://www.keyboardco.com">keyboard company</a>, at the same price as the version with the flag key, just specify in the additional information box on the order form that you would like the Ubuntu Circle of Friends on the super key. They can ship anywhere and do them in pretty much any international layout, so if you want AZERTY or whatever then they can oblige. I would love to see them listed as a product in the <a href="http://shop.ubuntu.com">Ubuntu store</a> but as yet I have been unable to contact a human there, if anyone knows how to do that then do leave a comment.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.theopensourcerer.com/2011/07/04/a-super-key-you-will-want-to-press/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Ubuntu UK LoCo CDs</title>
		<link>http://www.theopensourcerer.com/2011/05/28/ubuntu-uk-loco-cds/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=ubuntu-uk-loco-cds</link>
		<comments>http://www.theopensourcerer.com/2011/05/28/ubuntu-uk-loco-cds/#comments</comments>
		<pubDate>Sat, 28 May 2011 18:59:18 +0000</pubDate>
		<dc:creator>Alan Bell</dc:creator>
				<category><![CDATA[FLOSS in the news]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[CDs]]></category>
		<category><![CDATA[LoCo Team]]></category>

		<guid isPermaLink="false">http://www.theopensourcerer.com/?p=2937</guid>
		<description><![CDATA[The allocation of CDs for the Ubuntu UK team arrived yesterday, to the excitement of the chickens. They have been using Kubuntu 10.10 for the last six months and are keen to evaluate the features of 11.04 (I prefer GNOME, the chickens prefer KDE). They started the upgrade by reading the CD sleeve carefully and [...]]]></description>
			<content:encoded><![CDATA[<p>The allocation of CDs for the Ubuntu UK team arrived yesterday, to the excitement of the chickens. They have been using Kubuntu 10.10 for the last six months and are keen to evaluate the features of 11.04 (I prefer GNOME, the chickens prefer KDE).</p>
<div id="attachment_2938" class="wp-caption aligncenter" style="width: 410px"><a href="http://www.theopensourcerer.com/wp-content/uploads/2011/05/110527_133843.jpg"><img class="size-full wp-image-2938 " title="110527_133843" src="http://www.theopensourcerer.com/wp-content/uploads/2011/05/110527_133843.jpg" alt="" width="400" height="300" /></a><p class="wp-caption-text">Bored chicken with last year&#39;s distro</p></div>
<p>They started the upgrade by reading the CD sleeve carefully</p>
<div id="attachment_2940" class="wp-caption aligncenter" style="width: 410px"><a href="http://www.theopensourcerer.com/wp-content/uploads/2011/05/110527_134327.jpg"><img class="size-full wp-image-2940" title="110527_134327" src="http://www.theopensourcerer.com/wp-content/uploads/2011/05/110527_134327.jpg" alt="" width="400" height="300" /></a><p class="wp-caption-text">Clarabelle reads the fine manual</p></div>
<p>and then installed the new Kubuntu 11.04 on a piece of string in the run so they can peck at it and check their feathers in the mirror.</p>
<div id="attachment_2939" class="wp-caption aligncenter" style="width: 410px"><a href="http://www.theopensourcerer.com/wp-content/uploads/2011/05/110527_133909.jpg"><img class="size-full wp-image-2939" title="110527_133909" src="http://www.theopensourcerer.com/wp-content/uploads/2011/05/110527_133909.jpg" alt="" width="400" height="300" /></a><p class="wp-caption-text">Installing Kubuntu 11.04</p></div>
<p>After the upgrade I took their old Kubuntu 10.10 CD and gave it a bit of a wash, when it stopped smelling too much I put it in my laptop and booted it, there was a bit of a crack on the outside edge and it didn&#8217;t fully boot, but it got to the bootloader and did about 15 seconds of productive loading before it failed. Check back in 6 months to find out how the Kubuntu 11.04 CD boots.</p>
<p>So now we need to decide how best to use the remaining 49 Kubuntu CDs, 50 Ubuntu Server CDs and 250 Ubuntu CDs. Preferably in a slightly less frivolous way than entertaining livestock.</p>
<p>Now that shipit has stopped doing individual CD requests we are going to reserve some for people on dialup who want CDs. The procedure for this is as follows.</p>
<ul>
<li>Email me, alanbell at ubuntu.com with a clear subject line saying you would like a CD.</li>
<li>I will then respond with my snail mail address.</li>
<li>You send me a <strong>stamped</strong> self addressed envelope big enough to hold a CD.</li>
<li>I put CD in envelope and send it back to you.</li>
</ul>
<p>So this is mildly inconvenient, and costs you more than free, but only about a quid, in postage. If you are on dialup (or an obsessive Ubuntu CD collector) this is still well worth doing, those on broadband have probably already got the .iso and burned it already.</p>
<p>Another batch will go to people distributing recycled PCs pre-installed with Ubuntu like <a href="http://www.ecycleonline.co.uk/">Remploy</a> I want these PCs to go out with an official CD in the pack, and some information about the LoCo team for the end user. Any company or charity involved with recycling PCs for distribution in the UK through the RaceOnline initiative or anything else is welcome to contact me to arrange CDs and help with doing an OEM build image for cloning (so on first boot it asks the user their name). These kind of organisations are not going to engage Canonical services, they just don&#8217;t have the margins, working constructively with them is certainly something we can do as a community team.</p>
<p>The rest will go to events and conferences where we have a presence, which means we need to have a presence at some events. I would really like the team to run a few bring-a-box installfests at university computing societies. If you want to help organise one that would be great, I am happy to support it with CDs and help get some people along to help.</p>
<p>If you have further ideas on how to use the CDs then do comment here, on the Ubuntu-UK mailing list or at the next team meeting on IRC.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.theopensourcerer.com/2011/05/28/ubuntu-uk-loco-cds/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Speak to me!</title>
		<link>http://www.theopensourcerer.com/2011/05/05/speak-to-me/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=speak-to-me</link>
		<comments>http://www.theopensourcerer.com/2011/05/05/speak-to-me/#comments</comments>
		<pubDate>Wed, 04 May 2011 23:13:40 +0000</pubDate>
		<dc:creator>Alan Bell</dc:creator>
				<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://www.theopensourcerer.com/?p=2918</guid>
		<description><![CDATA[Ubuntu comes with a built in speech synthesizer and an application called Orca which acts as a screen reader. Orca &#8220;looks&#8221; at what is on the page, decides what to say, then passes what it has to say to an intermediate service called speech dispatcher. Speech dispatcher then decides which voice synthesizer to use and [...]]]></description>
			<content:encoded><![CDATA[<p>Ubuntu comes with a built in speech synthesizer and an application called Orca which acts as a screen reader. Orca &#8220;looks&#8221; at what is on the page, decides what to say, then passes what it has to say to an intermediate service called speech dispatcher. Speech dispatcher then decides which voice synthesizer to use and gets the text read out. It is designed so that it could use different synthesizers for different languages, or different voices. So the chain is like this:</p>
<p>Application that wants to speak &#8220;hello world&#8221; -&gt; speech dispatcher -&gt; speech synthesizer -&gt; audio output</p>
<p>By default the speech synthesizer is one called espeak which has a number of synthetic voices (they sound like a robot should sound). You can try this now, go to a terminal window and enter the following:</p>
<pre>spd-say "hello world"</pre>
<p>If all is working you should hear your computer talking. So this is the default voice that is included on the size restricted Ubuntu CD. Whilst espeak is pretty good and synthetic voices perform well when speeded up (some blind people listen very very fast) there are more realistic voices and more sophisticated speech synthesizers available. The one I think is probably the most promising is called <a href="http://mary.dfki.de/">OpenMARY</a>. This has a range of voices available including a number based on the rather good <a href="http://en.wikipedia.org/wiki/Speech_synthesis#HMM-based_synthesis">Hidden Markov Model</a> technique. OpenMARY runs as a web server with a REST API, you go to the right URL and you get back a .wav file with the sound you asked for. Feel free to <a href="http://mumble.libertus.co.uk:59125/">have a play</a> with an OpenMARY server I installed on one of our servers, I have installed a bunch of decent hmm voices, try saying different things with them. So this is all rather fun and you can hear the difference in quality between the rather robotic espeak and the nearly human sounding OpenMARY, the next step is to get it working through speech dispatcher.</p>
<p>To do this I am using the speech dispatcher generic module which is a simple way of getting them to play together. Writing a proper module specific to OpenMary would allow a few more features to be used. To try this out we will be installing just a configuration file on your machine which tells speech dispatcher to pass the text it wants to say out to our OpenMARY server on the internet, you get back a wav file and it plays it. This is just meant for playing about really, don&#8217;t rely on our server to be there all the time and this also means that if I felt like it I could look at a log file on the server and see what you are saying (I can&#8217;t be bothered, and I don&#8217;t care what you say).</p>
<ul>
<li>Check that <strong>spd-say &#8220;hello world&#8221;</strong> actually works. If it doesn&#8217;t then go fix that first.</li>
<li>Download the config file from <a href="http://people.ubuntu.com/~alanbell/openmary.conf">http://people.ubuntu.com/~alanbell/openmary.conf</a>
<pre>wget http://people.ubuntu.com/~alanbell/openmary.conf</pre>
</li>
<li>Copy the config file to /etc/speech-dispatcher/modules/
<pre>sudo cp openmary.conf /etc/speech-dispatcher/modules/</pre>
</li>
<li>edit the speech dispatcher config to load your new module configuration file
<pre>sudo nano /etc/speech-dispatcher/speechd.conf</pre>
</li>
<li>Find the bit with all the AddModule lines (most are commented out with a #) and add a line containing:
<pre>AddModule "openmary" "sd_generic" "openmary.conf"</pre>
</li>
<li>Save and exit
<pre>Ctrl+x, y</pre>
</li>
<li>stop the speech dispatcher service if it is running
<pre>sudo killall speech-dispatcher</pre>
</li>
<li>Try it out
<pre>spd-say -o openmary "hello world"</pre>
</li>
</ul>
<p>If you want to run your own <a href="http://mary.dfki.de/Download">openmary server locally</a> (possibly better performance, works offline, more privacy) then edit the openmary.conf file and change the mumble.libertus.co.uk bits to localhost (or whatever server you want to point it at). To use your new voice in Orca go to the preferences window and select speech dispatcher and openmary as the synthesizer. The generic module only seems to allow you to use the default voice (it doesn&#8217;t report the list of voices available back to Orca). A proper module would do that and get other features available for Orca to control. If anyone wants to help with that it would be great.</p>
<p><strong>-Edit﻿﻿-</strong></p>
<p>As Stephane Graber pointed out you may need the sox and curl packages for this to work, I thought they were part of the default install, but maybe not. The bit that makes the magic happen is this line:</p>
<pre>"curl "http://mumble.libertus.co.uk:59125/process?INPUT_TEXT=`echo $DATA|sed 's/ /%20/g'`&amp;INPUT_TYPE=TEXT&amp;OUTPUT_TYPE=AUDIO&amp;AUDIO=WAVE_FILE&amp;LOCALE=en_GB&amp;VOICE=$VOICE" &gt; $TMPDIR/openmary.wav &amp;&amp; play $TMPDIR/openmary.wav &gt;/dev/null"</pre>
<p>which inserts $DATA (The phrase it wants to say) and $VOICE into a URL which returns a wav file, curl retrieves the file and we output it to /tmp/openmary.wav. Then we use the play command to turn the wav file we just downloaded into sound.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.theopensourcerer.com/2011/05/05/speak-to-me/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Taking Notes at UDS</title>
		<link>http://www.theopensourcerer.com/2011/05/04/taking-notes/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=taking-notes</link>
		<comments>http://www.theopensourcerer.com/2011/05/04/taking-notes/#comments</comments>
		<pubDate>Wed, 04 May 2011 20:28:59 +0000</pubDate>
		<dc:creator>Alan Bell</dc:creator>
				<category><![CDATA[OpenERP]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[UDS]]></category>

		<guid isPermaLink="false">http://www.theopensourcerer.com/?p=2905</guid>
		<description><![CDATA[The Ubuntu Developer Summit is coming up real soon now, starting Monday 9th May. For those not familiar with it this is a week long summit where developers and contributors to the Ubuntu project figure out what they are going to work on over the course of the next 6 month release cycle leading up [...]]]></description>
			<content:encoded><![CDATA[<p>The Ubuntu Developer Summit is coming up real soon now, starting Monday 9th May. For those not familiar with it this is a week long summit where developers and contributors to the Ubuntu project figure out what they are going to work on over the course of the next 6 month release cycle leading up to the Oneiric Ocelot release in October this year (11.10). I am not going to this UDS, it is over in Budapest and I just haven&#8217;t got the time available because we are just too busy doing OpenERP implementations for our customers. I may have a bit of time here and there to join in the live audio sessions and collaborative notetaking and action planning that goes on. Historically this has been done using the collaborative text editor &#8220;Gobby&#8221; which has been a source of frustration and lost data for several UDS events <img src='http://www.theopensourcerer.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </p>
<p>This year we have a new plan, the Gobby server is still available as a fallback, but we also have an <a href="http://etherpad.org">etherpad</a> server which I have been helping to get integrated into the main summit schedule. So the way this works is the summit website is a series of pages like this one: <a href="http://summit.ubuntu.com/uds-o/2011-05-09/">http://summit.ubuntu.com/uds-o/2011-05-09/</a> which list all the sessions going on. Each one has a little pen and pad icon on it, click that and you get to a page providing all the information about that one session, the time, room etc at the top, and the list of attendees and links to blueprints and wiki pages at the bottom. In the middle is the pad, where you can type stuff. There is no save button, everything is saved all the time.</p>
<p>For example have a look at <a href="http://summit.ubuntu.com/uds-o/meeting/community-o-unity-developer-participation/">http://summit.ubuntu.com/uds-o/meeting/community-o-unity-developer-participation/</a> you can see at the top I have put some hashtags (they will become clickable links when that bit gets turned on) and you can just type freeform text. If you are the first person to open a particular notes page there is a big button to click on to create the pad. We might jiggle the theme about in the next few days to add a panel at the side where you can see the names of the people typing in the pad. This approach means that the schedule itself is the index to the notes pages, the notes just work in a browser, on any platform and through firewalls and proxies with no special configuration. I hope (and I am pretty confident) that this will enhance the work done at UDS by people there in person and following on remotely.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.theopensourcerer.com/2011/05/04/taking-notes/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>How to install OpenERP 6 on Ubuntu 10.04 LTS Server (Part 2 &#8211; SSL)</title>
		<link>http://www.theopensourcerer.com/2011/04/21/how-to-install-openerp-6-on-ubuntu-10-04-lts-server-part-2-ssl/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=how-to-install-openerp-6-on-ubuntu-10-04-lts-server-part-2-ssl</link>
		<comments>http://www.theopensourcerer.com/2011/04/21/how-to-install-openerp-6-on-ubuntu-10-04-lts-server-part-2-ssl/#comments</comments>
		<pubDate>Thu, 21 Apr 2011 16:26:15 +0000</pubDate>
		<dc:creator>Alan Lord</dc:creator>
				<category><![CDATA[FLOSS in the news]]></category>
		<category><![CDATA[OpenERP]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[CalDAV]]></category>
		<category><![CDATA[SSL]]></category>

		<guid isPermaLink="false">http://www.theopensourcerer.com/?p=2869</guid>
		<description><![CDATA[This article follows on (hopefully not unsurprisingly) from part 1. In this post I&#8217;ll describe our current way of providing SSL encrypted access to a shiny new OpenERP server running on Ubuntu 10.04 LTS Server. We&#8217;re using the Apache webserver to act as a proxy and do SSL termination for web client access and for [...]]]></description>
			<content:encoded><![CDATA[<p>This article follows on (hopefully not unsurprisingly) from <a href="http://www.theopensourcerer.com/2011/04/19/how-to-install-openerp-6-on-ubuntu-10-04-lts-server-part-1">part 1</a>.</p>
<p>In this post I&#8217;ll describe <em>our current way</em> of providing SSL encrypted access to a shiny new OpenERP server running on Ubuntu 10.04 LTS Server. </p>
<p>We&#8217;re using the Apache webserver to act as a proxy and do SSL termination for web client access and for WebDAV/CalDAV access. The GTK client will also be running over an encrypted XMLRPC link directly to the OpenERP Server. Apache is the most widely used webserver in the world and there is oodles of documentation about it so I do not plan to go into any great detail about the configuration choices. One document that is worth pointing out however is the information about how to configure and administer Apache <strong>specifically</strong> under Debian/Ubuntu. The way Apache is packaged and set up is quite different from most other Linux distributions. A very useful document can be found here <code>/usr/share/doc/apache2.2-common/README.Debian.gz</code> on your server.</p>
<p><em>NB: For the purposes of this how to, we&#8217;ll be using self-signed certificates. A discussion of the pros and cons of this choice is beyond the scope of this article.</em></p>
<h3>Step 1. Install Apache and required modules</h3>
<p>On your server install apache2 by typing</p>
<p><code>sudo apt-get install apache2</code></p>
<p>Now we&#8217;ll tell apache that we want to use a few modules (<a href="http://httpd.apache.org/docs/2.2/mod/mod_ssl.html">mod_ssl</a>, <a href="http://httpd.apache.org/docs/2.2/mod/mod_proxy.html">mod_proxy</a>, <a href="http://httpd.apache.org/docs/2.2/mod/mod_proxy_http.html">mod_proxy_http</a>, <a href="http://httpd.apache.org/docs/2.2/mod/mod_headers.html">mod_headers</a> and <a href="http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html">mod_rewrite</a> [optional]) that are not enabled by default:</p>
<p><code>sudo a2enmod ssl proxy_http headers rewrite</code></p>
<p>Next, we need to generate a SSL certificate and key.</p>
<h3>Step 2. Create your cert and key</h3>
<p>I create the files in a temporary directory then move them to their final resting place once they have been built (the first <code>cd</code> is just to make sure we are in our home directory to start with):</p>
<p><code>cd<br />
mkdir temp<br />
cd temp</code></p>
<p>Then we generate a new key, you will be asked to enter a passphrase and confirm:</p>
<p><code>openssl genrsa -des3 -out server.pkey 1024</code></p>
<p>We don&#8217;t really want to have to enter a passphrase every time the server starts up so we remove the passphrase by doing this:</p>
<p><code>openssl rsa -in server.pkey -out server.key</code></p>
<p>Next we need to create a signing request which will hold the data that will be visible in your final certificate:</p>
<p><code>openssl req -new -key server.key -out server.csr</code></p>
<p>This will generate a series of prompts like this: Enter the information as requested:</p>
<blockquote><p>
You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter &#8216;.&#8217;, the field will be left blank.<br />
&#8212;&#8211;<br />
Country Name (2 letter code) [AU]:<br />
State or Province Name (full name) [Some-State]:<br />
Locality Name (eg, city) []:<br />
Organization Name (eg, company) [Internet Widgits Pty Ltd]:<br />
Organizational Unit Name (eg, section) []:<br />
Common Name (eg, YOUR name) []:<br />
Email Address []:</p>
<p>Please enter the following &#8216;extra&#8217; attributes<br />
to be sent with your certificate request<br />
A challenge password []:<br />
An optional company name []:The Client&#8217;s Company
</p></blockquote>
<p>And finally we self-sign our certificate.</p>
<p><code>openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt</code></p>
<p>We only need two of the files in the working directory, the key and the certificate. But before we can use them they need to have their ownership and access rights altered:</p>
<p><code>sudo chown openerp:root server.crt server.key<br />
sudo chmod 640 server.crt server.key</code></p>
<p>And then we put them in a sensible place:</p>
<p><code>sudo mkdir /etc/ssl/openerp<br />
sudo chown openerp:root /etc/ssl/openerp<br />
sudo chmod 710 /etc/ssl/openerp<br />
sudo mv server.crt server.key /etc/ssl/openerp/</code></p>
<p>Now the key and certificate are safely stored away, we can tell Apache where they are:</p>
<h3>Step 3. Create the Apache site configuration file</h3>
<p>We create a new Virtual Host configuration file </p>
<p><code>sudo nano /etc/apache2/sites-available/openerp-ssl</code></p>
<p>with the following content:</p>
<blockquote><p>
<code>&lt;VirtualHost *:443&gt;</p>
<p>    SSLEngine on<br />
    SSLCertificateFile    /etc/ssl/openerp/server.crt<br />
    SSLCertificateKeyFile /etc/ssl/openerp/server.key</p>
<p>    ProxyRequests Off</p>
<p>    &lt;Proxy *&gt;<br />
        Order deny,allow<br />
        Allow from all<br />
    &lt;/Proxy&gt;</p>
<p>    ProxyVia On</p>
<p>    ProxyPass    /webdav/    http://127.0.0.1:8069/webdav/<br />
    &lt;Location /webdav/ &gt;<br />
        ProxyPassReverse /webdav/<br />
        &lt;Limit OPTIONS PROPFIND GET REPORT MKACTIVITY PROPPATCH PUT MOVE COPY DELETE LOCK UNLOCK&gt;<br />
          Order Deny,Allow<br />
          Allow from all<br />
          Satisfy Any<br />
        &lt;/Limit&gt;<br />
    &lt;/Location&gt;</p>
<p>    ProxyPass    /   http://127.0.0.1:8080/<br />
    &lt;location / &gt;<br />
        ProxyPassReverse /<br />
    &lt;/location&gt;</p>
<p>    RequestHeader set "X-Forwarded-Proto" "https"</p>
<p>    # Fix IE problem (httpapache proxy dav error 408/409)<br />
    SetEnv proxy-nokeepalive 1</p>
<p>&lt;/VirtualHost&gt;</code>
</p></blockquote>
<p>Note there are two Proxy configurations. One for <code>/webdav/</code> and one for <code>/</code>. If you do not intend to use WebDAV or CalDAV then you can remove that section. But essentially, we are telling apache that WebDAV traffic needs to go to the XMLRPC port on the OpenERP server, and normal web traffic needs to go to the web client that is listening on port 8080. The order is also important. If <code>/</code> came before <code>/webdav/</code> then it wouldn&#8217;t work.</p>
<p>And then we can enable the new site configuration.</p>
<p><code>sudo a2ensite openerp-ssl</code></p>
<p>Optionally, you can use mod_rewrite to redirect any normal (non-encrypted) web browser traffic to the SSL port (443).</p>
<p>To do this, add the following lines (outside of the <code>&lt;directory&gt;</code> config blocks) into the file <code>/etc/apache2/sites-available/default</code></p>
<blockquote><p>
RewriteEngine   on<br />
RewriteCond     %{SERVER_PORT} ^80$<br />
RewriteRule     ^(.*)$ https://%{SERVER_NAME}$1 [L,R]
</p></blockquote>
<h3>Step 4. Change the OpenERP server and web-client configuration files</h3>
<p>The next step is to re-configure the OpenERP server and Web client so that the non-encrypted services are not accessible from the outside world.</p>
<p>In <code>/etc/openerp-server.conf</code> the two non-encrypted services will only listen on localhost, i.e. not from external connections so in effect only traffic from Apache will be accepted. We also tell the XMLRPC-SSL service where to find the necessary key and certificate. </p>
<p>Make the following changes:</p>
<p><code>sudo nano /etc/openerp-server.conf</code></p>
<blockquote><p>
xmlrpc = True<br />
xmlrpc_interface = 127.0.0.1<br />
xmlrpc_port = 8069</p>
<p>netrpc = True<br />
netrpc_interface = 127.0.0.1<br />
netrpc_port = 8070</p>
<p>xmlrpcs = True<br />
xmlrpcs_interface =<br />
xmlrpcs_port = 8071<br />
secure_pkey_file = /etc/ssl/openerp/server.key<br />
secure_cert_file = /etc/ssl/openerp/server.crt
</p></blockquote>
<p>If you want to have WebDAV/CalDAV access add the following at the bottom of the config file.</p>
<blockquote><p>
[webdav]<br />
enable = True<br />
vdir = webdav
</p></blockquote>
<p>Then in the web client config file /etc/openerp-web.conf make the following changes so that it also only accepts traffic from localhost:</p>
<p><code>sudo nano /etc/openerp-web.conf</code></p>
<blockquote><p>
# Some server parameters that you may want to tweak<br />
server.socket_host = &#8220;127.0.0.1&#8243;</p>
<p># Set to True if you are deploying your App behind a proxy<br />
# e.g. Apache using mod_proxy<br />
tools.proxy.on = True</p>
<p># If your proxy does not add the X-Forwarded-Host header, set<br />
# the following to the *public* host url.<br />
tools.proxy.base = &#8216;https://your-ip-or-domain&#8217;</p>
<p># Set to false to disable CSRF checks<br />
tools.csrf.on = False
</p></blockquote>
<p>That&#8217;s it.</p>
<h3>Step 5. Try it out</h3>
<p>Restart the services to load the new configurations</p>
<p><code>sudo service openerp-server restart<br />
sudo service openerp-web restart<br />
sudo service apache2 restart</code></p>
<p>You should not be able to connect to the web client on port 8080 and the GTK client should not connect on either the NetRPC (8070) or XMLRPC (8069) services. For the web access you just need to visit https://your-ip-or-domain and in the GTK client you will need to use port 8071 and choose the XMLRPC (Secure) protocol.</p>
<p>For CalDAV access the URL to a calendar will be something like this:</p>
<p><code>https://your-ip-or-domain/webdav/DB_NAME/calendars/users/USERNAME/c/CALENDAR_NAME</code></p>
<p>I hope that is helpful and obviously we&#8217;d love to hear comments and suggestions for improvements.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.theopensourcerer.com/2011/04/21/how-to-install-openerp-6-on-ubuntu-10-04-lts-server-part-2-ssl/feed/</wfw:commentRss>
		<slash:comments>74</slash:comments>
		</item>
		<item>
		<title>How to install OpenERP 6 on Ubuntu 10.04 LTS Server (Part 1)</title>
		<link>http://www.theopensourcerer.com/2011/04/19/how-to-install-openerp-6-on-ubuntu-10-04-lts-server-part-1/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=how-to-install-openerp-6-on-ubuntu-10-04-lts-server-part-1</link>
		<comments>http://www.theopensourcerer.com/2011/04/19/how-to-install-openerp-6-on-ubuntu-10-04-lts-server-part-1/#comments</comments>
		<pubDate>Tue, 19 Apr 2011 13:56:25 +0000</pubDate>
		<dc:creator>Alan Lord</dc:creator>
				<category><![CDATA[OpenERP]]></category>
		<category><![CDATA[The Open Learning Centre]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[CalDAV]]></category>
		<category><![CDATA[denyhosts]]></category>
		<category><![CDATA[Hosting]]></category>
		<category><![CDATA[openssh]]></category>
		<category><![CDATA[PostgreSQL]]></category>
		<category><![CDATA[Server]]></category>
		<category><![CDATA[Virtualisation]]></category>

		<guid isPermaLink="false">http://www.theopensourcerer.com/?p=2772</guid>
		<description><![CDATA[Recently at work, we&#8217;ve been setting up several new instances of OpenERP for customers. Our server operating system of choice is Ubuntu 10.04 LTS. Installing OpenERP isn&#8217;t really that hard, but having seen several other &#8220;How Tos&#8221; on-line describing various methods where none seemed to do the whole thing in what I consider to be [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.openerp.com"><img src="http://www.theopensourcerer.com/wp-content/uploads/2011/04/logo1.png" alt="OpenERP Logo" title="OpenERP Logo" width="190" height="46" class="size-full wp-image-2815 alignleft" /></a>Recently at <a href="http://www.theopenlearningcentre.com/">work</a>, we&#8217;ve been setting up several new instances of <a href="http://www.openerp.com">OpenERP</a> for customers. Our server operating system of choice is <a href="http://www.ubuntu.com/business/server/overview">Ubuntu</a> 10.04 LTS.</p>
<p>Installing OpenERP isn&#8217;t really that hard, but having seen several other &#8220;How Tos&#8221; on-line describing various methods where none seemed to do the whole thing in what I consider to be &#8220;the right way&#8221;, I thought I&#8217;d explain how we do it. <em>There are a few forum posts that I&#8217;ve come across where the advice is just plain wrong too, so do be careful.</em></p>
<p>As we tend to host OpenERP on servers that are connected to the big wide Internet, our objective is to end up with a system that is:</p>
<ul>
<ol><strong>A:</strong> Accessible only via encrypted (SSL) services from the GTK client, Web browser, WebDAV and CalDAV</ol>
<ol><strong>B:</strong> Readily upgradeable and customisable</ol>
</ul>
<p>One of my friends said to me recently, &#8220;surely it&#8217;s just <code>sudo apt-get install openerp-server</code> isn&#8217;t it?&#8221; Fair enough; this would actually work. But there are several problems I have with using a packaged implementation in this instance:</p>
<ul>
<li>Out-of-date. The latest packaged version I could see, in either the Ubuntu or Debian repositories, was 5.0.15. OpenERP is now at 6.0.3 and is a major upgrade from the 5.x series.</li>
<li>Lack of control. Being a business application, with many configuration choices, it can be harder to tweak <em>your way</em> when the packager determined that one particular way was the &#8220;true path&#8221;.</li>
<li>Upgrades and patches. Knowing how, where and why your OpenERP instance is installed the way it is, means you can decide when and how to update it and patch it, or add custom modifications.</li>
</ul>
<p>So although the way I&#8217;m installing OpenERP below is manual, it gives us a much more fine-grained level of control. Without further ado then here is <em>my way</em> as it stands currently (&#8220;currently&#8221; because you can almost always improve things. <em>HINT: suggestions for improvement gratefully accepted</em>).</p>
<p><em>[Update 18/08/2011: I've updated this post for the new 6.0.3 release of OpenERP]</em></p>
<h3>Step 1. Build your server</h3>
<p>I install just the bare minimum from the install routine (you can install the openssh-server during the install procedure or install subsequently depending on your preference).</p>
<p>After the server has restarted for the first time I install the openssh-server package (so we can connect to it remotely) and <a href="http://denyhosts.sourceforge.net/">denyhosts</a> to add a degree of brute-force attack protection. There are other protection applications available: I&#8217;m not saying this one is the best, but it&#8217;s one that works and is easy to configure and manage. <em>If you don&#8217;t already, it&#8217;s also worth looking at setting up key-based ssh access, rather than relying on passwords. This can also help to limit the potential of brute-force attacks.</em> [NB: This isn't a How To on securing your server...]</p>
<p><code>sudo apt-get install openssh-server denyhosts</code></p>
<p>Now make sure you are running all the latest patches by doing an update:</p>
<p><code>sudo apt-get update</code><br />
<code>sudo apt-get dist-upgrade</code></p>
<p>Although not always essential it&#8217;s probably a good idea to reboot your server now and make sure it all comes back up and you can still login via ssh.</p>
<p>Now we&#8217;re ready to start the OpenERP install.</p>
<h3>Step 2. Create the OpenERP user that will own and run the application</h3>
<p><code>sudo adduser --system --home=/opt/openerp --group openerp</code></p>
<p>This is a &#8220;system&#8221; user. It is there to own and run the application, it isn&#8217;t supposed to be a <em>person type</em> user with a login etc. In Ubuntu, a system user gets a UID below 1000, has no shell (well it&#8217;s actually <code>/bin/false</code>) and has logins disabled. Note that I&#8217;ve specified a &#8220;home&#8221; of <code>/opt/openerp</code>, this is where the OpenERP server, and optional web client, code will reside and is created automatically by the command above. The location of the server code is your choice of course, but be aware that some of the instructions and configuration files below may need to be altered if you decide to install to a different location. </p>
<h3>Step 3. Install and configure the database server, PostgreSQL</h3>
<p><code>sudo apt-get install postgresql</code></p>
<p>Then configure the OpenERP user on postgres:</p>
<p>First change to the postgres user so we have the necessary privileges to configure the database.</p>
<p><code>sudo su - postgres</code></p>
<p>Now create a new database user. This is so OpenERP has access rights to connect to PostgreSQL and to create and drop databases. Remember what your choice of password is here; you will need it later on:</p>
<p><code>createuser --createdb --username postgres --no-createrole --no-superuser --pwprompt openerp<br />
    Enter password for new role: ********<br />
    Enter it again: ********</code></p>
<p><em>[Update 18/08/2011: I have added the <code>--no-superuser</code> switch. There is no need for the openerp database user to have superuser privileges.]</em></p>
<p>Finally exit from the postgres user account:</p>
<p><code>exit</code></p>
<h3>Step 4. Install the necessary Python libraries for the server</h3>
<p><code>sudo apt-get install python python-psycopg2 python-reportlab \<br />
     python-egenix-mxdatetime python-tz python-pychart python-mako \<br />
     python-pydot python-lxml python-vobject python-yaml python-dateutil \<br />
     python-pychart python-webdav</code></p>
<p>And if you plan to use the Web client install the following:</p>
<p><code>sudo apt-get install python-cherrypy3 python-formencode python-pybabel \<br />
     python-simplejson python-pyparsing</code></p>
<h3>Step 5. Install the OpenERP server, and optional web client, code</h3>
<p>I tend to use wget for this sort of thing and I download the files to my home directory. </p>
<p>Make sure you get the latest version of the application files. At the time of writing this it&#8217;s <del datetime="2011-08-18T17:32:16+00:00">6.0.2</del> 6.0.3; I got the download links from their <a href="http://www.openerp.com/downloads">download page</a>.</p>
<p><code>wget http://www.openerp.com/download/stable/source/openerp-server-6.0.3.tar.gz</code></p>
<p>And if you want the web client:</p>
<p><code>wget http://www.openerp.com/download/stable/source/openerp-web-6.0.3.tar.gz</code></p>
<p>Now install the code where we need it: cd to the <code>/opt/openerp/</code> directory and extract the tarball(s) there.</p>
<p><code>cd /opt/openerp<br />
sudo tar xvf ~/openerp-server-6.0.3.tar.gz<br />
sudo tar xvf ~/openerp-web-6.0.3.tar.gz</code></p>
<p>Next we need to change the ownership of all the the files to the openerp user and group.</p>
<p><code>sudo chown -R openerp: *</code></p>
<p>And finally, the way I have done this is to copy the server and web client directories to something with a simpler name so that the configuration files and boot scripts don&#8217;t need constant editing (I call them, rather unimaginatively, <code>server</code> and <code>web</code>). I started out using a <a href="http://en.wikipedia.org/wiki/Symbolic_link">symlink</a> solution, but I found that when it comes to upgrading, it seems to make more sense to me to just keep a copy of the files in place and then overwrite them with the new code. This way you keep any custom or user-installed modules and reports etc. all in the right place.</p>
<p><code>sudo cp -a openerp-server-6.0.3 server<br />
sudo cp -a openerp-web-6.0.3 web</code></p>
<p>As an example, should OpenERP 6.0.4 come out next, I can extract the tarballs into <code>/opt/openerp/</code> as above. I can do any testing I need, then repeat the copy command (replacing 6.0.3 obviously) so that the modified files will overwrite as needed and any custom modules, report templates and such will be retained. Once satisfied the upgrade is stable, the older 6.0.3 directories can be removed if wanted.</p>
<p>That&#8217;s the OpenERP server and web client software installed. The last steps to a working system are to set up the two (server and web client) configuration files and associated <code>init</code> scripts so it all starts and stops automatically when the server boots and shuts down.</p>
<h3>Step 6. Configuring the OpenERP application</h3>
<p>The default configuration file for the server (in <code>/opt/openerp/server/doc/</code>) could really do with laying out a little better and a few more comments in my opinion. I&#8217;ve started to tidy up this config file a bit and <a href='http://www.theopensourcerer.com/wp-content/uploads/2011/04/openerp-server.conf'>here is a link</a> to the one I&#8217;m using at the moment (with the obvious bits changed). You need to copy or paste the contents of this file into <code>/etc/</code> and call the file <code>openerp-server.conf</code>. Then you should secure it by changing ownership and access as follows:</p>
<p><code>sudo chown openerp:root /etc/openerp-server.conf<br />
sudo chmod 640 /etc/openerp-server.conf</code></p>
<p>The above commands make the file owned and writeable only by the openerp user and only readable by openerp and root.</p>
<p>To allow the OpenERP server to run initially, you should only need to change one line in this file. Toward to the top of the file change the line <code>db_password = ********</code> to have the same password you used way back in step 3.  Use your favourite text editor here. I tend to use nano, e.g. <code>sudo nano /etc/openerp-server.conf</code></p>
<p>Once the config file is edited, you can start the server if you like just to check if it actually runs.</p>
<p><code>/opt/openerp/server/bin/openerp-server.py --config=/etc/openerp-server.conf</code></p>
<p>It won&#8217;t really work just yet as it isn&#8217;t running as the openerp user. It&#8217;s running as your normal user so it won&#8217;t be able to talk to the PostgreSQL database. Just type <code>CTL+C</code> to stop the server.</p>
<h3>Step 7. Installing the boot script</h3>
<p>For the final step we need to install a script which will be used to start-up and shut down the server automatically and also run the application as the correct user. <a href='http://www.theopensourcerer.com/wp-content/uploads/2011/04/openerp-server'>Here&#8217;s a link to the one</a> I&#8217;m using currently.</p>
<p>Similar to the config file, you need to either copy it or paste the contents of this script to a file in <code>/etc/init.d/</code> and call it <code>openerp-server</code>. Once it is in the right place you will need to make it executable and owned by root:</p>
<p><code>sudo chmod 755 /etc/init.d/openerp-server<br />
sudo chown root: /etc/init.d/openerp-server</code></p>
<p>In the config file there&#8217;s an entry for the server&#8217;s log file. We need to create that directory first so that the server has somewhere to log to and also we must make it writeable by the openerp user:</p>
<p><code>sudo mkdir /var/log/openerp<br />
sudo chown openerp:root /var/log/openerp</code></p>
<h3>Step 8. Testing the server</h3>
<p>To start the OpenERP server type:</p>
<p><code>sudo /etc/init.d/openerp-server start</code></p>
<p>You should now be able to view the logfile and see that the server has started.</p>
<p><code>less /var/log/openerp/openerp-server.log</code></p>
<p><em>If there are any problems starting the server now you need to go back and check. There&#8217;s really no point ploughing on if the server doesn&#8217;t start&#8230;</em></p>
<div id="attachment_2794" class="wp-caption alignright" style="width: 528px"><img src="http://www.theopensourcerer.com/wp-content/uploads/2011/04/Screenshot-OpenERP-Login.png" alt="OpenERP - First Login" title="OpenERP - First Login" width="518" height="268" class="size-full wp-image-2794" /><p class="wp-caption-text">OpenERP - First Login</p></div>
<p>If you now start up the GTK client and point it at your new server you should see a message like this:</p>
<p>Which is a good thing. It means the server is accepting connections and you do not have a database configured yet. I will leave configuring and setting up OpenERP as an exercise for the reader. This is a how to for installing the server. Not a how to on using and configuring OpenERP itself&#8230;</p>
<p>What I do recommend you do at this point is to change the super admin password to something nice and strong. By default it is &#8220;admin&#8221; and with that a user can create, backup, restore <strong>and</strong> drop databases (in the GTK client, go to the file menu and choose the Databases -> Administrator Password option to change it). This password is written as plain text into the /etc/openerp-server.conf file. Hence why we restricted access to just openerp and root. </p>
<p><em>One rather strange thing I&#8217;ve just realised is that when you change the super admin password and save it, OpenERP completely re-writes the config file. It removes all comments and scatters the configuration entries randomly throughout the file. I&#8217;m not sure as of now if this is by design or not.</em></p>
<p>Now it&#8217;s time to make sure the server stops properly too: </p>
<p><code>sudo /etc/init.d/openerp-server stop</code></p>
<p>Check the logfile again to make sure it has stopped and/or look at your server&#8217;s process list.</p>
<h3>Step 9. Automating OpenERP startup and shutdown</h3>
<p>If everything above seems to be working OK, the final step is make the script start and stop automatically with the Ubuntu Server. To do this type:</p>
<p><code>sudo update-rc.d openerp-server defaults</code></p>
<p>You can now try rebooting you server if you like. OpenERP should be running by the time you log back in.</p>
<p>If you type <code>ps aux | grep openerp</code> you should see a line similar to this:</p>
<p><code>openerp    708  3.8  5.8 181716 29668 ?  Sl   21:05   0:00 python /opt/openerp/server/bin/openerp-server.py -c /etc/openerp-server.conf</code></p>
<p>Which shows that the server is running. And of course you can check the logfile or use the GTK client too.</p>
<h3>Step 10. Configure and automate the Web Client</h3>
<p>Although it&#8217;s called the web <em>client</em>, it&#8217;s really another server-type application which [ahem] <em>serves</em> OpenERP to users via a web browser instead of the GTK desktop client. </p>
<p>If you want to use the web client too, it&#8217;s basically just a repeat of steps 6, 7, 8 and 9. </p>
<p>The <a href='http://www.theopensourcerer.com/wp-content/uploads/2011/04/openerp-web.conf'>default configuration file for the web client</a> (can also be found in /opt/openerp/web/doc/openerp-web.cfg) is laid out more nicely than the server one and should work as is when both the server and web client are installed on the same machine as we are doing here. I have changed one line to turn on error logging and point the file at our <code>/var/log/openerp/</code> directory. For our installation, the file should reside in <code>/etc/</code>, be called <code>openerp-web.conf</code> and have it&#8217;s owner and access rights set as with the server configuration file:</p>
<p><code>sudo chown openerp:root /etc/openerp-web.conf<br />
sudo chmod 640 /etc/openerp-web.conf</code></p>
<p>Here is a <a href='http://www.theopensourcerer.com/wp-content/uploads/2011/04/openerp-web'>web client boot script</a>. This needs to go into <code>/etc/init.d/</code>, be called <code>openerp-web</code> and be owned by root and executable.</p>
<p><code>sudo chmod 755 /etc/init.d/openerp-web<br />
sudo chown root: /etc/init.d/openerp-web</code></p>
<p>You should now be able to start the web server by entering the following command:</p>
<p><code>sudo /etc/init.d/openerp-web start</code></p>
<p>Check the web client is running by looking in the log file, looking at the process log and, of course, connecting to your OpenERP server with a web browser. The web client by default runs on port 8080 so the URL to use is something like this: <code>http://my-ip-or-domain:8080</code></p>
<p>Make sure the web client stops properly:</p>
<p><code>sudo /etc/init.d/openerp-web stop</code></p>
<p>And then configure it to start and stop automatically.</p>
<p><code>sudo update-rc.d openerp-web defaults</code></p>
<p>You should now be able to reboot your server and have the OpenERP server and web client start and stop automatically.</p>
<p>I think that will do for this post. It&#8217;s long enough as it is! </p>
<p>I&#8217;ll do a part 2 in a little while where I&#8217;ll cover using apache, ssl and mod_proxy to provide encrypted access to all services. </p>
<p><strong>[UPDATE: <a href="http://www.theopensourcerer.com/2011/04/21/how-to-install-openerp-6-on-ubuntu-10-04-lts-server-part-2-ssl/">Part 2 is here</a>]</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.theopensourcerer.com/2011/04/19/how-to-install-openerp-6-on-ubuntu-10-04-lts-server-part-1/feed/</wfw:commentRss>
		<slash:comments>151</slash:comments>
		</item>
	</channel>
</rss>

