Pages
 
May 2012
M T W T F S S
« Jan    
 123456
78910111213
14151617181920
21222324252627
28293031  
Follow Me on Twitter

If you haven’t yet heard about SOPA and PIPA it’s time to get yourself educated.

Both of these pieces of legislation are up for hearing and review in the US Congress very soon, this week in fact.

Both of these pieces of legislation are so broadly written and draconian in their tactics that they have the potential to shutter most of the internet, pirate or not, and most likely not. In addition they have the potential for curtailing education, free speech and our economy. Because inspite of what Hollywood would have you believe. The internet contributes much more to our economy than they do.

Don’t get me wrong, I believe in copyright. I produce art and I have a family member who writes. I believe in copyright and that it should be protected. HOWEVER, all the tools are already in place to do that and to fight for it. Hollywood’s complaint is that those processes aren’t enough and take too long.

There is a reason they take time. It’s called due diligence. Since they are not likely to apologize, forget about compensating, a party that has been wronged by their claim of infringement, what happens when the infraction is something as small as posting a link to a site that they thought was legitimate, or was at the time they posted the link and 5 minutes later someone else posts something that now makes the site an infringing site. Sorry, I don’t think they will be going back and looking at date/time stamps.

This takes knee jerk justice to it’s heights. It laughs in the face of the concept of due process and completely obliviates the concept, our justice system is supposed to revolve around and that is ‘innocent until proven guilty.’

No these two pieces of legislation take the stance of shoot, and don’t bother to ask questions later. Just shoot, take them all out, innocent or guilty, doesn’t matter.

If you read this, if you value the freedom and the information available to you on the internet then you will voice your protest. Write a letter, make a phone call, hold a demonstration, turn your website dark, tell 2 friends. Do something. In fact, telling 2 friends, if they will tell two friends might be the easiest thing and most revolutionary thing you can do.

Most importantly, help get these two pieces of legislation not just off the table. Lets get them defeated so completely that the question never comes up again.

 

As a side note, I realize that I have provided few actual details of these acts. Please look them up and additional coverage of them up on your own. You will find information on many tech websites as well as at WordPress.org.

Once again I had the opportunity to revisit some of the basics of troubleshooting code and processes. Actually, I’ve had two of these opportunities in the last week. One opportunity was a problem a co-worker was working on and the other problem was my own.

My co-worker was working on an SSIS package that was essentially like another package. The other package worked fine. Her package errored out.

We’re both fairly junior in our roles and both still learning. Because of some transitional responsibilities I was given I started dealing with SSIS packages a bit before my co-worker. We also come to our roles from different disciplines. My analytical experience has more to do with why something doesn’t work and how to make it work. Where my co-worker’s analytical experience comes from understanding data. So we approach things differently.

When my co-worker asked for assistance she sent me the error message and did a screen share so I could see what she was looking at. The only thing that stood out was a parameter. The way it looked to me was as if it was a boolean test, (If this is set to 1 it’s true…). My question to her was where was that value coming from. It was this value that seemed to be the culprit, where was it coming from.

I wasn’t able to help her directly as she didn’t know the answer to the question I asked. She did have a meeting later with the person who is mentoring her and she was going to ask about it. As it turned out my question to her was the right question to ask.

The parameter was not a boolean test as I had thought. It was actually an ID that came from a table. This made all the difference. She had copied the SQL code from a working package and expected it to work in the new package without understanding where some of the information was coming from.

Knowing where the information is coming from turned out to be key to the problem I was working on. I have a system that I am in the early stages of preparing to upgrade. I’ve got the software installed and now I need to make sure the data in the new system balances to the data in the current system. There are a half a dozen segments that are semi-independent of each other and each has a counterpart on the other system.

The thing about this system is how kludged it is. Each process is launched by a batch file that calls another batch file which may call another batch file. Any of these batch files may call .dtsx packages, sql scripts or other proprietary scripts that then load data from text files. I have had to troubleshoot each of these processes and was down to my last process that wouldn’t balance. I had two systems to compare it to and knew that the error was in some historical data.

First I set out to check the .dtsx packages to verify I hadn’t forgotten to change something in the migration. I was also trying to find which .dtsx package(s) generated these two historical data files.

I did find where I had indeed missed changing a server parameter. I corrected it and set about re-running the process. This did not solve the problem. I was still not balanced. So I went back again to figure out which of the .dtsx packages generated these two files.

Once I identified the correct packages I was then able to trace back and find out what other batch file was calling those packages. What I found was that when I found the issue with the server in the one package and I tried to run the batch file to kick off the update of the history, I chose the wrong batch file.

Remember this system has batch files daisy-chained like nobody’s business. So I needed to launch a previous (in the chain) batch file that would launch the batch I had already run as well as another batch that was going to call the .dtsx package that was going to generate the second history file. The biggest problem with the historical data is that it doesn’t get generated or refreshed as a part of the regular process. So the historical batch was run and then I ran the regular process and finally my historical data balanced.

The key thing for solving both these problems was identifying where the data was coming from and how was it being generated. When troubleshooting code or processes sometimes the best question to ask is, ‘where did that come from?’

Due to the amazing number of comments and my inability to keep up.  Going forward articles will not have comments enabled. For any articles already published their comments should close within 14 days of the original article posting date.

If you truly need to comment please contact me another way.

Thank you.

I think my Geek Card may have been temporarily suspended. I’m guessing this is because I have chosen not to join, or fight, the masses and try to update everything as soon as the new thing is out.

That’s right. Even though I intend to upgrade my 3g iPhone to the new 4s iPhone, I did not pre-order it nor did I rush right out on the day they were released and get one. A week later and I still don’t have one. My plan is to get one next month, and from what I’ve read, this may not be the worst idea. Sure they might be out of the exact one I want and I may have to wait. Then again I won’t be among the millions trying to activate a new phone all at the same time.

I, also, have not yet updated my iPad to iOS5 yet. There are a couple of reasons for this. First is that I tend to be a little leery of this process since the very first time I tried to update the OS on my iPhone. I hadn’t had the phone very long and tried to update it and bricked it. Messed it up so bad in was a hunk of nothing and I had to take it to the Apple Store to get it fixed.

The second reason is partly related to the first reason. That’s because one of the things that contributed to the phone situation was a likely corrupt install of iTunes. To install iOS5 you have to upgrade iTunes first. I did do this the first or second day and it took so long that I am a little concerned. There on that first day there was all that network congestion from all those people trying to get the new OS. I could just see a connectivity blip and getting a corrupt copy of the OS.

Then there is, probably, the biggest reason I haven’t done the update. It is going to take time and I don’t know how long that will be. And I have not had the time or the patience to wait out the back up, then verify it was backed up, then wait for the download and install and reboot, and hope it all works.

I have read of several people having trouble with the iOS upgrade as well as a security hole or two, one with Siri on the new iPhone and one having to do with the Smart Cover for iPad 2. Maybe by waiting a little there won’t be as much trouble with the update and other problems will get fixed.

While some would say that my delay in upgrading is justification for revoking my Geek Card, I will have to argue against that. I have seen too many upgrades and updates that have gone a bit wrong and caused people a number of headaches. Many times if the problem is bad enough, a solution to the problem is available fairly quickly, thus making the update or upgrade just a little easier for those who wait.

Go ahead, suspend my Geek Card. I’ll continue to be cautious and let everyone else enjoy the pain first.

These days I spend the bulk of my time testing and validating the results in a newer version of some of our key software. I consider it to be finicky stuff and we’re making a significant jump in versions so I’m not sure what to expect. Thus, I spend a lot of time going through everything.

I had to load some reports into this new version. Reports that I first had to export from our current version porduction system. Then they had to be imported into the new version. In the process of importing the reports I did a mighty fine job of crashing the new version, several times.

The crashes, and their resulting error messages prompted me to look for what might be the cause. No, I haven’t found the ultimate solution yet. What I did find, just by pulling up the task manager, was that once all the services were started, just started, not doing anything in particular, they were using up more than half the available RAM. Some of the reports were large enough and complex enough that trying to import more than one at a time was putting too much load on the system. This isn’t really a good sign. I’m one person using the system right now. When it goes to production there will be several using it.

Fortunately the system is on a virtual server so five minutes of down time and we were able to throw more RAM at the problem. Not really the best fix but this could have been partially a miscalculation in required specs. It did still crash another time or two but not because I peaked on RAM, it turns out I also pegged the CPUs. All four of them. Note to self.

So now I have all of this information on the behavior of this system and a new concern, is it going to crash under a normal user and automated job load? I’m not sure, but you can bet I’ll be load testing this and watching for this when I turn it over to the users for testing.

Meanwhile, on the other side of the cube wall, my boss is dealing with a system that has just been deployed to production and it keeps crashing. The vendor doesn’t know why. They try to blame it on the size of the reports and the number of users. It’s month end, of course there are going to be a lot of users. And size of the report shouldn’t matter, just as it shouldn’t matter in the system I’m working on. At worst, they should just take longer to run.

Apparently, though the system was tested, it was tested one person at a time and one report at a time. Nobody had several users run stuff at the same time and run a variety of reports at the same time. The system was not properly load tested and the vendor was unprepared with regards as to what to do in this situation. They may have deployed it in other locations that it worked fine, but just because something works in one environment doesn’t mean it will work fine in all environments. Regardless of whether it should or not.

I had already determined, from my experience with my testing, that for the system I am working on, I will need to have it tested under stress. Listening to the pain of this other system only reinforces that.

Having a new system tested before roll out is good. But it’s a waste if the test wasn’t under realistic circumstances. These days, it is rare that you will have an enterprise level system that will only ever be utilized by one person at a time. And as the amount of data companies have grows, the need to be able to analyze large chunks of it at once also grows. Make sure your testing accounts for this and reflects realistic usage scenarios before proclaiming a system is ready for prime time. Save yourself the pain and frustrations and save your department the black eye.