togatttiのエンジニアメモ

過度な期待はしないでください.

Perlでデバッグ用の出力処理を書いた

デバッグ用ファイルの出力処理を書いた。 Perl5.10で標準ライブラリとして使うことのできるTime::Pieceモジュールで、日時指定などを行っている。 これまで日時指定といえばTime::Localモジュールを使っていたが、Time::Pieceの方が、 明示的に名前を指定で…

Packageでメソッド呼び出す時の第一引数について

下記のようなコードで、メソッドを呼び出そうとするとき。 use strict; use warnings; package Hoge; sub print_class { my $class = shift; print $class; } 1; アロー演算子だと第一引数にはPackage名のHogeが渡される。 Hoge->print_class; ::だと明示的…

Perlのリファレンス、デリファレンス入門

前提 PerlのプログラムはCPUメモリの中で動作する。 値を入れた変数や特定の処理を保持したサブルーチンなどのデータはメモリ領域上のどこかに保存される。 リファレンスとは メモリ領域の中のどこに変数やサブルーチンが保存されているかを示す場所情報、 …

FindBin::libsを使ってlibまでのパスを取得する

FindBin::libsを使ってみたので、メモしておく。 普通のFindBinを使っても同じことができるけど、こっちのほうがすっきりしてる気がする FindBin::libsとは FindBin::libs Perlモジュールなどが置いてあるディレクトリ(libとか)までのパスを取得して、 その…

telnetとnetstatでポート番号の状態を確認する

最近Cent0S6.5をVPSで立ち上げて、Apacheを起動させたときに Webページを表示できなかったことがあった。 前提 httpd.confファイルは正しい。 httpdプロセスも動いている。 それではポート番号はどうだろうか。 telnetで外部からポート番号が空いているか調…

grep -Fで固定文字列を検索する

コマンドライン上で正規表現文字が含まれた文字列をgrepするときにはまったので、メモとして書いておく。 前提 ここでいう正規表現文字とは&, (, ), |, -,^, ?, *, [, ], $, `, {, }などの正規表現時に使う特殊な意味を 持つ文字のことを指す。 選択肢 通常…

今年の抱負

周りの優秀(勝手な自分基準で...)な知人たちがやたらとハードルの高い抱負を 掲げているので、対抗して掲げてみよう。 本をたくさん読む 本は嫌いじゃないので、気が向けば普段から読んだりしているが、 まだまだ知識を増やしたい。 ジャンルは技術書中心だ…

マージソートの処理の流れを追ってみた

PHPでマージソートを書き、その処理を追ってみた。 コード 出力結果 流れ mergesortは与えられた配列を$leftと$rightに分割する、その処理は内部で再帰的に呼び出され 配列の要素は一旦最小単位(1つ)になる。 その後、隣り合うそれぞれの単位を交互に比較し…

Vimではてなブログに記事を投稿する方法

Vim

Vimではてなブログに記事を投稿する方法があるみたいなので、試してみた。 実際にVimプラグインを使って、はてなのAPIを使うことで、記事の投稿、 編集、更新までできた。 いくつかプラグインはあるみたいだがhateblo.vimというものがすんなり 設定できたの…

はじめてのPull Request

初めてGitHubで海外エンジニアのプロジェクトにPull Requestしてみたので、 今更だけども備忘録として手順を残す。①forkして自分のリポジトリへ持ってくる。これでトップ画面のRepositories contributed toという項目に該当のプロジェクトが追加される。②ロ…

OpenSSLとPython3系でセキュアなWebサーバー構築

今回はオープンソースライブラリのOpenSSLとPythonでセキュアな通信ができるWebサーバーを立ててみた。Pythonは3.3系。 webサーバーの設定 HTTPServerClass sslモジュールを使いソケットの設定、SSLの種類やCSRの指定を行う。そして、設定したソケットとIPア…

覚えておくと便利なfindコマンドのオプション

findコマンドはファイルなどを探すLinux系でデフォルトで使える コマンド。業務中でサーバーにログインしながら、基本的な操作を復習した ので、備忘録に残しておく。最後の使用例は不正スクリプトがiframeに埋め込まれることが多いので、 それを特定すると…

Pythonの仮想環境構築~NLTKのインストールまで

はじめに Pythonでは豊富なモジュール、ライブラリを使うことができるが、 検証を繰り返すと、本環境にゴミが残ってしまうのが残念なので、 複数の仮想環境でモジュール管理を目指すことにした。仮想環境を構築することで、test1ではdjango、test2ではtornad…

【追記】IPアドレスから国名を取得するGeoIPを使ってみた。

PHP

某ホスティング会社に従事しているので業務柄、FTPの不正アクセス、 メールアカウントの踏み台の有無を調査するためにIPアドレスから 接続元の国名を取得することが多い。今までは一つ一つ下記のようなサイトでIPを検索して調べていた訳だけど、 メールサー…

Python用のjedi.vimのインストール

Vim7.3を用意 vim7.0系でNeobundleインストールしようと思ったら、バージョンが合わなかったようなので、 7.3系にまずアップさせる。ここは必要が無ければ、飛ばしてもいい作業。vimコマンドは/usr/local/vim-7.3/bin/vimでたたけるので、適当にalias登録し…

MySQLへダミーデータを作成する

はじめに MySQLに対してロードの検証を行うためにダミーデータを用意する必要が あったので、ダミーデータの取得からMySQLへの挿入までの流れをメモしておく。バージョンは5系。ダミーデータはここで手に入れた。 (日本語のデータ(〜5000件)) 疑似個人情報…

短縮URLのAPIを作成してみた

PHP

社内で使う短縮URLサービスのbitly | ♥ your bitmarksみたいな ものを作ってほしいという話があってPHPで簡単なものを作ってみた。(色々あってペンディングにはなったし...会社ではPerl指定だったけど... 知らない)CSVファイルで簡単に使えるので見てみてく…

AndroidでIntentを用いた画面遷移

Androidの画面遷移の方法を色々試してみて、 ようやくうまくできたので備忘録程度に残しておく。修正、作成したのは下記のファイル。 BeforeActivity.java(遷移前の処理) AfterActivity.java(遷移後の処理) before.xml(遷移前のレイアウト) after.xml(遷移後…

Railsでスマートフォン用ページへの振り分け

Railsで作成したWebサイトをスマートフォンから閲覧してみたら、 ひどくスタイルが崩れていたので、スマートフォン用のページを 別途作ることにした。その際に必要なことは外部からのアクセスがPCからなのか、スマート フォンなのかという振り分け。スマート…

PHPのnamespace(名前空間)について

PHP

PHP5.3から使えるnamespaceだけど、正直意味がよく分かってない(汗)だから、少し調べてみた。 namespaceとは 名前空間はソースコード上で冗長な命名規則を用いなくても名前の衝突が 起こらないようにし、しかもそれを容易に記述できるようにするためだけの概…

ZendFramework2系をインストールしてみた。

ZendFramework2系をインストールしてみた。 準備 httpd.confの設定などで.htaccessは使えるようにしておく。 AllowOverRide Allの設定。 phpは5.1.4以上を用意。 Gitも用意。 Git clone インストール自体はGitからcloneするだけだったから簡単。しかし、下記…

PHPを使いながらSingletonを考えてみる

GoF本の一つのSingletonパターンについて気まぐれに調べてみた。Singletonパターンはインスタンスの生成を一つに制限するためのパターン。 メリット 同じインスタンスは使い回したほうが無駄なコスト(インスタンスの呼び出し)がかからない。 ⇔同じインスタン…

クイックソート-Quick Sort-

アルゴリズムの基礎固め編ということで、 クイックソートをようやく理解できたつもりなので、 コードの説明をたらたら書いてみる。。本当ここらへんは地道に書かないと身に付かないだろな... クイックソートを理解する前に見たもの。 動画 知恵袋 クイックソ…

inputタグのrange属性にCSSを加えアレンジしてみた

最近HTML5のinput属性にrangeがあることを知った。 valueに数字を入れてくれたりするし、使い勝手は今後ありそう。だけど、デフォルトがいけてなさすぎる... デフォルト↓↓ input type(range) 触ってみれば分かると思うけど、ドラッグして動かせるだけでどの…

3Dで回転するリンク

最近はアルゴリズム書いてたり、別の趣味に時間を注いだり、業務がそれなりにあったりして、ブログさぼり気味だったので、久しぶりにインターフェイス系のコードを書いてみた。 hoverさせるとY軸に立体的に回転するという簡単なもの。 プチリッチな感じだけ…

RailsでAjax対応のdestroyとupdateメソッドを作成してみた①

Rails de Ajax Railsの仕様が何となく掴めてきたため、Ajax処理を加えて、 よりリッチなUIに近づけることにした。今作成中のアプリケーションのコードを公開しながら、まとめていく。必要なものはjQuery、 後、gemでjquery-railsは入れておく必要がある。 前…

じゃあ、RailsでいつMySQL使うの、今でしょ

MySQLはインストール済みであることが前提。 MySQL 5.0 Ruby 1.9.3 Rails 3.2.13 RailsでデフォルトからMySQLを使う場合 mysqld起動 service mysqld start MySQLコンソールを開いてユーザとパスワードを作成し、権限付与。 ここで追加した情報は後半のdataba…

railsでrspecのテスト環境を整える①

railsのテストをrspecで行うことにしたので、 メモを残しておく。 RSpecとは Rubyで使える動作駆動開発(BDD)を行うフレークワーク。 メソッド単位での検証ができる。 rspecをrailsにインストール Gemfileに追記。 bundle installしておく。 ヘルパーを作成…

tmuxの基本操作

最近Webサーバーを起動させたり、gitいじったり、railsだとコンソールを開いたり、 ターミナルでやることが増えてきた。今までは一つの画面であちらこちら行きながら、器用にいじってた。 もしくはターミナルをたくさん開いて、デスクトップを散らかしてた。…

JavascriptとHTML5でドラッグ&ドロップしてみた

アプリの中でブラウザ上でアイテムをドラッグ&ドロップでボックスに 自由に移動できる動作が必要になったので色々探してみた。最初はenchant.jsで実現できるようだったけど、色々と面倒なことがあったので、 探してみたら普通にHTML5とJavascriptでできるこ…