<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Mostly Ramblings</title>
	<atom:link href="http://jonmccune.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://jonmccune.wordpress.com</link>
	<description>Mostly by Jon McCune</description>
	<pubDate>Sun, 20 Jul 2008 16:10:33 +0000</pubDate>
	<generator>http://wordpress.org/?v=MU</generator>
	<language>en</language>
			<item>
		<title>Honeymoon in Greece</title>
		<link>http://jonmccune.wordpress.com/2008/07/07/honeymoon-in-greece/</link>
		<comments>http://jonmccune.wordpress.com/2008/07/07/honeymoon-in-greece/#comments</comments>
		<pubDate>Mon, 07 Jul 2008 11:18:07 +0000</pubDate>
		<dc:creator>jonmccune</dc:creator>
		
		<category><![CDATA[Family]]></category>

		<guid isPermaLink="false">http://jonmccune.wordpress.com/?p=297</guid>
		<description><![CDATA[Hello world,
Kathleen and I leave today for Greece.  We fly in and out of Athens, but we&#8217;re also visiting Mykonos, Santorini, and Crete.  Given that it&#8217;s our honeymoon, we make no promises that this page will receive any updates before we return.  However, your best chance of keeping up-to-speed is to look [...]]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Hello world,</p>
<p>Kathleen and I leave today for Greece.  We fly in and out of Athens, but we&#8217;re also visiting Mykonos, Santorini, and Crete.  Given that it&#8217;s our honeymoon, we make no promises that this page will receive any updates before we return.  However, your best chance of keeping up-to-speed is to look here.</p>
<p>-Jon &amp; Kathleen</p>
<p><a href="http://mccune.ece.cmu.edu/gallery2/v/ourwedding/honeymoon/">Photos!</a></p>
<p>Monday July 7</p>
<p>Kathleen and I arrived at PIT courtesy of Scott, and brought Alexa who<br />
also needed a ride to the airport.  First attempt at begging for a<br />
complimentary upgrade was denied, though we did get adjacent exit-row<br />
seats directly behind a bulkhead, providing ample space for the long<br />
flight to Athens.  Kathleen and I managed to write and mail 16<br />
thank-you cards before our flight began boarding.  Depart PIT at<br />
10:49am for a layover in PHL.  Several attempts at procuring a<br />
complementary upgrade while in PHL were denied. Wrote 18 more<br />
thank-yous and mailed them. We also bought a magazine full of logic<br />
puzzles, word searches, etc. for use on the long flight.</p>
<p>Total air time to Greece was approximately 9 hours.  Kathleen got a<br />
little bit of sleep, and I got a little bit less. They fed us dinner<br />
and provided drink service several times.  With less than 2 hours to<br />
go, we smelled breakfast cooking, but they never served it. Across the<br />
isle was a Greek man and his son, who provided some useful advice<br />
including a suggestion for where to eat dinner.  We landed, got<br />
through customs quickly without being asked anything at all, and then<br />
ran into a gentleman holding a sign with our names on it.  He directed<br />
us to the appropriate baggage claim, carried our bags to a waiting car<br />
(many taxis are Mercedes, and ours was no exception), and then we<br />
drove about 30 minutes to the Delphi Art Hotel in Athens, where we are<br />
to spend our first 2 nights in Greece.</p>
<p>Tuesday July 8</p>
<p>Really, it became Tuesday some time while we were in the air. One<br />
notable omission was a night&#8217;s worth of sleep.</p>
<p>The hotel has very nice rooms, complete with a small balcony looking<br />
out over a plaza. Despite arriving around 10am, our room was ready for<br />
us. We put down our bags and set out on foot to see the National<br />
Archaeological Museum.  They had some amazing metalworking displays<br />
(complete with lots of gold and stabbing weapons), pottery (including<br />
a display of cups reminiscent of Indiana Jones&#8217; need to &#8220;choose<br />
wisely&#8221;), and sculpture (bronze and stone). At this point we agreed<br />
life could not continue without a nap, and retired to the hotel.<br />
After a solid six hours of sleep, we woke up and decided to set out<br />
for St. George&#8217;s Church on top of Lykavittos (actually the highest<br />
point inside of Athens at 909 feet).  We took a cable car up the<br />
steepest part in the interest of sweating less, and had dinner at the<br />
Orizontes Restaurant on top. This provided us with amazing views, a<br />
nice breeze, good food, and two kittens to watch scramble on the<br />
hillside. </p>
<p>We refused several taxi rides and walked back to the hotel.  Tomorrow<br />
morning we have an organized tour that is part of our travel package.</p>
<p>Wednesday July 9</p>
<p>Though our schedule said 20 minutes before 8:30, a woman from the<br />
hotel showed up while we were eating breakfast and told us our bus was<br />
here.  It turns out there was a small bus to take us to the big bus.<br />
Though we didn&#8217;t eat as much breakfast as we would have liked, we made<br />
it.  The big bus had stops at the Olympic Stadium of the 1894 Olympics<br />
(the first modern Olympics, and the finish line for the 2004 Olympic<br />
marathon), and the Temple of Olympian Zeus.  We also drove by<br />
Parliament and the Tomb of the Unknown Solider.  The bus then let us<br />
off at the Acropolis (containing the Temple of Nike, the Parthenon,<br />
the Erechtheion, and other constructions including the Propylaea,<br />
which was the only way on and off of the Acropolis.  From the<br />
Acropolis we could see the Temple of Olympian Zeus and Lykavittos<br />
containing St. George&#8217;s Church where we were the previous night.  It<br />
was easy to understand the layout of the city.  On the way up to the<br />
Acropolis we passed the Odeon of Herodes Atticus.  On the way down we<br />
climbed the hill called Pnyx, then walked through the Agora, where we<br />
saw up close the Stoa of Attalus and the Temple of Hephaestus.  This<br />
temple had the most intact roof of any that we have seen.</p>
<p>We then walked down into the Plaka district of Athens, which is a<br />
street market of sorts.  We first had lunch in the shade, having<br />
consumed nearly 8 liters of water between the two of us during the<br />
tour.  We had a Greek lunch consisting of a Greek Salad for Two and a<br />
Spinach Pie.  We were also served bread with oil and vinegar.  We then<br />
walked through many of the shops, some of which appeared to<br />
exclsuively deal in items originating in California, and others<br />
containing some very impressive Greek artwork.  We bought ourselves<br />
some new decorations.  After this it was a quick walk back to our<br />
hotel (still the Delphi Art Hotel) for a 3 hour nap.  </p>
<p>Upon waking we showered and caught a taxi to our dinner reservation at<br />
Mamacas.  After repeating warnings about cabbies trying to scam<br />
tourists, we put on our game faces and the whole ride was less then 4<br />
euros.  We arrived an hour early since our close call this morning<br />
made us afraid of being late.  The restaurant wasn&#8217;t even open yet, so<br />
we walked to a nearby cafe and relaxed in some very comfy chairs in<br />
the shade and drank some water and iced coffee.  Very tasty.</p>
<p>After an hour we went back to Mamacas and started looking over the<br />
menu.  When the server came by we told them about our reservation and<br />
the food just started coming.  We had water, wine, salad, two<br />
hummus-like dishes and some pitas to eat them with, a zucchini dish,<br />
and some kind of salty pork with french fries.  These dishes came out<br />
slowly, but when the pork and zucchini arrived we believed it was the<br />
main course. After eating this we were stuffed, but the waiter asked<br />
if we were interested in the specials.  Instead, we said we were ready<br />
for dessert.  I ordered something chocolate and Kathleen ordered lemon<br />
sorbet; both were excellent.  After starting in on our second 1.5<br />
liter bottle of water, the server showed up yet again, this time with<br />
a plate of fruit and some dessert wine.  We decided we had a little<br />
more room and enjoyed this as well.  There were some very cute dogs<br />
looking for handouts, but we stayed tough.</p>
<p>We caught a cab back to the hotel and opted to shower before bed.<br />
Tomorrow we get up, pack up, and fly to Mykonos.  Hopefully we&#8217;ll be<br />
on the beach by 3pm local time.</p>
<p>Thursday July 10</p>
<p>Woke up, packed, and ate breakfast at the hotel.  Checked out of the<br />
room and sat in the plaza outside writing post cards.  The same driver<br />
in the same Mercedes taxi wearing the same pink shirt showed up right<br />
on schedule to take us to the airport.  The check-in line proceeded at<br />
Greek speed, but we had plenty of time so there were no issues.  There<br />
was a minor rush at the airport when the time came to board our plane,<br />
since they had our gate double-booked for busses to take us to the<br />
plane.  It was a typical prop plane with 2 seats on each side of the<br />
aisle. The flight was uneventful although the landing was impressive,<br />
as there was some major wind blowing on Mykonos.  Our bags made it,<br />
and there was a shuttle waiting to take us to the Petassos Beach<br />
Hotel.  Checked in without issue, and hit the beach.  The ocean is the<br />
bluest water I&#8217;ve ever seen, though Kathleen claims Aruba is similar.</p>
<p>The beach we went to was fairly packed with umbrellas and chaise<br />
lounges.  An enterprising fellow helped us find two open ones.  We<br />
soon realized he was so friendly because there was a fee, but it<br />
counted towards the nearby restaurant, where we ended up eating lunch.<br />
The water was a little on the chilly side but the sun was a little on<br />
the hot side!  There were many yachts anchored nearby, and several<br />
sizeable sailboats.  After our fill of beach, we went back to the room<br />
for an outside shower (we have both a normal bathroom and a private<br />
outdoor shower!) and a nap. Upon waking, we went to the hotel pool.<br />
Eventually, we had dinner at the beautiful and delicious hotel<br />
restaurant, before retiring for the night.</p>
<p>Friday July 11</p>
<p>Woke up and had a delicious breakfast at the hotel restaurant by the<br />
pool.  Got some prime chairs by the pool looking out over the bay and<br />
worked on our books and suntans for numerous hours. I took a break to<br />
buy water, goggles, a ball, and ice cream for both of us.  We had<br />
lunch at the restaurant across the street, and then returned to the<br />
poolside until I finished my book.  Then, we went to the beach and<br />
swam and played for a while.  Time again for an outside shower. Time<br />
for more reading by the pool until the jacuzzi was free.  At this<br />
point, the sun dipped behind the mountain, so we returned to the room<br />
for a nap before having dinner at the restaurant across the street,<br />
complete with live music.  All in all, a successful day.</p>
<p>Saturday July 12</p>
<p>Woke up and ate breakfast overlooking the water in Mykonos, the same<br />
as yesterday.  Packed up and took our bags to the front desk, and<br />
checked out of the room.  Spent the next several hours by the pool<br />
reading and getting a sun tan.  At 1:45 our shuttle was due to take us<br />
to the port on Mykonos.  We had tickets for the Flying Cat 4 to take<br />
us to Santorini.  Two shuttles arrived and there was some confusion<br />
and language barrier, and we ended up just having to trust that our<br />
bags from the front desk made it onboard.  The shuttles departed and<br />
we arrived at the port shortly thereafter.  There were several huge<br />
ships docked already, at least one a ferry.  The wind was blowing hard<br />
and a lot of sand was in the air.  We then got word that the Flying<br />
Cat 4 was delayed by an hour as a result of the high wind.  We did see<br />
a bit of a spectacle however, as a mob of passengers and even a car<br />
swarmed the docks _after_ the ferry departed.  Apparently they thought<br />
it was canceled, but it wasn&#8217;t.  The crew actually lowered the loading<br />
ramp with the ship untied, stabilized only by its own engines, and let<br />
the stragglers on.  Lawsuits galore in the US, I would say.</p>
<p>An hour later, the Flying Cat 4 did in fact arrive, and we queued up<br />
to get onboard.  It turns out our tickets were for first class, so we<br />
climbed to the second level and had a lot more space.  The baggage<br />
situation was a huge disorganized pile, but we got over it.  The main<br />
obstacles were the rough seas, which caused even this large boat to<br />
rock noticeably, and Kathleen&#8217;s seasickness.  She says it was<br />
&#8220;touch-and-go&#8221; for a while, especially since we made two stops before<br />
reaching Santorini, but we made it without incident.</p>
<p>There was an enormous cruise ship loading when we docked at Santorini,<br />
and people were running everywhere. Kathleen and I followed the mob<br />
that left our ship and managed to spot a fellow holding a &#8220;McGune&#8221;<br />
sign.  That was close enough!  He loaded our bags and we wound our way<br />
up a ridiculous set of switchbacks with inadequate guard rails, sheer<br />
cliffs, and a driver bent on passing the other shuttle busses.  But we<br />
made it to our hotel, the Aressana.</p>
<p>The Aressana Hotel is very nice and is located along the caldera on<br />
Santorini.  The caldera is a bunch of cliffs and is the former lip of<br />
the volcano that formed Santorini.  The island is only a fragment of<br />
its former self, after half of it sank and blew up in the largest<br />
volcanic eruption in the history of civilization, in the 2nd century<br />
BC.</p>
<p>Tomorrow we plan to visit some museums, and sail to the more active<br />
volcanic island next door and see if we can melt our shoes.  We&#8217;re<br />
also going to swim in some hot springs!</p>
<p>Sunday July 13</p>
<p>Woke up and had breakfast at the hotel.  It was inside but down by the<br />
pool.  Quite beautiful and tasty.  The wait staff brought us water,<br />
which was a nice change.  Next on the agenda were both of Santorini&#8217;s<br />
museums.  The one to do with the oldest civilization was definitely<br />
better, as it included descriptions to give each exhibit some context.<br />
The more recent museum struck us as yet another collection of old<br />
pottery, without any descriptions to clarify things.</p>
<p>Next on the agenda was a quick lunch on the edge of the caldera.  We<br />
then walked the several hundred stairs down to the water, passing many<br />
donkeys.  Kathleen and I had a disagreement about some ice cream, but<br />
we&#8217;re over it.  At 3:30 our ship, the Thalassa, set sail to tour the<br />
volcano on Nea Kameni, swim in some hot springs (complete with diving<br />
from the side of the ship), sail by some other nearby islands, and<br />
then anchor for a wonderful perspective on the sunset.  We did all of<br />
these things and more.  The crew prepared us some food shortly before<br />
sunset, and one of them was a talented saxophone player. We chatted<br />
with some interesting characters from London, Moscow, and Hollywood.<br />
All in all, I would say this boat ride was the highlight of our trip<br />
so far.</p>
<p>Monday July 14</p>
<p>Slept in a bit then got up around 10:15 and had breakfast at the<br />
hotel.  Packed a bag to spend an entire day at the beach.  Caught a<br />
city bus to Perissa Beach.  Passed a lot of Santorini vineyards on the<br />
way.  Laid out our towels on the coarse dark grey sand and noted the<br />
brilliance of bringing flip-flops, as the dark sand gets hot!  Read<br />
our books, worked on our tans, and did some swimming in the ocean.<br />
This beach actually had some waves, and the shallow water had a solid<br />
rock bottom.  No body surfing here!  The surf eroded some very unusual<br />
patterns in the rock, and algae made it slick.  Walking out through<br />
the waves was very exciting!  The water was on the chilly side, so we<br />
kept our swims just long enough to ward off the sun.</p>
<p>Got back to the hotel by way of the bus, showered, and went out to<br />
dinner.  Watched the sunset from a restaurant on the edge of the<br />
caldera.  The waiter talked me into ordering the kebabs, and swore<br />
he&#8217;d remember us for the rest of his life because of the speed with<br />
which our food was ready.  I suspect, though Kathleen gives them more<br />
credit, that the kebab was already made for a departed customer.  The<br />
food was good though, and we enjoyed ourselves before heading back to<br />
the hotel for the night.</p>
<p>Tuesday July 15</p>
<p>Our last day on Santorini.  We woke up and had breakfast at the hotel,<br />
and then packed our room and checked out, leaving our bags with the<br />
front desk.  We were wearing our swim clothes with a change of clothes<br />
prepared.  We executed the standard read-swim-read for a few hours,<br />
until we decided to wander out for lunch.  After lunch, we decided<br />
that we&#8217;d rather just get showered and stay out of the sun (i.e., not<br />
get sweaty) until it was time to go to the port for another ride on<br />
the Flying Cat 4.  This went much more smoothly than our departure<br />
from Mykonos, as the seas were calm, there was a cafe at the port<br />
where we could wait in the shade, and even the queues were air<br />
conditioned.  They also had staff handling baggage, which had been<br />
quite a fiasco en route to Santorini from Mykonos.  Heraklion is the<br />
name of the town on the island of Crete where we will dock.  I believe<br />
our next hotel, Porto Del Colombo, is in the same town.  We will soon<br />
see, as I am writing this while onboard the Flying Cat 4.</p>
<p>As it turns out, I was _wrong_.  Our hotel is in Chania, and it was a<br />
2 hour drive away from Heraklion.  We arrived exhausted and hungry, so<br />
we checked in, got some dinner nearby, and went to bed.</p>
<p>Wednesday July 16</p>
<p>Got up and ate breakfast at the hotel.  Decided to set out on foot an<br />
explore the area.  Our hotel is near one end of a large harbor, with a<br />
lighthouse that is near our hotel as the crow flies, but at the<br />
farthest possible distance via land.  We walked around to the<br />
lighthouse, then stopped on our way back at the earliest opportunity<br />
for some much needed refreshments, i.e., water and Coca Cola &#8220;Light.&#8221;<br />
We stopped in one of the much celebrated historic ship-building houses<br />
that had been converted into a museum.  In 2004 some researchers<br />
reconstructed what they believed were the boats used in ancient times,<br />
and spent a month rowing it several hundred miles.  This was the<br />
primary focus of the museum, and was quite interesting and impressive.</p>
<p>Some more walking and then a visit to the Maritime Museum of Crete,<br />
which was a much larger and more traditional museum.  It was primarily<br />
centered on naval history, including the Battle of Crete in 1941.</p>
<p>More walking lead to the discovery of the nearest beach, where we plan<br />
to spend the bulk of tomorrow.  By this point I was wanting lunch, and<br />
Kathleen agreed, and we stopped and ordered pizza.  It was<br />
exceptionally good pizza.  It was about 4:30 in the afternoon as we<br />
were walking back towards our hotel, and we realized that most of the<br />
shops along the way were closed all afternoon.  We tried to enter one<br />
but were told it was closed until 6pm.</p>
<p>The whole country is napping, why not us too?  Back to the hotel for a<br />
late afternoon nap.  We then woke up and enjoyed a &#8220;Grill for Two&#8221;<br />
dinner special, which included chicken, beef, lamb, pork, french<br />
fries, Tzatziki, watermellon, and ouza.  Tasty tasty.</p>
<p>Finally, we bought a DVD from an enterprising street vendor and<br />
retired to our room to watch it.</p>
<p>Tomorrow we plan to beach it all day, and Friday we plan to hike<br />
Samaria Gorge, which is 11 miles through Europe&#8217;s longest gorge.  It&#8217;s<br />
an all-day affair and should be quite awesome.</p>
<p>Thursday July 17</p>
<p>Got up after sleeping in a bit, breakfast at the hotel, and set out on<br />
foot for the nearest beach.  We rented some chairs and commenced<br />
reading our books.  Again the water was a little chilly so its sole<br />
purpose was for when we became overheated, which was around four<br />
times.  We had two snacks from a big loaf of bread we had purchased<br />
the night before, then got hungrier and Jon went and bought a pizza<br />
and some water to go from the same pizza place as before.  Went back<br />
to the hotel for showers and some more reading, then decided it was<br />
time to go out for ice cream.  Ended up wandering away from the<br />
harbour a little bit and discovered plenty of shops.  Got a little<br />
hungry again and ate a club sandwich, french fries, and a spinach<br />
pie.  Our hike was early the next morning, so we turned in early.</p>
<p>Friday July 18</p>
<p>Got up at 6:15 to get ready to hike Samaria Gorge.  Packed some food<br />
and water into our bag, along with our bathing suits and a towel, and<br />
went downstairs to get picked up.  Some other guests from our hotel<br />
were also waiting there, but due to some logistical error we couldn&#8217;t<br />
comprehend they ended up not coming.  In the end there were three<br />
newly wed couples from the US on the trip, two from New York (a young<br />
couple of both teachers in West Chester, Libby and Jeff, and an older<br />
couple of people &#8220;who work in finance&#8221; from Manhattan, Stacey and<br />
Jeff.  Their wedding dates were July 3 and 12.  After a rather intense<br />
drive up to the trailhead, again in a Mercedes bus, Likos, our guide,<br />
directed us into a taverna for cup of coffee and any more supplies we<br />
might need.  We turned down his offer of walking poles and a helmet.</p>
<p>The trail started out steeper and got less steep.  The sides of the<br />
gorge started out far apart and got very close together.  There are<br />
lots of pictures to explain this part.</p>
<p>When we finished, we hiked out into a very small town, reachable only<br />
by boat.  We immediately had some ice cream, put on our swim suits,<br />
and went to the beach.  This was the best swimming beach of the trip<br />
by far.  The water was the perfect temperature and clear, the beach<br />
had dark pebbly sand, and it dropped off quickly once entering the<br />
water.  Kathleen and I swam with Jeff and Libby for over an hour.  We<br />
returned to the restaurant where Likos and all of our stuff was, and<br />
changed and ordered some french fries and a greek salad.  Very tasty<br />
and devoured completely.  Then, it was time to catch our ferry.  We<br />
took the ferry to the nearest town, allowing us to see some amazingly<br />
beautiful water.  Also of note is that the mountains we hiked on are<br />
still growing, about a quarter of an inch per year.  Once the ferry<br />
docked (about 50 minutes later) we got back in the Mercedes bus for<br />
some more white knuckled driving.  We made it back intact, and plan to<br />
have dinner with Jeff and Libby.</p>
<p>We had dinner at a restaurant tucked away between many buildings.<br />
There were a number of very acrobatic cats leaping in and out of the<br />
shrubberies and walking across pipes high above the street.  Jeff and<br />
I drank Mythos, a Greek beer, which I enjoyed.  Kathleen and I think<br />
it would make a good dog name.  </p>
<p>After dinner we walked around the harbor and encountered some pretty<br />
amazing break dancers.  We were all tired from the hike, however, and<br />
called it a night.</p>
<p>Saturday July 19</p>
<p>We decided to spend our last full day in Crete on the beach.  We went<br />
back to the same beach as a few days ago.  It was even hotter, so the<br />
water temperature proved to be ideal.  We visited our favorite pizza<br />
venue again, and put some serious dents into our respective books.<br />
Kathleen objected to some of the small fish that swam in the ocean and<br />
seemed to be trying to nibble at our legs.</p>
<p>After the beach we got showered and set out to get dinner.  We chose a<br />
nice restaurant with some candlesticks covered in what looked to us<br />
like many years worth of melted wax.  Unfortunately, their electrical<br />
systems was also using technology of many years ago, and the waiter<br />
informed us well after we placed our order that they are unable to<br />
cook it.  We changed our order to salads, since we were tired and<br />
wanted to eat and get to bed.</p>
<p>Sunday July 20</p>
<p>We were expecting to be picked up from our hotel (Porto Del Colombo)<br />
at 10am. We got up, showered, ate breakfast, and went to the lobby to<br />
wait.  It turned out they sent a mini-bus for us which couldn&#8217;t get<br />
all the way to the hotel, so we wheeled out to the bus and drove 2<br />
hours to the Heraklion Airport.  We checked in and got through<br />
security uneventfully, and arrived at our very crowded gate.  Smoking<br />
was allowed here in the airport, which was somewhat unpleasant, but<br />
soon enough we boarded and flew to Athens.  Got our bags, a car was<br />
waiting holding a &#8220;Cune Dingus&#8221; sign, which was close enough. It<br />
dropped us off at the Delphi Art Hotel in Athens, where we will remain<br />
until 8:30 tomorrow morning when it becomes time to fly home to the<br />
US.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/jonmccune.wordpress.com/297/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/jonmccune.wordpress.com/297/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jonmccune.wordpress.com/297/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jonmccune.wordpress.com/297/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jonmccune.wordpress.com/297/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jonmccune.wordpress.com/297/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jonmccune.wordpress.com/297/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jonmccune.wordpress.com/297/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jonmccune.wordpress.com/297/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jonmccune.wordpress.com/297/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jonmccune.wordpress.com/297/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jonmccune.wordpress.com/297/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jonmccune.wordpress.com&blog=3050255&post=297&subd=jonmccune&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://jonmccune.wordpress.com/2008/07/07/honeymoon-in-greece/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Nokia Mobilecodes</title>
		<link>http://jonmccune.wordpress.com/2008/06/30/nokia-mobilecodes/</link>
		<comments>http://jonmccune.wordpress.com/2008/06/30/nokia-mobilecodes/#comments</comments>
		<pubDate>Mon, 30 Jun 2008 11:35:14 +0000</pubDate>
		<dc:creator>jonmccune</dc:creator>
		
		<category><![CDATA[Computers]]></category>

		<guid isPermaLink="false">http://jonmccune.wordpress.com/?p=295</guid>
		<description><![CDATA[Here is their site.  Google doesn&#8217;t seem to think they&#8217;re relevant when looking for &#8220;symbian 2d barcode, &#8221; etc.
       ]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><a href="http://mobilecodes.nokia.com/">Here</a> is their site.  Google doesn&#8217;t seem to think they&#8217;re relevant when looking for &#8220;symbian 2d barcode, &#8221; etc.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/jonmccune.wordpress.com/295/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/jonmccune.wordpress.com/295/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jonmccune.wordpress.com/295/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jonmccune.wordpress.com/295/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jonmccune.wordpress.com/295/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jonmccune.wordpress.com/295/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jonmccune.wordpress.com/295/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jonmccune.wordpress.com/295/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jonmccune.wordpress.com/295/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jonmccune.wordpress.com/295/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jonmccune.wordpress.com/295/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jonmccune.wordpress.com/295/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jonmccune.wordpress.com&blog=3050255&post=295&subd=jonmccune&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://jonmccune.wordpress.com/2008/06/30/nokia-mobilecodes/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Creating new projects in Carbide</title>
		<link>http://jonmccune.wordpress.com/2008/06/28/creating-new-projects-in-carbide/</link>
		<comments>http://jonmccune.wordpress.com/2008/06/28/creating-new-projects-in-carbide/#comments</comments>
		<pubDate>Sat, 28 Jun 2008 12:20:06 +0000</pubDate>
		<dc:creator>jonmccune</dc:creator>
		
		<category><![CDATA[Computers]]></category>

		<guid isPermaLink="false">http://jonmccune.wordpress.com/?p=293</guid>
		<description><![CDATA[Creating a new project in Carbide C++ v1.3 entails a journey through several dialog boxes, one of which  requests the name for the new project and a directory in which to put it. Carbide&#8217;s default location has a tendency to generate an error to the tune of &#8220;C:\Symbian\Carbide\Workspace is not a valid location&#8221;, even [...]]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Creating a new project in Carbide C++ v1.3 entails a journey through several dialog boxes, one of which  requests the name for the new project and a directory in which to put it. Carbide&#8217;s default location has a tendency to generate an error to the tune of &#8220;C:\Symbian\Carbide\Workspace is not a valid location&#8221;, even though the greyed-out default location shows, e.g., &#8220;C:\Symbian\Carbide\Workspace\MyNewProj&#8221;. I work around this by unchecking the &#8220;use default location&#8221; box and creating MyNewProj manually.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/jonmccune.wordpress.com/293/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/jonmccune.wordpress.com/293/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jonmccune.wordpress.com/293/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jonmccune.wordpress.com/293/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jonmccune.wordpress.com/293/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jonmccune.wordpress.com/293/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jonmccune.wordpress.com/293/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jonmccune.wordpress.com/293/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jonmccune.wordpress.com/293/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jonmccune.wordpress.com/293/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jonmccune.wordpress.com/293/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jonmccune.wordpress.com/293/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jonmccune.wordpress.com&blog=3050255&post=293&subd=jonmccune&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://jonmccune.wordpress.com/2008/06/28/creating-new-projects-in-carbide/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Microsoft Product Keys</title>
		<link>http://jonmccune.wordpress.com/2008/06/24/microsoft-product-keys/</link>
		<comments>http://jonmccune.wordpress.com/2008/06/24/microsoft-product-keys/#comments</comments>
		<pubDate>Tue, 24 Jun 2008 15:17:00 +0000</pubDate>
		<dc:creator>jonmccune</dc:creator>
		
		<category><![CDATA[Computers]]></category>

		<guid isPermaLink="false">http://jonmccune.wordpress.com/?p=289</guid>
		<description><![CDATA[Sometimes a Windows machine needs to be reinstalled.  Theoretically, it shouldn&#8217;t be necessary, but sometimes that&#8217;s what&#8217;s gotta happen.  And sometimes it can be hard to find all of the product key sleeves from the original installation media.  Enter Magical Jelly Bean Keyfinder.  Sounds ridiculous. Works.
      [...]]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Sometimes a Windows machine needs to be reinstalled.  Theoretically, it shouldn&#8217;t be necessary, but sometimes that&#8217;s what&#8217;s gotta happen.  And sometimes it can be hard to find all of the product key sleeves from the original installation media.  Enter <a href="http://magicaljellybean.com/keyfinder/">Magical Jelly Bean Keyfinder</a>.  Sounds ridiculous. Works.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/jonmccune.wordpress.com/289/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/jonmccune.wordpress.com/289/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jonmccune.wordpress.com/289/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jonmccune.wordpress.com/289/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jonmccune.wordpress.com/289/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jonmccune.wordpress.com/289/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jonmccune.wordpress.com/289/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jonmccune.wordpress.com/289/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jonmccune.wordpress.com/289/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jonmccune.wordpress.com/289/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jonmccune.wordpress.com/289/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jonmccune.wordpress.com/289/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jonmccune.wordpress.com&blog=3050255&post=289&subd=jonmccune&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://jonmccune.wordpress.com/2008/06/24/microsoft-product-keys/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Concatenating PDFs</title>
		<link>http://jonmccune.wordpress.com/2008/06/22/concatenating-pdfs/</link>
		<comments>http://jonmccune.wordpress.com/2008/06/22/concatenating-pdfs/#comments</comments>
		<pubDate>Sun, 22 Jun 2008 22:21:09 +0000</pubDate>
		<dc:creator>jonmccune</dc:creator>
		
		<category><![CDATA[Computers]]></category>

		<guid isPermaLink="false">http://jonmccune.wordpress.com/?p=286</guid>
		<description><![CDATA[Sounds easy, right? Ha!
This was the best page I found about it.  It turns out there&#8217;s a pdftk that did the trick for me:

aptitude install pdftk
pdftk input1.pdf input2.pdf cat output input1and2.pdf

       ]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Sounds easy, right? Ha!</p>
<p><a href="http://ansuz.sooke.bc.ca/software/pdf-append.php">This</a> was the best page I found about it.  It turns out there&#8217;s a pdftk that did the trick for me:</p>
<p><code><br />
aptitude install pdftk<br />
pdftk input1.pdf input2.pdf cat output input1and2.pdf<br />
</code></p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/jonmccune.wordpress.com/286/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/jonmccune.wordpress.com/286/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jonmccune.wordpress.com/286/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jonmccune.wordpress.com/286/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jonmccune.wordpress.com/286/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jonmccune.wordpress.com/286/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jonmccune.wordpress.com/286/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jonmccune.wordpress.com/286/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jonmccune.wordpress.com/286/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jonmccune.wordpress.com/286/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jonmccune.wordpress.com/286/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jonmccune.wordpress.com/286/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jonmccune.wordpress.com&blog=3050255&post=286&subd=jonmccune&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://jonmccune.wordpress.com/2008/06/22/concatenating-pdfs/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Drink Calculator</title>
		<link>http://jonmccune.wordpress.com/2008/06/21/drink-calculator/</link>
		<comments>http://jonmccune.wordpress.com/2008/06/21/drink-calculator/#comments</comments>
		<pubDate>Sat, 21 Jun 2008 16:17:01 +0000</pubDate>
		<dc:creator>jonmccune</dc:creator>
		
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://jonmccune.wordpress.com/?p=285</guid>
		<description><![CDATA[Planning a big event like a wedding or graduation party?  Not sure how much alcohol to get for your guests.  Evite has a handy drink calculator that at least gives an excuse if it turns out to be wrong.
       ]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Planning a big event like a wedding or graduation party?  Not sure how much alcohol to get for your guests.  Evite has a handy <a href="http://www.evite.com/pages/party/drink-calculator.jsp">drink calculator</a> that at least gives an excuse if it turns out to be wrong.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/jonmccune.wordpress.com/285/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/jonmccune.wordpress.com/285/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jonmccune.wordpress.com/285/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jonmccune.wordpress.com/285/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jonmccune.wordpress.com/285/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jonmccune.wordpress.com/285/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jonmccune.wordpress.com/285/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jonmccune.wordpress.com/285/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jonmccune.wordpress.com/285/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jonmccune.wordpress.com/285/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jonmccune.wordpress.com/285/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jonmccune.wordpress.com/285/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jonmccune.wordpress.com&blog=3050255&post=285&subd=jonmccune&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://jonmccune.wordpress.com/2008/06/21/drink-calculator/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Symbian: RSocket::Recv and HBufC8</title>
		<link>http://jonmccune.wordpress.com/2008/06/17/symbian-rsocketrecv-and-hbufc8/</link>
		<comments>http://jonmccune.wordpress.com/2008/06/17/symbian-rsocketrecv-and-hbufc8/#comments</comments>
		<pubDate>Wed, 18 Jun 2008 03:32:06 +0000</pubDate>
		<dc:creator>jonmccune</dc:creator>
		
		<category><![CDATA[Computers]]></category>

		<guid isPermaLink="false">http://jonmccune.wordpress.com/?p=282</guid>
		<description><![CDATA[A common way to do stream-based network communication in Symbian OS is with the RSocket class.  The RSocket::Recv(TDes8 &#38;aDesc, &#8230;) method &#8220;only completes when the full amount of requested data has been received (or the connection breaks). This means when the descriptor has been filled to its maximum length (not its current length).&#8221; 
This [...]]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>A common way to do stream-based network communication in Symbian OS is with the RSocket class.  The <a href="http://www.symbian.com/developer/techlib/v9.1docs/doc_source/reference/reference-cpp/N10206/RSocketClass.html#%3a%3aRSocket%3a%3aRecv%28%29">RSocket::Recv(TDes8 &amp;aDesc, &#8230;) method</a> &#8220;only completes when the full amount of requested data has been received (or the connection breaks). This means when the descriptor has been filled to its maximum length (not its current length).&#8221; </p>
<p>This is handy if an application receives messages of unknown length, but those messages include a header that includes the length.  E.g., always receive 4 bytes of header which encode the amount of payload data.  What <em>seems</em> like a sensible thing to do is dynamically allocate a buffer descriptor to hold exactly the expected payload size.  This seems nice because then the OS worries about reassembling fragmented or long messages.</p>
<p>Unfortunately, note that the heap descriptor of choice, HBufC8, when allocated with <a href="http://www.symbian.com/developer/techlib/v9.1docs/doc_source/reference/reference-cpp/N101CA/HBufC8Class.html#%3a%3aHBufC8%3a%3aNewL%28%29">HBufC8::NewL(TInt aMaxLength)</a>, may not be the expected size: &#8220;Note that the resulting heap cell size and, therefore, the resulting maximum length of the descriptor may be larger than requested.&#8221; This is a problem, because it causes RSocket::Recv() to hang waiting for more data than the remote end has sent.</p>
<p>I&#8217;m aware of three work-arounds, and zero elegant solutions:</p>
<ul>
<li><a href="http://www.symbian.com/developer/techlib/v9.1docs/doc_source/reference/reference-cpp/N10206/RSocketClass.html#%3a%3aRSocket%3a%3aRecvOneOrMore%28%29">RSocket::RecvOneOrMore</a> and manage buffers ourselves (more work: yuck).</li>
<li>Allocate a C-style array and don&#8217;t use Symbian descriptors.  <a href="http://www.codeproject.com/KB/mobile/Rsocketread.aspx">This page</a> talks about that solution.</li>
<li>Cast the const pointer available for an HBufC8 and create a Tptr8 manually, assigning its max size to be precisely the message size.  <a href="http://www.newlc.com/forum/two-interesting-and-difficult-problems-descriptors">This page</a> talks about that solution.
</ul>
<p>Currently I&#8217;m using the cast-away-the-const solution. Note that the HBufC8&#8217;s length will not be modified, so it must be set manually:</p>
<p><code>HBufC8 *iBuffer;<br />
TPtr8 iBufferPtr;<br />
&#8230;<br />
iBufferPtr.SetLength(payloadSize); // without this iBuffer&#8217;s length remains 0<br />
iBufferPtr.Set((TUint8*)iBuffer-&gt;Des().Ptr(), 0, payloadSize);</code></p>
<p>My understanding is that SetLength() sets the current length of iBuffer.  Set() sets the current length and maxlength of the TPtr8 object. Thus, RSocket sees the current length of 0 and max length of payloadSize, and behaves as expected.  Code processing the iBuffer in some class&#8217;s RunL() will see the length that was set with SetLength(), but since RSocket is no longer operating with a mistaken notion of the desired amount of data to read, RunL() will only be called when the right amount of data has arrived.</p>
<p>It&#8217;s too late and I&#8217;m too tired to make this more concise.  Forgive me.</p>
<p>UPDATE: It seems that an <a href="http://www.symbian.com/developer/techlib/v9.1docs/doc_source/reference/reference-cpp/N101CA/RBuf8Class.html#%3a%3aRBuf8">RBuf8</a> will solve this problem elegantly, but I haven&#8217;t had time to try it yet.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/jonmccune.wordpress.com/282/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/jonmccune.wordpress.com/282/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jonmccune.wordpress.com/282/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jonmccune.wordpress.com/282/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jonmccune.wordpress.com/282/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jonmccune.wordpress.com/282/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jonmccune.wordpress.com/282/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jonmccune.wordpress.com/282/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jonmccune.wordpress.com/282/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jonmccune.wordpress.com/282/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jonmccune.wordpress.com/282/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jonmccune.wordpress.com/282/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jonmccune.wordpress.com&blog=3050255&post=282&subd=jonmccune&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://jonmccune.wordpress.com/2008/06/17/symbian-rsocketrecv-and-hbufc8/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Parallels Reverse Transporter (Virtual to Physical)</title>
		<link>http://jonmccune.wordpress.com/2008/06/13/parallels-reverse-transporter-virtual-to-physical/</link>
		<comments>http://jonmccune.wordpress.com/2008/06/13/parallels-reverse-transporter-virtual-to-physical/#comments</comments>
		<pubDate>Sat, 14 Jun 2008 03:38:36 +0000</pubDate>
		<dc:creator>jonmccune</dc:creator>
		
		<category><![CDATA[Computers]]></category>

		<guid isPermaLink="false">http://jonmccune.wordpress.com/?p=280</guid>
		<description><![CDATA[Parallels for Max OS X allows me to run Windows XP in a virtual machine.  Boot Camp allows native installation of Windows XP on Intel Macs. Parallels Transporter enables a Boot Camp-based native installation of Windows XP to run in a virtual machine while OS X is running, while simultaneously allowing the system to [...]]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><a href="http://www.parallels.com/">Parallels</a> for Max OS X allows me to run Windows XP in a virtual machine.  <a href="http://www.apple.com/macosx/features/bootcamp.html">Boot Camp</a> allows native installation of Windows XP on Intel Macs. Parallels <a href="http://www.parallels.com/en/products/desktop/features/transporter/">Transporter</a> enables a Boot Camp-based native installation of Windows XP to run in a virtual machine while OS X is running, while simultaneously allowing the system to reboot and run Windows XP natively for extra graphics, performance, etc.  Unfortunately, it&#8217;s designed assuming the native install of Windows XP was there first.  In my case, I have a Windows XP virtual machine, and I would like the option to also boot it natively using Boot Camp.  My best Google skills turned up this <a href="http://forums.parallels.com/showthread.php?t=6433&amp;highlight=move+parallels+boot+camp">Virtual to Physical (Boot Camp) Guide</a>, which is sufficiently involved that I haven&#8217;t tried it yet, but I will.  Regardless, this virtual-to-physical transition is clearly something people want, and it&#8217;s only a matter of time. <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /></p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/jonmccune.wordpress.com/280/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/jonmccune.wordpress.com/280/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jonmccune.wordpress.com/280/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jonmccune.wordpress.com/280/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jonmccune.wordpress.com/280/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jonmccune.wordpress.com/280/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jonmccune.wordpress.com/280/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jonmccune.wordpress.com/280/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jonmccune.wordpress.com/280/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jonmccune.wordpress.com/280/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jonmccune.wordpress.com/280/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jonmccune.wordpress.com/280/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jonmccune.wordpress.com&blog=3050255&post=280&subd=jonmccune&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://jonmccune.wordpress.com/2008/06/13/parallels-reverse-transporter-virtual-to-physical/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Symbian OS V9.1+ C++ Cryptography APIs available!</title>
		<link>http://jonmccune.wordpress.com/2008/06/05/symbian-os-v91-c-cryptography-apis-available/</link>
		<comments>http://jonmccune.wordpress.com/2008/06/05/symbian-os-v91-c-cryptography-apis-available/#comments</comments>
		<pubDate>Thu, 05 Jun 2008 14:58:15 +0000</pubDate>
		<dc:creator>jonmccune</dc:creator>
		
		<category><![CDATA[Computers]]></category>

		<guid isPermaLink="false">http://jonmccune.wordpress.com/?p=278</guid>
		<description><![CDATA[I have been waiting forever for this!  
My first objective was to generate an RSA keypair, generate some random data, generate a signature over that data, and then verify that the signature is correct.  This worked, although there is some fine print in the descriptions of classes CRSAPKCS1v15Signer and CRSAPKCS1v15Verifier:
CRSAPKCS1v15Signer: This class creates [...]]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>I have been waiting forever for <a href="http://developer.symbian.com/forum/ann.jspa?annID=14">this</a>!  </p>
<p>My first objective was to generate an RSA keypair, generate some random data, generate a signature over that data, and then verify that the signature is correct.  This worked, although there is some fine print in the descriptions of classes CRSAPKCS1v15Signer and CRSAPKCS1v15Verifier:</p>
<p><strong>CRSAPKCS1v15Signer</strong>: This class creates RSA signatures following the RSA PKCS#1 v1.5 standard (with the one caveat noted below) and using PKCS#1 v1.5 signature padding. The only exception is that the SignL() function simply performs a &#8216;raw&#8217; PKCS#1 v1.5 sign operation on whatever it is given. It does not hash or in any way manipulate the input data before signing. </p>
<p><strong>CRSAPKCS1v15Verifier</strong>: This class verifies RSA signatures given a message and its supposed signature. It follows the RSA PKCS#1 v1.5 with PKCS#1 v1.5 padding specification with the following exception: the VerifyL() function does not hash or in any way manipulate the input data before checking. </p>
<p>Uh oh&#8230; complexity.  The signature I generated and verified is not fully compliant with the relevant specifications.  In particular, the widely used <a href="http://www.rsa.com/rsalabs/node.asp?id=2125">PKCS1</a> v1.5 padding isn&#8217;t implemented fully.  Thus, when I went to verify a signature produced by an outside application, the verification failed. I couldn&#8217;t find any documentation that expressed precisely what was omitted from the Symbian implementation, so I had to do some detective work. </p>
<p>The signed data I am using is the output of a TPM_Quote operation performed by a Broadcom v1.2 TPM.  Thus, I will restrict my discussion regarding the Symbian CRSAPKCS1v15* classes to verifying signatures. CRSAPKCS1v15Verifier::VerifyL is the function that refused to return ETrue.  There is also CRSAPKCS1v15Verifier::InverseSignLC(), which returns the output of the RSA decrypt operation.  Sounds good, since I&#8217;m trying to dissect the padding manipulation.  The inverse signature for my test data was consistently (leading zeros are stripped):<br />
3021300906052b0e03021a05000414d4bfa90ce1f23417b7d046911d6c35c6881f8282</p>
<p>It turns out the SHA-1 hash of my test data is d4bfa90ce1f23417b7d046911d6c35c6881f8282, leaving a strange header of 3021300906052b0e03021a05000414. I then turned to the trusty <a href="http://xyssl.org/code/source/rsa/">XySSL</a> source code to look for what operations are performed between the RSA decrypt and the actual return of whether a verification was successful.  The function of interest is rsa_pkcs1_verify().  When I ran my test data through that function, and dumped the data just the RSA decrypt, it looked like this: 0001ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff003021300906052b0e03021a05000414d4bfa90ce1f23417b7d046911d6c35c6881f8282. This is actually padded out to the appropriate width for the RSA key, but the interesting bytes at the end match the data the Symbian function was returning.  The strange header is defined in the XySSL rsa.h:<br />
<code>#define ASN1_HASH_SHA1                      \<br />
    &#8220;\x30\x21\x30\x09\x06\x05\x2B\x0E\x03&#8243;  \<br />
    &#8220;\x02\x1A\x05\x00\x04\x14&#8243;</code></p>
<p>The Symbian Crypto APIs do include a CPaddingPKCS1Signature class, but after some testing its purpose appears to be soley the management of the leading 0xffs on the key-width padded signature.  Thus, it looks like the Symbian CRSAPKCS1v15Verifier class actually makes use of the CPaddingPKCS1Signature internally to strip off the 0xff-based padding.</p>
<p>I haven&#8217;t yet taken the time to dig into the specs and figure out exactly what the purpose of ASN1_HASH_SHA1 is meant to be.  For now, I&#8217;ve included it in my code as a literal and used<br />
CRSAPKCS1v15Verifier::InverseSignLC. I then prepend ASN1_HASH_SHA1 to the output of the SHA-1 hash of the signed data, and compare to the output of InverseSignLC.</p>
<p>FYI, Symbian enables definition of binary literals by escaping octets with \x.  For example:<br />
<code>_LIT8(KASN1_HASH_SHA1, "\x30\x21\x30\x09\x06\x05\x2B\x0E\x03\x02\x1A\x05\x00\x04\x14");</code></p>
<p>Also FYI, use of of the RInteger class can cause memory leaks.  RInteger is unique in that its NewL() method does not return a pointer.  It is important to call the Close() method on an RInteger.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/jonmccune.wordpress.com/278/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/jonmccune.wordpress.com/278/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jonmccune.wordpress.com/278/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jonmccune.wordpress.com/278/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jonmccune.wordpress.com/278/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jonmccune.wordpress.com/278/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jonmccune.wordpress.com/278/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jonmccune.wordpress.com/278/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jonmccune.wordpress.com/278/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jonmccune.wordpress.com/278/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jonmccune.wordpress.com/278/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jonmccune.wordpress.com/278/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jonmccune.wordpress.com&blog=3050255&post=278&subd=jonmccune&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://jonmccune.wordpress.com/2008/06/05/symbian-os-v91-c-cryptography-apis-available/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Symbian Signed Debacle</title>
		<link>http://jonmccune.wordpress.com/2008/06/03/symbian-signed-debacle/</link>
		<comments>http://jonmccune.wordpress.com/2008/06/03/symbian-signed-debacle/#comments</comments>
		<pubDate>Tue, 03 Jun 2008 18:29:28 +0000</pubDate>
		<dc:creator>jonmccune</dc:creator>
		
		<category><![CDATA[Computers]]></category>

		<guid isPermaLink="false">http://jonmccune.wordpress.com/?p=277</guid>
		<description><![CDATA[I was really hoping to implement a simple application that does a little crypto exclusively in Python for my Nokia E51 (Symbian OS v9, Nokia Series 60 (S60) 3rd Edition), but Python for S60 doesn&#8217;t currently expose public key cryptography.  I&#8217;ve decided to fall-back to Symbian C++, but all applications for S60 3rd Edition [...]]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>I was really hoping to implement a simple application that does a little crypto exclusively in Python for my Nokia E51 (Symbian OS v9, Nokia Series 60 (S60) 3rd Edition), but Python for S60 doesn&#8217;t currently expose public key cryptography.  I&#8217;ve decided to fall-back to Symbian C++, but all applications for S60 3rd Edition must be signed.  It turns out they can be signed with a self-signed certificate, if the capabilities they require are minimal.</p>
<p>I used Carbide C++ v1.3 and created a new Symbian C++ Project.  It complained bitterly that the default directory (a child of the active workspace) was not acceptable, and I have no idea why.  I chose my own directory outside that path.</p>
<p>The application built and executed successfully on the emulator.  I then re-built it for the phone, and tried to install the resulting SIS file.  I then received the error message &#8220;<em>Certificate error. Contact the application supplier.</em>&#8220;.  <a href="http://blogs.forum.nokia.com/index.php?op=ViewArticle&amp;blogId=34687&amp;articleId=93">This</a> page explains a lot about error messages, and is quite helpful.  It turns out a signed application comes in a SISX file.  When I tried to install that one it worked as expected.</p>
<p>My fingers are crossed that my development plans won&#8217;t require any capabilities that I&#8217;ll have to pay money to get.  I must say, that&#8217;s an awfully high barrier to development.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/jonmccune.wordpress.com/277/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/jonmccune.wordpress.com/277/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jonmccune.wordpress.com/277/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jonmccune.wordpress.com/277/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jonmccune.wordpress.com/277/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jonmccune.wordpress.com/277/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jonmccune.wordpress.com/277/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jonmccune.wordpress.com/277/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jonmccune.wordpress.com/277/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jonmccune.wordpress.com/277/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jonmccune.wordpress.com/277/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jonmccune.wordpress.com/277/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jonmccune.wordpress.com&blog=3050255&post=277&subd=jonmccune&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://jonmccune.wordpress.com/2008/06/03/symbian-signed-debacle/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>