Get to Know Your Fellow Netizens...Part II
(Read Part I here)
Like every great summer blockbuster blog entry, it just wouldn't be right if there weren't an even bigger sequel. So sit back and enjoy part II of the Q&A with your friends from Civil Netizen...
What is your overall design philosophy?
In our user interface designs, we tend to model the application as a sequence of “actions” instead of a set of “records” with relationships. Our focus is on the verbs, such as pack, send, track, pickup, unpack in the current beta version of the software. Each step of the sequence has very specific end goal. This allows us to tailor screen layout and language to aid the user on that just that one task. Most existing web applications try to model the nouns, such as an invoice, a contact, or a posting. Their verbs are usually something generic like add, edit, or delete. In contrast, we have designed screens (or UI panes) based on actions that the user performs while dealing with payment, encryption, real-time notifications, etc.
The action-sequence model could be seen as an evolution of the “wizard” approach, except in this new incarnation, we are not treating the users as novices, or worse, idiots. There are no generic “Next” buttons, though we try to place the default action as a button in the lower right hand corner. Since we have the power of hypertext within each screen, we can handle a lot of optional or branching elements via show/hide within the page instead of requiring users to repeatedly clicking “Next.” We have been working on interesting new hybrid desktop-wizard-meet-AJAX-web-app designs, and will give our users a preview on our Netizen Newsfeed blog to gauge how users and fellow designers feel about this UI design approach.
What are some of the technologies that you use?
The desktop application portion of Civil Netizen is built on top of Mozilla Firefox. Our application is constructed using XUL/JavaScript/CSS for the user interface, XPCOM as the component model, and C/C++ for networking and all the hard stuff. We have spent a lot of time developing a custom peer-to-peer network stack that would allow users from behind NATs of broadband routers to connect directly with each other without opening special ports or relaying traffic (sloooowly) through machines with open IPs. Our network stack is similar to the one underlying a peer-to-peer VPN product called Hamachi (www.hamachi.cc). Since more than 80% of our users (based on recent connection statistics) directly connect with each other, we are able to place almost no limits on transfer frequency, size, or download counts and still be a sustainable business. To facilitate distribution of really popular parcels, we plan to implement a variant of BitTorrent to speed up parcel transfer in the near future. This is kind of expected for any file transfer app nowadays…
Another way to think of it is that Civil Netizen is a web browser with a built-in web server. In turn, the parcel application is an AJAX application that runs entirely within Civil Netizen.
What features have other Netizens been requesting?
Our users are asking that we integrate Civil Netizen more deeply into the desktop operating system. The most popular request is to add a tray icon support in Windows so that Civil Netizen will minimize to tray when there is a transfer going instead of shutting down as it does now. We plan to implement this (overdue) feature and many others like it (e.g. context menus, file associations, slip attachment) in the next couple of beta releases.

Reader Comments