サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
GPT-4o
murayama.hatenablog.com
Linux勉強中です。 今日はiptablesを試してみます。 参考書籍はこちら。 Ubuntuで作るLinuxサーバー (日経BPパソコンベストムック) 作者: 日経Linux出版社/メーカー: 日経BP出版センター発売日: 2008/12/12メディア: 大型本購入: 6人 クリック: 369回この商品を含むブログ (11件) を見る そうそう、この本オススメです。 タイトルにもあるとおり、サーバ構築がメインでして、 内容も浅すぎず、深すぎずちょうどいいです。 暇な人は本屋さんへGO。 で、勉強した内容をまとめます。 iptablesとは iptablesはパケットフィルタリング機能をもつソフトウェアです。 ファイアウォールやNATとして利用できます。 CentOSの場合は、デフォルトでインストールされており、 ファイアウォールの設定もデフォルトで有効になっています。 iptables
tcpdumpはネットワークのトラフィックを監視するツールです。 tcpdump で監視がスタートします。 ただい、この場合、NICに流れるいろんなパケットが出力されちゃいます。 特に、sshでログインしてtcpdumpってするとびっくりします。 監視対象のパケットを絞り込む場合は、ホストやポート、プロトコルを指定します。 tcpdump host 192.168.24.73 and port 80 上記の場合であればホストが192.168.24.73、ポート80番(HTTP)のパケットを監視できます。 この場合、送信元、送信先の指定はしていないので、送信元、送信先のいずれかに該当するものが監視対象となります。 送信元の指定のみをフィルタリングの対象としたい場合はsrcと修飾します。同様に送信先を指定する場合はdstを指定します。 tcpdump src host 192.168.24.7
PhantomJSとは PhantomJS is a headless WebKit scriptable with a JavaScript API. It has fast and native support for various web standards: DOM handling, CSS selector, JSON, Canvas, and SVG. http://phantomjs.org/ PhantomJSはJavaScript APIで動くヘッドレスWebKitです。 PhantomJSはDOMハンドリング、CSSセレクタ、Canvas、SVGなどネイティブにサポートしており、高速に動作します。 ものすごく簡単にいうと、ターミナルで動く画面をもたないブラウザですね。 主な利用シーンは以下のとおりです。 Webテスト ページオートメーション スクリーンキャプチャ ネ
よく、 「小規模プロジェクト」とか「大規模プロジェクト」とかよく言うけれど、 何人くらい(期間はいつくらい)が小規模で、 何人くらい(期間はいつくらい)が大規模なのか曖昧でした。 ソフトウェア見積り―人月の暗黙知を解き明かす 作者: スティーブマコネル,久手堅憲之,Steve McConnell,田沢恵,溝口真理子出版社/メーカー: 日経BPソフトプレス発売日: 2006/10メディア: 単行本購入: 28人 クリック: 446回この商品を含むブログ (90件) を見る を読んでたら、著者(この本)の基準があったのでメモ。 小規模(S) 全体で参加する技術スタッフが5人以下のプロジェクト。 中規模(M) 5人から25人程度のメンバーで構成され、3ヶ月から1年程度継続するプロジェクト。 大規模(L) 半年から1年以上継続する25人以上のプロジェクト。内容は勝手に要約してます。 あくまで基準と
ここんとこのブログの題材として2週間ほどPhantomJSを触ってみましたが、これけっこう難しいです。JavaScript独特のイベント処理や、WebKitの仕組みうんぬんで、リンクをクリックするのにもハマったりします。 何かいい方法あるはず、、と調べてたら、やっぱりあるんですね。 CasperJS CasperJS is a navigation scripting & testing utility for PhantomJS, written in Javascript http://casperjs.org/ CasperJSは、JavaScriptで実装されたPhantomJSのユーティリティです。ざっくり以下のことができます。 ブラウザのナビゲーションステップを順に定義できる フォーム入力 リンクのクリック ページのスクリーンショット(画面の一部分だけもOK) リモートDOMの
はじめに Rails4.1でテスト環境を構築する方法を調べてました。以下のブログ(英語、、)が参考になったので紹介します。 Setup Rails 4.1, Spring, Rspec, and Guard - Girders Setup Rails 4.1, Spring, Rspec, and Guard Rails4.1では、Springを使うことでrailsコマンドやrakeコマンドの起動を素早く実行することができます。Springはアプリケーションのバックグラウンドで動作し、アプリケーション起動時のもろもろの動作をサポートします。Springに関連する情報を見つけるのに苦労してので、ここにまとめておきます。 私はテストフレームワークにRSpec、テストランナーのイベントウォッチャーにGuardを使っています。Springを使えば、エディタで編集したファイルを速やかにテストしてくれ
Commons DBCPについて調べてみました。 ちょっと前置きからスタートします。 Connectionオブジェクトの生成について Javaは、DBとの接続をjava.sql.Connection型のオブジェクトとして取り扱います。 JDBCドライバを使った一般的なプログラムは以下のようになります。 Class.forName("oracle.jdbc.driver.OracleDriver"); Connection con = DriverManager.getConnection( "jdbc:oracle:thin:@localhost:1521/ORCL", "scott", "tiger"); Connectionオブジェクトの生成にかかる負荷 上記のプログラムの場合、 Connection con = DriverManager.getConnection( "jdbc:o
週末の昼下がりに、 Railsのガイドを読んでたら、以下のようなコードに遭遇したのでメモしておきます。 def logged_in? !!current_user end 気になったのは、エクスクラメーションマークが2つ付くところです。 通常、!(エクスクラメーションマーク1つ)の場合は否定(Not)になります。 じゃー、!!(エクスクラメーションマーク2つ)付けるとどうなるの? って気になったので調べてみました。 !! (The double bang / double not) in Ruby - Momoro Machine 先に結果を見た方が早いと思うので、コードも引用させてもらいます。 >> !!active => true >> active = false => false >> !!active => false >> active = nil => nil >> !!ac
PhantomJSは、Webページのロード/操作が可能です。 Webページ上での様々な操作を自動化することができます。 DOMの操作 PhantomJSではDOMスクリプティングやCSSセレクタを使うことができます。 ブラウザで実行されているかのように振る舞います。 page = require("webpage").create() url = "http://www.httpuseragent.org" console.log "The default user agent is #{page.settings.userAgent}" page.settings.userAgent = "SpecialAgent" page.open url, (status)-> if status != "success" console.log "Unable to access network
目的 最近、仕事でRubyを使うことが増えてきました。 Ruby、Railsと勉強すると次に考えるのは、 「テストどうやって書くよ」ということですよね。 #きっとそう。 そんなわけでRSpecの学び方をまとめます。 対象者 そろそろRSpecでテストを書きたい!人向け。 学び方 step1 - 「RSpec の入門とその一歩先」へを体験する まず勉強になるのがこちら。 RSpec の入門とその一歩先へ - t-wadaの日記 「東京 Ruby 会議 03 の RSpec ワークショップの資料です。このワークショップでは参加者の方に「写経」(コードを書き写すこと)をして貰い、TDD/BDD と RSpec を同時に学べるように都度説明を入れるかたちで行いました。」 http://d.hatena.ne.jp/t-wada/20100228/p1 RSpecワークショップ資料を公開してくださっ
BowerはWeb開発用のパッケージ管理ツールです*1。フロントエンドJavaScriptライブラリをインストールしたり、なんか他にもいろいろできそうです。 BOWER: A package manager for the web インストール Nodeとnpmがインストール済みであれば、以下のようにコマンドを実行します。 npm install -g bower パッケージのインストール パッケージのインストール方法は複数あります。 # カレントディレクトリのbower.jsonファイルからインストール bower install # ローカル、リモートパッケージをインストール bower install <package> # リモートパッケージをGitタグ指定でインストール bower install <package>#<version> たとえば、jQueryをインストールすると
Laravel5を使ったWebアプリケーションを開発しています。 開発時はビルトインサーバで開発して、運用時はApacheでということがやりたかったのでまとめです。OSにはUbuntu14.04を使っています。Vagrantも使ってます。 開発時 - ビルトインサーバの起動 開発時はphp artisan serveでビルトインサーバを使ってます。手軽で便利です。 $ php artisan serve IP指定で起動することもできます。 $ php artisan serv --host 192.168.33.10 運用時 - Apacheで動かすには 基本的にはApacheでLaravelアプリケーションのバーチャルホストを定義するだけ。Laravelアプリケーションのpublicフォルダをドキュメントルートに指定します。 バーチャルホストの定義 Apacheにバーチャルホストの定義を
IllegalArgumentException IllegalStateExceptionの使い方についてまとめます。 IllegalArgumentException パラメータ値が不適切 メソッドのパラメータ(引数)が不正だった場合にスローする例外クラスです。 例えば、 public void introdue(String address){ みたいなメソッドがあるとします。 さらに引数addressの仕様として「文字列桁数は16桁まで」と決まっている場合、以下のようにコーディングします。 public void introdue(String address){ if(address.length() > 16){ throw new IllegalArgumentException("addressが16桁を超えています。"); } // 処理 } 引数がnullの場合 上記の
AS3.0アニメ本も9章に入りました。やっと半分くらいです。 9章のお題は衝突判定。 衝突、ぶつかったかどうかを判定することですね。 これが理解できれば、グラディウス的なシューティングゲームが実装できるかもしれません。 あるいはスターソルジャーか。 メガドライブのサンダーフォース3は隠れた名作でしたね。 ゲームの話は置いといて、衝突の話に入ります。 この章を読むまで知らなかったんですが、 表示オブジェクトの基底クラス(語弊があるかも)であるDisplayObjectクラスでは、 あらかじめ衝突を判定するhitTestObjectメソッドと、hitTestPointメソッドが用意されています。 hitTestObjectメソッドは引数にDisplayObject型のオブジェクトをとります。 つまり、引数に指定したDisplayObjectオブジェクトとの衝突判定を返します。 一方のhitTe
最近、Rubyで遊んでるんですが、開発環境にTextMateを使っています。 TextMateのBundle(スニペット?)は鬼のように強力なのですが、全然使いこなせていません。。 Googleで調べてもTextMateの日本語での情報はそれほど多くないので、 英語のドキュメント読んで勉強しようかなー、と思ってたら、Youtubeでわかりやすい動画を見つけました。 http://www.youtube.com/user/dneighbo Derek氏ナイス。Good job! そんなDerekさんの動画をまとめました。 Hash編 Insert Hash Pointer( => の挿入) control + L Insert Hash Pair(Hashペアの挿入) : -> tab*1 Create New Hash(Hashの作成) Hash -> tab Block編 Block I
前回のサーバ編の続き。 せっかくサーバをたてたのでクライアントから接続してみたい。 そんな当たり前のところをまとめます。 DLNAクライアント ちょろっと調べてみたところDLNAクライアントアプリはそんなに多くないようです。 僕はクライアント機にMacを使う予定だったので、 Macを対象に探したのですがなかなか有力情報が見つからず苦労しました。 で、とりあえず動作を確認できたのがこちら2点。 PLEX こっちはもう、正直クライアントとかいう次元ではなくヘビーなアプリです。 Macに標準でついてるFront Rowみたいなアプリです。見た目もすげーゴージャスです。 Plex - A Complete Media Solution 単純にPLEXのみでメディアサーバとして成り立つみたいです。 Mac OSXを高機能メディアサーバに「Plex」 - MOONGIFT|オープンソース・ソフトウェア
機械学習、画像認識を始めると「大量の画像データないかなー」とググることになります。そうするとすぐにImageNetなる存在に気づきます。 ImageNet ImageNetとはスタンフォード大学がインターネット上から画像を集め分類したデータセット。一般画像認識用に用いられる。ImageNetを利用して画像検出・識別精度を競うThe ImageNet Large Scale Visual Recognition Challenge(ILSVRC)などコンテストも開かれる。(:AI白書より引用) ILSVRC、2012年のコンテストでディープラーニングを使ったチームが圧勝した話も有名です。 それでImageNetのサイトを訪問すると、画像を検索して、そんで画像選んで、ダウンロードしようとするとURLの一覧が表示されてー。え。これからどうしようとなります。一括ダウンロードするサンプルプログラムも
CasperJSは、JavaScriptで実装されたPhantomJSのユーティリティです。PhantomJSを使ったFunctional Testを実行することができます。 CasperJS, a navigation scripting and testing utility for PhantomJS | CasperJS 1.0.2 はてなブログ(murayama blog)をテストしてみる テストの題材として、 き、気がつけば使っていたChrome拡張機能 オススメ3つ - Murayama blog. を扱うことにします。*1 さて、上記のページは以下のように構成されています。 タイトル:き、気がつけば使っていたChrome拡張機能 オススメ3つ 見出し: 縦長画面もキャプチャできる - Screen Capture (by Google) 見出し: 検索結果を1年以内のものに
FP法とFP試算法をまとめます*1。 FP試算法 35 × ILFの数 + 15 × EIFの数 根拠もメモしておく。 1つのILFには平均して以下のトランザクション・ファンクションが見込まれる。 3つのEI 2つのEO 1つのEQ 1つのEIFにはして以下のトランザクション・ファンクションが見込まれる。 1つのEO 1つのEQ ものすごいざっくりなかんじ。参考程度に知っておく分にはいいかも。くらい。 FP概算法 IFPUG法のFP算出テーブルを利用する。概算のために使う複雑さは以下のとおり。 トランザクション・ファンクションにの複雑さは「中」 データ・ファンクションの複雑さは「低」 この「中」「低」が期待値になる。*2 ファンクションの個数をが想定できれば使える。 こっちはまーまー使える気がする。 FP数が計測できるということは FP数が計測できる(IFPUG法が使える)のは基本設計が完
はじめに Railsの環境をパパっと作りたい。でもVagrantもChefもよくわからない。そんな私でもすぐできました。 こちらが参考になりました。 以下内容をまとめてみました。 Using Vagrant for Rails Development Overview 読み終えるまでにかかる時間は20分くらい Vagrantは開発環境のセットアップを自動化するツールです。あなたのコンピュータ上に仮想環境を構築します。Vagrantを使えば開発環境とプロダクションサーバの整合性を保ったり、同僚と同じ環境で開発したりできるようになります。 仮想環境上に構築したRails開発環境は、ホストコンピュータの設定がいかなる状態になろうとも、同じ状態を維持できます。もし、1年後に開発プロジェクトを再度稼働する必要が生じた場合にも、数分でプロジェクトを起動できます。これは大変便利なことです。 ここでは仮想
その昔、会社の小技天下一武道会*1で使ったネタです。 Javaとかのプログラムで検査例外をcatchする、 んだけど、 catchした例外を意図的に無視する、みたいなケースがたまにあります。 class Main { public static void main(String[] args) { try{ // 何か例外が発生するかもしれないコード // ... }catch(Exception e){ // 何もしない } } } みたいなコードのcatch節の話です。 }catch(Exception e){ // 何もしない } こんなふうにコメントを書くことで、 例外に対して何もしない、ということを明示してるのは良い例です。 #書籍っぽく言うなら、良いプラクティスです。みたいな。 プログラミング経験の少ない人は、 }catch(Exception e){ } とコメントを書かなか
お久しぶりです。 最近、毎日パワーポイントと真面目に向き合って、気づいたことがあるのでメモします。 #Office2003の話です。 パワーポイントに限らずOfficeにはクリップアートという、 斬新なイメージがついてます。 #メニューの挿入 => 図 => クリップアート で選択できます。 例えば、こんなんとか。 クリップアートを資料にちょくちょく使いたいなー、と思うことはあるのですが、 デフォルトでついてるクリップアートは、正直、微妙なかんじのものが多いので、 Office Onlineのクリップアートを使ったりしていました。 Office Onlineのクリップアートは、 そこそこイケてるものがあるなー、と思っていまして、 検索してはDL、検索してはDLと繰り返してたんですけど、 僕が使うクリップアートは似通ったものが多いことに気づきました。 こんなんとか、 こんなんとか。 なんとな
最近、Javaのマイクロフレームワークがきてるようです。 http://postd.cc/java-micro-frameworks-the-new-trend-you-cant-ignore/ Javaのフレームワーク事情 Javaに限らず、Webアプリケーション開発の世界ではフレームワークを使って開発することが一般的です。JavaにはSpringフレームワークや標準のJavaEEなど多くのフレームワークが存在しますが、これらのフレームワークは様々な要件を満たすため、多くの機能が含まれています。そのため、フレームワーク初学者にとって、フレームワークとはどういうものかを学習するという意味では全体像が掴みにくく、学習コストの高いものになっています。 昔はStrutsを勉強して、それからHibernateを勉強して、それからSpringやSeasar2を勉強する、という流れがありました。最近は
netstatコマンドでポートとプロセスIDの関連がわかる。 netstat -tanpオプションの補足:-tはTCP、-aですべての情報、-nで数値表示、-pでプロセスIDの表示。 ポートからプロセスの詳細を調べるにはlsofコマンドを使う。 lsof -i:portNo 疑問 PID/Program nameの表示がない場合 ローカルだとnetstat -tanp時に以下のようになりました。 [root@murax Desktop]# netstat -tanp Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name ・・・(省略)・・・ tcp 0 0 0.0.0.0:2049 0.0.0
最近Linuxをいじってます。CentOS。 Linuxあまあまな僕ですがちょっと勉強がてらいろいろやってみます。 本日のテーマはこちら。 DLNAサーバ。 なにそれ、常識? Digital Living Network Allianceの略で、電子機器間のネットワーク接続を可能にするガイドラインを定める業界団体を指す。 http://journal.mycom.co.jp/column/osx/226/index.html ざっくりいうと、サーバ上の動画などをブラビアとかPS3とかで動画を共有できたりするみたいです。 もちろんブラビアもPS3も持ってない。 でもやる。 仕組み的にはこんなかんじ。 DLNAサーバたてとけばPCでもテレビでも携帯でもなんでもマルチメディア見れちゃうぜ、の図。 Cacooで書いてみました。Cacoo便利。 DLNAサーバの設定 サーバOSはCentOSの5.2
一般的?なソートアルゴリズムのJava実装まとめ。 選択法(セレクションソート) 交換法(バブルソート) 挿入法(インサーションソート) シェルソート クイックソート 選択法(セレクションソート) import java.util.Arrays; public class SelectionSort { public static void main(String[] args) { int[] array = new int[] { 5, 4, 6, 7, 1, 9, 8, 2, 3 }; for (int i = 0; i < array.length; i++) { int min = i; for (int j = i + 1; j < array.length; j++){ if (array[min] > array[j]){ min = j; } } int tmp = ar
元ネタ こちらを参考にUsersについてまとめます。 https://parse.com/docs/android_guide#users 前回の記事はこちら。 AndroidでParse入門 - Analytics - - Murayama blog. Users 多くのアプリは、セキュアな方法でユーザアカウント管理する必要があります。ParseはParseUserという特別なユーザクラスを提供しています。これにより、ユーザーアカウント管理に必要な多くの機能が自動的に施されることになります。 このクラスを使用することで、あなたのアプリにユーザアカウント管理機能を追加することができます。 ParseUserクラスはParseObjectクラスのサブクラスです。そのため、フレキシブルなスキーマ、自動永続化、Key-ValueインタフェースといったParseObjectの機能を継承しています。
強化学習 - Tic-Tac-Toe 三目並べ、マルバツゲーム、Tic-Tac-Toeというそうです。強化学習(Q-Learning)のまとめとしてチャレンジしてみました。Googleで「Tic-Tac-Toe」と検索すると三目並べで遊べます。 先に結果 ランダムな相手(後手)には80%近い確率で勝てるようになりました。でも実際に対戦してみると「ちょっとかしこいかな?」くらいの印象です。今日の勢いで作ったのでプログラムの細かいところに不備があるかも?しれません。。あまり参考にならないかも。 設定など アルゴリズム Q-Learning 報酬 勝ち:1 負け:-1 引き分け:0 引き分けも多いので、報酬としてプラスマイナスがあるのも良いのかも。 状態 3**9 = 19683とおり 行動 9マスあるので9とおり キーボード入力時は0〜8 既に入力済みの場所を選択した場合は、ランダムで配置する
本日より、ActionScript3.0アニメーション本の、 第7章のユーザーインタラクション:オブジェクトの移動に入ります。 この章では、ドラッグアンドドロップの仕組みを学ぶみたい。 ドラッグアンドドロップの仕組みを実現するには2種類の方法があります。 ・mouseMoveイベントの利用 ・startDrag、stopDragメソッドの利用 まずはmouseMoveイベントを使った例。 こいつの特徴は、「一度に複数のオブジェクトをドラッグアンドドロップできる」ってとこ。 startDragじゃ無理らしい。 具体的にどうするかというと、 mouseDownイベントでmouseMoveハンドラを追加 mouseUpイベントでmouseMoveハンドラを削除 みたいにする。 ただし、注意点が1点。 mouseMoveイベントは、mouseUpイベントは、ドラッグする対象となるオブジェクトに設定
次のページ
このページを最初にブックマークしてみませんか?
『Murayama blog.』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く