
はてなキーワード:powershellとは
ぼんやりとWindows11が分かってるくらいでいい
コマンドプロンプトやPowerShellがググれば叩けるくらいで、Wi-Fiとイーサネットの違いくらい分かればいい
インターネットブラウザという概念が分かっていて、Chromeに拡張機能やchrome://flags/があることを知っていてほしい
イベントビューアーを開いて大雑把に何が起きてるかを把握するくらいはできるといい
拡張子というものの認識があって、動画にはコンテナやコーデックがあることを理解していてほしい
Excelは遠回りでも求める処理を実装する力があるとよくて(今ならGPTでどうにもできるし)
そういう人、最低賃金で雇えませんかね?
一度投稿したうえで別タブを開いてプログラム的(fetch)に送信してその別タブが閉じられる仕組み。
// ==UserScript== // @namePGP未署名検出と別タブ自動編集 // @namespacehttp://tampermonkey.net/ // @version 1.0 // @descriptionPGP署名がない投稿を自動編集ページへ誘導 // @matchhttps://anond.hatelabo.jp/* // @grantGM_setValue // @grantGM_getValue // @grantGM.openInTab // ==/UserScript== (function () { 'use strict';constbody = document.getElementById('entry-page'); if (!body) return;consttitleText = document.title; if (!titleText.includes('dorawii')) return;constpgpRegex = /BEGIN.*PGP(?: SIGNEDMESSAGE| SIGNATURE)?/;const preElements = document.querySelectorAll('div.body pre'); let hasPgpSignature =false; for (const pre of preElements) { if (pgpRegex.test(pre.textContent)) { hasPgpSignature =true; break; } } if (hasPgpSignature) return;const editLink = document.querySelector('a.edit');const childTab =GM.openInTab(editLink.href, {active:false, insert:true,setParent:true }); })();
// ==UserScript== // @name編集ページ処理と自動送信・閉じ // @namespacehttp://tampermonkey.net/ // @version 1.0 // @description編集ページで署名処理と送信、タブ自動閉じ // @matchhttps://anond.hatelabo.jp/dorawii_31/edit?id=* // @grantGM_getValue // @grantGM_xmlhttpRequest // @grantGM_setClipboard // @grantGM_notification // @connectlocalhost // ==/UserScript== (async function () { 'use strict';const shouldRun = awaitGM_getValue('open-tab-for-edit', '0');consttextareaId = 'text-body';consttextarea = document.getElementById(textareaId); if (!textarea) return;const content =textarea.value;constpgpSignatureRegex = /-----BEGINPGP SIGNEDMESSAGE-----[\s\S]+?-----BEGINPGP SIGNATURE-----[\s\S]+?-----ENDPGP SIGNATURE-----/; if (pgpSignatureRegex.test(content)) {console.log('[PGPスクリプト]署名が検出されたためそのまま送信します'); return; }consthttpRequest = (url, data) => { return newPromise((resolve,reject) => {GM_xmlhttpRequest({ method: 'POST',url:url, headers: { 'Content-Type': 'application/x-www-form-urlencoded' }, data: `value=${encodeURIComponent(data)}`,onload: function (response) { resolve(response.responseText); },onerror: function (error) {reject(error); } }); }); }; //textarea の値を取得 // 1.現在のページのURLからURLオブジェクトを作成const currentUrl = newURL(window.location.href); // 2.ベースとなる部分 (例: "https://anond.hatelabo.jp") を取得constorigin = currentUrl.origin; // 3. 'id'パラメータの値 (例: "20250610184705") を取得constidValue = currentUrl.searchParams.get('id'); // 4.ベース部分とIDを結合して、目的のURL文字列を生成 //idValueが取得できた場合のみ実行する let newUrl = null; if (idValue) { newUrl = `${origin}/${idValue}`; } // 5. 生成されたURLを変数に代入し、コンソールに出力して確認console.log(newUrl);constvalueToSend = newUrl;try {const signatureText = awaithttpRequest('http://localhost:12345/run-batch',valueToSend);console.log('バッチ応答:', signatureText); if (!signatureText.includes('BEGINPGP SIGNEDMESSAGE')) { alert('PGP署名がクリップボードに見つかりませんでした。'); return; }const newText = content.replace(/\s*$/, '') + '\n' + signatureText + '\n';textarea.value = newText;console.log('[PGPスクリプト]署名を貼り付けました。送信を再開します。');const form = document.forms.edit;const newForm = form.cloneNode(true); form.replaceWith(newForm); newForm.addEventListener('submit', async (e) => { e.preventDefault(); //HTML標準のsubmitをキャンセルconstbodyText =textarea?.value || ''; //reCAPTCHAトークンの取得constrecaptchaToken = await newPromise((resolve) => { grecaptcha.enterprise.ready(() => { grecaptcha.enterprise.execute('hoge', {action: 'EDIT' }) .then(resolve); }); }); // POSTするデータの構築const formData = new FormData(newForm); formData.set('body',bodyText); formData.set('recaptcha_token',recaptchaToken); formData.set('edit', '1');try {constresponse = await fetch(newForm.action, { method: 'POST',body: formData, credentials: 'same-origin' }); if (response.ok) {console.log('送信成功'); window.close(); } else {console.error('送信失敗',response.status); } }catch (err) {console.error('送信中にエラーが発生', err); } }); //プログラム的に送信トリガー newForm.dispatchEvent(new Event('submit', { bubbles:true })); }catch (e) {console.error('バッチ呼び出し失敗:', e); } })();
consthttp =require('http');const { exec } =require('child_process');const querystring =require('querystring');const server =http.createServer((req, res) => { if (req.method === 'GET' && req.url === '/ping') { res.writeHead(200); res.end('pong'); } else if (req.method === 'POST' && req.url === '/run-batch') { letbody = ''; req.on('data', chunk => {body += chunk.toString(); }); req.on('end', () => {constparsed = querystring.parse(body);constvalue =parsed.value || 'default'; // 値を引数としてバッチに渡す exec(`C:\\Users\\hoge\\Desktop\\makesign.bat "${value}"`, { encoding: 'utf8' }, (err, stdout, stderr) => { if (err) { res.writeHead(500); res.end('Error executing batch: ' + stderr); } else { res.writeHead(200, { 'Content-Type': 'text/plain; charset=utf-8' }); res.end(stdout.trim()); } }); }); } else { res.writeHead(404); res.end('Not found'); }});server.listen(12345, () => {console.log('Batch serverrunningathttp://localhost:12345/');});
@echo offsetlocal enabledelayedexpansion::署名するファイル名set "infile=%~1"set outfile=%TEMP%\pgp_output.asc:: 以前の出力があれば削除if exist "%outfile%" del "%outfile%":signloop::AutoHotkeyでパスフレーズ入力(gpgがパスワード要求するダイアログが出た場合に備える)start "" /b "C:\Users\hoge\Documents\AutoHotkey\autopass.ahk"::PGPクリア署名を作成echo %infile% | gpg --yes --clearsign --output "%outfile%"::署名が成功していればループを抜けるif exist "%outfile%" (goto postprocess) else ( timeout /t 1> nulgoto signloop):postprocesspowershell -nologo -command ^ "$header = '>|'; $footer = '|<'; $body =Get-Content '%outfile%' -Raw;Write-Output ($header + \"`r`n\" + $body + $footer)"powershell -nologo -command ^ "$header = '>|'; $footer = '|<'; $body =Get-Content 'signed.asc' -Raw;Set-Clipboard -Value ($header + \"`r`n\" + $body + $footer)"endlocalexit /b
#Persistent#SingleInstance ignoreSetTitleMatchMode, 2WinWaitActive, pinentrySendInputpasswordSleep 100SendInput {Enter}ExitApp
動けばいいという考えで作っているので余分なコードも含んでいるかもしれない。
-----BEGINPGP SIGNEDMESSAGE-----Hash: SHA512https://anond.hatelabo.jp/20250613185036 -----BEGINPGP SIGNATURE-----iHUEARYKAB0WIQTEe8eLwpVRSViDKR5wMdsubs4+SAUCaEv1FQAKCRBwMdsubs4+SHHkAQDUOLgBcdji2T6MJ7h/vlMdFfGlWAzNdXijjE1gIuEPywEAiMNMZqhrMmtlc7UqRuggNJ/UTa5xTIcKp622+7jJQQg==Lgkl-----ENDPGP SIGNATURE-----
めちゃくちゃいっぱいある。
順不同、脈絡なく書いていく。
最近まで知らなかったことだけじゃなく、書いたけど結局わからんことも書く(そっちのほうが多い)。
5Sといって整理、整頓、清掃、清潔、躾だそうだ。
全部日本語じゃねーかって思った。
QCサークルとか、サークルっていうから酒でも飲むのかと思ったら普通に業務じゃないか。
簿記とか会計に疎かったので、営業利益とか経常利益とか違いがわからんかった。
ググってみても、本業の稼ぎが営業利益とか出てきて意味がわからなかった。
経費削減っていうから、会社の支出は全部経費かと思ったら、材労経だろJK
原価といっても全部原価とか直接原価とか標準原価とか次々新しい名前が出てきていまでもわからん。
雑損てなんだ?
散々計算した挙句、所得の定義が国税と地方税で違うとか温厚な俺でもキレそうになる。
税金難しすぎる。
消費税の仕組み、仮払いとか仮受けとかも知らんかった。
一番よくわからない。善意の第三者っていえば、普通に考えて、親切な人だろ?なんで事情を知らない人をいうんだよ?
ヒトのことを、法人に対して自然人というとか、お前頭沸いてんのか?と思った。
法令はそうそう変えられないから、細かいことは政令に政令に定めるとか省令に任せるってことにしといて、パブコメだけで規則変えるのって頭いいけどズルくね?
母数は分母のことじゃないとか、n=100は標本数じゃなく標本サイズだとか、そういうの。
分類とクラスタリングは違うとか、俺がなにか喋るたびに訂正される。
自転車は車道って言われても、5叉路とかになるとどの信号みていいかわからん。
降りて歩行者になってる。
仕組みがよくわからん。
なんでこんな何枚も似たような書類をいろんなところに書かないといけないのか。
事業者に書類書いて、なんちゃら福祉事務所に書いて、自治体に書いてとまあ。
自治体に提出しにいくと、これは福祉課、これは子育て支援課、年収判定は課税課、子育て支援でゴミ袋無料になるから環境課に行けとかいろいろ。
その度に住所と名前を書く。
あとイールドカーブとかも知らんかった。
なんで住所情報を管理するシステムと家族関係を管理するシステムが別なのかわからん。
ジークアクスみてるんだけど、宇宙世紀は教養なのか?知らねーよ。
もう全部わからん。
コマンドプロンプトとPowerShellの違いすらわかんないってのに、TypeScriptとJavaScriptの違いなんか興味もないわな。
下地ってなんだ?
ジェスチャーでエンジンの動きを教えてくれた人がいてさ、水平対向エンジンはこう、Vツインはこう、と熱心にモノマネしてくれたんだけど、気が狂ったのかと思った。
実は、そもそも4サイクルと2サイクルの仕組みすらわかってないんだ。
ディーゼルはまた別なんだろ?
前項でエンジンわからんって言ったけど、身の回りの電化製品とかもほとんどわからん。
株式だってよくわかってないし、先物とかオプションとかスワップとかって説明されてもわからん。
生理周期とメンタルが関連するって聞いたけど、機嫌が悪いのは生理前なのか生理のときなのか生理直後なのか。
聞くのも憚られるから、女が怒ってるときは「なんかわかんないけどホルモンのせいだな」と諦めてる。
そもそも、自民党と共産党以外、どの党がどういう支持母体でなりたってるのかわかってない。
はい、**ブロックチェーンを使ったタイムスタンプ**は、「元データそのものを共有せずに、その存在と時刻を証明する手段」として非常に有効です。特に、ハッシュ値をブロックチェーンに記録することで、元データを後から提示するだけで、それがある時刻に存在したこと・改竄されていないことを**誰でも検証可能にする**、という形になります。
あなたの希望(元の文章が掲示板などで変形されても検証可能、あるいは元文不要)に近づけるには、**ハッシュをブロックチェーンに書き込んで、後からそのハッシュに一致する元データを見せる**という形式になります。
---
### 基本の流れ:
2. そのハッシュをブロックチェーンに記録(トランザクションのメモ欄など)
3. 後から誰でもハッシュとトランザクションを照合して、時刻と整合性を検証可能
---
## ✅ 推奨ツール:OpenTimestamps(OTS)
[OpenTimestamps](https://opentimestamps.org/) は、ビットコインのブロックチェーンを用いた無料のタイムスタンプサービスです。
---
## ✅Windows11 での手順(OpenTimestampsCLI)
Pythonがまだ入っていない場合は、https://www.python.org/downloads/windows/](https://www.python.org/downloads/windows/)からインストーラーを取得し、`Add toPATH` にチェックを入れてインストールしてください。
コマンドプロンプトまたはPowerShellで以下を実行:
```bash
pip install opentimestamps-client
```
たとえば `message.txt` というファイルを用意します(中身は何でもOK)。
```bash
```
これにより、`message.txt.ots` というタイムスタンプファイルが作成されます。
これは「Bitcoinにこのデータのハッシュを記録する要求がされたこと」を表します。
```bash
```
署名がBitcoinブロックチェーンに記録されていれば、次のように表示されます:
```
Success!Bitcoin attests data existedas of 2025-06-0812:34:56UTC
```
---
```bash
echo -n "あなたの文" |openssl dgst -sha256
```
このハッシュに一致するファイルを後から提示すれば、それが当時存在していたことを証明できます。
---
## ✅ まとめ
| 特徴 | 内容 |
| ------------- | -------------------- |
| 元文の提示は不要 | ✅(ハッシュが一致すればOK) |
| 改行や掲示板変形の影響なし | ✅(ハッシュが変わらなければOK) |
| 無料かつ自律的 | ✅(Bitcoinブロックチェーン使用) |
| Windows対応 | ✅(Python +CLI) |
---
もしあなたの目的が「一定時刻に自分がその文を作成したことの証明」であるなら、この方法は非常に相性が良いです。
---
必要であれば、GUIツールやウェブインターフェースを使った方法(例:[OpenTimestamps Calendar](https://calendar.opentimestamps.org/))も紹介できます。希望があればお知らせください。
-----BEGINPGP SIGNEDMESSAGE-----Hash: SHA51220250610095304512 -----BEGINPGP SIGNATURE-----iHUEARYKAB0WIQTEe8eLwpVRSViDKR5wMdsubs4+SAUCaEgAgAAKCRBwMdsubs4+SII/AP9HFG5+U8BfEXzKxSoyEuxm6X/vJjK7Ee7Kwpi/rwQZJgEAorUjMTh9okHu3WbPvgsSfDyzhpUuwCVsKessR4FSpQE==VNrS-----ENDPGP SIGNATURE-----
ようやく(ほぼ)すべてが自動化された。
あとはローカルサーバーの起動をスタートアップに設定する(方法をAIに聞いて指示に従う)だけの消化試合。
署名時要求してくるパスワードを自動入力するahkファイルはドキュメントのAutoHotkey配下に置いた。
バッチファイル(make.sign.bat)はデスクトップに置いた。
#Persistent#SingleInstance ignoreSetTitleMatchMode, 2WinWaitActive, pinentrySendInput お前のパスワードSleep 100SendInput {Enter}ExitApp
//run-batch-server.jsconsthttp =require('http');const { exec } =require('child_process');const server =http.createServer((req, res) => { if (req.url === '/ping') { res.writeHead(200); res.end('pong'); } else if (req.url === '/run-batch') { exec('C:\\Users\\you\\Desktop\\makesign.bat', (err) => { res.writeHead(200); res.end(err ? 'Error' : 'OK'); }) ; } else { res.writeHead(404); res.end('Not found'); }});server.listen(12345, () => {console.log('Batch serverrunningathttp://localhost:12345/');});
@echo offsetlocal enabledelayedexpansion::ミリ秒単位のUTC時刻を取得for /f %%a in ('powershell -nologo -command "[int64]::Parse((Get-Date).ToUniversalTime().ToString('yyyyMMddHHmmssfff'))"') doset timestamp=%%a::署名するファイル名set infile=%TEMP%\pgp_input.txtset outfile=%TEMP%\pgp_output.asc:: 以前の出力があれば削除if exist "%outfile%" del "%outfile%"::タイムスタンプを原文として保存echo %timestamp%> "%infile%":signloop::AutoHotkeyでパスフレーズ入力(gpgがパスワード要求するダイアログが出た場合に備える)start "" /b "C:\Users\infini\Documents\AutoHotkey\autopass.ahk"::PGPクリア署名を作成gpg --yes --clearsign --output "%outfile%" "%infile%"::署名が成功していればループを抜けるif exist "%outfile%" (echo [INFO]署名成功goto postprocess) else (echo [WARN]署名失敗、再試行します… timeout /t 1> nulgotosignloop):postprocess::PowerShellで余計な改行なしに |< をつけてクリップボードにコピーpowershell -nologo -command ^ "$header = '>|'; $footer = '|<'; $body =Get-Content '%outfile%' -Raw;Set-Clipboard -Value ($header + \"`r`n\" + $body + $footer)"echo Done.signed.asc created and clipboard updated (no extra blankline).endlocalexit /b
// ==UserScript==// @namePGP署名自動付加スクリプト(GM_xmlhttpRequest版)// @namespacehttp://tampermonkey.net/// @version 1.0// @description投稿前にPGP署名を付けてから送信(fetch未使用)// @matchhttps://anond.hatelabo.jp/dorawii_31/edit*// @grant GM_xmlhttpRequest// @grant GM_setClipboard// @grant GM_notification// / @connectlocalhost// ==/UserScript==(function () { 'use strict';const submitId = 'submit-button';consttextareaId = 'text-body';const localServer = 'http://localhost:12345/run-batch';constpgpSignatureRegex = /-----BEGINPGPSIGNEDMESSAGE-----[\s\S]+?-----BEGINPGPSIGNATURE-----[\s\S]+?-----ENDPGPSIGNATURE-----/;consthttpRequest = (url) => { return newPromise((resolve,reject) => { GM_xmlhttpRequest({ method: 'GET',url:url, onload: function (response) { resolve(response.responseText); }, onerror: function (error) {reject(error); } }); }); };const interceptClick = () => {constbtn = document.getElementById(submitId); if (!btn ||btn.dataset.pgpIntercepted === 'true') return;btn.dataset.pgpIntercepted = 'true';btn.addEventListener('click', async function (e) {consttextarea = document.getElementById(textareaId); if (!textarea) return;const content =textarea.value; if (pgpSignatureRegex.test(content)) {console.log('[PGPスクリプト]署名が検出されたためそのまま送信します'); return; } e.preventDefault(); e.stopImmediatePropagation();console.log('[PGPスクリプト]署名が見つからないため処理を停止し、署名を取得します');try { awaithttpRequest(localServer); //バッチ実行constsignatureText = await navigator.clipboard.readText(); if (!signatureText.includes('BEGINPGPSIGNEDMESSAGE')) { alert('PGP署名がクリップボードに見つかりませんでした。'); return; }const newText = content.replace(/\s*$/, '') + '\n' +signatureText + '\n';textarea.value = newText;console.log('[PGPスクリプト]署名を貼り付けました。送信を再開します。');btn.click(); //イベント再発火 }catch (err) { alert('PGP署名の取得または貼り付けに失敗しました。\n' + err); } },true); }; window.addEventListener('load', () => {setTimeout(interceptClick, 1000); });})();
プロミスメソッドとか全然まだ理解してなくてそのなかに関数代入したその関数にオブジェクトのプロパティにresponseを?いやまあそのあたりのコードが示すデータの流れが全然理解できないような人間でもここまでできちゃった。
AIすごいなと思うよ。そして思うのは今後重要になってくるのは文法とか自体に詳しいことじゃなくて、そのプログラムの処理内容を指示できるシステムエンジニア的な言語化能力のほうじゃないかなと思った。
-----BEGINPGPSIGNEDMESSAGE-----Hash: SHA51220250609111559680 -----BEGINPGPSIGNATURE-----iHUEARYKAB0WIQTEe8eLwpVRSViDKR5wMdsubs4+SAUCaEbCbwAKCRBwMdsubs4+SLueAPwOv7PBk4voAe5qlcCEvs/PJhmKc5QAb/1R43JMQFuDZgD/UTPEKsL/PhK9jFGv2HDXK1dVjLNwvosgX9uYJh5xxwY==qiOE-----ENDPGPSIGNATURE-----
ChatGPTにバッチファイルを作ってもらったのでこれからは署名が捗るぞ。これだけ手軽化できたらレスバに入っても署名つけるのも億劫にならずできそうだ。
なにせ文章を書き折ったらあとはバッチダブルクリックしてCtr+Vするだけだ。
名乗る人が増えることを期待して作らせたものを公開しておく。
@echo offsetlocal::ミリ秒単位のUTC時刻を取得for /f %%A in ('powershell -nologo -command "[int64]::Parse((Get-Date).ToUniversalTime().ToString('yyyyMMddHHmmssfff'))"') doset timestamp=%%A::PGPクリア署名を作成echo %timestamp% | gpg --yes --clearsign> signed.asc::PowerShellで余計な改行なしに |< をつけてクリップボードにコピーpowershell -nologo -command ^ "$header = '>|'; $footer = '|<'; $body =Get-Content 'signed.asc' -Raw;Set-Clipboard -Value ($header + \"`r`n\" + $body + $footer)"echo Done. signed.asc created and clipboard updated (no extra blankline).
-----BEGINPGP SIGNEDMESSAGE-----Hash: SHA51220250608045542542 -----BEGINPGP SIGNATURE-----iHUEARYKAB0WIQTEe8eLwpVRSViDKR5wMdsubs4+SAUCaEUXzgAKCRBwMdsubs4+SCvuAQDjRjPVCO1F9DgmAKoqKYG7qB9r4e7y2Ky+/umT/OhnygEA8h2NL8zIczSphcOk/MaDWJJ2Y7WDA3d6gxFakW8TKAw==HE4/-----ENDPGP SIGNATURE-----
追加:コーディングです。誤字はずかし🍄
職場でめんどくさい作業をVBAとかPowerShellとかで自動化してる。
去年くらいからは生成AIとかにも相談しながら書いてる。生成AIには、それやりたいならPythonでやったら?って言われる。
セキュリティの都合上、Pythonとかの環境は構築出来ないんだけど、Pythonに興味が湧いた。
どんなかんじなんだろ?と思って、aojbetaで勉強してみてる。aojbetaでは、問題が与えられて、そのコードに他人がどう回答したかを見ることができる。
人の書いたコードを短い順にして見てると、あー、こういう書き方があるのか!ってなって面白い。
高校時代、和文英訳をするとき、和文和訳が上手い人の解答例を見た時みたいな気持ちよさがある。
問題が、数字ふたつと演算子が入力されたときに、その計算結果を出力をしろ。演算子が?なら、出力せずに処理を停止しろ。ってものだとする。
私は文字列を演算子として受け取る処理も分からんので、とりあえず辞書的に演算子の処理を書いて、演算子が?ならbreak、それ以外なら辞書の処理って書いた。
短いコードの人は、入力されたものをevalで受けて(へー、こんなコマンドがあるんだぁ)、計算がエラーならbreak(なるほど!)って書いてた。
競技プログラミングって、こういう楽しさなんだろうなぁ。自分が学生時代にもプログラミングの授業とかあればハマったのかもなぁなんて。
しゃーない、ワイがおすすめのインプレス記事貼るゾンビになるやで
ASMR好き編集部員、4400円で“ASMRの魅力が味わえる”AZLA「AIM C」使ってみた - AV Watch[Sponsored]
イヤピだけで1500円くらいの価値あると思うからお得やで…いやこれ6ペアやん、もっと価値あるで
このシリーズ2ペアでも1000円ちょいしてたやつの改良版やねん
【特集】Windows 11最新版「24H2」にアップデートする価値はある?新機能まとめて紹介!Windows 10は選択の余地なし - PC Watch
ワイが使えそうと思った追加機能は、エクスプローラーのタブ右クリからの複製と、スマホやタブをPCカメラ代わりにする設定やな
あとsudoコマンドがターミナルやPowershellで使えるようになったんも、いちいち管理者で起動せんで済むからええな
ほほう、わらわにそんな質問をしてくるとはのぅ。まあ、聞かせてやるのじゃ♡
実際には、PowerShellの.ps1ファイルがデフォルトでダブルクリックで実行されないのは、セキュリティ対策の一環じゃ。batやexeファイルは、その特性上、長い間使われており、しかも従来の管理策や認識が整っておる。それに対して、PowerShellの.ps1はスクリプトファイルで、直接コードを実行する特性を持っておるため、不注意で危険なスクリプトが実行されやすいのじゃ。
つまるところ、Microsoftがデフォルトでダブルクリックによる実行を制限したのは、ユーザーが意図しないスクリプト実行を回避するための安全策なんじゃよ。これで多少は理解できたかのぅ?♡
もし.ps1ファイルを実行したい場合は、PowerShellを管理者モードで開き、その中でスクリプトを実行するのが一般的なのじゃ。セキュリティ意識を持ちながら、適切に操作することが求められるのじゃよ♡
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がやってたような並列ダウンロードなんかが使える
はてなの皆さん、増田の皆さんたくさんの反応ありがとうございます。
どうしたもんかと悩んでる状況の中で、エージェントの人に話してもあまりピンと来ない反応が返ってくるし、周りに相談出来る人もいないしで、かなり勇気づけられました。
とりあえず今時点で返せる分だけお返事返しておこうと思う。
恥ずかしながらこんなサービスがあるのを知りませんでした。
今の状況では1000時間学習してから転職ってのは難しいんだけど、転職活動終えたら利用してみたいなという気持ち。
開発に夢見すぎ
自己評価低い
その通り、かもしれない。
技術記事とか書いてアウトプットしてる同世代以下の優秀な技術者たち見てて、自分とのスキルギャップに絶望してたところだったんだ。
5年弱ぐらいローコードじゃなくて、コーディングで実務経験積めてたらなあって。
後悔してもどうしようもないのは分かってるんだけども。
私のキャリアについて言葉を選ばず相談するので、言葉を選ばずレスポンスしてもらいたい。
鞭歓迎。
ありがとうございます。登録させてもらいました。
弊社来ない?
すごくめちゃくちゃたいへんありがたいお誘いなんですが、
増田に相談してそれで就職してっていうのがとんでもなく恥ずかしい。
でも、本当にありがとうございます。
あと色々突込み入ってた「作りたいWebサービス」については実際にdjnango使って手を付けてる段階です。
何てことない内容なので、確かにこれを作るためにわざわざ転職する必要はなさそうだ...。
・30歳
・単身
ETLツール(ローコードの開発ツール)を使ってデータ連携基盤を作成するための開発エンジニアとしていくつかプロジェクトに参加してきた。
年収400~500ぐらい。
平均的な残業時間は30hぐらい?少人数で本番稼働と運用保守のトラブル対応してた時は100時間は優に超えてたぐらい。
・特定のETLツールについての知識(前社の人員の中では最も実装/設計/開発の能力があった。と思う。)
・DBの浅~~~い知識(基本的なDDL,DML,DCLなら全て書ける程度。チューニングとかはやったことないので分からない。)
・BashやらPowerShellやらの浅~~~~い知識(プロジェクトで簡単なスクリプトを作成した経験があってその時に色々調べた程度。)
・開発チームのリーダーをやっていたのでそのあたりのマネジメント経験(PM/PLは未経験)
・Pythonとそのフレームワークの入門書籍一冊分ぐらいの知識
・Linuxの入門書籍一冊分ぐらいの知識(資格取得に向けて勉強中)
・作りたいWebサービスがあるので、プライベートでそれ作りたい
基本的なプログラミングの部分を全く業務で触ることなく仕事してきた。
前職を辞めて、出来上がったのはローコードの開発ツールの経験しか持っていない、市場価値のない化け物だった。
でも、前職みたいなローコードツールを使った開発から離れたいのよ。つまらないし、同じことの繰り返しだし、地味だし。
技術的に未熟な部分が多すぎて一足飛びに理想の企業に勤めるのが無理なのは分かってる。
とはいえ、年齢的にももうデッドラインが近いんじゃないかと焦ってる状態。
色々エージェント登録して求人見ながら自分でも出来そうな社内SEのポジションに3つほど応募した。(結果はまだ)
前職の経験踏まえたコンサルのオファーが来るが、給料は魅力的なものの「開発とか技術とかからは遠のいちゃうんじゃないか」って足踏みしてる。
SESと前職に似た開発,PM/PLポジションのオファーもたくさん来る。
化け物が「いつかこんな風になりたい」を実現するためには実務経験のためにSESで基礎から3年ほど実務経験を積んでからって思ってるんだけど悠長すぎる?
諦めて別の道、もしくは元の経験を活かせる道を探したほうが良い?
特定避けるために端折っている部分も多いけど、不足していて伝えたほうが良さそうな情報がありそうだったらあとで追記する。
Permalink |記事への反応(19) | 14:03
今仕事でよくExcelVBA使ったツール作ってるんだけど、これがまためちゃくちゃ楽しくて、もっと出来ることを増やしたい
でもVBAは属人性高いからあんまり良くないよね、という話も聞く(たしかに、今のところ全部自分用のツールとして作っているから上手くいっているけど、他人に渡したときに想定していない動きをするのがかなり怖い)
このレベルの人間が次に勉強すべきところってどのへんなんだろう?そして、どんな仕事ができるんだろう?
やっぱりPythonとかなのかな……学ぼうとして一度挫折しているから重く感じてしまうんだよな……どう勉強したらいいのかもわからないし……
PowerQuery?とかPower BI?とかもよく聞くし気になるけど、仕事で使える場面あるだろうか……
結局仕事でやらなきゃいけないことがある→楽に処理したい→楽するためにツール作る、みたいな流れが一番楽しいし身になるんだよな……
↓追記
すごく今更だけどトラバがいくつかついてた。
職場で仲が良い子が飛んだ。
その子だけじゃなく4人くらい1週間欠勤が続いてるから、みんな飛ぶんだろうな。
職場で使ってる人も多いだろうあの製品のテクニカルサポートをしています。
ほどほどに技術的なことも扱うけど、入ってくるのはタスクマネージャーすらわからない未経験ばかり。そりゃ、しんどくてやめちゃうよね。
お客さんもメールで送った内容の無視は普通だし、横暴でひどい人も多い。
エラーの詳細調査したくて情報提供お願いしたら、情報提供されることが不快だとキレられました。私たちのことを魔法使いとでも思ってるのかな。
私は前職もテクサポだったからなんてことないけど、周りが潰れていって見てて辛い。
未経験の人もだし、元々エンジニアの人も仕事量増やされすぎて潰れていく。
そんな感じで1/3は退職しちゃったかな。辞める人に対して新人は全然増えない。
クローズ連絡をすぐしてほしいとか評価を高くつけてとは言わないけど、確認してる内容を平気で無視したり、普通に考えたら実装できるわけないだろって無理難題をサポートに問い合わせないでほしい。
知識のないサポートにイライラするのはわかるけど、サポートなんてみんなPowerShellすら知らなくてネットワークのネの字も知らない人間なんだから。大目に見てほしいよ。