ゆうなんとかさんの雑記帳的な。

Twitterで踊ったり音ゲーしたりしてるあの名前がよくわからない人が書いてるらしいよ。

覚え書き

WPFのスプラッシュスクリーンを明示的に制御する方法

WPFのスプラッシュスクリーンは画像のプロパティをちょちょいといじってやれば超簡単に出せるのですが、そのかわりデフォルトでは出現・消滅のタイミングはまったくもって制御できません。今回はこれを何とかしてやろうじゃないかというお話です。 WPFのスプ…

TreeViewItemとかListViewItemとかをDataTemplateに使うのはいくない

前もはまった気がするんだけど今日もはまってしまったのでメモです。 これで起きる不具合 思ったようにマウスのフォーカスが合いません 当然思ったようにRoutedEventも発火しません もちろん思ったようなコマンドが飛びません そして妥協のコードビハインド…

iOSアプリの構成を教えてもらった

iOSエンジニアでもあるプロマネさんにWPFのMVVMを教えた代わりに、ちょっと聞いてみました。まずは忙しいところ興味本位の質問に答えていただいたことをお礼申しあげます。以下の話は「ちょっと聞いてみた」のをまとめただけなので誤解や抜けがあるかもしれ…

データベースで保存されない原因がわかった

ADO.NETでCRUDしようと思ってるけどなかなかうまくいかなくてつらい - ゆうなんとかさんの雑記帳的な。 で「なんかうまく保存されてないと気があるんだけど」と思っていたら、いろいろ原因がわかってきたのでメモです。 実はちゃんと保存されていた そうなん…

WPFでコレクションの表示を高速化するオプションとか

ListViewにたくさんのデータを表示することを想定しています。 ItemsPanelにVertualizatingStackPanelを使う 見えていない部分はレンダリングしない(いい意味で)怠惰なStackPanelです。ただし、以下のことをすると仮想化が無効になりただのStackPanelと同じ…

Travis CIを回してみる

設定ファイルを書いてGitHubの公開リポジトリにPushすると自動でテストしてくれるすごいやつです。 設定の書き方 lintツールがあります。まあこれYamlとして正しい構文ならほぼValidになるんですけどね プロジェクトのルートに「.travis.yml」というファイル…

恐怖のできごと

今日はもう嫌になることが起きたので、解決に至るまでの顛末をご紹介します。 0時間目、なぜか更新されないスタイル スタイルの修正をして、意気揚々とデプロイしようとした私。しかし…なぜかスタイルが更新されませんでした。なぜかそれ以外は更新されたの…

.NETでJSONを扱える超軽量ライブラリ「DynamicJson」を見つけた

わずか1つのファイル、300行のライブラリです。作成者は日本人だそうです。 DynamicJson - Source Code全容はこちら C#4.0で追加された動的型をうまく使ったJSONパーサーです。 作者さんのブログにある解説記事です。 使い方 読み取り var json = DynamicJso…

部分的なテンプレートでブロックを使いたかった

とりあえず要所をまとめると テンプレートを作ってヘルパーメソッドの中でrender partial: 'path/to/template', locals: { param: scan(&block) } です。 なんでこうしようと思ったのか レイアウトのように大規模ではないものの、よく出てくるような枠部分を…

またDeviseで死ぬほど詰まってた

やりたいこと ログインしていない状態で認証が必要なページ(ここでは仮にAとします)にアクセスする→ログインページへ移動→ログインに成功するとAへ移動 これ。「フレンドリーフォワーディング」という名前があるそうです。 正解? 公式のHow to通りにやって…

HerokuでSSLを使うのはすごく簡単だった

Herokuにアプリをデプロイするとhttp://yourapp.herokuapp.com/というようなURLが作られますが、このURLのhttpをhttpsに書き換えるとHTTPSによるアクセスになります。以上。 SSL Endpoint is only useful for custom domains. All default appname.herokuapp…

今年やってみたいこと

去年はおおかたいい感じに進んだ気がするので、同じ具合で今年の目標を決めましょう。:20万PV達成:だいたい今の倍くらいです。9月くらいに達成してみたいですね。:もう少し旅行系記事の充実を:どこでも仕事できるので、もう少しお出かけする機会を増やしてみ…

ADO.NETでCRUDしようと思ってるけどなかなかうまくいかなくてつらい

DbContextとDbSetを使ってCRUDやろうと思ってるのですが、なかなかうまくいかなくて積んでました。ひとまずCreateとReadはできるようになったので忘れないうちに。 DbContextはIDisposableインターフェースを実装している 見出しの通りです。必要なところでu…

gitのローカルとリモートのリポジトリでブランチを別の名前にしたいのっぴきならない事情ができたので、コマンドでそれできないか調べてたらできた

どうも、最近はHerokuとunicornの海に溺れています。ADO.NETの大草原からは一時的に救出してもらいましたが、今後はそのまま別の海に沈められている感じです。 さて、Herokuはgit pushするとあとはいい感じにデプロイしてくれるのですが、反応してくれるブラ…

コーディング規約チェッカーを使ってみたけどこの規約いけ好かない

class ClassName def method_name do_something if condition collection.map {|item| item.change.action param, hash: option } end protected def protected_method(x, y) if condition function x, y else function x + 2, y end end 普段こんな感じで書…

メソッドが定義されていないけれどNoMethodErrorが起きない…?

ActiveRecordってdefで明示的にメソッドを定義していないのにメンバーにアクセスすることができますよね。それなのに例外が起きない。これどうなってるんでしょうか?いままで普通に使ってましたが… ちょっと調べるとこんなメソッドがあるようです。 method_…

名前空間があるモデルにhas_manyとかやりたい時ってたまにあるけどこうするといいらしい

おとなしく同じ名前空間にモデルがあるとは限りません。たとえば、AwesomeLibrary::AwesomeModelという名前のモデルがあってそこと1:Nの関係を持たせたいとしましょう。 普通は has_many :awesome_models とかやるところですが、この場合はAwesomeModelを探…

WPFのWebBrowserコントロールでjQueryを動かしてみる

WPFのWebBrowserクラスには、スクリプトを実行することができるInvokeScriptというメソッドがあります。これでjQueryを使えるようにしようというのが今回の魂胆です。 一筋縄ではいかない InvokeScriptメソッドでは、直接document.getElementById("hoge")み…

「汝は人狼なりや?」の遊び方

いろいろ役職がありますが、今回は簡単なものから。 簡単な説明 一致団結して人の皮をかぶった狼を全員吊るし上げるか、村人をだまして全員食らいつくしましょう! もう少し詳しい説明 多人数の村人チームと、少人数の人狼チームに分かれてゲームをします。…

VisualStudioでGitが使えるらしい

ちなみにコミットだけでなくてブランチ作成、マージ、リモートへのPush、Pull、競合の解決もできるらしいです。 VisualStudioから使ってみよう 「チーム エクスプローラー」というところから使います。表示(V)→チーム エクスプローラーで出てきます。前にも…

iTunesとかの設定やってた

自宅にあるノートPCとデスクトップPC、それにモバイル端末を同じネットワーク上に置いて、あれこれやるというのをやっていました。 そもそものきっかけ CD借りてきた(ฅ'ω'ฅ)猫叉アルバム全部一気に— ゆうなんとか@1級合格者しました (@yuu_hara) 2013, 11月 …

コードメトリクスを測ってみた

VisualStudioにはコードメトリクスを測る機能がついています。 これを使うと、自分の書いたコードがどれだけ保守しやすいか調べることができます。今書いているコードが果たしてどれほどきれいにかけているのか、限定的とはいえ客観的に知ることができるもの…

乗車券の遊びかた

今日はフォロワーさんが乗車券(チケットトゥライド)というボードゲームを持ってきてくれたので、遊び方の説明です。 簡単な説明 乗車券のルートをより多く完成させよう!以上。 もうすこし詳しい説明 ボードには北アメリカ大陸が描かれていて、そこにいくつ…

MacからMacにお引っ越し作業

iCloudとGoogle ChromeとDropboxのおかげで超簡単でした。 ことのおこり MacBookがグレードアップした!— ゆうなんとか@おこめおいしい♡ (@yuu_hara) 2013, 11月 7 グレードアップした(物理)!— ゆうなんとか@おこめおいしい♡ (@yuu_hara) 2013, 11月 7 やり…

Objecctive-Cを初めて書いてみて

近々Macのデスクトップアプリを開発することになりそうなので、夕方から池袋でObjective-Cの本とかあれこれ探していました。ついでにiOSアプリとかも作れるようになるといいなーとか思いつつ、本屋さんの大きさに圧倒されたのでした… Objective-Cを触ってみ…

パラレルユニバースの出し方を文章化してみた

パラレルユニバースの出し方のこつがわかってはや半年。それなりに文章化できるくらいにはこつがつかめてきた気がするので、ちょっとまとめてみます。 無理にやる必要はない 先に行っておきますが、無理にやる必要はないと思っています。AC版はシークレット…

Bundlerをゆるふわに使っていていたい目にあったお話

今日のハイライト きっ、聞いてないよ!Bundlerを使って必要なGemをインストールするまではよかったのに、バージョンが違うみたいでそんな動きかたしてないだなんて! 改めましてBundlerとは RubyのライブラリはRubyGemsというツールでインストールすること…

そして9月も終わる。

とろけるような暑さはどこかに行ってしまって、夜も少し肌寒くなってしまいました。 今月は初めて海外旅行に行ったり、人生2度目の引っ越しの準備をしたり、とても忙しい1ヶ月になりました。おかげで来月のおちんぎんが大変少なくなりそうですが 今年の目標…

久しぶりにサブウェイが食べたくなったのでドレッシングを調べてみた

ご注文の流れ メニュー 野菜のサブウェイ - SUBWAYより引用 えっ?と思ったあなた 一体いつからここが技術系ブログだとと錯覚していた? 藍染惣右介とは (アイゼンソウスケとは) [単語記事] - ニコニコ大百科 茶番はこれくらいにして、今日はサブウェイのド…

ついにE2Eテストが書けるようになったんだけど、道のりが長過ぎた

るびまや先人たちのブログを参考に、Turnipなどを使ってエンドツーエンドテスト(E2Eテスト)を書く環境を整えました。 Turnipってなに? これです。 というのは冗談で、冒頭にあげた通りE2Eテストを自動化するツールです。ちなみにこの手のライブラリの先輩で…

JavaScriptのクリックイベントを発火させる方法

最近噂のCookieClickerというゲームがあります。 Cookie Clicker ゲーム内容はクッキーをクリックしたりクッキーを消費して様々なユニットやアップグレードアイテムを購入したりして、ひたすらクッキーを生産し続けるというゲームなのかもはやよくわからない…

メールが送れているか確認したいけど自分の持っているメールアドレスに向けて送るのは…という方向けのGem「MailCatcher」

メールを送る動作をするときの確認ってどうしてますか? アカウントを持っているどこかのメールサーバーを使って送ったりしていませんか?私もそうしてました。 でもそれだと、 正しく送れているはずなのにメールが来ない と思ったら迷惑メールフォルダーに…

楽したいんですよ、綺麗にコードかけるし、書かなくていいかもしれないですし

昨日はもう出歩きたくないようなひどい雨風でしたが、今日は打って変わっていい天気です。涼しくなってきて夏も終わりが近いと感じます。 さて、今回は「多対多の関連を持つデータをRailsでうまく保存したく」なりました。 データを表示する段階の問題 newや…

借り受けたMacBook Airでもお仕事できるようにした

とりあえず必要最低限のものはアメリカに行く前にインストールしてありましたが、あらためてメモ書きです。でもその前に。 癖になるトラックパッドの操作 なれるとなかなかいいですねこれ。今の所こういう感じにしています。 2本指で 左右にドラッグするとペ…

なんかスタイルシートのある色をデータベースに保存しておいて、管理者が自由に色を変えられるようにしたいよね、みたいな話があったので

Railsだと「アセットパイプライン」なるものでやれるそうです。 今までお手伝いしてきたアプリでは、何の気無しにJavaScriptをCoffeeScriptで、CSSをSCSSで書いてきたのですが、どうやらこれもアセットパイプラインを暗に使っていたようです。 今回はSCSSの…

Deviseでこれをやってておくれそうになったはなし

たとえば管理者と一般ユーザーを使い分けたいときってよくありますよね。今回それに出くわしまして、Deviseで何とかしてみました。 まずはDeviseを使った管理者と一般ユーザーのモデルを作ります。 rails g devise users rails g devise admin みたいな感じ…

404ページ、500ページのつくりかた

いくつかやりかたがあります。 1. 静的ファイルで十分な場合 public/404.html、public/500.htmlというファイルを置くだけです。ね、かんたんでしょ? 2. レイアウトを使いまわしたい場合 まずはconfig/routes.rbを修正します。 MyApplication::Application.r…

明後日出発です。 ほか

明後日出発です。 いよいよあさって出発となりますが、まったくまだあまり準備ができてません。とりあえず明後日までのタスクは 服を買っておく(1日足りない) 旅券申請しておく お金おろす おみやげ買っておく の4つ。サブタスクがいくつかありますが、いま…

アレが好きな方におすすめ!なダミー画像生成サービス

http://t.co/BH6B1nMCmz あるものが好きな方におすすめの斬新なダミー画像生成サービスを見つけた— ゆうなんとか@23~26東京 (@yuu_hara) 2013, 8月 17URLで察しがつくかもしれませんが*1、なかなかおもしろいダミー画像生成サービスを見つけました。 API 正…

いや、べつにTwitterの真似事がしたいわけではないんですけれど

今度は「ログインするときにTwitterみたいにユーザー名とメールアドレス両方受け付けたいよね」みたいな話が持ち上がったので対応してみたいと思います。 ちょうどDeviseのWikiにやりかたが載っていたので、この通りやってみたいと思います。 大体の流れは、…

Rakefile書いてみた

Rakefileってなに? rake hoge で実行できるタスクをつらつらと書いたものです*1。その実態はRuby+タスク定義用のAPIといった感じです。 で、書き方は? task :create do #rake create で実行したいタスク end task :delete do #こちらは rake delete end ta…

Grapeというのを触る機会があったので

もちろんグレープといっても これではありませんし、 こちらでもありません。APIを作るのに特化したフレームワークで、例によってGemfileに gem 'grape' って書いたあと bundle で使えるようになります*1。 文法とかそのへん なんかSinatraとRailsのroutes.r…

「ここの調子がおかしいようなのですが…」「ああ、キャッシュがおかしかったようですね。これでどうですか?」「あ、いけました!ありがとうございます!」

これがあるからキャッシュは… 今回はRailsでキャッシュを使ったり消したりする機会があったのでメモです。 キャッシュする、読み込む Rails.cache.write(key, value) と Rails.cache.read(key) のペアであれこれしてもいいのですが、 Rails.cache.fetch(key)…

Ruby 2.0 と 1.9 を共存させたい

今の私、いい加減Ruby 2.0を触ってみたいけど、ちょっとわけあってRuby 1.9も使い続けたい、といった感じになってます*1。さて、どうしたものかと調べていたら、「rbenv」なるものがありました。まあ誰しも考えるんでしょうね。 インストールしてみる ssteph…

Ruby on Rails をインストールしたらついてくるActiveSupportとかいうライブラリについて

これなに? タイトル通り、gem install rails と打ち込んだらRailsもろともインストールされる数多のGemのうちのひとつです。この子は何なのかというと、かゆいところに手が届くようなメソッドを集めたものらしいです。ちなみに、Railsを使ったプログラムで…

JavaScriptのapplyの黒い使い方

JavaScriptプログラミング、zipもないし(Haskell的な)concatもないし辛い…と思ったらこれの2つ目の奴が魔法っぽくてやばい http://t.co/s1CFkyQyGZ [Sombrero]— ぽこつん@ (@ponkotuy) 2013, 7月 18 うそだーと思ったら本当になりました。 Haskell的なconc…

これイマイチDRYじゃないなーと思ったら

DRYとは アルファベットをひと文字ずつ、または英単語のdryと同じ読み方をしますが、「乾かせ」ではなく、「Don't Repeat Yourself」の頭文字です。早い話が「重複を避けよ」ということで、データやプログラムに重複箇所があると、そこに修正をかけたいとき…

消したはずのブランチをチェックアウト

リモートリポジトリにpushしたけどローカルでマージしてないブランチを消すとこうなります。 ( ・ω・)っ git branch -d unmerged warning: deleting branch 'unmerged' that has been merged to 'refs/remotes/origin/unmerged', but not yet merged to HEAD. …

Railsで直接SQLを実行していい感じに値を得る

ActiveRecordでSQLのクエリーを構築していくのは手軽でいいのですが、ちょっと特殊なことをしたいときはなかなかそれだけでは難しいかできない、ということがまれによくあります。 私もここ数日あれこれ試行錯誤した結果諦めたものがあります。どんなものか…

ワードバスケットの戦術について

ちょっと私の回りではやってるので。 ワードバスケットのルールについて ざっくり説明するとしりとり×カードゲーム×スピードといったところです。 プレイ動画はこちら。 ワードバスケット大会決勝1 - YouTube ルールはこちらでご確認ください。 [http://jaga…