ラベル Webアプリ の投稿を表示しています。 すべての投稿を表示
ラベル Webアプリ の投稿を表示しています。 すべての投稿を表示

2015年3月11日水曜日

Node.jsをインストールしようとしたらmakeに失敗した+bleacon

Node.jsをインストールしようと思い、調べてみると、nodebrewというのをつかってバージョン管理するといいらしい。というわけで、試してみました。

brew install nodebrew


次に

nodebrew install latest


これでいけるはずが、

fetch: http://nodejs.org/dist/v0.12.0/node-v0.12.0.tar.gz
######################################################################## 100.0%

  File "./configure", line 362



    '''
      ^


エラーですね。進みません。

試しに
cd /.nodebrew/src/v0.12.0/node-v0.12.0
make

を実行するも、エラーばかり。

ダメ元でconfigureを開いてみると、なんとpythonのコード!エラーのでている362行目を見に行く。

print """〜〜〜〜〜""""

なるほど。

こういう部分すべてをprint("""〜〜""")になおしてもいけると思いますが、
pyenv global 2.7.9
にしてから

nodebrew install latest

を再度実行
大量の文字が流れ、成功しました。

後はパスを設定。

cd
vi .bashrc
から
export PATH="$HOME/.nodebrew/current/bin:$PATH"
を最終行に追加して保存

ターミナルを再起動して、
node -v

バージョンが表示されればOKです。

npmコマンドも自動的に使えるようになっていますので、

npm install bleacon

みたいなこともできます。
(このコマンドも、Python3でやるとエラーの山になります!Python2で実行してください!)

nodebrewの詳しい使い方については→tavamy.blog-node.js 入れるなら nodebrew が超簡単

2015年2月24日火曜日

だれでもできる!テーマCSS編集(Wordpress)

だれでもできる!と書きましたが、先に注意点。

間違えたらサイトに接続できなくなります

なので、バックアップを取るなどして、対策をしてから編集しましょう。style.cssは弄る前に、バックアップをとっておきます。

ここでは、CSSの知識がない状態でもテーマの見栄えとか印象とかを変える方法について説明します。具体的には、配色フォントです。

Wordpressのメニューの外観>テーマの編集、をクリックすると、テーマのstyle.cssをいじることができます。

style.cssはキャッシュに保存されていることが多いので、編集した後にサイトを読み込むときは、ブラウザのキャッシュを削除してから再接続しないと反映されません。

<配色について>

配色、たぶんテーマはいい感じのカラー配分にはしてあります。なので、個人的には、明るさを変えずに色相だけ変えればいいんじゃないかな?と思います。
その場合、
RGBとHSV・HSBの相互変換ツール
が便利です。

もっとこだわる場合、

ノンデザイナーこそ押さえておきたい! 配色・レイアウトの基礎が学べる7個の厳選スライド

で紹介されているスライドを読むと参考になるかとおもいます。

さて、CSSでカラーが指定されてる部分は、#FFFであったり、#1d1d1dであったりする部分です。(カラーコード)

まず、色一覧を書き出します。ブラウザのCtrl + Fで"#"を入力し、検索して次、次、と押していき、知らない値が出たらメモっていきます。
おそらく、同じ色指定がいくつも出てきて、最終的に5色ぐらいになるんじゃないかな?と思います。この内、#FFFや#FFFFFFは白色、#000は黒色を示します。

基本的には、それぞれの色を任意の色に置き換えていく作業になります。色ごとに、検索して置き換え、検索して置き換えを繰り返すと、配色を変えることができます。


<フォントについて>

フォントは、font-family:という項目で指定されています。これも同様に検索して、後ろの""で囲まれた部分を変更していきます。

これもそれぞれ置き換えれば良いです。全部同じフォントにするならそれはそれで楽ですね。

以上です。

2015年2月14日土曜日

Tweepy+Pythonによるユーザーストリーム〜pip, tweepyのインストールから〜(Mac)

Tweepy+PythonによるTwitterのStream

REST APIStreaming APIがあります。
REST APIは取得回数に制限があり、リアルタイムに更新するような動作はできません。そこで、Streaming APIを用いると、The WorldやYorufukurouみたいに、制限をあまりきにすることもなくリアルタイムにツイートを取得できます。

REST APIについては、
Qiitaー「Python で Twitter API にアクセス」
こちらのサイトがとてもわかり易いです。
ツイートの投稿検索タイムライン取得などの操作ができます。

以下、Streaming APIについて。

まず、インストールから。
Tweepyを入れようとしたら、
ImportError: No module named pip.req
と言われ、何のことかと思えば、pipを入れてないからですね

ターミナルで
curl -kL https://raw.github.com/pypa/pip/master/contrib/get-pip.py | sudo python
これでpipがインストールできます。
こちらを参考にしました)

よって、
easy_install tweepy
これが実行できるようになり、tweepyがインストールできます
sudo pip install tweepy
でもよいです。

そしてtweepyでの開発へ。
を参考にしました。特にデータの表示部分、日本時間への変換、エラー対処です。

Public Streamingのコマンドは
が参考にになります

*ユーザーストリーム
# coding: utf-8
#はるふ's innovation!
import tweepy
from datetime import timedelta

CK = ''                             # Consumer Key
CS = ''         # Consumer Secret
AT = '' # Access Token
AS = ''         # Accesss Token Secert

class Listener(tweepy.StreamListener):
    def on_status(self, status):
        status.created_at += timedelta(hours=9)#世界標準時から日本時間に
        
        print('------------------------------')
        print(status.text)
        print(u"{name}({screen}) {created} via {src}\n".format(
                                                               name=status.author.name, screen=status.author.screen_name,
                                                               created=status.created_at, src=status.source))
        return True
    
    def on_error(self, status_code):
        print('Got an error with status code: ' + str(status_code))
        return True
    
    def on_timeout(self):
        print('Timeout...')
        return True

# Twitterオブジェクトの生成
auth = tweepy.OAuthHandler(CK, CS)
auth.set_access_token(AT, AS)

listener = Listener()
stream = tweepy.Stream(auth, listener)
stream.userstream()

表示部分はめじろさんのコードほとんどそのままです…
return Trueをすると、timeoutが発生しても終了しなくなります

* 検索ワードをストリームで流す(Public Streaming)
stream.filter(track=['検索ワード'])
最後のstream.userstream()をこれに書き換えるだけです

ただし、こちらを参照してください。
Kimux.Netー「[Python]twitterのstreaming APIは日本語によるフィルタリングが未対応。」
調べたところ、完全に未対応というわけではありませんが、単語がスペースなどで独立している場合は検索可能なようです。よって、ハッシュタグや英単語は検索できそうですが、日本語の文章の内部の検索は無理そうです(REST APIを使うしか・・・)

同じ部分を、
stream.sample()
とすると、全世界のツイートの断片が拾われ続けます。すごいスピードで流れて、ある意味楽しいです


ちなみに、ストリームを終了するときはControl + Cで割り込みを発生させると終了させることができます(正しいかどうかはわからない)


2015年2月13日金曜日

PHPでのTwitterOAuth

PHPでのTwitterOAuthについて、ネットを見ていると変な記事ばかりなので、少しまとめます。(もしかしたら仕様が変わっただけかもしれません)


ここでは、Consumer Key(API Key), Consumer Secret, Access Token, Access Token Secretの取得方法については、省略します。

Twitterを使ったアプリケーションを作るときにさけて通れないのが、OAuth認証です。この部分について、PHP用にライブラリを作った方がいます。

それをGitHubにアップロードされているので、
GitHub - abraham/twitteroauth
こちらを利用させていただきます。右端のDownload-zipからダウンロードできます。

これがまるでTwitter APIそのものであるかのような説明がなされているブログが散見されますが、OAuth認証はTwitter以外でも使われている認証方法であり、OAuth認証の部分とTwitter APIとのあたりをabrahamさんがライブラリ化して、出来上がったのがこれです。

GitHubの中身をよく見ると、ドキュメントをここで公開されているので、概ねこの方法に従った方法を、簡単に説明します。

まずsample.phpと同じフォルダに、"autoload.php"および"src"フォルダを中身ごと、保存しておきます。
そして、"sample.php"の中身は
  <?php
//はるふ's innovation!
  require_once(dirname(__FILE__)."/autoload.php");
  use Abraham\TwitterOAuth\TwitterOAuth;

  $consumer_key = "";// Consumer keyの値
  $consumer_secret = "";// Consumer secretの値
  $access_token = "";// Access Tokenの値
  $access_token_secret = "";// Access Token Secretの値

  // OAuthオブジェクト生成
  $twiter = new TwitterOAuth($consumer_key,$consumer_secret,$access_token,$access_token_secret);

  $user = '_ha1f';

  $tweets = $twitter->get('statuses/user_timeline', array('screen_name' => $user));

  foreach ($tweets as $i => $tweet) {
    echo "$i: $tweet->text" . PHP_EOL;
  }
こうします。もちろん、4つのキーはすべて値を入れておいてください。(文字列として)

require_once(dirname(__FILE__)."/autoload.php");
で同じフォルダにある"autoload.php"をrequireしています。

これで僕のTLが表示されるかと思います。一部ファイルのみをコピーしてOAuth部分だけ利用する方法が紹介されているブログもありますが、おそらくこれが作者の意向にあった使い方かと思います。

ちなみにget関数に渡しているURLは、URLから前の部分
"https://api.twitter.com/1.1/"と、最後の".json"を省いたものです。
つまり、検索結果をgetしたいときには、
$timeline = $twitter->get('search/tweets', array('count' => '100', 'lang' => 'ja', 'q' => 'はるふ exclude:replies exclude:retweets'));
$tweets = $timeline->statuses;
とすればよいです。

Apacheの設定で失敗した時


Webアプリケーションを開発するときなど、ローカルで実行できる環境があれば、毎回サーバーに送る必要なくデバッグできて、編集→デバッグのサイクルが早くなり、効率がいいです。

Macであれば標準搭載のApache 2を使うことが多いかと思いますが、設定に失敗した時、とてもつらいです。よくわからぬままhttpd.confなどを編集すると、戻らなくなって、何もできなくなってしまいます。そうなった時の対処法(初期化の仕方)について。

まず、Apacheのの設定ファイルは、/private/etc/apache2/に格納されています。

よって、ターミナルから、
cd /private/etc/apache2/
ls
で中身を見ると、おそらくhttpd.confがあるかと思います。また、extra(フォルダ)もあるかと思います。

で、実は、これらにはバックアップファイルが用意されています。originalフォルダの中身を見てみると、httpd.confとextra(フォルダ)が存在します。この中身を必要に応じてコピーしましょう。すなわち、(上のコマンドの実行後、)
sudo cp original/httpd.conf httpd.conf
他のファイルについても同様です。書き換えたと思うファイルをoriginalの中身のファイルで書き換えましょう。(originalの内部を荒らしたら終わりです) 最後は
sudo apachectl restart
でApacheを再起動

これで設定書き換える前の状態に戻り、ブラウザでhttp://localhostをみると、It Works!が表示されるかと思います。

検索用↓
httpd: Syntax error on line 58 of /private/etc/apache2/httpd.conf: Cannot load libexec/apache2/mod_authn_default.so into server: dlopen(/usr/libexec/apache2/mod_authn_default.so, 10): image not found
com.apple.xpc.launchd[1]: (org.apache.httpd[670]) Service exited with abnormal code: 1