The Highest End Smartphone

Let’s make a thought experiment.
I have near infinite money and I want to have in the pocket how much computer power I can get inside of it.
How much it would cost?
Easy, just as much of the developing costs of the “best” phone in terms of computing power!
If there would be a way to get more power inside a phone a company would likely have researched it and implemented it to get a competitive edge over other companies and get the sales to power users and people who have money and think they must get the best they can.

However the phones are limited to puny octacores, only 4Gb of RAM, and few Gb of storage.
PC Workstations are better as they can get 16 cores, 64-128Gb of RAM, and a Petabyte RAID.
Any personal device pales in comparison to a distributed computing system like the Google Data Centers, Amazon EC² or other massive system.
It would make sense to just improve as much as possible the network connectivity of the phone, to have as less latency as possible and harness the power of these beasts.
Wi-Fi 802.11ac gives a theoretical output of >1300 Gbps which is the fastest trough air connection you can get now.
Storage is a bit harder to get right. There is no point in having Tb of data, if you must wait seconds or minutes to get the data. So it makes sense to have search algorythms in place, or a search engine doing it for you and store your data in the search engine database.
If you are near enough to your data center you can even remote control the supercomputer directly, trough a graphical interface.
To save costs in networking you can even attach yourself directly to the internet backbone, as a peer.

The ESP8266 witty cube

This little ESP8266 board is programmable as a Nodemcu v1.0 or with Arduino IDE and the community plugin(to enter in program mode keep pressed RST, press FLASH, release both).
It is currently selling on Aliexpress as “Witty ESP8266”, and price ranges from 2.60€ to 4€, good ones are in the range of 3€.
It has also a RGB led on pins 12,13,15 , a user button on pin4 and a photoresistor on pin ADC0.
The upper micro USB is for power only, the lower port is for programming it and serial debugging.
It has the nice bonus that you can separe the programmer once done with it and plug it on a carrier board.
You can use it as a “internet button”, by let it to do a get or post request when button is pressed.
Or as a “site down” signal. The RGB led will light green when ping is good, ping is slow, red when ping is missed.
Or as a “light on” in the room alarm. Listen to the photoresistor and when light are up it will send you an e-mail or a message.

It can run with current provided by a usb wall power adapter or a usb power bank.

What you can see with a 7$ usb microscope

75x magnification of a 3d printed part, a samsung amoled screed, ink on paper, waterproof fabric of a backpack, the lcd screen of a laptop, printed paper green.
Uses of a cheap digital microscope(7-15€ from aliexpress, 50-500x):

  • find and compare printing resolution of 3d printed parts
  • find and compare printing resolution of paper printers
  • find the best pen
  • compare graphite hardness of pencils
  • find and compare screen resolutions
  • find short circuits on PCBs
  • see how tight is a tissue and how behaves with water
  • compare roughness of materials

Capire gli informatici: Il computer

Chi lavora nell’informatica tende ad avere valori diversi dalla società civile, o perlomeno della società convenzionale.
Non sono valori, così, inventati, ma conseguenza di come si lavora con i computer, che per gli informatici sono “macchine”.

Quando hai a che fare con un computer come programmatore è come avere il coltello dalla parte del manico, sei libero di fare ciò che vuoi nel computer, e il computer eseguirà ciò che gli dici. Alla lettera.
Questo è il motivo per cui i programmatori tendono a definire il loro computer “macchina” o “bestia”, perchè è semplicemente un mezzo per il lavoro, alla pari di un trattore, ed è molto più potente e stupido del programmatore, da cui “bestia”.

photo104481015576242774Programmare è un attività che per molti versi è simile all’edilizia, alla scrittura e all’investigazione.
Gran parte del tempo non è speso nel scrivere il codice, ma progettarlo, documentarlo e capire cosa non va, e il trovare le cause degli errori può essere degno di un giallo.

Il goal è quello di domare la bestia e fargli fare quello che vuole il padrone.
Diventarne padroni, pilota e progettista.
La struttura dei file e delle cartelle tende ad assomigliare all’architettura di una casa, personalizzare la barra delle applicazioni è una cosa seria come arredare la propria stanza.
E non si può solo gestire i file.
Si possono impostare degli script, una serie di azioni ricorrenti o su ordinazione, per sincronizzare i file tra cartelle, gestire i collegamenti con dispositivi remoti, avviare automaticamente i programmi e non ci sono limiti alla fantasia.

nautilusAd esempio adesso sto usando un portatile, che è collegato ad un altro schermo più grande, con a disposizione quattro hard disk, di cui 2 in remoto, non tramite cloud, ma accessibili in modo trasparente come se fossero lo stesso hard disk.

Inoltre dal portatile posso eseguire script tramite ssh su tutti i computer accesi che possiedo.
In pratica non uso chiavette usb in casa per passare dati avanti e indietro da qualche anno.

Gli script fanno tutte le azioni ripetive che dovrei fare ogni volta. All’avvio si aprono tutti i programmi che mi servono a seconda se sono a casa o al lavoro, si collega e sincronizza con gli altri computer, e mi dice Benvenuto(why not?)

welcome1.png

inutile dire che l’immagine di sfondo è stata generata con javascript 😀

Sorprendentemente, in genere agli informatici non importa più di avere un mega computer, ma piuttosto più computer con un buon rapporto qualità prezzo, un buon router e connessione ad internet più veloce possibile.
I vecchi computer diventano server e svolgono scopi utili come fornire file, pagine web o applicazioni, i migliori vengono usati direttamente come postazione privilegiata, con la possibilità sempre di accedere a tutti con cellulari o tablet.

Ovviamente, se ci sono le possibilità economiche, il primo pensiero è quello di migliorare il computer. Dopo tutto è il mezzo principale di lavoro, e aspettare di meno significa anche fare di più.

Adesso spero che abbiate una visione più chiara su che cos’è il computer per un informatico.
È come il bastone per il mago!

1h required to publish an Android app

Developers must provide

  • title of 30 characters
  • short description 80 characters
  • full description 4000 characters
  • provide a translation of any title and description in any language choosen
  • 2 screenshots for phone 4″ e 5″
  • 2 screenshots for tablet 7″ e 10″
  • 1 screenshot for android tv
  • 1 screenshot for android wear (if you see a question “how do i do a screenshot of my smartwatch is probably a developer”)
  • 1 high res icon 512×512 32bit PGN(with alpha)
  • feature graphic 1024×500 JPG
  • choose an application type
  • choose category
  • complete a questionnaire about content rating (10-30 questions)
  • provide an e-mail
  • provide a privacy policy is app uses private data
  • say if it is ad supported

 

Things that shouldn’t miss in an Arduino starter kit

Arduino is a perfect platform for beginners to start wetting themselves with electronics and a starter kit should include all tools of the trade to begin making electronics projects.

A good candidate to be included in a starter kit should be:

  • indeed used in most electronics products
  • as cheap as possible
  • easy to use
  • well documented

To refine it better I consider a part a good one if it is available for <5€, huge number of produced pieces per year and exist example code for Arduino 🙂

So here my dream kit – bold means essential, italic means nice to have-:

  • Arduino Uno or Nano
    Derivative boards are alright.
  • Usb cable
  • Led 4 or 5mm any color
    consider 100pieces sets
  • Resistor kit
    5% accuracy or finer is alright.
    consider 1000+ pieces sets
  • Capacitor kit
    no need for high capacitance, just until 470uF.
    consider 1000+pieces sets
    Better electrolytic.
  • L293d DIP IC
    to drive small motors in a more complex way
  • Piezo buzzer 5v
    to make beeping sounds.
    consider 10 pieces sets
  • Tact switch buttons
    consider 100 pieces sets
  • Switches
    consider 100 pieces sets
  • Breadboard 400pt
  • Jumper MM & FF & MF
    wires to connect things, male and female pins.
    consider 60-65 pieces sets
  • Diodes 1n4007
    force current to go only in one direction
    consider 100 pieces sets
  • 74HC595
    8 bit shift register answers the question “how I can get more pins?”
    consider 20-100 pieces sets
  • NE555 timer
    Simple IC that blink an LED with interval settable with a resistor and a capacitor.
    consider 20-100 pieces sets
  • L9110 motor driver module
    to drive small dc motors
  • HC-SR04
    ultrasonic rangefinder
  • DHT11 temperature & humidity sensor
  • MPU 6050 Gyro+Accellerometer
  • Photoresistors
    to sense light
    consider 100 pieces sets
  • Thermoresistors
    to sense themperature
    consider 100 pieces sets
  • Potentiometers
  • Led RGB
    consider 100 pieces sets
  • IR receiver + IR led or remote
  • Relay module
  • 28BYJ-48 5v stepper + ULN2003 driver
    a small cheap stepper motor

These are the parts I really used this year, and are fun or interesting to use:)

Aliexpress Developments Boards part 4

ATmega2560 by RobotDyn
Screenshot from 2015-12-20 22:51:57

At 5.53€ this is indeed a board comparable to the Arduino Mega, with a microUsb connector and can be powered by a lipo battery, even tough it lacks any logic of power management, except a 6-12v regulator.
Can provide 800mA at 5v adn 350mA at 3.3v.
This is an interesting board for robots, expendable sensor central to place outside or just an handy board to try the ATmega.

WiFiMCU EMW3165

Screenshot from 2015-12-20 23:08:52.png

If you already tried the Nodemcu v1.0, you should be already in love with the version based on the ESP8266.
Anyway this board aims to deal with the limitations of the ESP, with 22GPIO pins instead of 10, and a slightly more powerful chip.

ADS1115 16bit ADC

Screenshot from 2015-12-20 23:30:16.png

If you ever had the feeling that the microcontroller you are using is lacking on analog pins, this is a 3.50€ budget solution that will give you access to 4 deluxe 16bit resolution analog pins.
16bit resolution means results that go from 0 to 65536, and this chip can gather 860 samples per second, from 4 pin at the same time.
It has also a programmable voltage range, which means you can get all the precision in a narrow range of 0.256v or have a range of 6.144v.
It is friendly to use with all microcontrollers that can use I2C, and can also signal when data is ready, can be reconfigured on the fly, and drinks 0.15mA at full use.