手から出たゴミ

食って、寝て、糞をする合間で作り出されたゴミ

pandasがSegmentation fault

from sklearn import svm,metrics
from sklearn.model_selection import train_test_split
import matplotlib.pyplot as plt

import pandas as pd
# 身長・体重データの読み込み

tbl = pd.read_csv("bmi.csv")

# カラム(列)をスライスして正規化
label = tbl["label"]
w = tbl["weight"] / 100 # 最大100kgと考える
h = tbl["height"] / 200 # 最大200cmと考える
wh = pd.concat([w,h],axis=1)

# 学習用とテスト用データに分ける
data_train,data_test,label_train,label_test = train_test_split(wh,label)

# データを学習
clf = svm.SVC()
clf.fit(data_train,label_train)

# データを予測
predict = clf.predict(data_test)

# 合っているか結果を確認
ac_score = metrics.accuracy_score(label_test,predict)
cl_report = metrics.classification_report(label_test,predict)
print("正解率=",ac_score)
print("レポート=\n",cl_report)

を実行すると、Segmentation faultというエラーが出力された。 原因を辿っていくと

import pandas as pd
tbl = pd.read_csv("bmi.csv")

のみを実行したときに同様のエラーメッセージが出ることからpandasが原因ではないかと調査

pip install pandas
> 
Requirement already satisfied: pandas in /opt/conda/lib/python3.6/site-packages
Requirement already satisfied: pytz>=2011k in /opt/conda/lib/python3.6/site-packages (from pandas)
Requirement already satisfied: numpy>=1.9.0 in /opt/conda/lib/python3.6/site-packages (from pandas)
Requirement already satisfied: python-dateutil>=2 in /opt/conda/lib/python3.6/site-packages (from pandas)
Requirement already satisfied: six>=1.5 in /opt/conda/lib/python3.6/site-packages (from python-dateutil>=2->pandas)

pip freeze
>
asn1crypto==0.22.0
certifi==2017.7.27.1
cffi==1.10.0
chardet==3.0.4
conda==4.3.27
cryptography==2.0.3
cycler==0.10.0
decorator==4.2.1
idna==2.6
matplotlib==2.1.2
networkx==2.1
numpy==1.14.0
pandas==0.22.0
Pillow==5.0.0
pycosat==0.6.2
pycparser==2.18
pyOpenSSL==17.2.0
pyparsing==2.2.0
PySocks==1.6.7
python-dateutil==2.6.1
pytz==2017.3
PyWavelets==0.5.2
requests==2.18.4
ruamel-yaml==0.11.14
scikit-image==0.13.1
scikit-learn==0.19.1
scipy==1.0.0
six==1.10.0
sklearn==0.0
urllib3==1.22

pandasは入っているようだ。 仕方ないので、

pip uninstall pandas
pip install pandas

上記コマンドを実行すると、動いた。

原因がわからないので、モヤモヤする結果となった。

Linux標準教科書 1章

Linux

知らなかった知識

カーネルとユーザランド

基本ソフトウェアはカーネルユーザランドの領域に分かれる。カーネルはハードウェアの違いを吸収して、プログラムが全てハードウェア上でも同様に動かす役割がある。ユーザランドとは、OSが動作するのに必要なカーネル以外の部分のことである。具体例として、ファイルシステムやファイル操作コ マンド、シェルなどの基本的なソフトウエア群がある。

1章 章末問題

(1) 基本ソフトウェアとして適切なものを選びなさい。

  1. Word
  2. Excel
  3. Windows
  4. Linux
3、4

(2) 応用ソフトウェアとして適切なものを選びなさい。

  1. Word
  2. Excel
  3. Windows
  4. Linux
1、2

(3)Operating System の役割として適切なものを 2 つあげなさい。

- 拡張マシンとしてのオペレーティングシステム  
ハードウェアについての詳細をプログラマに意識させないで、
読み書きする名前のついたファイルというわかりやすい概念を与える。
オペレーティングシステムによって、プログラミングしやすい拡張マシン
仮想マシンのような機能を提供する。

- リソースマネージャとしてのオペレーティングシステム
複雑なシステムのひとつひとつを管理する。
誰がどのリソースを使用しているのかを追跡、リソース要求の使用許可など
複数のプログラムやユーザからの要求を調整する役割を持つ。

(4)Linux について正しく述べているものを選びなさい。

  1. AT&T とライセンス契約を結んでいない組織が開発した UNIX のこと。
  2. 開発者である Ken Thompson 氏がカリフォルニア大学バークレー校に在籍していたときに 作成した派生 OS。
  3. Linuxカーネルとユーザランドによって成り立つ。
  4. 1960 年代に通信会社 AT&T のベル研究所で誕生した。
3

1:UNIX互換OS
2:バークレー版 UNIX
4:UNIX

(5) パッケージを使って応用ソフトウェアを導入する利点を説明しなさい。

  • 応用ソフトウェアをインストールするには、依存関係を考えながら正しい場所に正しい手順で行う必要がある。また、古いプログラムを削除する際もソフトウェア間の関係を考える必要があり、作業は困難となる。パッケージを利用して応用ソフトウェアを導入することにより、最新のパッケージの更新が容易となる。

参考文献

オペレーティングシステム―設計と理論およびMINIXによる実装

オペレーティングシステム―設計と理論およびMINIXによる実装

Linux標準教科書 www.lpi.or.jp

食べログでWebスクレイピング

Webスクレイピングとは

  • WebサイトからWebページのHTMLデータを収集して、特定のデータを抽出、整形し直すことである。

やっとこと

食べログに検索したいワードを設定して、スクレイピング

コード

import requests
from bs4 import BeautifulSoup

session = requests.Session()
post_url = 'https://tabelog.com/rst/rstsearch/'
research = session.get(post_url,data = {
    'sk' :'寿司',
})

soup = BeautifulSoup(research.text, 'lxml') 
restaurant_names = soup.select('.list-rst__rst-name-target')

for restaurant_name in restaurant_names:
    print(restaurant_name.text.strip())

参考文献

Beautiful Soup Python による Web スクレイピング 食べログ

CpawCTF Level3

はじめに

CpawCTFの解答を投稿する記事となっています

常設サイトのため、自力で解きたい方は注意してください

環境 macOS

問題

Title
[Reversing]またやらかした
[Web]Baby's SQLi - Stage 2-
[PPC]Remainder theorem
[Crypto] Common World

解法

[Reversing]またやらかした

[Web]Baby's SQLi - Stage 2-

' OR 1=1 --

--のコメントがいるのを知らず、他の人のwrite upを拝見しました

[PPC]Remainder theorem

[Crypto] Common World

CpawCTF Level2

はじめに

CpawCTFの解答を投稿する記事となっています

常設サイトのため、自力で解きたい方は注意してください

環境 macOS

問題

Title
[Stego]隠されたフラグ
[Web] Redirect
[Network+Forensic]HTTP Traffic
[Recon]Who am I ?
[Forensic]leaf in forest
[Misc]Image!
[Crypto]Block Cipher
[Reversing]reversing easy!
[Web]Baby's SQLi - Stage 1
[Network] Can you login?

解法

[Stego]隠されたフラグ

[Web] Redirect

[Network+Forensic]HTTP Traffic

[Recon]Who am I ?

[Forensic]leaf in forest

sed -e 's/lovelive!//g' misc100 > cut

を実行すると ヤテイ。%e!CCCelive!lovelivPPPovelive!loveAAAe!lovWWWve!{{{elive!loveliMMMelive!lovelGGG!lovelivRRRovelive!lEEElive!PPPelive!}}}
が取得できた {{{elive!loveliMMMelive!lovelGGG!lovelivRRRovelive!lEEElive!PPPelive!}}}
に注目して
{elive!lovelimelive!lovelg!lovelivrovelive!lelive!pelive!}を提出するが通らなかった。他の人のwriteupを参考にしてlovelive!に含まれる文字全てを最初に削除して、大文字を小文字に直すとflagをゲット

[Misc]Image!

[Crypto]Block Cipher

[Reversing]reversing easy!

[Web]Baby's SQLi - Stage 1

select * from palloc_home where id = 2

を実行

[Network] Can you login?