Thursday, May 23, 2013

What exactly do I do?

I found the last post awfully cathartic, getting thoughts organized so i don't have to keep pondering them in random excruciating order, and keep bouncing back and forth. A few more loose ends to tie up, but one thought from that post reminded me of a question people ask often. What do i do for the telescopes?

To answer that for people who are not software engineers or who haven't dealt with large control systems I usually say that I write and maintain software for two telescopes up to taking data, before the pretty pictures.

So what do I do technically? I will explain it in technical terms and will try to make clear what it actually is in more layman's terms, especially for those esoteric software packages that only a few facilities across the world use.

One aspect of my job is to help maintain hardware, such as racks of computers, switches, VxWorks crates, ethernet connections, serial connections, and random sensors/instruments. Sometimes I get to be a part of installing new systems, but there is quite a bit more in maintaining. I replace hard-drives, motherboards, and so on.

I also help write control software. Most recently I worked on making a GUI for one of our instruments, Receiver A, RxA. We recently upgrade its computer from one from the early 90s with a 5.25 floppy drive to a new real-time Linux box. I was assigned to make an engineering interface to talk to the task on another machine and receive its information. The package we use is DRAMA, written and mostly supported by the AAO. It is a distributed computing package that allows us to coordinate between control systems and instruments across the network. I used Perl/Tk for the GUI.

With this GUI I had recently become more aware of testing, specifically unit testing. I don't think I wrote a very good unit test as GUIs are hard to write tests for, but I really need to continue practicing this idea, as I write code that has bugs. What I really need are good specs for other programs so that I can write most of the outline and tests before ever getting started. That is unlikely to happen so I must blunder along and learn how to write my own.

Another project I was part of was controlling the cooling louvers remotely for JCMT. These louvers can be opened near the end of the day to help cool and settle JCMT's structure. I worked with one of my coworkers to get EPICS, the Experimental Physics and Industrial Control System, to talk to a PLC, and then display the controls and information via medm, a software package that works well with EPICS.

One project that I quite enjoyed was UKIRT's WFCAM noise analysis GUI. One of our electronics engineers was tired of importing text files of noise data from the Wide Field CAMera into excel so he asked me to write a GUI that could just take the text files and display graphs for each of the four CCD arrays.

This is the project that I started learning about Perl/Tk, and I have used it in several projects since. I parsed the data, and using the pdl module of Perl I graphed out the noise so that the engineer could analyze it.

In learning Perl/Tk I thought it could help upgrade a personal project of mine, noteTaker. Basically noteTaker was a CLI for taking and referencing notes from projects, a bit of an undertaking, but it has saved me many countless hours of flipping through paper notes. It also helped hone my GUI and GUI layout skills. It isn't much to look at but it is darn useful. I am looking at upgrading it to not just save to a day's text file but possibly into a SQL database, and maybe take it to a web interface. All of this is sort of in the planning stages, but I would like to use Python, which I have been avidly learning, Django (I need a real project and uses SQL so it won't teach me much about SQL), and possibly find a way to integrate pyBrain which is a machine learning module. Yeah, mostly need to focus on work-work, not just things that will make work easier.

So there are many more projects. I might compile them and put them into some permanent link pages so I can reference them for people/possible jobs. And maybe put them into chronological order.

We will see.

P.S. Do blogs have post scripts? Anyway just found a major problem with a limit switch where the shoulder that is the soft-limit would have destroyed the micro-switch housing. Ah days that are exciting are nice.

No comments:

Featured Post


John studied himself in the mirror as best he could through tears. Red, puffy eyes stared back at him, a running nose already leaked just a ...