Skip to content

Instantly share code, notes, and snippets.

@yang-wei
yang-wei / README.md
Created January 20, 2022 01:19
How to generate zookeeper ACL digest schemes manually
### Keybase proof
I hereby claim:
* I am yang-wei on github.
* I am yangwei (https://keybase.io/yangwei) on keybase.
* I have a public key ASBjO6K0Dd_Bdqv617XxyzK2xvYVgCWvwaluoe0WHo1tIwo
To claim this, I am signing this object:
@yang-wei
yang-wei / README.md
Last active May 25, 2021 14:19
SOLID Principles of Object Oriented and Agile Design
@yang-wei
yang-wei / README.md
Last active January 24, 2021 00:39
Talking about Isolation in ACID

Playing with MySQL

Read Committed

  • prevent dirty write

    • row level locks
  • prevent dirty read

    • row level locks could be use but not performant
    • write new value and remember old value at the same time. return old value while transaction is not done
@yang-wei
yang-wei / README.md
Last active January 13, 2021 15:30
How to check file descriptors on Linux

system wide

> cat /proc/sys/fs/file-max
13032310

> cat /proc/sys/fs/file-nr
25696   0       13032310
@yang-wei
yang-wei / RedisClusterWithLettuce.scala
Last active November 18, 2020 11:43
lettuce Cannot retrieve initial cluster partitions from initial URIs from elasticache configuration endpoint
trait RedisCluster {
def connect: Throwable \/ StatefulRedisClusterConnection[String, String]
}
class RedisClusterWithLettuce(host: String, port: Int) extends RedisCluster {
private val client = RedisClusterWithLettuce.build(host, port)
def connect: Throwable \/ StatefulRedisClusterConnection[String, String] = {
\/.fromTryCatchNonFatal {
@yang-wei
yang-wei / README
Last active November 8, 2020 10:16
io.netty.channel.ConnectTimeoutException: connection timed out
```
❯ redis-cli -c -h localhost -p 6379
localhost:6379> cluster nodes
2f7fd4b118aec5f0d0b10a16006815098ae89e9c 192.168.48.2:6379@16379 myself,master - 0 1604830164000 1 connected 0-5460
10f1bbb2e194af0fd389253742f1cdd312dc0556 192.168.48.2:6384@16384 slave f53b0c7e1fffee2b20e7c8886075f545c50f1e9b 0 1604830165755 6 connected
ef35b6133ec1be37e8989ac4c9b3ebecf75cd612 192.168.48.2:6383@16383 slave dbb28f3dd2fa0462e7bac0ee3aef1ef9a59a1ba3 0 1604830167000 5 connected
dbb28f3dd2fa0462e7bac0ee3aef1ef9a59a1ba3 192.168.48.2:6380@16380 master - 0 1604830166271 2 connected 5461-10922
f53b0c7e1fffee2b20e7c8886075f545c50f1e9b 192.168.48.2:6381@16381 master - 0 1604830167299 3 connected 10923-16383
eeb51c67dbf497953c1fe30b7ffb7aaeabe0dc27 192.168.48.2:6382@16382 slave 2f7fd4b118aec5f0d0b10a16006815098ae89e9c 0 1604830166000 4 connected
```
@yang-wei
yang-wei / README.md
Last active August 8, 2018 01:19
PHP extension ext-memcached * is missing from your system
➜  admin git:(master) phpbrew --version
phpbrew - 1.23.1
cliframework core: 2.5.4
➜  admin git:(master) php -v
PHP 5.6.30 (cli) (built: Aug  7 2018 17:48:36)
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
➜  admin git:(master) which php
/Users/l-wei/.phpbrew/php/php-5.6.30/bin/php
@yang-wei
yang-wei / README.md
Created August 4, 2018 04:12
go upload
go run server.go

curl

curl -v -H 'Content-Type: multipart/form-data' -F "uploadfile=@./sample_video.mp4" -k http://localhost:8080/upload
@yang-wei
yang-wei / chunkify.php
Created March 18, 2017 01:15
Chukify - PHP utils to break function with large array parameter into multiple calls and combine the result
<?php
class Helper {
/**
* Break up process for function with first large array parameter into multiple time and merge
* Can be useful when thing are slow querying database or requesting api with large size of array at once
*/
public static function chunkify(callable $fn, array $fnFirstParam = [], $chunkSize=1000, ...$fnRestParams) {
$result = [];
foreach (array_chunk($fnFirstParam, $chunkSize) as $chunk) {