タグ

ブックマーク / qiita.com (349)

  • Goの開発環境でDockerを利用する - Qiita

    Go3 Advent Calendar 2018の9日目を担当するtheoden9014です。よろしくお願いします。 Makefileについて書こうと思ったのですが、内容が同じような記事が先に出てしまったようなので、少し趣向を変えたタイトルにしました。 この記事では、MakefileとDockerfileを上手く利用することによって、Docker内でのビルドやデバッグを簡単にする方法についてご紹介します。 この手法であれば、開発者は手元にはDockerをインストールするだけでGoを使った開発を行えるようになります。 今回は以下のリポジトリをベースとしてご紹介していきます。 https://github.com/theoden9014/go-startkit/tree/qiita 背景 Goで開発する際には$GOPATHの知識は必要不可欠です。 vgoの普及によって$GOPATHの重要性は下

    Goの開発環境でDockerを利用する - Qiita
  • Node.jsだってmulti-thread/multi-processできるもん。 - Qiita

    「Node.jsはシングルスレッドだから、プロダクションで使うのはリスクだ」みたいな発言に対するアンサー(今更感) Node.jsは戦略的にシングルスレッド・シングルプロセスを採用しているわけで、 しかも任意にマルチプロセス化が可能だし、重いデータを扱う際は内部(libuv)で勝手にマルチスレッド化して処理される。 今のシリコンバレーではNode.js経験者の需要が高い、なんて話も聞く。 開発効率の良いNode.jsでプロトタイプを作り、リリースを繰り返すことがベンチャーにとって重要だからだ。 TwitterGoogleレベルならともかく、ベンチャーレベルのtrafficで、パフォーマンス的な問題が出たという話は聞いたことがない。 なお、プロダクションで使うことを勧める記事ではありません。 またECMAScriptのSharedArrayBufferなどの話は無視します。 前段 Node

    Node.jsだってmulti-thread/multi-processできるもん。 - Qiita
    yuzu441
    yuzu441 2018/12/07
  • いまだにsysvinitの手癖が抜けない人のためのsystemd - Qiita

    Linuxが起動すると、デーモンプロセスが順次立ち上がるわけですが、これを実際に処理する機能は、init (sysvinit) からUpstartを経てSystemdへと迷走発展してきました。そのため、Systemdへの移行を果たしたはずのUbuntu 16でも、過去のsysvinitの残骸互換性維持のためのファイルが一部残っており、ときどき混乱をもたらします。というわけで、何を今さらという感じではありますが、Systemdを取り上げたいと思います。対象LinuxディストリはUbuntu 16.04LTS!ではレッツゴー。 用語の定義 稿では、以下の用語を使います。 一時的 何かを一時的に変更するとは、その変更は直ちに反映されるが、システムを再起動すると元に戻ってしまうということです。 恒久的 恒久的な変更とは、システムを再起動しても、変更された状態が続くということです。 現在 特に断ら

    いまだにsysvinitの手癖が抜けない人のためのsystemd - Qiita
  • [Go言語] もしも童話「シンデレラ」が、Goで書かれていたら。 - Qiita

    シンデレラがGoで書かれていたら。 という妄想です。 少し長いですがお付き合いください。 TL;DR ソースはここにおいてます https://github.com/lboavde1121/cinderella あらすじ 以下あらすじ。 シンデレラは、継母とその連れ子である姉たちに日々いじめられていた。 あるとき、城で舞踏会が開かれ、姉たちは着飾って出ていくが、シンデレラにはドレスがなかった。 舞踏会に行きたがるシンデレラを、不可思議な力(魔法使い、仙女、ネズミ、母親の形見の木、白鳩など)が助け、準備を整えるが、魔法は午前零時に解けるので帰ってくるようにと警告される。 シンデレラは、城で王子に見初められる。 零時の鐘の音に焦ったシンデレラは階段にを落としてしまう。 王子は、を手がかりにシンデレラを捜す。 姉2人も含め、シンデレラの落としたは、シンデレラ以外の誰にも合わなかった。 シン

    [Go言語] もしも童話「シンデレラ」が、Goで書かれていたら。 - Qiita
    yuzu441
    yuzu441 2018/11/20
    “はじめに 登場人物構造体を定義する”
  • 設定ファイル記述言語 TOML - Qiita

    TOML は、GitHub の中の人が提案した、設定ファイルを記述するための小さな言語である。明瞭な文法なため、人間が読みやすい。また、TOML はハッシュテーブルに明確にマップするように設計されているので、様々な言語でのデータ構造へパースしやすい。 また、Vim で有名な NeoBundle が TOML パーサを搭載したことや、勢いづいている Go でのサポートも熱いことから、すごく伸びそうなフォーマットである。 TOMLノススメ 【個人メモ】設定ファイルフォーマットにはTOMLがいいのかも NeoBundleのプラグイン管理をTOMLに任せてvimrcをスッキリさせる GoとTOML 仕様 TOML の仕様は単純だ。 大文字小文字を区別する UTF-8 である必要がある ホワイトスペースとは tab (0x09) と space (0x20) のみ 改行とは LF (0x0A) と

    設定ファイル記述言語 TOML - Qiita
    yuzu441
    yuzu441 2018/11/18
  • 【React】新機能hooks - Qiita

    はじめに 会社で色々な事件に巻き込まれしまってなかなか書けなかった不幸な日々でした。 ちょっと乗り遅れた感あるんですが、自分の勉強と理解がてら新しい機能であるhooksを書いていきます。 hooksはclassを書くことなくstateとか、色々な機能を使うことができる新しい機能です!React v16.7.0-alphaから使えます。 create-react-appでつくると、僕がやってみたときは16.6だったので、ちょっとアップデートしないとできないので注意です。 そして、かつてはSFCと呼ばれる関数定義のコンポーネントたちも、ここではSFCではなくFCになります。 なにせstatelessではないからね・・・!!。 state この機能を使うと、functional componentがstateを扱えるようになります。ちゃんとre-renderされようとも値を保持してくれるみたいで

    【React】新機能hooks - Qiita
  • OpenSSLコマンドによる公開鍵暗号、電子署名の方法 - Qiita

    エントリは公開鍵暗号をプログラムで扱う方法のまとめの一環で、OpenSSLコマンドを使ってRSAの公開鍵暗号や電子署名を行う方法をまとめています。 知識の前提 公開鍵暗号と電子署名の基礎知識 ある程度の基礎知識があることを前提としていますので、自信のない方は 公開鍵暗号と電子署名の基礎知識 を先にお読みください。 RSA鍵、証明書のファイルフォーマットについて 諸々の操作で鍵や証明書のファイルが出てきますが、それらのファイルのフォーマットについてある程度の理解がある必要があります。自信のない方は RSA鍵、証明書のファイルフォーマットについて を先にお読みください。 環境 OpenSSLがインストールされているコンピュータが必要です。macOSLinux等の UNIX系コンピュータであればほぼ最初からインストールされているとおもいます。Windowsの場合はデフォルトではインストール

    OpenSSLコマンドによる公開鍵暗号、電子署名の方法 - Qiita
    yuzu441
    yuzu441 2018/11/01
  • バカにC言語は難しい~プログラミングの機会損失~

    プログラミングは難しい 注意: この記事は「プログラミング学習とはかくあるべき」、「こうやって学習するのが一番」ということを言いたいのではなく、プログラムを勉強したいが右も左もわからない人に少しでも勇気と情報を与えることを目的としています。過去の挫折経験からか、なかば愚痴っぽくなっていますがご勘弁を はじめに自分のプログラミング歴を軽く紹介して起きます。 年 言語 学習目的 2010 C言語 学校の実習 2011 C++ 組み込み系 2012~2017 None None 2018 Go,Js,Scala,Python 研究、Web開発 といった感じです。2012~2017年がNoneになっているのには原因が「C言語に挫折し、とにかくプログラミングがしたくなかった」からです。そう思ってしまった原因と、そこから立ち直ったことがこの記事を書いた理由です。 「おいおい、C言語ごときで挫折とは情け

    バカにC言語は難しい~プログラミングの機会損失~
    yuzu441
    yuzu441 2018/10/23
    これ学校で僕らがずっと言ってたやつなのでは
  • tmuxを効率よく使って開発を爆速にする最高の設定

    リポジトリを横断しての開発 自分は普段いくつかの(主にマイクロサービス)リポジトリを横断しつつコーディングをしています。 その際に tmux + zsh + neovim を使っているのですが、 tmux (とzsh)を使って複数のリポジトリを横断する最高の設定を使っているので紹介します。 まず前提として、複数リポジトリのマイクロサービスを立ち上げるとめちゃくちゃコンソールが増えると思います。 自分はプロジェクト毎にローカルサーバで1-2個・エディタ1つ・シェルで1つ・REPLで1つくらいは平気で使います。ついでに一時的な検証をするワークスペースを作って5-7個くらいは平気でプロジェクトを横断することがあります。 これを tmux の window と pane だけで管理するのは辛いのでやめましょう。 tmux には session という便利な機能があるのでこれを使います。 簡単に説明

    tmuxを効率よく使って開発を爆速にする最高の設定
    yuzu441
    yuzu441 2018/10/23
  • ブログはWordpressは辞めて、全て静的サイトジェネレーターに移行したい

    概要 簡単にブログを作ることができる静的サイトジェネレーターが沢山あるのに、使いづらいWordPressを使った案件が多いのと、静的サイトジェネレーターの魅力を紹介している記事が少ないかな?と思ったので、今回記事を書いてみました。 ちなみに、私のポートフォリオサイトはHUGOで実装していますが、無料で運用出来ています(正確には、HUGO + PostCSS + Netlify) かかっているお金はドメイン代のみです(独自ドメインじゃなければ、全て無料で利用可能) ポートフォリオサイト 2019/01に、認証を導入したいと思ったので、GatsbyJSにリプレースしました。 昔のHUGOのポートフォリオサイトは、GithubのRepositoryに移動させました。 なぜWordPressを辞めたいのか 表示速度が遅すぎる WordPressは、読み込み時に余計なファイルまで読み込むので、表示速

    ブログはWordpressは辞めて、全て静的サイトジェネレーターに移行したい
    yuzu441
    yuzu441 2018/10/14
  • 早速GAE/Go go1.11の次世代ランタイム試してみた

    Betaが公開されたので早速触ってみたのでサラッと書いてみた go1.9ランタイムからgo1.11ランタイム(2nd gen)に移行するためには最低限やることと気をつけること 中身的には このへん の内容です。 app.yamlgo111 ランタイムを指定する 今までは多分 api_version で指定していたと思いますが、 api_version は Deprecated になります。 そのため、 runtime へ指定します。 また、以下のタグも同様に Deprecated になります application_readable builtins login libraries threadsafe skip_files Deprecatedのフィールドを利用している場合、deploy時にエラーになるようです。 サービス単位でmainパッケージが必要 旧世代のランタイムだとinit

    早速GAE/Go go1.11の次世代ランタイム試してみた
    yuzu441
    yuzu441 2018/10/12
  • RSA鍵、証明書のファイルフォーマットについて - Qiita

    RSAの公開鍵暗号技術を利用するためには、鍵や証明書のファイルを扱う必要があるため、そのファイルフォーマットについて理解しておく必要があります。 実際、いろんな拡張子が登場するので、それぞれの意味を理解していないとすぐにわけがわからなくなります。そんなときのために備忘録をまとめてみました。 ファイルの拡張子の注意点 .DERと .PEMという拡張子は鍵の中身じゃなくて、エンコーディングを表している デジタル暗号化鍵やデジタル証明書はバイナリデータなのですが、MD5のハッシュ値のような単なる 値 ではなく、データ構造をもっています。.DERや .PEMはそのデータ構造をどういうフォーマットでエンコードしているかを表しています。そのため、.DERや.PEMという拡張子からそのファイルが何を表しているのかはわかりません。暗号化鍵の場合もあるし、証明書の場合もあります。 .DER 鍵や証明書をAS

    RSA鍵、証明書のファイルフォーマットについて - Qiita
  • “プログラミング言語Rust: 2nd Edition”の日本語版PDFを作成した - Qiita

    はじめに https://doc.rust-jp.rs/book-ja-pdf/book.pdf プログラミング言語Rust: 2nd Edition1の日語版PDFを公開しました! 組版上のエラーなどを見つけたら気軽にIssueなどで報告してほしいです 改善してほしい点なども歓迎します! 頃合いをみてrust-lang-jaに移すかも 移した 実はWeb版もあります! https://doc.rust-jp.rs/book/second-edition/ HTML版のソースはhazamaさんのMarkdownからRustコミュニティがフォークしたもので、PDF版と同じものを参照しています GitHub Repository https://github.com/rust-lang-ja/book-ja-pdf エラー報告などをお待ちしています。 追記 アスキードワンゴさんから出版されま

    “プログラミング言語Rust: 2nd Edition”の日本語版PDFを作成した - Qiita
    yuzu441
    yuzu441 2018/10/04
  • Docker Ubuntu18.04でtzdataをinstallするときにtimezoneの選択をしないでinstallする

    docker imageのベースイメージをubuntu18.04に上げた時に tzdata を apt-get install するところで止まってしまってハマったのでメモしておく 素のubuntu17.10の場合 Sending build context to Docker daemon 2.048kB Step 1/2 : FROM ubuntu:17.10 ---> e4422b8da209 Step 2/2 : RUN apt-get update && apt-get install -y tzdata ---> Running in dbe30f24e997 Get:1 http://security.ubuntu.com/ubuntu artful-security InRelease [83.2 kB] Get:2 http://archive.ubuntu.com/ub

    Docker Ubuntu18.04でtzdataをinstallするときにtimezoneの選択をしないでinstallする
  • イマドキのCodeIgniterでPHPUnit入門 - Qiita

    今回はPHPでのデファクトな「テスティングフレームワークPHPUnit」×「最新のCodeIgniter」な記事を書こうと思います。 想定の環境としては、PHP 5.4以上が入ってる前提です。 それとComposerを使います。Composerを使いたくない方は「イマドキのCodeIgniterでPHPUnit入門(Composer不使用編)」をごらんください。 1. Composerのインストール Composerでインストールする方法がイマドキです。なので、まず、Composerをインストールします。 グローバルにインストールする方法とプロジェクト配下にインストールする方法がありますが、ここではグローバルにインストールします。 $ curl -sS https://getcomposer.org/installer | php $ sudo mv composer.phar /usr/

    イマドキのCodeIgniterでPHPUnit入門 - Qiita
  • Reactの次期機能のSuspenseが凄くって、非同期処理がどんどん簡単になってた! - Qiita

    React17の次期新機能のSuspenseが凄い! と思ったので少し学習していました! Suspense自体の説明は下の動画がわかりやすいかも。 13:15ぐらいからプログラムのDemo 29:30ぐらいからSuspenseとはなんぞや、という説明をしてくれています。 Githubにdemoもあったので、実際に動かしてみたい方はこちらも是非是非 つまりSuspenseって何? Suspenseっていう機能があるわけじゃないんです、すみません 概念というかなんといいますか 自分の意訳・解釈なので間違っていたら土下座しに行きます 外部APIからデータを取得・表示するような処理で使えるんですね。 読み込みを開始したらLoadingを出して、APIが戻ってきたらデータを表示してローディングを消して……っていう、reduxやsagaを使って今まで頑張ってきているものがあると思うんですね。 API

    Reactの次期機能のSuspenseが凄くって、非同期処理がどんどん簡単になってた! - Qiita
  • 【PHP7.4】ついにPHPにプロパティ型指定がやってくる - Qiita

    Typed Properties 2.0というRFCが投票フェーズに入ったのですが、2018/09/13時点で賛成48反対0となっていて、ほぼ決まりの状態です。 Typed Properties 2.0 どういうRFCなのかというと、これです。 class User { public int $id; public string $name; public function __construct(int $id, string $name) { $this->id = $id; $this->name = $name; } } class Example { // 対象型はvoidとcallable以外全て public int $scalarType; protected ClassName $classType; private ?ClassName $nullableClassTy

    【PHP7.4】ついにPHPにプロパティ型指定がやってくる - Qiita
    yuzu441
    yuzu441 2018/09/15
    やっとかってくらいの気持ちがある
  • builderscon tokyo 2018 資料まとめ - Qiita

    builderscon tokyo 2018の登壇資料のまとめです。 Twitter等で見つけ次第掲載しますが、もし資料を見かけた方or資料を公開された登壇者の方がいらっしゃいましたら、DMやコメント等でお声掛けください。 各日のトラックごとにレギュラートークの資料のURLが時系列で並んでいます。 📆0日目(前夜祭) 📎 🚪Track E(イベントホール) 📆1日目 🚪Track A 📎オープニング https://medium.com/@lestrrat/builderscon-tokyo-2018-%E3%82%AA%E3%83%BC%E3%83%97%E3%83%8B%E3%83%B3%E3%82%B0%E4%BD%9C%E6%88%90%E3%81%AE%E8%A3%8F%E5%81%B4-b8fac8390aca 📎Webサービスにて200週連続で新機能をリリースす

    builderscon tokyo 2018 資料まとめ - Qiita
  • 【PHP超入門】名前空間(namespace・use)について - Qiita

    Udemy で講座の販売を開始しました! Udemy で「プログラミング学習の心得&HTTPの基礎」の動画講座を公開しました。 特別に 85% OFFのクーポンを発行します。 通常価格 10,800 円が 1,800 円で購入できます。 動画内でも説明していますが、初心者・初学者向けの内容です。 事前に自分の知りたい内容・興味のある内容か確認してからご購入ください。 挫折した人が教える PHP プログラミングシリーズ Vol.1『学習の歩き方』 はじめに Webアプリケーションを作るときに名前空間という機能がよく利用されています。 便利な機能なので、理解しておきましょう。 この記事は、関数ぐらいまでの知識がある方が対象です。 クラスの基礎(プロパティやメソッド)知識があると尚よいです。 クラスのプロパティやメソッドについて理解していない方は、下記の該当箇所をご覧ください。 Qiita -【

    【PHP超入門】名前空間(namespace・use)について - Qiita
    yuzu441
    yuzu441 2018/09/07
  • 作業ブランチではcomposer.lockの変更を最小化してください - Qiita

    お疲れ様です。田中です。 PHPプロジェクトの作業ブランチ内で、追加のライブラリが必要になったとき composer.json に変更を入れますよね。このときおもむろに composer update を叩くと composer.lock に派手な差分が発生するので、絶対にしないでください。 composer update はすべてのパッケージについて、現時点で可能な限り高いマイナーバージョンに上げようとします。当然、自分が master からブランチを切った時点でインストールされていたパッケージのバージョンは、現時点より古くなっています。直接使っているものだけでなく、その依存パッケージも上がります。 いちど composer.lock に大きな差分が発生すると、コミットログが無駄に大きくなるばかりでなく、その後のりベースやマージに支障をきたします。後のリベース/マージ後はつねにフルの

    作業ブランチではcomposer.lockの変更を最小化してください - Qiita
    yuzu441
    yuzu441 2018/09/07