Silverback - Usability Testing

August 31, 2008 | Leave a Comment

I have always been very interested in doing serious usability testing of applications or web sites. However, it is complicated and associated software to make it easier is usually quite costly.

Silverback appears to change that.

I have yet to have a chance to put it through it’s paces, but watching the video demo, this has great potential. With only a $49.95 price tag, this will be easy to justify with our next major project.

Described by Clearleft as:

Spontaneous, unobtrusive usability testing software for designers and developers.

  • Capture screen activity
  • Video the participant’s reactions
  • Record the participant’s voice
  • Add chapter markers on the fly
  • Control recording with the remote
  • Export to Quicktime

Tags: , , , , , , , , ,

Related:

Simple JSP JDBC Example

January 29, 2008 | Leave a Comment

I learned to program on Java, but have done little to exercise those skills in the last six years, preferring to leverage PHPs simplicity whenever possible. So... when I had a need to put together a simple JSP script that queried Oracle, I found myself scouring for a truly simple example to start from. Here's the example I put together:

JAVA:
  1. <%@ page import="java.sql.*" %>
  2. <%
  3. try
  4. {
  5.     //this is how you might get a POST or GET variable from the request to use
  6.     //String user_id = request.getParameter("some_var");
  7.  
  8.     Connection  conn = DriverManager.getConnection("jdbc:oracle:thin:@HOSTNAME:PORT:SID","USERNAME","PASSWORD");
  9.     Statement stmt = conn.createStatement();
  10.     ResultSet rset = stmt.executeQuery("SELECT sysdate FROM dual'");
  11.     if (rset.next())
  12.     {
  13.         out.println(rset.getString(1));
  14.     }
  15.     else
  16.     {
  17.         out.println("No records found");
  18.     }
  19.     rset.close();
  20.     stmt.close();
  21. }
  22. catch (SQLException e) {
  23.     out.println("Exception");
  24. }
  25. %>

Certainly for your own purposes you would need to write a lot more code than this. Yet, if you seek a simple example just to gain your bearings, this should do it.

Tags: , , , , , , , , , , ,

Related:

PHP 5 readfile Problem

April 26, 2006 | 3 Comments

PHP LogoIn PHP 5.0.x there is a known bug that can cause large (2MB+) files to be handled incorrectly by the readfile function. We first discovered this while working with Tiki Wiki. Today we ran into it again with the way we stream secured SWF Flash files off the file system.

Luckily, I found this great function on PHP.net in the user comment section. Simply drop this function definition in place and use it instead of readfile and the problem is gone!

PHP:
  1. <?php
  2. function readfile_chunked($filename,$retbytes=true)
  3. {
  4.    $chunksize = 1*(1024*1024); // how many bytes per chunk
  5.    $buffer = '';
  6.    $cnt =0;
  7.    // $handle = fopen($filename, 'rb');
  8.    $handle = fopen($filename, 'rb');
  9.    if ($handle === false)
  10.    {
  11.        return false;
  12.    }
  13.    while (!feof($handle))
  14.    {
  15.        $buffer = fread($handle, $chunksize);
  16.        echo $buffer;
  17.        if ($retbytes)
  18.        {
  19.            $cnt += strlen($buffer);
  20.        }
  21.    }
  22.    $status = fclose($handle);
  23.    if ($retbytes && $status)
  24.    {
  25.        return $cnt; // return num. bytes delivered like readfile() does.
  26.    }
  27.    return $status;
  28. }
  29. ?>

code, development, file, file handling, flash, large file size, php, programming, readfile

Tags: , , , , , , , ,

Related:

Definition: Code Turd

April 7, 2006 | 22 Comments

In a major enterprise system we pay a lot of money for, a recent patch threw us an error based on the following line of code in a shell script:

echo "I am what is running, this is linux" >> /home/ban7/jobsub/for_whatever_purpose.txt

This line was not conditional and was ironically being run on a Solaris system, not Linux. Our DBA Jon Graton defines these little gems of "production" code as "code turds".

programming, code, shell script, definition, unix, linux, solaris, disk turd, jon graton, dba

Tags: , , , , , , , , ,

Related:

PHP 6 - The Magic is Gone

March 14, 2006 | 17 Comments

PHP LogoGranted PHP is only currently at 5.1.2 as the stable release, but we should always look forward to the future. The future is PHP 6. One of the big changes coming in 6 is a removal of many things that make PHP "magic".

According to ThePimp,net, register_globals, gpc_magic_quotes, and safe_mode have all been removed.

The register_globals change is an especially welcome enforcement. In PHP 4 it was discouraged, in PHP 5 it was deprecated. To be able to tell people it will be gone, not allowed, no other option in PHP 6 will give us leverage to finally eliminate the remaining stuff relying on register globals.

The removal of magic_quotes is more of a surprise to me. I previously was unaware that relying on this was discouraged, deprecated, or even bad practice. If the reasoning for removing this is just to eliminate the "voodoo" aspects of PHP, I can certainly agree with this. However, I'm still a bit uncertain as to why this is better. Although, I guess that it will simplify the need to strip_slashes all the time when repopulating fields and whatnot. Other thoughts?

Thankfully we haven't been using safe_mode, so this one is a non-issue.

Discussion of these major (much needed) changes in PHP came down from Rasmus Lerdorf himself back in August.

globals, gpc_magic_quotes, magic, php, php6, programming, register_globals, safe_mode, web, web development, PHP, rasmus lerdorf

Tags: , , , , , , , , , ,

Related:

Behaviour, Return of Clean HTML

March 9, 2006 | 1 Comment

Behaviour LogoAs we've begun adopting Ajax, JSON, and similar JavaScript heavy technologies a problem quickly arose. Suddenly our clean HTML was being cluttered with tons of script tags, onclicks, and other various event handling functions. Trying to extract this logic back out of the HTML was a definite desire for us.

Enter Behaviour.

Behaviour uses CSS selectors to specify what elements to apply JS handlers to.

Check out these demos. View the source and you'll see clean markup that is free of logic. This allows us to step back and once again fully separate the presentation layer from the application layer.

ajax, json, javascript, js, behaviour, behavior, functions, web 2.0, web20, programming, html, xhtml, web, web development, css

Tags: , , , , , , , , , , , , , ,

Related:

Scriptaculous

January 6, 2006 | 1 Comment

Matt recently came across and got very excited about Script.aculo.us for doing DHTML effects and AJAX.

From Matt's post: Script.aculo.us Is My New Best Friend:

Script.aculo.us is a Javascript Effects and Control framework developed by Thomas Fuchs, a software architect living in Vienna, Austria who, like me, was disappointed by current web application frameworks that made no sense to him. His framework is 3 things: Easy to Use, Simple, and Easy to Use. His libraries - built off of the AJAX framework, Prototype - blow SAJAX out of the water!

One of the things that makes script.aculo.us especially great is the detailed and well written documentation/apis. Arguably, this is why I first loved Java and eventually became addicted to PHP. The Java API was great, but PHP.net is unmatched. Like PHP.net, the script.aculo.us wiki allows users to contribute back knowledge easily.

programming, web, web development, api, apis, scriptaculous, dhtml, ajax, prototype, wiki, php, java, sajax, web application

Tags: , , , , , , , , , , , , ,

Related:

Next Page »