/* BeejBlog */

Loading Ice Cream Sandwich (ICS – Android v4.0) on Samsung Galaxy Tab 7.7 (P6800)

Links:

  1. ClockWorkMod (CWM) “Recovery” booter for our device - Direct link to binary
  2. The actual ICS ROM (file name - P6800XXLQ1_ICS_IT168.zip)
  3. MD5 Checker

Steps:

  1. Check model - First make sure you have the same exact model as me = GT-P6800… it will be on the back in small print at the bottom.
  2. Download the links
  3. Check ROM file – use MD5 Checker to confirm P6800XXLQ1_ICS_IT168.zip checks to 16A167C9 - 7B1B892D - BA6884AD – 36434CFE
  4. Install CWM - Follow link #1 for install instructions… they’re clear… don’t skim, follow them closely
  5. Backup - Boot into CWM menu and do the full backup of your current system.
  6. Install ICS – Follow link #2 instructions…
    1. *everything* could be wiped as a result, so make sure you know where to go reload all your apps!!
    2. follow steps closely
    3. one clarification “2) place on internal SD” basically means /sdcard/ on ours… you get to browse for it in CWM so it doesn’t really matter where.

The tab took forever to reboot back up from the glowing “SAMSUNG” boot logo after the install BUT IT WORKED!

I’ve had this running since 2012-08-18 and haven’t had a single glitch… this ROM is well in the bag 100% solid no-brainer by all accounts at this point. I hope to load CM10 JellyBean v4.1 or perhaps even CM10.1 v4.2 soon… the one thing that still hasn’t been fixed on those yet is HDMI out (as of 2012-12-18) … and I actually really like using mine as a Roku stand-in.

Good luck!

(Back to main GTab7.7 Post)

Blogger Custom Domain

(taken from here)
Enter Blogger Dashboard > Settings image
Under Publishing section:

Enter your custom domain in the first box complete with the www prefix.
Check the redirect box under it.

Save those settings.

You’re done with the Blogger side.
image
Log in to your domain registry account (Name.com, GoDaddy, etc.) image
First, especially if you ported your domain from another registrar like me,
make sure that your domain is set to use your new registrar’s Nameservers.
image
Now access your raw DNS record settings (aka “Total DNS”). image
Enter IP Address 216.239.32.21 as ARecord (@), this is a primary Google endpoint.  
and ghs.google.com as CNAME (for www)  
Save Domain registry settings.  
You’re done.  
Fire your page.  

Zenphoto – Hide ‘Dot’ Files

Pretty annoying there’s no easy built in way to not show images based on hidden file attribute. Best I could determine, one must implement dos “attrib” command or equivalent from PHP “exec” on every file in order to respect hidden file attribute (that sounds like way too much overhead to add on to my already pokey image gallery). I’m floored file attribs aren’t part of a more robust PHP file object but I guess this kind of stuff is hard to support in an OS neutral way.

I decided to run with renaming to .file.jpg and then hide those. Using ‘dot’ to represent hidden is very standard and pretty straightforward to accomplish the hiding via Zenphoto’s image_filter plugin API.

Zenphoto team provides generic image_filter sample to start with here: http://www.zenphoto.org/news/filter-file_searches

My dot file specific implementation (zero rocket science here): https://docs.google.com/open?id=0B5htuLP66oWlOFRnSElPVktlVTA

Drop php file in your zenphoto\plugins folder and enable via admin > plugins tab.

Add Video overlay Icon to Zenphoto Thumbnails

  • Edit \zp-core\template-functions.php, look for printCustomSizedImage() function and edit it to switch to using style=”background:url(‘’)” as shown below.
  • Configure overlay image:
    • Start with a completely transparent png the same height and width as your thumbnails (168 pixels in my case)
    • Find a preferred icon for the image (perhaps via Google Image Search) and paste that into your transparent background…
    • downsizing and hiding it in a corner is a nice effect
    • as well as adding a little bit of transparency
For example:
Video_Overlay

function printCustomSizedImage($alt, $size, $width=NULL, $height=NULL, $cropw=NULL, $croph=NULL, $cropx=NULL, $cropy=NULL, $class=NULL, $id=NULL, $thumbStandin=false, $effects=NULL) {
    global $_zp_current_image;
    if (is_null($_zp_current_image)) return;
    if (!$_zp_current_image->getShow()) {
        $class .= " not_visible";
    }
    $album = $_zp_current_image->getAlbum();
    $pwd = $album->getPassword();
    if (!empty($pwd)) {
        $class .= " password_protected";
    }
    if ($size) {
        $dims = getSizeCustomImage($size);
        $sizing = ' width="'.$dims[0].'" height="'.$dims[1].'"';
    } else {
        $sizing = '';
        if ($width) $sizing .= ' width="'.$width.'"';
        if ($height) $sizing .= ' height="'.$height.'"';
    }
    if ($id) $id = ' id="'.$id.'"';
    if ($class) $id .= ' class="'.$class.'"';
    if (isImagePhoto() || $thumbStandin) {
                      /* $html = '<img src="' . pathurlencode(getCustomImageURL($size, $width, $height, $cropw, $croph, $cropx, $cropy, $thumbStandin, $effects)) . '"' . */
        $html = '<img src="' . VideoOverlayIcon(pathurlencode(getCustomImageURL($size, $width, $height, $cropw, $croph, $cropx, $cropy, $thumbStandin, $effects))) . '"' .
            ' alt="' . html_encode($alt) . '"' .
            $id .
            $sizing .
            ' />';
        $html = zp_apply_filter('custom_image_html', $html, $thumbStandin);
        echo $html;
    } else { // better be a plugin
        echo $_zp_current_image->getBody($width, $height);
    }
}
 
function VideoOverlayIcon($url)
{
    if (isImageVideo()) return '/Photos/albums/Video_Overlay.png" style="background:url(' . $url . ')';
    else return $url;
}

Windows 8 Search Drops Outlook :(

Nutshell:
  • Windows 8 Metro search doesn’t include Outlook indexed items at all.
  • Windows 8 Explorer can be told to search Outlook items but only with Outlook 2010 (or older).
  • If you want to search Outlook 2013 in Win8, you must use Outlook 2013’s search.
References:

Trail Map Image to Google Earth

The idea of taking PDF or PNG/JPG based trail maps from anywhere you can find and loading them into Google Earth (GE) on your mobile device to give you a live GPS trail map.

Basic tools you need:

  • A “KMZ Builder” - to turn the raw image into a KMZ file. The primary task here is mapping specific pixel points on the image to their real life lat/long. The easiest freebie I’ve found so far is Google’s Custom Maps tool for Android. It sounds like ArcGIS also provides this capability but that’s a fat commercial PC package.
  • A “KMZ Loader” – for whatever idiotic reason current versions of mobile GE only load KML’s not KMZ’s. PC GE actually does load KMZ’s directly so maybe there’s hope this will fall away in future revisions. Here are Android and iOS KMZ loader apps that have worked great for me. I believe they simply extract the KMZ and feed the contents to GE automatically behind the scenes. On Android the dang thing works by firing up a mini web server to provide the KML how GE wants it… amazingly GE will only retrieve these suckers from a web URL, not a local file.

KMZ’s are convenient in that they carry the KML and the map image file together in a ZIP package. KML is just some simple xml describing pertinent info like the lat/long points and an href to the image file. If you’re curious about the KML, just rename the example .kmz file linked below to .zip and take a look at the very simple contents in notepad.

The greater Seattle area obviously has tons of cool trails… we’ve been exploring Whidbey Island lately… but I’m not finding much of any of them logged in the Garmin products I have nor on Open Street Maps. *BUT* there does seem to be decent trail coverage provided from PDF/image based trail maps on all the various federal/state/county .gov sites. And that’s where this little approach comes into play.

Taking the basic approach to the next level - Photoshop the original map image such that there is only the raw trail lines sitting on top of a transparent background. The result looks pretty dang good when loaded into GE. Tip: Use the Select > Color Range menu, hit the white background of your map with the eye dropper and play with the “fuzziness” slider. You’ll get all of the background selected to where you can hit CTRL-X to delete it leaving the trails freestanding on transparency (save as PNG file format). CTRL-SHIFT-I to invert the selection to only the trails and then Image > Adjustments > Replace Color to flip the lines from black to white to make them stand out when overlayed onto GE.

Here’s an example KMZ I’ve slapped together from this source PDF. You may notice it’s not quite lined up, I believe it’s only a matter of taking more care when using the Custom Maps tool… but it should give you the idea. If you load GE on your PC, you’ll be able to double click this file to see what I’m saying. It all rotates in 3D and even gets “clamped” to the terrain! From what I can tell, once GE has cached your tiles, you can count it working offline.

Before
image
After
image

Hacking Profiler into SSMS Express

  • We can download the SQL Server Management Studio Express installer for free which makes for a convenient source for this tool when firing up a new Windows machine that you just want to connect to some servers and get to work - http://www.microsoft.com/en-us/download/details.aspx?id=22985
    But SSMS Express doesn't provide the Profiler (aka SQL Trace) component that I can't live without.
  • So - If you have access to a server where these "Extended Management Tools" are already installed, you can simply copy the handful of Profiler's binary files to your drive and it'll run fine... here's the list... starting with a path like "C:\Program Files (x86)\Microsoft SQL Server\100\Tools\":
    • binn\PROFILER.EXE
    • binn\PROFILER.EXE.CONFIG
    • binn\PFUI.DLL
    • binn\Resources\1033\PROFILER.rll
  • Go ahead and add Profiler.exe to your SSMS Tools menu if you like.
  • Lastly, to patch up the ability to save templates (stolen from here: http://sqlserverpedia.com/blog/sql-server-bloggers/where-did-the-sql-server-profiler-template-disappear/) - just throw a "dummy.tdf" text file into this folder: "C:\Program Files (x86)\Microsoft SQL Server\100\Tools\Profiler\Templates\Microsoft SQL Server\1050". That 1050 is the specific SQL Server version number and obviously varies so just roll with whatever yours is... just browse to some other nearby folders to find what your magic version number happens to be. All the ones you've saved so far will magically start appearing in the templates selection drop down after that.

Samsung Galaxy Tab 7.7 (P6800)


(My previous go to device, the Samsung Q1 Ultra.  She served us well. :) Have we come a long way in 5 short years???
Highlights:
  • 7.89mm (0.31 inch) thick - just amazing to hold
  • 345 grams (0.76 lb) – makes for a great eReader… the brushed Alu back is nicely grippy after your hand has warmed it up for few secs (our Kindle 3G is 247g, 8.5mm and eInk is definitely cool for reading but it’s not color, smaller screen, lower res, not touch and isn’t app-tastic. Kindle Fire is 413 g, 11.4mm.)
  • Super AMOLED Plus screen, 1280 x 800 res – very pleasing as everyone points out. But to be totally frank, I ride outdoors a lot, and these are really no better in direct sunlight than anything else LCD based… indoors or even in a casted shadow, the screen is very nice.
  • 1.4GHz – everything runs nice and peppy on Android 3.2
  • 3G – HSPA+
  • microSD – surprisingly, the 8.9, 10.1 sibling tabs do not support an SD card. The original 5” Note and Tab 2 10.1 & 7.0 do, however.
  • full HD video MPEG4, H.264 play very smooth… I’ve tried just a few, one MKV wouldn’t play audio, another would.
  • 5100mAh battery
Some rather obscure downsides I’ve noticed so far:
  • When USB connected to a PC gtab 7.7 does NOT mount as a mass storage device; It mounts as an MTP device. For one, we don’t get a Windows drive letter. Drag and drop from Windows Explorer is basically the same… but various sync tools only work with mass storage. This post indicates that Honeycomb’s mixing of filesystems in the system folder structure is what renders mass storage infeasible (to PC’s).
  • The microSD card natively mounts to /mnt/sdcard/extStorages/SdCard … there doesn’t appear to be an Android standard established so (some) apps don’t know where to find it.

[Update: 2012-12-18] Upgrading to Samsung OEM Ice Cream Sandwich Android v4.0

Recommended (and not) Accessories:
The Tablet :)
image
I got mine for $645.50 from Amazon Market Vendor “Transformersandgsmphones” … it shipped very fast and was a brand new unit. Caveat: From what I understand, units purchased through grey market like this will be difficult if not impossible to submit for any warranty claim.
AmazonBasics Stylus
image
  • $11 from Amazon
  • Highly reviewed
  • Soft tip seems bulbous at first but in actual tablet usage turns out to be very appropriate. Still, I think I would really like the pressure sensitive line thickness capability of the Note models’ smart pen.
SanDisk 64GB microSD card
image
  • class 6 but speedy enough
  • it actually works
  • 7.7 formats it as fat32/vfat by default… there are some tools for getting it mounted as NTFS, IFF you think you need >4GB files… I found the tools not working right away and think I’ll be fine on fat32.
  • Got mine for $119 @ Amazon but that price is dropping almost daily! hold out as long as you can!
RAM-Mounts Cradle
(RAM-HOL-TAB-SMU)
image

image
  • I love RAM-Mounts and this is the absolute *PERFECT* fit for the GTab 7.7 in scenarios like bicycle handlebars.
  • The middle sized cup is a very satisfying fit for the GTab 7.7.
  • It will work great with a rubber case or naked. The grip spring is very strong. I bounced along a VERY bumpy 8 hour bike ride recently and there is no way the tablet is coming loose.
  • $28 from GPSCity
  • For bike handlebars I recommend pairing the cradle with this RAM kit comprised of a “strap rail base”, medium arm and diamond plate.
  • DSC_5916-50%-1530x1701
Sea to Summit Waterproof TPU Case
image
image
  • Make sure you get the LARGE version… it’s a nice fit for the tab 7.7
  • I’m using it in tandem with the RAM-Mount cradle above and it does fit. The extra material at the top is kind of crammed in there and there’s a bit of bowing in the plastic surface.. but the touch screen works fine.
  • Honestly, depending on how often you plan on needing that sort of thing you might just get by with a new heavy Ziploc bag each ride… hi-ho landfill! :)
  • I went ahead and got some Desiccant packs while I was at it just in case… you may have some in an old shoe box or something
  • $20 @ Amazon
Samsung OEM “Book Cover” Case
OEM Samsung Book Cover Case for Galaxy Tab 7.7 EFC-1E3NBEOEM Samsung Book Cover Case for Galaxy Tab 7.7 EFC-1E3NBE
  • A bit pricey around $40 street and often out of stock
  • I definitely like how this fits into day-to-day usage
  • it’s thin, light, hard shell, unbreakable kind of plastic
  • tab snaps into stiffer corners so it won’t fall out
  • there is some corner drop protection… not extensive rubber pads, but some extra shock absorption plastic there on the corners.
  • there is rubber on two edges so theoretically you could stand it up in landscape mode but I have found that the angle where it will stand up without sliding back down flat is not really conducive to real usage… one would have to rig something behind it to block it from sliding.
“OTG” USB Host Adapter
image
  • OTG = On The Go… apparently it’s a standard that allows for swapping the master-slave role … not sure why that helps since we’d want the tab to be the host in all scenarios I can think of… flash drive, hard drive, keyboard, etc.
  • $6.70 @ Amazon
  • See USB Mass Storage Watcher in the apps section below.
  • No surprise, the tab couldn’t power a 2.5” USB HDD.
USB Charge Adapter (aka “Filter Plug”)
image
  • This little bugger takes some explaining… the nutshell is that some of these devices like the gtab are checking for a special USB pin configuration to take a charge from a USB connection.
  • This is an example thread to get some more background… including self hacked cables.
  • The other thing to be aware of is that the stock AC charger pumps 2.1Amps… so if you go with another source (e.g. external batt), then you want to shoot for that higher amperage to ensure the fastest charging… see “External Battery” section below,several units are addressing this requirement now.
  • Got mine on Amazon for $5.90 + $5.50 shipping (gip)
  • They go for super cheap on eBay and DealExtreme
External Battery
PowerTraveler PowerMonkey eXtreme
image
  • I wound up getting a yellow model for $180… it’s smaller than I thought it would be (which is great). Very light and portable. I like the overall package even if it is a little too pricey. I honestly haven’t used it much at all since my whole paradigm shifted once we left Germany and moved to Seattle. Hopefully this will all swing back into normalcy once we get moved into our new money pit and can hit the trails in a camper with the kiddos.
  • review
  • $190
  • 9000Mah
  • 2.1A USB with a pigtail
  • 242 grams
  • AUTO-OFF
  • completely WATERPROOF
  • comes with a CASE, lots of tips & outlet adapters
  • does NOT come with the required USB adapter for the gtabs; see USB charge adapter above. PowerTraveler does sell their own version of this adapter.

Alternatives:
Bluetooth Keyboards
Think Outside/Sierra Stowaway AND AmazonBasics model
imageimage
  • Foldup styles:
    • Long since discontinued, the Think Outside is slick, fragile, but very slick… the key feel is great and the outside snaps shut into a cool shiny, chrome case… they’re experiencing a funny price spike circa Q1 2012, going for $250 on Amazon is crazy… this thing probably retailed for $100… I got mine for $65 on eBay a couple years back… there is another Stowaway model - iGo Ultra Slim that only folds once and seems practical as well.
    • Nomad Mobile has a good rendition of another common style single fold … these go for cheaper elsewhere.
  • Non-foldable:
    • The Apple Bluetooth Keyboard is the gold standard really... razor thin, aluminum, awesome feel to the keys.
      • one catch, no friggin delete key... there's a backspace but no "forward" delete, you have to hit FN-Backspace to get forward delete.
      • also, no true numpad but that's sort of what you want in a portable anyway.
    • I noticed Amazon has a nice knockoff of the Apple style now.
      • It has a delete key and there's a customer image that shows it's actually a tad shorter than the Apple.
    • Logitech has a polished looking tablet keyboard option with integrated case/stand now too:

           image
Media / Charging Dock

image
  • Has HDMI but it’s annoyingly the mini version invariably requiring more hanging adapter bulk :(
  • Also has headphone audio out if you need it.
  • The usual plastic quality build, basically works but feels kind of wobbly when you insert.
  • I’d give this a mild recommendation… didn’t see anything else as a worthy challenger at the time.
Zephyr HxM - Bluetooth Heart Rate Monitor

image
  • You can also go with a Nike+ wireless protocol, Polar makes a Nike+.
  • or there’s the more open ANT+ protocol, for which Garmin has a couple ANT+ monitors and are the cheapest… ANT+ sounds reliable but,
  • I went with Bluetooth to avoid the need for an ANT+ dongle… some phones are starting to include this radio natively.
  • Bluetooth options are slim, the Zephyr seemed to review better than the Polar Bluetooth.
  • Amazon wasn’t stocked so I ordered from Endomondo for $75 bones (ouchy)
  • Pairing worked as instructed, showed up right away in the Endomondo sports tracking app and reported numbers similar to my arm band blood pressure monitor.
  1. Make sure it’s fully charged, plugged to the strap, the strap pads have to be pretty wet & you have to put it on
  2. Do normal Android bluetooth pairing; code: 1234
  3. Then go into the Endomondo app > Settings > Accessory Settings > Connect To Sensors > Scan
Mujjo Capacitive Gloves
image
  • Couldn’t resist springing for these while I was at the Endomondo store – $35 … kinda pricey
  • They work… Angry Birds is playable, I wouldn’t want to type with them though… I got the Male M/L size… I would say my hands are medium and there’s just a bit of extra length to the fingers… with normal gloves I wouldn’t care but it obviously matters for touch screen precision… if you have small hands, consider the women’s size… they are very stretchy material.
Not Recommended
Motorola S10-HD Bluetooth Stereo Headphones with Microphone
image
  • $60 @ Amazon
  • too expensive in my opinion
  • the headphone sound is “OK”
  • the microphone sound quality is pretty bad
  • they’re really tight on my ears with my fat head and the design just makes them that way with no relief … I basically hate these and wish I never got them at this point… anybody want a deal on a completely unused pair?
  • all the buttons you’d want… volume and pause/play, fwd/rev and probably a call hang-up
Case Logic LNEO-7 7-Inch Sleeve
image
  • Update 2012-07-4: I wound up going with the OEM Samsung “Book Cover” case and haven’t looked back. See those comments above.
  • It’s “OK”… fits pretty well…just a little snug around the corners but not bad
  • no room for much of anything in the cramped pouch… the USB cable and a pigtail would be about max.
  • Can’t lose for $14.50 @ Amazon
Armor Suit - Screen Protector
image
  • This one looked good to me because it has a liquid approach to ironing out the bubbles … update 2012-07-04: the spray bottle solution was a good trick, I still got dust in there but that’s hard to avoid.
  • I paid $17 + shipping @ Amazon and it’s already down to $10… feeling a bit gipped :)
  • After I got the Samsung Book Cover case (see above), I ditched the screen protector, feeling that it took away from the display a bit and the case is plenty of scratch protection during transit which was my personal biggest concern… this is definitely personal preference area.
Wish List
Keyboard Stands & Charging Docks
Incase Origami Workstation for Apple Wireless Keyboard

image
  • Haven’t found anything perfect yet… everything is missing something... at the moment, a makeshift cardboard stand with the charge/usb cables is working better than I expected.
  • Samsung’s keyboard dock - doesn’t have HDMI port
  • Also just considering a case/stand for my Apple Bluetooth keyboard – Incase Origami Workstation: demos ok, not great
 
 
Recommended Apps:
 
App Name
Notes
root.zip (free)
(gtab 7.7 specific)
rooting instructions
BusyBox (free) Loads grep, awk and ash (shell)
SuperUser (free) Everything cool requires it
Android Terminal Emulator by Jack Palevich (free)
  • Make ash (from BusyBox) the default shell: /system/xbin/ash –
  • Make this the initial command to be su by default: su –c /system/xbin/ash
Root Explorer ($$) Has a nice and easy “mount as R/W” button.
ES File Explorer (free) Does everything in one shot… nice icons, *fast* SMB client (Windows File Sharing), FTP client, built in text editor, image viewer, even movie player
NtfsSd (gtab 7.7 specific)
  • Found in this xda-dev thread; mounts your NTFS formatted external sdcard in the native path (/mnt/sdcard/extStorages/SdCard) which is a bit of trick… main advantage for me is that external SDCard shows show up in Explorer when USB connected to PC; other NTFS mounting approaches (e.g. Drive Mount) were not showing SDCard on PC.
  • Symbolic links don’t work to fat32/exFat/vfat hence why NtfsSd is doing an interesting trick of some sort.
  • There is a native linux command for mapping external filesystems (i.e. a FAT drive) to internal paths but it doesn’t hold up across reboots which becomes more of a pain than you’d initially think.
    • mkdir /mnt/sdcard/extStorages/SdCard/Music
    • mount -o bind /mnt/sdcard/extStorages/SdCard/Music /mnt/sdcard/Music
USB Mass Storage Watcher OTG (free) (by Skidmrk) Mounted my 2.5” USB NTFS HDD via the OTG USB pigtail just fine (the HDD required external power).
OsmAnd (free, but buy it) This really makes my day… Open Street Maps (OSM) with the Open Cycle Maps (OCM) layer is the bees knees… this App readily downloads the map tiles for whatever is currently displayed, with whatever zoom levels you choose and then you’re ready to go off-road/offline… couldn’t be easier… it even does offline routing!!
Evernote Skitch and all the integration on a mobile device is pretty killer.
Tasker, Locale Execute Plug-In I came across this as a way to re-run mount commands after each reboot (see “mount –o bind” notes above).
doubleTwist (free) + AirSync ($$) It basically works but I punted… The issues I have are probably mostly related to the still settling Android SDCard ecosystem.
Music WithMe (free) Currently trying this as my iTunes sync’er after doubleTwist (DT) would only see internal storage Music folder… Tasker + Execute + bind mount (above) probably would've bridged that gap but Music WithMe (MWM) has a simple music storage path setting, looks promising. MWM seems to report its sync status more robustly than DT. MWM integrates through FaceBook so you get into sharing what you're listening to and what friends are listening to. I'll check that out if the basics pan out.

ATI 5450 with Hackintosh (OSX 10.8.5)

(my X1300 post)

I still believe someone will get the x1300 running QE on Lion… the fact that the old 7187 DevID is still present in AT13000Controller gives me faith … if it weren’t for another motivation, I would just wait. My other motivation is that it would be nice to upgrade to 3 displays, adding a Dell 30” to the current 24” and projector. So, my criteria are: Fanless, reasonably Hackintosh compatible, 3 display support, <$100 (the x1300 was $30 :) and lastly, nothing too hot/huge … turns out, there aren’t really that many obvious options to choose from… I’ve come to understand that to go from 2 displays to 3 displays basically requires a DisplayPort capable card aka “DP” (at least in ATI land… I’m less familiar with nVidia models). Apparently DVI/HDMI/VGA all require their own clock, and contemporary consumer cards tend to be implemented with only two clocks, hence the plethora of dual display cards. DisplayPort doesn’t require a clock as it is “packet based”. There is the Sapphire “Flex” line which implements an additional clock to drive three DVI/HDMI ports, but those are dual slot and more expensive than I’m looking for. So, out of the gate, I really liked the Sapphire ATI 5670 Ultimate … it has exactly all three ports I want: DP+HDMI+DVI, it’s single slot, the cooler looks “right” and it’s the very last stage before cards require the extra power connector, perfect!… furthermore, the 5670 was stock hardware in 2010 iMac’s and there’s a 5670 listed on the 10.7 HCL requiring zero mods for full functionality… but wouldn’t you know it, this perfect card appears to be discontinued in US markets!! :( If you can find one of those buggers for <$100, I would hold on to it like gold. I was finding them for around $132 USD in Euro markets. If you go up from there, everything just gets unnecessarily big & hot for my needs… so I went down, and the next thing I ran into was the ATI 5450… There is a 5450 listed on the 10.7 HCL requiring only one simple ATI5000Injector.kext (and I’ve now confirmed for myself that this does work with full res/QE in Lion)… fanless 5450’s are prevalent… VisionTek, HIS & Sapphire have viable candidates … one slight downside is that the most ubiquitous 5450 package has VGA for the third port… so the projector has to go on VGA rather than HDMI/DVI… initially that seemed like an annoying step back into analog but I tested my projector on VGA and it was just as clear as HDMI. VisionTek’s DP capable models are the 900315 and 900320 (900320 looks to be the 900315 bundled with low profile bracket and some adapters)… The VisionTek’s are out there… best deal I found (including used) was a new 900315 direct from Amazon for $65be careful, there are tons of mislabeled non DisplayPort VisionTek 5450’s for sale… I shipped one for $47 only to find out it was HDMI rather than DisplayPort (looks like it’s actually a 900358)… The VisionTek VGA+HDMI+DVI configuration is *very* prevalent… the DP ones are harder to find… I checked with several vendors on Amazon and eBay and kept running into mislabeled HDMI models. HIS’s fanless 5450 DP is the H545H1GDL, couldn’t find any. Sapphire’s fanless 5450 DP models are 11166-00 and 11166-09, couldn’t find any of those either. So it was basically down to the VisionTek… as I said, ordered one, got the wrong model, but it does great in Lion by the way… dropped in the ATI5000Injector.kext before swapping cards and it booted right into full res/QE glory first shot… too easy. All three ports were immediately recognized in Lion. So I was about ready to bite the $65 bullet on the only solid 900315 I’ve found… then I had an idea… I noticed the coolers on the 5450 I had received and my old x1300 are basically the same… the mount holes are definitely the same… and there’s this nifty Gigabyte 5450 that I’ve had in the corner of my eye… it has a fan but it uniquely provides 2 HDMI ports in lieu of the much more prevalent single DVI configuration… that’s pretty cool because I can stay all digital with the projector on HDMI and readily adapt the other HDMI to DVI for my 24” LCD. Keep in mind, it is only 512MB DDR2 compared to 1GB DDR3 on the VisionTek’s but I’m pretty sure it’ll be fine for my needs, because my x1300 is only 256MB DDR2… This Gigabyte 5450 is readily available for $40! And this month, there is a $15 mail in rebate (ends Sep.30 2011), putting this card at $31 with shipping… you just can’t beat that. So Plan A is, well, maybe the fan will actually be quiet, perhaps with a speed limit resistor. And I’m sure you can guess that Plan B is swapping the heat spreader from my x1300. If you already have an x1300 or similar low profile cooler, it might just come in handy to slide you into this cheap Lion compatibility/upgrade path… all the other aftermarket coolers I could find are undesirably large heat pipe affairs (obviously trying to cater to a wide range of heat profiles).

And that’s basically why I blathered on about all this… for anyone else with waning feelings for their old x1300, the Gigabyte GV-R545D2-512D might just be a nice, cheap, low profile upgrade…

Update 28 March 2012 – I can definitely recommend this heat spreader swap hack with the Gigabyte GV-R545D2-512D. The fan based sink that comes with is definitely a noise generator but the fanless heat sink from the X1300 lines up perfectly. The card temps are no issue. I’ve been running it for several months couple years now. Just upgraded to Lion 10.7.3. One annoying card bug, if I drive a single screen, the display will go completely haywire after a while. Everybody on NewEgg seemed to have the same problem so it’s probably a core design issue in this model. It’s a fairly random timeframe. But driving two displays, this never happens. If you don’t have two displays (which why bother getting this card), then you can actually connect two of the outputs to the same monitor and that is enough to avoid the issue.

Update 16 Oct 2013 – Running great on OSX 10.8.5 w/o issue. Pretty sure ATI5000Injector.kext stopped working as of 10.8.4 update so I switched back to manual editing the DeviceID (0x68f9) into ATI5000Controller.kext/Contents/info.plist and AMDRadeonAccelerator.kext/Contents/info.plist.

Looks like these cards still available out there (iboyds.com = $37) but probably not for much longer given the endless march.

Framebuffer Personality Patch - Recently nailed last remaining issue on my hackintosh - screen would garble upon wake. This post worked for me … kind of hard to follow where he pulled a few of the values but below is the resulting magic cookie of hex codes that work swell with this card so you don’t really need to figure anything out.

These need to be pasted over an existing 4 port personality in ATI5000Controller.kext/Contents/MacOS/AMD5000Controller, I chose Uakari.

00040000040700000001000021030102
00080000040200000001000011020204
00080000040200000001000010000303
10000000001000000001000000100401

Also needed to force Uakari via /Extras/org.chameleon.Boot.plist file otherwise just blank screen upon Mac UI takeover:

Untitled

imageDSC_1698

Locating “Scrum In Five Minutes” By www.Softhouse.se

It’s not on their main downloads page anymore.

Here’s their registration page with immediate PDF download after:

http://softhouseeducation.com/material/scrum-five-minutes

Outlook Bulk Remove Encryption

PowerShell Script to scan through specified Outlook folder and remove the encryption flag on each email.

Background: We tend to cycle smart cards over the years in my environment. The old certs from those cards must be maintained in order to be able to pull up old emails sent to you which were encrypted with your old public key(s). This also makes it interesting to hand off a PST full of emails piled up as a simple knowledge base to someone else, since you really wouldn’t want to give them your certs of course.  Removing the encryption flag via the Outlook COM API turns out to be pleasantly trivial… literally just one line of code and a resave. The rest of this script is a simple UI and the optional folder recursion logic. If you don’t have a particular cert loaded, the script will output the subject of the failed message and then it’s a matter of getting that missing cert loaded on your system and retrying.

[System.Reflection.Assembly]::LoadWithPartialName("System.windows.forms") | Out-Null 
$notes = "Drill down into subfolders?`r`rThis works for Outlook 2010 at least.`rMake sure to have Outlook running.`rand manually open an encrypted email before running this script.`r(this will cache your pin# so it will apply to scripted access)" 
$recursive = [Windows.Forms.MessageBox]::Show($notes, "Process Subfolders?", "yesnocancel") 
if ($recursive -eq "Cancel") { exit } 

$outlook = new-object -com Outlook.Application 
$f = $outlook.Session.PickFolder() 
if ($f -eq $null) { exit } 

$PR_SECURITY_FLAGS = "http://schemas.microsoft.com/mapi/proptag/0x6E010003" 
$cr = [char]0x2028 
function RemoveCrypto($folder) 
{ 
  $txt.AppendText($folder.folderpath + $cr); 
  
  if ($recursive -eq "Yes") { $folder.folders | foreach-object { RemoveCrypto($_) } } 
  
  $folder.items | foreach-object { 
    $mailitem = $_ 
    try { 
      ############################################ 
      # here's the beef. too easy! 
      # thanks to this post: http://support.microsoft.com/kb/2636465 
      $mailitem.PropertyAccessor.SetProperty($PR_SECURITY_FLAGS, 0) 
      $mailitem.save() 
      ############################################ 
    } 
    catch { 
      $txt.AppendText($mailitem.subject + $cr); 
    } 
  } 
} 

# Create Window 
$form = new-object System.Windows.Forms.Form 
$form.Size = new-object System.Drawing.Size @(600,600) 
$form.topmost = $true 
$form.text = "Folder progress & messages that couldn't be decrypted" 

############################################################### 
# this is what kicks off the loop 
$form.add_shown({ RemoveCrypto($f) }) 
############################################################### 

$txt = new-object System.Windows.Forms.RichTextBox 
$txt.Dock = "Fill" 
$txt.AutoSize = "True" 
$txt.Font = new-object System.Drawing.Font("cambria", 13) 
$form.Controls.Add($txt) 

$close = New-Object System.Windows.Forms.Button 
$close.Dock = "Bottom" 
$close.AutoSize = "True" 
$close.Text = "Close" 
$close.add_click({ 
$form.Close() 
}) 
$form.Controls.Add($close) 

# Show window 
$form.showdialog() 
$form.dispose()

Exporting and Re-deploying SQL Server 2008 Maintenance Plans

Challenge: There’s lots of chatter out there about working around various issues related to pulling an SSIS package out of an initial definition server and then reinstalling it on other servers.  For example:
INSERT statement conflicted with the FOREIGN KEY constraint "FK_sysmaintplan_log_subplan_id". The conflict occurred in database "msdb", table "dbo.sysmaintplan_subplans", column 'subplan_id'.
The following scripts are my effort to bundle all the steps into something that allows me to forget about the messy details.
For me this comes in handy for managing a standardized maintenance plan on many identical database instances... e.g. a bunch of replication subscribers.
Notes:
  • Full blown BIDS/SSIS vs Maintenance Plan wizard - My needs were met by the basic Maintenance Plan facility under the “Management” node in SQL Server Management Studio (SSMS).  From what I understand, this supports a subset of the full SQL Server Integration Services (SSIS) functionality.  Therefore, there is a lot of chatter about mixing and matching the two, with care.  In my experience, once I had loaded my plan in BIDS (Business Intelligence Development Studio), attempted any modification and then tried to execute the corresponding DTSX back under Maintenance Plans, it was no longer compatible with that execution context and I simply didn’t try to decipher the errors any further.
  • I found that it’s convenient to have a “staging” server with identical SQL Server instance and database to what you care to redeploy to… therefore the maintenance plan you export is largely ready to go as-is.
  • One manual DTSX tweak that remains necessary is to delete the encrypted password node and add the password directly to the connection strings… I believe the encryption is tied to a machine based key and therefore isn’t portable but I could be wrong about that.
  • I’m using SQL Server 2008 R2.  I’m assuming everything is 2008 “R1” compatible and could very well work on SQL Server 2005 but I haven’t tried it.
Here’s some working code.
  • All these scripts depend on environment variables SQLCMDUSER & SQLCMDPASSWORD being defined
  • export_dtsx.cmd – Batch file which pulls the maintenance plan out of SQL Server to a local .DTSX file
  • upload_dtsx.ps1 – PowerShell script which uploads the specified .dtsx file to the specified server.  Most significantly, this logic handles pulling the pertinent GUID’s out of the dtsx XML which are required to create the corresponding scheduled job records.
  • create_maint_plan_job.sql – upload_dtsx.ps1 execute this script to create the SQL Agent scheduled job corresponding to the maintenance plan… the current parameters establish an every night, midnight run.  To determine representative arguments for your own preferred schedule, simply schedule a dummy job and “Generate Script” for that via SSMS.

SQL Server – [SOLVED] “Unable to initialize SSL encryption because a valid certificate could not be found, and it is not possible to create a self-signed certificate."


Nutshell solution: Generate a self-signed certificate and plug it into SQL Server Configuration Manager > SQL Server Network Configuration > Protocols for {instance_name} > Properties > Certificate > Certificate

Snap3

I read through dozens of folks wrestling with this issue and various suggested remedies (reinstalling, sysprep, etc) yet I found none addressing the certificate error directly in this way … so it seems worth getting this message out there.

Cause: For me, my SQL Server 2008 R2 (v10.50.1600.1) install went wonky (ran into some group policy brick walls) and somehow the default self-signed certificate must've gotten wiped out.

Interestingly, on other servers where the install ran without issue, this certificate entry is also blank… so that tells me we’re fortunate SQL Server is able to utilize this new one we throw in.

One straightforward way to generate self-signed certs is with "SelfSSL.exe" from the IIS 6.0 Resource Kit Tools. Here's example command line usage:
             SelfSSL /N:CN={database server name} /V:1999999

  • If you're not familiar with certs, the name must match the name of the machine exactly, or it won’t show up in SQL Server Configuration Manager’s certificate drop down list!… this name should be the “FQDN” (Fully Qualified Domain Name)… typically the “Full Computer Name” as listed under Control Panel > System.
  • The /v option is the #days the cert is valid for... through empirical study I believe 1999999 is the max allowed… that currently pushes expiration out to the year 7487, which will hopefully last ya ;)
  • SelfSSL often spews “Error opening metabase: 0x80040154” … This would probably be bad news if you wanted to use this certificate for IIS SSL but apparently it’s not a factor for SQL Server SSL.
  • One can examine the certificates that have been generated this way by launching mmc.exe, adding the Certificates snap in, selecting “Computer account” and looking at the “Personal” certificate store.

Snap1

In a blatant attempt to cast a wide net on search hits , here’s a typical log that’ll be spewed along with the aforementioned error:
2012-02-10 09:57:09.07 Server      Initializing the FallBack certificate failed with error code: 1, state: 1, error number: -2146893802.
2012-02-10 09:57:09.08 Server      Unable to initialize SSL encryption because a valid certificate could not be found, and it is not possible to create a self-signed certificate.
2012-02-10 09:57:09.08 Server      Error: 17182, Severity: 16, State: 1.
2012-02-10 09:57:09.08 Server      TDSSNIClient initialization failed with error 0x80092004, status code 0x80. Reason: Unable to initialize SSL support. Cannot find object or prope
rty.
2012-02-10 09:57:09.08 Server      Error: 17182, Severity: 16, State: 1.
2012-02-10 09:57:09.08 Server      TDSSNIClient initialization failed with error 0x80092004, status code 0x1. Reason: Initialization failed with an infrastructure error. Check for
previous errors. Cannot find object or property.
2012-02-10 09:57:09.09 Server      Error: 17826, Severity: 18, State: 3.
2012-02-10 09:57:09.09 Server      Could not start the network library because of an internal error in the network library. To determine the cause, review the errors immediately pr
eceding this one in the error log.
2012-02-10 09:57:09.09 Server      Error: 17120, Severity: 16, State: 1.
2012-02-10 09:57:09.09 Server      SQL Server could not spawn FRunCM thread. Check the SQL Server error log and the Windows event logs for information about possible related proble
ms.

Amiga – Future Tank game (Tron Font)

Latest Tron movie triggered some old brain cells since the title font is similar.

Yeah, I know, seriously stuck in the past.

 

clip_image002 clip_image001 clip_image001[5] clip_image001[7]

Excel – Select (Delete) Blank Rows

From here: http://www.theexceladdict.com/_t/t031008.htm

Reflecting Microsoft’s current button naming in Excel 2010…

  • Select a column possessing representative blanks, from top to bottom.
  • F5.
  • “Special…” button - here's where the magic happens...
  • “Blanks” radio button.
  • “Delete” ribbon button/menu (under Home tab) – “delete sheet rows” menu item.