If you've spent any time on my company (DigitalMediaMagik.com) web site, you've likely seen the gallery of panoramas and you may even have seen (on my first business cards) the “Harvard Yard in Fall” one that I have inserted at the bottom of this posting. What you have probably not seen is this "same picture" being used as the masthead on a new publication of the Harvard College Writing Program — their “Harvard Guide to Using Sources” web site.
Since I do not know how long Harvard University will continue to use my panorama on their site… on the right is a screen shot that I captured (and then annotated slightly to highlight the credit to "Kevin G. Pammett" + the simple URL) to show off my panorama on one of the pages from Harvard's new web site. For a better look… the click-thru on that screen shot takes you directly to their site, but note that it may show different content from time to time. The arrangement with DigitalMediaMagik.com simply gives Harvard University the right to use it in their masthead (on all pages) for the entire site.
Below is a thumbnail of the “Harvard Yard in Fall” panorama … or, iff you have Java, click here to see the same picture in a pop-up panorama viewer that shows the image rotating thru 360° — demonstrating that there is no right-hand or left-hand edge to this picture; the two edges automagically connect to form a seamless image.
In October 2008 I took the 27 snapshots that you see above, auto- stitched into a single 6175 x 833 pixel image. The resulting “Harvard Yard in Fall” panorama captures the New England Fall beauty of Harvard University from the center of the courtyard known as "Harvard Yard" on the campus of Harvard University in Cambridge, Ma.
If you are interested in engaging DigitalMediaMagik.com to create — or to help you create — panoramas of your own favorite vistas… please contact me (Kevin Pammett) at your earliest convenience.
Friday, September 24, 2010
Wednesday, September 8, 2010
Making Use of Silverlight Technology — A Digital Picture Renaming Tool
In a previous article I introduced the Silverlight App that I call pixRename, and herein I'm announcing the "version 1.0" release of this tool. To try it out on any computer that can run Microsoft's .NET Framework, follow the instructions at: http://bit.ly/pixRenameV1
Aside from wanting a "modern" version of my reName tool — I really do use it to process digital camera pictures — the other reason I created this was to get hands-on experience with the following Silverlight 4.0 technologies:
Any comments or feedback please contact me (Kevin Pammett, © 2010 DigitalMediaMagik.com)
Aside from wanting a "modern" version of my reName tool — I really do use it to process digital camera pictures — the other reason I created this was to get hands-on experience with the following Silverlight 4.0 technologies:
- Isolated Storage — relative to browser-based cookies, this persistence mechanism is a huge step for a pervasive development technology because it essentially gives you a database that's built-in. I use this to persist tool options and 1:many relationships that are really named sets of (name,value) pairs — the so-called "Settings" or "[camera] profiles".
- Windows Presentation Foundation (WPF) is a modern technology for creating, persisting, connecting and deploying UI components — app controls — which I use for buttons, labels, radio controls, checkboxes, special-purpose combo boxes and dynamic controls that reflect the end user's personalizations.
- Child Windows which share data with the main App, greatly simplifying the UI that you normally see, providing mechanism for a "Splash screen", the log for a "Preview" command, & general-purpose dialogs.
|
Tuesday, August 17, 2010
Silverlight Technology — Runs in ANY Browser
One of the really great things about Silverlight Technology is that it literally runs in any browser — at least any browser running on an operating system that runs the .NET platform.
In this article I describe an expense reporting application that I wrote from scratch to demonstrate .NET technology being used with Silverlight, and deployed on a web site (which will be at TBD once I do the deployment). For now, I'll just include three (one is linked) screen shots of the application running on a local web server.
I was given this sample programming problem and decided to take it on as requirements for a "Silverlight application" to add to this portfolio because it's a useful way to demonstrate an Object Oriented design, coded in C#, with a .xaml front end. The main application screen, shown on the left, is not very fancy; that's because the assignment called for most of the action to be in the "Expense Item (Details)" screen, shown on the right, below.
The "Expense Item" screen is designed to be very dynamic — to fully encapsulate all the low-level mechanisms called for in the requirements. One of the comboBox controls is static, but the other (where you pick a currency type) is 100% generated by C# code behind the scenes. Moreover, depending on what you do on the screen… many other UI elements change to "show you" what is allowed and what isn't. For example, the "Save" button doesn't enable until all of the required parameters have been specified; the "Override Exchange Rate" button is disabled if the "From" and the "To" currencies are the same (it would be nonsensical, otherwise). Each time you select a different currency all of the calculated fields on the form are updated. If you change any of the calculated values, the "label" that shows you which currency you are using is modified to show that the rate has been "hand modified" … and many more… All of this is pretty easy in Silverlight because creating "next-generation, rich User Interfaces" is one of the main goals of this technology.
I'll finish this description once I find a site to host this application so that you can experience the joy of Silverlight in action.
In this article I describe an expense reporting application that I wrote from scratch to demonstrate .NET technology being used with Silverlight, and deployed on a web site (which will be at TBD once I do the deployment). For now, I'll just include three (one is linked) screen shots of the application running on a local web server.
I was given this sample programming problem and decided to take it on as requirements for a "Silverlight application" to add to this portfolio because it's a useful way to demonstrate an Object Oriented design, coded in C#, with a .xaml front end. The main application screen, shown on the left, is not very fancy; that's because the assignment called for most of the action to be in the "Expense Item (Details)" screen, shown on the right, below.
The "Expense Item" screen is designed to be very dynamic — to fully encapsulate all the low-level mechanisms called for in the requirements. One of the comboBox controls is static, but the other (where you pick a currency type) is 100% generated by C# code behind the scenes. Moreover, depending on what you do on the screen… many other UI elements change to "show you" what is allowed and what isn't. For example, the "Save" button doesn't enable until all of the required parameters have been specified; the "Override Exchange Rate" button is disabled if the "From" and the "To" currencies are the same (it would be nonsensical, otherwise). Each time you select a different currency all of the calculated fields on the form are updated. If you change any of the calculated values, the "label" that shows you which currency you are using is modified to show that the rate has been "hand modified" … and many more… All of this is pretty easy in Silverlight because creating "next-generation, rich User Interfaces" is one of the main goals of this technology.
I'll finish this description once I find a site to host this application so that you can experience the joy of Silverlight in action.
Wednesday, July 14, 2010
My First Silverlight Application — pixRename
Building upon my initial success working with Silverlight, I set about creating “an App for that ” which I am now calling “pixRename”. It's aimed at owners of Digital Cameras who copy snapshots (picture files) onto their computer hard drives… and for that reason — since this application deals directly with files — it only runs in so-called OOB (or "Out of Browser") mode — on Windows, on Mac OS X, and on many other platforms.
To see pixRename in action… click thru the screen shot on the right.
PixRename is a simple utility that helps you do "bulk" renaming of the files created by your Digital Camera. It presupposes that you have copied these files onto your hard drive, and that you have put them into folders where there is already a commonality associated with all of the files in any given folder — they are already set up as "albums". In that context, pixRename gives you fine-grained control over how the information in the .jpg Exif properties can be used in reNaming those files. e.g. For most people, those names are probably something like IMG_01709.jpg — where 'everyone' knows that the "709" is the picture number (or "ordinal") and 'no one' has any idea what the rest of that name refers to. Most people do see what I've shown in the picture in my related blog article when you let your mouse hover over one of these file names and automagically a Tool Tip appears showing you various things about the picture — most notably the date and time when the snapshot was taken. This is how, in the example shown in the picture above, that file ended up with the name “709-Frank'sBirthday-Sep-30-2007-17-03-16.jpg”. If you are curious… it is the "mask" in the "Picture Pattern" field let lets you specify that the picture number you are interested in is only the right-hand 3 digits (the "709") of what one otherwise might consider the actual ordinal shown in this example — that's intended, and is just one of the more subtle features of pixRename.
There are lots more things that pixRename can do. But — for now at least — why not just get the beta version of pixRename, play with it, and send me feedback so that I can continue to make this utility more robust and more useful. I haven't decided yet if I will provide free access to the C# source for this Silverlight application. Free free to post comments on this article or on pixRename, below.
To see pixRename in action… click thru the screen shot on the right.
PixRename is a simple utility that helps you do "bulk" renaming of the files created by your Digital Camera. It presupposes that you have copied these files onto your hard drive, and that you have put them into folders where there is already a commonality associated with all of the files in any given folder — they are already set up as "albums". In that context, pixRename gives you fine-grained control over how the information in the .jpg Exif properties can be used in reNaming those files. e.g. For most people, those names are probably something like IMG_01709.jpg — where 'everyone' knows that the "709" is the picture number (or "ordinal") and 'no one' has any idea what the rest of that name refers to. Most people do see what I've shown in the picture in my related blog article when you let your mouse hover over one of these file names and automagically a Tool Tip appears showing you various things about the picture — most notably the date and time when the snapshot was taken. This is how, in the example shown in the picture above, that file ended up with the name “709-Frank'sBirthday-Sep-30-2007-17-03-16.jpg”. If you are curious… it is the "mask" in the "Picture Pattern" field let lets you specify that the picture number you are interested in is only the right-hand 3 digits (the "709") of what one otherwise might consider the actual ordinal shown in this example — that's intended, and is just one of the more subtle features of pixRename.
There are lots more things that pixRename can do. But — for now at least — why not just get the beta version of pixRename, play with it, and send me feedback so that I can continue to make this utility more robust and more useful. I haven't decided yet if I will provide free access to the C# source for this Silverlight application. Free free to post comments on this article or on pixRename, below.
Wednesday, July 7, 2010
reWorking: ExifLib — A Fast Exif Data Extractor for .NET and Silverlight
As soon as I began to get what a fabulous new technology Microsoft have developed in Silverlight, I decided to come up with something useful that I could implement with it — mostly just to get hands-on experience with the technology. Most people know that you can use Silverlight to create Rich Internet Applications (RIAs) and also "Apps" that run in smart phones… but one of the most intriguing things about Silverlight is that with the click of a configuration checkbox that same code can also run standalone — in so-called OOB (or "Out of Browser") mode — on Windows, Mac OS X, and on many other platforms. So from the beginning I set my sights on creating “an App for that” which would do something useful with snapshots produced by digital cameras.
So I read with great interest the article by Simon McKenzie from Oct 2009 called “ExifLib — A Fast Exif Data Extractor for .NET 2.0” because “Exif Data” refers to the metadata stored in picture files by most digital cameras. Examples of this metadata are the properties that record what the camera settings were plus the date/time when the snapshot was taken — as you see in the ToolTip screen shot on the right. So imagine my disappointment when the article said that this ExifLib wouldn't work with the .NET libraries found in Silverlight 4 (because Silverlight comprises only a subset of the 'full' .NET platform). In McKenzie's defense, he did outline what one would have to do in order to "bridge the gap", so I set about doing exactly that; hense my release of the Silverlight version of this C# library which I recently posted back to the forum (www.codeproject.com) from whence it came.
To download the C# + Visual Studio 2010 project for this library, see: http://bit.ly/Exif-Silverlight-zip
Working on this project… I spent a majority of my time finding a panoply of different .jpg's from many different digital cameras — old and new — to make sure that my modifications not only worked for my pictures, but also for "everything" I could get my hands on. So aside from the code changes, in the new project, I've included this set of .jpg's (Big-endian and Little-endian) along with all of the regression testing data that I accumulated to ensure that the Silverlight and non-Silverlight versions of this library produce exactly the same results. From my project you can build either version of the library by just defining a conditional compilation that I made up.
Of course… please contact me if you find any flaws in this library since I am in the process of using it for a new Silverlight Application that — after its Bastille Day beta test began — I have now written about, here.
So I read with great interest the article by Simon McKenzie from Oct 2009 called “ExifLib — A Fast Exif Data Extractor for .NET 2.0” because “Exif Data” refers to the metadata stored in picture files by most digital cameras. Examples of this metadata are the properties that record what the camera settings were plus the date/time when the snapshot was taken — as you see in the ToolTip screen shot on the right. So imagine my disappointment when the article said that this ExifLib wouldn't work with the .NET libraries found in Silverlight 4 (because Silverlight comprises only a subset of the 'full' .NET platform). In McKenzie's defense, he did outline what one would have to do in order to "bridge the gap", so I set about doing exactly that; hense my release of the Silverlight version of this C# library which I recently posted back to the forum (www.codeproject.com) from whence it came.
To download the C# + Visual Studio 2010 project for this library, see: http://bit.ly/Exif-Silverlight-zip
Working on this project… I spent a majority of my time finding a panoply of different .jpg's from many different digital cameras — old and new — to make sure that my modifications not only worked for my pictures, but also for "everything" I could get my hands on. So aside from the code changes, in the new project, I've included this set of .jpg's (Big-endian and Little-endian) along with all of the regression testing data that I accumulated to ensure that the Silverlight and non-Silverlight versions of this library produce exactly the same results. From my project you can build either version of the library by just defining a conditional compilation that I made up.
Of course… please contact me if you find any flaws in this library since I am in the process of using it for a new Silverlight Application that — after its Bastille Day beta test began — I have now written about, here.
Thursday, June 17, 2010
GiveCamp — Learning Silverlight and “Coding for Charity”
Last weekend I had the distinct privilege of being part of the 1st annual New England 2010 GiveCamp hosted by Microsoft in Cambridge, Ma. For those who've never heard of GiveCamp, it is a weekend-long event where technology professionals — from designers, developers and database administrators to marketers and web strategists — donate their time to provide solutions for non-profit organizations. For my part, it was somewhat from altruism… but mostly I stepped up for the 48-hour marathon because it gave me an opportunity to join the Silverlight team so that I could hone my skills using this latest and greatest technology from Microsoft.
On the right you see a screen shot of what my team produced: CHaD.Chatter, so named because our non-profit — who we did the Silverlight project for — was Children's Hospital at Dartmouth (CHaD). The "Get Well Messages presented in floating balloons" paradigm was the perfect project — enabling us to delve into numerous aspects of this .NET technology, and to showcase Silverlight in all its glory… even though the truth is that we didn't finish it in the time allotted; that's why there was only one message-carrying balloon animation in the final presentation we made to the larger group.
Since the CHaD team has decided to regroup and finish working on CHaD.Chatter, stay tuned for a subsequent blog article where I will write about — and probably present — a fully working version of this web-based, interactive, database-driven, Silverlight application.
On the right you see a screen shot of what my team produced: CHaD.Chatter, so named because our non-profit — who we did the Silverlight project for — was Children's Hospital at Dartmouth (CHaD). The "Get Well Messages presented in floating balloons" paradigm was the perfect project — enabling us to delve into numerous aspects of this .NET technology, and to showcase Silverlight in all its glory… even though the truth is that we didn't finish it in the time allotted; that's why there was only one message-carrying balloon animation in the final presentation we made to the larger group.
Since the CHaD team has decided to regroup and finish working on CHaD.Chatter, stay tuned for a subsequent blog article where I will write about — and probably present — a fully working version of this web-based, interactive, database-driven, Silverlight application.
Wednesday, May 5, 2010
DigitalMediaMagik.com 2010 Business Cards
During 2009 I got an excellent response to the panorama format that I used for my 2009 DigitalMediaMagik business cards, so this year I decided to do something very similar except that I used a different panorama. Shown on the right, my 3rd-generation card design features a countryside vista from small town Vermont. For more details click thru the graphic on the right or click here to see that panorama in the Panorama Viewer.
Following last year's paradigm, the goal with the 2010 card was to deliver a more accurate picture of what DigitalMediaMagik.com is all about. The card reflects the two aspects of my business as they have evolved — website design and working with digital media. In addition, this year's card presents my LinkedIn profile (www.LinkedIn.com/in/KevinGenePammett) in an effort to further promote my services as a Principal C#, .Net and Java software engineer — possibly outside of the context of my own company.
As I expected last year, creating the design for these cards — the dilemma of which panorama to use — gave me the idea of using multiple panoramas in a new masthead for my company site which has featured a panorama animation since April '09 when I came out with a face lift for my DigitalMediaMagik.com web site.
Following last year's paradigm, the goal with the 2010 card was to deliver a more accurate picture of what DigitalMediaMagik.com is all about. The card reflects the two aspects of my business as they have evolved — website design and working with digital media. In addition, this year's card presents my LinkedIn profile (www.LinkedIn.com/in/KevinGenePammett) in an effort to further promote my services as a Principal C#, .Net and Java software engineer — possibly outside of the context of my own company.
As I expected last year, creating the design for these cards — the dilemma of which panorama to use — gave me the idea of using multiple panoramas in a new masthead for my company site which has featured a panorama animation since April '09 when I came out with a face lift for my DigitalMediaMagik.com web site.
Wednesday, April 21, 2010
Using Seasonal Panoramas to Promote Health & Fitness
At DigitalMediaMagik.com we create marketing and promotional materials using the latest in digital imaging techniques, as we describe in this article.
The thumbnail you see on the left is an 8.5" x 11" flyer I was asked to make for an event my client calls “The Big Rocks Mile, 2010”.
Part of their organization's Health & Fitness program, this "running a mile" was to be a 3-part event and I was asked to create a flyer to promote this 1-mile run happening at the beginning, ending, and mid-point juncture of a 6-month training period.
What came to mind immediately was to use panoramas — from my Panorama Gallery — to communicate the “Spring, Summer, Fall ” timeline that was to be the framework for this 'event'.
Being many times wider than they are tall, panoramas fit perfectly onto a horizontal flyer page leaving room for captions under each picture to achieve the other goal of the flyer — to convey that this 'event' was actually going to be 3 events, taking place over the period of 6 months. In addition, the captions convey the context for the event — “Every Man Wins” — because this was not to be a traditional man-against-other-men race, but rather that each man trains throughout the 6-month period, sets a baseline for himself in the Spring, shows progress with more training until Summer arrives, and then experiences the full benefit of the training in the Fall when he realizes that this Health & Fitness program is just the beginning — there's much more ahead.
The final piece was to create a simple URL that points to the flyer: BigRocks-Mile2010, and to encourage people throughout the organization to use that as a link in their communications about the event.
The thumbnail you see on the left is an 8.5" x 11" flyer I was asked to make for an event my client calls “The Big Rocks Mile, 2010”.
Part of their organization's Health & Fitness program, this "running a mile" was to be a 3-part event and I was asked to create a flyer to promote this 1-mile run happening at the beginning, ending, and mid-point juncture of a 6-month training period.
What came to mind immediately was to use panoramas — from my Panorama Gallery — to communicate the “Spring, Summer, Fall ” timeline that was to be the framework for this 'event'.
Being many times wider than they are tall, panoramas fit perfectly onto a horizontal flyer page leaving room for captions under each picture to achieve the other goal of the flyer — to convey that this 'event' was actually going to be 3 events, taking place over the period of 6 months. In addition, the captions convey the context for the event — “Every Man Wins” — because this was not to be a traditional man-against-other-men race, but rather that each man trains throughout the 6-month period, sets a baseline for himself in the Spring, shows progress with more training until Summer arrives, and then experiences the full benefit of the training in the Fall when he realizes that this Health & Fitness program is just the beginning — there's much more ahead.
The final piece was to create a simple URL that points to the flyer: BigRocks-Mile2010, and to encourage people throughout the organization to use that as a link in their communications about the event.
Wednesday, February 10, 2010
Picture Stamps — Gifts that Get Given Away Twice
Have you ever heard of Stamps.com — in the USA — or its Canadian counterpart ? Click thru for details, or… the take away is that you can create your own US or Canadian postage stamps which can then be used exactly like real stamps. You can do this for any number of promotions / reasons, including that they make excellent gifts, as I did for my extended family last Christmas.
So… what's the connection with DigitalMediaMagik.com ?
Following the tagline “You Imagine it… We make it Happen !! ” — on your behalf, we could do all of the image-editing and other cyberspace work to create one or more stamps from pictures that you provide. When the gift arrives, it looks like the familiar 'book' of stamps shown on the right.
A step beyond the stamps themselves — also available as a DigitalMediaMagik.com service — would be that I/we create a web page using the wildly flashing 3D cube navigator shown on the left, the idea being that "the story", as told by this "experience", is part of your promotion or gift. Of course… that 6-chapter story could be anything that you can imagine.
Shown here purely as an example of such a story… use the 3D cube navigator (on the left) to explore the set of stamps I created :
• Move your mouse into the center of the green background frame (to the left) to “drive” and “look at” each of the images.
• As you move the mouse (within the 3D cube frame) you are in “drive mode” — doing manipulation via mouse movement, without mouse clicks. E.g. move the mouse towards any corner of the frame and the cube begins rotating in that direction. The rotation follows you around as you move the mouse, and is faster/slower depending on how close you are to the center of the cube.
• Click on any cube face; it "zooms out", showing you the stamp image. A subsequent single click continues the rotation.
• Double Click on an image face to 'read that chapter'. In this case more detail means you see the picture the stamp was made from). When finished, your browser's "Back" button returns you to the cube navigator.
• In “drive mode” the rotation stops whenever you move the mouse outside of the green background space, and resumes when you re-enter it.
For an example where the 'chapters' are real stories, check out my "life story" done with the 3D cube navigator.
So… what's the connection with DigitalMediaMagik.com ?
Following the tagline “You Imagine it… We make it Happen !! ” — on your behalf, we could do all of the image-editing and other cyberspace work to create one or more stamps from pictures that you provide. When the gift arrives, it looks like the familiar 'book' of stamps shown on the right.
A step beyond the stamps themselves — also available as a DigitalMediaMagik.com service — would be that I/we create a web page using the wildly flashing 3D cube navigator shown on the left, the idea being that "the story", as told by this "experience", is part of your promotion or gift. Of course… that 6-chapter story could be anything that you can imagine.
Shown here purely as an example of such a story… use the 3D cube navigator (on the left) to explore the set of stamps I created :
• Move your mouse into the center of the green background frame (to the left) to “drive” and “look at” each of the images.
• As you move the mouse (within the 3D cube frame) you are in “drive mode” — doing manipulation via mouse movement, without mouse clicks. E.g. move the mouse towards any corner of the frame and the cube begins rotating in that direction. The rotation follows you around as you move the mouse, and is faster/slower depending on how close you are to the center of the cube.
• Click on any cube face; it "zooms out", showing you the stamp image. A subsequent single click continues the rotation.
• Double Click on an image face to 'read that chapter'. In this case more detail means you see the picture the stamp was made from). When finished, your browser's "Back" button returns you to the cube navigator.
• In “drive mode” the rotation stops whenever you move the mouse outside of the green background space, and resumes when you re-enter it.
For an example where the 'chapters' are real stories, check out my "life story" done with the 3D cube navigator.
Subscribe to:
Posts (Atom)