Skip to content

Instantly share code, notes, and snippets.

View sdogruyol's full-sized avatar
🏠
Working from home

Serdar Dogruyol - Sedo セド sdogruyol

🏠
Working from home
View GitHub Profile
@sdogruyol
sdogruyol / android_aes_encrpytor.java
Created August 5, 2013 12:36
AES Encryption Singleton Class in Android Using CBC / PKCS7Padding
import java.io.UnsupportedEncodingException;
import java.security.InvalidAlgorithmParameterException;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
import javax.crypto.BadPaddingException;
import javax.crypto.Cipher;
import javax.crypto.IllegalBlockSizeException;
import javax.crypto.NoSuchPaddingException;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;

Crystal vs Node.js Websocket Benchmark

Crystal 0.9.1 with Kemal

require "kemal"

ws "/" do |socket|
  socket.on_message do |message|
 end
@sdogruyol
sdogruyol / arch_linux_prax.md
Created March 22, 2018 08:59
Prax setup on Arch Linux

Prax Installation on Arch Linux

1 - Install dnsmasq

sudo pacman -Syu
sudo pacman -S dnsmasq

2 - Configure dnsmasq to resolve .test domains to localhost via creating /etc/NetworkManager/dnsmasq.d/prax:

@sdogruyol
sdogruyol / RubyIrc
Created June 5, 2013 12:49
Freenode Ruby
Merhaba Dünya!
Hello world!
よ世界。
@sdogruyol
sdogruyol / crystal_chat.cr
Created December 14, 2015 19:12
Simple Crystal Chat Server
require "http/server"
SOCKETS = [] of HTTP::WebSocketHandler::WebSocketSession
ws_handler = HTTP::WebSocketHandler.new do |socket|
puts "Socket opened"
SOCKETS << socket
socket.on_message do |message|
SOCKETS.each { |socket| socket.send "Echo back from server: #{message}" }
@sdogruyol
sdogruyol / channel_benchmark.cr
Created July 31, 2017 13:05
Crystal Channel send benchmark
require "benchmark"
channel = Channel(Int32).new
spawn do
loop do
channel.receive
end
end
require "benchmark"
require "colorize"
require "http"
require "spec/dsl"
class String
private PRIME_RK = 2097169u32
def index_old(search : String, offset = 0)
offset += size if offset < 0
sysctl -w fs.file-max=12000500
sysctl -w fs.nr_open=20000500
ulimit -n 20000000
sysctl -w net.ipv4.tcp_mem='10000000 10000000 10000000'
sysctl -w net.ipv4.tcp_rmem='1024 4096 16384'
sysctl -w net.ipv4.tcp_wmem='1024 4096 16384'
sysctl -w net.core.rmem_max=16384
sysctl -w net.core.wmem_max=16384
struct Upload
field : String
data : IO::Delimited
meta : HTTP::FormData::FileMetadata
headers : HTTP::Headers
end
def parse_multipart(env)
HTTP::FormData.parse(env.request) do |field, data, meta, headers|
yield Upload.new field, data, meta, headers
require "kemal"
logging false
get "/" do
"Hello World!"
end