OK, I had a Soylent Green moment a few minutes ago (use your best Charlston Heston voice and scream "Soylent Green is people...its PEOPLE!") .
I just realized the shinny new Vista Gadgets are JavaScript. Not using some language like JavaScript, but JavaScript. Oh, and there is some HTML mixed in there as well.
See more here: http://microsoftgadgets.com/Sidebar/DevelopmentOverview.aspx
You can see what other people have done here: http://microsoftgadgets.com
This is was a jaw dropping moment for me. Hard to believe, if you will. "You mean you can modify the Windows Desktop with JavaScript? Not VBSCript, not some unknown .NET library, or a Win32 api hidden so far down in the bowels of the OS that you would need a spelunker with a love of dark, cramped places to find?" Yup, just JavaScript and HTML.
Then I stopped, drank some green tea, and closed my Slashdot browser tab. Deep breath. (Did I really close Slashdot? No way! Next time I'll try closing Digg.)
OK, so if you create some new shiny feature in your beloved, money maker operation system, there are reasons to make it as approachable as possible. Mainly, so every two-bit web developer can make some cool (and probably worthless) to show off. Then your side bar can be even more shiny! But I digress.
Personally, I don't have a love-love relationship with JavaScript. I view it as you would the ugly daughter of the rich guy at school. Not much brains, but she is rich, and she has a lot of friends.
Most of the time when I need to do something with JavaScript, the first place I turn is Google. Then, if need be, I will write it myself. C#, VB.NET, Delphi, SQL, MDX, C++: no problem, I'll dive right in. We are swapping phone numbers, trading IMs, and sharing milk shakes. JavaScript? Where did I put that 10 foot pole? OK, not that bad...2 foot pole.
But, considering the problem, JavaScript probably is the right solution. JavaScript is well known, lots of developers already know it, and it is very free for the average SlashDot whiner. Hey, even an ugly rich girl needs a bit of love from time to time.
But...what about code security? If these things are JavaScript, and you create the worlds shiniest gadget EVAR that everyone is going to want...how exactly do I charge for it and turn myself into a billionaire? Hey, I'm a pro and I don't code for free. Well, maybe just once, but that was for a really good cause.
Next, how do I hack into that Windows API thing that I keep hearing about. Vista ships with a couple of cool gadgets already, like a CPU and RAM performance gauge. Very nice. And I think you would need to hack that Win32 thingy to get there...but I don't remember JavaScript having those hooks.
Unless there is a second API that Microsoft isn't telling us about! Some secret API only available to its own wizards and otherwise locked away in the basement of the tallest, darkest tower filled with trolls and dragons (the trolls are dragon food). Meh, probably not. Sounds like I have another reason to brush off my JavaScript book and start reading.
I should have started doing that a long time ago anyway.
Update: The default gadgets can also be found on the hard drive, and they are written in JavaScript and HTML. You can find them at C:\Program Files\Windows Sidebar\Gadgets
December 20, 2006
December 14, 2006
Vista is working...mostly
OK, I have Vista working on 2 of my 3 machines (I still haven't installed it on my laptop, that just scares me for some reason) and it is working mostly fine.
The only issue I have is on my big gaming/dev machine. The SATA drive will not work and neither will the 3com onboard nic (but the nvidia nic does work). It is an nForce2 motherboard from ASUS, but nVidia makes the drivers. And they have discontinued support for that chipset.
I can still get drivers for a TNT2 video card, but not my motherboard chipset - and the motherboard is years newer. That bites.
The only issue I have is on my big gaming/dev machine. The SATA drive will not work and neither will the 3com onboard nic (but the nvidia nic does work). It is an nForce2 motherboard from ASUS, but nVidia makes the drivers. And they have discontinued support for that chipset.
I can still get drivers for a TNT2 video card, but not my motherboard chipset - and the motherboard is years newer. That bites.
November 20, 2006
Boise Code Camp 2.0
OK, we can officially say Boise Code Camp 2.0 is coming.
Feb 10, 2007 at Boise State University.
See BoiseCodeCamp.org for details of the event.
The cool part is we already have people lining up to speak, and it is being very well received in the community. Last year we had over 130 people show up (many from outside of Idaho). This year we are gunning for 400 -- which might be a pipe dream, but you have to have goals!
Actually, I'd be happy with 130 again. Heck, I don't care how many people show up, so long as there is something interesting for me to see. Yes, I'm selfish, but why else would I donate time to a free developer event.
Anyway, it should be fun and I hope everyone can attend.
Feb 10, 2007 at Boise State University.
See BoiseCodeCamp.org for details of the event.
The cool part is we already have people lining up to speak, and it is being very well received in the community. Last year we had over 130 people show up (many from outside of Idaho). This year we are gunning for 400 -- which might be a pipe dream, but you have to have goals!
Actually, I'd be happy with 130 again. Heck, I don't care how many people show up, so long as there is something interesting for me to see. Yes, I'm selfish, but why else would I donate time to a free developer event.
Anyway, it should be fun and I hope everyone can attend.
October 20, 2006
Anyone install IE7 yet?
Let me be the first to raise my hand on that one.
A recent new policy, outlawing Firefox, at the company I'm working has created a perfect storm for me to install IE7. So I did.
In case you missed it: IE7 was released yesterday. See msdn.microsoft.com for download details.
The good:
A recent new policy, outlawing Firefox, at the company I'm working has created a perfect storm for me to install IE7. So I did.
In case you missed it: IE7 was released yesterday. See msdn.microsoft.com for download details.
The good:
- Memory usage isn't as bad as Firefox
- The new Favorites menu works really well, open in new tab is a nice feature
- Quick Tabs is also really cool*If you middle-click on a link on a page, it opens the page in a new tab right next to the tab you are one.
- Popup blocker is built in
- Takes 15-20 minutes to install, and requires a reboot.
- It is slower to display than FireFox (I dont have any metrics on that, purely anecdotal)
- I've seen some issues with Fonts (they jump around from time to time, I last saw this while looking at Digg.com
- The Find (ctrl-F) still uses the old IE style. I miss the FireFox find.
- no built in ad-block.
October 09, 2006
I installed Vista RC2 last night...
First thing I can say about it: it is pretty. Very pretty. So pretty even my wife liked it.
From the installation, to the setup, to running the OS, it is pretty.
First things I saw: solitaire -- much better looking now. Sizes well. Also, I won the first game, so I got to see how the end game sequence looks. Nice, the card fall off of the decks like before, then explode once they hit the bottom.
Note: I still have to check out MineSweeper. I have to see if my geek skills are still working.
Mahyong (sp?) is now included.
Non-gaming: the start menu has changed. It is very similar to the WinXP version, but without the "All Programs" popup menu. I'll have to try this again with a fuller menu.
Also note: I'm running this on a 2-3 year old machine with 1 gig ram and a 128 MB Nvidea video card. It runs very smoothly.
Next step: hook it up the the internet.
From the installation, to the setup, to running the OS, it is pretty.
First things I saw: solitaire -- much better looking now. Sizes well. Also, I won the first game, so I got to see how the end game sequence looks. Nice, the card fall off of the decks like before, then explode once they hit the bottom.
Note: I still have to check out MineSweeper. I have to see if my geek skills are still working.
Mahyong (sp?) is now included.
Non-gaming: the start menu has changed. It is very similar to the WinXP version, but without the "All Programs" popup menu. I'll have to try this again with a fuller menu.
Also note: I'm running this on a 2-3 year old machine with 1 gig ram and a 128 MB Nvidea video card. It runs very smoothly.
Next step: hook it up the the internet.
October 03, 2006
Golden Rules of OLAP
I've been meaning to say this for a while now...
When working with an OLAP tool (say Microsoft Analysis Services 2005 -- or 2000 -- or Hyperion -- or any OLAP tool under the sun) there are three guiding principles.
#1: Know your data. It doesn't matter how snazzy your tools are, how good looking your web site/reports are if all the data is meaningless to you. Yes, it might mean something to your customer, but until it means something to you, you are going to have a hard time really helping the customer.
#2. Know your display tools. Depending on what tool your customers are going to use to see the data, it will change how you construct your cubes and dimensions. There are things you can get away with when your client is ProClarity that are a bad idea for Reporting Services, and a terrible idea for Excel.
Case in point is the naming of attribute dimensions. You might have a dimension named Project with an attribute hierarchy named "Name". Seems logical. Then you also have a Customer dimension with a "Name" attribute hierarchy. So in ProClarity or Reporting Services you will see the nice Project.Name and Customer.Name hierarchies. In Excel (via pivot , you will see "Name" and "Name". Not very helpful. So you have to name your attribute hierarchies "Project Name" and "Customer Name" to keep the Excel Pivot table people off of you back.
#3. Regardless of what tool your customer says they are going to use, always test the data in Excel -- especially Date dimension data. Why? Because some customer will always want to see the data in excel. They don't care that all the data is already in some other tool nice and formatted and pretty, if the data isn't in Excel it isn't useful to them. Just deal with it, you can't cant change their minds.
Also, be sure to test how your date dimension data looks when exported to excel. Excel has this helpful habit of looking at your data, seeing a date, and then formatting it incorrectly. What starts out as April 02 (for April 2002) is suddenly transformed into April 2, 2006. And you will be blamed for this. Not Excel. No, not our precious Excel that can do no wrong (quiet next time, it might hear you). You are in the wrong and must fix this error. And the fix is a four digit year which will anger someone else -- but you will get used to that.
I hope this becomes helpful to someone, it was a painful process for me to get to this point myself.
When working with an OLAP tool (say Microsoft Analysis Services 2005 -- or 2000 -- or Hyperion -- or any OLAP tool under the sun) there are three guiding principles.
#1: Know your data. It doesn't matter how snazzy your tools are, how good looking your web site/reports are if all the data is meaningless to you. Yes, it might mean something to your customer, but until it means something to you, you are going to have a hard time really helping the customer.
#2. Know your display tools. Depending on what tool your customers are going to use to see the data, it will change how you construct your cubes and dimensions. There are things you can get away with when your client is ProClarity that are a bad idea for Reporting Services, and a terrible idea for Excel.
Case in point is the naming of attribute dimensions. You might have a dimension named Project with an attribute hierarchy named "Name". Seems logical. Then you also have a Customer dimension with a "Name" attribute hierarchy. So in ProClarity or Reporting Services you will see the nice Project.Name and Customer.Name hierarchies. In Excel (via pivot , you will see "Name" and "Name". Not very helpful. So you have to name your attribute hierarchies "Project Name" and "Customer Name" to keep the Excel Pivot table people off of you back.
#3. Regardless of what tool your customer says they are going to use, always test the data in Excel -- especially Date dimension data. Why? Because some customer will always want to see the data in excel. They don't care that all the data is already in some other tool nice and formatted and pretty, if the data isn't in Excel it isn't useful to them. Just deal with it, you can't cant change their minds.
Also, be sure to test how your date dimension data looks when exported to excel. Excel has this helpful habit of looking at your data, seeing a date, and then formatting it incorrectly. What starts out as April 02 (for April 2002) is suddenly transformed into April 2, 2006. And you will be blamed for this. Not Excel. No, not our precious Excel that can do no wrong (quiet next time, it might hear you). You are in the wrong and must fix this error. And the fix is a four digit year which will anger someone else -- but you will get used to that.
I hope this becomes helpful to someone, it was a painful process for me to get to this point myself.
September 21, 2006
Analysis Services annoyances
OK, I've been running up against a number of annoyances with Analysis Services, Reporting Services, and Integration Services. These are not show stoppers, but annoying non-the-less.
1. Colors coming from the cube (cell property back_color is a good example), through adomd.net come in the following format: BGR. Not RGB like every other programming system known to man, but with the Red and Blue swapped for no apparent reason.
Here is my conversion code:
uint iColor = (uint)prop.Value;
int i = (int) iColor;
Color c = Color.FromArgb( i);
backColor = Color.FromArgb(c.B, c.G, c.R);
2. When building a cube, and you happen to need another column in a fact/dim table. So you add the column to the table, then go back to the DSV (Data Source View) and -- where is my column?! While the editor gives you no indication that anything is missing. You can either: Refresh ever table in the DSV, or convert the table to a Named Query, then replace the Named Query with the original table. Aint that one fun.
3. Reporting Services. You can only have Measures on the Columns. BTW: nothing but Measures can go on the columns. I understand the reasoning, but really freaking annoying.
4. Integration Services. You can debug scripting tasks -- unless your scripting task is in a data flow. Then not so much.
5. Reporting Services. If you rebuild a cube while creating/editing a report, you have to close the report creation tab and reopen it to continue editing the report. If you don't, Reporting Services will complain and send you warning messages galore until you do.
6. Reporting Services. On the Data tab is a drop-down called "Dataset:". When you move to the Data tab, this drop-down is selected by default. So now, regardless of where your mouse is (say, over the MDX/SQL script I've been writing), when you use the scroll-wheel the items start to scroll through. This is compounded by the fact that it takes the Data tab 2-3 seconds to initialize a dataset...now it is doing that for however many datasets you have in your list (about 10 for me). I really want to slap whomever made that decision. Hard.
7. Reporting Services. In a standard MDX query, adding a parameter to an existing query can break the entire report. No problem, remove the parameter and re-add it. Oh, you were writing custom MDX for your query instead of using our (brain-dead) editor. Well, you are on your own. Good luck with that one and let me know how it goes.
1. Colors coming from the cube (cell property back_color is a good example), through adomd.net come in the following format: BGR. Not RGB like every other programming system known to man, but with the Red and Blue swapped for no apparent reason.
Here is my conversion code:
uint iColor = (uint)prop.Value;
int i = (int) iColor;
Color c = Color.FromArgb( i);
backColor = Color.FromArgb(c.B, c.G, c.R);
2. When building a cube, and you happen to need another column in a fact/dim table. So you add the column to the table, then go back to the DSV (Data Source View) and -- where is my column?! While the editor gives you no indication that anything is missing. You can either: Refresh ever table in the DSV, or convert the table to a Named Query, then replace the Named Query with the original table. Aint that one fun.
3. Reporting Services. You can only have Measures on the Columns. BTW: nothing but Measures can go on the columns. I understand the reasoning, but really freaking annoying.
4. Integration Services. You can debug scripting tasks -- unless your scripting task is in a data flow. Then not so much.
5. Reporting Services. If you rebuild a cube while creating/editing a report, you have to close the report creation tab and reopen it to continue editing the report. If you don't, Reporting Services will complain and send you warning messages galore until you do.
6. Reporting Services. On the Data tab is a drop-down called "Dataset:". When you move to the Data tab, this drop-down is selected by default. So now, regardless of where your mouse is (say, over the MDX/SQL script I've been writing), when you use the scroll-wheel the items start to scroll through. This is compounded by the fact that it takes the Data tab 2-3 seconds to initialize a dataset...now it is doing that for however many datasets you have in your list (about 10 for me). I really want to slap whomever made that decision. Hard.
7. Reporting Services. In a standard MDX query, adding a parameter to an existing query can break the entire report. No problem, remove the parameter and re-add it. Oh, you were writing custom MDX for your query instead of using our (brain-dead) editor. Well, you are on your own. Good luck with that one and let me know how it goes.
August 29, 2006
What I've been up to this summer
OK, it has been a while, I'm sure that the few reader I have left are wondering what happened to me.
1. I got a new job. I left HP (I was still a contractor after 3.5 years) and just started as a contractor for another company. So, new job, new toys. I have a lot of posts planned about the things I've found.
2. Summer. Things happen. Air conditioners break (right when it hit 110 in the valley, a month ago, will be replaced next week -- been a month with no AC)
3. Family Reunion. All the dutch boys and girls headed up north (except for my Canadian relatives, they went south) to Coeur D'Alane, ID to play all our dutch games, dutch food, dutch stuff, dutch etc.
4. Summer projects....here was a big one.
1. I got a new job. I left HP (I was still a contractor after 3.5 years) and just started as a contractor for another company. So, new job, new toys. I have a lot of posts planned about the things I've found.
2. Summer. Things happen. Air conditioners break (right when it hit 110 in the valley, a month ago, will be replaced next week -- been a month with no AC)
3. Family Reunion. All the dutch boys and girls headed up north (except for my Canadian relatives, they went south) to Coeur D'Alane, ID to play all our dutch games, dutch food, dutch stuff, dutch etc.
4. Summer projects....here was a big one.
June 29, 2006
Now with less ugly!
It was long overdue, but I finally got around to redesigning my site.
So here it is again, but with less ugly than before.
So here it is again, but with less ugly than before.
June 15, 2006
New term for English language: The Roethlisberger
I think we have just seen the emergence of a new English term: The Roethlisberger!
What is a Roethlisberger? A motorcycle wreck that nearly ends your career. I'm sure that definition will morph over time, maybe to just a motorcycle wreck, but that is the general idea. Basically, I have heard in general conversation, when talking about motorcycles, "Don't do a Roethlisberger." Admittedly, I said it once, but I have heard others say it as well.
Where did this term come from? Big Ben Roethlisberger, quarterback for the Pittsburgh Steelers, got into a motorcycle wreck this week. See this link: http://www.msnbc.msn.com/id/13318458/ This is now the most well-known motorcycle wreck in known history (bigger than Kellen Winslow Jr). Mostly because Big Ben got EXTREMELY lucky. He only hurt his face (he wasn't wearing a helmet), not his legs or arms, and he will heal up before the beginning of the season.
But he as also slightly stupid; he wasn't wearing a helmet, and he was riding the motorcycle thinking, "I know what I'm doing, as long as I'm smart I'll be OK". As if every every safe driver has a perfectly clean record -- it isn't all about how safe you are, it is also about how safe all the other drivers are.
So, maybe a better definition for "don't do a Roethlisberger." would be: "Don't think you're safe on a morocycle because you're smart."
What is a Roethlisberger? A motorcycle wreck that nearly ends your career. I'm sure that definition will morph over time, maybe to just a motorcycle wreck, but that is the general idea. Basically, I have heard in general conversation, when talking about motorcycles, "Don't do a Roethlisberger." Admittedly, I said it once, but I have heard others say it as well.
Where did this term come from? Big Ben Roethlisberger, quarterback for the Pittsburgh Steelers, got into a motorcycle wreck this week. See this link: http://www.msnbc.msn.com/id/13318458/ This is now the most well-known motorcycle wreck in known history (bigger than Kellen Winslow Jr). Mostly because Big Ben got EXTREMELY lucky. He only hurt his face (he wasn't wearing a helmet), not his legs or arms, and he will heal up before the beginning of the season.
But he as also slightly stupid; he wasn't wearing a helmet, and he was riding the motorcycle thinking, "I know what I'm doing, as long as I'm smart I'll be OK". As if every every safe driver has a perfectly clean record -- it isn't all about how safe you are, it is also about how safe all the other drivers are.
So, maybe a better definition for "don't do a Roethlisberger." would be: "Don't think you're safe on a morocycle because you're smart."
Subscribe to:
Posts (Atom)