Tuesday, December 18, 2012

Killing the mouse with firefox

As part of a 10-foot experiment, I decided to use only a keyboard. 
I'm currently on Ubuntu 12.04. 

To use your computer efficiently from a distance, you will need a complete wireless keyboard with arrows and numerical pad. If it even has an included mouse it may help you to start and in some circumstances (like controlling some javascript buttons) but it is counterproductive in general.

I recommend you install firefox with the following add-ins : 

-AddBlock Plus (nothing more painful than a blinking add on your fullscreen TV with sound)

-Custom New Tab (so that the focus is not lost when you create a new tab)

-Stylish (so that you can install a style to remove the scrollbars (totally hide scrollbars) as they would now be useless)

-Vimperator (it will take a little time to get use to it except if you are a vim fan but it will allow you to easily follow links)

In firefox check that the option : Display, Zoom, Zoom Text-Only is disabled, it gives poor results when you need to often zoom in and out like you will in a 10-foot experiment.

Useful key for Vimperator : Insert : toggle vimperator
                                                  f : show hints to follow

Useful shortcut to learn for firefox : zoom-in (Ctrl + "+"), zoom-out (Ctrl + "-"), back (alt + left); forward (alt + right), home (alt + home), arrows, new tab (Ctrl + t), rotate tabs (Ctrl + tab), fullscreen F11

There probably exist a plugin to be able to use Vimperator to launch flash video but I have not yet found it.

Choosing a new computer

My computer, a mid-high range laptop from early 2009, was quite old, and couldn't handle the work he was required to do. So I needed a new computer. Choosing a new computer is somehow quite a strategic move. I could go a few different ways. I will here try to explain my reasoning.

First I could follow the consumer trend and go tablet, keyboard, cloud. The plan is renting a dedicated machine for 45$ a month, to have high bandwidth and a non restrictive computer remotely controlled by a cheap tablet when need be.

This solution has the advantage of being able to be fully mobile and quite cheap. The main inconvenient is that this solution is still restrictive, and require lot of work to do natural things. Mobile platforms like iOS or Android are quite restrictive by default. The second non negligible inconvenient is that I lost control over my computing and my data. Third inconvenient is that I lose the ability to play powerful games mainly for latency issues (though it should change in the future when higher bandwidth network will be available).

Second I could go the laptop way. It's the old fashion choice. I guess it's quite OK, but rather expensive. It's expensive because computer seller would rather sell you some tablets, so laptops are becoming more expensive. Would have I selected this option, I would have chosen a Retina Mac Book pro, mainly for the display. But it's very expensive and the disk is so small, it cannot handle a correct triple boot computer.

Third choice, and the one I have selected, is to have a home desktop computer, for use as a home server. If you buy it from distributors, it's quite expansive because they take such a large margin to compensate for the lost market due to the arrival of tablets. But if you assemble your computer from new computer parts, and that's so easy for anyone, it's really cheap (less than 1000$), powerful (4 core, 8thread @ 3.5Ghz, 16Go Ram, 3 To hard disk), and customizable. Concerning display, you can use the living room TV screen, to enjoy a 10 foot-experience, raspberry-pi for display on any screen, and remoting with Splashtop for a fully mobile tablet screen experience.

This third option is I believe the smartest choice for about any home computing need, it will allow efficient use of both tablets, and clouds.





Splashtop

Splashtop initiates the new generation of remoting. It's like VNC but with sound, and so much faster with such a low latency that you can even play video games. VNC should have evolved this way long ago.

This a partially closed source shareware which is its main problem especially with regards to security. It is designed so that you can use your tablet as a screen to your computer.

It still misses a lot of platforms but it is currently rapidly evolving over the course of a few months.

Inconvenient : you need a SplashTop account which you can currently only create with the use of a tablet.

My current tests : streamer (beta) on Ubuntu, client on android iconia tab over a wifi local network.
Positive points : -Impressive performance
                          -Very responsive.
Negative points : -usb keyboard by default only partially supported (although it maybe because of the tablet) ; in particular the navigation keys (which are supported through VNC on the same tablet)
                            -real mouse supported in an unintuitive fashion.
                          -Stability problems (but it's only beta), if you don't have a fix ip, it will not work for a long time, you will lost connection without being able to reconnect. Some keyboard input on the client make the streamer crash. It crashed 3 times in 30 minutes. It sometimes even crash the unity desktop when used in conjunction with x11vncserver. 

Assemble your computer

This is the smart thing to do when it comes to computers. You have to assemble them yourself. It's fast, easy and will save you thousands of dollars. Simple how to :
(Browse http://www.rue-montgallet.com/ to easily filter components)

1) Choose your processor brand : mainly Intel or Amd
This is a personal choice though Intel have easier to find linux drivers, and are the only way to go for hackintosh.

2) Choose your processor according to your budget and computer need. The best computer power per $ is around a 350$ processor. Each processor has a specific "Socket" that will allow to interface with the motherboard. For example for Intel i7 3770K the socket is 1155.

3) Choose the form factor of your computer. Should it be small or big. Should it possible to add lots of cards in it. What your computer should look like. For example if you want a small computer you can choose the mini-ITX format.

4) Choose the mother board : It must have a compatible socket, and a compatible format, and a compatible chipset. The mother board is what will allow you to connect your computer to the world, so choose one with the functionality you need (like hdmi output, wifi, bluetooth, pci16x ports, usb3). It will have a ram specification frequency and maximum ram memory. And an hard drive format.

5) Choose the ram, with a compatible frequency in the allowed sized range, Most important criterion is size, then frequency, higher frequency ram is faster but more expensive per dollar, and the best speed / $ is for ram around 1600Mhz.

6) Choose your disk. Solid State Drives are silent and fast but small, ideal for system disks. Hard-drive are bigger but noisy and slow.

7) Optionally, if neither your processor or mother board has a graphical unit, you will need a graphic card. Choose one that will interface with the mother board. Check the compatibility on-line on the graphic card manufacturer site.

8) Choose the power block and box.
Should be compatible with the mother board format. It will contribute a lot to the noise level of the computer. Should be able to provide enough power. If you don't use a graphic card, and don't use a lot of power, use a mini-itx format you can use a silent small power source from mini-box.

My configuration : 680€ all tax included (less than 1000$), in France, probably cheaper in the US.

Processor : Intel i7 3770k (4 cores - 8 threads @ 3.5Ghz overclockable up to 5Ghz with water-cooling)

Motherboard : Gigabyte Z77N-wifi It has the mini-ITX format, dual Gigabyte, dual HDMI, usb 3.0, 2 sata III ports, one pci 16x port, wifi, bluetooth. (This mother board is a really good bargain)

Memory : Kingston 1600Mhz 16Go

Hard-drive : Baracuda 3To 7500rpm (quite silent)

Box : Elite Advanced 120 (quite silent), mini itx could have a much more smaller box, but this one allow for about any graphic card.

Power : Be quiet 480 W (quite noisy) but I will soon buy picoPSU-160-XT from minibox so that it become more silent

Graphic card : None

Display : Any recent Tv, although you will need a DVI monitor to access BIOS if it does not recognize your TV.

Operating System : Tested on Ubuntu 12.04 fully operational. Should work on Windows 8. Should work for hackintosh except for the integrated wifi.
Please do not install Ubuntu 12.10, it is spy-ware.

Assembly in 30 minutes with experience and 4 hour with no experience including time to watch youtube video to learn how to assemble the pc, or reading the motherboard manual.
First elementary rule to follow to avoid frying a component : always plug off your computer when you insert or remove parts or components.

Second elementary rule : don't panic; there is no need to. Double-check when in doubt. Computer parts are quite robust (much more than you think), but yet avoid putting your finger on the processor connectors.

For the first boot you will need a bootable usb key which you can create with linux live usb key creator, or a windows 8 usb key which you can create via the microsoft site. You then just have to follow on-screen instructions.











Sunday, November 18, 2012

Typewriting Accessibility

My grandfather used to typewrite in the past, but has used computers very little. He recently turned 90, and begins to use an android tablet. His main motivation for the use of the tablet, is to be able to write a book he cares about. It has been for me the opportunity, to improve my skills with regards to accessibility. The problem I have to resolve is to make the task accessible to my grandfather, so that he can use it without me, without errors, without losing his work and still be able to get my help from a distance when he needs it.

It was also my first experience with an android tablet. Well It was really disappointing. Globally it works OK, but the devil is in the details. My first idea was to check for an easy typewriting application. But I couldn't find any which was not missing a key feature : Only one action to open document, fullscreen, autosave, automatic versioning, block caret, simplest possible use, and keyboard accessibility features. 

Then I basically have two choices, either I roll my own android application, or I go for the quick win with remoting. I choose to go with the quick win. I go to the android market to get a vnc app. The free android vnc app looks exactly like the one I want : one click access to the remote location. But it's missing a key simple feature, which makes it useless over distance : compression (and encryption)!!! Other numerous free vnc applications are all harder to use, and miss some features. Except for one : "free bVNC",  which is the open souce android vnc app with the missing feature added by some russian developper. Exactly what I needed. 

Then I'm back in kwown world. On a computer somewhere in the world, I create a virtual machine, install Centos 6, install geany (i.e. notepad++), configure block caret in geany, configure current line color, configure keyboard with accessibility options (filter fast repeated key), adding autosave/autoarchive plugin to geany. Adding the file to a versionning system (mercurial with a little script to autocommit and an occasionnal save to a remote location). Then fullscreen in geany. (The only drawback of geany is that in fullscreen mode you have still a menu line (but you can modifiy the source if you want) ). I also configure Centos to accept multiple vnc user on the same display.
I launch the vncserver -geometry 1280x752, and configure free bVNC to be able to connect in one action.

Then it's OK, my grandfather can type his book. He plugs his azerty keyboard in the android tablet. And then the tablet recognize it as an qwerty. If you want to be able to use it as a azerty keyboard, you have to use an app which you have to grant full permission !!! Without rooting the tablet, there is no easy way to use the azerty keyboard, (probably because this allows Acer to sell specific 100$ keyboards for this tablet). But because I use a remoting system, I configure the Centos keyboard, and the keyboard is now OK to type the book.

Latency is very low, even over distance, and everything is working like a charm, (obviously the tablet needs internet but that is the one thing that usually works with tablets).
I'm even starting to consider using tablets for my usage as remote screens to clouds. It's a bit of an overkill, but at least, overkilling is easy and generic. One negative point noted is the sound over VNC is not yet supported.

Friday, November 16, 2012

CloudFlare

A company which as experienced a great increase in usage over the last years, but which is unknown to non IT specialists. It's a content delivery network. It helps internet sites to load webpages faster. CloudFlare also prevents Distributed Denial Of Service.

The principle is easy, from the website user perspective, it's like your site is hosted by CloudFlare. The user never know the real ip of your server, and dialogs only with a CloudFlare machine. Your server only dialog with CloudFlare machines (so you can block all other traffic easily and fast if your ip is somehow discovered). For the technical details : They have a bunch of worldwide distributed ips, and behind each of these ips hides a reverse proxy (a customized nginx server using consistency hashing).

They are a very small structure of less than 50 people. And have scaled very rapidly using opensource and big data technologies. They analyse and filter all the data that goes through them, i.e. all the data of CloudFlare websites. They act as a SSL endpoint. This mean you don't have to own a ssl certificate. But it also means they decrypt all the traffic, and possibly inject anything. Oh, by the way, their terms of use, grant them ownership of everything that pass through them...

But they have very attractive pricing starting gratis. Lots of users, lots of traffic, very easy to use. An other player which is centralizing Internet. This is Man in The Middle 2.0.



Friday, October 12, 2012

Eric Schmidt on 92nd Street Y, the 10 october 2012


Every year or two, Eric Schmidt gives us his, thought a lot, point of view about the current state of the tech business world. He comes back on the various tech industry leading companies, and promises us a world of useful mobile computations.

Tuesday, October 9, 2012

Open source should be banned


Open source is one the biggest scam of the lasts decades. And as all big bad wolf, it is hidding in sheep clothes. It's a perversion of a nice idea. It all started with the free as in free speech software mouvement. But the contagious characteristics of freedom prevent sane business to build upon it. As business drive this world, freedom let place to open source. It was good for business. You don't have to pay for licenses anymore. You can concentrate on your business. And it gets better over time for free. Ohoh, the scam arguments starting to appear.

So companies all over the world started to adopt it. Some companies, even promote it. They can now outsource for free their I.T. development. They can also share the cost of maintenance with their competitors. But the better part for companies, is that they got leverage on their developpers. There are now two kinds of I.T. man, the vast majority are I.T. workers spending their time assembling, maintening and pipelining the various bricks of open source software, where as the remaining minority is consenting to create great wealth and be rewarded with breadcrumbs. If you want to be a part of the glorious minority, all you have to do is to participate in open source. This is why companies often requires you to have contributed to an open source project before they employ you. For companies, contributors are like old prostitutes, they don't shine but they will do anything for a few dollars.

But who get spoiled in the way ? Well obviously, the I.T. man is getting lifted. 
Then there are all the companies that use open source. They think they are getting advantage of it, but in fact they are the fall guys. By using open source, they surrender and consent to be a few years late, their developpers always running to catch the next patch. It's basically saying they are refusing to compete on the software ground.
So I guess that in a concurrential world where companies collude, end users are getting spoiled too, aren't they ?

Why Work in Information Technology is doomed to failure


I have been developping software for a few years now. Both in small and big companies. And in both cases, there are more and more needs with regards to software functionalities. But what I have noticed is that over the last few years there is a shift currently taking place. 

It is a shift similar in nature to the transformation from craftmanship to industrialized era over the course of a decade. A few years ago, writing something from scratch leveraging on generic libraries was quite often a good choice. Now, most of the time, it is not. Today you will often find code right for the specific functionnality you need. 

The work in Infomation technology has shifted from building to customizing. Sure you can customize a lot faster than you can build and therefore are a lot more productive in the economic sense. But it is a profound change like going from leader to follower, or from active to passive. 

But we are not over yet, it is all about scaling. And in computer science, it is often an exponential scaling. But user needs, at least the monetizable ones, don't scale as fast. And that where it's getting bad for the IT man. One man and a few dollars can serve millions of users. And what's even worse is that one man and a few more dollars can serve tens of millions of users. Systems are build to scale by adding money in it rather than by adding people.

So how as an IT man, can you get advantage of this. I see a few options.
Either be among the few best, to get a chance to work on the few remaining jobs building new useful stuff used by many. You can also choose to join an open source project. These two first options are quite good for the philantropic mind, others you will be forced to pass your way.

An other option is to start it up. Create a business, where you can use your I.T. skills. You will also need a lot of other more useful skills. The probability of failure is high, but a small chance is better than no chance right ?

The last option, is to work somewhere else, nobody is forced to be a programmer right ?

This blog is evolving


I am now jobless.
This mean, I will have more time to better explain ideas. The format and the subjects will change.
Becoming more diverse and accessible to the novice.
It will also be more subjective.

Thursday, August 23, 2012

Monads


In your quest for genericity
In your quest for abstraction
In your quest for instanciation
But could you invoke their name

42

In life when rules are simple 
Things get pretty messed up 
In pretty messed up life 
The rules are simple

Sunday, June 24, 2012

Life


When chemisty is code
When code is form
When form is functionnality
When functionnality is life

Saturday, May 12, 2012

P2P

Decentralized computation and communication
Scaling accordingly so that offer match demand.
A global public playground is being taken by private clouds.
Should P2P survive in hostile environment...


The times they are a-changin'...

Hashing

Converting a huge sparse space into a small dense one
An ancient key to new probabilistic treasures
Double murmuring into a bloom filter just about anything
To collide certainty, time and space, my dear neighbour.


Sunday, April 1, 2012

6r3y H4t

Neither good nor evil, both good and evil
Use this essence to free your mind
Keep it as stupid simple as law is
Be the mirror's edge

Cassandra

The gift of greater sight
Comes at a price you can foresee
Abandoning the query of sense
And accepting your fate

XML

<XML><Exchanging><Ideas>  
<Idea> Make your life easier </Idea>
</Ideas></Exchanging>
<Structuring><Concepts>
<Concept>In darkness bind them</Concept>
<Concept>And query them</Concept>
</Concepts></Structuring></XML>

Monday, March 5, 2012

Stars

Tiny spots of light in the dark sky
Giant fireballs of the origin of life
Humility, Faith and Hope for all civilizations
Hiding from our misty eyes.


Clouds

Connect stars to the earth
Through the power of the cloud
Draw from the well of endless possibilities
The one where we could dream free

Sunday, February 12, 2012

Economy

The art of playing to win.
What greater game than monopoly could there be ?
Play the fish, not the shark !
Fish farming was born...

ENSAE Course    -    MIT Course 

Money

The right to explore the possibilities of time
Created to enslave the ignorants
Who cannot ignore it
In history the salvation is

Sunday, January 29, 2012

Evocation

An idea casted into being.
A feeling shaped into life.
Pumping the blood of the future economy.
So may it be.


Sunday, January 22, 2012

Dreams

Dreaming about dreams
Dreamless souls and soulless dreamers
The wanders of the mind
Make the mind wonder

The wizard inn

Building the look and feel of the web to come
Making visible the unseen skills
Giving back to visualization the place to express
The beauty of a faster js

Thursday, January 19, 2012

Knowledge

I won't tell you now what knowledge is.
But I will share some with you.
Should it be free ?

Enjoy !

Sunday, January 15, 2012

We live in a wonderful time

Magical technologies are everywhere. But wizards are rare. 
Knowledge is everywhere. But ignorance is the norm.
Dreams sold to those made dreamless.
Countless stars in the cloudy skies.

Welcome into the starry dreams of the darkblue wizard.