You are viewing a read-only archive of the Blogs.Harvard network. Learn more.

~ Archive for Projects ~

Summer Fun

ø

This summer has been pretty busy, and I have been having lots of fun. I’ve been biking up a storm, including several 80 mile bike rides. I also finished two more classes, and now I have three left. I moved to an awesome new apartment with cheaper rent and also redesigned two web sites. My volunteer work with HRC continues, and I just love the fabulous people I get to meet all the time as a result.

I met Cyndi Lauper this summer… that was fun 🙂

HBS is going well, too. We are getting a new Director for our department, and I am sure I will be working on some more great projects once they come in. I am part of such a great team at HBS. I’m really proud of all my co-workers because we have all worked together for five years now, and we have just gotten so good at what we do. They have taught me so much. I am also gearing up to co-chair the Harvard ABCD Design Group.

Graduation, here I come.

ø

I will be graduating from Harvard with a C.A.S. on June 8th. I am expecting an A in my last course, Oracle Database Administration, so keep your fingers crossed. Working full time and going to school at night has been one of the most challenging and most rewarding experiences I have ever had.

I have just one year left until I complete my Master’s at Brandeis. The worst is definitely over, and I am so happy to be done with classes at Harvard for now. For anyone interested in courses at the Extension School, the IT program is fabulous. I definitely recommend the courses to anyone.

FlashJester NetChecker

1

I was playing around with the Flash Jester netchecker today and seeing if I could get it to work with a screensaver. The net checker is an independent executable file that you call from within the Flash movie with and FS Command to see if your user is online. It works fine with stand alone swf files, but so far not within a screensaver. The screensaver can’t seem to find the executable file, even when installed with the screensaver package.

So I have had to resort to my simple load variables from a text file on a server. If the variables load, then it means the user is online, otherwise they are not. This is fine, except that I don’t officially know how long it takes to load those variables in. I set up an extra period of time for the variables to load as a precaution, however, it might take longer depending on connection speed. If the user is online, my net checker might not always work–that’s the problem with my little system. I think it will work on the vast majority of systems though. I just want something that is more precise. The NetChecker can be found at www.flashjester.com.

Suggestions are appreciated…

 

Interesting Flash Add ons

ø

These are software programs that extend Flash’s capabilites. You can track user interaction, check to see if a user is on the internet, make screensavers, and many more. They are worth looking into.

http://www.flashjester.com/

Flash ScreenSavers

2

I have started to develop a screensaver that updates itself automatically to communicate messages on kiosks and office computers. As a way of communicating messages, it seems to work best on kiosks where screensavers are most likely to be turned on and stay on, such as in a computer lab or library computer area. On individual personal PCs, users are likely to not see the messages that the screensaver outputs because they immediately turn it off.

I thought the screensaver might make a nice way of communicating messages because it is something that is on someone’s desktop, and it is an application that loads without the user having to think about it. On some level messages are communicated, but it is not reliable enough on personal PCs.

To me, a screensaver is still a good way to communicate messages to computer users, but it can’t be seen as the main source of the communication. Perhaps the main problem with the screensaver is that a fair number users don’t know how to manually turn it on. The only way to see the messages is if the screensaver happens to turn on. In this way, a screensaver that updates messages automatically on the fly serves as a companion to a more primary source of information, such as a web site. The screensaver could even have exactly the same information as the primary source of information, this increasing the likelihood that messages will be communicated. Again, this type of communication is more appropriate on lab computers and library kiosk areas where the screensaver is likely to be turned on more than one computer at a time so people actually can see the message while they work on another computer.

At any rate, Flash is a particulary good technology to use to create a dynamically updated screensaver. Its fast to create animations and update, and just use a screensaver maker application such as swiff saver or the screensaver projector maker from http://www.flashjester.com/. You can make interactive screensavers that allow for mouse clicking and audio. The possibilities are endless and very cool.

A couple of things to be aware to make a screensaver actually save the screen.

1) Image objects can not stay in one place, they should be moved around to eliminate screen burn (which is an issue on the modern plasma screens from what I understand)

2) Have the screen fade out to black for a few seconds periodically…

All for now.

ABCD-Flash Co-Chair on Flash GUIs vs. Java GUIs

1

Here is an interesting post that occured in the ABCD Flash user group.

————————————————————-

If the GUI will be front-end Web-based I sincerely believe that Flash is a better option than using Java Applets.
Here are simple but compelling reasons to choose Flash over Java:

1. Java is installed at only 80% of the browser vs. 98% of Flash. (and it’s isn’t installed by default on XP or Linux)
2. There are many compatability problems between different versions and platforms in Java.
3. Java requires a much (**much**) larger download.
4. Even for the simplest application Java requires at least 8MB of memory just to load the VM, and it has long load-up times.
5. Java is generally very slow doing graphic operations, and Flash is faster and scalable due to its  vector graphical nature.
6. Although Java and Actionscript (Javascript) are both cousins of the language C, they differ substantially. The learning curve for Java is rather steep in comparison to Actionscript. It is said that there is a 3 million Java Army — but how many of them are savvy in J2ME and/or Swing?
7. Flash does UI excellently (java can only hope to catch up) and you can built a GUI with minimal scripting experience with “out-of-the-box”  Flash components.

I understand that Java might be a better back-end server-side solution in some cases but I don’t know enough about it to comment on it.

However, I would like to clarify and update some of Catie’s “CON-Flash” comments with the latest information about the most recent version of 
Flash MX 2004. See my comments below:

CON-Flash
– Horrible horrible debugging/error-reporting capabilities – this was the
one thing that convinced me that it would be a huge headache to develop a
complex application in Flash. When things failed, the application would
still run but just act strange instead of failing with some proper
information on why the failure occurred. This makes debugging and
troubleshooting complex interactions incredibly difficult. Flash MX has
greatly improved its debugging capabilities but I still see this as a major
drawback for application development in Flash.

In Flash MX 2004 debugging has become much easier and better to track problems.
Flash provides several tools for testing ActionScript in your SWF files.
The Debugger, lets you find errors in a SWF file while it’s running in Flash Player (you can also STOP the application). Flash also provides the following additional debugging tools:

The Output panel, which displays error messages and lists of variables and objects (see Using the Output panel)
The trace statement, which sends programming notes and values of expressions to the Output panel (see Using the trace statement)
The throw and try..catch..finally statements, which let you test and respond to runtime errors from within your script
The availability of comprehensive compiler error messages, which let you diagnose and fix problems more readily.

Using Flash MX 2004 Professional you can use Data binding which is a series of actions that take place in response to events, such as the following:

The data of a component property changes.
A web service call is completed.
An XML document is fetched.

All actions that are performed by data binding or web services are reported to a log.

When you run an application that turns the trace on, a detailed log of data binding and web services events and actions appears in the Output window. The following are the types of things reported:

Executing bindings
Calling web service methods
Fetching XML documents
Status and result events from WebService and XML components
Valid and invalid events from validated data fields
A variety of errors, invalid settings, and so on that are checked for

By running your application and then examining the log, you can often find out why things are not working as expected. Sometimes an error is explicitly reported—for example, a missing web service parameter. Sometimes the data is bound to the wrong component, or to no component, and so on. If you find that there is too much information in the log, clear the Output window by selecting Clear from the context menu, to keep the log as short as possible

– ActionScript is a *lot* less powerful than Java – ActionScript doesn’t
support basic things — for example —  manipulating files (this could be
for security reasons, but there is no ability to certify your flash
application and then gain access to the user’s hard drive as there is with
applets and java apps for example).

Agreed, but I believe that file manipulation will be added in future versions.
You can manipulate XML files.

– Very limited Reusability of code – flash applications can’t re-use code
created in other flash applications without some serious copy and pasting. I
imagine you could attempt to get around this by building little modular
flash movies that can be imported into other movies, but this seems like
design gymnastics to get around a problem that doesn’t exist in java.
Additionally, if you wanted to build an application framework that was meant
to be extended and used in a variety of different ways this seems virtually
impossible in Flash (though it might be interesting to talk to some serious
macromedia developers and see if they have some insight as to how one might
do this)

ActionScript 2.0 (new to Flash MX2004) is a restructuring of the ActionScript language that provides several powerful new programming features found in other programming languages, such as Java. ActionScript 2.0 encourages program structures that are reusable, scalable, robust, and maintainable. It also decreases development time by providing users with thorough coding assistance and debugging information. ActionScript 2.0 conforms to existing standards and is based on the ECMAScript 4 proposal.

The primary feature of ActionScript 2.0 is a familiar model for creating object-oriented programs. ActionScript 2.0 introduces several new object- oriented concepts and keywords such as class, interface, and packages that will be familiar to you if you’ve ever programmed with Java. You can easily extend Classes now.

The OOP model provided by ActionScript 2.0 is a “syntactic formalization” of the prototype chaining method used in previous versions of Macromedia Flash to create objects and establish inheritance.

Strict data typing ActionScript 2.0 also lets you explicitly specify data types for variables, function parameters, and function return types.

– lack of built-in GUI components that support applications (Java/Swing
encompasses the concepts of application development such as menus, dialogue
boxes, etc.) Flash has no such libraries so you either need to build these
components from scratch or grab some open-source ones online

Flash has a whole family of standard built-in components ( Data, Media and UI–including menus, scroll panes, text-areas, radio buttons etc, ), and many (many) more are available from third party developers (free-ware and $).
 Components are movie clips with parameters that allow you to modify their appearance and behavior. A component can provide a wide range of functionality. A component can be a simple user interface control, such as a radio button or a check box, or it can be a complicated control element, such as a media controller or a scroll pane. A component can even be nonvisual, like the focus manager that allows you to control which object receives focus in an application.
Components are designed to allow developers to reuse and share code, and to encapsulate complex functionality that designers can use and customize without using ActionScript.
Components are built on version 2 (v2) of the Macromedia Component Architecture, which allows you to easily and quickly build robust applications with a consistent appearance and behavior.
Components allow you to separate coding and design. They also allow you to reuse code, and download components created by other developer
or create your own components.

Tracking in Flash

1

I am starting to examine ways to track user interaction in Flash movies. So far the best solutions have been to call javascript functions embedded in html page and then when the user closes the flash window, it sends data to a script.I suppose the best thing would be to have the user clicks go straight into a database, but a database isn’t really an option. Perhaps if Flash had a good way of writing to a flat text file on a server–don’t know of any ways to do this. Perhaps there is one.

It was recommended to me that I should do an onunLoad action that will send data to a file once the move is unloaded. Will try this…

Meanwhile, there is probably some software that has been built to see how user track flash movies…

Here is a link that Phil Desenne sent me regarding tracking users in Flash: http://www.umbc.edu/interactive/flash/tutorials/ASBroadcaster.php

Log in