コンピュータは非常に便利なのだが、ほとんどのコンピュータユーザーがその能力の1%も使えてないのではないか。そんな気がするのだ。 というか、コンピュータの能力が人類の進歩に比べて上がり過ぎてる。 おかげでゲームもAIもビデオ編集も手軽になった。 MacBookの新しいCPUが発表されたのだが、40%高速化したというニューラルエンジンを一体全体何に使えばいいのか、人工知能の研究者である吾輩にもわからないので、これを使いこなすことができる人は将来登場するのだろうか。 コンピュータの能力を真に最大限引き出すには、残念ながらプログラマーになるしかない。しかも、マシン語レベルの最適化ができるプログラマーである。 プログラムさえ丁寧につくればコンピュータの持つ潜在能力は圧倒的に高い。だがコンピュータに比べて人間は頭が悪すぎる。 結局のところ、道具がどれだけ進歩しても使う側の人間の想像力が追いつかないと全
Steven J. Vaughan-Nichols (Special to ZDNET.com) 翻訳校正: 村上雅章 野崎裕子 2022-03-04 11:33 LinuxカーネルがCで記述されているというのは誰もが知るところだ。ただ、そのCがかなり昔のC、すなわち1989年の規格である「C89」だという事実については知らない人もいるかもしれない。C89は「ANSI X3.159-1989」、あるいは「ANSI C」としても知られている。Linus Torvalds氏は、そろそろC89に別れを告げる時だと判断し、Linuxカーネルの公式な開発言語を2011年規格の「C11」に移行しようとしている。 これは見かけほど大きな変更ではない。C89は現在でもほぼ普遍的にサポートされている。どのようなCコンパイラーでも以前の規格との後方互換性を備えているため、C89で記述されたプログラムのコンパイ
みなさんはC++の読み書きができますか? 自信がある方、いつ頃勉強しましたか?もし20世紀に勉強したのであれば、その知識は相当古いです。実質現在のModernC++(C++11以降のC++)とは概念上の互換性がないので脳のアップデートが必要です。 自信がない方、文法は知っているけどなんとなく使いこなせていない方、マサカリ屋にあーだこーだ言われて大混乱している方。必勝パターンを身につければもっと楽にコードを読み書きできるようになるかもしれません。 この文章の目的は、ModernC++におけるメンタルモデル(考え方)や必勝パターンをざっくりと導入することでみなさんが楽にModernC++を読み書きできるようなお手伝いをすることです。主要な内容としてはムーブセマンティクスと右辺値 とその次の章でだいたいA4換算で15ページくらい?ほかは正直流し読みしてもらえるような内容です。また、内容的にはその
この記事は2017/04/15(土)のSwift Tweetsで発表した内容です。 Swift 4では何が変わるのか Swift4に関しては、Swift.orgやswift-evolutionで毎日情報が流れていますが、僕自身ちゃんとキャッチアップできていませんでした。今日は出来るだけリソースを提示しながらお話したいと思います。 Swift4が何を目指しているのかはここに記載されています。https://goo.gl/5XSu7M Swift4は今年2017年の下期のリリースを目標に開発が進んでいます。Swift4には2つ目標があります。一つはSwift3のソースコードの安定性の提供、もう一つは、標準ライブラリのABI安定性の提供です。 Swift 3のコードの安定性の向上 標準ライブラリのABIの安定化 この2つの目標達成のために、開発を2段階に分けています。 Stage 1 ソース
今日、ソーシャルサイト「reddit」を見ていたら、“ Rustの基礎を学んでからC++を始める場合 、何を勉強すればいいか”と問う投稿があり、私は自分のブログを復活させ、その中で質問への答えを書いたら面白いのではと考えました。 私にはRustを学んだ後にC++を扱う仕事に就いた経験があるため、Rustの経験を持つ人がC++に移行していく様子をまとめてみたいと思ったのです。 本稿はC++の構文と特徴を既に知っていて、RustからC++の世界に移行する方法に興味を持っている読者を対象とします。 しかし、私は全てに精通しているわけではないので、本稿では所有権(ownership)、借用(borrowing)、ライフタイム(lifetime)に焦点を当てて説明していきます。 所有権と移動 Rustの一番大きな特徴は所有権です。所有権は、プリミティブ型ではない値に対するデフォルトの動作として、コピ
何が辛いのかとそのツラミを減らす方法について説明してみます(今すぐ導入したら解決!みたいなのはまだちょっと出せてないです)。 TL;DR→ライフサイクル理解してるぜ!という人はベストプラクティスからどうぞ・・! 前提1: Androidのコンポーネントとプロセス Androidの主なコンポーネントはActivity, Service, Content Provider, Broadcast Receiverです。これらはアプリをまたがると原則別のプロセスになります。 また、あまり知られていないことですが、AndroidManifest.xmlに記述することで1つのアプリ内でも別のプロセスとして起動することができます。逆に、特別な設定をすれば同じプロセス内で2つのアプリを実行することもできます(普通しない)。 https://developer.android.com/guide/compo
コードレビューで土日に安寧を ソーシャルゲームは、ユーザアクセス集中と、それに伴うユーザデータ増加によって劇的に負荷が上がり、(主に土日に)サービスに影響を与えがちです。 問題があるコードは、たとえ負荷テストを行っても、作成したシナリオによっては見つけられない可能性もあります。 そういった見えない不安を払拭するという意味でも、コードレビューは重要だと思っています。 【ステキポイント】 ・ ソースを見ることにより、時限爆弾が土日に爆発するのを解除 ・ スキル共有によってメンバーがレベルアップすることにより、土日に爆発する時限爆弾の設置確率低下 まぁまとめると これに尽きます(4歳の息子談) 今は、gitのプルリクエストという強力なレビューツールもあり、敷居がかなり低くなったのでオススメです! チェックするポイントは5つ コードレビューを行うにあたり、「どんなところをチェックすればいいのか分か
Build apps using a powerful open language.
Objective-C での開発にだいぶ慣れてきたのですが、いまだメモリ管理まわりでハマることが多いのでまとめてみました。 メモリを確保してから解放するまでの流れ メモリを確保してから解放するまでの流れは以下の図のようになります(図はアップルのサイトから引用)。 alloc または init すると参照カウントが1になります alloc または init 系メソッドを呼ぶと参照カウントが1になります。 このように書いたのは、クラスの仕様によって alloc メソッドで retainCount が1になるオブジェクトと init 系のメソッドで retainCount が1になるオブジェクトがあるためです。alloc と init はセットで呼ばれることがほとんどなのでこの違いが問題になることはないと思いますが念のため。 int main() { /* allocで参照カウント1 */ NS
Objective-C初心者のための入門連載です。Objective-Cとは何かの基礎知識から、さまざまな基本構文/文法(変数、データ型、nil、配列、プロパティ、アクセサ、クラス、スーパークラス、ルートクラス、サブクラス、ポインター、メソッド、インスタンス、リンク、ラッパークラス、コンパイラディレクティブ、id、メッセージ式、文字列操作、forなどの繰り返し(ループ)、列挙子、ディクショナリ(連想配列)、高速列挙、オブジェクト指向、継承、プロトコル、多重採用、セレクター、クラスクラスター、カテゴライズ、カテゴリ、メモリ管理、ガベージコレクション、参照カウンターなど)を、書き方が分かる豊富なサンプルコードとともに解説します。
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く