port 80を開くためにはroot権限が必要だが、開いたあとはセキュリティーリスクを最小限にするために一般ユーザ権限に降格したい、というWebサーバをGoで書く例です。 【追記3】 下記の例ではLinuxで動作させた場合に不十分です。 Linuxではsetuidを呼び出したスレッドにしか効かないので、以下の例をそのままLinuxで動かすとsyscall.Setuid()は成功しますが、HTTPのHandlerでは別スレッドで動くことがあるため、rootのままで動作することになります。 methaneさんのコメントを参照ください rootで起動した状態で":80"をlistenして syscall.Setuid() で一般ユーザになり http.Serve()する package main import ( "net" "net/http" "syscall" "log" ) func m
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? エンジニア組織を強くするための本を出版しました Qiitaでエンジニアリングをめぐる様々なコミュニケーションの問題とその解決策や考え方を書いてきた。それらの背後にあるエッセンスをこの度書籍として出版するに至りました。 エンジニアリング組織論への招待 ~不確実性に向き合う思考と組織のリファクタリング この書籍は、エンジニアリングを「不確実性を削減する」という第一原理で捉え直し、様々なエンジニアリングとその間のコミュニケーションをめぐる現象を説明していくものです。 はじめに この記事は数百万行の動的型付き言語のWebアプリケーションのリファ
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? SurfacePro3買いました。なかなか面白いデバイスですね。 こころがぴょんぴょんするんじゃ~~ SurfacePro3を機に久しぶりにWindowsを触るという方もいらっしゃるかと思うので、Windowsでの開発環境構築まとめを書いてみます。タイミング的にタイトルにSurfacePro3を入れましたが、SurfacePro3特有の話はありません。 アカウント作成 いきなりですが、アカウント作成のときに注意点があります。ユーザー名に日本語を使ってはいけません。GNUツールの中には日本語パスやスペースを含むパスを考慮していないものが割
と私が勝手に思っているだけですが 早速それを紹介?ではなくメモります。 #理由 誰かが、情報発信をしないとダメかなと思い、気づいたメモとして残します。 ちょっと変わり種を紹介したかった 将来的に流行ったりした時に少しうれしいからです。 #JS 正確には、JavaScriptです そして、私はJSエンジニアではありませんが、初めてJSに触れたのは小学生の頃初めて買ってもらったWindows98のPCです。あの頃は意味もなく動いたりすることが面白くて仕方なかったのです。 今回は、そんな幼少の気持ちを奮い起こしたものを紹介します。 #それでは紹介 順番は適当です。見た方が面白いと感じたものを使っていただければという感じです。そして、一介のエンジニアたる私の独断と偏見でメモしてるだけですので、あまり内容は気にしないでください。ああ、JSも知らない残念なやつだと罵ってくださっても構いません、実際その
はじめに 関数型プログラミングとオブジェクト指向の抜き差しならない関係について整理して考えるという記事がkenokabeさんという方が挙げていて、拙著の 新人プログラマに知っておいてもらいたい人類がオブジェクト指向を手に入れるまでの軌跡について言及があったので、補考として挙げておく。 暗黙的状態と明示的状態 これまで、関数を「わかりやすくきれいに書く方法」とオブジェクト指向が「どのようにして生まれてきたか」について話してきた。 新人プログラマに知ってもらいたいメソッドを読みやすく維持するいくつかの原則 新人プログラマに知っておいてもらいたい人類がオブジェクト指向を手に入れるまでの軌跡 一見、それぞれ関係ないように思うかもしれないが、実は大きなテーマでつながっている。 『それは「状態」をどのように取り扱い単純化するか。』ということだ。そして、これがいわゆる関数型プログラミングとオブジェクト指
From Docker Meetup Tokyo yuguiさんが指摘するように、Dockerには2つのメリットがある。 コンテナ技術 差分ディスクイメージのソーシャルなシェア これらのうち、後者についてはDockerを触ったことにある方ならすぐに理解できるだろう。Dockerが普及した最大の要因、そしてDockerが新しかった点は、差分イメージのシェアやキャッシュによるビルド作業の簡単さである。まっさらな状態からアプリケーションスタックを構築する作業をごく短い時間で行え、環境構築のスクラップ&ビルドがとても容易になる。 しかし、大手各社が突如としてDocker界隈に参入し始めた要因は、それだけではない。このDockerのビルドの便利さを通じて、「コンテナ技術に対する世間のリテラシーがぐんと高まったこと」が、ブレークスルーなのである。みんながDockerに触り始めたことで、そのコンテナの便
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く