Stopping Troubling Cheap Popularity Algorithms

Warmed by the SunsOne of the more silly issues of popularity algorithms is that they do  not degrade over time - and it's really simple to fix.

In the context of social media and the internet, the cheap and easy algorithms that people who consider themselves programmers copy and paste into their code, or install as a module or add-on, simply point to things based on statistics on how many views. In some cases, these are prominently displayed on front pages of websites or even in feeds from certain social media sites. It's a red herring - it tells you what has been viewed the most since the items have been posted - but it doesn't tell you what is actually more popular at the moment and what is more popular over time.

As usual, the problem gives away the solution. If a page has so many hits, it could  be because of longevity - a well written article can be timeless - but it doesn't mean that it's the most popular, either. What gets the most views per day? That would likely be popular. So rather than popularity being defined by what has been viewed the most (which is almost always inflated by bots!), popularity is defined by what is most viewed per unit time.

Thus, if you can define when things are posted, and you can define what the date is, you suddenly have an idea of how many times something has been viewed over a period of time. However, is it relevant? Relevance degrades over unit time for many items, particularly dated articles that clutter the Internet - but how fast does that relevance degrade? I've seen one Drupal module that attempts to use a sort of 'half-life' argument for relevance - and while it is better than simply counting views, it's a bit too linear for my liking.

So this is what I'm considering (Math notation, not programming notation):

Popularity = (Views/Time) x (1/Time)

Popularity = (Views/Time2)

That's really not too taxing of an algorithm for a server, is it?


Enhanced by Zemanta

Backups, Backups, Backups

The Backup TruckMemory is the treasury and guardian of all things. - Cicero, Philippicæ, IX. 5.


Back in the 80s and early 90s, we backed up data from our computers because bad things could happen to the machines themselves. Horror stories of losing gobs of data never went viral because people didn't have social media back then. It was a different era - hard drives didn't seem to last as long as they do now (though they may have). Since then things have changed - bloated file formats (hello, Microsoft!) have made files larger - and the Internet, marketed largely as The Cloud by various companies, makes backups to other sites much more feasible - though imperfect.

We have privacy issues now, where data can be gotten to by password security issues - problems of a provider or a user.

We have issues of not being able to access a network when a backup is needed to be restored.

In essence, while the world of technology has given us brilliant solutions for backing up our data it has also provided new problems.

The usefulness of a backup, though, is only as good as it's ability to be restored.


The life of the dead is placed in the memory of the living. - Cicero, Philippicæ, IX. 5.


There are general rules when backing things up.

  • Backup frequently.
  • Attempt to restore backups frequently.
  • Backups should be in a geographically separate environment than the actual data.
  • Backups should be at least as secure as your need for them to be private. Paranoia is good.

When I'm backing up a MySQL database off of a server, as an example, I test the backup on a local server. Why? Because if I can't restore a backup and have business as usual, then it isn't a backup. It's just wasted space. And since I don't host web servers where I am, a calamity over there doesn't translate to a problem here. I've seen so many servers storing their own backups that I wrote that. There's no nice way to say this: It Is Stupid. It's a sign to me that the people who set that up don't understand why they're backing things up.

In the same way, storing backups of your hard drive on the same hard drive is...

Of course, security plays a role. You might want to back up all your documents to a USB stick - easily done now - but now you have to make sure that the backup doesn't go somewhere you don't want it to go. Like a competitor.

The Cloud? Sure. Great place to store data - but remember, too, that it's now easier for others to access that data. Your data isn't as secure as the Cloud provider, it's as secure as your own security as well as their security. Someone's stolen laptop can mean some 12 year old editing your files in the cloud or a competitor getting something that they need.

If it's your data, you probably should have a physical copy of it somewhere that you can physically control... or it's really not your data, is it? With the low price of data backup, there's very little excuse to not back things up and have a physical copy yourself - maybe not as frequently as backups to the cloud, but frequently enough that you know you have a copy.

Image at top courtesy Ruben Molnes through a Creative Commons License. Click Image for details.

Enhanced by Zemanta

The Chromebook: Prepping For Dev Work.

Chromebook Test

Chromebook Test (Photo credit: slgckgc)

With some problems with my main work machine last week I decided to get a cheap machine as a backup - because I like redundancies and because the economic rebound some speak of hasn't quite made it's way to my bank account. Chromebooks are cheap, and though I dislike having a dependency on any particular company, the Chromebook has potential. If it failed to handle what I needed it to do, I could always install Linux on it.

When had the Acer C7 Chromebook down to $199, I decided it was time. Having seen someone's cat destroy a Chromebook over Skype (they weren't using it for Skype), I opted for the Walmart insurance as well. For $36 it covers drop damage for 2 years (amongst other things), so all told I spent about $240-$250 after taxes. I'm a contractor. It's a tax writeoff.

My first impressions of the Chromebook were colored by my want for physically solid machines. My phone feels solid. My main work machine feels solid. The Chromebook did not feel solid, but then it's because it's light. Until now my travelling laptop has weighed in at 10lbs. I suppose I might write something up on the Acer after I've spent more time on it. I can't understand how people can write a review on a machine that they just got. That's silly. You need at least a month.


I'd done my research, though maybe Google could pay Ballmer to visit their Chromebook marketing department.. The Chromebook would be called upon to handle development and, really, that's not something that the marketers of Chromebooks are intent to talk about because their main market are... not developers. 

All of these made me more confident in purchasing a Chromebook as far as work.

What most developers articles on these things don't realize is that one process does not fit all.

Since my main workflow is typically from a local WAMP/LAMP setup with Git, this may alter the way I do things a bit. Sure, I'm a Free Software/Open Source person and that goes to clients but clients don't always want their code public even though it's GPL'd - sometimes they want to maintain a Trade Secret, or sometimes they just aren't going to distribute their code. When working with and/or managing developer groups, the client's server development environment is where it all happens - though sometimes you walk into situations where unresolved office politics can leave too many keys to the server out there.

And there's always Github.

I suppose I should have expected Google to have tailored what apps it suggested based on my gmail account and google searches I've done while logged in - but I found it a bit creepy.

ShiftEdit and CodingTheWeb were the only ones I installed.

In fiddling around this weekend, I decided that so far I prefer using NeutronDrive - the main selling point to me being all the different Editor modes available and the fact that it leverages Google Drive (working a single dev project). Is it better or worse than the other IDEs/repositories? I have no idea yet, I've only really toyed with one - but the present project involves lots of use of Google Drive already. I am concerned about how multiple users editing the same file at the same time might not work well, but for one dev projects it's a workable solution.

With larger projects, it will depend on the size of the team - so it might be a development server's Git, it might be Github. It will depend on the project. With SSH on the Chromebook, it's not that difficult - and with a little network setup, I can have the Chromebook connect to a local WAMP/LAMP as needed.

The Web Developer's Achilles Heel.

No one seems to have mentioned this in any of the posts that I've read, but there's an issue with web development on the Chromebook that is the elephant in the room. Your browser. On a Chromebook, you're locked into Google Chrome - so you're out of luck for front end development. Since I mainly do back end development, it's not too big of a deal for me - but it's something that means that you can't always see what the client sees. While the machine is good for development, it's not necessarily good for evaluating browser glitches.

The Skype Issue

Skype has become a central tool for people who work across the Internet - Google Hangouts seem to be nice for some, but I have yet to encounter anyone who uses them effectively. We all know that Skype works on Android. Why it doesn't work on Chromebooks seems to have been a business decision by Google - and a crappy one at that. Here's Google's writeup on Skype on a Chromebook.


I've committed myself to working with the out-of-the-box Chromebook for a while. It's not because I like Google - I'm ambivalent about Google - but it's because I want to give it a fair shake. The lack of Skype and the inability to use other browsers is very limiting for web development work in general, but these I can work around with different machines - at least for now. The second I need to run Skype or other browsers on the Chromebook, I'll have a little entry on installing Linux on a Chromebook.

Ubuntu does seem popular for that.


Enhanced by Zemanta