Skip to content

Instantly share code, notes, and snippets.

View y-fedorov's full-sized avatar
🧑‍💻

Yaroslav Fedorov y-fedorov

🧑‍💻
View GitHub Profile
@y-fedorov
y-fedorov / FillRegionsMapInterviewTask.java
Created March 6, 2022 12:08
FillRegionsMapInterviewTask (related to The Four-Color Theorem)
package com.example.demo;
import java.util.Arrays;
public class FillRegionsMapInterviewTask {
// The Four-Color Theorem
//
// In mathematics, the four color theorem, or the four color map theorem,
// states that no more than four colors are required to color the regions
// of any map so that no two adjacent regions have the same color.
@y-fedorov
y-fedorov / WaitNotifyForThreads.java
Created November 24, 2021 13:47
Wait Notify For Threads Java Example
package appstart.mymodappdemo;
public class WaitNotifyForThreads {
public static void main(String[] args) {
Store store = new Store();
Producer producer = new Producer(store);
Consumer consumer = new Consumer(store);
new Thread(producer).start();
@y-fedorov
y-fedorov / JavaSemaphoreApp.java
Created November 24, 2021 12:05
Java Semaphore App Example
package appstart.mymodappdemo;
import java.util.concurrent.Semaphore;
public class JavaSemaphoreApp {
public static void main(String[] args) {
Semaphore sem = new Semaphore(1); // how many times we can 'acquire' permission
CommonResource res = new CommonResource();
@y-fedorov
y-fedorov / ReentrantLockApp.java
Created November 24, 2021 11:43
ReentrantLock Example code
package appstart.mymodappdemo;
import java.util.concurrent.locks.ReentrantLock;
import java.util.concurrent.locks.Condition;
public class ReentrantLockApp {
public static void main(String[] args) {
Store store = new Store();
#include <SoftwareSerial.h>
// Arduino Nano 0 - RX 1 - TX
SoftwareSerial mySerial(0, 1);
void setup() {
Serial.begin(115200);
while (!Serial);
@y-fedorov
y-fedorov / Java_task_1
Last active November 18, 2019 15:34
Java tasks
Приложение: Менеджер карт
У Клиента есть набор различных карт (дебетовые, кредитные, скидочные) различных банков.
Каждая карта имеет номер, тип, дату истечения (месяц и год).
Номер карты представлен 20 символьной цифровой последовательностью.
Имя банка или магазина определяется первыми 4 символами номера.
Реализовать функциональность работы с картами клиента (добавление/удаление),
вывод списка клиентов и информацию о количестве его карт (с сортировкой по имени клиента)
вывод в консоль информацию в удобно читаемом виде по всем картам у конкретного клиента (в порядке убывания количества карт у клиента)
@y-fedorov
y-fedorov / docker-compose.yml
Created November 8, 2019 14:32
Test kafka cluster with 3 nodes.
version: '3.1'
services:
zookeeper:
image: confluentinc/cp-zookeeper:latest
environment:
- ZOOKEEPER_CLIENT_PORT=2181
- ZOOKEEPER_TICK_TIME=2000
ports:
- "32181:2181"
@y-fedorov
y-fedorov / randomStringUtils.java
Created November 6, 2019 10:30
Generate random Cyrillic character
public class RandomStringUtils {
private static final SecureRandom RANDOM = new SecureRandom();
private static final String cyrillicCharacters = "АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ";
public static String generateRandomCharacter(){
int randomCharIndex = RANDOM.nextInt(cyrillicCharacters.length());
return String.valueOf(cyrillicCharacters.charAt(randomCharIndex));
}
}
@y-fedorov
y-fedorov / bad_example.cpp
Created March 25, 2019 08:52
BAD Example of code. C++
/*
* Learning C++ Best Practices :: Avoid Defining Any Default Operations, Or Define Them All (Jason Turner)
* https://learning.oreilly.com/videos/learning-c-best/9781491954898/9781491954898-video241545
*/
#include <string>
struct S {
~S() {};
std::string s;
@y-fedorov
y-fedorov / std_function_example_1.cpp
Created March 23, 2019 11:04
std::function example
#include <iostream>
// Example from Jason Turner's video.
// https://youtu.be/JtUZmkvroKg?t=290
template <typename T>
void print(T i, const std::string_view s) {
std::cout << i << ' ' << s << '\n';
}