暇なバイトの時間を早く過ぎさせる

僕はこのゴールデンウィークある単純作業系のバイトをしてます。朝9時とかから始めて夕方5時とかに帰る生活をしているんですが、

 

時間が過ぎるのが遅すぎる!!!

 

まじで30分たっただろと思うと3分しか経ってないことが頻繁におきます。その苦行の中で少しでも体感時間を短くする方法を考えたので紹介します。

 

1、脳内で音楽を再生する

よく考えたら大抵の曲は4〜6分あります。てことはアルバム一つ分再生すればなんと40分も浮かせられます!単純作業系のバイトにとって40分が過ぎるのは至高の喜びです。脳内音楽にノッているだけでお金が入ってくると考えればこんなに素晴らしい時間はないですね。

2、帰りに何を買うか考える

やはり自分の時間を切り売りしている身としては帰りに何か楽しいことがないとやってられません。絶対に自分にご褒美を買いましょう。ご褒美といっても高いものだとお金が貯まらなくなってしまうので、「500円ぐらい」で「買う必要はないもの」がおすすめです。例えば駅によくあったりするちょっと高めのプリン・あんみつ・ゼリーとかはめっちゃいいです。何もない時に買うとお金を浪費してる罪悪感が湧いてしまいますが、バイトに耐えたからと思えばとても幸せに味わえます。

3、時計を隠す

僕のしてるバイトはパソコン作業なんですが、画面の端に時間が表示されてしまうという大問題があります。そのせいでことあるごとに時間を見てしまい、進まない時間に絶望してしまいます。なので物理的に時間は見れないようにしましょう!僕はウィンドウを時刻の上に持っていって見れないようにしたことで時間の経過スピードが2倍になりました(当社比)

pythonでアルファベットからなるリストを作る方法

昨日からCheckiOというプログラミングのpythonのゲームで遊んでいます。

先程「シーザー暗号を作れ」という問題が出ました。

 

シーザー暗号は単一換字式暗号の一種で、平文の各文字を、辞書順に3文字分シフトして暗号文を作る暗号である Wikipediaより 

 要はアルファベットの全文字を何文字かずつずらして作った暗号です。例えば3文字ずらすならa→d、b→eのようになります。

 

この問題を解くためにアルファベットのリストを作ろうとしたんですが、「"」と「,」を何十回も押すのがだるすぎたんで簡単に作る方法を調べました

 

結論から言うと組み込み関数のchrを使います

chr(整数):Unicodeコードポイントがその数である文字列を返す。

 

組み込み関数についてはこちらの記事も参考にしてください。

imasak.hatenablog.com

  • 大文字のアルファベットのリスト["A","B",..."Z"]

[chr(i) for i in range(65,91)]

  • 小文字のアルファベットのリスト["a","b",..."z"]

[chr(i) for i in range(97,123)]

 

ポイントは

  1. リスト内包表記を使うこと
  2. それぞれの文字にUnicodeコードポイントという数字があること(この数字は組み込みのord()関数を用いて知ることができる)

です。ちなみに大文字の方がコードポイントが若いので大文字と小文字の要素を持つリストにsort()関数を使うと1文字目が大文字のものの方が先に来ます。

 

 

理性の限界

 僕は大学に入学する前の春休みにこの本を読みました。

 

めちゃくちゃ面白いです!!

 

 どのぐらい面白いかというと、ハンターハンターのキメラアント編やワンピースのアラバスタ編を初めて読んだ時ぐらい興奮しました。難しい学問のめちゃくちゃ興味をひく部分だけを抽出した本です。

理性の限界――不可能性・不確定性・不完全性 (講談社現代新書)

理性の限界――不可能性・不確定性・不完全性 (講談社現代新書)

 

 

本の特徴

・「理性の限界」についてのシンポジウムが開催されたという設定で、様々な立場を持つ人たち(会社員、運動選手、数理経済学者、カント主義者、科学主義者などほんとうにいっぱい出てくる)の会話形式で話が進む

・それぞれの立場の人が自分の専門分野の話を延々と語り出そうとする→司会者が止めに入って話を戻す という流れが多く、一つの見方に深く入り込むことなくいろいろな考え方を知ることが出来る。(カント主義者とかは何の話でもカントに持って行き、他の人からたしなめられるので面白い)

・会話は実際に人が話しているのではなく筆者が全部書いているのだが、難しい学問の「説明」になっていないところがとてもいい。対話形式を採用し、体系だって説明する必要がなくなることでより読者の好奇心を刺激するところにフォーカスできていると思う。

 

面白いところ

 僕は個人的に2章の科学の限界が面白かったです。「科学の限界」は大雑把にいうとニュートンの物理学→アインシュタインの物理学→量子論 と科学が発展してきた話をして、最終的に「めちゃくちゃミクロの世界ではどんなに頑張っても『知ることができない』(不確定性)」という話に進んでいきます。

 

 ニュートンの物理学では「世界中の現象を同じ数式で表せる!!」というブレイクスルーが起こり、何百年もニュートンの力学がいわゆる「真理」だという時代が続きます。

しかし光は例外だと気づいたアインシュタインは宇宙のような大きすぎるもの、光のような速すぎるものでさえも扱えるさらに普遍的な物理学を築きます。

しかし原子より小さいようなミクロの世界ではアインシュタインの理論でさえも太刀打ちできず、どうやら小さすぎるものを計算することは「どんなことをしても絶対不可能」らしい・・・

 

という話で、読んでいてめちゃくちゃ興奮しました。「知ることを極めていった結果知れないことを知る」というのができすぎな展開で、まるで進撃の巨人のウォールマリアを奪還して伏線を回収しまくっている部分を読んでいるときのような身震いを覚えました。

 

まあここに書いた拙い文章では僕が味わった興奮の100分の1も表せていないんで、みなさんぜひ買って読んでください!

数式とか面倒な解説は一切出てこないんで、物理未修の文系の僕でもすらすら読めました。

 

ローカル開発環境とは何か?

 僕はここ3日ぐらいこの本でpythonを使ったクローリングとスクレイピングの勉強をしています。

 

クローリング =Webページのハイパーリンクをたどって次々にWebページをダウンロードする作業。

スクレイピング=ダウンロードしたWebページから必要な情報を抜き出す作業。

 

この本の付録に「Vagrantによる開発環境の構築」という章があるのですが、僕は今まで「インストールは全て本の指示通りにAnaconda、コードを書くのは全部Jupyter Notebook上」というとても楽なやり方をしていたので全然わかりませんでした。

 

そこで開発環境とは何で、何のためにあるのかを調べたのでここにまとめておきます。

間違いがあったらご指摘お願いします。

 

1、ローカル開発環境とは何のために作るのか?

・自分のアプリケーションやホームページなどの作品(この本の場合はクローラ)を手元のパソコンから24時間インターネットにつなげるのは難しい。

・そのため常にインターネットに接続してあるサーバーを借りる必要がある。

・しかしレンタルサーバーはLinuxというOSを使っていることが多く自分のパソコンのWindowsOS Xで作ったものをそのまま移すと機能しない可能性がある。

・そのため自分のパソコンの中にLinuxというOSを使うローカルな開発環境を作る必要がある。

*開発環境とは何かを開発するために自分のパソコンの中で作った環境、本番環境とは実際に渡すサーバーが使っている環境のことを指す。

 

2、ローカル開発環境はどういう時に必要か。

ローカル開発環境を作る必要があるのは主にWebサービスを作る時です。そのためPHPRubyでWeb開発を勉強する人は知っている必要があります。またSQLなどでデータベースを扱う際もローカルな環境は必要になります。

 

 

3、ローカル開発環境を勉強しているとよく出てくる言葉の意味

  • Virtual box

オラクルが無料で提供している、仮想環境を構築するためのソフトウェア。

Virtual boxなどで作った開発環境を簡単なコマンドで扱えるようにするためのツール。

  • Cent OS

Linuxの一種。サーバーを構築する時に使われることが多い。