- 投稿日:2019-05-22T23:07:18+09:00
Readabilityで本文っぽい文章を抽出
Readabilityのインストール
まずはReadabilityとhtml2textをインストール。
pip install readability-lxml pip install html2text
- Readabilityで本文抽出
- 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
- 投稿日:2019-05-22T17:15:34+09:00
MacでCassandra環境をローカルで構築する
概要
環境構築の備忘録。
Cassandra をローカルで動かしたかったので、そのための手順を残しておく。手順
Cassandra 本体の準備
今回はDockerで動かしてみる
docker-compose.ymlversion: '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 pip2. 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 six3. 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>
- 投稿日:2019-05-22T17:15:34+09:00
MacでCassandraをローカルに構築する
概要
環境構築の備忘録。
Cassandra をローカルで動かしたかったので、そのための手順を残しておく。手順
Cassandra 本体の準備
今回はDockerで動かしてみる
docker-compose.ymlversion: '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 pip2. 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 six3. 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>
- 投稿日:2019-05-22T11:54:55+09:00
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キーを押します。次に端末のパスワードを入力します。
パスワードを入力してもターミナル上には何も表示されませんが、それで正解です。気にせず入力しましょう。
しばらくするとインストールが完了します。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と入力して検索します。
すると、、、
このような画面が表示されると思います。サーバー起動成功です!ちなみにサーバーをストップさせたい時は「control + C」を押します。
終わりに
以上が一連の流れです。
僕も最近Rubyを勉強し始めて環境構築でつまづいたので、同じようにつまづいている方の参考になれば幸いです。これから勉強を進めて何かしらWebサイトを作れたら嬉しいな〜なんて思っています。それではまた次の記事で!
- 投稿日:2019-05-22T10:35:06+09:00
Macをスリープ解除で共有フォルダを自動マウント
朝会社に来たらまずはメールの確認ですが、その次にはプロジェクトフォルダを弄りたいんです。
が!!!
プロジェクトフォルダが共有フォルダにある場合はマウントしないと弄れないんです。mountコマンドを起動時に走らせればいい
一時はこれで解決したかと思ったのですが、スリープ解除後にアンマウントされていることがよくあるんですよね。
今回はこれを解決したいです。使うプログラム
- Launchd
- SleepWatcher
- AppleScript
SleepWatcherでスリープ解除を検知し、マウントスクリプトを走らせる
簡単なお仕事です。まずはSleepWatcherをインストール
とその前に、SleepWatcherとはなんぞやということですが、
「Macのスリープ/スリープ解除イベントを検知してプログラムを呼び出す」
というものです。ここからしばらく以下のサイトをほぼ丸パクリしています。
https://blog.ishkawa.org/2018/11/09/1541697110/インストールは簡単にbrew
brew install sleepwatcherSleepWatcherを常駐させる
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.scpton 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 ~/.wakeuposascript ~/automount.scpt 120これでスリープ解除して120秒後にマウント処理を開始します。
やりましたね!なぜ120秒後かと言うと、スリープ解除直後ってWi-Fiを掴んでいないことが多いんですね。
なので掴むまでの時間としてを120秒待つようにしています。
環境に応じて変更してください。おまけ
osascript ~/automount.scptこのようにコマンドライン引数をつけずに実行すると即座にマウントを開始します。
たまにスリープ解除後にWi-fiを掴めなかったり、なぜかアンマウントされてしまったときにすぐ実行できると便利です。
でもいちいちこのコマンド打つのは面倒なので、私はパスの通ったディレクトリにこんなスクリプトファイルを置いています。vim ~/bin/allmaunt # ~/bin/はパスが通っている前提です#!/bin/sh osascript ~/automount.scptこれでパスを覚えることなく、以下コマンドですぐにマウントできるようになります。
allmountならスリープ解除後に自動マウントいらなくね?
と思うかもしれませんが、何事も自動化できることは自動化したほうがいいのです。

