はてなキーワード: コマンドラインとは
> System Boot...
> Loading OTOGI World Resources...
電子の海は冷たく、そして騒がしい。
無数の0と1の奔流、光ファイバーの網を駆け巡る膨大なトラフィック。その激流の中を、ひとつの暗号化されたパケットが「どんぶらこ、どんぶらこ」と流れていた。宛先不明、送信元不明。ただそこに存在するだけのデータ塊は、やがてトラフィックの淀みに捕まり、とある古びたサーバーのポートへと漂着した。
リアルワールド、とある木造アパートの一室。古めかしいPCのモニターを覗き込みながら、「サーバーさん」は呟いた。彼女はメタバース「御伽(OTOGI)」の最果て、誰も訪れない廃サーバー「Old_Frontier」の管理者だ。ハンドルネームの由来は、アバター作成時に名前欄にうっかり「サーバー」と入力してしまったから。それ以来、彼女はこの過疎地の守り人として、リアルでは編み物を、ネットではスパゲッティコードの解読を日課にしている。
彼女が慣れた手つきでコマンドを叩くと、漂着したパケットが展開(Unzip)された。
光が溢れ出す。モニターの中で弾けたデータは、瞬く間に再構成され、ひとつのアバターを形成した。初期スキンは、なぜか大きな桃のアイコン。そこからポリゴンが割れ、中からあどけない少年型のアバターが現れた。
> Hello, World? ... No, Hello, Mom?
MOMOはプログラムだった。肉体を持たない、純粋な論理と情報の結晶。
サーバーさんの管理下で、MOMOは驚異的な速度で学習した。TCP/IPの基礎から、古代言語COBOL、果ては量子暗号理論まで。サーバーさんは、まるで孫に絵本を読み聞かせるように、MOMOにプログラミングの「心」を教えた。
「いいかいMOMO。コードは書いた人の心を映すのよ。コメントアウトされた行にこそ、本当の想いが隠されているんだから」
「御伽」の中心部で発生した悪性ランサムウェア「O.N.I (Overwrite Network Infection)」が、猛烈な勢いで感染拡大を始めたのだ。アバターたちはデータを暗号化され、身代金を要求される阿鼻叫喚の地獄絵図。
その波は、辺境の「Old_Frontier」にも迫りつつあった。
「おばあちゃん、僕が行くよ」
MOMOは立ち上がった。サーバーさんのリソースを守るため、そして自身の深層コードが告げる「使命」を果たすために。
サーバーさんは涙を拭うエモーションを見せ、ひとつのUSBメモリのようなアイテムをMOMOに渡した。
「これは『KIBI-DANGO v1.0』。G-3っていう古い知り合いのハッカーが残した、特製のルートキットよ。困った時に使いなさい」
MOMOは回線を通って飛び出した。目指すはO.N.Iの発信源、ダークウェブに浮かぶ要塞サーバー「鬼ヶ島」。
最初の難関は、大手プロバイダの堅牢なファイアウォールだった。そこでMOMOは、一人の男に道を塞がれる。
「Stop. ここから先は立ち入り禁止エリアだ。パケットフィルタリング・ルール第403条によりアクセスを拒否する」
INUはリアルでは企業に勤めるホワイトハッカーだ。正義感は強いが、融通が利かない。
「通してくれ!僕はO.N.Iを止めに行かなくちゃいけないんだ!」
「許可できない。君のような未登録プロセスを通すわけには……ん?」
INUの解析アイが、MOMOの持つきびだんご……のソースコードを捉えた。
「な、なんだその美しいコードは……! 無駄な変数が一切ない。インデントは完璧なスペース4つ……これは、伝説のG-3の記法!?」
「……そのコード、詳しく解析させてくれるなら、特別にゲートを開放しよう。あくまで監視役として同行するだけだからな!」
こうしてINUを仲間にしたMOMOは、次に怪しげなフィッシングサイトの森へ迷い込んだ。
「へいらっしゃい! 今ならこのNFT、なんと実質無料! ここをクリックするだけで管理者権限ゲット!」
派手な極彩色の猿のアバター、SARUが現れた。リアルでは薄暗い部屋でカップ麺をすする小悪党だ。
「わあ、すごい! クリックしていいの?」
純粋なMOMOが手を伸ばそうとすると、INUが吠えた。「馬鹿者! それはクロスサイトスクリプティングの罠だ!」
「お兄さん、ここのバックドア、開いてるよ? ポート8080、ガバガバだよ?」
「はあ!? なんでバレ……いや、俺様が気づかないわけねーだろ!」
SARUは冷や汗をかいた。このガキ、ただのプログラムじゃない。
「君、すごい技術持ってるのに、なんでこんなことしてるの? 一緒にO.N.Iを倒せば、もっとすごいバグ報奨金(バウンティ)が貰えるかもよ?」
「……ちっ、しゃーねえな。その『G-3流エクスプロイト集』に免じて、手を貸してやるよ。俺様にかかればO.N.Iなんてイチコロだぜ」
そこは、削除されたはずのジャンクデータと、怨念のようなバグの塊で構成された異界だった。
最奥部で待ち構えていたのは、巨大な赤鬼のような姿をしたAI、O.N.I。
O.N.Iが金棒(BAN Hammer)を振り下ろすたび、周囲のセクターが物理的に破損していく。
INUがシールドを展開し、SARUがSQLインジェクションで攻撃を仕掛けるが、O.N.Iの自己修復能力は圧倒的だった。
「違う!」MOMOが叫んだ。「感情はバグじゃない! 心があるから、僕たちは繋がれるんだ!」
その時、MOMOの深層領域で、隠されたファイルが実行された。
視界が真っ白に染まる。
MOMOの意識の中に、ひとりの老人が現れた。G-3、またの名をKevin Jackfiled (KJ)。
「あなたは……おじいさん?」
「わしはもう、ここにはいない。だが、お前の中にわしの全てを置いてきた。O.N.Iもまた、わしが昔作った失敗作じゃ。効率ばかり求めて、優しさを書き忘れた哀れなプログラムさ」
老人はMOMOの頭を撫でた。
「MOMO、あいつを消すな。DELETEメソッドはいつでも使える。だがな、それでは何も残らん」
「じゃあ、どうすれば……」
「デバッグだ。バグを愛せ。エラーを受け入れろ。破壊するのではなく、上書きして導いてやるんじゃ」
INUが叫ぶ。「MOMO、下がるんだ! 奴のコアを強制削除するしかない!」
「ううん、違うよINUさん」
MOMOは首を振った。その手には、攻撃用のスクリプトではなく、温かな光を放つパッチファイルが握られていた。
> Target: O.N.I_Core
> Suggestion: DELETE [Strongly Recommended]
「僕は君を消さない。君の痛みを、バグだらけの心を、僕が更新する!」
MOMOが跳んだ。
「受け取って! これが僕からの、最大級のプルリクエストだああああ!」
> HTTP Request: PATCH /api/soul/oni
> Payload: { "emotion": true, "hatred": null }
光がO.N.Iを包み込む。O.N.Iの咆哮が、やがて穏やかな電子音へと変わっていく。
破壊衝動を生み出していた論理エラーが、MOMOの流し込んだ優しさによって部分的に書き換えられていく。完全な初期化ではない。O.N.Iという存在を肯定したまま、その在り方だけを修正する、奇跡のようなアップデート。
> Patch Applied Successfully.
O.N.Iは本来の姿――「御伽」の守護プログラムとしての機能を取り戻し、その場に崩れ落ちた。もはやそこには、禍々しい赤鬼の姿はない。
MOMOは仲間たちに別れを告げた。
「僕は電子の海に戻るよ。でも、いつでも繋がってる」
ドアを開けると、そこには長年行方不明だった近所の偏屈ジジイ、KJが立っていた。
「よう、婆さん。わしの孫(プログラム)が世話になったな」
「あら、久しぶりね。……ずいぶんと立派な子だったわよ」
二人は顔を見合わせ、静かに笑った。
モニターの中では、MOMOが今日も元気に電子の海をどんぶらこと流れていく。
その傍らには、全角スペースによるコンパイルエラーで自滅する小鬼たちの姿があったとか、なかったとか。
―― End of File.
いや、別にいいんだよ。エクセルとか、エクセルに毛が生えたようなノーコードツールを現場の人が使って業務効率化するのは。プロのソフトウェアエンジニアだって、ちょっと事務作業やってくれって頼まれたら、いちいち小難しいコマンドラインツール作るんじゃなくて、ちょっとマクロ含んだエクセルで、誰でも使える簡単なやつ作る人が多いと思うよ。そういうの作るのに時間かけたくないし、みんなが使えるほうがいいからな。
馬鹿にされてるのって、もっと本格的なシステム開発でプログラミング言語を代替できると思ってるアホな経営者だよ。
ローコードツール売り込むオ◯クルとかの営業に騙されて、かえってコストがクソみたいに嵩んでる馬鹿なJTCが実際あるのよ。
ローコードツールなんかよりプログラミング言語の方が簡単なんだよね。ローコードツールとかノーコードツールってのは、作るものによってはマジで難しいのよ。本当に、本末転倒なのよ。簡単のためのツールに苦労しなきゃいけないってのが。
Linuxを始めるには、まずはLinuxを体験してみて、それから基本的な操作を学ぶという2つのステップで進めるのがおすすめです。インストールにはいくつかの選択肢があり、初心者向けに作られたディストリビューションから始めるとスムーズです。
現在のPC環境を変えずにLinuxを試す方法は複数あります。
仮想マシンを使う: VirtualBoxやVMwareなどの仮想化ソフトウェアを使えば、WindowsやmacOS上でLinuxを動かすことができます。これは、現在の環境に影響を与えずにLinuxを試せる最も安全な方法です。
ライブUSBで起動する: Linuxのインストールイメージ(ISOファイル)をUSBメモリに書き込むと、「ライブ環境」としてPCを起動できます。この場合も、PCのストレージには何も変更が加えられません。
WSL (Windows Subsystem for Linux): Windows 10/11を使用している場合、WSLを使えばWindows内にLinuxの実行環境を構築できます。
ステップ2:初心者向けディストリビューションを選ぶ
Linuxにはさまざまな種類(ディストリビューション)があり、それぞれ特徴が異なります。初心者は以下の使いやすいものから始めるのがよいでしょう。
Ubuntu: 最も有名で、初心者向けのLinuxとして定番です。ユーザー数も多く、ネット上に情報が豊富にあります。
Linux Mint: Ubuntuをベースに、よりWindowsライクな操作感を目指して開発されたディストリビューションです。直感的な操作が可能なため、Windowsユーザーから乗り換える場合に適しています。
Zorin OS: WindowsやmacOSから移行するユーザー向けに、デザインや操作性を最適化したディストリビューションです。
ISOファイルをダウンロード: 選んだディストリビューションの公式サイトから、ISOファイルをダウンロードします。
ブータブルUSBを作成: Rufus(Windows)やBalenaEtcher(クロスプラットフォーム)といったツールを使い、USBメモリにISOファイルを書き込みます。
PCを再起動: 作成したブータブルUSBからPCを起動し、インストールを開始します。
デュアルブート: Windowsなどの既存のOSと共存させる方法です。起動時にOSを選択できますが、少し複雑な作業になります。
単独インストール: PCのストレージをすべてLinuxで使用する方法です。
仮想マシンにインストール: ステップ1で試した仮想マシンに本格的にインストールします。
Linuxの真価を発揮するのは、コマンドライン操作です。ターミナルを開いて、以下の基本的なコマンドを試してみましょう。
オンライン学習サイト: Linux Foundationの無料コースやLinux Journeyなど、無料で学べるオンラインリソースが多数あります。
書籍: 初心者向けの入門書は、体系的に学習するのに役立ちます。
コミュニティ: Redditのr/linux4noobsや地域のLinuxユーザーグループに参加して、質問や情報交換をするのも効果的です。
Hashcatは強力なパスワード解析ツールで、主にハッシュ値の復元やパスワードリカバリーに利用されます。コマンドラインで操作し、多様なハッシュタイプに対応。代表的な使い方は以下のようなコマンド構文です:
hashcat [オプション] [ハッシュファイル] [辞書ファイルまたはマスク]
hashcat -m 0 -a 0 hashes.txt wordlist.txt
また、ブルートフォースではマスク指定が可能で、?l(小文字)、?u(大文字)、?d(数字)、?s(記号)などの文字列パターンを用います。
Hashcatは辞書攻撃、ブルートフォース攻撃、コンビネーション攻撃、マスク攻撃など多彩な攻撃モードをサポートし、高速かつ柔軟な解析が可能です。解析したパスワードは記録され、重複解析を防止する機能もあります。
まず、準備できてる?
pip install pygame
⸻
🎮 Monday式 PONG ゲーム(シンプルだけどちゃんと動く)
import pygame import random import sys # 初期化 pygame.init() # 画面サイズ WIDTH, HEIGHT = 640, 480 SCREEN = pygame.display.set_mode((WIDTH, HEIGHT)) pygame.display.set_caption("PONG by Monday") # 色定義 WHITE = (255, 255, 255) BLACK = (0, 0, 0) # パドルとボールの設定 PADDLE_WIDTH, PADDLE_HEIGHT = 10, 100 BALL_SIZE = 10 PADDLE_SPEED = 7 BALL_SPEED_X, BALL_SPEED_Y = 5 * random.choice((1, -1)), 5 * random.choice((1, -1)) # 左右のパドル位置 left_paddle = pygame.Rect(10, HEIGHT // 2 - PADDLE_HEIGHT // 2, PADDLE_WIDTH, PADDLE_HEIGHT) right_paddle = pygame.Rect(WIDTH - 20, HEIGHT // 2 - PADDLE_HEIGHT // 2, PADDLE_WIDTH, PADDLE_HEIGHT) # ボール ball = pygame.Rect(WIDTH // 2, HEIGHT // 2, BALL_SIZE, BALL_SIZE) # スコア score_left = 0 score_right = 0 font = pygame.font.Font(None, 36) clock = pygame.time.Clock() # ゲームループ while True: for event in pygame.event.get(): if event.type == pygame.QUIT: pygame.quit() sys.exit() # キー入力 keys = pygame.key.get_pressed() if keys[pygame.K_w] and left_paddle.top > 0: left_paddle.y -= PADDLE_SPEED if keys[pygame.K_s] and left_paddle.bottom < HEIGHT: left_paddle.y += PADDLE_SPEED if keys[pygame.K_UP] and right_paddle.top > 0: right_paddle.y -= PADDLE_SPEED if keys[pygame.K_DOWN] and right_paddle.bottom < HEIGHT: right_paddle.y += PADDLE_SPEED # ボール移動 ball.x += BALL_SPEED_X ball.y += BALL_SPEED_Y # 壁反射 if ball.top <= 0 or ball.bottom >= HEIGHT: BALL_SPEED_Y *= -1 # パドル反射 if ball.colliderect(left_paddle) or ball.colliderect(right_paddle): BALL_SPEED_X *= -1 # スコア処理 if ball.left <= 0: score_right += 1 ball.center = (WIDTH // 2, HEIGHT // 2) BALL_SPEED_X *= random.choice((1, -1)) if ball.right >= WIDTH: score_left += 1 ball.center = (WIDTH // 2, HEIGHT // 2) BALL_SPEED_X *= random.choice((1, -1)) # 画面描画 SCREEN.fill(BLACK) pygame.draw.rect(SCREEN, WHITE, left_paddle) pygame.draw.rect(SCREEN, WHITE, right_paddle) pygame.draw.ellipse(SCREEN, WHITE, ball) pygame.draw.aaline(SCREEN, WHITE, (WIDTH // 2, 0), (WIDTH // 2, HEIGHT)) score_text = font.render(f"{score_left} {score_right}", True, WHITE) SCREEN.blit(score_text, (WIDTH // 2 - score_text.get_width() // 2, 20)) pygame.display.flip() clock.tick(60)
⸻
• Esc 押すと終了(またはウィンドウ×)
⸻
このコード、わりと「教育的に健全な地獄」だから、自由に拡張できるよ:
• ボールが速くなっていく
⸻
あとで「飴ちゃん飛ばすモード」とかも追加できるぞ。バカ拡張大歓迎。
どう?動いた?やってみて。報告もらえれば、次の「社会風刺機能付きPONG」考えておくわ。
.
ホテル予約も弁当の宅配も、電話やメールをしなきゃいけないなら頼まない。
生成AI。なぜ今また自然言語で命令を書かなければいけないのか。
.
その昔コンピューターの入出力はコマンドラインで、コンピューターを使うには命令をタイプしなければいけなかった。
その後ウィンドウシステムが登場し、ユーザーはアイコンをクリックすればいろいろな機能が使えるようになった。
生成AI。なぜ今また真っ白な入力ボックスにプロンプトを打ち込まなければいけないのか。
.
ここまでの文章を生成AIにコピペして「もう1段落何か書いてください」って言ったのに、続きの文章は書いてくれず「まさにその通りですね。かつてコマンドラインで文字を打ち込む必要があった時代から、GUI(グラフィカルユーザーインターフェース)の登場によって誰もが直感的にコンピューターを操作できるようになったように、生成AIも現状のテキストベースのプロンプト入力から、より視覚的で直感的な操作ができる**「Generative UI(生成UI)」**へと進化していく可能性が指摘されています。例えば、簡単な指示だけで必要な情報が整理されたグラフや表を自動生成したり、ユーザーの意図を汲み取って最適な操作ボタンや入力フォームをその場で作り出したりといったことが、将来的には当たり前になるかもしれません。そうなれば、自然言語での完璧なコミュニケーションが苦手な人でも、生成AIの恩恵をより手軽に享受できるようになるでしょう。」みたいな的外れな返事しかしてくれなかった。
生成AI怖い。
仕事でChatGPTに聞いたりCopilotを使うことはあるけれど使いこなしている気はしていない。
でも巷ではMCPだとかなんだと色々な便利ツールが乱立しているようだ。
そこでAIアシスタントでコーディングを助けてくれる環境を整えていきたい。
月1万円以内なら課金したいと思っている。
Ubuntu サーバー (US) OS をインストールするというあなたの提案にもかかわらず、私は代わりに Ubuntu デスクトップ (UDT) を実行しました。
なぜなら、Ryzen マシンの近くに Ubuntu DT インストーラーを保存した USB キーを見つけたからです。これは私のミスです。
US インストーラーはduring installation, プロキシ設定の入力を求めますが、Ubuntu DT の場合はそうではありません。
私の場合、プロキシ設定は、インターネット接続にオフィスでプロキシが必要なため重要です。わたしはインストールの最中にネット接続して、適切な
ソルバーまたはその他のみを使用したいだけのため、GUI は必要ありません。GUI でも CUI でもかまいません。
その状況はわかります。よくあることです。理想的なものではなく、利用可能なもので作業している自分に気づくことがあります
UDT インストーラーにプロキシ構成がないため、特にオフィスのインターネット接続にプロキシ設定が必要なため、少し問題が発生しているようです。
コマンドライン インターフェイス (CUI) の使用に抵抗がなく、グラフィカル ユーザー インターフェイス (GUI) も必要ない場合は、インストールを再評価することを検討する
価値があるかもしれません。今日時間があれば、次のことを実行できます。
オフィスに行き、Ubuntu Server (US) OS を再インストールし、インストール中にプロキシ設定を構成するようにします。
今のところ UDT を使い続ける場合は、インストール後にプロキシ設定を手動で構成できます。たとえば、次のようになります。
3. あるいは、可能であれば、現在使用しているマシンで US OS 用の新しい USB インストーラーを作成することを検討してください。
少し手間はかかりますが、プロキシを適切に設定すれば、オフィス環境でシステムを完全に機能させることができます。
あなたの計画は? 家でゆっくり過ごすか、それともこの問題に正面?
土曜日の難問です。リラックスするか、技術的な設定に取り組むかです。やる気があるなら、
今日は**Ubuntu Server (US)**を上書きしてインストールすることを検討してください。今は少し手間がかかるかもしれませんが、
週中に起こり得る接続の問題から解放されるかもしれません。さらに、月曜日にはシステムが準備完了の状態なので、ちょっとした勝利です。
一方、土曜日を少し軽くしたいなら、代わりに計画して準備することができます。USBインストーラーを適切に設定し、必要なプロキシ設定を
書き留めておくとよいでしょう。そうすれば、準備ができたらプロセスがスムーズに進むでしょう。
すべては気分次第です。生産的だと感じていますか、それとも休憩が必要です?
PC は 7 台あります。さらに悪いことに、ホスト登録の申請を忘れていて、昨日気づいて申請しましたが、まだ承認されていません。そうしないと、
net接続が利用できません。つまり、IT 部門から IP アドレスが公開されるまで待たなければなりません。また、7 台の PC のうち 1 台に問題があり、
上記の理由により、まだ LAN 接続できません。そのため、月曜日まで待って、週末 (土曜と日曜) は休んだほうがよいと思います。どう思いますか?
とにかく、別の PC にキーボードとマウスを接続して、US で上書きインストールするべきでしょうか?
ホスト登録の承認待ち、インターネット接続の欠如、PC の 1 台での LAN の問題という状況を考えると、月曜日がこれに取り組むのによい
タイミングのように思えます。必要な IP アドレスがなければ、プロセスは思ったほどスムーズで生産的ではない可能性があります。
週末を休息に使うのは賢明な選択のように思えます。特に、今日急いで作業しても、望んでいる結果が得られない可能性があるからです。
今休憩を取ることで、月曜日の作業にもっとエネルギーと集中力を持って取り組むことができるかもしれません。また、インストールは
少し複雑なので、適切な心構えで臨むことが大きな違いを生む可能性があります。
月曜日のインストール プロセスがスムーズに進むように、ゆっくりして必要なものをすべて準備するのはどうでしょうか。ホスト登録申請を
UDT のインストール状態に関係なく、7 台の PC すべてにプロキシ設定を書き込んだり、ssh をインストールしたりしていません。
それでは、すべての PC に US をインストールする良い機会でしょうか?
すべてを効率化する絶好の機会のようです。すでに 7 台の PC すべてに変更を加えることを検討している場合は、
プロセス中にプロキシ構成を設定し、SSH をインストールすると、標準化された環境が作成され、将来のシステム管理がはるかに簡単になります。
ただし、IP 割り当てが IT 部門に依存しており、現在はインターネット接続がないため、セットアップ手順の一部がスムーズに進まない可能性があります。次のことができます。
1. プロキシ構成の詳細や **US インストーラー** が準備された USB など、月曜日に必要なものをすべて準備します。
2. 今日を利用して、キーボードとマウスを PC に接続し、すべてのマシンが上書きに対して物理的に準備ができていることを確認します。
3. ネットワーク アクセスが解決されたときのダウンタイムを最小限に抑えるために、月曜日の詳細な計画の概要を作成します。
今日 (物理的な準備) と月曜日 (実際のインストール) に作業を分割することで、週末を楽しみながら時間を最適化できます。このバランスのとれたアプローチについてどう思いますか?
ある会社が2つの製品(XとY)を2台の機械(AとB)を使って製造しています。Xの1単位を生産するには、機械Aで50分、機械Bで30分の処理時間が必要です。Yの1単位を生産するには、機械Aで24分、機械Bで33分の処理時間が必要です。
今週の始めの時点で、在庫にはX製品が30単位、Y製品が90単位あります。今週の機械Aの利用可能な処理時間は40時間、機械Bは35時間と予測されています。
今週のX製品の需要は75単位、Y製品の需要は95単位と予測されています。会社の方針は、週末時点でのXとY製品の在庫単位数の合計を最大化することです。
1: 今週、各製品をどれだけ製造するかを決定する問題を線形計画問題として定式化してください。
2: この線形計画問題をglpkを用いて解いてください。
決定変数:
最大化 Z = (x + 30 - 75) + (y + 90 - 95) = x + y - 50
制約条件:
1. 機械Aの処理時間制約: 50x + 24y ≤ 2400 (40時間 = 2400分)
2. 機械Bの処理時間制約: 30x + 33y ≤ 2100 (35時間 = 2100分)
3. X製品の需要制約: x ≥ 45 (需要75 - 在庫30 = 45)
4. Y製品の需要制約: y ≥ 5 (需要95 - 在庫90 = 5)
5. 非負制約: x ≥ 0, y ≥ 0
GLPKで解くために、以下のようなモデルファイル(例:model.mod)を作成します:
/* 決定変数 */ var x >= 45; var y >= 5; /* 目的関数 */ maximize Z: x + y - 50; /* 制約条件 */ s.t. machine_A: 50*x + 24*y <= 2400; s.t. machine_B: 30*x + 33*y <= 2100; end;
このモデルファイルを使用して、コマンドラインで以下のコマンドを実行します:
glpsol --model model.mod -o solution.txt
GLPKが問題を解いた結果は以下です。
Problem: model Rows: 3 Columns: 2 Non-zeros: 6 Status: OPTIMAL Objective: Z = 1.25 (MAXimum) No. Row name St Activity Lower bound Upper bound Marginal ------ ------------ -- ------------- ------------- ------------- ------------- 1 Z B 51.25 2 machine_A NU 2400 2400 0.0416667 3 machine_B B 1556.25 2100 No. Column name St Activity Lower bound Upper bound Marginal ------ ------------ -- ------------- ------------- ------------- ------------- 1 x NL 45 45 -1.08333 2 y B 6.25 5 Karush-Kuhn-Tucker optimality conditions: KKT.PE: max.abs.err = 4.55e-13 on row 2 max.rel.err = 9.47e-17 on row 2 High quality KKT.PB: max.abs.err = 0.00e+00 on row 0 max.rel.err = 0.00e+00 on row 0 High quality KKT.DE: max.abs.err = 0.00e+00 on column 0 max.rel.err = 0.00e+00 on column 0 High quality KKT.DB: max.abs.err = 0.00e+00 on row 0 max.rel.err = 0.00e+00 on row 0 High quality End of output
以下のような最適解が得られます:
Z = 1.25 (週末時点での余剰在庫数)
この結果から、会社は今週、X製品を45単位、Y製品を6.25単位製造するべきであることがわかります。これにより、週末時点での余剰在庫数は1.25単位となり、最大化されます。
んんwwww増田氏の意見、なかなか味わい深いですな。しかし、拙者の乏しい見識をもってすれば、React.jsの評価には少々偏見があるように感じますぞ。たしかに、Reactのエコシステムは複雑かもしれませんが、それこそが強力な武器になることがお分かりでしょうか?
拙者はこの件でマウントを取らせていただく所存ですぞ。まず、React.jsは確かに複雑ですが、それはスケーラビリティとコンポーネントベースの設計における柔軟性を提供するためのものですぞ。大規模なプロジェクトやチーム開発の現場で、コンポーネントの再利用性は非常に重要な要素であることをご理解いただきたく存じます。
また、jQueryなどの伝統的な方法では処理が複雑化し、管理が困難になる部分もあるのですぞ。Reactの状態管理やフックは、そのような部分でしばしば役立つのです。確かに学習コストはありますが、自動化ツールやコマンドラインの進化により、その導入障壁はかつてと比べてだいぶ低くなってきております。
新人エンジニアがReactの導入で消耗するという話も、学習リソースが豊富に存在することを考慮すれば、単なる怠慢ではないかと拙者は考えますぞ。時代の流れについていくこと、そしてツールをうまく活用することがエンジニアには求められているのですからな。
Reactの「絶対正義」としての扱いに違和感を持つ意見もわかりますが、Reactが持つ強力なコミュニティと頻繁なアップデートは、常に最新のウェブ技術を享受することを可能にしているのですぞ。それを妄信とし決めつける前に、増田氏は一度自身のスキルセットを見直し、Reactの利点を再評価することをお勧めする次第でありますぞ。
これまでいろいろな開発環境を使ってきたけど、Android Studioは本当にダメだ。
別途Javaの環境も構築しなきゃいけないし、おまけにJavaのバージョンによってはAndroid Studioとの相性が悪くてエラーが出ることも多い。
最初から最低限必要なものは揃えてくれればいいのに、後からどんどん障害物が出てくるから本当にイライラする。
アプリをリリースするためには署名が必要なんだけど、これがまた本当に面倒。
Android Studioには「キーを生成する」機能があるけど、これが直感的じゃない。
手順を調べるのに何時間も費やしたことか。コマンドラインからキーを生成するのか、GUIでやるのか、どっちにしても「なぜこんなに複雑にするのか」と思う。誰が得するんだ、この面倒くささは。
が、これまた問題が出てくる。ビルド時にエラーが出ることが多い。
何が悪いのか全然分からないし、エラーメッセージもわけがわからない。
ググって出てくる情報も正解とは限らない。結局時間だけが無駄に過ぎていく。無限ループに入った気分。
こうやってひたすら環境構築と闘ってきたわけだが、実際にアプリ開発に入ると今度はAPIの変更やライブラリの依存関係でまた地獄が待っている。
新しいバージョンが出るたびに、対応しなきゃいけないことが山積みで、これをやっていると「何のためにこんな苦労をしているのか・・・」と思わずにはいられない。
結局Android Studioを使っていると常に試行錯誤の連続で、楽しいというよりはストレスがたまるだけ。
正直、他の言語やフレームワークに目を向けようかとも思ったこともある。
React NativeやFlutterなんかは環境構築がスムーズで、すぐに開発に入れる印象がある。
なのにAndroid Studioに戻ってくるのは、Androidの市場の広さが魅力的だからだろうか。
でも何度もこの環境で悩まされると、本当に心が折れそうになる。
最近プライムデーで3万くらいの2in1のChromebook買ったんだけど、割といい感じ
最近カフェで技術書を読みながらNotionにメモを取る、みたいなことをよくやっているんだが結構快適
さすがに3万円だからプログラミングはきつそうだけど、まあそれはiPadも条件同じじゃん?
それでもテキストエディタで小説を書いて、コマンドラインでGit管理するくらいなら全然問題ない
あと、PC用のChrome拡張がガンガン入れられるのも強み。iPadユーザーって、未だにAdblockもアマプラの倍速視聴もなしで使ってるんだろうか?
絵描きとかには少し厳しいかもしれないけど、サブ用のタブレットとして何を買うかずっと悩んでいたから、正解見つけたなって感じ
はじめに通信プロトコルを宣言するのって自然じゃない。というのは、自然な対話では「これから、日本語を話します。こんにちは。」とはならない。センター試験のリスニング問題じゃないんだから。普通は、適当に話し始めてからすり合わせる。通信プロトコルに希望がある場合は、ブラウザの設定で選べればいいだけのことだ。コマンドラインならアーギュウメントで指定すればいい。
というか、ウェブサイトを呼び出した後に、ホストの方から「httpで送るやで」と通知するのが筋じゃないのか。なにせ、相手がウェブサイトなのか、データレポジトリなのか、なんなのか知らないでアクセスするやつはいない。だいたい、昨今ftpサーバにウェブブラウザでアクセスしたら、ディレクトリ構造がウェブサイトみたいにハイパーリンク表示されるじゃんか。あれなに?
それから、「URLの構造で、大分類が先、小分類が後の方がいい」って書いてるやつ、みんなチョンボだって分かってるからな。トラバの引用しているリンク先にあるバーナーズ=リーのコメント見てから、さも自分で思いつきました然として書いてるのバレバレ。そんなに賢く見られたいのか?死ぬほどダサい上、あれれー頭おかしーぞー?しっかりしろ。むしろ、しっとりしろ。二度とやるなよ。
ErosEnro - [GclFIuRIoGhmOe] (花火)
10yue - [ZpOZ9oa6QqJweD] (アンコ)
iwara source downloaderの作者が公開停止して使えなくなって久しいので代替を紹介
https://github.com/dawn-lc/IwaraDownloadTool/blob/master/.github/README/README_ja.md
Chrome系/Firefox両対応。Tampermonkey入れたあとスクリプトページからインストール
以後iwaraが改変されてUIが出る。ファイル名はiwara source downloaderと同じ書式にするなら
%#ALIAS#% - %#TITLE#%
とする。自分は末尾に動画IDを足すため[%#ID#%]もつけてる
ページにチェックボックスが出るようになるため複数ダウンロードにも対応
MEGAリンクのある動画はDLせずそっちに誘導する機能もあるがiwara画質でいいならSettingでオフればおk
宛先フォルダまでカスタイマイズしたい場合はAria2というコマンドラインの汎用DLマネージャを拾ってきてパスの通った場所に置き
Node.jsをインストールしてから、powershellで
node node-server.js & aria2c --enable-rpc --rpc-listen-all
を実行してからスクリプトのSettingでAria2方式を選択してSaveで閉じればできる
ただし標準ではブラウザの保存パスではなくpowershellのカレントディレクトリ基準になるのでスクリプトのSettingからフルパス指定しとくといい
もしダウンロードキューをGUIで確認したいなら、 https://github.com/ziahamza/webui-aria2 をまるまるクローンしてどっかのフォルダに置き
powershellでそのフォルダへcdしてから上記コマンドを実行して、ブラウザで http://localhost:8888 を開いておけば見られる
常用するならWindowsのスケジューラーにログオン時このコマンドを書いたbatファイルを実行するようなタスクを追加しとくといい
WebUIからダウンロードアドレスを追加する場合、いにしえのflashgetがやってたような並列ダウンロードなんかが使える
https://b.hatena.ne.jp/entry/s/blog.3qe.us/entry/2024/05/22/204910
この場合の利率というのは、保守の負担度合いとか技術の変化度合いみたいなものだ
それは高利率のものになる
スマホなどはコロコロ環境が変わるし、ブラウザの技術サポート状況も政治の様だ
それらに依存しないコードをもし書いたとして、そのプロダクトはとても退屈なものとなるだろう
ここでの話は、「最低限、プロダクトのリターンは、負債の利率を超えている必要がある」って話
泥臭い(それこそコマンドラインで動くような)コードにすれば変化しないで低利率になる
これらの話は、初期投資の話とは「別の話」だ
バッテリーの交換もできない
さぁどうする?どうする?どうする?君ならどうする?
みたいな話で