• Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar

BushChang Family Web Site

Home of Steve, Christine, Katherine, Ally, Rosebud, and Rex

  • Home
  • Family
    • Allison
    • Katherine
    • Christine
      • Changs
    • Steve
      • Bushes
      • Fialas
      • Olbrights
      • Ramsay
      • Vasvarys
  • Pets
    • Britt
    • Bisco
    • Rosebud
    • Rex
  • Friends
    • LeVines
    • Patty Salgado
  • Holidays
    • 4th of July
    • Birthdays
    • Christmas
    • Easter
    • Father’s Day
    • Halloween
    • Mother’s Day
    • New Years
    • Thanksgiving
    • Valentine’s Day
  • Hobbies
    • Basketball
    • Biking
    • Girl Scouts
    • Home Networking
      • Webcam
    • Photography
    • Running
    • Skating
    • Soccer
    • Swimming
    • The Game
      • PuzzleHunt
    • Violin
  • Volleyball
    • Sudden Impact
    • DaKine
    • Island Thunder
You are here: Home / Archives for Hobbies / Home Networking

Home Networking

Port Magic Alpha Released

Last week, Pure Networks released an alpha version of Port Magic on the web. We got a lot of positive feedback for the problem we’re trying to solve: automatically open ports on an Internet gateway when a user plays or hosts an online game. Modern Internet gateways (LinkSys, Dlink, Netgear, etc.) all interact with the user using a web interface. To configure your Internet Gateway, you type in http://192.168.168.1/ into your web browser. Since the UI is based on HTML, the Internet Gateway vendor has very few tools to work with to design good UI (wizards, state storage, controls). Most of the configuration UI is simple HTML controls they have a 1:1 correspondence with a setting in the gateway.

Port Magic automates the population of the port range forwarding dialog of a LinkSys Internet Gateway. We chose to use the http protocols over UPnP because using http works across all versions of the LinkSys Internet Gateway. We caught some heat from a couple of UPnP zealots on the forums for picking http over UPnP. We’re not anti-UPnP or trying to develop a competing protocol. We set out to solve this customer problem of automatically opening and closing ports when I launch and close an online application.

Free Xbox from Pure Networks

Just in time for the holidays, get a chance to win a free Xbox from Pure Networks by completing this short survey about home networking. The winner will be drawn at random from all entries on January 30, 2003. Click here to view official contest rules.

Pure Networks will use the survey information to help build better home networking products for our customers.

DynaCenter is now Pure Networks

It’s official. DynaCenter is now Pure Networks, Inc. We published the new web site http://www.purenetworks.com/ designed and coded by Rob. I drew the task of switching over our email to purenetworks.com. It took a while for me to figure out how to get the Exchange server switched over. It turns off that recipient policies is the trick. It allows you to quickly add a new @domain.com name to each name in the address book.

PHP Content Management Systems

Content Management (cont). I’ve been looking at different PHP based content management systems. One interesting metaphor is a scrapbook: http://craftysyntax.com/myscrapbook/. Novice users can associate the chapters and pages as containing “grouped content”. While I think this is an interesting idea, I think over time people would find it too cute. It’s a lot like Microsoft Bob. Bob usability tested well and users felt it was “easy” to understand and use. However, over days of usage people found Bob to be annoying and the “ease of use” features that helped them get started were now in the way of getting stuff done.

So, how do you make content management “easy” for users? My view is that you need to use the file system. Users have been socialized that the file system is a place where you “save”, “launch”, “view”, “copy”, “cut”, “paste”, “properties”, and “look” for items. Users understand these concepts from years of interacting with the file system.

What are the key concepts for “dynamic web pages”?

  • Rendering. Rendering is the process of combining code, content, and user properties into HTML which is rendered by a web browser like Internet Explorer. Rendering can happen on the server, client, or a combination of both. There are advantages and disadvantages to each approach. The key advantage of server rendering is that server applications (databases, authentication, content mgmt) can be used by the web server to render HTML tailored to a specific user. The key disadvantage is that the web server does all of the processing which results in having to purchase more servers as your computation or user base increases. The key advantages of client rendering are that all of the processing occurs on the client, the client can easily aggregrate content from multiple web sites, and the client can take advantage of applications running locally. The key disadvantages are browser capability between platforms and vendors and reliance on “web services” (more on this later). The final rendering is compilation. Compilation is where you take a template and compile or transform it into HTML. Fields or variables in the template are combined with data to create custom versions of a template for a particular category, topic, or page. Think of it as mail merge. The right solution is a combination of client, server, and compilation with templates.
  • Editing. Editing is a familar term to most users expect editing in HTML is really programming. You’re in charge of writing text that controls the presentation and content. Early word processors marked up documents this way until Microsoft Word and others hid the formatting commands from the user (WYSIWG). Unfortunately, HTML isn’t a very friendly language to edit in. Tags like <TABLE BORDER=1 CELLPADDING=0 CELLSPACING=0><TR><TD VALIGN=TOP> are required to create a table. There are some good HTML editors out there but generally, users need to understand the underlying HTML to coerce the presentation to the right thing. Tricks like &nbsp;<BR> to force a non-empty table cell are common practice. HTML is content, layout, and presentation. Different sections of a web page require specialized editing tools.
  • Publishing. The web equivalent of saving and distribution via email is publishing. You publish a web site from a local staging location to the live web site. This means you most likely have two copies of your web site. One you’re editing and one that is “published” or publicly viewable. Most web pages are edited locally and published to a web server in the cloud. FrontPage, Homesite and other web publishing programs have a rich Win32 client that edits and maintains a local copy of the web site. A user can then publish the web site to their public server via FTP or FrontPage Server extensions.
  • Database. Most web pages are tailored with content or to a specific user. Users who want to create “dynamic web” pages need to understand databases because this is where all customization data is stored. Think of this as the data for a mail merge (rendering). Most databases are based on SQL which is a rich and powerful structured query language.

In sum, creating a dynamic web page isn’t as simple as writing a memo or piece of email. It’s programming. Users need to understand a lot of computer science concepts and how they interact to build a dynamic web page. The trick is how to make most of this transparent to the user while giving them the rich functionality, flexibility and individuality of statement this require.

More on this topic later this week…

Blogrolling

Blogrolling. Blogrolling is a simplified way of adding a list of URLs to your weblog. Your HTML page contains a client side JavaScript reference to a piece of dynamic JavaScript being rendered by the blogrolling server. You page requests a PHP page with your blogrolling user ID and a piece of JavaScript gets streamed back containing your links. All of the links are stored on the server and the blogrolling web site provides some editing tools that make it easy to add new links. One of tools is adding Blog this! to right mouse button context menu in Internet Explorer.

My weekend project is to duplicate the functionality of blogrolling in PHP and MySQL but hosted on my web site. The blogrolling site is down quite often (growing pains) so I want to have my site render the JavaScript back to the client. After I get this working, I’ll investigate creating and IE toolbar and doing the right mouse button context menu work.

Web Publishing Toolkit

Web Publishing Toolset. I’ve spent countless hours on bushchang.com trying to bend Active Server Pages, SQL Server, Passport, and IIS to my will. After much angst, I’ve finally given up. My newest toolsets are all open source: PHP, MySQL, and vBulletin. All installed on my Win 2K/IIS box without a hitch. I had to tweak MySQL a little to add it as an NT server running from d:mysql. You need to add a file called my.cnf to the root of your C: drive (c:my.cnf). MySQL looks here to find its installation and database directories. PHP has built in support for MySQL so it all just works.

Content Management System. In all of my years hacking web sites, the content management system always came last. This was true at Microsoft.com, MSN, and my home web site. A content management system (CMS) packages the web site up for the average user so they can use rich tools to publish content, news, and images. By definition a web site is dynamic and it’s incredibly hard to build a CMS that is flexible, easy to use, and powerful. To implement flexibility in terms of page layout, styles, and functionality you need a good content and code architecture. The fundamental rule is that code, data, layout, styles and content must be keep separate. To be easy to use, a CMS needs to provide the user with a high level abstraction for layout and rich editing tools optimized for each content module in a layout. A content module is a unit of functionality within a page (eg. weather section on my.msn.com). Each content module combines code (render weather based on zipcode) and data (zipcode) to generate an HTML presentation.

Individuality. Everyone on the web wants to express their individuality through their web site. How do you interject individuality into web publishing: Cascading Style Sheets (CSS) and “rendered” templates. Templates built using CSS allow a user to change the “look and feel” of a web site by altering a style sheet. CSS is as powerful as style sheets in Word but much harder to use because you have to do everything manually. However, once set up properly they allow you to quickly change the look and feel of a web site (color, font, backgrounds, etc).

Page Rendering. A “rendered” page combines code and data to “render” HTML back to the user. A rendered template uses preferences (eg CSS, directives) to coerce how the template gets transformed into HTML. Two models exist for “rendered HTML”: server and client rendered. Server rendered HTML is accomplished through a server side scripting language like ASP or PHP. A developer writes code that runs on the server and controls how the page gets rendered back to the client. Client rendering like a mail merge in word. You combine a source file and data to generate a static HTML page which you “publish” to the web server. Radio Userland and FrontPage are examples of client applications that manipulate HTML before publishing them to the server. The key benefit of HTML rendered on the client before publishing to server is that it’s fast. The server doesn’t have to run code to render the HTML pages before streaming them back down to the client. The key disadvantage is that the HTML is the same for every user unless you use client side JavaScript to alter the pages after they’ve downloaded to the user.

Ideal Web Publishing. So, what’s the web publishing solution. It has to be easy, flexible and powerful. It has to work for the power user (me) yet be simple enough for my wife to use. It needs to build community yet restrict portions of the web site to close family and friends. All of this needs to be packaged into a single solution and made EASY. More on this later…

« Previous Page

Primary Sidebar

Current Affliations

  • Steve’s Blog
  • Town of Yarrow Point
  • TEALS (Teaching AP CS)
  • Overlake School
  • Lakeside School
  • Seattle Youth Symphony Orchestra
  • Social Venture Partners

Alumni Of

  • Bing Ads
  • Microsoft Research
  • Pure Networks
  • Ignition Partners
  • Open Design
  • Microsoft
  • Stanford University

Posts by Month

March 2025
M T W T F S S
  1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31  
« Oct    

Archive

Local Weather

  • Local Weather

Administration

  • Log in
  • Entries feed
  • Comments feed
  • WordPress.org

Copyright © 2025 ยท Log in

5