Thoughts

Why is it that Apple has three messaging apps?

  

Back when Apple brought out FaceTime, I couldn’t get why it had to make a separate video chat app when it already had iChat. Now we have a third app included with iOS 5, called iMessage. Why?

If the people at Apple are intent on making little messaging apps, each with their micro-purpose, then I’d like to suggest some new ones to them:

  • iShmooze: giving people a direct chat line to their boss or work hierarchy
  • iRx: so you can chat about your medications with your neighbors and know-it-all relatives, and get better prescription advice than from your doctor
  • iExChat: for venomous quips exchanged between ex-spouses and other ex-es…
  • iSeeAds: for people interested in seeing targeted ads; perhaps you can work in a micro-pyramid scheme where people can get something like 1-5 cents when they view an ad or invite their friends to view ads; that should be popular…
  • iSeeDeadPeople: photo sharing for zombie and vampire lovers
  • iPotty: for those who love to share those precious moments in the bathroom
  • iAte: see above and substitute food; this one could come with a photo sharing option, for those who love taking photos of said food; in hindsight, perhaps the photo sharing option could be extended to the iPotty app as well, I saw some folks online who would be interested in that.

For a company renowned for its design and the clear focus of its products, I’m surprised to see three messaging apps. Why? Didn’t anyone put their hand up to say, “Hey, don’t we already have iChat?”

Perhaps it makes sense to have the separation, from a software and procotol perspective. Perhaps iChat was designed for the computer. Perhaps the AOL messaging protocols it still uses aren’t suited for the purposes of FaceTime and iMessage. But it still makes NO sense.

If Apple was able to take OS X and turn it into iOS, then take features from iOS and put them back into OS X, then it’s quite capable of making iChat the go-to app for all its messaging needs. Rewrite it and make it work! It’s already incredibly capable on the desktop. It can do text chat, audio chat, video chat, file sharing and screen sharing. I use it all the time to do video conferencing with my parents, all the way across the Atlantic Ocean, and I use it for screen sharing as well, when I help them troubleshoot issues on their computers or simply teach them how to use them better. Why in the world would you leave a capable app like that behind and write a new one called FaceTime? And then why would you further fragment that segment and make another one called iMessage? Why?

I’d like to see iChat be the one and only app that does everything this set of three apps does and more. I’d like to challenge the people at Apple to make it work the way it should work, tailored to the capabilities of each device where it will be installed.

Standard
How To

How to avoid nightmares when upgrading your Drupal install

I had some real “fun” today (about a full day’s worth) after upgrading one of my Drupal installs from 7.7 to 7.8. The whole site went awry: the template no longer showed, I was only getting text, I kept getting either 404 or 500 errors when clicking on links, and nothing I did seemed to make it better. Even restoring from a backup yielded the same garbled pages. It’s fixed now and working perfectly (well, not perfectly, because some modules are still in beta and there will always be some errors, but it’s working as expected, let’s put it that way).

If you’re only here because your site is garbled after an upgrade, let me save you some time. There are two reasons (I know of ) for it:

  1. You have Clean URLs enabled and your .htaccess file got replaced. That means the RewriteBase rule is now commented out. Don’t bother to turn off Clean URLs, there’s no need to do that. Uncomment it, refresh your site and links should be working properly.
  2. If your theme is now messed up and you only see text, plus you can’t navigate around your site, you have your site cache and compression turned on, don’t you? Yeah you do, and now the new version of Drupal doesn’t know how to read the cache files, because it didn’t write them. So do yourself a favor and turn the cache files off. You’ll have to use the “dirty” URLs if you can’t navigate to the admin panel, so instead of example.com/admin you’ll need to type example.com/?q=admin, and so on and so forth. Disable the compression and the cache, and delete all the cache files. Presto-change-o, your site now looks normal again!

So, what can you do to avoid having the same crappy day I did? Let’s take it by the numbers, shall we?

1. Put your site in maintenance mode.

2. Always, always back up your site and your database before doing a core upgrade.

I would recommend doing a backup even before upgrading modules. Don’t rely on backup modules. Do the backups manually, and just so you won’t panic when something goes wrong, test your backup method by restoring from it to a separate install, to make sure you’re doing the right things. This is especially important for database backups, where it’s REALLY important for you to be able to restore from a downloaded SQL file.

Before doing the core upgrade, do a full backup of the entire site, not just the sites folder. And just to make it easier for you to restore the sites folder afterward, do a separate backup of that folder, and of the .htaccess file at the root level of your drupal install. And back up the database, that’s really important! If you do this right, you’ll only need to use the database backup.

3. Turn off all site caching and compression and clear the site cache. This is really important! If you don’t do this, it’s quite likely that your site will be just as garbled as mine after the core upgrade.

4. Create a new site folder on your server, because you’re going to do a brand new install of Drupal (whatever the latest version is). Inside that folder, wget the latest drupal tar.gz file and untar it.

Okay, now comes the fun part.

5. Delete the sites folder in the new Drupal install and copy over your old sites folder.

6. Make sure any changes done to your .htaccess and robots.txt file are reflected in their counterparts in the new Drupal install. Or, it’s quite likely that the old thing that you need to change in the .htaccess file is to uncomment the Rewrite Base line. Find it and uncomment it.

If you don’t uncomment this line and you have Clean URLs enabled, your site will either give you 404 or 500 errors when you try to access the admin interface or alias URLs, so this is quite an important step!

7. Restore your database from the SQL backup. That is, create a new database on your server and through the web interface or through SSH, restore your database backup to it, to get an exact copy of your live Drupal database.

8. Now run the database update script. Browse over to your Drupal install + /update.php and run it to make sure the database upgrade is also completed.

9. Now you have some choices to make. Once you do this, you have two working installs of Drupal: the old, reliable install, which you’ve been using, and the new install, which should be working, but who knows what bugs there might be in the code, that you’ll only discover as you begin working with it.

So now you have two choices: you can either map your domain to the new directory or rename the old directory then rename the new directory to match the old. In other words, you’ll want your domain to point to the new Drupal install. Or, you have the luxury of saying “Forget this new version for now!” and keep using your old Drupal install, until they work out all the bugs (that’ll be the day…)

That’s it! Pat yourself on the back. This should have taken about 15 minutes or less, not a whole day…

I hope this has been helpful!

Standard
Thoughts

A lot of teachers in Romania shouldn’t be teaching

It’s been a couple of weeks or so since high school students in Romania had to take their graduation exams — the Bac, as it’s known over here. The whole thing was a huge controversy this year, because for the first time ever, there were strict rules in place to ensure no cheating occurred on the exams.

Not sure if you knew this, but there’s a lot of cheating in Romanian schools. It occurs on a massive scale. 

It got this way in the past twenty years, as the school system got worse. Teachers were paid less, working hours got longer, the classrooms got bigger, and a lot of teachers stopped caring. That’s not to say they were paragons of teaching before that. I met my fair share of horrible persons in the teaching ranks before I left the country to live in the States. Now that I’m back, it seems they’ve multiplied.

Abroad, Romanian students are known as hard-working and studious — downright nerdy, brilliant at the sciences, etc. That (small) group is still around, but it’s gotten smaller. Many of the students with great grades get them because they cheat these days. They have it down to a science. Forget the little pieces of paper we might use to scribble down a few formulas when we were in school. These kids have cellphones with apps that store textbooks. Or they take photos of hard-to-remember pages with their cellphones, and zoom into those photos during tests. Or they text their buddies, naturally. In some classrooms where the teachers have stopped caring altogether, the students simply open their textbooks, lay them on the desks and copy away. In the vocational high schools, they don’t even bother with cheating anymore. They simply write the answers on the blackboard, to make sure they pass everyone.

Is it any wonder that the younger generations in Romania are so easy to manipulate, when they remain uneducated as they go through schools? A dumb population is what every despot wants, because they’re easiest to control. You just have to give them a cheap bread with one hand and point them to a scapegoat with the other, and they’ll obey. Is it any wonder then, that we have such a corrupt political class in charge of the country?

So for this round of graduation exams, the minister of education set a goal: no more cheating. They had proctors in every classroom, and they had video cameras. Anyone caught cheating would be disqualified and would be kicked out.

I think you can guess what the results were: deplorable. A LOT of kids didn’t pass, because they couldn’t cheat. A LOT were caught cheating, and were disqualified. The pass rate in Bucharest (the capital) was under 50% (somewhere around 43-44%). In some school districts, the pass rate was under 30%, and in some really problematic districts, no one passed. Now can you begin to realize the scale of the cheating that took place in previous years?

Naturally, there’s blame to be thrown on someone, and right now, parents and students and teachers and politicians are busy trying to see who’s to blame. I think the teachers are to blame.

Before I tell you why, let me just point out that I interview students from Romania for admission to Middlebury College (my alma mater back in the States). I’ve been an interviewer for years. When I lived in the States, I interviewed American kids. Now that I live in Romania, I’ve offered to interview Romanian kids. How do you think this cheating scandal has affected the reputation of Romanian kids abroad?

How can the folks back at Midd or Yale or Stanford know which Romanian kids applying to their schools cheated to get those grades, and which ones didn’t? I’m not clairvoyant, so I have no way of knowing myself. I’d love to be able to look at the face of a kid I’m interviewing, like Cal Lightman in Lie to Me, and know that they’re lying about not cheating, but I don’t have those abilities (yet?). So this is why I’m very glad to see a general crackdown on cheating in Romania, and I hope this crackdown translates into long-term changes in the education system to ensure no more cheating. That’s because when I look at a kid’s grades, I want to know they’re honest grades, not inflated through deception and through the theft of other kids’ hard work.

The teachers set the tone in their classrooms. They knew when cheating took place. No one can tell me teachers don’t know when you’re cheating. If they’re good teachers and they care about their students, they know. They can see it on your face right away.

But the teachers stopped caring, so the cheating got endemic. More students saw that it was easier to cheat than learn, and that high grades were within easy reach, so they started doing it too. And it’s the teachers’ fault. Instead of doing their jobs properly, and instilling a love of learning in their students, instead of encouraging them to learn and showing them how interesting the subject matter can be, they resorted to cheap tactics (tactics which should be made illegal) of forcing students to memorize paragraphs and pages from the textbooks and repeating them outloud (or writing them) during exams. What kind of a lazy, pompous bum do you have to be in order to force kids to do that instead of explaining the concepts to them?

As a child, I was beaten (slapped hard, my hands beaten with a ruler) by our grade school math teacher, who was having an affair with one of the other teachers. When rebuffed by his lover, would come to class piss-drunk and would beat the kids. He’d beat me, along with other kids, because we couldn’t remember math formulas when he screamed at us, or that we couldn’t do calculations fast enough.

Or what about the many vindictive teachers I’ve had, who if they had it in for you, for whatever reason, would use every opportunity to belittle me or the other students, and give us all low grades? I met just such a teacher recently and I was blown away by how much anger she had for people who didn’t share her view of things, and how far she’d go to blackball them. Can you imagine these people teaching children? What kind of an example are they for our kids? What do you think those kids will learn from them? Hate, anger, vindictiveness and methods of punishment? Or what about unquestioning submission to the classroom despot? Are those the things we want them to learn?

Have you heard of the teachers (and professors) that will give you low grades if you don’t quote their books when you write your papers? They’re such egotists that if you don’t pay homage to their books, you won’t pass their course. Never mind that many of them copy their books outright from foreign textbooks, stealing the intellectual property of others so they can embellish their own curriculum vitae and hang on to their posts or get promoted.

What about the filthy perverts who ask for sex in order to let you pass their courses? Yes, that happens as well. They caught one such pervert recently in a girl’s dorm room, partially undressed and ready to seal the deal — thankfully, the girl managed to get away, but how many girls to do you think submit to this sort of thing just so they can get their diploma?

All I have to do to get more horror stories like this is to go out and ask any grade school, high school or college student to share their own experience. I for one am amazed that we still have so many qualified students graduating from Romania’s schools — these are cogent, thoughtful people, who’ve managed to rise above all the crap that goes on in those places and decide to do something good with their lives. Kudos to them for sticking it out, because it was a tough journey!

My suggestion to the Romanian government is to get to work right now on reforming education in Romania and to eliminate all the bad teachers right away. The more they leave the inadequate specimens in the classrooms, the more they’ll infect the young generations’ minds.

Standard
Thoughts

Java finally acknowledges upgrade issues

Not sure how many of you have been aware of this, but Java upgrades over the past several years have been problematic for Windows users. When a new version of Java came out, the installer would prompt you to upgrade, but would never prompt you to remove the old version, or do it for you. In my work, I’d see computers with as many as 10-12 different versions of Java on them. The user, unaware of the messiness built into the Java upgrade, would leave the old versions on their machine, and they’d keep piling up. You could see them in the Add/Remove Control Panel, but how many people know how to look there, and how many know that it’s okay to remove old versions of Java?

So I was heartened to see that Java is finally acknowledging the problem with old Java versions sitting on Windows machines, and is now prompting users to remove them after installing the new version. See the screenshot below.

Ideally, their upgrade engine ought to remove them for the user, but at least this is a step in the right direction. And to think that Java is being used everywhere these days (even where you don’t want it), and it took all this time for them to straighten out the upgrade issues. It’s a bit shameful if you ask me.

Standard
Thoughts

File corruption rears its ugly head

During the last few weeks, I’ve seen the following error in Adobe Lightroom 3.

There I am, editing photos, minding my own business, and when I try to view a photo for editing, I get the error message you see above: “The file appears to be unsupported or damaged.”

When I try to view the file in the finder, I get the same error message, this time directly from the OS: “The file […] could not be opened. It may be damaged…”

Here’s my workflow:

  1. Shoot RAW
  2. Import RAW files as DNG into Lightroom (LR converts them on the fly)
  3. Process in LR
  4. Export as JPG or as needed
  5. Back up the catalog and check its integrity weekly

It’s pretty straightforward, and that’s the way I like it. I currently have about 85,000 photos in my LR library, whose catalog is stored locally on my MBP, with the files (DNG, RAW, JPG and TIF) residing on a Firewire Drobo.

Fortunately, the file corruption is only temporary, meaning there’s an error somewhere along the way:

  • It could be Lightroom
  • It could be the DNG file format (because I haven’t gotten the error with RAW or JPG files)
  • It could be OS X: I wonder how much testing Apple did for 10.6.5 with volumes greater than 4TB
  • It could be the Drobo: it’s a big volume (4.4TB) with lots of data that’s constantly being updated, lots of I/O traffic

I don’t know, and I hope someone reading this has an answer.

What fixes the error every time is quitting LR, ejecting the Drobo, cycling its power, mounting it, and starting LR. I’ve also tried just restarting LR, or just ejecting the Drobo, but those methods didn’t work.

Standard