新規記事の投稿を行うことで、非表示にすることが可能です。
2024年01月17日
Ubuntuのバージョンを確認したい!
Ctrl + Alt + t を同時押ししてターミナルを開くよ
(もしくはランチャーからターミナルを起動してね)
ターミナルが起動したら、次のコマンドを入力するとバージョンが確認できるよ
あーしが使ってるPCだとこんな感じに表示されるかな。
ディストリビューションの名前が「Ubuntu」で、バージョンは「22.04.3 LTS」、コードネームは「jammy」って言うんだね
今回は「cat」っていうコマンドを使ったけど、こんな感じでちょっとした操作でもターミナルでやっちゃって、CUI操作に慣れていこうね
最近、Ubuntu使ってる人が増えてるみたいで、あーしは嬉しいよ
(もしくはランチャーからターミナルを起動してね)
ターミナルが起動したら、次のコマンドを入力するとバージョンが確認できるよ
shell
$ cat /etc/os-release
あーしが使ってるPCだとこんな感じに表示されるかな。
shell
tsumugi@OptiPlex-3050:~$ cat /etc/os-release
PRETTY_NAME="Ubuntu 22.04.3 LTS"
NAME="Ubuntu"
VERSION_ID="22.04"
VERSION="22.04.3 LTS (Jammy Jellyfish)"
VERSION_CODENAME=jammy
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
UBUNTU_CODENAME=jammy
ディストリビューションの名前が「Ubuntu」で、バージョンは「22.04.3 LTS」、コードネームは「jammy」って言うんだね
今回は「cat」っていうコマンドを使ったけど、こんな感じでちょっとした操作でもターミナルでやっちゃって、CUI操作に慣れていこうね
最近、Ubuntu使ってる人が増えてるみたいで、あーしは嬉しいよ
2024年01月16日
Excelの数式ってどうやって実装されているんだろう?ASTを用いた数式の検証について@
みんなExcelとかLibreOffice Calc、Google SpreadSheetって使ってるかな
あの数式のところで色んなことができるけど、ほんとに便利だよね
大学のレポートを作るときなんか数式が分かんなくて大変な思いしたよ...
そもそもスプレッドシートの数式ってプログラムの上ではどうやって扱われているんだろうって思って、
あーしの車輪の再発明シリーズとして、「自分で設計・実装するならこうかな!」っていうのを記事にしたいと思います
「あるもの使えば良いじゃん」って言われちゃうかもだけど、自分でもやってみたいんだ
↓
で早速だけど、数式をデータとしてどうやって保持するかなんだけど、
大学4年生のときに習った「木構造」ってのが使えるはずなんだ
この木構造、すっごく奥が深いから、また別の記事で紹介したいんだけど、
その中で「AST」っていうのがあって、これで上手く数式を表現できるはず
ASTっていうのはAbstract Syntax Tree(抽象構文木)の略称で、
例えば「1/(X1+X2)」みたいな数式があれば、
こんな木構造になって、
「IF(X1+X2>=10, Y1, Y2)」みたいな数式のときは、
こんな風な木構造で表されるよ
丸で囲われているところをノード(Node)、矢印をエッジ(Edge)って言って、
あと1つ目の図の「1」と「X1」、「X2」みたいにそれ以上、分岐していないノードをリーフノード(Leaf Node)って言うんだ
それぞれ一番深い、下のリーフノードから処理していく感じで考えてほしくて、
「1/(X1+X2)」の例だと
@ X1とX2を「+」して
A 1と↑の@の結果を「/」して..
みたいな順序だよ
の図をどうやって出力してるかって?
Pythonを使って図を作ってるんだけど
で、graphvizをインストールして、
こんな感じのコードで、一つずつノードとノードの関係を定義していって、最後のrenderメソッドでファイルを作成してるよ
けどこれが結構大変で
「IF(X1+X2>=10, Y1, Y2)」みたいな数式が与えられたら、上手く処理して自動でASTを作りたいよね
(その辺りは次の記事で)
この記事では、ASTというデータ構造を紹介してみたよ、導入だね
次の記事で「数式を解釈してASTを作成」、
その次くらいの記事で「ASTにもとづいて式を評価」、
こんな感じでゆるくやっていければなと思ってます
以下はアフィリエイトのリンクなので、嫌いな人は書籍名などで検索してみてください
紹介したASTや木構造っていうのは、離散数理っていう分野のグラフ理論で出てくる考え方なんだけど、
工学基礎 離散数学とその応用
に色々な応用がジュニアの方にも分かりやすく書かれてるから、おすすめです
お世話になった茨木先生の離散数理の本もできれば紹介したいんだけど、気づいたら絶版になってた
あの数式のところで色んなことができるけど、ほんとに便利だよね
大学のレポートを作るときなんか数式が分かんなくて大変な思いしたよ...
そもそもスプレッドシートの数式ってプログラムの上ではどうやって扱われているんだろうって思って、
あーしの車輪の再発明シリーズとして、「自分で設計・実装するならこうかな!」っていうのを記事にしたいと思います
「あるもの使えば良いじゃん」って言われちゃうかもだけど、自分でもやってみたいんだ
↓
で早速だけど、数式をデータとしてどうやって保持するかなんだけど、
大学4年生のときに習った「木構造」ってのが使えるはずなんだ
この木構造、すっごく奥が深いから、また別の記事で紹介したいんだけど、
その中で「AST」っていうのがあって、これで上手く数式を表現できるはず
ASTっていうのはAbstract Syntax Tree(抽象構文木)の略称で、
例えば「1/(X1+X2)」みたいな数式があれば、
こんな木構造になって、
「IF(X1+X2>=10, Y1, Y2)」みたいな数式のときは、
こんな風な木構造で表されるよ
丸で囲われているところをノード(Node)、矢印をエッジ(Edge)って言って、
あと1つ目の図の「1」と「X1」、「X2」みたいにそれ以上、分岐していないノードをリーフノード(Leaf Node)って言うんだ
それぞれ一番深い、下のリーフノードから処理していく感じで考えてほしくて、
「1/(X1+X2)」の例だと
@ X1とX2を「+」して
A 1と↑の@の結果を「/」して..
みたいな順序だよ
の図をどうやって出力してるかって?
Pythonを使って図を作ってるんだけど
shell
$ pip install graphviz
で、graphvizをインストールして、
Python
from graphviz import Digraph
dot = Digraph()
# ノードを追加(AからHは記号みたいなものだよ)
dot.node('A', 'IF')
dot.node('B', '>=')
dot.node('C', '+')
dot.node('D', 'X1')
dot.node('E', 'X2')
dot.node('F', '10')
dot.node('G', 'Y1')
dot.node('H', 'Y2')
# エッジを追加(で定義したノードとノードの関係を書いていくよ)
dot.edge('A', 'B')
dot.edge('A', 'G')
dot.edge('A', 'H')
dot.edge('B', 'C')
dot.edge('B', 'F')
dot.edge('C', 'D')
dot.edge('C', 'E')
# PNGファイルとしてグラフを出力
dot.render('image', format='png', cleanup=True)
こんな感じのコードで、一つずつノードとノードの関係を定義していって、最後のrenderメソッドでファイルを作成してるよ
けどこれが結構大変で
「IF(X1+X2>=10, Y1, Y2)」みたいな数式が与えられたら、上手く処理して自動でASTを作りたいよね
(その辺りは次の記事で)
この記事では、ASTというデータ構造を紹介してみたよ、導入だね
次の記事で「数式を解釈してASTを作成」、
その次くらいの記事で「ASTにもとづいて式を評価」、
こんな感じでゆるくやっていければなと思ってます
以下はアフィリエイトのリンクなので、嫌いな人は書籍名などで検索してみてください
紹介したASTや木構造っていうのは、離散数理っていう分野のグラフ理論で出てくる考え方なんだけど、
工学基礎 離散数学とその応用
に色々な応用がジュニアの方にも分かりやすく書かれてるから、おすすめです
お世話になった茨木先生の離散数理の本もできれば紹介したいんだけど、気づいたら絶版になってた
2024年01月15日
Ubuntu環境でPNG画像からWebp画像を作成したい!
Ubuntu環境でwebpの画像をPNG形式に変換したり、PNGからWebpの画像に変換するためのコマンドだよ
Web制作に携わっている方だと馴染みのある拡張子「.webp」だね。
PNG形式よりもファイルサイズが軽量になりやすいんだ
1行目でdwebpとcwebpというコマンドが使えるようにソフトをインストールしてて、
2行目ではwebp画像をpng画像に変換、
3行目はpng画像からwebp画像を作成してるよ
「dwebp」はwebpをdecode(デコード)していて、
「cwebp」はpngをconvert(変換)してるよ
Windows11でもGIMPやImageMagickなどから変換できるんだけど、やっぱりUbuntu環境だとカンタンだね
fanblogではどうやらwebp画像を記事に挿入できないみたいで。。
しばらくはpng画像を使って行こうと思います
Web制作に携わっている方だと馴染みのある拡張子「.webp」だね。
PNG形式よりもファイルサイズが軽量になりやすいんだ
1行目でdwebpとcwebpというコマンドが使えるようにソフトをインストールしてて、
2行目ではwebp画像をpng画像に変換、
3行目はpng画像からwebp画像を作成してるよ
shell
$ sudo apt install webp
$ dwebp input.webp -o output.png
$ cwebp input.png -o output.webp
「dwebp」はwebpをdecode(デコード)していて、
「cwebp」はpngをconvert(変換)してるよ
Windows11でもGIMPやImageMagickなどから変換できるんだけど、やっぱりUbuntu環境だとカンタンだね
fanblogではどうやらwebp画像を記事に挿入できないみたいで。。
しばらくはpng画像を使って行こうと思います
FANBLOGでB!とtumblr.とイイネ!を非表示にしたい!
初めて投稿してみたけどボタンがいっぱい付いてる
左から「はてなブックマーク、tumblr、mixi」のボタン。
この3つのボタンを非表示にする方法をメモしておきます!
↓
FANBLOGをやっている方は、設定>ソーシャルボタン(設定ページを開きます)から設定できます
記事にするまでもないことかな?手探りなので、大目に見ていただければ嬉しいです
左から「はてなブックマーク、tumblr、mixi」のボタン。
この3つのボタンを非表示にする方法をメモしておきます!
↓
FANBLOGをやっている方は、設定>ソーシャルボタン(設定ページを開きます)から設定できます
記事にするまでもないことかな?手探りなので、大目に見ていただければ嬉しいです
2024年01月14日
はじめまして
なんか始めちゃいました、ブログのタイトルは私の好きなVOICEBOXのキャラクター(春日部つむぎちゃん)です
つむぎちゃんがエンジニアだったらこうだろうなっていう内容を書いてみたいと思います
(普段は都内でエンジニアやっています!)
ChatGPT先生の学習用のデータになれるかどうかは分かりませんが、
普段の生活で少しでもスタックすることがあれば記事にします
SEOは厳しそうだけど無料で文章を保存しておいてもらえるのは嬉しい
(画像ファイルは500MBまで保存できるみたい、webpも使えそうだし出来るだけ節約して使わないとだね)
Qiitaでやれって?それは言わないで
つむぎちゃんがエンジニアだったらこうだろうなっていう内容を書いてみたいと思います
(普段は都内でエンジニアやっています!)
ChatGPT先生の学習用のデータになれるかどうかは分かりませんが、
普段の生活で少しでもスタックすることがあれば記事にします
SEOは厳しそうだけど無料で文章を保存しておいてもらえるのは嬉しい
(画像ファイルは500MBまで保存できるみたい、webpも使えそうだし出来るだけ節約して使わないとだね)
Qiitaでやれって?それは言わないで