ぶらりずむ

すきなものだけをあつめました

【Python】関数・モジュール

関数の作り方

def 関数名():
		処理名
		return

returnで値を返すと、関数の処理はそこで終わる。
returnの後に処理を書いても実行されない。

>>> def abc():
...     aaa = 100
...     return aaa
...
>>> abc()
100
>>>
def 関数名(引数):
		処理名
		return

とすると、引数を受け取る関数になる。

>>> def bcd(zzz):
...     x = zzz * 100
...     return x
...
>>> bcd(10)
1000
>>>

モジュールの作り方

# test_module.py というファイルに以下を書き込む
# 引数に対して100を掛けて返す
def abc(v):
        x = v * 100
        return x
>>> import test_module #モジュール名をインポートする
>>> test_module.abc(12) #モジュール名.関数名(引数)で実行する
1200
>>>

モジュールの再読込

再読込はimport モジュール名ではなく、importlibを使う

import importlib
importlib.reload(モジュール名)


random.pyを見て、ほえ〜ってなった

【Python】ファイルの入出力

文字の入力

文字入力を受け付けるにはinput関数を使う。

>>> food = input('好きな食べ物は?:')
好きな食べ物は?:肉 ← 肉と入力
>>> print(food)
肉
>>>

ファイルを読み込む

open関数を使う

>>> aaa_file = open('aaa.txt','w')

wは書き込みモード、rの場合は読み込みモード

ファイルに書き込む

writeメソッドとflushメソッドを使う

通常はwriteメソッドで書き込みを行うが、リストの書き込みはwritelinesメソッドを使う。

>>> aaa_file.write('Hello World')
11
※文字数を返してくる

flushメソッドでバッファされているかもしれない処理を書き出す。
writeだけではバッファの中身がディスクに書き込みしているかは保証されない。

>>> aaa_file.flush()
>>>
※特に何も返してこない

ファイルとの接続を閉じる

>>> aaa_file.close()
>>>
特に何も返してこない

closeの処理にflushが含まれるので、open→write→closeで開いたファイルに処理内容が書き込まれる。

>>> aaa_file.close()
>>>
>>> aaa_file.write('Hello World2')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: I/O operation on closed file.
>>>

エラーが出て、aaa_fileが開かれていないことが分かる。

ファイルの内容の読み込み

>>> aaa = open('test.txt','r')
open関数の読み取りモードで開く

>>> read_aaa = aaa.readline()
>>> read_aaa
'Hello World\n'
>>>

readlineメソッドで読み込む、引数はなく一行ずつ読み込まれる。
2回実行すると、2行目が読み込まれる。

ファイルの内容の複数行をまとめて読み込む

test.txtは以下の内容があるとすると、readlinesメソッドを利用しても読み込む

Hello World1¥n
Hello Worl2^n
¥n

>>> aaa = open('test.txt','r')
open関数の読み取りモードで開く

>>> read_aaa = aaa.readlines()
>>> read_aaa
['Hello World1\n', 'Hello World2\n', '\n']
>>>

withを使うとopen/closeが楽になる

with open関数 as 変数:
     処理内容

close処理を書かなくても良い。

>>> with open('aaa.txt','r') as aaa:    #aaa.txtにはabcと書いてある
...     bbb = aaa.readline()
...     print(bbb)
...
abc

35歳ITベンチャー勤務、ダブルワーカーのGWの過ごし方を大公開!これがダブルワーカーだ!!

こんにちは、ほうじ茶です。
敬愛しているブレイクさんのタイトル感(と躍動感)をちょっとパクってみました。

敬愛するブレイクさん
doubleworkandstock.hatenablog.com

GWどう過ごしたのか!

世間一般では5/3〜5/6まで、長い人だと4/28からずっと休みだったのではないでしょうか。
私はカレンダー通りだったので、5/1と5/2は本業の仕事をしていました。

もちろんそれ以外はバイトです!
5/3はバイト短め、5/4はバイト短め、5/5の今日は普段通りのバイト、5/6のGW最終日も普段通りのバイトです。

この4日間で25時間ぐらい働いています、1日平均6時間ぐらいですが実際にはこんな感じです。

  • 5/3:3時間
  • 5/4:3時間
  • 5/5:10時間(拘束は11時間)
  • 5/6:9時間(拘束は10時間)


お金の面で結局いくらぐらいになるかというと、1300 * 25 = 約3万2500円ほどです
こんだけ働いてもそんなもんなのかと嘆きつつ、この生活から脱出するために日々頑張るだけです!

ちなみに普段のバイトの日のスケジュールは・・・・

  • 朝7時前に起床、7時には出発
  • 8時過ぎにバイト先の最寄駅に到着し、すき家かなか卯で朝食を済ませる
    • ダブルワーカーにとって、継続して働くためには食事は重要なのです
  • 9時から20時まで働く、休憩はもちろん1時間
  • 21時半ぐらいに自宅に到着、疲れたので風呂に入る、風呂を出て晩飯(カップラーメンを食べる)
  • 22時半になり今これを書いている
  • 0時に過ぎには早めに寝て、翌日のバイトに備える…
    • ちゃんと寝ないと倒れちゃうんですよね、倒れたこと無いけど


ダブルワーカーにとって、食事をちゃんと食べること、睡眠をしっかり取るようにすること、これが継続して働き続けるための二大要素なのです!

昔はもっと激しい働き方をして、もっと稼いでいたのですが、その話はまた後日。

【Python】listのメソッド




Pythonの勉強メモです

append

list .append(hoge)
末尾にhogeを加える

>>> aaa = [0,1,2]
>>> aaa.append(100)
>>> aaa
[0, 1, 2, 100]
insert

list.insert(hoge,huga)
hogeの位置にhugaを加える

>>> aaa
[0, 1, 2, 100]
>>> aaa.insert(1,20)
>>> aaa
[0, 20, 1, 2, 100]
>>>
pop

list.pop(hoge)
hogeの位置にある値を抜いて戻り値にしてくれる

>>> aaa
[0, 20, 1, 2, 100]
>>> aaa.pop(3)
2
>>> aaa
[0, 20, 1, 100]
remove

list.remove(hoge)
hogeを削除する、戻り値にはしてくれない
hogeはリスト内にあるものを直接指定している、位置を指定しているわけではない
hogeが同じ値だった場合、若い順に削除される。

>>> aaa
[0, 20, 1, 100]
>>> aaa.remove(1)
>>> aaa
[0, 20, 100]
>>> aaa.remove(1)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: list.remove(x): x not in list
>>>
sort / reverse

list.sort()
list.reverse()

sortは昇順に並べ替えてくれる、reverseは何も考えずに真逆に並べ替えてくれるだけなので注意
sortは文字列が対象の場合は大文字・小文字の順に並べ替えてくれる
降順にしたい場合はsortで昇順にした後でreverseで逆並びにする

>>> aaa
[0, -1, 5]
>>> aaa.sort()
>>> aaa
[-1, 0, 5]

>>> aaa = [0,-1,5]
>>> aaa.reverse()
>>> aaa
[5, -1, 0]
>>>
おまけ:リストを空にするには

リストを空にするには[]をリストへ代入すれば良い

>>> aaa
[5, -1, 0]
>>> aaa = []
>>> aaa
[]



Dropbox PlusとOne Drive(有料版)を比較した話



こんにちは、ほうじ茶です。
現在Dropbox Plusを契約しているのですが、実際のところ1TBも容量を使わないこともあり、契約をこのまま続けようかどうか考えています。

オンラインストレージというといくつか種類があるのですが、使用用途や目的によっても随分変わってくるため、自分の目的をまず整理しておきます。

利用用途・目的・条件など

  • 個人で使う、会社・法人用途ではない
  • 複数人でのファイル共有は不要
  • 欲しい容量は100GBぐらいあれば十分
  • 主に写真をアップロードしたい
    • iOSを使っているのでアプリが出ていること必須
    • iOSアプリから簡単に写真がアップロードできること
  • アプリ起動時にパスコードをかけたい、TouchIDだと便利で良い
  • 値段は安い方が良い

まとめてみるとこんな感じです、写真やファイルのオンラインバックアップを取っておきたいという意図が一番強いです。
これは外付けHDDやNASなどを購入して利用するのもアリなのですが、故障時の不安なども考慮してオンラインストレージを検討しています。
※RAIDを組む等ももちろん検討済ですが、面倒なのと費用がかさみそうなので除外しています

オンラインストレージサービスの比較

個人用で有名どころはこんな感じでしょうか。

  • Amazon Drive
    • iOSアプリでパスコードなどによるロックがかけられないので除外
  • Dropbox
    • 現状使っている、便利だけど割高感がある
  • OneDrive
    • iOSアプリにパスコード設定可能、TouchIDも利用できる
  • iCloud
    • それ専用のアプリがない、したがってロックがかけられない
  • Google Drive
    • Googleフォトになるが、ファイルの取り扱いが特殊なので除外

結果的にOne DriveとDropboxを比較することとなりました、One DriveはOffice 365サービスになるので、そちらとの比較です。

Dropbox PlusとOne Driveの比較

  • 料金
    • Dropboxは1200円/月
    • One Driveは1274円/月
    • 恐らく税別・税込っぽいが、同価格と言えそう
  • 付帯サービス
    • Dropboxは特になし、デバイスデータの遠隔削除は魅力だけど使わなさそう
    • One DriveはそもそもOfficeが付いてくる

とこの時点で、One Driveの方が圧倒的に有利ですね。
個人的に気になっていたアプリ周り(パスロックコード、カメラアップロード)は両者同等の機能があるので問題ありません。

Office 365 SoloとBusiness

Office 365を申し込む際、家庭用かビジネス用か選べます。
実際のところビジネス用の方がちょっと安いし、インストール可能な端末台数も5台と十分です。
ただし注意点があり、One DriveがOne Drive for Businessになること。
通常のOne Driveと同じだろと考えていたら、細かな所で挙動や仕様が違うので、注意が必要です。
私が実際に最低限利用したいのは、iMacとiPad Proなので台数的にもSoloで十分です。


Businessの場合はお名前.comとか代理店経由で申し込むと安くなる場合があるようです。
www.onamae-server.com



最近Conoha for Windows Serverがリリースされたらしいのでちょっと調べてみた話

こんにちは、ほうじ茶です。
クラウドというと、一般的にはAWSのイメージが非常に強いですが、AWSは機能が非常に豊富な半面、分かりにくい箇所もあったり、料金が従量課金なのでヘマをすると想定外の費用が発生する可能性があります。

実際の所、費用面に関してはアラート設定ができたり、1年間は無償使用できるキャンペーンがあったりするのですが、1年経過した後のことやアラート設定してても大丈夫かなと心配になったりしました。

なぜConohaなのか

プログラムの勉強環境+色々触ってみる用途として、自分でサーバーを構築しました。その際にConoha含めて色々と検討したのですが、自分がConohaを選んだ理由としては以下の通りです。

  • 料金が安い(時間課金ができる、初期費用がかからない)
  • SSDであること
  • 管理画面が使いやすい
  • 最低利用期間がない
  • ヘルプが分かりやすい

これらを加味して、個人的な興味も含めた結果ConohaのVPSを選んで月額1000円未満で利用していました。

Windows Serverの場合はどうか

通常サーバー構築というとLinuxなイメージなのですが、Windows Serverだとどんなもんかなと思って調べてみました。

vps.sakura.ad.jp

  • さくらインターネットなので安心できる
  • でも初期費用がかかる
  • 時間課金ではない


vps.gmocloud.com

  • 利用料金はかなり安い
  • でも月額料金がかかる
  • 時間課金ではない

他にも提供事業者はたくさんあるのですが、HDDであったりスペック上比較が難しいので除外としました。

ここまでのまとめ

提供事業者は他にもたくさんあるのですが、利用を検討する際には以下を抑えておくと良いと思います。

  • 立ち上げっぱなしか、必要な時だけ起動させるのか
    • 必要な時だけ起動させる場合が断然お得
    • ただし時間課金に対応していないといけない
  • HDDかSSDか
    • SSDの方が断然良い
  • ヘルプページの充実っぷり
    • 困った時にあたふたしないために、事前にヘルプページを見ておきましょう
    • ヘルプページが充実していると、サポート体制にも安心感が持てます

個人的にConohaのここに感動した

学割が用意されている

こちらです
www.conoha.jp


私は学生ではないので利用できないのですが、お金のない学生向けに料金割引をする姿勢が個人的に好きです。企業である以上、さすがに学生には無償提供とかは出来ないので、ちょっとでも割引があると良いですよね。

データ転送量が無制限

たまにデータ転送量に応じて課金がある所もあるので、費用面で不安を払拭できるのは素直にありがたいですね。

サポートページが綺麗にまとまってて分かりやすい

VPSを使っていた時に感動したんですが、ページが綺麗にまとまっていて、例も記載されていてすごく分かりやすかったんですよね。困った時とか分からない時に読むものなので、人が見て分かりやすいものを提供できてるってポイントが高いです。

特に初めて触る人にはこのようにステップバイステップでのガイドが用意されているので、親切ですね。
www.conoha.jp


わりと迷いがちなWindows Serverへのリモートデスクトップ接続についても親切に図入りでちゃんと記載されています。
www.conoha.jp


ちょっと変わったコンテンツとしては、マンガでのVPS紹介などもあります。
www.conoha.jp


少しポイントは変わりますが、APIドキュメントについてはExampleとしてリクエストとレスポンスが載っているので、どう投げてどう返ってくるのかがとても分かりやすいのです。
ConoHa API Index / ConoHa API

まとめ

そんなわけで、用途によって選ぶ事業者が変わるのは当然なことなのですが、ちょっと使うとか実験的に試してみたいとかの利用にはConohaがとてもオススメです。
初期費用がかからない、ヘルプページが分かりやすい、時間課金でOKはやっぱ非常に魅力的ですね。


バナー経由で申し込むと、1週間無料で利用できるみたいなので、私もちょっと作業用として再びConohaを使ってみます。


昇進して4ヶ月が経過した話

こんにちは、ほうじ茶です。
私は今の会社に入ってまだ8ヶ月なんですが、今年の1月に昇進したので、その時のこと・それまでにやったことを書きたいと思います。

いつも読んでるフミコフミオさんのこの記事に触発されたわけですが、読んでてなるほどな〜って視点と、自分ならではの出来事もあったので、忘れない内にまとめておきたいと思います。
delete-all.hatenablog.com

今何をやっているのか

いわゆるIT企業でディレクター的な仕事をしています、ディレクターって業種や会社によってやることが違ったりするので、大きく書くと進行管理をしています。

前は何をやっていたのか

前職は業界ではちょっと有名なIT企業でディレクターっぽい仕事に加えて、セールス活動とか色んなことをやってました。

で、どうやったのか

端的に書くと、今までの社会人経験で得られた知見を出し惜しみすることなく開放し、やるべきことをやりました。

今の会社はITベンチャーという立ち位置なんですが、ITベンチャーと言っても様々で、進行管理のやり取りにお客さんとExcelでファイルを送り合っている状況だし、複数案件が同時に走るのにそれの管理も個別のExcelファイルだしで、IT化できていない中小企業感がありました。

Excelファイルの撤廃とPJ管理ツールの導入

実は開発部門ではPJ管理ツールを導入しており、それに乗っからせてもらうことにしました。
乗っかると言っても、ビジネス部門では不具合修正や開発への依頼の"ごく一部"をチケット作成して投げていたので、ほぼゼロベースでの導入です。

まずやったこととして、

  • 小さく始める
    • 自分含めて興味がありそうな少人数で始める
    • その中で型を決めてやってみて、型がダメそうだったら変えてみて、フィットするやり方を模索する
  • 実際に少人数でやってみて良かったので「良さそうだ」という話を会話の中に出していく
    • 周囲も「何かやってる・何か詳しくは分からないけど良いらしい」ということが分かります、そして広まります
  • 型が出来たら、関係者が全員集合するMTGで「これからこれやります」と周知をする
  • 型をちゃんとマニュアル化してドキュメントに落とし込み、社内に公開する

ざっくりこんなことを推進しました。

元々の話として、

  • Excelファイルで管理するのは面倒という風潮があった
  • でもGoogleスプレッドシートでやっても同じことだろうという空気もあった
    • お客さんへの送付はどうするの?とか → リンクを共有すりゃいいじゃんという話でもある
  • 結局どっちつかずで現状維持

という状態でした。

やらないことを決めた

PJ管理ツールの利用を推進・切り替えていく中で「お客さんへのスケジュール送付はどうするか?」という問いがありました。
結論から書くと、メール上のテキストに書き起こした連絡のみで済んでいます。

それまでは"この日までにこれをやって・この日からこれをやって"というガントチャートをExcelに引いてやり取りしていたんですが、スケジュールの変更がある度に書き直しが必要で、無駄な作業が発生していました。
でもメール上のやり取りであれば、サッと文章を書くだけで済みます。

こういったExcelファイルの送付をしないことにより、お客さんから「送って欲しい」とか「クレーム」が来たことはありません。
それはそれでちょっと寂しい気もしますが、言い替えると今までやらなくても良いことをサービスでやってて負荷だけ増えてたように思います。

どんどん発信をしていった

PJ管理ツールの推進とは少し違うのですが、社内wikiにどんどん発信をしていきました。
発信と言っても色々あるのですが、

  • ポエム的な内容も含む「自分はこう思っている」的なこと
  • 開発部門にもビジネスサイドの情報が伝わるように、訪問先の議事録まとめ
    • それまで議事録がまとまってすらいなかったのです
  • これまでの経験から、ここはこうした方が良いんじゃないか的なこと
  • Slackはフローであり、ストックではない
  • ストックに残すことを心がける
  • Slackでは前向きな発言を心がける

文章に残すと一方的な発信になるのですが、社内にいる人に向けて書いている節もあるので、表現や言葉選びは慎重におこないました。

自分もいい歳でおじさんなんですが、新しく入ってきた平社員がいきなり社内のルールを無視して好き勝手なこと言っても嫌ですよね。
そういうのを無視してこそのベンチャーだという意見もあると思いますが、そのようになっていった歴史を理解して、変えるべき所は変える、残すべき所は残すようにした方が良いと考えています。
しかし新入社員のメリットとして、歴史を無視して好き放題言えるという点もあるので、バランス感覚が非常に重要です。

自社ではSlackを利用しているのですが、Slackはフローなので「文章量が多いもの」とか「振り返って見たいもの」についてはストック型のサービスに残すようにしました。
ストック型のサービスで最大のメリットは、当たり前ですが後で読めることです。
例えばSlackで後で読もうと思っても忘れてしまい、そのまま流れていっちゃうこともありますが、ストック型だと「後で読む」がし易いんですね。

この「後で読める」が大事で、仕事が一段落した時に読んでもらえたり、あんまり会話・交流の無かった人達にも読んでもらえていたり、後日それについてコメントがもらえたりと良いことづくめでした。

自分の仕事以外のこともやった

ここは色んな考えがあるかと思いますが、自分が出来る仕事で自分の担当外の仕事もどんどんこなしていきました。
私は開発エンジニアではないので、そっち系の仕事はできませんが、ディレクション後の仕事にも積極的に関わり、今ではそっちの管理職を兼務で担当しています。
「自分の仕事以外のこともやる」と書くと雑になるのですが、自分が関わる仕事の最初から最後までをどんなフローで流れるのか把握し、ある程度は自分で分かるようにしておく、これが凄く大事。
完璧に理解できるとなお良いのでしょうが、そこまではしなくとも会話が出来るレベルで仕事の内容を抑えました。

社内の人と積極的に交流する

私が入社した後にも数人入ってきたのですが、なぜか自部署以外の人と積極的に交流しないんですよね。
積極的と言っても、飲みに行ったりとかじゃなくて、日常的に「最近どうっすか?」的に雑に会話することを指しています。
同じ社内の人なので、ある程度は共通の話題もあるし、声かけられて悪い気になる人っていないと思います。
むしろ入ったばかりなので、人によっては自分に興味を持ってくれていたり、教えたがりの人もいるかもしれませんしね。

まとめ

思い返すと、そんなに大きなことはやっていません。きっと誰にでも出来るし、やる気があるかどうかじゃなくて、やるかやらないかだけの違いだと思っています。

  • イケてない所は何故そうなのか歴史を理解し、改善策を考えてみる
  • 積極的に発信する、フローとストックを使い分ける
  • 自分の仕事だけに閉じこもらない
  • 自分から積極的に声をかける
  • やりたいことを全力(100%とは言ってない)でやる

単純にこれだけをやってきました、前職が結構ハードな所だったので「これぐらいちょろい」と思って余裕があったのもプラスに働いたのかもしれません。
ここんとこは首都圏でバリバリやってたエンジニアが地方で無双する感覚に近いものがありますね。


昇進するって運とか状況も大きく関わってくるんですが、自分の場合はやりたいことをやって、面倒なことは面倒だから変えていきましょうと推進して、平社員から課長になりました。

平社員だからやれない・出来ないってのは環境によっては勿論あることなのですが、そういったのを取っ払って「やりたいこと」をやってみるのも良いかもしれませんね。
あなたのやりたくないことは、他の誰かも口に出さないだけで、やりたくないと思っているかもしれません。