Saturday, October 3, 2009

Free Silverlight Organizational Chart control

I looked past weekends at the option of building myself some organizational chart control, fully expandable with SilverLight (because it's cool and doesn't take tens of megs of jscripts and html).

I ended up with the version hosted for free on Windows Azure cloudapp (thanks Microsoft).
http://organizationchart.cloudapp.net/

What it can do?

Zoom in, zoom out, expand, collapse, edit (press enter with a blank password, but the data is not persisted between requests, etc), dynamic edit of WPF-like XAML, etc.

It is very easy to use and customize graphics with some additional classes (from ASP.Net).

It's version is somewhere before RC1 so don't argue if it isn't flawless :).

If someone is really interested in this control as is, give me a sign at contact at sharpdeveldotcom

LATER EDIT: See this post for more informations and sourcecode:
http://www.sharpdevel.com/2009/12/organization-chart-free-control-in.html

Alienware M17X Stealth Mode

Update 2018: I've realized a lot of people are still downloading this app, so I've cut down the TLDR and proof-read the text a bit. I have no idea if the app still works, as I no longer own an Alienware nor Windows (switched to mbp instead).

This app is made for Alienware's stealth mode, to ease up it's toggle on/off process. Stealth mode is a way for Alienware laptops to switch between dedicated GPUs and integrated ones, plus some performance enhancements. Use stealth mode when you want your laptop battery to last more than 10 minutes and full power when gaming.

Download: Stealth toggle

At the time of writing this program, Alienware's stealth mode process (OSD_main.exe) consisted on a few pop-up messages, with the text being quite bad and screen flickering between blind attempts at toggling it.

The messages were looking like this:
"Stealth Mode access detected. Choose Yes to enable or No to Cancel":

Then another message box (no cancel) says:
"Full Power Mode will be enabled, Press any key to continue."

After the OK the screen flickers black and switches SLIs as primary video cards.

Pressing the button again.... SAME message box as the first one.
No clue what state my laptop is, so I have to press YES!
Then the second message box tells me "Stealth Mode is Enabled". Is it? Only after I press the Ok, the Hybrid Boost goes with the integrated card...
What If I want to cancel going to STEALTH MODE?  Too bad...

And I don't have to mention that sometimes the second message tells you that the system will RESTART and you can't cancel it (even if you click X and not OK, the programmer that made this doesn't check for messagebox result codes, and it continues with reboot, ouch).

After digging through the VB6 library, I saw that Alienware Command Center permits the option of displaying StealthMode state (BUT NOT IN WINDOWS 7!). I looked at the binaries, and suprise, these ones are much better, written in .Net. With a few reflection search, I discovered the methods I need. GetStealthModeState, SetStealthModeState...

I made a small application that looks like this(I don't care about graphics even if it's Alienware) that calls some methods from the CommandCenter assemblies:
It tells me EXACTLY in what state I am. Unfortunately the toggle works but doesn't switch the Hybrid SLIs always...

Alienware could have made a more stylish version of this popup, rater than those BOGUS messageboxes...

DOWNLOAD: If someone wants this exe, I can give it with no warranties or responsibility at all. (use it at your own risk).
*Edit: Since many people asked for it, here it is: Stealth toggle
You need .Net Framework 2.0 for it to work!

Disclaimer for Alienware-Dell: Giving such confusing software for a 3500 EUR laptop is unacceptable. On Windows 7 it doesn't work properly. I used your libraries public methods to make it better. Hope you like it.

Later edit: Included some missing dll files (CCBIOSSUPPORTCOM.dll , AlienLabsTools.dll , ICSharpCode.UAC.dll). These files are the property of Alienware and I haven't tampered with them. I included them for different version compatibility only.

Alienware M17X problems and Windows 7 installation

Well... I just got myself an M17X with the specs:

QuadCore QX9300 2.5ghz, 12mbL2, 1066
4gb ram 1333
2 x SLI Nvidia GeForce 260M GTX 1gb ram each
1 x Nvidia GeForce 9400 integrated card
17 inch 1900x1200
2 x 160 gb RAID 0 7200rpm hdds
and the rest that comes with this beast.


Now the problems...
We had to talk ten times with DELL indian support to accept our order for 2 such laptops, and they had to do it manually based on a basket sample.
They started building it, and the hdds turned out to be a simple 320 gb harddisk, not 2x160gb.
We complained about it before leaving with UPS from their location. They said, quoting "we shall do the needfull.". They didn't. And the orders were processed differently at one week one laptop from the other. Both had the bad hdd config.

Now, we delivered these in UK and from there shipped them to Romania since they didn't allowed direct shipping to Romania (fraud suspicion). Everything cost us more than 200 GBP but at the price of over 6500 EUR for them, it didn't matter much.

When we saw the missing hdd, we went and bought additional 320gb hdds to wire them. Surprise! The laptops don't have a special SATA jack called interposer that connects the hdd sata jacks with the motherboard, neither the caddy (hard drive bracket) that allows the hdd to be screwed inside the beast.

After tens of emails and calls with Dell, we reach some Alienware support staff that was not confused at all with this but they said they are out of stock. So we have to wait 4 weeks for those 2 parts.

So far conclusion: If you want a custom device, don't customize it with support even if you give them specific reqs. They'll fail.


Second... I got Vista Home Premium stuff, with some Windows 7 upgrade coupon.
After searching for ways to convert it, I threw it to basket and installed Windows 7 x64 from my company MSDN.

Then drivers nightmare unleashed. The drivers were present on DELL site. Downloaded all of them that applied to my system without studying too much what everything does.

When I clicked the BIOS A02 package, I hoped to see my current version and it would allow me to decide if I want to flash it or not. It didn't. It started a command prompt that ran the flash exe automatically, displaying the flashing window on top of another window where I had the option to start or decline the flash. Funny enough that window had some great warnings like "Make sure you are on power and not on battery, etc". They decided I don't have to decide. :)

Restarted automatically after flash update, and SUPRISE! Blue screen of death (BSOD) on startup. After pulling my hair out I realize it deleted the BIOS settings, thus deleting the RAID settings. (When installing windows, I made a stripping RAID settings with one hdd, so that I could backup the image of the hdd with Ghost after the second HDD will be able to be wired in, wire it, and put the image on the new stripe, keeping the same RAID controller driver installed in windows 7 avoiding problems with reinstalls).

Then, VIDEO drivers... I was SO dissapointed with my previous M1710 XPS laptop, that I wasn't very surprised that DELL would not offer the default driver good. After tons of drivers, I reach back to some BETA driver from NVidia (186.12) that works with 30% better fps in games like NFS Shift, believe it or not.

Still, I have problems with... Stealth Mode. This is an Alienware definition of a system setup where when you are on battery, the system switches in the lowest consumption state possible, switching the SLIs with the integrated mode. This one still has problems, if you put the laptop to sleep in full power mode and resume it unplugged (Black screen with just a cursor is displayed, CTRL ALT DEL does nothing etc.).

And the way Stealth Mode works... Lame... In the next post.