somethings from codeland

Friday, January 02, 2009

The 2009 Gameplan

I found a job board among other things on scientistsolutions.com. It got me to thinking about what I need to be doing academically in order to be able to jump into bioinformatics- and genomics- type internships this next summer.

There are a couple of interesting things I noticed:
* There are upper age limits for applicants; so everyone’s looking for young minds out of grad school. This could be because they want fresh ideas, or because they’re cheaper than the older guys with more experience.
* Education is highly respected in the scientific industry. This is relatively new to me because the tech industry is almost the exact opposite in my experience. Its always been in this order: how much do you cost, can you actually do the work. (most times education, if even brought up, has always been a 3rd or 4th tier hiring objective)

There are plenty of postings for technically inclined folks that are interested in learning the biology aspects of projects (they are still professional level positions, and not internships). Most of the posts are looking for:

Under the technical realm:
* strong c/c++ background (large completed c++ projects seemed to be huge plus)
* maybe some java
* perl
* Linux and Windows environment programming
strong relational DBMS (database management systems) skills: MySQL and Oracle are both popular choices.

Under the scientific realm:
*knowledge of different forms of life: bacteria, fungi, protists, protazoa, metazoa, etc
* Experience with Math/Science tools like Mathematica

Educational Requirements:
* Masters or Doctorate in Biology/Computational Sciences/Bioinformatics


So to do all of this I need to:

Under the technical realm:
* start contributing to a large science bound c++ project (something with genomics would be ideal)
* start scripting in scripting languages more for mac/linux tasks. Perl and Python come to mind here.

Under the scientific realm:
* start reading a whole hell of a lot of biological books (learn what the hell these guys are talking about)
* Boost my math skills (seriously need to audit another calculus course and start thinking math)
* Learn how to use Mathematica and other Math/Science related programs. (Probably noteworthy to mention that I need to find out what these programs are)

Educational aspects:
* Lock down in a game plan for a fast-paced but still valuable undergraduate degree in Biology/Microbiology (something where I can experience a broad spectrum before I lock myself into something specific)
* start checking out schools with strong ongoing research projects/grants in Bioinformatics related fields.
* Figure out something with the biology department as far as volunteering on internal research projects.
* Find someone that can offer some advice on where they’re at and where they see things going in the future.


This means that I’m going to be a very busy/broke person this year. (not going to have as much time to work for money this go-around) Who knows, maybe I’ll get lucky and come into some money for doing some of this.

Browser wars round X???

Not sure how many times we've been through this now, but the browser wars are heating up again. Google is leading the charge this time with its popular Gmail service dropping support for IE 6 and recommending users make the switch over to Firefox or Google's Chrome browser.

http://news.cnet.com/8301-13505_3-10130301-16.html?part=rss&tag=feed&subj=TheOpenRoad

It looks like IE is starting to lose its grasp on the browser dominance battle front. According to Net Applications (someone I've never heard of but seems to be entertaining a large audience) Firefox is gaining well over 20% of the market, while IE has dropped to under 70% market share. While IE is still ahead by a large gap, it has taken serious damage from what used to be a very commanding 95% browser market share dominance.

http://www.readwriteweb.com/archives/firefox_tops_20_in_november_ie_under_70.php

One way or the other it's not looking good for Microsoft. They've lost a lot of brand reputation with Vista, and Apple seems to be sweeping everyone up that's looking for something newer than XP. (not that I don't love my XP machines out there)

Since I've made the switch to my MacBook Pro a couple of months ago, I've since learned to work in different, sometimes more efficient, ways. Getting used to working with something new has opened my eyes to working with Linux a little more for desktop purposes. (that along with the rise in Linux based netbooks that I'm sure to run into support issues for in the near future).

In short, IE isn't the only browser to satisfy anymore and I share in the agony with all those web developers tasked with supporting complex cross-browser compatible designs... Even with all of this, 2009 should prove to be an interesting year with the tech industry twisted, turned, and wrung out to get every last drop of innovation into users' hands.

Thursday, January 01, 2009

javascript fun

I'm going to update the screenshots with what I've found here:
http://www.panic.com/transmit/

(scroll to the bottom of the page and click on the screenshot images for the javascript effect)

I'm already doing something very similar, but I think the zoom effect does a little better visually.

Science on marijuana

Have to start with the disclaimer: I haven't smoked anything THC related since some experimental highschool days, and I in no way advocate the use of any illegal substances.

Well now that we got that outta the way.... I've been reading on my newly subscribed New Scientist about the perspective of the scientific community on the world's most widely used illicit drug. No doubt that it is harmful to heavy users, studies have shown that it is actually less harmful than smoking cigarettes or drinking alcohol in comparative quantities. Moreover, since its ban Marijuana's potency, that is the rise in volume of THC per unit of marijuana, has risen since the plant is grown under constant beams of artificial lights (while grown inside in attempts to keep it from discovery of the authorities). So now that Marijuana exponentially more potent than it was in the 70’s and 80’s, it really would be in the best interest of the roughly 40% of Americans that admit to at least having tried it for the government to intervene, legalize, impose safety restrictions, and then make money from a new source of taxable profit.

http://www.newscientist.com/article/mg20126885.100-radical-alternatives-proposed-for-cannabis-controls.html?full=true

Not necessarily related to this article, but something that always bugs me when I hear about tests run on drugs is the argument that Marijuana is used as a gateway drug. It is a total cop-out! Yes, there are certain types of people that smoke Marijuana. And yes, of those certain types of people there is a higher percentage of types of users that love to test their boundaries and experiment with just how far over the line they can go. This isn't a problem with Marijuana though, this is a problem of society and the types of personalities that use illicit substances as a temporary exit or escape from reality.

As a secondary note on the matter, most of the users that are constantly testing their boundaries, will always do so, with or without permission from the government. I don’t want my opinion to be skewed that the government might take over and legalize all forms of drugs; that’s not the case at all. Legalizing a substance like Marijuana with health restrictions isn’t going to attract the crowd of people that are hell bent on getting off on something new. Its going to attract those who have either tried it before and didn’t find it all that offensive, or those that have always wanted to, but felt it their patriotic duty to obey the law and be a good little boy (or girl).

living life and getting things done

Today was an interesting kind of day. For starters, I woke up late as all get-out, then I helped the pops put in some new supports in the shed so they could store more crap. I actually really liked the whole manual labor thing. It was a really nice change from the normal all day on the laptop. I've needed to do something with my hands for a long time. Sometimes I feel like being on a computer all the time doesn't lead anywhere and in the end I'm just wasting time and burning daylight. Doing that and having finished it sparked something in me. I was able to start and finish something that someone could use and benefit from, even if it wasn't that big a project... It was a really great feeling doing something out of the norm and benefiting from the experience.

So after the minor carpentry project, we went and ate some mediocre chinese and went to go see Yes Man with Jim Carrey. First I want to say it was a really good movie. Not to spoil it for anyone who hasn't seen it yet, but it was a movie about experiencing new things outside of the comfort zone and going out to get life instead of living in a little box. Cruising the information super highway (member those dial-up commercials?) and being the internet bum I sometimes am, doesn't fair well with getting out there and living life.

Now I'll be the first to admit I'm no fan of new years resolutions, but if there's something that has to change its going to be that I'm going to do more living. Programming, well working all the time, just makes feel like I'm constricted to places where I can plug my laptop in.

I love helping people. That's for sure, but I want to be able to meet more people and do more. Maybe I need to move to a bigger city and just start diving into new things. I'm more of a west coast kinda guy. Let the looking begin...

Tuesday, December 30, 2008

Editing remote files with Textmate and Cyberduck

I was trying to use macfusion to have a standard interface of working with remote files. While it integrated nicely with Finder, after loading up a new project in Textmate with all of the remote files (not a local copy, but references to the remote files) Textmate became very sluggish. After switching to another program and then coming back it would take about 30 seconds for Textmate to be useable again.

Well no more! I am now using Cyberduck for the FTP interface and Textmate to edit the text based files locally. When I save in Textmate, Cyberduck automatically updates the remote file for me.

Loving life...

Sunday, December 28, 2008

I'm a New Scientist subscriber

I started doing a little digging into what I might like to do in the future with the degree in biology and found a lot of references to the New Scientist magazine website. The only problem was that a lot of their web content was for registered subscribers of their weekly magazine. It turned out to be $40 for a year of digital access to their content. This works out great for me cause I hate having to keep up with physical magazines on a bookshelf (and they just end up accumulating, otherwise I end up feeling like I'm throwing away money). Not sure why I think like that, but there it is...

So the deal is for a year I can go through and read as much of whatever they have in archive and whatever current content is in printed circulation through the site. Total win win for me... (I mean when's the last time anyone saw me without my backpack with my laptop in it!)

working on large NSIS projects remotely

One of the things I've been doing for a while now has been maintaining and updating Appian's software installers. These are pretty decent size installers: they install anywhere from 2 to 3 times the amount of data your normal Windows game might install before you can play.

Amazingly I've been able to shrink the install times down to 25 - 30 minutes (depending on the target machine's hardware), down from the 2 hours that it used to take. Even with this major improvement, there's still a couple of things to be desired:
  • Faster build times (if at all possible)
  • Better compression of the data
  • More protection for the software installation process
  • More stability on a broader range of operating systems
  • Vista font issues
  • faster testing (probably the longest holdup for releasing new versions of the installer)
  • updating the installer codebase for compatibility with the latest NSIS release
From a developer's perspective there are things that I would love to do to make it easier to maintain and maintain these installations from out of the office. I have a Windows XP desktop machine in the office configured to run vmware workstation with multiple guest virtual machines: one for the installation development environment, and multiple others for testing various aspects of our software installation process. This type of setup makes it easier to back up the installer development environment, because of the many variables that are set in order for Direct Route or Territory Pro to run properly.

This is just a desktop machine that has power and an ethernet cable plugged into it. Up to this point we're still in the office though. Since I work from Stillwater during the school year now (or wherever I'm at when I'm not in school) I have been using logmein.com to access the physical machine's desktop to get into the development virtual machine to code and kick out installers. While this isn't exactly a terrible setup, it can be a bit laggy depending on the internet connection I'm working from and as a result can be a waste of time even just to modify a few lines of code and kick out a new installation to test.

I do have a couple of ideas that can at least help with the coding portion of the installer maintenance ritual. It might take a little bit of time to get all of this working properly, but I think it would be well worth the time overall, even for someone that would be working in the office.

My idea initially is to access the installer code on the live virtual machine over the internet directly on my Mac laptop over a Hamachi VPN connection. Next is once I'm done I need a quick way of kicking off the compilation process for the code I need and notification once the compilation ends (either by completing successfully, or by failing). What turns out to be the big project is how fast and what the best option is for rolling out quick web services as a means for project control after I'm ready to compile all of that code and start testing.

Just to be clear, there are several reasons why I don't carry the virtual machines directly on my laptop:
  • size of the vm's
  • security of the software
  • security of the installer code
  • easier means of integration with the internal backup strategy.

Saturday, December 27, 2008

relearning ACL in CakePHP

I started looking into user management and access control lists (ACL) in CakePHP. I'm going to be rewriting filed away from C# .Net over to CakePHP and I figured I would do everything the right way. Up to this point every CakePHP project we've rolled has had its own custom user relationship model and tables custom to the project. So this academic approach to do things in the standard acceptable way is a little bit different, but overall going to be a great thing for any future projects.

Since CakePHP released its 1.2 Final just over Christmas and I've been meaning to jump on the rewrite, it's a good time to start hacking away on some new code.

Friday, December 26, 2008

Mamp Mysql setup lifesaver

I would have spent a lot more time trying to figure this out if I hadn't of found this on google:

http://www.fischerlaender.net/apple-mac/mac-os-x-trouble-with-mamp-mysql

Thursday, December 25, 2008

started studing genetic algorithms

I changed my major over to Biology from Computer Science just a while ago. So next semester I'll start with introductory biology and chemistry. I've been researching bioinformatics and synthetic genomics as possible career options.

I've been reading some biology ebooks I downloaded a little while ago and its been really interesting. I haven't lost complete interest in programming though. I'm researching genetic algorithms. So far I started with Genetic Algorithm Tutorial by Darrel Whitley.

I'll be updating this post with my notes later.

Sunday, December 21, 2008

I'm not going to blow up twitter with these...
  • My car is broke again
  • I'm taking a 15 hour train ride on Tuesday to go to San Antonio for 2 weeks
  • I love Spore
  • Seven Pounds, the new Will Smith movie, was amazing
  • I need to go to the gym and run
  • I need a new computer monitor (the one I've got wont work with my mac)
  • I need to update the generated emails html stuff for Appian's contact forms
  • I need to work on some installations
  • I need to finish the update on the mass upload application for TDC

Sunday, November 30, 2008

I need to get photoshop on my laptop to see what's supposedly so much better about PS on the Mac vs the Windows version.

My desktop has been unplugged while I was out of town last week. It would be nice if it just came back on without any complications, but I'm not getting my hopes up.

I started reading Twilight and managed to say no to everyone that wanted me to go watch the movie with them. I'm terrible about just going to see the movie and then just dropping the book afterwords.

Tuesday, November 18, 2008

A little stressed out lately

I've had a lot on my plate lately with both Appian and school. The occasional TDC problem is welcome, but they are normally pretty self-maintained.

Appian has had some installation problems with a new component upgrade that we're trying to deploy with our latest release of our software. For some reason this has been an especially big pain in my ass. The code is almost identical, and the paths for all the configuration files match up. Needless to say this has consumed plenty of my late night sleeping hours as of late.

I've got two tests on Thursday to worry about: one in Government (not so worried about it) and the other in Philosophy (the source of my stress woes). I've been reading the required texts, but I haven't started on a study guide for the example exam questions. Sure this is going to consume most of my day tomorrow.

Now with the time change for Daylight savings, its been getting way too dark way too fast. I'm sure that's not helping either.

Tuesday, November 11, 2008

logmein and different browsers on the mac

As any other technically inclined convert I've been an avid user of Firefox for some time now. I will say that I have made the switch to Google's Chrome (at least for the most part). For reasons not researched by myself yet, Logmein has a mac client that seems a separate accessing component apart from the browser itself. This little component has proven to be a little more bug prone than the Firefox plugin on my windows machines, it has worked well enough to keep me on the machines I need access to, so I've been happy.

Now back to Chrome: before I converted over to my beloved MacBook Pro, I quite fancied the UI Chrome offered. (In all fairness, when I'm in VMWare on my mac I use Chrome as my primary browser) The big setback Chrome had (from my POV) is a lack of a plugin api. As of today's date, I do not believe Chrome has an extensible api for plugin interfacing. What this translates to me is that I could not completely do away with Firefox because I still needed access to my Logmein machines.

If Logmein were to create a client component with the same cross browser compatibility as they have on the Mac, I would be a happy camper. Better yet, if Google released a Chrome for the Mac. ...oh to dream. (I'm sure it's on its way in fair time)

I'll be doing some research on these topics for an update later I'm sure.

Sunday, November 09, 2008

a little automated windows administration

I started looking into some automated Windows administration over the weekend. I've never had to automate the backup of a database, but one of my clients got a little happy with the delete features of a web application I built for them, and I didn't have any automated backups for the database. So I've at least done that.

This whole scenario made me think of a new feature: Undelete. basically its a customized website for holding documents that can be privately/securely accessed by their clients. Undelete for virtually any of the files, categories, or users and their permissions would be a nice feature to have in order to remedy any issues similar to what they're facing now.

Wednesday, November 05, 2008

Goodbye Basecamp

So I stumbled upon Project Pier, an open source project management tool not that dissimilar from basecamp. (I actually think the project started out as a ripoff of basecamp)

So I downloaded it, installed it on one of my dev machines, and started using it for a couple of days instead of basecamp to see how it would compare. With the exception of no comments on task lists or task items themselves, I must say I'm in love with it. The UI could use some work, but the project does have a full theme system built in (at least I think I saw that out on the site somewhere) There is even some discussion of importing basecamp projects from xml, so I'm super excited about all of this.

Being that its all open source, we won't be restricted to a set number of projects or have to pay the monthly SaaS fee. Its codebase is entirely in PHP, so we'll be able to throw it on our linux hosting that we already have. The only thing that wasn't straight forward and does make less sense (from a users perspective) is that the installation requires its MySQL database server to run InnoDB instead of the MyISAM data storage engine. I can understand if it made the project easier to get started development-wise, but now that its released to the public, you would think that they would use as much standardization as possible. (my dev box's mysql server was easy enough to configure properly, but I'm sure it will be a nice little battle to talk to our web hosting platform into helping us configure our linux machine's mysql servers to run the proper storage engine) I guess in all fairness there is a 'hack' around the innodb stuff so that it will run through the myisam storage engine, but it is just that: a hack....

Well there you have it. I'm sure I'll be posting more about Pier in the near future.

This seems to be the way to go...

Installer woes

I have been working like a madman for the past few days trying to clean up some installation problems that have crept up on some old releases that are still being distributed to Appian's update client list...

One of the components of the installer has a US and a Canada version that seem to be working separately, but when we combine them to run as one process using all of the data for both versions, it starts getting a little foggy and the service isn't starting anymore for some reason.

For a while I was using some nonstandard/funky end of line characters that Windows' notepad didn't particularly care for. (square boxes instead of text resuming on the next line, but wordpad opens it up just fine... go figure) Anyways so I figured out that in NSIS I need to put in
$/r$/n
for an end of line, instead of what i've been using in c# (just the classic /n).

So I thought all was well, but now I'm finding that I didn't update all of my code like I thought I had. So I've been going through each installer to make sure that I've got everything updated with the correct end of line character...

Some of my tests have also turned up that not all of the required data for the US is installing correctly. There are a number of files that do not exist on the target machine after my installer completes.

So if I never have to reverse engineer someone else's installer just to streamline our own installation process I will be a very happy man. It pays the bills, but boy is it ever so tedious, meticulous, and error prone.

Thursday, October 30, 2008

Installing XP on a Vista Toshiba laptop

I had to slipstream the sata controller driver into an nLite XP build for a Toshiba satellite a205-s4777. I've never done this before but the driver seems to have been picked up just fine. Hopefully the laptop will boot up so I can make this guy happy. It was soo difficult trying to get anything to work at all on this machine I'm really not surprised he had me take it to throw xp on it.. Everything from the mouse to any removeable media (including usb drives) needed a driver. Stuff like this is such a pain in the butt to get working...

All the drivers listed on the Toshiba support site for this laptop were Vista drivers, so I'm hoping (pinkies crossed) that all the drivers are either backward compatible (not likely) or there are XP versions of them available. I'm preemptively doing some research while I'm waiting for this to load so I'm not completely heartbroken here in about 20 minutes....

Wednesday, October 29, 2008

lower level

I've got plenty of work to keep me busy for a very long time, but for some reason I'm still left a little unsatisfied. Up to this point I've tried to fill whatever "challenge" void I've had by trying to just take on more work. This is a failed approach for me because I've hated "busy work" (the stuff that just keeps you busy but doesn't really put my mind to use) since I signed up for some Advanced courses in high school only to be disappointed because they just threw more math problems at us instead of more difficult ones.

So I'm breaking the convention. Zack and I both have decided to start doing some research for getting into some game development. He's got some great ideas that I think have potential to be really great, so I'm definitely excited. Game development is going to help me with my little "challenge void" mainly because it's something new and employs all aspects of computers that I've up to this point used individually on many levels.

I'm particularly interested in algorithms for some kind of custom artificial intelligence engine. So I'm going to be JP from Grandma's boy for the next year or so I'm sure. (joke. If I reach that point I'm giving anyone that knows of this permission to smack me enough to bring me back.. ha). Programming AI algorithms is something I've been interested in since I first started playing games like Doom (yeah the 1st one) and picking up the programming basics...

So far the standards that we've decided on up to this point are
  • C++ for our modules
  • Python for a dynamic module binding backend
  • PHP for any web stuff (probably the highest level language I'm not tired of... just personal reasons though)
  • OpenGL (I'm running my new Mac and the PS3 seems to be doing just fine with OpenGL rendering only)
The research is starting with me continuing to learn Python, getting more familiar with C++ (not my first rodeo), and learning a bit of OpenGL. I'm fairly confident that I'm going to end up doing the backend game logic (where I feel more comfortable and really am more interested) while Zack heads up the graphical end with Blender model rendering and things like collision detection.

What's really great is that this new little endeavor is something that is both challenging and also something we can both be passionate about.

Twitter Updates

About Me

My photo
I have been working with computers/programming to put myself through college since I graduated high school. I am currently attending Oklahoma State University for bachelors degree in biological sciences. Along with my experience in programming, a degree in biology will allow me to pursue a career in bioinformatics research concerning genetic diseases (i.e. cancer).

Blog Archive