Friday, June 28, 2019

Read it or Throw it #212

My talk about the research so far at Spacemesh regarding Smart Contracts leveraging WebAssembly.

And here is a link to all the talks given at the Wasm on the blockchain workshop Berlin 2019

I'm thinking about starting my own blog...
So this is my very first blog post about why I think it's important to stay open-minded for new technological opportunities.

Many thanks for Omer Hamerman and Yuval Zalmenson for the feedback!

3. Waxosuit - The Cloud-Native Exosuit for WebAssembly
On the last issue, we had Fastly's announcement article about Lucet:

The wasm out of the browser explodes and now a new (still in its infancy) project called Waxosuit has been born.

Waxosuit is a WebAssembly runtime (build on top of wasmer) for running in the cloud wasm code. 
If I understand right, the vision is to equip the Waxosuit runtime with many capabilities (plugins) that could be used by the hosted wasm programs.

The big vision is to make the developer more productive since he/she will have a rich set of capabilities out of the box in the wasm runtime.
(for example, logging, monitoring, database integrations...)

It means a developer can write less code and rely on the set of these capabilities (high-level "system-calls like") 

This could have the potential to be the next generation of Heroku or next generation of serverless computing

Here is a medium post, Introducing Waxosuit by @Kevin Hoffman the creator of waxosuit

A very interesting article about the future of programming using dependent types
I hope that Rust will have some form of this in the future 

This is more like a mini-book about long-term memory.
It's a joyful read full with illustrations and simple explanations.

One of the topics covered for better long-term memory is by practicing using
the spaced-repetition technique. A few years ago I've given a lightning talk about this technique, here is a link (the talk is in Hebrew)

This is another mini-book about memory but this time on working memory.
If you liked the content of the above item about long-term memory, you'll surely love this one as well.

An article that reviews the positive effects of practicing the Dual N-back game on working memory (according to a conducted research)

Last time we had GitHub Package registry and now the former CTO of npm releases a Decentralized Package Registry called Entropic. 

This declaration is of high importance since it's a decentralized package registry.
Did it ever happen to you that the deployment of your service failed since your centralized package manager has been down? 

In the previous newsletter issue, I've added an item for Sourcegraph and GitHub has just released (still in Beta) its own Sourcegraph competitor (if to be delicate) and it'll be probably given the company another boost against the competition with GitLab.

Another product that should be worried for its future is Octotree (browser extension on top of GitHub)

GitHub also acquired another company called Pull Panda for streamlining the code reviews process

An eye-opening article about the nature of hiring people claiming that A Players will hire A Players, but B players will hire C players and so on.

I tend to agree with this. Usually, strong people will want to work with other strong people, since they understand they have something new to learn from them
(since no one knows everything).

This term has been coined by late Steve Jobs and here is the link to the original video of him talking about this.



"The first 90 percent of the code accounts for the first 90 percent of the development time. The remaining 10 percent of the code accounts for the other 90 percent of the development time."
Tom Cargill, Bell Labs

Saturday, May 18, 2019

Read it or Throw it #211

This is a big deal since GitHub continues to expand its services after the GitHub Actions.

That's one of the reasons that private repositories are free since GitHub wants to attract customers and make them pay for the ecosystem services


This also a big deal since Web Assembly is the future universal bytecode not only of the internet
but probably of Desktop-apps / smartphones apps/god knows

Even though Web Assembly is still considered in an early stage, it's spec (see next item), browsers adoption, out of the browser Runtimes is getting a lot of momentum. 


Continuing the previous item, Mozilla announced WASI, a specification for running web assembly programs outside of the browser.

Imagine having a C++/Rust/Go/another language that is being compiled to Web-Assembly
(LLVM already supports that).

Then the Runtimes hosting the WebAssembly file will come out of the box with implementation
for the system-calls interface. 

It means that we could not only run our programs but also switch between WASM runtimes as long as they implement the WASI interface.


One day after Mozilla announcing the WASI standard Fastly announces its WASM runtime that implements WASI. (they have been working closely with Mozilla for months before going public). 

The future of CDNs is executing code on the edge, and what could be more suitable for the mission then running a WASM file on the edge? 

We'll be able to develop our code in a lot of programming languages and run execute WASM files.

Current Serverless seems like old tech already ðŸ˜›


Stripe owns a very big Ruby codebase and they internally developed type-checking extensions in order to increase the code quality. (like TypeScript did for Java-Script). 

This project will become an official part of Ruby 3 

This is very cool, I love that Ruby is getting better doesn't stand still.
I also think it'll hurt badly the Crystal Programming Language adoption


A fantastic article about what it feels like getting into Rust when coming from any other programming language.
It talks about overcoming obstacles and frustration, learning new thinking paradigms and the benefits of knowing Rust


7. awesome 
There are many awesome-XXXX repositories in Github,
but this one is a list of all the awesome-XXXX


Recently I've started using this tool a lot (I was aware of it but never gave it a serious chance).

I find it much better than reading code via GitHub. 
(most of the times, I don't want to clone locally code and read it on my computer)


I'm a long-time reader of Scott-H-Young blog and I appreciate much his work. 
This article worth your read


Less than 10 minutes short video explaining what's IPFS for dummies.
You can think about it like Bittorent next generation.



A complex system that works is invariably found to have evolved from a simple system that worked. A complex system designed from scratch never works and cannot be patched up to make it work. You have to start over, beginning with a working simple system. 
John Gall

Saturday, March 30, 2019

Read it or Throw it #210

A well-written article talking about the importance of having programming languages that will guard us the developers from as many mistakes as possible.

After all, we're humans and humans make mistakes.
Also, projects assumptions change over time.
Good tools and good programming languages can assist much. Give Rust a try!

A short summary for The Snowball book talking about Warren Buffett knowledge consumption and prioritization methods and how his life-long learning helped him in business

A very cool technique to resolve git merge conflicts in vim using vim-fugitive and good shortcuts

I think this is one of the most inspiring stories in the history of Software.
Who would think that Erlang, developed in the '80s for the telecommunication industry in Ericsson
will serve so well high-scale internet systems 30 years after?

An introductory article covering the basics of WebAssembly with nice illustrations

If you're a Mac user, go over the list. You'll probably find something useful

A cool extension for traversing a file evolution in a GitHub/GitLab

This article goes over different businesses models of Mozzila over time.
It's unintuitive that Mozilla makes money thanks to other browsers

Just watch these 24 seconds

If you want to learn Rust, then I highly recommend this book.

It's a more advanced book than the official The Rust Programming Language book
so you may want to that first


"There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies and the other way is to make it so complicated that there are no obvious deficiencies."

Tony Hoare

Monday, January 28, 2019

Read it or Throw it #209

A very big milestone towards the anticipated future of Ruby 3.
Ruby 2.6 brings a JIT-compilation to its front and it'll continue to evolve in future versions

Confluent - founded by the original authors of Kafka are having hyper growth.
I hope that using their service will become a commodity 

The company behind InfluxDB don't stop delivering new goods.
I didn't take the time yet to examine the new flux language they are building,
but I'm sure they know what they are doing and that it'll become popular

Machine Learning on Code has a huge potential and this tool is just one example for that.
I'm very curious to see how it'll work on other programming languages besides Python 

GitHub, now backed by Microsoft breaks their rules in order to attract more users interest 
as part of the competition against GitLab, Bitbucket, and others

A very big move of Microsoft which puts her in the top of the game of Distributed Relational Database offered as SaaS

Cloudflare has early support for QUIC (a.k.a HTTP3) and it's in Rust! (and Open-Source)

A fascinating article about the importance of witnessing others in order to up our game.
Thanks to the internet and platforms like YouTube, Twitch, this technique is approachable to anyone

A simple explanation of the idea behind Binaural Beats

A very short (less than 3 minutes) National Geographic-like screencast about an animal called The Developer :)


The more you know, the more you know you don't know
Aristotle

Saturday, December 8, 2018

Read it or Throw it #208

I detailed list of productivity tips and tricks I'm using, maybe you'll find them useful to you too

A good article talking about how AI can play as an assistance role in software development

Facebook use AI to auto-detect common code bugs and how to fix them

In case you want to show your boss that Elixir is mature enough to be used in production use, send him this article and https://elixir-companies.com/

Amazon releases their own time-series database. It'll be interesting to see how it'll affect InfluxDB and others

This is big news!

Google promotes sharing AI models between data scientists.
Probably a GitHub-like platform for data scientists is just a matter of time

The key point is that a competent programmer can't let his slow him down

It's very encouraging to see more big and successful companies that work in a distributed structure 

A great introductory video about why Rust is awesome


“Simple things should be simple, complex things should be possible”
Alan Kay

Wednesday, November 14, 2018

Read it or Throw it #207

CloudFlare leverages the V8 engine for their serverless (workers) infra.
This is a very promising strategy since the future will rely on WebAssembly and the end of the javascript as the only Frontend language

Paul Dix, Influxdata CEO gives his take about Rust (Influxdb is written in Go)

3. HTTP/3
The usage of TCP in the browsers will be eventually superseded (gradually) by QUIC (reliable protocol on top of UDP) and the internet will be much faster thanks to that

I'm now in the middle of learning a new keyboard layout called Colemak. So far it's been going well. I prefer Colemak over Dvorak since Colemak has fewer characters changes

Github wants to be a one-stop-shop for all the code management lifecycle too (the same vision as GitLab)

This is huge, not only because the founders are very young but because of the innovative concept of having an IDE backed by a super-computer power

I tend to agree with this article. However, anyone has a limit of how much code he/she can read. I think that reading all your territory and understand where it fits into the big picture is a huge productivity

I really agree with this article. It's very hard to bootstrap a new project
and the more you know might make it even harder 

I loved the concept of this product

I usually write my emails with numbered bullets in order to have order and clarify what I want to say


"Whatever you do in life, surround yourself with smart people who'll argue with you" 
John Wooden

Saturday, October 13, 2018

Read it or Throw it #206

Discord explaining why they went with Cassandra for their messages storage
and how they implemented their sharding using a composite key

GitLab aims to be a one-stop-shop for all development cycle 

An informative article that focuses on Rust concurrency vs Go concurrency

Another database I'd really like to experiment someday

Debuggability is one of the most important capabilities of a production-ready Software

Two of the most common techniques for automatically reclaiming unused memory
(read also how Rust manages memory here)

A very short video demonstrating briefly Google Spanner 

The future of CDN capabilities is running code on the Edge and Cloudflare seems to be taking the lead here

A nice life-hacking article

Some good tips for increasing our daily productivity (I can sympathise with some of them)




Make It Work Make It Right Make It Fast
Kent Beck