1. 雨宿りとWEBの小噺.fm
  2. Season 3-107.「エンジニア..
2024-02-24 14:53

Season 3-107.「エンジニアと言うかプログラマーの遊び」

はい!第381回は,僕らエンジニアやプログラマーならではのテクニカルな遊びに付いてお話しました💁

おそらくこれらは一度はやったことある人も多いんじゃないかな!?

まだの人は是非遊んでみてくださいー!


ではでは(=゚ω゚)ノ


ーーーーー

🔗 LINKS

コードゴルフ

https://ja.wikipedia.org/wiki/コードゴルフ

IOCCC

https://ja.wikipedia.org/wiki/IOCCC

難解プログラミング言語

https://ja.wikipedia.org/wiki/難解プログラミング言語

プリキュアで学ぶワンライナーWebスクレイピング

https://qiita.com/greymd/items/368faf898c161165fee7


♫ BGM

騒音のない世界「さんさんドライブ」

https://soundcloud.com/baron1_3/sunsun

See Privacy Policy at https://art19.com/privacy and California Privacy Notice at https://art19.com/privacy#do-not-sell-my-info.

00:10
はいみなさんこんにちは、keethことクワハラです。本日もやっていきましょう、keethのエンジニア雑談チャンネル。この番組ではウェブ業界やエンジニアリング、いろんな技術についての情報を雑談形式で発信していきたいと思います。
今日何をお話ししようかなと思ったんですけど、いろいろ勉強は昨日もしていて、インプットはしたんですけど、寝る前にこのネタ面白いんじゃないかっていうのが思いついたので、エンジニアの遊びと書いてますが、まあエンジニアかプログラマーかはちょっとさておき。
どちらかと言うとプログラマーの方が近いかもですね。お遊びっていうものです。僕らも一応技術的なお遊びしてたりはしますし、仕事の中でもしれっとやったりしたことは僕も過去にあります。
まあしていいのかどうのか別として、内容としてはプロダクトに影響ない範囲で遊んでたり、まあ業務に直結はしないんですけど、
エンジニアとしての行動の遊び方みたいなのがちょっとあってですね。まあそういうものをやったりしてますので、今日はその辺のお話紹介できたらと思います。
お仕事でも行動は書きますし、僕らはクライアントワークなので、自宅開発としてお客様のプロダクトとかサービスを手がけてますけども、
その中でも影響ないものとか、業務に直結はしないけど、エンジニアとしての遊びはある。もしくは皆さんの
業務内容の効率化であったり、もう少しわかりやすくしたりとかを
遊びと言ったりする時もありますね。そういうこともやりますし、新しいサービス出たんでそれをおもちゃとして遊んでみるみたいなこともありますけど、
まあいろんな遊びがあるというところで、業務にでも直結しないお話が今日はでも多いですね、はっきり言うと。
さすがにプロダクトとか本番の行動に遊びを含めるみたいなことはそうそうないのであれですけど、エンジニアってどのような遊びをしているの?
というのでいくつか紹介したいと思いますけど、一つ目はコードゴルフと言われるものです。
何かしらのテーマがあってそれに対してコードを書くんだけど、それをいかに短く書けるかみたいなのをコードゴルフと言ったりします。
ググっていただければ大量に出てくると思いますけど、いやすごく面白いですよコードゴルフが。
本当技術の推移を活かして何文字減らせるかみたいなところをずっとやるんですね。
本当に頑張ってやろうと思ったら言語を選んでその中の言語特有の機能を使って短く書くみたいなこともできたりするんで、これが得てどうして面白くてですね。
自分が知らなかった言語のAPIとか組み込みの関数とかがあったりして、意外と勉強になるんですよね調べれば調べること。
そういうことをやるのが一つコードゴルフと言われるものです。
これはいくつになっても全然遊びの幅も広いしいつでも遊べるんですよね。
何歳になってもこの遊びは全然できるというので幅の広い遊びとしていいと思います。
で2つ目は名前忘れましたけど何読コードって言われるものですね。
03:01
今はもう確か大会昔あったんですけど、もう今は大会やってない気がしますけど、いかに読みづらいコードを書くかっていう大会があったんですね。
それなんかググったら確かウィキペディアにもね大会の名前載ってたんですけど、大会の名前を僕はちょっと思い出せなくて忘れましたけど。
いかに読みづらいコードを書く、何読コードっていうのを手書きで書いていくってところなんですけど、大体アスキーアートをやってましたね。
でもちゃんと実行できるっていうのが条件に入るんですよ。実行ができるソースコードでいかに読みづらいかってなるとみんななんかアスキーアートをやってましたね。
まあプログラムって別に文法的に間違ってなければ開業いくらしようがスペースを何個入れようが全然問題ないわけ。
てことはアスキーアートで遊び倒せるじゃんみたいのでやってる人がいて。
あとで思いついたりとかググってみますけど、見つかったら今日の配信内容を概要欄に書いておきますので見てみてください。
みんなクリエイティブだなって思いますね、何読コードに関しては。本当遊びの幅が広くて面白いなと思います。
昔はそれで本当に大会やって表彰があるみたいなのが、いやーなかなかエンジニアリングらしくて僕は結構好きでしたね。
2つ目の遊びはその何読コードって言われるものでした。
続いて3つ目はですね、開発になってしまいますけど、これも名前忘れましたけど何読言語?
難しいプログラミング言語みたいなのがたくさんあるんですよ。 っていうのを作るっていう遊びです。
僕がそれを最初したのはホワイトスペースっていう言語ですね。 開業と反格スペース、全格スペース、確かこの3つでしたよね。
だけのプログラミング言語です。 なので、例えばその中で普通の試則演算をするってだけなんですけど
パッとコードを見たら、もちろん真っ白なんですよ。 めちゃめちゃ真っ白で面白いんですけど、それでもちゃんと動くっていうところがすごいし
ホワイトスペースのエディターが最近は生まれているらしくて、その実行環境があるので意外と目に見えて人間が書くことができるようになっているというのを知ったんですよね。
いや本当に面白いなと思いました。 ホワイトスペース1回やったことは僕もあるんですけど、
ちょっと面食らうし、最初はたくさんの機能がなさすぎるって、APIも少ないので面白かったら大変なんですけど、慣れてくるとやっぱりこれはこれでちょっと知的に面白かったりしてですね。
僕はお勧めします。 笑ったのはやっぱりゴリラ言語ですよね。ひたすらウーフォウーフォ言ってるプログラミング言語があって、それでもちゃんとプログラムとして動くところがまあ本当に面白いんですよね。
いろんなことを思いつくなって思いましたね、人間というものは。
3つ目の遊びは面白い自分専用のプログラミング言語を作るっていうやつです。
4つ目の遊びですけど、4つ目はいろんな会社さんもされていることなんですけど、自分たちのウェブサイトとかウェブアプリケーションの中にコンソールとかコードの中にコメントでアスキーアートをしたりとかなんか広告を入れたり遊びの文言を入れるみたいなことですね。
ウェブサイトなのでブラウザーからアクセスをしていただいて、右クリックとかショートカットキーを知っている人はそこから開発者ツールを開いていただくとソースコードが見れるんですね。
06:06
そのソースコードの中に自分たちの会社の見ている人には広告宣伝をしたりとか、だいたいエンジニアと思いますよね。
採用のお話とか文言をそっと入れておいて、自分たちのページに来てくださいみたいなところを書いたり、ウェブコンソールに訪問いただきありがとうございますみたいなコンソールを出すっていうようなサービスもあるんですね。
結構海外の会社さんがすごいやられてて、結構有名な企業もあったと思います。
僕は結構バッファローが好きでしたね。バッファローのサイト。確か海外のサイト、日本のサイトじゃなかった気がしますけど。
まさにあの水牛のアスキー跡がドーンと描かれてて、当時はです。今はちょっとわかんないですけど。
あってですね、いやービッグな会社さんがやられているのを見て面白いじゃんっていうので、僕も過去の案件でしれっとやろうとしたことはありますし、やったことあったかな?
いやいや最終的に消しましたね。さすがにそこはビジネスなんだしよろしくないだろうみたいなのがあって。
自社のホームページとかだったら確か許されるし、夢見のホームページあったかな?ちょっと覚えてないですけど。
もしなかったらなんか遊び入れたいなって思ったりはしますね。
はい、というので4つ目はウェブページとかウェブサイトにアスキー跡を入れたり、好きな広告文言を入れるという感じですね。
まあシステム的には全然問題なく動きまして、ただのコメント文だったら何の影響もないのでね。
ただまあビルドするときに基本コメント文って圧縮されたり、コメントを消してバンとミニファイするっていうのが最近の主流であるので含めづらいなっていうところはありますけど。
コンソールぐらいなら確かいけるはずで。ブラウザのコンソールって実はCSSで装飾できるんですよね。
僕はそれを数年前に知って結構ねコンソールでいくらでも遊びができる。CSSが使える時点で割と装飾いけるんですよね。
というところで。はい、以上。まあそんな遊びもありますよということです。
あとコンソールってconsole.logだけじゃなくてconsole.なんちゅらでいくつかあるのでその辺の遊びをしていいみたいなとか、自分独自でconsole.を拡張してもらってもいいと思います。
コンソールオブジェクトっていくらでも拡張できるんでね。まあ組み込み関数とかオブジェクトではあるので追加をするぐらいが本当はちょうどいいですけどね。
まあでもそういう遊びぐらいは別に自分たちの自社サイトとかホームページぐらいだったらやっていいでしょうって思ったりはしますね。
そうやって遊びがあるからエンジニアってやっぱ楽しいねみたいなところがあったりするのでね。以上4つ目がページのコンソールとかに遊びを入れるというものでした。
はいでは5つ目ですね。5つ目はこれはもう完全にエンジニアにしかわからないですけどジョークコマンドですね。
超有名なコマンドで言うとSLコマンドがあります。SLっていうのは文字通りは機関車のSLですね。
あれをASCIIアートで書いて、画面っていうかターミナル上なんですけど、ターミナル上を端から端までずっとひたすらSLが走り抜けるというだけのジョークコマンドがあるんですけど。
これもともとLSコマンドですね。リストコマンドってやつがあって、単純に今いる自分たちのディレクトリの中身を見たりリストで表示するっていうLinuxコマンドですけど。
09:03
まあそのLSコマンドがあってそれを僕らはたまにこうタイポしてLSじゃなくてSLって叩いちゃうんですよね。
でそのSLコマンド叩いた時にそんなコマンドないっていう風に怒られるんですけど、それをちょうどSLっていう機関車があるんでそれコマンドで流したら面白くないっていう思いついた人がいて。
それをさらに配布して皆さんが次に使えるようにしたらいいじゃんみたいので配布した人がいらっしゃる。
僕毎回こう新しい端末手に入れたら必ずやっぱり入れちゃうんですよね。
たまにSLコマンド叩いて遊び見てうんうん楽しいなと思ったりしてるし、自分なりの何か好きなとそこに含めたいなと思ったりするので。
はい。まあなんとなどこんな感じのSLコマンド以外にもたくさん、あのジョークコマンドもググっていただけるとたくさんあります。
なんだっけ、Linuxコマンドとして作ってはないけど、Linux環境なら動くものとしてCOWっていうのがあった気がします。
牛が表示される、まぁ結局はASCIIアートなんですけどね。
牛がASCIIアートに表示されるんですけど、それプラス何か好きなメッセージを聞き入れると牛が吹き出しでそのメッセージを喋るみたいなコマンドがあったりして。
割とそういう面白いコマンドもねあるんですよね。
あ、そうCOW生意ですね。失礼。COWじゃなくてCOW生意ですね。
はい、それですそれです。僕もそれ好きですね。
たまにサーバーでSSLで、SSHコマンドで入ったりした時に、デブ環境とかだったら別に遊んでいいでしょみたいな、そういうサーバーには僕たまに入れてましたね。
いやー、今も入れっぱなので、そのシステムがまだ動いてるんであれば動いてるんですけど、過去のシステムの人でこういうのを好きな人がもしいたら多分見つけるかもしれないですね。
はい、全職の人こんなの入れたいんやみたいな。怒られるかもしれない。
はい、まあいいや。以上5つ目にジョークコマンドっていうやつでした。
ではラスト。今日持ってきたネタとしてはラスト6個目ですね。6個目もこれはさらにやる人は少ないっていうか多分おじさんホイホイなお遊びですけど、6個目はワンライナーですね。
はい、ワンライナーめちゃめちゃ楽しいですよ。楽しいと思う人はですけどね。
僕がちなみに一番好きなもので、かつワンライナー勉強する時にすごく参考になったのが、
聞いたの記事で、プリキュアの公式サイトかウェキペディアのプリキュアをまとめたサイトをスクレーピングしてとか、HTMLを普通に持ってきて、
それを正規表現でぐわっとごにょって、プリキュアのキャラクターの名前があるので、それを全部正規表現で引っ張ってきて、最後コンソールにリストで表示するっていうワンライナーです。
これがですね、めちゃめちゃ勉強になるんですよ。ワンライナーもしやりたい方は。
こういうコマンドがあるんだとか、正規表現でこういう書き方をするんだとか、よくあるセドとか、ワンライナーでよくやる正規表現のコマンドがあるんですけど、
あれの使い方としてもすごく参考になるので、めちゃめちゃいいですよ。これでも、普通に業務でも使えそうだったりするなと思ったりしてて。
なので、6個目の遊びはワンライナーっていうやつですね。
これも、サーバーサイドエンジニアだったからかわからないですけど、コンソールをバンバンに使う人たちなのでね、僕が。
12:04
それで遊んでましたね。以上6個目の遊びでしたね。
他にもなんかいろんな遊びやってる人たくさんいそうですけどね。
他のエンジニアなのか、完全にプログラマーの遊びかもしれないですけどね、これは。
とはいえ、こういう遊びをついついやっぱやってしまうし、業務でひたすら必要なコードだけを書いていくと、
まあ仕事なんでそれでいいんですけど、やっぱ遊びは入れたいですよ。
あと最近知ったお話として、昨日か一昨日、ファインディーさんの主催した交流会に参加したって、
その中でインフルエンジニアの方が参加されていたので、そこでお話をしたんですけど、
スラック上から一発でコマンドかなんかを書いて投稿すると、そこでAWSのEC2環境を立ち上げたりとか、
権限周り設定したりとか、テーブルを自動で生成したりとか、
というのを、とにかくキックする場所をスラックにしてみたみたいな遊びをした人がいらっしゃった方がいて、
話をよくよく聞くと、それすごく便利じゃない?って毎回コンソールに行かなきゃいけなかったり、
管理画面をアクセスしなきゃいけないってところをスラック上で管理をしてて、
通知周りとかも、権限を持っている人全員のグループとかを作って、そこに通知を流すようなグループにしておけば、
ちょっと困った時に誰に相談すればいいかっていうのを、もうこのチャンネル自動で流せばいいよみたいな話にしたりとか、
割とその辺の自動化の遊びはかなり面白かったですね。
でもこれ業務にすごい直結するというか、参考になるし、効率化で素晴らしいなみたいな遊びがあったので、
そういう遊びもいいよなと思いますね。
僕はスラックAPIと戦いたくはなくてですね、スラックのAPIすごくめんどくさくて、
うわーうわーと思いながら、それさえ突破すれば、スラックと連携することの価値はすごく高いし、自動化できるので色々なものをしてみたいのでね、
そういう遊びもしててすごく面白かったですね。
そんな感じで、業務に関係あったり、効率化のための遊びもたくさんあるし、
さっきみたいに仕事に全く関係のない、ただプログラマーとしての遊びもたくさんあって、
エンジニアってそういう色んな遊びを持っているというのを知っておくのは多分大事かもしれないですね。
業務ばっかりで、仕事ばっかりで楽しくないっていう人もいらっしゃいますけど、
仕事を何かして遊ぶっていうこともできたりするっていう、そういう話ですね。
他にも皆さんもこんな遊びしてるよとか、
エンジニアとかプログラマーとしてこういう遊びがあるよみたいなのが、
もしあれば教えていただければと思いますし、
なんだかんだ遊びながらエンジニアリングするのが一番楽しいのでね、
そういう感じでやっていけたらと思います。
参考になっては幸いですし、
やったことない方もですね、今日の6個紹介しますけど、
遊んでみていただければなと思います。
はい、今回はこんなところで終わっていきたいと思います。
いつも聞いてくださり本当にありがとうございます。
ではまた次回の主力でお会いしましょう。
バイバイ。
14:53

コメント

スクロール