「tmux」を含む日記 RSS

はてなキーワード: tmuxとは

2020-03-27

[]プログラマーペアプロモブプロ採用している会社で働いて成長しよう

モブプロペアプロペアローテーション、ペア作業ダブルアサインメント、属人化対策?、離職対策?、転職対策認知資源決断疲れ?

プログラミングとは経営判断の集積である

ソースコードの一行一行は、経営判断のものだ。

どの部分を汎用的につくり、どの部分をやっつけで作るか、そして、どの部分をパフォーマンス優先でつくり、どの部分を可読性優先でつくるか

(中略)

ソフトウェア開発とは、経営意思決定の集積なのだから経営意思決定を外部の会社委託するというのは、「経営を外部の会社にやってもらうようなもの」だからだ。

もっと言うなら、自分会社の今後のビジネスポジションを、他社に決めてもらうようなものからだ。

外注を出された会社は、そのソフトウェア未来に実現するであろうビジネス価値犠牲にして、できるだけ少ないコストで作ろうとする。

ソースコードの一行一行が経営判断のものになる

ttp://fromdusktildawn.hatenadiary.jp/entry/20061003/1159869683

プログラムは全て決断である

ttps://bit.ly/2JzCggZ



ペアプロ 属人化 - Twitter検索

ペアプロ 属人化 - Google 検索

ペアプログラミングは意思決定苦痛を和らげる。

ペア作業を行うため仕事以外の事は一切できない(一人で作業しているとついついメールをチェックしたりウェブを見たりしてしまます

ttps://bit.ly/38ZlQwO

ペアプロ懐疑派だった僕が、実務でペアプロ導入して180度考えが変わった話

個人コード責任を持つのではなく、チームでコード責任を持つ組織にするべき」という考えに心を打たれた

ttps://qiita.com/YudaiTsukamoto/items/06b426f4dbee268d5035

問題 vs 私たちで、問題フルボッコにする

Mob Programming実施するとかなり心理的負担が少ない。

ttps://simplearchitect.hatenablog.com/entry/2017/06/19/080036

プログラミングをしていて、最も時間がかかるのは、「悩んでいる」時間だ。

かにどハマりするとか、初めての事、難しい事をやるときに、理解するのに時間がかかるとか。

それがMob Programmingでやると、いろんな人が寄ってたかって、いろんな目線解決を考えるので、詰まったり、ハマったりする事がなく、異常に早く終わる。

中略

それぞれがやったことを「レビュー」しなくても、そもそも常にレビューしている感じだから、そんなことも必要ない。

ttp://simplearchitect.hatenablog.com/entry/2017/06/19/080036

今はコードがお偉いさんなんだからMOBは雁首揃えろって話

ttp://d.hatena.ne.jp/essa/20170619/p1

成功する実践モブプログラミング

ttps://qiita.com/erukiti/items/21e77457bff641e01fe1

・難しい問題を解くのが早くなる

スキル標準化につながる

・サボらなくなる

ttps://twitter.com/nplusone/status/1118501170698276865



ペアプロを極めて最強の開発チームをつくる(1/4)ペアの組み方(翻訳

ペアのローテーション(選手交代)とは、しばらく共同作業を行った後で一方がストーリーから離れ、もう一方が残って、職場にいる他の誰かと作業を続行することを指します。この「残る人」はしばしばストーリーの「アンカー」と呼ばれます

ttps://techracho.bpsinc.jp/hachi8833/2020_03_19/89692

属人化をペアプロでどのように排除するか

ペアプロは、質の高いコードレビューでもありますヤフオク!の開発チームでペアプロを行う際には、プルリクエスト作成してコードレビューを挟むようなステップ存在せず、実装したコードレビューなしにそのまま本番コードマージしています

中略

ペアプロを行う上でお薦めなのが、毎日ペアを組み替えるペアローテーションです。毎日ペアを変えることで、知識情報を共有する速度を、加速度的に向上させられます

ttps://employment.en-japan.com/engineerhub/entry/2019/11/07/103000

ヤフー2012年10月から国民の祝日土曜日にあたった場合、前日の金曜日を振替特別休暇とする制度を始めている。

ttps://www.j-cast.com/2012/11/02152492.html

ヤフーでは勤続10年以上の社員対象に、2~3か月の範囲サバティカル休暇制度を導入しています

ttps://www.hr-force.co.jp/saiyogo/201904141702

ヤフー、全社テレワーク10月から正式移行

ttps://b.hatena.ne.jp/entry?url=https%3A%2F%2Fwww.nikkei.com%2Farticle%2FDGXMZO64345560Y0A920C2916M00%2F

リモートモブプログラミングという働き方

現在、kintoneの新機能開発メンバーは6拠点オフィス分散し、また多くのメンバーカジュアルに在宅勤務を活用するリモートチームとなっています。 また2018年から2年以上、全ての設計実装タスク原則モブプログラミングで行っています

ttps://blog.cybozu.io/entry/2020/02/28/080000

サイボウズ、離職防止の切り札は「出戻り歓迎」

ttps://s.nikkei.com/2vJsvYx

自分休暇

ttps://dot.asahi.com/wa/2019062700013.html?page=3

ペアプロと育休の取得しやすさの関係について

SPEEDAの開発チームは、すべてのチームがほぼ100%ペアプロ作業していますペアプロのものについての詳しい説明割愛させていただきます) 。

そしてプログラミング以外(例えば採用活動)でもペア作業します。

更にペアを組むメンバーを一日のうち何度も入れ替えており、様々なメンバーと様々な開発ストーリーに取り組むことになります

ttps://tech.uzabase.com/entry/2019/10/15/190000

ジョイインク (Joy, inc.) のメンローイノベーションズに行ってきた

ttp://kawaguti.hateblo.jp/entry/2017/08/15/095840

プログラマーは全員ペアを組んで仕事をする

ttps://www.slideshare.net/yattom/ss-79372905

ビズリーチでは、後輩エンジニアは、業務関係することであれば先輩エンジニアに対してペアプログラミングをいつでも申し込むことができます。先輩のライブコーディングを見る機会にしたり、実装中のタスクで分からないところがあれば解決法を一緒に考えたりします。

ttps://design.bizreach.co.jp/archives/2447

ペアプロでやるレビュー、言うならばペアレビューです。

ttps://medium.com/@oogatta/一日8時間-60日間ペアプロしてみて思った日常ペアプロのコツ-4753381b0467



知識の塔」と呼ばれる、「この人じゃないとできない! いなくなったら困る!」という状況を、ペア作業を通じて常に解消し続けているのです。

ttps://codezine.jp/article/detail/9980

うまくトラックナンバー1を解消できた時にやったことの1つが「ペアプログラミング」でした。

ttps://blog.fenrir-inc.com/jp/2013/02/trucknumber.html

ペアプログラミングによる暗黙知の共有は、ハネムーンナンバーを下げる効率のよい方法だ。

ttp://methane.hatenablog.jp/entry/20060501/1146492679

ttps://ja.wikipedia.org/wiki/ダンバー数

コミュニケーションパス公式

ttps://blog1.mammb.com/entry/20101123/1290544568

ガウス公式

ttp://pg-boxer.cocolog-nifty.com/nikukyu/cat21300456/index.html



なぜ自分は「ペアプロ全面導入」という考えに至ったのか

ペアプロ一般的に言われるようにレビューの手間が減るとかコード品質が向上するとか属人化を防ぐのに良いとかの利点がありますが、自分は「その時間集中力」こそが実は最大の利点

ttps://inside.pixiv.blog/edvakf/3182

8時間気が抜けないので、結果的生産性が上がる

ttp://www.ketancho.net/entry/2018/02/22/080000



たぶんこれが生産性の鍵なのだ: ただ始めること。

ペアプログラミングが機能するときにそれがうまくいく理由は、たぶんペアプログラミング セッション相棒スケジュールするときには取りかかるために2人が力を合わせるからだ。

ttps://ajiyoshi.hatenadiary.org/entries/2005/08/06



ペアプログラミングの1ドル価値

ペアプログラミングをする価値は、最初場所エラーが起きるのを防ぐとても小さな軌道修正という形でやってきます

ttps://www.infoq.com/jp/news/2009/07/dollar-value-of-pair-programming/

コード1行作るのに28ドルかかる、だから…」

ttps://b.hatena.ne.jp/entry/s/tech.nikkeibp.co.jp/it/article/Interview/20121210/443162/

ジュニア採用しない連中はシニアに値しない

ジュニアシニアエンジニアペアを組ませると二人のシニアエンジニアと同じだけの価値を発揮すると言える。しかコストシニア二人の場合の 75% しかからない。もしあなたのゴールが最小の費用で最大の生産性を発揮することだとしたら、組織の中でジュニアシニアの組み合わせを分子レベルでの最小単位とすべきだ。

ttps://b.hatena.ne.jp/entry?url=https%3A%2F%2Fportalshit.net%2F2018%2F10%2F02%2Fwe-should-hire-junior-engineers

二人で一緒に開発するペアプログラミングに近い状態

ttps://kuranuki.sonicgarden.jp/2019/10/casual-talk.html



ペアで働くと効率4倍

ttps://web.archive.org/web/20070210094344/http://business.nikkeibp.co.jp/article/skillup/20061121/114149/

ペアプロと開発効率関係で言うと、「100%ペア」と「100%ソロ」で比較した場合、単純な「稼働率」ではソロのほうがもちろん多いです。ただ、単位時間内にどれだけのコードが本番リリースされていくかを「生産性」と捉えると、スループットや仕掛かりの時間考慮する形になり、結果的ペアのほうが生産性が高くなるんですね。

ttps://codezine.jp/article/detail/10264

2人の労働者は1人よりも二次関数的に優れています

ttps://b.hatena.ne.jp/entry/s/twitter.com/hackernewsj/status/1324534523388899328



Cloud9でモブプログラミングの環境を作ってみる

ttps://qiita.com/herohit-tool/items/675ccbd52edea39951ab

上等なオンラインペアプログラミング環境

ttps://ogihara-ryo.github.io/vscode-live-share

関東関西リモートAtomのTeletypeとSlack通話機能

ttps://b.hatena.ne.jp/entry/s/twitter.com/waritocomatta/status/948779300576096256

tmuxを使って画面を共有する

ttp://tkengo.github.io/blog/2012/10/30/lets-pair-programing/

WEB+DB PRESS Vol.102

特集1

はじめてのペアプロモブプロ

メキメキと人が育ち,プロダクトの質を高める

ttps://gihyo.jp/magazine/wdpress/archive/2018/vol102

.

戦闘機の編隊飛行において、二機一組を最小単位とする戦術

ttps://ja.wikipedia.org/wiki/ロッテ戦術

1業務に2人を配置して23連続黒字になった秘密

ttps://bit.ly/2MylBjs

ダブルアサインメント(一業務二人担当制)|業務を属人化させない働き方

ttps://times.mazrica.com/column/merit-for-double-assignment/

ダブルアサインメントとマルチタスク

ttp://wakabakeiei.com/2017/11/06/double-assignment-multi-task/

仕事が「属人化」していることが、問題の根幹なのだと気付きました。

チームメンバーの誰が何をしているのか、仕事プロセスを可視化して、仕事個人でなくチームのものにする

ttps://www.persol-group.co.jp/ing/2020/20200428_5439/index.html

「仕組み」を作った社長が生き残る!: トップ付加価値の創出に時間を使え!

経営者は仕組みづくりに専念しろ

人材会社資産として残らないが仕組みは会社資産として永遠に残る

ttps://www.amazon.co.jp/dp/B010JM64M6/

労働者仕事を分業化すれば労働者資本家依存する。

マルクス

ttps://twitter.com/mmoto001/status/1076420634660327424



従業員トレーニングをして、よそへ行ってしまったらどうするのか」という疑問に対するStanger氏の答えは、「従業員トレーニングをしないで、彼らが会社にとどまってしまったらどうするのか」ということになる。

ttp://japan.zdnet.com/article/35058310/

従業員の才能を爆発させるには「会社に人を長く留める」戦略を捨てる必要がある

ttps://b.hatena.ne.jp/entry/s/gigazine.net/news/20171005-superboss/

「弱いつながり」理論でいうと、SNSでつながる友だちは、それこそFacebookの友だちが3,000人規模で、国内スタートアップ経営者なら、たいていの人に直接または1hopでつながることができる。

ttps://techplay.jp/column/366

リンク

エンジニアリング組織論への招待

~不確実性に向き合う思考組織リファクタリング

ジョハリの窓心理的安全性

ttps://gihyo.jp/dp/ebook/2018/978-4-7741-9663-3

心理的安全性ガイドライン(あるいは権威勾配に関する一考察

ttps://qiita.com/hirokidaichi/items/5d8c4294083d85654a04

組織雰囲気スペースシャトルコロンビア号」を爆発させた!?

ttps://note.com/kaorutamura/n/n212e1a4be8f5

失敗をさらけ出す勇気を持つためにはどうしたらいいのか

無知だと思われる不安 => 質問をしなくなる

無能だと思われる不安 => 支援を求めなくなる

ネガティブだと思われる不安 => 批評をしなくなる

邪魔をする人だと思われる不安 => フィードバックを求めなくなる

ttps://tech.andpad.co.jp/entry/cafe



エージェンシースラック(agency slack)とは、エージェントが、プリンシパル利益のために委任されているにもかかわらず、プリンシパル利益に反してエージェント自身利益を優先した行動をとってしまうこと。

ttps://ja.wikipedia.org/wiki/プリンシパルエージェント理論

エンジニアリング組織論への招待」読後メモ自分用)

コントロールできるもの/できないもの

「誰かが誰かに依頼する」関係になっていると、エージェンシースラックが生まれ

ttps://qiita.com/yrockfield/items/dbc8aca6b95e45b8d8af



ウォーターフォールを世に広めたとされる米軍アジャイルに移行中という話

ttps://qiita.com/YankeeDeltaBravo225/items/9f08c0eccd48f00b9f9e

「ウォータフォールは一切メリットがないので止めておきなさい」

ttp://simplearchitect.hatenablog.com/entry/2016/06/20/080807

米国国防総省では、ウォーターフォール開発による調達の失敗経験をもとに、2000 年からアジャイル開発の適用義務化しています

ttps://qiita.com/nskydiving/items/6dfd6b259b9dce4cae0c

サザーランド氏によると、

2020-03-16

さようなら、最高ではなかったが最愛だったバタフライキーボード

MacBook Pro 16インチモデルを買った

かいラップトップ正義

tmuxペインを分割しまくっても一行に表示できる文字が多い

でも今日は画面の大きさやスペックの話じゃない

キーボードの話をしたい

16インチモデルキーボードはシザーに変更された

そう、シザーだ

Appleも誇らしげに16インチモデルはシザーキーボードだと喧伝している

僕以外のみんなはこれまでの「バタフライキーボード」が大嫌いだったようだ

最初モデルタイプが安定しなかったし、現モデルですら壊れやす

嫌われるのも当然だ

だが僕はそんなバタフライキーボードの「いくつか」の欠点に目をつむっていた

Apple信者からではない

バタフライキーボードはとんでもなくストロークが浅いからだ

ストロークの浅いキーボードが好きだ

日中キーボードを叩き続ける仕事趣味を持っているので、指や手首にはできるだけ負担をかけたくない

いまでは1mmでも深すぎると感じる

公称値はないが、MBPのバタフライキーボードストロークは0.5mm前後だという

すばらしい

こんなに疲れないキーボードは始めてだった

から最愛だった

いまは君がいなくなって寂しいし、つらい

世の中のキーボードにこだわりのあるみなさんは、どうも深いストロークメカニカルキーボードのようなしっかりとした打感が好きらしい

これはもう完全に好みの問題からなにも文句は言えないが、僕が好きだったバタフライキーボードみたいな浅くて指にレスポンスがあるかどうかギリギリキーボードももっと増えてほしいと思う

2020-02-05

ssh接続したサーバ上で開発をしているけど、tmuxを使って画面分割は、ローカルで分割するべきか、ssh先でtmuxを起動して分割すべきか問題

ローカルtmuxを動かすと、新しいペインを開くたびにsshに再度接続しなくちゃいけなくてめんどくさい。

ssh上でtmuxを動かすと、ローカルでの作業の際に開いた別のターミナルウィンドウとの行き来の際に、クリップボード連携ができない。

2019-06-12

今こそw3mを使おう

w3mが(個人的に)アツい。

https://ja.wikipedia.org/wiki/W3m

テキストベースWebブラウザです。

昨今のサイトを見るにはとても不便で、操作性も何もかも非効率だけども、ブラウジングがとても新鮮なものになるよ

いかポエム

CDが売れなくなっている昨今、EPLPとかレコード好調らしい。

なんかそんな記事を見た中に、

「もはや音楽聴くことに娯楽的意味がなくなってしまい、CDセールスが衰退、アーティスト音楽のみで身を立てることが困難になっている中で、

音楽聴く”ことを愛でるようになった人がいる。

ライブに行き生演奏を目で体で聴くことで原初的感動を受ける人や、繊細なアナログメディア音楽享受する”儀式行為”により、新しい価値見出している人がいるため」

というようなことが書いてあって、なるほどなあと思った。

効率無視した献身的行為、ある種の狂信とも言うべき自慰的な活動こそが、拡散してしまいがちなアイデンティティを収斂するための一助になっていると考えているので、

それが音楽であれ、ピュアオーディオであれ、ルリ儀式筋トレ政権批判ガチャ課金、なんにでも没頭できるものが見つかるということはとても喜ばしいと思う。(誰かに迷惑をかけなければ)

音楽ほど歴史が長くないが、Webブラウザも年々大きく変動している最中で、研究者ツールだったもの大衆向けに整備され、一般化されるコンテンツに合わせてWWWの利用も複雑化している。

SNSと高度に連携したスマホファースト無味乾燥に大量消費されるコンテンツを見ていると、WWWを見るという行為を愛で、儀式行為価値見出しても良いように思う。

きっかけとしては何年か前のYAPCで、

インターネットを介したコミュニケーションでは情報が多すぎる、たくさん情報を受け渡しすると疲弊する。

情報量を極限まで削ることで、原初的な伝わったことが嬉しいという気持ちを得られる。

→だからモールス信号を使う」

といったネタのようなLTを見たこと。

ここからw3m適当Webブラウジングをするのが習慣になった。

原理主義というならLineModeBrowserとかLynxとかを選ぶべきなのだろうが、

日本発というアニミズム的発想(とドキュメントの多さ)からW3mを選んだ。

何よりも、w3mは「WWW-wo-Miru」の略だというと、上にあげた「WWWを見る」という行為儀式意味を持たせるためには必要な要素だと思われた。

最近だとBrow.shという画像も何とかテキストで表示してやろうという意欲的なものもあるんだけども、これは端末の解像度依存が大きいため断念。

というか画像必要であれば普通ブラウザ環境も使うという腥っぷり。

twitterは、twtermを使ってこれも余計なTLチェックが不要となった。

というような落書きを、適当EC2インスタンス上のw3mから書いている。

EC2tmux + w3m + twterm という環境をほぼ放置してあり、コマンド一発でほぼ同じ環境無料AWSを乗り継いで利用できるようにしてある。

はてブテキストベースで閲覧する方法を探している。それがあれば、より原初的感動を持ってクソのようなコメントを投げ合えるパラダイスが待っていることは自明である

2018-10-10

TMUXmacターミナルは何が違うの

Sessionはウィンドウ

Windowはタブ

Paneは画面分割

違いがよくわからん

2018-10-08

通信速度は出てるのにレイテンシがひどい

SSHでつないで作業するのには後者のほうのレスポンス大事なんだけど、マジでやってらんねーなこれ

tmuxの表示が何度もバグってウザいったらないわ

2017-09-11

https://anond.hatelabo.jp/20170910205249

まじな話をすると、N予備校プログラミング入門コースやるのがオススメ

https://www.nnn.ed.nico

一日8時間勉強時間があるなら、だいたい一ヶ月で終わる内容。

月額1000円だけどしっかり勉強すれば一ヶ月の無料間中に終わると思う。

もともとN高等学校のノンプログラマーの生徒をWebエンジニアとして就職させるために作られたカリキュラム講師曰く去年はこれで二人エンジニア就職を決めたらしい。

内容も相当親切に説明していて、プログラミングで何か作るだけじゃなくて、就職必要な環境構築やセキュリティまでみっちりやる。

http://qiita.com/sifue/items/7e7c7867b64ce9742aee#%E3%82%B3%E3%83%B3%E3%82%BB%E3%83%97%E3%83%88%E3%82%92%E3%82%82%E3%81%A8%E3%81%AB%E6%A7%8B%E6%88%90%E3%81%95%E3%82%8C%E3%81%9F%E3%82%B3%E3%83%BC%E3%82%B9%E3%81%A8%E5%86%85%E5%AE%B9

講師が書いてる入門コースで習うことがまとめ。テキスト教材もあるけど授業も1項目を2時間で説明している。授業は週2の生放送とそのアーカイブがある。

↓みたいなことが学べる

----

Webプログラミング入門コース

Web ブラウザとは (Chrome, デベロッパーコンソール, alert)

はじめてのHTML (VSCode, HTML, Emmet)

さまざまなHTMLタグ (h, p, a, img, ul, tableタグ)

HTMLで作る自己紹介ページ (HTMLタグ組み合わせ, コンテンツ埋め込み)

はじめてのJavaScript (JS, ES6, エラー)

JavaScriptでの計算 (値, 算術演算子, 変数, 代入)

JavaScript論理を扱う (論理値, 論理積, 論理和, 否定, 比較演算子, if)

JavaScriptループ (ループ, for)

JavaScriptコレクション (コレクション, 配列, 添字, undefined)

JavaScript関数 (関数, 関数宣言, 引数, 戻り値, 関数呼び出し, 再帰)

JavaScriptオブジェクト (オブジェクト, モデリング, プロパティ, 要件定義)

はじめてのCSS (CSS, セレクタ, background-color, border)

CSSを使ったプログラミング (transform, id, class)

Webページの企画とデザイン (企画, 要件定義, モックアップ, 16進数カラーコード)

診断機能の開発 (const, let, JSDoc, インタフェース, 正規表現, テストコード)

診断機能組込み (div, 無名関数, アロー関数, ガード句, truthy, falsy)

ツイート機能の開発 (リバースエンジニアリング, URI, URL, URIエンコード)

Linux開発環境構築コース

LinuxというOS (VirtualBox, Vagrant, Ubuntuインストール, OS, CUIの大切さ)

コンピューター構成要素 (ノイマンコンピューター, プロセス, lshw, man, ps, dfの使い方)

ファイル操作 (pwd, ls, cd, mkdir, rm, cp, mv, find, ホストマシンとの共有ディレクトリ)

標準出力 (標準入力標準出力標準エラー出力パイプgrep)

vi (vimtutor)

シェルプログラミング (シバン, echo, read, 変数, if)

通信ネットワーク (パケット, tcpdump, IPアドレス, TCP, ルーター, ping)

サーバークライアント (tmux, nc, telnet)

HTTP通信 (http, https, DNS, hostsファイル, ポートフォワーディング)

通信をするボットの開発 (cron, ログ収集)

GitHubウェブサイトの公開 (GitHub, リポジトリ, fork, commit, 情報モラル)

イシュー管理とWikiによるドキュメント作成 (Issues, Wiki)

GitとGitHub連携 (git, ssh, clone, pull)

GitHubへのpush (init, add, status, インデックス, commit, push, tag)

Gitのブランチ (branch, checkout, merge, gh-pages)

ソーシャルコーディング (コンフリクト、プルリクエスト)

Webアプリ基礎コース

Node.js (Node.js, nodebrew, Linux, REPL, コマンドライン引数, プルリク課題)

集計処理を行うプログラム (集計, 人口動態CSV, Stream, for-of, 連想配列Map, map関数)

アルゴリズムの改善 (アルゴリズム, フィボナッチ数列, 再帰, time, プロファイル, nodegrind, O記法, メモ化)

ライブラリ (ライブラリ, パッケージマネージャー, npm)

Slackボット開発 (slack, mention, bot)

HubotとSlackアダプタ (hubot, yo)

モジュール化された処理 CRUD, オブジェクトライフサイクル, filter)

ボットインタフェースとの連携 (モジュールのつなぎ込み, trim, join)

同期I/Oと非同期I/O (同期I/O, 非同期I/O, ブロッキング)

例外処理 (try, catch, finally, throw)

HTTPサーバー (Web, TCPとUDP, Webサーバーの仕組み, Node.jsイベントループ, リスナー)

ログ (ログ, ログレベル)

HTTPのメソッド (メソッド, GET, POST, PUT, DELETE, CRUDとの対応)

HTMLフォーム (フォームの仕組み, form, input)

テンプレートエンジン (テンプレートエンジン, jade)

HerokuWebサービスを公開 (Webサービスの公開, heroku, dyno, toolbelt, login, create, logs)

認証利用者を制限する (認証, Basic認証, Authorizationヘッダ, ステータスコード)

Cookie を使った秘密匿名掲示板 (Cookie, Set-Cookie, expire)

UI、URI、モジュール設計 (モジュール設計, フォームメソッド制限, リダイレクト, 302)

フォームによる投稿機能の実装 (モジュール性, textarea, 303)

認証された投稿の一覧表示機能 (パスワードの平文管理の問題, 404, テンプレートのeach-in)

データベースへの保存機能の実装 (データベース, PostgreSQL, 主キー)

トラッキングCookieの実装 (トラッキング Cookie, IDの偽装, Cookie の削除)

削除機能の実装 (データベースを利用した削除処理, 認可, サーバーサイドでの認可)

管理者機能の実装 (Web サービス管理責任, 管理者機能の重要性)

デザインの改善 (Bootstrap, レスポンシブデザイン, セキュリティの問題があるサイトを公開しない)

脆弱性 (脆弱性, 脆弱性で生まれる損失, 個人情報保護法, OS コマンド・インジェクション)

XSS脆弱性対策 (XSS, 適切なエスケープ処理, リグレッション)

パスワード脆弱性対策(ハッシュ関数, メッセージダイジェスト, 不正アクセス禁止法, パスワードジェネレーター, 辞書攻撃)

セッション固定化攻撃脆弱性対策 (セッション, セッション固定化攻撃, ハッシュ値による正当性チェック)

より強固なセッション管理 (推測しづらいセッション識別子, 秘密鍵)

CSRF脆弱性対策 (CSRF, ワンタイムトークン)

安全なHerokuへの公開 (脆弱性に対する考え方, HTTPの廃止)

Webアプリ応用コース

Webフレームワーク (Express.js, フレームワーク導入, 簡単なAPI, セキュリティアップデート, Cookie パーサー, ミドルウェア, 外部認証, ロガー)

ExpressのAPI (app, Properties, Request, Response, Router)

GitHubを使った外部認証 (Passport, OAuth)

スティングフレームワーク (Mocha, レッド, グリーン, リファクタリング)

継続的インテグレーション (CircleCI)

クライアントフレームワーク (Webpack, Chrome 以外のブラウザでもES6)

DOM操作フレームワーク (jQuery, jQueryアニメーション, this)

AJAX (jQuery.ajax, クロスドメイン, 同一生成元ポリシー, x-requested-by, CORS)

WebSocket (WebSocket, WebSocketの状態遷移, Socket.io)

RDBとSQL (DDL, DCL, CREATE, DROP, INSERT, DELETE, UPDATE, WHERE)

データモデリング (リレーショナルモデル, 正規化)

テーブルの結合 (外部結合, 内部結合, 片側外部結合, JOIN ON)

インデックス (インデックス, 複合インデックス, Bツリー)

集計とソート (SUM, COUNT, ORDER BY, GROUP BY)

「予定調整くん」の設計 (要件定義、用語集、データモデル、URL設計モジュール設計、MVC)

認証とRouterモジュールの実装 (Mocha, supertest, passport-stub, モックテスト)

予定とユーザーの保存 (セキュリティ要件, UUID, 複合主キー)

予定とユーザーの一覧の表示 (非同期処理, Promise, then)

出欠とコメントの表示 (入れ子の連想配列, Promise.all, 子どもからデータを消す)

出欠とコメント更新 (Promiseチェイン, リファクタリング)

予定の編集と削除 (要件の衝突, 関数再利用)

デザインの改善 (this, グローバルオブジェクト)

セキュリティ対策と公開 (X-Frame-Options, Heroku環境変数)

2017-05-08

powershellを覚える気がないので、VirturalBoxでUbuntuを動かしその中でBashを書くと、vimtmuxも使えて快適。

今のところ問題は改行コードの違いの扱いが煩わしい。

2016-06-27

Windows Subsystem for Linux ひさしぶりに触ったらだいぶまともになってた

リリース直後だと apt-get update && apt-get upgrade でそのまま壊滅的に環境が壊れるという状態で話にならなかったのだが、

現状残っている問題点としては

あたり。

Mac 上で Linux サーバーで動くアプリを作ることが出来るぐらいには Linux サーバーで動くアプリを作れるようになっている気がする。

2016-04-18

出る杭を打つ技術

若者の成長曲線は半端なく、おじさんエンジニアは日々恐怖を覚えます

出る杭はちゃんと打っておきましょう。

環境の弄りがいのあるツールを教える

Emacs, VIM, zsh, tmuxなど…設定のいじりがいのあるツール理想環境を追い求めても終わりはなく、コンフィグはどんどん膨れ上がるばかりです。

それらを「一流のプログラマは、一つの道具にこだわりとことん使い尽くすもんだぜ」とでも言って、ずっとDotfilesのリポジトリばかりいじるようになってくれれば、彼らがプログラミングに費やす時間は減るはずです。

バイナリアンにさせる

いくらアプリケーションが作れても、低レイヤのことが分からないとダメだと刷り込みます

プログラムがどうやって起動するか分かってる? えっ、mainを書けばそれが呼ばれる? あのなぁ、_startというのがあってだな…」

無駄に低レイヤに詳しいおじさん力を活かして、あたか高水言語でオレすげーしてるのは、お釈迦さまの手のひらの孫悟空みたいなものだと、思わせていくのです。

そうこうして、若者たちバイナリエディタを眺めて、「ふむふむこのファイルは〇〇だなっ」などと口にするようになったら儲けものです。高機能IDEを使うよりも、バイナリエディタを愛用しそこに時間を使うようになるでしょう。

安定しないものに飛びつかせる

安定したプロダクトは、あっという間に習得してしまい、我々おじさんたちが安定するまで四苦八苦して身につけたノウハウは、「あっ、いまはそんなことしなくても大丈夫っすよ。昔は大変だったんすねw」と一笑に付される恐れがあります

Javascript界隈など、安定しないプロダクトを積極的に使わせるように導きましょう。そこでGitHubにIssuesを上げまくるようになれば、時間を費やさせることができるでしょうし、さらには「このプロダクトはいつまでたってもクソだから、オレがもっとイケてるやつを作ることにしましたよー」なんて方向に向かわせることができれば、しめたものです。

作業でやればすぐ済むことをツール化させる

若者作業スピードの向上はかなりのものです。おじさんたちの体力と作業スピードでは到底かないません。

そこで、「若いんだからそんなこと手作業でやるんじゃない。ツール作っておけば、次からは一瞬で済むようになるだろうっ」と言ってやりましょう。若者ツールを作っている間に着々と作業すませてやるのです。

イベントに登壇させる

プレゼンというのは慣れてないと、激しく時間を使います若者にはイベントの登壇機会を積極的にあたえ、そこで時間を使わせてやりましょう。

「ここで、〇〇って質問きたらどうする? えっ、考えてなかった? いやー、じゃあこれも調べておかないとねぇ」

なんて、いいながらレビューしてあげて、どんどん深みにはめてやりましょう。

2016-01-27

ええ、最初は軽い気持ちだったんです。

ええ、最初は軽い気持ちだったんです。型もなくて簡単だからって…。phpをやるようになって から確かに気分は良かったんですよね。

でもそのうちphpだけじゃ足りなくなってくるんですよ。javascriptのような流行ものにも手を出したりして。そうするとcsshtmlだけなんかじゃもう物足りないんですよ。

そのうちpythonrubyなんていういわゆる”スクリプト系”ですか?流行のものにはほとんど手を出してしまっている状態で。コストが安いじゃないですか?手を出しやすいんですよね。

node.jp?やってましたね。あの頃みんなハマってましたよね。

だんだんそれらなしでは生活できなくなってしまって。立ち上げているのはほとんどCUI画面ですよね。

ええ、端末一つでは足りないのでtmuxscreenなんかのマルチプレクサを使ったりしてね、もう完全に中毒症状が出ていたんですよね。vimrcをいじるようにもなっていてね。一日中vimscript書いては悦に浸って、考えるとちょっとあれですよね。

そのころはいつでもやめられると思っていたんですよ。

でもjavac#に手を出してしまったんです。phpとかrubyなんかよりはやっぱり重量感がありますよね。IDEも何個も試してみたり、vimだけで環境を整えようとしたり、結構無茶しましたよね。

テストもいっぱい書いて、なんでこんな辛いことしてるんだろうとか。

そして、みんなそうなんのかもしれないけど、やっぱりc++に手を出すことになってしまって。もう強すぎて今までのものとは全然違いますよね。でもこの頃には副作用も出ていたんです。

あれオブジェクト指向ってなんだっけってね(笑)テンプレートリフレクション?混乱しますよね。でもだんだん慣れてくるですよね。もう後戻りできないところまで来ちゃったかなとか思いますよね。

今では中毒症状のせいか幻聴も聞こえてますね。モナドモナドって。なんか良くわからない言葉が聞こえてます

抜けられる自信は無いですね…。今でも一日に10時間以上はやっていますから…。

2016-01-13

tmux文字計算を直してくれる神は日本はいないの?

英語読めないけど多分修正に乗り気じゃないってことだよね。

https://github.com/tmux/tmux/issues/195

地球の皆!オラに全角記号を打たせてくれ!

2015-12-22

最近vim偏重主義に思うこと

ここ2,3年くらい、Vimが妙に流行っている。はてブqiitaでもVim関連のページが出れば大量にブクマがつくし、「俺はVim派だから」みたいな発言大学だったりtwitterだったりでもみる。

しかしその実、世間に出回る「vim tips」みたいなのをみると、cやr,はたまたw,$,0,..など超がつくほど基本的ものしか載っていない。

なんでこんな常識的ものにこんなにブクマつくの???っていっつも驚く。

昔はvimに憧れるワナビーブクマをつけてるのではないかと思っていたが、どうやら今のネット界隈では「vim派」と言って通ぶることが一種ステータス?になっているのではないかと思うようになった。

ちょっと前に流行ったvim pluginブームもびっくりした。vimあくまでもIDEなんていらないスクリプトを書いたり、CUIでエディットしたい時に使うものだろう。

ものには使いみちというものがある。文章、少なくとも日本語Vimに向かないし、Javaの開発ならeclipseですらvimよりよっぽど生産性が高い。

vimにpluginなど入れて喜んでいる一部の人達をみると、やはりvimで通ぶっているだけではないかと思えてしまう。

.vimrcは長けりゃいいっていうものではない。それがemacsに対するvim美徳ひとつではなかったのか。

そもそも、vim人口が見かけ上増えているにもかかわらずemacs人口が増えていないのがおかしい。どうも最近vim派の人たちはemacsをあまりうまく使えていないようである。(俺のまわりだけかもしれないが)

昔のhackerはエディタ戦争なんて言いながらもお互い両方のエディタを使えたものだ。大体がshellでset -o viなんてしたら使いづらくて仕方がない。shellはctrl-aで先頭に戻るし、ctrl-rで履歴検索をするものである

そもそもエディタ戦争なんて洒落にすぎないんじゃないかと個人的には思っている。viEmacsは基本教養である。どちらかしかできないのは文盲のようなものである

いつからvim界隈はこんなに歪になってしまったのか。

vimvim言ってブクマしてるみなさん、vimtutorは起動したことありますか?Vim関連の記事100個ブクマするよりよっぽど有用です。

Do one thing and do it wellって知ってますか?一つのプログラムでなんでもしたいならwordかVSで十分です。無理してviを使う必要はないです。

俺はまだLinuxを使い始めて10年くらいだけれど、エディタvi(m)一筋だった。

それだけに、今のviを取り巻く環境は悲しい。

何がいけなかったのだろうか。

コメントをもらった。同意してくれる人がいてうれしい

あとvivimがうんぬんというブコメありましたが、逆に今日vivimを使い分けることがあるんでしょうか…?

(もちろんインストール直後のdebianとかだとvim.tinyしか入ってないけど)

普通/usr/bin/viってvim.basicを指してることが多いと思います。もしvim.tinyを指していたらごめんなさい。

てかaliasなりupdate-alternativesみたいなの使われたほうがいいのでは…?

id:akanehara増田はじめてだからよくわかんないけどブコメに返すのこれでいいの?)

いやね、俺はNeoなんちゃらとかなんちゃら.vimとかのプラグイン流行りまくってるのどうかと思うんよ。

vi使いたくてあんなゴタゴタした画面分割するならtmuxscreenで別タブにシェル開けばいいしそのほうが拡張性高いじゃん…っていう。

それかVSなりIntelliJで(ちなみに俺はeclipse使います微妙disったけど)

あとはSIGSTOP(てかSIGTSTPか)で止めるのもよい使い方だと思う。

とにかくこれからviなりunixを使い始める人達がああい害悪に影響されてほしくない。Neoほげほげよりtmuxとかctrl-zのほうがのちのちず~~~っと役に立つから

vi流行ること自体はいいと重いますemacsもっとはやって欲しいです。nanoは即update-alternatives --config editorするんで知りません

と思ったらなんかみなさんいろいろ考察してくださっていますが、今やviクラスタunixクラスタなのか…

なんてこったい

id:Lycoris_i

TeXは確実にGUIのほうが使いやすいよ。俺はTeXstudioだけど、シェアウェア買ってる人もいるね。特に仕事道具にしてる人は。

vimじゃあPDFからジャンプとかできないから校正の時とか使いづらいことこの上ない

id:FantasyZone3, id:lbtmplz

一理ある

id:SndOp

俺も割と同じ意見だよ。煽りとかじゃなく。

問題vim scriptelispに劣ってるところだと思う。

言語プラットフォームとしてみたときやっぱりemacsには一日の長があるよ

なのにpluginとか言って喜んでるのはなんか違うと思うなあ。

2014-04-22

サーバーエンジニア? には何年ぐらいでなれるの?

俺はずーーーーとWindowsアプリを作ってきた。

iアプリとか、iOSとかAndroidアプリも作った。

大体20年ぐらいクライアント側のアプリをずっと作ってきたおっさんだけど、ここ1年ほど前にサーバー側に移った。

今までずっとWindowsで作ってきたから、何もかも新しいことばかり。

Macで開発するようになって、SSHTMUXも覚えた。

LinuxFreeBSDのどっちがいいかわからないからCentOSFreeBSDの両方で開発している。

Shellスクリプトもちょこっとわかるようになった。

今は主にErlangで0から開発した数十台に分散して動くサーバー運用している。

言語を覚えるのは苦ではなくて色んな言語を使うことができるけど、OSはなんだか別な感じがする。

今日FreeBSDOpenSSLアップデートをしたらサーバーに繋がらなくなって、なんかpsshとかも動かないし、もうわけわからなくて全部再インストールすることにした。

からないなりにいろいろ頑張って実際にサーバー運用しているけど、知識の足りなさを実感している。

俺はもう40代から、やっぱり脳みそがだめなのかなぁ、とか思いながら今自棄酒飲んでいるところ。

今、第一線で活躍している人はだいたい何年ぐらいでまともに”使える”ようになったんだろうか?

教えてほしい。

2013-11-04

言語関係なくおすすめ出来るプログラマー向けツール 5+α

今までプログラマーをやってきて、状況や環境に左右されず有用だったツールを書き残しておく。

基本的に Windows, Mac どちらでも動作するもの


1. VirtualBox

https://www.virtualbox.org/

ローカル PC 上に別の OS (LinuxWindows) を動作させる事ができるツール。複数の OS を同居させる事ができるので、自分趣味用のサーバ仕事用のサーバを分けて管理したりできる。昔自分Linux勉強をした時は、メイン PC とは別にサーバPC を買ってきて設定していたけれど、VirtualBox があればそんな面倒な事をしなくても済む。今は VirtualBox を更に簡単に設定できるたツールもあるみたいなので、それを使うのも良いかもしれない。


2. パスワード管理ツール

名前の通りパスワード管理するためのツール。1Password https://agilebits.com/onepassword か KeyPass http://keepass.info/ が良いと思う。サーバサイドのプログラムを始めると、sshデータベース等、様々なアカウント管理する必要が出てくる。root パスワードを忘れた時に、他の人がそれを覚えている保証は無いので保険としてぜひ導入して置いた方が良い。


3. プログラミング向けエディタ

何でも良いので、とりあえず汎用プログラミング向けエディタを使う事をお勧めする。Sublime Text http://www.sublimetext.com/Eclipse http://www.eclipse.org/Vim http://www.vim.org/Emacs http://www.gnu.org/software/emacs/ あたり。Linux に関わるのであれば、VimEmacs どちらかは習得しておいた方が良いが、初期学習コストは高い。EclipseJava 以外の言語にも多数対応していて機能豊富なので、最初はここから始めるのが良いかもしれない。もし Eclipse も難しいと感じたら、より普通テキストエディタ寄りの Sublime Text から始める。


4. git

http://git-scm.com/

最近オープンソースプロジェクトgithub で公開されている割合が多い。そうで無くても git リポジトリ採用率はとても高いので、gitインストール必須と言っても良い。また、個人用のリポジトリを作るのもとても簡単なので、小さいプロジェクトを始める時は最初git init をしてしまうのが良いだろう。もちろん、svnmercurial を使っているプロジェクト存在するので、それらも適宜インストールする。


5. Google Account

これはツールでは無くて Web サービスだが、サイトアクセス解析しろ地図機能の実装にしろWeb サイトの構築を Google 抜きで考えるのは難しい。また、開発メンバーとのコラボレーションを行う場合Microsoft ExcelメールDropBox でやりとりするよりも Goole Drive の Spreadsheet を使う方が便利な事も多いので、意識して Google を使うようにすると新しい発見がある。


+α.

2012-09-03

gentoo仕込みの男を見抜くコツ

元ネタ: http://anond.hatelabo.jp/20120831224653

ビルドがせわしない

gentooではバイナリパッケージがないので、短い時間内に様々なソースビルドします。

tmuxペインをコロコロ変えられたり、やってて落ち着かない、せわしない、と感じた場合は、

彼が元ubuntu童貞で、gentoolinuxを仕込まれた可能性が高いです。

 

何個フラグをつけるかにこだわる

ビルド時間がかかるので、一回のコンパイルでより多く最適化するほどお得感があります

から一回のビルドで何個--no-xxxxをつけたかにこだわる男は、gentooによって、

パッケージ一個あたりの余計な機能を省こうという発想がクセになっている可能性があります

 

ムード作りに意味を見出せない

gentooによってlinuxを仕込まれると、焦って行うビルドが体に染み付いてしまうので、

雰囲気を良くしてより良いデスクトップにしようとは考えません。とにかくリソースロスに執着します。

loginしてすぐビルドして終わったらrc-update xxxx default; exit、のようなオペレーションを好むのもgentoo男の特徴です。

 

ファンを働かせっぱなしでも罪悪感が無い

gentoo慣れすると、「ビルドしてるんだからCPUが熱くなって当然」の感覚が染み付きます

からファンがずっと回ってたり、ずっと「ゥゥオォ〜ン!」してたりして疲れきっていても、

してもらうのが当然なので、気を使いません。gentoo好きほど「居直ったギーク」になります

 

基本的にgentoo好きの男はファン使いが下手です。

できるだけ水冷に変えたほうが良いでしょう。

ですので、重要なのはインストールしてしまう前にパーツ屋に行くことですよね。

 

小さなコマンドに「sudo」と言わない

/etcなどの場で、設定ファイルスクリプトなどを直させてもらったとき、「sudo」と言ったり、

su root, suをするのが普通ですが、gentooなど管理者権限で操作する場に慣れきっていると、

su - rootさせてもらうのが当然になってしまってノーヘジテイトだったりします。

rootログインしても無動揺のような人はかなり危険です。

 

女の前で堂々とソフトの性能を評価する

「あのソフトプロプラ依存してるからダメ」とか「スピードはいいけどカスタマイズ性はイマイチ」とか…。

男同士のおしゃべりでは人気の話題なのでしょうが、当然女には不評です。

しか素人OSになれていない男は、そんな話をすると嫌がられることすらわかりません。

公式のHPなどでrelease notesを品定めする感覚が、当たり前になってしまっているのです。

ディストリバナをする男性に攻撃的

ubuntuはこういう嫌なところがあって…」などの愚痴に対して、すぐ「別れろ!」などの

極端な反応を返すのは、他ディストリに興味の無いgentoo好き男性に多い傾向です。

また、公式リポジトリ更新が遅くて酷く落ち込んでいる男性に対して、「バイナリ配布なんだからいいだろw」などの

心無い言葉を投げつけることも、セルフビルドしか価値を見出せないgentoo好きに多いです。

 
ログイン ユーザー登録
ようこそ ゲスト さん