Monday, December 07, 2015

Morocco Adventure - Day 5

[Written 11/28/2015]

Day 5 of our Morocco Adventure was spent experiencing the Marrakesh Medina in all it's twisty-and-turny glory. It's not supposed to be a question of whether you'll get lost traversing the narrow alleys of the souks, but how often and how severely. For my part I handed the map to Shira and stood back as she navigated. Needless to say, we didn't get lost once. Shira: 1, Marrakesh: 0.

The souks really are pretty endless here, with always one more set of stores around the corner. Along with shopping we hit a number of guide book recommended sites, which didn't disappoint. There was a medrasa, much like the one we saw in Sale, but about 10 times bigger. Outside of the Medina, we hit the Jardin Majorelle, which includes a remarkable cactus garden, not something you'd immediately associate with a relaxing garden. But it totally works.

The garden also offered a museum, which I insisted we visit (it's our first of the trip, thank you very much). The topic was on Berber culture; Berbers being the indiginous people of Morroco (versus the Arabs, who arrived later). Here's the part that blew my mind: there were Berber Jews, and the museum had a pretty healthy exhibit on the topic. On one hand, this shouldn't be surprising; there are American Jews, and French Jews, etc., so why not Berber Jews? On the other hand, I just didn't see that coming. Alas, the whole movement is effectivly wiped out (as is most of Morrocan Jewry). But man, that would have been a sight to see: Jews that dressed and spoke Arabic just like their neighbors, but of course, were Jewish.

After the museum, it was back into the souks for more oggling and shopping.

There's a sort of arms race between the government and the con-artists that work the tourists in the souk. Over the years the government has worked hard to make the souks a friendly place for tourists. The latest effort involves a large number of undercover "tourist police." The idea is that the shabbily dressed man loitering on the corner is actually a police office, ready to jump in and save a tourist. The con-artists, for their part, have figured out more ingenoius ways to rope in toursts, all while not getting caught.

We were warned about this extensively by our hotel and knew to expect it. So when someone came up to us a few blocks from the museum and started chatting, we weren't surprised how the conversation went. First he told us that he worked in the gardens and saw us there. What did we think of them? Then after a bit of chummy back and forth, he asked us if we wanted to see a one day only Berber market (I could hear our hotel advisor: "I can promise you, there's no one day berber market going on today, or any day). It didn't take any more than a couple of no thank yous to have him move on.

The upshot to all this is two fold: first, I really do believe you're safe in the souks, and good for the Morrocan police for for making this possible. Second, it really is unfortunate that the only pople who stop and chat with you are out to con you. We spoke to a few more people throughout the day, and sooner or later, they all got around to asking if they could lead us off to some market or site. That's such a shame. In most other countries, the casual interaction with people can be a true delight. In Japan, one group of ladies stopped to ask how we liked the country. Shira and I eagerly waited for a catch, but no, it never came. They just wanted to chat. The shopkeepers for their part aren't nearly as sleazy. They're shopkeepers, and experts at being on the right side of the bargain. But we had a number of positive experiences with them, whether we bought or not.

View Photos

Morocco Adventure - Day 4

[Written 11/27/2015]

Day 4 of our Morocco Adventure was spent traveling from Rabat to Marrakesch. Of course I insisted that we stop at El Jadida along the way, which only added 2 or 3 hours(!) to this otherwise 3 hour trip. El Jadida turned out to be a worthy place to stop, as its Medina was straight out of a picture book. Of course we arrived at around 2pm, when one of the main sites of the city is closed (it would re-open at 3pm), but that's just my luck.

What made the stop in El Jadida so costly in terms of time is that we switched from an Autoroute to an older surface road. That means we went from a modern toll road to one shared by donkeys, motor-cycle powered mini-trucks and mopeds. As a passenger, it made for entertaining scenery, as a driver, not so much.

Speaking of scenery, much of our trip was spent passing either flat farms, or flat brown scrubby areas. It wasn't until we started to near Marrakesh that we started to see mountains in the far distance. There were occasional trees, but most of the landscape was dominated by cactus, which almost appeared to be cultivated to form boundaries along the landscape.

By now you're tired of hearing about how crazy Morrocan drivers are. But I've got to say, the traffic in Marrakesch makes Rabat look absolutely tame. As we made our way to our Riad (hotel) in the Madina, traffic got exponentially more insane. By the time we rounded the last traffic circle, every available space on the road was clogged with either a car, horse, donkey, moped, scooter or pedestrian. Any void was immediately filled with one of these. As one resource noted, the stop lights and pedestrian crossings here are merely for decoration. It was truly something else. Luckily, we parked the car at the hotel and won't touch it for another few days.

After a long and harrowing car ride, stepping into Riad Dar Anika was like stepping into an alternate universe. We started the evening with milk, tea, pastries and dates. We then checked out our room, which was covered in rose petals. And finally, we had dinner, which consisted of 5 very yummy courses. It was the perfect end to a long day.

View Photos

Sunday, December 06, 2015

Morocco Adventure - Day 3

[Written 11/26/2015]

Next time you're driving down the street, take a moment to note that at nearly every intersection there's a street sign, and on nearly every building there's a number. These, believe it or not, are luxuries. Luxuries you won't frequently find in Rabat, Morocco. We know this especially well because we drove to nearby Sale, located just North of Rabat today, and finding our destination required us to combine our GPS, a local area map, a hand-drawn map by the hotel and a good bit of luck.

But find it we did! And Shira's definitely getting the hang of this driving thing. Just treat every road like a free for all, and you're good to go.

Sale was definitely worth whatever effort it took to get there. Thanks to an ad hoc Moroccan guide, we got an exhaustive tour of the old city. This included the Medrasa we were looking for (which had truly breathtaking architecture involving beautiful carved walls) as well as a tour of the fortress and prison which our guide book didn't even mention. Fun times!

We got lunch at the market, which involved somes sort of sandwich stuffed with veggies while we convinced the chef to forgo the meat. As a bonus, we got a big 'ol glass of mystery juice, which Shira is quite certain was beet juice. Moroccan borscht, yum!

As usual we found a bakery and went to town. We picked up 6 different pastries, which came to a total of about $1.60. Market food is just so cheap here. Like the olives we picked up yesterday: we got a sampler pack of 6 different varieties that came to a total of about $0.90. Oh and we picked up a persimmon that was at least two times the largest persimmon I've ever seen, and it tasted delish!

After the tour of Sale, we searched out a collection of pottery stores. And sure enough, we managed to stumble on them. Like most shopping experiences in Rabat, it was incredibly low key. Folks were glad to answer questions, but nobody pushed us to buy anything. We chatted up one 20 something clerk who talked about how proud he was of the security and safety of Morocco. He also said that most folks his age have a simple dream: make it to Miami to party for a week. After that, he explained, he'll be able to die happy. It was hilarious.

This is our last day in Rabat. Tomorrow we make our way to Marrakech, which has a reputation for being pricier and more of a tourst trap. Hopefully Rabat has prepared us well.

Had our oddest Thanksgiving meal yet, a tuna panini, omelet, Moroccan salad and french fries. All for $7.50!

View Photos

Morocco Adventure - Day 1 & 2

[Written 11/25/2015]

Greetings from Rabat, Morocco! We landed yesterday afternoon in Casablanca, and immediately made our way to Rabat. Our flights were uneventful. We had a 5 hour(!) layover in Paris and were surprised to see no additional security presence in the airport. It felt like just a normal Tuesday morning in any international hub.

Our drive to Rabat was also fairly uneventful. Through a glitch in the GPS we started the trip on the N1 versus the more ideal A3. And what's the difference between the N1 and A3? A3 is highway, while N1 is colorful surface road. While the traffic moved fairly quickly on the N1, you've got distractions like folks herding sheep or pedestrians walking across the road, which slows everything down. Still, by some minor miracle we traversed the city at night and found our hotel.

We totally cheated and ordered room service for dinner. Yet, thanks to the exchange rate our extravagant meal was all of $15.00. Try that at your next luxury hotel and tell me how that works out for you.

Today was spent walking throughout Rabat and taking in its main sights. We started by touring the ruins at Chellah, an ancient city which is right next to Rabat. The only people we saw were guards and folks working on the grounds. Other than that, the site was all ours. Unlike some historic ruins, at Chellah you can get up close and personal to the whole thing. You can effectively walk among the ruins that you're admiring, rather than just observe them from a safe distance.

If the remains of the city weren't enough, there's a stork population that now calls the site home, and they're equally interesting to observe. Who knew storks were so loud? They make a sort of clapping noise that is delightfully eerie. Definitely an awesome site.

We hit the other main attractions in the city, including the Medina, Kasabah and the Hassan Tower (which is ensconced in scaffolding, which was a shame). Oh, and of course the museum at the Kasabah was closed, that's so typical for me. Shira got off the hook with that one.

We're finding the city to be safe and welcoming. Being a pedestrian requires a certain level of boldness, as cars will yield to you in an intersection, but only after you've stepped in and started walking. I rely on a technique I first started using in Italy of simply standing with a local and crossing when they cross. I figure they must know what the heck they are doing.

Another quirk of the city: like Ecuador, this appears to be a BYOTP bathroom situation. That is, Bring Your Own Toilet Paper. At Chellah, they had a couple of ladies who would provide a roll of toilet paper for a nominal fee, but in other locations, it's expected you'll have your own. Not terribly difficult to deal with, but good to know before you have to go.

I have to say, I'm loving the architecture of Rabat. It's all towers and castle walls and such. My inner toddler just thinks the buildings are so cool.

It's time to go find some dinner. Between Shira's high school French, and my hand gestures, how hard could that be?

View Photos

Friday, December 04, 2015

Review: I Am Legend

WARNING: Spoilers Below. The very short review: this is a great book that's absolutely worth reading. Now go, read it (or listen to it, as I did) then come back and give me your comments.

Saying I Am Legend by Richard Matheson is good book is like saying Hamlet is a good play. Duh. If the book itself weren't good enough, it apparently launched a new genre of horror fiction, and many of the modern zombie and horror classics can be traced back to it. Here's a few parts of the book that struck me as impressive:

1. The scientification of Vampires. This key theme of the book, that Vampire behavior isn't just supernatural but can be explained using "science" definitely helped make it a page turner. How can the author explain the fear or garlic or dislike of crosses in physiological terms? It gets more impressive when you consider this was one of the first books to do this, even though the practice is now common (if not expected).

2. Some questions get answer, some don't. As mentioned, the book tries to explain why vampires behave the way they do. It also touches on bigger questions like why should the last man on Earth keep living? This question never fully gets answered, which to me seems totally appropriate. Finding that balance of what to provide closure on, and what to leave open, is just so key.

3. It's all about the loneliness. One of the main themes of the book is how one deals with the immense loneliness of being the last man on Earth. This part of the book gets awfully messy, which is sort of the point. I kept wanting to tell the main character to pull it together and make a plan, but that's easy for me to say. The book reminded me of the recent reality show Alone. It's a reality show, so take this with a grain of salt. But the original thought was that the show would be about outdoor skills and which contestant can best execute them. Instead, it turned into a cry fest as the primary challenge became dealing with the massive loneliness that the underlying scenario brought about. Hence the name Alone. The 30 56 days or so folks spent in the woods alone maps surprisingly neatly to the years the main character endures.

4. The book ages surprisingly well. The book is set in the 1970's and reads as quite plausible for the time period. There's talk about air conditioners and germ theory and other concepts that seem appropriately modern. I would have believed you if you told me the book was written in the 70's or last year. In fact, it was published in 1954. I find that remarkable, and wonder how the author managed to give just enough tech references to keep the book relevant, but not step into any traps. The fact that this is one individual living alone does explain why older tech like record players and movie projectors make sense over more modern items like stereos and TVs. Without a society to send out content on radio waves, there would be nothing to receive. Still, it's well done. And of course it shows that the themes of survival and loneliness are universal. It all reminded me of 1984, another novel that ages just as gracefully.

5. What a well played ending. Yes, I managed to figure out the plot twist before the last few pages. But still, so well done. I love a book that messes with your perspective on the world so entirely.

If you still haven't read the book, go do so.

Wednesday, December 02, 2015

Morocco Adventure: Tech Recap

According to the in-flight map, we've got a mere 1 hour and 12 minutes before we touch down in DC and officially end our Moroccan Adventure. In this home stretch, it makes sense to take a few minutes and think about what worked (and didn't) this trip. One decision that worked was to leave the laptop at home and travel with just my Galaxy Note 5 and a few accessories. Here's how we did it:

Photo Backup - For years now, my standard approach has been to use a Micro SD card (plus adapter) in my DSLR. In the past, I could pop this card directly into my cell phone to access photos. The Note 5 doesn't have a Micro SD slot, but for a few dollars I was able to pick up the tiny Leef Access Micro SD adapter on Amazon. I plug the adapter into my phone, and then insert the SD card, and voila!, my cell phone can access the DSLR photos. And here's where I got clever: every night I'd copy the DSLR photos to my cell phone, and my cell phone photos over to my DSLR card. That way, I had a backup of both types of photos, one on an SD card and on on my phone. I also made sure Google Photo Backup was running, and nightly all the photos from my phone (which included both DSLR and cell phone) were pushed to Google over the hotel's WiFi.

I experimented with using FolderSync to push files to Google Drive. That works well enough, but pushing the full size images over our first hotel's WiFi was just a non-starter. Instead, Google's Backup did the job just fine (I'm currently backing up high quality not original photos, which are smaller in size).

Photo Review - Every couple of nights we'd open up gallery app FStop, and browse through the photos we'd shot. One especially nice feature of FStop is the ability to tag photos. As we browsed through the hundreds of photos we took, we'd tag a handful of them as blog and they'd get used in blog preview posts described below.

Blogging - Previously, when we traveled I'd use my laptop mainly as a way to write up blog Posts. While the Note 5 offers this capability, it's not the ideal platform to edit and finalize photos (the screen is big, but not *that* big). So this trip I compromised. Nightly, I'd write up my notes about the day in spiral notepad. And then every few days I'd bust out my Bluetooth Keyboard and compose the text for a post. I like to write up travel posts as close to the event as possible, as it's easy to forget details. For now, I've saved up those posts as .html files and will post them once we've fully edited our photos.

Still, I can't resist posting *something* while on vacation, so every few days we put up a Preview Post. I used FStop's tagging feature to pick a number of photos to post, and then shared those photos with the Bloggeroid app.

Work - I usually carry a laptop to help out if any server or software issues come up. Luckily, this trip, none did (at least nothing that a few e-mails wouldn't help with). But had something come up, I've got ssh and a Bluetooth keyboard that's saved the day enough times I'm confident in it as a solution.

Staying Found - The winner this trip for helping us not get lost was the GPS Plus Test App (specifically the paid version). This oddly named app allows you to drop a waypoint and quickly see your relation to it. We'd drop waypoints as we traversed the various souks and never had to worry about getting too lost.

I'm editing this post from my home, and here's a screenshot of where GPS Test Plus puts the exit to the Marrakesh souk:

Capturing Audio - Depending on where I'm at, I often like to try to capture quick audio snippets. I've yet to find a use for these, but I have this hope one day that I'll put them together into a presentable form. In the past I'd used soundcloud.com, as it makes it very easy to record and publish your audio recordings. But I'd exceeded my paid subscription and couldn't justify paying even more per month for what accounts to a file storage service. So I installed Titanium Recorder, which seems to do an adequate job for capturing audio. I'll then store these files on Google Drive for posterity. I installed Lame in GNUroot, so converting the .wav files to .mp3 while on the go is possible. Though I never did get around to trying this in the field.

Here's a sample of an audio snippet I captured while in the souk during a call to prayer:

Staying Connected - Here's a Moroccan specific tip: purchasing a SIM Card is cheap and relatively easy. The tricky part is that only an official cell phone store (like an Inwi or Moroc Telecom) can issue you a SIM card. Like all phone transactions (yes, I'm looking at you T-mobile stores), it seems to take absolutely forever to complete the transaction (OK, like 20 minutes). But for around $3.00, your cell phone becomes functional in the country. I also purchased a data plan, which at the time it didn't occur to me to push back on. The clerk setup me up with a $10, 12 Gig plan, but that was way overkill. I should have been able to get a gig or two for a few dollars. Cell phone service is actually quite impressive in Morocco. As we climbed up and down the barren passes in the mountains, our guide made cell phone calls to coordinate both our lunch and pickup. We're lucky if we have T-mobile service 45 minutes of out town, so to 4G service in the sticks is impressive. When it was all said and done, the $13 investment gave me Google Maps, the ability to check and respond to e-mail on long car drives and a cell phone number. Definitely worth it.

Staying Entertained - I used the usual apps to stay entertained on the plane. This includes Overdrive to listen to books and Gnuroot + emacs + reddit to do a bit of coding. Nothing new or exciting here.

It's really not surprising that we were able to go the week without a laptop. Our main goal was to enjoy being on vacation, and all you need for that is the urge to explore and a healthy sense of humor.

Tuesday, December 01, 2015

Morocco Adventure - Day 8 (Preview)

Our vacation is winding down! Today we headed to Casablanca, and tomorrow we board a plane back home. Here's a few photos from the day, many more coming soon.







Monday, November 30, 2015

Morocco Adventure - Day 6 & 7 (Preview)

Here's a few more photos from our adventures in Morocco. They include snapshots from a day hiking and one visiting a port town. Lots of stories to come, stay tuned.










Saturday, November 28, 2015

Morocco Adventure - Day 4 & 5 (Preview)

We're still having a blast in Morocco! We've made it from Rabat to Marrakesh, and survived the day walking the maze-like Marrakesh Souk (Shira didn't get lost once!). Here's yet another preview of our adventure.









Wednesday, November 25, 2015

Morocco Adventure: Day 1 & Day 2 (Preview)

Greetings from Rabat, Morocco! We're having an awesome time. Stay tuned for a full blog post and photo set. In the mean time, here's a preview of what's to come.




Monday, November 23, 2015

Flaming Festivities!

Shira knows I'm no big fan of Hibachi. But who can resist celebrating a birthday in style? Happy 11th dude, we're so proud of you!

Reading Racket Documentation on Android, No Internet Needed

I've got emacs and racket running nicely on my Android phone (thanks to the awesome Gnuroot). But that left me with a new wrinkle: what's the best way to access Racket Documentation while programming on my phone? Obviously, I can open up a browser to doc.racket-lang.org but what if I'm a context where I don't have access to the Net?

By default, apt-get appears to install racket documentation in /usr/share/doc/racket, which means that my phone had the documentation, I just needed a way of viewing it.

Method 1: w3m. A quick and easy way to view the documentation is to run apt-get install w3m, and install w3m. w3m is an extremely handy tool as it lets you view html files from the command line. For example:

Method 2: launch a local web server. While w3m is a fast and functional solution, I wanted to be able to view the documentation in a standard browser, too. I figured I could accomplish this if I kicked off a local webserver. I could then point my regular Android browser to this server and I'd be all set. While I'm sure I could have installed apache or another full featured server, I found an easier and lighter weight solution: wbox. wbox is a testing tool that happens to offer the capability of being a stand alone, zero configuration, web server. Installing wbox is as easy as running apt-get install wbox. And here it is in action:

(Note the URL is: http://localhost:8081)

wbox worked perfectly, and I should be able to leverage this same approach to hosting any local documentation.

Combine this local web browser approach with Android Multi Window, and you've got a remarkably functional environment.

I'm one step closer to a full self contained, no-Internet-needed, development environment.

Friday, November 20, 2015

First Impressions: Software Defined Radio - Cheap and Remarkably Powerful

For some time, I've been meaning to add a radio to my Jr. Go Bag. I figure it would be helpful for entertainment purposes and emergencies. There are a number of low cost, compact, high quality'ish FM/AM options out there, but none of them were every low-cost, compact or high quality enough for me to pull the trigger on them.

On a whim one day, I Googled for Android USB Radio and discovered the world of Software Defined Radio. Sounds expensive and complex, right? Actually, it's just the opposite. For less than $10, you can buy a USB stick which works with SDR Touch, an Android app that uses the stick to pull in radio signals.

I did some more research and finally splurged on this little dongle, here: Mini DVB-T RTL-SDR Realtek RTL2832U + R820T Tuner Receiver. Last night it arrived and this morning I plugged it into my phone and fired up SDR Touch. It took a few minutes to get orientied, but check it out:

That's my phone listening to two different frequencies: the first being a local Rock station, the second being air traffic control at National Airport. And here's a shot of the radio dongle itself:

My original goals of cheap and compact have been met*. It's hard to say about the quality compared to other radios, but there capability definitely exceeds expectations. Being able to pull in seemingly random signals (like the the Air Traffic Control) is just too cool. And SDR Touch offers some impressive features, including the ability to record incoming audio.

I've still got a lot to learn about Software Defined Radio. But I've got to say, it's not often you stumble on technology that's so inexpensive and yet so very powerful.

* OK, mostly met. I still need to optimize the antenna, which is a bit bulkier than I'd like.

Thursday, November 19, 2015

Thermaroid: Android + a Thermal Printer = Super Cheap, Super Low Quality Photos on the Fly

Thermaroid lives! Today I finished smooshing together my Camera API progress with my past success printing to a Bluetooth Thermal Printer. The result is a drop dead simple app. The app starts up with absolutely no UI, it's just a live camera preview. Short press on the screen and the camera focuses. Long press the image is captured and sent to the Bluetooth printer. Here's an action shot:

(Yes, that's a screenshot of me using Thermaroid to take a picture of a picture that I just printed out with Thermaroid. Got that?)

The app needs quite a bit of polishing before it's ready for prime time, including: some indication that your photo is being printed and proper code for backgrouding the printing process. But functionality wise, it works.

I think I'm finally getting the hang of using Kawa Scheme to build apps. Apparently I needed to let go of this notion that I could somehow write Java code using Scheme's terse conventions. Kawa lets you do this a bit, but at the end of the day, things seem to work better (or compile with fewer complaints) when you annotate your code with types. I'm definitely interested in seeing if I can do some refactoring to eek out a bit more elegance than purely translating Java to Scheme. We'll see.

Check out the code here. And happy photo'ing!