Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?
これは KLab Advent Calendar 2016 の13日目の記事です。 はじめに Rust で簡単なレイトレーシングのプログラムを作成しました。 レイトレーシングとは、光源から発する光線の挙動をシミュレーションすることによって画像の各画素における色を計算し、写実的な画像を描画することができる技術のことです。光は本来電球などの光源から発し私たちの目に届きますが、光源から発する光線はその多くが視界には入らないため、視界から逆向き(backward)に光線を発し、各画素の色を計算するのがレイトレーシングの普通のやり方です。 今回レイトレのプログラムを作成してみようと考えたきっかけとしては、社内の一部でレイトレが流行っていることや、自分がCGの技術にかなり疎かったことなどがあります。また、Rust の LT 会 に参加し Rust の機運が高まっていたため、実装は Rust でやること
この記事は GetWild Advent Calendar 2016 - Qiita の12日目の記事です。 ~ get wild and tough ~ と言われたらもちろんシティーハンターですね。今回、記事を書くにあたって、AAを探しましたが、シティーハンターのあまりネタとしては使いにくいAAしかなくて「ぐぬぬ…」となりました… 「Get wild 禁断症状」とは 業務中にGETWILD分が切れて禁断症状がでそうになった際に必死に耐えるための方法論~#ghq ないし go getで頑張る go get もしくは ghq get もGETWILDするチャンスかもしれません。出来る時にしておかないと頭の中をエンドレスでGETWILDが流れ、ゾーン状態はどこへやら、いつの間にか1日が終わってしまうかもしれません なるほどなるほど。 go get という文脈にカスタマイズされた Get wil
はじめに 皆さんはgoパッケージを使ったことはありますか?私は、Go!Go!言いながら、恥ずかしながら、あまりまともに使ったことがありませんでした。最近は、仕事でもAST(抽象構文木)を弄り倒すことがあるので、今回はgoパッケージに触れたいと思います。 ここでは、簡単な四則演算などを評価し、結果を返すREPLを作ってみます。一見難しそうですが、ほとんどgoパッケージの機能を使うので、非常に簡単です。 ASTへパースする まずは入力された文字列をパースし、ASTを生成してみます。ここでは、式の評価なので式単位でパースします。パースには、parser.ParseExprを用います。 たとえば、以下のように使用できます。 expr, err := parser.ParseExpr("1+1") if err != nil { panic(err) } ast.Inspect(expr, func
はじめに PHPerの皆様、おはようございます。こんにちは。こんばんは。 本記事はPHP Advent Calendar 2016の12日目のエントリです。 個人的にはQiitaでは特定の問題の解決策を書くのが好きなのですが、たまには少し広いトピックで今日は**「PHP7で新規サービスつくってみた」**的なテーマで書いてみたいと思います。 なので、技術的な深さがないかもしれませんが、一人でも多くPHPerの方がPHP7の導入に重い腰?を上げてもらったり、プライベートでサービスをつくるのって愉しそう!と思ったりしていただければ幸いです。 そして、アレコレ書いてたら凄く長くなってしまった。ごめんなさい。 何をつくったのか 今年の10月にプライベートで「Kocoromo」というAndroidアプリをリリースしました。 KocoromoではバックエンドをPHP7で実装したのでその時やったこと、やら
この記事は CakePHP3 Advent Calendar 2016 の 9日目の記事です。 CakePHP といえば必要なソースコードを自動生成してくれる bake コマンドがとっても便利です。CakePHP3 になってより使いやすくなりました。 普段の業務で使いはじめて結構経ちましたので、いくつかプラクティスを紹介してみたいと思います。(ベストとは書かない) bake で生成したクラスは継承して使おう bake で生成されるコードの中には DB スキーマの情報を元にして生成されるコード が含まれます。 なので、以下のようなケースのときに困ります。(上から時系列) DB に users テーブルを作成する bake model して UsersTable クラスを生成する 生成された UsersTable クラスに何らかの追加実装を行う DB の users テーブルにカラムを追加する
Laravelのルーティングは上から順番に読まれることを利用した小技です。 前提条件 一部APIに大幅な変更があり、APIのバージョンをあげて対応したい 旧APIはversion1として残したい クライアントからのアクセスはAPI単位ではなく、一括でversion2に切り替えたい 変更がないAPIに関してはversion1同様の処理をするようにしたい しかし、version1のControllerの処理をversion2にコピーして使いたくない routes.phpの設定方法 Routeのpatternとgroupを組み合わせて定義します。 <?php // API version2の定義 Route::pattern('apiVersion2', 'v2'); Route::group(['namespace' => 'Api\V2', 'prefix' => '{apiVersion2
Swiftのmap, filter, reduce(などなど)はこんな時に使う! Swiftをさわり始めてある程度経つと「Swiftらしく書きたい」という欲望がわいてきます。そしてObjective-Cでは触れたことのない、map, filter, reduceというのものを目にすることになると思います。 これらの関数を見たときの最初の印象は「うわ、何これ」といったもので、見慣れない構文に戸惑いました。同じように戸惑いを感じた方もいるのではないでしょうか。 特にどんなシチュエーションで、何を使えばよいのかといった部分があまりピンと来ず、なかなか使いこなせずにいました。 そのような経験を踏まえ、**こういう時は、これを使う!**と一言で説明することを目指してこの記事を書きました。 はじめに結論から 一言でまとめると、これらの関数を覚えるとめちゃくちゃ便利になります。 この関数はこんな時に使う
この記事はRust その2 Advent Calendar 2016 - Qiita9日目の記事です。 普段はアルバイトでコンシュマーゲームやスマホゲームのデバッグをしている、普段はPython偶にDJやってるプログラマもどきの@manzyunです。 「これからRustを触ってみよう」 とか、 「Rustとか関数型なんでしょ? 怖いお」 と踏みとどまってる人の背中を後押しする事ができたら幸いです。 まえがき 最初Rust Programming Languageは「Mozillaが作った関数型言語」みたいな触れ込みだった気がする。 しかしその実体は「関数型言語」とひとまとめにしてしまうのは少し違う何かを覚えたので、 超初学者ながら、Rustがどれだけ面白い言語なのかを、僕の言葉で語りたいと思った。 この記事に問題あったらQiitaの運営さんに報告してください。 私とRustの出会い 「関数
概要 Key-Valueの単純なリソースに透過的に様々な機能を付けて使うためのtransparentというライブラリを作りました。 単純というのはGet/Setくらいの操作しかしないことで、リソースのイメージとしてはAmazon S3やファイルシステムあたりを想定してしてもらえれば良いと思います。こういったリソースに対してメモリ上へのキャッシュや、分散システムのような値の複製の機能を簡単に追加できます。 使い方 インストール
こんにちはみなさん 以前に@remore に「ミドルウェアってなんなんすかね?」って聞いたら、「ミドルウェアほど幅広く使われる言葉はそうないよね」と応えてきました。 一番初めに私が聞いたミドルウェアの意味は、アプリケーションが動くための周辺機構・・・DBとかキャッシュとかを表していましたが、最近ミドルウェアと聞くと、アプリケーションに於いてリクエストからアプリの実処理に行く間に割り込む中間処理とかフィルタリングとかを意味しているようです。 随分前に、以下のような絵を書いて、自分でミドルウェアについて納得したものです。 今回は、この絵を利用してミドルウェアの動作を再確認しつつ、Laravelのミドルウェアで使える小技を幾つか紹介してみましょう。 自分の持っているLaravelが5.2なので、今回もLaravel5.2を使います。 TL;DR Laravelのミドルウェアは処理の前後に割り込ん
はじめに 皆さんはgorenameというツールをご存知でしょうか? golang.org/x/tools/cmd/gorenameで公開されている、Goのリファクタリングツールです。 ここでは、このツールを自分のコード上でライブラリとして使う方法と使いやすいリファクタリングツールの形について説明できればと思います。 なお、ここで扱う話はVimConf 2016において、エディタの壁を越えるGoの開発ツールの文化と作成法(ビデオ)というタイトルで話したものと、一部重複していますので、そちらもよかったら見て下さい。 gorenameを使ってみる まずは、gorenameをインストールして使ってみましょう。すでに使ったことある方はここは飛ばしてもらって構いません。 もしかすると、お使いのIDEやエディタによってすでにインストールされているかもしれません。 vim-goをお使いの方は、:GoRe
C言語 Advent Calendar 2016を書く人が少ないので、、 C言語を触っていたころを思い出して書いてみようと思いました。 ここから 前回、マルチプラットフォーム対応したライブラリGolangを紹介しましたが、 実際のところ、どの程度c-sharedしたライブラリを利用する機会があるのでしょうか。 GoはcgoというC/C++のライブラリと連携する機能をサポートしており、 手軽にGoからC/C++のAPIを呼び出せます。 しかしC/C++からGoを呼び出す機能は、使いみちが結構限られており、 主な使いみちは、Goで実装された機能を 他言語から利用したい場合に限られるのではないかと推測します。 もうちょっと具体的にいうと、 Goで開発された機能を他言語にポーティングするのが面倒だから、 c-sharedでライブラリ化して他言語から呼び出しちゃおうっていうことです。 c-share
これ、「Laravel5.2でソーシャル連携ウェブサービスの土台を作る。 」のLaravel5.3バージョンです。 5.3ではroutingの設定がフォルダとmiddleware別のファイルに別れたりしました。 laravel/socialiteも前は生のまんま使ったのですが、今回は、socialiteproviders/twitterという、socialite用のプロバイダのライブラリを使いました。 5.2ではAuthControllerとしてログインや会員周りが一つのコントローラーになっていましたが、5.3では4つのControllerに分割されています。(ForgotPasswordController.php、LoginController.php、RegisterController.php、ResetPasswordController.php) ちょいちょい変わってそうなので
安全性、速度、並行性の3つのゴールにフォーカスしたシステムプログラミング言語Rust1でDirectX陣営のLow-overhead APIとして新たに(けっこう前に)策定されたDirectX12を動かします。(とりあえずメモ的な) Rustはまだまだ初心者なので間違ってたりもっとよくできたりする点があるかもしれませんが暖かい目で見てやってください。 環境 rustcはバージョン1.9.0を使用します。あと、たぶんWindows SDKが入ってるなら入ってると思いますがDebugging Tools for Windows(windbg)も入れておきましょう。D言語を一緒に入れてる人はパスの関係でコマンドラインでwindbgを起動するとD言語付属のやつが起動してしまうかもしれないのでファイル名を変えておくといいと思います。 追記: rustcはMSVC ABIのほうを使用すると安心かと思い
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く