I will try to write up a quick blurb about the sessions I attended yesterday tomorrow.
I also have more pictures I should post, but I just haven't yet.
I "went" to Better Test Design, Native XML Databases, Implementing RESTful Services in Java, and Java Performance Myths.
Thursday, March 06, 2008
Security and defensive programming?
The first day of SDWEST, I attended tutorial on security and defensive programming by Jim DelGrosso. I'm not quite sure that I was part of the appropriate audience, but only because most of what he talked about didn't really apply directly to what I do. Since I'm primarily developing Java code for internal applications, I can generally trust the user of the application to not be malicious. It was a very interesting presentation and I would recommend it to any developer who hasn't thought much about security and personal information protection on their own machines. There were lots of little gotchas for websites that had never even occurred to me. But as part of my work, I wouldn't run into any of them generally. At the end, he had lots of good points about how to think defensively when coding and I like the recommendation to use unit tests to test security behaviors as well as correct behavior for valid inputs.
Jim provided a decent presentation that as a result of working on Java programs for internal work just doesn't apply to me most of the time.
Jim provided a decent presentation that as a result of working on Java programs for internal work just doesn't apply to me most of the time.
Test Driven Development?
I attended Justin Gordon's tutorial on JUnit and Test Driven Development. After sitting through just the first half of the presentation, I definitely see how this could be a useful method to develop. I'm hoping to use it to work on my next work project only because its only me really working on it. I know almost all of the basic requirements already myself because the goal is really to build an internal library to access our data. I just need to hide the guts of the storage and unit conversions and whatnot from the rest of the team. It should be really easy to try out TDD that way. Also the other thing I'm working on is just fixing bugs in our new display/data system. That is the source of the data for the project I mentioned first.
I really like some the guidelines that Justin laid out in the session.
- Make the names describe the requirement under test.
- Test the goal of the code, not the implementation.
- Tests should be for one specific case, not a whole pile of cases.
- Don't try to write a bunch of tests at once and make them all work.
- Do not fix a bug until you have written a test that demonstrates the bug.
I think that last one is huge.
Overall, although I had to leave a little early, I thought Justin did a great job.
I really like some the guidelines that Justin laid out in the session.
- Make the names describe the requirement under test.
- Test the goal of the code, not the implementation.
- Tests should be for one specific case, not a whole pile of cases.
- Don't try to write a bunch of tests at once and make them all work.
- Do not fix a bug until you have written a test that demonstrates the bug.
I think that last one is huge.
Overall, although I had to leave a little early, I thought Justin did a great job.
...more groovy
So additionally, I want to mention that I'm planning on trying out using Groovy on the next work project because its main use is to build a library to access our data that is usually in a database, but not quite always. The Groovy tutorial also seemed to lead me in a way to two other topics. First, Test Driven Development... The last lab for Groovy was to use it to test java classes. That seems to be one of the more powerful uses for Groovy, and I'll definitely be playing with that soon. Maybe I'll even use that as a way to introduce Groovy to some others at work using JUnit and Groovy to test our classes. The other presentation that I attended this morning was on Native XML databases...
Wednesday, March 05, 2008
Groovy 101?
I attended Andrew Glover's Groovy 101 tutorial and I have to say that I was fairly impressed at some of the stuff that you could do very easily in Groovy. I definitely do not like the name, but that aside I decided to give some Groovy coding a try.
Firstly, it is really easy to move into Groovy programming because standard Java is also Groovy. The syntax is legal. Also, the Groovy code compiles to Java byte code so you can call Groovy from Java and vice versa. Definitely go to the Groovy homepage to see what Groovy looks like. So far my favorite things are the SQL connectors and the MarkupBuilders. So much boilerplate or at least tedious code is completely taken care of by Groovy itself, so you can focus on the actual problem. That's much better.
I'm trying to replace a javascript that we use to launch some Java apps with a Groovy script. More later...
Overall, I enjoyed Andrew's tutorial. He was the first of many presenters to use a Mac at the conference. Wish I had one...
Firstly, it is really easy to move into Groovy programming because standard Java is also Groovy. The syntax is legal. Also, the Groovy code compiles to Java byte code so you can call Groovy from Java and vice versa. Definitely go to the Groovy homepage to see what Groovy looks like. So far my favorite things are the SQL connectors and the MarkupBuilders. So much boilerplate or at least tedious code is completely taken care of by Groovy itself, so you can focus on the actual problem. That's much better.
I'm trying to replace a javascript that we use to launch some Java apps with a Groovy script. More later...
Overall, I enjoyed Andrew's tutorial. He was the first of many presenters to use a Mac at the conference. Wish I had one...
SDWest08
I've managed to make it to SDWest 08 this year and I've attended 3 tutorial sessions so far. I'll probably post a little more later, but I figured I'd try to get back to this posting thing again.
But, more importantly, I haven't been to this area before and I think its fun to drive around and see Sun Microsystems headquarters, or Google, or Yahoo. And the hotel we are staying at is across the street from Tivo. :)
Tuesday, January 29, 2008
Pizza
I tried to make pizza dough today. 1 1/2 cups plus 1 tablespoon of flour, 1 teaspoon of instant active yeast, 1 teaspoon of sugar, 1 teaspoon of salt, 8 tablespoons of olive oil, and 2/3 cup of water. I suspect that I did something wrong here, maybe the measurements. It didn't rise very much. Strange though... But, I also bought some pre-made bag dough, and just used that. I'll see what my creation looks like tomorrow.
Monday, January 28, 2008
Nov 16? Really?
Wow, I'm bad at this.
Anyway, I'm still toughing out Vista. I actually like the eye candy, and the IO seems better. I don't like that I can't turn off the windows indexing permanently, but if I just let the machine go for a little while so that it indexes when I'm not watching it, its not too bad.
I can't believe how hard the AI is in Supreme Commander sometimes. I just played a 2 human vs 4 computer AI battle and we were destroyed. 6 nukes total, 5 in one shot and then 1 later. I wasn't even on the third tech level yet.
As for my Vista experience, I'm really not happy that ZoneAlarm conflicts with multicast. I've spent time writing a test program to prove that the reason ZoneAlarm doesn't work with the Tivo Desktop software is because the multicast to loopback is totally blocked by it. I haven't checked in the past 20 days to see if its fixed yet, but it wasn't in the last beta a tried.
Anyway, I'm still toughing out Vista. I actually like the eye candy, and the IO seems better. I don't like that I can't turn off the windows indexing permanently, but if I just let the machine go for a little while so that it indexes when I'm not watching it, its not too bad.
I can't believe how hard the AI is in Supreme Commander sometimes. I just played a 2 human vs 4 computer AI battle and we were destroyed. 6 nukes total, 5 in one shot and then 1 later. I wasn't even on the third tech level yet.
As for my Vista experience, I'm really not happy that ZoneAlarm conflicts with multicast. I've spent time writing a test program to prove that the reason ZoneAlarm doesn't work with the Tivo Desktop software is because the multicast to loopback is totally blocked by it. I haven't checked in the past 20 days to see if its fixed yet, but it wasn't in the last beta a tried.
Friday, November 16, 2007
Vista and Java continued
So, after I took the time to debug my issues, it just started working. I don't know what caused it to happen but it works now. I have no idea.
Thursday, November 15, 2007
Vista and Java
I got a new laptop at work and it has Vista on it. I decided to give it a go for work. After a month, I'm starting to get really irritated. I'm not going to digress too much here. What I really want to bring up is the networking in Vista. If you run "ipconfig /all" in Vista you get a list of 15 items, but in XP SP2, you only get what makes sense. You get the physical adapters and thats it. But my problem is more directly related to the what multicast packets get handled. I'm working a piece of test code that I'll probably post later. It basically creates a thread to list to a socket set to listen for multicast packets on a specific group and port. Then a second thread is created to send 8 packets out to that group and port. In Vista, the packets are never recieved but in XP they are. I discovered this because it also doesn't work in JmDNS. The Java implementation of multicast DNS uses that exact technique and it fails to work on Vista, but works on XP. I don't want to have to install XP just do work, but if I can't figure this out, then I'll have to go "backwards." I'll post the code later.
Tuesday, November 13, 2007
Upgrades - more
I think I've decided that first I need to do something with the case that I have now. There are some problems with it anyway. First, the CPU is really hot. Like 72 degrees C hot! Second, its pretty old and was made before there were Pentium 2 processors so it doesn't have the cooling capacity anyway for a hotter processor. Three, it doesn't have proper ports on the back. The last mainboard I had didn't have ports that lined up so I tossed the back panel piece. I did make some upgrades to this case that make me happy. I cut an Autobot symbol in to the side of the case, and then I glued a thin piece of plexiglas in to it as a window. The glass is painted with a red glitter paint that is mostly translucent. I'll post a picture later. I also painted the entire case a nice color of glossy royal blue. I think it looks kind of cool myself, but it is bigger than I need for the mATX board. Maybe I should think about a new case before bother with the SGI mods.
Monday, November 12, 2007
Upgrades?
I've started researching a little to move my current PC into a "new" case. I have an SGI Indy case with a dead Indy in it. I'd like to move my PC into it because I like the look of the case. I know that sounds like sacrilege but the SGI is dead so what else could I do with it anyway. I haven't decided for sure that I want to that yet, but I'm seriously considering it. I have to figure out how to cool the CPU. Right now, its really under-cooled in the case I'm using now. Partly that is because I'm impatient and cheap. The case is easily 10 years old and never really had enough cooling before anyway. There's only one case fan in it and then the retail AMD Athlon 64 CPU cooling fan attached. I need something better if the case is going to be much shorter. It looks as though the cooler needs to be less than 55mm from the mainboard to the top of the cooler to fit in the case. The power supply can be a 1U unit I think. That should be plenty small enough to replace the supply in the case now. I'll need a PCIexpress16 90 degree riser card to fit the video in it. That doesn't have to happen right away. There is a built-in card on the board, but the nVidia 7600 GT is nicer. Then I just need to accommodate the TV tuner some way. I think I'll also cut out the entire back panel and replace it with a thin sheet of copper to make cutting the holes for the ports on the back much easier. I'm sure that none of the current holes will be in the right place anyway. This is just a brainstorming thing right now. I need to gut the old SGI out first. I might save the guts only because I don't remember what about the system made it dead. I think it may have been a combination of things but I'm pretty sure that the power supply was the last problem and the most expensive to fix.
Sunday, November 11, 2007
Love Canal?
I became curious when I was watching the History Channel this morning. They did a little shpiel about the Love Canal. Of course at the first commercial break I decided to go read the Wikipedia article about it. The first few lines talk about how the Board of Education basically forced Hooker Chemical to sell the land to them. I thought to myself, why would that be? That sounds ridiculous. Luckily there is a footnote that takes you to the referring article.
After reading half of the article, I thought how could this be? That can't be right. How can a totally innocent company be so vilified? Then I finished the article and I started to realize that, although there are a lot of facts in the article, the overt bias against the rest of the world really gets to me by the end. A company produced a bunch of chemical waste and then just buries it in the ground. Then decades later, the chemicals are killing and maiming people. The primary point that the countpoint article seems to miss is that although the company managed to get wording into the deed that absolves them of responsibility, it was still the primary creator of the toxic chemicals in that dumpsite. It should have cleaned up the mess first before selling the land. I want to agree with the author, but the condescending atitude that paints the attacks on the rest of the world really push me back to the popular conclusion that Hooker is responsible and should have to clean up the mess. The Google local view is pretty interesting.
After reading half of the article, I thought how could this be? That can't be right. How can a totally innocent company be so vilified? Then I finished the article and I started to realize that, although there are a lot of facts in the article, the overt bias against the rest of the world really gets to me by the end. A company produced a bunch of chemical waste and then just buries it in the ground. Then decades later, the chemicals are killing and maiming people. The primary point that the countpoint article seems to miss is that although the company managed to get wording into the deed that absolves them of responsibility, it was still the primary creator of the toxic chemicals in that dumpsite. It should have cleaned up the mess first before selling the land. I want to agree with the author, but the condescending atitude that paints the attacks on the rest of the world really push me back to the popular conclusion that Hooker is responsible and should have to clean up the mess. The Google local view is pretty interesting.
Thursday, July 26, 2007
Core 6 for a while.
In general things that Ubuntu didn't have down pat, RedHat seemed to manage. The two biggest things were the Common Access Card support, and for me, the ability to actually get SameTime installed. I used RedHat for a while. Its still installed, but I'm not using it right now. The last straw was when the installed version of Eclipse deleted all of my .CVS directories from my source folder. Its happened in the Windows version too, but only to files checked out from the branch. This was a mainline check out and I was ticked. I switched back to Windows for now. I'm going to go back to Redhat soon, but I have software to finish. I liked the experience in Linux better for the most part, but I don't have time to be fixing problems like that right now. The major draw back to it is that now that the CVS information is gone, I have to learn how to move just the modified files out of the source directory so that I can do a new check out. Too much time for now. I know how to do it in Windows.
Saturday, April 28, 2007
Ubuntu out
Ubuntu looked awesome and mostly things worked. But in the months since I pretty much stopped using it, I found that a different distribution is doing more work to help out on the smart card front. I switched to Fedora Core 6.
The primary motivation is that my smart card compiled library stopped working everywhere and the new recommendation was to use CoolKey from fedora. I suffered through a pile of I-don't-what-version-it-is problems and finally got to the point of having the library detect the smart card. Nothing I did made the smart card actually work with Firefox again. Then I was tempted by the smart card login idea. I never got that work either. The last straw for Ubuntu was installing the Lotus SameTime 7.5 client. It was an RPM and it refused to install because of missing dependencies. I couldn't figure out why, although the dependencies were there, it wouldn't install. ...then the Ubuntu color of yellow/brown/orange started getting to me.
I installed FC6 and appreciated the blue-ness. CoolKey worked out of the box. All I did was install the Firefox plug in for DOD. Its a huge time saver. Also, I think I may have had to install the CoolKey security device myself, but that was easy. Magic, and then the smart card worked. Then I tackled the smart card login. Everything was already installed for it as well, except for the Root certificate authority certificates. I needed to install the ones that correlated to the smart card I was using. Then I just followed the instructions that I'll have to post here later since I can't remember them. Then it just worked with the USB reader.
The primary motivation is that my smart card compiled library stopped working everywhere and the new recommendation was to use CoolKey from fedora. I suffered through a pile of I-don't-what-version-it-is problems and finally got to the point of having the library detect the smart card. Nothing I did made the smart card actually work with Firefox again. Then I was tempted by the smart card login idea. I never got that work either. The last straw for Ubuntu was installing the Lotus SameTime 7.5 client. It was an RPM and it refused to install because of missing dependencies. I couldn't figure out why, although the dependencies were there, it wouldn't install. ...then the Ubuntu color of yellow/brown/orange started getting to me.
I installed FC6 and appreciated the blue-ness. CoolKey worked out of the box. All I did was install the Firefox plug in for DOD. Its a huge time saver. Also, I think I may have had to install the CoolKey security device myself, but that was easy. Magic, and then the smart card worked. Then I tackled the smart card login. Everything was already installed for it as well, except for the Root certificate authority certificates. I needed to install the ones that correlated to the smart card I was using. Then I just followed the instructions that I'll have to post here later since I can't remember them. Then it just worked with the USB reader.
Saturday, December 02, 2006
Ubuntu continued.
I've recently resurrected my desire to continue using Ubuntu at work mostly because of the insane security policies that have been enacted. We have actually been pushed to the point of absolutely having to write down our passwords because of the size, the randomness, and frequency of required change. Its truly a pain and no one is acting like they even notice the human side of the problem. Anyway, I digress. I upgraded 6.06 to 6.10 so that I could play with some of the new stuff. The only problems I've noticed from the upgrade was the hitch with the fglx ATI graphics driver not being used after upgrade. It was a minor glitch, easily fixed. I just used the instructions to reinstall it. As it turned out though, the only thing I needed to to was reenable it in the x.org configuration file. So after continued use, I see three problems that I'd really like to see fixed or find a way to fix them myself.
First: Sound isn't working from zsnes. I know it isn't a big deal, but it works in Windows just fine, but if it worked here. It would be so nice. Sound is produced but its noisy and sounds clipped. I searched for solutions for about 30 minutes, but I haven't given it more time than that yet.
Second: Every time I go from home to work and back again, the network adapters need to be brought up and then down. At work I'm wired and at home I'm wireless with WPA. I suspect my WPA solution is the problem, but I'm not annoyed enough about it to do anything right now. I just sudo ifdown eth0 or eth1 and then sudo ifup eth0 or eth1 depending on where I am. As long as I remember to turn the radio back on at home, it works all of the time when I do that.
Third: Inserting an external USB mouse permanently disables the touchpad until reboot. That is super annoying. After a little research, I've heard that it is because of the fglx ATI driver, but I really want the accelerated 3D support so I need that driver. I read somewhere about how to re-enable the touchpad manually, but I haven't gotten to it yet.
Basically, other than that stuff, I haven't given up using ubuntu yet. Its still pretty good.
More later...
First: Sound isn't working from zsnes. I know it isn't a big deal, but it works in Windows just fine, but if it worked here. It would be so nice. Sound is produced but its noisy and sounds clipped. I searched for solutions for about 30 minutes, but I haven't given it more time than that yet.
Second: Every time I go from home to work and back again, the network adapters need to be brought up and then down. At work I'm wired and at home I'm wireless with WPA. I suspect my WPA solution is the problem, but I'm not annoyed enough about it to do anything right now. I just sudo ifdown eth0 or eth1 and then sudo ifup eth0 or eth1 depending on where I am. As long as I remember to turn the radio back on at home, it works all of the time when I do that.
Third: Inserting an external USB mouse permanently disables the touchpad until reboot. That is super annoying. After a little research, I've heard that it is because of the fglx ATI driver, but I really want the accelerated 3D support so I need that driver. I read somewhere about how to re-enable the touchpad manually, but I haven't gotten to it yet.
Basically, other than that stuff, I haven't given up using ubuntu yet. Its still pretty good.
More later...
Thursday, November 09, 2006
ACM PD
I recently discovered that the professional development center at ACM contains a Safari library. I realize that I should have known this. Another guy at work pointed it out. Its like my bookshelf now has 20 slots. 10 for normal use and then the ACM one that has 10 more and they are greatest hits. I say this because the ACM Safari is limited to something like 500 of the 1000s of books available at the full Safari. The books are selected by ACM members as the best books in the field I think. The biggest downside is that you can't download PDFs to read offline. But since its included as part of an ACM membership, I can't complain.
Sunday, October 29, 2006
long time
I guess I've been lax about posting here. I don't really have a good reason except that I've been posting about 360.yahoo.com too and I keep thinking that I'll try to keep this blog to more a technical nature, but I'm finding that I don't have much to say in a technical blog right now. I'm working on it. I'm thinking. I'm thinking a lot right now. :)
Saturday, September 23, 2006
Nike+iPod stuff
Well, I've definitely been way from this a while. I've been toying with 360.yahoo.com as well.
I have had a Nike+iPod kit and a refurb iPod nano for about a month now. I really like it and I've figured out a few things. First, you don't need Nike+ shoes to use it, but they help. Second, the sensor needs to be right side up in your shoes when you run, or it will fail to update distance properly at all. Third, calibration fails if the distance is too far off and that will happen if the sensor is upside down. Also, Lance Armstrong will occasionally make announces congratulating you on accomplishments. For example, I recently ran 10 miles and he congratulated me for completing my longest workout to date.
Its cool to play with and it movitates me to run more just so I can see updates on the website.
I have had a Nike+iPod kit and a refurb iPod nano for about a month now. I really like it and I've figured out a few things. First, you don't need Nike+ shoes to use it, but they help. Second, the sensor needs to be right side up in your shoes when you run, or it will fail to update distance properly at all. Third, calibration fails if the distance is too far off and that will happen if the sensor is upside down. Also, Lance Armstrong will occasionally make announces congratulating you on accomplishments. For example, I recently ran 10 miles and he congratulated me for completing my longest workout to date.
Its cool to play with and it movitates me to run more just so I can see updates on the website.
Saturday, August 12, 2006
Update on Ubuntu
Well, as it turns out my linux adventure is on hold. I used Ubuntu for a least two whole weeks at work and I've discovered a few things that I don't like.
Since I mostly do java development, I really want to use Eclipse. Eclipse on windows is very easy for me. I've been using it for at least a year and half now. I got used to everything that was different from other IDEs and I liked it. On linux, it is a little bit different. My biggest complaint and what would likely keep me from using it further on linux is that the user interface has too much empty space. It feels like I can see much more code on my laptop in windows than in linux. That is the primary annoyance there. It sounds petty, but it is enough for me to reconsider using it. If I hadn't used the windows version, I'm sure that it would be fine.
The other aspect is that at work, we have to use smart cards to log in now. Linux users are excepted right now, so we don't have to login with smart cards, but we are totally locked out of email without the use of a windows box. That gets quite annoying too. I managed to get the card working in Firefox so that I could access work websites finally, but I'm still tempted with fiddling around instead of doing real work.
That turns out to be my biggest linux complaint. Its almost too open for me because I can't control myself and do work. Instead I feel compelled to figure how change this or update that. Why isn't this working? and Oh, I finally figured that out. I am keeping it aroung and trying to login once a week. I'll give it another try in a few weeks. Its just right now we have big deadlines and linux isn't platform we need to deliver. That sounds silly I suppose, but its just taking me a really long time to get happy with the way everything works. Since it is a work computer, that time investment is totally unjustified.
I'm going to try to stay mostly computer oriented here for now I think. We'll see how it goes.
Since I mostly do java development, I really want to use Eclipse. Eclipse on windows is very easy for me. I've been using it for at least a year and half now. I got used to everything that was different from other IDEs and I liked it. On linux, it is a little bit different. My biggest complaint and what would likely keep me from using it further on linux is that the user interface has too much empty space. It feels like I can see much more code on my laptop in windows than in linux. That is the primary annoyance there. It sounds petty, but it is enough for me to reconsider using it. If I hadn't used the windows version, I'm sure that it would be fine.
The other aspect is that at work, we have to use smart cards to log in now. Linux users are excepted right now, so we don't have to login with smart cards, but we are totally locked out of email without the use of a windows box. That gets quite annoying too. I managed to get the card working in Firefox so that I could access work websites finally, but I'm still tempted with fiddling around instead of doing real work.
That turns out to be my biggest linux complaint. Its almost too open for me because I can't control myself and do work. Instead I feel compelled to figure how change this or update that. Why isn't this working? and Oh, I finally figured that out. I am keeping it aroung and trying to login once a week. I'll give it another try in a few weeks. Its just right now we have big deadlines and linux isn't platform we need to deliver. That sounds silly I suppose, but its just taking me a really long time to get happy with the way everything works. Since it is a work computer, that time investment is totally unjustified.
I'm going to try to stay mostly computer oriented here for now I think. We'll see how it goes.
Subscribe to:
Posts (Atom)