KoolSpan's TrustChip SD Card gives you a 256-bit encrypted channel for you cell conversations. But, you've got to have one on both sides, so save your pennies for gifts for everybody you want to talk to... What can I say, I'm not a big fan of the uber-simple for the man, PATRIOT ACT enabled, non probable cause requiring wiretapping that has become vogue, and think that "the public" should rebel by strongly encrypting even the most mundane communications possible.
For example, the ASCII armored block below represents the text above after encrypting it to a freshly generated and rapidly discarded GPG / PGP key that also has a one-day expiration period. I copied and pasted through a text editor, so there is no hyperlink or markup in the plaintext. (Using my own key and providing you the plaintext would be a bad security practice.)
-----BEGIN PGP MESSAGE-----
Version: GnuPG v1.4.7 (MingW32)
Comment: Encrypted with GPG
hQIOA0mD73u6H1lYEAf+IGjSpjmLE6KxbxwfkaqLYEDOpkmSbONLiU3HDTN8UE30
YNLVyGoEgU0rHMQNWwrBbk3FODMYcAzxM1AB3ppTxx0/WBueottx/Od0LjWW2I0L
Rg/Kwpvl+UFfFUH7pzu195J4q0ycFIR3JCkHZgJdAf7rmDdXw3QXL6GymvffY0EX
xo5i1r59XLaWnkDgIMV1m5LMbaJpWkrS5VGeXX29nw7T4dDsQut4pPZTQ4sdfg90
VohN23Tpvy8geNqljvI/jDZ0sK3B3otL7BpAmpeO29bzH0jhFVAUgVVGMg8bLuIA
YWmC7/Pp5uW9V45fmi91b4ybVS+ews+KcvIMiJX8iQf+Kq1RLZw1gHUBaAF+t3wZ
OwC0rywFzhmlaD9EeGTbfOun6OHFPZaN2CRj9tqydHv1tN1UCGclT88A5UxeOOKq
YFUW/YCCcTC8JYZmFkxJgaTu56f21i0VF13k7+ZeESATL7HbxgwhXNNuvP7kcHLx
+ZPwSvC4TL2VpTGVOVwgsZXxKWkIKsBViwxxnGsVzPUy2O3uDpcAJYoqaccnBjEa
hE2ZWesytEzaLd4nW5JBRWlDElDlWW5VH6glnEigDzrYaCyVk0UhkCiX2FDkc6Qe
8QrPJ8ny/G/kwtWtClMVZWnTLj/vW4U2cK3abdNL2KXEMGm4ZGp5N6Z9aVt3Yf3f
etLAvwFU3CFgim9e4N7cP95PDKoB6TxnWIpbTa5cIBks3UjRH3JO+fWo4QAYKRlv
PSswlpsooXzuuFG9YjI7XGfSqohC2aQprNG5am90qhvzpr1Y8CCVATCUE5QasRY+
PMQ9tQ7VZNrtTh9Y9OMRPGm6uU/2HtUfQaOmeuQzJUud7LT/EGxsmKS2OdhK/FFD
TIBq7/aLs4RyhTGoVQrjqLFe4MlCrNVgaUtKWaES+7Xv3bK4igwby+JQUHlI8YG/
oLh1aUvZJzNxBjoIy2hWpMOuxVnfNPco4Zn9XSUUrCISxY4BFFwL0jsq0fS2szmJ
zM3x3wlrlHridNtqS82tm8roCwA9Riu3OhJL+uc0BRmIxYKGAWtmeKxsKWfXdr5+
Y1w/bRl+N1+PORqIFXzAGKCL7nNm7tpCldEv3Hk9gugTCOJkOZaPBY2FQLRR6K5U
VIO+UCqcJ0ZQE8+o2dQ67ZBhHBPrqobh+gthlI+8QGQo2sbaZsG4djDjGETW88KA
BAfD
=iB87
-----END PGP MESSAGE-----
Since I don't really expect anyone else actually reads this blog, maybe I could make all my posts look like this, but encrypt them to myself using my own key; then I could have a private blog that lives in public. I bet that qualifies me as a "person of interest" under the terms of the aforementioned law...
Saturday, January 26, 2008
Friday, January 25, 2008
Practice Safe GPG/PGP!
Another funny strip from xkcd. Only makes sense to us crypto types, but inside jokes can still be funny -- if you happen to be inside.
Labels:
cryptography
Thursday, January 24, 2008
Finally added latest placemark to Photo Gallery Map
Having just received my new copy of CoPilot Live 7 for my new WM6-Pro phone, I had GPS on the brain again. This caused me to recall that I hadn't added a Tampa-related placemark to my map of photo galleries. So, as the screen grab below indicates (if you have super-human eyes with action-movie approved secret government fractal-based near-infinite real-time zoom capabilities), I picked a spot near the pier @ Clearwater Beach to receive the "honor." I have also downloaded a couple of geo-coding toys, and realized that my Garmin Edge 305 bicycle GPS device can also serve quite nicely as a datalogger... Watch out for a future geo-coded project of some sort...

Thursday, December 13, 2007
The MacUpdate Bundle
Hmmm -- was going to buy iWOW tomorrow for $20, but for $50 this bundle looks like the better way to go... I'm sure I can get my $30 worth out of PulpMotion and iStabilize, even if I never use some of the others.
"Your Deal: The Mac community has triumphantly come together reaching all of the unlock milestones before the unlock countdown expired. Now when you buy this bundle, you become the owner of all 11 applications immediately: PulpMotion, XMIND 2008 Pro, iStabilize, Forklift, RapidWeaver, Swift Publisher, Marine Aquarium, Xslimmer, MemoryMiner Yep, and iWOW 2."
Tuesday, December 04, 2007
New communication technique?
Type only things that require a single hand, despite using QWERTY (punctuation doesn't count for this exercise, because silly unreadable run-ons aren't nearly as fun...):
Examples from an xkcd "blag" post:
Examples from an xkcd "blag" post:
- “We fear a few dwarf watercraft stewardesses were regarded as desegregated after a great Texas tweezer war.”
- “I’ll kill him in Honolulu, you unhook my pink kimono.”
- "Are extra trees ever great weeds?"
- "Car was safe: waxed, gassed, etc."
- "A feat: create vast reverberated waves!"
- "Ever see a bad feast? Excess sweet treats?"
- "Draft? Wear a sweater."
- "Axe a rat; feed face; get a barf bag, fast!"
Labels:
word-play
May have to get a Treo...
Treo 750 gets WM6 and HSDPA, finally. Even a free download for AT&T versions on the Palm site... Now, I just need to find out when my current plan dies. Don't really think I want to spend the $550 for the unlocked version, but will have to compare and contrast before making a decision on what and when to buy. Also kinda interested in the BlackJack II, but like the idea of being able to use the same bluetooth receiver and an updated version of the GPS software I've been using on my WM5 PPC.
Sunday, December 02, 2007
GigaPan-tastic
Hopefully, the consumer GigaPan robotic mount will come out of beta soon, but will have a cost similar to its sub-$300 beta price. Sure, you can accomplish the same thing manually, but having a motorized automated mount would be pretty darn wicked! It's also pretty cool that you can browse a growing library of these interactive images not only on the GigaPan site, but also in Google Earth (minimum version 4.2).
Wednesday, November 21, 2007
Free Vectorization Utility
Stanford University's Vector Magic lets you make a vector-based (EPS or SVG) from your image files -- scale away happily after converting...
Labels:
vector
Sunday, November 18, 2007
Saturday, October 27, 2007
More on bash, arrays, and index values
So, if you "man bash", you will see the following:
Copy and paste the following into a file, and then run it using your favorite implementation of bash (Cygwin, OS X, Linux, BSD, etc.) to see how it all works:
ArraysWhat does all that mean? It means that index values don't get reset when you unset array elements, so you shouldn't rely on ${#name[*]} in loops, unless you know that the index values are contiguous. So, if you want to loop based on the number of elements, you had better reset the index values by using something like: name=(`echo ${name[*]}`)
Bash provides one-dimensional array variables. Any variable may be
used as an array; the declare builtin will explicitly declare an array.
There is no maximum limit on the size of an array, nor any requirement
that members be indexed or assigned contiguously. Arrays are indexed
using integers and are zero-based.
...
Any element of an array may be referenced using ${name[subscript]}.
...
${#name[subscript]} expands to the length of ${name[subscript]}. If subscript is * or @,
the expansion is the number of elements in the array.
...
The unset builtin is used to destroy arrays. unset name[subscript]
destroys the array element at index subscript. unset name, where name
is an array, or unset name[subscript], where subscript is * or @,
removes the entire array.
Copy and paste the following into a file, and then run it using your favorite implementation of bash (Cygwin, OS X, Linux, BSD, etc.) to see how it all works:
#!/bin/bashHappy bash-ing...
function show_array {
echo There are ${#NUMBERS[*]} numbers in the array.
echo The index positions and values are:
IDX=0
while [ $IDX -lt ${#NUMBERS[*]} ]; do
echo -e $IDX \\t ${NUMBERS[$IDX]}
let IDX+=1
done
}
function pause () {
read -p "$*"
}
echo Bash Shell Array Element Index Handling
echo ----------------------------------------
NUMBERS=(zero one two three four five six seven eight nine)
show_array
pause "Press Enter "
echo ----
echo Now, let\'s unset number five, and see what happens...
unset NUMBERS[5]
show_array
echo Eek!, looks like there\'s a NULL element in there.
echo So, the number of elements has been reset, but the indexing has not.
echo Indexing is non-contiguous by design, so this isn\'t a bug. However,
echo this means that we do not get to see all of the elements if we are
echo looping based on the number of elements in the array.
pause "Press Enter "
echo ----
echo Let\'s try to unset number 1 this time...
unset NUMBERS[1]
show_array
echo Looks like there\'s another NULL element in there, now.
echo Again, the number of elements has been reset, but the indexing has not...
echo The \${#NUMBERS[*]} does not count NULLs, but index values do not
echo change. The while loop produces apparent garbage after some elements
echo have been unset.
pause "Press Enter "
echo ----
echo Enter the cheesy work-around:
echo "It looks like this: NUMBERS=(\`echo \${NUMBERS[*]}\`)"
echo This kills the NULL values and resets the indexing so it is
echo contiguous again...
NUMBERS=(`echo ${NUMBERS[*]}`)
show_array
Labels:
scripting
Friday, October 26, 2007
GPG Extension for Firefox!
FireGPG is a Firefox browser extension that can handle crypto tasks. I'm going to have to try to integrate this with my "Portable Apps" install of Firefox so that I can use crypto on Gmail and Hotmail from anywhere... Looking forward to trying it out this evening!
Update: Seems to work just fine -- both for encrypting and decrypting. I had to over-ride the default keychain location for GPG and the default GPG location for the extension... Will need to try from a different machine to be completely sure, but I think I've nailed it!
Update: Seems to work just fine -- both for encrypting and decrypting. I had to over-ride the default keychain location for GPG and the default GPG location for the extension... Will need to try from a different machine to be completely sure, but I think I've nailed it!
Labels:
cryptography,
GPG,
security
Saturday, October 20, 2007
Rejected Ubuntu Release Names
As I pointed out previously, Ubuntu Releases have all been alliterative animal phrases. While the initial two releases were "Warty Warthog," and "Hoary Hedgehog," the adjectives in these phrases have become somewhat more flattering since, featuring: Breezy, Dapper, Edgy, Feisty, and (currently) Gutsy. With this trend in mind, it is fun to imagine some of the submissions that may have been received and rejected by the Ubuntu team. I submit the following alphabetically-aligned alliterative adjective/animal amalgamations that are unlikely to ever be associated with any project or product:
|
|
Friday, October 19, 2007
Virtual Gutsy
Updated my Ubuntu 7.04 (Feisty Fawn) virtual machine to 7.10 (Gutsy Gibbon) -- nice and smooth via the network install. Since it's in a VM, I don't see the fancy 3D interface elements. C'est la vie...
In other Ubuntu news, the next version has already been given a name (Hardy Heron). I would like to be the first to propose the following properly alliterative animals for future versions:
That ought to last a couple of years...
In other Ubuntu news, the next version has already been given a name (Hardy Heron). I would like to be the first to propose the following properly alliterative animals for future versions:
That ought to last a couple of years...
Labels:
Ubuntu,
virutalization,
VMWare
Wednesday, October 17, 2007
Monday, October 15, 2007
Array Variables in bash
In my efforts to improve my NTFS-3G mount/re-mount script, I had to learn how to implement an array variable. Turns out it's painfully simple, and now I feel that I should go back and eradicate the evil temporary files that I used in some of my earlier quickly-generated scripts. But, I digress... Here are some quick basics that proved useful:
- Array variables can be implicitly declared, e.g. PETS=(dog cat bird fish) builds a four-element array.
- To show the whole array, use ${PETS[*]}
- To show the number of elements in the array, use ${#PETS[*]}
- Element index starts at zero so ${PETS[1]} will return cat
#!/bin/bash
# build an array of partitions (OS X), populated only with disk#s# for each partition
TEST=(`diskutil list | egrep disk.s. | awk '{print $NF}'`)
PARTS=0
# Build a menu that shows each partition in the array
# but start numbering at 1 instead of 0
while [ $PARTS -lt ${#TEST[*]} ]; do
let COUNT=PARTS+1
echo "$COUNT".\) ${TEST[$PARTS]}
let PARTS+=1
done
# Prompt for / grab user input, and see if it matches something on the menu
echo -n Please select a partition from the menu above:
read TRYIT
case $TRYIT in
[1-${#TEST[*]}])
# NOTE: [1-3]is an expression that matches 1, 2, or 3...
echo You typed a valid number: $TRYIT;;
*)
echo You typed a bad number: $TRYIT;
exit 100; # set a non-zero exit code
esac
Labels:
scripting
Sunday, October 14, 2007
Photo Map Updates
Added a few gallery links to my (Google) photo map:
- Glacier National Park (Placemark @ Logan Pass)
- Saint Louis (Placemark @ The Gateway Arch)
- West Virginia (Placemark @ The New River Gorge Bridge)
NTFS-3G Mount/Re-Mount Script for OS X
Requirements:
Features:
[Oct. 15] Version 1.1:
Features:
- Optional Command-Line Parameters:
- Partition to mount or re-mount (must be specified as the first parameter)
- Use the force option at mount (can be specified as either first or 2nd parameter)
- If no parameters are entered, script enters "interactive mode," and prompts user with a menu of confirmed NTFS partitions
- Handle volumes that are currently using the (read-only) kernel NTFS driver
- Prompt to unmount, custom exit level if user-aborted
- Capture name that is assigned in Finder
- Remount as read/write using the same Finder name
- Handle volumes that are not currently mounted
- Mount and assign a default Finder name: NTFS-disk#s#
- Input Sanitizing
- Volumes can be entered as "/dev/disk#s#" or (preferably) as "disk#s#"
- Script throws custom exit level if volume does not exist
- Script throws custom exit level if mount command fails due to non-NTFS volume
- Script throws custom exit level if it encounters NTFS-3G errors during mount
- (Possible Future Enhancements)
- Add a -? or --help option to the script for über-completeness
- Silent output -- rely only on the exit codes (Why? -- I can always redirect to /dev/null if I want to call it from within another script)
- Something I haven't thought of yet...
- bzip2 compressed version of the script (now includes updates through 1.4).
[Oct. 15] Version 1.1:
- Implemented volume-unique mount points, so more than one disk can be mounted
- Implemented menu (via array variable) for volume selection -- type a number instead of having to type disk#s#
- Implemented actual type detection using File System field from "diskutil info disk#s#"
- Previous method used reasonable speculation based on type field from "diskutil list"
- Learned that array index values can be non-contiguous, and are not changed when array elements are unset. (This led to a later post.)
- Added current mount point information to menu (yep, another array)
- Added header bar to menu
- Added Quit option to menu
- Implemented the file system type detection for volumes that are input from the command line.
- Previously, this was only implemented for volumes on the menu in "interactive mode."
- Added an exit level for "Not an NTFS Volume."
Thursday, October 11, 2007
Stop Apostrophe Abuse!
Another blog dedicated to improper punctuation in all of "it's" forms. Guess there are a lot of folks out there who need to read Eats, Shoots, and Leaves
Labels:
Punctuation