Showing posts with label red hat. Show all posts
Showing posts with label red hat. Show all posts

Sunday, May 5, 2013

Book chapter on the use of open source software in the pharmaceutical industry


During my final year at AstraZeneca I was asked to contribute a chapter to "Open source software in life science research: Practical solutions to common challenges in the pharmaceutical industry and beyond". Given this work would be very hard to publish in JCIM, JMC etc and I have never written a book chapter before it was the perfect opportunity. The chapter was entitled: Design Tracker: an easy to use and flexible hypothesis tracking system to aid project team working. It was coauthored by Martin Harrison, who wrote Design Tracker. The abstract sums up best what it covers:
Design Tracker is a hypothesis tracking system used across all sites and research areas in AstraZeneca by the global chemistry community. It is built on the LAMP (Linux, Apache, MySQL, PHP/ Python) software stack, which started as a single server and has now progressed to a six-server cluster running cutting-edge high availability software and hardware. This chapter describes how a local tool was developed into a global production system.
Design Tracker has been mentioned in a few external presentations before but I believe this is the first firm details about it. We talk about its use and how it came to be a global chemistry tool from a prototype at one site. As the book topic suggests we also cover the open source technologies we used to power it. While LAMP is not new, it is not exactly mainstream in the corporate environment for many pharmaceutical companies. We had to harden our setup to make it suitable for 24/7 use, so in addition to the regulars on LAMP we added Red Hat Cluster Suite, Continuent Tungsten and NGINX. We also took the opportunity to move away from apache/mod_python to apache/mod_wsgi. The end result was a service which is available 24/7 and future proofed compared to our previous solution.

The worlds most dynamic and frequently visited websites are powered by similar technologies so they have clearly proven themselves to be suited for the relatively modest needs of a single pharmaceutical company.

The book is available on Amazon UK & US and probably your favourite book reseller as well (ISBN: 978-1907568978). I hope you enjoy our chapter and the many others interesting topics covered.

Sunday, February 19, 2012

Operating systems which are current for now


After switching employer I'm no longer tied to Windows Vista & Red Hat. Truth be told I'm quite happy on Red Hat, Vista less so. Anyway, my new setup is Mac OS X Lion & Ubuntu. I use Lion on my personal computer so that is no problem. Although from a developer perspective OS X isn't Linux like Red Hat, but once you learn the tweaks it does play ball.



As for my new Linux workstation I was encouraged to use Ubuntu. I tried Ubuntu briefly at University and didn't really see what the fuss was about. If anything I found it really annoying as everything I wanted (developer/sysadmin tools) were not installed. However, a new job means an open mind and I've landed with Ubuntu 11.10. I had heard about Unity and indeed it is an impressive desktop, which has been a pleasure to use. Ubuntu 12.04 is out in a matter of weeks and will feature HUD, which again is very nice, but is nothing new over one of my favorite Mac apps: Alfred (Like QuickSilver).

Mountain Lion has just been announced as well. So there will be plenty of activity for my operating systems this year, just after I've got them both setup the way I want them!

Thursday, September 23, 2010

Subversion Edge

Subversion is an excellent version control system. It is mature enough to have all sorts of integration - with Apache and Python amongst others. This enables easy communication via the HTTP protocol and language bindings, such as python to form web interfaces for repositories.

With subversion being a server-client model the version of the server is the most important component as it determines what features you can actually use. No good having a 1.6 client if the server is 1.2 as only 1.2 features are available. Depressingly this was the situation I was in. Unsurprisingly, the good folk at CollabNet have added lots of useful new features, which I need to use.

Compiling subversion is actually dead easy (as I have discussed previously, plus lots of binaries are available). So what is Subversion Edge? Essentially a bundle of Apache, Subversion and ViewVC server in a convenient tarball. Then throw in a bonus admin web interface as well. Upgrading your server version becomes slightly more tricky when Apache and Python are tied to it. No worries with Subversion Edge as it has a built-in update mechanism. One of my pet peeves is multiple usernames/passwords. Another freebie from Subversion Edge is LDAP support so plug straight in your authentication system - nice. One less component to ensure you compile against.

I started using the beta over the summer and have had no problems. The 1.2.1 release is now happily serving many repositories for me.  If you run a very large and complicated setup you may find Subversion Edge is too restricted for you, but for a large number of users it will meet your needs.

If you maintain subversion repositories I strongly recommend you give Subversion Edge a go today. Did I mention it was free as well?

Useful links:

Thursday, April 16, 2009

GCC 4.3 on RHEL4

There comes a time when you'll need the latest (or newer compilers). Unfortunately they are not always easy to upgrade.

Here I've installed GCC 4.3 on RHEL4.4, but in principle should work for any distribution.

Download the latest version of these:

Compile binutils first

./configure --prefix=/home/craigb/binutils
make
make install

Add your new binaries to your PATH (export PATH=/home/craigb/binutils/bin:$PATH) and libraries to LD_LIBRARY_PATH (export LD_LIBRARY_PATH=/home/craigb/binutils/lib:$LD_LIBRARY_PATH) next compile GMP

./configure --prefix=/home/craigb/gmp
make
make install

Add these libraries to your LD_LIBRARY_PATH (export LD_LIBRARY_PATH=/home/craigb/gmp/lib:$LD_LIBRARY_PATH), next compile MPFR

Download the latest patches first
./configure --prefix=/home/craigb/mpfr
make
make install

Add these libraries to your LD_LIBRARY_PATH (like above), now compile GCC

cd /home/craigb/gcc-build (Note not the same folder as the source)
/home/craigb/gcc-4.3.3/configure --prefix=/home/craigb/gcc --with-gmp=/home/craigb/gmp --with-mpfr=/home/craigb/mpfr
make
make install

You should find GCC in /home/craigb/gcc/bin!

It is good practise to read the INSTALL and/or README files for all the applications before running the generic configure, make, make install above. If make check or make test is available do that as well.