JUNのブログ

JUNのブログ

活動記録や技術メモ

ダイクストラ法試してみた

最近早水先生の講義を見ているのですが, そこでダイクストラ法の説明があり, 実装したくなったので実装した. www.youtube.com import heapq INF = float("inf") # 各駅間の道を (行き先, 重み) という要素の隣接リストの形で保持する. graph = [ [(1, 16), (…

Linux環境でも放送大学の授業を受けたい!

放送大学の授業はテレビ,ラジオ,ブラウザで視聴することが可能なのですが, このブラウザ視聴の対応OSにLinuxが入っていません. www.ouj.ac.jp Linux(Ubuntu 20.04) の Chrome から放送大学の授業科目動画のサンプル(授業の第一回目)を視聴しようとするとエラ…

シェル実装の課題を完走した

42Tokyoで minishell という課題があり, 完走したので感想書きます. minishellについて 実装 シェル全体の構成 入力処理 Lexer & Parser Lexer (字句解析) Parser (構文解析) CommandExecution リダイレクションの処理 heredocument プログラムの実行 ビルト…

AWS Academy Cloud Foundations 修了した

42

42TokyoでAWSから提供されている学生向けプログラム AWS Academy Cloud Foundations が受講可能だったので受講して修了したので完走した感想. AWS Academy Cloud Foundations とは AWS Academy Cloud Foundations とはAWSが学生向けに提供している教育プログ…

フラクタル((マンデルブロ|ジュリア)集合)生成プログラムを書いた

42の課題でフラクタル(マンデルブロ集合とジュリア集合)を描画する課題があり, それが完了したので感想とか色々. フラクタルとはなんぞや Wikipediaによると 図形の部分と全体が自己相似(再帰)になっているものなどをいう。 フラクタル - Wikipedia らしい…

GitHub PullRequest を簡単にローカルにfetchできる設定

github の PullRequest を簡単にローカルに落とせる設定を書いたのでメモ. 設定 ~/.gitconfig に以下の内容を追加する [alias] pr = "!f() { if [ !${2+x} ]; then git fetch origin pull/${1}/head:pr/${1} ; else git fetch ${2} pull/${1}/head:pr/${1} ;…

「Winny 天才プログラマー金子勇との7年半」を読んだ

「Winny 天才プログラマー金子勇との7年半」という本を読んだので感想. Winny 天才プログラマー金子勇との7年半 (NextPublishing)作者:壇 俊光発売日: 2020/04/24メディア: Kindle版 金子勇については多くの記事があるので, 気になる人は以下の記事などを読…

「世界でもっとも強力な9のアルゴリズム」を読んだ

「世界でもっとも強力な9のアルゴリズム」という本を読んだので感想. 世界でもっとも強力な9のアルゴリズム作者:ジョン マコーミック発売日: 2013/10/10メディア: Kindle版 この本はアルゴリズムについての本だが, アルゴリズムやデータ構造についての教科書…

C言語でレイトレーシングプログラムを作った

初めに C言語で3Dゲームを作ったという記事の中で言及した通り, 42のLv2ではレイキャスティングで3Dゲームを作る cub3D と, レイトレーシングプログラムを作る miniRT という課題の2つがあり, 自分は cub3D を選択した. jun-networks.hatenablog.com しかし,…

Ubuntu環境でのUnityの開発環境の作り方

Unityのインストール とりあえずUnityHub使っとけば良いです. docs.unity3d.com Unity プロジェクト設定 エディタは VSCode 推奨. Unity プロジェクトから起動するエディタは Edit -> Preferences で設定を開いて, Editor って調べたら設定項目が出てくる. .…

HackDay 2021 Online に参加しました

2021年3月20日〜21日に開催された HackDay2021Online に参加しました. その振り返り記事です. HackDayとは 一応知らない人のためにHackDayとはなんぞやというのを簡単に説明すると, Yahooが主催する「24時間で開発を行うハッカソン」です. 24時間で開発とプ…

「Linuxのしくみ ~実験と図解で学ぶOSとハードウェアの基礎知識」を読んだ

「[試して理解]Linuxのしくみ ~実験と図解で学ぶOSとハードウェアの基礎知識」を読んだ. [試して理解]Linuxのしくみ ~実験と図解で学ぶOSとハードウェアの基礎知識作者:武内 覚発売日: 2018/02/23メディア: Kindle版 Linuxを日頃から触っているけど, …

C言語で3Dゲームを作った

42の課題の1つであるcub3Dを今日クリアしたので感想を書く. 課題について 作ったもの 仕組み 壁の描画 プレイヤーの座標などの表し方 光線を飛ばす 壁までの距離を求める 壁を描画する スプライトの描画 スプライトの描画に必要な情報の計算 世界座標系から…

「エンジニアの知的生産術」を読んだ.

「エンジニアの知的生産術」という本を読みました. エンジニアの知的生産術 ―効率的に学び、整理し、アウトプットする WEB+DB PRESS plus作者:西尾 泰和発売日: 2018/11/14メディア: Kindle版 読んだ目的 知的生産を上げたかったから. 具体的には自分は本を…

Toggl で時間配分を可視化することにした.

自分は多くの時間をネットサーフィンとTwitterとYouTubeに費やしており, 生産性の低い毎日を送ってます. 現在ずっと実家におり, 可処分時間という点では高専在学時より増えているはずですが, どうも高専在学時ほど生産的な毎日を送っている実感を得られてい…

4Kモニタを買ったが使いこなせていない話

うぉーーーーーーーー!!27インチ4K素晴らしいー!!! pic.twitter.com/SNaR940dpq— JUN (@JUN_NETWORKS_JP) 2021年1月16日 「素晴らしーーー!!!!」とか言っていますが, 確かにP2721Qは文句なしに素晴らしいです. 画質は綺麗だしベゼルは細いし, メニュー…

2020年振り返り

激動の2020年も今日で終わり!! なので毎年恒例1年の振り返りをするんじゃ! 去年はこちら jun-networks.hatenablog.com 今年もツイートを漁りつつ, 思い出して書いてきます. では早速やっていくぞー! 月ごとの振り返り 1月 2月 3月 4月 5月 6月 7月 8月 9月 1…

glibc strlen コードリーディング

この間のget_next_lineの記事で標準Cライブラリのstrlen()が自分が書いたものより圧倒的に速いという話をしました. jun-networks.hatenablog.com なぜ標準ライブラリのstrlen()が速いか調べてみたら結構奥が深かったので今回はGNU Cライブラリ(glibc)の strl…

C言語でファイル(ファイルディスクリプタ)から1行ずつ取得する関数を作った

10月から42Tokyoで学んでいるのですが, そこでやった課題の内容及びコードの公開がOKってことなんで, これから気が向いたら42の課題と自分の解答を記事にしていこうと思います. (ただし, 課題PDF自体は再配布や外部への公開が禁止されているので, 課題内容は…

りあクト! を読んだ

読んだ本 「りあクト! TypeScriptで始めるつらくないReact開発 第3版」を読んだのでそれの読書感想文です. booth.pm 感想 大変素晴らしいReactの本でした. ES6以降のJSの文法から始まり, 環境構築, Reactで重視されている関数型プログラミングの考え方, Typ…

ERROR: Couldn't connect to Docker daemon at http+docker://localhost - is it running? の解決法

docker-compose up --build しようとしたら以下のようなエラーが出た. ERROR: Couldn't connect to Docker daemon at http+docker://localhost - is it running? If it's at a non-standard location, specify the URL with the DOCKER_HOST environment var…

Next.js で.envからいい感じに環境変数を読み込みたい

Next.js で .env ファイルから環境変数を読み込んで使う時にちょっと迷ったのでやり方をメモ代わりに書いとく. やり方 基本的なやり方は dotenvでサーバー起動時に.envファイルから環境変数を自動的に読み込む. 読み込んだ環境変数を next.config.js で設定…

C言語でわかる? UTF-8

そういえばC言語でマルチバイト文字(UTF-8)の出力ってどうやってするんだろうと思って, 色々試したのでここに書き残しておく. ちなみに今回は基本的に画面出力にはUNIXのシステムコールを呼び出す write() を使う. write()に関しはmanコマンドでマニュアルを…

printfを使わずにメモリアドレスを取得する

はい. こんにちは. 今日は printf を使わずにメモリアドレスを表示する方法について書きます. 大体C言語の教科書などでは変数のメモリアドレスを表示するのに以下のようなコードを書くと思います. #include <stdio.h> int main(){ int a = 10; printf("data: %d addre</stdio.h>…

sqlx のインストールには気を付けよう

Go

最近は sqlx というライブラリを使ってDB周りの操作をしているのですが, 標準ライブラリ database/sql にあるsql.Conn を使いたいと思ったのですが, なんと sqlx にはありませんでした. 「マジか...」と思ったのですが, 調べたら sqlx.Conn が見つかって無事…

protocで .proto ファイルから service に関するGoのコードが生成されない問題への対処方法

Go

gRPC触ろうと思って.protoファイルから protoc をGoのコード使って生成したら service に関するコードが一切ないし, plugins オプションを指定するとエラーが出るしで2時間くらい詰まったのでここに解決方法をメモしておく. エラー $ protoc -I proto --go_o…

Kindle for PC on Ubuntu 20.04

Kindle for PC は基本的にはWindows用とMac用しかありません。 しかし、Wineを使うことで可能となります。 How to まずUbuntu Software でWineをインストールします。 次にWindowsのバージョンを決めます。 $ winecfg でWineの設定画面が出てくるので、8.1に…

Airpods Pro を Ubuntu に接続する方法

Airpods (Pro) を Ubuntu に接続する方法についての日本語情報が無かったのでここに書いておきます。 /etc/bluetooth/main.conf内にあるControllerModeの値をbredrに変更する。 sudo systemctl restart bluetooth でBluetoothを再起動 Airpodsのケースの後ろ…

Albertで設定したキーでランチャーが開かない問題に対する解決法

AlbertというMacでいうAlfredみたいな感じのLinuxランチャーアプリを使おうとしたのですが、設定したキーでランチャーがなかなか起動してくれない問題が発生しました。 そんで、その問題を解決したのでそれについて書きます。 albertlauncher.github.io ずば…

爆速でpipenvで開発環境作る

自分は普段pipenvをPythonの環境として使っているのですが、そういえばインストール方法とかをブログに書いていなかったなぁ と思ったので、この機会に普段行っているpipenvでの環境構築の方法をここで共有しておこうと思います。 pipenvが何か知らない人はg…