タグ

ブックマーク / qiita.com (240)

  • Go の定数の話 - Qiita

    はじめに 先月の GoCon 2014 Autumn のキーノートスピーチで Rob Pike 先生が、「Simplicity is Complicated」というタイトルで講演を行いました( @tenntenn さんによるレポート記事 )。 その中で、「Go の定数は、裏では非常に複雑なことをやっている」という話をされていました。そのときに触れられていた、The Go blog の "Constants" という記事を読んだので、それについてまとめます。 TL;DR Go では、異なる型を混ぜた式は禁止し明示的な変換を要求する しかし、定数を毎回変換するのは面倒なので、定数は型を持たないことが可能になっている これによって、Go の定数は、実際の数字のように扱うことができる 参考文献 参考というか、そのままなので、下記を読めば、記事を読む必要はありません。また、記事を読んで興味を持っ

    Go の定数の話 - Qiita
  • golang で streem を実装した。 - Qiita

    この記事は Go Advent Calendar 2014、16日目の記事です。 はじめに Matz さんが streem という、ストリーム指向言語の開発を始めるらしいです。 まだ文法の設計段階ではあるけど、それなのにかなりの量の pull-req がバンバンと来てて凄いなーと思いつつも「この pull-req 量だと僕には出番無いなー」と思ったので、README.md に書かれているサンプルだけを頼りに streemgolang で実装してみました。 先日はネタで streem のマネをして yacc 定義部分だけ公開していましたが、日ネタが無い中にTLがヒートアップして焦りに焦って勢いで実装してみました。いやはや異様な追い込みを感じます。。。 まずは streem を知る streem は README.md に書かれている通り並列実行を行いつつストリームを処理する言語です。

    golang で streem を実装した。 - Qiita
  • [初心者向け]こんなときどうする⁉︎ GitのTips31選! - Qiita

    Help us understand the problem. What is going on with this article?

    [初心者向け]こんなときどうする⁉︎ GitのTips31選! - Qiita
  • vimrc アンチパターンを自動でチェックする - Qiita

    この記事は Vim Advent Calendar 2014 の 16 日目の記事です。 15日は kefir_ さんの「vim と term.c」でした。vim と 端末の間のやりとりの解説という超ディープな話題で、つくづく vimmer は変態(いい意味)が多いな、と痛感させられます。素晴らしい記事ですので、ぜひ一読をお勧めします。 さて、今回の記事では、VAC 1 日目の記事 「vimrc アンチパターン」 を Vim script の lint ツール「vint」で判定できるようにした、という話を紹介します。 今年 11 月に開かれた VimConf 2014 にて「vint は機能追加が簡単さ〜」とか豪語しておりましたので、その実証がてら lint ルールの実装タイムアタックにチャレンジしてみました。 vimrc アンチパターンのルール vimrc アンチパターンをまとめると、9

    vimrc アンチパターンを自動でチェックする - Qiita
  • 【Vim入門】ノーマルVimで使えると便利かもなコマンド10つ - Qiita

    この記事は Vim Advent Calendar 2014 の 17 日目の記事です。 16日は Kuniwak さんの「vimrc アンチパターンを自動でチェックする」でした。(私の vimrc も多くのアンチパターンがあったので、戒めていくとともに、vint でチェックしようと思います。。) プラグインなしのvimをつかう 先日のVACでも紹介されていたincsearch含め、プラグインは便利で私も色々使っているのですが、あえて、今回はVim(7.2以上)であれば使える基コマンドで、私自身がよく使っているコマンド(Exコマンド含む)を10つに絞って紹介したいと思います。 #最近、サーバー系の作業が増えて、プラグインなしのvim使うことも増えてきました。 人によってなじんだキーバインドの設定はあるかと思いますが、実際のところこれだけ覚えとけば(プレーンなvimでも)それなりに不自由し

    【Vim入門】ノーマルVimで使えると便利かもなコマンド10つ - Qiita
  • Go で Language Benchmark Game に挑戦して惨敗した - Qiita

    {"B", "(c|g|t)"}, {"D", "(a|g|t)"}, {"H", "(a|c|t)"}, {"K", "(g|t)"}, {"M", "(a|c)"}, {"N", "(a|c|g|t)"}, {"R", "(a|g)"}, {"S", "(c|g)"}, {"V", "(a|c|g)"}, {"W", "(a|t)"}, {"Y", "(c|t)"}, このベンチマークは正規表現の速度を測るマイクロベンチになっていて、2~4は同じ正規表現を使わないといけないというルールになっています。 特に単純置換である2と4は普通文字列処理で書くと思うのですが、正規表現を使うことが要求されています。 まず、並列化ができてなくて遅いのか、それとも単純に1コア当たりの性能が悪いのかですが、これは CPU Time (全コアの計算時間を合計した時間) と Elapsed Time (開始か

    Go で Language Benchmark Game に挑戦して惨敗した - Qiita
  • なぜ仮想DOMという概念が俺達の魂を震えさせるのか - Qiita

    追記: 情報が色々と古くなったため、2020年に書き直した版へのリンクを張っておきます。 この記事は VirtualDOM Advent Calendar 2014 - Qiita の初日です。 初日ということで、基調講演風に、Virtual DOMとはなにか、なぜ僕はこんな興奮しているのか!という話から。 Virtual DOMとはなにか 既存の概念で当てはめると、JavaScriptのMVC, MVW(Whatever)フレームワークのViewに位置します。が、その程度では終わりません。仮想DOMとは世界を革命する力であり、このjQueryのDOM操作で汚れきったフロントエンドを救う救世主なのです。 現時点で自分が知っている限りは、以下の実装を指します。 facebook/react 最も使われてるFacebookの実装 Matt-Esch/virtual-dom Altenative

    なぜ仮想DOMという概念が俺達の魂を震えさせるのか - Qiita
  • Cocos Code IDEとLua言語でブロック崩しを作ってみる - Qiita

    require "Cocos2d" require "Cocos2dConstants" local GameScene = class("GameScene",function() return cc.Scene:createWithPhysics() end) function GameScene:ctor() end function GameScene.create() local scene = GameScene.new() return scene end -- レイヤーの作成 function GameScene:createLayer() end -- パドルの作成 function GameScene:createPaddle() end -- ボールの作成 function GameScene:createBall() end -- ラベルの作成 function G

    Cocos Code IDEとLua言語でブロック崩しを作ってみる - Qiita
  • pandas-plyを使う - Qiita

    内容 pandas_plyを使います. pandasでRのdplyrみたいなことをする, というものです. メソッドチェーンが使えると, コードが書きやすくて楽しいです. 今回は, 選挙のデータを使って遊んでみます. 衆院選小選挙区立候補者名と, 名前で検索した時のヒット件数のデータを使って, pandas-plyで遊びます. コード pandas_plyを使うまでの準備です. import pandas as pd from ply import install_ply, X, sym_call install_ply(pd)

    pandas-plyを使う - Qiita
  • 【C,C++,Python,JavaScript】EdisonでLチカ - Qiita

    組込みerなら,何でも初めはLチカから. プログラム MRAAライブラリの導入 EdisonのIOを制御するために,IntelがMRAAという抽象化ライブラリを提供しています.ソースコードはこちら. このライブラリは,購入直後や,Intel発行のバイナリを書き込んだ場合には,既に導入されており,特にインストールすることなく使用できます.ubilinuxなど,自分でLinuxをインストールした場合は,以下のように 先にGitHubから最新版のswigをインストールし, 次にmraaをインストールしてください. (#は管理者権限で行うコマンドです) # opkg install git cmake # Yocto Linuxの場合 # apt-get install git cmake autoconf byacc yodl # Debianの場合 $ git clone https://gi

    【C,C++,Python,JavaScript】EdisonでLチカ - Qiita
  • Dockerを使ってオンラインコンパイル環境を作る - Qiita

    はじめに Goの開発版などを手軽に試すことができる環境が欲しいと思い、Dockerコンテナを利用したSangoboxというサイトを作ってみました。 少し調べてみたところ、Dockerを利用したオンラインコンパイラはすでにいくつか存在するようです。ソースが公開されているものもありますが、Sangoboxを作る上では特に参考にはしていません。 paiza.io codecube.io grounds.io ただし、インターフェースはWandboxの影響を受けています。 Sangobox 作ってみたサイトがこちらです。まだ実験段階なので対応している言語は少ないです。 http://35.h2so5.net/ https://github.com/h2so5/sango ソースコードのライセンスはAGPLです。 特徴 JSON形式のREST API(https://github.com/h2so5

    Dockerを使ってオンラインコンパイル環境を作る - Qiita
  • ちょっとしたcliツールを自作してからgoconに行って来た話 - Qiita

    タイトルの通りの備忘録です。 今回は何かしら事前にGoでツールでも書いて参加しようという目標があった。単に自分で何か書いてみたかっただけなんだけど 当日得られた知見によって何を改善することが出来たのかを文章+コードのdiff(=pull request)として>残しておきたかった。ここに至ったキッカケは、当日想定外の繰り上がりが発生し何の準備もせぬまま慌てて参加した5月のspringで、一方的に話を聞くというスタンスに終始してしまい勿体無いことをしたという想いがあった。 自分が書いたツールはごくごくシンプルなもので、ゴルーチンをガンガン使ってミドルを書くとかそこまでの意識の高さはまだ持ち合わせていなかったわけだが、何か作って勉強会に行く という狙いはまあアリだったと思う。GoConで得られた知見も織り交ぜつつ振り返ってみる。 gat というツールを書いた goldeneggg/gat -

    ちょっとしたcliツールを自作してからgoconに行って来た話 - Qiita
  • optionalをC++03で実装してみる - Qiita

    これは C++ Advent Calendar 2014 9日目の記事である。 初めに 「C++03でoptionalを作れるか?」Boost.Spiritを読みながら構文解析ライブラリを自作しようとしてこの問にぶち当たった。できるはずである。なぜならBoost.SpiritはBoost.Optionalを利用しているからだ。Boost.Optionalは他の多くのBoostライブラリと同じくC++03に対応したほとんどの主要なコンパイラで利用することができる。しかし話はそう簡単ではなかった。 変なところや分かりにくいところがあったら指摘をお願いします。 optionalについて optionalについて知らない人のために簡単に紹介する。 optionalは簡潔に言うと「オブジェクトが有効か無効かのフラグを付加するオブジェクトのラッパー」である。Haskellを触ったことのある人ならば、C

    optionalをC++03で実装してみる - Qiita
  • イテレータ破壊の問題 - Qiita

    これはC++アドベントカレンダー2014の8日目の記事です。 ゲームの修羅場10に投稿した記事で「プログラムの落ちるポイント」の中で 4つほどポイントを紹介したのですが、その中の一つがイテレータ破壊です。 これは、ややこしいので、の方では軽く触れるだけで終わったのですが、 今回、あたらめて紹介したいと思います。 vectorやmapというコンテナを使う機会は多いのですが、 知らず知らずのうちに破壊されたイテレータを使っていることがあります。 まずイテレータ破壊について簡単に書きます。 void foo(){ std::vector<int> a = {1, 2, 3, 4, 5}; auto it1 = a.begin(); a.push_back(6); std::cout << *it1 << std::endl; } こういうソースがイテレータ破壊の例となります。 vectorの場

    イテレータ破壊の問題 - Qiita
  • std::string::findより速くなるかもしれない。boost::algorithmのboyer_moore_searchとかknuth_morris_pratt_searchとか - Qiita

    std::string::findより速くなるかもしれない。boost::algorithmのboyer_moore_searchとかknuth_morris_pratt_searchとかC++文字列 この記事は、C++ Advent Calendar 2014の2014年12月7日ぶんです。(1時間弱遅刻してしまいました) これは何ですか C++標準の文字列クラスstd::stringには、その中に指定されたキーワード(文字列)が含まれているか&含まれている場合には何文字目から出現するかを返すメソッドとして、std::string::findが用意されている。 多くの場合これがあれば事足りるのだが、あまり長い文字列を検索キーワードに指定するような場合には、(少なくとも理論的には)大幅に遅くなることが知られている。 これを改善した(少なくとも理論的には)アルゴリズムとして、Boyer-Mo

    std::string::findより速くなるかもしれない。boost::algorithmのboyer_moore_searchとかknuth_morris_pratt_searchとか - Qiita
  • CocosStduio v2で簡単なAnimationを作成する - Qiita

    9日目です。 CocosStudiov2を使ってAnimationを作成してCocos2d-x3.3rc1で再生する方法について書きます。 はじめに 前回の記事「CocosStduio v2をCocos2d-x3.3rc1で使う方法」で作ったプロジェクトをそのまま使います。 前提条件 Cocos2d-xが動作する環境がある 手順はMac(Winでもたぶんうごく) 検証環境 Cocos2d-x3.3rc1 Cocos Studio v2.0.2(Mac版) Mac OSX 10.10.1(Yosemite) Xcode 6.1 CocosStduio側 この状態から始めます。 キャラを右から左に動かす Animationを編集するときはAutomatic frame recordingにチェックを入れます。 編集したいNodeの三角マークを押すとアニメーションの設定が展開されます。 Time

    CocosStduio v2で簡単なAnimationを作成する - Qiita
  • cocos2d-xでAndroidのバックキーに対応する - Qiita

    Cocos2d-x Advent Calendar 7日目です。 バックキー対応してますか? ほとんどのcocos2dxで開発してる方はXcodeで開発&iPhoneシミュレータで動作確認してると思いますが、「じゃあAndroidで動かすか」ってなった段階で慌てて対応しがちなのがAndroidのバックキーです。 GoogleAndroidのバックキーに対応していないアプリをGoogle Play上でフィーチャーしないので、アプリをフィーチャーさせてユーザーを集めたい場合は嫌でも対応する必要があります。 これまで仕事で何度か似たようなコードを書いてきたので、今回は再利用しやすい形でゼロから書きなおしてみました。 そもそもバックキー対応って何すればいいの?(iOSしか触ったことない人向け) Android端末にはデバイス自体にバックキーが存在します(2.xではハードウェアキー、4.xではソフ

    cocos2d-xでAndroidのバックキーに対応する - Qiita
  • cocos2d-x + ADX2でインタラクティブミュージックに挑戦する(前編) - Qiita

    こんにちは@giginetです。Cocos2d-x Advent Calendar 2014の5日目を担当させて頂きます。よろしくお願いします。 追記 : 後編書きました C++ - cocos2d-x + ADX2でインタラクティブミュージックに挑戦する(後編) - Qiita cocos2d-xでインタラクティブミュージックに挑戦 先月11月14日、株式会社CRI・ミドルウェアさんからオーディオライブラリ『ADX2』の無償版、『ADX2 LE』のcocos2d-x対応版の配付が開始されました。 cocos2d-xは音周りが非常に弱く、SimpleAudioEngineでの表現には限界があり、クロスプラットフォーム化の敷居も高かったです。 しかし、ADX2 LEを利用することで多才な音楽表現が簡単に扱えるようになりました。 また、従来ADX2を使うには多額のライセンス料を支払う必要があり

    cocos2d-x + ADX2でインタラクティブミュージックに挑戦する(前編) - Qiita
  • Goサーバのデプロイ周辺 - Qiita

    はじめに この記事は「Gunosy Advent Calendar 2014」の7日目の記事です。 おまだれ Gunosyの小出と申します。主にプロビジョニングとかデプロイを担当してます。 たまにapiとかのコードを書いてます。 GunosyにおけるGoサーバのデプロイ ※2014/12現在の状況です(今後良い方法があれば変更していくと思います) デプロイ全体 Gunosyでは、サーバプロビジョニング・デプロイに、Chefレシピ + AWSのOpsworksを利用しています。 ざっくりデプロイ手順としては、 テストが通ればビルド バイナリとその他ファイルをtar.gzに固めてS3にupload OpsworksでS3からサーバに展開&プロセスマネージャを再起動 といった手順でやっています。 プロセスマネージャと周辺レシピ GunosyのGoプロダクトはいくつかありますが、プロセスマネージャ

    Goサーバのデプロイ周辺 - Qiita
  • アメリカに何の縁もないプログラマが渡米して働くには? - Qiita

    12/8/2014追記: 普通のプログラマの定義が色々と誤解を受けているようなので、日米の文化的差異を含む背景を説明しました。最後のセクションをお読み下さい。 12/7/2014追記: 推敲せずに一気に書いたので、色々と説明不足な点がある事に気づきました。補足や私のこの件に関する考えをツイートしましたので、興味のある方はそちらを御覧ください。 はじめに 私はアメリカの州立大学にて、研究助手兼科学アプリケーション開発者兼NIHスポンサードのNPOメンバーという比較的珍しいポジションで働いております。手短に言えばカリフォルニア州政府職員、つまり公務員です。私はかなり例外的な経路でアメリカで働くことになったため、私自身の経験はそれほど他の方の役に立たないですが、外国人がアメリカで働くことの諸問題は経験していますので、その辺りのことが参考になればと思いこの記事を書きました。 日人が米国でプログラ

    アメリカに何の縁もないプログラマが渡米して働くには? - Qiita