FDA guidlines for Social Media? AND Google health new ads

New article out from Pharma Exec

The FDA holds a hearing last week to discuss social media and how it can be monitored. Topics discussed included presenting risk information up front, monitoring & priocessing social medial for adverse events, & Google's recco for standardized "sponsored links".

Read more on Pharmaexec.com:
http://pharmexec.findpharma.com/pharmexec/article/articleDetail.jsp?id=6...

Giving a Drupal 6 Theme Control of Stylesheets

Drupal has always had an awesome theme hook system. It allows a module to define some output, but gives the theme a chance to override that default. What always bugged me was that modules could also add stylesheets. With Drupal 6, you have two options for overriding module defined styles.

Drupal 6 Batch API Example

I heard about the Drupal 6 Batch API the other day from another Drupal 6 blog. However, I felt that post was a little light on the details and as always the best way to learn is to just give it a try so I spent an hour or so messing around with it and thought I'd share the results.

Custom file uploads in Drupal 6

Last week I started work on porting one of our larger custom modules to Drupal6. I've ported a few of our smaller modules so in general I knew what to expect and which areas to look out for. This module however threw me one curve ball that was confusing enough that it warrants a brief post here.

In this module I have a custom node type that requires the user the upload a file to create the node. This is done by having a file input item on the form, validating the file is attached during node creation, and then saving and doing something useful with the uploaded file on submit/insert.

Working Around the Drupal 6 Theme Registry Using Theme Settings

When you start developing themes for Drupal 6 the first problem you will run into is the theme registry and, to a lesser degree, the css cache. The theme registry collects information on which theme functions, preprocess functions, and template files need to be used for each themable object as well as several theme.info files and other such content. Once it collects all of this information it throws it into the database and uses it to make page requests faster. This is all fine and dandy unless you are working on a new theme.

AR XRay: Now With Beating Heart

UPDATE: I've now updated this demo to include a beating heart. Special thanks goes to Tim Knip of the Papervision3D development team for making some source modifications necessary to get morphing DAEs working. I'll try to post a live demo that people can play with sometime soon.

OLD POST:

I finally got around to combining a couple of my previous demos into something pretty cool. Once again this is an augmented reality app in Flash, based on Papervision3D and FLARToolkit.

Firefox persistent sessions. Bug or Feature???

Client Request:
Log users out when they close the web browser.

Solution:
Simple, set the cookie lifetime to 0

Not so fast:
FireFox can persist sessions for eternity under some conditions, even when the application is closed and the computer powered down.

Bug:
https://bugzilla.mozilla.org/show_bug.cgi?id=443354

Basic Augmented Reality Heart in Flash

Here's a simple augmented reality test that relies only on Flash Actionscript. It uses FLARToolkit, an actionscript port of ARToolkit (one of the oldest and most widely used AR libraries), for the glyph tracking and papervision3D for 3D rendering.

Since this is actionscript only, these sorts of applications can be deployed on the web really easily. Unfortunately, the down side is in performance. You're pretty limited as to frame rates and polygon counts, so it's best to use this for interesting interactions rather than for robust, full featured, or overly pretty ones.

Using delegating functions to simplify "mega" hooks in the Drupal API

One thing that bugs me about Drupal/PHP is the use of module hooks that take $op parameters. There are many example of such hooks

hook_nodeapi
hook_user
hook_block
and more

On the surface I see the reason for this, one hook with operation flags is much easier to deal with then a separate hook for each thing both in code and documentation. However, my beef with this is that you tend to see modules that have these giant functions that are a nested mess of if/else, switch, or both logic. I hate digging into a module and having to look at a 700 line function to try to find the 10 lines that apply to the task at hand.

Papervision3D Xray Effect

A quick experiment with Papervision3D viewports to create an interactive XRay effect. For this test it just looks like the material on the heart changes based on the position of the planes, but they are actually completely separate scenes, so you could just as easily reveal the skull within a head, etc.