sifue's blog

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

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高等学校の生徒/卒業生の情報発信、メディア露出、作品まとめ

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

7coco Tech Blog

7cocoさんの技術ブログ

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

7cocoさんのメディア露出

uehr

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

「N高等学校」ってどうなの? 卒業生に聞いた、学校生活と現在

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さんによるメモサービスのソースコード

康平 on Twitter: "あぁ~水素の音ォ~… "

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

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

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

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

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

Ikumi Shimizu

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さんの競技プログラミング紹介サイト

yuki15_snow

yuki15_snowさんの技術ブログ

笹ペディア

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

garebare tanaka daiki

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

Shota Yoshikawa | portfolio

show0317swさんのポートフォリオ

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

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

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

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

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

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

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

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

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

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

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

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

  • 顔写真
  • 実名
  • 所属

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

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

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

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

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

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

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

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

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

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

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

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

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

位置確認

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

なければ買うもの

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

説明

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

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

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

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

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

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

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

2 位 Twitter

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

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

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

3位 GitHub

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

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

4位 Qiita

これまた自分が気になる技術領域の有名エンジニアのフォローや自分がかかわる技術のタグのフォローをしておくとよいです。ページにアクセスするだけである程度の新しい情報が入ってくるようになります。

自分のフォロー中のタグはこのような感じになっています。最近は初心者の手習い記事が増えてしまって残念なのですが、それでもたまにすごく良い記事があったりします。フォロワーさんのいいねは、比較的良い記事のことが多いように思います。

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

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

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

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

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

おわりに

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

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

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

にて、自分が興味のある技術領域を常に監視している方が多いように思います。

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

ゆるい競プロ、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ぐらいだったらあんまり数学関係ないけど、ある程度行くと数学がどうしても必要になってくるということがわかってきた今日この頃。

ドリキャプ HDMIキャプチャーカード DC-HA1をWindows10で動かしてNintendo Switchの出力をキャプチャする

f:id:sifue:20170720094853p:plain

ずいぶん昔、6年以上前に買ったドリキャプ HDMIキャプチャーカード DC-HA1をWindows10で動かしてNintendo Switchの出力をキャプチャするためにやったことまとめます。最終的にスクリーンショットの通り、OBS Studioなんかで映像キャプチャデバイスとしてキャプチャできるようになりました。

ずいぶん古いHDMIキャプチャボードなのでまあ普通にドライバ見つかりませんが、中華サイトをひたすら百度で検索しながら回っていると互換品のHD70Aのドライバが見つかります。まずこれを探すのにめっちゃ苦労しました。いっぱいマルウェアやウイルス配布しているサイトがあるので気をつけながらなんとかゲット。あまりに大変だったのでGoogle Driveにドライバあげておきます。ダウンロードはこちらから。

hd70a_driver_v130_beta.rar - Google ドライブ

rar圧縮なので7zipなどのアプリで解凍してください。ちなみにWindows7のころに動いていた、もともとのCDに入っていたドライバもこちらに置いておきます。

Drecap_dc-hc1_drivers.zip - Google ドライブ

むろんこの古いドライバはWindows 10 64bitでは動きません。ただWindows7をまだお使いならばこれで十分でしょう。

やることは上のHD70Aのドライバをダウンロードして、x64\TLHD70A_10.infを右クリックしてインストール。あとはデバイスマネージャーから認識されてないデバイスを探して、Timeleak社のHD70Aを指定してインストール。そうするとこのようになります。

f:id:sifue:20170720095906p:plain

なお、残念ながらこれだけじゃ動かなくて、やはりメモリが4GB以上認識されているとダメだったようです。なので、Windows 10のメモリを4GBに設定します。なお自分は16GBのメモリを積んでいるマシンですが、キャプチャの時は4GBに直しています。

よくあるご質問|地デジチューナーやビデオキャプチャなどパソコン周辺機器の製造・販売ならエスケイネット

以上の手順で設定します。実はこのためにメモリが4GBしか載っていないWindows10を用意したのですが、それでもだめでこのmsconfigの設定をしてやる必要がありました。

あとはNintendo Switch側の設定です。1080pの出力ではなぜかおかしなキャプチャしかされないため(左上だけキャプチャされカクカクする)、設定 > テレビ出力 > 解像度を720pにしてやる必要がありました。どっちにしろ自分が配信するゲームはフルHDを要求するゲームではなかったためこれで満足しています。一応1080iにはドリキャプは対応しているはずなのですが、Nintendo Switchが1080pでしか出力できないという仕様であるためしかたがないようです。

これでOBS Studioの映像キャプチャデバイスでDC-HA1から映像を取って配信したり録画したりすることができます。アマレコTV 4系でも一応動作を確認できました。これを動かすのに一晩かかってしまった…。

これあとでわかったのですが、まずアマレコTV 4系で一度動作確認を行うと、OBS Studioでも映像キャプチャできるようになるようです。不思議です。

では、楽しい配信/録画ライフを!