Utility

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. ;)

Enable Tethering on iPhone 3.0

Tethering iPhone 3.0I found this page that sends you via email the right “Profile” for iPhone 3.0 to enable tethering.

No Jailbrake or Unlocking required: it just works.

After you install the profile, enable Tethering and follow the instructions on the phone.
If you decide to use Bluetooth, after you pair the device with your laptop, just configure it as “network port” (on Mac it will be almost automagic!).

Performances are pretty good, I must say.

Via: Melablog.

Browser Adaptive CSS with AppEngine

As I said, I’m doing some stuff with Google AppEngine. And, of course, I’m facing the usual problem of Browser Incompatibility:

Browser Incompatibility
Browser Incompatibility ;-)

=Browser Incompatibilities: the Most Common Problem=
The most common problem for Web Site developers is the fact that every browser treats HTML Tags, CSS and Javascript in it’s own way.
This Recipe tries to address one of the problem I faced the most: having a slightly different CSS for every Browser.

=The Usual Solution=
The usual solution is to load every time a different CSS depending on the Browser. But this solution has some side effects:
- It’s difficult to Maintain: very hard because every update to the style needs to be applied to multiple files
- It’s Boring: for the above reason
- It’s Not Cool: again, for the same above reason

So, what I did is to build a very simple solution, using the Template Engine and applying some of the concepts I learnt studying appengine and at the Google Developer Day 2008.

And, because Google built this very simple but useful Google AppEngine Cookbook application (based on appengine itself ;-) ), here is it.
Enjoy!

Personalize your $PS1

My $PS1 Variable
Mine looks like this.
A very patriotic one, isn’t it? ;)

The code to make the Bash prompt looks like mine is (~/.bashrc):

case $TERM in
	xterm*|rxvt*)
		TITLEBAR='[\033]0;\u@\h:\w\007]'
		;;
	*)
		TITLEBAR=""
		;;
esac;

PS1="${TITLEBAR}\n[\033[0;0m][\033[0;32m]time: \
[\033[0m][\033[1;31m]\t[\033[0m][\033[0;0m]]-\
[[\033[0m][\033[0;32m]host: [\033[0m]\
[\033[1;31m]\h[\033[0m][\033[0;0m]]-\
[[\033[0m][\033[0;32m]user: [\033[0m][\033[1;31m]\u\
[\033[0m][\033[0;0m]]-[[\033[0m][\033[0;32m]bash: \
[\033[0m][\033[1;31m]\v[\033[0;0m]]\n\
[\033[0;0m][[\033[0;32m]cwd: [\033[0m][\033[1;31m]\w\
[\033[0m][\033[0;0m]]# "

Thanks to Bash Prompt HOWTO.

Loop Rebooting iPhone: how to fix it

I was playing with my Jailbroken iPhone when I decided to install OpenSSH and login. 1 minute after I discovered there is a password I should use to login:

  • for user root is alpine
  • for user mobile is dottie

After I connected to my loved iPhone trough SSH (don’t be impatient: it takes a minute or two for it’s ARM cpu to generate the Keys), I changed straightaway the password for both the above named users (using just passwd).

That practically screwed my Apple jewel: as soon as rebooted it entered in a “Loop Rebooting” status, that made it impossible to use.
Why? Because, of course, it’s a Unix system, and the Graphical Interface itself (and I’m sure also other applications) need to “log-in” in the system. Changing the password in the “normal way” made an un-fixable mess.

So, how to fix this? Simple! Just reset the Phone.
The steps to follow are:

  1. Connect your phone to the Mac/WinPC you last synched it
  2. Hold down the top right button [SCREEN-LOCK button] and the round bottom middle button [HOME button] for about 10 seconds waiting for the screen to turn off
  3. When the screen turn off, release ONLY the top right button and continue to hold until iTunes recognize it and put it in Recovery Mode
  4. Follow the iTunes instruction to Recover it
  5. Note that iTunes will also ask if you want to restore iPhone in the status it was at the last Sync or just clean it completelly (thanks Apple to be so Great!)

Now my iPhone can be Jailbroken, again! ;)

iSync and SonyEricsson Symbian/UIQ 3.0 finally speaking

W950i
Thanks God, now I can iSync!!!

As someone probably remember, I switched from an Nokia E70 to a Sony Ericsson W950i.

In the beginning, it was not possible to synchronize my iBook with my new smarth-phone because of a “strange” implementation of the SyncML protocol on Sony Ericsson/UIQ 3.0 phones.

A lot of people has tried to figure out how to do it (Google for it), failing! But now Sony_Ericsson has finally released the relative plugins:

Enjoy! ;-)


Update 15th August 2007: BTW, the plugins (I tested on only the one for W950i) doesn’t synchronize Tasks (Todos). I really don’t know why ( :?: ). But it’s already a good lip ahead.