Sunday, July 14, 2019

Electric V2G (Vehicle to Grid): Nissan Leaf vs Tesla

Tesla's big battery in South Australia is a 'complete waste of resources,' claims Nissan



"The Nissan executive noted that the Leaf’s V2G system has the potential to help homeowners save money, especially if the vehicle charges through a rooftop solar system during the day, and uses its stored energy to power appliances and lights at night...
While V2G technology has a lot of potential that even Tesla CEO Elon Musk recognizes, the Nissan executive’s casual dismissal of the 100MW/129MWh Hornsdale Power Reserve in South Australia seems misinformed at best. Since coming online, after all, the Powerpack farm, whose size is equal to around 2,500 40 kWh Nissan Leafs, has seen widespread acclaim for its speed and sophistication."


Tesla may revisit vehicle-to-grid (V2G) bi-directional charging solution

Saturday, July 13, 2019

Sonic: A Lightweight, Schema-Less Search

Sonic: A Lightweight, Schema-Less Search @InfoQ

"Sonic is an open source, schema-less search backend promoted as an alternative to full-feature search systems such as Elasticsearch. Sonic can normalize natural language search queries, provide auto-complete, and return the most relevant results for a search query."

Hermes JavaScript engine for React Native on Android.

open source, new javascript engine for React Native from Facebook
to get (much) better runtime performance it is using "Ahead Of Time" instead of "Just In Time"
compiling to byte code representation, an approach typical for "native" mobile apps anyway.

facebook/hermes: Hermes is a small and lightweight JavaScript engine optimized for running React Native on Android. @GitHub

React Native on Twitter: "Today Facebook is open sourcing Hermes, a small and lightweight JavaScript engine optimized for running React Native on Android. We are currently publishing a new patch release for React Native which will contain Hermes as opt-in. https://t.co/YUFCqvTrAV"

Enabling Hermes · React Native

https://hermesengine.dev/

Chain React 2019: Hermes Engine Announcement - YouTube

the key advantage is speed, achieved by doing `Ahead Of Time` compiling to bytecode
instead of typical (for JavaScript) `Just In Time`. This way the size is smaller (faster load) and avoiding a step of compiling before running. Smart. This is typical for other mobile platforms, so it makes sense.

While the presenter claims that Node.js (server side) and browsers are not objectives,
this approach could be used for server side apps and it could be beneficial in particular for ‘serverless’ (cloud functions, i.e. AWS Lambda) deployments, as well as for embedded IoT.
Since V8 JS engine is open source, it could be "forked" to do similar.

Monday, July 08, 2019

IO speeds compared

Teach Yourself Programming in Ten Years @Norvig

pproximate timing for various operations on a typical PC:
execute typical instruction1/1,000,000,000 sec = 1 nanosec
fetch from L1 cache memory0.5 nanosec
branch misprediction5 nanosec
fetch from L2 cache memory7 nanosec
Mutex lock/unlock25 nanosec
fetch from main memory100 nanosec
send 2K bytes over 1Gbps network20,000 nanosec
read 1MB sequentially from memory250,000 nanosec
fetch from new disk location (seek)8,000,000 nanosec
read 1MB sequentially from disk20,000,000 nanosec
send packet US to Europe and back150 milliseconds = 150,000,000 nanosec

Sunday, July 07, 2019

Python vs. Go vs. Rust

Python, Go, Rust mascotsOne Program Written in Python, Go, and Rust – Nicolas Hahn

nicolashahn (Nicolas Hahn) @GitHub

nicolashahn/diffimg: Differentiate images in python - get a ratio or percentage difference, and generate a diff image

nicolashahn/diffimg-go: Image differentiation tool similar to the python diffimg: 

nicolashahn/diffimg-rs: image differentiation tool written in Rust


Image size: 1x1 2000x2000 10,000x10,000
Rust 0.001s 0.490s 5.871s
Go 0.002s (2x) 0.756s (1.54x) 14.060s (2.39x)
Python 0.095s (95x) 1.419s (2.90x) 28.751s (4.89x)

Authors conclusion:

"If I had to choose the language for the backend of a new web application, it would be Go."

Saturday, July 06, 2019

Function based web components: Vue 3.0, React Hooks

Vue 3.0 Discards Class-Based API for Reusable, Composable Function-Based Approach @InfoQ

"The Vue team recently opened a RFC which describes the proposed function-based component API for the upcoming Vue 3. Like React Hooks, the function-based component API seeks to allow developers to encapsulate logic into so-called “composition functions” and reuse that logic across components."


Thursday, July 04, 2019

Lambda School post-paid education

Lambda School Education with Andrew Madsen - Software Engineering Daily

"Lambda School is an education system that takes elements of other software education models and combines them with newer SaaS technologies such as Slack and Zoom videoconferencing. Lambda School is an online software engineering curriculum with an income sharing agreement.

“Income sharing agreement” means that the student does not pay for their education until they get a job. With this model, the student can pay back Lambda School after their software engineering education gets them a high-paying software engineering job."



9-5 using online video communication, 9 months, in blocks of 3 weeks followed  by 1 week real-world projects. Focus only on practical skills. Venture funded, about 100 people. 

Tuesday, July 02, 2019

Google Earth with WebAssembly

Google Earth Ported to Browsers with WebAssembly @InfoQ

"The Google Earth team recently released a beta preview of a WebAssembly port of Google Earth. The new port runs in Chrome and other Chromium-based browsers, including Edge (Canary version) and Opera, as well as Firefox. The port thus brings cross-browser support to the existing Earth For Web version, which uses the native C++ codebase and Chrome’s Native Client (NaCl) technology. Difference in multi-threading support between browsers leads to varying performance."


Monday, July 01, 2019

Sucrase, a Faster Babel for Modern JS Runtimes

Sucrase, a Faster Babel for Modern JS Runtimes @ InfoQ

 a gain in speed between 4x and 20x vs. Babel. 

Imgur

Instead of compiling a large range of JS features to be able to work in Internet Explorer, Sucrase assumes that you're developing with a recent browser or recent Node.js version, so it focuses on compiling non-standard language extensions: JSX, TypeScript, and Flow.

Sucrase

alangpierce/sucrase: Super-fast alternative to Babel for when you can target modern JS runtimes @GitHub

"Sucrase is an alternative to Babel that allows super-fast development builds. Instead of compiling a large range of JS features to be able to work in Internet Explorer, Sucrase assumes that you're developing with a recent browser or recent Node.js version, so it focuses on compiling non-standard language extensions: JSX, TypeScript, and Flow. Because of this smaller scope, Sucrase can get away with an architecture that is much more performant but less extensible and maintainable."

Recharts: D3 + React = charts

BarChartStackedBySign | Recharts

recharts/recharts: Redefined chart library built with React and D3