Skip to content

Instantly share code, notes, and snippets.

View goldeneggg's full-sized avatar

Fuminori Sakamoto goldeneggg

  • 合同会社Practa/Practa, Inc.(Founder)
  • Japan
  • X @practainc
View GitHub Profile
package main
import "fmt"
func Print(type T)(s []T) {
for _, v := range s {
fmt.Println(v)
}
}
@goldeneggg
goldeneggg / docker-compose.yml
Last active May 27, 2020 05:04
Rails 6 API Development and GitHub Actions CI with Docker (docker-compose.yml)
version: "3.7"
services:
db:
image: mysql:8.0.20
command: --default-authentication-plugin=mysql_native_password
environment:
- MYSQL_ROOT_PASSWORD
- MYSQL_ALLOW_EMPTY_PASSWORD
volumes:
@goldeneggg
goldeneggg / http_client.go
Last active March 8, 2020 16:21
GoでHTTPクライアントを実装する例
package main
import (
"fmt"
"io/ioutil"
"net/http"
"net/url"
"strings"
"time"
)
@goldeneggg
goldeneggg / grep.Body.Close.txt
Last active March 11, 2019 05:20
Go 1.4.2, grep "Body.Close"
cmd/go/http.go-28-func httpGET(url string) ([]byte, error) {
cmd/go/http.go-29- resp, err := httpClient.Get(url)
cmd/go/http.go-30- if err != nil {
cmd/go/http.go-31- return nil, err
cmd/go/http.go-32- }
cmd/go/http.go:33: defer resp.Body.Close()
cmd/go/http.go-34- if resp.StatusCode != 200 {
cmd/go/http.go-35- return nil, fmt.Errorf("%s: %s", url, resp.Status)
cmd/go/http.go-36- }
cmd/go/http.go-37- b, err := ioutil.ReadAll(resp.Body)
@goldeneggg
goldeneggg / app.js
Last active December 7, 2018 03:27
AWS Lambdaの言語サポート状況を取得する為のLambda Function
const axios = require('axios');
const cheerio = require('cheerio');
const url = 'https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/lambda-runtimes.html';
let $;
let response;
/**
@goldeneggg
goldeneggg / gochan.md
Last active July 1, 2018 14:55
[Go] ゴルーチン・チャネル ザックリ説明用

Goの並行処理 初歩感溢れるまとめ

Goの並行処理は 共有変数をチャネル上で引き回し、実行中の異なるスレッドからは同時アクセスさせない という手法を採用しています。

これを実現するために独自のプロセス/スレッド/軽量プロセス/コルーチンモデルを持っていて、このモデルを ゴルーチン(goroutine) といいます

逐次処理を並行化(ゴルーチン化)する

並行処理実践の初歩段階では 正しく逐次動作するソースコードを書き、並列に動作させる改良を加える というアプローチを取った方が無難です。いきなり並行処理を書こうとするとデバッグの際に並行化の誤りなのかアルゴリズムの誤りなのかを判断するのが難しくなります。

というわけで、まず例として超単純な逐次処理を書いてみます。1から5の数値を2倍した値を表示するだけの処理です。

@goldeneggg
goldeneggg / kh2md.rb
Last active May 22, 2018 00:39
Kindle highlights to markdown for amazon.co.jp
# Note:
# tagged version of kindle-highlights gem is not supported "root_url" option.
# So should use "master" branch version.
require "kindle_highlights"
puts "START kindle highlights output to markdown"
kindle = KindleHighlights::Client.new(email_address: ENV['KINDLE_EMAIL'], password: ENV['KINDLE_PASSWD'], root_url: 'https://read.amazon.co.jp')
kindle.books.each_with_index do |book, i|
puts "========== TITLE: #{book.title}"
@goldeneggg
goldeneggg / docker_md.md
Last active November 26, 2017 08:08
Dockerについての調査まとめ、基本機能+主な特徴+Vagrantの連携 あたり

Dockerについて調べたのでヅラヅラとまとめ + チートシート

概念とか用語とか、とりあえず押さえとくべきもの

  • lxc
    • LXC - Wikipedia
    • OSレベル の仮想化ソフトウェア
      • 完全仮想化(ハードウェアをエミュレート、オーバーヘッド大) - KVM etc
      • 準仮想化(ゲストOSがホストOSのAPIを使用、オーバーヘッド中) - Xen, Hyper-V etc。Virtualboxもこちらか
  • 仮想機械ではなく、個別のプロセスとネットワークスペースを作り出す仮想環境
@goldeneggg
goldeneggg / sslrails
Created July 4, 2016 11:23
ローカルのrailsをオレオレ証明書でSSL化して起動する `sslrails` コマンド
#!/usr/bin/env ruby
APP_PATH = File.expand_path('../../config/application', __FILE__)
require_relative '../config/boot'
require 'rubygems'
require 'rails/commands/server'
require 'rack'
require 'webrick'
require 'webrick/https'
@goldeneggg
goldeneggg / sshconfig
Last active January 3, 2016 06:19
これぐらいトンネル掘っておけばまあ困らんだろ、的sshconfig ついでにsocks proxy立ててinternalなページにもアクセス出来るようにしといた
Host nemui
Hostname setsuzoku.server
User jpshadowapps
LocalForward 16667 irc.na.server:6667 # ircサーバのsshトンネル
LocalForward 13389 win.na.server:3389 # windowsサーバのsshトンネル。RDCで localhost:13389 とかして接続
LocalForward 15900 mac.na.machine:5900 # mac 画面共有のsshトンネル
LocalForward 10022 localhost:22
ProxyCommand ssh jpshadowapps@fumidai.na.server nc -w 1 %h %p # 多段ssh時の経由サーバ
DynamicForward localhost:10080 # socks proxy
IdentityFile ~/.ssh/nemui_rsa