- best practice 11
- data visualization 7
- DevOps 4
- testing 4
- best practices 3
- security 3
- Azure 2
- CICD 2
- Databricks 2
- Facebook 2
- Google 2
- Java 2
- OCP 2
- Terraform 2
- certification 2
- elasticsearch 2
- feature testing 2
- kibana 2
- logstash 2
- machine learning 2
- memes 2
- paper 2
- software engineering 2
- youtube 2
- AES 1
- AWS 1
- Alan Perlis 1
- Amazon 1
- Azure translate 1
- Bad Apple Theory 1
- CICD process 1
- CIS 1
- Computer Science 1
- Elasticsearch 1
- Fundamental Attribution Error 1
- GitHub actions 1
- IMVU 1
- IaC 1
- Infrastructure as code 1
- Jenkins 1
- Kubernetes 1
- Neflix 1
- Netflix 1
- PhD 1
- Piper 1
- PowerBI 1
- RStudio 1
- Spark 1
- Spring-boot 1
- Thymeleaf 1
- Turing Award 1
- agile 1
- anti-patterns 1
- apache superset 1
- blameless postmortems 1
- chaos engineering 1
- cloud 1
- code review 1
- compass 1
- continuous deployment 1
- croatian language dataset 1
- data engineering 1
- data science 1
- digital ocean 1
- disaster recovery 1
- distributed computing 1
- docker 1
- docker-compose 1
- etsy 1
- feature factory 1
- fragility 1
- ggplot2 1
- graceful degradation 1
- hype 1
- jupyter 1
- logging 1
- marketing 1
- matplotlib 1
- microservices 1
- mongoDB 1
- monolith 1
- network 1
- nginx 1
- pair programming 1
- pandas 1
- programming history 1
- resilience 1
- robustness 1
- scala 1
- sentiment analysis 1
- survey 1
- system design 1
best practice
Test Pyramid
Martin Fowler on testing pyramid.
Testing in Production, the safe way
Story of testing in production environment by Cindy Sridharan.
Continuous Deployment at IMVU: Doing the impossible fifty times a day
Old blog post from 2009 by Timothy Fitz:
Lessons Netflix Learned from the AWS Outage
Article by Adrian Cockroft, Cory Hicks, and Greg Orzell from Netflix and its resiliency. Here are a couple of important points:
What is Continuous Delivery?
Pretty good definition of continuous delivery:
The 10 commandments of logging
List of logging advices by Brice Figureau:
Blameless PostMortems and a Just Culture
Article by John Allspaw on Blameless Postmortems in Etsy with key takeaway:
Deploy != Release
Article by Art Gillespie on ambiguous terminology in CICD process. Although I prefer the meaning of Humble and Farley for “release” as in “an artifact of build process which can be deployed on demand”, the article is a worthwhile read nonetheless.
Pair Programming vs. Code Reviews
Article by Jeff Atwood on Pair programming and code reviews with conclusion:
Building and testing at Facebook
Article by Andrew Bosworth from Facebook on rolling out new features and testing:
Just Say No to More End-to-End Tests
Mike Wacker on Google’s testing strategy.
data visualization
Munich Population with PowerBI
Visualization on Munich population grouped by districts.
Top 500 companies in Croatian IT - Superset
First image is a dashboard composed of all other figures. Second figure is a bar chart of companies grouped by city and activity. There is a clear domination of capital city (Zagreb) where are most of the companies registered. However, there is also a clear domination of 6201 code, which denotes ‘Computer programming’. Interestingly, other cities have companies only in this domain, and nothing in counseling(6202), wireless communication (6120), data analysis (6311), equipment management (6203), or even uncategorized activity (6209). Third image represents profit allocation with a pie chart. Roughly two thirds annual profits are from computer programming. Fourth image is a word cloud that counts employees in each city and presents them in adequate ratio. Clearly, Zagreb as a capital city with the most companies has the largest word size. Fifth is a chord diagram that connects company location with activity. Again, presence of Zagreb and programming is easily notceable. Sixth image is a bubble chart. Each data point represents one company. X axis is mapped to a value of ‘Capital and reserves’. Y axis is mapped to the annual revenue. Scales are logarithmically adjusted. Bubble size is linked to the number of employees in the company, while bubble color is linked to the activity type. Presence of red coloer indicated ‘Computer programming’ category. Big purple circle in the middle is Croatian Telecom (Hrvatski Telekom). Big bluish circle in the bottom right corner is VipNet. Since SuperSet reads these numbers as strings, ratios are not correct, and the same figure should be done properly with another tool.
Top 500 companies in Croatian IT - matplotlib
First five images are presenting relation of company’s capital to the annual profit, while simultaneously showing relations of company size and type of main economic activity. X axis is mapped to annual profit, Y axis is mapped to capital and reserves. Circle size is correlated to the number of employees, while circle color represents type of work in the IT sector, such as computer programming, counseling(6202), wireless communication (6120), data analysis (6311), equipment management (6203), or uncategorized activity (6209). First image clearly illustrates extremely dominating position of T-Com company. Following images are presenting the same data with different levels of zoom. Last figure is a bar chart, revealing Zagreb as a software center, and computer programming as a sole activity of companies in different cities.
Compass and MongoDB with the Zagreb Surveillance Cameras dataset
This is a demonstration of MongoDB’s Compass visualization capabilities with geographical data. The repository contains an original csv, a preprocessed csv, a gawk script for transforming csv to json, and finally json prepared for importing in MongoDB. The list is not updated, and new cameras have been installed after the publication of the dataset in 2016. The first image is a classical, ‘neutral’ view, encompassing all geolocations. Other images are zooming into particular part of the city while shifting angle.
Visualizing Geolocations in Italy using ELK stack
This is a demonstration of ELK stack geo-mapping capabilities.
The original Dataset
The presented data are a subset of geo points in a zip file for Europe (https://s3.amazonaws.com/data.openaddresses.io/openaddr-collected-europe.zip) available through the OpenAddresses project. I used only a couple of files related to Italy (ferrara.csv, bologna.csv, statewide.csv, etc.). Circle size and color are not related to any other features in a dataset; they simply indicate a quantity of points in a certain area.
Created With
- ElasticSearch - ElasticSearch NoSQL engine
- Kibana - Kibana visualization tool
- Logstash - Logstash ingestion tool
Visual Exploration of Croatian Literature Translations
This is a demonstration of ELK stack’s visualization capabilities. First figure is a smoothened area chart of translations through years, spiking in 2008, just before the economic crisis kicked in. Second visualization is a donut chart of translated authors, with Ivo Andrić being the most translated author (14.71%). Third image represents a bar chart of top Croatian literature translation publishers. Fourth figure is a donut chart of translations by language. German language dominates with 21.15%, followed by English (11.09%), Slovakian (10.62%), and Slovenian (9.04%). Figure five is identical to the previous figure, with added tabular info. Sixth figure represents an area figure of the number of translations grouped by country. Germany leads with over 300 published items. Seventh visualization is a pie chart of the most commonly translated titles. First place is taken by “Na Drini ćuprija” (9.1%), written by Ivo Andrić.
Figures from Steven Pinker’s book The Better Angels of Our Nature
Here are several visualizations about violence rates created with R.
Several percentages in a figure about a share of violent deaths are referencing only male population; to simplify, I neglected that information.
Third figure illustrates the ‘Recivilization of the 1990s’ thesis, a period of violence decline. Pinker claims it is due to the increased incarceration: “The most effective was also the crudest: putting more men behind bars for longer stretches of time.”; and increase in the police force: “In a stroke of political genius, President Bill Clinton undercut his conservative opponents in 1994 by supporting legislation that promised to add 100,000 officers to the nation’s police forces.”, among other things.
Fourth figure is adopted to the time scale of century instead of mid year, and the conflicts are ordered.
Steven Pinker’s book: The Better Angels of Our Nature
DevOps
Genomics ETL
This is a demo data engineering project built on Azure cloud. ETL pipeline implemented in Azure Data Factory is ingesting and transforming Illumina Platinum Genomes dataset. Terraform is used for provisioning infrastructure. Deployment pipelines are implemented in GitHub actions in accordance with official Microsoft guidelines, with working CICD process between DEV and PROD environments. DEV ADF is connected to git repository, and ARM templates are propagated to PROD environment through GitHub action.
Databricks visualization:
State of DevOps 2022
Google’s State of DevOps 2022 report
State of DevOps 2021
Google’s State of DevOps 2021 report
Testing in Production, the safe way
Story of testing in production environment by Cindy Sridharan.
testing
Test Pyramid
Martin Fowler on testing pyramid.
Testing in Production, the safe way
Story of testing in production environment by Cindy Sridharan.
Continuous Deployment at IMVU: Doing the impossible fifty times a day
Old blog post from 2009 by Timothy Fitz:
Just Say No to More End-to-End Tests
Mike Wacker on Google’s testing strategy.
best practices
CIS benchmarks
Link to CIS benchmarks
Software engineering at Google - book link
Link to a O’Reilly book Software engineering at Google
12 Factor app
12 Factor app page
security
CIS benchmarks
Link to CIS benchmarks
Shodan Monitor
Catalog of publicly exposed services
Kubernetes security
Kubernetes security best practices guidelines
Azure
Genomics ETL
This is a demo data engineering project built on Azure cloud. ETL pipeline implemented in Azure Data Factory is ingesting and transforming Illumina Platinum Genomes dataset. Terraform is used for provisioning infrastructure. Deployment pipelines are implemented in GitHub actions in accordance with official Microsoft guidelines, with working CICD process between DEV and PROD environments. DEV ADF is connected to git repository, and ARM templates are propagated to PROD environment through GitHub action.
Databricks visualization:
Deploy Databricks on Azure with Terraform
This is a minimal example for deploying Databricks service on Azure. The smallest number of nodes in the cluster will be 1, and maximum 5. Node type will be the smallest one, and Spark version the latest one with long term support. You will be able to log in automatically with your SSO user. Auto-termination is set to 20 minutes.
CICD
Genomics ETL
This is a demo data engineering project built on Azure cloud. ETL pipeline implemented in Azure Data Factory is ingesting and transforming Illumina Platinum Genomes dataset. Terraform is used for provisioning infrastructure. Deployment pipelines are implemented in GitHub actions in accordance with official Microsoft guidelines, with working CICD process between DEV and PROD environments. DEV ADF is connected to git repository, and ARM templates are propagated to PROD environment through GitHub action.
Databricks visualization:
Continuous Deployment at IMVU: Doing the impossible fifty times a day
Old blog post from 2009 by Timothy Fitz:
Databricks
Genomics ETL
This is a demo data engineering project built on Azure cloud. ETL pipeline implemented in Azure Data Factory is ingesting and transforming Illumina Platinum Genomes dataset. Terraform is used for provisioning infrastructure. Deployment pipelines are implemented in GitHub actions in accordance with official Microsoft guidelines, with working CICD process between DEV and PROD environments. DEV ADF is connected to git repository, and ARM templates are propagated to PROD environment through GitHub action.
Databricks visualization:
Deploy Databricks on Azure with Terraform
This is a minimal example for deploying Databricks service on Azure. The smallest number of nodes in the cluster will be 1, and maximum 5. Node type will be the smallest one, and Spark version the latest one with long term support. You will be able to log in automatically with your SSO user. Auto-termination is set to 20 minutes.
What is Continuous Delivery?
Pretty good definition of continuous delivery:
Building and testing at Facebook
Article by Andrew Bosworth from Facebook on rolling out new features and testing:
Software engineering at Google - book link
Link to a O’Reilly book Software engineering at Google
Google Is 2 Billion Lines of Code—And It’s All in One Place
Article in Wired magazine about Google’s massive mono repo.
Java
Java OCP exam code snippets
These are my preparation exercises for the OCP exam. Each example is self-contained, executable code snippet. Usually, my examples are based on meaningful illustration and clear functionality, as in this case of BiPredicate lambda function:
// Map
Map<Integer, String> henryFondaMovies = new HashMap<>();
henryFondaMovies.put(1962, "The Longest Day");
henryFondaMovies.put(1940, "The Grapes of Wrath");
henryFondaMovies.put(1964, "Fail-Safe");
henryFondaMovies.put(1957, "12 Angry Men");
henryFondaMovies.put(1937, "You Only Live Once");
henryFondaMovies.put(1938, "The Mad Miss Manton");
BiPredicate<Integer, String> yearFilter = ((year, title) -> year > 1950);
BiPredicate<Integer, String> titleFilterNumeric = ((year, title) -> title.matches(".*\\d+.*"));
BiPredicate<Integer, String> titleFilterThe = ((year, title) -> title.contains("The"));
// this will print only movies that are released after the 1950
for (Map.Entry<Integer, String> entry : henryFondaMovies.entrySet())
if (yearFilter.test(entry.getKey(), entry.getValue()))
System.out.println("after 1950: " + entry.getValue());
// this will print only movies that contain number in the title
for (Map.Entry<Integer, String> entry : henryFondaMovies.entrySet())
if (titleFilterNumeric.test(entry.getKey(), entry.getValue()))
System.out.println("number in title: " + entry.getValue());
// this will print only movies that contain "The" in the title
for (Map.Entry<Integer, String> entry : henryFondaMovies.entrySet())
if (titleFilterThe.test(entry.getKey(), entry.getValue()))
System.out.println("the in title: " + entry.getValue());
Java 8 code examples for the OCA exam
After doing a couple of mockup-exams, I realised that it is necessary to be familiar with a code that does compile, just as much as with code that does NOT compile. Following examples include both forms of code. Incorrect statements are commented out, and can be easily transformed back to code that throws compile-time errors.
The examples are not ordered in any way. They are just grouped by similarity (eg. arrays, flowcontrol, lambdas, exceptions, etc.)
One code example is not necessarily designed to explain only one thing; it can illustrate several syntactic or programming principles of Java language.
One example is not enough to explain or understand a principle: therefore, code contains seemingly redundant lines of code that nonetheless help in acquiring the pattern behind the particular case.
OCP
Java OCP exam code snippets
These are my preparation exercises for the OCP exam. Each example is self-contained, executable code snippet. Usually, my examples are based on meaningful illustration and clear functionality, as in this case of BiPredicate lambda function:
// Map
Map<Integer, String> henryFondaMovies = new HashMap<>();
henryFondaMovies.put(1962, "The Longest Day");
henryFondaMovies.put(1940, "The Grapes of Wrath");
henryFondaMovies.put(1964, "Fail-Safe");
henryFondaMovies.put(1957, "12 Angry Men");
henryFondaMovies.put(1937, "You Only Live Once");
henryFondaMovies.put(1938, "The Mad Miss Manton");
BiPredicate<Integer, String> yearFilter = ((year, title) -> year > 1950);
BiPredicate<Integer, String> titleFilterNumeric = ((year, title) -> title.matches(".*\\d+.*"));
BiPredicate<Integer, String> titleFilterThe = ((year, title) -> title.contains("The"));
// this will print only movies that are released after the 1950
for (Map.Entry<Integer, String> entry : henryFondaMovies.entrySet())
if (yearFilter.test(entry.getKey(), entry.getValue()))
System.out.println("after 1950: " + entry.getValue());
// this will print only movies that contain number in the title
for (Map.Entry<Integer, String> entry : henryFondaMovies.entrySet())
if (titleFilterNumeric.test(entry.getKey(), entry.getValue()))
System.out.println("number in title: " + entry.getValue());
// this will print only movies that contain "The" in the title
for (Map.Entry<Integer, String> entry : henryFondaMovies.entrySet())
if (titleFilterThe.test(entry.getKey(), entry.getValue()))
System.out.println("the in title: " + entry.getValue());
Java 8 code examples for the OCA exam
After doing a couple of mockup-exams, I realised that it is necessary to be familiar with a code that does compile, just as much as with code that does NOT compile. Following examples include both forms of code. Incorrect statements are commented out, and can be easily transformed back to code that throws compile-time errors.
The examples are not ordered in any way. They are just grouped by similarity (eg. arrays, flowcontrol, lambdas, exceptions, etc.)
One code example is not necessarily designed to explain only one thing; it can illustrate several syntactic or programming principles of Java language.
One example is not enough to explain or understand a principle: therefore, code contains seemingly redundant lines of code that nonetheless help in acquiring the pattern behind the particular case.
Terraform
Genomics ETL
This is a demo data engineering project built on Azure cloud. ETL pipeline implemented in Azure Data Factory is ingesting and transforming Illumina Platinum Genomes dataset. Terraform is used for provisioning infrastructure. Deployment pipelines are implemented in GitHub actions in accordance with official Microsoft guidelines, with working CICD process between DEV and PROD environments. DEV ADF is connected to git repository, and ARM templates are propagated to PROD environment through GitHub action.
Databricks visualization:
Deploy Databricks on Azure with Terraform
This is a minimal example for deploying Databricks service on Azure. The smallest number of nodes in the cluster will be 1, and maximum 5. Node type will be the smallest one, and Spark version the latest one with long term support. You will be able to log in automatically with your SSO user. Auto-termination is set to 20 minutes.
certification
Java OCP exam code snippets
These are my preparation exercises for the OCP exam. Each example is self-contained, executable code snippet. Usually, my examples are based on meaningful illustration and clear functionality, as in this case of BiPredicate lambda function:
// Map
Map<Integer, String> henryFondaMovies = new HashMap<>();
henryFondaMovies.put(1962, "The Longest Day");
henryFondaMovies.put(1940, "The Grapes of Wrath");
henryFondaMovies.put(1964, "Fail-Safe");
henryFondaMovies.put(1957, "12 Angry Men");
henryFondaMovies.put(1937, "You Only Live Once");
henryFondaMovies.put(1938, "The Mad Miss Manton");
BiPredicate<Integer, String> yearFilter = ((year, title) -> year > 1950);
BiPredicate<Integer, String> titleFilterNumeric = ((year, title) -> title.matches(".*\\d+.*"));
BiPredicate<Integer, String> titleFilterThe = ((year, title) -> title.contains("The"));
// this will print only movies that are released after the 1950
for (Map.Entry<Integer, String> entry : henryFondaMovies.entrySet())
if (yearFilter.test(entry.getKey(), entry.getValue()))
System.out.println("after 1950: " + entry.getValue());
// this will print only movies that contain number in the title
for (Map.Entry<Integer, String> entry : henryFondaMovies.entrySet())
if (titleFilterNumeric.test(entry.getKey(), entry.getValue()))
System.out.println("number in title: " + entry.getValue());
// this will print only movies that contain "The" in the title
for (Map.Entry<Integer, String> entry : henryFondaMovies.entrySet())
if (titleFilterThe.test(entry.getKey(), entry.getValue()))
System.out.println("the in title: " + entry.getValue());
Java 8 code examples for the OCA exam
After doing a couple of mockup-exams, I realised that it is necessary to be familiar with a code that does compile, just as much as with code that does NOT compile. Following examples include both forms of code. Incorrect statements are commented out, and can be easily transformed back to code that throws compile-time errors.
The examples are not ordered in any way. They are just grouped by similarity (eg. arrays, flowcontrol, lambdas, exceptions, etc.)
One code example is not necessarily designed to explain only one thing; it can illustrate several syntactic or programming principles of Java language.
One example is not enough to explain or understand a principle: therefore, code contains seemingly redundant lines of code that nonetheless help in acquiring the pattern behind the particular case.
elasticsearch
Visualizing Geolocations in Italy using ELK stack
This is a demonstration of ELK stack geo-mapping capabilities.
The original Dataset
The presented data are a subset of geo points in a zip file for Europe (https://s3.amazonaws.com/data.openaddresses.io/openaddr-collected-europe.zip) available through the OpenAddresses project. I used only a couple of files related to Italy (ferrara.csv, bologna.csv, statewide.csv, etc.). Circle size and color are not related to any other features in a dataset; they simply indicate a quantity of points in a certain area.
Created With
- ElasticSearch - ElasticSearch NoSQL engine
- Kibana - Kibana visualization tool
- Logstash - Logstash ingestion tool
Visual Exploration of Croatian Literature Translations
This is a demonstration of ELK stack’s visualization capabilities. First figure is a smoothened area chart of translations through years, spiking in 2008, just before the economic crisis kicked in. Second visualization is a donut chart of translated authors, with Ivo Andrić being the most translated author (14.71%). Third image represents a bar chart of top Croatian literature translation publishers. Fourth figure is a donut chart of translations by language. German language dominates with 21.15%, followed by English (11.09%), Slovakian (10.62%), and Slovenian (9.04%). Figure five is identical to the previous figure, with added tabular info. Sixth figure represents an area figure of the number of translations grouped by country. Germany leads with over 300 published items. Seventh visualization is a pie chart of the most commonly translated titles. First place is taken by “Na Drini ćuprija” (9.1%), written by Ivo Andrić.
feature testing
What is Continuous Delivery?
Pretty good definition of continuous delivery:
Building and testing at Facebook
Article by Andrew Bosworth from Facebook on rolling out new features and testing:
kibana
Visualizing Geolocations in Italy using ELK stack
This is a demonstration of ELK stack geo-mapping capabilities.
The original Dataset
The presented data are a subset of geo points in a zip file for Europe (https://s3.amazonaws.com/data.openaddresses.io/openaddr-collected-europe.zip) available through the OpenAddresses project. I used only a couple of files related to Italy (ferrara.csv, bologna.csv, statewide.csv, etc.). Circle size and color are not related to any other features in a dataset; they simply indicate a quantity of points in a certain area.
Created With
- ElasticSearch - ElasticSearch NoSQL engine
- Kibana - Kibana visualization tool
- Logstash - Logstash ingestion tool
Visual Exploration of Croatian Literature Translations
This is a demonstration of ELK stack’s visualization capabilities. First figure is a smoothened area chart of translations through years, spiking in 2008, just before the economic crisis kicked in. Second visualization is a donut chart of translated authors, with Ivo Andrić being the most translated author (14.71%). Third image represents a bar chart of top Croatian literature translation publishers. Fourth figure is a donut chart of translations by language. German language dominates with 21.15%, followed by English (11.09%), Slovakian (10.62%), and Slovenian (9.04%). Figure five is identical to the previous figure, with added tabular info. Sixth figure represents an area figure of the number of translations grouped by country. Germany leads with over 300 published items. Seventh visualization is a pie chart of the most commonly translated titles. First place is taken by “Na Drini ćuprija” (9.1%), written by Ivo Andrić.
logstash
Visualizing Geolocations in Italy using ELK stack
This is a demonstration of ELK stack geo-mapping capabilities.
The original Dataset
The presented data are a subset of geo points in a zip file for Europe (https://s3.amazonaws.com/data.openaddresses.io/openaddr-collected-europe.zip) available through the OpenAddresses project. I used only a couple of files related to Italy (ferrara.csv, bologna.csv, statewide.csv, etc.). Circle size and color are not related to any other features in a dataset; they simply indicate a quantity of points in a certain area.
Created With
- ElasticSearch - ElasticSearch NoSQL engine
- Kibana - Kibana visualization tool
- Logstash - Logstash ingestion tool
Visual Exploration of Croatian Literature Translations
This is a demonstration of ELK stack’s visualization capabilities. First figure is a smoothened area chart of translations through years, spiking in 2008, just before the economic crisis kicked in. Second visualization is a donut chart of translated authors, with Ivo Andrić being the most translated author (14.71%). Third image represents a bar chart of top Croatian literature translation publishers. Fourth figure is a donut chart of translations by language. German language dominates with 21.15%, followed by English (11.09%), Slovakian (10.62%), and Slovenian (9.04%). Figure five is identical to the previous figure, with added tabular info. Sixth figure represents an area figure of the number of translations grouped by country. Germany leads with over 300 published items. Seventh visualization is a pie chart of the most commonly translated titles. First place is taken by “Na Drini ćuprija” (9.1%), written by Ivo Andrić.
machine learning
The Analytics Hierarchy of Needs
Article The Analytics Hierarchy of Needs by Ryan Foley with great diagram:
Netflix Recommendation Model
Netflix prize was an open competition for the best collaborative filtering algorithm, which started in 2006. BellKor’s Pragmatic Chaos team from AT&T Labs won the prize back in 2009. This Spark application will use Spark’s 2.4 built-in ALS algorithm to create a recommendation model for the data set from the competition.
memes
Coding memes 2
Coding memes
A couple of coding memes.
paper
Résumé-Driven Development
Paper about resume driven development and its impacts on projects.
Resume-Driven Development (RDD) is an interaction between human resource and software professionals in the software development recruiting process. It is characterized by overemphasizing numerous trending or hyped technologies in both job advertisements and CVs, although experience with these technologies is actually perceived as less valuable on both sides. RDD has the potential to develop a self-sustaining dynamic.
Potential consequences of RDD are mainly decreased software quality and increased employee turnover due to false expectations on both sides
Robustness in Complex Systems
Paper about robustness and fragility of software systems by Steven Gribble:
software engineering
Software engineering at Google - book link
Link to a O’Reilly book Software engineering at Google
12 Factor app
12 Factor app page
youtube
Useful Youtube channels
Useful YouTube channels for learning and keeping up with the community.
Computer Science courses
AES
Questions and answers portal on Spanish - nuestras-preguntas.net
www.nuestras-preguntas.net was my demo project for questions and answers platform on Spanish language with full text search capability. Application was completely configurable, so switch to another language could be easily accomplished by providing translation for existing fields. It was running in production for nine months, with two million question and answer pairs. CICD pipeline was built in Jenkins, and application was running in Docker container on Digital Ocean hosting service. Whole system had four containers: SpringBoot application, ElasticSearch database, LetsEncrypt certbot, and Nginx proxy. They were orchestrated with Docker compose. VM instance had 8GB of RAM, and ElasticSearch was by far the largest consumer of resources. My architectural decisions were mainly guided by cost reduction, and comparable cloud solutions would be orders of magnitude more expensive.
Applications unique feature was anonymous usage, meaning registration with email was not necessary to submit a question or answer, or vote. I developed a custom encryption protocol mostly based on AES algorithm so traffic between client and server could not be reverse-engineered and automated. To defend against abuse, there were also throttling services and honey-pot traps against bots. Anti-scraping mechanisms included rotating HTML schema (without an effect on user experience or functionality), in combination with detection of unusually high amount of requests that triggered responses with poisoned content.
AWS
Lessons Netflix Learned from the AWS Outage
Article by Adrian Cockroft, Cory Hicks, and Greg Orzell from Netflix and its resiliency. Here are a couple of important points:
Alan Perlis
Alan J. Perlis - Epigrams on Programming
120 aphorisms on programming, written in 1982 and with many of them still surprisingly valid, some of which are:
Amazon
Amazon review dataset translations for sentiment analysis
This repository contains translations of a 150 000 randomly selected entries from Amazon dataset originally created by Julian McAuley and Jianmo Ni, containing over 20GB of data. The goal is to create smaller datasets for sentiment analysis on languages other than English, for which there are many publicly available datasets already. Translation is performed with Microsoft Azure’s Translator cloud service.
Azure translate
Amazon review dataset translations for sentiment analysis
This repository contains translations of a 150 000 randomly selected entries from Amazon dataset originally created by Julian McAuley and Jianmo Ni, containing over 20GB of data. The goal is to create smaller datasets for sentiment analysis on languages other than English, for which there are many publicly available datasets already. Translation is performed with Microsoft Azure’s Translator cloud service.
Bad Apple Theory
Blameless PostMortems and a Just Culture
Article by John Allspaw on Blameless Postmortems in Etsy with key takeaway:
CICD process
Deploy != Release
Article by Art Gillespie on ambiguous terminology in CICD process. Although I prefer the meaning of Humble and Farley for “release” as in “an artifact of build process which can be deployed on demand”, the article is a worthwhile read nonetheless.
CIS
CIS benchmarks
Link to CIS benchmarks
Computer Science
Back to Top ↑Elasticsearch
Questions and answers portal on Spanish - nuestras-preguntas.net
www.nuestras-preguntas.net was my demo project for questions and answers platform on Spanish language with full text search capability. Application was completely configurable, so switch to another language could be easily accomplished by providing translation for existing fields. It was running in production for nine months, with two million question and answer pairs. CICD pipeline was built in Jenkins, and application was running in Docker container on Digital Ocean hosting service. Whole system had four containers: SpringBoot application, ElasticSearch database, LetsEncrypt certbot, and Nginx proxy. They were orchestrated with Docker compose. VM instance had 8GB of RAM, and ElasticSearch was by far the largest consumer of resources. My architectural decisions were mainly guided by cost reduction, and comparable cloud solutions would be orders of magnitude more expensive.
Applications unique feature was anonymous usage, meaning registration with email was not necessary to submit a question or answer, or vote. I developed a custom encryption protocol mostly based on AES algorithm so traffic between client and server could not be reverse-engineered and automated. To defend against abuse, there were also throttling services and honey-pot traps against bots. Anti-scraping mechanisms included rotating HTML schema (without an effect on user experience or functionality), in combination with detection of unusually high amount of requests that triggered responses with poisoned content.
Fundamental Attribution Error
Blameless PostMortems and a Just Culture
Article by John Allspaw on Blameless Postmortems in Etsy with key takeaway:
GitHub actions
Deploy Databricks on Azure with Terraform
This is a minimal example for deploying Databricks service on Azure. The smallest number of nodes in the cluster will be 1, and maximum 5. Node type will be the smallest one, and Spark version the latest one with long term support. You will be able to log in automatically with your SSO user. Auto-termination is set to 20 minutes.
IMVU
Continuous Deployment at IMVU: Doing the impossible fifty times a day
Old blog post from 2009 by Timothy Fitz:
IaC
Deploy Databricks on Azure with Terraform
This is a minimal example for deploying Databricks service on Azure. The smallest number of nodes in the cluster will be 1, and maximum 5. Node type will be the smallest one, and Spark version the latest one with long term support. You will be able to log in automatically with your SSO user. Auto-termination is set to 20 minutes.
Infrastructure as code
Genomics ETL
This is a demo data engineering project built on Azure cloud. ETL pipeline implemented in Azure Data Factory is ingesting and transforming Illumina Platinum Genomes dataset. Terraform is used for provisioning infrastructure. Deployment pipelines are implemented in GitHub actions in accordance with official Microsoft guidelines, with working CICD process between DEV and PROD environments. DEV ADF is connected to git repository, and ARM templates are propagated to PROD environment through GitHub action.
Databricks visualization:
Jenkins
Questions and answers portal on Spanish - nuestras-preguntas.net
www.nuestras-preguntas.net was my demo project for questions and answers platform on Spanish language with full text search capability. Application was completely configurable, so switch to another language could be easily accomplished by providing translation for existing fields. It was running in production for nine months, with two million question and answer pairs. CICD pipeline was built in Jenkins, and application was running in Docker container on Digital Ocean hosting service. Whole system had four containers: SpringBoot application, ElasticSearch database, LetsEncrypt certbot, and Nginx proxy. They were orchestrated with Docker compose. VM instance had 8GB of RAM, and ElasticSearch was by far the largest consumer of resources. My architectural decisions were mainly guided by cost reduction, and comparable cloud solutions would be orders of magnitude more expensive.
Applications unique feature was anonymous usage, meaning registration with email was not necessary to submit a question or answer, or vote. I developed a custom encryption protocol mostly based on AES algorithm so traffic between client and server could not be reverse-engineered and automated. To defend against abuse, there were also throttling services and honey-pot traps against bots. Anti-scraping mechanisms included rotating HTML schema (without an effect on user experience or functionality), in combination with detection of unusually high amount of requests that triggered responses with poisoned content.
Kubernetes
Kubernetes security
Kubernetes security best practices guidelines
Neflix
Netflix Recommendation Model
Netflix prize was an open competition for the best collaborative filtering algorithm, which started in 2006. BellKor’s Pragmatic Chaos team from AT&T Labs won the prize back in 2009. This Spark application will use Spark’s 2.4 built-in ALS algorithm to create a recommendation model for the data set from the competition.
Netflix
Lessons Netflix Learned from the AWS Outage
Article by Adrian Cockroft, Cory Hicks, and Greg Orzell from Netflix and its resiliency. Here are a couple of important points:
PhD
Link to PhD thesis entry
My philosophy PhD thesis in national bibliographic catalog.
Piper
Google Is 2 Billion Lines of Code—And It’s All in One Place
Article in Wired magazine about Google’s massive mono repo.
PowerBI
Munich Population with PowerBI
Visualization on Munich population grouped by districts.
RStudio
Figures from Steven Pinker’s book The Better Angels of Our Nature
Here are several visualizations about violence rates created with R.
Several percentages in a figure about a share of violent deaths are referencing only male population; to simplify, I neglected that information.
Third figure illustrates the ‘Recivilization of the 1990s’ thesis, a period of violence decline. Pinker claims it is due to the increased incarceration: “The most effective was also the crudest: putting more men behind bars for longer stretches of time.”; and increase in the police force: “In a stroke of political genius, President Bill Clinton undercut his conservative opponents in 1994 by supporting legislation that promised to add 100,000 officers to the nation’s police forces.”, among other things.
Fourth figure is adopted to the time scale of century instead of mid year, and the conflicts are ordered.
Steven Pinker’s book: The Better Angels of Our Nature
Spark
Netflix Recommendation Model
Netflix prize was an open competition for the best collaborative filtering algorithm, which started in 2006. BellKor’s Pragmatic Chaos team from AT&T Labs won the prize back in 2009. This Spark application will use Spark’s 2.4 built-in ALS algorithm to create a recommendation model for the data set from the competition.
Spring-boot
Questions and answers portal on Spanish - nuestras-preguntas.net
www.nuestras-preguntas.net was my demo project for questions and answers platform on Spanish language with full text search capability. Application was completely configurable, so switch to another language could be easily accomplished by providing translation for existing fields. It was running in production for nine months, with two million question and answer pairs. CICD pipeline was built in Jenkins, and application was running in Docker container on Digital Ocean hosting service. Whole system had four containers: SpringBoot application, ElasticSearch database, LetsEncrypt certbot, and Nginx proxy. They were orchestrated with Docker compose. VM instance had 8GB of RAM, and ElasticSearch was by far the largest consumer of resources. My architectural decisions were mainly guided by cost reduction, and comparable cloud solutions would be orders of magnitude more expensive.
Applications unique feature was anonymous usage, meaning registration with email was not necessary to submit a question or answer, or vote. I developed a custom encryption protocol mostly based on AES algorithm so traffic between client and server could not be reverse-engineered and automated. To defend against abuse, there were also throttling services and honey-pot traps against bots. Anti-scraping mechanisms included rotating HTML schema (without an effect on user experience or functionality), in combination with detection of unusually high amount of requests that triggered responses with poisoned content.
Thymeleaf
Questions and answers portal on Spanish - nuestras-preguntas.net
www.nuestras-preguntas.net was my demo project for questions and answers platform on Spanish language with full text search capability. Application was completely configurable, so switch to another language could be easily accomplished by providing translation for existing fields. It was running in production for nine months, with two million question and answer pairs. CICD pipeline was built in Jenkins, and application was running in Docker container on Digital Ocean hosting service. Whole system had four containers: SpringBoot application, ElasticSearch database, LetsEncrypt certbot, and Nginx proxy. They were orchestrated with Docker compose. VM instance had 8GB of RAM, and ElasticSearch was by far the largest consumer of resources. My architectural decisions were mainly guided by cost reduction, and comparable cloud solutions would be orders of magnitude more expensive.
Applications unique feature was anonymous usage, meaning registration with email was not necessary to submit a question or answer, or vote. I developed a custom encryption protocol mostly based on AES algorithm so traffic between client and server could not be reverse-engineered and automated. To defend against abuse, there were also throttling services and honey-pot traps against bots. Anti-scraping mechanisms included rotating HTML schema (without an effect on user experience or functionality), in combination with detection of unusually high amount of requests that triggered responses with poisoned content.
Turing Award
Alan J. Perlis - Epigrams on Programming
120 aphorisms on programming, written in 1982 and with many of them still surprisingly valid, some of which are:
agile
The 12 Principles behind the Agile Manifesto
12 principles of Agile software, with my favorite:
anti-patterns
The 10 commandments of logging
List of logging advices by Brice Figureau:
apache superset
Top 500 companies in Croatian IT - Superset
First image is a dashboard composed of all other figures. Second figure is a bar chart of companies grouped by city and activity. There is a clear domination of capital city (Zagreb) where are most of the companies registered. However, there is also a clear domination of 6201 code, which denotes ‘Computer programming’. Interestingly, other cities have companies only in this domain, and nothing in counseling(6202), wireless communication (6120), data analysis (6311), equipment management (6203), or even uncategorized activity (6209). Third image represents profit allocation with a pie chart. Roughly two thirds annual profits are from computer programming. Fourth image is a word cloud that counts employees in each city and presents them in adequate ratio. Clearly, Zagreb as a capital city with the most companies has the largest word size. Fifth is a chord diagram that connects company location with activity. Again, presence of Zagreb and programming is easily notceable. Sixth image is a bubble chart. Each data point represents one company. X axis is mapped to a value of ‘Capital and reserves’. Y axis is mapped to the annual revenue. Scales are logarithmically adjusted. Bubble size is linked to the number of employees in the company, while bubble color is linked to the activity type. Presence of red coloer indicated ‘Computer programming’ category. Big purple circle in the middle is Croatian Telecom (Hrvatski Telekom). Big bluish circle in the bottom right corner is VipNet. Since SuperSet reads these numbers as strings, ratios are not correct, and the same figure should be done properly with another tool.
blameless postmortems
Blameless PostMortems and a Just Culture
Article by John Allspaw on Blameless Postmortems in Etsy with key takeaway:
chaos engineering
Principles of chaos engineering
Chaos Engineering is the discipline of experimenting on a system in order to build confidence in the system’s capability to withstand turbulent conditions in production.
cloud
CIS benchmarks
Link to CIS benchmarks
code review
Pair Programming vs. Code Reviews
Article by Jeff Atwood on Pair programming and code reviews with conclusion:
compass
Compass and MongoDB with the Zagreb Surveillance Cameras dataset
This is a demonstration of MongoDB’s Compass visualization capabilities with geographical data. The repository contains an original csv, a preprocessed csv, a gawk script for transforming csv to json, and finally json prepared for importing in MongoDB. The list is not updated, and new cameras have been installed after the publication of the dataset in 2016. The first image is a classical, ‘neutral’ view, encompassing all geolocations. Other images are zooming into particular part of the city while shifting angle.
continuous deployment
Continuous Deployment at IMVU: Doing the impossible fifty times a day
Old blog post from 2009 by Timothy Fitz:
croatian language dataset
Croatian Language Dataset
This is a dataset of sentences in Croatian language for anyone interested in Natural Language Processing. The dataset is Spark’s dataframe in a snappy compressed ORC format. Most of the sentences are from the Croatian Wikipedia dump and OpenSubtitles project. There are still entries that do not belong here, whether in a form of misspelled or grammatically incorrect sentences, logs, different languages, or weird tags. However, those should be minimal. The goal of this project was to create a reusable dataset with standardised use of Croatian language for various purposes.
Size
- 14.7 million entries
- 840 mb uncompressed size
- 460 mb snappy compressed ORC
data engineering
The Analytics Hierarchy of Needs
Article The Analytics Hierarchy of Needs by Ryan Foley with great diagram:
data science
Potemkin Data Science
Blog post by Michael Correll:
digital ocean
Questions and answers portal on Spanish - nuestras-preguntas.net
www.nuestras-preguntas.net was my demo project for questions and answers platform on Spanish language with full text search capability. Application was completely configurable, so switch to another language could be easily accomplished by providing translation for existing fields. It was running in production for nine months, with two million question and answer pairs. CICD pipeline was built in Jenkins, and application was running in Docker container on Digital Ocean hosting service. Whole system had four containers: SpringBoot application, ElasticSearch database, LetsEncrypt certbot, and Nginx proxy. They were orchestrated with Docker compose. VM instance had 8GB of RAM, and ElasticSearch was by far the largest consumer of resources. My architectural decisions were mainly guided by cost reduction, and comparable cloud solutions would be orders of magnitude more expensive.
Applications unique feature was anonymous usage, meaning registration with email was not necessary to submit a question or answer, or vote. I developed a custom encryption protocol mostly based on AES algorithm so traffic between client and server could not be reverse-engineered and automated. To defend against abuse, there were also throttling services and honey-pot traps against bots. Anti-scraping mechanisms included rotating HTML schema (without an effect on user experience or functionality), in combination with detection of unusually high amount of requests that triggered responses with poisoned content.
disaster recovery
Lessons Netflix Learned from the AWS Outage
Article by Adrian Cockroft, Cory Hicks, and Greg Orzell from Netflix and its resiliency. Here are a couple of important points:
distributed computing
Fallacies of distributed computing
- The network is reliable;
- Latency is zero;
- Bandwidth is infinite;
- The network is secure;
- Topology doesn’t change;
- There is one administrator;
- Transport cost is zero;
- The network is homogeneous;
docker
Questions and answers portal on Spanish - nuestras-preguntas.net
www.nuestras-preguntas.net was my demo project for questions and answers platform on Spanish language with full text search capability. Application was completely configurable, so switch to another language could be easily accomplished by providing translation for existing fields. It was running in production for nine months, with two million question and answer pairs. CICD pipeline was built in Jenkins, and application was running in Docker container on Digital Ocean hosting service. Whole system had four containers: SpringBoot application, ElasticSearch database, LetsEncrypt certbot, and Nginx proxy. They were orchestrated with Docker compose. VM instance had 8GB of RAM, and ElasticSearch was by far the largest consumer of resources. My architectural decisions were mainly guided by cost reduction, and comparable cloud solutions would be orders of magnitude more expensive.
Applications unique feature was anonymous usage, meaning registration with email was not necessary to submit a question or answer, or vote. I developed a custom encryption protocol mostly based on AES algorithm so traffic between client and server could not be reverse-engineered and automated. To defend against abuse, there were also throttling services and honey-pot traps against bots. Anti-scraping mechanisms included rotating HTML schema (without an effect on user experience or functionality), in combination with detection of unusually high amount of requests that triggered responses with poisoned content.
docker-compose
Questions and answers portal on Spanish - nuestras-preguntas.net
www.nuestras-preguntas.net was my demo project for questions and answers platform on Spanish language with full text search capability. Application was completely configurable, so switch to another language could be easily accomplished by providing translation for existing fields. It was running in production for nine months, with two million question and answer pairs. CICD pipeline was built in Jenkins, and application was running in Docker container on Digital Ocean hosting service. Whole system had four containers: SpringBoot application, ElasticSearch database, LetsEncrypt certbot, and Nginx proxy. They were orchestrated with Docker compose. VM instance had 8GB of RAM, and ElasticSearch was by far the largest consumer of resources. My architectural decisions were mainly guided by cost reduction, and comparable cloud solutions would be orders of magnitude more expensive.
Applications unique feature was anonymous usage, meaning registration with email was not necessary to submit a question or answer, or vote. I developed a custom encryption protocol mostly based on AES algorithm so traffic between client and server could not be reverse-engineered and automated. To defend against abuse, there were also throttling services and honey-pot traps against bots. Anti-scraping mechanisms included rotating HTML schema (without an effect on user experience or functionality), in combination with detection of unusually high amount of requests that triggered responses with poisoned content.
etsy
Blameless PostMortems and a Just Culture
Article by John Allspaw on Blameless Postmortems in Etsy with key takeaway:
feature factory
John Cutler - 12 Signs You’re Working in a Feature Factory
Salient list of red flags and anti-patters of poor project setup by John Cutler:
fragility
Robustness in Complex Systems
Paper about robustness and fragility of software systems by Steven Gribble:
ggplot2
Figures from Steven Pinker’s book The Better Angels of Our Nature
Here are several visualizations about violence rates created with R.
Several percentages in a figure about a share of violent deaths are referencing only male population; to simplify, I neglected that information.
Third figure illustrates the ‘Recivilization of the 1990s’ thesis, a period of violence decline. Pinker claims it is due to the increased incarceration: “The most effective was also the crudest: putting more men behind bars for longer stretches of time.”; and increase in the police force: “In a stroke of political genius, President Bill Clinton undercut his conservative opponents in 1994 by supporting legislation that promised to add 100,000 officers to the nation’s police forces.”, among other things.
Fourth figure is adopted to the time scale of century instead of mid year, and the conflicts are ordered.
Steven Pinker’s book: The Better Angels of Our Nature
graceful degradation
Lessons Netflix Learned from the AWS Outage
Article by Adrian Cockroft, Cory Hicks, and Greg Orzell from Netflix and its resiliency. Here are a couple of important points:
hype
Résumé-Driven Development
Paper about resume driven development and its impacts on projects.
Resume-Driven Development (RDD) is an interaction between human resource and software professionals in the software development recruiting process. It is characterized by overemphasizing numerous trending or hyped technologies in both job advertisements and CVs, although experience with these technologies is actually perceived as less valuable on both sides. RDD has the potential to develop a self-sustaining dynamic.
Potential consequences of RDD are mainly decreased software quality and increased employee turnover due to false expectations on both sides
jupyter
Top 500 companies in Croatian IT - matplotlib
First five images are presenting relation of company’s capital to the annual profit, while simultaneously showing relations of company size and type of main economic activity. X axis is mapped to annual profit, Y axis is mapped to capital and reserves. Circle size is correlated to the number of employees, while circle color represents type of work in the IT sector, such as computer programming, counseling(6202), wireless communication (6120), data analysis (6311), equipment management (6203), or uncategorized activity (6209). First image clearly illustrates extremely dominating position of T-Com company. Following images are presenting the same data with different levels of zoom. Last figure is a bar chart, revealing Zagreb as a software center, and computer programming as a sole activity of companies in different cities.
logging
The 10 commandments of logging
List of logging advices by Brice Figureau:
marketing
Potemkin Data Science
Blog post by Michael Correll:
matplotlib
Top 500 companies in Croatian IT - matplotlib
First five images are presenting relation of company’s capital to the annual profit, while simultaneously showing relations of company size and type of main economic activity. X axis is mapped to annual profit, Y axis is mapped to capital and reserves. Circle size is correlated to the number of employees, while circle color represents type of work in the IT sector, such as computer programming, counseling(6202), wireless communication (6120), data analysis (6311), equipment management (6203), or uncategorized activity (6209). First image clearly illustrates extremely dominating position of T-Com company. Following images are presenting the same data with different levels of zoom. Last figure is a bar chart, revealing Zagreb as a software center, and computer programming as a sole activity of companies in different cities.
microservices
Disasters I’ve seen in a microservices world
Partial list of difficulties with servicitis, by João Alves:
mongoDB
Compass and MongoDB with the Zagreb Surveillance Cameras dataset
This is a demonstration of MongoDB’s Compass visualization capabilities with geographical data. The repository contains an original csv, a preprocessed csv, a gawk script for transforming csv to json, and finally json prepared for importing in MongoDB. The list is not updated, and new cameras have been installed after the publication of the dataset in 2016. The first image is a classical, ‘neutral’ view, encompassing all geolocations. Other images are zooming into particular part of the city while shifting angle.
monolith
Google Is 2 Billion Lines of Code—And It’s All in One Place
Article in Wired magazine about Google’s massive mono repo.
network
Shodan Monitor
Catalog of publicly exposed services
nginx
Questions and answers portal on Spanish - nuestras-preguntas.net
www.nuestras-preguntas.net was my demo project for questions and answers platform on Spanish language with full text search capability. Application was completely configurable, so switch to another language could be easily accomplished by providing translation for existing fields. It was running in production for nine months, with two million question and answer pairs. CICD pipeline was built in Jenkins, and application was running in Docker container on Digital Ocean hosting service. Whole system had four containers: SpringBoot application, ElasticSearch database, LetsEncrypt certbot, and Nginx proxy. They were orchestrated with Docker compose. VM instance had 8GB of RAM, and ElasticSearch was by far the largest consumer of resources. My architectural decisions were mainly guided by cost reduction, and comparable cloud solutions would be orders of magnitude more expensive.
Applications unique feature was anonymous usage, meaning registration with email was not necessary to submit a question or answer, or vote. I developed a custom encryption protocol mostly based on AES algorithm so traffic between client and server could not be reverse-engineered and automated. To defend against abuse, there were also throttling services and honey-pot traps against bots. Anti-scraping mechanisms included rotating HTML schema (without an effect on user experience or functionality), in combination with detection of unusually high amount of requests that triggered responses with poisoned content.
pair programming
Pair Programming vs. Code Reviews
Article by Jeff Atwood on Pair programming and code reviews with conclusion:
pandas
Top 500 companies in Croatian IT - matplotlib
First five images are presenting relation of company’s capital to the annual profit, while simultaneously showing relations of company size and type of main economic activity. X axis is mapped to annual profit, Y axis is mapped to capital and reserves. Circle size is correlated to the number of employees, while circle color represents type of work in the IT sector, such as computer programming, counseling(6202), wireless communication (6120), data analysis (6311), equipment management (6203), or uncategorized activity (6209). First image clearly illustrates extremely dominating position of T-Com company. Following images are presenting the same data with different levels of zoom. Last figure is a bar chart, revealing Zagreb as a software center, and computer programming as a sole activity of companies in different cities.
programming history
Alan J. Perlis - Epigrams on Programming
120 aphorisms on programming, written in 1982 and with many of them still surprisingly valid, some of which are:
resilience
Lessons Netflix Learned from the AWS Outage
Article by Adrian Cockroft, Cory Hicks, and Greg Orzell from Netflix and its resiliency. Here are a couple of important points:
robustness
Robustness in Complex Systems
Paper about robustness and fragility of software systems by Steven Gribble:
scala
Netflix Recommendation Model
Netflix prize was an open competition for the best collaborative filtering algorithm, which started in 2006. BellKor’s Pragmatic Chaos team from AT&T Labs won the prize back in 2009. This Spark application will use Spark’s 2.4 built-in ALS algorithm to create a recommendation model for the data set from the competition.
sentiment analysis
Amazon review dataset translations for sentiment analysis
This repository contains translations of a 150 000 randomly selected entries from Amazon dataset originally created by Julian McAuley and Jianmo Ni, containing over 20GB of data. The goal is to create smaller datasets for sentiment analysis on languages other than English, for which there are many publicly available datasets already. Translation is performed with Microsoft Azure’s Translator cloud service.
survey
Résumé-Driven Development
Paper about resume driven development and its impacts on projects.
Resume-Driven Development (RDD) is an interaction between human resource and software professionals in the software development recruiting process. It is characterized by overemphasizing numerous trending or hyped technologies in both job advertisements and CVs, although experience with these technologies is actually perceived as less valuable on both sides. RDD has the potential to develop a self-sustaining dynamic.
Potential consequences of RDD are mainly decreased software quality and increased employee turnover due to false expectations on both sides
system design
Robustness in Complex Systems
Paper about robustness and fragility of software systems by Steven Gribble: