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 / online-interview.md
Last active May 22, 2025 06:39
online-interview-hints

Как подготовиться к онлайн интервью

Запись проводится через сайт StreamYard. Ссылку для записи мы пришлем за пять минут до интервью.

При монтаже мы удалим неинтересные, неуместные или противоречащие законодательству РФ моменты. Готовые видео до публикации мы не показываем. Видео будет опубликовано на нашем YouTube канале и VK канале.

Посмотрите пример одного из хорошо записанных интервью.

@yegor256
yegor256 / how-to-contribute.md
Last active May 8, 2025 14:09
How to start contributing to our open source projects?

If you want to start contributing to an interesting and fast-growing open source project, join our team. We work with Java, Ruby, Python, JavaScript, and Bash. We also work with the XSLT programming language.

Pick one repository from this list:

@yegor256
yegor256 / how-to-make-subtitles.md
Last active April 22, 2025 09:19
How to generate EN/RU subtitles for a video

Let's say you have video.mov file in English.

First, convert it to the WAV format, with the help of ffmpeg:

ffmpeg -i video.mov -ar 16000 -ac 1 -c:a pcm_s16le video.wav

Then, install whisper.cpp and download its medium model.

@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 March 24, 2025 04:27
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{[email protected]}
@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