Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?
JavaScriptにはむしろもっと抽象化がもたらされるべき - Qiitaという記事で、もう少し踏み込んだ話を書いてみました。 某所でReact.js界隈の人に聞きたいというフレームが発生したのだが、はてなブックマークでコメントしたらIDコールされたので、反論をここに書くことにした。(最近は技術系記事はQiitaにしか書いてないので)。 あくまで僕が考えるなので、JavaScript界の人達が本当はどう思っているかはわからない。そもそもJavaScriptを本格的にさわり始めたのごく最近なので、JavaScript界では異端かもしれない。 元記事では論点(感情)が複数ごちゃまぜになっていたので僕は辛口のブコメを書いたのだが、論点をごちゃ混ぜにするのは意図的にやってるのならばただの詭弁だ。なので、まずは元の記事での論点を整理する。 jQuery (or フレームワーク?) 言語採用 Rea
Help us understand the problem. What is going on with this article? 3月24日に発表になったLINEのBOT API Trial Accountが、いよいよ4月7日から実際に試せるようになりました。既に多くのBOTが開発者の手によって作られ始めたようですね。QiitaにもいくつかBOTの作り方が投稿されていますので、"LINE BOT"というキーワードで探してみてください。 実際の作り方の基本は他の投稿に任せるとして、BOT API自体は非常にシンプルな作りなので、試すこと自体はすぐにできると思います。しかし、シンプルな反面、仮に近い将来「Trial」が取れて、友だち50人制限が撤廃された時、それでも正しく安定的に動作するBOTとするには、アーキテクチャ上の工夫が必要になります。個人的に、既にLINE BusinessCo
$ sudo apt-get install ntp ntpdate Reading package lists... Done Building dependency tree Reading state information... Done Use 'apt-get autoremove' to remove them. Suggested packages: ntp-doc The following packages will be upgraded: ntp 1 upgraded, 0 newly installed, 0 to remove and 93 not upgraded. Need to get 613 kB of archives. After this operation, 0 B of additional disk space will be used. G
Autogradという野郎が乗り込んできました。はい、そりゃもういきなり。複雑な確率モデルや損失関数だとしても、パラメータに関する勾配をこれでもかというぐらい簡単に計算できちゃうので、機械学習の世界に大きな影響を与えそうです。現時点では、PythonとTorchでの実装が公開されているようですが、これからJuliaなど他の言語でも実装されていきそうですね。 (補足:この記事を書いたすぐ後にGoogleがTensorFlowなるものを出してきまして、そちらでも自動微分がしっかり実装されてるみたいです〜。機械学習関連のフレームワークは移り変わりが激しいですねー ^^; ) ちなみに始まりはこんな感じでした。 ゆるいですね。 とりあえずチュートリアルやりながら、Python版チュートリアルの前半部分にテキトーな日本語訳をつけたので、ここでシェアしておきます。英語が読める方は、僕のヘンテコな日本語
Docker ? Packer ? 何が違うの?と個人的にわけがわからなくなっていたのでまとめてみた インフラ系技術の 3 つのレイヤー Orchestration アプリケーションのデプロイ Capistrano Configuration ミドルウェアレベルの設定 Chef, Puppet Bootstrapping OS のインストールにあたる領域 Docker, Vagrant, Packer 今回は、Configuration ツールと Bootstrapping ツールの違いをまとめる Bootstrapping Tool Docker 公式ページ Linux コンテナの内部でアプリケーションを動作させるためのツール Go 言語で記述されている 環境構築は Dockerfile と呼ばれるファイルでコード化できる コンテナ型仮想化を提供するツール イメージの作成から実行まで A
はじめに 開発ロードマップ(PEP-478)によると正式リリースが9/13(おそらくUS時間)に予定されているPython 3.5。追加のリリース候補(rc4)が9/9にリリースされたこともあり、多少遅れる可能性もあるが、おそらくは一週間以内にでることであろう。ということで、Python3.5の変更点の日本語まとめ + 一言コメントをしてみた。元ネタはこちらの冒頭にある "Summary - Release Highlights"。 なお、Python3.5を試すには、最新のリリース候補をここからダウンロードすればよい。あるいはpyenvを使っている人はpyenv installで簡単に導入できるが、pyenvの最新版v20150901ではrc2までしかサポートされていないのでそれで我慢するか、pyenvをHEADから取ってくる必要がある。homebrewを使っている場合はこんな感じ。 b
cowboyとectoでシンプルなRESTサーバを実装してみます。 (素直にPhoenixを使えとの神の声が聞こえてきそうですが、勉学目的で地道に行ってみます) 以下の通り動作するサーバを実装します: $ curl localhost:3000/hello-school-live/characters ["丈槍 由紀","佐倉 慈","若狭 悠里","恵飛須沢 胡桃","直樹 美紀"] このサンプルでは最新のcowboy 2系を利用しています(@ColdFreak さん、ご指摘ありがとうございます)。cowboy 2系ではErlang 18以上が必要となります。また、1系のサンプルについてはソースのみですがこちらにあります。 事始め まずmixでアプリケーションを作成します: $ mix new --sup hello_school_live * creating README.md *
はじめに Webで使えるビデオチャットサービスを開発しましたので、システム構成や使用したフレームワークやサービス、開発のポイントなどまとめてみました。 (去年にはQiitaの投稿を作っていたのですが、下書き保存したまま忘れて今頃の投稿になってしました。。) 月々のランニングコストは1000円以内、開発工数は1人月以内で作成しています。 WebRTCが出てきたおかげで、かなり容易にビデオチャットサービスが開発できるようになっていますので、よければ参考にしてください。 開発のポイント、コードだけでなく、開発の動機から、システム構成を決める為、開発前後に行ったビデオチャット関連の技術調査なども載せています。必要最小限の事だけ把握したい方はその辺りは読み飛ばしてください。 開発ビデオチャットサービス: ビデオチャッターズ (http://videochatters.net/) 開発動機 5~6年ぐ
はじめに 最近ではInfrastracutre as codeやImmutable Infrastructreの考え方によるインフラ管理が浸透してきました。 ChefやAnsibl、最近ではItamaeといったプロビジョニングツールの選択肢が増えてきとはいえ、未だに敷居の高さを感じ導入に踏み切れていない方も多いのではないでしょうか。 そこで今回はお手軽に始められるインフラ構築ツールとしてconfdについてまとめてみました。 confdとは goで書かれた設定ファイル管理ツールです。 kelseyhightower/confd 主要機能は設定ファイルのテンプレートエンジンなのですが、設定ファイルの生成前後で外部コマンドを実行することが可能です。 そのため 設定反映のための前処理 設定ファイルの自動生成 設定反映のためプロセス再起動 といった一連の作業を担わせることができます。 また、構成もシ
Java Magazine で取り上げられていて存在は知っていたものの、特にチェックはしてなかった GS Collections。 Java Day Tokyo 2015 や JJUG CCC 2015 で再びその名前を耳にし、気になってチラッと実装を見たところ、面白そうだったので使い方を調べてみた。 【追記】Eclipse Collections 2015 年の 10 月から 12 月にかけて、 GS Collections は Eclipse 財団に移管された。 名前も GS Collections から Eclipse Collections に変更された。 公式サイトはこちら → Eclipse Collections - Features you want with the collections you need. (日本語ページ) GS Collections と、機能的な差
はじめに Ruby on Rails(以下Rails)でMongoDBを使う際のORマッパーとして現在はMongoidが標準的に使用されるようになりました。MongoidはActive Recordに似たAPIを備え、かつMongoDBのスキーマレス、ドキュメント指向、ダイナミッククエリ、アトミック操作といった特徴をRubyから容易に扱えるように設計されています。 本記事ではMongoid 4.0.0、Rails 4.1.8をベースに、RailsでMongoidを使う利点を述べ、実際にサンプルアプリケーションを動かして紹介したいと思います。 Mongoidを使う利点 これまでのプロジェクトではActive Recordを介して主にMySQLを使用していましたが、Mongoidを使用するようになって、以下の利点を実感しています。 Active Recordと共通もしくは拡張したクエリと永続化
似ているようで全然違う!?Activerecordにおけるincludesとjoinsの振る舞いまとめRubyRailsActiveRecord Activerecordを使ってるとき、関連(Association)のあるmodel同士をまとめて取得したい時がけっこうある。そんな時、includesやjoinsを使えば効率良くデータを取得出来るんだけど、実はこの二つは振る舞いや特徴が全然違ってたりする。ややこしい気がしたので、ここでちょっとまとめておく。 先に結論を書いておくと、基本的には includesは先読みしてキャッシュしておく。 joinsはただINNER JOINしてくれる。 と思っておけばOK。 ちなみに、railsのversionは4.1.0。Web上に落ちてる情報は古いせいか若干現状の挙動とは違ってたりしたので、気をつけた方が良さそう。
Rails4.1で『改訂新版 基礎Ruby on Rails』のコードで「ActiveModel::ForbiddenAttributesError」の対処Rails # 会員の新規登録 def create @member = Member.new(params[:member]) if @member.save redirect_to @member, notice: "会員を登録しました。" else render "new" end end # 会員情報の更新 def update params.permit! @member = Member.find(params[:id]) @member.assign_attributes(params[:member]) if @member.save redirect_to @member, notice: "会員情報を更新しました。"
Crystal というのが Ruby 似の言語らしいので試してみる。 vim https://github.com/rhysd/vim-crystal を入れる。 仕様その他 http://crystal-lang.org/docs/ に公式のドキュメントがあるので読んでいく。 大体 Ruby と同じ文法だと思って差し支えないようだけれど、いくつか差異があるので気をつけながら読む。 ぐっと来たとこ書いていく 型 class Pigeon getter name def initialize(@name) end def appeal puts("My name is #{@name}.") end def appeal(n : Int) n.times do appeal end end end hato = Pigeon.new("rosylilly") hato.appeal hato
本投稿のねらい 比較的容易と言われている Android アプリを解析してみること 今回は、難読化ツールである ProGuard を使用していない apk を対象としている ProGuard 適用時との比較は少し記載 対象とするソースコード https://github.com/kasaharu/AnalysisTestingApplication ビルドをして apk を作成:AnalysisTestingApplication.apk 拡張子 apk は zip に変換して解凍可能 apk ファイルは zip 形式であるため、拡張子をリネームするだけで、解凍が可能になる。 AnalysisTestingApplication.apk → AnalysisTestingApplication.zip zip ファイルを解凍したディレクトリ構成は以下のようになっている '. ├── And
マニュアルに目を通さないで、適当なブログを適当にググッて実装すると陥りやすい、「自分で書く必要のないところまで自分で実装して疲れたりバグったり」というケース。経験したものをずらずらと。 コードはうろ覚え 会社のプレゼンの資料で作ったので精査できてない(TODO 後で整理する) 概要 RosourcesTypes Loader DataProvider これらを使って楽をしようという話のケーススタディー的なものです 画像リソースのdpiごとの伸縮 単純に拡大縮小するだけなのに、いろんな解像度分の画像を用意して配置するやつ Before 猫のアイコン icon_neko.pngを以下のように配置 res/ drawable-mdpi/ icon_neko.png (16x16) drawable-hdpi/ icon_neko.png (24x24) drawable-xhdpi/ icon_
※ 2017/2/17現在、悲惨な状況は改善されたようです. ※ 2017/2/1現在、私の観測する限りCloudAtCostは新規サーバ(DC2,DC3)において99.99%のDOWNTIMEを実現しています. UPTIMEではありません、DOWNTIMEです. セールや80%OFFのような言葉に釣られないようにしましょう. 検討に値する適正価格は99.99%OFFです. 少しでも試そうなどという気に駆られたらまずはTwitterの検索結果でユーザーの悲鳴をご堪能ください. ※ 注意:ここにあるのCloudAtCostをお勧めする文章ではありません!人柱中毒、あるいは最低のVPSを探している、などの変わった目的でもないかぎり、お勧めしません! cloudatcostとは? Cloudatcost - You don't have to pay sky high prices to be
(2015/10/21追記) 記事を書いてから半年経ちましたが、最近はRxの良さを理解したり、ES7のasync/awaitがbabelによって実用的になりつつあったり等、またもやベストプラクティスとはなんだったのか状態です。とはいえ、いまのところPromiseは非同期処理の土台であり続けそうですし、Generatorもasync/awaitへの足がかりとして知っておくことのメリットは大きいかと思いますので、引き続き公開させたままとさせて頂きます。 (追記ここまで) 数ある非同期処理のプラクティスを試してみて、だいたいこれが良いんじゃないかというパターンが固まったので書きます。効用はコールバック地獄からの脱出と結局非同期どれが良いの感の払拭。ES6寄りです。 前提知識 JavaScript Promiseの本 http://azu.github.io/promises-book/ ジェネレ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く