Tuesday, January 12, 2010

January Photo of the Month



Lake Tahoe


This past weekend I took the family for extended weekend winter vacation in Tahoe. Spring skiing at its best. The photo above was taken at a time of day most photographers would put away their cameras; there are some great photo opportunities at noon.

Tuesday, January 5, 2010

Hacking the TTouchKeyboard Part II

Hacking the TTouchKeyboard Part I
Hacking the TTouchKeyboard Part II
Hacking the TTouchKeyboard Part III
Hacking the TTouchKeyboard Part IV
Hacking the TTouchKeyboard Part V (not published yet)

This post is going to be short because it is just an example application that you can download source code to illustrate how to access and save a touch keyboard layout as an XML file.

My next post will be an example application illustrating generate a resource file from the XML file so you can make your own keyboard layouts.

Sunday, January 3, 2010

Full Moon Wallpaper

Click on the photo below to get a 1920x1080 full screen still of the video I posted on New Years day as a wallpaper. I've had a lot of requests for wallpapers over the years so here's the first of hopefully many. Enjoy!



Note that the still isn't quite as sharp as I would like. I'll have to figure out if I can get a better still from Final Cut Pro but I'm still learning that monolithic piece of software.

Friday, January 1, 2010

Happy New Years!

Happy New Years everyone and welcome to 2010! It'll be one heck of a year.

Here is a video of the full moon that I shot a video of last night using the new Canon 5D Mark II's 1080p video capabilities.

Update: I suggest clicking here to play it big and not playing the one below

Monday, December 21, 2009

Hacking the TTouchKeyboard Part I

Hacking the TTouchKeyboard Part I
Hacking the TTouchKeyboard Part II
Hacking the TTouchKeyboard Part III
Hacking the TTouchKeyboard Part IV
Hacking the TTouchKeyboard Part V (not published yet)

The TTouchKeyboard is a a fairly flexible on screen keyboard that supports multiple keyboard layouts but only shipped with the number pad and the standard keyboard layout for a whole lot of input languages. How to create these keyboard layouts has been a mystery, until now. Over the next few posts I'll provide some tools, documentation and sample code to build everything you need to hack the TTouchKeyboard.

The first bit of code I'm going to provide demonstrates listing all the keyboard layouts that are available. It's pretty simple really. A keyboard layout is just a resource with the string "KEYBOARD" in the name.

procedure GetKeyboardLayoutNames(ANames: TStrings);

function EnumResNames(Module: HMODULE; ResType, ResName: PChar;
Nothing: Pointer): Integer; stdcall;
const
sResourceName = 'KEYBOARD';
begin
if Pos(sResourceName, ResName) > 0 then
LayoutNames.Add(ResName);
Result := 1;
end;

begin
LayoutNames := TStringList.Create;
try
EnumResourceNames(HInstance, RT_RCDATA, @EnumResNames, 0);
ANames.Clear;
ANames.AddStrings(LayoutNames);
finally
FreeAndNil(LayoutNames);
end;
end;


Once you have a layout you can load it by calling this little function.

function LoadLayout(const LayoutName: string): TVirtualKeyLayout;
var
Stream: TResourceStream;
TempStream: TStream;
begin
Result := nil;
Stream := TResourceStream.Create(HInstance, LayoutName, RT_RCDATA);
try
Result := TVirtualKeyLayout.Create;
Result.LoadFromStream(Stream);
finally
Stream.Free;
end;
end;


Next I'll show how to iterate the data structures and save it to an XML file for easy text manipulation.

Wednesday, December 16, 2009

Book Review: Physics of Superheros



With Christmas right around the corner I thought I'd share with everyone one of my favorite stocking stuffers, The Physics of Superheros. Now I haven't read the entire book and have only thumbed through the second edition at the local bookstore, but what I have read is awesome.

The author, James Kakalios, is a college physics professor who teaches his physics courses by using examples comic books. How awesome is that! If only this was my text book in High School and College physics. Anyway, it is a worthy read in my opinion and anyone who reads this blog would probably enjoy this book.





Please read my full disclosure of any biases I may have.

Thursday, December 3, 2009

Hang With Cool People

The other day I read that depression is contagious and thought to my self "duh!" Just as you are what you eat you are who you hang out with. Eat too many carrots and you turn orange (seriously, my daughter did this). Hang out with the people you want to be like and you'll be just like them. Who say's you can't learn by osmosis.

Wednesday, December 2, 2009

Glacier National Park

Last summer Glacier Park Magazine editor Chris Peterson engaged in a project to photograph Montana's Glacier National Park over 100 consecutive days. He used a mix of film and digital cameras that would have been used over the course of the Park's 100 years.

Check out the blog here with a post from each day. The photos are awesome.

My personal favorite is Day 62 because I know exactly how Chris feels about that tree. I have many trees and rocks in various parks that I could spend hours at.

Tuesday, December 1, 2009

Full Disclosure

On October 5 2009 the Federal Trade Commission in the United States published an 81 page guideline requiring that all product endorsements and testimonials on web sites, blogs, Facebook, Twitter, and other social media disclose "...their connection, if any, with the advertisers; and also reveal the receipt of free products and or payments from the advertisers" effective today, December 1 2009.

This page will be updated to make clear my commercial relationships going forward and will be permanently linked on the site's side panel, found on the right side of this blog.

I am employed by Embarcadero Technologies Oracle.

I have Amazon, Google and B&H Photo advertisements on this blog and I earn a percentage of the sale if you click on the link and buy the item. I don't do it for the money, I do it to provide the readers of this blog links to products that I think are exceptional. I would not provide a link to the product if I didn't think it was exceptional and I didn't already use it. I really don't earn much but it's something and it is fun to get a check once in a while.

I have had a working relationship with Apple since the release of Aperture. I have done contract photography for them, they have provided me with long term use of software and hardware (although more software than hardware) and paid me money (although I think I have given them more money over the years than they have given me). I have also owned stock in Apple for years. None of this influences what I write here about their products.

I own stock in various companies but mostly are in mutual funds so chances are if there is a stock some fund manager has purchased a small percentage of it with a few of my dollars and I guarantee none of that influences stuff that I write.

Tuesday, November 24, 2009

Debugging Direct2D

When debugging Direct2D the debugger can be really slow, and I've recently discovered the culprit of the poor performance; the Intel graphics driver. The same performance problems happen in Visual Studio so it isn't a C++Builder or Delphi bug. If you are debugging Direct2D just run without debugging or get a system with an NVIDIA or ATI graphics card.

Touch Demo

My Touch Move demo is now complete. Here is a quick list of the four parts:

Part I
Part II
Part III
Part IV

And you can download source code from CodeCentral for all four demos. The download wasn't working but has now been fixed.

After the Thanksgiving Holiday I'll start something new. I was thinking of how to hack the touch keyboard, but if anyone has suggestions regarding things you'd like to know about touch drop me a line either via comments or the contact me link on the right side of this blog and I'll try and make a post out of it.

Monday, November 23, 2009

Unicycling in Africa

My good friend Corbin got married this summer to the lovely Louise (yours truly photographed their wedding) and then they went for their honeymoon in Africa on unicycles! Here's an awesome video that Corbin made:



Here is another video from their tour. My daughter loves this one!