SSHでサーバに繋いで"perl: warning: Setting locale failed."が出てきたときの対処法

背景

普段macを使用していますが,先日WindowsBash on Ubuntu on Windowsからサーバにsshすることがありました.
その際,以下のような警告が出てきたので対処法を書きます.

perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
        LANGUAGE = (unset),
        LC_ALL = (unset),
        LANG = "C.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").

原因

ローカル(Windows)のlocale情報がSSHで送られていた.

SSHにはSendEnvという環境変数を接続先サーバに送信する機能があります.
また,SSHには接続先別の設定を記述する~/.ssh/configと,デフォルト(共通)の設定を記述する/etc/ssh/ssh_configがあります.
今回locale情報が送られてしまったのは後者の設定ファイルにSendEnv LANG LC_*が設定されていた為です.

解決法

/etc/ssh/ssh_configを管理者権限で開き,SendEnv LANG LC_*の部分をコメントアウトすれば解決します.

-    SendEnv LANG LC_*
+#   SendEnv LANG LC_*

位相空間論 #1 - 開集合と閉集合

位相空間論(general topology)について自分が理解してる範囲でまとめます.誤りを見つけた際は,コメントかDMで教えて頂けると嬉しいです.
今回は開集合と閉集合の公理について書きます.

位相空間

数学における位相空間論(いそうくうかんろん、英: general topology; 一般位相幾何学)または点集合トポロジー(てんしゅうごうトポロジー、point-set topology; 点集合論的位相幾何)は、位相空間の性質やその上に定義される構造を研究対象とする位相幾何学の一分野である。 - Wikipedia

位相空間は,集合に対して「位相(トポロジー)」という構造を導入したものです.
位相とは便利なもので,これにより,点の近傍や点列の収束,写像の連続性,今回書く開集合や閉集合の概念を定義することができます.

定義

開集合を定義する前に,まず内点というものを定義します.
ここでは外点や境界点に関しての説明は行いません.

内点

点集合 \boldsymbol{S}に属する一つの点pに十分近い点がすべて \boldsymbol{S}に属するとき,pを \boldsymbol{S}内点という.

一言で言うと,点 pにとても近い点はSに属するというものです.
数式で述べると次のようになります.

部分集合 {\boldsymbol{S} \subset \mathbb{R}^m}と点 {p \in \boldsymbol{S}}を考える.  {\exists \epsilon \in \mathbb{R} \gt 0 \ \left\{ x \in \mathbb{R}^m | d(x, p) \lt \epsilon \right\} \subseteq \boldsymbol{S}} ならば p \boldsymbol{S}の内点である.( d \mathbb{R}^mの距離関数)

例えば {a \lt b \lt c}となるような実数{ a,b,c \in \mathbb{R}}に対して,閉区間 { \left[ a, c \right] }を考えると, bは内点になります.これは,開区間 { (a, c) }を考えると, { b \in (a, c) \subset  \left[ a, c \right] }となるためです.

開集合

集合 \boldsymbol{S}の各点が内点であるとき, \boldsymbol{S}開集合という.

開集合は境界を含みません.
開集合の例として次のようなものがあります.

閉集合

閉集合は開集合の補集合である.

ここで,注意しなければならないことは,開集合でも閉集合でもない集合があるということです.
詳細は省きますが,例えば半開区間は開集合にも閉集合にも属しません.

閉集合は境界を含みます.
閉集合の例として次のようなものがあります.

開集合の公理

  1. 空集合 \phiと全体集合 \mathbb{R}は開集合である
  2. 開集合に属する集合の任意の和集合は開集合である
  3. 開集合に属する集合の有限個の共通部分集合は開集合である*1

閉集合の公理*2

  1. 空集合 \phiと全体集合 \mathbb{R}閉集合である
  2. 閉集合に属する集合の有限個の和集合は閉集合である
  3. 閉集合に属する集合の任意個の共通部分集合は閉集合である

さいごに

今回は,開集合と閉集合について書きました.
英語ではそれぞれ,open setとclosed setといいます.そのままですね.

次に書く記事の内容はまだ決めていません.(というか元々位相のお話する予定なかったので全然まとめてませんでした)

とかとか分かりづらい...

参考書籍

定本 解析概論

定本 解析概論

*1:有限個ではない場合,共通部分集合が開集合に属すとは限りません.例えば,次の共通部分集合 {\bigcap_{x=1}^{\infty}{(-\frac{1}{x}, \frac{1}{x})}}を考えると,0のみを含む一元集合となってしまいますが,一元集合は開集合ではありません.

*2:閉集合は開集合の補集合であるため,ド・モルガンの法則によって開集合の公理から導出できます.

2018-kosen13s-adventcalendar-#23

こんにちは,NotFoundsです.

遅ればせながら,あけましておめでとうございます.
昨年度,Kosen13s Advent Calendarを書くと言って,まだ書いてなかったのでそろそろ書きます.(罪悪感が湧いてきたので)

何書くか決めずに記事を書き始めたのですが,大学に編入してから1年弱たったので振り返ってみます.

春ABC

筑波大学では一年間を春・秋と2つに分け,さらにそれぞれをA・B・Cと5週ずつの3つに分け(春|秋)(A|B|C)モジュールと呼びます.
ここでは,春ABCつまり4月から8月までを振り返りたいと思います.

と言っても特に面白いことはなく,入学したら単位変換して,サークル見学行って,普通に講義受けて,たまに自転車で出かけるみたいなことをしていたら終わりました.

詳しくはこの辺に書いてあります.

notfounds.hatenablog.com

あ,春Cにアウトプットをするという目標を立てました.(アウトプット以外の活動も含まれているけど)
結果は,達成率6割程度でした.
内訳として,本を読んだり,課題をするといったことが殆どで,草🌱生やしたりブログ書いたりはできませんでした.
本を読むようになったのは良かったなと思います.

夏期休業

8月の中旬から9月末までは夏季休業です.
前半は帰省し,久しぶりの地元でのんびり過ごして,後半の9月は2週間ずつインターンに行かせていただきました.
また,帰省・インターン中に育てていたミントが枯れてしまいました.😭😭😭

notfounds.hatenablog.com

インターンでは,扱ったことない技術や普段見ることができないシステムの裏側を見ることができ,新鮮で非常に良い経験となりました.

秋AB

時系列に箇条書します(めんどくさくなった

・バレーの合宿 楽しかった,膝痛めた ・雙峰祭(学祭) お酒飲んだ,レポート ・配属 ・課題,レポート,課題,レポート ・就活 ・テスト ・就活 ・帰省

ざっとこんな感じでした.

現在

秋Cモジュールです.授業は週に3日7コマしかありません.
あと,希望の研究室(自然言語処理)に配属が決まり,来週からゼミ(?)っぽい活動が始まります.楽しみ😃

秋ABのところにチラッと書いていますが,現在就活をしています.
もともと,大学に進学を決めたとき,入学時点では院進することしか考えていなかったのですが,周りの友人や先輩の影響であったり,インターンシップ,自分のやりたいこと等を考えたときに「自分は研究するより,社会に出てコード書いている方が幸せなのかもしれない」と考え,就職も視野に入れています.(院進を完全に辞めたわけではないです.2019/1/10現在)

まだ,もう少しだけ時間があるので,研究室のゼミに参加したり就活を進めたりしながら,就職するか進学するかじっくり考えてみたいと思います.

さいごに

だらだらと薄っぺらい記事を書きましたが,現在の部分を書きたかっただけです.

P.S. 最近数学したい欲があり,現在は集合.測度をしています.そのうち,代数とか整数論したいです.

Summer Job @ Drecom

こんにちは,株式会社ドリコムで9/3〜9/14まで10日間Summer Job(インターン)に参加させていただきました!

f:id:notfounds8080:20180918223047j:plain

どんな会社?

主に次の2つの事業を展開しているIT企業です.

  • ソーシャルゲーム事業
  • 広告メディアサービス事業(広告代理業務、新規メディア開発)

参加するまで

paizaさん経由で連絡が来て,調べてみるとDrecomのプロジェクトでElixir/Phoenixを使っているものがあり,興味が湧いたのでカジュアル面談に行きました. 面談では,事業内容についての説明を受け,自分がしてきたことと,興味がある分野等について話したと思います.

面談後,面接を経て参加が決まりました.

やったこと

具体的なことは言えない🤐のですが,あるプロジェクトのサーバーサイドをRailsで書かせていただきました. 既存機能の拡張についてプランナーさんから仕様を聞き,設計・実装を行いました.

大規模なプロジェクトに触れるのは初めて,かつほとんど経験のないフレームワークだったので戸惑いましたが,設計やコードが洗練されていて,構造の把握がしやすかったです.(自分が汚してしまい申し訳無さが... 🙇🏻🙇🏻🙇🏻

また,自分の設計やコードに対してたくさんのレビューをいただき,もっと精進しないとなと感じました.

毎日,終業時刻前に30分程度メンターの方とミーティングがあり,作業で躓いているところについてや,業務以外のお話する時間がありました.
小さい疑問にも丁寧に答えてくださり,その場で解決することで,その日詰まった作業を次の日に持ち越さないようにすることができ,非常に良かったです.

環境

勝手なイメージで,パーティションで区切られたデスクで黙々と作業をしていようなのを想像していました.
しかし,実際のオフィスは(物理的にも)風通しがよい環境でした.
パーティションのようなものは一切なく,自由に席を移動でき,たまに冗談が飛び交うような環境で働きやすかったです.

設備

社内にアメニティールームや休憩室があり,働きながらリフレッシュしたり休む場所が提供されていました.
また,今回ほとんど利用することはなかったのですが,本社ビルにはカフェがあります. カフェではバリスタさんがコーヒーを淹れてくださり,僕はコーヒーが苦手なのですが飲みやすくて美味しかったです👍

勉強会

2週間の間に2つの社内勉強会が開催され,どちらにも参加させていただきました. 特に大きな規模の会社になると,複数のプロジェクトがありたくさんの知見が溜まっていくのでアウトプットの場があるのはいいなと思いました.
また,今回の勉強会では技術系イベントのレポート等もあり,自分も参加してみたいなと思いました.

お昼

ほぼ毎日社員の方々とランチがセッティングされていて,会社近くのお店で美味しい食事をいただきました. スーパーエンジニアの方々と技術的な相談や注目している技術についての話ができてよかったです. また,社長とランチをする機会を設けていただき,とても緊張しましたがビジネスについてのお話や考え方を聞くことができ大変勉強になりました.

色々なお話を聞かせていただく中で,再認識したのですが,自分がAcademicな環境にいるうちは,実務とは直接関係ないこと(興味があること)や基礎となる学問,また,新しいことについて学習するの方法(?)を身につけるが大切だと実感しました.

まとめ・感想

今まで,小規模なチーム開発は経験したことがありましたが,企業のプロジェクトのような大規模な開発は未経験でした. プロジェクトの運営やユーザーの調査,DB設計やAPI設計等学ぶことが多かったです.

良い設計・良いコーディングはできませんでしたが,レビューをいただき,それなりにまとまった設計とコードになりました. また,レビューする際にどこを見ればよいか?というようなことに関して知見を得ることができ良かったです.

数十人規模のアジャイル開発の進め方は勉強になりました.
ただ,工数見積もりが難しく,思うように作業が進まず予定していた期限がズレてしまいました.工数見積もりに関しては未だいい方法がわかりません.

2週間あっという間でしたが,たくさんの学びがあり楽しかったです.
短期間のインターンで企業のいろいろな側面を見るには時間が足りませんでしたが,貴重な体験ができたと思います.
今回学んだことを,今後の開発に生かしていけたらなと思います.

おまけ

社内のイベントプラットフォームが社内gitホスティングサービスに公開されており,小さな機能追加のPR(Pull Request)を送らせていただきました.
なんとなく足跡残したいという思いがあり,軽い気持ちでPRを送ったら,最終日前日に嵐のようにレビューが来ました😇
マージされたら嬉しいです.最終日に無事マージされ,Deployされました🤗🎉

謝辞

今回,インターンに参加するにあたり,受け入れてくださったチームの皆様と面談・日程調整,様々なサポートをしていただいた人事の方に感謝します.
本当にありがとうございました.あと,ランチごちそうさまでした!

他の企業についてほとんど知らないのですが,この会社が良すぎたので離れたくないです(小声)

git challengeに参加しました!

こんにちは,NotFoundsです.

先週の土曜日,mixi社が毎年開催しているgit challengeというイベントに参加してきました.

f:id:notfounds8080:20180910231413j:plain

git challengeとは, gitでやらかしちゃった😜.何もしてないのにgit動かなくなった😇といった状況のリポジトリが与えられるので,すーぱーはっかーのあなたが解決してね🤗みたいなイベントです.((適当

また,本イベントの大きな特徴として,

  • 同様のイベントが他にない
  • おひとりさま一回限り
  • 学生のみ

といったものが挙げられます. 非常に人気のイベントで,毎年応募者数が多く抽選で落ちてしまうことも多いみたいです.

このイベントのことは以前から知っていたのですが,なにせ昨年までド田舎の鹿児島に住んでいたため,このようなイベントに参加したことはありませんでした.悲しい😭

今回,「せっかくのイベントだし,gitってインストールの仕方くらいなら知ってるし,それにどうせ抽選落ちるやろ〜」みたいなノリで応募したのですが,受かってしまいました🎉

イベントの流れ

起床チャレンジ

前日飲み会だったので朝起きれるか心配でしたが無事チャレンジ成功しました💪

会場まで

千代田線で表参道駅まで行き,青学の隣を歩いて会場まで向かいました. ((キラキラ✨したオーラが漂っていてまぶしかったです.

予定より20分ほど早く会場につき,エントランス前で待っていたら他の参加者さんが話しかけてくれました.
やっぱり大学生はコミュ力高いなぁと思いました.

午前

git challengeに参加する際の注意点やgit challengeのチュートリアルが行われました.
また,社員の方2名のLTがあり,社内のgitの運用等についてお話を聞きました.

お昼ご飯

毎回テーマが決まっており,それに合わせて内容が決まるみたいです.

だったらしく,今回のテーマは「」でした.

「和」に関する複数のお弁当が用意されており,僕は焼肉弁当をいただきました. f:id:notfounds8080:20180910231617j:plain

また,お昼を食べている間,サポートの社員のお話を聞くことができました.((後に作問者だったと知りました

イベント開始

13:30開始予定でしたが,少し早い13:20分より競技が始まりました.

競技

🤐

おやつタイム

競技中におやつタイムがあったみたいです.こちらもまた,「和」をテーマとしたお菓子が出されていたようですが,競技に夢中で食べるのを忘れていました😭

結果・解説

チームで8完でした.
前半はペースよく解け,ワンチャンあるか?と思ったのですが,後半になるにつれ難易度が高く,解けませんでした. あとから解説を聞いたら方針はあっていたようですが,まだまだって感じでした...

懇親会

競技も終わり,入賞者を称えたあとは,楽しくお食事です.
夜はガッツリ洋食でした(「和」ということで🍶に🍣だと期待していたのは内緒)
僕は辛いのが苦手なので食べていないのですが,カレーが非常に辛いと評判でした.

また,最近のマイブームなのですが,自分の進路の悩みを社員さんにひたすら相談するっていうのをしているので,この機会にたくさんお話させていただきました.

まとめ

力不足により入賞できませんでしたが,一緒のチームだった方ありがとうございました.
また,このようなイベントを開催してくださったmixi社の方々ありがとうございました!

git はいいぞ〜

おまけ

戦利品です.ありがとうございました! ((個人的にSplatoonっぽいOctocat気に入っています f:id:notfounds8080:20180910231441j:plain

ミント栽培日記 N日目

どうもNotFoundsです.

栽植

5月にふと思い立ってペパーミントを育て始めました.

異変

その約1週間後,ミントの様子がおかしくなり,二週間後には次のようになりました.
f:id:notfounds8080:20180731120755j:plainf:id:notfounds8080:20180731120758j:plain

葉っぱの色が悪くなり,養分が抜かれたような感じになりました.
調べたところ,「葉ダニ」という虫が付いていたようです.😱

対策

葉ダニはベランダのような環境(気温が高く乾燥したところ)を好むそうで,逆に水を嫌うようです.早速,霧吹きを買ってきて葉っぱに水をかけてみました.


数日続けてもあまり効果は表れませんでした.
(写真は撮り忘れました.)

萎凋

サークルや課題に追われていた頃,水やりを忘れてしまい8割の葉が枯れてしまいました.
それから水やりを続けた結果少しずつ回復し,先日新しく芽が出てきました.
生命力強い💪
f:id:notfounds8080:20180731122523j:plain

誕生

ミントの根の近くに草っぽいものが生えてたので抜こうと思い,葉に触れたらミントの香りがしました.
(画像は数日後に撮ったやつです.) f:id:notfounds8080:20180731122737j:plain

収穫

せっかくなので,新芽を摘んでお酒に入れてみました.
清涼感が増し,さわやかな感じになりました.🤗
f:id:notfounds8080:20180731123419j:plain