kiwo's blog

PythonのPythonista3で遊んでます。パソコン系の話題が好き!

Pythonistaのuiモジュールでのボタンの基本!


こんにちはkiwoです!

ツイッターはこちら
https://mobile.twitter.com/kiwo_py

良かったら構ってください。


はじめに

今回はPythonista3のドキュメントを元に使い方を分かりやすく解説したいきたいと思います!

Pythonista3といえばuiモジュールが強みだと思うので一番基本的な所から攻めて行きます!

本題

ドキュメントの冒頭にあるIntroduction(uiモジュールについての簡単な説明文)がありますがそれほど重要じゃないので飛ばします笑
出来るだけ要点を押さえて手短に進めたいので笑

最初の説明ですが簡単に言うと
こちらが入門編ですよーと、
tap me ! と表示されているボタンを押すとhello!という文章(タイトル)に変わるプログラムです。
あんまり便利な事じゃないけど基本的な事を教えるからやってるよ!
的な文章です笑

こちらがそのコードです!

実行する前にですが、今回の場合はpyui(手動でボタンの設置やサイズ変更するやつ)を使わずにコードだけで作ってます。
実行すると
これが

こうなります


Helloに変わりましたね
ではではコードの解説ですが

[1]では基本的なビューを画面上に作る。
画面がないと始まりませんからね笑

[2]ではDemoという名付けをしてタイトルバーに表示されます。

[3]ここでは背景を白に設定しています。もちろん色を変えることも出来ます。

[4]uiモジュールでボタンを作りタイトルにTap me!を設定してまとめてbutton

[5]ボタンの位置設定です。ここではボタンを真ん中に置くためにviewのサイズに0.5を掛ける事で真ん中に設置しています!

[6]スマホとかって画面のサイズが変わったりする事がよくあります。横向きとかにすると大幅に変わりますよね?ここで余白を自動的に変更してくれてます。'LRTB'は察しの通りleft,right,top,bottomです。
これがなければボタンが左上にいきます笑

[7]ボタンの動作をdefで作成した関数に設定しています。引数にsenderとあるのは書くお決まりみたいなので深く考えない方が良さそうです笑
あと先頭に定義しないとダメです。

[8] [4]〜[7]で頑張ってボタンを作ったのでいよいよこのviewにボタンを置くぜ!的な感じです笑

[9]これでいよいよviewを設置します。[1]と似ていますが[1]ではviewを作る文、[9]ではviewを設置する文。だと僕は解釈してます。
あと左上にバツのボタンがありますがこの関数がデフォルトでつけてくれてます。
引数の'sheet'ですがiPhoneの場合は自動的にフルスクリーンになります。iPadなら色々いじれるみたいですが僕がiPhoneなのでここはよく分かりません笑


ここまでが今回僕が調べた事です。
これちゃうやろ!っていうのがあればどんどん指摘を頂ければ幸いです

で、次はpyuiファイルを使って同じ事をやります!

コードはこれだけ笑

ボタンを設置してアクションに関数を設定すると…

はい一瞬です笑

これが

こう


最後に

ここまで見てくれてありがとうございます!
少しでも誰かに役立つ知識を提供出来たのならすごく嬉しい事です。
僕が今回の様な記事を書いた理由は二つ
・アウトプットする自分のため
・Pythonista3を使っている人と繋がるため

プログラミングを始めてからツイッターなどで誰かと繋がれてとても楽しく、やりがいを感じています。

これからも更新頻度は遅いと思いますが暖かい目で見てください笑


ツイッターはこちら
良かったら友達になってください笑
https://mobile.twitter.com/kiwo_py

プログラミング初心者にお勧めPythonista3の紹介!

どうもこんにちはkiwoです!

いつもPythonista3に関する記事を更新してるんですがそもそもPythonista3の紹介の記事を書いてなかったので今回更新します!笑


はじめに


Pythonista3ですがざっくり言うとpythonがアプリで実行出来るという代物です。
1200円で買う事が出来るので結構おススメです!
pythonの入門書的な内容のコードなら大抵できます。

twitterなんかで見かけたものでいうと画像認識や文字認識などゲームや物理シミュレーションまで作ってる強者もいます!

こんなやつです

僕でも無料APIを使用してお天気アプリを作成してますのでAPIに関する事も出来ます!

本題

pythonといえば豊富なモジュールですよね。
このPythonista3では様々なモジュールを使う事も出来ます。
しかもstashというものを30秒ぐらいでインストールするとpip installまでも出来ます!

でもこのPythonista3にはpythonに標準モジュールにある物と違って有名なモジュールが最初から入ってます!

特に有名なrequestsbeautiful soupなんかも標準搭載です。

あとグラフ作成もかなり優秀かと思います。
matplotlibを使ってこんなグラフも作成することができます。

これはExamplesというファイルに最初から入ってましてサンプルみたいな物でコードを参考にすることが出来ます。

もちろん棒グラフや円グラフもお手の物。

あと男心をくすぐるのがゲーム作り!
Pythonista3の特有のsceneモジュールというのがあってこういうのも作れちゃいます。

ブロック崩しゲームもサンプルであります。


このようなアプリでかなり可能性無限大です!


またwebフレームワークで有名なbottleやflaskなんかも最初からありますのでweb関係の勉強も出来ます。
htmlのファイルも作れますのでコーディングの勉強も出来て一石何鳥は分かりません。

これが1200円で手に入るって凄いですよね笑
ちょっとプログラミングに興味があって軽く触ってみたいなーっていう人には十分すぎるぐらいの品物です。


最後に


最近はプログラミングという技術が注目されて小学校でも必修科目となるぐらいです。
そんな中プログラミング学習の切り口となるのはこのアプリになると僕は思っています。

プログラミングという技術は習得は難しいと思いますが生きる術になる強力なツールだと思います。
変化の激しい時代にこの強力なツールを使いこなせるだけで人生の山はかなり登りやすくなります。

なのでもっとPythonista3の普及とともにプログラミングという技術の向上で他国に負けないぐらいの技術を持って職人気質の日本がまた戻って返り咲く事を願います。


わけのわからない事ばかり言ってしまって申し訳ないです笑

ここまで見てくれてありがとうございました!

ツイッターやってますので良かったらフォローして絡んでください笑

ツイッターURL

https://mobile.twitter.com/kiwo_py

しょうもない事でも何でも良いので構ってくれるとめちゃくちゃ喜びます笑

Pythonista3で通知アプリ作り!

どうもこんにちはkiwoです!

色々めんど臭くてkiyoからkiwoに名前が変わってます笑
たぶん誰も分からないと思いますが一応書いておきます。


はじめに


今回のテーマはPythonista3でお知らせアプリを作ろう!っていう感じです。
どういうのかと言うと自分で入力した内容を何分後、または何時間後に通知してもらうというものです!

Pythonista3特有のnotificationモジュールを使っていきます!


本題



まずはじめにコードとuiファイルの紹介です。

コードはこちら

import ui
import notification

def gohun(sender):
	  te = sender.superview['textview1']
	  tim = te.text
	  notification.schedule(tim,10)
# ここはテストの為に10秒に設定しています。

def itizikan(sender):
	  te = sender.superview['textview1']
	  tim = te.text
	  notification.schedule(tim,3600)

def rokuzikan(sender):
	  te = sender.superview['textview1']
	  tim = te.text
	  notification.schedule(tim,3600*6)
	  
def asita(sender):
	  te = sender.superview['textview1']
	  tim = te.text
	  notification.schedule(tim,3600*24)



v = ui.load_view()
v.present('sheet')
v.background_color = '#49ed49'
	 

結構適当なので今回はnotificationモジュールのお勉強と言う事で簡単にしてます(言い訳)

uiファイルがこんな感じ




毎度の如くactionの所はコードに記述しているdefに合わせてください笑
actionってなんやねんって方は僕の過去の記事漁っていただけると分かると思います。

とても簡単なのでschedule関数だけ解説します!

ざっくり言うと
schedule(メッセージ内容,通知の時間設定)
って感じです。
他にも設定出来ることはありますので詳しく知りたい方は公式ドキュメントへ。

http://omz-software.com/pythonista/docs/ios/notification.html

これを今回のコードではtextviewの内容をtimという変数に入れてメッセージを設定し、その後コンマで区切って時間の設定をしています。

これでとても簡単でシンプルかつ何か役立ちそうな気がするお知らせアプリの完成です!

一回実行してみます!

これを…

こう!


通知が来ました。
成功です。


最後に


今回もPythonista3特有のモジュールを使って遊びました!
便利なモジュールがいっぱいあってなおかつ便利な関数がたくさんあるのがPythonista3の
強みかと思います。

これで忘れ物をなくしましょう!

ツイッターはこちら
良かったら友達になってください笑
https://mobile.twitter.com/kiwo_py


にほんブログ村 IT技術ブログへ
にほんブログ村

Pythonista3の速攻リマインダーアプリの作り方!

どうもこんにちはkiwoです!

今回は個人的に欲しかったアプリを作りました!

はじめに

まずアプリを作った経緯ですが僕がよく嫁から仕事帰りにおつかいを頼まれる事が多いんですね。

それで後でお金返して貰う為によく使うリマインダーにメモをするのですが毎回リマインダーを起動して文字を打つのが面倒w
という事でささっとリマインダーにメモが取れるアプリを作りました。

本題

ではコードの紹介です。

理想としてはタップするだけでメモを取りたかったのでPythonista3でuiモジュールremindersモジュールを使います。

コードがこちら

import ui
import reminders

def bt_tap(sender):
	ti = sender.title
	label = sender.superview['label1']
	label.text += ti

def cl_bt(sender):
	label = sender.superview['label1']
	label.text = ' '

def rm_tap(sender):
	label = sender.superview['label1']
	r = reminders.Reminder()
	lt = label.text
	r.title = lt
	r.save()
	label.text = ' '
	
v = ui.load_view()
v.present('sheet')
v.background_color = '#ededed'
v.name = 'rem' 

あとpyuiファイルの配置です

ここからdefったことについて説明します。

def bt_tap(sender):
	ti = sender.title
	label = sender.superview['label1']
	label.text += ti	 

一つ目の関数ですがボタンのアクションにはコードで定義したbt_tap関数を。
ここでは上のラベルに押したボタンの番号を送っています。

あと注意点ですがラベルにボタンの番号を送る際に(=)だけだとラベルに表示される番号が上書きされてその番号だけが表示となるので必ず(+=)とするように!

その逆パターンを利用してクリアボタンを作ってます!
これです。

def cl_bt(sender):
	label = sender.superview['label1']
	label.text = ' '	 


あとラベルにリマインダーにメモしたい事が決まったらリマインダーにメモを送るボタンを作ります!

def rm_tap(sender):
	label = sender.superview['label1']
	r = reminders.Reminder()
	lt = label.text
	r.title = lt
	r.save()
	label.text = ' '	 

コードの動作説明ですがr変数にリマインダーする関数を設定しまして
次にラベルのテキストをlt変数にいれて
lt変数をリマインダーのタイトルに設定します!
それでsave関数でリマインダーに保存!
保存されると最後に空の文字列を送ってラベル内の文字をリセットしてます。
詳しく知りたい方はPythonista3のドキュメントにremindersモジュールの説明があるのでこちらを見てください!
http://omz-software.com/pythonista/docs/ios/reminders.html

和訳面倒ってかたは良かったら僕の翻訳アプリ的なのもありますので良かったらこの記事も見てください笑
http://kassaaaah.hatenablog.com/entry/2018/09/19/204052

最後に

以上で速攻リマインダーアプリの出来上がりです笑
個人的結構気にっていてよく使ってます。

皆さんもこのアプリでネチネチ嫁さんを攻めましょう笑

ツイッターはこちら
良かったら友達になってください笑
https://mobile.twitter.com/kiwo_py

にほんブログ村 IT技術ブログへ
にほんブログ村

SYN Flood攻撃について。

どうもこんにちはkiwoです。


今回は僕の好きな情報セキュリティに関する内容です。
普段は出来るだけPythonistaの内容にしようと思ってましたが流石にネタもなく同じ事ばっかりしてたら飽きてしまいそうで怖いので違う内容にも触れていきます。

DoS攻撃について

そして本題はDoS攻撃についてです。
つい先週ぐらいにもニコニコ動画が攻撃されたとか!
国外のパケットを遮断してもすぐに国内からの攻撃に移り変わったとか笑

まあDoS攻撃といっても様々な種類があるので今回はSYN Flood攻撃についてです。

SYN Flood攻撃とは

簡単に言うと詐称したIPアドレスからSYNパケットを送りまくってサーバーに負荷をかける事ですね!

といってもそもそもSYNパケットって何やねん!と思われる方も居るかと思いますのでSYNパケットについて説明します。

SYNパケットとはクライアントがサーバーに接続しても良いか?と確認のサインを送る感じだと思ってください。
そのSYNパケットで実際どの様なやり取りが行われるかというと
3ウェイハンドシェイクとやらでSYNパケットとACKパケットを送り合いやっと接続になります。

ここでまた面倒くさそうな用語が出ましたね。
ACKパケット!
これはSYNパケットの接続しても良いか?という投げかけに対して良いよ!という返答を送ってるようなものです。

文にしても伝わる気がしないのでイラストを作ったので見てください。
僕の好きなマクドで例えた渾身の傑作です()

こんな感じです。
これが3ウェイハンドシェイク

そして今回の本題のSYN Flood攻撃はこのSYNパケットを送りまくり!
こちらも渾身の傑作で例えたので見てください。

こんな感じです。
しかも実際は客の顔が偽物になってます。
店員さんはブチ切れですよね。

こんなに注文されたら店員さんはてんやわんやで倒れてしまいます。
これによってサーバーがダウンしてしまったりします。


以上がSYN Flood攻撃の説明でした!


最後に僕の想い


これから世の中はもっと便利になっていきます。
5Gの登場で更にインターネットが生活に重要な物になってくるでしょう。

そんな時にきっと悪ーい怖い人達は便利になった事を利用して甘い汁をちゅっちゅ吸いに来るでしょう。

やはり対策も大事ですがセキュリティに対する意識の向上が大事だと思います。
そうはいっても会社のパソコンはまだWindows7を使っている会社も多々あるでしょう。

これに対する危機感ももっと持っていただきたい。
僕の個人的な考えですが2020年東京五輪の三ヶ月後ぐらいにはWindows7のサポートは終了します。

そこを狙ってサイバー攻撃に拍車がかかるのは確かでしょう。

もし世の中の様々な機能がクラッカーによって機能停止されたら被害は想定以上に来るかと思います。
なぜなら僕もそうですが皆んなその恐ろしさを知らないから。

本当に何が起こるかわからない状態になるかもしれません。
北海道の震災で電気が止まった間に被害が生じた様に2次被害の規模は計り知れないでしょう。

その為には僕たち一人一人がセキュリティに対し目を向け対策を行うだけでもしその時が来てしまっても被害は小さくすることが出来ると思います。

特に会社のセキュリティに関してはもっと意識の向上が必要です。
ですが人の面でセキュリティが崩れる事がたくさんあります。

正義感を持った僕を雇う事でその会社のセキュリティは守られます
嘘です笑


しょうもない冗談は置いておいて日本の将来の為もっとセキュリティの重要性の考えを広めていきましょう!

カフェラテこぼしたのでこの辺で!

最後まで見てくれてありがとうございました!


ツイッターはこちら
良かったら友達になってください笑
https://mobile.twitter.com/kiwo_py


にほんブログ村 IT技術ブログへ
にほんブログ村

Pythonistaでお天気アプリの作り方!

どうもこんにちは!
ツイッターのアカウントのリンクの貼り方が分からないkiwoです!



はじめに


今回はPythonでもよく使われているrequestsで遊びます!

正確にはPythonistaを使ってライブドアの天気APIのWeather Hacksを使用します。


では始めにAPIjsonデータのオブジェクトを貰います。
コードは実用的ではないのですがこのようになります。

import requests

url = 'http://weather.livedoor.com/forecast/webservice/json/v1?city=250020'

date = requests.get(url).json()
print(date)

url = 'http://weather.livedoor.com/forecast/webservice/json/v1?city=250020'

この部分がAPIのURLとなっています。
後ろの方のcity=250020は地名の番号で今回は滋賀県の天気を取得します!



これを実行すると…



よく分からない文字列が並んでいますね。

この情報は辞書型で収納されたデータがあり、この中からキーを取得しておよそのデータの内容を把握します。

キーの取得方法はこちらを実行します。

import requests

url = 'http://weather.livedoor.com/forecast/webservice/json/v1?city=250020'

date = requests.get(url).json()
print(date.keys())
	 

これが結果です。

この中にforecastsというのがありますね。
これは日本語にすると予測や予想という意味です。
恐らくこの中に天気の情報があるのでforecastの情報を抜き取ります。

コードはこちら。

import requests

url = 'http://weather.livedoor.com/forecast/webservice/json/v1?city=250020'

date = requests.get(url).json()
print(date['forecasts'])
	 

結果です。



これを見てみると天気のデータを発見!
'telop'というキーの中に天気の情報がありました!

というわけでtelopキーのデータを取得します。

コード

import requests

url = 'http://weather.livedoor.com/forecast/webservice/json/v1?city=250020'

date = requests.get(url).json()
print(date['forecasts'][0]['telop'])
print(date['forecasts'][1]['telop'])
	 

結果

これでお天気情報の取得任務完了です。



Pythonistaの本気

ここからはPythonista特有の遊びをしていきます。

それは何かというとuiモジュールを使ったアプリです!
すごく簡単なのでおススメかと。
あとuiモジュールの理解も進むかと。

ではやっていきます!

まずはPythonistaでタイトルは適当につけてファイル作成のところでScript with UIを選択します。

次にpyuiファイルのボタン等を設置します。
今回使うのは2種類だけ!

ここをタップで使用できます。


Labelというのが文字を表示する為の物
Buttonというのがタップすると動作してくれる物という雰囲気で覚えてください笑


これらを使ってこういう風に配置します。

上2つのラベルにはただ文字を打っているだけです。
その下2つは空白で!
ここにAPIさんから送られてきた情報を入れますので。

そして下の太陽のマークがbuttonとなります!



pyuiファイルの設定


ここからpyuiファイルの簡単な設定をしていきます。

まずラベルの設定ですが

ここのNameをlabel1とします。
恐らくデフォでなっているかと。
ここで注意してもらいたいのがtitleの方と間違えないように!


なぜこれが重要かと言うとここのNameを対象にコードで識別するからです。
また下のページでも出てくるのでそちらを見た方が分かりやすいと思います。

次にボタンの設定ですがここ!

今回はNameは関係ありませんがactionというのが重要になってきます。
コード側で定義された関数とここのactionでリンクさせる為です。

そしていよいよpyファイルのコードです。


pyファイルの設定

こちらがコードです!

import ui
import requests


url = 'http://weather.livedoor.com/forecast/webservice/json/v1?city=250020'

def tenki_button(sender):
    date = requests.get(url).json()
    tenki = date['forecasts'][0]['telop']
    tenki1 = date['forecasts'][1]['telop']
    # 上記で取得した天気の情報を変数に代入
    hyoji = sender.superview['label1']
    hyoji.text = tenki
    hyoji1 = sender.superview['label2']
    hyoji1.text = tenki1
    # 上記が取得した変数をlabalに送っています。['label1']の所が先ほどのNameとリンクしています!
v = ui.load_view()
v.present('sheet')
	 

def tenki_button(sender):
というところがさっきのボタンのactionという所とリンクしてます。

さっきのボタンをタップするとこの関数が実行されるようになっています。


これを実行すると

こうなってるので天気マークのボタンをタップしてtenki_buttonを実行させます。

すると


こうなります。
今日の滋賀の天気は微妙です。

これでお天気風アプリの出来上がりです。


さいごに


今日はとてもシンプルなアプリ作りをしました。
Python難しいけどとりあえず何か作って達成感味わいてえ!っていう方は今回のお天気風アプリがおススメです。




取り敢えずパソコンが欲しい…笑


ツイッターはこちら
良かったら友達になってください笑
https://mobile.twitter.com/kiwo_py


にほんブログ村 IT技術ブログへ
にほんブログ村

工場のライン工の実態について!

どうもKiwoです。


今回は僕が普段勤めている工場のライン工についてです。


対象の読者


対象の方はこれから工場に就職の興味がある方や少しの期間だけ工場で稼ごうかなっていう方を対象に記事を書きます。


はじめに


今回の内容は僕自身の経験談と他の会社にいる工場の友達から聞いた実際の声を元に記事を書いています。

ですが皆さんが持っているライン工のイメージは恐らく

  • しんどい
  • DQNが多い
  • 仕事がすごく単調

だと思います。


しんどいという面に対して


確かにしんどいです笑
まあしんどくない仕事っていうのは好きじゃないと多数の人が感じる事だと思いますが。

ずっと同じことをするのが怠いっていう人は向いてないかもしれませんが僕の場合は考え事が好きなのでブログ何書こうとかどんなアプリ作ろうかなとかどんなプログラミングしようかなとか考えながらしててぼちぼち時間は過ぎるのは早い方だと思います。

部署によってはかなり肉体を使うので注意は必要です。
ですが皆さんのイメージとは違ってかなり楽な部署もあります。

僕の職場がそうでかなり肉体的には楽です。
なのでライン工は滅茶苦茶怠い…という事はありません。

まあ体力があるに越した事はありませんが笑


DQNが多い点について

次にDQNが多いという点ですが実際かなり多いと思います笑
でも本当にヤバイ奴はそもそも会社に入らないし、もし入社してもすぐに辞めて行きます笑
なので見た目はちょっと怖そうでも中身はしっかりしてて常識はあるって方が多いと思います。
まあコミュ力は向上すると思います笑


仕事が単調について

次に仕事が単調についてですがこの点はかなり合っています笑

ですが逆に言えばあまり頭を使う事はあまり無いです笑
たしかに工程によっては頭を使う仕事はたくさんあるのでこれも一概には言えません。


デメリットは話したので次はメリットにいきます!


メリット

  • 年休が多い
  • たぶん高給


ライン工の年休は?


年休についてですが
うちの会社では年休は年に20日ほど。
目標日数取得しないと評価かなり下がります。
ですので入社して5年目ぐらいになると月に2日ぐらい休まないと怒られる事があります笑
しかもだいたい休みたい日には指定通りの日が休む事ができます。
あまり月曜日と金曜日に年休取りすぎると回りから白い目で見られますが笑


たぶん高給?


だいたい年収聞かれると驚かれます。
流石に700万までは届きませんが笑

あと残業は多い月で40時間、少ない月で20時間前後。
残業に関してはほとんどの会社が当てはまるかと思いますが残業のしすぎにはかなり厳しくチェックが入ります。

まあそれほど残業せず休みも多いので僕は結構満足してます。


ライン工入社するか迷っている方へ


もしライン工に就職または期間社員で入るなら大企業に絶対入るべきです。
待遇は結構良いと思います。
それに期間社員で入る場合ですと狭き門でなくむしろ広すぎるぐらいですので少し勉強すれば大きい会社でも入社する事が可能です。

また時代が時代なので最近は待遇はかなり良いと思います。
特に大企業で組合がしっかりしている会社ではパワハラ等の問題はかなりシビアなのでその面に関しては心配はあまりしなくて良いかと

ただ輩は多いです。
DQNか体育会系。
たまにインテリ系。

でもそういう方達が多いからこそインテリ系?が輝く事もあります。
基本的に運動メインに学生時代を過ごして来た方が多いのでパソコン嫌いな人はかなり居ます。


実際にあったんですが僕が少しexcelが得意だったので管理職の方に気にかけてもらえて入社1年目から管理職クラスの仕事を手伝う事も多々ありました。

ほんとに初歩的な事を聞かれたり簡単な処理をするだけで結構感謝されてドヤ顔も出来ます笑
実際にドヤ顔すると嫌われると思いますが笑

それにスキルもあんまりいらないと思います。
パソコンの勉強は高校まででしたが今現在までパソコンの業務で困る事はほとんど無かったです。

ですのでプログラミング等を勉強してきた方からすればかなりヌルゲーです。


まとめ

  • 工場のライン工はネットの噂には当てはまらない(特に大きい会社)
  • 休みが多く給料も高い方
  • ただ部署によってはかなり肉体労働かも…
  • パソコンスキルがあれば重宝される

以上が今回の内容です。

経歴を気にしなければハズレの職場に配属されたらすぐ辞めちゃって構わないと思います。
最速で15分ぐらいで飛ぶ人も居ましたので笑
中途半端に2週間ぐらいで飛ぶ人よりかは全然良いです笑

これから工場に入社する方や入るか迷っている方の参考になれば幸いです。


にほんブログ村 IT技術ブログへ
にほんブログ村