はてなキーワード: UNIXとは
言語によっては標準的に月末日を取得できる関数が用意されている
用意されてない場合もそこそこあるし
サードパーティー的なライブラリだとライセンスなどメンテナンス含めて面倒になるので避けることも多い
そもそも仕様を「月末日」などという不確定なものにせずに28日にしてもらう
ちゃんと仕様を決める部門と連携が取れていれば多くの場合で28日にしてくれるし
「28日支払い」が多いのもこのためだと思ってる
割とよくある実装がこの「次の月初めから1日(1秒)引く」という実装
2024年2月の月末日を取得する場合は2024年3月1日のUNIX時間から24*60*60秒を引いて計算する
ただし、実装を間違えると12月31日のときに失敗するので注意が必要
各月の月末日をマップとして保持しておいて取得させる
関数実装するなら if(month==1) return 31 とかを12行書けば実装できる
自分で実装する場合はプログラミングの教科書にあるぐらい有名なのでコピペでもChatGPTでも使えば良い
ただ仕様をそのまま実装せずに「4で割り切れたら閏年」でも問題無い(やったことはないが)
「それだと2100年でバグる!」
ちなみに過去の日付であっても2000年はバグらない(そのための400年処理だし)ため
ひとえに、IT云々に関わらず、リモートかどうかに関わらず、発注者と受注者の信頼関係だと思います。
私は二十数年前まで、メインフレームのCOBOLやJCL、UNIX上のCなどを扱うインフラ系システムを切り盛りするエンジニアでしたが、脱サラに失敗して非正規を今まで続けて参りました。
結局は現役から離れた期間が長くなり、50も過ぎますと、さすがに現場の技術者は務まりません。
まぁ・・・簡単なCですとか、EXCELの関数を駆使したシートくらいは作れますが、そんなレベルでは通用しませんよね。
受注者は自分の能力をどう宣伝できるのか?発注者はどう能力を測るのか?それが難しい。
実際、私も地方の中枢都市在住ですが、なかなか、中央のレベルで仕事できますよ!って主張するのは不安があります。
一番手っ取り早いのは、とりあえず出勤してもらって、ある程度レクチャーして、その結果どれだけのレスポンスがあればリモートにしても良いかなぁ・・・って感じなんだろうなぁと思います。
標準ライブラリのすべての関数のありとあらゆる引数に対する挙動を把握している?
標準コマンドは標準入出力を通してプログラム同士で連携することを想定して作成されており、
入出力の破壊的変更を気軽にコミットしようとしたら秒でハネられます
「ゾウリムシよりも蟻は大きい」を「蟻は大きい」で切って引用するのはやめましょう
規模が大きくなると信頼できない、その場しのぎ的な技術であるのはpythonなどのスクリプトの実行環境も同様です
すべての処理、すべてのプログラムをRustで書くような行為はきわめて非生産的ですし、シェルスクリプト以上に危険です
「よく検証されている」というのはされているかいないかというバイナリーな概念ではなく程度問題なので、UNIXの標準コマンドと高級言語の標準ライブラリなら標準コマンドの方が"遥かに"よく検証されているし
論理的じゃないよね
メンテナの数、レビューする人数、実際に動作している環境etc
シェルスクリプトに使用したコマンドのすべての挙動を把握している?
使用予定のオプションだけでも出力結果のすべてのパターンを把握している?
人が手て使うことを想定された曖昧さの残るコマンドと、高級言語の機械が使うことが前提の曖昧さの少ない機能だと全然違うものだと思うが
そんな事無いよね。Linuxサーバの保守とかでパッチノートとか読んだこと無い?
インストールし終わったらほとんどアップデートしてない凄まじい運用してるんならあれだけど
「よく検証されている」というのはされているかいないかというバイナリーな概念ではなく程度問題なので、UNIXの標準コマンドと高級言語の標準ライブラリなら標準コマンドの方が"遥かに"よく検証されているし
論理的じゃないよね
別に高級なスクリプト言語でも標準ライブラリやインタプリタのバグは踏むときは踏むし
マイクロタスクな標準コマンドは高級言語のインタプリタほど頻繁なセキュリティアップデートは必要ないので使うバージョンはだいたい決まってるし
「よく検証されている」というのはされているかいないかというバイナリーな概念ではなく程度問題なので、UNIXの標準コマンドと高級言語の標準ライブラリなら標準コマンドの方が"遥かに"よく検証されているし
ワイもや。工学系学部に情報系が組み込まれている系の環境だったやで……。
でも、実績も金も、学生も金を持ってる大学が次々とWIndowsが動くUnixとしてMacを推奨しててて、きらきらやなあ、と指をくわえて見取ったんや……。
その後、ドロドロインフラ系ITの仕事に入って、学生時代Linuxで通した事を感謝してるんや。
自分語りすまんの。
今でこそWindowsでも全く問題なく開発できるけど、ちょっと前は「Macのが開発体験が良い」と言われていた。
具体的には2011~2015年あたり。
2013年のころ、俺はWindowsで開発していた。WSL2なんてものは当たり前に存在しない時代だ。
たとえばC言語を使いたい場合、MinGWとMSYSを使ってこんなかんじで必要なものにチェックマークをしてインストールしていた。
まちがえた。俺が使っていたのはCygwinだ。こんなかんじでインストールする。
「パスを通す」とか言われていた時代だ。今ではインストーラがほとんどやってくれる。
Windowsのコマンドプロンプトがアホほど役に立たないので、msysCygwinのコンソールを使うのだ。
Pythonのインストールにもパスを通していた時代だった。当時はまだ2系が主流で、卒論を書く際、大学の教授から「3系は使ってもいいけど、俺は知らないからサポートできない」と言われた。
Scipyはインストールしなければ使えなかったので、「python scipy インストール」で検索して出てきた記事を参考にしてインストールしていた。これがまたエラーの連続だった。
プログラムを開発するエディタも、vim、emacsがまず候補に上がった。どちらも癖のあるエディタなので、そういうのが嫌な人はサクラエディタが推奨されていた。そして少しして登場するAtomに感動したのだ。今ではあたりまえのようにVSCodeがある。
ちなみに俺はPythonの開発ではIDLEというのを使っていた。知ってる?こんなの。
そんなWindowsユーザーを少し煽るような(Winユーザが自虐するような)、「プログラミングするならMac」という風潮があったと記憶している。そこから「どうやらMacはUnix系で、コンソール操作が簡単らしい」「文字がきれい」「Windowsでは定期実行するためのcronすらないが、Macにはある」「xcodeというのがあるからめちゃくちゃプログラミングがラクらしい」みたいなイメージがあった。
今ではWindowsも随分便利になったし、IDEやインストーラがなんでもしてくれるようになった。今では結論、「どっちでも好きなほうを使えばいい」という良い環境になった。
ChromebookはLinuxデスクトップなんじゃないのか?
MacはUnixデスクトップではあるけれどLinuxデスクトップじゃないとして
流石にChromeOSはLinuxなんだからChromebookはLinuxデスクトップでしょ
そもそもWin/Mac/Linuxのそれぞれにソフトウェアを提供するのってめちゃくちゃ大変で
その辺をJavaが頑張る予定だったけどご覧の有様なんでしょ
なのでGoogleが頑張ってブラウザっていう中間層を作ってくれたお陰でどんなOSでもブラウザが動けばそれで良い、っていう状況になってる
まぁその状況にAndroid/iOSが逆走してFirefoxOSが順走したのに負けたってのはなんともな状況だけど
少なくともGoogleはPWAを始めとしてその方向で頑張ってると思う
だったらブラウザだけ動けばいいよね?ってことでChromebookがあるんだから
Chromebookは成功したLinuxデスクトップだと思うんだがダメなのかな
とか言わないよね?