Here are my notes for Effective writing
Here are my notes for Effective writing
I couldn’t find in the internet what version of OpenSSL is used in each Android version. So, I used this simple script to find it out, the results are in table below.
Back in my days as university student, one of the most important concepts in the classes “Project management” and “Investment projects evaluation” was the ROI. With WhatsApp saying To handle 50 billion messages a day the focus is on making a reliable system that works. Monetization is something to look at later, it’s far far down the road.  and Zuckerberg saying Simply put: we don’t build services to make money; we make money to build better services. in the IPO letter, it is clear that not everything is about money.
“Steve’s talked about the goal of Apple, and the goal of Apple is not to make money but to make really nice products, really great products”, said Jonathan Ive .
Yes, not everything is about money, money doesn’t have real value, money shouldn’t be necessary…money shouldn’t exist in the first place
Other unrelated but interesting parts on the WhatsApp architecture article:
– In 2011 WhatsApp achieved 1 million established tcp sessions on a single machine with memory and cpu to spare. (Wow!)
– Ejabberd in FreeBSD. (I played with that!)
-32 engineers, one developer supports 14 million active users. (Good people is worth)
 Inside Apple, Chapter 3. Adam Lashinsky
As usual, a lot of interesting things are going in The Internet, here are some that caught my attention:
1) Mozilla Persona
A better way to sign in.
It can be used to implement SSO (Single-Sign-On), in someway it is similar to OpenID.
The identity provider is not notified, which is very good for privacy.
It is focused on the browser (built on the BrowserID protocol)
Take a look https://persona.org/
2) IDEs in the Cloud
This link lists more options.
3) Visual Regular Expressions
Chances are that you know the saying
Well, that is less true with Debuggex, a pretty cool tool to visualize JavaScipt, PCRE and Python regular expressions. Debuggex eases the problem of using regular expressions. It integrates Mozilla’s Persona and embedding in StackOverflow.
RegexPlanet is another good option but isn’t possible to visualize regex…
One thing I would like to see: Debuggex is open-source instead of Debuggex is not open-source.
Check it out
4) FreeBSD in the PlayStation 4
Seems like the PlayStation 4 will be running Orbis OS, a modified version of FreeBSD.
5) Synchronization via procrastination
The article Structured Deferral: Synchronization via Procrastination overviews how to maintain data synchronized using a lazy approach.
It compares reference counting, hazard pointers…
6) On Java garbage collection
Article explaining the G1 Garbage Collector.
７) Serval Project
Serval Project brings Open telecommunications using mesh networking.
These are the features that make it interesting:
1) Opertaes in normal phones (there is an app for Android)
2) The nodes keep the phone number
3) All calls are end-to-end encrypted
This has wide range of use cases, e.g., using cell phones in over-crowded places, communicating during disaster, freely communication during civil resistance, communicating with friends without using carrier’s networks…
Open Garden is a similar project that is worth looking
8) The Process of Innovation
A software guy named James Gosling (not a Senior Consultant, not a Principal Engineer, not a Dr, just a plain Software Guy) talks in Standford’s Computers Systems Colloquium about the process of innovation. Among other interesting facts and anecdotes he talks about:
9) A different approach to schedule public transportation
Self-Organization Leads to Supraoptimal Performance in Public Transportation Systems
This interesting and not conventional paper, argues that self-scheduling public transportation is more efficient than the typical approach where vehicles come at regular intervals.
How I got mount_psshfs(8) to work.
mount_psshfs basically offers the same functionality as sshfs(1). Putting it to work is quite easy but it is not enabled by default, so some work is required.
0) Set up ssh keys
1) Build, install and boot a new kernel which includes the following parameters. Here is how.
pseudo-device putter # PUFFS(4)
options PUFFS #Pass-to-Userspace Framework File System
Alternatively, just load the module
2) Add device rules in /etc/devfs.conf
perm putter root:wheel 0666
3) Enable vfs.usermount
In /etc/sysctl.conf add
4) Mount it!
mount_psshfs -O IdentityFile=/home/earthling/.ssh/mercury_rsa email@example.com:/Users/mercurius/export /home/earthling/mnt/remote_to_mercury
mount_psshfs: handshake failed, server does not support sftp?
mount_psshfs: puffs_mount: cannot open /dev/putter
mount_psshfs: puffs_daemon: Permission denied
mount_psshfs: puffs_mount: Permission denied
mount_psshfs: puffs_mount: Operation not permitted
*Testing here refers to user level testing. It should be noted that I am fan of BDD and I love writing unit tests, integration tests and automatizing tests.