Skip to content

Instantly share code, notes, and snippets.

View yoshitsugu's full-sized avatar
🐐
bleat

Kota Yoshitsugu yoshitsugu

🐐
bleat
View GitHub Profile

Introduction

I was recently asked to explain why I felt disappointed by Haskell, as a language. And, well. Crucified for crucified, I might as well criticise Haskell publicly.

First though, I need to make it explicit that I claim no particular skill with the language - I will in fact vehemently (and convincingly!) argue that I'm a terrible Haskell programmer. And what I'm about to explain is not meant as The Truth, but my current understanding, potentially flawed, incomplete, or flat out incorrect. I welcome any attempt at proving me wrong, because when I dislike something that so many clever people worship, it's usually because I missed an important detail.

Another important point is that this is not meant to convey the idea that Haskell is a bad language. I do feel, however, that the vocal, and sometimes aggressive, reverence in which it's held might lead people to have unreasonable expectations. It certainly was my case, and the reason I'm writing this.

Type classes

I love the concept of type class

@ubnt-intrepid
ubnt-intrepid / Cargo.toml
Last active September 13, 2018 19:43
async/await with Tokio runtime (0.1)
cargo-features = ["edition"]
[package]
name = "async-await-with-tokio"
version = "0.0.0"
publish = false
edition = "2018"
[[bin]]
name = "async-await"
@mkamakura
mkamakura / firebase.json
Created December 17, 2017 03:35
[Firebase Hosting,Functions] basic認証付きでサイトを公開する
{
"hosting": {
"public": "public",
"rewrites": [
{
"source": "**",
"function": "app"
}
],
"redirects": [{
@pocari
pocari / delete_old_application_versions.sh
Last active December 19, 2019 01:21
beanstalkの指定したアプリケーション内のアプリケーションバージョンを削除するshell関数
# --dry-run ... 実際に実行はせず削除コマンドの表示だけ行う
# --keep n ... 直近N個のみ保持しそれ以外は削除
# --target regexp ... regexpにマッチするアプリケーションバージョン名のみを対象
# --v-target regexp ... regexpにマッチしないアプリケーションバージョン名のみを対象
# 例)
# productionが含まれるバージョンを直近20件のみ保持
# $ delete_old_application_versions karada-yosozu --target "production" --keep 20
#
# production, staging以外のバージョンを直近20件のみ保持
# $ delete_old_application_versions karada-yosozu --v-target "staging|production" --keep 20
@voluntas
voluntas / realtime_movie_stream.rst
Last active August 5, 2024 09:58
リアルタイム動画配信コトハジメ
@voluntas
voluntas / webrtc.rst
Last active March 28, 2025 06:01
WebRTC コトハジメ

捨てられる環境づくり

1年ほど前、作業の自動化をもっと進めるべきと思った。 なんども同じ作業をしているのが原因の負担が大きいと感じたため。 それから自動化できそうなところを自動化する、というのをぼちぼち やってた。

あるとき、自動化のためには捨てられる環境を意識するのが 大切ではないかと考えた。

@pasela
pasela / capture3_with_timeout.rb
Last active October 18, 2023 18:33
[ruby] capture3_with_timeout
# encoding: utf-8
require "timeout"
# Capture the standard output and the standard error of a command.
# Almost same as Open3.capture3 method except for timeout handling and return value.
# See Open3.capture3.
#
# result = capture3_with_timeout([env,] cmd... [, opts])
#
@hoegertn
hoegertn / init script
Created September 14, 2012 21:07
stunnel init script
#!/bin/sh
#
# stunnel Start/Stop the stunnel daemons
#
# description: stunnel is a script that runs stunnel daemons
# version 1.00
#
# chkconfig: 345 40 60
#
# processname: stunnel
@wdkrnls
wdkrnls / org-syntax-cheatsheet.org
Created March 7, 2012 03:54
Org-mode Syntax Cheat sheet

Markup Cheat sheet for Org-mode

Heading 1

Heading 2: Set a deadline and a schedule

[66%] Heading 3: a list with checkboxes

  1. [X] task 1
  2. [X] task 2
  3. [ ] task 3