Skip to content

Instantly share code, notes, and snippets.

@trikitrok
trikitrok / Server.java
Created May 29, 2024 15:25 — forked from michaelfeathers/Server.java
Scratch Refactoring Exercise
package server;
import java.io.BufferedReader;
import java.io.FileReader;
import java.util.Date;
import java.util.Properties;
import java.util.Vector;
import javax.mail.*;
import javax.mail.internet.*;
Budget {
public double CalculateTotal() { ... }
}
/* ---- */
OneClient {
...
budget.CalculateTotal();
...
}
class BankAccount {
public void Spend(double amount) { ... }
}
/* ---- */
class OneClient {
...
bankAccount.Spend(amount);
...
}
@trikitrok
trikitrok / Search my gists.md
Created June 30, 2024 12:57 — forked from santisbon/Search my gists.md
How to search gists.

Enter this in the search box along with your search terms:

Get all gists from the user santisbon.
user:santisbon

Find all gists with a .yml extension.
extension:yml

Find all gists with HTML files.
language:html

@trikitrok
trikitrok / latency.txt
Created June 30, 2024 13:45 — forked from jboner/latency.txt
Latency Numbers Every Programmer Should Know
Latency Comparison Numbers (~2012)
----------------------------------
L1 cache reference 0.5 ns
Branch mispredict 5 ns
L2 cache reference 7 ns 14x L1 cache
Mutex lock/unlock 25 ns
Main memory reference 100 ns 20x L2 cache, 200x L1 cache
Compress 1K bytes with Zippy 3,000 ns 3 us
Send 1K bytes over 1 Gbps network 10,000 ns 10 us
Read 4K randomly from SSD* 150,000 ns 150 us ~1GB/sec SSD
@trikitrok
trikitrok / lostincallbackhell.js
Created June 30, 2024 13:45 — forked from jboner/lostincallbackhell.js
Lost In Callback Hell
lost(arg, function(err, result) {
if(err) return console.log(err);
In(result, function(err, result) {
if(err) return console.log(err);
callback(result, function(err, result) {
if(err) return console.log(err);
hell(result);
});
});
});
@trikitrok
trikitrok / ArgentRoseStoreTest.java
Last active October 11, 2024 19:32 — forked from franreyes/ArgentRoseStoreTest.java
Argent Rose tests with 100% coverage but some mutants surviving
package com.argentrose;
import static org.junit.jupiter.api.Assertions.assertEquals;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
public class ArgentRoseStoreTest {
public static final int MIN_QUALITY = 0;
@trikitrok
trikitrok / ExtractAndOverrideFactoryMethod.cs
Last active March 24, 2025 18:10 — forked from franreyes/ExtractAndOverrideFactoryMethod.cs
Example extract and override factory method
class FileTransactionsRepository : ITransactionsRepository
{
// more code...
}
class Account
{
private ITransactionsRepository _transactionsRepository;
public Account()
@trikitrok
trikitrok / GildedRoseTest.cs
Last active January 22, 2025 13:47 — forked from franreyes/GildedRoseTest.cs
Gilded Rose: characterization tests killing all mutants
using NUnit.Framework;
namespace Gilded_rose.Test;
public class GildRoseTest
{
private const int MinQuality = 0;
private const int MaxQuality = 50;
[Test]