サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
衆院選
amaya382.hatenablog.jp
TL;DR; 殆の場合において論理削除は不要。素直にRDBの機能を使うかイベントソーシングパターンを導入する。 なんで今更論理削除の話を? 散々議論されていて皆さん飽き飽きしている話題だと思いますが、今一度個人的にまとめたかったからです。 実際にできる/できないではなく、テーブル設計的にあるべき姿かどうか・実装運用時にどうなるかに重きを置きます。何度か論理削除を利用したプロダクトに関わった経験に基づく個人的な感想です。PostgreSQLベースです。 そもそも論理削除とは RDBのテーブルに「削除済み」を意味するカラムを追加することで、DELETEを発行せずに論理的に削除を表現する手法です。良くある実装には、Booleanのフラグで表現するものと、削除タイムスタンプ (削除されていない場合はNULL) で表現するものがあります。これに加えて、論理削除されたレコードが見えないようにしたVie
何が重かったか tmux+zshな環境を利用しているのですが、zshでコマンドなしでEnterを連続で押したときやtmux環境を保存・復元するtmux-resurrectが激重でした。特に後者は保存・復元にそれぞれ1分程度かかっていました (同程度のマシンで普通のlinuxであれば5秒とかからない処理です)。 ちなみに、shellから呼び出したプログラムの速度は特段遅く感じることはありませんでした。 原因と解決策 デフォルトでWSL2のshellにWindowsのPATHが含まれているのですが、これが原因だったようです。 ので、これをしない設定にしました。 以下の内容を /etc/wsl.conf に追記して再起動するだけです。 [interop] appendWindowsPath = false ちなみにこの設定は Build 17713 以降でのみ使えるようです。 (追記) 副作用
Kubernetes Advent Calendar 2019 その3 の 2日目です。 WeaveworksによってGitOpsが提案されてから2年ほどが経ち、僅かですが本番導入事例も耳にするようになりました。とはいえ案外まとまったドキュメントは作られていません。特にGitOpsで複数の環境 (e.g., 開発環境、本番環境、etc.) をハンドリングするためには欠かせないブランチ戦略については殆ど語られていないようです。これではたとえGitOpsの概要 (Single Source of Truthの概念等) を知っていても本番導入には大きなハードルが残ったままで、本番導入事例がまだまだ少ないことにも納得できてしまいます。そこでこの記事ではブランチ戦略に焦点を当て、サンプルプロジェクトを交えながら紹介していこうと思います。k8s/GitOps中級者向けです、多分。 以前GitOpsにつ
いわゆる退職エントリってやつですね、せっかくなので。とはいえ技術書典で文章を書くことに飽きたので簡単にしか書きません。 まだ有給消化中ですが1年半勤めたさくらインターネットを10月で退職し、大阪大学大学院情報科学研究科で博士後期課程に進学します。出戻りみたいな感じです。東京から大阪に移りました。 やっていたこと さくらインターネットには修士新卒で入社し、主に2つのプロジェクトを担当していました。 1つ目のメインで稼働していたプロジェクトですが、こちらはまだリリースされていないので詳細は伏せます。レイヤ的には要件定義・全体設計・DevOps・実際のアプリ開発といったところを担当していました (溢れ出るふるすたっく感!)。最近k8sのイベントや執筆をすることが多かったですが、主にこのプロジェクトで活かしてきたものになります。技術スタックの中でもgolang・k8s・gitops辺りを中心的に扱
この記事は Performance Considerations of Class Design and General Coding in .NET - CodeProject を雑に日本語でまとめて微妙に参考を付加しただけです. 元記事が2014年なのでちょっと古い. structについて ↓の方がよくまとまっている ufcpp.net が, ↑にも書かれていない踏み込んだ点として, 以下がある classの場合, インスタンスごとに32/64bit環境でそれぞれ8/16bytesのオーバーヘッドが発生するがstructはそれが一切ない 大前提としてstructは値型なので基本的にstack上に置かれる ただし, classのメンバとして扱われる場合はheap上に置かれる Equals(object), GetHashCode()だけでなくT#IEquatable<T>のEquals(
Alpine Linux 3.5+ をお使いの方 おめでとうございます!今すぐ apk add shadow しましょう. 他のディストロ同様の useradd・usermod・vipw といった 様々なコマンド がお試しいただけます. Alpine Linux ~3.4 をお使いの方 残念ながらbusyboxによる adduser・addgroup・deluser・delgroup しかありません. 強く生きましょう.
大体デフォルトで問題ないが, 気をつける必要がある設定がいくつかあるのでメモ. .gitconfig > .core autocrlf 改行コードにまつわる設定. 設定によっては「リポジトリ上だけLF」といったことができる, が, 複数人が利用する以上色々混じる可能性は払拭できず, コレ!と断言できる設定がない. 周辺設定項目として safecrlf や eol がある. 詳細は↓とか参照 qiita.com ignorecase ファイル名の大文字小文字を区別するかどうかの設定. デフォルトが true なので, false にしてやらないと大文字小文字のリネームで面倒なことになる. この設定は常に false で良いと思う. filemode ファイルのパーミッションを扱うかどうかの設定. 基本はデフォルトの true で問題ないが, Windows環境が混じると厄介. Windows
以前以下のようなDottyに関する記事を書きました. amaya382.hatenablog.jp それから暫く経ち, 多くの更新が入ったため新しくまとめました. 公式ドキュメントだけでなくあちこちにちらばった情報を集めています. 過去記事と同じくあくまで真新しい機能のみに注目し, 理論的な部分や実装については深掘りしません. 概要のみなので, 個々の詳細は各見出しのリンク先を御覧ください. Dottyとは Dependent Object Types (DOT) に基づいた新しいScalaコンパイラです. Scala3系に相当します. DOT計算理論の詳細は省きます (まとめるほど理解できていないとも言う…). 現行のコンパイラと比べ, コンパイラサイズの減少・コンパイル速度向上・様々な機能追加の他, コンパイラ自体の開発安定性も増すパワフルなアップグレードが期待できます. 現行のSca
今更 もうProposalが出されてから暫く経っていますが今更軽く確認したのでメモ書き. 特に大した内容はないです. ちゃんと知りたい方は SCALA 2.13 COLLECTIONS REWORK や ソース を読んで下さい. 過去にScala2.8でも一度Scalaのコレクションライブラリは大きな変更が加えられています. その際に (確かに機能的なんですが) 分かりづらいと評判の CanBuildFrom を中心とした仕組みが追加されました. しかしながら, その挙動は一見トリッキーで実装は無駄に巨大になってしまっているため, Scala2.13で新しいコレクションライブラリである Strawman に変更される予定です. 普通に(?) 利用している分にはAPIの変更はないため既存のコードはそのまま動くはずですが, breakOut, view や継承して自前のコレクションを作成してい
Scalaの入門書がないない言われ続け早n年. この度「Scalaをはじめよう―マルチパラダイム言語への招待―」というScalaの入門向けの本を書きました. 2/16に発刊となりました. 最初は「Scala Tour」という同人誌として執筆し, α版をC92, 正式版を技術書典3にて頒布していたのですが, 技術書典3で頒布していた際にインプレスR&Dさんからお声がけいただき, 商業誌として世に出すことになりました. 同人版ではまだまだ粗が多かったため, 商業化にあたって大幅なリファクタリングを行いました. 章立ては以下のようになっており, 同人誌の時代の薄さを受け継ぎ たった86ページ となっています. 分厚い入門書はやってられない…という人でも取り組みやすいかと思います. ページ数は少ないものの, Scalaのほとんどの基本的な構文, 躓きやすい/勘違いしやすいポイントを読みにくくならな
isucon.net やったぜ! ISUCON5とISUCON6はScala界隈の方とScalaで突破しようとして一般枠で撃沈していたのですが, 今回はチーム「チーム名を考えるのが苦手すぎる」として OUCC の老害組 (@spring_raining, @susisu2413) と人生最後の学生枠を初利用して最終スコア89,047で初の予選突破できました (なお一般枠のスコアを見て真顔). 開催時間が押したことにより @spring_raining の途中離脱が発生したりしましたが無事 (?) 終えることができました. ISUCON申込み成功 pic.twitter.com/u048rUvHs9— 緑豆はるさめ (@spring_raining) 2017年9月25日 チームメンバーの2人が 💪JavaScript力の塊💪 だったので (Scalaではなく) JavaScriptです
タイトル通り. 前々から高解像度ディスプレイで利用する時にIllustratorやPhotoshopのメニューが非常に小さくなって困っていました. CCからは公式でHiDPI対応していますが, CS6は対応されずどうしようもないと思っていたんですが… (※ Creators Update後に利用できる別アプローチを追加しました) (推奨) Windows10 Creators Update以降を利用している場合 Creators Updateで追加されたスケーリング機能がこの問題にも適用できることを確認しました. Illustrator.exe, Photoshop.exe 共通で, アプリを右クリック → Properties Compatibility タブの Override high DPI scaling behavior Scaling performed by にチェック プ
「LDAPとRadiusで無線LANとLinuxユーザとSSHの認証まとめたろw」と思ったのが発端. とりあえずLDAPでSSHの公開鍵認証は動くようになった. まとまった情報があまり見つからなかったのでメモ. 概要 実験環境 (VM上の)Ubuntu16.04 dockerやssh環境を前提とする どこまでやるの docker上に公開鍵の情報を含むLDAPサーバを作成し, SSHの認証でそれを参照させる. 既存LinuxユーザとLDAP上のユーザを共存させ, 初ログインのLDAPユーザには自動的にホームディレクトリを作成する. LDAPサーバ LDAPサーバのdockerコンテナを建てる docker run --name ldap-server -p 389:389 --env LDAP_ORGANISATION="Example" --env LDAP_DOMAIN="example
いい加減やらないとなーとn年思いながらも放置していた案件. 結論から言うと↓を使うだけ. github.com 得られるもの HTTPS化 (DV by let’s encrypt) 無料 ずっと使える (let’s encryptの証明書には90日の期限があるが, 自動的に更新してくれる) 対価 80・443 番ポートが利用可能 ドメイン取得済み Docker導入済み (HTTPS化したいエンドポイントはDocker上でなくても可) https-portal は, Webサーバにnginx, 証明書にlet’s encryptベースのリバースプロキシとして動作する. 自動で証明書の更新もしてくれる. 使い方 詳細はリポジトリのREADME参照. Docker Composeからの利用が推奨されている. いくつか利用法が提示されているが, 基本的には以下のような docker-compos
新しい記事を書きました. 本記事を包含します. amaya382.hatenablog.jp Dottyで何ができるようになるのかとその使い方を簡単にまとめたいと思います. 理論的な部分は深掘りしません. 以下ちょっと長め. 調べきれてない点も多々あるので, 抜けや間違いがあったら教えてください. そもそもDottyとは Dependent Object Types (DOT) に基づいた新しいScalaコンパイラです. たまにScala3とか呼ばれたりもしています. DOT計算理論の詳細は省きます (まとめるほど理解できていないとも言う…). 現行のコンパイラと比べ, コンパイラサイズの減少・コンパイル速度向上・様々な機能追加の他, コンパイラ自体の開発安定性も増すパワフルなアップグレードが期待できます. 現行のScalaとの互換性は切れていますが, 勿論重要な機能がなくなるといったこと
公式リファレンスを見ても分かりづらいのでメモ. Docker Compose経由でビルドされたデフォルトイメージ名は {プロジェクト名}_{サービス名} となる (デフォルトプロジェクト名はディレクトリ名だが, コマンドラインオプション -p から指定可能). 例えば以下のような構成であれば, イメージ名が hoge_fuga, コンテナ名が piyo となる. hoge ┣ Dockerfile ┣ docker-compose.yml ┗ ... # docker-compose.yml version: '2' services: fuga: build: . container_name: piyo しばしば長ったらしいイメージ名になってしまう. そこで以下のように image を追加することでイメージ名を指定できる. image と build が同時に宣言されている場合は, ビ
タイトル通り. 過去にも似たようなことをやったり, 公式実装が公開されたり と, これらを使ってきたが, やはりどうにも使い勝手が悪い部分が多かったので作り直した (宿命). github.com 基本的には公式実装をベースとしているが, 破壊的な変更や機能追加が多いため別リポジトリとした. 細かい内容はリポジトリを見て頂きたいが, 主な特徴だけ挙げる. アプリケーション群は完全にDocker管理下でビルド済みイメージも公開済み[1][2] で docker-compose up するだけ. 設定ファイルは別途永続化されるので, 止めたい時は気軽に docker-compose down 可能 Mirakurun, Chinachuだけでなく自動エンコード機能もデフォルト内蔵で個別設定も可能, もちろんChinachuのストリーミング再生機能もそのまま利用可能 最低限レベルの初期設定 出来
(Linuxに追記アリ 2016/12/3) 独自のキーバインディングを多用する, しないと死ぬタイプの人種のため全ての環境でなにかしらのキーバインディングソフトにお世話になっている. 一段落したため各環境について簡単にまとめておく. Windows マルチコア+特定条件(詳細不明)下でmodifierがたまに外れなくなるっぽい. つらい. nodoka 汎用キーバインディング変更ソフト「のどか」 一択. 窓使いの憂鬱の派生ソフトでシェアウェア(1,800円). modifierの置き換え・定義が自由, SandSのような複雑な状態もわずか一行で定義可能でそのキーリピートまでも設定可能. 公式ドキュメントも豊富でGUIエディタもある. なんでもできるしなんでもある. 開発も継続されていて正式にWindows10サポートされている. 1,800円だが有能すぎるので安い. 「AutoHotKe
Scala関西Summitお疲れ様でした. 自分はスタッフとして参加しつつlongで1つしゃべっていました. ひしだまさんの裏だったので1対1とかにならないか不安だったのですが意外と来て頂いたようでありがてぇありがてぇ. 「あれ…タイトルや資料に既視感が…」という方もいたと思うのですが, その通りです. 元々Scala関西勉強会で一度喋ったものなのですが, 委員長のきの子さんの強い要望(?)によりCFPを出して最終的に登壇することになりました. 時間を目一杯使いつつ最後のほうのスライドは端折りましたが実は計画通りです(あまりお行儀は良くないですが…). 「1発表スライド」としてだけでなく「完結した資料」としてまとめておきたかったんです(そのせいで文字も多めになっていたり). タスクに追い込まれれば追い込まれるほど変なところで潔癖症になるタイプ. scala.collection 再入門(改
「Dockerの中でDcckerを動かしたい」ということはよくあると思う. 主に2つのアプローチが存在する. dind(DockerinDocker)イメージを利用 sockをホスト-コンテナで共有する 今回は後者を取り上げる. なお, どちらの方法もセキュリティ的にやや難ありなので注意して使う必要がある. 以降, すべてのホストをA, 通常のコンテナをB, コンテナ内から呼び出されるコンテナをCとする. 利用方法は非常にシンプル. A-B間で「sock」と「dockerコマンドそのもの」をrun時にvolume経由で共有する. 以下, 簡単なサンプル. # on A docker run -it -v /var/run/docker.sock:/var/run/docker.sock -v `which docker`:/bin/docker alpine sh # on B which
第一話「なんだかホントに入社した気分です!」 8/1-9/30の二ヶ月間参加してました. 丸ビルのプレミアムフロアでした. すごい. そして皆さんにご報告があります. インターン開始直後のこのツイート インターン先がトイレもカードキー必須なので気を抜くとぞいになってしまう— amaya (@amaya382) 2016年8月2日 なんと一回も涼風青葉さんにならずに切り抜けました!!! やっていたこと メンターの @myui さんの下でHive上で動く機械学習ライブラリである Hivemall の開発を主に行っていました. なかなか慣れずに終始進捗がよくなかったのが心残りです… 具体的な内容はスライドを見ればわかるかもしれません. ちなみに今後もたまにPR投げようかなーと思っています(既に手元にはbranchが). (やたら枚数が多いですがアニメーションを分割しているだけです) Intern
このページを最初にブックマークしてみませんか?
『amaya382.hatenablog.jp』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く