サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
Switch 2
furudate.hatenablog.com
こんばんは。 今回はMacにmecabを入れ、PHPで使えるようにしたいと思います。 なお、私の場合はphpenvでPHPを管理しているので、以下はそちらに合わせた環境構成となります。 mecabインストール まずはmecabのインストールです。 Homebrewで簡単に出来ます。ついでに辞書もインストールします。 辞書はipadicがデファクトスタンダードなようですのでこれをインストールします。 $ brew install mecab $ brew install mecab-ipadic # インストールが終わったらテストです $ mecab すもももももももものうち テストしてみて結果が出ればOKです。 Homebrewでインストールした辞書は、必要最低限の構成しかないみたい(CSVとかがない)なので、ソースファイルをDLしてきて全てのファイルを移動しておきます。 $ wget h
こんばんは。 CakePHPでは、ユーザ登録の際にフォームにusernameとpasswordがある場合、パスワードを自動でハッシュ化してくれます。 しかし、パスワード再発行処理や、変更処理などをした場合には、ハッシュ化はしてくれません。 そこで、指定した値をハッシュ化する方法をメモしておきたいと思います。 $pass = "test"; $password = AuthComponent::password($pass); このようにAuthComponentのpasswordメソッドでハッシュ化することが出来ます。 また、ユーザ登録の際に2つのフォームを出してパスワードの同一性を確認する場合など、逆に自動でハッシュ化してほしくないときがあります。その際には、こちらのサイトに書いてあるやり方でハッシュ化を防ぐことが出来ます。 そして、先ほどのハッシュ化の方法で、好きなタイミングでハッシュ
こんにちは。 最近、自作したAPIをCakePHPを使って叩こうとしたのですが、何を使えばいいか迷いました。 PHPを使って外部のリソースを取得したりAPIを叩くとき、file_get_contentを使う方法があります。 しかし、パフォーマンス的にはcURLを使ったほうが良いみたいです。 そこで、今回はREST APIを叩く場合にcURLを使う方法をメモしておきます。 cURLを使ってAPIを叩く関数を作成 まずはRESTに対応した関数を作成します。基本的にこの関数を各コントローラーから呼び出してAPIを叩く感じになります。 関数は AppController とかに書きましょう。 <?php class AppController extends Controller { public function api_rest($method, $uri, $query = null, $d
こんばんは。 今までnode.jsをHomebrewでインストールしていたんですが、今更ながらnvmで管理することにしました。 nvmはnodeのバージョン管理ツールです。 nvmはHomebrewで入れたのでインストールから設定と使い方までメモしておきます。 nvmのインストール まずはHomebrewでインストールです。 $ brew install nvm インストールすると色々とメッセージが出てくるのでそれの通りにします。 ちなみにメッセージが流れちゃった場合は brew info nvm で見れると思います。 $ mkdir ~/.nvm $ vim ~/.bash_profile # 以下を追加 export NVM_DIR=~/.nvm source $(brew --prefix nvm)/nvm.sh 以上です。 nvmの使い方 次にnvmの使い方を見てみます。 nvm
こんばんは。 ローカルでの開発環境として今までMAMPを使っていましたが、MacにはMAMPを使わずともApacheやPHPなどがあるので、どうせならそちらを使いたいと思い、MAMPを使わない環境構築をしてみました。 今回は、Apache、PHP、MySQL、phpMyAdminを使えるようにしました。また、全てHomebrewで管理したかったので、デフォルトでPHPなどは入っているんですがそれは使わずにbrewでインストールしました。 PHPに関しては、PHPの複数バージョンを入れられるphpenvというものがありますのでそれを使いました。 前にrbenvやpyenvなどを入れましたが(こちら)、その時みたいに結構簡単にできるかなーと思ったら意外と詰まってしまいました。 MySQLのインストール まずはMySQLのインストールです。rootのパスワードまで決定しちゃいます。 やり方は以下
こんばんは。 tmuxをご存知でしょうか? 自分は知ってはいたのですが使い方がよく分からず、使っていませんでした。 しかし、その便利さに気がついてからはもう必須となりました。 sshしているときに複数のターミナル(画面)を使いたい時も便利ですし(OS X Mavericksではタブ機能がありますが新規タブを開くといちいちsshをし直さなくてはいけません)、何よりセッションで状態を残したままにできるのが非常に便利です。 今回はそんなtmuxをMacでも使いたいと思い導入してみたので、その手順とよく使うコマンドをまとめておきます。 コマンドは自分がよく忘れるので・・・ tmuxのインストール macの場合はbrewコマンドで導入出来ます。 CentOSの場合は少し面倒くさいようなので、ググってみてください。 brew install tmux tmuxの設定 設定は~/.tmux.confに書
こんにちは。 今回は個人的に最初ちょっと扱いづらかった git submodule について基本的な使い方をメモしておきたいと思います。 git submoduleは外部のgitリポジトリを自分のリポジトリのサブディレクトリとして扱うことができるようになるものです。 cloneせずにsubmoduleとすることで、対象のリポジトリが更新されたときも追従することが可能となります。 最初は使いづらいしよく分からなかったのでcloneしてましたが、慣れると便利です。 それでは使い方を見てみましょう。 サブモジュールの追加 サブモジュールは git submodule add コマンドで追加出来ます。 $ git submodule add <gitリンク> 追加すると、Gitリポジトリのルートに .gitmodules が作成されます。 中身を見てみると、追加したリポジトリの名前やパスが記述され
こんばんは。 最近、オープンデータの勉強をしました。 そこでSPARQLについて使い方を少し学んだので、これを使って前々からやりたかったDBpediaの情報をPHPで取得するということを今回はしたいと思います。 SPARQLをPHPで使おうとすると、ライブラリ等を使うやり方が多いですが、今回は特に何も入れることなく実装しています(PHPのcurlを使っています)。 SPARQLをPHPやJava等で使うやり方を探してみると、もう見事に英語の記事しかありません。 なので、今回初挑戦ということもあり、このやり方がベストなやり方なのかは正直自信ないですが、とりあえず出来たのでメモしておきます。 なお、私自身はオープンデータやRDF、SPARQLをそこまで勉強しているわけではないので、今回SPARQLの使い方の詳しい説明等は省きます。 取ってくるデータはWikipediaをLODとして公開している
こんにちは。 前にcrontabの書き方についてこちらの記事に書きましたが、Macの場合はlaunchdを使ったほうが良いみたいです。 今回はlaunchdについて書きたいと思います。 launchdとは? launchdはデーモン、アプリケーション、プロセス、スクリプトの起動・停止・管理を行う、オープンソースのサービス管理フレームワークです。(Wikipediaより) まぁ簡単に言えばUnix系のinitやcrondの代わりをしてくれるものだと思います。 OS起動時に起動するものともいえると思います。 今回はこれをcronの代わりに使いたいと思います。 launchdのファイル構成 launchdの設定は、以下のディレクトリにlaunchd.plistを置き行います。 ~/Library/LaunchAgents 各ユーザが管理するユーザごとに実行するエージェントを設定する /Libra
こんばんは。 Androidで、テキストフォームとかに入力しようとすると、キーボードが出てしまい、下にあるボタンなどが隠れてしまう場合があります。 そんなときはキーボードが出ている状態で画面をスクロールできると良いですよね。 そこで、それを実装したいと思います。 色々ググると、AndroidManifestの対象Activityタグの中に「android:windowSoftInputMode="adjustPan"」を指定すると出来ると書いてあります。 しかし、なぜか自分は出来ず・・・ なんで出来ないのかは未だに不明です。 そこで結構ハマッてしまったのですが、やっと解決方法を見つけました。 まずレイアウトファイルで、全体をスクロールビューに入れます。 こんな感じです。 <ScrollView xmlns:android="http://schemas.android.com/apk/re
こんにちは。 今回はAndroidでListViewから他の画面に飛んでまた戻ってきたときに、そこまででスクロールしていた位置に戻す処理をしたいと思います。 以下スクロール位置を記録する処理と、設定する処理です。 int position = listView.getFirstVisiblePosition(); int y = listView.getChildAt(0).getTop(); listView.setSelectionFromTop(position, y); setSelectionFromTopでスクロール位置を設定しています。 これはAdapterをセットした際にやると良いと思います。 実際には、他の画面に飛ぶ前にスクロール位置を記録しておいて、それをIntentで渡します。 そして、他の画面でListViewに戻る際に、受け取った値をまたListViewに渡して、
こんにちは。 ImageButtonを使うと、デフォルトだと枠ができてしまい少し格好悪いです。 そこで、その枠をなくしたいのですが、なくすだけならImageButtonの背景を以下のように指定するとできます。 android:background="@null" ただ、上記のようにやるとクリックしたときに反応がなくなってしまい、クリックしたかどうか分かりません。 そこで、クリックしたときに背景色や画像を変えることでクリックしたことを示したいと思います。 やり方は以下のとおりです。 画像を変更する場合は、あらかじめ画像を用意する 次のようなxmlファイルを drawable/ に作る XMLの新規作成でリソースタイプをdrawableに指定し、ルート要素をselectorにする button_color.xml <?xml version="1.0" encoding="utf-8"?> <
こんにちは。 久々の更新になってしまいました。 今回はJavaScriptについてです。 先日とある人から「ボタンを押した数をカウントしてテキストファイルに保存したい」という要望がありました。 要望だけ見ればものすごく簡単です。 ただ、今回はWebサーバ環境はないのでローカルだけで処理したい(PHP等が使えない)ということだったため、JavaScriptで実現しようと思いました。 しかしJavaScriptは基本的にはローカルファイルを扱えません。 そこで色々と調べた結果、HTML5のFile APIというのを使うと実現出来るようなのでやってみました。 一応実現出来たため、メモとして残しておきます。 以下ソースコードです。 <!DOCTYPE html> <html> <head> <script src="jquery-1.7.1.min.js"></script> <script ty
こんばんは。 今回は、Android(Java)でバックグラウンド処理(非同期処理)をする方法について、メモします。 また、バックグラウンド処理中にプログレスダイアログを表示させ、キャンセルにも対応するようにしました。 Androidでバックグラウンド処理をしようとすると、UI Threadを使いメインスレッドとは別スレッドとして処理をさせるようにする必要があります。 また、処理中にUI更新を行うためにはHandlerを利用しなければなりません。 ただ、それだと少しめんどくさいので、今回は別スレッドでの処理と処理中や処理完了後のUI更新を簡単にしてくれるAsyncTaskというものを使って書いていきます。 (なお、UI ThreadやHandlerを利用した方法はこちらのサイトに詳しく説明してあります。一度見ておくとAsyncTaskについての理解の助けになるかもしれません。) 基本的にこ
こんばんは。 Androidのリストビューのrowのレイアウトに、CheckedTextViewを使うとリストビューにチェックマークを入れることができます。 ただ、普通にしているとタッチしたときにチェックがされちゃいます。 設定変更などの時はそれで良いのかもしれませんが、今回は一工夫加えて、タッチしたときはチェックマークの変更をせず、ある条件を満たした時のみチェックを入れられるようにしたいと思います。 このチェックは、タッチで外すことは出来ないようにします。 以下ソースコードです。 ListViewとrowのレイアウト main_list.xmlにリストビューを定義します。これは普通にやります。 <ListView android:id="@+id/TestList" android:layout_width="match_parent" android:layout_height="wr
こんにちは。 Fragmentでレイアウトファイルのほうで作成したButtonを、ActivityでやっているとおりfindViewByIdで取得しようとすると、エラーが出ます。 findViewByIdはFragmentでは定義されていないからです。 そこで、今回はFragmentでfindViewByIdをする方法を書きたいと思います。 一応やり方が迷ったので載せますが、かなり簡単です! ちなみにFragmentについてはこちらの記事を参考にしてもらうとわかると思います! 以下ソースコードです。 public class FragmentTest extends Fragment implements OnClickListener{ @Override public View onCreateView(LayoutInflater inflater, ViewGroup contai
こんにちは。 今回はAndroidのフォーカスについてです。 画面起動後、EditTextなどにフォーカスを自動で当てたりしたいときがあります。 その方法を今回はメモしておきます。 起動後にEditTextにフォーカスを当てる 早速コードです。 レイアウトファイルで定義していきます。 <EditText android:id=”@+id/EditText01″ android:layout_width=”wrap_content” android:layout_height=”wrap_content” > <requestFocus/> </EditText> フォーカスを当てておきたいViewに、を指定するだけです。 簡単ですね。 起動後にEditTextにフォーカスを当てない(違うViewに当てる) 今度は、逆に起動後にEditTextにフォーカスを当てない方法です。 起動後にフォー
こんにちは。 今PHPを教えているのですが、その際にincludeとrequireについて触れたのでここにも書いておきたいと思います。 外部ファイルを読み込むinclude()とrequire() PHPで外部ファイルを読み込みたい場合は、include()関数かrequire()関数を使います。 どちらも同じような挙動で使うことが出来るのですが、意味合いは結構違います。 include()について include()はそのページを任意の場所に差し込みたいときに使います。 コメントリストなどを表示させる処理を別ファイルにしている場合で、その表示内容を指定した場所に差し込みたい場合にinclude()を使います。 require()について C言語で言うincludeと同じです。 処理を読み込み、利用したい場合に使います。 別ファイルにある関数を呼び出したい場合、require()でそのファ
こんにちは。 前回、こちらのエントリーでAlertDialogについて触れました。 このエントリーの最後にも書いてあるのですが、現在はDialogFragmentが推奨されており、こちらを使うのが良いようです。 そこで、今回はこれを使ってAlertDialogとProgressDialogを出してみたいと思います。 最初は癖がありますが、慣れるとそれほど難しくありません。 AlertDialogを出す まずはAlertDialogです。 はじめに、DialogFragmentを継承するクラスを作成します。 なお、今回はOKボタンやCancelボタンが押されたかのイベントをActivity側に返すために、Listenerを作成しています。 import android.app.AlertDialog; import android.app.Dialog; import android.con
こんばんは。 今回はActionBarにタブを付けてタブで画面を切り替えられるようにします。 また、スワイプでも切り替えられるようにします。 今回はちょっとしたところですごい詰まってしまいましたが、解決したのでメモしておきます。 また、参考にさせていただいたサイトには色々とやり方がありましたが、今回は参考にしつつ自分でほんの少しだけソースを書き換えました。 以下手順です。 メインとなるActivityを作成(ここでは MainActivity とします) BlankActivityでOK Navigation Typeを Tabs + Swipe にする タブに乗せるアクティビティ(Fragment)を作成 ここでは2つ(Fragment1, Fragment2)とします。 BlankActivityでOK Fragment1, 2のソースを以下のように書き換える 以下のソースはFragm
こんにちは。 今回は、jQueryでフォームをダイアログで出すこと、そして、ダイアログのボタンを押したら裏でPHPを用いてmysql処理をし、ログイン処理を行いたいと思います。 これがあるとログインフォームなどの簡単なフォームを作らなくていいし、画面も無駄に増えなくていい感じです。 jQueryを用いたダイアログ表示 まずはダイアログを表示させたいと思います。今回はフォーム付きのダイアログです。 まず、以下のものを用意します。 jQuery最新バージョン こちらからどうぞ jQuery UI最新バージョン(この時点では1.10.3) こちらからどうぞ 今回jQuery UIを使いますが、ダウンロードファイルには、デモページが同封されていますので、そこのソースコードを参考にしましょう!ダイアログ以外にも色々とあります。 また、jQuery UIのファイルについては、"jquery-ui-1.
こんにちは。 今回は初めて自分でGoogle Playにアプリを公開しましたので、その方法をメモしておきたいと思います。 色々なサイトで詳しく解説してあるのでメモる必要もあまりないかもしれませんが・・・。 デベロッパー登録 まずはDeveloper Consoleでデベロッパー登録をする必要があります。 用意するものはクレジットカード(JCB以外)のみ。 デベロッパー登録には登録料として$25.00を支払う必要があります。 年会費などはないので、お金が発生するのはこの時のみです。 基本的には画面の通りに進めていけばいけると思います。 デベロッパー名はPlayストアに公開されます。 それ以外のメールアドレス等は公開されません。 なお、各項目は登録後に修正可能ですので、あまり深く考えなくても大丈夫です。 また、クレジットカードはJCBは対応していないので、JCB以外でやりましょう。 (自分はJ
こんにちは。 MBPを昨日から本格的にいじり始め、今日やっとWindowsから大体の移行が終了しました。 結構時間かかりましたが、やっと満足いく環境になったかなと思います。 さて、それではWindowsからMac(OS X 10.9 Marvelous)に乗り換えたときに、便利だと思った初期設定やおすすめのアプリなどをメモしたいと思います。 初期設定 まずはMacの環境設定です。システム環境設定をもとに、以下のような設定にしました。 コンピュータ名とユーザ名 Macを最初に起動したときに、コンピュータ名とユーザ名を入力しますが、ここではあまり日本語は使わないほうが良いと思います。 自分は両方苗字(英字)にしました。 ファイアウォールの有効化 システム環境設定のセキュリティから、ファイアウォールを有効にします。ステルスモードも有効にしたほうが良いかもしれません。 Finderの設定 Find
こんばんは。 Androidで、TextViewやImageViewなどに枠線を表示させたいときがありますが、レイアウトのプロパティにそのようなものはありません。 そこで、xmlファイルを作成して枠線を表示させてみたいと思います。 まず、以下のようなファイルを res/drawable に作成します(今回はtext_border.xmlとします) <shape xmlns:android="http://schemas.android.com/apk/res/android"> <stroke android:width="3px" android:color="#CCCCCC" /> <padding android:left="2px" android:top="2px" android:right="2px" android:bottom="2px" /> <corners andr
こんにちは。 今回はテキストエディタについてです。 WindowsからMacに移行してから、今まで使っていたさくらエディタからSublimeText 2 に乗り換えました。 SublimeTextは多機能なため、色々と設定項目やプラグインがあります。 そこで、今回はSublimeの設定とプラグインについてメモしておきたいと思います。 プラグインについて まずはプラグインです。 他サイト様を参考に、よさ気なプラグインを入れましたので、リスト化したいと思います。 なお、各プラグインの細かい説明は省きますので、ググりましょう。 PackageControll これ入れないと始まりません。 Flatland テーマ。かっこいい。 SideBarEnhanceents サイドバーの右クリックメニューの拡張をする GitGutter Git の変更行を視覚化する TrailingSpaces 行頭や行
こんにちは。 前の記事で、GUIベースのGitクライアントツールであるSourceTree for Windowsをインストールしました。 今回は、CUIベースのツールで、Windowsでも出来るmsysgitをインストールして、Gitの環境構築を行い、簡単にGitHubを使ってみたいと思います。 OSはWindows7のみでしか確認していません。 なお、今回は後輩に教えるという面も含んでいるので、かなり細かめにやりたいと思います。 ただし、ステージングとコミットとプッシュの意味は前の記事に書きましたので、もしわからない場合はこっちを先に見て下さい。 msysgitのインストール まずはツールのインストールからです。 こちらから、最新のものをダウンロードしてきます。 この時点では「Git-1.8.4-preview20130916.exe」というものが最新でしたので、これをダウンロードしま
こんばんは。 今回は、端末の戻るボタンを押した時にアプリを終了する方法について書きます。 ログイン後の画面で、ログイン画面に戻りたくないときなどに使えますね! 戻るボタンの押した際の処理は、on KeyDown 内に記述します。 以下、サンプルです。 LoginActivity(戻りたくない画面) Intent intent = new Intent(LoginActivity.this, MainActivity.class); startActivity(intent); LoginActivity.this.finish(); // これでActivityを終了させ、戻さないようにする MainActivity(戻るボタンを押す画面) @Override public boolean onKeyDown(int keyCode, KeyEvent event){ if (keyCod
こんばんは。 今回はGitやGitHubでよく使いそうなコマンドをまとめておきます。 自分のメモ的な意味合いもありますが、これさえ覚えておけば基本的な部分は全部出来るようにしたいと思います。 絶対に使うコマンド git initまずはこれ。基本ですね。リポジトリを作成し、.git ディレクトリを作成します。 git clone "URL"既存のリポジトリをクローンします。この場合はinitを行う必要はありません。 git remote add origin "URL"リモートリポジトリに対し、後述するpushやpullをするときにいちいちURLを打つのは非常に面倒なので、このコマンドでリモートリポジトリに対し名前を付けます。 普通はoriginとします。なお、cloneしたときは自動でoriginという名前が付けられます。 git status変更が加えられたファイルの状態を表示します。
こんにちは。 今回はPHPについてです。 普段フレームワークで書くことが多いのでいざ平文でやろうとすると忘れていることが多いです。 今回はPHPからMySQLの使用についてです。 PHPを習い始めたころはmysql_connectとか使ってたんですが、現在では非推奨のようです。 MySQLへの接続は、mysqli、PDOのどちらかが推奨されています。 PDOがすごく良さげですが、今回は馴染みやすそうなmysqliについて書こうと思います。(PDOはいつかやってみたいですね) mysqliの基本的な使い方 mysqliではオブジェクト型と手続き型の書き方がありますが、この記事ではオブジェクト型で書きます。 手続き型にする意味がないと思うので。 以下はmysqliの基本的なコードになります。 <?php $mysqli = new mysqli("host", "user", "passwor
次のページ
このページを最初にブックマークしてみませんか?
『furudate.hatenablog.com』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く