Big Stumble by StumbleUpon

No Comments

One year ago:

"Our badge/widget isn't compatible with https sites; there are no plans at this time to change it."

Wow, how to ignore an ever growing set of your content base, specifically those most up-to-date and therefore probably interesting, in one sweeping statement.

Must be trying to compete with Reddit for the foot shooting prize.

Cute File Browser

No Comments

I found this very neat jQuery based file browser:

This uses a simply PHP script to form JSON output defining the filesystem, however in my case I want to serve files on a Windows PC using just static content. This is relatively easy to code - we just need to create the file listing in advance, e.g. into something called files.json, and modify the javascript to retrieve this instead of scan.php.

My batch script to do that is listed here - it simply scans recursively from the current directory creating the necessary JSON on the output; you can pipe it to the appropriate location for the files.json output.

@echo off
setlocal enableextensions disabledelayedexpansion

set p=%1
set n=%2
set comma=
set oldcomma=X

call:funcdo "%1" "%2"


set "p=%~1"
set "n=%~2"

echo {"name":"%n%","type":"folder","path":"%p%","items":[

set oldcomma=%oldcomma%%comma%
set comma=N

for /d %%d in (*) do (
    cd "%%d"
    call:funcdo "%p%/%%d" "%%d"
    echo ,
    cd ..

for /f "tokens=*" %%f in ('dir /b *.divx *.mpg *.mpeg *.avi *.mkv *.mp4 *.wmv 2^>nul ^| sort') do (
    echo {"name":"%%f","type":"file","path":"%p%/%%f","size":"%%~zf"},

echo {}]}

set comma=%oldcomma:~-1%
set oldcomma=%oldcomma:~0,-1%

It's not very polished and could no doubt be improved, but it works.

Mail forwarding blocked by SPF

No Comments

Some time ago I moved away from Yahoo mail to my own hosted address, and used the forwarding function to pass through any residual mail. This worked fine for several years, but now my host has implemented strict SPF control and a lot of the forwarded mails get rejected.

Unfortunately Yahoo doesn't give any sophisticated options to handle this, eg. there are a number of options they could have implemented for forwarding from the Yahoo address without looking like it's spam:

  • normal forwarding, or as an attachment
  • putting the sender in the Reply-To header
  • or even a line of text saying who the original sender was

The only way I found to get around this was to stop the forwarding, and use a PHP script to periodically check my Yahoo account via POP and move the mail to my new IMAP account. This actually works fine, so in case it's of use to others here is the script I use:


docopy("{}INBOX","Yahoo email","Yahoo password",
       "{Target imap:143}INBOX", "Target login", "Target password");

function docopy($smailbox, $suser, $spwd, $tmailbox, $tuser, $tpwd) {
  echo "--------------------\nCopying mail from $smailbox:$suser to $tmailbox:$tuser\n--------------------\n";

  if (!($source = imap_open($smailbox, $suser, $spwd))) {
    echo "Connect to source failed";

  echo "Connected source: $source\n";

  $msgcount = imap_num_msg($source);

  if ($msgcount == 0) {
    echo "No messages to process\n\n";

  echo "Messages: $msgcount\n";

  if (!($target = imap_open($tmailbox, $tuser, $tpwd))) {
    echo "Connect to target failed";

  echo "Connected target: $target\n";

  for ($msg = 1; $msg <= $msgcount; $msg++) {
    echo "\nProcessing message $msg\n";

    $header = imap_fetchheader($source, $msg);
    $body = imap_body($source, $msg);

    if (!imap_append($target, $tmailbox, $header . $body)) {
      echo "Saving message failed";

    echo "Message saved\n";

    if (!imap_delete($source, $msg)) {
      echo "Deleting message failed";

    echo "Message deleted\n";



  echo "Completed copy\n\n";

Obviously you have to fill in the bits for Yahoo email, Yahoo password, Target imap etc. It should also work for other POP or IMAP sources/targets, but I haven't tried it.

The function can be called several times if you have more than one account to copy, in my case two works fine.

It's written to give some level of output if you run it through a web server, then once it's working you can schedule it to run every few minutes via cron or similar.

App "upgrade" = Ransomware ?

No Comments

I've been a user of SplashID password manager on my iPhone, iPad and Windows machine for a couple of years and found it pretty good. I paid $10 to use wifi sync which seemed reasonable value at the time.

Now, the developer has created an "upgraded" version which requires a $20 annual fee to use wifi sync. Of course they can offer this service and maybe some people will buy it, but I'm happy with my version thanks.

BUT - the version on my iDevices is linked to the App Store, and will automatically update if I enable this option or if I ever click the "Update All" button; there's no easy way to stop this, and thus at some point my paid for functionality will inevitably be deleted by the developer.

In my view this is ransomware (or possibly theft). The developer almost certainly doesn't intend it this way, but as a consumer I don't care what their theory is, I care what I can use and what it costs me. When I buy something I don't expect free upgrades, although they are often included, but I do expect it to not be remotely disabled and an additional fee demanded.

Of course there is a very simple solution - leave the application on the App Store and create a new one explicitely as "Version X". If the old one breaks with an iOS update then fair enough, I didn't buy perpetual support, but in the meantime don't steal my functionality.

Posts on the SplashData forum received suggestions to use their permanent upgrade offer - so basically ransomware in email form rather than as an in-app purchase.

I also raised this with Apple but haven't heard back yet.

iPhone 6

No Comments

So I now have an iPhone 6 - after sticking with my old iPhone 4S for three years the new 6 offered enough difference to be worth the upgrade.

The migration was trivial and took less than one hour, with all the apps still apparently working and nothing more than a few logins to reset.

For the phone, the highlight is obviously the bigger screen. I didn't really think the 4S was small, but wow the 6 is just so much better in that department, with even more clarity and so much more text visible. Reading news or looking at photos is a vastly improved experience, and I didn't even feel it was a problem before.

In terms of the hardware, it feels solid, and the (optional) leather case is very nice to hold. Camera is significantly more responsive, and the fingerprint ID works pretty well. The size is OK, obviously a lot bigger but not so much it feels inappropriate for a phone.

The only thing I've noticed is that quite a lot of apps are obviously not yet adjusted for the new resolution, so the graphics feel blown up and a bit bold. It's a bit like using the 2x view of an iPhone app on the iPad but not as bad.

Update 17 Oct

The Belkin Charge+Sync Dock works with the iPhone 6 with the leather case on. I think without the case the phone would be too thin and lean back uncomfortably far.

other sites

like it?

Feed Delicious Reddit