Git_cheat_sheet

個人的基本 ローカルで新しいブランチ作成 git branch <new branch> ブランチ一覧を見る git branch ブランチ移動 git checkout <branch name> ローカルのブランチ削除 git branch -d <branch name> ローカルのブランチをリモートブランチにpush git push origin <branch name> originは省略できませんねー。お願いします。これでgithubに新しくブランチができます。 ちなみに、originはブランチ名ではなく、リポジトリ名です。つまり、githubのリポジトリをoriginで指定しています。 ファイルの差分を確認 git diff <filename> 作業していると、どのような変更を加えたか忘れてしまうこと多いと思うんですけど、これがあると、最後のコミットからどのような変更が加えられたのかが 一瞬でわかります。 個人的中級 ## リポジトリの特定のブランチをクローン git clone -b <branch_name> <repository_url> issue branchをmainにマージ まずmain branchに移動。その後、merge git checkout main git merge issue コンフリクトが起こったらその個所を直してコミット!! 個人的上級 プルリクの送り方 前提として、何かしらのossを開発しているものとしましょう。まず、プルリクエストっていう概念は、gitではなく、github上のものなので、ローカルではできませんね。じゃあどうやるか?それを今から説明していくぜ。 まず、github上でforkします。forkしたものをローカルにcloneします。cloneしたものに変更を加えます。そして、githubにプッシュします。で、github上でフォークされたリポジトリから、コピー元となったリポジトリ (これをベースブランチと呼ぶらしいです)にプルリクエストを送るわけですね。 変更メッセージを指定して、レビュアーを指定して、Create pull requestをクリックすればプルリクエストの作成が完了するんですね。そうすると、プル陸タブにプル陸が表示されるようになるんだよね。 れびゅあーに指定できるのは、リポジトリのコラボれーた (共同編集者) となっているアカウント。 ちなみに、企業でいわれているコードレビューっていうのはこのプルリクエストを送る作業のことなんだと思います。 だから、去年のインターンの面接で「コードレビューをしてもらったことはありますか?」って聞かれたときにはい、あります、先生に見てもらってここをこうした方がいいとか、そういうアドバイスをもらいました、って言った俺は、意味が分かっていなかったわけですね。 mergeには3種類ある create a merge commit :もっとも一般的 squash and merge rebase and merge : ブランチを一直線にする 特定のブランチorタグをcloneする git clone リポジトリ名 -b ブランチorタグ名 いちばんやさしいgit&Githubの教本を読んで新しく学んだこと forkはgithub上でリポジトリをコピーすること。 ...

August 29, 2023 · 1 min · 130 words · Me

Credit

修了要件について 共通基礎科目4単位以上、専門科目16単位以上、習得した単位数が合計で30以上、が修了の要件。 共通基盤科目は4単位取りました。情報法律制度論、人文情報科学概論の二つで。 専門科目は 計算機構論、知能集積システム学、アルゴリズム論、高信頼システム、離散数学、IFT,情報基礎科学ゼミナール、ビッグデータスキルアップ演習、データ化学トレーニングキャンプ1,2、以上、18単位をここまで取っています。この時点で専門16単位もクリアしています。 修論も専門科目に含まれていて残り9単位が降ってくるので、 共通基礎科目4 + 専門科目18 + 修論9(専門科目) = 31単位で修論。 保険で「サイバー攻撃とその対策実践入門」を最後に取りたいとおもいます。こちらは夏休みに実施される集中講義で1単位を取得可能です。履修登録を忘れないようにお願いします。

August 24, 2023 · 1 min · 14 words · Me

How_to_proxy

Squidについて Squidはプロキシやリバースプロキシの機能を提供するソフトウェアです。 プロキシを置く理由 主に、サービスの利用者向けのソフトウェアですね。 リバースプロキシを置く理由 リバースプロキシサーバーをバックエンドサーバーの前段に置く理由は、主に以下の5つです。 キャッシュサーバーとして利用 レスポンスを圧縮 (レスポンスの転送を高速化) SSL ターミネーション (暗号化や復号化の処理をリバースプロキシにオフロード) セキュリティの向上 (リバースプロキシでフィルタリング、バックエンドサーバーを隠蔽) 拡張性 (クライアントはリバースプロキシと通信するので、バックエンドサーバーを変更可能) こっちは主に、サービスの提供者側向けのソフトですね。 僕がやりたいこと 全部の通信が、Torみたいに、複数のサーバを介して行われる感じにしたいんですよね。んで、最終目的地はデータベースです。ユーてこれって、openvpnとかでじっそうできるのかな?いやできないか。 ネットワークの通信、頑張って自分で作れたりするのかな。いけそうな気もするな。

August 13, 2023 · 1 min · 20 words · Me

openvpn client in a docker container

やりたいこと webアプリケーションを家のサーバで動かすとなるとセキュリティーの観点からして怖いじゃないですか。やっぱり自宅のipさらしたくないじゃないですか。 だからAWSなどのVPSを借りてそのうえでアプリを動かすんだと思います。 ただね、VPSでは二次記憶で使えるデータ量が決まっているんですね。しかもそのデータ量が結構限られています。例えば僕が契約しているサーバは二次記憶の容量が30GBです。つまり、大規模なデータベースを展開するには、大幅な課金が必要になるわけです。しかもさ、データベースを移植するのって結構面倒だからさ、一回構築したやつを長く使いたいんです。だからね、データベースだけは自宅においておき、アプリケーションが自宅のDBにデータをとりにきたり、おきに来たりすればいいのでは?と今思っているわけです。DBクライアントがデータを取ってくる時の通信量も考えるとどっちが安いかはまだわからないんですけどね。 じゃあ、自宅のルータをポート開放して、ポートフォワードすればいいんじゃねーの?って思うよね。でもね、データベース用のポートを開放しておくのもなんか怖いんですよ。ブルートフォースとか受けて、破られることもあるわけじゃないですか。ということで、vpnを介して自宅のネットワークにアクセスできるようにしておけばいいのではないか?というのが僕の考えです。 vpnクライアントのインストール sudo apt update sudo apt install openvpn vpnクライアント、設定ファイルのインポート config.ovpnをサーバに配置 sudo openvpn --config /path/to/my/ovpn/file パスワードを入力してトンネル完了 openvpnを介して自宅のmysqlサーバに接続 mysql -u ray -h 192.168.3.10 -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 473 Server version: 8.0.33-0ubuntu0.20.04.2 (Ubuntu) Copyright (c) 2000, 2023, Oracle and/or its affiliates. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> いけてしまっている…これはマジで感動!!ネットワークはやはり面白い。仕組みとかはもっと勉強しないといけませんが。 いやー--、実際これはすごいです。マジですごいですわ!!感動ですわ。 ...

August 13, 2023 · 1 min · 157 words · Me

openvpn client in a docker container

やりたいこと webアプリケーションを家のサーバで動かすとなるとセキュリティーの観点からして怖いじゃないですか。やっぱり自宅のipさらしたくないじゃないですか。 だからAWSなどのVPSを借りてそのうえでアプリを動かすんだと思います。 ただね、VPSでは二次記憶で使えるデータ量が決まっているんですね。しかもそのデータ量が結構限られています。例えば僕が契約しているサーバは二次記憶の容量が30GBです。つまり、大規模なデータベースを展開するには、大幅な課金が必要になるわけです。しかもさ、データベースを移植するのって結構面倒だからさ、一回構築したやつを長く使いたいんです。だからね、データベースだけは自宅においておき、アプリケーションが自宅のDBにデータをとりにきたり、おきに来たりすればいいのでは?と今思っているわけです。DBクライアントがデータを取ってくる時の通信量も考えるとどっちが安いかはまだわからないんですけどね。 じゃあ、自宅のルータをポート開放して、ポートフォワードすればいいんじゃねーの?って思うよね。でもね、データベース用のポートを開放しておくのもなんか怖いんですよ。ブルートフォースとか受けて、破られることもあるわけじゃないですか。ということで、vpnを介して自宅のネットワークにアクセスできるようにしておけばいいのではないか?というのが僕の考えです。 vpnクライアントのインストール sudo apt update sudo apt install openvpn vpnクライアント、設定ファイルのインポート config.ovpnをサーバに配置 sudo openvpn --config /path/to/my/ovpn/file パスワードを入力してトンネル完了 openvpnを介して自宅のmysqlサーバに接続 mysql -u ray -h 192.168.3.10 -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 473 Server version: 8.0.33-0ubuntu0.20.04.2 (Ubuntu) Copyright (c) 2000, 2023, Oracle and/or its affiliates. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> いけてしまっている…これはマジで感動!!ネットワークはやはり面白い。仕組みとかはもっと勉強しないといけませんが。 いやー--、実際これはすごいです。マジですごいですわ!!感動ですわ。 ...

August 13, 2023 · 1 min · 171 words · Me

Disown_nohup_screen_tmux

バックグラウンド実行のあれこれについて ジョブをバックグラウンドで実行する方法は、実行したいジョブ、もしくはコマンドの最後に&をつける。 ./job.sh& みたいな感じで。しかしこれだとsshセッションが切れるとバックグラウンドで走っていたジョブも死んでしまう。 なぜか? まずは親子関係について説明しよう。bashの親はsshdで、ジョブはbashの子供として生成される。そして、通常は、「親が死んだらinit (systemd)が親になってくれる」しかし、sshの場合はsshのセッションが切れるとkernelからbashにSIGHUPが送られる。さらに、bashが各プロセスにSIGHUPを送る。 バックグラウンドで走っているジョブを殺すSIGHUPシグナルを無視するためのコマンドがnohupである。これを使うことでプロセスはSIGHUPを無視するようになる。これは、disown -hでも同じである。先に実行するか後で実行するかの違い。 tmux/screen tmuxとかscreenを使おうという話です。screenの話をします。 screenコマンドについて セッションの保存方法 # creationg new session screen # detach the session <ctrl> + <a> d # creating new session with a name screen -S <name> # list the sessions and check the status screen -ls 実験 screenで新しいセッションを作ってその中でsingularityを動かす。 ps axfの結果は以下の通り。 28987 ? S 0:00 sshd: foo@pts/1 28988 pts/1 Ss 0:00 \_ -bash 29057 pts/1 S+ 0:00 \_ screen -S singularity 29058 ? Ss 0:00 \_ SCREEN -S singularity 29059 pts/2 Ss 0:00 \_ /bin/bash 29104 pts/2 Sl 0:00 \_ Singularity runtime parent 29125 pts/2 S+ 0:00 \_ /bin/bash --norc 意図的にbashを切る。 ps xfでログインユーザに関係するプロセスを一覧表示すると一見死んだかに思える。しかし、 ...

July 24, 2023 · 1 min · 202 words · Me

Win5_20230709

win5予想 中京10R ダート1800m 2勝クラス 牝馬限定戦であることに注意してください。 初ダート 昇級戦 コース特徴 ダートは直線は410と結構ながく、最後に結構きつい上り坂があります。2メートルくらい登ります。 ちなみに、東京競馬場が直線510です。 天気 ちまみに昨日も全く雨降ってません。つまり、 良馬場で開催できそうですね。これは前が残ります。 ジャルジェ 坂井が乗るので先行はしそうですね。ただ、今回は、リースタイルってやつもどうやら先行馬なんですよ。そいつが先に行きそう。わからんね。ワンちゃんあるってくらい。 最初出ていって、自分のペースにできれば全然ある。これあるな。 – ハンベルジャイト 頭はない。1800m出し、ちょっと長い気もする。しかも、めちゃめちゃ体重を下げてきているのもなんか、気がかり。でも53キロは強いね。まだまだ成長の余地はあるし。ただ、馬体重を下げてきているのが気がかりなんですよん!!そして勝ち上がりの相手は、1勝クラスを頑張っているやつと。うーん、やっぱりデビューのときより馬体重を下げているのはちょっとないかなー。 サウザンドスマイル: 問答無用で切り。申し訳ない。 – トレデマンド: けんちゃんだから、まあ鞍上はいいのですが、馬がそんなにつよくないとおもう。確かに、1勝クラスでは中京でいい成績を出して入るんですが、透過買ったレースって全部中京なんですけど、いかんせん相手が弱い。申し訳ないが、相手がマジで弱い。話にならんくらい。てことで、中京得意だから、っていう理由には、その時の相手がただ雑魚かったからっていう話にしたいと思う。 アレマーナ: ローテーションが勝ちパターンだね。前回はたたきで、今回狙ってきている。調教も騎手が騎乗。馬体重も順調に上げてきている。今回馬体重が下がっていればワンちゃんあるので、入れておいてほしいかもです。馬体重下げてきてますねー。あります。入れておくの、ありです。いや、普通に考えたらないのよ。やっぱ入れねーわ。 – マヤローザ: 問答無用で切り。さいなら。 ノボリクレバー: 勝ち上がったときの相手、スカンジナビアは1勝クラスで馬券内を恒常的に撮っている。つまり、たまたま勝ち上がってきたやるではない。強さは保証できるのではないか。しかし、タイム指数がね。。。いや、強いんだけどね。 前回は3ヶ月ぶりでたたきでも アコークロー: 距離短縮でどうかってところだね。 わからない。1800の適正がわからない。 勝ち上がりの相手は万年1勝クラスって感じだけれども。 でも調教がだめですね。未勝利相手に一杯で追って先着許しているようではだめです。今回はきりです。特に目立った点もないです。 – グレナデンシロップ: ここで馬体重めっちゃ下げてきたらワンちゃんあるかもってくらい。基本的には大喜利でいい。 ファジェス: きりでお願いします。 リースタル: きりでお願いします。 フォレストキャット 調教がいいですねー。3勝クラスの相手にいい感じでせっています。 これはあるなって感じです。追い込みですが、ワンちゃんです。 タイセイヴィーナス 5ヶ月の休養明けです。馬体重がしっかり戻ってきたみたいです。 ちょっと、体調が戻ってきているみたいで、少し怖いですね。が、調教がだめですね。きりでいいでしょう。 決定馬 1,7,12 結果 12 > 7 > 3 福島10R ダート1700m 2勝クラス 初ダート 昇級戦 ハッスルダンク コース特徴 直線は295m。どうだろう、 休養明け コンソレーション:2年ぶり サンキューレター:1年半ぶり オブで湯モンド:4ヶ月 イサ散るプリンス:3ヶ月 ...

July 9, 2023 · 2 min · 329 words · Me

Linux_thing

個人的、Linuxを触ってて面白かったとか、納得の行ったことをここにメモっておきたい。 disown -hについて sshでつないで、bashでプログラムを実行するとき、そのプログラムはbashの子プロセスとして実行されるのよね。 そもそもbashはsshdの子プロセスとして実行されるのだけれども。 でね、bashの子プロセスとして実行されるわけだから、bashを閉じるとその子プロセスであるプログラムも死ぬんだよね。 でも、bashを抜けても死なないでほしいプログラムってあるわけじゃないですか。それを実現する方法が プロセスを ctrl + zで一旦停止、bgでバックグラウンド実行。そして、disown -h なわけですね。 で、そうするとそのプロセスの親は誰になるか?って不思議に思いますよね。 1058 ? Ss 0:00 1 1080 13483 1836 0.0 /lib/systemd/systemd --user 1059 ? S 0:00 0 0 35244 1184 0.0 \_ (sd-pam) 2345 ? S 0:00 18 0 7408 2860 0.0 sudo hugo server -p 443 --bind=0.0.0.0 --baseURL=https://ingenboy.com/alpha/ 2346 ? Sl 0:18 38 0 2141188 1696712 43.7 \_ hugo server -p 443 --bind=0.0.0.0 --baseURL=https://ingenboy.com/alpha/ そうなんです。systemdなるんですねー。これが結構面白いところ。覚えておいていいです。 ちなみに、親子関係を含めて全プロセスを表示するのが、 ...

July 8, 2023 · 1 min · 73 words · Me

SQL_practice

sqlの問題集ってなかなかないんだよね。ってことで自分で作ることにした!!出典とそのデータベースのダウンロード先、と解答も準備する予定です。 contet CMUの講義で使われていたSQLの問題 僕の大学のITFっていう講義で使われていた問題 オライリー本「初めてのSQL」から持ってきた問題 データベースが入手可能なサイトの紹介 CMUの講義 データベースの出典 IMDb non-commercial dataset ここからダウンロードできます。 データベースの説明については、こちらのデータセットを見てください、と。ですが、こちら、扱いがちょっと面倒くさいので、もっとかんたんにしてくれているやつでいきます。 cmuが用意してくれてたやつで、ダウンロード可能。 映画関係のデータベースになっています。で、データはsqlite3で実行することを前提に作られています。 $ wget https://ingenboy.com/alpha/data/imdb-cmudb2022.db.gz $ gunzip imdb-cmudb2022.db.gz $ sqlite3 imdb-cmudb2022.db # create indices using hte following commands in SQLite CREATE INDEX ix_people_name ON people (name); CREATE INDEX ix_titles_type ON titles (type); CREATE INDEX ix_titles_primary_title ON titles (primary_title); CREATE INDEX ix_titles_original_title ON titles (original_title); CREATE INDEX ix_akas_title_id ON akas (title_id); CREATE INDEX ix_akas_title ON akas (title); CREATE INDEX ix_crew_title_id ON crew (title_id); CREATE INDEX ix_crew_person_id ON crew (person_id); # check the schema .schema 問題 question2[5 points] Find the 10 `Sci-Fi` works with the longest runtimes. Details: Print the title of the work, the premiere date, and the runtime. The column listing the runtime should be suffixed with the string " (mins)", for example, if the runtime_mins value is `12`, you should output 12 (mins). Note a work is Sci-Fi even if it is categorized in multiple genres, as long as Sci-Fi is one of the genres. Your first row should look like this: Cicak-Man 2: Planet Hitam|2008|999 (mins) question3 [5 points] Determine the oldest people in the dataset who were born in or after 1900. You should assume that a person without a known death year is still alive. Details: Print the name and age of each person. People should be ordered by a compound value of their age and secondly their name in alphabetical order. Return the first 20 results. Your output should have the format: NAME|AGE question4[10 points] Find the people who appear most frequently as crew members. Details: Print the names and number of appearances of the 20 people with the most crew appearances ordered by their number of appearances in a descending fashion. Your output should look like this: NAME|NUM_APPEARANCES question5[10 points] Compute intersting statistics on the ratings of content on a per-decade basis. Details: Get the average rating (rounded to two decimal places), top rating, min rating, and the number of releases in each decade. Exclude titles which have not been premiered (i.e. where premiered is NULL). Print the relevant decade in a fancier format by constructing a string that looks like this: 1990s. Order the decades first by their average rating in a descending fashion and secondly by the decade, ascending, to break ties. Your output should have the format: DECADE|AVG_RATING|TOP_RATING|MIN_RATING|NUM_RELEASES question6[10 points] Determine the most popular works with a person who has "Cruise" in their name and is born in 1962. Details: Get the works with the most votes that have a person in the crew with "Cruise" in their name who was born in 1962. Return both the name of the work and the number of votes and only list the top 10 results in order from most to least votes. Make sure your output is formatted as follows: Top Gun|408389 question7 [15 points] List the number of works that premiered in the same year that "Army of Thieves" premiered. Details: Print only the total number of works. The answer should include "Army of Thieves" itself. For this question, determine distinct works by their title_id, not their names. question8[15 points] List the all the different actors and actresses who have starred in a work with Nicole Kidman (born in 1967). Details: Print only the names of the actors and actresses in alphabetical order. The answer should include Nicole Kidman herself. Each name should only appear once in the output. Note: As mentioned in the schema, when considering the role of an individual on the crew, refer to the field category. The roles "actor" and "actress" are different and should be accounted for as such. question9[15 points] For all people born in 1955, get their name and average rating on all movies they have been part of through their careers. Output the 9th decile of individuals as measured by their average career movie rating. Details: Calculate average ratings for each individual born in 1955 across only the movies they have been part of. Compute the quantiles for each individual's average rating using NTILE(10). Make sure your output is formatted as follows (round average rating to the nearest hundredth, results should be ordered by a compound value of their ratings descending and secondly their name in alphabetical order): Stanley Nelson|7.13 Note: You should take quantiles after processing the average career movie rating of individuals. In other words, find the individuals who have an average career movie rating in the 9th decile of all individuals. question10[15 points] Concatenate all the unique titles for the TV Series "House of the Dragon" as a string of comma-separated values in alphabetical order of the titles. Details: Find all the unique dubbed titles for the new TV show "House of the Dragon" and order them alphabetically. Print a single string containing all these titles separated by commas. Hint: You might find Recursive CTEs useful. Note: Two titles are different even if they differ only in capitalization. Elements in the comma-separated value result should be separated with both a comma and a space, e.g. "foo, bar". ITFの問題 データベースの出典 なんかわからんけど、配られてたやつ ...

July 8, 2023 · 7 min · 1354 words · Me

Commnets_on_learning_sql

chapter1 リレーショナルデータベースって便利だよねーって話。 E.F.coddが最初の論文を出したってことだけ覚えておくとかっこいいかもしれないね。 chapter2 データのインポート、エクスポート 外部データのインポート方法をここで説明している。 Mysql公式のチュートリアル用データ ここからほしいデータをダウンロードしてきて、mysql内部から次のコマンドでロードできる mysql -u ray -p mysql> source <path/to/schame/sakila-schedma.sql> mysql> source <path/to/data/sakila-data.sql> って感じやな。ちなみに、自分が作ったデータを外部にエクスポートする方法もあって、 # データベース $ mysqldump -u USER_NAME -p -h HOST_NAME DB_NAME > OUTPUT_FILE_NAME # テーブル $ mysqldump -u USER_NAME -p -h HOST_NAME DB_NAME TABLE_NAME > OUTPUT_FILE_NAME # テーブルの定義とデータのダンプ $ mysqldump -u USER_NAME -p -h HOST_NAME -A -n > OUTPUT_FILE_NAME まあ調べたらあるから調べてみてくれ。データベースの移行はそんなに難しいことではないことだけ頭に入れておいてほしい。 ちなみに、mysqlでのschemaの見方は、 describe customer; 忘れがちだから覚えておいてください!!まじで!!describeを短縮してdescでもオッケーです。 SELECT TABLE_NAME , COLUMN_NAME , COLUMN_TYPE , COLUMN_KEY FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'sakila' ; データ型について 日付に関するデータ型だけ。 ...

July 8, 2023 · 3 min · 500 words · Me