Posts tagged reduce

Serverless chat to reduce office distance

This idea comes out for an old university-time idea: to write a serverless chat application. Of course, I’m aware of the complications and the problems that using Broadcasting could create, so this problems would be took in consideration by design.

Office

But why now? I was thinking of a way to reduce the “office distances”: making easy to connect with a person who works in your own office. I know, it sounds a bit “creepy” to depend on an application to do that. After all you could just stand up and go to the colleague’s desk. And that’s what I’d normally do: nothing impossible.

But I can see that this is not always the case for every personality, and, sometimes, I fall in the same “shyness” (since in UK, no one believes me when I say “I’m shy”, but I actually am: I just use jokes to relax and break-the-ice). So months passes by, you never learn the name of some colleagues and so on. After all how many times you work in projects where more than 10 people are involved?

Acceptance-less

A system like this could explicitly avoid concepts like “accept a contact in your contact-list”: the contact list would be the list of all the clients connected to the network, no one excluded. I know you could probably do this kind of stuff configuring accordingly some server chat, but you need:

  • Infrastructure, set up by an IT department
  • Maintenance, provided by an IT department

Both this things are normally very rare resources to have in a classical office environment. IT is always evil ;-) . Am I not right?

Cross platform by design

I have in mind Qt as the framework to build something like that. It already covers the most of the desktop environments, and it can be set to integrate nicely. Not like Java. :-P

Features? No, for now brainstorming

Yeah, I could start to write a long list of all the features I think such software should have, but this post was more to ask the micro-crowd that reads my blog “what do you think of such an idea?”. Any idea will be took in consideration.

Features

Ok, that’s what I have in mind for now:

  • Acceptance-less contact-list (I believe that’s a core one)
  • Chat layout built into a WebView: styling through plugins of CSS(3) files
  • Drag and Drop file-transfer (no-passthrough-server: imagine the speed on a lan!)
  • Encryption: communication can be encrypted, encrypting the socket traffic one has opened with another client
  • Position: this could be like a “status” info, but allowing the person to pin him/herself on a Office map, so that can be easy to find

Please advice for more ;)

And after this chat?

Just stand up and go there: it’s not like your colleague is going to harm you or something. ;)

Apache Hadoop on Mac OS X

Hadoop
For some reasons I started to play with Apache Hadoop (Core):

Hadoop is a software platform that lets one easily write and run applications that process vast amounts of data.

Here’s what makes Hadoop especially useful:

  • Scalable: Hadoop can reliably store and process petabytes.
  • Economical: It distributes the data and processing across clusters of commonly available computers. These clusters can number into the thousands of nodes.
  • Efficient: By distributing the data, Hadoop can process it in parallel on the nodes where the data is located. This makes it extremely rapid.
  • Reliable: Hadoop automatically maintains multiple copies of data and automatically redeploys computing tasks based on failures.

Hadoop implements MapReduce, using the Hadoop Distributed File System (HDFS). MapReduce divides applications into many small blocks of work. HDFS creates multiple replicas of data blocks for reliability, placing them on compute nodes around the cluster. MapReduce can then process the data where it is located.

Hadoop has been demonstrated on clusters with 2000 nodes. The current design target is 10,000 node clusters.

I followed the Quickstart guide and I can confirm that it works on Mac OS X too, but I managed only to make it run in “standalone” mode: usefull for first-stage development and debugging.
More >