Androidでcsvを内部ストレージに保存してみた

Androidでcsvを内部ストレージに保存してみました
内部ストレージに保存すると、他のアプリから見れないので取り出すことができません

参考)
ファイルを保存する | Android Developers

Android StudioでBlank Activityを作成してやってみました
MainActivity.javaにonCreateとかに

String filename = "test.csv";
String output = "サンプル";
FileOutputStream outputStream;
try {
  outputStream = openFileOutput(filename, Context.MODE_PRIVATE);
  outputStream.write(output.getBytes());
  outputStream.close();
} catch (Exception e) {
  e.printStackTrace();
}

を記載、起動するだけで保存されます

確認するため、terminalから

$ adb shell 
$ run-as jp.sample.sampleapp

jp.sample.sampleappのところは自分のアプリ名にしてください

cat data/data/p.co.sample.sampleapp/file/test.csv

が保存されたのが確認できました

CakephpでTwitter APIを使ってツイート情報をとってみた

CakephpでTwitter APIを使ってツイートをとってみました
ローカル環境で行い、アクセストークンを手抜して取得したバージョンです

cakephpはインストール済み
参考)
ComposerでCakephpを入れてみた | bgbgbg
cakephp cookbook のチュートリアルをcomposerを使ってやってみた | bgbgbg

TwitterOAuth PHP Library for the Twitter REST APIを使いました
まずはTwitterOAuthのインストール

composerを使うのでCakephpのアプリケーションディレクトリで

$ composer require abraham/twitteroauth

これで、Vendor/abraham/twitteroauth
にインストールされます

ControllerとViewを用意

$ vim Controller/TwittersController.php

App::import('Vendor','abraham/twitteroauth/autoload');
use Abraham\TwitterOAuth\TwitterOAuth;

をclassの上に追記しておくと

$connection = new TwitterOAuth($consumer_key, $consumer_secret, $access_token, $access_token_secret);

とTwitterOAuthが呼び出せるようになります

Twitter APIをたたくには4つの情報が必要になります

  • consumer_key
  • consumer_secret

これが呼び出すアプリのIDとパスワードに当たります
これから作るCakephpのサービスをTwitterが区別できるようにします
Twitter Application Management
にアクセスしてアプリを作ります

Create New App で

twitterapi

Name
Description
Website

を入力
Websiteはローカル環境なので http://127.0.0.1/ にしておきました
登録したら

Keys and Access Tokensタブをクリック

  • Consumer Key (API Key)
  • Consumer Secret (API Secret)

が手に入りました

あと2つ、Access Tokenが必要になります
これはユーザーの情報をプログラムが取得する際のIDとパスワードに当たります

ユーザーのTwitter情報を取得する際に、ユーザーID・パスワードをプログラムでもらうのでなく
Access Tokenをもらって認証しにいきます
アプリごとに発行されるIDとパスワードなので、少しは安全になります

Access Tokenは同じ画面下でGenerateで生成できます

twitterapi3

※画像は一度生成したあとだったのでRegenerateになっています

そしたら

  • Access Token
  • Access Token Secret

が手に入ります
そしたらプログラムに戻って、Twitter情報をとってみます

<?php
App::uses('AppController', 'Controller');
App::import('Vendor','abraham/twitteroauth/autoload');
use Abraham\TwitterOAuth\TwitterOAuth;

class TwittersController extends AppController {

    public function index() {

        $consumer_key = 'xxxxxx';
        $consumer_secret = 'xxxxxx';
        $access_token = 'xxxxxx-xxxxxx';
        $access_token_secret = 'xxxxxx';

        $connection = new TwitterOAuth($consumer_key, $consumer_secret, $access_token, $access_token_secret);

        $params = ['q' => '#cakephp' ,'count' => '10', 'lang'=>'ja'];
        $data = $connection->get('search/tweets', $params)->statuses;
        $this->set(compact('data'));
    }
}

これで、#cakephpのハッシュタグがついた情報が取れるので
Viewで表示させる処理をかけば情報が表示できます

実際に使うにはAccess TokenをTwitter認証させて取る必要があります

CentosサーバーからインストールしたMackerel-agentを削除する

Mackerel(マカレル): 新世代のサーバ管理・監視ツール
のエージェントをCentosサーバーからアンインストールしたのでメモ

ここを参考に
エージェントをインストールする – Mackerel ヘルプ

$ sudo yum remove mackerel-agent

あとは
/var/lib/mackerel-agent/id
にファイルが残っているので、ディレクトリごと消しました

FreeBSDで〜日前をdateコマンドで出してみる

FreeBSDで〜日前をdateコマンドで出力してみたメモ

dateコマンドもOSで入ってるものが違うようで
man date
すると
FreeBSD General Commands Manual
と書かれてました

dateコマンドで日付が表示されます

date
# Thu Nov 12 12:16:52 JST 2015

11日前でファイル名に使いやすいものだと

date -j -v "-11d" '+%F
# 2015-11-01

がいいと思います