2019年1月20日のブックマーク (69件)

  • プログラマが知るべき97のこと

    プログラマが知るべき97のこと大人気の書籍『プログラマが知るべき97のこと』のエッセイを無料で公開中!すべてのプログラマにおすすめのがウェブで読めるようになりました。 エッセイ一覧分別のある行動関数型プログラミングを学ぶことの重要性ユーザが何をするかを観察する(あなたはユーザではない)コーディング規約を自動化する美はシンプルさに宿るリファクタリングの際に注意すべきこと共有は慎重にボーイスカウト・ルール他人よりまず自分を疑うツールの選択は慎重にドメインの言葉を使ったコードコードは設計であるコードレイアウトの重要性コードレビューコードの論理的検証コメントについてのコメントコードに書けないことのみをコメントにする学び続ける姿勢誰にとっての「利便性」かすばやくデプロイ、こまめにデプロイ技術的例外とビジネス例外を明確に区別する1万時間の訓練ドメイン特化言語変更を恐れない見られて恥ず

    プログラマが知るべき97のこと
    shiradofu
    shiradofu 2019/01/20
    97 Things Every Programmer Should Know
  • ◆Google IME を「英数キー(Caps Lock)」でトグルする

    OSを再インストールするたびに入れるのが面倒で、最近入れていなかったGoogleIME。 でも、やっぱりMSIMEのダメダメ加減に我慢できずGoogleIMEをインストールした。 私は通常「英数キー(Caps Lock)」でIMEのオンオフを切り替えているのだが、GoogleIMEでは直接入力に戻らず半角英数になってしまう。 以下の設定で直接入力に変更できるようだ。 設定 プロパティ 「一般タブ」で「キー設定」の編集 「直接入力」「Eisu」「IMEを有効化」 「入力文字なし」「Eisu」「IMEを無効化」

    shiradofu
    shiradofu 2019/01/20
    settings toggle
  • 25歳初めてのフリーランスエンジニアの単価について - Qiita

    はじめに 今回は自分が知りたかったシリーズ第1弾です。 第1弾:25歳初めてのフリーランスエンジニアの単価について 第2弾:新卒入社後、約3年半で読んできた書籍たち 第3弾:フリーランスエンジニアの面談ってこんな感じ 第4弾:新規参画した現場で1週間で意識したこと、やったこと こんにちは。今はまだ正社員ですが10月から初めてフリーランスエンジニアとして仕事していく予定です。 気になる単価ですがネットで調べると平均やMaxの値が多いので、僕のスキルでどれくらいの単価を提示してもらえたのかを記載しておきます。 職歴 キャリアチェンジはおそらく王道中の王道だと思います。 SIer→Web系開発→フリーランスエンジニア エンジニアの市場価値診断やってみたら今の年収低すぎた この動画の例にでてきたキャリアップ事例集は自分なのではと錯覚しました。 SIer(2015-2017年) 新卒でSIerに入社

    25歳初めてのフリーランスエンジニアの単価について - Qiita
    shiradofu
    shiradofu 2019/01/20
    freelancer value
  • requireとincludeとextendとmodule_function(1) : As Sloth As Possible

    Rubyで自作の外部モジュールを読み込む方法 - include と extend と module_function - (゚∀゚)o彡 sasata299's blogを読んでて、もしかしたらちょっと誤解があるのかなと思ったのでrequireとincludeとextendの話を。 requireはKernelモジュールのメソッド Rubyで外部ライブラリを読み込むには、require を利用します。 Rubyで自作の外部モジュールを読み込む方法 - include と extend と module_function - (゚∀゚)o彡 sasata299's blog これはその通り。もっと具体的に言うと、requireは引数のファイル名のRubyファイルを読み込んで実行するメソッドです。引数が絶対パスだったときはそのファイルを、そうでない場合はロードパスを優先順位上位から辿って最初

    requireとincludeとextendとmodule_function(1) : As Sloth As Possible
    shiradofu
    shiradofu 2019/01/20
    ruby
  • Nested query | Elasticsearch Guide [8.10] | Elastic

    shiradofu
    shiradofu 2019/01/20
    complex
  • 特定のブランチをもとに本番同様の動作確認ができる「レビュー環境」の話 - 弥生開発者ブログ

    こんにちは。tkykです。 みなさん、コードレビューしていますか?今日はMisocaのレビュープロセスで用いられている、とっても便利な「レビュー環境」について紹介します。 Misocaのレビュー体制とその課題 MisocaではPull Request(以下、PR)ベースの開発体制をとっており、必ず他のエンジニアによるPRのレビューを経てから、masterへマージすることになっています。 レビュー時に動作確認をするには、エンジニア各自がローカル環境にブランチをチェックアウトして行うのですが、時にはそれだけでは不都合なケースもあります。 非エンジニアにも動作確認をしてほしい 動作確認をするための条件を整えたい 最終的にはマージされないコードを一時的に追加したい 依存するライブラリのバージョンを変更したい RAILS_ENV=production でビルド・実行したい などなど このようなケース

    特定のブランチをもとに本番同様の動作確認ができる「レビュー環境」の話 - 弥生開発者ブログ
    shiradofu
    shiradofu 2019/01/20
    git review_env
  • 個人でWebサービスを公開した時にやったことリスト

    サービス終了のお知らせ 技術ブログサービス Qrunch(クランチ)は、10月31日を持ちましてサービスを終了いたしました。 11月30日 午後23時59分までは、以下からログインすることにより過去に投稿したコンテンツをエクスポートすることが可能です。 詳細はこちらをご覧ください。

    個人でWebサービスを公開した時にやったことリスト
  • ブロックチェ-ンを構築しながら学ぶ | POSTD

    ブロックチェ-ンの仕組みを知るには構築するのが最短の方法 この記事を読んでいるということは、仮想通貨の拡大に興奮しているということですね。ブロックチェ-ンの仕組み、背後にある基的なテクノロジーについて知りたいのでしょう。 しかしブロックチェ-ンを理解するのは簡単ではありません。少なくとも私にはそうでした。大量の動画の中をさまよい、抜けだらけのチュートリアルに従い、結局、実例が少なすぎてフラストレーションが大きくなりました。 私は手を動かして学ぶのが好きです。コードのレベルで内容を扱わざるを得なくなり、そうすることで身に付くからです。同じようにやってもらえば、この解説が終わる頃には、機能するブロックチェーンが出来上がり、どのように動くかがしっかりと把握できるようになるでしょう。 準備 ブロックチェ-ンとはブロックという名の 不変でシーケンシャルな 一連のレコードだということを覚えてください

    ブロックチェ-ンを構築しながら学ぶ | POSTD
    shiradofu
    shiradofu 2019/01/20
    blockchain
  • フロントエンドエンジニアから、デザイナーさんに意識してほしい10のこと|Pittan|note

    フロントエンドエンジニアとデザイナーさんは日々協力してプロダクトを作っていく関係にあります。デザイナーさんが作ってくれたものをエンジニアが素早く実現できるよう、いくつかエンジニアから意識してほしいことをまとめました。 なんでこんな話になったのか(前置きなので次の章まで飛ばしてOKです) デザイナーさんから「この画面をこんな風に作ってください」とXDやSketch、PSDなどいろいろな形で渡されることがあると思います。 僕の個人的な意見・経験ですが、いざ実装するぞとなったときに 「あれ…ここってどうしたらいいんだろう?」 と迷って作業のスピードが落ちてしまうことがとてもストレスに感じていました。できればノンストップでいきたいなあと思うわけです。 手が止まるたび、デザイナーさんに「ここってどうしたらいいですか?」と質問するのが何か新しい画面を作るときに必ず発生していました。 「(いつも聞いてる

    フロントエンドエンジニアから、デザイナーさんに意識してほしい10のこと|Pittan|note
    shiradofu
    shiradofu 2019/01/20
    communication frontend engineer designer
  • プログラマの三大美徳の啓発の勧め : 怠惰、短気、傲慢 ― JavaScriptで遅延評価 | POSTD

    (編注:2016/5/31、頂いたフィードバックを元に記事を修正いたしました。) larry wall 怠慢と勤勉 コンピューティングにおいて、”laziness(怠惰)”は幅広い意味の単語です。大抵は、もし必要が無ければ何もしないということを意味します。その正反対を指すのは”eager(勤勉)”です。後で必要になる場合に備えて、できるだけ働くということを意味します。 以下のJavaScriptを見てみましょう。 function ifThen (a, b) { if (a) return b; } ifThen(1 === 0, 2 + 3) //=> undefined ここで、問題です。「JavaScriptは 2+3 を評価する?」答えはお分かりですね。「評価する」です。呼び出し関数に、引数を引き渡すこととなると、JavaScriptは eager(勤勉=先行評価) で、式の全てを

    プログラマの三大美徳の啓発の勧め : 怠惰、短気、傲慢 ― JavaScriptで遅延評価 | POSTD
    shiradofu
    shiradofu 2019/01/20
    lazy_evaluation
  • Effective Mac 勉強会(Macの便利な使い方講座)

    ​​左上にある、信号機ボタン(閉じる、最小化、最大化)はWindowsから来るとめっちゃ押したくなるけどこのボタンは絶対使わない。

    Effective Mac 勉強会(Macの便利な使い方講座)
    shiradofu
    shiradofu 2019/01/20
    Effective Mac 勉強会(Macの便利な使い方講座) settings
  • Kubernetesがいかに自動化の考え方を変えたか? | SOTA

    先日Japan Container Days v18.12の基調講演で話をさせていただく機会があった.内容としてはMercari のMicroservices Platformの基盤として「なぜ」Kubernetesを選択したか?ついて現状や今後の展望を踏まえて紹介をした. Microservices Platform on Kubernetes at Mercari 「なぜ」の回答としては,CRDやAdmission webhookといった拡張機構を使うことで今後起こりうる様々なWorkloadに特化したPaaSや抽象化レイヤーを書いていけるExtensibilityの高さとそのBuilding BlockとしてのEcosystemの強さを挙げた. このトークのExtensibilityの文脈で話したくて時間がなかったのが「Kubernetesがいかに我々の自動化に対する考え方を変えたか

    shiradofu
    shiradofu 2019/01/20
    docker
  • 日本語 | HTTP/3 explained

    このの試みは2018年3月に始まりました。HTTP/3 と、その根幹のプロトコルである QUIC を文書化することがその目的です (なぜ、どのようにして動作するのか、プロトコルの詳細、その実装など)。 このは完全に無償で提供され、援助したいと考えるすべての人を巻き込んだ共同作品です。

    日本語 | HTTP/3 explained
    shiradofu
    shiradofu 2019/01/20
    http3 network general
  • pythonクライアントで始める「はじめてのElasticsearch」 - Qiita

    概要 elasticsearch のインストールから運用のだいぶ手前までのお試しをまとめたメモです.クライアントはpythonクライアントを使います.これがあれば,データの追加や検索をpythonを利用して行えるため,データの加工なども楽になる・・・と思うのですよ. 環境設定 Elasticsearchのインストール 環境が debian だったので,debのパッケージを持ってきてでインストール. % wget https://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-1.3.1.deb % sudo dpkg -i elasticsearch-1.3.1.deb # The first existing directory is used for JAVA_HOME (if JAVA_HOME

    pythonクライアントで始める「はじめてのElasticsearch」 - Qiita
  • TypeScript入門以前ガイド - mizchi's blog

    某社で自分が React/Redux + TypeScript などの講習をやってみた結果、TypeScript 入門用資料が必要だと思って書いたやつです。 このドキュメントのターゲット TypeScript で書かれたプロジェクトに参加する人 TypeScript を導入するために、その事前知識が必要な人 このドキュメントの読み方 ES2015 for Beginners ES2015 for ES5 Programmers ES Modules 非同期表現: Promise と async/await TypeScript エコシステム編 自分が React/Redux などの講習でいろいろやってみた結果、 ES2015 と TypeScript を同時に教えると、初学者は何がどの概念に由来するかの区別が出来ずに混乱します。なので、ES5 -> ES2015, ES2015 -> Ty

    TypeScript入門以前ガイド - mizchi's blog
  • 「プロを目指す人のためのRuby入門」別館のカレンダー | Advent Calendar 2017 - Qiita

    書籍「プロを目指す人のためのRuby入門」(チェリー)の中に収録できなかった技術記事を、著者が自ら公開していくアドベントカレンダーです。 以下のような記事を公開していきます。 ページ数の関係でカットせざるを得なかった記事 書のコンセプトや対象読者にマッチしないと判断して収録を見送った記事 「あ、あの話も書いておけば良かった」とあとから思った記事 チェリーではもともとあった原稿からトータル100ページ以上の記事をカット(!)しました。 ですが、このままお蔵入りにしてしまうのはもったいないので、このアドベントカレンダーで無償公開します。 もともとは書籍の原稿だったということで、文にはときどき章番号や項番号が登場するかもしれませんが、ご了承ください。 チェリーもここで公開したものと同じような雰囲気で説明していますので、興味を持った方はお近くの書店で書を手に取ってみてください!

    「プロを目指す人のためのRuby入門」別館のカレンダー | Advent Calendar 2017 - Qiita
  • AWS LambdaでChrome HeadlessドライバをAWS Lambda Layersから使う | ヤマムギ

    この記事はSelenium/Appium Advent Calendar 2018に参加した記事です。 新機能のAWS Lambda Layersが発表されました。 これまでAWS Lambdaのコードファイルが50MBぎりぎりだとか悩まなくてもよくなりますし、コードを更新するたびに重たいアップロードをしなくてもよくなります。 AWSもストレージ容量が減らせるのではないでしょうか。 LambdaChrome Headlessドライバを使ってスクレイピングをしているのですが、コードのzipファイルが48MBとかなので、制限ぎりぎりです。 これ以上何かを増やすと制限にひっかかります。 そして、ファイルが大きすぎてマネジメントコンソールから直接コードが編集できませんし見えません。 そこで登場したAWS Lambda Layers。 これは使うしかないでしょうということで、試してみました。 過去

    AWS LambdaでChrome HeadlessドライバをAWS Lambda Layersから使う | ヤマムギ
    shiradofu
    shiradofu 2019/01/20
    puppeteer
  • Query or QueryProxy?

    One of the most crucial pieces of Neo4j.rb is Neo4j::ActiveNode::Query::QueryProxy, but it may be the area of the gem that is the least spelled out in our documentation. Sure, many of its methods are described and it's tested extensively, but it and its relationship to Neo4j::Core::Query is often a source of confusion. I think there are a few reasons for this -- a sense of shared responsibilities,

    shiradofu
    shiradofu 2019/01/20
    neo4j neo4jrb query_as as
  • Man page of SED

    Section: ユーザーコマンド (1) Updated: 2020/01 Index JM Home Page roff page 名前 sed - テキストのフィルタリング、変換用のストリームエディター 書式 sed [OPTION]... {script-only-if-no-other-script} [input-file]... 説明 sed はストリームエディターです。ストリームエディターは、入力ストリーム (ファイルまたはパイプラインからの入力) に対して基的なテキスト変換を行うために用いられます。sed は 編集スクリプトを使える (ed のような) エディターと いろいろな面で似ていますが、sed は入力に対して 1 パスだけで動作するので、より効率的です。また sed はパイプラインのテキストに対してフィルター動作を行うことができ、この点は他のタイプのエディターと

    shiradofu
    shiradofu 2019/01/20
    shellscript
  • sed コマンド | コマンドの使い方(Linux) | hydroculのメモ

    sed コマンド 2015/05/13 文字列を全置換したり、行単位で抽出したり、削除したり、いろいろなテキスト処理のできるコマンド。処理内容はコマンドラインパラメータで指定して、非対話的に一括処理できる。 sedで書ける処理であれば、処理内容にもよるが、perlのワンライナーで書くよりも速いことが多い。 sedというコマンド名は Stream EDitor の略らしい。 基的な使い方 2021/01/17 標準入力をなにかしら処理して標準出力に出力するので、パイプとして使える。まあたいていのUNIXツールはパイプとして使えるのだが。 ファイル名を指定すればそのファイルを読み込んで処理して標準出力に出力する。 ファイル名を指定してオプション -i を使えば、そのファイルを読み込んで、結果をそのファイルに上書きする。ファイル自体を編集したい場合には便利。(-i はGNU sed限定) 処理

    shiradofu
    shiradofu 2019/01/20
    shellscript
  • sedによる文字列操作 - どこでも見れるメモ帳

    はじめに sed*1便利ですよね.ちょっとした文字列操作が簡単にできます. ただ,日常的に使わないと,コマンドとかオプションとかを覚えるのが難しいですよね. ワンライナーな用途を前提として,どういった使い方ができるのか,整理してみました. sedコマンドの構造 sedコマンドは,おおまかに次の3つの構造からなります. A. コマンドオプション(入力ファイルを編集する?標準出力を抑制する?など) B. 範囲指定(どの行について処理する?) C. 文字列操作(どういう文字列操作をする?) 例えば, $ sed -i '3,10 s/hoge/fuga/g' input.txt であれば, A. コマンドオプション:「-i」:B.C.の操作結果を入力ファイル(input.txt)に上書きする B. 範囲指定:「3,10」:3〜10行目について C. 文字列操作:「s/hoge/fuga/g」:h

    sedによる文字列操作 - どこでも見れるメモ帳
    shiradofu
    shiradofu 2019/01/20
    shellscript
  • メイルアドレス正規表現ふたたび | Netsphere Laboratories

    (2017.7.1) 新規作成。そんなに新規でもないが。 (2017.7.2) IPv4/IPv6アドレスに対応。 "メールアドレス 正規表現"ぐらいで検索すると、上位に、微妙だったり不適切な内容のページが並ぶ。つらい。 あまつさえ、現実に, いまだに '+' が通らないWeb上の商業サービスもあって、妥当な処理が行なわれていない。 とても古い話題のはずが、まともな解説だけが時代の彼方に去って、訳の分からない記事が跋扈しているのか? とはいえ、メイルアドレスは仕様が複雑すぎて、意外と難しい。 HTML Living Standard での定め WHATWG HTML Living Standard には, input[type="email"] 要素で、クライアント側の妥当性検査が盛り込まれている。 これの要求が微妙。結論として、この機能を使ってはならない。 4.10.5.1.5 Emai

    shiradofu
    shiradofu 2019/01/20
    mail_address regexp boilerplate
  • Rubyのputsメソッド、printメソッドはto_sメソッドを定義すると - ihatov08 blog

    改訂3版基礎 Ruby on Rails (KS IMPRESS KISO SERIES)でどうしてもわからないことがあった。 untitled.rb class Robot def initialize(name) @name = name @x = @y = 0 end def move(x,y) @x += x; @y += y end def to_s "#{@name}: #{@x},#{@y}" end end robo1 = Robot.new("ロボ1号") robo2 = Robot.new("ロボ2号") puts robo1 robo2.move(10,20) puts robo2 このコードを実行すると $ ruby untitled.rb ロボ1号: 0,0 ロボ2号: 10,20 と出力される。to_sメソッド呼び出してないけど、なんでto_sメソッド呼び出され

    Rubyのputsメソッド、printメソッドはto_sメソッドを定義すると - ihatov08 blog
  • Bash カラープロンプト - ArchWiki

    Bash には複数のプロンプトが存在しカスタマイズすることで効率を高めたりセンスを良くしたりオタクっぽくできます。 Bash にはカスタマイズ可能な5つのプロンプト文字列が存在します: PS0 は、コマンドの入力が完了した後で、そのコマンドの出力が開始される前に表示されます。(つまり、コマンドの実行開始直前。) PS1 は、コマンドの入力が開始される前に表示されるプライマリプロンプトです。なので、ほとんどの人がカスタマイズするのはこのプロンプト文字列です。 PS2 は、コマンドにさらに多くの入力 (例えば複数行のコマンド) が必要とされる際に表示されるセカンダリプロンプトです。 PS3 は滅多に使われません。これは、Bash の select 組み込みコマンドによってインタラクティブメニューが表示されるときに使われるプロンプト文字列です。他のプロンプトと違って、このプロンプトでは Bash

    Bash カラープロンプト - ArchWiki
    shiradofu
    shiradofu 2019/01/20
    prompt customize color
  • JavaScript Promiseの本

    この書籍はCreative Commons Attribution-NonCommercialの ライセンス で公開されています。 また、PDFとしてレンダリングしたバージョンは以下からダウンロードすることができます。

    JavaScript Promiseの本
  • はじめに · Redux

    ReduxJavaScriptアプリのための、予測可能な状態コンテナです。 (WordPressのフレームワークと混同しないでください – Redux Framework.) アプリケーションが異なる環境(クライアント、サーバー、そしてネイティヴ)で一貫して動く手助けをします。テストも簡単です。さらに次のような、開発者のための素晴らしい体験も提供します。 元に戻したり、やり直したりできるデバッガーで、コードを自動反映しながら編集する (live code editing combined with a time traveling debugger) ReduxReactや、他のどんなViewライブリとも使うことができます。 Reduxは軽量です。(依存を含め、2kB) Reduxを開発者から学ぶ: パート1: Reduxを始めよう(Part 1: Getting Started wi

    shiradofu
    shiradofu 2019/01/20
    redux document
  • WSL その127 - DrvFsのマウントオプションのサポート改善・ユーザーIDやパーミッションを指定可能に

    shiradofu
    shiradofu 2019/01/20
    permission mount
  • 文字列Aに文字列Bが含まれるか - わからん

    勤務先の凄腕ハッカーの方に、おおよそ次のような書き方を教わりました。考えろ! というかんじ。爽快な一日でした。 if [ `echo 'hogefuga' | grep 'fuga'` ] ; then echo 'ok' fi

    shiradofu
    shiradofu 2019/01/20
    shellscript string contain include
  • さっさと帰りたい怠け者エンジニアは vim をマスターしましょう その2 - 編集 - 強まっていこう

    さっさと帰りたい怠け者エンジニアvim をマスターしましょう その2 - 編集 いざ編集ですよ。これまた狂った便利機能が豊富にあります。 第1回と今回の操作方法をマスターするだけで、他人のエディットが超鈍足に見えるようになるでしょう。 自分の頭の中ではとっくに終わっている編集がちっとも終わらない様にびっくりしますよ。 さ、今回も長いですが、張り切っていきましょう。かのアニマル浜口もこう言っています。 長州ー!気合だ気合だー!!(名言) Undo、Redo 編集をする上でまずこれがわからないと困るので最初にサラッと書いておきます。 u Undo ctrl + r Redo ビジュアルモード vim にはビジュアルモードと言う、範囲選択機能があります。むちゃくちゃ使うので必ず覚えましょう。 v 範囲選択 V 行選択 ctrl + v 矩形選択 v は範囲選択を開始します。v を押した後上下

    さっさと帰りたい怠け者エンジニアは vim をマスターしましょう その2 - 編集 - 強まっていこう
  • さっさと帰りたい怠け者エンジニアは vim をマスターしましょう その1 - 基本と移動 - 強まっていこう

    コードを書いている時間と言うのはエンジニア人生の中でかなりの部分を占めます。ですが、その時間というのは残念ながら大半が無駄なものです。一発でバキッと仕上がる事なんてないので、書いちゃ消し、試しちゃ消し、とキーを叩きまくります。このキーを叩いている時間と言うのは 100% 無駄な時間であり極力減らすべきものです。 エンジニアがやりたい事はキーを叩くことではなくてきっちり動くコードを書くことですからね。仕事をしているふりをしているような人間であればエンターキーを「ターーン!」と爽快に押して無駄な時間を楽しめるかもしれませんがそんなことやってりゃレイオフまっしぐらです。 このエディット時間を究極に短くするためには vim を使うしかありません。このエディタに敵うエディタは人類史上ありませんから。 正直な話 vim を20年以上前に初めて触った時「何だこの狂ったエディタは!」なんて思ったもんです。

    さっさと帰りたい怠け者エンジニアは vim をマスターしましょう その1 - 基本と移動 - 強まっていこう
  • Professional IPv6 - BOOTH

    プロフェッショナルIPv6 第2版(価格BOOST↑用)(¥ 1,000), プロフェッショナルIPv6(価格BOOST↑用)初版(¥ 1,000), プロフェッショナルIPv6(無料版)(¥ 0)

    Professional IPv6 - BOOTH
    shiradofu
    shiradofu 2019/01/20
    protocol network
  • GitHub - suzuki86/QuickTabSwitch: Google Chrome Extension that enables you to switch tab quickly.

    shiradofu
    shiradofu 2019/01/20
    chrome_extension
  • Vim で使える Ctrl を使うキーバインドまとめ - 反省はしても後悔はしない

    キーマップに Ctrl キーを使うものを割り当てたいんですが、既存の機能と衝突するのが怖いので調べてみました。 keybind normal visual insert <C-a> 数字を加算 なし さっき挿入した文字を挿入 <C-b> 1ページ上にスクロール 1ページ上にスクロール なし*1 <C-c> (検索)コマンドの中止 visual モードの終了 insert モードの終了 <C-d> 半ページ下にスクロール 半ページ下にスクロール 字下げの削除 <C-e> 1行下にスクロール 1行下にスクロール カーソルの下の行の同じ位置の文字を挿入 <C-f> 1ページ下にスクロール 1ページ下にスクロール インデントの再調整 <C-g> カーソル位置とファイルの状態表示 セレクトモードへ移行 1行下の、挿入開始位置と同じ列へ移動 <C-h> カーソルを左に移動 カーソルを左に移動 カーソル

    Vim で使える Ctrl を使うキーバインドまとめ - 反省はしても後悔はしない
    shiradofu
    shiradofu 2019/01/20
    vim control ctrl key bindings
  • Blob, ArrayBuffer, Uint8Array, DataURI の変換 : (*x).b=z->a+y/c

    2016/06/26 03:37 Blob, ArrayBuffer, Uint8Array, DataURI の変換 ◆ Blob からは FileReader をつかって非同期で変換処理 ◆ ArrayBuffer, DataURI, text, BinaryString ◆ ArrayBuffer や BinaryString, Uint 系配列 から Blob は Blob のコンストラクタでできる ◆ Uint 系配列の buffer プロパティが ArrayBuffer ◆ ArrayBuffer を Uint 系のコンストラクタに入れるとその TypedArray に変換できる 色々あって変換するときにどうすればいいんだっけと思うのでまとめ 今回の対象はこれ BlobArrayBufferUintXXArrayFileBinaryStringDataURI UintXXArr

    Blob, ArrayBuffer, Uint8Array, DataURI の変換 : (*x).b=z->a+y/c
    shiradofu
    shiradofu 2019/01/20
    javascript file convert conversion
  • Ruby IOクラスについて学ぶ - Qiita

    Ruby力をつけるための基礎固めとして、IOクラスについて整理します。※たのしいRubyから IOクラスとは プログラムの外部とデータのやりとりをするための機能として入力(Input)と出力(Output)を提供するのが、IOクラスです | たのしいRuby P339 標準入出力 3つのIOオブジェクト 標準入力 キーボードからの入力を受け付ける 組み込み定数STDINに割り当てられる getsなどで標準入力からデータを受け取る 標準出力 標準出力の書き込みは端末画面に向けられている 組み込み定数STDOUTに割り当てられる レシーバを指定しないputs、print、printfなどは標準出力への出力となる 標準エラー出力 標準エラー出力の書き込みは端末画面に向けられている 組み込み定数STDERRに割り当てられる 標準入力が端末からかどうか判定できる

    Ruby IOクラスについて学ぶ - Qiita
    shiradofu
    shiradofu 2019/01/20
    file pointer rewind
  • AWS初心者のための勉強会資料【入門編】〜結局AWSって何なの?〜 - Qiita

    今回はAWS勉強会入門編として、AWSとは何なのか? AWSのサービス概要や特徴などを解説していきます。 この記事のゴールは基サービスであるEC2を触れるようになるための事前知識をマスターすることです。 ※ 記事は超入門編であり、サービスについて細かい説明は行なっておりません。各サービスには公式ドキュメントへのリンクを貼っているので、詳細を知りたい方はそちらをご参照ください。 AWSについて AWSとは何者なのでしょうか。最初にAWSのイメージを掴むために概要の説明を行います。 AWSとは何か? AWSAmazon Web Servicesの略です。まずは公式サイトの説明を見てみましょう。 アマゾン ウェブ サービス(AWS)は、米アマゾン・ドット・コムを支えてきた技術がベースとなるクラウドサービスです。柔軟で耐久性と拡張性に優れており、世界で数百万以上、日でも10万以上のお客様が

    AWS初心者のための勉強会資料【入門編】〜結局AWSって何なの?〜 - Qiita
  • 低レイヤーを学ぶための技術書をまとめてみる - Qiita

    半年前から低レイヤーに関する勉強をしている。 その中で読んだ技術書の感想、そしておすすめの読む順番をここにまとめてみる。 OS 30日でできる! OS自作入門 おすすめ度:80(満点100) 一言:自作OSの初心者向け 自作OSでまず初めに候補に挙がるのがこの。2006年に出版されたではあるが、OSの根幹を理解するにはとても良い。最初からアセンブリでメモリ操作をがっつり書くため、アセンブリの経験やレジスタ周りの知識が無いと挫折してしまうかも知れない。そこを乗り越えれば楽しくOSを実装していける。 コンピュータシステムの理論と実装 ―モダンなコンピュータの作り方 おすすめ度:95 一言:一からOSを作って学べる格的な指南書 論理回路と呼ばれるレベルからメモリやCPUを作っていき、アセンブリ言語やアセンブラの開発、そして独自言語とそのコンパイラ、OSまで開発する。CPUなど各要点の考え方

    低レイヤーを学ぶための技術書をまとめてみる - Qiita
    shiradofu
    shiradofu 2019/01/20
    low_layer
  • いまさらだけどCircleCIに入門したので分かりやすくまとめてみた - Qiita

    はじめに 今度入社する会社では、JenkinsでなくCircleCIを使っているということなので、1から勉強した内容を初心者向けにまとめました。 また、最新バージョン2.1(2018/12時点)の新機能も記事では触れています。 ※2019/8/8追記 Slack連携に関する記事も書きました。 SlackCircleCIからカバレッジレポート通知を受け取る設定手順 ※2020/4/2追記 https://twitter.com/CircleCIJapan/status/1245253320551399424 CircleCIさんより、記事を紹介いただきました! なお、記事は初回投稿時(2018/12)の情報がメインのため、ご留意いただきますようお願いします。 前提知識 CI/CDに関する入門レベルの知識 ymlファイルに関する入門レベルの知識 コンテナに関する入門レベルの知識 未学習

    いまさらだけどCircleCIに入門したので分かりやすくまとめてみた - Qiita
  • File APIs(Blob, BlobURL, ArrayBuffer, FileReader) - Qiita

    まえがき 以前の JavaScript はバイナリデータの扱いがとても下手でした。 バイナリデータをブラウザ上に一旦保存し再利用するには、サイズが1.3倍になることを覚悟した上でデータをDataURIに変換する必要がありましたし、XHRを使ってサーバからデータを取得する場合も、一度全てメモリに読み込んでから、ループでマスク処理を施し、Base64に変換し、DataURIに変換し… と、何重にも変換を繰り返す必要がありました。 2009年に出版された JavaScript Good Parts では、ビット演算子が「使うべきではない悪いパーツ」と評価されていた事を思い出す方もいるでしょう。 あれから5年、もはや時代が違います。 2015年の JavaScript においては、バイナリデータはもはや扱いづらい困った存在ではありません。 ハードウェアと JIT コンパイラの進化に合わせ、大容量の

    File APIs(Blob, BlobURL, ArrayBuffer, FileReader) - Qiita
    shiradofu
    shiradofu 2019/01/20
    javascript file convert conversion
  • CORSまとめ - Qiita

    今更ですが、CORS (Cross-Origin Resource Sharing)を色々試していたら、思っていた以上に色々パターンがあることに気づいたので、改めてその扱い方についてまとめてみました。 そもそも 現在のWebブラウザでは、あるWebサイトが持つ情報が別の悪意あるWebサイトに悪用されるのを防ぐために、Same-Origin Policy(日語では同一生成元ポリシー)が適用されます。 例えば、あるWebサイト https://guiltysite.com をブラウザで表示している時に、このWebページからXMLHttpRequest(以下、XHR)やFetch APIで別のWebサイト https://innocentsite.net からHTTP(S)でデータを読み込もうとすると、エラーになる、というわけです。 しかし、アクセス元が悪意あるWebサイトならともかく、データ

    CORSまとめ - Qiita
    shiradofu
    shiradofu 2019/01/20
    x-access-control-allow-origin
  • 変更を一時的に退避!キメろgit stash - Qiita

    gitは、とにかくトピックブランチを作成して作業する。だいたい機能追加とかバグ修正とかの単位でブランチを作って作業します。(ちゃんとやってますよね?) なので、作業の途中で別の修正を優先してお願いっ!なんて言われたときは、別のブランチに切り替えて作業をする必要がでてくる。そんな時に変更を一時的に退避しておくことのできる機能、それがstashである。 では、早速使い方 まだcommitしていない状態の変更ファイル(addしてる or add していない)が存在する状況で、次のコマンドを実行すると変更ファイルを退避することができる。 ※saveは、省略することもできる。 これでファイルの退避完了!git statusとか見てみると変更状態であったファイルがなくなっている。この状態なら安心してブランチを切り替えることもできる。めでたしめでたし。 と、退避だけならこれで終わりだけど、次につかうとき

    変更を一時的に退避!キメろgit stash - Qiita
  • # CommonJS と ES6の import/export で迷うなら - Qiita

    はじめに いつもはes6のモジュール管理方式であるimport/export(ES modules)を使って、npmで手に入れたライブラリや自分で作成したモジュールをロードしているが、たまに思った挙動にならないことがある。また、export defaultしたモジュールをテストしようとしてkarmaでrequire()するとエラーになったりした。そういう場合は、とりあえずmodule.exportsを使ってみるとうまくいったりすることが多いのだが、なぜなのかはあまり考えていなかった。 ということで、実際にはどうなっているのか、またモジュールシステムとは何なのかという点で基的なことから理解を深めて、es6のimport/exportとの違いを知り、より正しく実装できるようになれば良いと思っている。 結論としては 方針としては基的にはES6形式で記述するが、CommonJS形式の読み書きが

    # CommonJS と ES6の import/export で迷うなら - Qiita
    shiradofu
    shiradofu 2019/01/20
    javascript
  • お前らのReactは遅い - Qiita

    煽りタイトルですみません。 最近、Reactプロジェクトのページを動かしていて、 もっさりしてる(レンダリングの負荷が高いな)と思ったので どうやったら無駄なレンダリングを減らせるか思考錯誤したことをまとめました。 preactとか別ライブラリの話はしません。 よかったらこちらもどうぞ ReactJSで作る今時のSPA入門(基編) 2019年07月06日追記: ブラウザのレンダリングの仕組みに関して良記事があったので先に一読しておくことをおすすめします。 良記事1:実際のところ「ブラウザを立ち上げてページが表示されるまで」には何が起きるのか 良記事2:ブラウザレンダリング入門〜知ることで見える世界〜 1ピクセルがブラウザに表示されるまで:Life of a Pixel 2018 この記事に関してはReactのDOMツリー(レイアウト)レンダリングに関する最適化戦略です。 2020年02

    お前らのReactは遅い - Qiita
    shiradofu
    shiradofu 2019/01/20
    javascript performance
  • Chrome拡張の開発方法まとめ その1:概念編 - Qiita

    Chrome拡張の開発に必要な知識とかの覚書です。 この記事では開発の前に知っておくべきChrome拡張の全容について解説していきます。 「実際に開発しながら学ぶ」形式の解説記事は多く見られるのですが、概念についてちゃんとまとめてある記事は見当たらず、そこらへんの理解で結構苦労した覚えがあるので、そういった人達の手助けになればと思います。 対象 Chrome拡張が作りたい人 Javascriptがまあまあわかる人 Chrome拡張の各概念がいまいちわかってない人 概要 まずはChrome拡張の大まかな構造について説明します。 Chrome拡張はHTMLCSSJavascriptで作られています。 必要なhtml,css,jsファイルなどと後述のManifest Fileを一つのフォルダにまとめたものが一つの拡張機能のまとまりとなり、zipで圧縮してアップロードすることでストアで公開する

    Chrome拡張の開発方法まとめ その1:概念編 - Qiita
    shiradofu
    shiradofu 2019/01/20
    chrome_extension
  • Ruby で文字列のキャメルケース変換 - Qiita

    Ruby での文字列のキャメルケース変換についてのメモです。 ActiveSupport の camelize 最近(?)では、Rails の ActiveSupport の String#camelize でそれができるようです。 require 'active_support/core_ext/string/inflections' p "foo/bar_baz".camelize #=> "Foo::BarBaz" Rails ではきっと便利なんだと思うのですが、残念ながら仕様が私の都合にはあいませんでした。 モジュール Camelizable そこで、古いソースをもとに小さなモジュールを自作しました。 インスタンスメソッドは以下の2つです。 Camelizable#ucc Camelizable#lcc いずれも、区切り文字列は引数で指定できます。正規表現か文字列で指定します。 区

    Ruby で文字列のキャメルケース変換 - Qiita
    shiradofu
    shiradofu 2019/01/20
    camelize upper lower camel_case
  • docker-composeを爆速にする - Qiita

    ※ 色々修正しました Rails開発等でdocker-composeを使うと非常に遅い場合があります(特にDocker For Mac)。 docker-compose時に余計なファイルをマウントしてしまってるのが原因らしいので、.git, log, tmp, vendor などのホストからマウントする必要のないディレクトリを別のvolumeでマウントを上書きしてしまえば解消されます。 具体的な docker-compose.yml は以下のようになります(Railsの例) version: '3' services: app: build: context: . dockerfile: Dockerfile.dev environment: RAILS_POSTGRES_HOST: db ports: - "3000:3000" volumes: - .:/app:cached - bu

    docker-composeを爆速にする - Qiita
    shiradofu
    shiradofu 2019/01/20
    performance
  • CodeMirrorでAutoCompleteする - Qiita

    JavaScriptで作られたエディタCodeMirrorで、こんな風に補完をしたい。 準備 まず以下のjsとcssを読み込む codemirror/lib/codemirror.js codemirror/lib/codemirror.css codemirror/addon/hint/show-hint.js codemirror/addon/hint/show-hint.css 同期的に補完候補を表示する 以下coffeescript elはなんか適当なDOMTextAreaELement渡してください。 {Pos} = CodeMirror autocomplete = (cm) -> CodeMirror.showHint cm, -> cur = cm.getCursor() token = cm.getTokenAt(cur) start = token.start end

    CodeMirrorでAutoCompleteする - Qiita
    shiradofu
    shiradofu 2019/01/20
    javascript textarea
  • インフラエンジニアじゃなくても押さえておきたいSSHの基礎知識 - Qiita

    最近はクラウド上のサーバーを利用する事も多くなってきた。 サーバーの用意やネットワーク周りの設定はインフラ部門がやってくれるけど、アプリのデプロイ/設定は開発者がする事が多いので、開発メインでやってるエンジニアでも最低限SSHの知識は必要になる。 また、Vagrant等でローカル環境にVMを作成する事もあるので、ローカル環境内でSSHを使用するケースも増えてきた。 というわけでインフラエンジニアじゃなくてもSSHクライアントの知識は必須になってきているので、改めてSSHの再学習をしてみることにした。 SSHとは 暗号や認証の技術を利用して、安全にリモートコンピュータと通信するためのプロトコル。 SSHでは以下の点で従来のTelnetより安全な通信が行える。1 パスワードやデータを暗号化して通信する。 クライアントがサーバーに接続する時に、接続先が意図しないサーバーに誘導されていないか厳密に

    インフラエンジニアじゃなくても押さえておきたいSSHの基礎知識 - Qiita
  • [Git] .gitignoreの仕様詳解 - Qiita

    対応バージョン この記事の内容は、少なくともGitのバージョン2.19.1までは対応している。 もし最新のGitで新しい動きがあれば随時更新する。 基 .gitignoreを使うと無視する(Gitのトラッキングの対象外とする)ファイル or ディレクトリを指定できる。 .gitignoreは複数のディレクトリに置くことができる。 深い階層の.gitignoreに書かれた指定の方が優先順位が高い。(後に解釈される) .gitignore内の記述は上の行から順に以下のように解釈される。 /を含まない行(fileなど) .gitignore以下の全サブディレクトリ下にあるこの名前のファイル or ディレクトリを無視する 末尾以外にのみ/を含む行(/file, /path/to/file, path/to/fileなど) .gitignoreが置いてあるディレクトリをカレントディレクトリとする相

    [Git] .gitignoreの仕様詳解 - Qiita
  • 多様なフォーマットに対応!ドキュメント変換ツールPandocを知ろう - Qiita

    追記(2020.4.19) Pandoc User’s Guideを日語に全訳しました。 よろしければご参照ください。 新しい翻訳をプレリリースしました!(翻訳途中の部分もあります) Pandocユーザーズガイド 日語版 [2.7.2] — 日Pandocユーザ会 2019.02.21 ドキュメント 旧日語版:Pandoc ユーザーズガイド 日語版 はじめに 今回は、ドキュメント作成Tips Advent Calendar 2012の1日目 (マインドマップから全てを紡ぎ出す - XMind+Pandocのドキュメント作成術 -) で少し紹介したPandocというツールについて、もう少し深く掘り下げて紹介したいと思います。 MarkdownとかreStructuredTextとか、流行ってますよね いわゆる軽量マークアップ言語が最近流行しています。特にMarkdownも杓子も

    多様なフォーマットに対応!ドキュメント変換ツールPandocを知ろう - Qiita
    shiradofu
    shiradofu 2019/01/20
    convert
  • Railsの複雑な検索はスコープを使おう - Qiita

    ActiveRecord / Arel 両方ともRailsDBを操作する際に重要な要素だと思う。 今回めちゃくちゃ実践的に、わざわざこの記事用にモデルを別途用意したりして書いてみました。 モデル取得・検索についてのヒントになれば幸いです。 対象者 : いまいちRailsでの検索条件や結合条件をうまく書けない人 執筆時の環境 rails : 4.2.0 activerecord : 4.2.0 arel : 6.0 使用するModel コンテンツに紐づくチャプターを取ってこよう 多分コントローラーにこんな感じで書きますよね。

    Railsの複雑な検索はスコープを使おう - Qiita
    shiradofu
    shiradofu 2019/01/20
    complex search scope
  • Git/GitHubレベル別オススメ学習サイトまとめ完全保存版【2019.06】 - Qiita

    < 最新 変更履歴 - Latest Changed History > 2019.06.05 - コマンド記事へ追加 『 Linuxコマンドを連続して使うには - @egawa_kun 』 このページをご覧くださった方は、資料探しで悩む"気疲れ"と"時間"を大幅に減らし、かなり効率的に早くGit/GitHubを学習できるでしょう。 背景 なぜ今更 Git/GitHub という感がありますが、まとめてみました。何故かというと、ググると確かに初心者向けのGitの使い方や設定方法などが掲載されたサイトは多くありますが、個人的に体系立ってイメージを掴める内容が少なく、探すのに苦労したため、その中から特に役立ったと感じたコンテンツをかなり厳選し、まとめてみました。下記の良質なコンテンツは、Git/GitHub習得に大いに役立つでしょう。 初心者〜 さらに初心者用の資料もレベル別に番号順で分けました

    Git/GitHubレベル別オススメ学習サイトまとめ完全保存版【2019.06】 - Qiita
    shiradofu
    shiradofu 2019/01/20
    learning
  • iMac/MacBook購入後に必ず設定したい設定項目 - Qiita

    背景 iMacmacbookの買い替えなんかで購入直後に設定する項目のメモ ターミナルから設定できます。dotfileとして置いておいて端末購入時に実行するやり方が基のようです。 一度書いてしまえば端末購入のたびに実行するだけで同じ設定のマシンが瞬時に出来あがるのは素晴らしいですね。 vimrc同様に育てていく感覚が大事なのかも知れませんね()。 基的には以下のリポジトリとサイトを参考に記載しています。 https://www.defaults-write.com/ https://github.com/divio/osx-bootstrap/tree/master/core https://github.com/mathiasbynens/dotfiles/blob/master/.macos defaultsコマンドとは 「plist」と呼ばれるアプリやシステムの設定ファイルに、

    iMac/MacBook購入後に必ず設定したい設定項目 - Qiita
    shiradofu
    shiradofu 2019/01/20
    settings
  • 【保存版・初心者向け】Python 目的別チュートリアル - Qiita

    はじめに AI Academyを開発・運営しています、株式会社エーアイアカデミー代表の谷です。 近年機械学習等で人気のPythonですが、Pythonで出来ることは機械学習以外にも多くあります。 そこで、初学者の方は機械学習以外でPythonで何が出来るのか?また、何から手をつけて行けば目的を達成できるのか?など疑問を持つかと思います。 この記事が多くの方々のお役に立てれば幸いです。 AI Academy Bootcamp 6ヶ月35,000円にてチャットで質問し放題の環境で、機械学習データ分析が学べるサービスを提供しております。 数十名在籍しているデータサイエンティストや機械学習エンジニアに質問し放題の環境でデータ分析、統計、機械学習SQL等が学べます。AI人材に必要なスキルを効率よく体系的に身に付けたい方は是非ご検討ください! https://aiacademy.jp/bootca

    【保存版・初心者向け】Python 目的別チュートリアル - Qiita
  • 全ての開発者が学ぶべき5つの言語 - Qiita

    「どの言語を学ぶべきか」という議論はエンジニア向け記事の定番ネタですが、HackerNoonに投稿された5 Programming Languages Every Master Developer Should Learnという記事がなかなか興味深かったので翻訳してみました。 (2018/11/04追記) こちらの記事に関する「別視点からの意見」として下記のような記事を追加いたしました。宜しければこちらも併せてご参照ください。 Ruby->Go->Scalaという習得順序がエンジニアの爆速の成長に最適である理由 はじめに 「プログラマーは新しい言語を毎年1つは習得するべきだ」という趣旨の文章をどこかで読みました。(多分CODE COMPLETEだったと思いますが) もしそれが難しくても、キャリアの中で最低限この後に紹介する5つの言語に通じておくことをお薦めします。 あらゆる会社は、多言語を

    全ての開発者が学ぶべき5つの言語 - Qiita
    shiradofu
    shiradofu 2019/01/20
    5 programming languages every master developer should learn
  • sourcemap を無効化して webpacker の production build を 2000% 速くする - Qiita

    TL;DR プロダクションで sourcemap が有効化されていたので、関連オプションを切って回ったら 2000% 高速化した。 問題 NODE_ENV=production bundle exec rake webpacker:compile が致命的に遅かった。 エントリーポイントが17個でビルド時間が合計680s という有様で、プロダクションとはいえ デプロイ を11分遅くさせるのは、ビジネス的に致命的な感じだった。 調査 さしあたり、いつもの経験則で uglify の mangle オプションが遅いんだろう、と思って、webpacker のソースの設定を見に行ったら、うん????となる設定をみつけた。 this.plugins.set('UglifyJs', new webpack.optimize.UglifyJsPlugin({ sourceMap: true, compre

    sourcemap を無効化して webpacker の production build を 2000% 速くする - Qiita
    shiradofu
    shiradofu 2019/01/20
    javascript performance
  • async関数においてtry/catchではなくawait/catchパターンを活用する - Qiita

    async/awaitのエラーハンドリングはtry/catchで行うのが一般的です。 しかし、これは複数のawaitを使い、それぞれ別のエラーハンドリングを行いたい場合など、冗長になりがちです。 そして、特に気に入らないのが、tryのスコープ外で非同期関数の戻り値を使う場合、letを使う必要があるところです。

    async関数においてtry/catchではなくawait/catchパターンを活用する - Qiita
    shiradofu
    shiradofu 2019/01/20
    javascript error_handling
  • 未経験新卒エンジニアから1年半で38冊の技術書を読んだのでおすすめの必読9冊を紹介 - Qiita

    はじめに 未経験新卒でエンジニアを始めてから一年以上がたち後輩が入ってきました。 よくおすすめの書籍を聞かれるので、この機会に自分が読んだおすすめのをまとめてみました。 読んだを数えてみたら38冊も読んでいて正直自分でもびっくりです。 今回はその中から厳選した9冊を紹介します。 ※ここではJavaなどに絞らず、サーバサイドエンジニアとしておすすめの書籍を紹介します。 私の未経験当時のスペックと現状 未経験当時 大学1年生の時にC言語を授業で習ったがやる気もなくループ処理なども分からず 就活でエンジニアに決まってからPaizaの問題を解きまくりA問題も多少解けるレベル (ただし変数名はaaaaとかhogeeeを多用w) 現状 書籍を大量に読んでアウトプットしていたおかげで(もちろんまだまだ勉強中ですが) ダメなコード、良いコードの判別が出来て、実装にも落とせる。 アーキテクチャを採用した

    未経験新卒エンジニアから1年半で38冊の技術書を読んだのでおすすめの必読9冊を紹介 - Qiita
  • 新人プログラマに正月休み中を使って読んでみてほしい技術書をセレクトしてみた。 - Qiita

    エンジニア組織を強くするためのを出版しました Qiitaでエンジニアリングをめぐる様々なコミュニケーションの問題とその解決策や考え方を書いてきた。それらの背後にあるエッセンスをこの度書籍として出版するに至りました。 エンジニアリング組織論への招待 ~不確実性に向き合う思考と組織のリファクタリング この書籍は、エンジニアリングを「不確実性を削減する」という第一原理で捉え直し、様々なエンジニアリングとその間のコミュニケーションをめぐる現象を説明していくものです。 はじめに 今年、書いた幾つかの記事のタネであったり、新卒教育の際に参考書籍としてあげたものを中心にリストアップします。一応amazonへのリンクも貼っておきますが、先輩が持ってたりすると思うので、冬休みに借りて一気に読んでおくのもいいかと思います。 その時々、必要な技術の習得に日々追われているんじゃないかと思いますが、いつまでも使

    新人プログラマに正月休み中を使って読んでみてほしい技術書をセレクトしてみた。 - Qiita
  • 図で理解するJavaScriptのプロトタイプチェーン - Qiita

    JavaScriptのリファレンスといえばMDNですよね。 JavaScriptで調べものをする際に、真っ先に見る方も多いでしょう。 そんなMDNですが読めていますか? 例えばArrayのページを見てみましょう。 さらっと書かれているprototype JavaScriptを理解するにはプロトタイプチェーンを知る必要がある 記事の目的 プロトタイプチェーンを理解する MDNをより読めるようにする JavaScriptのObjectやArrayなどの基型の構造を理解する 確認環境や記述について Chrome 52のコンソールで動作確認 ES5で記述 説明のしやすさを重視、プロトタイプをあらわすのに__proto__を使って記述 まずはオブジェクトについてみていく シンプルなオブジェクトを作る

    図で理解するJavaScriptのプロトタイプチェーン - Qiita
    shiradofu
    shiradofu 2019/01/20
    prototype_chain
  • 新人プログラマに知っておいてもらいたい人類がオブジェクト指向を手に入れるまでの軌跡 - Qiita

    あわせて読みたい 新人プログラマに知ってもらいたいメソッドを読みやすく維持するいくつかの原則 ペアプログラミングして気がついた新人プログラマの成長を阻害する悪習 「オブジェクト指向プログラミング」と「関数型プログラミング」のたった一つのシンプルな違い あきらめるにはまだ早い!ソースコードの品質向上に効果的なアプローチ 2015年に備えて知っておきたいリアクティブアーキテクチャの潮流 この記事について この記事は新人向けの研修内容を再編集してお送りいたします。 ここで述べる内容はどのようにして現在のプログラミングスタイルが生まれてきたかを理解することで、よりよいプログラムを書くためのもので、正確なソフトウェア工学の歴史を学ぶためのものではありません。正確な歴史を把握したい場合は、原典をあたるようにしてください。 また、想定している読者は「よくあるオブジェクト指向プログラミングの学習」を既にし

    新人プログラマに知っておいてもらいたい人類がオブジェクト指向を手に入れるまでの軌跡 - Qiita
    shiradofu
    shiradofu 2019/01/20
    history object oriented programming (oop)
  • プログラムのネーミングに迷ったら GitHub でコード検索すると参考になる説 - Qiita

    TL;DR プログラムのネーミングで迷ったら GitHub でキーワードを検索して、ヒットした件数が参考になるのでは? 複数キーワードを検索して結果の一覧を表示する CLI 作りました https://github.com/kyoshidajp/ghkw ネーミング迷いますよね? みなさん、コードを書いていて変数やメソッド名のネーミングって迷いますね。 こんな時に自分たちはチームを横断して「こういう名前考えたんだけど、これってどうかな?」という確認を Slack 上で行っています。先日、この Slack チャンネルを見ていて考えました。 「GitHub で検索すれば世の中のコードでどのぐらい使われているかざっくり分かるので参考になるのでは?説」 GitHub で検索できるという条件付きではありますが、コードの規模からするとある程度期待できそうです。 GitHub で検索 例えば「除外条件」

    プログラムのネーミングに迷ったら GitHub でコード検索すると参考になる説 - Qiita
    shiradofu
    shiradofu 2019/01/20
    name naming search github
  • AWS認定9冠制覇したのでオススメの勉強法などをまとめてみる

    まず11位の「クラウドプラクティショナー」ですが、2018年に新設されたAWSのエントリーレベルの認定です。AWSの基的な概念や、AWSのベーシックなサービスの特長、請求・アカウントマネジメント・料金モデルなどに関する理解が問われます。エンジニアだけでなくマネージャーや営業など様々なポジションを対象とした認定であるため、問われる知識の範囲は意外に広いです。ただ、知っていれば解ける問題が多いため、この順位にしています。 10位の「Alexaスキルビルダー - 専門知識」は、文字通りAlexaのスキル開発に関する知識が問われます。専門知識と銘打たれていますが、内容自体はそこまで難しくなく、Alexaスキル開発に関して知っていれば解ける問題が多かった印象です。これまでにAlexaスキルを開発したことがあり、クラウドプラクティショナーレベル以上のAWS知識があれば、問題なく合格できると思います。

    AWS認定9冠制覇したのでオススメの勉強法などをまとめてみる
  • 実践vimを読んでvimのデフォルト設定を使いこなす - Qiita

    実践vimはいいvimを今後長く付き合っていくパートナーと考えたならば、一度は読んでおきたいと思いました。記事は実践vimで得たtipsの自分用羅列です。 この投稿は順次アップデートしていく予定です。 はじめに 初めてvimをやろうかと思った人は、この買うよりも前に、 ブラインドタッチをある程度できるようになっておくこと vimのインストール vimインストール時点で同梱されているvimtutor(インタラクティブなvimのチュートリアル)を一通りやっておきましょう。起動はターミナルにvimtutorと打つだけ。 つぎに 素のvimのまま使っている人はあんまり居ないでしょうから、vimを起動する際に のようにオプションをつけて起動すると、.vimrcを無視して素のvimが開きます。 日語doc の中でもよく:h {コマンド} でヘルプを参照しています。 ヘルプ:hをよく参照する

    実践vimを読んでvimのデフォルト設定を使いこなす - Qiita
  • apt-getの利用リポジトリを日本サーバーに変更する - Qiita

    vagrantで使おうとしているBoxのapt-get利用リポジトリがUSになっている場合がよくある。 $ sudo apt-get update Hit http://security.ubuntu.com trusty-security Release.gpg Get:1 http://us.archive.ubuntu.com trusty Release.gpg [933 B] Hit http://security.ubuntu.com trusty-security Release Get:2 http://us.archive.ubuntu.com trusty-updates Release.gpg [933 B] Hit http://security.ubuntu.com trusty-security/main Sources # IIJにしたいとき $ sudo s

    apt-getの利用リポジトリを日本サーバーに変更する - Qiita
    shiradofu
    shiradofu 2019/01/20
    env ubuntu change repository server japan
  • Linuxの対話がめんどくさい?そんな時こそ自動化だ!-expect編- - Qiita

    expect編以外に書くつもりは毛頭ありません。 manを見てもググってもどうにも手がつけられない程度に分かりづらかったので、備忘録としてまとめます。 expectって何? 対マシンに於いて発生する、マシンからの問いに対し、人間がキーを叩いて返答する、所謂対話を自動化するコマンド及びモジュールです。 今回はLinux上のexpectコマンドを取り上げますが、CでもC++でも同様の処理が実行可能なようです。 RubyPerlでも書き換えられ、モジュールとして配布されているようです。 元はTclというプログラム言語ベースのコマンドです。 コマンドとは言いましたが、使い道はほぼスクリプトとなるかと思います。 というかコイツをワンライナーでどう使えばいいのかよくわかりません。 また、expectはコマンドというか言語であるようです。 expectはTclのスーパーセット(Tclを包括し、更にオプ

    Linuxの対話がめんどくさい?そんな時こそ自動化だ!-expect編- - Qiita
    shiradofu
    shiradofu 2019/01/20
    shellscript automation interactive dialogue
  • Karabiner-Elementsの設定項目をまとめました - Qiita

    2022年7月18日追記 2022年5月に Mac を手放したため、アプリのバージョンアップ等に伴う記事の修正ができなくなりました。 2022年7月17日に v14.5.0 が登場していますが、記事の内容は v14.4.0 までの内容に基づいています。 Karabiner-Elements は非常に強力なアプリで、Mac でも JIS キーボードの"全角/半角"で IME を切り替えらるようにしたり、VimEmacs のようなカーソル移動を行ったり、あるいは色々なアプリの操作を自分流にアレンジしたりできます。しかし、開発者がアプリの開発に全力を投じているのか、設定に関する詳細なドキュメントが見当たらない状況にあるため、設定の際は設定例等を見ながら試行錯誤する必要があります。そのため、自分が設定に当たって集めた情報を備忘録代わりにまとめようと思います。 単独のキーを別の単独のキーに割

    Karabiner-Elementsの設定項目をまとめました - Qiita
    shiradofu
    shiradofu 2019/01/20
    settings
  • macOSでディスプレイ1枚で作業する技術 - Qiita

    今まで、自宅・職場では外部ディスプレイを使って作業をしてましたが最近はRoostを使い始めて、家でも外でもRoostと外部キーボード、マウスで仕事するようになりました。これで肩の痛みが激減したので下を向いて作業する時間が多いと首の筋肉に引っ張られて肩が凝るみたいですね。 ここできになるのはディスプレイ1枚だと画面切り替え大変じゃないのってところなのですが、以前 @reoring さんに教えてもらって自分にすごいフィットしたので共有しておきます。あまりmacデスクトップについての記事がないような。 [追記2020/11/16] macOS 11.0 Big Sur(Intel) で動作確認できました。Total Spaces2をBig Surより前から使っている場合は最新版(v2.9.6~)を再インストールする必要があります。 TL;DR デスクトップを10画面作成する ショートカットキー

    macOSでディスプレイ1枚で作業する技術 - Qiita
    shiradofu
    shiradofu 2019/01/20
    env / work with single display
  • 至高のDockerイメージ生成を求めて - Qiita

    稿は良いDockerイメージを良い方法でビルドすることを探求した記録である。 Supership株式会社 Advent Calendar 2016の21日目にあたる。 2019年現在は@inductor氏の改訂版を見たほうが良い。 この記事で論じた望ましいコンテナイメージの姿は2019年でも変わらない。ただし、multi-stage buildのような新しい仕組みが普及したりツールの評価が定まってきたりと、実現に用いるツールの状況が2016年からやや変化している。 良いDockerイメージ 良いDockerイメージとは何だろうか。Dockerの利点は次のようなものだから、それを活かすイメージが良いものであるに違いない。 ビルドしたイメージはどこでも動く 適切にインストールされ、設定されたアプリケーションをそのままどこにでも持っていける。 コンテナ同士が干渉し合うことはないので、任意のイメ

    至高のDockerイメージ生成を求めて - Qiita
    shiradofu
    shiradofu 2019/01/20
    performance create docker image