Ted's Tidbits
About Archive Photos Replies Reading Tweets Also on Micro.blog
  • Update

    Well, its apparently been over 2 months since I last posted anything to the ol' blog.  The last think I wrote about was the late night release of ThinWire 1.2 RC 1.  So much has happened since then.  Instead of writing about everything, I’ll just list stuff that’s happened since then:

    • Two snapshot releases of ThinWire have been made.
    • I attended three weddings in three cities in three weeks.
    • I finished reading Asimov's Foundation novels.
    • I attended a midnight wedding.
    • My printer broke.
    • Megan and I celebrated one year of marriage.
    • I purchased an iPod.
    • Epson sent me a brand new printer.
    • I read the New Testament
    • My company purchased additional office space.
    • I replaced the brake pads on my car.
    Here's what I haven't done since the release of RC1:
    • Get a haircut.
    See you in April!
    → 9:33 PM, Feb 26
  • Thin is In

    Early last Friday morning, we released the latest version of ThinWire (1.2 Release Candidate 1). Since then, it’s been very interesting and exciting to watch the reaction.

    First of all, there actually was a reaction to this release. Nothing of significant note happened after our previous releases, but this one was different.

    1. Our SourceForge rank has been bouncing all over the place. On Friday night it was 12, Saturday night it fell to 13, Sunday night it rose to 8, and last night it fell back to 12.
    2. Our download count is heathier than ever. We had over 200 on Friday. We exceeded 178 yesterday, and we're already above 140 this morning.
    3. Other people are talking about us:
      1. http://evolutionarygoo.com/blog/?p=70
      2. http://ajax.sys-con.com/read/312936.htm
      3. http://www-128.ibm.com/developerworks/edu/wa-dw-wa-thinwire1.html?ca=drs-
    It's all very exciting. For more info, check thinwire.com.
    → 10:10 AM, Dec 12
  • Soviet Russia, Comming to an America Near You

    America… What a country! In America, you watch TV. In Soviet Russia, TV watches you!

    The MPAA is trying to push a bill through Congress that would require anyone with a home theater to register with them. The home theater equipment will have devices that can determine information about the audience watching and report back to the KGB MPAA.

    What makes a home theater? According to the MPAA, a home theater is any home with:

    • A television larger than 29" with stereo sound
    • At least 2 comfortable chairs or a couch or futon
    Here's the magic quote from the article:
    "Just because you buy a DVD to watch at home doesn't give you the right to invite friends over to watch it too. That's a violation of copyright and denies us the revenue that would be generated from DVD sales to your friends," said [MPAA head] Glickman. "Ideally we expect each viewer to have their own copy of the DVD, but we realize that isn't always feasible. The registration fee is a fair compromise.
    Pay attention to the government! They obviously don't trust you, why should you trust them?

    Source: http://www.bbspot.com/News/2006/11/home-theater-regulations.html [Mirror]

    → 3:52 PM, Nov 28
  • Little T Learns to Share

    Terrell Owens has released his first book in a series of childrens books.  His next book will be called Little T Learns What Not to Say, followed by Little T Learns To Say I’m Sorry.  I swear I’m not making this up.

    Little T Learns to Share

    Amazon.com

    Dallas Morning News

    → 4:22 PM, Nov 21
  • Ever been the only one?

    I don’t know why I do the things I do.  Today I searched Google for a phrase that I used to say a lot: “Sleepmode is the squidaud”  It was an inside joke of sorts.  Busta Rhymes often says “Flipmode is the Squidaud,” refering of course to his group. Some friends of mine hijacked that phrase and began using it to refer to a love of slumber.  Anyway, I digress.

    The point is that I Googled “sleepmode is the squidaud” and only got three results.  Two were from the previous version of TedCHoward.com, and one was from a blog that I apparantly had 4 years ago.  Using Google as the record, I am the only person to ever post the phrase “sleepmode is the squidaud” on the internet.  I’m not sure how I feel about that.

    → 3:57 PM, Nov 21
  • Science vs Religion: Can't we all just get along?

    The New York Times has yet another story on scientists attacking religion and vice versa. Does it make me foolish to believe that faith in God and scientific truth are in harmony with each other and not polar opposites? It would be nice to be able to believe in things proven by observation without being labeled a heretic, and likewise, I would enjoy discussing my faith in God without being labeled an idiot.

    → 12:50 PM, Nov 21
  • If Jesus Came Back Today

    http://www.metafilter.com/mefi/56316

    This is interesting for two reasons:

    1. The comic book that shows a potential scenario.
    2. The discussion comments that follow.
    → 2:02 PM, Nov 16
  • JibJab Presents: Do I Creep You Out?

    http://www.jibjab.com/weird_al/do_i_creep_you_out

    → 8:51 AM, Nov 16
  • Emmit Smith: Champion at Everything

    He has 3 SuperBowl rings.

    He holds the record for all-time rushing yards in the NFL.

    Now he’s the new winner of Dancing With the Stars.

    What can’t he do?

    → 8:32 AM, Nov 16
  • KFC Finally Taps Into the Lucrative Astronaut Demographic

    kfc.jpg

    Because what we really needed was a logo we could see from space.

    → 9:08 AM, Nov 15
  • An Excelent Use of Statistics

    Pac-Man Pie Chart

    → 8:49 AM, Nov 13
  • Big Tex Goes Up

    3 more days! http://www.dallasnews.com/sharedcontent/VideoPlayer/videoPlayer.php?vidId=90498&catId=342

    → 8:57 AM, Sep 26
  • Fair Starts Friday

    I’m so excited, I can hardly concentrate. The Fair starts in 4 days. They have tons of new food, new exhibits, and new shows. Just got to make it through 4 days of work.

    → 9:22 AM, Sep 25
  • 6 Year Old Suspended for Bringing Watergun

    http://www.newsnet5.com/education/9891863/detail.html

    As far as I’m concerned this is Class IV Retarded. It was an orange watergun. Now this six year old will be suspended for 10 days and have on his permanent record that he brought something resembling a weapon to school.

    → 1:41 PM, Sep 20
  • Pirate Talk in Linux Changelog

    From the Slackware current changelog:

    I took several stabs with me sword at ripping out kdebase's surprise HAL requirement as well, but the best I could achieve was "Internal Error". Aarrr!!
    Also, here's more pirate talk from Mr. Linux himself.

    I am such a nerd.

    → 7:17 AM, Sep 20
  • White and Nerdy

    Well, there was supposed to be a big world premiere event for this video on AOL today, but apparantly it was leaked on the internet early, so the premiere was canceled. [youtube=www.youtube.com/watch

    → 8:30 AM, Sep 19
  • International Talk Like a Pirate Day

    Talk Like a Pirate Day

    → 6:46 AM, Sep 19
  • Wench Swap

    Talk Like a Pirate Day is tomorrow, and to help get you in the mood, ABC’s season premiere of Wife Swap features a pirate family.  Actually, not just any pirate family, but the family who started Talk Like a Pirate Day a few years back.

    [youtube=www.youtube.com/watch

    → 3:39 PM, Sep 18
  • Gas Prices in Perspective

    OmniNerd has a very interesting article on our obsession with finding the cheapest gas available.  He mathematically determines possible savings over a month, and then applies the formulas to other commodities that we generally aren’t as obsessive at finding better prices.

    I have been known to go out of my way for that extra $0.05/gallon savings, but how much am I actually saving?

    → 7:35 AM, Sep 18
  • Arrrrr you well read?

    Waiting for me in my inbox this morning was an email from Amazon.com.

    As someone who has purchased books about pirates, you might like to know about our featured booklist celebrating Talk Like a Pirate Day.
    Well, they've got me pegged. Here's the list.
    → 7:06 AM, Sep 14
  • Creating and Debugging ThinWire Applications with Eclipse

    This tutorial will walk you through the creation of a simple Rich Internet Application with ThinWire using Eclipse 3.2 (Callisto) and the Eclipse Web Tools (WTP). It will also show you how to use these tools to debug your ThinWire application.

    NOTE: Neither Eclipse nor the WTP plugins are necessary for ThinWire development. There are also other methods of using Eclipse to debug your ThinWire application that don’t require the WTP, but this currently appears to be the most straight-forward approach.

    Configure the Development Environment

    To follow this tutorial, you must have Eclipse 3.2 and the WTP installed with Apache Tomcat installed and configured. Below is a quick summary of the steps necessary. For more information see http://www.eclipse.org/webtools/.

    1. Download and Install Eclipes 3.2 (Callisto) from http://www.eclipse.org/downloads/
    2. Load Eclipse, Help –> Software Updates –> Find and Install…
      1. New Features –> Callisto Discovery Site
        1. Check “Web Standard Tools (WST)” and “J2EE Standard Tools”
        2. Click “Select Required”
    3. Download & Extract Apache Tomcat from http://tomcat.apache.org/download-55.cgi
    4. In Eclipse, Window –> Preferences
      1. Server –> Installed Runtime Environments
        1. Click Add
        2. Choose Apache –> Apache Tomcat v5.5
        3. Click Next
        4. Set Tomcat Installation Directory to the location you extracted the Tomcat archive
        5. Click Finish
    5. Switch to the J2EE Perspective
    6. Window –> Show View –> Servers
      1. Right-Click –> New –> Sever
      2. Hostname = localhost
      3. Server Type = Apache –> Tomcat v5.5 Server
      4. Runtime = Apache Tomcat v5.5
      5. Click Finish

    Create a ThinWire Project

    Once you have Eclipse installed and configured, you can create your new project. Open Eclipse and switch to the J2EE Perspective. Then right-click on the Project Explorer and select New –> Project.

    tutorialdebugging1.png

    Choose Web –> Dynamic Web Project and click Next.

    tutorialdebugging2.png

    Set the project name to SimpleApp and make sure the Target Runtime is the Apache Tomcat that you set up in the configuration. Click Finish. Eclipse will create the project for you. If this is your first web project, you may have to accept a license agreement.

    tutorialdebugging3.png

    If you haven’t already done so, download the ThinWire SDK from http://www.thinwire.com/download.html. Extract the zip archive, and copy the tree JAR files from demos/playground/WEB-INF/lib (thinwire.jar, retroweaver-rt.jar, commons-fileupload-1.0.jar) to $ECLIPSE_WORKSPACE/SimpleApp/WebContent/WEB-INF/lib (where $ECLIPSE_WORKSPACE is the path of your Eclipse Workspace).

    tutorialdebugging4.png

    Back in Eclipse, right click on SimpleApp in the Project Explorer and choose Refresh. The three JAR files should now appear under Web App Libraries.

    tutorialdebugging5.png

    At this point you should have a Dynamic Web Application Project with the ThinWire Runtime and support libraries. Let’s write some code.

    Creating the ThinWire Application

    Right-click on Java Resources: src and choose New –> Package.

    tutorialdebugging6.png

    Make sure the Source folder points to SimpleApp/src and set the package name to thinwire.apps.simple. Click Finish. Right-click on the thinwire.apps.simple package and choose New –> Class.

    tutorialdebugging7.png

    Make sure the Source folder and Package are correct. Call your new Class Main and check the box to create the public static void main(String[] args) method. Click Finish. Eclipse will generate the following java code in a file called Main.java:

    package thinwire.apps.simple;
    
    public class Main {
    
        /**  
        * @param args  
        */
    
        public static void main(String[] args) {
    
        // TODO Auto-generated method stub
    
        }
    }
    

    We’re going to create a simple application that presents the user with a Dialog asking for their name. When the user types their name anc clicks the OK button, the Dialog closes and another Dialog appears to greet the user by name.

    The first thing we need to do is import the ThinWire UI Package and the ThinWire Event Package:

    package thinwire.apps.simple;  
    import thinwire.ui.*;  
    import thinwire.ui.event.*;
    
    public class Main {  
    

    The thinwire.ui package contains the classes for all of the user interface components provided by thinwire. ThinWire contains over 20 components, but for this application will will be using only Divider, Label, TextField, Button, and MessageBox. The thinwire.ui.event package contains the event listeners for the UI components. In this application we will be using an ActionListener with a Button.

    The creation of a ThinWire web application is very straightforward and is very similar to creating a standard desktop application. Basically all we do is:

    1. Create new instances of Dialog, Label, TextField, and Button,
    2. Set the Text of the Label to somethin descriptive,
    3. Add an ActionListener to Button,
    4. Add the Label, TextField, and Button to the Dialog
    5. Display the Dialog

    The code looks like this:

    public static void main(String[] args) {  
        final Dialog dialog = new Dialog("Simple ThinWire Application");
        
        // The position of the Dialog is relative to the browser  
        dialog.setBounds(25, 25, 215, 210);  
        Label label = new Label("Hello, what is your name?");
        
        // The position of the Label is relative to the Dialog  
        label.setBounds(5, 5, 200, 25);
        
        // the Dialog and TextField are declared final so they can be  
        // refereced inside the Button's ActionListener  
        final TextField input = new TextField();  
        input.setBounds(5, 35, 200, 25);
        
        Button button = new Button("OK");  
        button.setBounds(55, 65, 100, 25);
        
        // When the button is clicked, close the dialog and greet the user  
        button.addActionListener(Button.ACTION_CLICK, new ActionListener() {  
            public void actionPerformed(ActionEvent ev) {  
                dialog.setVisible(false);  
                MessageBox.confirm("Hello " + input.getText() + "!");  
            }
            
        });
        
        dialog.getChildren().add(label);  
        dialog.getChildren().add(input);  
        dialog.getChildren().add(button);
        
        dialog.setVisible(true);  
    }  
    

    Once you have finished typing your code, save the file.

    Configuring the ThinWire WebServlet

    Now, we need to configure the web app. In the Project Explorer, expand the Deployment Descriptor tree element. Right-click on Servlets and choose New –> Servlet.

    tutorialdebugging8.png

    Check the box next to Use existing Servlet class. Click Browse and choose WebServlet. Click Next.

    tutorialdebugging9.png

    Add two Initialization Parameters:

    Param1 (the name of the class with the main method):

    name = mainClass
    
    value = thinwire.apps.simple.Main
    

    Param2:

    name = extraArguments
    
    value = initParam,clientInfo,header
    

    Select the only URL Mapping in the list, click Edit, and change it to “/” (without the quotes). Click Next.

    tutorialdebugging10.png

    Uncheck all the boxes and click Finish.

    Eclipse then writes this configuration information to WebContent/WEB-INF/web.xml. Your servlet is configured. Let’s run the app.

    Run the Application

    Right-click on SimpleApp in the Project Explorer and choose Run as –> Run on Server

    tutorialdebugging11.png

    Make sure that the Tomcat server you configured is selected and click Finish. Eclipse then starts Tomcat and launches a browser pointed to your web app.

    tutorialdebugging12.png

    We have a Dialog with a Label, TextField, and Button. You can drag the Dialog around the screen if you like. Type your name in the TextField and click the Button.

    tutorialdebugging13.png

    The MessageBox component functions like a JavaScript alert (although you can do more with a MessageBox such as include an image, display multiple buttons, and include any ThinWire component). When you click OK, the MessageBox closes and the app is done. Back in Eclipse, right-click on the Tomcat Server and choose Stop.

    Debug the Application

    This is a very simple application, but in the case of more complex web applications, you may need some assistance in debugging your code. Since a ThinWire application is written in pure Java, we can fully utilize Eclipse’s built in debugger.

    In the code editor pane, find the first line of code that executes in the main method, and double-click in the left margin. A blue dot appears in the margin indicating a break point has been inserted. Now, right click on SimpleApp in the Project Explorer and choose Debug as –> Debug on Server. Click finish. Again Tomcat starts and the browser is launched. This time, Eclipse comes back into focus in the debug perspective. You may now step through the execution of your app as you watch the variables change.

    tutorialdebugging14.png

    When you’re done debugging, close your browser and stop the server.

    Export the Application as a WAR archive

    There’s only one more thing left to do: deploy the application. Eclipse WDP makes this extremely easy. Just right-click on SimpleApp in the Project Explorer and choose Export –> WAR file.

    tutorialdebugging15.png

    Choose a name for your WAR file and Eclipse will create the archive ready to be deployed onto any Java Servlet Container.

    This is just one method for creating ThinWire Rich Internet Applications. We took advantage of several advanced features of the Eclipse Web Tools Project, but really the only things a developer needs to create a ThinWire application are the ThinWire library JAR files, a Java complier, and a text editor. The only thing you need to run a ThinWire application is a Java servlet container. With ThinWire, creating Rich Internet Applications are as simple as creating desktop GUI applications.

    → 2:08 PM, Aug 23
  • Towards the Optimal Javascript Inheritance Technique

    Lead developer of the ThinWire Framework Joshua Gertzen has written an article going over existing approaches to implementing OO inheritance in Javascript (including the famous example by Douglas Crockford) and explains the final solution that they needed on the ThinWire framework for super class method calling.

    read more | digg story

    → 9:18 AM, Aug 21
  • The Secret of JavaScript Class Inheritance and Polymorphism

    While there are many methods that attempt to make JavaScript into an Object Oriented Language, most fall short when it comes to the ability to call methods on parent classes. This article analyzes several broken approaches, including the famous one by Douglass Crockford, and then presents a working solution.

    read more | digg story

    → 11:19 AM, Aug 15
  • ThinWire v1.2 beta2 Released

    After several weeks of hard work, the next beta has been released.  You can read all about it at the ThinWire Blog.  The main two things are the ability to change the style of each component or the entire application at a global level through a properties file, and a major performance enhancement minimizing client-server traffic.

    My main contribution to this release is the RangeComponent interface and two component implementations of this interface: Slider and ProgressBar.  The progress bar is very useful for providing feedback to the user while your application is doing some sort of processing.  The slider is used for selecting a numeric value from a specified range of values.

    As this release was mainly about style, I have revamped the look of ThinWire Mail (my demo application built in my spare time).  Today we are also announcing live demos of ThinWire, so you can click here to try out ThinWire Mail without having to download anything.

    ThinWire Mail Demo

    Playground Demo

    Download ThinWire v1.2 beta2 SDK

    → 9:18 AM, Aug 7
  • Star Trekkin

    Ok, so I’m in this weird Star Trek mood today. [youtube=www.youtube.com/watch

    → 9:57 AM, Aug 4
← Newer Posts Page 13 of 14 Older Posts →
  • RSS
  • JSON Feed