はてなキーワード: txtとは
CoreKeeper側で apt に依存しているっぽいので、Ubuntu でやった方が楽だと思います。
Ubuntu 20 TLS でやる場合、/home/steam/Steam/ が /home/steam/.steam/ になってたと思うので、環境に合わせて読み替えてください。
dpkg --add-architecture i386 add-apt-repository multiverse apt-get update apt-get dist-upgrade reboot
useradd -m steam passwd steam gpasswd -a steam sudo
sudo -u steam -s cd sudo apt install steamcmd ln -s /usr/games/steamcmd steamcmd ./steamcmd +login anonymous +app_update 1007 +app_update 1963720 +quit
cd ~/Steam/steamapps/common/Core\ Keeper\ Dedicated\ Server/ ./_launch.sh
Press Ctrl + C for Stop Core Keeper Dedicated Server
mkmir -p -m 775 /home/steam/.config/unity3d/Pugstorm/Core\ Keeper/DedicatedServer/worlds chown steam:steam /home/steam/.config/unity3d/Pugstorm/Core\ Keeper/DedicatedServer/worlds
Copy old world file (0.world.gzip) to
/home/steam/.config/unity3d/Pugstorm/Core\ Keeper/DedicatedServer/worlds
Copy old setting file (*.json) to
/home/steam/.config/unity3d/Pugstorm/Core\ Keeper/DedicatedServer/
chmod 664 /home/steam/.config/unity3d/Pugstorm/Core\ Keeper/DedicatedServer/worlds/0.world.gzip chmod 664 /home/steam/.config/unity3d/Pugstorm/Core\ Keeper/DedicatedServer/*.json
vi /etc/cron.hourly/corekeeper_backup #!/bin/bash cp -a /home/steam/.config/unity3d/Pugstorm/Core\ Keeper/DedicatedServer/worlds/0.world.gzip /home/steam/worldbackup/0.world.gzip.`date '+%Y%m%d%H%M%S'` cp -a /home/steam/Steam/steamapps/common/Core\ Keeper\ Dedicated\ Server/CoreKeeperServerLog.txt /home/steam/worldbackup/CoreKeeperServerLog.txt.`date '+%Y%m%d%H%M%S'` chmod 777 /etc/cron.hourly/corekeeper_backup sudo -u steam -s cd mkdir worldbackup
sudo -u steam -s cd ~/Steam/steamapps/common/Core\ Keeper\ Dedicated\ Server/ nohup ./_launch.sh tail -f ~/Steam/steamapps/common/Core\ Keeper\ Dedicated\ Server/CoreKeeperServerLog.txt
利用者の問題か、サーバーの問題かわかりませんが人数が10人超えると CPU4コア/メモリ4G/100Mbps で結構ラグかったです。
今は CPU6コア/メモリ8G/1000Mbps で動かしています。
6-8人以上で2-3時間サーバー動かしてると、Unityのライブラリがsegfault起こして、Core Keeper Dedicated Server が落ちます。
ログ取れたのでバグレポしましたが、改善するまでは不特定多数が好き勝手するサーバーみたいなのを長期運用するのは厳しいかなと思います。タイミングによってはアイテムロストしてしまうので。
DX!って叫ばれ続けた結果、おおよその紙媒体は電子媒体に移行できたんだけど
書庫の代わりに共有フォルダが作られてそこに印刷前のファイルが設置されるだけの変化しか起きてない
手書きサインが必要な書類とかはスキャンして設置、みたいなことをやってたんだけど
「これはいいぞ!DXだ!」
ただその書類に本当にサインが必要かどうかが全然議論されないし
そもそもその書類が必要なのかの議論がされないままDXもとい電子化の波は去ってしまった
共有フォルダには「★★このフォルダは経理しか開かないこと★★.txt」っていう中身空っぽのファイルだけが置かれている
デジタルリテラシーとはまさにこのことなんだろう、と思っていて
結局大半の人達は書庫に紙をファイリングする手法しか知らないので
なのでその書類が何のために必要なのかという部分に関して思考することはないし
書庫に付箋やテプラを貼り付けるように中身空っぽファイルを置く
DXで最も必要だったのは、典型的な事務作業がDX後にどういった形で運用されているか、というのをインターンなりで体験して貰うことだったんだと思う
というよりも今時のベンチャー的な企業運営がどのようになされているかを体験する方が良かったかもしれない
noindex付与して更にrobots.txtできょひまでしてんのにバグってんのかおら!
このページを Google 検索からブロックしたい場合、robots.txt を使用する方法はインデックス登録を回避する正しい方法ではありません。インデックスに登録されないようにするには、robots.txt によるブロックを削除して、さらに「noindex」を使用してください。
https://support.google.com/webmasters/answer/7440203#indexed_though_blocked_by_robots_txt
より抜粋
リンクがあるから辿って保存しましたってアホかこいつ。まあグーグルのサービスって基本アホなの多いんだよな
雑に作って雑に運用して、それで使ってて切れそうになることばっかりだよ。死ね
robots.txt によるブロックを削除して
と来たものだ。わかるかうんなもの。シューティングゲームの攻略で、死んで内部ランク下げてください。とか言うのと同じくらい理不尽だろうが。
理屈は何となく分かる、robots.txtに従ってページを読み込めないので、ページにnoindexが書いてあるかどうかわからんっていうんだろう?あほか
だったら最初からrobots.txtを優先してインデックススンナやボケが。アホか。人間の動物的な直感を配慮しろ。
まあそこも理屈としてはrobotx.txtはあくまでも「クロール」の制御であって「インデックス」の制御するためのものじゃないって言いたいんだろうけど、いびつすぎるんだよなぁ。
はーあほくさ
Twitterはオタクとフェミニストが殴り合いをするプラットフォーム
ここ数年VR元年が続いている
電子書籍元年は馬鹿にされていたけど、いまどき天使書籍を使わない人間はそもそも本自体をほとんど読まない人間なのでどうでもいい
ダーツと10万円相当の金貨を本当に交換して帰ったけど、次呼ばれたときにその金貨を持ち込んでダーツに交換した
腹筋を割るには腹周辺の脂肪を消す必要があるので、基本的に限界近くまでカロリー制限をする必要がある
猫砂とかミネラルウォーターみたいな値段はそんなでもないけど輸送コストの高いものを買うのはAmazonで買うと無料なのでお得
でも今はどうかわからない。いまのAmazonは単品購入できない商品とかが多いのでわからない
楽天でふるさと納税したら期間限定の楽天ポイントが使える。つまり楽天のスーパーセールだかお買い物リレー高で数割のポイント還元をしつつふるさと納税すると、事実上税金を割引していることになる
インフォシークは消えた
セレクトを押しながらXXYBA
ラウンドアップはグリホサート
葉加瀬太郎はあんまり博士感がない。どっちかって言うとカリフラワー感がある。カリフラワー次郎
マックスむらいが誰なのか知らない
生きる意味がないからって死ぬ理由があるみたいに決めつけるなよ
わらふじなるおの顔がすぐに頭に出てくるやつは凄い
「もうお前とは二度と会わない」と言うときは大体会う
今年一番笑ったニュースは、NHKの集金人がドアスコープから見てると知ってて、NHK受信料払えと言ってきたこと
パカパカパッションとポップンミュージックがごっちゃになっている人は多いかもしれない
ビオランテそれほど人気ないのにテレビで放送されるゴジラはだいたいビオランテ
労働の収益上昇よりも資産による利益上昇のほうが早いので絶対に最後は殺し合いになるシステム
なぜディープラーニングにシグモイド関数とかレイル関数を使うと生成機が良くなるのかは誰も知らない
みーちみっちみっちうんこたらし、葉っぱがないので手で拭いて、もったいないから食べちゃった
ロート製薬は副業が公認されている。ロート製薬のなんとかいう女キャラがいるんだけどそいつも副業している設定
熱盛が何なのかしらない
24時間テレビのヘキサゴンのシーンでバッタの幻覚をみる動画がWeb上から消えている
同じくなんや!とブチ切れるおじさんが出てくる動画もWeb上から消えてる
権利があるからしゃーないだろうけど、面白いからこの手の事故動画を公式で見れるようにしてくれ
ずっと頭がかゆい人は、とにかく食生活を直せ。毎日サバ缶を食べて、オリーブオイル使え
絶対に市販の惣菜とか弁当。ましてやカップラーメンとか、ポテトチップスは絶対に食ううな
基本的に加工食品は質の悪い油が使われているので身体に炎症が出るの当たり前である
なので食生活を見直せ。
というか健康マニアなら健康維持するためにまず最初にすることは厚労省が出してるコマの絵を参考に生活全体を見直すことである
コマの絵を知らないくせに健康オタクなんですとか言ってるやつはゴミ。コマの絵が基本であり、応用はその先である
にゃんちゅーの声の人が死んだ気がする。ゴロリの声の人は死んだし、死んでそうで死んでいないことがいつも話題になってたぱっとサイデリアの人はこの間死んだ
クラシアンはボッタクリなので使わないほうがいいような気がする。知り合いの工務店を使おう
8万の高気密住宅を借りるよりも、4万の安普請で2万の電気代使って暖房機たせたほうが資金効率良い
世の中には右手と左手で1pと2pをそれぞれ操作してメタルスラッグをプレイする化け物みたいな人がいる
子供がなりたい職業第一位はプログラマー。公務員さえ魅力がなくなってしまった
マンぐり返しは性別によってちんぐり返しにある。行う人間の性別で名前が変わる珍しい動作
金がほしいとか言ってるやつに限って、ゴミみたいな物事に金使ってて金欲しくなさそう
デブは食べてないっていうけど、引くくらい食べてる。砂糖水飲んでる
猫用のトイレシートを買う時は必ず小さい方を買って、大きい方は使わない
オランジーナのペットボトルで蓋を開けるには斜めに力を入れながら勢いをつけて捻らないといけないのを知っている人が最近少なくなった
年賀ハガキは319通りを期待するという人と、010通りの当選を期待するという人がいる
2013年の時点でもう中学生は古いコメディアンという合意が世間でなされていた
献血行こうと思いつつどういう体調なら行ってもいいのかわからない。採血で気分悪くなったことあるので行かないほうがいいのかな
新型コロナのおかげで人と合わなければ風邪は引かない説が立証された
時間を切り売りするとは、人生を切り売りすることであり、命を売っていることにほかならない
バヤリースのヤは小さいけど通常のヤと発話される
バミューダトライアングルは多分嘘
オールインできるようなチャンスがやってこないのは単純に他人との交流が少なすぎる
他人との交流を増やすとやっかいな人間に当たるデメリットがでかくて、バカに翻弄される人生だったのでかなりショウキョウ的にならざるを得ない
ゴルゴ松本の特技は雲を消すこと
ハンターハンターはそれほど面白くない。なんとかアイランドに入るまでくらいは面白いけど、その後はなんかやたら複雑な人間関係とか能力とかが重なっていって読んでても意味がわからない
わぴこはかわいい
99%ピロリ菌のせいなんだからピロリ菌いない人はまじでバリウムやる意味ない
というか被爆する事考えたら内視鏡一択。喉とか食道、十二指腸の様子を目視できるのでがまんしなさい
ゼンキはエロい
おじゃまユーレイくんは世代ではない
バーコードバトラーもエロい。でも男の子のさくらちゃんが好きです
Pixcel4のフェリカチップのいちはカメラややした付近。改札で使うには画面側からしっかりピンポイントでその位置を押し付ける必要がある
トラのパーカーを着せられている子供見かけたので、うかれてるなーという感想を持った
地方のホームセンターは茶髪多すぎる。茶髪じゃないと思ったらパンチパーマだったりする
ポップンミュージックの最新作は2012年に発売されたPSPの奴
一日に10G以内の通信しかしない人は、楽天モバイル+テザリングで、電話とネットインフラの利用料金を月額3000円に圧縮できる
比較しないほうがいいとは言えるが、比較しないでいるにはかなりの訓練と素質が必要
なので多くの人間はずっと不幸に囚われて地獄を見るよりほかない
和田アキ子と古舘伊知郎のダッグといえば幸せ家族計画ではなくクイズ悪魔のささやきである
ビーマニの特許は切れてるので譜面が上から落ちてきて音楽に合わせて打鍵するゲームはどんどん作ってよい
子供が死ぬ原因は通り魔ではなく親自身か周囲の大人のせいであることがほとんど
生まれた子供に100万譲渡してS&P500で運用し続ければ速攻でFIREする
思い出は奪われないけど、死んだら消えるからやっぱりそこまで固執するものでもない
もっと言うとアルツハイマーになって人格崩壊したら、思い出や知識も消える。失いにくい性質であるだけなので過信しすぎるのも問題ありそう
ラッスンゴレライ vs ニーブラ
横から来るのを受け流すのはややわかる
鼠先輩が誰なのかはしらない
はじめてゆってぃの名前を聞いたのはとある施設に来ていたキンコメのトーク
にこにこキングオブコメディは面白かった。とくに道徳の授業でコントを見せて生徒に感想を書かせた先生が、その感想を送ってきたかいは感動と笑いで最高の感情を体験できた
だからつらいよね
HTMLの文字列ををサーバーサイドで動的生成することをレンダリングって言うの違和感あるけど、ガイジンもそう言ってるししかたないっぽい
ミジンコは肉眼で見えるくらいにでかいし、DNA情報も人間の何倍もある
原生生物はミトコンドリアを細胞内部に取り込んでるとかいう頭いかれた進化している
だから今後人間はAIを取り込むの当然だし、完全電子化するかもしれない
スピルリナが栄養食品として扱われてる現状になんとも言えない感情が湧き上がってくる
ストロマトライトとかなんか凄いよな
サーチュイン遺伝子を活性化させるには飢餓かNMNが必要っぽい
絵が下手な人は人間の顔を真円に勝とうとしがち、野原ひろしみればわかるけど人間の頭は縦長の楕円です
まず後頭部を中心に球体があると想像して、その手前に顎付近のパーツが付属していると考えるのが良い
あたまという一つの切り出したパーツが存在知るのではなく、内部の骨の構造を考慮して、頭蓋骨と顎が別れていることを意識するだけでそれっぽくなる
あとは人体を書く場合は足が大きい。
太ももはめちゃ太いし足は腕よりも長い。両足で全体重を支える人体構造なのだから当然だけど、絵が下手な人は手と足を同じ太さ、同じ長さで書きがち
vimで左右の文字を入れ替えるのはxp。ただしこれはコマンドの単位が2になるのでアンドゥが二回必要になる
バッファ移動でbコマンドを使うときに、途中までファイル名を入力するとTABで補完できる
gfでカーソルが乗っている箇所のファイルパスから、対象ファイルを直接開くことができる。
gFを使うとファイルパスの末尾に /tmp/hoge.txt:42 のように行数がある場合、指定行に直接ジャンブする
タマランチ会長とかマグワイヤとか、慰安ソープとか、スポーツ用語ってエロいの多くない?
プログラミング未経験から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自体は局面を入れたら評価値を吐く謎の箱という扱いでよい。
グラフ化や数値の扱いだけでなく、将棋AIとのやりとりをやってくれるあれこれもあるようなので。
あと習得が楽だと聞いた。その話を教えてくれた人はもう10年間英語学習法をブクマし続けてるけど。
あと「読みやすいコードじゃないと動かない」って設計思想がかっこいい。ついでに言うといわゆる「おまじない」が少なそうなのも魅力。(CのHello worldで挫折した経験あり。studio.hって何……)
プログラム講師をやっている?方が音楽制作を初歩からやってみる、という(残念ながら)リアルタイム視聴者が俺だけしかいないような配信があったので、音楽の基礎(についての知識は持っていた)を教えてあげたお返しのような形で、「pythonでこういうことがしたくてこういうライブラリがあるのはわかった。経験はHTML+CSS(変数導入前、Bootstrapなんてなかった)のみ。どうしたらよいか」という質問をしたら、「progateは簡単すぎると思うのでPaizaが丁度いいのではないか」というアドバイスを頂き、比較もせずに即登録したのだが結果的にはこれがドンピシャだった。
最近流行りの、環境構築不要で講座の内容を書いて覚えるタイプのサイト。
無料で入門講座の序盤を受けていたらふと目に入ったのが、「対象者:これからプログラミングを学びたい方。HTMLがどのようなものかを知っている方。」でYoutuber先生のオススメ完璧か?と思った。そして実際に完璧だった。
基本的に1講座3分+演習1~2問+やりたければ問題集たくさんという形式なのだが、これが簡単すぎることなく難しすぎることもなく、俺の知識レベルにベストマッチだった。基本的に毎回何か書くことになるので、変数とは~みたいな解説だけで終わる回がほぼ無いのも飽きなくてよい。
Python入門(と言ってはいるがまだこれだけで発展編はない)の見出しは「プログラミングとは」「条件分岐・比較演算子」「ループ処理」「リスト」「辞書」「多次元リスト」「関数」「クラス」「クラス発展」「例外処理」に各5~8講座*3分+演習、という感じ。クラス発展の途中で行けそうだと思ったのでドロップアウトして実製作に移った。実際関数まで理解していれば、この程度の小さなツールには十分だった(もしかしたらクラスを使えば多少楽になった場面はあったかもしれないけど)。
また、これは書いてる今気づいたことだが、上のコースで学んだことで、実際に役立たなかったものはほとんどなかった(強いて挙げれば辞書くらい?使えてないだけかも)。このこともコース構成の優秀さを示している。
ここまででだいたい2週間くらい。
もともとこのサービスは知っていたのと、谷合先生が実際に使っていたように、便利そうなライブラリのcshogiが主にcolab(jupyter)上で動かすことを意図しているようだったので、まずここから入った。最初はcshogiが列挙してくれる特定局面での合法手をリストに入れて、そのリストの項目数=その局面での合法手の数を出力することから始めた。これは本当に簡単にできて興奮した。
学習と好きなことが直結してると、こんなサンプルコードみたいな簡単なことで喜べるのでコストパフォーマンスがよい。
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)
ここは絶対もっとマシなやり方があるはずなので、識者の教えを請いたい。
Colab上でまあまあ目処がついたので、この辺りでPythonの環境を作った。ここまでそれをやっていなかった理由は、「おま環」トラブルの可能性をなるだけ遠ざけておきたかったからである。環境が悪いのか俺が悪いのか分からない、というのは初心者にとって限りなきストレスである。あーネットが繋がらなくてルーターの設定や接続とか支払いとか文字通り部屋をひっくり返しながら調べてたら実はフレッツ自体が落ちてた件を思い出してイライラしてきた。cshogiはJupyter上で動かすことを意図しているようなので、それで動かなければ自分の書き方が間違っているのだとほぼ確実にわかる。
まあこの辺りはいろんなサイト見ながら仮想化などしつつ普通に。仮想化が何か分かってないんですけど。
これまで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日。圧倒的成長!
Paizaラーニング再び。後半ではデータベースとか本格的な話もあるようなのだが、txtに書き込む一行掲示板を作るまでの前半部を高速で履修(演習は全部飛ばした)。なるほどー、こうやってやりとりするのね、と最低限は完全に理解した。
Jupyter向けのコードを普通のPythonに直してあっちで数字を出してこっちでそれを受けて元に戻して……とかやってると循環参照か何かで怒られることに。その対策に細かく部分を分けて関数にしたのだが、その場合ってもしかしてdefの内部しか読まれない?(共通部分も読まれると思ってた)(いや、共通部分は読まれるけど他のdef内が見えないのか?何も分からん)なるほど。こうなると関数の内部から上に戻るためにクラスとか欲しくなるのかなーという感想。
最終的にWebに公開しようとこの時点では思ってたので、txtに一旦出力するのが安全性的にどうかとか考えてたのだが、テキストの読み取り周りでハマる。結局抜け出せず諦めた。
以降は、HTMLにダブルクオートが抜けてるのに一時間気づかないとか、FlaskのXSS対策の対策をするとか、ファイルの書き込み設定をミスって2万手くらい蓄積されて評価値グラフが大変なことになったが、原因に気づかずひたすらグラフ生成部を調べ続けるなど、非本質的な問題にかかずらっていたので書くことは特にない。
なので、最初に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様に、厚く御礼申し上げます。
私が超個人的な理由で欲しいと思い、完全に自分で楽しむために作ったので、誰にも売られることはないし誰の手に渡すつもりもない。
インターネットでバズり、有名になったnote・はてな匿名ダイアリー(俗に言う「増田」)・はてなブログの記事をコピーアンドペーストし、書式設定を整えて文庫本サイズに編集した。
以前からCiNiiなどで興味を惹かれる論文を見つけてはA4紙に印刷してホッチキスで留めて紙として保持して読んでいた。
理由は3つある。
三つ目は「とにかく文章を読みたい」。
率直に言うと、今回の本に関して、前者2つの理由は全く関係ない。ただ長い文章を読みたかったから紙として本を作った。別に記事をブックマークするに留めてもよかったのだけど、やっぱり記事は削除とかもされるだろうし、そういう事態が起きたときに、どうせ別の長文を読んで満足するだろうと思いつつも、やっはりあの時読んだ文章を読み返したいと思いはするので、これは紙に印字して物理的に所持しておいた方がいいだろうなというのがあった。
書式・タイトル・偉そうに序文まで書いたが、それ以外は全部他人のものだ。だから褒められたことではない。
だから超個人的なものだと書いたのだ。万が一この本を欲しいと思ったところで、そんなところに金を出すくらいなら自分で編集して一冊印刷してもらう方がはるかに安い。製本直送で印刷を依頼した。書式はイズナを使用し、メモ帳にまとめた全ての文章を一括でpdfに変換し、そのファイルを送った。pdf並びにtxtファイルの保存はいずれも有るが、誰にも渡すつもりはない。これは本来そういうものではない。
正直、このことは自分のブログで書きたかったがやめた。ここが自分の弱みだ。肝心なところで日和るんだ。
増田であっても特定はされるだろうが、ある程度時間はかかるだろうし別にいいや。
他人の感情を、わざわざ紙に印字するだけに飽き足らず、わざわざ本にまでして、わざわざそのことをインターネットに報告してしまうような変態野郎なんぞ、自分一人で十分だろ。
プログラマーに憧れる皆さん!こんばんは。
「自分は文系だから」「未経験だから」と諦めていませんか?大丈夫です!プログラミングにセンスは不要です。正しい手順で学べば、文系や未経験でも、誰でも一流のプログラマとして活躍することができます。
今日は、未経験から最短でWeb系企業に就職するための勉強法をご紹介します!
もっともオススメの方法は、顕正会のセミナーに参加することです。
顕正会は、日本で最大のエンジニアのコミュニティであり、非常に良質なテキストを用いて、プログラミング初心者向けのセミナーをしていることで有名です。顕正会に入ることで、未経験からでも一流エンジニアのノウハウを学ぶことができます。
また、意外と知られていませんが、日本のエンジニアの8割は顕正会の出身です。実はあのひろゆきやビル・ゲイツも顕正会の出身です。ですので、顕正会のネットワークを介して就職先を斡旋してくれたりしますし、自分が顕正会員だと、面接時にも非常に有利になります。
顕正会のセミナーは、インターネットからも応募することができますし、秋葉原などで声をかけられることもありますので、誰でも簡単に参加できます。会員もフレンドリーな方ばかりですので、是非、お気軽に応募してみて下さい!無料体験もできますよ。
プログラミングの勉強を始める前に、まず、必要なものを準備しましょう。必ず必要なものと、できればあると良いものは以下の通りです。
可能な限りスペックの高いものを買いましょう。2021年現在であれば、CPUは18コア、36スレッド。RAMは128GBくらいはあると良いでしょう。ストレージはSSDであれば1TBもあれば十分です。
OSは、Windowsで開発するならWindowsが、Macで開発するならMacが必要です。よく分からなければMacを買っておく方が良いでしょう。基本的にMacにできてWindowsにできないことはありません。
インターネットは、この記事を見ている人は既に持っているでしょう。ただし、モバイル回線で見ている人は、自宅に有線のインターネット環境を用意した方が良いです。
顕正会に入会すれば、上記のスペックのPCを無料で貸し出ししてくれます。また、法人向けの専用線を無料で取付工事を行ってくれる上に、通信費を全て負担してくれます。
まず、他の会員と連絡を取るために、SNSのアカウントを持っていると良いでしょう。
最近は完全にPC上での学習もできますが、やはり、勉強の基本は紙のノートに直接書くことです。医学的にも、手指の動きと脳の記憶回路が関連していることは証明されており、手を動かすことで効率的にものを覚えることができます。
Kindleなどの電子書籍リーダーは持っておいた方が良いです。紙の本は時代遅れです。いやしくもITのプロを目指そうという人間が、このような最先端のデバイスを使っていないのは恥だと思うべきです。紙の本を買わないことは、環境を守ることにも繋がります。現金も持つのはやめましょう。
せっかくセミナーに参加しても、受身で聴くだけでは、プログラミングを習得することは難しいです。ここでは、自宅でどのような勉強をすればよいのか、ご紹介します。
まずは、教科書や参考書を写経することから始めましょう。教科書や参考書の本文を一字一句正確に書き写すのです。
よく、「写経は理屈を学べないからだめだ」と批判されますが、まずは正しい「型」を体に覚え込ませるのが先です。野球や水泳などでも、細かい理屈よりも先にフォームを固めるのと同じです。書き写している内に理屈は自然と身に付きます。
また、写経のメリットは「飛ばし読み」を防げるところです。一字一句正確に写経をすれば、細かい部分を「分かったつもり」になって飛ばしてしまうことを防げます。たとえば、比較演算子の等号は=ではなくて、==です。プログラミングはこういうところに注意して学ばなければいけません。
教科書のサンプルコードをノートに書き写したら、それを今度は自力でフローチャート(UML)に変換してみましょう。そうすることで、自分が本当にそのコードを理解しているのか、確かめることができます。
フローチャートやUMLが素早く正確に描けることは、プログラマーとして働く上で非常に重要なスキルです。それらはソフトウェア設計の基礎となりますし、ソースコードを読めない営業や顧客にとっては貴重な資料となるからです。プロのエンジニアは、COBOLのソースコード10万行を1週間でフローチャートにして、Excelに転載することができます。
ここで一つ注意すべきことがあります。フローチャートを描くときは、必ず専用の定規を用いて描いて下さい。フリーハンドで描いたものは業務ではフローチャートとは認められません。これはまともな企業に就職すれば研修などで必ず習うことですから、今の内に覚えておきましょう。
エンジニアを目指すのであれば、プログラミングだけではなく、Excelの使い方も学びましょう。Excelはエンジニアにとっての万能プラットフォームです。エンジニアはあらゆる作業をExcelで行います。セル結合や罫線を用いて、見栄えの良い資料を作る技術は、エンジニアにとって必須です。
プログラミング学習中であれば、たとえば以下のような題材の資料を作ってみると良いでしょう。
尤も、以上の資料は、ツールを使うことで自動で作成することもできます。たとえば、ソースコードの更新履歴はGitなどのバージョン管理システムを使うことでも管理できます。しかし、それらの資料としてのクオリティは非常に低いため、アマチュアしか使うことはありません。プロを目指す皆さんは、必ずExcelを使いこなせるようになりましょう!VBAの習得も必須です。
以上、プログラミングの勉強法について解説しました。ここからは、実際にソースコードを書くときのコツを紹介していきます。他のプログラマと差をつけることができる技術ですので、意識するようにして下さい。
理想は、aやxなどの一文字です。ただし、これだけだと26文字しか使えないので、a1, a2, ...のように連番でグルーピングすると良いです。
また、変数の宣言と使用箇所が離れた場合に、変数の型がすぐに分かるように、たとえばint型であればi1, i2, ...、string型であればs1, s2, ...のように命名すると、読む人に親切で自分もミスしにくくなります。
変数名を長くするのは、以下のデメリットがあるため、絶対にやめましょう。
多くのプログラミング言語には、クラスや関数といった機能がありますが、これらは基本的にライブラリ提供者などが使う想定の機能であり、一般のプログラマが使うのは好ましくありません。したがって、クラスや関数はなるべく使わないようにして下さい。
不要な関数を作らないためのテクニックには、以下のようなものがあります。
まず、関数の引数に「フラグ」を渡し、関数内部で処理を切り替えれば、1つの関数で複数の処理をすることができます。
function f(i) { switch(i) { case 1: // i = 1のときの処理 break; case 2: // i = 2のときの処理 break; case 3: // i = 3のときの処理 break; // ... } }
この方法は、以下に述べる「変数の寿命を伸ばす」効果もあります。つまり、この関数内で宣言された変数は、すべての処理で共通して使用することができます。
クラスに不要な関数を作らないようにするには、「継承」を用います。複数のクラスで用いる関数を定義したクラスを1つ作っておき、そのクラスを継承すれば、新しいクラスに関数を定義する必要はありません。
理想的には、プログラム内のすべての関数を同一のクラスに定義し、それを継承するべきです。そのようなクラスは俗に「神」と呼ばれ、プログラマからはこの上なく尊ばれています。
class God { f1() { // 関数1 } f2() { // 関数2 } // ... } class C1 extends God { // 何も書かなくても上の関数が使える! } class C2 extends God { // 何も書かなくても上の関数が使える! } // ...
変数は宣言する場所によって、ソースコードのどの範囲から参照できるかが決まっています。この範囲が広いことを、「変数の寿命が長い」と言います。
たとえば、以下のコードのaは、関数定義の外側からは参照することができません。
function f() { var a = 1; return a; }
一方、以下のコードのaは関数の内外どちらからでも参照することができます。
var a = 1; function f() { a = 2; return a; }
せっかく作った変数がすぐに死んでしまうのは、非常にもったいないです。ソースコードの表面には現れませんが、変数を作ったり捨てたりするのには、計算コストがかかります。したがって、寿命の短い変数を作りすぎてしまうと、プログラムが遅くなってしまいます。
また、変数の寿命が長いということは、変数をたくさん作らなくても、1つの変数を色々なところで利用できるということであり、とても便利です。たとえば、上記の前者のコードでは、関数の外部からaの値を参照したくなっても、参照することができません。後者のように書いておけば、プログラムのどの箇所からでも、aの値を参照したり、更新することができます。したがって、変数の寿命を長くするとプログラムを変更しやすくなります。つまり、保守性が上がります。
例外とは、プログラムが予期しない処理をしようとした場合に、プログラムの実行を停止し、呼び出し元にエラーを通知する機能です。たとえば、「test.txt」というファイルを開こうとしても、そのファイルが存在しない場合は、例外となります。
例外が発生すると、プログラムが停止してしまうため、非常に困ります。したがって、プログラマは例外をきちんと処理しなければなりません。
ほとんどのプログラミング言語には、例外処理のための機構があります。たとえば、以下のような構文です。
try { // 例外が発生し得る処理 // ex. ファイルを開く } catch (e) { // 例外が発生したときに、実行する処理 }
例外への対処は実はとても簡単です。是非ここで覚えて下さい。上記のような機構のある言語であれば、catch節の中身を何も書かなければ、例外が発生しても、何事もなくプログラムは動作を続けます。
try { // 例外が発生し得る処理 } catch () {}
全ての例外を潰せば、決して不慮の動作で停止することのないプログラムを作ることができます。ですから、例外が発生し得るコードは、積極的に上記のtry-catch構文を用いて、例外を潰すようにしましょう。
変数や構文などのプログラミングの基礎は覚えた人向けに、ソースコードを書くときのコツを紹介していきます。どれも今日から実践できるものばかりです。他のプログラマと差をつけることができる技術ですので、ぜひ意識するようにして下さい。良い子はまねしないで下さい。
理想は、aやxなどの一文字です。ただし、これだけだと26文字しか使えないので、a1, a2, ...のように連番でグルーピングすると良いです。
また、変数の宣言と使用箇所が離れた場合に、変数の型がすぐに分かるように、たとえばint型であればi1, i2, ...、string型であればs1, s2, ...のように命名すると、読む人に親切で自分もミスしにくくなります。
変数名を長くするのは、以下のデメリットがあるため、絶対にやめましょう。
多くのプログラミング言語には、クラスや関数といった機能がありますが、これらは基本的にライブラリ提供者などが使う想定の機能であり、一般のプログラマが使うのは好ましくありません。したがって、クラスや関数はなるべく使わないようにして下さい。
不要な関数を作らないためのテクニックには、以下のようなものがあります。
まず、関数の引数に「フラグ」を渡し、関数内部で処理を切り替えれば、1つの関数で複数の処理をすることができます。
function f(i) { switch(i) { case 1: // i = 1のときの処理 break; case 2: // i = 2のときの処理 break; case 3: // i = 3のときの処理 break; // ... } }
この方法は、以下に述べる「変数の寿命を伸ばす」効果もあります。つまり、この関数内で宣言された変数は、すべての処理で共通して使用することができます。
クラスに不要な関数を作らないようにするには、「継承」を用います。複数のクラスで用いる関数を定義したクラスを1つ作っておき、そのクラスを継承すれば、新しいクラスに関数を定義する必要はありません。
理想的には、プログラム内のすべての関数を同一のクラスに定義し、それを継承するべきです。そのようなクラスは俗に「神」と呼ばれ、その利便性からプログラマからはこの上なく尊ばれています。
class God { f1() { // 関数1 } f2() { // 関数2 } // ... } class C1 extends God { // 何も書かなくても上の関数が使える! } class C2 extends God { // 何も書かなくても上の関数が使える! } // ...
変数は宣言する場所によって、ソースコードのどの範囲から参照できるかが決まっています。この範囲が広いことを、「変数の寿命が長い」と言います。
たとえば、以下のコードのaは、関数定義の外側からは参照することができません。
function f() { var a = 1; return a; }
一方、以下のコードのaは関数の内外どちらからでも参照することができます。
var a = 1; function f() { a = 2; return a; }
せっかく作った変数がすぐに死んでしまうのは、非常にもったいないです。ソースコードの表面には現れませんが、変数を作ったり捨てたりするのには、計算コストがかかります。したがって、寿命の短い変数を作りすぎてしまうと、プログラムが遅くなってしまいます。
また、変数の寿命が長いということは、変数をたくさん作らなくても、1つの変数を色々なところで利用できるということであり、とても便利です。たとえば、上記の前者のコードでは、関数の外部からaの値を参照したくなっても、参照することができません。後者のように書いておけば、プログラムのどの箇所からでも、aの値を参照したり、更新することができます。したがって、変数の寿命を長くするとプログラムを変更しやすくなります。つまり、保守性が上がります。
例外とは、プログラムが予期しない処理をしようとした場合に、プログラムの実行を停止し、呼び出し元にエラーを通知する機能です。たとえば、「test.txt」というファイルを開こうとしても、そのファイルが存在しない場合は、例外となります。
例外が発生すると、プログラムが停止してしまうため、非常に困ります。したがって、プログラマは例外をきちんと処理しなければなりません。
ほとんどのプログラミング言語には、例外処理のための機構があります。たとえば、以下のような構文です。
try { // 例外が発生し得る処理 // ex. ファイルを開く } catch (e) { // 例外が発生したときに、実行する処理 }
例外への対処は実はとても簡単です。是非ここで覚えて下さい。上記のような機構のある言語であれば、catch節の中身を何も書かなければ、例外が発生しても、何事もなくプログラムは動作を続けます。
try { // 例外が発生し得る処理 } catch () {}
全ての例外を潰せば、決して不慮の動作で停止することのないプログラムを作ることができます。ですから、例外が発生し得るコードは、積極的に上記のtry-catch構文を用いて、例外を潰すようにしましょう。
1万程度ではまだまだです
お前もナンバーワンだ!
途中に「しの(77.0kg)」さんの名前を見つけて悲しくなった…
このコメ見るまで有名な人だと知らんかった
ブクマカとしてそりゃ当然
そのうちIDも消すよ、せっかくなので振り返り的に見返してなんとなく消したくなったからブクマ消した。
なぜどこぞのニュースサイトのようにページを分割しまくるのか。
助けてワンページマン!
こんなに細かく分ける必要はないのでは
もともと2万字ぐらいのひとまとめで作ってたけど何故か50行ぐらいを超えると増田に投稿しても反映されなかったので泣きながら分割投稿した。増田のバグなのか仕様なのか知らんけど誰か調べて
-----------------------------------------------------
Q.いつ辞めるの?
A.来月ぐらいにはアカウント消す予定。既にはてなのサービスのデータ全部消しているので問題なし。
Q.移行するなら下書きしてた方が良くない?
A.インターネットの塵と化すので移行する準備は問題なし。一応txtに下書きはしてた。欲しいなら上げることは可能。
A.めんどくさいので代わりにやってほしい
Q.やめるなら記法について書いといてほしい。枠とか線とか見やすいから参考にしたい
A.枠内はこんな感じ(大なり小なりが勝手にlt;gt;になってるけど記号ね)
>> ブコメ - id: <a href="https://www.hatena.ne.jp/">ブコメページ</a> - <a>ページタイトル</a> <<
Q.インフォシーク はまだあるぞ
A.infoseek iswebのことをインフォシークと書いてたわ
------------------
Q.なんでやめるの?
A.別増田にid名指しでアホやろって言われてなんかもうどうでもいいやって思ったから。匿名で卑怯だぞという気持ちがないではないが、どうでもいいや感のほうが大きかったため。
2009年からブクマ始めて気が付けば約10000ブクマしてた。もともとはてなに来たのはうごメモはてなからで、ブクマ始めた当時(12年前)は中2。ブクマの機能すらよくわからず使ってた。
初期はちきりんのサイトとかライフハックの記事をよくブクマしてた、若い。
hagexさんとかcyberglassさんのブログとかもブクマしてて懐かしさを感じた。
全体的に感じたのは、インターネットのコンテンツ(記事)は永遠ではないということ。本当に必要なものがあるのならオフラインに保存必須。それとブクマページがコンテンツの墓標のようになっていたこと。webコンテンツの存在を残すために、ブクマカはこれからも色んなページをブクマしてほしいと思う。
どうでもいいけどブクマ全部見返して削除するのめちゃくちゃ時間がかかった。とても大変だった…
ブクマカはこれが見たいんでしょ、わかるよ。
確認したらブコメが消えていたものはid省略して記載。なんで消えてるブコメを把握してるかって?ブコメページをブクマしてたからだよ。
ページを「ブクマ」しようとするって事は、逆にブコメページを「ブクマ」されるかもしれないという危険を常に『覚悟して来ている人』ってわけですよね…
ランクイン(?)したブクマカはおめでとう。ランクインしてないブコメも別に悲しむ必要はないと思う。
そいつらって「ただ学校が一緒だった」だけで、友達じゃないよ。友達って、年齢関係なく、横並びだから。 - id:privates
これが教員側または親の側からの心構えとしては、失敗する権利を奪うなとなる。老婆心やお節介で能動的に手伝いたくなるがそれは自己満足。教育とは自ら学ぶ人間に育てること。そしてそこから学ぶことなのである - id:Miroc
ブコメページ - 大学の恩師に教わった、「なにがわからないか、わからない」ときの質問のしかた。 | Books&Apps
え、勉強や努力って誰かの結果と比較する為にやる事じゃなくて、自分の伸び代を最大限に伸ばす為にやるものでしょ?勝つとか負けるとか言ってる時点で自分人生の主導権を他人に委ねてる。精神が負けてるよ。 - id:kanagawakama
人格に問題あり。 そもそも食糧のありがたみを感じるのは満腹の人ではなく空腹の人だろう。 金のありがたみがわかるのは金欠の人だろう。 国のありがたみがわかるのは、国を失った人だろう。 - id:osakana110
SNSは人を折れるまで先鋭化させる。大勢からの肯定と大勢からの否定に曝され続けて前者に寄って行かないことは難しいんだろうな。自主的洗脳装置 - id:mame_3
ブコメページ - キクマコ先生「河野大臣が質問を4連続で無視したことを非難した立憲民主党は外交能力がない」 - Togetter
ここ数年考え続けている「SNSは人を壊す」という問題の端的な例だったのかも。情報を発信して承認される繰り返しの中で、書き手はだんだん視野が狭まり、平衡感覚を失い、狂っていく。 - id:muchonov
今のツイッターからは離れた方がいい。自分が本来関わってはいけない話題に軽率に関わり始めて、結果的に精神を磨耗することになる。弱くてちっぽけな人間が世界中の不幸にわざわざ付き合うことはない。 - ブコメ削除
SNSの暗黒面に落ちるな。反応を求めると誰が見込み客で何のために投稿しているかを忘れてしまう。いいね欲しさに道を誤り、反応してくれたのはエロい男のみだったと。見込み客に向けた投稿をしないと。 - ブコメ削除
インターネットでは、自分が他人にとって「何の反応も示す価値のない、特別ではない他人」であることを知るのはかなり初期段階だと思う。「自分が特別でないことを知る」のは全く特別なことではない。 - id:kuzudokuzu
知らないうちにQNAPのNASにランサムウェアが入って荒らされていた。
心当たりのある人は同様の被害がないか一度確認してみたほうが良いかも。
NAS内のフォルダごとに「!!!READ_ME.txt」というファイルがあり、テキストファイルを開くと「ファイルを暗号化したから、解除のためにはこのアドレスにアクセスしなさい」といった内容の英文。
調べたら約25000個のファイルが7z形式に変換されてしまっていた。
更新日時からすると、4/22ごろに侵入されて暗号化処理が進み、
4/23の午前3時にMalware Removerの定期スキャンが入って、そこでウイルスは除去された様子。
監視カメラファイルの保存が主な目的だったから、実害は過去の映像がみられなくなったくらいの被害だが、大事なファイルがあったら危なかった。
web情報では、2021/4/19あたりから各地でQNAPのNASに被害があったとのこと。
HybridBackupSyncのアプリの脆弱性が原因のよう。dropbox同期に使っていた。
被害時期に、特にプログラムのインストール等を実施した心当たりなし。
gigazine.net - QNAP製NASへのランサムウェア攻撃は公式バックアップソフトにハードコードされたパスワードが原因か
https://gigazine.net/news/20210430-qnap-ransomware-hard-coded-password/