2015年2月28日土曜日

【SyntaxHighlighter】ブログ記事中のコードを分かり易く表示する

ブログを書く際、コードや設定ファイルを記載する事があるが、本文と同様の書式で書いているので、イマイチ見栄えもしないし、読み難い。

他のブログ等ではカッコよく、分かり易く表示されているので、自分も見習ってみたいと思った。
ちょいと調べてみたところ、Syntax Highlighter というのを使うのが良さそうだ。

導入に当たってはこちらの記事(Blogger に Syntax Highlighter を導入する)を大いに参考にさせて頂いた。

一点、若干つまずいたところは、Bloggerのプレビュー画面では、表示が反映されないというところだ。

公開状態にすれば、問題なく表示されるようだ。

試しに、昨日ブログに掲載したコード(+α)を再掲してみる。


[ボタンをタップする毎に、画面の数字を0から1つずつ増やしていくプログラム]

MainActivity.java
  public class MainActivity extends ActionBarActivity {

      private static int i = 0;

      @Override
      protected void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.activity_main);

          final TextView textView = (TextView) findViewById(R.id.textView);
          final Button button = (Button) findViewById(R.id.button);

          // ボタンをクリックした際の処理
          button.setOnClickListener(new View.OnClickListener() {
              @Override
              public void onClick(View v) {
                  i++; // i を1増やす
                  textView.setText(String.valueOf(i)); // i の値を表示する
              }
          });
      }
  }

activity_main.xml
  <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
    android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:text="0"
        android:id="@+id/textView"
        android:layout_centerVertical="true"
        android:layout_centerHorizontal="true" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Plus Button"
        android:id="@+id/button"
        android:layout_below="@+id/textView"
        android:layout_centerHorizontal="true" />
  </RelativeLayout>

2015年2月27日金曜日

【Android】【Java】 setText() に数値を渡す

Android Studio アプリ開発備忘録


第2回 『 setText() に数値を渡す方法』


setText() は、テキストビューに任意の文字列をセットできるメソッドである。

 TextView.setText("任意の文字列")

と、いう具合に使う。

ある時、プログラムの中で使用されている変数 int i の値を表示したくなった。

TextView.setText(int i) 

とすればエラーになるし、

TextView.setText("i")

とすれば当然画面には 『i』 という文字が表示されてしまう。

これを解決するには String.valueOf() を使えば良いようだ。

 TextView.setText(String.valueOf(i))

これで、変数 i の値を表示できる。

試しに、ボタンをタップする毎に、画面の数字を0から1つずつ増やしていくプログラムを作ってみた。

(※別途、XMLでボタンとテキストビューを用意しておく必要がある。
===================================================================
public class MainActivity extends Activity {

private static int i = 0;

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
   
        final TextView textView = (TextView) findViewById(R.id.textview);
        final Button button = (Button) findViewById(R.id.button);

        // ボタンをクリックした際の処理
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                i++; // i を1増やす
                TextView.setText(String.valueOf(i)); // i の値を表示する
            }
        });
===================================================================

こちらのサイトによると、変換する方法は、この方法を含めて3つあるようだ。

【CentOS 6.5】SSHの設定

CentOSサーバーを再インストールトした。

このブログを自分のサーバーに移行しようと目論んでおり、設定等についてもう一度確認・勉強したかったからだ。

SSHの設定について、入門書やネット上の解説等をいくつか参考にして、『これだけやっとけば概ね大丈夫だろう』という設定に辿り着いた(つもり)なのでまとめておく。

『/etc/ssh/sshd_config』を編集

① SSH用のポート番号を変更する。  


 不正なアクセスを防止するため。

 デフォルト: #Port 22
 変更後  : Port 任意のポート番号

 変更後のポート番号は、プライベート ポート番号(49152~65535)の中から選ぶのが良さげそう。

 なお、変更後のポートを開くのを忘れると、アクセスできなくなってしまうので注意。

  『/etc/sysconfig/iptables 』を編集して、ポートを開く。 
  iptablesは、ssh用としてデフォルトで22番ポートが開かれているので、この番号を変更する。

   デフォルト:-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
   変更後  :-A INPUT -m state --state NEW -m tcp -p tcp --dport 任意のポート番号 -j             ACCEPT

② rootのログインを禁止する。


 rootでの操作を必要最小限にするため。

 デフォルト: #PermitRootLogin yes
 変更後  : PermitRootLogin no

③ パスワード認証を禁止する。


 よりセキュアな公開鍵認証での接続を強制するため。
 あらかじめ、公開鍵認証での接続の設定をしておかないと、SSHでログインできなくなるので注意。

 デフォルト: #PasswordAuthentication yes
 変更後  : PasswordAuthentication no

④ SSH接続を許可するユーザを制限する。


 不正なアクセスを防止するため。

 追記   : AllowUsers ユーザ名

⑤ SSHのバージョンを2に限定(デフォルト)


 脆弱性が確認されているSSHバージョン1の使用を避けるため。

 デフォルト: Protocol 2

以上


2015年2月12日木曜日

【Android】 画面の向きを固定する方法

最近は、Android Studioを使ってアプリの開発なんかをしている。

プログラミング自体ほぼズブの素人であるが、いろいろ調べながら、少しづつ形にしていくのは中々面白い。

ただ、せっかくやり方を調べても、1回使っただけでは、一週間もしたら綺麗さっぱり忘れてしまいそう。

そこで、備忘録として記録に残しておこうと思う。


第1回 『画面の向きを固定する方法』


画面の向きはマニフェストファイルで設定する。

各プロジェクトには、AndroidManifest.xml という名前で“マニフェストファイル”が用意されている。
このファイルを開くと、中にだいたい以下のような記述がある。

~~~~~~~~~~

<application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".MainActivity"
            android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
</application>

~~~~~~~~~~

これの<activity>タグの中に、android:screenOrientationという項目を追加する。

~~~~~~~~~~

<application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".MainActivity"
            android:label="@string/app_name"
            android:screenOrientation="landscape">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
</application>
~~~~~~~~~~

landscape は横向きで固定する設定値だ。

他に私が使う可能性がありそうなのは portrait(縦固定)くらいだろうか。
設定値と実例についてはこちらのサイト(Android Wiki)が分かりやすかった。