Random thoughts from Jeffrey RSS 2.0
# Monday, July 28, 2008

Downtown Portland

Downtown Portland, from the Vista Viaduct over Goose Hollow. That's the MAX (public transit train) just starting to go by.

Vista Viaduct

The viaduct (looking east-ish towards downtown). This picture was taken in February instead of January, so that's why the sky isn't as dreary a shade of gray.

Vista Viaduct

Another picture from February of the Viaduct.

Now Playing: Coldplay – Viva la Vida – 07 Viva la Vida

Monday, July 28, 2008 06:06:53 UTC  #    Comments [0] -
Oregon | Pictures
# Saturday, July 26, 2008

In response to this post, yes, you actually can "run" PowerShell on Windows 2000. No, there is no out of the box way for it to run. No, it's not supported in the slightest. I'm not even sure it's technically legal (haven't read that Windows EULA in a long time). And even when it is running, there are likely to be things that don't work.

That said, here's how to get Windows PowerShell v1.0 to run on Windows 2000.

What you will need

Creating the installer (on Windows XP)

  1. Install the .NET Framework 2.0 SDK. You'll need a specific tool from it, and it's easier to just install the SDK and grab the tool than it is to try and extract it somehow.
  2. Extract KB926139 (run 'WindowsXP-KB926139-v2-x86-ENU.exe /extract').
  3. Make a copy of the 'powershell.exe' file that was extracted from KB926139. Now break out your hex editor, a copy of the Portable Executable Format Spec, and modify the header so the Windows 2000 loader will actually run the image. Or just use your hex editor to modify the byte beginning at offset 0x00000132 in 'powershell.exe' so it is 0x00 instead of 0x01 (Windows 2000 is version 05.00, not 05.01).
  4. Read the 'update\update.inf' file extracted from KB926139. This plain text file contains the instructions on how to install PowerShell on Windows XP, so all that's needed is for them to be duplicated on Windows 2000 (batch/reg files? windows scripting host? whatever you want!).
  5. 'PSCustomSetupUtil.exe /install' doesn't seem to actually work on Windows 2000. So use a combination of 'InstallUtil.exe' from the .NET Framework and 'GacUtil.exe' from the .NET Framework SDK (this tool is the entire reason the .NET Framework SDK is needed).

Installation (on Windows 2000)

  1. Install the .NET Framework 2.0
  2. Follow the instructions in update.inf from the extracted KB926139 to install.
  3. Remember to substitute 'installutil.exe' and 'gacutil.exe' for usages of 'pscustomsetuputil.exe /install'.
  4. Replace the official version of powershell.exe with the one containing a modified header.
  5. Maybe create a shortcut and define console window appearance settings.

For the lazy: all scripted up

I've gone ahead and deciphered the update.inf file, so if you're feeling lazy, just download this file and follow these instructions. Note that the included scripts assume that Windows is installed in C:\WINNT. If it's elsewhere, you'll have to modify all the scripts & registry files.

  1. Unzip the 'install package.zip' file you just downloaded.
  2. Get 'gacutil.exe' and 'gacutil.exe.config' from the .NET Framework SDK. Place them in the NETFXSDK subdirectory of the unzipped install package.
  3. Get KB926139 and extract it to the KB926139 subdirectory of the unzipped install package.
  4. Copy 'powershell.exe' from the KB926139 subdirectory into the bin directory. Modify it as in step 3 of "Creating the installer".
  5. Take the whole install package structure, now with the PowerShell binaries/installer tools, to a Windows 2000 system and run the 'System Setup.cmd' batch file.
  6. (optional) Run the 'User Setup.js' script to configure the PowerShell window's default settings to match whatever I had on whatever system I was on when I figured all this out (most useful because it enables tab completion, which isn't on by default in 2k, unlike in XP and later).

Now Playing: Basia Bulat – Oh, My Darling – 07 In the Night

Saturday, July 26, 2008 05:07:47 UTC  #    Comments [0] -
IT
# Thursday, July 24, 2008

Here are some more pictures of Reservoir #3 in Washington Park, Portland, Oregon. I took them back in February, so you can tell I'm a bit behind on posting things...

IMG_0166

IMG_0170

IMG_0171

Now Playing: Josh Ritter – Hello Starling – Bone Of Song

Thursday, July 24, 2008 05:44:24 UTC  #    Comments [0] -
Oregon | Pictures
# Tuesday, April 29, 2008

At work, we use Maven to do builds for the project I work on. The Infrastructure IT people also have helpfully configured it so that every user account has a home directory conveniently located on a file server. Since we use Windows (Windows 2000 to be precise...), that home directory is a UNC path of the form \\server\share\folder.

This, it turns out, is rather bad for Maven.

See, Maven has a settings.xml file that allows you to configure it. Things like the local repository location, proxy settings, remote repositories, etc. get configured in that file. So it's kind of important. Maven looks for that file at <home directory>/.m2/settings.xml. And there in lies the problem with having <home directory> be a UNC path: Maven or Java or something just breaks, and that file isn't found/read.

Now, apparently if you put the file in C:\server\share\folder\.m2, Maven will find it. Sometimes. I didn't see consistent behaviour when trying that approach, and ended up abandoning it last year. Part of the problem may have been that different Maven things (mvn, Eclipse plugin) handled the exceptional situation differently, so builds might work from inside Eclipse and then fail on the command line.

So I began looking for a different approach, and took a look at the root cause of the problem. Attempting to get the Infrastructure people to change their policies and affect thousands of accounts as doomed to a slow failure, forcing me to try and find a workaround that was specific to my computer.

And at last! The grand unveiling! It's really quite simple in principle: if the home directory path is causing a problem, lets just make Maven see a different path. Doing so isn't quite that simple though.

Here are the steps:

  1. First, a user specific HOME variable is created, pointing to the location the home directory needs to be redirected to.
  2. Then define a system wide JAVA_OPTS variable, with the value of "-Duser.home=%HOME%". This isn't strictly necessary to get Maven itself to run, but is useful for creating a consistent experience with Java applications and this home directory redirection scheme.
  3. Now, the magic Maven command-fu: create another system wide variable, MAVEN_OPTS. Value is "-Duser.home=%HOME%". Yes, this is the same as the JAVA_OPTS value. But mvn reads MAVEN_OPTS instead of JAVA_OPTS.
  4. A bit of Eclipse integration: edit the eclipse.ini file and add the "-Duser.home=%HOME%" (note that I think you have to expand the %HOME% to the actual value; I doubt Eclipse uses Windows command prompt style variable referencing syntax) string after the -vmargs option. Now Eclipse will use the redirected home directory during startup.
  5. More Eclipse integration: plugin/feature support: Go to Window->Preferences->Java->Installed JREs and edit any entries so they contain the VM argument "-Duser.home=%HOME%" (again, have to expand that %HOME% yourself to what the value is).

Okay, that should be it for just Maven. In theory these steps could be applied to other Java apps that have problems with finding settings in home directories. I've been lucky enough not to run into any of those apps though.

Now playing: Basia Bulat – Oh, My Darling – 07 In The Night

Tuesday, April 29, 2008 04:38:38 UTC  #    Comments [0] -
Java
# Monday, April 28, 2008

First it was the IIS box serving this site, but now it's going to be the whole network that's moving to Windows Server 2008. I'm attempting to go with a complete new forest installation, which will force migrating everything over from the old Server 2003 forest, so that should be interesting. And now, onto the first notes about that experience!

So...here's what's happening: installing a "new" server using Windows Server 2008, making it the first DC in the domain, and then installing Virtual Server 2005 R2 SP1 Enterprise (okay, can that name get any longer?!) without installing IIS. And it's the Core version of Server 2008, so everything is via the command line. After having worked on it for the better part of today, I'm now sitting here wondering why the heck anyone would use Core. I mean, if I wanted a command line only interface, I'd just use BSD or Linux!

For future reference here are a couple of things:

Useful commands:

pnputil -i -a <inf> (install device drivers (I think...I haven't confirmed if this actually installed them yet))

cscript %systemroot%\system32\scregedit.wsf /au 4 (Enable automatic updates)

cscript %systemroot%\system32\scregedit.wsf /ar 0 (Enable Terminal Services)

cscript %systemroot%\system32\scregedit.wsf /im 1 (Enable remote IPSec management)

netsh interface ipv4 show interface (get the list of names for use in other netsh commands)

Feldspar:

netsh interface ipv4 set address name=2 source=static address=10.0.1.9 mask=255.0.0.0 gateway=10.0.0.1

netsh interface ipv4 set address name=3 source=static address=10.0.1.10 mask=255.0.0.0 gateway=10.0.0.1

netsh interface ipv4 add dnsserver name=2 address=10.0.1.9 index=1

netsh interface ipv4 add dnsserver name=3 address=10.0.1.10 index=1

Useful links:

http://blogs.technet.com/shinsley/archive/2007/04/19/windows-server-longhorn-server-core.aspx

http://blogs.technet.com/server_core/archive/2008/04/16/reducing-the-server-core-disk-footprint.aspx

http://support.microsoft.com/kb/890893/en-us

Monday, April 28, 2008 05:15:13 UTC  #    Comments [1] -
IT
# Tuesday, April 01, 2008

Panel: To Share or Not to Share

  • Sharing is broken across regions (regions get approved/filed at different times, which complicates implementing changes)
  • Some people apparently just don't use regions: they emulate it all with the formulas and lots of tables
  • But sharing makes development faster (at the cost of more complex maintenance)
  • My thought: perhaps sharing would be more useful if really break down everything into small components that wont change
  • What actually gets shared depends, as always, on business requirements

Break:

I thought I should take some pictures of the resort that the conference was at.

Loews-Ventana Canyon Resort lobby entrance

Loews-Ventana Canyon Resort lobby entrance.

Loews-Ventana Canyon Resort pond

Pond at the Loews-Ventana Canyon Resort. Yes, this is in the desert. It makes me wonder what happens when there's a real drought...

Loews-Ventana Canyon Resort golf course

Golf course at the Loews-Ventana Canyon Resort. Plus a little bit of the pond they have that spills over in a pretty water feature into a lower pond. Although that part shows up more as the water just ending in a sharp edge.

"X"ML Marks the Spot ~ Utilizing Ratabase XML

  • Presented by Serge Décoeur
  • Overview of XML (if you don't know this, umm...learn it?)
  • Ratabase XML schema: 'RBGeneric.xsd'
  • New with v.5.0
  • Fields:
    • General fields := input fields
    • Accumulator, Parameter fields := output fields
    • Global fields SHOULD NOT be passed in
    • Optional FLD attributes MOSTLY used by test tool
    • Arrays also handled differently
  • We've coded formulas to handle NoMatch errors  - we just keep on processing
  • Uppercasing everything "performs better"
  • Extension stuff sounds interesting
    • Not passed to calculator, so more efficient data pass through mechanism?
  • Exclude attribute lets Nodes not be passed to the calculator
  • API doesn't drive calls at all
    • your "LobAdapter" would do it
    • so we'd still have the web service, it just eliminates block specific stuff in it (replace with the XML API)

Wynsure Solution Overview

  • Platform portfolio of products
  • "Synergy Solutions" : partner with other solutions (non-CGI)
  • CGI implements, supports, does it ALL for these apps
  • Highly component based (good), but single sourced (bad)
    • .NET version is "a lot faster" than the Java version
  • Actually written by Wyd (in Minneapolis)?!
  • Does Property & Casualty and Life
  • Adding:
    • reflexive questioning
    • acord support

Finding the Proven Trail - Upgrading from Prior Versions

  • Summary: v4.0 → v4.2 → v5.01
    • Presented by John Barlow
    • Upgrade Production before Product Builder
    • Need Full distro to get to v5.01
  • Product Builder
    • v4.0 → v4.2
      • Create Archive DB (.sql or DB2 script)
      • Archive stuff is optional - can enable archive stuff AFTER 5.0 update
      • Calculator doesn't really get updated with 4.2
      • Note: Liberty firewall prevents us from getting FTP access
    • v4.2 → v5.0
      • SQL script (or DB2 batch file)
      • Run security update
      • Update Product Builder database ID
  • Production
    • Update DB's (further instructions)
    • Install v5.01 following instructions
    • (No complex upgrade steps)
  • v5.0
    • Additional date validator changes
    • adapter change
  • "Feel free to contact help desk"

Exploring the Desert Landscape ~ Desert Jeep Tour

Arizona desert

Desert plant

Horse and donkey

Desert plant

Saguaro cacti on rocky hill

Desert flower

Old saguaro cactus

Petroglyphs 

Now playing: Sam Roberts – Love at the End of the World – Them Kids

Tuesday, April 01, 2008 23:59:48 UTC  #    Comments [0] -
IT
# Monday, March 31, 2008

Welcome event

  • CGI has a number of different apps - it's not just Ratabase!
  • CGI is BIG! ~26 000 employees and growing

Introduction:

  • Begins with Clients introducing themselves & how they use Ratabase. We (LNW) run the Ratabase calculator on Unix with a DB2 backend and IBM WebSphere app server interfacing to the calculator via JNI
  • Some use Ratabase for Underwriting Rules (probably a bad idea, but meh...)
  • Mike (of Chubb) is interested in decoupling & using SOA (so, might want to talk to him, since we do that at LNW)
  • Geico people say they're on v5.0 (so, might want to talk to them about migration)
  • Liberty International uses it with Specialty Lines (there's other parts of Liberty that use it? <sarcasm>who'd have guessed?</sarcasm>)
  • <something> going to .NET
  • Traveller's looking for WC Anniversary Rating advice (sounds like they need to talk to Deb...we've already dealt with this problem space)
  • Erie Insurance implies that the Report Tool can be used to verify the TRN files in multiple environments (might prove useful if we have sync problems between any of our 5 environments).
  • And ends with various awards being handed out

Panel discussion:

  • Notes taken but not really coherent. Mostly questions about the direction of rating stuff in the insurance industry (so I didn't follow too well, and stopped even trying to take notes half way through).

Distribution ("What to Pack"): Santa Rita room, 13:00

  • You need a Workflow!
  • Starts in Product Builder (sounds like distribution isn't such a big deal for us because it's just Deb doing Ratabase right now)
  • SHOULD use Product Builder's data statuses
  • Can't (yet) do distribution by date
  • "Status is just a checklist" - it doesn't affect operations
    • 'Ready to File' locks data down to read-only
    • 'Filed' is not reversible! (except when it is)
  • Date changes can be done on 'User Filed' items (date change utility)
  • v5.0 allows more test distributions: distribute while recalled so can test recalled changes
  • General Distribution: redistribute everything
    • Sounds like what I think we do now
    • Maybe for fixes we could go with Specific Element
  • What type of distribution are we doing?
    • Production or Test?(T*.trn == Test)
    • Loader is stricter with Production target
  • "Distribution Drawer" in Product Builder stores distribution definitions
    • We should keep a log of distributed data
  • Production TRN distribution: D*.trn
  • With general distribution, don't have to worry about missing file loads
  • Drawer allows recreation of a TRN
    • Unless filings have been shredded
    • Or dates changed - GETADDR error
    • Also, it creates a new sequence number (to allow rbdload to load the file)
  • Owner-sharer relationships can be tricky
    • Don't want owner distributed? Out of luck if sharer used it & gets distributed.
  • v5.0:
    • Distribution files have changed
      • Can run reports on production databases to get build info
      • Adds TRN file sequence/version number to database!
      • We can read the sequence number & output version automatically!
  • Filings shredded in Product Builder but distributed will only be removed by using RBDelete – loading/reloading will not remove them.
  • Archive utility also exists to pull things off production databases too
  • When dealing with Owner-Sharer relationships, Product Builder actually does duplicate the data, but it also keeps track of what the relationships WOULD BE
    • Sharing data doesn't actually exist in the production DB, it's just relationships based on OID's
  • Shredding may be needed to break sharing relationships (for us this "future" is when we move to User Filing)
  • Date Changes need to be done after shredding & recreation
    • because dates are used in the object mapping (if OID changes)
    • dates are also used to pick filings
    • TRN Loader matches on OID || all other fields
  • If the table structure changes, Originators (owners) need to be put in first
  • Auditing is only done on user filed data
    • So we don't have any auditing support now?!
  • Recall Distribution must be done after recall & before any future distributions
  • Different regions wont get caught with sequence errors on load (sequence numbers don't have to be increasing across regions, just within a region)

Interactive Discussion

  • Characteristics of good Ratabase programmer/analyst/whatever (people that work with Ratabase/Product Builder)
    • Team Player: needs to bridge IT & biz users
    • Problem solver
    • Analytical (LM PM VP said the economics majors worked out better than others)
    • Attention to detail!
    • Some use Actuarial to do Ratabase because they make the rate changes anyway (I think we technically do this, at least if you look at the titles & reporting structures)
    • Some use Consumer Affairs because of their understanding of the regulations and mediation of dealings with regulators
    • But you don't need a CPCU
      • Need to understand the Product though
      • Maybe only really need some biz knowledgeable users; not everyone needs to know it to code it.
      • Really need people who understand Formulas & Math
    • Must play well with others ("Participants are all in Partnerships")
    • Some projects helped by strong leads/PM
    • Colocating can be very helpful too
    • Can't separate IT & Biz that much; Ratabase is in between both worlds

Client Product Forum

  • Apparently they have this conference call every quarter to discuss how people feel about Ratabase
  • Kind of a User Group for Ratabase
  • Gives CGI feedback for future plans/support options
  • v.5.0: Need to upgrade from v.4.2
  • v.5.01: Need to upgrade from v.5.0
    • Better Testing
    • Added XML API
    • Allows arbitrary NoMatch entries (indices in Item blocks don't need to be pre-allocated)
    • FTP into site to get the Full distro (direct from v.4.2 to v.5.01)
  • v.6.0 is in progress
    • .NET native app!
    • can now sort columns of data by clicking on the column
    • Filing groups
    • Can now view formulas graphically (WPF maybe?)
    • Will be able to re-rate within calls (so we could conceivably do 1 call with multiple passes)
    • XML data API expanded to encompass Data Validation
  • Listening to what other people say, it sounds like a lot of companies have bad practices:
    • Passing data through Ratabase
    • Not tracking changes
    • Making Ratabase take on roles it wasn't designed for:
      • workflow
      • rules
    • Why would one have thousands & thousands of tables!?
  • Maybe we should adopt a naming practice for input fields
    • Assuming they're actually different than the ones marked as Input in the database (no, you aren't supposed to be mucking around inside the database to figure things out...)
  • Liberty Mutual Personal Markets needs >15 digit numbers (trillions)
  • XML test cases for testing tool might be good

Now playing: Veda Hille – the riot life – lucklucky

Monday, March 31, 2008 23:59:23 UTC  #    Comments [0] -
IT
# Sunday, March 30, 2008

I'd forgotten my SD card reader doesn't handle SDHC cards. So I have to copy the all off my USB camera connection (thank you Ryan for that Belkin traveler's cable kit!). Fortunately, that doesn't take that long if I put the files locally instead of uploading them through a 100Kbps connection back to my file servers.

Not much happened today except for checking into the room and picking up my name badge. Didn't stay long at the reception (didn't know anyone there, so it was a little awkward). Ended up driving out to the Tucson Airport just to get away & relax/calm down a bit. Plus, now I know how to get there if I need to take people when everyone leaves on Wednesday.

Anyway, to make up for the lack of real progress, there are pictures!

Saguaro Lake

Saguaro Lake (west end, looking east: NF-206 off N Bush Hwy (according to my map))

Grandpa, grandma, & me

Grandpa (Bertil Peterson), Grandma (Joyce Peterson), & Me (Jeffrey Stults, Jr.)

Superstition Mountain

Superstition Mountain (from US 60)

Catalina Mountains?

Catalina Mountains (I think), viewed from the north-ish on Arizona 77/79.

Creek/river in Catalina State Park, AZ

Some creek/river in Catalina State Park. Unfortunately, even the park map I got at the park fails to mention what its name is.

Romero Canyon floor

The same hydrological feature in Catalina Start Park. Only this time, from inside Romero Canyon.

Romero Canyon floor

And once again with the water...I mean, it is the desert after all, so water like this is kind of rare. Looking up the "canyon" in this shot.

Hills at Catalina State Park

Hills/mountains at Catalina State Park. Apparently, there are trails if one wished to hike all the way up to the top.

Looking out across the Arizona desert 

Arizona desert (Catalina State Park again).

Hill/mountain at Catalina State Park

Looking the other direction from the view out across the desert yields a site like above.

And some obligatory cactus photos:

Barrel Cactus

Prickly Pear Cactus

Saguaro Cactus

Now playing: Josh Ritter – The Animal Years – 09 Best for the Best

Sunday, March 30, 2008 23:59:51 UTC  #    Comments [0] -
IT
# Saturday, March 29, 2008

9:45 :

Finally made it through security at PDX. That has to be the longest it's taken me to get through security here at PDX. It was shorter at Christmas & Thanksgiving even! Maybe it's just the flight time...

Currently looks like the flight is on time, and everything has been confirmed. So, all set to take off! (well, except the airplane isn't here yet, and isn't supposed to be here for another hour and a half)

Bit of background for those not-in-the-know: CGI makes software products for insurance companies (they do other things too), specifically a product called Ratabase. We use it at work to do, well, worker's compensation insurance rating. CGI is having a conference on their rating & other products in Tucson, AZ from March 30 - April 2. And I'm going to be there.

But first I'm flying into Phoenix and visiting my grandparents in Apache Junction. Which should now happen in ~1.5 hours.

6:00 :

Plane landed fine, took wrong shuttle to rental cars & ended up in the west parking lot. Took shuttle back to terminal, got on correct shuttle to rental cars. Got rental car, got talked into taking a full size car (hopefully that wont cause any problems on the expense reporting). Picked a 2009 Nissan Altima because, well, it was brand new. And I think the car looks good. After having driven it, don't really care for it too much. I mean, it's not a terrible car, but I think there are definitely better cars in its class available. Or at least, there were available 9 years ago when my Stratus came out ;).

Got to my grandparent's trailer in Apache Junction & have had fun just hanging out with them.

(note: not actually posted at 4:00 Saturday because of no Internet connection).

Saturday, March 29, 2008 17:08:04 UTC  #    Comments [0] -
IT
# Monday, February 25, 2008

Here are the pictures from the trip down to Sisters, OR (via 242...fun drive there).

Foster Dam lake

Lake created by Foster Dam (near Sweet Home, OR)

Winding road through heading into the mountains

I think this was on U.S. 20, somewhere in the Willamette National Forest. Lots of corners on the drive (well, after getting off I-5 at least).

Winding road climbing up

Gaining elevation somewhere on U.S. 20 or Oregon 126.

Snowy trees

The road was snowy in September. There's a reason 242 is a seasonal road.

Belknap Crater? maybe?

On 242, going up to McKenzie Pass. I think this is Belknap Crater (based off of this map; I'll have to go back and get a picture of the legend thing at the Observatory). Lava fields it the foreground though.

Dee Wright Observatory

Dee Wright Observatory. Blends in with the terrain pretty well. Somewhat drafty & damp though.

Lava fields & Mount Jefferson?

Mount Jefferson towards the left? Hopefully it wont be so cloudy when I go back and get more pictures & figure out what everything is. Again, more lava fields in the foreground. The lava fields make it a very weird place; feels very harsh & desolate.

McKenzie Pass sign

McKenzie Pass! I continued on to Sisters before turning back. It's not that far to Sisters, but you lose all that elevation on the way. Which made that part of the drive even more fun!

Switchbacks on 242

Going down...switchbacks on 242. On the western side of 242 the road snakes its way up & down the sides of mountains this way.

Now playing: Christine Fellows – Paper Anniversary – 08 Souvenirs

Monday, February 25, 2008 03:41:00 UTC  #    Comments [1] -
Pictures
About the author
Jeffrey Stults
Jeffrey Stults is a software developer currently in Portland, Oregon. He is contactable at:
stultsj@ntldr.net
Archive
<July 2008>
SunMonTueWedThuFriSat
293012345
6789101112
13141516171819
20212223242526
272829303112
3456789
Disclaimer

Disclaimer
The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.

© Copyright 2012
Jeffrey Stults, Jr.
Statistics
Total Posts: 256
This Year: 0
This Month: 0
This Week: 0
Comments: 23
Utilities
Pick a theme:
Sign In