この記事の目的 SELinux って邪魔者ですか? 「トラブルシュートの時に邪魔だから」「トラブルの元だから」とか言う理由で /etc/selinux/config で SELINUX=disable したり setenforce 0 したりしていませんか? SELinux は理解さえすればとても簡単です. 本番環境でファイアウォールと WAF の設定をして満足していないで SELinux を使いましょう. 対象 SELinux を初めて触る人向けです. 玄人の方は他へ... 本稿の範囲 本稿では SELinux を導入しておしまいです.あくまで「みんな,簡単だからね,使おうね!」と言いたいのです. 本当は SELinux の効果を示すために Exploit を仕込んだアプリケーションから root を取って不正にファイルに触るところまでやりたいのですが,これまた別の記事にします. 僕の願
この記事は下記のURLにあるコミックマーケット90で頒布した同人誌と自分が管理するブログの記事を微修正し、転載したものです。 南関東開発機構 : 同人誌「日本の行政機関が公開中のAPIについて調べてみた本」を公開しました http://blog.livedoor.jp/south_kanto_dm/archives/52143201.html 南関東開発機構 : 日本の行政機関が公開中のAPIについてのまとめ(2016年8月17日暫定版) http://blog.livedoor.jp/south_kanto_dm/archives/52143463.html 前書き この記事の目的は、日本の行政機関等が公開しているAPIを紹介する事です。 日本の情報技術は他国と比較して、立ち遅れている部分があり、これを立て直すのが喫緊の課題であると言えます。 日本政府もこの問題に危機意識を持ち、先日、経
環境 Mac OS X EI Capitan 10.11.6 Vagrant 1.8.7 現象 vagrant upでboxを取得するようにした状態で、upするとcurlで落ちる。 config.vm.define 'api' do |api| api.vm.box = 'api' api.vm.box_url = 'https://s3-ap-northeast-1.amazonaws.com/path/to/api.json' $ VAGRANT_LOG=debug vagrant up api ... ERROR vagrant: Vagrant experienced an error! Details: ERROR vagrant: #<Vagrant::Errors::DownloaderError: An error occurred while downloading th
概要 マイクラなどの地形をどうやって自動生成しているのか気になったので, 代表的なものをさっくり実装して確認してみた. この記事では,フラクタル地形についてさっくり紹介した後,以下の手法について述べる. ・バリューノイズ ・パーリンノイズ ・中点変位法 なお,全て二次元ベースで実装している.理論自体は何次元のものでも適用可能である. 事前準備 コード中でオレオレ構造体やオレオレマクロを使っているので,載せておく. //指定範囲でクリップする. #define CLIP(e,l,h) (min(max(e,l),h)) //配列の要素数取得. #define COUNTOF(a) ( sizeof( a ) / sizeof( a[0] ) ) //ベクトル構造体. #define VECTOR SVector2D<float> template <class T> struct SVect
Help us understand the problem. What is going on with this article? 会社で働いていると、運用チームからの問い合わせがあると思います。 問い合わせというものは、割り込みに繋がり生産性を下げるのでなるべく減らしていきたいものです。 Redmineで管理されているオープンなチケットを10分の1に削減した話をまとめます。 常時、約50枚ほどオープンなチケットを5枚ほどに減らしました。 問い合わせが多くて辛みを味わっている方の参考になれば。 概要 Web自社サービス タスク管理ツール Redmine 毎日、5枚ほどチケットが増える 運用と開発がそれぞれ20人ほど こんな環境です。 改善のきっかけ うちのチームは、当番制で「問い合わせの窓口」(以下、窓口)となる人を作ります。 窓口の人がチケットを解決したり、有識者にチケットを委譲した
家の照明などを操作しようと思うと、やはりモバイルアプリよりも簡単な物理ボタンが欲しくなることは多いと思います。 流行に身を任せて、市販のIoTボタンを買ったり、ArduinoやESP8266などで電子工作したりしてもいいですが、USBでつながる普通の無線マウスで実用的には十分なことがあったので紹介します。 ほかのIoTボタンと比べてこんなメリットがあります。 安い (737円とか) どこでも手に入る 設定が不要 乾電池で動作して長持ち ホイールが使える マウスで電球スイッチ 今回は、家全体の電球を操作するボタンをつくるのを例に説明します。電球にはPhilips Hueを使って、HTTP API経由で電球を制御します。このようなものを使います。 USB接続のワイヤレスマウス Raspberry Pi (常時稼働のマシンならなんでもOK) 制御するもの (今回はHue) マウスをクリックすると
はじめに 電力自由化にともない、スマートメーターの設置が進められています。 電力会社が設置したスマートメーターと、各社から販売されているHEMS見える化端末的なモノを導入すると消費電力などをリアルタイムに見ることができるようになります。 しかし!、HEMS見える化端末的なモノは住宅リフォーム業界的なプライス設定ですんごくお高いんです。 そこで、HEMS見える化端末的なモノを安価に自作しちゃおうというのがこの記事の趣旨です。 おことわり 東京電力供給区域での話を前提としていますが、他社供給区域にお住まいの場合は電力会社名を読み替えてください m(_ _)m なお、通信の物理レイヤは各社で決められるのですが、フタを開けてみたら全国Wi-SUN(後述)で統一されてました。購入すべきハードウェアは全国どこでも変わりません。 ハードウェア スマートメーターを設置してもらう 今となっては特別な事情が無
依存関係 natto が利用できる必要があります。 使い方 Rhymer::Parser.newの引数に文章を渡すと、検査結果が含まれたインスタンスが生成されます。インスタンスのrhymesメソッドを実行すると、韻を踏んでいるフレーズの組み合わせの配列が返されます。 require "rhymer" rhymer = Rhymer::Parser.new("今日はとても良い天気ですね。こんな日は自然に元気になります。") rhymer.rhymes.each do |rhyme| puts [rhyme[0], rhyme[1]].join(" ") end require "rhymer" lyric = <<"LYRIC" 1853年(嘉永6年)、長崎の出島への折衝のみを前提としてきた幕府のこれまでの方針に反して、江戸湾の目と鼻の先である浦賀に黒船で強行上陸したアメリカ合衆国のマシュー
弊社に5年間在籍していたロシアの天才ハッカーが先日退職しました。 ハッキング世界大会優勝の経歴を持ち、テレビ出演の経験もある彼ですが、正直こんなに長く活躍してくれるとは思っていませんでした。彼のようなタレントが入社した場合、得てして日本の大企業にありがちな官僚主義に辟易してすぐに退職するか、もしくはマスコットキャラとして落ち着くかのどちらかのケースがほとんどなのですが、彼は最後まで現場の第一線で活躍してくれました。 そんな彼が最後に残していった退職メールがなかなか印象的だったので、その拙訳をここに掲載します(転載について本人同意済み。弊社特有の部分は一部省いています。) ああ、なんという長い旅だったろう。この会社で5年間もセキュリティを担当していたよ(諸々の失敗は許してくれ) 俺は他の退職者のように面白いことは書けないが、私のこの退職メールを読んでくれている人、特に新人エンジニアのために、
注意とお願い この記事の内容はもはや古いです。ここに書いている方法では動かないものをいくつか見つけました。参考にする際は動作をよく確認してから使ってください。 ひとつお願いがあります。「あれ、動かないぞ」というコードを見つけたら是非コメントか編集リクエストで教えてください。解決方法までなくても結構です。「これはもう動かないよ」という印をつけたいのです。 この記事はYou Don't Need jQueryの日本語訳と同じ内容です。 先日ひょんなことからYou Don't Need jQueryの日本語訳をさせていただきました。著者のCam Songさんからも快諾をいただけたので1、Qiitaでも公開させていただきます。 なお、本家の英語の説明は継続的にメンテされているので、この記事の情報は古くなっている可能性があります。 追記 この記事は当初は「もうjQueryは必要ない」というタイトルで
このポストは以下の記事を意訳したものです。 I’ve Just Liberated My Modules - Medium.com Twitterでフロント系のエンジニアの方がざわついていたので訳しました。間違いが有りましたら、ご指摘いただけると幸いです。 以下、意訳。 数週間前、特許弁護士が私にメールをよこしました。メールの内容によると、私の作成した"kik"パッケージをnpmから削除せよ、とのことでした。返答としては"No"でしたが、弁護士からは次のような返信が来ました。"悪いとは思いますが、kikは我々の登録済の名称ですので、あなたの家に弁護士がやってきてあなたのアカウントを取り下げてもらうことになるでしょう。" 私が"kik"のコードを書き始めたとき、同名の企業があるなんて知りませんでしたし、企業に名前を変えさせられるなんてゴメンです。要求を拒絶された彼らは、npmのサポートに対し
はじめに こんにちは!@moutendです。私は視覚障害があるので、普段は画面を見ずにMacのVoiceOverというスクリーンリーダーの音声のフィードバックを頼りにプログラミングをしています。ところで最近@ssotoyaさんの記事にて音声を頼りにプログラミングする様子が公開されました。スクリーンリーダーの音声を聞いたことがありますか? - ラック公式ブログ - 株式会社ラック@ssotoyaさんは全盲のため全く目が見えないのですが、超高速でコーディングをされています。控えめに言って最高にロックです。私も負けていられません。ということで、この記事に触発されて、私も画面を全く見ずに音声のフィードバックのみを頼りにプログラミングしている様子をキャプチャしましたので公開してみます。具体的には、QuickTimeのスクリーンキャプチャ機能を使って画面を撮影しつつ、音声はsoundflowerという
Railsアプリで検索機能を実装するケースは非常に多いと思います。 簡単な検索であればwhereとLIKEを使って書けますし、やや複雑なものもeverywhereが便利ですが、ここではもっと複雑な条件の組み合わせを実装する時に便利なransackを紹介します。 基本 searchメソッドで条件を指定し、resultメソッドで結果を返します。 resutはActiveRecord::Relationを返すので、SQLは普通のActiveRecord同様遅延評価されますし、さらにwhereを繋げたり、kaminariでページングしたりすることもできます。また、to_sqlで発行されるSQLを確認することもできます。 もう少し詳しく書くと、searchはModelまたはActiveRecord::RelationをレシーバにしてRansack:Searchを返し、Ransack:search#r
ransackはrails用の検索機能を実装するためのgemです。 比較的シンプルなコードで複雑な検索を実装することができます。 ransackの概要と使い方についてはRansackのススメを参照してください。 ここでは実際に使用するまでのサンプルを作ってみます。 プロジェクトを作成 require File.expand_path('../boot', __FILE__) 〜〜 ( 中略 ) 〜〜 module RansackStudy class Application < Rails::Application 〜〜 ( 中略 ) 〜〜 # Set Time.zone default to the specified zone and make Active Record auto-convert to this zone. # Run "rake -D time" for a lis
Qiita:Teamに投げた社内ドキュメントだったけど、特に問題ないのでQiitaにも投げる。 前提として browserify-rails とbabelify が導入されている状況を想定してる。 基本方針 新規コードはES2015で書く 本番はbrowserify(-rails)でコンパイルする。 単体テストは node 環境下で走らせる テスト環境下では jsdom で window, document をモックする 単体テストでは ブラウザ特有の挙動はテストしない 裏側の環境(browserifyやspec-helper)は難しくして良いが、利用者からみえる範囲は複雑にしない(npm install; npm testで走る) Universal JavaScript に寄せることでコードのポータビリティを上げる 事前準備 browserify-railsを導入する。 .babelr
■パターン1 Win / Mac共に文字化け ■パターン2 Winでは私の環境では文字化け発生しなかったが、ググってみるとバージョンによってはUTF-8だと文字化けするという声が多いので、ちょっと不明。 Macで文字化け。Macに対応させるにはUTF-16が必須。 ■パターン3 Macでの文字化けは解消されるものの、エクセルで表示させるとカンマの存在も虚しく、1セルにすべて表示されてしまう。 ↓こんな感じ ■パターン4 拡張子をxlsにすると、winで無慈悲な警告メッセージが再び表示されてしまう。 ■パターン5 何のエラーも表示されなかったベストパターン。(拡張子詐称なのを除けば) 私なりの結論 Macユーザーを無視出来るなら、UTF-16/BOM有りにするだけでもOK TAB区切りなのにcsv拡張子にするのが気持ち悪い&許容できないなら、Macユーザには自力でセル表示してもらうように促す
Service Workersでプッシュ通知を受信できるようになったわけですが([1]: GCM)([2]: Web Push)、Chromeではバージョン48まではGCMで通知だけができるようになっただけで、メッセージ本体は通知を受けてからService Workerでサーバから改めて受け取るような実装をする必要があったりします。 ここで、Service Workersでは、XMLHttpRequestが使えません。その代わり、XMLHttpRequest (以下、XHR)に代わるWHATWGの仕様としてFetch APIがあり、Service WorkersではこのFetch APIを使うことになっていますので、その使い方を簡単に紹介します。 Fetch API自体は、Service Workers専用のものではなく、メインスレッドでもXHRの代わりに使うことが可能です。現時点で実装し
リンクしないけど、0の0乗がゼロ除算同様未定義であるというような記事がブクマを集めていてなんか困るよなぁと思って書いた。 前提として である。 $x^y$ は、$(0,0)$ で不連続になっているので、極限を根拠に $0^0$ を定めるとすると、不定とか定義されないとか、そういうことになる。 これは未定義のほうが好ましいかもしれない理由のひとつにはなるけれど、決して決定的ではない。 連続性を根拠にするのは、一見未定義であっても連続性を保つように定義できれば幸せになるからだと思う。 とはいえ。 $x^y$ の $(0,0)$ における連続性と、$0^0$ の値は、別の話だ。 どうやっても連続性が保てないからといって、よい定義が存在しないという事にはならない。 というわけで、$0^0$ が時折現れる世界をより住みやすくするためにはどうすればいいのかを考える。 ゼロ除算のように未定義にするのがよ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く