タグ

Programmingに関するikajigokuのブックマーク (346)

  • タイムゾーン呪いの書 (知識編)

    「タイムゾーン呪いの書」は、もともと 2018年に Qiita に投稿した記事でしたが、大幅な改訂を 2021年におこない、同時にこちらの Zenn に引っ越すことにしました。 この改訂では Software Design 誌の 2018年 12月号に特集の一章として寄稿した内容も取り込みつつ、夏時間をめぐって各地で起きつつある変化について 2021年 6月現在の状況なども追加しました。そんな追記もしていたら記事全体が長大になってしまったため、この「知識編」と、「実装編」・「Java 編」に記事を分けました。「知識編」は、導入にあたる第一部です。 Qiita のほうは、引っ越した旨とこの引っ越し先へのリンクだけ追記して、しばらくそのまま残すつもりです。 はじめに タイムゾーンという概念のことは、ほとんどの人が聞いたことがあると思います。ソフトウェア・エンジニアでも多くの方が、時刻やタイムゾ

    タイムゾーン呪いの書 (知識編)
  • リバーシプログラムの作り方 サンプル

    序章 はじめに リバーシのルール ソースコードの記述について 第1章 盤面の処理 1.1 定数と関数の定義 1.2 盤面の生成、初期化 1.3 石を返す処理 1.4 返せる石数を調べる処理 1.5 盤面をコピー、反転させる処理 1.6 その他の盤面処理 1.7 盤面の操作と表示 第2章 ゲーム木と探索 2.1 コンピュータ思考の関数定義 2.2 各関数の実装 2.3 ゲーム木 2.4 MinMax法とNegaMax法 2.5 αβ法 第3章 盤面の評価 3.1 評価関数の定義 3.2 パターンによる局面評価 3.3 評価クラスの構造 3.4 評価クラスの生成とファイルの読み書き 3.5 評価関数の実装 3.6 評価パラメータの更新 3.7 中盤の探索 3.8 自己対局による学習 第4章 性能改善 4.1 石数取得の高速化 4.2 着手の高速化 4.3 候補手リストの導入 4.4 終盤探索の

    ikajigoku
    ikajigoku 2021/06/22
    すごい情報量
  • Goでの並行処理を徹底解剖!

    並行処理をうまく使うのは難易度が高めです。 それゆえに、go文とチャネルについて基的な文法書で知った後「並行処理ちゃんとできる!」の段階まで自力でたどり着くのは大変でしょう。 このは、 *「並行処理ってやって何が嬉しいの?」 *「ゴールーチンとかチャネルとかって一体何者?」 *「ゴールーチンやチャネルを使ったうまいコードの書き方が知りたい!」 *「Goランタイムで並行処理をどううまく処理しているか知りたい!」 といった要望にお答えする、「Goでの並行処理」に関連した事柄について網羅的・徹底的に書きまくったものです。

    Goでの並行処理を徹底解剖!
    ikajigoku
    ikajigoku 2021/06/19
    GoとLinuxの対応関係おもしろかった
  • 「はじめてゲームプログラミング」の衝撃

    エンジニアの間で話題沸騰「はじめてゲームプログラミング」 6月11日に発売され一時トレンドにも載るほど。 「ナビつき!つくってわかる はじめてゲームプログラミング」。 「ノード」をつなげてプログラミングしてゲームを作っていきます。 例えば「Lスティックノード」と「ヒトノード」を繋いでLスティック操作ができるようになります。 チュートリアルでは「おにごっこゲーム」や「マリカ」みたいなものを作れちゃいます。 私ももちろんプレイして実況配信なんてやってみたのですが節々で「プログラミング学習」という点で衝撃を受けました。 今回はその衝撃を紹介していきたいと思います。 約束された「完成したときの達成感」 「ナビつき!」というタイトルの通り、チュートリアルが懇切丁寧です。 失敗につながるようなメニューは無効化されていますし、しばらく迷って画面上で進捗を出せないでいるとアシストしてくれます。 「完成」す

    「はじめてゲームプログラミング」の衝撃
    ikajigoku
    ikajigoku 2021/06/14
    買ってやってみてる
  • VS Code の画面を共有するときはキー入力が見える「スクリーンキャストモード」を有効にしてみよう | DevelopersIO

    VS Code の「スクリーンキャストモード」使ってますか? スクリーンキャストモードとは 百聞は一見に如かず。 お分かりでしょうか。どのキーを入力したのかが一目瞭然です。マウスもクリック時には赤丸が表示されるのでどこをクリックしたかが分かりやすくなっています。(マウス押下時の黄色はスクリーンキャプチャソフトが付与したものです) スクリーンキャストモードは VS Code 1.31 January 2019 で搭載された機能ですが、意外と知らない人も多く、私自身この機能の名前がパッと出てこないこともあったので今回改めて紹介してみました。 https://code.visualstudio.com/updates/v1_31#_screencast-mode スクリーンキャストモードを有効にする デフォルトではショートカットキーは割り当てられていません。コマンドパレットから Develope

    VS Code の画面を共有するときはキー入力が見える「スクリーンキャストモード」を有効にしてみよう | DevelopersIO
  • プログラマが知るべき97のこと

    プログラマが知るべき97のこと大人気の書籍『プログラマが知るべき97のこと』のエッセイを無料で公開中!すべてのプログラマにおすすめのがウェブで読めるようになりました。 エッセイ一覧分別のある行動関数型プログラミングを学ぶことの重要性ユーザが何をするかを観察する(あなたはユーザではない)コーディング規約を自動化する美はシンプルさに宿るリファクタリングの際に注意すべきこと共有は慎重にボーイスカウト・ルール他人よりまず自分を疑うツールの選択は慎重にドメインの言葉を使ったコードコードは設計であるコードレイアウトの重要性コードレビューコードの論理的検証コメントについてのコメントコードに書けないことのみをコメントにする学び続ける姿勢誰にとっての「利便性」かすばやくデプロイ、こまめにデプロイ技術的例外とビジネス例外を明確に区別する1万時間の訓練ドメイン特化言語変更を恐れない見られて恥ず

    プログラマが知るべき97のこと
  • 無料で読める、東大/京大の「Python教科書」電子書籍

    東大の2024年版が公開されています。稿は、2021年5月26日に公開した記事を「2024年11月14日の最新情報」に合わせて改訂したものです。『初心者向けTellus学習コース』はリンク切れのため削除しました。 プログラミング言語Pythonを習得したい場合、まずは教科書型のコンテンツなどで一通りの基礎知識を学ぶ必要があるだろう。そういった目的に合うコンテンツは、書籍を含めてさまざまなものがある。稿ではその中でも、東京大学もしくは京都大学の授業で使われており信頼性が高い電子書籍、しかも無料で入手可能なものを紹介する。 東大/京大の「Python教科書」電子書籍 東京大学『Pythonプログラミング入門』

    無料で読める、東大/京大の「Python教科書」電子書籍
  • 地図でプログラミング!?ゼンリンが作ったプログラミング教育ツール「まなっぷ」

    ICT教育推進のためプログラミング教育が必修化され、教育関連企業も教育現場の要望に応えて様々な教育ツールのラインナップがされるなか、地図でプログラミングという一風変わったプログラミング教育を開発、提案するのが地図業界の老舗ゼンリンだ。5月12日から14日まで東京ビッグサイトで開催された教育関連業者のための展示会「教育 総合展(EDIX)東京」内の「第2回 STEAM教育 EXPO」に同社の製品「まなっぷ」が出展されていた。地図の会社が作った教育ツールとはどのようなものかレポートする。 「第2回 STEAM教育 EXPO」ゼンリンブースより 地図業界の老舗であるゼンリンは、その蓄積された地図データを元に様々なITビジネスを展開、カーナビゲーションから、位置情報を活用したIoTソリューション、行動支援サービスやエリアマーケティング、デジタルサイネージまで幅広い分野で業務展開しており、そんな同社

    地図でプログラミング!?ゼンリンが作ったプログラミング教育ツール「まなっぷ」
  • Gitのワークフローについての私のスタンス | おそらくはそれさえも平凡な日々

    Gitのワークフロー、好みが分かれる分野で自転車置き場の議論にもなりがちだと感じている。基的にはプロジェクトの流儀に素直に従い、余計なストレスを抱えないのが良いと考えている。例えば、私はマージコミットを作るのが好みだが、OSS活動等では「squash & mergeして」って言われることもあり、そういうときは当然素直に従うようにしている。 ということで、私のGitのワークフローについてのスタンスについて書いておこうと思う。私と一緒に働く人や、働くことを検討している人の参考になればと思います。もちろん、この辺りは、良い方向に変化もさせていきたい。例えばエントリー内でも触れていますが、私は昔はforce pushを禁止したいくらいでしたが、今は使っても良い、と思うようになりました。 Natureの特にGoでのバックエンド開発はこれに近い感じだとイメージしてもらえればと思います。ただ、できてな

    Gitのワークフローについての私のスタンス | おそらくはそれさえも平凡な日々
  • パズル自動生成エンジン | Webシステム開発/教育ソリューションのタイムインターメディア

    タイムインターメディアは、世界最大の合体ナンプレ問題制作や、あらゆる業務で発生する複雑な組み合わせ問題を最適化する最適化AIプラットフォーム TENKEIのサービスなど、パズル自動生成の研究によって培った技術を用いて、幅広い分野に貢献してまいりました。 そんな技術により興味を持っていただきたいとの想いから、 問題を解くプログラムの作成ではなく、さらにその先の「問題を作る(作問)プログラム」を公開します。 公開されるソースコードは、数多くのパズル問題を世に生み出し、世界記録の達成を果たした藤原 博文によって作られたものです。 パズル作家が多くの時間を費やすような難解で複雑な問題も、もちろん作成可能です。 ソースコードと一般的なPCで、短時間で良質な問題を自動生成します。 また、世の中にある様々な最適化問題にも応用が可能な「進化計算」というAIアルゴリズムを用いた作成を行うため、今回のプログ

    パズル自動生成エンジン | Webシステム開発/教育ソリューションのタイムインターメディア
  • CS50 for Japanese: コンピュータサイエンスの入門 – 当ウェブサイトは、Creative Commons ライセンスに基づいて管理されています。

    お知らせ: 2022/9/1 CS50 を活用した非営利/協賛企業による「コロナ学生支援」プロジェクトを実施中 ▼ 学生の方へ:CS50 の学習(履修証明書の取得)を一緒に取り組むプロジェクト CS50日語版の翻訳コントリビューターである CODEGYM が主催する、非営利/無償のプロジェクト「CODEGYM Academy (外部リンク)」は、昨年に続き2022年度(春/秋)も、キャリア選択を控えた学生に対し、以下の企業の協賛により無償で17週間のプログラミング教育カリキュラムを提供します。 CODEGYM Academy 協賛企業(2022年) https://codegym.jp/academy/ 今年度のエントリーは締め切りました — ようこそ! このページは、ハーバード大学 CS50 の日語版翻訳プロジェクトのページです。当サイトのドメインに掲載されているコンテンツは、Cre

  • random numbers

    random numbers: n. When one wishes to specify a large but random number of things, and the context is inappropriate for N, certain numbers are preferred by hacker tradition (that is, easily recognized as placeholders). These include the following: Long described at MIT as ‘the least random number’; see also 23. This may be Discordian in origin, or it may be related to some in-jokes about 17 and “y

    ikajigoku
    ikajigoku 2021/05/12
    プログラミング雑学だ
  • 文字列を反転させたい|nona

    こんにちは。徒然なるままにTweetを眺めていたら、Tanakaさんがこのようなことを呟いていました。 そういやRustのStringにreverseメソッドないなと思ったけど、まあよく考えたらUTF-8で文字逆転させるとか地獄のような話になるしそもそも長さが変わるケースとかあったりしそうで怖いわな・・・(´・_・`) — Hideyuki Tanaka (@tanakh) May 1, 2021 背景等はよくわからないですが、文字列の反転というのは確かに難しい問題ですし、どう難しいのかというのを、ちょっと真面目に考えて解説してみました。というノートです。 文での表記についてこれから文字とそのバイト表現の話をしていきます。文字のエンコードの方式で同じ数値でも色々意味が分かれてしまいますので、文では以下のように表記することにします。 Unicodeコードポイント(以下、単にコードポイント

    文字列を反転させたい|nona
  • The Missing Semester of Your CS Education

    The Missing Semester of Your CS Education Classes teach you all about advanced topics within CS, from operating systems to machine learning, but there’s one critical subject that’s rarely covered, and is instead left to students to figure out on their own: proficiency with their tools. We’ll teach you how to master the command-line, use a powerful text editor, use fancy features of version control

    ikajigoku
    ikajigoku 2021/05/01
    日本語訳すごい
  • Pythonプログラミング入門 — Pythonプログラミング入門 documentation

    Pythonプログラミング入門¶ ▲で始まる項目は授業では扱いません。興味にしたがって学習してください。 ノートブック全体に▲が付いているものもありますので注意してください。

  • Code Reading ――― 他人のコードを読む! - やねうらおブログ(移転しました)

    自分ではソースがすらすら書けるのに他人のソースをほとんど理解できないという人が居る。 他人のソースを理解できないという傾向は仕事でしかプログラムに関わっていないという人に顕著だ。仕事の過程であまり他人のソースを読むことはないから(他人のソースを読む作業は直接的な生産作業ではないから)、そういう能力が養われない。おまけに資料(ハウツー)は会社のお金で買ってもらえたり、理解の及ばない部分を前任者に説明を求めたり、あまつさえフローを書いてもらったりできる。はっきり言って生ぬるい。そういうことをする限り、コードを読む力が養われるはずがない。そういった環境に自分の身を投じること自体が、技術者としての自分をダメにしているというのに多くの人はそれがわかっていないのだ。 この、他人のソースを読む力というのは、うちの会社でやっているような移植作業だと特に重要視されるものである。今回のアルバイト募集でそのへ

    Code Reading ――― 他人のコードを読む! - やねうらおブログ(移転しました)
  • コードが読めるソフトウェア開発者 - As a Futurist...

    僕はコードを読むのは得意な方だけど、それが過ぎてコードを書かなくてもシニアソフトウェア開発者になってしまった。実はコードをちゃんと読めるソフトウェア開発者って希少価値が高いのではないか、と思ったので自分がどんな感じでシニアになったのかをまとめてみた。似た様な人の参考になれば幸いだ。 同意。僕は未だ書く方はほとんど機会なく成果もないけど、コードを読み尽くして、負荷試験や番で挙動を把握し続け、メトリクスでとことん確かめていった結果、Sr. Engineer になれた。 https://t.co/KXtMdEaRr8 — Ryosuke Iwanaga (@riywo) April 16, 2021 コードを書かなくてもシニアソフトウェア開発者になれた 僕は今 Amazon の Sr. Systems Development Engineer という職種で働いている。いわゆるソフトウェア開発職

    コードが読めるソフトウェア開発者 - As a Futurist...
  • サーバーレスが気になる開発者に捧ぐ「べき等性」ことはじめ 第一回〜べき等性 (冪等性/idempotency) ってなんだ!? - builders.flash☆ - 変化を求めるデベロッパーを応援するウェブマガジン | AWS

    そもそも、べき等性とは、どういうことを言うのでしょうか ? これは「ある操作を 1 回行っても複数回行っても結果が同じである」ことをいう概念です。 例えば、注文処理を考えます。画面インターフェースで、注文確定 / 送信ボタンを押すという操作で二度三度押してしまうユーザーがいます。これで同じ内容の注文が複数回登録されてしまったら問題です。こういったケースでは、画面側で連続して押せないような実装を追加したり (①)、サーバー側で同じ注文の処理であることを認識して適切に一つの処理と判断するようなこと (②) が必要です。 この例では、画面側の制御を入れたほうが簡単なように見えます。しかし、現実には画面とサーバーとの間のネットワークの問題や画面以外からの HTTP コールなどを考えると、このような重複リクエストが起こってしまうという可能性はゼロではありません。 このようなものへの対処として、サーバ

    サーバーレスが気になる開発者に捧ぐ「べき等性」ことはじめ 第一回〜べき等性 (冪等性/idempotency) ってなんだ!? - builders.flash☆ - 変化を求めるデベロッパーを応援するウェブマガジン | AWS
  • 競技プログラミングの在り方 ~「競技プログラミングを我々が終わらせる」を受けて~ - chokudaiのブログ

    nuc.hatenadiary.org 競技プログラミングについての言及があったのですが、バズってる+競技プログラミングについて、納得がいかない記述がかなり多く見受けられたので、反論記事を書きました。 自己紹介 競技プログラミングの日最大企業「AtCoder」の社長を9年間続けています。競技プログラマとして、2010年から毎年1つは世界大会で入賞しています。 完全に競技プログラミング支持側の意見なので、ポジショントークを出来るだけ排除しようと心がけているものの、完全に排除することは多分出来ていないため、多数の意見と比較してもらえると幸いです。 競技プログラミングGoogle まずは肯定的な所から。 Googleに入るためには、競技プログラミングではなく、Googleに入るための勉強をするべき、という点に関しては、間違いなく正しいです。特にAtCoder競技プログラミングは、常日頃から

    競技プログラミングの在り方 ~「競技プログラミングを我々が終わらせる」を受けて~ - chokudaiのブログ
  • 現役高校生が、AtCoderでレッドコーダーになるまでにやってきたこと。プログラミング上達の秘訣を全て教えます - Findy Engineer Lab

    こんにちは、はじめまして。筑波大学附属駒場高等学校 3 年生(今年 4 月から東京大学に入学予定)の米田優峻(@e869120)と申します。私は競技プログラミング競プロ)が趣味で、AtCoder・情報オリンピック・パソコン甲子園などの大会に出場しています。2021 年 3 月時点で、AtCoder では赤色(レッドコーダー)です。また、国際情報オリンピックの 2018 年/2019 年/2020 年大会で金メダルを獲得しています。*1 とはいえ、決して簡単にこの記録を手に入れられたわけではありません。何度も挫折と失敗を経験しながら自分のスキルを磨いた結果、競プロを始めてから 3 年後にはレッドコーダーになることができたのです。 今回は「わたしの選択」というテーマで寄稿の機会を頂いたので、私が中学 1 年生の秋に競技プログラミングを始めてからレッドコーダーになるまで、そして国際情報オリンピ

    現役高校生が、AtCoderでレッドコーダーになるまでにやってきたこと。プログラミング上達の秘訣を全て教えます - Findy Engineer Lab
    ikajigoku
    ikajigoku 2021/04/01
    すごい