20190522のMacに関する記事は5件です。

Readabilityで本文っぽい文章を抽出

Readabilityのインストール

まずはReadabilityとhtml2textをインストール。

pip install readability-lxml
pip install html2text
  1. Readabilityで本文抽出
  2. html2textでmarkdown形式に変換し読みやすくする

Readabilityを使う

python.py
# ライブラリをimport
from readability.readability import Document
import urllib.request
import html2text

# 実行
url = "https://flatclub.jp/shinobiwriting/"
html = urllib.request.urlopen(url).read()
# 本文っぽい部分を抽出
article = Document(html).summary()
# htmlからmarkdown形式に変換
text = html2text.html2text(article)
# とりあえずコマンドラインに出力
print(text)

抽出完了。

参考

HTMLから本文抽出。 - ねこゆきのメモ
Python – readability-lxmlを利用して本文抽出|Miningoo

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

MacでCassandra環境をローカルで構築する

概要

環境構築の備忘録。
Cassandra をローカルで動かしたかったので、そのための手順を残しておく。

手順

Cassandra 本体の準備

今回はDockerで動かしてみる

docker-compose.yml
version: '2'
services:
  cassandra:
      image: cassandra:3.9
      container_name: cassandra
      ports:
        - "9042:9042"
      environment:
        - "MAX_HEAP_SIZE=256M"
        - "HEAP_NEWSIZE=128M"
      restart: always
      volumes:
        - ./out/cassandra_data:/var/lib/cassandra0

※ 細かい設定は適宜変更

cql(Cassandra版のSQL) をインストール

1. pip をインストール

※ インストールされている場合はスキップで OK

$ sudo easy_install pip

2. pip で cql をインストール

$ sudo pip install cql

私の環境の場合は以下のエラーが出た。

ERROR: Cannot uninstall 'six'. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.

オプションを付けることで回避できた。

$ sudo pip install cql -I six

pip のオプション一覧

3. Cassandra へ接続

Docker を立ち上げてから接続

$ cqlsh
Connected to Test Cluster at 127.0.0.1:9042.
[cqlsh 5.0.1 | Cassandra 3.9 | CQL spec 3.4.2 | Native protocol v4]
Use HELP for help.
cqlsh>
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

MacでCassandraをローカルに構築する

概要

環境構築の備忘録。
Cassandra をローカルで動かしたかったので、そのための手順を残しておく。

手順

Cassandra 本体の準備

今回はDockerで動かしてみる

docker-compose.yml
version: '2'
services:
  cassandra:
      image: cassandra:3.9
      container_name: cassandra
      ports:
        - "9042:9042"
      environment:
        - "MAX_HEAP_SIZE=256M"
        - "HEAP_NEWSIZE=128M"
      restart: always
      volumes:
        - ./out/cassandra_data:/var/lib/cassandra0

※ 細かい設定は適宜変更

cql(Cassandra版のSQL) をインストール

1. pip をインストール

※ インストールされている場合はスキップで OK

$ sudo easy_install pip

2. pip で cql をインストール

$ sudo pip install cql

私の環境の場合は以下のエラーが出た。

ERROR: Cannot uninstall 'six'. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.

オプションを付けることで回避できた。

$ sudo pip install cql -I six

pip のオプション一覧

3. Cassandra へ接続

Docker を立ち上げてから接続

$ cqlsh
Connected to Test Cluster at 127.0.0.1:9042.
[cqlsh 5.0.1 | Cassandra 3.9 | CQL spec 3.4.2 | Native protocol v4]
Use HELP for help.
cqlsh>
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Ruby・Ruby on Railsの環境構築(Mac向け)

はじめに

こんにちは!
今回はRuby・Ruby on Railsを勉強し始めようかな〜と思っている方に向けて、簡単な環境構築の方法をご紹介しようと思います。

そもそもRuby・Ruby on Railsとは

Rubyというのはまつもとゆきひろ氏が開発したオブジェクト指向スクリプト言語であり、JavaやC言語と違ってコンパイルする必要がなく、初心者でもすぐにプログラムを実行できるようになっています。
Rubyは「楽しさ」に焦点を当てて作られているようで、まつもと氏もこう語っています。
Ruby には Perl や Python とは決定的に違う点があり、それこそが Ruby の存在価値なのです。それは「楽しさ」です。私の知る限り、Ruby ほど「楽しさ」について焦点を当てている言語は他にありません。Ruby は純粋に楽しみのために設計され、言語を作る人、使う人、学ぶ人すべてが楽しめることを目的としています。しかし、ただ単に楽しいだけではありません。Ruby は実用性も十分です。実用性がなければ楽しめないではありませんか。

そして、Ruby on Railsは先ほどご紹介したRubyを用いてWebアプリケーションを開発するためのフレームワークであり、比較的簡単にバリエーション豊富なWebアプリケーションを作ることができます。Ruby on Railsを使って作られたサービスにはCookPadや価格.comなどがあり、どれも有名なものばかりです。Ruby on Railsを使ってWebアプリを開発し起業することも夢じゃないかも??

それでは実際に環境構築をしていきましょう!!

Rubyの環境構築

まず「ターミナル」「テキストエディタ」を用意しましょう。
テキストエディタはAtomなどいろいろありますが、お好きなものを使っていただいて大丈夫です。
これからRubyをインストールしていくのですが、実際の開発環境では複数のバージョンのRubyを扱うことが多く、それらの管理には「rbenv」というツールが欠かせないものになります。では、実際に手順を踏んでインストールしましょう。

①まずHomebrewをインストールします。ターミナルにこのようなコードを打ち込みましょう。

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

これを打ち込むとEnterキーの入力が求められますのでEnterキーを押します。次に端末のパスワードを入力します。
スクリーンショット 2019-05-22 11.23.21.png
パスワードを入力してもターミナル上には何も表示されませんが、それで正解です。気にせず入力しましょう。
しばらくするとインストールが完了します。

brew -v

と入力して「Homebrew 1.X.X」のように表示されたら完了です!

②次にrbenvをインストールしていきます。

以下のようにコードを入力しましょう。

brew install rbenv ruby-build

しばらくするとインストールが完了するので

rbenv -v

と入力して先ほどのようにバージョンが表示されたらOKです!
そして、これからRubyのインストールに移っていくのですが、その前にrbenvの設定を済ませます。ターミナルに

echo 'eval "$(rbenv init -)"' >> ~/.bash_profile

と入力してEnterキーを押します。何も表示されなければ大丈夫です。
次は

source ~/.bash_profile

と入力します。これでも何も表示されません。以上で設定完了です!

③最後はいよいよRubyのインストールです。

今回インストールするのはバージョン2.5.0のRubyです。

rbenv install 2.5.0

と入力して待ちます。結構長いです。。。
終了したら

rbenv versions

と入力しましょう。ちゃんとインストールできていたら2.5.0と表示されます。
今回インストールしたRubyを使えるようにするために

rbenv global 2.5.0

と入力します。これで2.5.0のRubyが使えるようになりました!お疲れ様です。

Ruby on Railsの環境構築

Rubyが導入できた興奮冷めやらぬうちにRuby on Railsの導入も済ませてしまいましょう。もっと言うと、サーバーの起動まで済ませます。

①まずは以下のようなコードを入力します。

gem install rails -v 5.0.3

これでRails自体のインストールは完了です。

②ではアプリケーションを新規作成しましょう。

今回はひとまずテストということで

rails new test_app

と入力します。これでテスト用のアプリケーションは作れました。
テキストエディタで先ほど作ったtest_appを開きましょう。すると、そのフォルダ内に「Gemfile」という名前のファイルがあると思います。これを開き

gem 'sqlite3'

と書かれている行を

gem 'sqlite3', '~> 1.3.6'

に書き換えます。この状態で一旦セーブします。
再びターミナルに戻って

cd test_app

でtest_appフォルダに移動し、

bundle update

を実行します。しばらく待って
「Bundle updated!」と表示されたら成功です!

③最後にサーバーを起動してみます!

rails s

と入力して実行すると文章がダーーーっと表示され、最後に「Use Ctrl + C to stop」と書かれていたらOKです。
起動したサーバーにアクセスしてみます。
ブラウザを開いてurlバーに

localhost:3000

と入力して検索します。
すると、、、
スクリーンショット 2019-05-22 11.51.00.png
このような画面が表示されると思います。サーバー起動成功です!

ちなみにサーバーをストップさせたい時は「control + C」を押します。

終わりに

以上が一連の流れです。
僕も最近Rubyを勉強し始めて環境構築でつまづいたので、同じようにつまづいている方の参考になれば幸いです。これから勉強を進めて何かしらWebサイトを作れたら嬉しいな〜なんて思っています。

それではまた次の記事で!

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Macをスリープ解除で共有フォルダを自動マウント

朝会社に来たらまずはメールの確認ですが、その次にはプロジェクトフォルダを弄りたいんです。
が!!!
プロジェクトフォルダが共有フォルダにある場合はマウントしないと弄れないんです。

mountコマンドを起動時に走らせればいい

一時はこれで解決したかと思ったのですが、スリープ解除後にアンマウントされていることがよくあるんですよね。
今回はこれを解決したいです。

使うプログラム

  • Launchd
  • SleepWatcher
  • AppleScript

SleepWatcherでスリープ解除を検知し、マウントスクリプトを走らせる
簡単なお仕事です。

まずはSleepWatcherをインストール

とその前に、SleepWatcherとはなんぞやということですが、
「Macのスリープ/スリープ解除イベントを検知してプログラムを呼び出す」
というものです。

ここからしばらく以下のサイトをほぼ丸パクリしています。
https://blog.ishkawa.org/2018/11/09/1541697110/

インストールは簡単にbrew

brew install sleepwatcher

SleepWatcherを常駐させる

LaunchAgentに登録することで常に実行できるようです。
ということで下記コマンドを実行してファイルとディレクトリを用意します。

mkdir -p ~/Library/LaunchAgents
cp /usr/local/opt/sleepwatcher/de.bernhard-baehr.sleepwatcher-20compatibility-localuser.plist ~/Library/LaunchAgents/de.bernhard-baehr.sleepwatcher.plist

設定ファイルを見てみましょう。

cat ~/Library/LaunchAgents/de.bernhard-baehr.sleepwatcher.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>de.bernhard-baehr.sleepwatcher</string>
    <key>ProgramArguments</key>
    <array>
        <string>/usr/local/sbin/sleepwatcher</string>
        <string>-V</string>
        <string>-s ~/.sleep</string>
        <string>-w ~/.wakeup</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
    <key>KeepAlive</key>
    <true/>
</dict>
</plist>

一言で言うと、スリープするときに「~/.sleep」が、スリープ解除するときに「~/.wakeup」が実行されます。
なので上記2つのファイルを作って実行権を与えておきましょう。

touch ~/.sleep ~/.wakeup
chmod +x ~/.sleep ~/.wakeup

これでファイル構成の準備は整いました。

ここまで以下のサイトをほぼ丸パクリしています。
https://blog.ishkawa.org/2018/11/09/1541697110/

あとはLaunchAgentが読み込めるように登録します。

launchctl load ~/Library/LaunchAgents/de.bernhard-baehr.sleepwatcher.plist

マウント用のスクリプトを書く

ここまででスリープ/スリープ解除時に自動的にスクリプトを実行する環境が整いました。
続いてはスリープ解除時にマウントするスクリプトを書きます。
シェルスクリプトが極めて苦手なので、AppleScriptを使っています。

vim ~/automount.scpt
on run argv
    if (count of argv) > 0 then
        delay (item 1 of argv) as integer
    end if
    try
        mount volume "smb://マウントしたいパス1"
        delay 1
        mount volume "smb://マウントしたいパス2"
        delay 1
    end try
end run

このスクリプトはコマンドライン引数で数値を与えると、その秒数後にマウント処理を実行します。後ほど使い道を解説します。
マウントしたいパスは必要に応じて増減できます。
マウントの間のdelayはいわゆるsleep命令なのですが、念の為入れているのだけなので不要かもしれないです。

最後にこいつを.wakeupから呼び出せるようにします。

vim ~/.wakeup
osascript ~/automount.scpt 120

これでスリープ解除して120秒後にマウント処理を開始します。
やりましたね!

なぜ120秒後かと言うと、スリープ解除直後ってWi-Fiを掴んでいないことが多いんですね。
なので掴むまでの時間としてを120秒待つようにしています。
環境に応じて変更してください。

おまけ

osascript ~/automount.scpt

このようにコマンドライン引数をつけずに実行すると即座にマウントを開始します。
たまにスリープ解除後にWi-fiを掴めなかったり、なぜかアンマウントされてしまったときにすぐ実行できると便利です。
でもいちいちこのコマンド打つのは面倒なので、私はパスの通ったディレクトリにこんなスクリプトファイルを置いています。

vim ~/bin/allmaunt # ~/bin/はパスが通っている前提です
#!/bin/sh
osascript ~/automount.scpt

これでパスを覚えることなく、以下コマンドですぐにマウントできるようになります。

allmount

ならスリープ解除後に自動マウントいらなくね?
と思うかもしれませんが、何事も自動化できることは自動化したほうがいいのです。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む