Archive for the 'how-tos' Category

Yet another roundup of iPhone apps, including Metro Paris and Facebook for iPhone

I’ve always been the “in-between” guy -depending on who I’m talking to, I’m either an expert or an amateur at a particular topic…. the topic is the same, I am the same, what differs is the background and expertise of whoever i’m talking to.  Whether it’s wine, drumming.. or technology.
So the fact that I’ve finally got an iPhone is near-luddite to some friends, and eye-rollingly geeky to others.  The one advantage, however, is I can usually rely on others to have paved some of the way for me.

Which is why I’ve been a bit surprised at how lame some of the iPhone functionality is, giving the massive adoption rate and couple of revisions its gone through.  Yes, Virginia – I’m over the honeymoon phase, and onto the phase where I try to answer my iPhone in my pocket in 3C weather with gloves on, and I miss the call because the only way to answer is to have a bare finger slide across the screen.

I guess I should have known that the battery wouldn’t hold up to several hours worth of Gmapping (useful when wandering around the outskirts of Paris looking for an apartment), but I was pleased to see it will stay alive over night if it’s on 20% of its battery power.

App switching speed is not what is advertised on the slick apple campaigns – but I knew that.  However, it’s really stunning how poorly some apps deal with Edge data transfer rates (app developer’s problem, I know, not Apple’s).  There are several apps – Del.icio.us Bookmakrs for example – tht stall on Edge even though it’s only transferring text!

Music streamers also choke, but that I can understand.  If I’m walking around downtown Paris – bathed in 3G connectivity – my Last.FM will stall every other song.  LiveRadio (Orange’s internet radio app) has a lot of promise, but the load time for the radio station lists is terrible – and it hangs while trying to load, so if you want to answer a phone call during that time, for example, no can do.

Which brings me to my short list of iPhone desires:

  • No copy and paste?…..
  • Streaming radio apps that do not cut off when you switch apps.  Is it that hard to create a background process?  I ask this honestly, not facetiously…..
  • Fast preview loading.  If I want to see a list – of radio stations, bookmarks, whatever – load the text list quickly first.  Once I’ve decided what I want to see, I can wait a little longer to load the full text / image / media.
  • Some sort of password management / keychain.   Wow, wouldn’t it be col if there was an OpenID app for iPhone (haven’t looked yet…)
  • What’s with the volume on the iPod?  My phone calls blow my ears out, but my music – with decent volume on my iPod, sucks on the iPhone….

And so as not to end on a sour note:  As predicted I have become addicted to my iPhone and so here are my essential apps, in case there is anyone stil out there who has yet to get an iPhone or yet to get one of these apps:

  • Facebook for iPhone:  A Facebook junky mostly because my main network is all my friends I left behind in San Francisco, this is a great tool for me.  I saw the ripple effect happen among my friends when they saw my automatic update “Greg installed Facebook for the iPhone”….
  • WritingPad:  A “cursive” way of writing (but don’t think Palm Pilot’s old styls shorthand) that is faster and more reliable.  Works with built-in email, but not other applications.
  • Last.FM / Pandora  / Live Radio:  Three great streaming services – when you have wifi or 3G at your beck and call.  The last is an Orange (France Telecom)-specific app for subscribers only – and to be honest, it’s a bit of a dog.  But it gives you essentiallyt eh same access to online radios around the world that iTunes does – which I have not yet seen on another app (doesn’t mean I’ve done a bunch of searching).
  • Glacon Lite (link opens your iTunes): an addictive and short game.  And for those wondering what the other addictive, colored-ball game is – reMovem Lite.  Also a good one.
  • Metro Paris:  A great iPhone version of the indispensable RATP interactive map.  My biggest complaint is that the iPhone app does not include the full RER lines.
  • Fring:  Initially a Skype (and other chat / VOIP service) gateway, it’s now an all-social-web aggregator/sharing/kitchen sink.  Haven’t tested the latency of Skype voice calls….
  • WordReference (iTunes link): a must for living and working in France
  • NetNewsWire:  Although the only thing really feed is my wife’s blog, and The Daily Blah (no, not that one…)
  • Bookmarks (iTunes link):  An iPhone app for your Del.icio.us booksmarks.  If you’ve got hundreds like I do, you need this to browse them effectively.

Websites with good mobile service:

  • MonRAPT: a simple interface for looking up routes.  A free alternative to the full app described above – designed by my friend Shakaman here at af83.com
  • iBackPack: A CSS hack you have to put into yoru BackPack pages that renders them nicely for the iPhone.

And one to leave on – a new app I discovered putting together this list – Leaflets….. looks good…..

Drupal 5 to 6 (and clearing the cache in Drupal 5)

It’s been almost a year – kay, 10 months – since Drupal 6 came out.  I’m just now spending a bit of time upgrading a personal site, and there are at least 4 core modules for my site that are not available for Dr6.  And my guess is that they will not be available.  So now I have to figure out how to upgrade my functionality:

  • Media handling – mostly locally-hosted audio files
  • Media display – displaying a playable file that is related to the main node (the CCK Node Reference field will only display a link, and node a playable file – in Dr5, at least).

So, as is with many Drupal sites, a simple upgrade is now turning into a re-architecting.  This is hapening all around me with sites we are working on, and sites others are working on.  And we’re halfway (?) to Drupal 7 already.  So the other thing that is happening all around me is that developers are saying if they have a Dr5 site, they will wait until Dr7 to cme out before upgrading.  But now I’m a little worried – I want to add a couple of things to my site, but if I do, I want to make sure they are minimally in good shape for Dr6, so that they will live on in Dr7….

Clearing cache in Drupal 5:  On a side note, while I was cleaning up my personal site, I came across this simple cheat to clear the cache (very helpful if you, for example, change the location of your logo and favicon files, etc).  As mentioned in the notes, I removed the Drupal goto because it was causing an infinite loop.

Apache not starting on MAMP

One of those nights where I wanted to spend an hour working on a site – you know, really quick-like – and I ended up spending 3 (count’em – three…) hours f@cking with my MAMP server.

I’ve got several folders of sites on my local computer, and I switched from one I had been working on recently to another new folder of a site I had just downloaded.  And in my MAMP dashboard, MySQL was working fine, but Apache would not start.

Three hours later and lots of testing, let’s just skip to the answer – the enclosing folder (not the actual html docs folder I was pointing to in the MAMP prefs, but the enclosing folder) had an accented character in the folder name.  Yes, like the accent over the “e” in frusté, for example…  (Or perhaps more to the point, emmerdé)

This may be obvious to the Linux heads, but to a Mac user like myself, it took hours of narrowing down the problem. Add to that the fact that MAMP/Apache would not reset even after you changed the folder it looked at until you actually restarted MAMP (i.e. using the MAMP button to cycle the servers did not help).

Sigh.  Now I’m where I wanted to be… oh, 3 hours ago?

Max allowed packet problem with MAMP

Holy crud – that took a while to figure out.  I was trying to work locally on a project, and kept running into the “max_allowed_packets” error when importing the database (I was using PHPMyAdmin, but this comes up elsewhere too).  I knew that the default was 1M, but I had a hard time figuring out where to change this number.

It took me a while and a lot of attempts at difference solutions to find the answer – presented to me in a forum.  The key is to replicate the original MySQL conf file (which MAMP apparently removes) with a larger max.

Quoted below (from “weotch”) in case the link ever rots, but here is the original:

“Ok, I think I found my answer. I copied
/Applications/MAMP/Library/share/mysql/my-small.cnf to
/Applications/MAMP/db/mysql/my.cnf (notice that I renamed it). Then I
tweaked the settings I needed to in it and restarted MAMP. Golden!”

Drupal’s Feed API

I’m at DrupalCon Boston.  Well, actually, no, I’m at a friend’s house with tea because I came down sick today and couldn’t make it back to the convention center.  And while there are a ton of things I want to report back on (Dries “State of Drupal” speech, Boris Mann’s scoping web projects for Drupal talk, etc etc) I thought I’d point to something smaller and simpler first.

Yesterday my friend in the education world, Bill Fitzgerald of DrupalEd and OpenAcademic, showed me his implementation of Feed API.  If you don’t want the discussion of where it came from, just skip ahead to the next paragraph for the functionality discussion.  I had talked to Bill before about the challenges at schools of using a local server for student portfolio work (with DrupalEd, for example), and having a public-facing school site hosted on an ISP – a setup most schools have right now.  What was the best practice for getting approved student portfolio work published on the main, public-facing schools website?  Using an RSS feed seemed to be a good idea, but I was worried about a) the feed not pulling in the data permanently, just as temporary RSS data, so old posts would fade out as it were on the feed, b)
the elegance of feeding multi-field and multi-media feeds.  (I tried out Leech last year, but the second issue above was a problem for me).

Bill’s implementation of FeedAPI is superb, thanks in part (as he acknowledges) to the Feed API team.  The OpenAcademic feed site pulls in the full text (and images and video – and authors, and tags) of several eduction-related blogs.  Not only that, but it also creates a tag cloud of imported tags too, including author names.  There are several more things going on here – read about how it was implemented here.

Technorati Tags: , , , ,

Drupal User’s Guide – an update

I get a ton of hits on this site, just because I use the keyword Drupal.  (“Drupal.  Drupal!  Drupaldrupaldrupal!”)  One of the most consistently hit blog entries is my (old) Drupal User’s Guide, for Drupal 4.7.  Of course, I had grand ideas of updating it, and today I even began looking at the powerpoint I had developed to begin that process.

And I buckled.  There’s just so much more basic setup info in Drupal 5.  (And we’re already moving on to on Drupal 6!)

But here’s the good news – there’s a Drupal 5 Cookbook (for beginners) on the Drupal website.  It’s much more recent than my user’s guide.  And as sad as I will be to say goodbye to all the hits I got off my User’s Guide post, maybe I’ll make up for them with this post….

(“Yeah, good luck with that….”)

Powered by ScribeFire.

Dupal micro case study: Implementing change in modules

I was digging around for a solution to supporessing the iCal link in the Events block. You know, that little icon that supposdly lets you automatcially add those events to your hCal capable calendar, but has never seemed to work for anyone I know? :-(

I looked online at Drupal.org, and found this interesting thread. What made it so interesting for me was that the thread offered several solutions for fixing this, and in doing so made a case for how to – and how not to – make changes in Drupal:

  • The first suggestion was to edit a couple of lines of the actual module. No! No! NO!….. What happens when you upgrade the module – or worse, the site? You gotta edit your module again! IT’s repeated everywhere on Drupal forums – don’t edit the module when you can override it somewhere else!
  • The second suggestion was to make a modification in the theme. I like that better – themes are independent of module revisions. For all I know, this is perfectly legitimate according to the Drupal Best Practice Gods.
  • However, the last suggestion was perfect for me. A) It’s much simpler than the theme override. B) It only requires editing the style.css file, which requires less expertise.  (I would recommend that over the event.css file, which could get replaced in a module upgrade).

However, I don’t know what are the underlying implications of removing the ical icon on the theme or css level – i.e. is the underlying code less “validatable” in the last example? From my (poor) understanding of how Drupal will produce the code, the page will still be created with the ical code info, but the icon just not displayed – so there’s a (tiny) amount of unecessary work that is being done on the page rendering side, which may be improved with the theme modification in the 2nd example…..

Technorati Tags:

Powered by ScribeFire.

Awesome drupal case study – for online newspapers

Information.dk – a Danish newspaper that relaunched on Drupal – published their production case study on Drupal.org – from architecture design to CSS challenges…

Wow – I wish all case studies were like this.  This is yet another way to give back to the community.  I’ve rarely read a case study where I actually learned so much.

I found this while digging around for info about Drupal newspaper sites for a friend.  There’s a newspaper group, and from there I discovered that there are a bunch of Drupal newspaper sites
 (including internationally) in production.  Including America’s Finest New Source, natch.

Technorati Tags: , ,

Powered by ScribeFire.

Renting a car in France

I’m planning on returning to France in November, and was looking over some of my travel notes. I realized I had not finished my “France travel-tips” triptych – car rentals in France.

There are a couple of things to consider when renting a car, and my recommendation for a car rental agency:

Insurance:

  • As in the US, car rental agencies make most of their money off the insurance they tack on at the counter. In France you are usually charged for car damage “CDW” and / loss “LDW” (I think they are referred to this way, even in France). There is usually a theft insurance too..
  • Used to be that you could avoid the (astronomical) additional daily insurance charges by using a credit card that would provide insurance instead. However, many places I’ve visited in the last couple of years have wised up to this tactic. Usually what happens is you’ll see a price listed for a car – let’s say 20 Euros a day. OK, you figure you’ll avoid the additional 30 Euros a day of insurance (maybe that’s an exaggeration) by using your credit card….. Ooooh no. That 20 Euros a day is their promotional rate, when you accept the insurance they provide. Otherwise, the price jumps up….


Manual vs. automatic:

  • If you’re like me (sadly), you don’t know how to drive stick. Well, you’re gonna have to find a place that rents automatics. A lot of the bigger agencies (Avis, Hertz, EuropCar, etc) can provide an automatic, in the larger cities and at airports. However… there are “horror” stories of getting there, and the previous renter of their single automatic in the entire fleet has still not returned the car, and you’re out of luck.
  • You could try out AutoEurope, a 3rd party rental broker, which can guarantee you an automatic – depending on the metropolitan region, and guarantee you a price. A lot of Americans like this service because you can call an 800# from the US and set up your reservation; and when you’re done, you know what you’re paying. However, you’re paying the price for these guarantees – i.e. roughly a 30% premium.

Diesel vs petrol:

  • Unlike war-subsidized oil prices in the U.S. ;-) France does not subsidize gas prices. When you see gas at about 1.3 Euros, that’s PER LITRE (multiply by 4 to get a rough gallon price). Yeah, driving costs money, don’t it? That’s a fact the rest of the world is much more intimately familiar with than we are.
  • So your best bet is to rent a diesel if you can. Diesel is about the same price – but are far more efficient (i.e. you’ll be refueling about 1/3 to 1/2 less often).
  • Unfortunately, getting an automatic diesel is like finding a car rental place open during lunch – not impossible, but very difficult. (Remember that when you schedule your car return to coincide with that noon train!)

What I do when I’m in France:
I use UCar

Insurance: The UCar agencies specialize in having a published, inexpensive rate including CDW/LDW insurance (your liability is 500 Euro damages and 1000 Euro theft – not great….). They have big charts in their offices that will show you the exact price you’ll pay, for a certain car, for a certain number of days. When you come back with your car, you leave with that exact amount charged on your credit card (i.e. they don’t send you a racked up bill later). It’s that simple – I’ve done it several times now.

NOTE – A lot of the UCar rates include a specific mileage limitation. This makes it ideal for local exploring, but a bit more expensive for trekking across the country. Their miles are nonetheless pretty generous.

Locations: UCar agencies are everywhere – there’ll usually be a couple in a good-sized town, and then a few more scattered along the villages outside of town. However, these UCar locations are invariably in the middle of friggin’ nowhere. For example, the UCar spot in Avignon is several kilometres outside of the quaint central part of town – you have to take a bus into the Avignon “banlieue” to get there.

Automatics: This gets a little tricky, and again it’s very helpful to be able to speak French. I called the toll number and said I was looking for an automatic in a particular region. The central reservation place in turn called the local agencies to find who had an automatic, and called me back with a reservation. Awesome. Except I needed to enlist the help of another driver with car to get me to that location. (In this example, the Aix-en-Provence UCar is in the commercial section a good dozen kliks outside of town. Yes, you can take a bus, but come on! The best thing about it is there is a great organic store and outdoor restaurant around the corner form the Aix UCar place).

Of course, if you don’t speak French, it’s harder. If you don’t have a cell phone to call back, it’s even harder (I will try to call form the US for this next trip, and see how we can work out the call-back for the reservation).

Nonetheless, one of the great things about UCar is that they all seem to be local owners, and many will get to lengths to help you out (the guy in Avignon drove us to the train station because it was his lunch time, and we were running late).

Technorati Tags: , , , ,

Powered by ScribeFire.

More Drupal fixes: Node profile, TinyMCE themes, LDAP blank page fix, and funky node permissions

Significant Node Profile update: [2008 Update - the links below don't work, try this.] Node profile is a module (a series, in fact) that allows you to manage users as nodes – as opposed to the separate node type they currently are. If you’ve ever wanted to add a taxonomy to user profiles, you’ve encountered the problem that node profile tries to address. I tried node profile in Jan, and got just so far before quitting. The reason? If you’ve played with earlier versions of node profile, you know that it puts the basic account info (account name, email, password) in one area, and all the rest of your profile info in another – and there was no graceful way of presenting a user with tabs to edit either part without hacking out some code – and I am code averse. ;-) That is, until they released an updated tutorial – the key is to download the zip file attached to the page, which includes the tutorial and the node profile bonus pack. Oh- and then follow the instructions. Note: We used the version of the tutorial I linked previously – they have yet another newer version. (Big up to Michelle, who did the bulk of this work while pregnant; thanks to Roel for prompting me to look at this again).

TinyMCE theme buggery: If your TinyMCE looks all funny, and you are trying to figure out why, it’s likely because you’ve chosen to use the site theme as opposed to the TinyMCE theme. I’ve had little luck using a site theme that will reliably show me what my content will look like in the TinyMCE edit window. I know the same is true for the basic TinyMCE theme – but at least that’s consistent, and I know what will change when I publish…. The little setting you are looking for is in the TinyMCE settings page, under CSS at the very bottom.

LDAP Blank page error: I had installed the LDAP module on an in-house server for one of my projects (a windows server with Apache2Triad installed). We kept getting a blank page every time we tried to log in using an LDAP account – and we double-checked all our settings. Turns out, we had to enable the LDAP extension in the PHP.ini file – which we were able to do through the Apache2Triad interface. I don’t remember the exact line or setting – but it was obvious to me, and I’ve never looked at a PHP.ini file before….

Node edit lockout / filters permissions: On another project, the site maintainer kept telling me they could not edit a story node that I knew they had permission to edit. They could edit other story nodes, but not a few particular ones. It turns out that I – as the admin – had changed the input filter on the particular node (to get around re-editing some image html). However, the site maintainer did not have input filter permissions – and once I changed the input filter it locked the entire node so she could no longer edit it.

Orphaned “You can’t post comments” text:
I was noticing this bit of text at the bottom of some posts, when I knew that comments had been turned off for the entire site. It took a while to figure out that these were nodes that had been added before I turned off comments, and so the individual node still had comment permissions turned on. More feedback on this here (see comment #5).

Technorati Tags:

powered by performancing firefox

Next Page »