Bartj3

Flash developer and geek extraordinaire

30 notes

Hellbanning

Just read a blog post by Coding Horror explaining some types of banning (i never heard of them)… One i particularly like is Hellbanning:

A hellbanned user is invisible to all other users, but crucially, not himself. From their perspective, they are participating normally in the community but nobody ever responds to them. They can no longer disrupt the community because they are effectively a ghost. It’s a clever way of enforcing the “don’t feed the troll” rule in the community. When nothing they post ever gets a response, a hellbanned user is likely to get bored or frustrated and leave. I believe it, too; if I learned anything from reading The Great Brain as a child, it’s that the silent treatment is the cruelest punishment of them all.

I’ve always associated hellbanning with the Something Awful Forums. Per this amazing MetaFilter discussion, it turns out the roots of hellbanning go much deeper – all the way back to an early Telnet BBS system called Citadel, where the “problem user bit” was introduced around 1986. Like so many other things in social software, it keeps getting reinvented over and over again by clueless software developers who believe they’re the first programmer smart enough to figure out how people work. It’s supported in most popular forum and blog software, as documented in the Drupal Cave module.

(There is one additional form of hellbanning that I feel compelled to mention because it is particularly cruel – when hellbanned users can see only themselves and other hellbanned users. Brrr. I’m pretty sure Dante wrote a chapter about that, somewhere.)

You can read the rest of the article at Coding Horror

Filed under banning hellbanning

3 notes

Learn learn learn

I’ve been coding ActionScript for quite some time, and have been doing it professionally for over 2 years… However i realize i miss some basic programming skills. Sure everything will work fine without them, but if i want to grow further i’ll have to master those skills. So i decided i’ll spend at least one hour each weekday actively learning new programming skills.

Some of the skills on my to do list are a couple of patterns i need to learn, there are some frameworks i want to learn how to work with. But also some even more basic things like regular expressions… Whenever i need them i bother some collegue or someone in my social network… I really should have learned this years ago so i’ll try to master the basics today so whenever i need them i’m be able to write them myself.

I’m lucky to have the Book “Advanced Actionscript 3 with Design Patterns” laying around, and the book dedicates an entire chapter to regular expressions, so studying that chapter should be enough.

Filed under learn actionscript regexp

1 note

TweenLite mismatching versions

Today i had to update an old Flash project, i changed the files, compiled it, worked fine but then when i uploaded i got the warning

TweenLite warning: Your TweenLite class needs to be updated to work with OverwriteManager (or you may need to clear your ASO files). Please download and install the latest version from http://www.tweenlite.com.”

I do have the latest version so why the Error?

Turns out that when i created the project i used another TweenLite version, and when i updated the site online i uploaded the changed files, but not the preloader (which was still using the old TweenLite version).

As it turns out the two versions don’t work together, so if you update an old project and got a new TweenLite version… Make sure you update all the SWF files so the TweenLite version matches in all files.

Filed under actionscript tweenlite

0 notes

Drupal previous/next node

Tried everything with views to get a previous/next node functionality in drupal, but ended up with some script in my template, if you ever need to browse through nodes you’ll need this script:

function node_sibling($dir = 'next', $node, $next_node_text=NULL, $prepend_text=NULL, $append_text=NULL, $tid = FALSE){
  if($tid){
    $query = 'SELECT n.nid, n.title FROM {node} n INNER JOIN {term_node} tn ON n.nid=tn.nid WHERE '
           . 'n.nid ' . ($dir == 'previous' ? '<' : ' -->') . ' %d AND n.type = "%s" AND n.status=1 '
           . 'AND tn.tid = %d ORDER BY n.nid ' . ($dir == 'previous' ? 'DESC' : 'ASC');
    $result = db_query($query, $node->nid, $node->type, $tid);
  }else{
    $query = 'SELECT n.nid, n.title FROM {node} n WHERE '
           . 'n.nid ' . ($dir == 'previous' ? '<' : '>') . ' %d AND n.type = "%s" AND n.status=1 '
           . 'ORDER BY n.nid ' . ($dir == 'previous' ? 'DESC' : 'ASC');
    $result = db_query($query, $node->nid, $node->type);
  }
  if($row = db_fetch_object($result)){
    $text = $next_node_text ? $next_node_text : $row->title;
    return $prepend_text . l($text, 'node/'.$row->nid, array('rel' => $dir)) . $append_text;
  }else{
    return NULL;
  }
}

There’s more info on drupal.org