OOC 2024 の発表資料です。後のフィードバックを参考に、より妥当な文言に改訂してあります。 ※ 本コンテンツには、一部特定の宗教思想の迫害に言及する表現がございますが、そのような行いを肯定する意図の内容ではございません。
![オブジェクト指向宗教史](https://cdn-ak-scissors.b.st-hatena.com/image/square/b15c92f4f3a2471b6974d55cd45ea3f958fa97fa/height=288;version=1;width=512/https%3A%2F%2Ffiles.speakerdeck.com%2Fpresentations%2F63cdae30660d4ed09b280f540c16c789%2Fslide_0.jpg%3F29585339)
OOC 2024 の発表資料です。後のフィードバックを参考に、より妥当な文言に改訂してあります。 ※ 本コンテンツには、一部特定の宗教思想の迫害に言及する表現がございますが、そのような行いを肯定する意図の内容ではございません。
JavaScript はプロトタイプベースの言語であり、Java, C++, Python などのクラスベースの言語とは異なりクラスというものが存在しませんでした。しかしクラスベースのオブジェクト指向の書き方は人間に理解しやすくプログラムが書きやすく、何より他の人気のある言語の経験者にとって分かりやすいので、プロトタイプを使ってクラスと同等なことを実現するということが JavaScript でも行われていました。 そして、ついに 2015 年 6 月に標準仕様が発行されたECMAScript 6(ES6)で JavaScript にも「クラス」の文法が追加されました。 プロトタイプベースの JavaScript でクラスに相当することは割りと簡単に実現できるので、そういう意味ではプロトタイプベースはより柔軟でクラスベースよりも表現力に優れていたのかもしれませんが、結局はほとんどの場合におい
Photo by Kenny Louie こんにちは。谷口です。 プログラミング初心者の中には、最初の言語としてPythonを学習している人も多いのではないでしょうか。 特に最初の言語の習得で難しいのが「まず何から始めたらいいか」かと思います。 独学でどう勉強したらいいのか分からない 経験者向けの解説を読んでも難しい といった悩みを持つ人も多いと思います。 そんな人におすすめなのが、プログラミング学習ゲームなど、遊び感覚でやる勉強です。楽しみながらできるだけでなく、反復練習で確実に基礎文法を身につけることができます。 そこで今回は「初心者だけどPythonについて楽しく勉強したい!」という方のために、ゲーム感覚で楽しくPythonを学べるサイトを紹介していきます。 最近は、こういった遊び感覚でプログラミングについて学べるサイトやサービスがかなり増えてきましたので、以前より学習のハードルはか
初めてゲーム作ろうと思った時、私はエクセルでゲームが作れる教本を手にしました。 結果は惨敗。配列は四角い箱ってなんですか?って感じで、何も出来ずに投げ出して終了しました。 そもそもゲームを作る本を読んでみても、基礎知識が抜けていたり、小難しく書いていることが多いなと個人的に思います。本を読んでもわからなかった、なんてことがあるのではないでしょうか。そこで私は私の知っている基礎知識を少しでも共有したいなと思いこの記事を書くことにしました。(Web業界のプログラミングの記事に対してゲーム業界のプログラミングの記事って少ないですしね) ふわっとした知識で書いている所や、分かりやすくするために、あえて書き換えている所もあるので、書いてあることをすべて鵜呑みにせず、読んでいただいて、この記事をきっかけに素人さんも含めゲームを楽しんで作ってたりして貰えれば幸いです。 第二回はこちら あんた誰 なにはと
こんにちは。pixiv Sketch(ピクシブスケッチ)チームでアルバイトをしているnontanです。pixiv Sketchは日々のお絵かきを今までよりもっと手軽に楽しめるコミュニケーションプラットフォームです。きちんとした絵だけではなく、落書きや描き途中の絵も気軽にシェアできることを目指して、日々開発をしています。 そのためにpixiv Sketchではブラウザ上でお絵描きができ、そのまま投稿できる機能を提供しています。このお絵かき機能は以前までCanvas 2D Contextベースで実装されていましたが、今年の3月にWebGLとEmscriptenを使って、よりパワフルにリニューアルされました。この記事では、WebGLとEmscriptenのそれぞれがお絵かき機能を実装する上で、どのように活用されているのか紹介します。 WebGL pixiv Sketchのお絵かき機能では、ブラシ
フィードバックを送信 Unity の Firebase Realtime Database を使ってみる コレクションでコンテンツを整理 必要に応じて、コンテンツの保存と分類を行います。 Firebase Realtime Database は NoSQL クラウド データベースを使用してデータの保管と同期を行います。データはすべてのクライアントにわたってリアルタイムで同期され、アプリがオフラインになっても引き続き使用できます。 始める前に Realtime Database を使用するには、次の手順が必要です。 Firebase を使用するように Unity プロジェクトを登録して構成する。 Unity プロジェクトですでに Firebase を使用している場合、この登録と構成はすでに行われています。 Unity プロジェクトがない場合は、サンプルアプリをダウンロードできます。 Unit
僕は普段、なにか表示系のものを作るときはopenFrameworksを使っているのだけど、今回3Dでグリグリや!という案件があったのでUnityを利用した。ということでoF経験者がUnityに入門する時のノウハウをまとめておく。Unityのバージョンは5.6.1f1、oFはv0.9.8。 Unityの強みと弱み Unityはゲームエンジンで、ゲームエンジンなので状態や遷移の管理に優れており、3Dオブジェクトの扱いが簡単、強力なGUIによってパラメータの変更がラク、標準で物理演算エンジンが組み込まれているが、一方でテクスチャになにかを描いたりする機能はない。oFとの比較で強みと弱みをまとめると以下のような感じだ。 強み シーン、アニメーションなどの状態管理が優れている ゲームエンジンなのでそのへんのサポートが豊富 特にアニメーションはコード無しでかなり高度なことが出来て大変助かった 強力なエ
はじめに GoogleさんがShellスタイルガイドを共有していたので、いくつか気になった点をピックアップしました。 自分のShellスタイルはかなり我流なので、自省の意味も込めてコメントも併記します。 Googleスタイルガイドの元ネタ (Python/C++/Java/Rとかだけでなくdocumentガイドなど色々あります) https://github.com/google/styleguide Shellスタイルガイド (今回はこちら) http://google.github.io/styleguide/shell.xml 本当は人間がチェックするのではなくcpplintのためXML定義なのかもですが、気にしない気にしない。 (見たところcpplintはc++だけだと思ってます) commitフックでshell系のlint走らせろっていうのが今風なのかもしれませんが、キニシナイキ
JavaScriptは大変難しい言語です。Rubyの難易度を2、Cの難易度を5、C++の難易度を8にすると、JavaScriptの難易度は12ぐらいあると思います。このコーディングガイドはそんなJavaScriptの深みに嵌まらないようにするためのJavaScriptの書き方を規定したものです。初級者1のための物ですので、わかってやっている人に好きにやってください。 このコーディングガイドは絶対に従わなければならないものではありません。私は一切強制はしませんし、初級者が従わなければならないという義務もありません。採用するしないはみなさんの自由です。 禁止編 JavaScriptには安易に使用してはいけない機能があります。下記の機能は、それぞれの機能を使っても良い、または、使うべきであるという理由を説明できない限り、使用してはいけません。 ==、!= ==と!=を使用してはいけません。代わり
Electronとは? Electronは JavaScript、HTML、CSS を使ってデスクトップアプリケーションを作ることができる ライブラリ です。作ったアプリケーションはMac、Windows、Linuxで動かせます。 次は: なぜ重要? 定義: JavaScript、HTML、CSS はWeb用の言語で、Webサイトの基本的な構成要素です。Chromeなどのブラウザは、コードをふだん目にするグラフィックに変えて表示します。 Electronはライブラリです Electronはコードですが、再利用でき、自分で書き起こす必要がありません。ユーザはその上にプロジェクトを構成します。 参考資料 Apps built on Electron Electron API Demos (Electronで何ができるかをみてください) なぜ重要? 一般に、デスクトップアプリケーションは各オペレ
マサチューセッツ工科大学(MIT)がオープンソースのOCR(光学式文字読み取り)エンジン「Tesseract」のJavaScript実装「Tesseract.js」を公開した。 Tesseract.jsは、米HPが開発しその後Googleによってオープンソース化されたOCRエンジンであるTesseractをJavaScriptに移植したもの。Emscriptenコンパイラを利用してC++で書かれたTesseractのライブラリをクロスコンパイルし、自動ダウンロードシステムと言語ファイルを加えた。日本語、英語、スペイン語、中国語、韓国語を含む60以上の言語をサポートする。 テキストの向きとスクリプトの検出を自動で行うことができ、シンプルなインターフェイスを利用して文章を読むことができるという。テキスト認識のオフロードができるため画像処理アプリケーションのコストを下げ、利便性を改善できるとして
Webアプリにリアルタイムの双方向通信が必要な場合、WebSocketを選ぶのは自然なことだと思います。では、どのツールでWebSocketサーバを構築すべきでしょうか。パフォーマンスは重要ですが、開発のプロセスも見過ごしてはなりません。パフォーマンスを基準にするだけでなく、開発のしやすさも考慮に入れるべきでしょう。今回の大合戦では、Clojure、C++、Elixir、Go、NodeJS、Rubyのそれぞれの言語によって慣用的な手法で実装されたシンプルなWebSocketサーバを比較したいと思います。 テスト内容 サーバに実装するのは、 echo と broadcast の2つのメッセージのみを扱う非常に単純なプロトコルです。echoは送信クライアントに返され、ブロードキャストは全ての接続クライアントに送信されます。そしてブロードキャストが完了すると、結果メッセージが送信者に返されます。
(訳注:2016/9/28、頂きましたフィードバックを元に記事を修正いたしました。) はじめに 本稿では、高速で汎用的なハッシュテーブルを作るために行う、設計についての多くの意思決定事項を紹介します。最終的に、私の emilib::HashSet とC++11の std::unordered_set の間のベンチマークが出来上がりました。もし、ハッシュテーブルに興味があって、自分で設計したいなら(どのプログラミング言語かに関わらず)、本稿がヒントになるかもしれません。 ハッシュテーブル は、素晴らしい発明です。 ならし計算量O(1) ( O(√N)時間 )で、挿入、削除、検索を行うことができます。ならし計算量とは、ハッシュテーブルの計算に平均でO(1)の計算量がかかることを意味しますが、時々、これよりも多くの時間がかかる場合があります。具体的には、ハッシュテーブルに空きがない場合で、挿入の
ElectronがTypeScriptを正式にサポート (2017/06/01) しておったから更新じゃ。V.2.2以上でも良いぞ。 自作のWindowsアプリをMacでも動かしたくてのう。RAD StudioやらQtやらまあ試してみたんじゃ。C++出来るもんでな。じゃが・・・情報が少なすぎての、諦めるしかなかった。Qt Quickなんちゅうのはなかなか良い感じなんじゃが。iOSやらAndroidのアプリも作れるそうじゃ。ええ製品作っとるのにもったいないのう。 Electronというもんは以前から気になっとったんじゃが、グラフィックをそれなりに動かすと重そうじゃろ。まあイメージでな。じゃから触っとらんかった。しかし最近はすごいのう。いまさらながらPixi.jsというのを知ったもんで、examplesをいろいろ見ておったらこんなじじぃでもヤれそうな気がしてきてな。久しぶりにElectronす
以前、Salvatore Sanfilippo氏によって開発されたエディタ「Kilo」を取り上げたところ、高い関心を集めた。Kiloはclocカウントでソースコードが1000行以下で、しかもcursesなどのライブラリも使っていない。VT100の基本的なエスケープシーケンスとlibcで提供されている機能だけを用いて実装されたエディタで、シンタックスハイライトにも対応している。C言語1000行程度でここまで実用的なエディタが開発できるというのは、教育向けの素材として興味深い。 本連載では、Kiloのソースコードを読み、どのような仕組みでエディタが作られているかについて紹介する。C言語でソフトウェアを開発する際に利用する機能が網羅されており、学習素材としてなかなかのポテンシャルを持っている。エディタがどのように実装されているのかを知るためにも、一度は読んで見てほしいソースコードだ。 頭から読む
読み終わった。たった100Pにプログラム言語を作るための基礎(字句解析、構文解析、ランタイム、インタプリタ、仮想マシン、ネイティブコンパイルまで!)が一通り学べ、さらに本書で作った実際に動くプログラミング言語がついてくる。 $39.99 とちょっと高いがプログラム言語を作る勉強代だと考えれば最も安くそして早く(ドラゴンブックは1090P)学べるのではないだろうか。洋書なのが難点だが半分くらいはソースコードなので苦労しながらなんとかなりました。(日本語訳出てほしいなぁ) 書籍内で作る言語は2種類で Awesome Rubyの構文にPythonのインデントブロックを混ぜ合わせたようなオブジェクト型 Mio Ioを参考にしたメッセージ型 言語自体はどちらもRubyで書かれているが紹介される概念は特に言語の制約を受けないものが多い。 よかったところ yaccやbison, JVM系の構文解析ツール
Go言語の主な特徴として、「実行が高速である」「言語仕様がシンプルである」という点が挙げられます。 発表当初の対応OSはOS X(Mac)とLinuxのみでしたが、Go 1.0(2012年3月リリース)からはWindows、Go 1.4(2014年12月リリース)からはAndroidも対象となり、開発範囲が広がりました。 次世代のプログラミング言語として注目を集めるGo言語をこれから学ぼうと考えている方のために、Go言語が基礎からわかるサイト・記事、スライドを12個まとめてご紹介します。 Go言語が学べるサイト・記事 golang-jp - The Go Programming Language http://golang-jp.org/ Go言語の本家サイト(golang.org)を日本語に訳しているサイトです。 未翻訳の部分もありますが、英語が苦手な方にはとても役に立つサイトでしょう。
WebSocketを用いたオープンソースなリアルタイムチャットシステムrespassをリリースしました。 TL; DR 無職2人が3週間で https://respass.sketch-glass.io/ を作りました。 ソースコードはGitHub上で公開されています。 github.com 自己紹介 @minamorl 無職 Pythonエンジニア GitHub @seanchas_t 無職 C++/TypeScriptエンジニア GitHub はじめに この記事は主に技術者に向けて書かれていますが、そうでない方にも読めるような表現を重視しています。難解な用語にはなるべく注釈をいれました。技術的な話よりも「無職2人がいかにして3週間で作り上げたのか?」という開発フローの話に重きをおいたので、非技術者の方にも楽しく読んでいただけると思います。 なぜ作ったか オープンソースなチャット 近年、
本稿は、Sansan主催の第6回.NET勉強会「『Xamarin』って何? Wエバンジェリストによる特濃『Xamarin』勉強会 ~C#によるマルチデバイス・クロスプラットフォーム開発の最前線~」の第1セッション「1時間で分かった気になれるXamarin概要」の内容をそのまま起こしたレポート記事を、最新のXamarin事情に合わせてアップデートしたものです(ちなみに第2セッションは「Xamarinで今日から始めるクロスプラットフォーム開発」でした)。 元のレポート記事はSansanから提供され編集部で編集・校正を加えたものでしたが、今回の改訂では、セッション登壇者本人である田淵氏自らが元のレポート記事に加筆・修正を行いました。なお、最新状況でも変更のない内容は、元の文章および章立てのままになっています。 モバイル向けクロスプラットフォーム開発環境―“no silver bullet” ――
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く