背景 現在、TensorFlow、Chainer他多数のDeepLearning用ライブラリが公開されています。 本格的なアプリケーションで使うには実行スピード、クオリティ、拡張性、ドキュメント、コミュニティの充実等多くの面で、それらの中から選択して使用するのが鉄板な状況です。もちろん、私もメインではそれらを使わせてもらっています。これらのライブラリ、例えばtensorFlowではcomputatoin graphを構築、operationを追加してそれを実行というイメージで(行列、数式で取り扱うイメージ)、根底にある古典的なニューロンの結合という考え方が隠されている気がします。むしろ、そのことは忘れて突き進んでしまっても良い気はしますが、自分の理解を深める意味でもニューロン指向でスクラッチからニューラルネットワークを書いてみました。 使用言語は機械学習分野ではPythonに残念ながら遅れ
DI の自由度は諸刃の剣 近ごろ、「実プロジェクトでDIコンテナ(注1)を導入している」という話をちらほら耳にするようになりました。それと同時に、「DIコンテナを使ったプロジェクトが大変なことになっている」という話も耳にするようになりました。DIの魅力を十分に享受して低コスト、高品質を実現しているプロジェクトがある一方で「DIを導入してみたのはいいのだけれど、DIの設定ファイルが大きくなりすぎて管理しきれない」「DIを使っているのに、テスタビリティが全然向上していない」など苦労しているプロジェクトもあるようです。この差はいったいどこから来るのでしょうか。 DIは、EJBなどと比べると比較的取っ付きやすい技術ではありますが、ほかの技術同様、誤った使い方では十分に力を発揮できません。DIコンテナは非常に単純明快な技術ではありますが、そのシンプルさ故に自由度が高くさまざまな使い方ができます。その
PHPでアプリケーションを作ってゆく。大きくなると、classが増えてゆく。classが増えてゆき、constructorの引数が増えてゆく。classをnewする順番が決まってゆき、それに従はねばならない。同じインスタンスがあちこちで必要になる。DI (Dependency Injection, IoC) の出番だ。 はじめはPimpleを使うてゐたが面倒になり、既存のDIライブラリは複雑な手続きが必要で、面倒だったので自分で作った。Ranyuen/Diだ。 cf. Ranyuen/Di https://github.com/Ranyuen/Di cf. PHPで簡単に華麗にDIとAOPをキメる http://c4se.hatenablog.com/entry/2014/12/11/013136 こんなに苦労して作ったDIコンテナだが、Rubyでは20行で書けるとMatzも言ってゐる。
あけましておめでとうございます。 大晦日は実家でプログレ聞きながらコード書いてました。 今さらながら Heldon の Stand by とか聞いてたんですが、Tangerine Dream を思わせるミニマルなシンセサイザーの反復と、リシャール・ピナスによるロバート・フリップばりの暴力的なギターソロが絡みあっており、大変良いですね。 作ったもの また説明長くなりそうなので、はじめに作ったものの紹介です。 dee dee-rails この Dee というのが DI コンテナの本体です。 名前は Ozzy Osbourne ソロ 1st Blizzard of Ozz におけるランディ・ローズのギター曲からです。 50 秒と短く、メタルアルバムの中にあってクラシック風の静かなギター曲ですが、同時にアルバムから欠かせない存在感を放つ名曲です。 何が言いたいかというと、Dee はコンパクトな実装
import java.util.Set; import java.util.HashSet; public class ConcreteSubject implements Subject { private Set<Observer> observers; public enum Status { NORMAL, ERROR } private Status status; public void setStatus(Status status) { this.status = status; notifyObservers(); // status フィールドを更新したら Observer に通知するようにしておきます } public String getStatus() { return status.toString(); } public ConcreteSubject()
Web APIの勉強を兼ねて、Sinatraを使ってHerokuで動かすTwitter Botを作りました。 基本的にこちらの記事の丸写しですが、Ruby 2.3.0とSinatra 1.4.7にあわせて微修正してます。 目次 目次 Twitter APIを使うための準備 TwitterにBotを登録 Botの接続に必要なアクセストークンを取得 Botのアクセスレベルの確認 Botアプリ作成の事前作業 Gitリポジトリのセットアップ Gemfileを作成 Twitter Botのコードを書く ディレクトリの構成 tweet.rb app.rb config.ru Herokuにデプロイする Gitリポジトリにコミット Herokuにアプリのリポジトリを作成 HerokuでTwitter Botの動作確認 動作確認の機能を削除 Heroku SchedulerでBotを自動で動かす 参考記事
Ruby で Processing 用のコードを書いて Android で動かすという試み。 前々から、出来そうだからやってみたいなーと思っていたけど、ようやくやってみた。 結果 こんなコードを class Sketch < PApplet def setup @pg = create_graphics(100, 100) @img_1 = load_image("weapon.png") @img_2 = load_image("potion.png") end def draw # 四角や丸を描画します background(150) stroke(0, 0, 0) rect(100, 100, 100, 100) stroke(125, 0, 0) rect(200, 200, 100, 100) stroke(255, 0, 0) ellipse(300, 300, 100, 10
RubyMotionとは RubyでiOS, OS Xネイティブアプリを作る toolchain Cocoaフレームワークの上に薄いラッパをかけてRubyから使えるようにしている、よってRubyでCocoaフレームワークを使うというコーディングになる RubyMotionのコンパイラがRubyファイルをアセンブラにし、gccでobjファイルにする、そのためObjective-Cの実装と双方向でやり取りできる Objective-Cの資産も活かせる ネイティブにリンクされるので実行時にJitでコンパイルする他のこの手のものと比べて実行速度が速い エディタは好きなものを選ぶ gemはRubyMotion用のgemしか使えない、RubyMotion Wrappersに有名なものがある motion-cocoapodsを使えばCocoaPodsの実装も簡単に呼び出せる ライセンス 有償, Ruby
こんにちは。フロントエンドエンジニアの佐々木です。 前回は JS 周りの Lint 環境を整備しました。 engineering.wondershake.com 今回はスタイルシート周りの Lint 環境を整備した話になります。 はじめに スタイルシートはある程度のルールをチーム内で共有しておかないとすぐに雑多なコードになってしまいます。 コーディングルールを明文化してレビューで指摘するといった方法もありますが、できれば Lint ツールでコーディングスタイルを定義して、ルールに逸脱したコードは CI で落とすようにすると健全です。 今回は 2 年間運用されてきた scss ファイルに scss-lint を実行して、エラーを 0 にして CI で弾くことができる状態にするのがゴールになります。 なお scss-lint を導入するにあたりこちらの記事を参考にさせて頂きました。 自動検出と
みなさん、おはこんばんにちはでス。普段は動画処理とかffmpegまわりの記事を投稿してます。「ス」です。2014年もあとわずか 年末年始とのんびり過ごしたいものです のんびり過ごすなら、やっぱり、画像処理・動画処理が定番ですよね?そこにあるCPUを何故100%まで使い切らないのか?山があるから登るのが登山家の心がけなら、CPUがあるなら使い切るのがプログラマーとしての正しい心がけです。使い切る中で最適化を目指す!では、使い切るにはどうしたらいいのか? 画像処理だ!!! 動画つくるだ!!! 最近は使えるCPUの数が増えてきましたね。少し背伸びをすれば、かつては想像できなかったほど使えそうです。Hadoopです 分散処理です。プログラミング楽しいですね。夢は広がります。CPUは寝かせただけ計算機会を失っているのです。とにかく計算。え?プログラミングができない?それなら、3Dバリバリのオンライン
先週の記事に対するお詫び 前回の記事において、Ubuntuプロジェクトでのパッケージの取り扱いについて、筆者の事実誤認による誤った記述がありました。主要な誤りは2点で、パッケージの分類基準と、Feature Freezeの説明です。他にも説明の誤りがあり、全面的に内容を修正しました。読者の皆様にはご迷惑をおかけしたことをお詫びいたします。 Ubuntuのデスクトップ環境は、ウェブブラウザなどユーザーが必要とするソフトウェアがデフォルトでインストールされているため、そのままでも十分に便利です。主要なシステム設定もマウスで行えるため、Unixライクな環境にありがちな「真っ黒な画面にコマンドをひたすら入力する」という、すなわちコマンドラインによる操作をしなくても一通りのことができます。 しかし一度困難に陥ると、真っ黒な画面での操作すなわちコマンドラインによる操作を要求されます。簡単なコマンドだっ
Rubyのコードを目にすると、 他の言語と似た部分があることに気が付くはずです。 構文の多くは、(他の言語の中でも特に)PerlやPython、 Javaプログラマーにとって馴染みのあるものになっています。 もしあなたがそうした言語に慣れ親しんでいるのなら、 Rubyを学ぶのはおそらくどうってことないはずです。 このドキュメントは2部構成になっています。 このページでは、プログラミング言語XからRubyへ移ってくる際に役立つ情報をざっと紹介します。 個別のページでは、Rubyの主な言語機能を紹介しつつ、 あなたが慣れ親しんできた言語との比較を行います。 求められていること: 言語XからRubyへ C・C++からRubyへ JavaからRubyへ PerlからRubyへ PHPからRubyへ PythonからRubyへ 重要な言語機能と知っておくべきこと ここでは、Rubyを学習する中で出会
🔰初めての、クラウドを利用してRuby on Railsを動かすまで(Cloud9、GitHub、Heroku)RailsGitHubHeroku初心者cloud9 対象読者 初心者向け。HTMLが少し分かること。 クラウド(Paas)に興味がある。 WEBアプリケーションを簡単に作成したい。 Ruby on Rails のアプリケーションを作ってみたい。 少しPHP,classicASPなどのプログラム経験があるが初心者。 本記事の概要 本記事で紹介するのはWEBブラウザのみを利用してRuby on Railsのアプリケーション開発(超簡単なブログ)から本番環境の移行までを行うものです。 GitHubアカウトを作るところから、スマホで確認するまで、画像付きで細く手順を記載してます。多少知識のある方には退屈な内容かも知れません。 筆者環境 ブラウザ Google Chrome バージョン
タスク管理してますか?(あいさつ) みなさんは日頃どんなタスク・プロジェクト管理ツールを使っているでしょうか? Backlog?Trello?Wunderlist?それともgithubのIssueで十分?カンバンほしいからZenhub?Waffle?変化球でProducteev? 僕も前職含めて上記含むすべてのツールを試してみました。 各タスク管理ツール所感 Trelloのガントない問題 ポンポンタスク登録できて便利。人のアサインも簡単だし。あ、でもこのタスクの粒度細かすぎない?依頼するときもされるときも細かすぎない?一つのリスト長すぎない? あと標準でガントがないよね?全体見渡す側からすると不安(らしく)になっちゃうからやっぱりガントほしい。アサインできるの便利だけど、あぁでもこれボード6個くらいできちゃった。横断めんどい。どのボードもカードで溢れている。ガント追加してくれるサードパーテ
Pryとは Rubyには、標準で付属されているirb(Interactive Ruby)というツールがあります。 consoleで、irbと入力するとirbが実行されます。 そこで、対話的にRubyの式を入力・実行することができます。 $ irb irb(main):001:0> 1 + 2 => 3 そして、Pryはirbの代替となるパワフルな対話ツールです。 なにがパワフルかというと次のようなことができます。 ドキュメントが見れる シンタックスハイライト デバッグができる(binding.pryをソース二記載するとブレイクポイントになる) $ pry [1] pry(main)> ls # 現在のスコープの変数とメソッドを表示 self.methods: inspect to_s locals: _ __ _dir_ _ex_ _file_ _in_ _out_ _pry_ 動作確認
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く