OpenSSL and Android versions

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.

OpenSSL Android
UNKNOWN 1.6_r1
UNKNOWN 1.6_r1.1
UNKNOWN 1.6_r1.2
UNKNOWN 1.6_r1.3
UNKNOWN 1.6_r1.4
UNKNOWN 1.6_r1.5
UNKNOWN 1.6_r2
UNKNOWN 2.0.1_r1
UNKNOWN 2.0_r1
UNKNOWN 2.1_r1
UNKNOWN 2.1_r2
UNKNOWN 2.1_r2.1p
UNKNOWN 2.1_r2.1p2
UNKNOWN 2.1_r2.1s
0.9.8m 2.2.1_r1
0.9.8m 2.2.1_r2
0.9.8m 2.2.2_r1
0.9.8m 2.2.3_r1
0.9.8m 2.2.3_r2
0.9.8m 2.2.3_r2.1
0.9.8m 2.2_r1
0.9.8m 2.2_r1.1
0.9.8m 2.2_r1.2
0.9.8m 2.2_r1.3
0.9.8m cts-2.2_r8
1.0.0a 2.3.1_r1
1.0.0a 2.3.2_r1
1.0.0a 2.3.3_r1
1.0.0a 2.3.3_r1.1
1.0.0a 2.3.4_r0.9
1.0.0a 2.3.4_r1
1.0.0a 2.3.5_r1
1.0.0a 2.3.6_r0.9
1.0.0a 2.3.6_r1
1.0.0a 2.3.7_r1
1.0.0a 2.3_r1
1.0.0a cts-2.3_r10
1.0.0a cts-2.3_r11
1.0.0a cts-2.3_r12
1.0.0e 4.0.1_r1
1.0.0e 4.0.1_r1.1
1.0.0e 4.0.1_r1.2
1.0.0e 4.0.2_r1
1.0.0e 4.0.3_r1
1.0.0e 4.0.3_r1.1
1.0.0e 4.0.4_r1
1.0.0e 4.0.4_r1.1
1.0.0e 4.0.4_r1.2
1.0.0e 4.0.4_r2
1.0.0e 4.0.4_r2.1
1.0.0e cts-4.0.3_r1
1.0.0e cts-4.0.3_r2
1.0.0e cts-4.0_r1
1.0.0e cts-verifier-4.0.3_r1
1.0.0e cts-verifier-4.0_r1
1.0.0e sdk-4.0.3-tools_r1
1.0.0e sdk-4.0.3_r1
1.0.0e sdk-adt_r16.0.1
1.0.0e sdk-adt_r20
1.0.1c 4.1.1_r1
1.0.1c 4.1.1_r1.1
1.0.1c 4.1.1_r2
1.0.1c 4.1.1_r3
1.0.1c 4.1.1_r4
1.0.1c 4.1.1_r5
1.0.1c 4.1.1_r6
1.0.1c 4.1.1_r6.1
1.0.1c 4.1.2_r1
1.0.1c 4.1.2_r2
1.0.1c 4.1.2_r2.1
1.0.1c 4.2.1_r1
1.0.1c 4.2.1_r1.1
1.0.1c 4.2.1_r1.2
1.0.1c 4.2.2_r1
1.0.1c 4.2.2_r1.1
1.0.1c 4.2.2_r1.2
1.0.1c 4.2_r1
1.0.1c cts-4.1_r1
1.0.1c cts-4.1_r2
1.0.1c cts-4.1_r4
1.0.1c cts-4.2_r1
1.0.1c cts-4.2_r2
1.0.1c sdk-support_r11
1.0.1e 4.3.1_r1
1.0.1e 4.3_r0.9
1.0.1e 4.3_r0.9.1
1.0.1e 4.3_r1
1.0.1e 4.3_r1.1
1.0.1e 4.3_r2
1.0.1e 4.3_r2.1
1.0.1e 4.3_r2.2
1.0.1e 4.3_r2.3
1.0.1e 4.3_r3
1.0.1e 4.3_r3.1
1.0.1e 4.4.1_r1
1.0.1e 4.4.1_r1.0.1
1.0.1e 4.4.2_r1
1.0.1e 4.4.2_r1.0.1
1.0.1e 4.4.2_r2
1.0.1e 4.4.2_r2.0.1
1.0.1e 4.4.3_r1
1.0.1e 4.4.3_r1.0.1
1.0.1e 4.4.3_r1.1
1.0.1e 4.4.3_r1.1.0.1
1.0.1e 4.4.4_r1
1.0.1e 4.4.4_r1.0.1
1.0.1e 4.4.4_r2
1.0.1e 4.4.4_r2.0.1
1.0.1e 4.4_r0.7
1.0.1e 4.4_r0.8
1.0.1e 4.4_r0.9
1.0.1e 4.4_r1
1.0.1e 4.4_r1.0.1
1.0.1e 4.4_r1.1
1.0.1e 4.4_r1.1.0.1
1.0.1e 4.4_r1.2
1.0.1e 4.4_r1.2.0.1
1.0.1e 4.4w_r1
1.0.1e cts-4.4_r1
1.0.1e sdk-4.4.2_r1
1.0.1e sdk-4.4.2_r1.0.1

Ridiculousness level: infinite

iPhone users need carrier authorization to enable hotspot.

Some users whose carrier does allow tethering but does not have a current partner agreement with Apple may have been inadvertently affected by the changes. Most, however, appear to have been abusing the function enable Personal Hotspot without paying additional fees.

http://appleinsider.com/articles/14/03/19/apple-cracks-down-on-personal-hotspot-abuse-with-ios-71-update

“abusing” (sic) without paying additional fees?

Users are already paying for the data between the cellular antenna and their iPhones, that is what the carrier charges for. Why in earth would users pay an additional fee to forward data from the iPhone to a computer ?

Think about this: Alice wants to know which beer Bob wants to drink, Alice calls Bob but, he is taking a shower, so Dave picks up the call and asks Bob which beer he wants, Bob replies “XX Lager”. Dave who is speaking with Alice on Bob’s iPhone says “XX Lager” to Alice.
Should Bob pay an additional fee to his carrier for Dave passing the voice?
Do carriers also charge for voice forwarding ?
This is what Apple says:

Personal Hotspot lets you connect your computers and devices to the Internet using the cellular data connection on your device.
To use this feature, enable Personal Hotspot on your cellular data plan. Contact your carrier for information and pricing.

 http://support.apple.com/kb/HT4517

Ridiculous!

Money is not everything

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. [1] and Zuckerberg saying Simply put: we don’t build services to make money; we make money to build better services.[2] in the IPO letter, it is clear that not everything is about money.

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)

[1] http://highscalability.com/blog/2014/2/26/the-whatsapp-architecture-facebook-bought-for-19-billion.html

[2] http://finance.yahoo.com/news/mark-zuckerberg%E2%80%99s-ipo-letter–why-facebook-exists.html

最近のやつ

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

Many things are moving to the Cloud, and IDEs are not the exception.
Cloud9 the IDE (not the restaurant with tasty food) is a popular one.

This link lists more options.
http://www.hongkiat.com/blog/cloud-ide-developers/

_________________________

3) Visual Regular Expressions

Chances are that you know the saying

Some people, when confronted with a problem, think “I know, I’ll use regular expressions.” Now they have two problems.
Attributed to jwz.

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

http://www.debuggex.com/libraries

Check it out
http://www.debuggex.com/

_________________________

4) FreeBSD in the PlayStation 4

Seems like the PlayStation 4 will be running Orbis OS, a modified version of FreeBSD.

http://www.phoronix.com/scan.php?page=news_item&px=MTM5NDI

_________________________

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…


http://queue.acm.org/detail.cfm?id=2488549

Recommended article

_________________________

6) On Java garbage collection

Article explaining the G1 Garbage Collector.
http://www.infoq.com/articles/G1-One-Garbage-Collector-To-Rule-Them-All

_________________________

7) 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…

An article in MIT Technology Review

A related TED’s talk video

The project page in indiegogo

Open Garden is a similar project that is worth looking

http://www.servalproject.org/

_________________________

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:

  • The cost of risk. For a company, going into a research project is a risk because, research project takes time (time is money, and researchers are not cheap), and there are big chances that the research couldn’t be capitalized.
    So, from the risk point of view, it is safer/better to acquire a company that has already developed a product as result of a research project. This is also better from the accounting point of view, even if the price to pay is high, the company’s is not exactly spending money but just changing the form of an asset, as opposed to literally spend money in a research project until it becomes profitable, if someday turns out to become profitable. For companies is better to buy instead of develop. Around 20′
  • He compares the ‘success rate of R&D projects’ in IBM with 1%-5% considering more than 3% highly productive, and Sun with 10% – 20%. The fact that Sun’s outperformed IBM might be due to the fact that almost every manager at Sun had a technical/engineering background. Around 30′
  • How to do technology transfer? Create something new, killing the old…or transform the old into something new

http://www.youtube.com/watch?v=rN3FZKTgdR0

_________________________

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.

Take a look
http://www.plosone.org/article/info%3Adoi%2F10.1371%2Fjournal.pone.0021469