「bootstrap」を含む日記 RSS

はてなキーワード: bootstrapとは

2024-03-01

40手前、漫画家を辞めて転職しようと思うのですが、まともな職業転職することは可能ですか?

冠婚葬祭以外でスーツもろくに着たことのない人間が、まともな職業転職することは可能ですか?



フルデジタルで絵を描いているので、PC周りのスキル器用貧乏な感じなのですが、

その道のプロというほど使いこなせるかといえばそうでもないため、40代から転職で役に立てる気がしません

2023-12-26

anond:20231226180912

それはそうとTailwind CSSとか流行してるけどマジなん?って感じなんですけど

なんか、HTMLclassが膨大に長くなって、本筋のロジックな部分が見づらいのなんの…

画面ダサくてもBootstrapでええわ

でも、Laravelとか前提にしてんのな…

JavaScript進化して、jQuery必要なくなったしなぁ

変化だけ激しいよな、Web

本質TCP/IPだのは、そんなに揺らがないのに

インフラ行けば良かったのかなぁ

羽振りがいい人も多いし

2023-06-25

TailwindCSSを見ていて思ったこ

やっていることはStyleへの直書きと同じだし、Styleに直書きしたほうがライブラリへの依存が少なくなるしいいんじゃないか?とか思った。

そのうちBootstrapみたいなクソデカ負債になるかもしれんし。

2023-01-20

Twitter bootstrap

サードパーティ締め出しとかみていると、もう怖くて使えねーよなー。

少なくともメジャーバージョンアップはもうされないだろうし。

 

Tailwindとかに乗り換えかな。

2022-10-01

BootstrapjQueryを使ってると聞いてゲロ吐きそうになった

Tailwindにするべきかなあ

2022-06-14

ベンチャー企業就職させられて後悔している

自称ベンチャー企業に来て後悔している、というか恨んでいる。自分のいたベンチャー企業なんて、反社会的勢力 隠れ蓑しかなかった。そこで得たもの、というものはなくて、むしろ父親学歴情熱を失った。 だからベンチャー企業とか NPO なんかに社会的価値見出し入社する必要なんてない、むしろ新卒採用では JTC に入れよーという話をしていこうと思う。

スレ

https://anond.hatelabo.jp/20220613020726

https://anond.hatelabo.jp/20220614002648

です。

国立医学部を目指して多浪挫折したあとに入った大学早慶未満マーチ以上の偏差値大学だった。そのため、周りは年が若くなじめないままサークル勧誘期間が終わってしまったのであった。まちがいなく大学内では浮いた存在であったし、自分も馴染む気がなかった。当時の言い方をするならば「ボッチ」であったか大学に入ってすぐに、一緒に入学した同期の入るだろう会社には入社できないのが自覚できたので、授業が終わったら大学図書館 or バイト先にそそくさとむかっていた。幸いにして、高校時代プログラミング部活でしていたので、どこにいっても「卒業したら、うちにこない?」と言ってもらえた。自分富士通とか野村総研なんかは年齢制限で入れないけど、飯を食べるには困らないだろうな、という確信はその当時に得た。大学情報工学の内容は高校時代習得した内容よりも劣っていたので馬鹿にしていたのは、後でボディブローのようにこの怠慢は効いてきた。ここまで書くと大凡スキルコーダー程度であることは察していただけると思う。当時に十分にかけていたのは Ruby, JavaScript, Java, PHPObjective-CMySQL といった応用領域ぐらいで、大学でやるような R や Haskell なんかの基礎領域習得してないで、アルゴリズム勉強はさっぱりだった。まぁ、あんまり優秀な学生ではなかったと思うが、それでも情熱はあったとは思う。真面目な学生ではなかったが、教授には可愛がってもらった。

これが、当時の自分の心境とスキルである。ここから冒頭に書いたような人生スタートする。あれは、記憶が正しければだけれど、twitterリプライだっただろうか。当時の自分他人設計書を基本として書くということにうんざりしていた。いつの日にか自分の書いたコード上場するという目標のために本物のベンチャー企業上場する時を共にしたいというのに、どうやったらそんな会社を見つけ出し、入り込めばよいのか皆目見当がつかなかったのだ。それで、twitterアカウントを手がかりに、あらゆる募集サイトに「プログラミングする企業に入りたいです」という書き込みをした。なんなら、増田にすらその書き込みをした。それで、色々な人から「うちに来ない?」というリプライをいただいた。正直、嬉しかった。それで、そのうちから「選ぶ」という選択をしなかったのは間違いだった。当時の自分は、それをせずに「サイバーエージェントに紹介しますので、とりあえず勉強会に来ませんか?」という書き込みをみて、ふらふらと雑居ビル一角にある共有オフィスへと出向いてしまったのだった。タイムマシンがあればこの日に戻って止めると思う。それぐらい後悔する日々が始まるとは当時は思わなかった。

もうすぐ真冬になろうという頃、「サイバーエージェント正社員になれるかも」という期待で、列車に揺られて前記のビルへ向かった。期待とは裏腹に、妙に古臭いビルであった。ベルを押して、勉強会だという部屋に通してもらうと、若い学生たちがそこにいてプログラミング勉強しているという。正直、自分医学部さえ目指さなきゃこういう生き方もあったのだろうな、とは羨ましく思った。自分オファーしたという人(O氏)は、この勉強会の座長だという。「私は人工知能研究しており、アメリカ博士号を取得した『天才数学者で、日本を活気づけるために母国にもどり、この会社を立ち上げました」という。サイバーエージェントではないらしい。あれ?、とは思った。まぁ、無下にはできないので、そこで課題を出されたのを5分ぐらいで終わらせた。伊達に何年もプログラミングをしているわけじゃない。ループで書くべきところを、再帰で書いた。すごいでしょ、オレっちとね。「できました、見てください」というと、O氏はこう言い出した。「ナニコレ?」とO氏。「ええ、再帰ですよ、漸化式みたいな?」と自分。出力は合っているので、O氏も認めざるを得なかったらしいが顔が険しくなっていく。どうも機嫌を損ねたらしい。そうすると、O氏は自分を別室に呼び出して「履歴書は?」と聞いてきた。「勉強会ですよね?」と返すと、「いいから、履歴書!」と言う。にっちもさっちも行かなくなったが、共有オフィスの他社の中国人職員の方が機転を利かせて仲裁してくれた。「そんなに言うのなら、彼にポートフォリオを作らせてみて評価してはいかがでしょうか」と。

イライラしながら帰宅したあと、もう二度と見たくもないO氏の顔とサイバーエージェント正社員というものを天秤にかけたとき、やっぱりサイバーエージェントにいきたいなーと思った。というか、実は当時に DMMオファーもあったのだけど、サイバーエージェントの方が良いと思って辞退した。このクソ人間(O氏)を認めさせたら、サイバーエージェントで働けるというのは魅力的だった。それで、Android(Java) + iPhone(Objective-C) でマルバツゲームを作り、 Bootstrap + jQueryRuby on Rails と MySQL で集計させてスコア比較させる、そしてサクラVPSCentOS運営するというプロダクトを持っていった。時代を感じますね。閑話休題。ソレを持っていたら、O氏は今回は前回と性格が違った。いきなり、怒鳴りだすのだ。ポートフォリオを見ないで。いわゆる「良い警官・悪い警官」というやつをやろうとしたのだろう。当時はそれがソーシャルエンジニアリングだと気がつけなかったが、いま思えば以前からナンパとかで良い思いをしていたのだろう。後で書くが、彼はロリコンだ。専門に人工知能を掲げているが、本当はチヤホヤされたいだけで自分努力せず、インターン学生にタダでプロダクトを作らせて「弊社は凄いです!」「あわよくば上場して金と名誉はゲット」、そんでもって若い学生インターンセックスしたいという真正クズ野郎だった。自分の深層意識で「こいつはヤバいやつだ」というアラートはビンビン鳴っていたが、「サイバーエージェント正社員」というニンジンが目を曇らせた。

そのあと、一月ぐらいはそのクソ会社でタダで自社サの修正をやっていた。こんなのもできねーのと思いながら。ある日「別の会社に行こう」といわれ、面接をうける。なぜか O氏も同席で。話を聞いていると、派遣させられるらしい。派遣登録もしてない会社が。「サイバーエージェントじゃない!」と抗議をすると、「俺に恥をかかせるのか!東京で働かせなくするぞ!」と脅され、派遣きまったあとで、履歴書を無理やりかかされた。給料ホームページに書いてあった額の半分、社会保険は無し、年金もなし、保険書もなし、という最悪な条件だった。派遣先はキツかったが、優しかった。それに、派遣当日から転職オファーをもらった。記憶が正しければ、平日に働いて、土曜日は帰社日日曜日勉強会に出席という日々だった。本当に休む暇がなかった。平日はほぼ終電だったのに、土曜日東京の端っこにこいとか、日曜日勉強会だから出席しろ、とか本当に辛かった。それでも派遣先の会社には迷惑をかけたくなかったので、期間が終えるまでは必死に働いた。そして、O氏から逃れるために「あなたとは信頼関係が築けない」という文を書いて退職した。そのあと、自分大学にも行かないで、別の会社就職した。あと、O氏は給料を払わなかったので、辞めた後に圧力をかけて支払ってもらった。

プログラミングスキルは働いてもスキルが付くということはなく、自学自習を続けないと上場するのに必要スキルは身につかないというのもわかってきた頃、父が死んだ。事故死だった。自分医学部に行けなかったことの申し訳のなさに、東京大学に行った後は父を邪険に扱っていた。とても後悔した。それで、半年ぐらい真面目に勉強して私立医学部入学し、医学部生として留年しない程度には進級はした。しかしながら、ふと寝る前に「プログラマーでいたかったな」と思うことは毎日のようにある。もう医師になるつもりで、プログラマーに戻るつもりは無いが、それでもプログラミングのことは好きで、毎日時間時間をつくって勉強している。好きなんだよな、プログラミングが。

最後に、O氏についてだ。あまり犠牲者が多すぎるのでネット上で事実を書いていったら、裁判所から開示請求が来てしまった。だからここでは本名と社名は書けない。だけれども、若者たちに「ホイホイベンチャー企業にいくと辛い目にあうかもよ?」っていう事例を例示しなきゃ、とは思うので「ヤバいベンチャー企業実態」について書いていこうと思う。



...という感じ。だから基本的ベンチャー企業に期待しないほうがいいよ。下手をすると、犯罪の手助けをするようなつらい思いをするよ。もし、仮にベンチャーに行くなら、高給かストックオプションマストで行こうね。おじさんとの約束だよ。

2022-05-16

anond:20220516155153

しろ逆やろ。WEBエンジニアなんて皆

Bootstrapの小綺麗だけど適当な見た目で良いと思ってるで。

2022-01-07

経験から1ヶ月!Pythonで観る将ライフを向上させた話(プログラム編)

まとめ

プログラミング経験から1ヶ月ほどで、将棋評価値の新たな方法でのグラフ化を行うPythonツールを作った。

https://github.com/k-the-p/notherscore

この記事は2本立てです。プログラミングより結果のグラフ将棋に興味がある方はもう一方の将棋から読むことをおすすめします。

未経験から1ヶ月!Pythonで観る将ライフを向上させた話(将棋編)

目標

評価値以外の観る将の楽しみとして、手の広さの可視化提案する

AIはわれわれアマチュア将棋への親しみを大幅に向上させてくれた一方で、棋士が悩みに悩んだ結果として評価値が下がる手を指してしまったときに、「悪手きたwwww」と騒ぐ主にABEMAのコメント欄には忸怩たる思いがあった。

とはいえ、もう評価値を知らなかった時代に後戻りするなんてことは誰にもできないだろう。そして、電王戦から将棋にハマった自分自身としても、AI否定はしたくない。

であるなら、AIを用いた新しくよりよい将棋の楽しみ方を探っていくしかないのではないか

以前から私は、「AIの手を指せるなら人間も苦労しないんだよなあ」と思っていた。あるとき藤森哲也先生Youtubeチャンネルで言っていたことを聞いて得心がいった。「AIの一手は最強の一手なんです。確かにプラス1000点になるけど一手間違えた瞬間にマイナス何百点になるような綱渡りの手。それよりもアマチュアの皆さんにはプラス数百点で得は少ないけど安全な道、最善の一手を学んで欲しい」(大意)と。

ここで言う「最強の一手」に人間にして最も近いのは紛れもなく藤井聡太四冠であろう。藤森先生アマチュアに向けて喋っていたが、その葛藤は間違いなくプロの中でもあるはずである渡辺明三冠が言うように「藤井くんと全く同じスタイルを今から目指しても絶対藤井くんより強くなれない」のは自明であるからして。

私はここにドラマがあると思う。また、最強の一手と最善の一手が等しく「いい手」に見えてしまうわれわれアマチュアとしては、そこを機械に教えてもらえるのであれば、棋力向上にも繋がりそうである

具体的目標

第1候補手と第2候補手の評価値の差を取ってグラフ化すればよさそう?

(差が小さければ手が広い、差が大きければ絶対手に近い、綱渡り

目指すのはあくまで便利な将棋ツール将棋AIを作りたいわけではないので、将棋AI自体局面を入れたら評価値を吐く謎の箱という扱いでよい。

手法

Python一択

グラフ化や数値の扱いだけでなく、将棋AIとのやりとりをやってくれるあれこれもあるようなので。

あと習得が楽だと聞いた。その話を教えてくれた人はもう10年間英語学習法をブクマし続けてるけど。

あと「読みやすコードじゃないと動かない」って設計思想がかっこいい。ついでに言うといわゆる「おまじない」が少なそうなのも魅力。(CのHello world挫折した経験あり。studio.hって何……)

何をしたか

詳しい人に聞く

プログラム講師をやっている?方が音楽制作を初歩からやってみる、という(残念ながら)リアルタイム視聴者が俺だけしかいないような配信があったので、音楽の基礎(についての知識は持っていた)を教えてあげたお返しのような形で、「pythonでこういうことがしたくてこういうライブラリがあるのはわかった。経験HTML+CSS変数導入前、Bootstrapなんてなかった)のみ。どうしたらよいか」という質問をしたら、「progateは簡単すぎると思うのでPaizaが丁度いいのではないか」というアドバイスを頂き、比較もせずに即登録したのだが結果的にはこれがドンピシャだった。

Paizaラーニング

最近流行りの、環境構築不要で講座の内容を書いて覚えるタイプサイト

無料で入門講座の序盤を受けていたらふと目に入ったのが、「対象者:これからプログラミングを学びたい方。HTMLがどのようなものかを知っている方。」でYoutuber先生オススメ完璧か?と思った。そして実際に完璧だった。

基本的に1講座3分+演習1~2問+やりたければ問題集たくさんという形式なのだが、これが簡単すぎることなく難しすぎることもなく、俺の知識レベルベストマッチだった。基本的に毎回何か書くことになるので、変数とは~みたいな解説だけで終わる回がほぼ無いのも飽きなくてよい。

Python入門(と言ってはいるがまだこれだけで発展編はない)の見出しは「プログラミングとは」「条件分岐比較演算子」「ループ処理」「リスト」「辞書」「多次元リスト」「関数」「クラス」「クラス発展」「例外処理」に各5~8講座*3分+演習、という感じ。クラス発展の途中で行けそうだと思ったのでドロップアウトして実製作に移った。実際関数まで理解していれば、この程度の小さなツールには十分だった(もしかしたらクラスを使えば多少楽になった場面はあったかもしれないけど)。

また、これは書いてる今気づいたことだが、上のコースで学んだことで、実際に役立たなかったものほとんどなかった(強いて挙げれば辞書くらい?使えてないだけかも)。このこともコース構成の優秀さを示している。

ここまででだいたい2週間くらい。

Google colab

もともとこのサービスは知っていたのと、谷合先生が実際に使っていたように、便利そうなライブラリのcshogiが主にcolab(jupyter)上で動かすことを意図しているようだったので、まずここから入った。最初はcshogiが列挙してくれる特定局面での合法手をリストに入れて、そのリストの項目数=その局面での合法手の数を出力することから始めた。これは本当に簡単にできて興奮した。

学習と好きなことが直結してると、こんなサンプルコードみたいな簡単なことで喜べるのでコストパフォーマンスがよい。

cshogiとやねうら王をusi連携する

cshogiのチュートリアルで紹介されているレサ改というAIがどうもmultipv(有望な候補手を2手以上挙げる)に対応してないらしく、強さ的な問題でいずれ手を出すつもりだった予定を繰り上げてやねうら王との連携を試みる。

makeって何?あー、もりかしてMakefileが無いと動かない?(これを書いている今もこんな理解である)みたいな人間でもなんとかやねうら王をビルド?することはできた。レサ改をcshogiに読ませる数行のサンプルコードがとても役に立った。今でもあの完成品らしき拡張子が無いファイルがなんなのか分かってない。(なお、評価関数nn.binが無いと怒られたのでどこのご家庭にもある水匠4のそれをぶち込んだら動いた。評価関数とやねうら王の分担は今もって理解あやふや)(また、途中でAyane[やねうらお謹製ライブラリ]も使おうとしたがcolab上では上手く動かす方法が分からなかった)

一応これでcshogiで局面の最善手と次善手およびそれらの評価値を呼び出せるようになったのだが、単にdebugでずらずらと余計なものまで出力するのではなく、重要な指し手周りのinfoだけ出力するようにしようとしたが、上手いやり方がわからず、結局こうなった。

sys.stdout = open('out.txt', 'a')
engine.go(listener=print)

ここは絶対もっとマシなやり方があるはずなので、識者の教えを請いたい。

ようやくWindowsPythonVSCodeを入れる

Colab上でまあまあ目処がついたので、この辺りでPython環境を作った。ここまでそれをやっていなかった理由は、「おま環」トラブル可能性をなるだけ遠ざけておきたかたかである環境が悪いのか俺が悪いのか分からない、というのは初心者にとって限りなきストレスである。あーネットが繋がらなくてルーターの設定や接続とか支払いとか文字通り部屋をひっくり返しながら調べてたら実はフレッツ自体が落ちてた件を思い出してイライラしてきた。cshogiはJupyter上で動かすことを意図しているようなので、それで動かなければ自分の書き方が間違っているのだとほぼ確実にわかる。

まあこの辺りはいろんなサイト見ながら仮想化などしつつ普通に仮想化が何か分かってないんですけど。

Jupyter notebook

これまでColab上で書いてきたものは多少の書き換えで動いたので、ローカルにJupyter notebookをインストールして、数字計算グラフ化を試みる。

ちなみにこの時点で得られているデータはこんな感じ。

go
info depth 1 seldepth 1 score cp -47 multipv 1 nodes 483 nps 241500 time 2 pv 3c3d
info depth 1 seldepth 1 score cp -86 multipv 2 nodes 483 nps 241500 time 2 pv 4a3b
info depth 2 seldepth 2 score cp -53 multipv 1 nodes 847 nps 423500 time 2 pv 3c3d 9g9f
info depth 2 seldepth 2 score cp -68 multipv 2 nodes 847 nps 423500 time 2 pv 8c8d 7g7f
info depth 10 seldepth 17 score cp -78 multipv 1 nodes 100163 nps 1963980 time 51 pv 8c8d 2f2e 4a3b 7g7f 3c3d 2e2d 2c2d 2h2d 8d8e 6i7h 8e8f 8g8f
info depth 10 seldepth 17 score cp -111 multipv 2 nodes 100163 nps 1963980 time 51 pv 3c3d 7g7f
bestmove 8c8d ponder 2f2e
go
info depth 1 seldepth 1 score cp 117 multipv 1 nodes 206 nps 206000 time 1 pv 2f2e
info depth 1 seldepth 1 score cp 78 multipv 2 nodes 206 nps 206000 time 1 pv 7g7f
...

今回の小目標は、goで区切られた中からから2行目と3行目のcpほにゃららを取得していい感じのリストにする、というものだ。この辺りは正規表現でなんとかなるだろうと見通しを立てたが、実際そうなった。

ただ、後手が見たとき評価値が後手目線なので、それだけにマイナスをかけるのはどうするか(そうしなければ、先手+3000点の次が「後手から見て」-2900点だったりして綺麗にグラフにならないのだ)を調べるのに結構時間が掛かった。

また、詰み周りでまたプラスマイナスカンストの絡む計算をしたくないのもあり、数値にNaNを入れてグラフ表記を省略することにしたのだが、そうするとnumpyの関係整数(とNaN)しか扱わないのに浮動小数点で計算しなければいけなくなって若干気持ち悪かったり。まあ動くのでヨシ!

中間報告

この時点で、ローカルにKIFファイルを保存し、pyファイルでcshogiと水匠を動かし、Jupiter notebookを開き評価グラフと手の広さのグラフを重ねて表示する、というそれなりのものは出来上がった。

簡単に言えばpyファイルで1手10局面(森内チャンネルに出てたHEROZの方が使ってた数字をそのまま使っているので特に意味は無い)探索させ、最善手と次善手についての生の評価データを吐き出させ、ipynbでそれを整形し、グラフ化している。

基本的に全部VSCode上でできるので、慣れれば計算時間も含めて10数秒で結果が出るのだが、このワークフローはいかにも美しくない。

なので、Flaskという簡単らしいフレームワークを使ってローカルWebアプリとして使えるようにしようと思った。inputとoutputをどうにかするだけだから余裕やろ。

Google colabを触り始めてからここまで1日。圧倒的成長!

ローカルWebアプリを作る

Flaskを学ぶ

Paizaラーニング再び。後半ではデータベースとか本格的な話もあるようなのだが、txtに書き込む一行掲示板を作るまでの前半部を高速で履修(演習は全部飛ばした)。なるほどー、こうやってやりとりするのね、と最低限は完全に理解した

モジュール

Jupyter向けのコード普通Pythonに直してあっちで数字を出してこっちでそれを受けて元に戻して……とかやってると循環参照か何かで怒られることに。その対策に細かく部分を分けて関数にしたのだが、その場合ってもしかしてdefの内部しかまれない?(共通部分も読まれると思ってた)(いや、共通部分は読まれるけど他のdef内が見えないのか?何も分からん)なるほど。こうなると関数の内部から上に戻るためにクラスとか欲しくなるのかなーという感想

最終的にWebに公開しようとこの時点では思ってたので、txtに一旦出力するのが安全性的にどうかとか考えてたのだが、テキストの読み取り周りでハマる。結局抜け出せず諦めた。

以降は、HTMLダブルクオートが抜けてるのに一時間気づかないとか、FlaskのXSS対策対策をするとか、ファイル書き込み設定をミスって2万手くらい蓄積されて評価グラフが大変なことになったが、原因に気づかずひたすらグラフ生成部を調べ続けるなど、非本質的問題にかかずらっていたので書くことは特にない。

GithubVSCodeとなら連携がらくらく

なので、最初にgitignoreしてなかったせいで1万ファイルくらい上げそうになったけど、それ以外は特に問題も無く。中間報告からここまで2日ほど。結局1ヶ月かけずにプログラミングをそれなりに身につけることが出来た。「プログラムを覚えたければ作りたいものを見つければいい」というのは本当だな、と改めて思った。

で、どうなったの?

については将棋編の方で詳しく書いています

https://anond.hatelabo.jp/20220107060727

どれくらい書けるようになったのか、を見たい方は主にvalue_output.py(将棋AI思考させてデータを取り出す)とgraph.py(データを整形してグラフを書き出す)を見ていただければいいかと思います

謝辞

最初にPaizaを教えてくださったYoutuberの方、cshogiを初心者でも使いやすいように作って展示してくださったTadaoYamaoka様、水匠開発者のたややん様、水匠含めこんにちの将棋AIの基盤を作ってくださったやねうらお様、cshogiを通して利用したpython-shogiのKIFパーサーを書いてくださったTasuku SUENAGA様に、厚く御礼申し上げます

最後

私は現在仕事Twitterフォロワー募集しています

30歳無職よろしくお願いいたします。

https://twitter.com/k_the_p

2021-08-29

やりたいことがあるのに、ハードルが高い

最初結論から書くと、「データサーバーとやりとりする掲示板のような機能実装に1年かかっても取り組めていない」

  

webサイト作りがむずかしい

個人的目標があり、非IT系だが、webサイト作りをやってる。

自分IT系仕事ではない。

しかし、なんとかVue.jsで静的サイトで動きを出したり、BootStrapでタブを作ったりすることはできる。

Firebaseで静的サイトや、AWSでS3にサイトtmlを置いて公開することもできる。

しかし、そこからハードルが高い。

掲示板機能を持たせるには、投稿データを保存したり表示したりする必要がある。

そうなると、さーばーか情報を読み出すべきだが、そもそもサーバー情報をどうやったらためて置けるかがわからない。

ails場合セキュリティーが怖いからやめておきたい、できればクラウドサーバー機能をそのまま使いたい。

クラウドサーバーデータ投稿したりクラウドサーバーから読み出す機能もっと簡単にならないかなあ。

Udemyや本を読んでも、なかなかできるようにならないです。みなさんどうしてます

2021-06-17

CTOだけど、一ヶ月Web就職レビューしてみた。

https://anond.hatelabo.jp/20210617075257

0. 温度感

基本的現在では、バックエンドフロントエンド運用保守全てができないエンジニア価値は無い。

経験者でも、これらができない/わからないのは、相当恥ずかしいことだと思った方がいい。

典型的はてなー意識の高さ。

上がってるような基本(元増田に上がってるやつの倍ぐらい)が全部立ち上げからできて

2〜3個プロジェクト経験したらテックリード素養が既に身についてそう。

まり、ただのエンジニアにはそこまで要求されない。

プロジェクト的にもどっちかが弱いと

Rails/DjangojQuery+Bootstrapみたいな構成

Amplify/FirebaseにVue/Reactみたいな構成全然あるので

フロントバックエンドも一旦はどっちかでいい。

面接はなんとか抜けてもらうとして、

チーム開発での最低限の目標としては、

成果物から指導学習コストレビューコスト技術負債マネジメントコストを引いた分が正になっていれば

ひとまず「チームに居ていい人」と見なされそう。

チーム的に良くても、経営層にそれで許されるかはわからんのでその辺の立ち回りも上手いことやるとして、

一旦は、正の生産性を目指してほしい。

以後、ブコメで誰一人一ヶ月でできるって言ってなくて笑うので、

一ヶ月というのは無視して、三〜六ヶ月程度をイメージしつつ書いていく。

1. 言語: PythonJavascript

これだけで一ヶ月経つ気がするが正気か。

似たような言語なのでどっちからやってもいいし、両方同時にやってもいい。

どっちかしかやらないならJavascriptおすすめ。後ででてくる、Flaskは適当Expressかに置き換える

現場だとほぼTypescriptなので、Javascriptはある程度慣れたらTypescriptに移行したほうがいい。

どちらも、Python2とES2015以前の記法というレガシーネット上に転がってるので参考にしないように注意。

パッケージ管理単体テストタスクランナー

この辺は6のフロントフレームワークと同時にやる。

コードは断片的なサンプルではなく

一貫性があって

・正しい書き方がされた

お手本プロジェクトをなにか(github書籍など)で手に入れて読むべき。

おそらくフレームワークに乗っかっているので並行して進めることになる。

6. フロントエンドフレームワーク: Vue.js

話の流れで先にこっち

現在コーディングのグッドプラクティスデザインパターンフレームワークの形をしている。

なので、ReactとVueをその思想から理解しきれれば、プログラミング言語の潮流の最先端に追いつけるはずだ。

とはいえ最低限としては使い方が分かるところまで。

TypescriptVue.jsも書き方をどこまで取り入れるかが使用者裁量に任されてるし、

開発でVueとReactのどっちを使うかはチーム次第なので、

一旦React+Typescriptガチガチに書かれたコードプロジェクトを拾ってきて、必死で解読するのがいいと思うなー。

2割ぐらいわかった気になればチーム入ってから(React, Vueどちらだったとしても)動けそう。

パッケージとかテストタスクデプロイ辺りもこのタイミングで拾ってきたプロジェクトを使って学ぶ。

2, 4. ツール: gitDocker

バージョン管理コンテナ思想が優れているのは自明なので、これらはツールと見ていい。

そして、後からプロジェクトに入った人がプロジェクト流儀に沿って使う分には難しいことはなさそう。

採用に来た人がgitとかわかってるとチーム開発経験者だなーって思うし、知らないと未経験者なんだなーって思うし、

そういう意味ではチーム開発の経験があるかどうかの試金石にはされてそう。

構築できる、ではなく、触れる程度で良さそう。

gitプロジェクト流儀によると書いたが、git-flowイメージ図を理解して運用できるのがよい。

https://qiita.com/KosukeSone/items/514dd24828b485c69a05

3. OS: Linux

これは「パソコンの使い方わかってますか」ぐらいの温度感

ファイルパーミッションユーザープロセスのような基本概念理解する

一冊読めば済むだろうし、概念系はさらっておいてほしい。

grepやfindやxargsなどのコマンドを組み合わせて簡単な処理を自動化する

こういうのができるんだなーって言うのを知っておいて、調べつつ書ければ十分。

sedとか正規表現も。

あとはシェルスクリプトとかって思ったけど同様のことはPythonでもできそう。

IPアドレスを調べたり、SSHリモートマシンログインする

地味にSSHログインした先の環境だと、vimが主要なテキストエディタになるので

vimを最低限触ることだけ要りそう。もういらないかもって思ってたんだけどなー。

ファイル開いて入力モードに切り替えて書き込んで保存して終了

チュートリアルする。拡張とかはいらない。

細かく書いたが、LPIC-1の範囲がほどよくまとまっているのでそっちを参照するとよい。

5. サーバーフレームワーク: Flask

フレームワークを覚えること自体重要なのではなく、Web開発の基本を習得することが重要

これが意図なら

HTTPルーティングデータベースSQL認証セッション管理などは当然すべて覚える。

この辺の機能を持った小規模Webアプリを作ってHerokuデプロイすれば一旦完成とみなしてよさそう。

コード書き写しただけにならないようには注意しつつだけど、長く見て5人日ぐらい?

慣れると1日あればいけると思う。

フレームワークもなんでもいい。

軽量である必要もなくて、

Djangoとかでも各コンポーネントがどんな働き方してるか程度はわかるだろうしそれで十分。

余力があれば複数個触ってみたり、人から勧められたらそっちでも。

最近サーバーレス&NoSQL流行ってるのでFirebaseとかもやればいいと思う。

7. アルゴリズム

コメントリーが荒れててウケる

実務プログラミングで最低限必要アルゴリズム力は

「書いてるコード計算量オーダーを把握していること」

に尽きる。

計算量を気にしなかったせいで線形検索メソッドとfor文を組み合わせて

O(n^2)やO(n^3)のロジックを書いてしまって

データ量が万〜十万の本番データで遅延するとか

それらに対して分散や非同期処理で解消しようとするとか、

ちょっとでもアルゴリズムを触った人ならアホらしいなって思うような行為

アルゴリズム不要勢は平気でやるぐらい、両者は溝が深い。

計算量を意識するだけなら、AtCoderABCのC〜D問題辺りが解ければ十分。

8. セキュリティ

有名な脆弱性攻撃手法は、ほとんどフレームワーク等で解決手段が用意されている

(XSS対策自動エスケープなど)

のでアドリブをせずに正しい書き方でやれば良い。

開発現場でもセキュリティリスクがある箇所を1から自前で実装することを経験が浅い者にはやらせないので、

ただただ、フレームワークが正しいとしているやり方をなぞるのが良い。

最後

開発の勉強のやり方としては、

・正しいコード見本を手に入れること

公式リファレンスを読むこと

エラーメッセージを読むこと(そしてググること)

この辺りの習慣があればやってけんのかな、

その他、チーム開発って面では

アジャイルサムライプロジェクト管理)とか

TeamGeek(人間性)とかインプットしておくと共通言語が増えて嬉しい。

この方向で進めてけば、その途中で正の生産性≒足引っ張らないぐらいになれるので、

そしたらやってけるんちゃうーって感じ。

経験から1ヶ月でWeb企業就職する勉強法

取り上げた技術は、本格的な開発でも役に立つもので、最も学習コストが低いものを選んだ。

重要度が低いものは載せていない。たとえばHTMLCSSなんてググりながら書けば全く問題ない。Bootstrapなどのフレームワークも全くやる必要はなく、仮に就職先で使っていたら覚えればいい。

逆に言えば以下に挙げる技術は、そもそも概念自体プログラミングにとって普遍的ものであり、(基礎的な部分を)調べながら使うようではエンジニア失格ということ。

基本的現在では、バックエンドフロントエンド運用保守全てができないエンジニア価値は無い。

以下に挙げた技術(①⑤⑥は他の言語フレームワーク代替可能)が身に付いていなければまともな企業就職することは難しい(もちろん、下らない業務システム下請けで作ってる底辺企業には入れるだろうが)。

経験者でも、これらができない/わからないのは、相当恥ずかしいことだと思った方がいい。

特定言語フレームワークの書き方を知っていること自体意味は無い。

重要なのは、他の言語フレームワークにも共通する基礎を理解すること・保守性やセキュリティなどの品質を高める使い方ができること。

PythonJavaScriptマスターする

この2つは習得が容易だし、今覚えておけば向こう10年腐ることはないだろう。

プログラミング言語完璧理解する必要がある。

基本的な構文や、よく使う標準ライブラリは勿論、高階関数クラス・非同期処理等の発展的な機能も知り尽くしていなければならない。

言語のみではなく、パッケージ管理単体テストタスクランナー等の周辺ツールの使い方も熟知している必要がある。

また、「リーダブルコード」や「コードコンプリート」に書いてあるような良い作法も身に付ける必要がある。


Gitの基本操作を覚える

Gitを使えないのはプログラマーとして論外。細かい機能は調べればよいが、

等の基本的フローは必ずできなければならない。


Linuxの基本操作を覚える

多くの場合、本番環境テスト環境Linuxサーバーであるから、以下のような基本的概念と使い方を知っておく必要がある。


Dockerの基本操作を覚える

環境構築、CIデプロイなどは、現在コンテナを使って行うことが当たり前になっている。

これも細かいことをすべて覚える必要はないが、Dockerfileの書き方や、docker-composeの使い方などは知っておかなければいけない。


⑤ Flaskを覚える

Flaskは、数あるWebフレームワークの中で最も簡単。本当に呆れるほど簡単で、Pythonさえ書ければすぐにアプリを作れる。

フレームワークを覚えること自体重要なのではなく、Web開発の基本を習得することが重要HTTPルーティングデータベースSQL認証セッション管理などは当然すべて覚える。

データベースは、就職したらMySQLPostgreSQLなどを使うことが多いかも知れないが、今はPythonの標準ライブラリにあるSQLite3を使えば十分。

作ったアプリを公開したければ、「Heroku」などにデプロイするのが良いだろう。

追記 2021/06/17 14:07

ブコメで指摘をいただきました。HerokuではSQLite3は使用できないようです。公式ドキュメントに従ってPostgreSQL使用して下さい。

SQLite3はファイルデータを持てる簡易DBなんだけど、Herokuデプロイしてもストレージ的な使い方はできないから、結局PostgreSQLを使う必要あるから注意してね。(DAOを丸ごと書き換える羽目になる)

参考: https://devcenter.heroku.com/ja/articles/sqlite3

ありがとうございます

Vue.jsを覚える

今の時代フロントエンドフレームワークなしで作るのはただのバカ

2021年現在実用的なフロントエンドフレームワークはReactとVueしかない。Vueの方が少し簡単なのでこちらを選んだが、JavaScriptをしっかり理解しているなら大差は無い。

フロントエンドには膨大なパッケージ群があって全部覚えるのは大変だが、とりあえずまずはVue完璧に使えればいい。Webpackの設定などは既存のものを流用すればいい。



基本的アルゴリズムを学ぶ

アルゴリズムは全てのコンピュータ技術の基礎であり、絶対に知っていなければならない。

高速フーリエ変換のような高度な数学必要ないが、クイックソート木構造のような基本的アルゴリズムは当然、その性質を知っていなければならない。

それらは言語組み込み関数や標準ライブラリでも使われており、理解していなければ、それらの機能を正しく使うことができない。

また、プログラムを読み書きする際には、そのコード計算量を見積もれなければならない。

セキュリティを学ぶ

セキュリティは言うまでもなく学ばなければならない。

有名な脆弱性攻撃手法XSSSQLインジェクション・CSRFなど)が何だか理解していて、その対策実装できなければならない。

各種暗号化技術署名などについても、実装の詳細は知らなくていいが、共通鍵暗号や公開鍵暗号などの特性理解する必要がある。

認証パスワード管理などを実装する際は、当然ベストプラクティスに従わなければならない。

2021-01-20

プリセット・低音圧」批判かいう「今時Flash使ってないサイトとか

音楽ジャーナリスト、YOASOBIについて「このビートの単調さと音色・音圧のショボさが世間で許容されてるのはちょっと信じたがたい」

https://togetter.com/li/1654398

これ、タイトルだけ見て「今更音圧……?まーでもそんなこと思う人もいてもおかしくはないな」と思ってスルーしてた。

で、さっきこの増田を見かけたので答えてあげるべく元ネタも読んでみた。

音楽評論家に聞きたいんだけど「ショボい音色・音圧」ってなに?

https://anond.hatelabo.jp/20210119190456

アルバム通してちゃんと聴いた。この気恥ずかしさは嫌いじゃないんだけど、このビートの単調さと音色・音圧のショボさが世間で許容されてるのはちょっと信じたがたい。少なくとも家のスピーカー聴く音楽じゃないですね

だとしたら音色の選び方にもう少しこだわりはあるでしょう。プリセットしか使わないという強い意志を感じます

ええ……。元記事が何を言っているかはてなの人に分かりやす話題で言うと「Webサイトを全部眺めてみた。この気恥ずかしさは嫌いじゃないんだけど、このデザインパターンの単調さとFlashも使っていないサイト世間で許容されてるのはちょっと信じたがたい。少なくともFullHDで開くサイトじゃないですね」と2021年に言ってるような感じか。

ビートの単調さがダメって、お前2020ビルボード1位の前で同じこと言えんの?

https://www.youtube.com/watch?v=fHI8X4OXluQ

3分間全部一本調子音色の抜き差しも無しやぞ。

音色がショボい」に関しては、字面だけ見たらまあ同意するよ。でもそれが「プリセット批判」in2021となれば話は別だ。

増田音色がショボいがどういうことかを説明すると、一般的には「生録ではなく打ち込みの音色が安っぽい」というところを意味すると思う。昔のMIDIとかカラオケとか、あるいはスーパーでかかってるJ-POPインストとか、音色がなんか「パソコンで打ち込みました!」「生の音じゃありません!」って感じしない?逆に最近ピアノだけで数万円数十ギガバイトするような音源だと、ピアノの鍵盤から指が離れるノイズまで拾っていたり、弦と弦の共鳴まで再現していたりして、生の演奏区別がつかない。

そういう意味でYOASOBIの音色がショボいことに異論は無い。まあ、後ろの音をカットして極端に打ち込みっぽくしてる夜に駆けるのピアノ代表的なように、それはあえてやってることなのは明らかであるので、本人達はショボいの一言で済まされると嫌だろうけど。

し・か・し!この音楽評論家は「音色がショボい」をそういう意味では使っていない。「シンセサイザープリセットをそのまま使っている」ことをもってショボいと言っている。まあそれはいいよ。別に広辞苑に音がショボいの定義が載ってるわけでもないし。

し・か・し!2021年にそのことをもってアーティスト批判しているとなると正気か?という感じだ。さっきの例に載せきれなかったが、これは「bootstrap.min.cssを読み込んでる!手抜きだ!このサイトはショボい!」と言っているに等しい。いや、使い方次第だし、つーかそれ今時普通だし……という。

シンセサイザーに出荷時に登録されたプリセットそのまま使うのは手抜きである考える人がいる(というかいた、絶滅危惧種)のはまあわかりますよ。でもね、2021年に「プリセットしか使わない曲が世間で許容されているのは信じがたい」とか音楽評論家が言っちゃうのは死ぬほど恥ずかしいことなのでやめた方がいいと思います(「プリセット~が許容されるのは嘆かわしい」というのだったら賛同はしないが理解は出来る)。

まずあなたは打ち込みJ-POPにそこそこ詳しい音楽評論家顔で登場していますけど、小室哲哉ってひと知ってますちょっとマイナーかな?多分知らないと思うのでただのリスナーの僕が評論家先生説明してあげますが、「プリセットしか使わないでJ-POPで天下を取った男」です。小室プリセットほとんど弄りません。そのことを彼はインタビューで度々悪びれもせず語ってきました。

https://www.youtube.com/watch?v=LgBxze0ye94

これの30秒過ぎからクラブ系の曲を作ったことがある人だったらフフッとなると思う。なぜならここで、Sylenth1というクラブ系で1番人気のシンセサイザーの、起動して一番最初に鳴らせるプリセットがそのまま使われているからです。他に90年代当時の曲でも、あのピアノはどのシンセの何番のプリセット、とか結構バレてる。本人も隠してないし。

と、いうわけで20年以上前にはもうプリセットまんま使いで天下を取った人がいた訳なんですよね。評論家さんはご存知なかったみたいなので今日小室哲哉名前だけでも覚えて帰ってくださいね

で、別にプリセットまんま使いは新しいことでもないのだが、むしろ最近トレンドだったりもする。海外アーティストトラック(要するにソースコード)見てみ、やつらNexusめっちゃいい音のプリセットが大量に入ってるシンセbootstrapuiパーツみたいなもん)しか使ってねーぞ。

まーそんな感じなんで、2021年プリセット批判は正直かなり何も知らないのがバレて共感性羞恥でキツいっす正直。

に、加えて音圧!2021年に音圧がない=悪いとかいう論をプロがぶつとは夢にも思わなかった。音圧戦争ってFlashサポート終了より前に終了したぞ。それもまさかご存知ない……?

そもそも音圧が何か分からない、あるいは最近の音圧事情が分からない方に説明します。CDとかの場合、入れられる最大音量ってデータ的に決まってるんですよね。弁当箱の容量と思ってください。で、人間って大きい音の方がいい音に錯覚してしまうんですよね。弁当カロリーが高いほどジャンクに旨く感じてしまうと思ってください。そうなると弁当箱いかカロリーを詰め込むかという戦争が始まりますね。

音圧が高い曲の例

https://www.youtube.com/watch?v=e-IWRmpefzE

このあたりの話は「音圧戦争」とか「海苔波形」とかでググってもらえればいいんですけど、決まった容量の弁当箱に詰め込めるだけ詰め込むと色々犠牲になるように、音楽でも音質が犠牲になっていました。

で、それを技術解決したのがYoutubeとかSpotifyとかですね。彼らは音圧が高い曲の音量を下げて、他の曲との音量差を少なくしました。揚げ物使った弁当弁当箱サイズ強制的に2/3にするイメージですね。そうして消費者錯覚に騙されず本当に美味しい弁当を選ぶことができるようになりました。めでたしめでたし。というのが去年一昨年あたりまでのあらすじなんですけど、評論家さんご存じない……?で、去年あたりはその音量を下げられる中でいか上げ底とかで消費者錯覚させていくかとか、あるいは消費者の側で「ここ10年くらい揚げ物ばっかで飽きたか煮物とか逆に今新しい気がするわ」とかムーブメントが出てきてるのも、これもご存じない……?たとえば最近Youtubeとかで80年代Citypopとか流行ってるのはその流れもあります

総評:あの音楽評論家の言っていることは無茶苦茶なので理解できないのが正しい。増田は悪くない。

(2021/2/7追記)書きました anond:20210207093448

2020-12-30

もうすぐ年末年始休暇も折り返しに差し掛かるので軽く振り返ってみる。

26日~27日

作っていたウェブアプリJavascriptからTypeScriptに移行した。

自分はこのウェブアプリに関して『自分の死んだ後も変わらず動作し続け、後世の奇特な人が気が向いたらメンテ出来る』ことを目指しているので、できるだけフレームワークなどは利用せずpureJavascript実装していた。最初jqueryを使っていたが廃止し、bootstrapも使っていたが廃止し、Vue.jsで作り直したものも本番投入せず廃棄した。他のウェブアプリで新しい技術を試すことはあっても、このウェブアプリだけは徹底的に保守的スタンスを貫いてきた。でもここ数年の流れから言って、TypeScriptなら将来的にも大丈夫かな、と思えて来たので、満を持してのTypeScript化。

イベントの実行順序などで多少苦戦したものの、それ以外は大きな問題もなくTypescriptで再構築することができた。

あーやっぱり型があると良いね。画面制御と描画処理が今まで1つのモジュールでやっててそれを何とか解消したかったんだけど、型が入ることでそのリファクタリング安全に行うことができた。描画周りが分離できたんで、そこだけvueなりreactなりに再挑戦するのもアリかもしれない。どっぷりフレームワークに浸かるのは避けたいけど、部分導入だけなら後で捨てるのも容易になる。捨てるのが簡単ならちょっとくらい試しても良いかもしれない。

28

仕事。みんな割りかし休んでるし、自分有給取れば良かった。

29日30日

Google App Engine動作している自分サイトPythonからGoに移行した。

サーバーサイドではほとんど何もやっていないので別にPythonで不便はなかったんだけど、インスタンスの起動がGoの方が早いらしいので、Goに移行することにした。起動が早ければ待機させるインスタンスの数を抑えられるので、費用の低減を図れる。Goで作り直すと言ってもほとんどが静的なhtml手作りbootstrapからhugoに移行して、サーバーじゃないとできない最低限の処理をGoで書き直し。素人感丸出しのサイトが、hugoテーマのお陰でそれなりに見栄えのするものになった。

2020-12-13

増田に対抗してケン匿名ダイアリーを開発してみた

ちゃんねるの嫌儲板住民で集まる匿名ブログ

https://kenmod.demupa.net/

仕様は多分割と劣化版だけど今のところは登録不要で気軽に始められるのと住民層がケンモメンというところが差別化ポイント

ユーザー投稿型なサービスはどんなに優れたシステムであってたとしても住民層によって空気は大きく変わるので、最近はてな見て疲れるなぁと思うことが増えてきたこともあっていっそ作ってみた

開発は原点回帰してbootstrapJSフレームワークも使わない軽量仕様

まあでもこのくらいのサービスでも階層的な返信機能結構実装が面倒だったなぁ。

多分ここと違ってひっそりやってくと思うから嫌儲はてな民がいたらよかったら使ってみてねー

2020-11-09

anond:20190110011902

いや普通にフォトショデザインするだろ…

問題は、実装可能性が乏しいデザインが多くてエンジニアからフィードバックが膨大に必要だとか、画面サイズや内容の可変への考慮が浅いとか、そういう所では。

単にB2B業務システムなら、フォトショ使うまでもなく、ポンチ絵だけレイアウトしてあとはbootstrapなりbulmaなりmaterial-uiなりでいいだろって話ならまぁわかる。

…が、お前そこまで有能でもないよね。書いてる内容で分かる。他人disるほどデザインわかってる?

まぁこう言われると「俺はエンジニアであってデザイナーじゃないから」って言うんだろうけど、デザイナーも「私はデザイナーなのでHTML/CSSは私の仕事じゃないです」って思ってんだよ。

結局お前がその程度だから、その程度のやつと一緒に仕事してんの。

2020-10-14

会社コーディングできない自称webデザが本当に苦手な話し

DTPからweb移行でももうちっとあるでしょなAdobe知識がないうえ、ワイヤー作ってくださいも最初通じずなんでもいいかデザイン出してって出てきたものに沿ってざっくりbootstrapで手抜きして組んだら

文字サイズが〜余白が〜改行が〜

てめえPC/SPデザインよこせつうたのに出てないし、aiのと異なる口頭での文字サイズもっと大きい小さいのがいいとか舐めてんの?そう言うこだわりあるなら自分コーディングするか人にちゃんと指示しれや

つかaiから画像の切り出しアセット関連の機能も知らず解像度てかサイズたりてねえっての

で、もらったデータはやつしか持ってないモリサワフォントOLかけたのと元のとでLPなんこもつくるそれ×2とかで、全部同じファイルアートボードに入れてよとかデータ作りからコケてるからデータもらった後にこう作って欲しかったとかできないじゃん

そこまで指示されるデザイナーってなに?素人自称webデザ?つかデータ作るときに聞けよ

って期待してんのがクソか?ハァー

で、「コーディングできないからァ」じゃねえわ、手前がやれ

ジョー氏にはサイト機能してればそんな細えこあいいんだよって言われてるし締め切りも迫ってるから目先の制作をあげるの優先で本人はコーディング丸投げして暇になったからなんか仕事ある?って聞いてるんだーとか聞こえてんだよクソが

って言う愚痴です

2020-01-20

anond:20200118204308

結局自己解決しました。。。

Flotr2でグラフを描画する処理はウェブページの他の要素を全部読み込んでから実行する必要がありました。

多分Flotr2がグラフを描画した後にbootstrapがそれを上書いてしまったのだと思います

まり、onloadイベント処理で描画を実行することで解決しました。

2019-06-19

今更ながらBootstrap使ってみたけど

結構覚える事いっぱいあるな…。

サクッと管理画面とフォーム作ろうとしたけど、思いの外歯痒い。

最初Bootstrapに全部依存させて書き始めたけど、依存しすぎてかえって考えずらくなってしまう。

初めて使うフレームワークを使うとよくある事だけど、サーバーサイドと絡む所とかビルド設定で頭パンパン

使いこなしている人はすごいよ…。

ログイン ユーザー登録
ようこそ ゲスト さん