how to always read facebook’s news feed in “most recent first” order

Facebook has been tampering with its news feed design over the last weeks and months on its mobile apps and also the website. The “most recent” order is no longer a default view on the app (but several taps away hidden in a sub-sub-menu) as of version 10.0.0. On the default facebook page, the feed regularly switches back to “top news” every 1 or 2 weeks, even if you choose “most recent”. The option to choose the sort order of the news feed also disappeared from the mobile website (that you can reach when opening on a mobile browser).

You can still change the ordering of the news feed on the Desktop page and, once changed, the mobile website will inherit the settings. But, I don’t like to change the sort order every 2 weeks again from the Desktop page.

Now, I just saw that facebook stores the sort order in the URL. You can use the following hard links to reach the news feed in the desired ordering:

  1. to read the news feed in chronological order “most recent first”, and
  2. to read the news feed in random order (“top news”).

I’ve placed this URL as a bookmark on the home screen of my smartphone and removed facebook’s mobile app. It actually loads much faster than the mobile app and I now read the feed in the preferred order. Let’s see how long these links work.


activating iMessage service on iOS5

Apple released iOS5 yesterday. The update process was not as smooth as I expected – I couldn’t restore my backup from version 5 to version 5 completely. In essence, all media except the photos were lost. Another thing where iOS5 is not smooth is the activation of the iMessage service. At least for me, it kept displaying “waiting for activation”. The trick that made things work:

  1. Go to Settings > Messages
  2. Open the Receive At Settings
  3. Enter a new e-mail address
  4. A verification mail is sent to that e-mail address, open it, click on the link and verify the address by entering your Apple ID
  5. Now, this does not finish the process yet
    Go to  Settings > Messages > Receive At
    The  e-mail address you just entered will still show verifiying.
  6. Tap the e-mail address again and tap on Resend
  7. Now your iMessage account is activated, pick the right CallerID and you are ready to send messages.

Language-aware publishing in Google+?

This is the thing that I actually wanted to write, but I first had to post my view on Google+. So, what always intrigued me on facebook is that I am having an international bunch of friends met in various places in the world. I’d say that half of my posts are in German and half of my posts are in English. I always wondered whether people are annoyed by me posting in a language they don’t understand, but as I didn’t get complaints, I never cared, mostly because it would have been too annoying to actually micro-manage my audience.

Things are somehow different in Google+, as my circles allow me very well to distinguish my audience. I somehow feel obliged to not flood my friends from the US with German jokes. But some of the German content might actually also be interesting to them, and vice versa. So, as Google is also running its steadily improving Google Translate service (though, the translation to Czech needs some serious work), I wonder whether Google+ could/would/is going to integrate Google Translate in a per-post-basis:

  • you post as ususal,
  • when you get a post in your stream written not in your native language, Google translate automatically translates the post for you based on your language preferences,
  • or you get a “translate to my language” button next to each post.

could be a Google+ “App”…

Content gets tuned to the audience: my first days in google plus

Alright, Google Plus is out and puzzles the world, in particular the people who could join already, what this new platform is going to be. As I am in, I am slowly seeing how people try to understand how the platform matches personal posting behavior and vice versa. This is particularly interesting as the first round of people to join are those with close ties to Google, people with a strong social media/web2.0 presence, or people close to those. So, it’s the very native netizens that have a new playground. Currently, people hesitate posting and writing, so do I. Partly, as we all have our facebook, twitter, and mail accounts already.

But I think also for another interesting reason that is currently massively influencing the way Google+ will be used. On one hand, as we are a small cozy family of beta users, people willingly add contacts to their different Google +Circles, much more than you would have in facebook. On the other hand, the publishing/posting concept in Google+ gives users a lot of control on to whom you publish; it is easy to set on every posting. So, people gather a large audience while they control what the audience gets to read and to see. I have the feeling, people currently try to understand what contents is best posted to their circles, how the circles are to be shaped, etc. This makes me come up with the following hypothesis:

The current Google+ users not only care about what they post but also to whom. While this is intended in the design of Google+ it changes how people think about their posts: Content gets tuned to  the audience.

I’ve seen lots of interesting approaches. People posting picture jokes you usually expect in anonymous forums, serious links to political blogs, meta-questions about Google+, and micro-blogging from events, in particular with a stream of photos, etc. Usually no trivia from people’s personal lives like that they just had an awesome evening with their best friend. But in particular the last observation may very much be due to the fact that I am not in the ‘friend’ circle of that poster…

I’m quite intrigued to see whether my hypothesis holds in general for Google+ or whether it just applies to the current, very selected user pool of Google+.

Recovering data from a damaged FAT32 hard disk drive

I just want to wrap up how I managed to recover the data from a laptop’s damaged hard disk drive. The 40GB disk was formatted with FAT32, had a Windows XP and some serious I/O error problems preventing it from booting.

I cleaned up my external 80 GB HDD, plugged it via USB into the laptop and booted the system with the latest Knoppix-CD. I reformatted the entire disk (/dev/sda1) with the ext3 file system, mounted it with (# mkdir /media/sda1 ; mount -t auto /dev/sda1 /media/sda1) and gave full access to the entire disk (# cd /media/sda1 ; chmod 777 *).

Since Knoppix is missing the dd_rhelp script, I downloaded the latest package and put it on that external disk (into /media/sda1/dd_rhelp). The damaged disk in the laptop was /dev/hda1. I set disk-access parameters for that disk back to basic but safe, disabling DMA and higher level PIO mode access:
# hdparm -m 0 -d 0 -p 0 -A 0 -X 08 /dev/hda
This makes things horribly slow in copying the large chunks of good data, but it improved the overall process since it can handle bad blocks in a better fashion. Next, I edited the dd_rhelp script and set the values “max_bs=1024” and “min_bs=64” in /media/sda1/dd_rhelp/dd_rhelp. The standard values of dd_rhelp are fine, but slow down the copying of data if the disk is damaged to a larger degree.

Ready to copy the data. Change to root with “su” and then run
# /media/sda1/dd_rhelp/dd_rhelp /dev/sda1 /media/sda1/sda1_backup.img
This process makes a bit-per-bit copy of the entire disk and writes it to the image sda1_backup.img. Any bit that cannot be read by the program will be zero. This takes a while. Quite a while. For my 40GB about a week. Which had nothing to do with the hdparm above but with the overall state of the disk (I ran the process twice). You may kill the dd_rhelp and the dd_rescue processes at any time and continue later on. dd_rhelp writes a log file that keeps track of the overall progress that has been made.

When you are done make a copy of the rescued image /media/sda1/sda1_backup.img and get yourself another hard drive that is at least as big as the image you just rescued or make some space on another hard drive. You will have to create a new FAT32 partition that is at least as big as the image. If the file system of the disk from where you just rescued the data has file system X, create a new X partition of that size. In my case, that new partition mounted as /media/sdb6. Now, copy the data from the image to that partition with
# dd if=/media/sda1/sda1_backup.img of=/dev/sdb6
Mounted /dev/sdb6 and saw the data. You can now run any file system/data/rescue operations on that disk (or the image file) or copy what’s left of it.

Update: compiled some data in a How To: Recover Windows Partitions.

Fixing problems with Exim4 and ClamAV after apt-get upgrade

So this was one of the weeks where I learned Linux configuration the hard way. I simply thought of getting my virtual server up to the most recent version. It was/is running a Debian 3.1 (Sarge), I guess. You’ll probably realize by now that I know a lot about my server…

Anyway, I simply ran
apt-get upgrade
which brought about 20+ packages to the most recent version. Including exim, my mail agent, and clamav, a virus-scanner that runs with mail agents. I guess because of a version change in either exim, or clamav, or both I was asked to do so configuration stuff which I followed to my best knowledge and guess. However, I ended up with bouncing mails to my server. After a while, I found out that clamav got a version change, but the configuration on the system didn’t go with it. The exim4 logfile /var/log/exim4/paniclog kept telling me malware acl condition: clamd: unable to connect to UNIX socket /var/run/clamav/clamd.ctl (Connection refused) While exim4 was already properly calling clamav, clamav refused to answer.

A little bit of search with that phrase revealed the following page which was quite instructive to me to some degree. There was a problem with the access privileges to the clamav runtime files from exim4. So gave some privileges:
adduser clamav Debian-exim
which was already done before. I then checked that /etc/clamav/clamd.conf contains a line that reads:
Done. Then I gave permissions for the /var/run/clamav directory to allow for the correct user to use it:
chown Debian-exim.Debian-exim /var/run/clamav
Since /var/run/clamav/ contained a file I also ran
chown Debian-exim.Debian-exim /var/run/clamav/
Now a restart with
/etc/init.d/clamav-daemon restart
gave me an error that AllowSupplementaryGroups in /etc/clamav/clamd.conf requires a BOOL value. Luckily Ping! from the ClarkConnect Forums pointed out that

In my /etc/clamd.conf file, there was an error in every line that required a BOOL value. I had to add “yes” or “1” to the followin options to get the clamd to succeed

I did that to each line of /etc/clamav/clamd.conf that had no argument next to it and the
/etc/init.d/clamav-daemon restart
succeeded. However, I still got bouncing mails and /var/run/clamav/clamd.ctl was still missing. It appears that clamav and exim4 just need the existence of that file, no specific content, plus proper access rights. A
touch /var/run/clamav/clamd.ctl
chown Debian-exim.Debian-exim /var/run/clamav/clamd.ctl
/etc/init.d/clamav-daemon restart

did the trick. Thanks to aioshin.

update Well… that didn’t help… therefore I did it the hard way:
apt-get --purge remove clamav clamav-base clamav-daemon clamav-freshclam libclamav1
apt-get -t sarge install clamav clamav-daemon
adduser clamav Debian-exim

Thanks to D.J.Fan. After the apt install, I told the setup to take the package maintainer’s version of the configuration file. A choice I made wrong earlier… grrr.

Skype “Crisis” is coming to an end

The guys at Skype must have had a tough night. My client logs in again and I just saw about 2.8 million nodes can do the same. Still I just popped out again, so it’s not been solved yet entirely.

even though it is too early to call out anything definite yet we are now seeing signs of improvement in our sign-on performance. We continue to monitor the situation through Europe waking up this morning and have more for you in approximately 4 hours.

My client is now occasionally bringing in stacks of unread multichats. Hope yours too.


I’m still up with my initial guess that it has nothing to do with the client code, since we did not have to update the clients (unless Skype has some silent module update built-in). Must have been something with the supernodes. It’ll be interesting to see how the network recovers slowly during the day.

Anyway, it was fun to participate in blogging about something ongoing. Though I hardly get the point as it’s quite some sort of procrastination… I better get back to my work. Speaking of which: I have to write a journal article.