Sunday, March 24, 2024

AI Book - Deep Learning for Coders with Fastai and PyTorch: AI Applications Without a PhD

Deep Learning for Coders with Fastai and PyTorch: AI Applications Without a PhD

https://course.fast.ai/Resources/book.html

testcontainers.com

https://testcontainers.com/

An open source framework for providing throwaway, lightweight instances of databases, message brokers, web browsers, or just about anything that can run in a Docker container.

Sunday, February 25, 2024

c2pa.org - Coalition for Content Provenance and Authenticity

https://c2pa.org/

The Coalition for Content Provenance and Authenticity (C2PA) addresses the prevalence of misleading information online through the development of technical standards for certifying the source and history (or provenance) of media content. C2PA is a Joint Development Foundation project, formed through an alliance between Adobe, Arm, Intel, Microsoft and Truepic.

Tuesday, December 12, 2023

Leetcode type problem - Sub-Arrays problem

 Generate number of sub arrays with a particular sum: E.g. nums = [1,1,1] with sum 2

arr = [1,1,1]
SUM =2
#arr = [1,2,2,3,4,5]
#SUM = 5

sub_arrays = []
arr = arr.sort

arr.each_with_index do |n, index|
  if n == SUM
    sub_arrays << [n]
    next
  end
  rest_of_array = arr[(index+1)..-1]
  temp_arr = [n]

  rest_of_array.each do |m|
    temp_arr << m
    if temp_arr.sum == SUM
      # We found a sub_array!
      sub_arrays << temp_arr
      # There might be duplicates of m, so let us remove m from temp_arr and continue
      temp_arr = temp_arr[0..temp_arr.length-2]
    end
    if temp_arr.sum < SUM
      # do nothing; we can continue to add more elements
    end
    if temp_arr.sum > SUM
      # discard all elements except n
      temp_arr = [n]
    end
  end
end

puts sub_arrays.to_s

Sunday, December 10, 2023

Cryptography Foundations

 Below is an excerpt from the book - Securing Cloud Applications (manning.com)


Tuesday, November 21, 2023

Optimizing HTML to PDF in Node.js

https://blog.logrocket.com/optimizing-html-pdf-node-js

The complete guide to Kubernetes cost management in 2023

https://www.spectrocloud.com/blog/the-complete-guide-to-kubernetes-cost-management

State of Cloud Security

https://www.datadoghq.com/state-of-cloud-security/

Amazon’s free courses on generative AI

https://www.aboutamazon.com/news/aws/aws-free-ai-skills-training-courses

The Architecture Of Serverless Data Systems

https://jack-vanlightly.com/blog/2023/11/14/the-architecture-of-serverless-data-systems

Load Shedding for High Traffic Systems

https://www.codereliant.io/load-shedding/

React Server Components: A comprehensive guide

https://blog.logrocket.com/react-server-components-comprehensive-guide/

Developing an effective CI/CD pipeline for frontend apps

https://blog.logrocket.com/best-practices-ci-cd-pipeline-frontend

Wednesday, October 11, 2023

Rails and JS - No Build for JS

https://world.hey.com/dhh/you-can-t-get-faster-than-no-build-7a44131c

We're making it using vanilla ES6 with import maps for Hotwire, and vanilla CSS with nesting and variables for styling. All running on a delightfully new simple asset pipeline called Propshaft. 

Saturday, September 16, 2023

Rails: class_attribute

https://chat.openai.com/c/388e1263-46a6-4406-b16d-8094b8232dfb

In essence, whenever you find yourself thinking, "I need a class-level configuration that should have a default, but I also want the flexibility to customize it for certain subclasses or instances," class_attribute is a tool you might consider using.

Rails - ActiveRecord - inverse_of

https://chat.openai.com/share/e8f26c7d-d539-4ba9-93b3-52f702ca8909

Rails: Join multiple nested associations

Join multiple nested associations:

https://gist.github.com/abhionlyone/84dec0aa7a5d30b9e2bc6d7bd2094f20

Wednesday, February 15, 2023

How to learn Machine Learning

https://twitter.com/machsci/status/1625569733126033408?s=21&t=Urcac12Ha89dnjd31vAAIg

https://vickiboykis.com/2022/11/10/how-i-learn-machine-learning/

https://pytorch.org/tutorials/beginner/deep_learning_60min_blitz.html

https://twitter.com/jhoang314/status/1624829824782028806?s=21&t=Urcac12Ha89dnjd31vAAIg

https://www.ninoristeski.com/how-to-find-the-best-resources-on-machine-learning/

...

Start with tabular data and linear/logistic regression. Then grab lightgbm with automl, learn the common explainability methods and focus on anything BUT selecting an algorithm. When you got that, learn all other algorithms in and out and look for model innovations.

...

Just learn BigQuery and it's machine learning capabilities and read books alot and avoid youtube videos as much as possible.

...

Start with SQL, Python. Pick a popular ML library e.g. Sklearn, Keras, XGBoost and apply it to a dataset

...

Start by getting familiar with the fundamentals of machine learning, such as linear algebra, calculus and probability theory. Also read up on popular algorithms to get a better understanding of how they work.

...

Learn statistics and probability a lot of concepts require simple concepts from those fields, if you want to go a little further learn abstract geometry is going to allow you to learn about how nonlinear models implement hyperplanes.

Friday, October 7, 2022

Rails 6 - enums - March 2021

https://betterprogramming.pub/how-to-use-enums-in-rails-6-87600e292476

javascript - this keyword

https://huzefabiyawarwala.medium.com/reincarnated-this-keyword-in-javascript-19488a26d796

Docker related - Rails On Docker Simplified


Rails on Docker:

https://huzefabiyawarwala.medium.com/rails-on-docker-simplified-84c1bfb485c3

https://www.digitalocean.com/community/tutorials/containerizing-a-ruby-on-rails-application-for-development-with-docker-compose


Kitematic open-source GUI tool to watch/start/stop containers:

https://github.com/docker/kitematic/wiki/Early-Linux-Development


How Docker and Kubernetes work together

https://containerjournal.com/topics/container-ecosystems/how-docker-and-kubernetes-work-together/

https://stackify.com/kubernetes-docker-deployments/

Rails - Single Table Inheritance

https://medium.com/@dcordz/single-table-inheritance-using-rails-5-02-6738bdd5101a

https://huzefabiyawarwala.medium.com/single-table-inheritance-in-rails-fc28a56a3f9

https://stackoverflow.com/questions/555668/single-table-inheritance-and-where-to-use-it-in-rails

https://old.alexreisner.com/code/single-table-inheritance-in-rails - very good overview of which options, we'll typically have, when faced with a design problem


StimulusJS related

https://www.betterstimulus.com/

https://github.com/stimulus-use/stimulus-use

https://stimulus-use.github.io/stimulus-use

https://dev.to/adrienpoly/animations-with-turbolinks-and-stimulus-4862

Tuesday, September 20, 2022

Courses suggested by Javinpaul (Twitter)

 Best Software Architecture and Design Pattern Courses

1. Design Patterns in Java - bit.ly/3nYGrYR

2. Grokking the OOP Design - bit.ly/3pA4wFD

3. Master Microservices  - bit.ly/2FNlleF

4. Software Architecture Patterns - bit.ly/38Ixqg5


5 Free Courses for Data Structure and Algorithms

1. Data Structure  - bit.ly/3l4VxMj

2. Algorithms - bit.ly/3P45Gqi

3. A Visual Intro to Algorithms - bit.ly/3NcwIKx

4. Data Structures Java - bit.ly/2F5V1uW

5. more - bit.ly/3w2YQJY


5 Best Courses for Microservices

1. Microservice Architecture  - bit.ly/3w1zGva

2. Principles - bit.ly/3ruSCR7

3. Scalable Microservices - bit.ly/3MaP7GS

4. Microservice with Java   -  bit.ly/2FNlleF

5. more - bit.ly/3PQzR3v



6 System Design Problems

 6 System Design Problems [Solved]

1. Instagram- bit.ly/3BqamCL

2. Youtube Design - bit.ly/3bbNnAN

3. WhatsApp - bit.ly/3SbA9Eu

4. Parking Lot - bit.ly/3eMUosX

5. Library design- bit.ly/3SfwJQe

6. URL Shortner - bit.ly/3dZoQ2G

Friday, September 16, 2022

AWS SQS vs SNS vs EventBridge - When to Use What? - Aug 2021

 

Kafka - basics

 https://developer.confluent.io/tutorials/#learn-the-basics

Streaming 101: The world beyond batch

 https://www.oreilly.com/radar/the-world-beyond-batch-streaming-101/

The Lambda Architecture: 2011 - 

http://nathanmarz.com/blog/how-to-beat-the-cap-theorem.html

Questioning the Lambda Architecture - 2014 - in favour of Kafka - 

http://radar.oreilly.com/2014/07/questioning-the-lambda-architecture.html

Future of Data Engineering - Dec 2019

 

Kafka related - "ETL Is Dead, Long Live Streams: real-time streams w/ Apache Kafka"


Podcasts and YouTube channels recommended by Hussein Nasser

Below is from his Youtube video - https://www.youtube.com/watch?v=4NsWnT_-FoE

Podcasts and YouTube channels recommended by Hussein Nasser

Recommended Podcasts

https://softwareengineeringdaily.com/

https://www.dataengineeringpodcast.com/

https://changelog.com/podcast

Recommended YouTube Channels

https://www.youtube.com/user/TechGuyWeb

https://www.youtube.com/user/99baddawg

https://www.youtube.com/channel/UCRPMAqdtSgd0Ipeef7iFsKw

https://www.youtube.com/channel/UCn1XnDWhsLS5URXTi5wtFTA

Saturday, September 3, 2022

React Native related - error trying to start Simulator using 'i' shortcut

Error: xcrun exited with non-zero code: 2

An error was encountered processing the command (domain=NSPOSIXErrorDomain, code=2):

Unable to boot device because we cannot determine the runtime bundle.

No such file or directory

https://stackoverflow.com/questions/69804969/react-native-runtimeerror-aborterror-xcrun-exited-with-non-zero-code-2-on

https://stackoverflow.com/questions/31179706/how-can-i-launch-the-ios-simulator-from-terminal

Friday, August 12, 2022

Prerequisites for Algorithms by Jeff Erickson

Author lists below as the prerequisites for reading his book: (Below content has been copied from the Prerequisites pages of his book)

• Discrete mathematics: High-school algebra, logarithm identities, naive set theory, Boolean algebra, first-order predicate logic, sets, functions, equivalences, partial orders, modular arithmetic, recursive definitions, trees (as abstract objects, not data structures), graphs (vertices and edges, not function plots). 

• Proof techniques: direct, indirect, contradiction, exhaustive case analysis, and induction (especially “strong” and “structural” induction). Chapter 0 uses induction, and whenever Chapter n−1 uses induction, so does Chapter n. 

• Iterative programming concepts: variables, conditionals, loops, records, indirection (addresses/pointers/references), subroutines, recursion. I do not assume fluency in any particular programming language, but I do assume experience with at least one language that supports both indirection and recursion. 

• Fundamental abstract data types: scalars, sequences, vectors, sets, stacks, queues, maps/dictionaries, ordered maps/dictionaries, priority queues. 

• Fundamental data structures: arrays, linked lists (single and double, linear and circular), binary search trees, at least one form of balanced binary search tree (such as AVL trees, red-black trees, treaps, skip lists, or splay trees), hash tables, binary heaps, and most importantly, the difference between this list and the previous list. 

• Fundamental computational problems: elementary arithmetic, sorting, searching, enumeration, tree traversal (preorder, inorder, postorder, levelorder, and so on). 

• Fundamental algorithms: elementary algorism, sequential search, binary search, sorting (selection, insertion, merge, heap, quick, radix, and so on), breadth- and depth-first search in (at least binary) trees, and most importantly, the difference between this list and the previous list.

• Elementary algorithm analysis: Asymptotic notation (o, O, Θ, Ω, ω), translating loops into sums and recursive calls into recurrences, evaluating simple sums and recurrences. 

• Mathematical maturity: facility with abstraction, formal (especially recursive) definitions, and (especially inductive) proofs; writing and following mathematical arguments; recognizing and avoiding syntactic, semantic, and/or logical nonsense.


Books:

Margaret M. Fleck. Building Blocks for Theoretical Computer Science, unpublished textbook, most recently revised January 2013. Available from http://mfleck.cs.illinois.edu/building-blocks/. 

• Eric Lehman, F. Thomson Leighton, and Albert R. Meyer. Mathematics for Computer Science, unpublished lecture notes, most recent (public) revision June 2018. Available from https://courses.csail.mit.edu/6.042/spring18/. (I strongly recommend searching for the most recent revision.) 

• Pat Morin. Open Data Structures, most recently revised January 2016 (edition 0.1Gβ). A free open-content textbook, which Pat maintains and regularly updates. Available from http://opendatastructures.org/.



Monday, June 20, 2022

How to run bundler with a lower version

~/xxxxx/xxxxx/xxxxx/xxxx/xxxxxx/xxxxxxxx$ gem list | grep bundler
bundler (2.1.4, 1.17.3, 1.16.4, 1.16.1)

~/xxxxx/xxxxx/xxxxx/xxxx/xxxxxx/xxxxxxxx$ bundle _1.17.3_ install
https://stackoverflow.com/questions/9725811/how-to-downgrade-bundler-or-upgrade-rails

Monday, May 23, 2022

Install nvm on MacOS

https://stackoverflow.com/questions/67241196/error-no-template-named-remove-cv-t-in-namespace-std-did-you-mean-remove

https://tecadmin.net/install-nvm-macos-with-homebrew/

Sunday, May 1, 2022

Upgrading from Rails 6.1 to Rails 7.0

https://edgeguides.rubyonrails.org/7_0_release_notes.html

https://edgeguides.rubyonrails.org/upgrading_ruby_on_rails.html#upgrading-from-rails-6-1-to-rails-7-0

https://medium.com/geekculture/whats-new-in-rails-7-b97d44eecdb2

https://dev.to/thomasvanholder/how-to-upgrade-rails-61-to-rails-7-33a3

https://dev.to/thomasvanholder/rails-7-framework-defaults-part-1-2a59

https://www.fastruby.io/blog/rails/upgrades/upgrade-rails-6-1-to-7-0.html

https://www.youtube.com/watch?v=SjdV_1k1QWY ---> Upgrade from Rails 6 to Rails 7 – web-crunch.com

Tuesday, April 12, 2022

Rails ActiveRecord: 2 ways to write 'where' clause

result = Product.where("description LIKE ?", "%Lorem%")

result = Product.where("description LIKE :term", {term: "%Lorem%"})

Thursday, March 31, 2022

MySQL - finding out slow queries

 SELECT * FROM `mysql`.slow_log ORDER BY query_time DESC;

Sunday, March 6, 2022

sed command example

 https://stackoverflow.com/questions/71318743/kubectl-versions-error-exec-plugin-is-configured-to-use-api-version-client-auth

Below command will take a backup of the file and substitute v1alpha1 with v1beta1

sed -i .bak -e 's/v1alpha1/v1beta1/' ~/.kube/config


Friday, March 4, 2022

React Native project - Sep 19 2021

  Build Uber Eats with React Native & YELP API | Redux | Firebase | Google API

React Native project - Jul 30, 2021

Let's build Uber 2.0 with REACT NATIVE! (Navigation, Redux, Tailwind CSS & Google Autocomplete)  

Rails improvements in 2021 - DHH

 https://world.hey.com/dhh/no-railsconf-faa7935e

Tuesday, March 1, 2022

Checklist app in SwiftUI using Core Data

Checklist app in SwiftUI using Core Data - Part 1

Jul 19, 2021

https://www.youtube.com/watch?v=6qtUL8Qgmcw


Checklist app in SwiftUI using Core Data - Part 2

Jul 21, 2021

https://www.youtube.com/watch?v=4RJrHbk-VgE

Build a macOS Menu Bar Realtime Crypto Tracker with SwiftUI & WebSocket - Feb 4, 2022

 

SwiftUI Basic Components

 https://betterprogramming.pub/swiftui-basic-components-ac2c62dc7b95

New CSS features in 2022

 https://www.smashingmagazine.com/2022/03/new-css-features-2022/

Tech Interview Prep

 https://aikikode.me/blog/interview-preparation-2022/

SwiftUI - Alternative to MVVM OR cleaner MVVM

 

iOS related: UI Design for Developers

https://www.youtube.com/playlist?list=PLDaHCLWmCcQLvG6AOpw5VxopkBKIcH9m7 

Above needs subscription 

Adapt SwiftUI app for iPad, Landscape, and Dark Mode

 

Tuesday, February 8, 2022

Sha256 Algorithm Explained

https://sha256algorithm.com/ 

Principles for Designing and Deploying Scalable Applications on Kubernetes - Feb 2022

 https://elastisys.com/designing-and-deploying-scalable-applications-on-kubernetes/

AWS Lambda and ffmpeg

https://aws.amazon.com/blogs/media/processing-user-generated-content-using-aws-lambda-and-ffmpeg/ 

https://aws.amazon.com/blogs/media/2020-resolution-add-user-generated-content-to-your-applications/

Signed Cookies and Signed Urls on AWS CloudFront

https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html

https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-signed-urls.html 

Video-on-demand on AWS

https://aws.amazon.com/solutions/implementations/video-on-demand-on-aws/ 

YouTube vs Vimeo

https://blog.hubspot.com/marketing/youtube-vs-vimeo 

HTML5 Streaming

 https://flussonic.com/blog/news/html5-streaming/

Saturday, January 8, 2022

Rails related: Concerns, Module-method extraction Vs Class-based extraction, Concerning module

1) Single-use Modules are probably better off as Classes as per the below article.

 https://www.cloudbees.com/blog/when-to-be-concerned-about-concerns

By and large, maintainers tend to agree that smaller composable classes are the best way to isolate code and keep things clean.

....

....

I'm not saying that you need to go out and refactor all your single-use modules into classes. I am saying if you find yourself reaching to do a module-method extraction, stop. Consider what road you're starting down and these lessons I've shared. What would a class-based extraction look like instead?

2) https://blog.appsignal.com/2020/09/16/rails-concers-to-concern-or-not-to-concern.html 

3) https://api.rubyonrails.org/v5.0/classes/Module/Concerning.html

4) https://scoutapm.com/blog/rails-concerns - sort of consolidates content from the above articles

5) https://rails.devcamp.com/trails/dissecting-rails-5/campsites/data-management-rails/guides/how-to-use-concerns-rails-5

 

Friday, January 7, 2022

Ruby - differences between Proc and Lambda

 https://medium.com/rubycademy/procs-and-lambdas-46433b93080d

Is module_function really the same as extend self?

https://apidock.com/ruby/Module/module_function

https://medium.com/rubycademy/is-module-function-really-the-same-as-extend-self-ac1e96a1cda0

Rails related - Performance improvement

View performance: 

https://blog.appsignal.com/2020/01/22/rails-is-fast-optimize-your-view-performance.html 

ActiveRecord performance:

https://blog.appsignal.com/2021/02/24/troubleshooting-activerecord-performance.html

Building a Rails App With Multiple Subdomains

 https://blog.appsignal.com/2020/03/04/building-a-rails-app-with-multiple-subdomains.html

Building a Multi-Tenant Ruby-on-Rails app

 https://blog.appsignal.com/2020/12/02/building-a-multi-tenant-ruby-on-rails-app-with-subdomains.html

Rails - How to implement Routes for Many-to-Many

https://stackoverflow.com/questions/31258275/rails-4-how-to-implement-routes-for-a-many-to-many-relationship

https://edgeguides.rubyonrails.org/routing.html#routing-concerns

https://edgeapi.rubyonrails.org/classes/ActionDispatch/Routing/Mapper/Concerns.html#method-i-concern


Sunday, January 2, 2022

Draft Pull Requests

 https://software.rajivprab.com/2021/12/26/our-engineering-principles-and-best-practices/

Draft Pull-Requests

For each pull-request, first create a draft pull-request, demonstrating the proposed implementation at a high level. Use TODOs and placeholders to indicate which classes/methods you will be touching. Send it off for review and then immediately start working on the actual code and tests.

This mitigates the amount of wasted effort, if your reviewer then suggests a completely different way of implementing things. Once your reviewer approves the draft, link to it in your pull-request, to make sure everyone knows what was already discussed and agreed on.


CORS related

 https://nickolinger.com/blog/2021-08-04-you-dont-need-that-cors-request/

https://www.reddit.com/r/programming/comments/rurxhl/you_dont_need_that_cors_request/

Computer Networking Introduction - Ethernet and IP (Heavily Illustrated)

 https://iximiuz.com/en/posts/computer-networking-101/

Container Networking Is Simple!

https://iximiuz.com/en/posts/container-networking-is-simple/ 

Followers

Blog Archive