Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

PHP5までは暗号論的に安全な疑似乱数生成器(CSPRNG)を提供する標準関数がなかったため、CSPRNGが必要な場合に自分で明示的に/dev/urandomにアクセスしたりしていました。opensslエクステンションおよびmcryptエクステンションもCSPRNG関数を提供していますが1、どちらも必須のエクステンションでは無いため、ライブラリなどでは採用しにくい状況があったはずです。 PHP7から、どの環境でも動くCSPRNG関数としてrandom_bytes()とrandom_int()の2つが新規実装されます。 <?php // ランダムな2バイトの文字列を返す。各バイトは0x00から0xffのどれか。 var_dump(bin2hex(random_bytes(2))); // 5以上9以下の整数をランダムに返す var_dump(random_int(5,9)); 実装 Wind
参考文献 オープンソースソフトウェアとは - Weblio辞書 プロプライエタリソフトウェアとは - Weblio辞書 派生プログラムとは - Weblio辞書 フリーウェア - Wikipedia ソフトの配布とライセンス - 可知豊 OSSをライセンス的に正しく使う/プロプラだけの製品とするための11のチェックポイント - NEC GitHubを利用する際に注意したいOSSライセンスのポイントとは - Think IT オープンソースとは - 日本ユニシス 著作権審議会マルチメディア小委員会ワーキング・グループ中間まとめ - 公益社団法人著作権情報センター CRIC 企業技術者のためのOSSライセンス入門(1):訴訟が増えている!? OSSライセンス違反 - @IT 2.「オープンソースの定義」を理解する OSSを規定する上で重要となる「オープンソースの定義」を知っておくと、主要ライセ
はじめに DockerにGolangの環境を閉じ込めたときデバッグどうするの?と思ってなかなか情報を集められなかったのでまとめます。 検証環境 ホスト側 Windows10 + Boot2Docker + VisualStudioCode Sierra + Docker for Mac + VisualStudioCode コンテナ側 golang:onbuildを使用(執筆時点ではgolang 1.7) Golangのデバッガについて VisualStudioCodeではDelveを使うようなので、Delveを使います。 ドキュメントやissuse見てるとリモートデバッグもサポートしていて、もしかしてDockerもいけるかもってところが発端。 Dockerのリモートデバッグについて リモートデバッグが可能なようで、こちらをベースにGolang用に書き換えます。 Live Debuggin
この記事は、技術系同人誌としてまとめるはずだった原稿をほぼそのまま転載しています。諸事情により向こうかなり長い間同人誌即売会に売り手として参加することが難しくなったためです。 長いですが、お楽しみいただければ幸いです。 まえがき この本は、Rubyコミッタである卜部昌平に、その妻である私、卜部一恵がRubyのtrueとfalseについて突っ込んで聞いてみた話です。本文は両者の対話形式で進んでいきます。 私は昌平と同じ大学同じ研究室に所属していたのでプログラミングについての基礎は一応ありますが、エンジニアとして職を得たことはありません。つまり、プログラミング初級者です。この本はそのくらいのレベル感の本だと思います。 私自身が初級者なりにRubyを使っていて、if文が思った通りに動かない、そんなときに抱いた疑問からこの本が生まれました。 同じような疑問を抱いている方の一助になれば幸いです。 は
バージョン指定でいっつもこいつの違いを忘れてしまって、npm とか semver のドキュメントを探すところから始まるから自分用のメモ。 ^1.1.2 = 1.x ~1.1.2 = 1.1.x (追記 一応↑は間違っていないのだけど、厳密にいうとちょっと間違っていた) チルダ表記 ~ "明記したところ以下のバージョンがあがることのみ許容" ~1.1.2 = 1.1.2 <= version < 1.2.0 ~1.1 = 1.1.x ~1 = 1.x オリジナルの定義は、 Allows patch-level changes if a minor version is specified on the comparator. Allows minor-level changes if not. キャレット表記 ^ "一番左側にある、ゼロでないバージョニングは変えない (それ以下があがることは
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? はじめに 「開発者(個人)のための」としているのは、別に自分でやっても良いんだけど Jenkins に任せられるなら任せたい、くらいのモチベーションを表現したつもりです。 ここでは、スレーブの作り方と使い方を簡単にまとめてみました。 環境 Ubuntu 14.04 LTS Jenkins 1.580, 1.582 途中から 1.582 に Upgrade しました スレーブの設定方法 まずはスレーブを作ってみる とりあえず作るなら、localhost だけで十分です。 スレーブの新規作成 スレーブの設定 赤枠で囲んでいる部分が、手を加え
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 判断軸 1. 成長しそうか 過去成長してきたか 年齢に比例したスキルを持っているか その経歴で精力的にスキルアップしてきたと考えたときに、どのようなスキルを持っているのが適切か考える。 例えば優秀なSEと優秀なコーダーは別であり、優秀なコーダーとしての能力がないSEが優秀でないとは言えない。 過去成長してきた人であればある程度の業務内容の違いは吸収できると考える。 エンジニアリングの分野は広いため、面接者自身の経験で必須スキルを判断しない。 たとえば高負荷サービスを経験してない人に負荷対策知識について聞いて、成長性がないと判断はできない
本当はGo月Go日に書きたかったけど、ビール飲んで寝てしまったの今日(Go月6日)になりました。 Goのインタフェースは、明示的に実装する必要がなく、インタフェースが定義するメソッドリストをその型が持っていれば、そのインタフェースとして振る舞えます。 構造体に埋め込んだ型が持つメソッドについても、埋込み先の構造体のメソッドの一部としてみなすことができるため、インタフェースの実装の頭数に入れることができます。 インタフェースの実装と埋込みの関係についてはインタフェースの実装パターンという記事に詳しく書いているのでそちらを参考にしてください。 さて、埋込みによって構造体にインタフェース実装させるパターンは思ったよりも使えます。なぜなら、埋込みは単なる匿名フィールドに対して、インタフェースは実装を隠し、型を抽象化ができるからです。このパターンは、共通部分を抜き出して、それを複数の型で使う場合に非
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 追記 2017/09/21:http pingも打てるように機能を追加しました。kwskはイカ。 golang版Exping「pexpo」にhttp pingの追加とその実装。 pexpo https://github.com/nnao45/pexpo どういうツールなのか。 題名にもあるような、Exping的なものをgolangでterminal上で動くアプリに描き下ろしたものです。 とても軽く、IPv6も対応しており、pingのintervalも500msまでならしっかりと打てます。 windows,Mac,Linux等プラットフォ
これは Hubot Advent Calendar 2014 の 4 日目の記事です。 また @bouzuya の Hubot 連載の第 4 回です。目次は、第 1 回の記事にあるので、そちらをどうぞ。 前回は Hubot を Heroku で動かして Slack から話す方法 について紹介しました。ここまでで Hubot は元気よく動きますし、みんなで hubot pug bomb してログもめちゃくちゃ、最高ですね! ……でも、まだまだです。 もっとイカした Hubot にするために、今回は Hubot スクリプトの追加を紹介しましょう。 前提条件 その前に今回の前提条件を。 前回までにつくった Hubot GitHub アカウント 今回は GitHub 上にある Hubot スクリプトを fork し、書きかえますので、GitHub アカウントと基本的な操作ができることが前提です。
概要 UserLocalの人工知能ボットAPIというのを使って、SlackのBotと日本語で会話できるようにしてみました。 Slackで受け取ったメッセージを人工知能ボットAPIに投げて、受け取ったものをまたSlackに流してるだけです。 人工知能ボットAPI:http://ai.userlocal.jp コード全体 const Botkit = require('botkit'); const request = require('request'); const chatBotToken= 'your-chat-bot-api-key'; const controller = Botkit.slackbot({ debug: false }); controller.spawn({ token: 'your-api-token' }).startRTM() controller.hea
注意 ⚠️ kube-lego is in maintenance mode only. There is no plan to support any new features. The latest Kubernetes release that kube-lego officially supports is 1.8. The officially endorsed successor is cert-manager. If you are a current user of kube-lego, you can find a migration guide here. ⚠️ kube-lego は既に cert-manager によって置き換えられており、この記事は単なる歴史的文書です。 既に少し古いですが、 GKE で TLS 証明書を自動管理(cert-manager DNS-
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? はじめに 先日cordovaユーザ会の勉強会で恥ずかしながら初めてService Workerという言葉を知り、興味を持ちました。アドベントカレンダーを書くということで自分も勉強になるという目的て調べた結果と個人的な感想(少々)をまとめてみました。実装について全く書いていません、ご了承ください。 なぜService Workerを使う その前にProgressive Web Apps (PWA)っていうのがあって Googleさんの定義はこうですと1 要するにネイティブアプリ的なユーザ体験を提供できるウェブアプリということですかね。 ホ
背景 ソフトウェアの脆弱性を確認する際、必ず出てくる用語であるCVE, CVSS, CWEをざっくり把握しておく。 簡単に言うと、 CVEは世の中の脆弱性の一元的なID、 CVSSはその脆弱性の深刻度点数、 CWEはその脆弱性がどのカテゴリなのか を表す。 参考文献 情報セキュリティスペシャリスト - SE娘の剣 - IPA - 共通脆弱性評価システムCVSS概説 CVE Details CVE (Common Vulnerabilities and Exposures) - 共通脆弱性識別子 一言でいうと、「世の中の脆弱性情報を一意に管理するためのID」 様々のソフトウェア製品の脆弱性に一意の識別番号「CVE識別番号(CVE-ID)」を付与し、脆弱性を管理 命名規約は、「CVE-YYYY-XXXX」 : YYYYは年、XXXXは一意の番号を表す。 例)CVE-2014-3566(SSLv
もくじ はじめに 変数 関数 オブジェクトとデータ構造 クラス S: 単一責任の原則 (SRP) O: オープン/クローズドの原則 (OCP) L: リスコフの置換原則 (LSP) I: インターフェイス分離の原則 (ISP) D: 依存逆転の法則 (DIP) 同じことを繰り返すな (DRY) はじめに この記事はRobert C. Martinの本「Clean Code」のソフトウェアエンジニアリングの法則をPHPに適合させたものです。これはスタイルガイドではありません。読みやすく、再利用しやすく、そしてリファクタリングしやすいPHPコードを書くためのガイドです。 ここで挙げられるすべての原則は厳密に守らなくてはいけないわけではなく、少し守らなかったところで一般には許容されます。あくまでガイドラインですが、Clean Codeの著者たちがみな長年に渡って経験してきたことです。 この記事(
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く