Skip to content

Instantly share code, notes, and snippets.

View yegor256's full-sized avatar
😀
reinventing OOP...

Yegor Bugayenko yegor256

😀
reinventing OOP...
View GitHub Profile
@yegor256
yegor256 / how-to-stream-youtube-and-vk.md
Last active February 28, 2025 01:16
How to stream live to a few platforms (YouTube + VK)

Supposedly, you are on macOS. You want to stream live to YouTube, VK, and maybe a few other platforms.

First, install OBS, ffmpeg, and mac-local-rtmp-server.

Then, create this script:

#!/bin/bash

vk=9385443863383_8393931956757_jsuqjadrew # your key goes here
@yegor256
yegor256 / student-projects.md
Last active November 20, 2024 14:25
student-projects.md

If you are a student, I would be glad to supervise your diploma/course project, on one of the following topics (in no particular order). Also, you may find additional topics here: PainOfOOP, SQM, PMBA, OSBP.

Object-Oriented Benchmark for JVM:
SPECjbb 2015 is an de facto industry standard for benchmarking performance of Java Virtual Machines (JVM). However, there are two problems with this benchmark: 1) it's not open source and 2) it's rather old. For example, it doesn't cover Stream API at all. We can create a new benchmark (a collection of Java scripts) that would test the performance of a JVM with a strong focus on its object-oriented features, in particular dynamic dispatch and object allocat

@yegor256
yegor256 / how-to-join.md
Last active January 5, 2025 10:05
How to join our team?

I'm often getting emails and Telegram messages from programmers who would like to join our team because they like what we do or are simply tired of what they are doing now. You are more than welcome to join!

However, keep in mind the following: if you want to work with us for money, you have to reside in Moscow (Russia) and attend the office every day (5 days per week, from 9:30 till 18:30, near by Smolenskaya metro station). There are no exceptions; we don't do remote work at the moment.

On the other hand, all our repositories are open on GitHub. This means that you can contribute to our projects as a volunteer (no money!). This will help you test your skills, learn something new, and maybe better understand why you should reside in Moscow :)

On this page, you can find the list of GitHub repositories that are being actively developed by us now. Pick any issue from any of the repositories,

@yegor256
yegor256 / lncs-latex-template.md
Last active April 19, 2024 07:37
A template of a research paper that uses the LNCS document class

Use the following LaTeX template, if a conference asks you to use the lncs document class (create your orcid here):

\documentclass[runningheads]{llncs}
\usepackage[utf8]{inputenc}
\usepackage{href-ul}
\usepackage{natbib}
\begin{document}
\title{Contribution Title}
\author{
@yegor256
yegor256 / acmart-latex-template.md
Last active April 22, 2024 10:53
A template of a research paper that uses the "acmart" document class

Use the following LaTeX template, if a conference asks you to use the acmart document class (create your orcid here):

\documentclass[sigplan,nonacm,anonymous,review]{acmart}
\usepackage[utf8]{inputenc}
\usepackage{natbib}
\title{My article}
\author{Yegor Bugayenko}
  \orcid{0000-0001-6370-0678}
 \email{yegor256@gmail.com}
@yegor256
yegor256 / IEEEtran-latex-template.md
Last active April 19, 2024 07:37
A template of a research paper that uses the IEEEtran document class

Use the following LaTeX template, if a conference asks you to use the IEEEtran document class (create your orcid here):

\documentclass[conference]{IEEEtran}
\usepackage[backend=bibtex,style=numeric,natbib=true]{biblatex}
\usepackage{href-ul}
\usepackage{orcidlink}
\addbibresource{main.bib}
\begin{document}
\title{Beautiful Research Paper}
@yegor256
yegor256 / painofoop.md
Last active August 26, 2024 13:33
Research Questions for Pain-of-OOP Course

These research questions are suggested to students of the Pain-of-OOP course:

Q1: In C++ objects are data structures with virtual tables, allocated either on the stack, statically, or on the heap. It would be interesting to find out how most other object-oriented programming languages maintain objects. Do they also represent them as data structures with virtual tables, or perhaps as something else? It would be interesting to analyze not only popular languages but also academic experimental ones, like Self. In the research, it would be interesting to compare different implementations and identify their pros and cons. Maybe we can also do some benchmarking to support our conclusions.

Q2: An Analysis of Data Presence in Design Patterns. In object-oriented programming, many design patterns are recommended for use. It’s commonly believed that if programmers adhere to these patterns in their code, the code quality will improve due to clearer design. We hypothesize

@yegor256
yegor256 / pmba-questions.md
Last active April 9, 2024 12:38
PMBA: Research Questions

These research questions are suggested to students of the PMBA course:

Q1: One of the methods to increase the quality of a software product is by reporting bugs found in it, so that the team can fix them. However, we believe that most software professionals consider bug reporting as a quality-decreasing activity. We conducted a survey, asking 100+ people about their perception of bug reporting, and analyzed the results. Published.

Q2: In proper project management, every person assigned to a task feels 100% responsible for its completion. This means that if the task fails, it is solely his/her fault. However, this is not what happens with most software developers. We conducted a survey, asking 100+ programmers about their attitude towards responsibility, and then analyzed the results. Published.

Q3: It’s a generally accepted truth that money doesn't motivate software professionals. Instead, other fac

@yegor256
yegor256 / osbp-questions.md
Last active September 30, 2024 03:38
OSBP: Research Questions

The following research questions are for the OSBP course students:

Q1: Is there a correlation between open source experience of a programmer and the quality of code they write? In order to answer this question we analyzed the amount of followers in 100K Github profiles and the quality of 10M pull requests made by these people. The quality of a pull request is a composite metric that we introduced, which includes time, comments, corrections, complexity, and other factors.

Q2: It is recommended to start every message in a Github conversation (issue or pull request) with a nickname of the person that is supposed to answer it. However, not everybody does this. We assume that message that start with nicknames receive responses sooner than messages without such a prefix. In order to confirm or disconfirm this theory, we analyzed 10M messages in 1000 Github repositories.

Q3: Sometimes, in order to prove some technical point in a Github discussion (issue or pull requ

@yegor256
yegor256 / sqm-questions.md
Last active October 21, 2024 13:56
SQM: Research Questions

The following research questions are for the SQM course students:

Q1: In Java, there are object methods and class methods (also known as "static" methods). We suspect that the presence of static methods in Java classes negatively affects the quality of code. To validate this intuition, we analysed 100K+ Java files from 100+ open-source GitHub projects. We measured the number of static methods in them and their size in Lines of Code, keeping in mind that larger source code files have higher Cyclomatic Complexity (CC). Higher CC means lower maintainability. Then, we summarised the results obtained.

Q2: In Java, some object attributes are mutable, while others are immutable (with the "final" modifier attached to them). Objects that have at least one mutable attribute may be referred to as "mutable" objects. We suspect that mutable objects have higher Cyclomatic Complexity (CC) than immutable ones. To validate this intuition, we analysed 100K+ Java files from 100+ open-sou