Thursday, November 29, 2007

Master Mouse Control Feature

In the just released update to Yakkle (v0.5.3), we added a feature called "Master Mouse Control." This feature allows the person sharing their desktop to more easily regain control back from a remote user that has been allowed mouse and keyboard control.

With Master Mouse Control, all the desktop sharer needs to do is move their mouse and they will regain control back from a remote user. Control is automatically retained by the desktop sharer for 5 seconds... which we feel is long enough to allow the sharer to be able to disable control previously granted to a remote viewer, but not too long when you want to again allow the remote viewer to have mouse and keyboard control.

In addition to Master Mouse Control, the following enhancements and fixes are included in v0.5.3:

  • Improved desktop sharing efficiency. We have improved on Yakkle's already efficient screen capture algorithm to give even more CPU cycles to your applications when desktop sharing.Improved voice experience over jittery networks.
  • Improved voice experience over jittery network connections. We have tweaked some parameters on our proprietary voice over IP algorithms to provide an even better voice experience over jittery networks (all while continuing to provide lossless, 16 bit audio).
  • Fixed several bugs reported by our user base. We have fixed several bugs reported by our user base in the chat window area when chatting with multiple users at the same time.

As you probably already have experienced, when you fire up Yakkle it will automatically detect that a new version is available and give you the option to upgrade right within the application. You can also update your version of Yakkle by re-downloading it from our websiste http://www.yakkle.com/.

Friday, November 23, 2007

Building Yakkle (Part 4: Object Design)

As stated in our last Building Yakkle post, we (the ZenViva Guys) first outlined four of our primary distributed objects. These objects were derived by using a Top-Down Design approach.

Defining Yakkle's Distributed Objects
We identified the primary components: User, Texting, Voice, and Desktop; and then our secondary or helper components: Supervisor, Operator, and Session (a.k.a actively yakkling).

We separated our objects in two categories to help focus our efforts. First, the primary objects had technology requiring some prototyping and proving out (i.e. was it possible to do). The secondary objects had organizational and managerial responsibility and thus could be implemented later.

Since the “ZenViva Guys” are composed of server and user-interface (UI) guys, the server guys defined the distributed object interfaces (a.k.a our API) to be used by internal services, as well as, the Yakkle UI. By defining the objects and interfaces first, we created a development process that allowed for the guys to work in parallel.

The defining of the User and Texting objects went through some interesting design evolution. One of our fundamental design choices was to integrate with the popular XMPP Instant Messaging protocol. As a result, the User and Texting objects are not distributed objects with state and behavior, but distributed interfaces since XMPP provides all the state and behavior we needed. So our design was to objectify the XMPP services and make them available in a distributed sense.

Our voice and desktop objects needed a bit of prototyping. We had questions on whether the Java platform could be use to create high quality voice and remote desktop services in real-time, whether distributed objects are a good medium for real-time environments, and lastly, whether we could use the UDP connection less protocol for some of our connection oriented services.

In Our Next Post
In our next building Yakkle post, we'll discuss how to write user-interfaces using distributed objects and in subsequent posts we will continue to describe our design by diving deeper into the world of distributed objects. Until then, if you would like to experience the result of our works go to www.yakkle.com and start Yakkling today.

Wednesday, November 21, 2007

Introducing Conference Tabs

When using a typical collaboration or chat tool, you get to send instant messages to someone who can then reply back. In practice, our Yakkle users are connecting with 2 or more users simultaneously and requested the ability to send one message to everyone in their session. We already had the "Send All" button for sending one message to everyone, but users were forgetting to press it and were just entering their message and pressing "enter".

Introducing Conference Tabs.
When you start Yakkling with someone on your Contacts list, you get instantly connected to them, a Conference Tab is automatically created, you hear their voice and you can see their desktop. You can then bring additional contacts into this session. Now you all hear each other and you can all see each others desktop. Here's a screen shot of a 3-way Yakkle session:



At the top of your Yakkle tab area, your fellow Yakklers are listed and your user icons will animate when someone is speaking so you can see who is talking. At the bottom of your Yakkle tab area is the IM/text messaging area. Entering text into this tab is sent to everyone in your session, similarly incoming messages from your Yakklers are placed here. However, should you want to send a private message to someone you are Yakkling with, you can go to their tab, enter your message, hit return and only they will get the message.

Try it out yourself. Go to www.yakkle.com and get your free download now and let us know if there's a feature you want to see...

Monday, November 19, 2007

Building Yakkle (Part 3: MyOODB)

So you've decided to change the world by writing the coolest Internet application and you'd like to hear how we built ours. This and the next several posts will focus on what makes up Yakkle and will be geared towards software programmers.

Nowadays there are so many off the shelf software components to help you implement your idea, some commercial, but many are Open-Source and free. Since most reading this blog will be building their application out of their Garage we're recommending you choose open-source. Open-source software has a large community and can be really good. You just need to know what you need and where/how to look. Yakkle for instance, gets many of its components from open-source. Even our development tools are free and/or open-source.

Like we mentioned in a previous post, Yakkle uses a Distributed Object Architecture. This differs greatly from traditional client/server or even peer-to-peer applications. Distributed object software requires a new way of thinking that changes the very nature of the design. Now such architecture is not the Holy Grail, but it does change the way one approaches design. It puts an emphasis on information theory and data modeling. In fact, it extends object-oriented design across application boundaries; a holistic approach to software design.

The MyOODB Framework
For Yakkle, we based our Framework on the MyOODB project. MyOODB is an open-source, Java based software framework. Some of our Design Patterns were derived from the open-source txObject project.

Both projects provide a framework, design philosophy, and Software Components. It is important when designing your own architecture that you add such concepts into your development.

Distributed Object computing can be seen as Object-Oriented programming without bounds. Therefore our first step was to define the objects a Yakkle application would need to share in its world. For Yakkle to be a collaboration application, it needed things like Users, Voice, Desktop, and Text Messaging characteristics. So our first step was to define theses objects and their behavior. Just like a standalone object-oriented application design, but with the unique understanding that these objects would also be used in a distributed sense.

In Our Next Post
In our next post with will go into detail on how we design and implemented these objects, as well as, their user-interface interactions. Until then, if you would like to experience the result of our works go to www.yakkle.com and start Yakkling today.

Saturday, November 17, 2007

New Yakkle Website

When we first had Yakkle ready for testing with the user community, we knew we would need a web site and we would need to communicate - What Yakkle Is?

We're proud to announce that our web site is up and running, complete with a "What's Yakkle" slide show and commentary to take you quickly through the product so you can see how easy it is to use. Our goal all along has been "click and go" and we think we've achieved that.

In designing our web site, we wanted to achieve simplicity, elegance, ease of use, and extendability. Being developers, we think with objects and repeating any code more than once means the design has flaws.

Enter style sheets. Yet another syntax to learn, but the effort is worth it!
We've actually ended up with just a few lines of html for each of our pages and the rest is common across all the pages. With the style sheets we can now change our web sites look and feel with just one edit.

A word of advice. If you are designing a web site, you are sure to get lots of feedback, so make sure you organize your pages, your thoughts and can easily make changes via your style sheet. Oh yea, and use Yakkle! You can share your browser to your coworkers, clients, family or friends, and let them give you instant feedback on what they like, don't like. Then make your edits, refresh the browser and collaborate until everyone is happy with the results....

....we do this every day and so can you. Come experience Instant Collaboration for yourself, check out www.yakkle.com and start Yakkling today.

Let us know how you like the web site too!

Wednesday, November 14, 2007

Yakkle Beta Update is Ready

The next time you start up Yakkle, you may see a message that a new version is now available and you have the option to download it. What’s in this new version? Here’s the list:

  • Want to quickly see how many of your contacts are “online”? The Contacts Group label now shows an online count, for example, if you have 6 contacts in your Family group and 3 are online right now, your group label will read: “ Family (3/6) “.
  • Want to insert a carriage return while you are typing an Instant Message to someone? Today, pressing the “enter” key will send your text message. Now, press “shift” + “enter” and you’ll insert a carriage return into your message.
  • How do I know if someone is sharing their desktop to me? The desktop tabs, located on the right hand side of the Yakkle application, become active when someone is sharing their desktop. With this release, the desktop icon will become animated when someone is sharing their desktop. This should grab your attention and let you see quickly and easily which desktops you can go to.
  • Want to control the sound effects? With the Yakkle->My Configuration menu you can turn on or turn off sounds when a Contact connects to you, when a text message arrives, and when a contacts status changes.
  • When using Yakkle, you will get popup messages in the lower right hand corner of your PC screen when someone adds you, deletes you, wants to Yakkle with you, etc. These message will automatically scroll off you screen after a few seconds. Now you can close them immediately by clicking on their title bar “X” button.
  • There are a few other minor tweaks and bug fixes with this new beta version as well.

    Want to let us know about a feature request, defect or issue you are having with Yakkle? Use the Help->Feedback form and we’ll consider your feature for our next update.

    As always, come experience Instant Collaboration for yourself, check out www.yakkle.com and start Yakkling today.

Monday, November 12, 2007

Building Yakkle (Part 2: Design Philosophy)

In our last post we talked about the first steps in building a next generation, Internet based application: finding a problem you feel passionate about solving and picking a software architecture. This post will focus on our belief in object-oriented design and our implementation choices.

Have a Design Philosophy
"Oh wonder! What noble objects these are! It must surely be a brave world that has such objects in it."

Through our experience in building large scale management systems, we have seen the benefit to applying an object-oriented design paradigm. These are well documented so we don't need to repeat them here.

For the development of Yakkle, we developed a new, slightly expanded object-oriented design philosophy: "Don't stop programming with objects when high-performance applications cross computing boundaries."

We believe that distributed object computing should not send developers running for the door, but enable them to build the next network based "killer app" by allowing quicker, more agile development.

We have found that distributed object applications are certainly not impossible, but do represent leading technology that requires some investment in thought. And like all good investments, will pay dividends in the end. Our request is for you to come along with us as we show how Distributed Object Architectures make complex network applications easier to build, understand, and deploy.

Pick a Framework
Having a philosophy is important to guiding your implementation decisions, but in software the proof is in the implementation. To deliver on our idea, we needed pick a distributed object-oriented framework that could provide the high level design concepts we desired with the low level performance we demanded. We started by basing our architecture and design around two open source projects: MyOODB and txObject.

In Our Next Post
In our next post we will talk more about myoodb and txobject and how they can be used to build distributed object-oriented applications. Until then, if you would like to experience the result of our works go to www.yakkle.com and start Yakkling today.

Sunday, November 11, 2007

Building Yakkle (Part 1: Getting Started)

Now that we have introduced Yakkle, we would like to share how we built both the application and infrastructure around it. We hope that by sharing our experiences and lessons learned we will help others who also have the desire to participate in what we feel is a golden age of self inspired, self supported software development.

Find a Problem You Feel Passionate About Solving
In our full-time jobs we have been forced to endure many, shall we say, sub-optimal collaboration experiences with existing for-purchase online meeting and desktop sharing products. We also frequently see our peers combining a variety of free tools to collaborate, but still struggling due to the lack of “live” visual interaction.

So we asked ourselves, “Can we combine the best aspects of all these applications and tools to create a best-in-class collaboration product, and can we do it in a way is essentially free?”

We found that the answer to our question is yes, and the result is Yakkle.

Get Started By Picking a Software Architecture
Of course, Yakkle didn’t just happen, it had to be built. The first thing we needed to do to create it was pick the right architecture to create the application. We needed an architecture that would allow us to develop quickly at a high level of abstraction, but yet have the performance to achieve the demanding network centric operations of remote voice communications and desktop display.

With our background in distributed, object-oriented design, we knew that it would give us the agility to quickly develop any application, but we didn’t know if it could give us the performance we needed. With that question left to be answered, we decided to forge ahead.

In our Next Post
In our next post we will pick up with more on our distributed, object-oriented architecture and implementation choices. Until then, if you would like to experience the result of our works go to www.yakkle.com and start Yakkling today.

Thursday, November 8, 2007

What is Yakkle?

In our last post we talked a bit about ourselves. Now let's turn our attention to our first product, Yakkle.

Yakkle is a revolutionary new application that provides Instant Collaboration.

Yakkle combines the best features of existing instant messaging (IM) and voice (VoIP) applications with the ability to share desktops in real time, all within a single application.

It's kind of a triple-play. Now you can connect with anyone on the Internet, send them a text message, speak to them with superb sound quality, and show them anything you have on your PC, like photos or documents. You can even let them control your mouse and keyboard from their computer. Then without having to perform any disruptive application reconfiguration or restart, you can turn things around and have the person you are Yakkling with share their desktop back to you.

Even better, with Yakkle you are not limited to collaborating with just one other person, but you can instantly collaborate in a group. Unlike existing desktop presentation solutions, Yakkle doesn’t require you to purchase a premium service to collaborate with more than one other person. Yakkle also doesn't require you to set up a meeting or email out special pass-codes. With Yakkle you just find some folks in your contact list that are online and start Yakkling!

We believe that Yakkle is a first of its kind application providing a unique way to truly collaborate. To experience Instant Collaboration for yourself, check out www.yakkle.com and start Yakkling today.

Wednesday, November 7, 2007

Welcome to the Yakkle Blog

Yakkle is the first product brought to you by the ZenViva guys (a.k.a. Zenviva, LLC). We created this blog to let you know about exciting things going on with Yakkle and with us. Along the way we also plan on sharing knowledge we have gained during the creation of Yakkle as a software application.

But first a bit about us...

We are a small group of technologists looking to develop the software applications of tomorrow. We bring together a diverse skill set of system architecture, high performance distributed object expertise, Java development experience, industry knowledge, web, graphics and branding know how and go to market strategies. We pride ourselves in working on and solving technological problems that others say "Can't be done."

In subsequent posts we will talk more about Yakkle and all the innovative things you can do with it, but it you can't wait until then you can go to http://www.yakkle.com/ right now and watch a demo, or even better yet download it and start Yakkling!