Skip to content

Instantly share code, notes, and snippets.

@kuy
kuy / console-server.js
Created June 17, 2016 07:19
Remote console.log using WebSocket
'use strict';
var WebSocketServer = require('ws').Server;
var wss = new WebSocketServer({ port: 5013 });
wss.on('connection', function connection(ws) {
ws.on('message', function onMessage(message) {
console.log(message);
});
});
@kuy
kuy / pre-commit
Last active November 10, 2021 03:52
git: pre-commit hook script to prevent committing FIXME code
#!/bin/sh
matches=$(git diff --cached | grep -E '\+.*?FIXME')
if [ "$matches" != "" ]
then
echo "'FIXME' tag is detected."
echo "Please fix it before committing."
echo " ${matches}"
exit 1
@kuy
kuy / gist:9153669f46f142155b1cd1b37ab4dcb7
Created August 31, 2020 01:42 — forked from shyouhei/gist:63d91a7934f31ef08e08ef4f23d0a30b
フルタイムでオープンソース・ソフトウェアを開発すると開発者にはどういう変化が訪れるか(個人の感想レベル)

フルタイムでオープンソース・ソフトウェアを開発すると開発者にはどういう変化が訪れるか(個人の感想レベル)

高給に耐えるという謎の感覚が涵養される

特に何もやってあげてないのに他人(法人だけどさ)から何百万何千万のお金が何年もとめどなく注ぎ込まれてきたら、怖くないですか?

オープンソース・ソフトウェアの開発者だけで給料をもらうというのは、まさにこの現象が発生してくるわけ。それまでもこれからも、ずっとオープンソース・ソフトウェアの開発者はやってきたし、やっていくわけでしょう。そんなの会社があってもなくても、別にやることなんて変わらないじゃない。じゃあなんで、ある時から急にかなりの金額が振り込まれてきてしまうんだ?しかもあからさまに物価上昇を上回る結構なハイペースで昇給していく。やっていることは一切何も変わってないのに!

この状況に適応するまでにはいささかの時間を要しました。根が小心者なので。

@kuy
kuy / gist:95a4ab8e9fa7239610791e45567bff12
Created August 31, 2020 01:42 — forked from shyouhei/gist:63d91a7934f31ef08e08ef4f23d0a30b
フルタイムでオープンソース・ソフトウェアを開発すると開発者にはどういう変化が訪れるか(個人の感想レベル)

フルタイムでオープンソース・ソフトウェアを開発すると開発者にはどういう変化が訪れるか(個人の感想レベル)

高給に耐えるという謎の感覚が涵養される

特に何もやってあげてないのに他人(法人だけどさ)から何百万何千万のお金が何年もとめどなく注ぎ込まれてきたら、怖くないですか?

オープンソース・ソフトウェアの開発者だけで給料をもらうというのは、まさにこの現象が発生してくるわけ。それまでもこれからも、ずっとオープンソース・ソフトウェアの開発者はやってきたし、やっていくわけでしょう。そんなの会社があってもなくても、別にやることなんて変わらないじゃない。じゃあなんで、ある時から急にかなりの金額が振り込まれてきてしまうんだ?しかもあからさまに物価上昇を上回る結構なハイペースで昇給していく。やっていることは一切何も変わってないのに!

この状況に適応するまでにはいささかの時間を要しました。根が小心者なので。

let selected = match props.selected {
Some(selected) => match serde_json::from_str::<Vec<ColorName>>(selected.as_str()) {
Ok(selected) => selected.into_iter().map(|cn| cn.id.to_string()).collect(),
_ => vec![],
},
_ => vec![],
};
let selected = props.selected.map_or(vec![], |s| {
serde_json::from_str::<Vec<ColorName>>(s.as_str()).map_or(vec![], |s| {
s.into_iter().map(|cn| cn.id.to_string()).collect()
@kuy
kuy / Result1.txt
Created January 12, 2020 15:27
actix-web + serde_urlencoded
---- deserialize_option stdout ----
thread 'deserialize_option' panicked at 'assertion failed: `(left == right)`
left: `Ok([("last", Some(42))])`,
right: `Ok([("first", None), ("last", Some(42))])`', tests/test_deserialize.rs:59:5
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace.
@kuy
kuy / memo.md
Created June 22, 2019 08:02
Tablecloth: Float.to_string / Float.toString

Float.toString / Float.to_string

Base.Float.to_string

input

let () =
  print_endline "Base.Float.to_string";
  print_endline (Base.Float.to_string 3.);
  print_endline (Base.Float.to_string (-3.));
@kuy
kuy / output.txt
Created June 22, 2019 01:54
dune build && dune runtest -f
Entering directory '/Users/kuy/Work/tablecloth'
Entering directory '/Users/kuy/Work/tablecloth'
test alias native/test/runtest
Testing suite.
This run has ID `B895F613-6FAD-4D8C-BF80-E52AEA270B26`.
[OK] tests 0 Array.
[OK] tests 1 Char.
[ERROR] tests 2 Float.
[OK] tests 3 Int.
[OK] tests 4 List.
// scatter-random-dots.jsx
// https://github.com/kuy
// Copyright(c) 2019 Yuki KODAMA / @kuy
// This script is distributed under the MIT License.
function precondition() {
if (documents.length === 0) {
alert("Please create a new document before running script.");
return false;
}
@kuy
kuy / lambda.js
Created September 10, 2018 17:49
'use strict';
exports.handler = (event, context, callback) => {
// Get request and request headers
const request = event.Records[0].cf.request;
const headers = request.headers;
// Configure authentication
const authUser = 'user';
const authPass = 'pass';