Skip to content

Instantly share code, notes, and snippets.

View tripolskypetr's full-sized avatar
💻
Frontend dev fueled by a passion for UI/UX and art, design

Petr Tripolsky tripolskypetr

💻
Frontend dev fueled by a passion for UI/UX and art, design
View GitHub Profile
@tripolskypetr
tripolskypetr / sheetjs-serialize-record.js
Created January 10, 2023 19:40
SheetJS Record serializer
const XLSX = require('xlsx');
const data = {
key1: 'foo',
key2: {
bar: 'baz',
test: {
omg: true,
},
},
@tripolskypetr
tripolskypetr / CustomERC20.sol
Created January 7, 2023 20:17
Custom ERC20 token
// SPDX-License-Identifier: GPL-3.0
pragma solidity ^0.8.7;
library Math {
function safeAdd(uint256 x, uint256 y) internal pure returns (uint256) {
uint256 z = x + y;
require(z >= x, "math-add-overflow");
return z;
}
@tripolskypetr
tripolskypetr / example.sol
Created December 27, 2022 21:35
Solidity smart contract for interview preparation
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.7;
contract LiquidityHelper {
function sendValue(address payable recipient, uint256 amount) private {
require(address(this).balance >= amount, "Insufficient balance");
(bool success, ) = recipient.call{value: amount}("");
require(success, "Unable to send value");
}
@tripolskypetr
tripolskypetr / mousejiggler.py
Created December 27, 2022 15:42
Mouse Jiggler compatible with OSX 10.14
from pynput.mouse import Controller
from datetime import datetime
import time
import random
mouse = Controller()
TOTAL_MOVES = 100
while True:
@tripolskypetr
tripolskypetr / sum-of-numbers.js
Created December 2, 2022 08:18
sum-of-numbers
// nums = [11,2,7,15], target = 9, out = [1,2]
// дан массива nums и int targer, необходимо вернуть индексы двух любых элементов массива, которые в сумме равны target
function TwoSum(nums = [], target){
const numsMap = new Map(
nums
.map((num, idx) => [target + num, idx])
)
@tripolskypetr
tripolskypetr / letter-counter.js
Created November 23, 2022 18:39
The letter counter
const str = 'AAACCXXXXAAAAAABBBBBK'; // A3C2X4A6B5K1
const countLetters = (str) => {
if (str.length === 0) {
return "";
}
let prevLetter = str[0];
let letterCounter = 0;
@tripolskypetr
tripolskypetr / styles.css
Last active October 25, 2022 21:58
styles.css
.root {
display: flex;
flex-direction: column;
justify-content: space-between;
box-sizing: border-box;
max-width: 650px;
min-height: 100vh;
margin: auto;
padding-top: 3rem;
@tripolskypetr
tripolskypetr / openFile.js
Created April 6, 2022 13:05
Excel parser (PWA)
interface IParams {
multiple?: boolean;
readAsText?: boolean;
allowedExtensions?: string[];
}
export class InvalidExtensionError extends Error {}
export const readFileText = (file: File) => new Promise<string>((res) => {
const reader = new FileReader();
@tripolskypetr
tripolskypetr / call.service.ts
Created February 25, 2022 10:37
Сервис звонка
import { injectable, inject } from "inversify";
import { action, computed, observable, transaction } from "mobx";
import { makeObservable, toJS } from "mobx";
import IPeer from "../../../model/IPeer";
import ApiService from "../../base/ApiService";
import ErrorService from "../../base/ErrorService";
import SphereReadService from "../../base/SphereReadService";
(function () {
const applyCount = (line) => {
return line.reduce((acm, cur) => {
/**
* Получаем последнюю записанную букву
* со счетчиком
*/
const lastItem = acm.pop();
/**
* Если массив пустой, во избежание деструктуризации