derBaum.com a page about Economics, Web Development and food.  

Feature Creep in Lab Software

Customers want features, features, features and a clean, easy to use application. How to square that circle?

Sure, the goal for Labordatenbank is to provide clean and easy to use applications. Laboratories have complex tasks to solve. That's what they do. No need for lab software to add even more complexity.

Alright than, keep it simple!

Having said that, labs do need specific features to get specific tasks done.
While every feature may add value to at least one user, it also adds complexity to the whole laboratory information system.

We approach this dilemma by

  1. learning: better understanding enables less complex solutions.
  2. customizing: features are only activated on need to use basis.
  3. saying no: if 1.) and 2.) fails and a requests adds more complexity than value, say so and stay firm.
The last may well be the toughest. But saying no is just as important.

Labels:


 

Fulfilling Development

As I wrote before Menschen müssen arbeiten und lieben um Erfüllung zu finden.

Would I enjoy spending my life on a beach under the sun? Surely, for a week. But in the end, I need to do great work to find fulfillment. Ideally, work that flows.

I find flow when I'm facing challenges and successes in rapid succession. Really both is needed to stay in the flow of maximum productivity. Tools like Textmate, OS X and git provide fast cycles of code, test and deploy. Which is key to quickly jump from challenge to success and back.

Sure, to run a software company we have to manage marketing, sales, contracts, accounting and so on. But what I enjoy is finding those seemingly obvious solutions in interface and database design that ultimatly provide value to our customer and therefor drive our business.

It's not Twitter or some fancy web company monetizing eyeballs. We charge money for software that customers value. With our customers we develop solutions to collect and manage literally billions of measurements. If we can make their work more effective, than that's fulfilling development!

Labels:


 

Labordatenbank Demos: Allgemeine Einführung

Labels:


 

iPhone Surgery

My friend Peter was kind enough to bring me an iPhone from New York. It looked cool, but initially it was locked to AT&T and therefor useless in Europe. But luckily I found an unlocking guide on the web: iPhone in Switzerland.

It looked tough, but doable. So Stefan and I decided to go for it.

Me with special light to see impossible small circuits.
After seven hours of sweat and pain we reassembled the device. And...
NO SERVICE, PLEASE INSERT AT&T SIM CARD
Agrr...

But wait, we forgot to enter:

AT+CLCK=”PN”,0,”00000000″
AT+CLCK=”PN”,2
And surprise, surprise: the iPhone is now unlocked!
iPhone with Austrian SIM (ONE)

Labels: ,


 

patSearch

New: patSearch mobile! Just drag this link to your bookmarks and sync them to your iPhone, Nokia or Samsung mobile phone.

patSearch is a search plug-in for Firefox 2 and Internet Explorer 7. It forwards your regular searches to Google but provides access to other search engines via keywords. Suppose you are interested in Milton Friedman, just type "Milton Friedman" and get the Google results. If you want to go to Mr. Friedman's Wikipedia entry directly, type w Milton Friedman or a Milton Friedman to search for his books on Amazon.

Examples:
Google (default) Milton Friedman
Wikipediaw GDP
Wikipedia (De)wd Ökonometrie
Amazona George Orwell
eBaye Sony T9
billiger.deb MacBook
Google Imagesp Hong Kong
Google Mapsmap 1030 Wien Marokkanergasse 7
YouTubev Family Guy
Leo (De-En)d scapegoat

Labels:


 

CORBA, RMI

For those of us studding CORBA and/or RMI, I created a One Page Hello World CORBA and RMI Example. IDL, interface, client and server. All on one page.

Labels: ,


 

Visualization of Hierarchies

Ironically at a moment when organizing files into folders become obsolete, I wrote a little visualization application for hierarchical file systems.

Given a folder this app draws a tree in OpenGL showing the hierarchy of the subfolders.

directory tree
ScreenShot of infovis - 3D view

This app was written for a lecture in Informationsvisualisierung.

Labels: ,


 

Computer Science

Lectures on Computation
by Richard Feynman
cover
Feynman starts with the nature of information. Proceeds with building a Turing machine and a transistor. And he doesn't stop short of introducing the quantum computer. This book from 1984 reads fresh and new like there weren't any major development in the mean time.
Artificial Intelligence: A Modern Approach
by Stuart J. Russell, Peter Norvig
cover

Labels:


 

Latex

Standard Books, used by Universities all over the world.

LaTeX
by Leslie Lamport (the autor of Latex)
cover
The best introduction on Latex
by the writer of Latax himself.
The TEXbook
by Donald E. Knuth
cover
More on the foundation TEX.

Labels:


 

CG Books

Standard Books, used by Universities all over the world.

Computer Graphics with OpenGL
by Donald Hearn, M. P. Baker
cover
The theory on CG and...
OpenGL Programming Guide: The Official Guide to Learning OpenGL, Version 1.4
by Dave Shreiner, Mason Woo, Jackie Neider
cover
... the reference for OpenGL.

Labels:


 

CS148: PacMan


Getting together what I learned in cs148, I wrote a Pac Man game as final project. It was simple, but fun :-)

I found the texture part, in this case the face for pacman, most interesting:

  1. First you need a 2d matrix, the texture representing a color for each pixel. In my case that's a 128x128 pixel smily.
  2. Next a matrix transformation (2d->3d) to map the color pixel on the 3d object (as shown in the picture below).
  3. Lastly another transformation (3D->2D) brings the color from the object back to the view port. Which is again a 2d matrix, namley the monitor.


Of course you do the math in reverse order. To get the right pixel of the texture, to the right pixel on the the screen.
Well at least I thought that's pretty cool stuff.

Labels: ,


 

CS148: Walking thru OpenGL

Preparing for my next computer graphics project Animal Farm, I played around with some animations for a walking horse. The animation of the legs is simple based on the sin function of the movement of the horse. With positive sign for the femoral movement and a negative sign for the lower leg movement.

Now I can inherit this functionality for pretty much every animal on the farm.

My goal is to model a short story out of George Orwells Animal Farm. I wanna keep it simple, so I will just put the famous quote "All animals are equal but some animals are more equal than others." and a pig called Napoleon in it. Anyway should be fun.

Labels: ,


 

CS148: Computer Graphics

During my computer graphics class at Stanford, I had the chance to model some trees. Studding the standard books of computer graphics I quickly found my way into OpenGL.

Generated using simple recursive algorithms for transformation in OpenGL
void fractal2D(double steps) {
 if(steps > 20) set color brown:
 else set color to a random green;
 drawRectangle(-steps/20,0,steps/20,steps); // 1:20
 glTranslated(0, steps, 0); // move to the top of the rectangle
 if(steps > 2) {
  glPushMatrix();
  glRotatef(-RandInt(90), 0, 0, 1);
  fractal2D(steps/2); // start first branch
  glPopMatrix();
  glRotatef(RandInt(90), 0, 0, 1); 
  fractal2D(steps/1.2); // start secound branch
 }
}

Labels: ,


 

Umstieg auf MySQL (2)

Durch die GET Metode in php mit der Daten aus einem HTML Formular übernehme die Anzahl der Zeichen beschränkt. Dieses Problem muss ich früher oder später lösen. Im Ramen des anstehenden Umstieg auf MySQL werde ich mich diesem Problem annehmen. Sehr wichtig auch in diesem Zusammenhang ist eine komfortable und schnelle Suchfunktion, welche eine gute Aufarbeitung der Ergebnisse erlaubt. Z.B. eine Personensuche generiert eine Seite mit allen gefunden Person und den zugehörigen Informationen (inkl. Bilder, Daten, Termine, Adressen, email und SMS) sowie ein direktes Formular um Nachrichten zu senden.

Labels: