sifue's blog

プログラマな二児の父の日常 ポートフォリオは www.soichiro.org

アサシンクリード オデッセイ Steam版の日本語音声が出ない問題への対応方法

steamcommunity.com

ありがたいことに修正方法を公開してくださった方がいるのですが、検索に引っかかりずらいのでこちらにも転載させてもらいます。

2023/3/28のパッチよりAssassin's Creed Odyssey(アサクリ オデッセイ)のSteam版にて日本語の字幕と音声が出なくなる不具合が発生するようになりました。 修正手順は上記サイトから転載。現状筆者自身も20時間ほどプレイしてこの修正方法で遊べています。

修正方法 アップデート前の日本語音声ファイルをダウンロードし、適用することでこの問題を修正できるので手順を共有します。

  1. Steamコンソールを開く (開き方: ブラウザのアドレスバーに『steam://nav/console』と入力し開く。あるいはファイル名を指定して実行(win+R)から『steam://open/console』を開く)

  2. Steamコンソールに『download_depot 812140 812148 3408766981981870757』と入力しEnterキーで実行。 これによりアプデ前の日本語音声データ(2018年10月11日版1.87 GB)がダウンロードされる。

  3. ダウンロードが完了すると、データの保存先がSteamコンソールに表示されるので、ダウンロードされたフォルダ名『depot_812148』の中身をゲームファイルに上書きする。 (ダウンロードされた計9ファイルの内、5ファイルは既存のゲームファイルと同じものなので上書きせず欠落している4ファイルのみを追加するでも可)

これで日本語音声と字幕がでるようになります。中盤までしか確認していないのでこの方法で何か問題が出るのを発見したらコメントで共有してもらえるとありがたいです。

MacOSでFreeMind 1.0.1のスクロールがうまく動かない問題の修正方法

自分は2001年ぐらいから、FreeMindというマインドマップ作成ツールの愛用ユーザーなのですが、MacOSだとスクロールがうまく動かないという不具合があります。ある程度使うとブルブル震えてはもとに戻るという悲しい挙動をします。

修正方法ですが、

Finder > アプリケーション > FreeMind.app の項目を選択して、右クリックから「パッケージの内容を表示」を選択後、 Contents > Info.plist をVimVSCodeなどのエディタで開いて、

  • /Applications/FreeMind.app/Contents/Info.plist
<key>JVMRuntime</key>
<string>jdk1.7.0_45.jdk</string>

以上2行を削除して保存します。

これでMacOSでも、問題なくスクロールできるようになります。MacOSXFreeMindがうまく動かなくて困っているという方はお試し下さい。

参考:

FreeMind / Bugs / #1249 Scrolling is broken on OSX.

プログラミングをやっているN高等学校の生徒/卒業生の情報発信、メディア露出、作品まとめ

2019年2月以降、Qiita N高等学校オーガニゼーションのAboutにまとめてありますので、そちらをご覧ください。


N高等学校でプログラミングを学ぼうとしている新入生向けに、プログラミングをやっているN高等学校の生徒/卒業生の情報発信、メディア露出、作品まとめを作ってみました。適当にまとめたので、自分のも入れて欲しい!とかというのがあったらN高のSlackの #programming にて @teacher_sifue までメンションください。

7coco Tech Blog

7cocoさんの技術ブログ

文系女子高生をどん底から救ったプログラミングの魅力 | 日経クロステック(xTECH)

7cocoさんのメディア露出

uehr

uehrさんのポートフォリオサイト

https://www.buzzfeed.com/jp/takumiharimaya/nnn

ohtasojiさんのメディア露出

学校生活振り返り - deletend’s diary

deletendさんの競技プログラミングブログ

自由研究をします。

e-10さんの技術ブログ

N高の授業で行ったスクレイピングをまとめてみた - Qiita

rickywithXさんの技術ブログ

正しい(Neo)Vimのやめ方 · 遺言書

himanoaさんの技術ブログ

https://snowlt23.github.io/post/forth-awakening/

snowlt23さんの技術ブログ

Nim帳

snowlt23さんのプログラミングNimに関する技術ブログ

足立 素音 プロフィール - Wantedly

waricomaさんのポートフォリオ

大塚 湧樹 プロフィール - Wantedly

Barisakuさんのポートフォリオ

https://twitter.com/haru02chieri/status/974260427231080448

ガゼル.はるはるさんのHoloLensのアプリ

AmazonDashボタンからSlackにメッセージを投稿する - Qiita

Satopppy さんの技術ブログ

https://progedu.github.io/web-contests/move-webcontest2017-summer/results/

N高 動くWebページコンテスト 2017年度 夏 応募作品

https://progedu.github.io/web-contests/webcontest2017-winter/results/

Web アプリケーションコンテスト 2017年度 冬 応募作品

https://sites.google.com/a/nnn.ed.jp/n-high-webapp-2017/results

N高 Webアプリケーションコンテスト 2017 結果 (学内限定サイト)

https://sites.google.com/a/nnn.ed.jp/n-high-dynamic-web-page-2016/results

N高 動くWebページコンテスト 2016 結果 (学内限定サイト)

GitHub - kakudo415/medir

kakudoさんとdeletendさんによるメモサービスのソースコード

https://twitter.com/kohe_ioroi/status/981410950157864960

康平さんのあぁ~!水素の音ォ~!!が鳴るキーボード

Degret | ブロック設置補助ツール

no-saさんのマインクラフトのブロック設置補助ツール

中高生が世界と戦う国際情報オリンピック、日本代表決まる、9月に日本で初開催 - BCN+R

193sさんの国際情報オリンピック日本代表選手選出時のメディア露出

https://193s.info/

193sさんのポートフォリオサイト

http://makezine.jp/blog/2018/08/mft2018_report5_youngmakers.html

yoshiさん、あてねあさんのMaker Fair Tokyo 2018の様子

https://yoshi1125hisa.github.io/

yoshiさんのポートフォリオサイト

https://jpnykw.github.io/

jpnykwさんのポートフォリオサイト

https://ei1640.github.io/

Xycaさんの競技プログラミング紹介サイト

yuki

yukiさんの技術ブログ

笹ペディア

佐々木 雅斗(あっぷるささき)さんのポートフォリオ

garebare tanaka daiki

ガレバレさんのポートフォリオ

Shota Yoshikawa | portfolio

show0317swさんのポートフォリオ

kakudo.app

Kakudoさんのポートフォリオ

aoharu514 Profile

aoharu514さんのポートフォリオ

ネットのスモールコミュニティの育て方

今までネットのスモールコミュニティを運営してきた自分が、ネットのコミュニティ(ネトゲのギルド、自作OSSのユーザーコミュニティ、同好会、IRC、Slack、Discordなど)を運営する中で重要なことをまとめたいと思います。

まずネットのコミュニティのリーダーとなり、モデレーターをしていくことは非常に大変な事です。得られるのは自身が楽しめるコミュニティと、たまに得られる(得られないこともある)労いの言葉と、コミュニティ運営経験です。ですが、このどれもかけがえのないものだと思います。基本的にテキストベースのコミュニティを運営するものと仮定します。

特に若い世代には、人生経験にもなるので自分のコミュニティづくりのために励んでもらえればと思います。もし炎上や荒らしにあってコミュニティが崩壊して荒野になっても、それが良い経験になるとポジティブに捉えましょう。

まず最初にリーダーに一番求められるのは

  • 日々の声掛け
  • 信頼できる自身の情報の開示

です。日々の声掛けを具体的に言えば、

  • 日々のゲームやイベントのお誘い
  • 日々の話題振り
  • 発言者へのポジティブなレスポンス
  • 挨拶
  • 新人の歓迎

です。これをやっているだけで十分なコミュニティリーダーと言えます。もちろんコミュニティが育たないうちはレスポンスが得られないことも多いので、1ヶ月以上そういうことが続いてもめげない鋼の心がまずは必要なものと言えます。

次に信頼できる自身の情報の開示です。これはゲームコミュニティなのかOSSコミュニティなのかにもより程度が異なりますが、自分から相手を信頼して情報開示していかないとなかなか信頼関係を構築することは難しいです。

  • 所属
  • 年齢
  • 住んでる地方
  • 性別
  • どんな経験をしてきた人か
  • どんな志向を持ってる人か
  • 身の上話

これらは個人情報ではありますが、コミュニティごとの開示の程度を意識して公開したり、もしくは信頼できる人には伝えると信頼関係を構築しやすいです。OSSのコミュニティによっては

  • 顔写真
  • 実名
  • 所属

こんなこともわかっていると信頼関係を築きやすかったりします。有名なエンジニアで信頼を集めている方はこれらを全部公開している方が多いです。

そしてコミュニティが育ってきたら気をつけないといけないことが2つあります。

  • 人を攻撃する人を排除する
  • 不正ツール利用や犯罪などモラルに反することをする人を排除する

この2つです。これはしないとコミュニティが炎上で一瞬でコミュニティが崩壊します。少しでも怪しいと思ったら迅速な対処が必要です。この両者の性質のどちらかを持っている人は、一緒に全く謝ることができない性質や謝ってきても全く反省せず行為を繰り返すという性質を持っている場合も多いため、よくよく気をつけましょう。

もしBANがしづらいという状態の時は、プライベートな別なコミュニティをさっさと立ち上げて、信頼の置ける人だけを呼んでお引っ越しをしましょう。そうするとみんな幸せになります。

特に人を攻撃し始めて熱くなってる人は絶対相手にしてはいけません。「相手にしない」これがお互いが幸せになる最善の方法と言えます。人を攻撃する人は、それが正しいことであると信じているためそもそも議論の余地がないのです。あと犯罪傾向が高い人もそうで、彼らは悪い事とは思わず不正ツール利用や違法ダウンロード等を行っているため、それを議論するのはなかなか難しいです。そういう人たちは、厳しく排除するか、そこに所属しつつ信頼できる人だけで主拠点をすぐに別なコミュニティに移動するというのが重要です。

あと、最後にコミュニティを常連化させず長持ちさせたい場合には

  • 特権や階級を厳しく作らない

というのも重要です。これがあると古参がコミュニティで強くなり、新しい人が入りづらくなります。反面、現状のメンバーでの結束が強まるので使い所は考えると良いと思います。

コミュニティを開始する際には、まずは信頼できる人数人ではじめるのがおすすめです。そのようにして信頼関係の輪を広げていきましょう。

以上が、ネットのスモールコミュニティを育てるための方法でした。ぜひ自分のネットのコミュニティを育てていってください。

初めて東京のウィークリーマンションで一人暮らしする人に教えること

はじめて地方から出てきて東京のウィークリーマンションで一人暮らしをはじめる人向けに、位置確認しなくてはならないもの、買わなくてはいけないもの、知らなくてはいけないことをまとめました。

位置確認

  • 100円ショップ
  • 最寄駅
  • スーパー
  • コンビニ
  • 薬局
  • 病院 (保険証があれば)
  • 郵便局
  • 警察署
  • ATM
  • 安い外食店 (牛丼屋チェーン、サイゼリヤなど安定)

なければ買うもの

  • 水道水がダメなら水
  • コップ
  • シリアル皿 (シリアル好きなら)
  • ラーメン鍋
  • 箸、スプーン、フォーク
  • 食器洗い洗剤
  • 食器洗いスポンジ
  • 毛布
  • トイレットペーパー
  • ティッシュ
  • 袋麺 (予備)
  • 冷凍食品 (予備)
  • 髭剃り
  • シェービングクリーム (必要なら)
  • 洗面用具 (なければ)
  • シャンプー
  • 石鹸
  • タオル、または、ボディタオル
  • バスタオル
  • 洗濯洗剤
  • 洗濯干し紐
  • 雑巾またはフロアワイパー
  • ゴミ袋
  • 延長コード (必要であれば)

説明

  • 規則正しい生活の送り方、睡眠重要
  • 最低限の身だしなみ (服装、髪、髭、口臭、体臭)、上司を通じてメンバーから苦情の前に
  • 最低限の礼儀の実践 (挨拶、笑顔、感謝、謝罪)、上司を通じてメンバーから苦情の前に
  • 洗濯の仕方、洗濯機の回し方
  • 掃除の仕方、都会のホコリの溜まり方はひどい
  • 電子レンジの使い方
  • T-fal(ティファール)の使い方
  • 浴室乾燥機の使い方、風呂出たら回さないとカビがすぐ生える
  • 冷蔵庫の使い方
  • ごみの捨て方、集積所の場所の確認
  • おとなりさんとの付き合い方、喧嘩しない
  • 食費の節約方法 (レトルト、冷凍食品の活用)
  • 湿気や結露に対して、換気や日差しの利用
  • 地下鉄の乗り方 (リュックで怒られることも)
  • タクシーの乗り方、タクシー乗り場が安定
  • 地方と違って公共交通機関でものを食べない
  • エスカレーターは左側に立つ
  • 貴重品の管理の仕方、基本常に携帯
  • いざという時のお金は別にする
  • セールスの断り方、とにかく無視
  • オススメの東京観光、皇居、秋葉原、渋谷、原宿、代々木公園、新宿都庁、お台場、東大、浅草
  • 750円のJR都区内パスについて
  • 病気になった時にどうするか、とにかく睡眠と栄養をとるのが重要
  • カフェインとアルコールとの付き合い方、栄養ドリンク飲み過ぎで急性カフェイン中毒注意、飲まされそうでも断る
  • 日頃の運動不足解消の仕方、一駅歩く、近所散策
  • サプリや野菜ジュースによるビタミン摂取、ビタミン取らないと風邪ひきやすくなる
  • 眠れない時でも目をつぶり横になって休む事が重要、熟睡しなくても良い
  • コーヒーショップの使い方、都内は座って休むところない、本日のコーヒーがオススメ
  • 漫画喫茶、ネットカフェの使い方、都内は座って充電できるところがない、要身分証明書
  • 東京の地域ごとの外食の相場、500円から5000円まで、高い所に要注意
  • 東京の有名な本屋、東京丸善、新宿紀伊国屋、神保町三省堂秋葉原書泉タワー
  • 1ヶ月の食費計算
  • 生活費と自由に使えるお金の計画の立て方
  • コンビニ(冷凍食品だけ例外)、外食は高くつく事について
  • 郵送の仕方 (受け取り、集荷)
  • Amazonの使い方
  • 出前館の使い方
  • 女、お金のトラブルの対処法、異性と付き合うとお金と時間がコストとして結構かかる、好きにできるお金と時間が増えた大学生からがオススメ、お金は親族を頼る
  • 変な人に絡まれた時の対処法、無言で逃げる
  • 街頭配布物やアンケートのお願いやキャッチは絶対ガン無視、宗教勧誘に気をつける
  • 東京の危ないエリア (歌舞伎町、池袋、六本木、渋谷道玄坂)、マジで怖い人たちがいる
  • 交通事故にあった時にすること、絶対最初に110番
  • 事件に巻き込まれた時にすること、絶対最初に110番
  • 地震の時にすること、会社や学校の指示、地方自治体の指示に従う
  • 大雪の時にすること、絶対に走らない、スマホ持って転ぶと骨折する
  • 交流が欲しい時には、お世話になっている会社や学校の人づてが安心
  • 秋葉原のオススメスポット、ラジオ会館、アキヨド、千石秋月、ツクモ
  • 東京でオフ会に参加する時気をつけること、ネットだけの知り合いと会うのは成人してからがオススメ、おかしい人、ヤバい人もいる、飲み物残して席を立たない(液体睡眠薬に気を付ける)

プログラミング初学者におすすめしたい日々の情報収集

(2024/10/22にTwitter→Xなどを更新)

特にWebプログラミングの世界では、一年間で技術トレンドが変わったり、セキュリティの新しい考え方が出てきたりと常に新しい情報を取り入れなければいけなかったりします。

そんな中、どの情報を取得するのがおすすめかというのを6個だけランキング形式で紹介していこうと思います。

1位 はてなブックマーク - テクノロジー

とりあえずこれです。これさえ見ておけばとりあえず流行りのITニュースはなんとかキャッチアップできるかなと思います。なおRSSリーダーを利用している方は、

を登録しておけばよいでしょう。また普段から非テクノロジーのニュースも集めたいという方は、ホットエントリーや新着エントリーも追いかけても良いと思います。ただ新着エントリーは見るコストがとても高いです。 なお自分はFeedlyRSSリーダーとして利用しています。更にiOSではReaderというアプリを連携させていて便利に使えます。

2位 X(旧:Twitter)

自分が気になる技術領域の有名エンジニアを、海外の方含めてフォローしておきましょう。プログラマは、ツイ廃(ツイッター廃人)の方が多いので、セキュリティに関するニュースやイベントに関しても重要な情報が得られる場合が多いです。Twitterサブアカウント運用している方は学習アカウントを作るのも良いと思います。またリストを作って運用するのも良いです。

自分はこのように気になるエンジニアはリストにしています。

ある程度自分の技術領域が固まったエンジニアの方は、常にその単語で検索して交流するというのは常識なように思います。昔は「Scala」を発言すると常にいろんな人にアドバイスがもらえるというメリットがありました。よりニッチな技術領域を学習している方こそ、このTwitterは役に立つかなと思います。自分と同じ技術を学ぶ人を見つけるためにも、どんどん発言していくと良いでしょう。

3位 GitHub

普段開発に使っているGitHubも良いニュースソースになります。とにかく自分が使っているWebフレームワークぐらいはWatchしておくとよいです。 あと利用しているプロダクトでバージョンアップを監視したいようなツールやDBなどは、タグのRSSRSSリーダーや普段使いのSlackなどに通知しておくとなお良いです。ちなみにScala3だと、

がニュースを取得できるRSSフィードのURLとなっています。 リポジトリのURLの最期にtags.atomを付ければ取得できるようになっています。 あと暇があるときは気になるプロダクトのソースコードを。iPhoneiPadなどのタッチデバイスで眺めるのも非常に学びがあります。普段からコードを読む習慣をつけておけば、やはり書く時にも非常に役に立つことが多いです。

4位 Qiita/Zennなどの技術ブログサービス

これまた自分が気になる技術領域の有名エンジニアのフォローや自分がかかわる技術のタグのフォローをしておくとよいです。ページにアクセスするだけである程度の新しい情報が入ってくるようになります。最近は初心者の手習い記事が増えてしまって残念なのですが、それでもたまにすごく良い記事があったりします。フォロワーさんのいいねは、比較的良い記事のことが多いように思います。

5位 Slack/Discord/IRCなどのチャットサービス

自分の会社のSlack、得意のソフトウェア開発に関するコミュニティーのDiscordやIRCなど、自分が加わっているコミュニティのチャットサービスも重要なニュースソースになります。自分が気になる技術領域のチャンネルがあれば加わり、なければ作って人を集めて盛り上がりましょう。 自分の関わるニュースについてそれを投稿して、それらについて議論してそのニュースの意味について理解を深めるということは非常に重要なことだったりします。

6位 お気に入りの技術ブログ

お気に入りの技術ブログを見つけたら、それをRSSリーダーなどに登録しておきましょう。ほとんどの場合、はてなブックマークなどで上がってくる場合が多いですが、ニッチなニュースだとこちらにしか引っかからない場合があります。 特に自分が関わっている技術を利用している会社の技術ブログは非常に学びになることが多いので、見ておくことをおすすめしたいです。これもまたSlackで普段見ているチャンネルにRSSフィードを登録しておくとよいです。

なお自分が毎回良いなぁと思っているのはクラスメソッドさんの技術ブログです。

おわりに

以上がプログラミング初学者にお勧めしたい日々の情報収集です。

勿論ニュースでわからないことがあったら、その際に調べて学ぶのが良いと思います。無論プログラマはコードを書かないとコードを書けるようにはならないのですが、このような日々の情報収取も非常に重要かなと思います。

なお紹介はしませんでしたが、ある程度ニッチな技術領域を深めている方はさらにStackOverFlowの英語版の

にて、自分が興味のある技術領域を常に監視している方が多いように思います。あと、ソフトウェアやライブラリのユーザー側の意見であれば

Redditも結構今だに賑わっています。また機械学習/ディープラーニング/データサイエンスのコミュニティだけでいえば

Kaggleがコンテストサイトであり教材サイトでありコミュニティサイトとして1番の大手かなと思います。

では楽しいプログラミングライフを!

ゆるい競プロ、ABC073の感想

N高等学校のコンピューター部がパソコン甲子園で頑張っているのに触発されて久しぶりに、AtCoder Beginner Contest 073 にチャレンジ。

AtCoder Beginner Contest 073 - AtCoder Beginner Contest 073 | AtCoder

結論から言うと、A, B, C はすぐ終わったもののDがハマって解けなかった。 解法的にはあってたっぽい。

Aは、除算と剰余ができればOK。

Bは、for文で回して足し合わせができればOK。

Cは、setに突っ込んだり、消したりして最後に数を数えればOK。

そして最後のDだけを考える。

最短経路問題なので、ダイクストラかワーシャルフロイドで解けそうということがわかる。

方針として通らなきゃいけない町の集合Rの順列を作っても8!で計算できそうだったので 全ての町間の最短距離を計算すればええやんという話に。

で、結局解けずw

解法的にはあってたっぽいけれどハマったところ

  1. 町は0からはじまりじゃなく1からははじまりなのにfor文ミスる
    • これはforマクロそろそろ用意した方が良いんじゃないかという気がした。
  2. INT_MAX + INT_MAX があってオーバーフローして負の数字が出てたサンプルが全部通ったけどこれに気づかずに1時間以上悩んだ
    • 解説を見て #define INF (1 << 29) とかを使った方が良いということを学んだ
  3. next_permutationはvectorをちゃんとソートしてないと使えない
    • ドキュメントちゃんと読んでなかった奴
    • これまた中途半端に通ったりしたのでハマった

最終的に解けたけどいろいろ学びのあるABCだった。というかまたAtCoder、テストケースの内容をぜひアップロードしてほしい…。間違いに気づくのが本当に大変でした。

ソースコードは、

sifue/cpp-study

N高の生徒たちもすごくがんばって学んでいるので、自分も競プロ初心者ながら、アリ本を少しずつ学んでAtCoderにもモリモリ参加していこうと思います。

生徒たちの間で競技プログラミングの面白さ伝えていきたいところ。大学になってから特に数学死ぬほど苦手だったけど、数学とも少しずつ仲良くなっていきたい。 少なくともABCぐらいだったらあんまり数学関係ないけど、ある程度行くと数学がどうしても必要になってくるということがわかってきた今日この頃。