サラトガIT日記について

主に Web アプリ開発における「ソフトウエア開発」「サーバ構築(インフラ)」の Tips や設定手順など、過去に開発現場で実際にハマったことや備忘録をまとめています。現在は、多くのサイトで情報共有が行われていますが、当サイトの記事も少しでも役立てばと思います。

これまでは PHP と MySQL を使った Web アプリケーション開発やソーシャルゲーム開発の仕事が主でしたが、サイトへのアクセス誘引など、SEO やマーケティング部分に関連したノウハウも蓄積していけたらと思います。

サイトに対するご意見などございましたら「お問い合わせ」からお願いします。

新着情報

LaravelでQueueのジョブ完了イベントを使ってログ履歴を残す

Jenkins2.54.1にアップデートしたら503エラー

LaravelのEloquentで実行されるSQL文を出力する

AmazonLinuxで「Let's Encrypt」を使ってSSLのサーバ証明書を設定

LaravelのBladeテンプレートで変数の展開をする(バージョン4と5の違い)

nginxのFastCGIキャッシュを強制的にクリアする

BitBucketやGitHubで「空白」「タブ」「改行」の差分を無視する

awkで最後から2番目のカラムの値を取得する

RDSのスロークエリのログテーブルを空にする

PHPで半角スペースのみで構成された文字列を判定する正規表現

人気記事

標準出力と標準エラー出力をパイプに渡す

主要無料ブログ5つに対する自動投稿PHPプログラム

snmpでデバイスの情報を取得

awkで指定したカラム以降をprint表示する

CentOSでRedisサーバを使う

Linuxのプロセス表示で実行中コマンドの最後まで見る

sortコマンドで並び替え対象のカラムを指定する

WindowsのMySQL5.5のmy.ini設定

ログローテートの実行結果

8.3形式の短いファイル名を使う

スキル備忘録

大半が Web アプリケーション開発で、業務系アプリはそれほど経験はないです。

プログラム言語

AWS で LAMP 環境構築(RDS, ElastiCacheは使う)して、バッチはシェルでってパターンが好きです。仕事で使った言語を、携わった順に残しておきます。

  • Java(Struts, Spring)
  • JavaScript(jQuery)
  • PHP
  • Shell
  • Perl
  • HTML
  • .NET C#
  • ASP.NET
  • .NET VB
  • VB6
  • PowerBuilder
  • PL/SQL
  • VBA

データベース(DB)

RDB は定番どころは一通り使いましたが、KVS も含めて残しておきます。多くの BtoC 向けの Web サービスは、ソーシャルゲームも含めて MySQL を使っている印象が大きいですが、大手 SIer や業務系システムとなると、大した規模でもないのに営業的(無駄なパッケージ使って見積もり上乗せ?)な都合もあり Oracle(Javaもセットで)を使うことが多い印象です。(個人的な印象です)

以前、100 万件を超える商品の検索(全文検索)で Elasticsearch を使ったことがあるのですが、RDB に比べると爆速ですね。RDS とメモリキャッシュ系をうまく併用していくと、リソース的にも速度的にもクラウドサービスの予算も節約できそうです。まあ、単発な短期間キャンペーンサイトとかであれば、高パフォーマンスなインスタンスで乗り切る方法もありですが。

  • SQL Server
  • Oracle
  • MySQL
  • PostgreSQL
  • Memcache
  • Redis
  • Elasticsearch

サーバ(OS)

サーバ OS はすっかり Linux 一色になりましたが、どれも慣れですね。社会人 1 年目の時は、Windows Server を使ったネットワーク管理者になるのが目標でしたが、環境が変わると(視野が広がると)、Windows サーバが使いたくなくなるものですね。

Active Directory の設計とか、拠点間のドメインの信頼関係とか、めっちゃ苦労した記憶だけは残っています。会社では誰もわからなくて、問題がなかなか解決せず、あの頃はまだネット上にもそんなに情報もなかったので、泣く泣く実費で「eラーニング」を契約した記憶があります。全く役に立たなかったですけどね(笑)

  • Windows Server2000
  • Windows Server2003
  • Amazon Linux
  • CentOS
  • RedHat Linux
  • Debian
  • Fedora
  • openSUSE
  • Ubuntu
  • FreeBSD
  • Solaris

サラトガ(Saratoga)とは

よく、「サラトガって何ですか」っと聞かれることがありますが、ニューヨークにある「サラトガスプリング」のようなアメリカの都市でもなければ、ノンアルコールカクテルの「サラトガクーラー」でもなく、昔好きだった馬の名前が由来です。アメリカに「サラトガ競馬場」がありますが、この競馬場とは関係ないです。あと、空母とか「艦これ」とか声優とか、最近はサラトガという言葉も広くなって何かわかんないですね。

「サラトガビューティ」という馬が好きで、いつか「サラトガビューティ」の仔に出資してみたいなっと思っていたのですが、共同出資のクラブで募集される気配は今のところなさそうです。そう言えば、「函館3歳S(現在の函館2歳S)」で 2 着になった時の勝ち馬「アグネスワールド」ってどこにいったんだろう。種牡馬になったけど病気だったのかな。

サラブレッドファーム 第二牧場

インターネットに出会ったのは大学に入学した直後。まだ 2000 年問題が話題になる前でしたし、ネットも大学では LAN 接続だったものの、一般家庭からはモデム(36kbpsくらだったかな)でダイアルアップという、今ではとても考えられないような世界でした。

インターネットプロバイダへ支払う料金の他に、NTT に支払う通信代(電話代)が別途あったので一人暮らしの大学生には辛く、夜間だけ掛け放題の通常テレホーダイに加入して、夜な夜なインターネットを楽しんでいたのが今でも懐かしく思えます。夜更かしして、深夜に菓子パン食べたりしていたせいで、いつの間にか 5kg くらい太ったという苦い思い出もあります。

さて、そんなインターネットにハマっていた時代ですが、まだ今のようにサイトやサービスがものすごく多く存在したわけでもなく、とりあえず Yahoo からどこかのサイトへアクセスしたり、検索したりする感じでした。ただ、自分でもホームページを作ってみたいなと思い、HTML の本を買ってきて夢中になっていたのが始まりでした。

Yahoo の検索のような cgi はどうやって作るのだろうと思って、ソースを真似てみたけど、当然静的な html のページで動作するわけもなく、cgi なんて自分には作れないのだろうなっと諦めていました。当時はネット上にも cgi のプログラミングを詳しく解説するようなサイトも少なく、カウンターや掲示板などの cgi のプログラムを提供しているサイトがあったくらいです。

結果的に、大学やプロバイダの自分のサーバ領域に、cgi のプログラムを置いて実行できないと動作しないので、最終的に諦めてしまったのですが、今となっては勿体ないことをしたなって思います。cgi が実行できるレンタルサーバの契約と、perl を覚えるくらいの時間は十分あったのになぁ。

でも、自分のホームページには 1 日 100 人くらいの人が見に来てくれていて、週末は競馬の「複勝大会」などを開催して少し盛り上がっていました。競馬の大きなサイトでは「The Derby Square(ダービースクエア)」など、システム化された大会を開催されているところもあって、うらやましく思っていたのですが、このダービースクエアはホリエモンが作っていたとはビックリです。

同じ競馬のサイトを作っていた人とのネット上での交流も増えましたが、あの頃はメールや掲示板、チャット、メッセンジャー(ICQとか)が主流だったので、今のような SNS があれば、繋がりも途絶えてなかったかもしれません。関西の大学生だった「とくさん」や名古屋で喫茶店をしていた「マーヘーさん」、三重でシステムエンジニアをしていた憧れの「とねっこさん」は元気にしているのでしょうか。「とねっこさん」には北海道の牧場見学の時の写真をたくさん送ってくれて、そのお礼ができていないので、一度は会ってみたかったです。

社会人デビューと転職

時代は移って 2001 年、晴れて IT 業界に就職し、まともにプログラミングをすることに。同期は 100 人くらいいたけど、プログラム経験者なんて当時は少数でした。

入社前にノート PC が貸与されて、VB6.0 の演習課題とアルゴリズムの問題が与えられましたが、今思えば入社前から仕事を与えられていたのかと理不尽さを感じながらも、時間が経ってしまえばいい思い出だったりもします。今では接点もないけど、同期ってやっぱりいいなっと思い返すことも多いです。

さて、入社して新人研修が終わって最初の配属先は Java と VB を使った業務システムでした。Java の SDK は当時は 1.2 で、Windows98 の時代でした。Web 系のシステムが流行り始めていた頃ですが、まだまだクライアント向けのシステム開発が多かった時代です。Java も当時は DOS プロンプトで javac コマンド打ってビルドするというシンプルな形でしたが、この頃は ant とか maven とかあったのかどうかも知らない時代。

そういえば、新人研修時代は外部へのネットワーク環境が整っていない部屋に閉じ込められていたこともあり、ひたすら Java の書籍から該当するパターンを探したり机上デバッグの毎日だったことを覚えています。今でこそググれと言われる時代ですが、あの時は非効率だったなっとつくづく思います。あの放置プレイが研修として良かったのか悪かったのか、私はたまたま受託開発の社内案件にジョインしましたが、出向中心の会社だとそこまで社内教育なんてないか。

朝 9 時から終電まで 1 ヶ月連続出勤とか、残業したらしたで人件費を考えろと怒られたり、何かと理不尽なことも多かったですが、今でも最寄り駅を通過する度に懐かしく思える、そんな社会人デビューの会社でした。その後、ベンチャーを転々としたこともあり、大きく会社や仕事に対する価値観も自分の中で変わってしまった感じがしますが、ホリエモンの本を読む度に、会社に依存しなくて良かったと思います。