I found a cool blog about logical fallacies, here's all of its images :3 (until today: 15), check their blog for more updated content :3
programming: the action or process of writing computer programs. | rants: speak or shout at length in a wild, [im]passioned way.
2016-12-26
2016-12-25
2016-12-17
2016-12-09
Javascript ES6 to ES5 Transpiler
When you are so eager to use ES6 features but you know that most browsers not yet implement all ES6 features completely (that's why there are also HTML5 pollyfills). Here's the list of transpiler to convert Javascript ES6 to ES5:
- Google's Traceur Compiler
- Google's Caja (client-server)
- Babel (if not sure, use this one)
- Termi ES6 Transpiler
- full list here and here (with pictures)
Almost 2 years ago comparison between Babel and Termi. Oh and yes, you can use Babel with WebStorm.
Note that every transpilers (CoffeeScript, TypeScript, Elm, Haxe, etc) suffer the same problem: compile duration (hey, one more thing to do [=minify] before testing/deploying) and hard debugging (easier if you use source maps, only for JS transpilers, I don't know if these things exists for transpiler for other language). Still I wish for wAsm to come faster. Btw I learned ES6 just for react-native-web, otherwise I would always still stick with ES5.
2016-12-08
Programming Language Libraries
Woot woot! I found a website that crawls for libraries *__*)b
And I think it awesome that Go got first rank.
By Language/Editor
By Package Manager, note:
go (go get), npm (js), rubygems (ruby), maven (java), packagist (php), pypi (python), nuget (.net, c#, vb.net, and f# mostly), bower (js), wordpress (php), cpan (perl), cocoapods (objective-c and swift), clojars (clojure), meteor (js), cran (r), hackage (haskell), atom (text editor), cargo (rust), homebrew (osx), emacs (text editor), swiftpm (swift), hex (erlang, elixir), pub (dart), sublime (text editor), platformio (iot), julia (julia), carthage (objective-c, swift), dub (d), haxelib (haxe), jam (js), elm (elm), alcatraz (xcode ide), nimble (nim), inqlude (qt), shards (crystal)
And I think it awesome that Go got first rank.
By Language/Editor
By Package Manager, note:
go (go get), npm (js), rubygems (ruby), maven (java), packagist (php), pypi (python), nuget (.net, c#, vb.net, and f# mostly), bower (js), wordpress (php), cpan (perl), cocoapods (objective-c and swift), clojars (clojure), meteor (js), cran (r), hackage (haskell), atom (text editor), cargo (rust), homebrew (osx), emacs (text editor), swiftpm (swift), hex (erlang, elixir), pub (dart), sublime (text editor), platformio (iot), julia (julia), carthage (objective-c, swift), dub (d), haxelib (haxe), jam (js), elm (elm), alcatraz (xcode ide), nimble (nim), inqlude (qt), shards (crystal)
2016-12-02
List of Tech Migrations
I'm quite fascinated with the decision (and obviously the effort) of leaving a language or database to another technology, here's the list that I found:
NOTE: this list will be no longer updated, you can see the lastest changes on github repo so anyone can contribute/update.
- Twitter (2011) from Ruby to Scala
- Urban Airship (2011) from MongoDB to PostgreSQL
- Mixpanel (2011) from Erlang to Python
- LinkedIn (2012) from Ruby to NodeJS
- MoovWeb (2012) from ? to Go
- NTP Pool (2012) from Perl to Go
- DLGoogle (2012) from C++ to Go
- Bitly (2012) from Python/C to Go
- SoundCloud (2012) from Ruby to Go
- SmartyStreets (2012) from .NET to Go
- Toggl (2012) from Ruby to Go
- Shareaholic (2012) from MongoDB to Riak
- DigiDoc (2012) from MongoDB to PostgreSQL
- Etsy (2012) from MongoDB to MySQL
- TekPub (2012) from MongoDB to PostgreSQL
- TargeterApp (2012) from NodeJS to Ruby
- PayPal (2013) from Java to NodeJS
- Koding (2013) from NodeJS to Go
- Iron.io (2013) from Ruby to Go
- Zalora (2013) from PHP to Go
- TimeHop (2013) from Ruby to Go
- Canonical Juju (2013) from Python to Go
- Instill (2014) from AngularDart to Polymer
- Workia (2014) from ActionScript to Dart
- TrustWave (2014) from ActionScript/Flex to Dart
- Facebook Chat (2014) from Erlang to C++
- Grab (2014) from Ruby/NodeJS to Go
- Auth0 (2015) from Apache Kafka to ZeroMQ
- Pinterest (2015) from Java to Elixir
- President University (2015) from PHP/MySQL to Go/PostgreSQL
- UserLike (2015) from MySQL and MongoDB to PostgreSQL
- Olery (2015) from MongoDB to PostgreSQL
- CrowdStrike (2015) from Scala to Go
- DockYard (2015) from Ruby to Elixir
- CrowdStrike (2016) from Scala to Go
- Tokopedia (2016) from Perl to Go
- Uber (2016) from PostgreSQL to MySQL
- Uber (2016) from NodeJS to Go and Java
- Uber (2016) from Python to Go
- Digg (2016) from NodeJS to Go
- Google AdWords (2016) from GWT to Angular Dart
- Bleacher Report (2017) from Ruby to Elixir
- UpGuard (2017) from JRuby to Go
- Movio (2017) from Scala to Go
- Discord (2017) from MongoDB to Cassandra
- Uber (2017) Riak/Solr to Cassandra
- Swat.io (2017) from MySQL to PostgreSQL
- Poki (2017) from PHP to Go
- Stream (2017) from Python to Go
- Baidu (2017) from MySQL to CockroachDB
- Boxzilla (2017) from PHP to Go
- Shippable (2017) from MongoDB to PostgreSQL
- GeekyAnts (2017) from ReactNative to Google Flutter (confirmed)
- AppTree (2018) from Java/Kotlin/ObjC/Swift to Dart
- SendGrid (2018) from Perl/Python to Go
- Bukalapak (2018) from Ruby/MySQL to Go/MongoDB/ElasticSearch
- Centrifugo (2018) from Python to Go
- The Guardian (2018) from MongoDB to PostgreSQL
- AppsFlyer (2019) from Clojure to Go
- Deliveroo (2019) from Ruby to Rust
- Amazon (2019) from OracleDB to Aurora Postgres and DynamoDB
- Two Fintech Giants (2019) from OracleDB to CockroachDB
- Comcast (2019) from Cassandra to ScyllaDB
- Codism (2019) from Python to Go
- Discord (2020) from Go to Rust
- HSBC (2020) from DB2 to MongoDB
- Unnamed US Wireless Carrier (2020) from Oracle to PostgreSQL
- ListenBrainz (2020) from InfluxDB to TimescaleDB
- Dropbox (2020) from Nginx to Envoy
- Repustate (2020) from Python to Go
- SimilarWeb (2020) from NodeJS to Go
- PayPal (2020) from C++ to Go
- KhanAcademy (2021) from Python to Go
- ownCloud (2021) from PHP to Go
- Percona (2021) from Prometheus to VictoriaMetrics
- Aluma (2021) from C# to Go
So many migrating to Go ^^. If it's not about migration, there's a lot more here that apparently choose Go (interviews, from X to Go, and also more here).
NOTE: this list will be no longer updated, you can see the lastest changes on github repo so anyone can contribute/update.
If you found any more news like this, paste the link on the comment, I'll gladly add them on the list.
2016-12-01
Faster than Go? Yes, plenty
Is there anything that faster than Go? yes, there are plenty, but I'm not sure if it would be fun to code with.. What are they?
G-WAN
G-WAN is closed-source web application server (not a language like Go). If I'm not mistaken G-WAN caches GET request, so second hit within few ms won't execute the backend function, practically this is cheating for benchmark (not merged), but for real application this feature quite great (can cope up with DDOS attack) :3 Btw did I mention that this web application server support whole lot of language? asm, C, C++, C#, D, Go, Java, Javascript, Lua, Objective-C, Perl, PHP, Python, Ruby, and Scala with CGI-like writing. One note that you must really learn how HTTP works (parsing header, setting cookie, parsing POST parameters, etc) if you want to use this.
I don't really know if this suffer the same problem similar to others that use CGI instead of FastCGI: connection pooling to database (but we can use pgpool).
LWAN
LWAN is also web application server that uses C, can be used with LuaJIT (fast implementation of Lua). For the framework you can use Sailor (Example).
PyParallel
PyParallel is a programming language implementation, forked from Python3, removes GIL (Global Interpreter Lock).
Julia
Julia is one awesome programming language that uses LLVM, it focuses
Actually there's a lot more implementation that faster than Go for certain (or all) cases, such as: C, C++, Ada, Rust, Java, and Fortran, be sure to check on BenchmarkGame site.
But, don't choose a language or web framework or web application platform just based on performance, there's a lot of things to consider, for example:
G-WAN
G-WAN is closed-source web application server (not a language like Go). If I'm not mistaken G-WAN caches GET request, so second hit within few ms won't execute the backend function, practically this is cheating for benchmark (not merged), but for real application this feature quite great (can cope up with DDOS attack) :3 Btw did I mention that this web application server support whole lot of language? asm, C, C++, C#, D, Go, Java, Javascript, Lua, Objective-C, Perl, PHP, Python, Ruby, and Scala with CGI-like writing. One note that you must really learn how HTTP works (parsing header, setting cookie, parsing POST parameters, etc) if you want to use this.
I don't really know if this suffer the same problem similar to others that use CGI instead of FastCGI: connection pooling to database (but we can use pgpool).
LWAN
LWAN is also web application server that uses C, can be used with LuaJIT (fast implementation of Lua). For the framework you can use Sailor (Example).
PyParallel
PyParallel is a programming language implementation, forked from Python3, removes GIL (Global Interpreter Lock).
Julia is one awesome programming language that uses LLVM, it focuses
Actually there's a lot more implementation that faster than Go for certain (or all) cases, such as: C, C++, Ada, Rust, Java, and Fortran, be sure to check on BenchmarkGame site.
But, don't choose a language or web framework or web application platform just based on performance, there's a lot of things to consider, for example:
- either it's waste of time to work with (since you must do many things manually aka there's no framework or so little libraries/function yet)
- how easy it's to train a new programmer to work with you or continue the project
- what's the continuity of the technology (if the project abandoned by the author/maintainer)
- build/compile duration
- etc..