Posts in Category "General"

The Kiwi Team is Hiring!

Interested in working on a cutting-edge, Flex-based, “Web 2.0” project? Interested in building one of the first Apollo apps from the ground up? The Kiwi team is currently interviewing candidates for a senior engineering position. If you’ve got solid Java/OO skills (Flex experience is obviously a plus) and live in the SF Bay Area, we want to hear from you! You can find the job description posted here (search for “kiwi”, then click on “Computer Scientist”).

NoteTag Installation: Tips From the Field

Here are some “tips from the field” to help with the NoteTag installation process. If you have any problems (or suggestions!), add them to the comments for this thread.

1) There are a few references to “C:\Dev\workspace” in the installation guide. This is the suggested workspace folder location, but feel free to use any path.

2) With regard to the SSL keystore file, be sure that the name you use with keytool.exe is the same as the element in jrun.xml. For example, if the command to generate the keystore file is:

keytool -genkey -alias localhost -validity 9999 -keyalg RSA -keystore c:\notetag.keystore -keypass mypass -storepass mypass

then the SSL service in jrun.xml should look like this:

<service class="jrun.servlet.http.SSLService" name="SSLService">
    <attribute name="port">9100</attribute>
    <attribute name="keyStore">{jrun.rootdir}/lib/notetag.keystore</attribute>
    <attribute name="keyStorePassword">mypass</attribute>
    <attribute name="trustStore">{jrun.rootdir}/lib/trustStore</attribute>
    <attribute name="socketFactoryName">jrun.servlet.http.JRunSSLServerSocketFactory</attribute>
    <attribute name="deactivated">false</attribute>
    <attribute name="bindAddress">*</attribute>
    <attribute name="interface">*</attribute>
    <attribute name="clientAuth">false</attribute>

An Overview of NoteTag

The Kiwi team is focused on enabling developers to build read/write web components in Flex and Apollo. NoteTag is a proof-of-concept Flex 2.0 application which offers a solution to a common problem: how to keep track of tasks while taking notes for a meeting.

Let’s jump straight into the user experience. I’m in a meeting with my Kiwi cohorts, and I’m in charge of note-taking duties. I launch my browser, navigate to the NoteTag URL, and immediately start taking notes.

After the usual status round-robin, Darrick points out that there’s a bug which he needs to investigate further. Aha! We have our first task! I highlight the text of the task ("Need to locate RichTextEditor source") and click the "Tag as Task" button on the control bar. The task’s text now changes to red, and the property inspector at the bottom of the screen is pre-populated with values. I set the owner to "darrick" and continue taking notes.

When the meeting ends I click "Publish", and the note and tasks are posted to our backend. (More on that later.) If I want, I can browse through the previously-posted meeting notes in an RSS aggregator-like view…

.. but most likely, I’m done. Darrick, on the other hand, has some work to do. He connects to NoteTag and clicks on "My Tasks" to see his aggregated list of tasks. If the text of the task alone doesn’t provide the context he needs, he can click on the task to see the enclosing note.

After Darrick has finished his investigation, he needs to mark the task as completed. He checks the box next to the Task, and the task instantly turns from red to green in the note.

This is more than just a local change: anyone who views either the note or Darrick’s list of tasks will see that the task has been finished.

At this point you might be thinking, "I’ve seen plenty of applications that help people keep track of tasks. What’s unique about NoteTag?" Two things…

First, NoteTag is a completely free, completely open-source Flex 2.0 application. Want to figure out how we’re aggregating tasks? Just dive in to the source code. Want to see how we’re publishing notes to the web? It’s all there. Want to use our source code in your application? Help yourself! NoteTag should be a great resource for developers who are ramping up on Flex, and who want to understand how to build an app that involves more than a handful of classes.

The other unique thing about NoteTag is the backend: there is none! (Well, none that we wrote, at least.) Here’s where the notes are stored:

Blogger! (NoteTag also supports TypePad, and theoretically could use any service that supports the Atom Publishing Protocol.)

And here’s where we store references to the notes and tasks:

Delicious! Every note and task is tagged with information about the author, owner, status, etc., and points to the URL of the note on the blog server.

What this means is that NoteTag doesn’t replace existing workflows and services, it complements them. You can view your tasks in NoteTag, or you can log into your delicious account and use delicious’s support for filters, related tags, and tag clouds to view them in new and interesting ways.

All that being said — we on the Kiwi project think NoteTag will be less interesting as an end-user product and more interesting as an application that developers can use to learn how to build their own read/write web applications in Flex. In the next post, I’ll talk about the overall design and architecture of NoteTag, as well as the reusable components that we’ve developed.


File under: ,,,,,,,

Hello everyone, and welcome to the Kiwi Project blog. As our tag line says, the Kiwi Project is focused on creating read/write web components for Flex. What does this mean? 

Over the last year or so the Web 2.0 meme has grown phenomenally.  While the definition of Web 2.0 has been hotly debated, people are starting to focus on a fundamental attributeā€¦

Hal Stern: The Morning Snowman : Weblog

Everything that Tim O’Reilly posits as Web 2.0 examples is distinguished from a Web 1.0 counterpoint as being writeable. Three words: read-write web.

We couldn’t agree more.  In fact, from (the "new") Adobe’s perspective, we’ve been promoting the read/write web for years thru our Contribute product, which is both an HTML browser and a WYSIWYG HTML editor all in one application.

With the rising interest in AJAX and RIAs, it became important for us to understand how to empower our Flex environment to create read/write web applications. This means developing Flex components that understand specific Web 2.0 technologies such as RSS, blogging, tagging, and microformats. And with hints of Apollo emerging, this means understanding how to build Flex components that work both in the browser and on the desktop.

Thus the Kiwi Project was born.  The team is comprised of engineers who have been involved with the development of both Dreamweaver and Contribute, who are intimitely familiar with the challenges of read/write web applications.   The team also has experience in both desktop and web development, but like many of us at this time, is new to Flex development.  This blog will chronicle our experiences in mastering Flex and our progress in exploring and developing that set of read/write web components for Flex developers.

Our first proof-of-concept release is just around the cornerā€¦


Welcome to the project code-named Kiwi!  The Kiwi Project is focused on creating read/write web components for Flex.

Stay tuned…