タグ

プログラミングに関するsy0taのブックマーク (98)

  • 第3回 Cの「ポインタ」を調査せよ!

    Cには「ポインタ(pointer)」という便利で厄介な機能がある。Cの学習者が最初に突き当たる壁だとよく言われる。百戦錬磨のベテランでさえ,ポインタがらみのバグは少なからず経験しているだろう。今回はCのポインタについて調べてみた。 アドレスを保持して何になる? ポインタは“point + er”→「ポイントするもの」→「指し示すもの」という意味で,メモリー上のデータを間接的に指し示すことが大きな役割だ…ってことは,ご存じだろう。 どのような変数も,使用する前に初期化しなければならない。ポインタ変数*1ももちろん変数のアドレスで初期化する必要がある。例えば,int型の変数をポインタを介して扱うなら,以下のようになる。 int *p;       ―― int型のポインタ変数pを宣言 int num;         ―― int型の変数numを宣言 num = 123;        ――

    第3回 Cの「ポインタ」を調査せよ!
  • 連載:[完全版]究極のC#プログラミング - @IT

    第2回 簡潔なコーディングのために (2017/7/26) ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21) Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基の「キ」をマスターしよう 第1回 明瞭なコーディングのために (2017/7/19) C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える Presentation Translator (2017/7/18) Presentation TranslatorはPowerPoint用のアドイン。プレゼンテー

  • Kazuho@Cybozu Labs: MySQL のボトルネックを統計的に監視・解析する方法

    MySQL のチューニング、と言った場合には、サーバーパラメータの調整や EXPLAIN コマンドを利用したクエリ実行計画の最適化が話題に上ることが多いです。しかし、発行する全ての SQL について、いちいち EXPLAIN コマンドを使って確認していては、いくら時間があってもたりません。チューニングを効率的に進めるには、まず、ボトルネックとなっている SQL クエリを特定し、次にその最適化を行うべきです。 ではどのようにして、ボトルネックを特定するのか。MySQL Conference & Expo 2009 のキーノートにおいて Mark Callaghan 氏は、Google では SHOW PROCESSLIST コマンドを使った統計的アプローチを使っていると述べていらっしゃいます (参照: MySQLConf 09: Mark Callaghan, "This is Not a

  • IT系でも活用しなければ損。論文を読んで広がる知見 - @IT

    Java News.jp(Javaに関する最新ニュース)」の安藤幸央氏が、CoolなプログラミングのためのノウハウやTIPS、筆者の経験などを「Rundown」(駆け足の要点説明)でお届けします(編集部) 論文は、難しくない 読者の皆さんの中には、「論文」と聞くと身構えてしまう方も多いのではないでしょうか? 論文というと、書くのも読むのも大変で何だか小難しいことが書いてあるもののように思えるものです。それどころか、「論文とは縁がない」「プログラムがすべてだ」と思う方もいるかもしれません。しかし、ある特定分野の技術や研究を詳しく知るためには、論文は手軽で確実な情報源です。 よく論文が持つ意味について「巨人の肩の上に立つ」と例えられることがあります。これは、万有引力の研究で知られるニュートンも好んで引用していた言葉だそうです。「現代の学問は多くの研究の蓄積の上に成り立っている」ことを示す言葉

    IT系でも活用しなければ損。論文を読んで広がる知見 - @IT
  • CとC++の動的メモリー管理(2)、new演算子の動作を知る | EE Times Japan

    C言語とC++言語は、動的にメモリーを確保したり解放したりするために、それぞれ異なる機能を提供している。Cが提供するのは、「malloc」や「calloc」、「free」、「realloc」といった、いくつかのメモリー管理関数だ。Cとの互換性のために、C++でもこれらの関数を利用できる。それに対して、C++が提供するnew演算子とdelete演算子は、ほぼ間違いなく、これらの関数よりも優れた代替機能だ。 Cで、T型のオブジェクトを格納するのに必要なメモリーを動的に確保するには、次のような式を用いるのが一般的だ。 pt = malloc(sizeof(T)); ここで、変数ptは「Tへのポインタ」である。一方C++では、malloc関数を呼び出す代わりに、次のようにnew演算子を使うのが普通だ。 pt = new T; これらの2つの表記法の違いは、見た目だけの違いにとどまらない。CとC+

  • 教科書はいらない - 書評 - PHP逆引きレシピ : 404 Blog Not Found

    2009年07月06日14:30 カテゴリ書評/画評/品評Lightweight Languages 教科書はいらない - 書評 - PHP逆引きレシピ 翔泳社片岡様より献御礼。 PHP逆引きレシピ 鈴木憲治 / 安藤建一 / 山田直明 / 八木照朗 / 山義之 / 河合勝彦 ある意味実にPHP的な一冊。PHPは、これ一冊あれば十分だと強く感じた。 PHPを使うにしても、使わないにしても。 書「PHP逆引きレシピ」は、「PHPでプログラミングを習う」のではなく、「PHPで動くWebサイトを作る」に徹した一冊。PHPは後者に特化した言語である故に、前者には徹底的に向かない。書を読めば、PHPを全く知らないプログラマーにもそれがわかるし、PHPを日時使っている人も、そのことが改めてわかるはずだ。 目次 - | PHP逆引きレシピ オフィシャルサポート より 第1章 準備 1.1 サー

    教科書はいらない - 書評 - PHP逆引きレシピ : 404 Blog Not Found
  • オブジェクト指向っぽい話が分かるかもしれないJavaScript講座 その3 | Takazudo Clipping*

    今回は、画像のロールオーバーを、今まで説明してきたように、クラスを使いながら作ってみます。リンクにマウスオーバー(及びフォーカス)されると、中にある画像のsrcの "_normal." を、 "_over." に変更してセットし、マウスアウト(及びブラー)されると、これと逆のことをします。 サンプルとソース サンプルその1 <ul> <li><a class="rollover" href="http://diablo.com"><img src="diablo_normal.gif" alt="Diablo" /></a></li> <li><a class="rollover" href="http://hoge.com"><img src="hoge_normal.gif" alt="HOGE" /></a></li> <li><a class="rollover" href="ht

  • JavaScriptの最適化について、code.google.comの記事の適当訳 - それ図解で。・・・tohokuaikiのチラシの裏

    GoogleがWeb全体のスピードアップにいよいよ格的に着手, 一社だけではできないと強調 からリンクのあった、 http://code.google.com/intl/ja/speed/articles/optimizing-javascript.html が日語かと思ったら日語じゃなかった・・・・。 いやー、意外とというか文字列については、全然知らんかった。 Closureって便利だし、「おぉ〜俺って使ってるジャン」みたいな気になれるからついつい使っちゃうんだけど、高コストなのね・・・・。反省。 ということで、超適当翻訳。どっかの誰かが書いてるかも。 前おき 著者: Google Chromeエンジニア Gregory Baker, Software Engineer on GMail & Erik Arvidsson 推奨される経験:JavaScriptの実践的な知識 クライ

    JavaScriptの最適化について、code.google.comの記事の適当訳 - それ図解で。・・・tohokuaikiのチラシの裏
  • ジャンル別ゲームの作り方とアルゴリズムまとめ - ネットサービス研究室

    ゲームの作り方とアルゴリズムをジャンル別にまとめてみました。ゲーム制作や、プログラミングの勉強用にご活用ください。言語別ゲームプログラミング制作講座一覧もあわせてお読みください。 リンク切れがおきていたものは、URLを表示しておくので、Internet Archiveなどでキャッシュを表示させてみてください。 RPG ゲームの乱数解析 乱数を利用した敵出現アルゴリズムの解説 各種ゲームプログラム解析 FF、ドラクエ、ロマサガのプログラムの解析。乱数の計算など ダメージ計算あれこれ(http://ysfactory.nobody.jp/ys/prg/calculation_public.html) ダメージの計算式 エンカウントについて考えてみる エンカウント(マップでの敵との遭遇)の処理方法いろいろ RPGの作り方 - ゲームヘル2000 RPGのアルゴリズム ドルアーガの塔 乱数の工夫の

    ジャンル別ゲームの作り方とアルゴリズムまとめ - ネットサービス研究室
  • Part1 Google App Engineの基礎知識

    Google App Engine」は,米Googleが提供しているWebアプリケーション開発/実行環境です。2008年4月に先着1万人限定でプレビュー版を公開,同年5月末からは人数制限を撤廃して,無料のユーザー登録をすれば誰でも使えるようになりました。ここでは,2008年末時点のGoogle App Engineの使い方を紹介します。 ※ 記事は執筆時の情報に基づいており,現在では異なる場合があります。 最初に「Google App Engine」を簡単に説明しましょう。Google App Engineを一言でまとめると,「面倒な準備をせずに無料で使えるWebアプリケーション開発/実行環境」となります。 タダでGoogleのリソースを活用できる このGoogle App Engineを利用すれば,米Googleが運用している膨大なサーバー群はもとより,Googleのサービス基盤となっ

    Part1 Google App Engineの基礎知識
  • DHTでデータベースを検索したりする研究 - WebLab.ota

    PIER PIER [22, 23, 24] はインターネット規模で動作する大規模分散クエリー・エンジンであり、特に現在のStructured P2P の弱点とされている高度なクエリーを可能にする点で注目されている。 (http://dspace.info.gscc.osaka-cu.ac.jp/~fujita/RESEARCH/LC2006/main.pdf Chord/DHashを活用したデータベースの分散化) PIERはDHTを利用してネットワーク上のノードが持つデータベースを検索するシステムである. 各ノード上にあるデータは全て共通のグローバルスキーマで定義されていることを想定する. これはネットワーク監視システムのようにデータの標準フォーマットがある程度定まっているものや,P2P 上の各ノードが同じアプリケーションを利用することを想定しているからである. 具体的な検索方法は まず

    DHTでデータベースを検索したりする研究 - WebLab.ota
  • javascript - にはクラスはない : 404 Blog Not Found

    2009年06月13日22:00 カテゴリLightweight Languages javascript - にはクラスはない かえってわかりにくくなっている感じをかつてさんざん実感したので。 JavaScriptのオブジェクトについて考察してみた - あと味 JavaScriptにおけるほとんど全てのデータはオブジェクトである オブジェクトの定義にもいろいろありますが、ここでは「メソッドを持つ」という狭い意味においても事実だということです。実際に見てみましょう。 p(true.toString()); p("String".toString()); p((1).toString()); p((3.14159265).toString()); p([0,1,2,3].toString()); p({q:"answer to life, the universe, and everythi

    javascript - にはクラスはない : 404 Blog Not Found
  • perl - 現代的な Perl を再習得する方法は : 404 Blog Not Found

    2009年06月12日02:30 カテゴリLightweight LanguagesBlogosphere perl - 現代的な Perl を再習得する方法は TopHatenarでperl一位の私が来ましたよ。 現代的な Perl を再習得する方法は? - スラッシュドット・ジャパン 現代的な Perl を習得するためには、どのようなステップを踏むのが良いだろうか ? またお勧めの書籍などあったら教えて欲しい。 モダンPerlに限らず、プログラミングを再?習得するのに最適な方法、それは.... ブログに書きつづけること です。他のどんな手法もこれに勝ることはないと弾言しましょう。 以下、その三つの理由。 1. 自然にアウトプットが出来る プログラムは、言語で書きます。 書くものである以上、書かなければ覚えられません。 いくらいいソースコードを読んでも、書かなければ自分のものにはなりませ

    perl - 現代的な Perl を再習得する方法は : 404 Blog Not Found
  • 長文日記

  • オブジェクト指向っぽい話が分かるかもしれないJavaScript講座 その2 | Takazudo Clipping*

    自分なんぞがオブジェクト指向とはなんぞと語るなんておこがましく、「オブジェクトっぽい話」でいいかなーと思っていたのですが、ブックマークするときに「オブジェクト」でタグ付けてる人がいたので、これはいかんと思い、こっそりタイトルを直しました。 2回目の今回は、複数のインスタンスをまとめて操作する方法について書きます。 まんじゅうマネージャー 前回、クラス作ってインスタンスを作ると便利だというところで終わりましたが、便利な点としてはまず、「複数のインスタンスをまとめて操作したり、作ったりできることができる」という点があります。どういうことかというと、とりあえず、以下のサンプルを見てみてください。 まんじゅうマネージャーサンプル まんじゅうを一気に作ったり、隠したりすることができます。 これで賞味期限が切れたりしても大丈夫なはずです。 この機能を作れと言われたら、前回の知識だけは結構厳しいのではな

  • 現代的な Perl を再習得する方法は? | スラド デベロッパー

    久しぶりに Perl格的な Web アプリを書こうと思い始めたが、その間に Perl の世界は大きく変わってしまったようで、include jcode.pl が当然だった時代からすると、現代的に書かれたソースはまるで別言語のようだ。 モジュール等を活用した現代的な Perl を再習得したいが、書籍を買おうにも現代的な手法を知らない人間にとっては、どのが現代的なのかの区別が出版日ぐらいでしかつけられない。 現代的な Perl を習得するためには、どのようなステップを踏むのが良いだろうか ? またお勧めの書籍などあったら教えて欲しい。

  • Google App Engine 10の事実 | エンタープライズ | マイコミジャーナル

    Google App Engine Google App Engine Teamは10 things you (probably) didn't know about App Engineにおいて、Google App Engineによる開発方法が変わる10の事実を紹介している。App Engine Teamはディスカッショングループに参加することで、ユーザがGoogle App Engineのいくつかの事実に注目していないことに気がついたという。これを知ると知らないのとでは、Google App Engineを使った開発方法が変わってくるということだ。紹介されている事実は次のとおり。 バージョン番号は数値ではなく文字列。このためバージョン番号にliveやdevといった文字列を使うこともできる アプリケーションは複数のバージョンを同時に実行できる。version.latest.yourap

  • perl - use encoding; #は黒歴史 : 404 Blog Not Found

    2009年06月08日14:30 カテゴリLightweight Languages perl - use encoding; #は黒歴史 ぎゃあぁぁ length関数で文字列の長さを求める - perl初心者BLOG - Hatena::Group::Perl語の文字数を正確に求めたい場合、use encodingを指定する use encoding;は、jperlなど、かつて存在したL10Nされたperl用に書かれたレガシースクリプトを、モダンperlで動かすときのためのおまじないです。こういう目的で利用すべきではありません。 このあたりのことは、以前 404 Blog Not Found:perl - no encoding; # whenever possible でも書いたのですが、大事なことなのでまた書きます。 スクリプトはUTF-8で書き、use utf8;する のがモ

    perl - use encoding; #は黒歴史 : 404 Blog Not Found
  • プログラミング用フォント - soundscapeout (仮)

    Michael Tsai - Blog 経由ネタ。 Hivelogic にて、プログラミング用フォントのトップ10が紹介されています。 Hivelogic - Top 10 Programming Fonts 1. Inconsolata Inconsolata 2. Consolas Consolas Font: Consolas Regular Font 3. Deja Vu Sans Mono Main Page - DejaVu 4. Droid Sans Mono Droid font family courtesy of Google & Ascender » DamienG 5. Proggy Proggy Programming Fonts 6.Monofur Monofur Font | dafont.com 7. Profont ProFont for Windows,

    プログラミング用フォント - soundscapeout (仮)
  • オブジェクト指向っぽい話が分かるかもしれないJavaScript講座 その1 | Takazudo Clipping*

    自分はスーパーJavaScripterでこんなすげーのが5行で書けちゃう。やばいだろ!とかいうのでは全然無いですが、オブジェクト指向っぽい話が最近分かってきたつもりで、それでやっときゃ問題無いってことを思い始めているので、なんかそんな話を書いていきます。 こんな短く書くテクニックがあるぜ! var hoge = hage ? huga : hoga; とか書けちゃうんだぜ!とかより、長くていいから分かりやすく拡張しやすいようにするにはどうするのかとか、そういう話ができればなーと思います。内容的には全くもって新しくも何とも無いですが。jQuery使ってやる前提です。 まんじゅう製造スクリプト 今日はまんじゅうを5個作ります。なんと、まんじゅうは、クリックすると隠れます。 まんじゅうサンプル var Manju = function(){ this.elem; this.hidden = fa