サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
衆院選
yuuxxxx.hatenablog.com
URLと法則さえ知っていれば誰でもダウンロードできます。ある意味怖い。 ダウンロードしたいファイルのリンクを取得します。 「www.dropbox.com」を「dl.dropboxusercontent.com」にします。 これだけ。 たとえば以下のようなリンクがあった場合、 https://www.dropbox.com/s/8zm9smwuy4n0aoc/%E9%A1%94%E6%96%87%E5%AD%97.txt 上のルールで書き換えてあげれば https://dl.dropboxusercontent.com/s/8zm9smwuy4n0aoc/%E9%A1%94%E6%96%87%E5%AD%97.txt ダウンロードできちゃいます。 何が嬉しいの? 私はちょっとお試しでAPIのパースがうまくいってるか確認したするのに使ってます。簡単な静的コンテンツをとりあえず表示させたいとき
わずか1つのファイル、300行のライブラリです。作成者は日本人だそうです。 DynamicJson - Source Code全容はこちら C#4.0で追加された動的型をうまく使ったJSONパーサーです。 作者さんのブログにある解説記事です。 使い方 読み取り var json = DynamicJson.Parse(jsonString); var hoge = json.hoge; var isRight = json.nest.isRight; 文字列をパーサーに読み込ませるとパースした結果のオブジェクトを返してくれます。あとはそれに対してあたかもプロパティがあるかのようにアクセスするだけです。ネストしてても大丈夫。 書き込み var obj = new { str = "string", num = 1, nest = new { bool = true }, array = ne
デスクトップアプリでも組み込みデバイスでもHTTPでリクエストを投げられたらトラッキングできます。できます。 Google AnalyticsといえばWebの解析ツールと思っていたのですが、知らなかっただけでAndroidやiOSアプリ用のトラッキングSDKが提供されていました。では、WindowsストアアプリやWPアプリはどうなのかというと、すでにサードパーティーのトラッキングツールがあります。ここまではいいかな。 ではデスクトップアプリは…? 私のググラビリティが低いせいか、ついに見つけることはできませんでした。集計アプリを作るためのツールはサードパーティが作っているようですが。ですが、Google Analyticsはそういった環境であっても使うことができます。APIを直にたたくことによって。 というわけで実際に叩いてみた Google AnalyticsにはいくつかAPIがあるので
おとなしく同じ名前空間にモデルがあるとは限りません。たとえば、AwesomeLibrary::AwesomeModelという名前のモデルがあってそこと1:Nの関係を持たせたいとしましょう。 普通は has_many :awesome_models とかやるところですが、この場合はAwesomeModelを探そうとしてうまくいきません。答えはこちら。 has_many :awesome_models, classname: "AwesomeLibrary::AwesomeModel" おもえばなんてことはありませんでしたね。クラス名を指定してやればよかったわけです。 困った理由 自動生成されたとあるモデルに、has_manyしたいという事情ができてしまいました。困ったことに件のモデルは実体ライブラリに書かれているし、モデル名の変更なんてもってのほか。ならばどうするか…ということで調べてみまし
おそらく既出ネタですが、画像もJavaScriptも一切使わないであの5つ星評価のやつを実装しました。 ネタは簡単。 :checked擬似要素と+セレクタ、~セレクタを使う input:checked擬似要素は、選択されたチェックボックスやラジオボタンなどを表します。それから+セレクタは、直後の兄弟要素を表します。たとえば input:checked+label とすれば、チェックを入れられたinput要素のすぐ後ろにあるlabel要素を表します。 ~セレクタは+と似ていますが少し違います。+セレクタは直後の兄弟要素でしたが、~セレクタこれより後ろにある全ての兄弟要素を表します。つまり input:checked~input とすることで、選択されたチェックボックスやラジオボタンより後ろにある兄弟要素のうちのinput要素すべてを指します。 デフォルトのラジオボタンを隠す 特に難しいことは
ListViewにたくさんのデータを表示することを想定しています。 ItemsPanelにVertualizatingStackPanelを使う 見えていない部分はレンダリングしない(いい意味で)怠惰なStackPanelです。ただし、以下のことをすると仮想化が無効になりただのStackPanelと同じようになってしまいます。 項目コンテナーが ItemsControl に直接的に追加される。 たとえば、アプリケーションで ListBoxItem オブジェクトが ListBox に明示的に追加される場合、ListBox は ListBoxItem オブジェクトを仮想化しません。 ItemsControl に含まれる項目コンテナーの種類が異なる。 たとえば、Separator オブジェクトを使用する Menu では、項目のリサイクルを実装できません。これは、Menu には、Separator
こんなにつらいとは思ってませんでした。 こんなにつらいコントロール Airspace問題 名前がついてしまうくらいにはよく知られた問題だったようです。WPFのWebBrowserは、ふつうのWPFのコントロールと違ってActiveXがうんぬんかんぬんでどういうわけか一部を除いてあらゆるコントロールの一番上にレンダリングされるようになっています。4.5では解決したとか話を聞いた気がするのですが気のせいだったようで、プロジェクトで使う.NET Frameworkを4.5に設定しても解決してないのでやっぱり解決してません。現状では対処が必要です。 既定ではレンダリングモードが制限されている 既定ではIE7相当の骨董品レベルに制限されています。なのでそのままAcid2テストに特攻すると失敗します。 つまり何も対策しないとこうなる ※編集時は画像が上になっていることに注目 実行すると… 一面血の海に
もちろんグレープといっても これではありませんし、 こちらでもありません。 APIを作るのに特化したフレームワークで、例によってGemfileに gem 'grape' って書いたあと bundle で使えるようになります*1。 文法とかそのへん なんかSinatraとRailsのroutes.rbっぽい書き方ができます。 class API < Grape::API # ex)http://localhost:3939/api prefix 'api' #ルートのプレフィックスをつける # ex)http://localhost:3939/api/v1 version 'v1', using: :path format :json #これでJSONをやり取りできるようにする #API resource :account do # http://localhost:3939/api/v1/
使いまくってもハマるだけであまりいいことはないみたいなので、つかいどころだけ。 オーバーヘッドも馬鹿になりませんからね。 非同期処理はスレッドベースからタスクベースにしよう そもそもの前提ですが、スレッドベースの非同期処理は今や非推奨らしいです。その証拠に、ストアアプリ版のAPIからはThreadクラスが削除されています。なぜかというと、スレッドを作ったり切り替えたりするコストが大きいからだそうです。スレッドの切り替え処理にも結構オーバーヘッドがかかりますし、だいだいひとつのスレッドを作るのにローカルスタックを1MB消費するとか。1000スレッドくらい作るとメモリを食べつくして飢え死にします。やってられませんね。 非同期処理をするときは、Threadクラスを直接使うのではなくTask、せめてThreadPoolやTimerを使うようにしましょう。こうすることで、既存のスレッドをなるべく使い
るびまや先人たちのブログを参考に、Turnipなどを使ってエンドツーエンドテスト(E2Eテスト)を書く環境を整えました。 Turnipってなに? これです。 というのは冗談で、冒頭にあげた通りE2Eテストを自動化するツールです。ちなみにこの手のライブラリの先輩であるキュウリ…じゃなかったCucumberの問題点を解決したとかしないとか*1。 必要なライブラリの簡単な紹介 何かといろいろライブラリがいるので、それもまとめてご紹介します。 RSpec もはや説明不要のテストツールです。別にTest::Unitでもいいんでしょうけど、こちらの方が相性がよさそうなのと、私も書き慣れているのでこちらを使います。 Gherkin テストシナリオを記述するための言語を操作するライブラリです。うまくやるとかなり自然な日本語でもテストシナリオが書けます*2。 Capybara ブラウザの UIを自動で操作し
公開時点で間違えてスクショ貼ってました。ごめんなさい。今は修正してあります。 今回はひとつのWebサイトを例にとって、デザインや構造がどのように変化してきたのか追っかけようと思います。 追いかけるWebサイト 今回は、日本航空サイトを昔のものから追っかけていきます。 1996年11月 インターネットアーカイブで見ることのできる一番古い日本航空のページです。 トップに大き目のCIロゴ、その下にサイト案内の画像、続けてコンテンツが表示されるシングルカラムデザインです。CSSなんてものは当然使われておらず、センタリングはcenterタグでされています。メニュー画像も1枚絵で、今はまず見かけないmapタグによってエリア分けされています。何より特徴的なのがコンテンツのリスト。なんと、ulタグではなくtableタグで組まれています。 <table border="0" width="465" cell
Remove sensitive data · GitHub Helpの翻訳です。直訳すると日本語として不自然になるようなところは一部意訳しています。 秘密情報の削除 パスワードや何かのキーをGitリポジトリにうっかりコミットしてしまうことは往々にしてあるものです。しかもそれらはgit rmコマンドでファイルを削除してもリポジトリの履歴に残り続けます。ですがご安心ください。gitにはとても簡単にリポジトリ全体の履歴からきれいさっぱりそのファイルを消し去る方法があります。 危険!: 一度コミットしてpushしてしまったそれらの情報は信用ならないものと考えるべきです。それがパスワードであれば絶対に変更しましょう。何かのキーであれば再生成するべきです。 ファイルをリポジトリから切り離す方法 パスワードを変更したら、そのファイルを履歴から消し去り、確実に再度コミットしてしまわないように.gitig
最近噂のCookieClickerというゲームがあります。 Cookie Clicker ゲーム内容はクッキーをクリックしたりクッキーを消費して様々なユニットやアップグレードアイテムを購入したりして、ひたすらクッキーを生産し続けるというゲームなのかもはやよくわからないゲームです。 ここ数日急用があったので放置気味でしたが、今のところ始めて3日で、1秒間につき地球上のすべての人にあまねく10枚ずつ以上クッキーを渡せる程度の生産量になりました。通な言い方をすれば約82GCpS*1です。やりこんでいる人は数PCpSを軽く超える生産量だそうです。桁の吹っ飛び具合が人気の秘訣なのでしょうか。 でこのゲーム、実はHTML5でできてるんですよね。しかも、「自動クリック程度はチートじゃないからやってもいいらしい*2」とのこと。ということなので、プログラマーの端くれとしては自動クリックくらいはやってみたいも
Railsで動いているアプリでなぜかログインができない。教えてもらったIDとパスワードを何度打ち込んでもログイン画面にリダイレクトされます。 POSTしたときのログを漁ってみると、 Started POST "/login/auth" for 127.0.0.1 at 2013-04-03 20:58:22 +0900 Dalli::Server#connect 127.0.0.1:11211 127.0.0.1:11211 failed (count: 8) 127.0.0.1:11211 is still down (for 10.361 seconds now) Session::DalliStore#get: No server available Processing by LoginController#auth as HTML Parameters: {"utf8"=>"✓"
いくつかやりかたがあります。 1. 静的ファイルで十分な場合 public/404.html、public/500.htmlというファイルを置くだけです。ね、かんたんでしょ? 2. レイアウトを使いまわしたい場合 まずはconfig/routes.rbを修正します。 MyApplication::Application.routes.draw do match '*not_found' => 'application#render_404' #この行を追加 end 次にapp/controllers/application_controller.rbに修正を加えましょう。 class ApplicationController < ActionController::Base #以下のコードを追加 rescue_from ActiveRecord::RecordNotFound, :wit
この前Herokuを触ったついでにWindowsにRubyをインストールした私は…なお話です。 知らなかったHamlの機能 ただのHTML簡略記法といい感じにRubyを評価できるだけのものだと思ってたら思いのほか高機能でした。 Markdownを埋め込める .content :markdown ### 埋め込んでみた こんな感じで埋め込みます。 これをHTMLにするとこうなります。 <div class="content"> <h3 id="id1">埋め込んでみた</h3> <p>こんな感じで埋め込みます。</p> </div> テキストが主体のところはMarkdownで、それ以外はHamlで、といった棲み分けができます。Haml単体では使えないので追加でgemをインストールする必要があります。 ほかにもいろいろ埋め込める LESSやCoffeeScriptも埋め込めます。やり方は似た感
ActiveRecordでSQLのクエリーを構築していくのは手軽でいいのですが、ちょっと特殊なことをしたいときはなかなかそれだけでは難しいかできない、ということがまれによくあります。 私もここ数日あれこれ試行錯誤した結果諦めたものがあります。どんなものかというと、 テーブルを内部結合してある条件に一致したレコードを、あるカラムについてグルーピングしてまた別のカラムで平均を求め、その平均がしきい値以上のものを取り出す です。SQLだと、 select b.*, c.average from b, (select a.b_id, AVG(a.value) as average from a where a.type = 1 group by a.b_id) as c where b.id = c.b_id and c.average > 1 みたいなかんじになります。 平均を求めるところまでは
Railsの構築準備簡単ですなぁ…CakePHPでアプリ書き始めたときもめんどくさがらずにbake使えばよかったかも[みくったー]— ゆうなんとか@8/31きょうとさん (@yuu_hara) 8月 28, 2012 めんどくさいことは直接しなくていいのが楽ですね。 なお、環境とかは以下のとおりです。 OS Fedora 17 64bit Ruby 1.9.3 (x86_64-linux) Rails 3.2.8 アプリを構築したいところにディレクトリを移動したあと以下のコマンドを打ちます。 $ rails new <アプリケーション名> (中略) Your bundle is complete! Use `bundle show [gemname]` to see where a bundled gem is installed. 最後のほうでこんな感じのメッセージが出れば最低限の準備は
今回掴んだバイトですが、まだまだサービスがリリース前なので「変更はmasterリポジトリに突っ込んどいていいよ」と言われています。しかし、今後は「git-flow」というものを使って作業をすすめるようにとのことです。なんでしょうかねこれ、というわけでちょっとだけ調べてみました。 git-flowとは? 小洒落た言い方をすれば「yet another*1なブランチワーク補助ツール」です。結局は使う側も多少はルールに従う必要なのですが、これを使うことで、複雑なブランチの切り方をしてもあまり混乱することなくリリース状態をキープすることができるようです。 インストール $ sudo yum install gitflowyumはお使いのパッケージ管理ツールへと適当に読み替えてください。「gitflow」も環境によっては「git-flow」だったりするのでそちらも適宜読み替えt(ry つかってみる
以前似たような記事を書いてからもうすぐ1年。その間Webデザインも様々なトレンドが駆け巡り、Bootstrapも周辺サービス、カスタムスタイルが新たにいくつも出てきました。以前と若干かぶるところはあるだろうものの、ご紹介しようと思います。 まずはいまさらかと思いますが概要から BootstrapとはTwitterが作っているCSSフレームワークです。これを使うことで、凝ったことをしなくてもあっというまに整ったWebページを作ることができるという代物。マルチカラムもレスポンシブデザインも簡単にできるステキツールです。 公式ページとドキュメントはこちらから。 用意する ではそんなBootstrapはどこで手に入るのでしょうか。 公式から手に入れる まずは公式から。トップページからは素のままのBootstrapを手に入れられるほか、細かなカスタマイズをした上で手に入れることもできます。 他のとこ
ひまなときにぼーっと見てるとなかなかおもしろいのが出てきました。 文字列中の改行は合法 他の言語だと構文エラーになることが多いのですが、Rubyなら大丈夫です。 "途中で改行してもいい。 そう、Rubyならね。" #合法 複数行にわたって書くこともできます。 この場合含まれる改行文字は常に\nになります。 実際のソースファイルの改行コードとは無関係です。 リテラル ヒアドキュメント デフォルトでは式展開されるのですが。 <<'EOS' EOS と書くと式展開されなくなります。ダブルクオーテーションマークで囲った場合は式展開されます。ちなみにバッククオートで囲うとコマンドの実行になります。 公式のドキュメントはこちら %記法 式展開したいけどダブルクオーテーションが大量に含まれるような文字列が欲しいとき、これを使ってみましょう。 %(文字列) というふうにすることで、たとえば %(<a hr
恥を承知で申し上げますと、「GPU=画像処理するやつ」ということは知っているのですが、逆にいうとそれくらいしか知らない人間です。さすがにそれはどうかと思いますし、このまえカーネルVM探検隊に行って来ましたし、その折に触れてそのへんに詳しい方からちょこちょこっとお話を聞いたので、せめてもう少し詳しく知っておきたいなと最近思っていました。というわけで、今回はGPUについて確認してみようと思います。 そもそもGPUってなんでしたっけ Wikipediaの記事をそのまま引用するとこんな感じです。 Graphics Processing Unit(グラフィックス プロセッシング ユニット、略してGPU)とは、パーソナルコンピュータやワークステーション等の画像処理を担当する主要な部品のひとつ。Visual Processing Unit(ビジュアル プロセッシング ユニット、VPU)という名称もある。
たとえば、CakePHPで作ったアプリケーションをgitでバージョン管理していたとする。ある日超便利と噂のプラグインをいずこからプラグインを置くディレクトリにクローンして、大本のリポジトリをpush。このあと他のところでpullするとプラグインがない。— ゆうなんとか@ね む いさん (@yuu_hara) 7月 6, 2012 これに対する正解のようなものがタイトルのコマンドらしいです。 つかいかた $ cd /directory/of/your/repository $ git submodule add https://github.com/cakephp/debug_kit.git Plugin/debug_kit という感じで使うらしい。なぜか時々うまくいかないなお、モジュールを追加したいリポジトリのルートでコマンドを打たないと追加してくれません。 git submodule -
最近はやってますよね、Twitter Bootstrap。もっと早く知っていたらきっとしあわせになれたんじゃないかなって人も多いと思います。ようやくかよ(笑)とか言わないでくださいお願いします そこで、Twitter Bootstrapを使うために回るといいよっていうサイトをいくつかご紹介。 用意する いざ使うとなっても、モノがないと話になりません。公式サイトから引っ張ってきてもいいのですが、それだとちょっとナンセンスかなーってお思いの方はこちらへどうぞ。 HTML5 Initializer このサイトはマウスをぽちぽちするだけで超簡単にTwitter Bootstrapの準備ができます。 一番右の「Bootstrap」をクリックすると細かいチューニング画面が出てくるので、気の向くままにフンフフンと必要なものやら気になるものやらを選んでいき、あとは「Download it!」をクリックする
昨日の記事で 今後はブランチ切ってローカルで開発、機能が実装できたらマージしてjsdo.itで公開、という感じになるんでしょうかね。 とか言っていたにも関わらずブランチの切り方を知らなかったとかもうね…でも調べてみると超簡単でした。 $ git branch Enemy-move-Script で「Enemy-move-Script」というブランチが切れます。たったこれだけ。超々簡単ですね。確認のしかたは以下の通り。ちゃんとブランチができてます。 $ git branch Enemy-move-Script * master 頭に*がついている方が今見ているブランチだとか。切り替えるときは以下のようにします。 $ git checkout Enemy-move-Script M index.js Switched to branch 'Enemy-move-Script' $ git br
このページを最初にブックマークしてみませんか?
『ゆうなんとかさんの雑記帳的な。』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く