タグ

関連タグで絞り込む (203)

タグの絞り込みを解除

Programmingとprogrammingに関するVoQnのブックマーク (311)

  • JavaScriptの文字列を反転する10の方法とそのパフォーマンス - 風と宇宙とプログラム

    はじめに JavaScriptで文字列を反転する10の方法を(無理矢理?)思いついたので、ちょっと簡単に紹介したい。また、それぞれについて、各ブラウザでパフォーマンスを測定してみたので、その結果も合わせて載せる。 文字列のStringオブジェクトには、部分切り出し(substring, slice)や置換(replace)、連結(concat)など豊富な機能があるのに、反転(reverse)機能はない。Arrayのreverseはあるのに、Stringのreverseがないのはどうしてなのだろうか。 各ブラウザとそのバージョンは以下の通り: Chrome Firefox Opera Safari IE 13.0.782.112 m 6.0 11.50 5.1(7534.50) 8.0.7600.16335 rev01: C言語的発想 空の配列を作って、そこに元の文字列の後ろから1文字つづ入

    JavaScriptの文字列を反転する10の方法とそのパフォーマンス - 風と宇宙とプログラム
    VoQn
    VoQn 2011/08/22
    直観で rev08 の分割統治法が一番速いんじゃないの? って思ったけど,よく考えりゃ木構造で増えるから O(n) の直で直結させた方が速いのか.
  • iOS SDKの各クラスの完成度について雑感

    iOS SDK (Cocoa touchフレームワーク) のAPI群についての勝手な感想。 根拠はなくはないけど基的に経験からくる主観による。異論その他ツッコミ歓迎。 まだ途中だけど続きがあるかどうかは。。。

    iOS SDKの各クラスの完成度について雑感
  • IBM Developer

    IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.

    IBM Developer
  • Vows で クライアントサイドの CoffeeScript / JavaScript のテストをする時の Tips

    0. node.js の Vows フレームワークがとてもかわいい JavaScript のTDD, BDDフレームワークはたくさんあるけど,テスト結果の見た目の良さと記述の楽さで Vows というフレームワークを使っている.RSpec からの影響を受けていて,Rack アプリケーションのテストと同じような感覚で書ける,というのが良い. たとえばこんな感じでテストコードを CoffeeScript で書く で --spec オプションをつけて実行するとこういう風に表示してくれる. assertion でテストが通らないと黄色く,内部エラーの場合は赤にラベルが表示される. しっかり全部通すと このように表示される.見た目が良いし,ラベリングを丁寧にやるとテストの内容がわかりやすい. 元々 node.js のテスト用なので,require exports など, pure JavaScript

    Vows で クライアントサイドの CoffeeScript / JavaScript のテストをする時の Tips
  • C言語による画像回転処理について

    回転処理において処理結果に入力画像すべてが収まるようにするためには出力画像の大きさを計算する必要があります。 幅:sw、高さ:shの画像をA度回転させたときの出力画像の幅(dw)、高さ(dh)は次のように計算されます。 ( fabs() : math.hで定義されている浮動小数の絶対値を得る標準関数 ) dw = fabs( sw * cos(A) ) + fabs( sh * sin(A) ) dh = fabs( sw * sin(A) ) + fabs( sh * cos(A) ) 実際のプログラム上では幅高さは整数でないといけないので、通常次のように四捨五入をして結果を求めます。 int dw = (int)( fabs( sw * cos(A) ) + fabs( sh * sin(A) ) + 0.5 ) int dh = (int)( fabs( sw *

    VoQn
    VoQn 2011/05/17
    Processing なんかでもこのアルゴリズムは参考になりそう.sin(θ) に 1024 かけて整数化さして計算する高速化などはなるほどと思った
  • 肉体言語 Tython - Thanks Driven Life

    Tython とはhttps://github.com/gongo/Tython/tree/development 肉体言語 Tython は、Kinect センサーを用いて、体の動きを利用してプログラムを入力する言語、というかインターフェースというかフレームワークというか。 図にするとこんな感じです。 Kinect を介して動きを検知 (Detector) 検知した動きによって、入力するソースコードを決定 (InputMethod) ソースコードを入力し終わったら、コンパイル (Compile) コンパイルしてできた命令列を実行 (VM) デモ 「Hello, World!」Tython を使って Hello, World! を出力してみました。 Hello, World! 出力まで 4分強 一回で成功しなかった 最終的に成功するまでの時間は 90分 一度でも文字入力失敗すると最初から

    肉体言語 Tython - Thanks Driven Life
    VoQn
    VoQn 2011/05/15
    Cool だなー
  • .sort.call(null)の深淵 - 素人がプログラミングを勉強していたブログ

    発端は javascript:alert([].sort.call(null)) これで window オブジェクト取れるのなんで? http://twitter.com/edvakf/status/9222713572 という投稿。 この不可解な挙動を説明することは案外難しい。 まず、ES5のstrict mode以前(つまり、今普通にJavaScriptを使う場合)では、 function fun() { return this; } alert(fun.call(null) === window); がtrueになる。 それから、 var a = [3, 2, 1]; alert(a.sort() === a); alert(a); // [1, 2, 3] sortは破壊的であり、thisを返す。 thisが配列以外の場合については、仕様では未定義であるが、どうなのか。id:nan

    .sort.call(null)の深淵 - 素人がプログラミングを勉強していたブログ
    VoQn
    VoQn 2011/05/13
    知らなかった.っていうかなんでこんな仕様になったのか経緯が気になる
  • プログラミング用フォント Ricty

    お知らせ Ricty および Ricty Diminished は、2010 年代前半には欧文・和文合成プログラミング用フォントとして先駆的でしたが、現在は前時代的な存在となっています。不具合もいくつか確認されています。良質なプログラミング用フォントが数多く登場していますので、それらの利用をおすすめします。 序文 Ricty(リクティ)は Linux 環境での研究・開発を想定したプログラミング用フォントです。テキストエディタやターミナルエミュレータ、プログラミング言語やマークアップ言語に対する使用に適しています。Inconsolata と Migu 1M の合成、および、プログラミング用フォントとしてのいくつかのチューニングを行う生成スクリプトを配布しています。Inconsolata 作者の Raph Levien 氏、Migu 1M 作者の itouhiro 氏、M+ M Type-1

    VoQn
    VoQn 2011/05/07
    Inconsolata も Migu フォントも使っていたのでこれに統合した.
  • Press Enter■

    Copyright(c) 2000-2009 ITmedia Inc. 著作権はアイティメディア株式会社またはその記事の筆者に属します。(著作権について) 当サイトに掲載されている記事や画像などの無断転載を禁止します。 「@IT」「@IT自分戦略研究所」「@IT情報マネジメント」「JOB@IT」「@ITハイブックス」「ITmedia」は、アイティメディア株式会社の登録商標です。 当サイトに関するお問い合わせは「@ITへのお問い合わせ」をご覧ください。

    VoQn
    VoQn 2011/04/16
    (悪夢のような)おもしろい読み物だった
  • 本を読む pure bashでsinatraもどきを作った

    いろいろな言語用のSinatra的フレームワークまとめ - 射撃しつつ前転 ということで、bash内蔵コマンドだけのpure bashで、sinatraもどきのなにかを作ってみました。名付けて「sh.inatra」。あっ、pure bashといいつつrmは使っちゃいました。 いちおうGitHubに置いておきます。あくまで見た目だけのジョークソフトなので、真面目なサーバーで使わないようにお願いします。 emasaka's sh.inatra at master - GitHub コードのサンプル サンプルはこんな感じ。 #!/bin/bash . /opt/sh.inatra/sh.inatra.sh get '/hello' && { echo 'Hello, World' } get '/say/*/to/*' && { echo Say ${params_splat[0]} to ${

  • Re: バリデーションはどの位置で必要か - Islands in the byte stream (legacy)

    バリデーションはどの位置で必要か - サンプルコードによるPerl入門 バリデーションはアクセサメソッドの内部で行うのではなく、バリデーションの専用のモジュールを使用して、データを受け取った入り口で行うのがよいでしょう。 私はこれには反対です。アプリケーションにせよライブラリにせよ、原則としてすべての公開APIの入力値はバリデーションするのが望ましいと考えます。 すなわち、アクセサメソッドもそれがパブリックなAPIであればバリデーションをしたほうがいいと思います。 とはいえ以下の基的な考え方に異論があるわけではありません。 データのバリデーションを行う主要な目的は、外部から入力されるデータが正しい値かどうかをチェックするためのものです。 問題は、どこまでを「外部からの入力」とみなすかということでしょう。私は、そのプログラム/ライブラリのパブリックなAPIが受け取る値はすべて「外部からの入

    Re: バリデーションはどの位置で必要か - Islands in the byte stream (legacy)
    VoQn
    VoQn 2011/02/20
    自分は割とこのスタイルで、特に public な setter はみんなバリデーションかけてた。自分の知らぬ所でデータが汚染して出回ると後で不具合見つけたとき大変だし
  • Perlゼミ(サンプルコードPerl入門)

    Perl入学式 全6回のPerl入門講座。東京、大阪、沖縄、札幌で開催。(東京は4月と10月スタート、それ以外は5月スタート) YAPC::Japan Perlを軸としたITに関わる全ての人のためのカンファレンス。 東京 吉祥寺.pm 五反田.pm 大阪 なにわPerl 沖縄 沖縄.pm

    VoQn
    VoQn 2011/02/20
    開発人数多かったりレガシーコードと格闘しなきゃいけない状況下だと、仕様わかってない記述を内部がしてる場合もあるからなぁ。アクセサにnullチェックや制限値判定をクラス単位でやってもいいと思うほう
  • C++リファレンス - cppreference.com

    スマートポインタとアロケータ 日付と時間 関数オブジェクト  −  hash (C++11) 文字列変換 (C++17) ユーティリティ関数 pair  − tuple (C++11) optional (C++17)  −  any (C++17) variant (C++17)  −  format (C++20)

  • 未踏ユース現役生に贈る言葉 - 西尾泰和のはてなダイアリー

    未踏ユースには、分野をまたいだ横方向のつながりを作るために未踏ユース採択者が一堂に介して「自分はこれから何々をする!」と発表しあう「ブースト会議」がある。そして、各年度ごとの横のつながりを作るだけではなく、縦にもつながりを作って網目を作ることも重要だ。だから例年何人かのOBが呼ばれて発表をすることになっている。僕も未踏ユースの1期生(平成14年)として、なんども参加させてもらった。 ところがだ、当然ながらOBの数はどんどん増加する。時間は有限だ。会場も有限だ。どうしても初期のように時間制限無し・人数制限なしで自分がやったこと、今関心を持っていること、現役生に伝えたいことを発表する、ってのが難しくなってくる。そこで気づいたんだが、当に「発表」というフォーマットである必要はあるのか? 年度をまたいで未踏ユース採択者同士のつながりを作る、という目的のためには発表である必要はない。伝えたいことを

    未踏ユース現役生に贈る言葉 - 西尾泰和のはてなダイアリー
    VoQn
    VoQn 2011/01/20
    この言葉は未踏ユース現役生じゃなくても響くもの
  • 経験15年のOCaml ユーザーが Haskell を仕事で半年使ってみた - camlspotter’s blog

    今の会社に移って半年経ちました。めでたく試用期間終了です。といっても別に試用期間中に密かに首を切られるような事をしたとか、逆に試用期間が終わったからと言ってこれで定年までのうのうと働ける、という訳ではありません。未来は全く判りません。まあとにかく、一つ区切りがやってきました。 金融を知らないQuantsの仕事 私の職業の肩書きには Quantitatitatitatitative という単語がくっついて超カッコよさそう。普通は Quant というと、金融工学や統計数理に詳しい夜もブイブイいわしている超イケメン20代を想像しますが、私は金融とか全然知らないアラフォーお父さんです。それでも Quant です。お願いですから、私に何を買ったらいいかとか、聞かないでください。金融商品とか買った事ないし。というか、逆に教えて欲しいです。 私のチームは、当の Quant さん達が開発した、金融派生商

    経験15年のOCaml ユーザーが Haskell を仕事で半年使ってみた - camlspotter’s blog
    VoQn
    VoQn 2010/12/13
    ためになる
  • どこまで自分で書くかという話 - yaakaito::Blog

    Programming世の中にはいろんなフレームワークとかライブラリがごろごろ存在していますね。うまく使えば簡単にアプリケーションを開発したり、工数が少なくなったりする訳で、「良いプログラマーは人の作ったライブラリをちゃんと使える」とかそんなことも言われたりしますよね。けど、僕がいつも思うのが「中身の分からないものをいつまでもそのままにしておいていいの?」ってことで、ここ2年くらいは個人で書くコードはできるだけライブラリとかを使わないようにしてる。というよりは、実装が掴めそうなものはとりあえず自分で作ってみる、自分が実装したことのない機能の人の実装をあまり信用しない、というのを意識している。こんなことを書くと「非生産的だ」とか、「なんで○○使わないの?」とか言われそうなのだけど、「当にそれでいいの?」と返しておきたい。あと、「すべては主観」とか言われそうだけど、その通りで、僕は主観でしか

    VoQn
    VoQn 2010/11/29
    よく「{Sinatra/Rails/Django/GAE}使えばいいじゃん」って話になったりするんだけど、この「自分が仕組み理解してないものを使う不可解さ」が嫌で素直に使えている気になれなかったなぁ
  • プログラミングと設計は本来切り離せないものなのでは - 達人プログラマーを目指して

    最近はアーキテクトという役割で客先に常駐し、フレームワークの選定をしたり、事前に共通部品を設計したりする役割を担う仕事を引き受けることが結構あります。そこで運よくお客様のマネージャーがオブジェクト指向開発の経験が十分にある方だと、IDEなどの開発環境やインターネット接続環境を当然のように用意してくれるので最初から仕事がスムーズにできるのですが、そうでないとMS Officeしか入っていないロースペックのノートPCを渡されて、要件定義フェーズの期間中、フレームワークの設計をお願いしますとか、私としてはちょっと首をかしげてしまうような困ったことを言われてしまう場合があります。開発フェーズが始まる半年後まではコーディングは基的に不要という考え方です。アプリケーションのアーキテクトという役割では少なくともコーディング規約を考えたり、ツールやフレームワークの選定をしたりする必要がありますし、プロジ

    プログラミングと設計は本来切り離せないものなのでは - 達人プログラマーを目指して
    VoQn
    VoQn 2010/11/25
    っていうか、本当に上の判断でデザインとエンジニアリングとコーディングを完全に分断しないで欲しいって思うのですよ。3つが摺り合わせてはじめてマトモになるんだから
  • - 継続的インテグレーション

    継続的インテグレーション 原題: Continuous Integration Martin Fowler Chief Scientist, ThoughtWorks Matthew Foemmel ThoughtWorks 「確実なビルドを行う」 -- これはどんなソフトウェア開発プロセスであれ重要なことだ。そのわりには、このことがきちんとされていないことに驚かされる。論文では、Matt が ThoughtWorks 社でのある大規模プロジェクトにおいて採用したプロセスを紹介する。このプロセスは全社的な広がりを見せつつある。テスト部分も含めて「全てが自動化された」「再現可能な」ビルドを、「日に何度も」行うことに力点がおかれている。このプロセスを用いれば、開発者はインテグレーションを毎日行うことになるので、インテグレーションに伴う問題を減らすことができる。 継続的インテグレーションの恩恵

  • クリエイティブなC++ライブラリ "Cinder" の紹介 - Preferred Networks Research & Development

    こんにちは、人恋しい季節になってきましたね。 研究開発チームの祢次金(@nejigane)と申します。 エントリではCinderというクリエイティブなコーディング向けのライブラリについてご紹介したいと思います。 Cinderとは Cinderとは、画像、音声、動画等を簡単に処理&可視化できる、主にビジュアルデザイン向けの強力なC++ライブラリであり、The Barbarian GroupのAndrew Bell氏が中心となってオープンソースとして開発が進められています。 同様の思想を持つProcessingやopenFrameworksによく似ており、C++で簡単に記述できるうえ、WindowsMacOSX、iOS(iPhone/iPad)といった複数のプラットフォームをカバーしています。 細かい機能/特徴の紹介は家サイトに譲るとして、Cinderを極めるとどのぐらいクリエイティブな

    クリエイティブなC++ライブラリ "Cinder" の紹介 - Preferred Networks Research & Development
    VoQn
    VoQn 2010/11/19
    前々から気になってた
  • ArrowによるHaskellプログラミングの基礎。…パイプ感覚で順次/分岐/繰返し - よくわかりません

    Programming with Arrowsを読んで理解したつもりのメモ。誤りなど乞うご指摘。 (復習)Arrowってなに? と思って以前調べたメモが"3分で解るHaskellのArrowの基メモ - よくわかりません"。それにちょっと補足というか観点を変えてまず感覚の整理。 Monadに色んな種類があるように、Arrowも色んな種類がある。 Monad: IO、Maybe、… Arrow: 関数そのまんま(->)、Kleisli m、… ある種類のMonadに色んな型の色んな値を入れられるように、ある種類のArrowに色んな型の色んな関数を入れられる。 Monad: Maybeの例→ 「Maybe Int」 にreturn 0もreturn 777もOK。「Maybe Char」 にreturn 'a'もreturn ' 'もOK。 Arrow: (->)の例→ 「Int -> In

    ArrowによるHaskellプログラミングの基礎。…パイプ感覚で順次/分岐/繰返し - よくわかりません