Skip to content

Instantly share code, notes, and snippets.

View nakov's full-sized avatar
🎯
Focused on the global SoftUni expansion: https://softuni.org

Svetlin Nakov nakov

🎯
Focused on the global SoftUni expansion: https://softuni.org
View GitHub Profile
@nakov
nakov / Output
Created February 8, 2023 13:35
Shelly: Number to String without Trailing Zeros
Num (standard): 123.131000
Num (no trailing zeros): 123.131
@nakov
nakov / ECDSA-secp256k1-example.cs
Last active October 26, 2022 23:18
ECDSA with secp256k1 in C# - Generate Keys, Sign, Verify
using System;
using System.Text;
using Nethereum.Hex.HexConvertors.Extensions;
using Nethereum.Signer;
using Nethereum.Util;
using Nethereum.Signer.Crypto;
class ECDSASecp256k1Example
{
static void Main()
@nakov
nakov / FileXor.cs
Created March 10, 2021 17:50
C# Encrypt / Decrypt File with XOR
using System.IO;
void EncryptFile(string inputFile, string outputFile)
{
using (var fin = new FileStream(inputFile, FileMode.Open))
using (var fout = new FileStream(outputFile, FileMode.Create))
{
byte[] buffer = new byte[4096];
while (true)
{
@nakov
nakov / ConsoleBasedMatrixEditor.cs
Created July 12, 2022 09:51
Console-Based Matrix Editor in C#
char[,] matrix = new char[,]
{
{ 'x', '-', '-', 'x', 'x'},
{ 'x', '-', '-', 'x', 'x'},
{ 'x', '-', '-', 'x', 'x'},
};
int x = 0;
int y = 0;
@nakov
nakov / Airfield.cs
Created June 15, 2022 20:49
Meal Plan
using System;
using System.Collections.Generic;
using System.Linq;
namespace Drones
{
public class Airfield
{
public List<Drone> Drones { get; set; }
public string Name { get; set; }
@nakov
nakov / HtmlGenerateAndOpen.cs
Created May 23, 2022 10:49
Generate and Open HTML in C#
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
File.WriteAllText("weather.html", "<html><h1>Weather</h1></html>");
var p = new Process();
p.StartInfo = new ProcessStartInfo("weather.html")
{
@nakov
nakov / ffmpeg-avi-to-gif.cmd
Last active April 8, 2021 13:14
Create highly-optimized GIF from screencast video (MP4)
ffmpeg -i .\input.avi -vf scale=1280x720 -crf 0 -r 4 -an -y out.mp4
ffmpeg -i .\out.mp4 -vf palettegen=256 -y palette.png
ffmpeg -y -i .\out.mp4 -i palette.png -filter_complex paletteuse -y animation.gif
del out.mp4
del palette.png
@nakov
nakov / TestsContactBookAndroidApp.cs
Created March 26, 2021 17:42
Appium Test for the ContactBook app
using NUnit.Framework;
using OpenQA.Selenium;
using OpenQA.Selenium.Appium;
using OpenQA.Selenium.Appium.Android;
using OpenQA.Selenium.Remote;
using System;
namespace AppiumTests_ContactBook
{
public class TestsContactBookAndroidApp
@nakov
nakov / HD-wallet-create-new.js
Created November 4, 2018 20:39
Crypto Wallets: A Technical Perspective (Nakov at OpenFest 2018) - JavaScript Code Examples
let ethers = require('ethers');
let rnd256Bits = ethers.utils.randomBytes(256 / 8);
let mnemonics = ethers.HDNode.entropyToMnemonic(rnd256Bits);
let hdWallet = ethers.HDNode.fromMnemonic(mnemonics);
console.log("Wallet mnemonics:", mnemonics);
for (let index=0; index<5; index++) {
let key = hdWallet.derivePath(`m/44'/60'/0'/0/${index}'`);
console.log(`Private key #${index}: ${key.privateKey}`);
@nakov
nakov / APITestsContactBook.cs
Created March 12, 2021 17:45
ContactBook API Tests
using NUnit.Framework;
using RestSharp;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Text.Json;
public class APITestsContactBook
{