somethings from codeland

Thursday, January 22, 2009

Just when I thought I was done

So I don't have to worry about the GAC for the Xceed components, but MapInfo used GAC assemblies to distribute the MapXtreme application we use to display maps inside our C#.Net app.

So here are a few more articles I've found in my quest for knowledge...
http://support.microsoft.com/default.aspx?scid=kb;en-us;315682

CodeProject summary of GAC concepts - http://www.codeproject.com/KB/dotnet/demystifygac.aspx?df=100&forumid=15829&exp=0&select=856234

How to get a dll from the GAC - http://bloggingabout.net/blogs/wellink/archive/2006/07/12/12947.aspx

Registering a

one of those lol moments

Turns out the easiest way to work with managed dll's is to not register and access them through GAC, but rather directly. This cuts out a huge headache of dealing with tying into the OS.

After all the research I've done, I'm kinda glad to be rid of it...

Playing with assemblies in the GAC

There's a tool in the .Net Framework SDK for messing with .Net's Global Assembly Cache called gacutil.exe. This tool allows you to get information about existing registered assemblies in the cache, register new assemblies, etc...
http://msdn.microsoft.com/en-us/library/ex0ss12c(VS.80).aspx

.Net 3.5 SP1 framework download (for offline installation) - http://download.microsoft.com/download/2/0/e/20e90413-712f-438c-988e-fdaa79a8ac3d/dotnetfx35.exe

Wednesday, January 21, 2009

NSIS color coding for TextMate

Color coding for NSIS in TextMate would rock right about now...

silently installing .Net 3.5

Very good info about the installation requirements of .Net 3.5 - http://www.msfn.org/board/NET-Framework-35-Silent-Installer-t108344.html

reasons why the .Net 3.5 framework installer might want to still go out to the web - http://blogs.msdn.com/astebner/archive/2008/07/17/8745415.aspx

.Net 3.5 offline installer - http://download.microsoft.com/download/6/0/f/60fc5854-3cb8-4892-b6db-bd4f42510f28/dotnetfx35.exe

According to this forum listing you should be able to run a local copy of the offline .Net 3.5 framework installation from the command line with the /q for a silent installation. In testing this it looks like its good to go. I've been working with this line in my .Net installer component for past NSIS installations (with older .Net runtime installations):
ExecWait '$TEMP\dotnetfx.exe /q /c:"install /q"'

so on the regular command line this would look more like:
>dotnetfx35.exe /q /c:/"install /q"

With the older .net installation it was easy just to store it inside of the setup.exe I was compiling, extract it to the temp dir, and run it from there. We've been using .net 2.0 with this approach, when the .net installation was a mere 20mb. Now the offline .Net 3.5 sp1 release is closer to 200mb. So storing the .net installation in the setup.exe only adds time to the installation and wastes considerably more hard drive space on the target deployment machine for installation purposes only (once installed, the .net installation doesn't need to remain on the machine).

So I'll be revising a couple of lines in my custom NSIS .Net install module.

GAC: Global Assembly Cache

Using NSIS, I'm writing an installer for a .Net based application along with third party software that the application depends on. We're going to registering some managed .Net .dll's into the GAC (or the Global Assembly Cache).

Since I've never done this before I did a little bit of research. Suffice it to say Wikipedia was a more helpful resource than Microsoft's Knowledge base in getting started.
http://en.wikipedia.org/wiki/Global_Assembly_Cache

Let the fun begin!

Monday, January 19, 2009

vista accessing remote shares

I worked on a Vista machine today that was not able to access remote shares, and so couldn't map network drives, etc. It was able to get online, rdp to the server, and perform other network based tasks.

When trying to map the drive out over the command line, an error 67 would return. When trying to access the share from Windows Explorer, I would get an unspecified error number. (probably would have been nicer to receive an error that a service responsible for this functionality was not accessible.

What ended up being the problem was that the Computer Browser Windows service was not able to start because it depends on the Workstation Windows service that for some reason had been disabled.

Sunday, January 18, 2009

setting up email on the iPhone

This is definitely something that was easier to do on the blackberry. Maybe its partly my servers using non-standard ports, but all my blackberry needed was my email address and password and it set itself up completely for all of my email accounts.

Apple needs to work on this if they want to keep serious email people happy.

Thursday, January 15, 2009

resetting TCP/IP network stack

http://www.zimbio.com/Windows+Vista/articles/43/Reinstall+Reset+TCP+IP+Internet+Protocol+Windows

backup the registry!

netsh int ip reset [ c:\tcp_stack_reset ]



  • Go to the Start Menu, type cmd and right click or (Ctrl + Shift and hit Enter), and select "Run As Administrator"
  • Type the following commands, each followed by pressing enter.
    • ipconfig /flushdns
    • nbtstat -R
    • nbtstat -RR
    • netsh int reset all
    • netsh int ip reset
    • netsh winsock reset
Or another helpful command:
  • netsh interface tcp set global autotuninglevel=disabled
Hope this might solve any problems you might have with Vista's new networking stack.


\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa

and the Key is "LmCompatibilityLevel" - Change the default value 3 to 1 then reboot.

Sunday, January 11, 2009

school is starting back

I’m wondering if I can get all of my books for class in e-book form this semester. Instead of selling my books back to the store I usually end up selling them to my friends. Needless to say, I never really make anything back at the end of the semester.

I got an email from my biology professor talking about the e-book format that’s available for his class. I like the idea of being able to search for things in the book faster, but they only sell a crazy DRM copy that can only be used on up to 2 computers. I don’t plan on anything happening to where that would be a problem, but I would much rather purchase a PDF that I could use and do with however I want. (I’m not going to have this same laptop forever, right)

http://store.vitalsource.com/show/9780072916904

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

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