せらぴんブログ

サークル「せらぴん」のうのはな透です。やっぱり眼鏡っ娘が好き!!

技術

rubyでシリアル通信するとき、ケーブルが抜けるとどうなるか?

Bye Bye Mooreに倣って技術系の記事をたくさんつけてミントス。ここ最近、Arduinoとサーバを、RasPiを中継機として繋げる作業をしています。 Arduino.Ethernet? 知らんなぁRasPi(の上で動くruby製ソフト)とArduinoはUSBケーブルを介してシリアル通信でやり…

続・透過PNGをマスクにしてクリッカブルマップを作ろうとしたが挫折した話

あらすじ unohanat.hatenablog.comムキイイイイイイイイイイイイイイイ!! どうにかならないか調べてみた 「イメージマップを楽に作れないか?」と検索をかけてみると、結構対応策あるみたい。tsudoi.orgwww.vector.co.jpとりあえず両方試してみました。 使…

透過PNGをマスクにしてクリッカブルマップを作ろうとしたが挫折した話

図にするとこんなことをやりたかったがダメだった。 アルファチャンネル付のpngを複数枚用意する それぞれのpngに別々のページをアンカーする cssでpngをすべて重ねる pngで透明な部分は重なった後ろの方のpngにフォーカスする(といいなぁ) →透明な部分に…

何も考えない直訳ほどナンセンスな名付けはない

大規模PJでは画面IDを元にクラス名設計をする場合が多々あります。 それはそれで鬱屈とするのですが、それよりも厄介なのが画面名を直訳してクラス名をつける*1というパターン。この“直訳”というのがミソで、例えば下記のような画面があったとします。 ユー…

DXRubyでポーカーを作った

この記事はDXRuby Advent Calender 2014の11日目の記事です……のはずがもう日を跨いでいます。ごめんなさい!!前回はみれいゆーさんの「DXRubyで成長曲線と父母遺伝の再現、描写」でした。専門的な内容であまりわかってないのですが、これを利用すれば人生シ…

セッションにまつわる失敗談

以下備忘録。 Tempdata衝突地獄 ASP.NET MVCのTempdataはSessionの代わりに使えて、かつ一度利用したら勝手に消去されるという使い勝手の良い存在です。リダイレクトする場合などに使えば効果抜群。 しかし、注意しなければならないのは以下のような書き方。…

うのはな、demadoの存在を知る

demadoまた車輪の再発明をしてしまったぜ。

俺タワーウィジェット公開しました

俺タワーウィジェット俺タワーウィジェットの反応が割と良さそうなので公開しました。あなたの俺タワーライフをちょっとだけ気軽に楽しく! 実際のところ 「気軽にできる」ことはゲームをプレイする上で重要なファクターだと思います。 部屋の片隅で埃をかぶ…

俺タワーウィジェット(もどき)を作る

俺タワーウィジェット(もどき)、できました。 自分用なので特に一般公開とかは考えてませんが。 追記(2014/11/01) 公開しました! よかったら使ってください。 なぜ作った? デュアルモニタを活かして、サブモニタで艦これと俺タワーを並行表示で楽しも…

polymorphicなモデルをjoinできるメソッドがほしい

RubyのActiveRecordは、ポリモーフィック関連というクッッッソ便利な機能があります。 例えば「ブログの記事にタグを使いたいなー、あ、でもブログ自体にもタグを使いたいな―」といった場合に、TagモデルをEntryモデルでもBlogモデルでも使えるようにしちゃ…

Rspecのbe_***表記は引数を受け取れる

nil?やblank?をRspecで使用する場合、以下のような書き方ができます。 expect(flash[:alert]).to be_nil nil?やblank?は引数がないからいいけど、引数があるinclude?なんかも同じように書けるのか、ちょっと疑問に思ってました。結論から言うと、以下のよう…

Rspec、expect表記移行での修正点まとめ

Rspecがshould表記からexpect表記にシフトしてしばらく経ちましたが、本日Rspecを実行するとかなりの数のエラーが検出されました。どうやらshould表記のままではエラーが出てしまうようなので、すべて修正する羽目に。後学のために、今回修正した点をざっと…

astahのスケルトンコードはListを理解できない

astahってスケルトンコード作れるんですよ。 「クラス図を書くだけでコードまで作れるなんて素晴らしいじゃないか!」って思ったものです。 大きな間違いでした。なぜかというと「astahではメソッドの戻り値と引数にジェネリクスを指定できない」から。例え…

遭遇したら全力で逃げるべきプロジェクトの特徴

「Webサービスを作ろう!」という時に、「これだけはやってはいけない!」という教訓を経験したのでまとめます。こんなプロジェクトを見たら即刻逃げましょう。 1.O/Rマッパーを利用しない 例えばこんなプロジェクト。 Railsで作るのにActiveRecordを使用…

sinatraPJをherokuにデプロイする

自作のWebアプリケーションをherokuにデプロイするのに非常に苦労したので備忘録。 1.TOP画面が表示されない! ⇒サブブランチをpushしていたためと思われる。 解決策:masterブランチをpushする 2.git push heroku masterに失敗する! ⇒production環境で…

デュアルモニタの座標ズレをなくそう!

お悩み編 デュアルモニタを使っているのですが、上図のように仮想と現実の座標ズレに常に悩まされておりました。 これなんとかならないものか……。ちなみに画面解像度の設定はこんな感じ。 解決編 外部ディスプレイを接続して、デスクトップ領域を増やしたと…

SVNを導入してみた

前回の記事で、「バージョン管理ソフト使わなかったからひでー目にあったわぁ」とゴチっていましたが、先日上司から「前のPJのソースバージョン管理ソフトに登録しといて」とのお達しがあり、喜び勇んで取り掛かりました。しかしここで一つ問題が。うちの部…

バージョン管理ソフトにまつわる失敗談

バージョン管理ソフトはソフトウェア開発に必要不可欠です。ですが小規模PJだと構築の初期コストをケチってsvnをまったく使わず開発に取り掛かる、という事態があるようです。「ホントにそんなPJあるのかよ……」と思われるかもしれません。当の本人が言ってい…

【FTP】パッシブモードと見せかけてアクティブモード

「クライアントからサーバにパッシブモードでファイルを転送しようとしたが、途中で425エラーが出てきてしまう」という話があった。 この時クライアントのファイアウォールをOFFにすると、なぜか転送に成功する。ソースは以下のとおり。 package testProject…

備忘録(2012年度PJ)

去年の炎上PJでの備忘録 1. 一括処理は個別処理を再利用できるように設計しろ 今回開発したのが一括取込処理。個別の登録処理は画面上から行うのですが、画面処理がフレームワークに則っている関係かほぼ再利用不可。しょうがないので個別処理と同じことを一…