Wednesday, February 12, 2020

Articles to Read Later

NoSQL related:
https://www.memsql.com/blog/why-nosql-databases-wrong-tool-for-modern-application/

React:
https://www.robinwieruch.de/react-libraries

Design, Web Applications:
https://changelog.com/posts/monoliths-are-the-future

UI, Javascript, Web Applications:
Infinite Scroll bugs - https://www.youtube.com/playlist?list=PLbZZF2MaiZb5bZKRQ8OtdeX3LTSUS7nsw

AWS, DevOps, Serverless:
Serverless Computing: One Step Forward, Two Steps Back - https://www.youtube.com/watch?v=dIb0xbXo6es&feature=youtu.be

General, Design:
'A Systemwide Disaster': How the Iowa Caucuses Melted Down
https://www.nytimes.com/2020/02/04/us/politics/what-happened-iowa-caucuses.html

General, Mobile:
The Rise and Fall of Mobilee - https://deprogrammaticaipsum.com/2020/02/03/the-rise-and-fall-of-mobile/

Elixir:
https://blog.agentrisk.com/elixirs-with-statement-is-fantastic-1431bcbcde3

General:
DHH Interview -  Software Contrarian - https://corecursive.com/david-heinemeier-hansson-software-contrarian-transcript/

Web Applications:
Develop a web crawler in 90 seconds - https://medium.com/@MarvinZhang89/develop-a-web-crawler-in-90-seconds-dab74bd1473f

General, Hardware:
Best Laptops for Programmers in 2020: https://www.reddit.com/r/programming/comments/ez6o87/best_laptops_for_programmers_in_2020/

React, Redux:
Introduction to using Redux with React Native - https://blog.afmonteiro.pt/react-native-and-redux/

Web Applications, Design, Performance:
Using queues to offload Web API - https://thomasvilhena.com/2019/07/using-queues-to-offload-web-api

YAML, DevOps, Kubernetes:
Overcooming YAML Pain in Continuous Integration - https://ithrowexceptions.com/2020/02/04/yaml-hell-in-devops.html

Web Applications, Design:
Nanoservices - https://labrary.online/nanoservices.html

Web Applications, DevOps:
https://www.bearer.sh/blog/what-is-an-api-gateway

React, Redux, Hooks:
https://blog.betomorrow.com/replacing-redux-with-observables-and-react-hooks-acdbbaf5ba80

Web Applications, DevOps:
The Amazon Premium: http://calpaterson.com/amazon-premium.html

Elixir
https://medium.com/@iantbutler01/writing-a-quick-and-dirty-web-crawler-in-elixir-b6aac2cfaac4

Passenger, Performance:
Request Load Balancing in Phusion Passenger - https://www.phusionpassenger.com/library/indepth/ruby/request_load_balancing.html

Web Applications, Security:
https://www.andrew-best.com/posts/learn-auth-the-hard-way-part-one/

iOS, Swift, SwiftUI:
https://developer.apple.com/tutorials/swiftui/

Database, ETL:
Introduction to Stream Processing - https://blog.frankel.ch/stream-processing/1

Kafka:
Why Kafka is so fast - https://medium.com/swlh/why-kafka-is-so-fast-bde0d987cd03

Multithreading, Performance, Concurrent:
https://i-kh.net/2020/02/10/multithreading-without-locks/




Monday, January 27, 2020

Using Phoenix and Rails together for a project, Terraform

Abandoning MySQL in favor of a database-free architecture and an Elixir-driven data indexing model

https://moz.com/devblog/moz-analytics-db-free
We are abandoning MySQL database storage—our current infrastructure’s decisive bottleneck—in favor of a database-free architecture and an Elixir-driven data indexing model. 

Elixir - online resources for learning

  1. ElixirConf Youtube Channel — All of the videos of speakers from ElixirConf starting back from 2017. Lots of great information and different perspectives.
  2. Elixir Forum — An active Elixir only forum where you can get quick and valuable feedback from engineers working in Elixir.
  3. Elixir tutorials and classes — A mixture of free and paid training classes.
  4. Elixir School — A destination for newbie and experienced Elixir programmers.
  5. Programming Elixir 1.6 — If you’re an experienced programmer looking for a comprehensive written resource on programming in Elixir, then this book is for you.
  6. Elixir training on Github
  7. Slack Bot tutorial — How to develop a Slack bot with Elixir and Phoenix.
  8. How to Learn Elixir for Hipster Javascript Developers — Some great basic concepts of Elixir.
  9. Learn Elixir in Y minutes — A high-level overview of Elixir on one page.
  10. How We Learned Elixir — A great story, with examples, about how engineers at a company learned Elixir.

Elixir, Telemetry, Prometheus example

A base Elixir project with Prometheus instrumentation through telemetry
https://github.com/philcallister/elixir_prometheus_telemetry

htop explained visually

The Sass Ampersand

Friday, January 24, 2020

Web Components related

What Would You Do Without a Framework? Front-End Anew with Lit-HTML - May 29 2019







Declarative Reactive Web Components with Justin Fagnani - June 2019


Sunday, January 12, 2020

Iterator

Excerpt from https://davidwalsh.name/es6-generators

Iterators are a special kind of behavior, a design pattern actually, where we step through an ordered set of values one at a time by calling next(). Imagine for example using an iterator on an array that has five values in it: [1,2,3,4,5]. The first next() call would return 1, the second next() call would return 2, and so on. After all values had been returned, next() would return null or false or otherwise signal to you that you've iterated over all the values in the data container.

New Web APIs

Friday, November 29, 2019

Difference between Dynamic Programming & Divide And Conquer

https://en.wikipedia.org/wiki/Dynamic_programming

There are two key attributes that a problem must have in order for dynamic programming to be applicable: optimal substructure and overlapping sub-problems. If a problem can be solved by combining optimal solutions to non-overlapping sub-problems, the strategy is called "divide and conquer" instead.[1] This is why merge sort and quick sort are not classified as dynamic programming problems.

RSA Encryption Algorithm


Wednesday, November 27, 2019

An educated mind

Aristotle famously stated that the mark of an educated mind is the ability to entertain a thought without accepting it.

Intro to B-Trees

Monday, October 28, 2019

Tail-Recursion, Tail-Call Optimization

https://stackoverflow.com/questions/33923/what-is-tail-recursion
https://stackoverflow.com/questions/310974/what-is-tail-call-optimization

Examples done after reading the answers in the 1st link above:

// 
//////////// Sum till n ////////////
//

// - normal recursion
function sumTo(n) {
  return (n == 0 ? 0 : (n+sumTo(n-1)));
}
var result = sumTo(10);
console.log(result);

// - tail recursion
function sumTo2(n) {
  return sumTo2_aux(n, 0);
}
function sumTo2_aux(n, acc) {
  return (n == 0) ? acc : sumTo2(n-1, acc+n);
}
var result2 = sumTo2(10);
console.log(result2);


//
//////////// Factorial ////////////
//

// - normal recursion
function factorial(n) {
  return (n == 1 ? 1 : n * factorial(n-1));
}
var factorial_result1 = factorial(10);
console.log(factorial_result1);

// - tail recursion
function factorial2(n) {
  return factorial2_aux(n,1);
}
function factorial2_aux(n, acc){
  return (n == 1 ? acc : n * factorial2_aux(n-1, acc));
}
var factorial_result2 = factorial2(10);
console.log(factorial_result2);

//

Thursday, October 24, 2019

Firebase related

Data Structures related

Uninstall Mongo old version and Install new version

1) backup data

mkdir mongodb-dump-oct24-2019
cd mongodb-dump-oct24-2019
mongodump

Above will create a folder called 'dump' within 'mongodb-dump-oct24-2019' folder.

2) Uninstall existing version of mongodb
https://medium.com/@rajanmaharjan/uninstall-mongodb-macos-completely-d2a6d6c163f9

3) Install new version
https://stackoverflow.com/questions/57856809/installing-mongodb-with-homebrew

brew tap mongodb/brew  
brew install mongodb-community@4.0
4) brew link --force mongodb-community@4.0
brew services start mongodb-community@4.0
5) Restore data
cd mongodb-dump-oct24-2019
mongorestore

Sunday, September 22, 2019

'less' related

To search for 1st occurrence from top of file:
less +/FATAL log/production.log

To search for 1st occurrence from bottom of file:
less +?"Processing by" log/production.log


Linux - Tools, System Administration Basics

Monday, September 16, 2019

Thursday, August 29, 2019

Open Source related - 'Funding' Experiment Recap

Very interesting and thought-provoking article about Funding for OSS
https://feross.org/funding-experiment-recap/
However the comments section also includes this very valid comment from Mjölnir :
There were numerous valid concerns like the ones I'm raising now. You've only cherry-picked the most positive ones and used them to support your arguments. Yes there was an inundation of responses and I'm sure it's not easy to be at the receiving end of so much derision but there were TONS of valid concerns and dismissing the VAST majority of people in the ecosystems with such a flagrant disregard for conflicting opinions does not bode well
More comments over here - https://www.reddit.com/r/programming/comments/cwwe8c/recap_of_the_funding_experiment_ferossorg/


Thursday, August 22, 2019

Seated-Meditation vs Seated-Programming

"It's thought that KungFu was developed by the early Chinese monks as a way to stay fit enough for hours of seated meditation."




Seated Programming/Studying is not very different from Seated-Meditation.
Hence, the need for being extremely fit for hours of seated-meditation applies to seated-studying/programming as well.

Monday, August 19, 2019

mysql2 gem problems on Mac

https://github.com/brianmario/mysql2/issues/1005

commented on 26 Oct 2018

To fix for a manual gem install:
brew install openssl
gem install mysql2 -- --with-opt-dir="$(brew --prefix openssl)"
To fix for all bundle installs:
brew install openssl
bundle config --global build.mysql2 --with-opt-dir="$(brew --prefix openssl)"
bundle install

Followers

Blog Archive