Skip to content

Instantly share code, notes, and snippets.

Avatar

Marcin Chwedczuk marcin-chwedczuk

View GitHub Profile
@marcin-chwedczuk
marcin-chwedczuk / GSM7BitEncoderDecoder.java
Created September 23, 2019 11:54
GSM7Bit encoder / decoder
View GSM7BitEncoderDecoder.java
// based on: https://github.com/bsimic0001/AegisWallet/blob/master/mobile/src/main/java/com/aegiswallet/utils/MessagingUtils.java
public class MessagingUtils {
public static void main(String[] args) {
System.out.println("encode: " + encode("*100#"));
System.out.println("decode: " + decode("<<message to decode>>"));
}
/**
@marcin-chwedczuk
marcin-chwedczuk / btree.js
Created May 30, 2016 15:26
BTree implementation in JavaScript
View btree.js
#!/usr/bin/env node
const NKEYS = 4;
function arrayOfSize(size) {
var a = Array(size);
for (var i = 0; i < size; i += 1)
a[i] = null;
@marcin-chwedczuk
marcin-chwedczuk / Main.java
Created November 18, 2017 14:36
Display values of MS-DOS Portable Executable header
View Main.java
// Needs Guava to compile:
//
// compile group: 'com.google.guava', name: 'guava', version: '23.4-jre'
//
import com.google.common.io.LittleEndianDataInputStream;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.Arrays;
import java.util.List;
@marcin-chwedczuk
marcin-chwedczuk / article-text.md
Last active May 7, 2021 13:54
Renowacja Nintendo GameBoy Original
View article-text.md

Renowacja Nintendo GameBoy Original

Niedawno zakupiłem dwa stare GameBoy'e z myślą o ich renowacji. Obu zakupów dokonałem na OLX'ie, zapłaciłem 200 i 230 PLN (łącznie z kosztami dostawy). Obie konsole w chwili dotarcia do mnie były sprawne i pozwalały na uruchomienie Zeldy (Link's Awakening DX).

W przypadku pierwszej konsoli wymieniłem jedynie obudowę. Durgą postanowiłem dosyć mocno "zmodować", wstawiając do niej ekran IPS. Oba wykorzystane przeze mnie produkty do renowacji są dostępne na AliExpressie. Obudowy można znaleźć szukając po hasłach: "gameboy classic case" i "gameboy original shell".

@marcin-chwedczuk
marcin-chwedczuk / grayBin.js
Created December 16, 2019 19:53
Binary Gray code conversion
View grayBin.js
function reverse(array) {
var copy = array.slice();
copy.reverse();
return copy;
}
function gray(nbits) {
if (nbits <= 0) return ['']; // zero bit code contains 2^0 values == 1
@marcin-chwedczuk
marcin-chwedczuk / answer.js
Created May 1, 2019 11:36
Minimal integer n > 0 that for each prime if (p-1) | n then p | n
View answer.js
// Problem:
// Find minimal integer number n > 0 that
// for any prime p:
// if (p - 1) | n then p | n
// where `|` means divide.
//
function gen_primes() {
var N = 1000;
@marcin-chwedczuk
marcin-chwedczuk / locality_of_configure_await.md
Last active December 30, 2018 10:35
O lokalności `ConfigureAwait`
View locality_of_configure_await.md

O lokalności ConfigureAwait

Chciałbym tu naświetlić pewną kwestię związaną z użyciem ConfigureAwait którą wiele osób uczących się programowania asynchronicznego w C# przeocza.

Zacznijmy od prostego przykładu aplikacji WinForms składającej się z jednego przycisku:

public partial class Form1 : Form
{
 public Form1()
@marcin-chwedczuk
marcin-chwedczuk / csharp_null_and_using_statement.md
Last active December 28, 2018 17:19
C#, null and using statement
View csharp_null_and_using_statement.md

Do you know that C# supports using null values with using statements. For example the following program compiles and runs without any problems:

public class Program
{
	public static void Main()
	{
		using(var x = CreateIDisposable()) {
			// prints x = <null>
@marcin-chwedczuk
marcin-chwedczuk / dotnetomaniak-1.md
Created June 8, 2018 19:33
Kiedy unikać async/await w wyrażeniach lambda
View dotnetomaniak-1.md

Od pewnego czasu do pisania testów jednostkowych używam bibliotek XUnit, NSubstitute oraz NFluent. Zwłaszcza ta ostatnia przypadła mi do gustu.

Jedną z metod oferowanych przez NFluent jest Check.ThatAsyncCode(...), na przykład:

Check
    .ThatAsyncCode(() => Task.Delay(0))
    .DoesNotThrow();
@marcin-chwedczuk
marcin-chwedczuk / eval.fs
Created May 26, 2018 17:50
fsharp-primitive-expression-evaluator
View eval.fs
open System
open System.Collections.Generic
open System.Diagnostics
open System.Reflection
open System.Text.RegularExpressions
type Operator =
| Plus | Minus | Multiply | Divide