togatttiのエンジニアメモ

過度な期待はしないでください。旧麹町で働くエンジニアのメモ帳です。

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でできるこ…

RailsでTwiiterBootstrapを設定してBootThemeを使う。

Webで何かアプリのモックを作るときにエンジニアだと, 基本デザインまで手が回らないことが多い。そんなときにデザインにごまかしを効かせるための ライブラリTwitterのbootstrapは割と有名だと思う。今回はそのbootstrapをRailsで使う設定。 これこれ→seyhu…

RESTに沿ってRails3.2でログイン処理を作ってみた②

前回の続きをやる。 RESTに沿ってRails3.2でサインイン処理を作ってみた① - 新卒->麹町で働くWebエンジニアのメモ帳controllerとviewを作って適宜説明必要であれば書く。 controlelrs/sessions_controller.rb views/new.html.erb トップ画面というかログイン…

RESTに沿ってRails3.2でログイン処理を作ってみた①

今回はRails3.2でサインイン処理を作成してみる。 RESTとは RESTとRailsスタイル from Toru Kawamura PHPを今までずっといじってきたからGETとPOSTは よく扱ってきたけど、それらの違いを区別したことはなかったし PUT,DELETEもあることをRailsいじりはじめ…

Herokuにデプロイするときのdatabase.ymlの設定

RailsのデフォルトはSQLite、HerokuではPosgreだから、 ローカルのテストでうまく行ったはずなのに、実際にHerokuへ デプロイしたときにエラーが起きる。単純にdatabase.ymlの設定をすればいいだけの話だけど、 DBのテストアプリをHerokuへ公開するのが初め…

herokuでRails4.0系のGemfileの設定

Rails3と4を混同してるうちに分けわかんなくなってしまったので、 自分で色々テストしたのち、Gemfileの設定を残しておく。Rails4.0を動かすときの参考に...

herokuで設定~テストを公開するまで【heroku,Ruby on Rails】

ネタはやはり会社の勉強会から。 数ヶ月後にheroku、Ruby on Railsのアプリを公開する縛りになったので、 休日を使って、herokuを使ってRailsのテストを公開してみた。ただ、他のやり方を見ながらやったけど上手くいかなかった部分があったので、メモを残し…

MavOS X 10.7.5でCentOS6.4のVM構築した話【MacOS,Linux,VirtualBox,Vagrant】

社内の勉強会でVM構築の方法を教わったので、実験的に試してみる。 そもそも初心者だから、VMとかよくわかんないからはじまる... VMとは ソフトウェアによって仮想的に構築されたコンピュータ。 仮想化技術におけるVMは、OSが動作する実際のコンピュータをソ…

二分検索【PHP】

二文検索 二分検索: 配列の中央値が検索している数値より大なりか、小なりかによって検索範囲を狭めていき、値があるかどうかを調べるもの 静的メソッドbinarysearchは引数として$arrと$numを持つ。$arrはランダムな数字の配列。$numは探したい数字。 $lowは…

プロジェクト作成~ブラウザへ表示【Ruby on Rails】

この前Railsを入れたので、実際にWebサーバーを起動させ、ブラウザに表示させる。 SQLiteインストール rails3.2ではsqliteがデフォルトが必要となるので、先に入れておく。 Weblickを起動させる Railsではあらかじめ用意されてるWEBrickというウェブサーバで…

バブルソート[PHP,Ruby]

文系出だから、基礎的なとこが相当弱い。 幅広く視野広げたいから、アルゴリズムもやろうという意気込み。 PHPでバブルソート アルゴリズムの初歩の初歩をPHPとRubyで書いてみるとこうなる。 そして、出力するとこんな感じ。 Rubyでバブルソート 出力結果は…

心を無にしてRuby on Railsにしてみた【Ruby,Ruby on Rails】

最近、インストール系のメモばっか...それだけやりたいことは多いから、仕方ない。今日はRuby入れて、Ruby on Railsを起動させるところまでやってみる。細かい説明は抜きで、機械的に進めてく。 Rubyは1.9.3 Railsは3.2.13 Rubyインストール インストールす…

PHPでmemcachedを動かしてみる[PHP,memcached]

memcachedとは memcachedは高性能な分散メモリキャッシュサーバと紹介されてる。 初めて聞いたときはよくわからなかったけど、砕いて説明していくとこうだ。 facebookやYoutubeなどの大きなWebサイトでは膨大な量のデータを扱う。 ここではデータを取得する…

CpanmでCatalystをインストール【Perl,Catalyst】

まず利用しているPerlのバージョンを変更新しいものにしたかったので、 Perlbrewを使う。バージョンによってうまく動作しない場合もあるよう。めんどくさい。今回はPerl5.12で環境を構築してみる。 Perlbrewインストール Perlbrew CentOSのため、Linux用が用…

デザインパターンの勉強でFactory Methodとか書いてみた【PHP】

PHP

デザインパターンが気になったので、調べてみた。よく使われているものとして、Factory Methodというのがあったのでそれに関するテストコードを書いて整理。 デザインパターンとは デザインパターンはある問題に直面したときに、このようにすれば解決できる…

PHPでBasic認証設定してみた【PHP】

PHP

Basic認証というと、Apacheや.htaccessでも指定できるけど、 PHPでも実装できるみたいなので、試してみる。普通はユーザやパスワードはDBに保存して取り出すけど、 今回は簡単なコードだけ。 キャプチャ コード PHP_AUTH_USERとPHP_AUTH_PWにはそれぞれ入力…

GitHubでCakePHPを用意してみる【Git,GitHub,CakePHP】

GitHubでCakePHPを用意してみる GitHubで公開鍵の登録を行い、SSH接続が成功済みであれば、以上でgitがローカルのリポジトリに反映され確認することができる。ただこの後、実際に自分のリモートのリポジトリにあげるところで、 つまづいた。このようなエラー…

検索全般で役立つコマンド【find , xargs , grep】

業務でサーバーのログを見る機会が今後ありそうなので、便利なコマンドをおさらいしとこうと思う。ログ解析に限らず、何かと検索系の小技は役に立つはず。 find findはファイルやディレクトリを検索してくれて、パスを導いてくれる。-nameオプションを指定し…

Interface,Implementsを使う利点って何?【PHPのInterface】

PHP

PHPでInterface, implements というのがよくわからないまま、放置してきたので、そろそろ解明していきたい。 ちなみに オブジェクトインターフェイスにより、あるクラスが実装する必要があるメソッドの 種類を、 これらのメソッドの実体を定義することなく、…

LAMPのMPを入れた 【MySQL5.5インストール、PHP5.4インストール】

やっぱり、インストール系は慣れない。 見栄はってVPSなんて使わずにレンサバで楽しておけばよかった。 あらかじめ何でも用意してあるレンサバって偉大だなとつくづく思う... こっちはこっちで細かく設定できなくて、別の悩みを頭に抱えることになるんだけど…

Gitってターミナルにどういれたんだっけ【Gitインストール】

Git

以前入れたんだけど、環境を再構築する必要が出てきたので、Gitをコマンドでインストールする方法をたどってみた。初めてGit使ったときはサイトから直接ローカルにダウンロードして、コピーしたりしてた。懐かしい。 CentOS5.9。単純にyumで入れてみる。

とある初心者Vimmerのカスタム

Vim

プログラミング始めたときはAptanaStudio。 バイトしてたときはEclipse。 VimかEmacsかどっちか迷ったけど、Vimを極めようということで...