Geekiness

Fixing iPhone sync error 13019

August 30, 2009  |  Published in Geekiness

I tried syncing my iPhone yesterday, and got an “unable to sync, error 13019″ error message.

Some quick googling landed me on this Apple support page (Error 13019 during sync), which recommended de-selecting syncing voice memos and trying to sync again. If that failed (yup), de-select syncing music to try again (failed). Then videos, podcasts, etc. until a successful sync could be performed. All of this failed, so the page recommended I “attempt to sync an empty iTunes music library to the device while logged in as a new admin user”. Ugh! No!

What eventually worked for me: looking through the Voice Memos app, finding 8 of the same voice memo, deleting them all then syncing. Hmph.

sigint

August 19, 2009  |  Published in Geekiness

sigint is a “forum for conversations about startups and technology among hackers in Singapore”, started by an old friend.

Initial posts were somewhat general tech-centric, so I didn’t quite see the need for this (as opposed to, say, checking its inspiration Hacker News regularly). However, now that the community’s grown a little, I’m actually beginning to see some really interesting local tech and startup news show up on the site. Promising.

Crossfade track changes on iTunes with an iPhone

March 17, 2009  |  Published in Geekiness, Mac

At my friend Andrew’s wedding last year, I was terribly pleased with myself for discovering a great way to do cross-fades on track changes on iTunes using my iPhone and Remote.app. 

Remote.app screenshotThe problem was that I had to switch between tracks on cue by cross-fading between them — usually not a problem if I just let the track end (there’s a crossfade option in iTunes), but not so easy if I had to fade out the current track before switching to the next one. The volume control on the Mac with its “clack” sound would have been loud and obvious (and was in discrete steps, so it wouldn’t be a continuous fade), and fumbling around with the volume slider in iTunes, selecting the next track and then re-upping the volume again would have been a bit tough.

Remote.app for iPhone or iPod touch (free, info here) solves this problem nicely, though, with its touch-sensitive volume control sliders.

To begin, make sure the computer with iTunes is on the same Wi-fi network as the iPhone (set up an ad hoc one on a Mac if necessary). Afterward, just set up a playlist with the songs in sequence and start playing; when it’s time to fade out, drag the volume slider down, hit Fast-Forward to get to the next song, then drag the volume slider back up. Easy enough. Hope that helps someone.

WordPress Mu upgrade issues

December 11, 2008  |  Published in Geekiness, Teaching

Earlier this year, I set up a multi-user blog server using WordPress Mu for my workplace, with the very useful WPMU-LDAP plugin to authenticate against our Exchange server (after a lot of guesswork with the LDAP settings). I found the setup tremendously useful to serve my class webpages from, especially since my students were always seated in front of computers.

I tried upgrading from version 1.3.3 to 1.5.1 once, but found that the admin panel was horribly, horribly slow after the upgrade. Besides, this was during the school term and we needed the blogs to be running for some classes, so I reverted back to the old version.

Earlier today, in a fit of productivity, I attempted the upgrade again. This time, I tried going straight from 1.3.3 to the latest* 2.6.5, following instructions on the (surprisingly hard to Google) upgrade page. Copied in the files, logged in as admin, everything at normal speed, hooray! Re-enabled LDAP plugin, logged in with my personal account… and the admin panel was slow as molasses again. Graaargh.

Thankfully, this time I managed to find some information online — it was this topic, and the realisation that new blogs being created had much faster-loading admin panels than the old ones, that finally clued me in to the solution. Here goes.

If you’re upgrading from WordPress Mu 1.3.x and your admin panel is slow:

  • First, check if you’ve done the auto-upgrade process (Site Admin, Upgrade).
  • As the admin user, go to the backend for any given old blog (Site Admin, Blogs, click on Backend). It should be slow.
  • Try creating a new blog, and assign it to any user. This should be fast.
  • Go back to Site Admin, Blogs, and copy the link for Backend.
  • Paste it into the browser window, and append upgrade.php behind it, and load that page. This is the individual upgrade page for that blog.
  • Click “Continue” to let it upgrade, then try going to the backend page again — this blog should be ok now.
  • If that works, you’d have to do this manually for all your blogs, and might want to consider writing some kind of script to do so. I did it manually for my relatively small blog network.
  • You can save a step by appending upgrade.php?step=1&backto= to the backend URL instead, as this is the link on the “Continue” button.

For some reason, something was broken in the auto-upgrade script, preventing any of the upgrade scripts from actually happening (and failing without errors!). This method calls the upgrade script individually for each blog.

I hope that helps someone (and maybe my successors… who I should apologise to for having set up a self-hosted blog server and then running away, oops).

* “Latest” as in “latest until two minutes after I finished installing, at which point 2.7 was released”. Gah! Seriously, WordPress, what the hell?!

THINGS TO STEAL FROM WORKPLACE BEFORE I LEAVE

November 17, 2008  |  Published in ALLCAPS, Geekiness

A NEWTON!

EXCHANGE DATA WITH MAC OS- AND WINDOWS-BASED COMPUTERS ZOMG

EXCHANGE DATA WITH MAC OS- AND WINDOWS-BASED COMPUTERS ZOMG

SHHH DON’T TELL ANYONE!!

The good, and the mind-numbingly depressing

April 21, 2008  |  Published in Geekiness

First, the good:

Picture 1.png

Designer Jon Hicks’ From Design to Deployment, a 50-minute, 100-slide presentation (downloadable slides at the link, unfortunately no video) on building an entire site (seen here: Cheesophile) from the ground up. Lots and lots of pertinent information about web design packed into some of the most concise and high-impact slides that I could spend hours marvelling at. Most of it is stuff I wish someone had neatly summarised for me years ago, but I definitely picked up some good pointers too, e.g. IE6 debuggery* using hasLayout, an old-browser friendly basic CSS file, and the skipLinks feature. Great stuff.

Then, the depressing:

So the team and I are building a pseudo-content management system for my workplace (as previously mentioned). With the limited amount of time we have, we’ve been unable to develop a full-fledged system (no rich text editor, no role management, limited input/output flexibility, among other things), though the plan is to launch the bloody site as soon as possible, then figure things out on the back-end as and when the need arises.

There was some discussion over email about what our ideal CMS would be like, and Akmal linked us to Swiiit — a local CMS solution that seems promisingly feature-rich. I took a look.

Home.jpg

Arrgh! The pain! I begin rant.

  • The site itself uses table-based layouts. Not a good sign.
  • Uploading files looks like it *requires* ActiveX, so it’s not cross-platform compatible.
  • They’re running on Commontown, which I’ve heard quite a few nasty remarks about from colleagues who’ve used it. All I know is that among the South Cluster sites they’ve created, none have DOCTYPEs.
  • They have some truly terrible copywriting, and can’t even decide between spelling American (“humanization”) or British (“customisable”).
  • The copywriters leave spaces before punctuation marks — unforgivable in its own right, but I suspect that could be a feature of the system. I’m not sure which is worse.
  • A choice quote: “Did you know ??? Swiiit is so efficient that it can handle uploads at the wink of an eye ? This is due to a robust back end engine which fuels its hunger.” It fuels its hunger! But only on Windows browsers.
  • There’s a “test” link on the (rather unintuitively laid-out) menu right now.
  • Hint: When you can’t get the domain you want (swiit.com has been squatted on since 2004, these guys registered swiiit in 2006), adding another vowel really doesn’t make your webpage any easier to find.
  • For that matter, the top-level domain, swiiit.com, doesn’t even bring visitors to their actual page right now, instead bringing users this excellent error message: [pagetree error: Domain 'swiiit.com' and owner mismatch (Page ID:374 owner:7 domain:)]
  • Also amusing: Take a look at the stock photo on the swiiit.com homepage, then at the IPTV World Forum Asia homepage (thanks Steven for that one).

How do these guys even survive? I wouldn’t be so annoyed by some amateur web company that looks like it’ll die off on its own, but they happily trumpet their golden ticket on their front page:

Swiiit is awarded the Ministry of Education’s bulk tender “The Provision of Development and Maintenance Services for School Websites” (August 2007). We will endeavour to provide the best services to the schools who are included in this tender and will strive to increase their productivity and communications through the use of Swiiit portals.

Arrrgh! (And not just for the questionable grammar.)

In my last few months in a position to make or influence IT decisions at work, I’ve come across quite a few truly hideous systems that have been brought in. Some were purchased by previous decision-makers, others were pushed down by the Ministry of Education, and some (I’m ashamed to say) I had a part in approving, tacitly or otherwise. Nobody really knows that most of these vendors are offering some truly horrendous products until it’s too late, and teachers and education administrators just aren’t the sort who bother to go around identifying something better (or if they do, they just aren’t able to convince their bosses that the last $20,000 purchase was wasted).

It saddens me that this is happening, but I guess the fact that there’s so much crap lying around the local education scene means there’s a good opportunity for people — especially those who know what schools want — to deliver these needs effectively.

Something to think about for the next 2 years and 4 months until the bond is up, I guess.

* I’m pretty sure “debuggery” is not the word I’m looking for here.

Firebugging work

April 9, 2008  |  Published in Geekiness

I’ve been quite unnecessarily pleased with myself today, and this is why:

Yesterday was the last day for us to enter our students’ grades into the school’s results management system. As usual, I procrastinated badly, and ended up finishing my marking only at around 12.10am. I figured our programmer guy would give us some leeway and only disallow mark entries the next morning, right? After all, the school administrators aren’t going to print the result slips at 1am, and that’s the only reason they had a deadline in the first place.

Wrong.

Suck it, disabled update button!

Stumped, I thought I’d have to email my boss and explain how busy I’d been (which I guess I have… but I really could have finished marking sooner) and ask for an extension, and with her approval, I could then request for programmer dude to open the system up for me. This is the point at which I noticed this icon sitting in the bottom right corner of my Firefox window:

RPMS - Raffles Institution Pupil Management System (Enhanced)-1.jpg

Firebug!

With live HTML editing!

Open debugging window, enter inspect mode, delete “disabed=’true’”!

Update successfully!

Bwa ha ha!

Yeah, it’s rather childish, but I don’t often get to apply ridiculous hacks in my line of work, so this felt pretty epic. I heart Firebug.

Fame and Fortune with Bond Counter

March 12, 2008  |  Published in Geekiness

About half a year ago, to celebrate the halfway point of my scholarship bond, I wrote a simple Facebook application called Bond Counter. The program simply plonks a countdown on one’s profile page that describes how long more one has left in indentured servitude, probably to some Singaporean government body (and, optionally, how much money is left in that bond).

An excerpt from an article (PDF) talking about scholarship bonds from today’s edition of “My Paper”, a local daily publication:

There’s even an application on Facebook which tracks the number of days one has left to serve out.

Yes! Fame and fortune! Someone buy out my app, with all its 500 users!

Breaking the NIE practicum webpage

January 28, 2006  |  Published in Geekiness

The NIE Practicum Office website has this nasty piece of incompatible JavaScript that renders the page unusable in any browser but Internet Explorer. Essentially it’s a JS DOM trick that shows and hides blocks of information below sub-headings, but implemented wrongly at the “checking for browser compatibility” level, so all browsers but IE get the wrong scripts to run.

To solve this problem, I wrote fixpracticum.user.js: a Firefox script for use with GreaseMonkey that enables the hidden blocks’ visibility by default. After I wrote that, I was all pleased with myself and was about to write something similar (CSS-based) to fix the problem in Safari, but I noticed that if one just disabled JavaScript when viewing the site, that worked just fine too, i.e. (pun unintentional), the hidden blocks are visible by default.*

Oh well. Whatever works.

* This is because the webpage doesn’t use a separate stylesheet to hide them, instead running some JS code to inject the “visibility:hidden” and “display:none” styles into the code upon loading the webpage. Oddness.

Tags:

WordPress 2.0 FeedBurner plugin issues

January 7, 2006  |  Published in Geekiness

I’ve been using Steve Smith’s WordPress Feedburner Plugin to send my feeds over to FeedBurner — it’s a simple mod_rewrite strategy that first rewrites a local feed into some secret random address, which you point FeedBurner’s aggregator at, and then sends all feed traffic from here to FeedBurner’s resultant page.

Only thing is, WordPress 2.0 seems to have mucked something up with their new permalink rewrite engine, resulting in an odd error: The secret random feed address gives a 404 error in FeedBurner (and FeedValidator), but shows the feed fine in web browsers. This apparently only occurs when one has set WordPress to deliver custom permalinks (e.g. site/archive/date/title, as opposed to site/index.php?p=5). Explanation, from an outdated FeedBurner support page:

The issue works this way because browsers are supposed to render the Error Document that is sent when a requested URL is not found; in this case, the Error Document itself will be the feed. But with web service systems, there is no benefit to rendring this file (as it is not a feed) so most of the systems (including ours) stop processing at the 404 error report.

Here are the solutions I’ve found so far from the plugin page comments (after searching for over an hour): Switch back to default permalinks in the WordPress options, or edit .htaccess manually, changing /wp-rss2.php [QSA,L] to /wp-rss2.php [QSA,R,L]. From what I know about mod_rewrite (not very much), the R stands for “redirect to new URL”… but that’s all I know. Anyway, I’ve adopted the latter solution, which is preferable because I don’t have to ruin my established permalink structure.

Hope that helps someone trying to find an answer to this issue.