タグ

programmingとProgrammingに関するitboyのブックマーク (334)

  • 「null」をフラグとして使うのは、やめた方がいい - 地平線に行く

    null をフラグとして使うのは、やめた方がいいと思います。 null は、ただ変数が初期化されていないことを表しているだけです。 この意味以外で、null を使わない方がいいと思います。 null をフラグとして使う 「null をフラグとして使う」というのは、「null なら xxxx」というように、null が何らかの意味を持って使われていることを指します。 例えば、下記のコードでは「null はゲストユーザを指すフラグ」として使われています。 /** * ユーザ用のヘッダを作る処理 */ public String createHeader(User user){ (…中略…) String name; if(user != null){ name = user.getName(); }else{ name = "Guest"; // null ならゲストユーザ } 問題点 これの

    「null」をフラグとして使うのは、やめた方がいい - 地平線に行く
  • Codespell – Java言語がそのまま呪文となる教育用3Dゲーム

    カリフォルニア大学サン・ディエゴ校の計算機科学者達が開発した Codespell は、一人称視点の3Dゲームなのですが、その一番の特徴は、プレイすることでJavaプログラミングを身につけられるという点です。 Codesp […] カリフォルニア大学サン・ディエゴ校の計算機科学者達が開発した Codespell は、一人称視点の3Dゲームなのですが、その一番の特徴は、プレイすることでJavaプログラミングを身につけられるという点です。 Codespellでは、プレイヤーは小動物ノーム(gnome)たちが住む土地にやってきた魔法使いです。ノーム達は過去に魔法を使って生活していたのですが、今は魔法をうまく使えなくなっています。魔法の呪文はJava言語プログラムで、物体を浮遊させるとか火を起こすといった7つの手持ちの呪文を使って、ノーム達を助け、火を消したり川を渡ったりといったクエストを解き、バッ

    Codespell – Java言語がそのまま呪文となる教育用3Dゲーム
  • Charming Python: Functional programming in Python, Part 3

    IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.

    Charming Python: Functional programming in Python, Part 3
  • シェルスクリプトを書く時に気をつけている事など - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

    シェルスクリプトを書く時に気をつけている事など - Qiita
  • jsで「最後までスクロールされた」というEventをキャッチする - Qiita

    今までどういうふうに実装されているのか知らなかったので、 jquery_bottomを読み解いて理解したのでメモ。 jquery_bottomはこちら。 https://github.com/jimyi/jquery_bottom 必要な情報 要素の表示領域 要素のスクロール分を含めた高さ 要素のスクロール位置 この情報がわかれば、下記の情報を導き出せる。 「要素の表示領域」+「要素のスクロール位置」=「現在の表示位置の高さ」 「現在の表示位置の高さ」さえわかれば、後はその値が「要素のスクロール分を含めた高さ」にどれだけ近づいているかで、スクロール位置を判断することができる。 実装してみる // スクロールさせる要素を取得 var elm = document.getElementById('scrollElement'); // 要素の表示領域を取得 var height = elm.o

    jsで「最後までスクロールされた」というEventをキャッチする - Qiita
  • 映画「マトリックス」の上から文字が落ちてくるアレをわずか1KB以下のコードで再現

    映画「マトリックス」の非常に有名な上から漢字やらカタカナやら平仮名やらが滝のようにぞろぞろ流れ落ちてくるあの超有名なシーンを1KB以下のコードで完全再現したものが「Matrix Canvas Code」です。 Matrix Canvas Code | CSSDeck http://cssdeck.com/labs/the-matrix 元となっているのはシーンは以下のような感じでマトリックス3部作の最初のイントロで上から滝のように流れ落ちてくるのが印象的なものとなっており、実際には縦書きの裏返った半角カナや注音符号なども出てきます。このような妙な文字が混じっている理由は、「日PCでは縦書きでプログラミングしている」と監督が誰かから吹き込まれたため。 Intro Matrix Reloaded - YouTube matrix intro - YouTube [HD] The Matri

    映画「マトリックス」の上から文字が落ちてくるアレをわずか1KB以下のコードで再現
  • メジャーなプログラミング言語とそれらの役割を、素人でも分かるように教えてください。 - Knoh (ノウ) | The Knowledge Hub

    プログラマーたちは、使用するプログラミング言語と驚くほど密接な関係を持っています。プログラミング言語はあなたをイライラさせ、また教え導いてくれます。あなたはそのうちにプログラミング言語の内部構造や、ちょっとした変な癖を学ぶことになるでしょう。それはあなたの頭のなかにも入り込み、考え方をも変えるでしょう。 正しいプログラミング言語を選べば、新しくて美しい何かを一緒に作り上げることができます。間違った選択をすれば、もちろん面倒なことになります。 言い換えれば、プログラミング言語を選ぶことは、恋人を選ぶことによく似ているのです… (注: 私はストレートの男性です。それ以外の方は、自分の興味に合わせて自由に脳内変換してください) PHP は、あなたが高校時代のある夏、不器用ながらも付き合った初めての彼女です。もっと真剣な関係を築こうとしてはいけません。この子は複雑な問題を抱えています。 Perl

  • 爆速でわかるjQuery.Deferred超入門

    ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog Yahoo!デベロッパーネットワークの中野(@Hiraku)です。これまで、JavaScriptで非同期処理を書く上での問題として、コールバック地獄やエラー処理に例外が使えないことなどを解説してきました。 これらの問題に対処するライブラリの1つであるjQuery.Deferredに関して、もう少し丁寧に解説いたします。なお、jQueryのバージョンは記事執筆時点の最新である、1.9.1を想定しています。 jQuery.Deferredとは jQuery.DeferredとはjQueryのバージョン1.5から導入された、非同期処理をうまく扱うための標準モジュールです。使いこなすことで、以下のような効果が見込めます。 非同期処理を連結

    爆速でわかるjQuery.Deferred超入門
  • 状態管理用の変数をインスタンスに持たせるなこのタコって話 - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く

    たとえば、今、「ユーザーが方向を入力したらプレイヤーが動くゲーム作りたい」みたいなはなしがあるとする。その場合、モデルクラスはまあシンプルな実装として下のようなものが考えられると思う。 「できたよー」って見せにいったら、今度は「あのさー、『高速移動モード』っていうモード欲しいんだよね。そのモードだと二倍速で動くの」って言われたとする。シンプルにやるとこうなりますね。 「できたよー」って見せにいったら、今度は「なあ、すげえ面白いこと考えたんだけど、『蟹モード』って面白くない?横は4倍速で動くんだけど縦は半分の速度で動くの」とか言われたわけです。あなたは「お、おう」と言って、以下のようにコードを修正しました。 これ、ヤバい感じしますね。破滅の匂いがする。「今度は『よっぱらいモード』欲しいな〜。入力に関係なくランダムに動くの」みたいなこと言われたら確実に複雑さが爆発してメンテ不能になりになり死

    状態管理用の変数をインスタンスに持たせるなこのタコって話 - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く
    itboy
    itboy 2013/02/12
    「ディレクター。次にお前が言う台詞はこうだ。3歩進んで2歩下がる水前寺清子モードって面白くね?だ!」
  • PHP で文字列に機種依存文字が含まれているかどうか判定するクラス

    PHP で与えられた文字列に機種依存文字が含まれているかどうか 判別するためのクラスを作ってみました。 msng/PlatformDependentChars · GitHub 使い方はコードの後で。 使い方 require('PlatformDependentChars.php'); などしたら、あとは PlatformDependentChars::check(文字列) で、機種依存文字がなければチェックを通過して true, 含まれていたら false を返します。 与える文字列が内部文字エンコーディングと異なる場合は 第2引数で指定してください。 PlatformDependentChars::check($str, 'EUC-JP') クラス名が長いのを何とかしたい。 やっていること 文字列を別のエンコーディングに変換すると 機種依存文字は正しく変換されないはずなので、 それを確

    PHP で文字列に機種依存文字が含まれているかどうか判定するクラス
    itboy
    itboy 2013/01/31
    前に同じような事したことあるけど、基本ロジックは同じかな…
  • ゆーすけべー日記

    サキとは彼女の自宅近く、湘南台駅前のスーパーマーケットで待ち合わせをした。彼女は自転車で後から追いつくと言い、僕は大きなコインパーキングへ車を停めた。煙草を一吸ってからスーパーマーケットへ向かうと、ひっきりなしに主婦的な女性かおばあちゃんが入り口を出たり入ったりしていた。時刻は午後5時になる。時計から目を上げると、待たせちゃったわねと大して悪びれてない様子でサキが手ぶらでやってきた。 お礼に料理を作るとはいえ、サキの家には材が十分足りていないらしく、こうしてスーパーマーケットに寄ることになった。サキは野菜コーナーから精肉コーナーまで、まるで優秀なカーナビに導かれるように無駄なく点検していった。欲しい材があると、2秒間程度それらを凝視し、一度手に取ったじゃがいもやら豚肉やらを迷うことなく僕が持っているカゴに放り込んだ。最後にアルコール飲料が冷やされている棚の前へ行くと、私が飲むからとチ

    ゆーすけべー日記
    itboy
    itboy 2013/01/31
    最近はなるべく「このプログラム何に使うんだっけ?」という利用シーンをイメージするようにはしています。
  • Standard PHP Libraryの例外クラスを活用しよう!

    はじめに 今回はPHPでの例外の扱い方、特にSPL (Standard PHP Library)の例外クラスの使い方を見ていきます。例外を投げる際には、エラー種別により例外クラスを切り替え、受け取る側での処理も分けます。Javaなどではごく当たり前です。しかし、PHPプログラマの中には、そこまで切り分けない人も意外といます。Exceptionクラスだらけのコードもしばしば見かけます。 SPLの例外クラス アプリケーションによっては、例外クラスを独自に作成することもあります。とはいえ、いきなり例外クラスを複数定義して使いまわすことは、若干ハードルが高いかもしれません。まずは、SPL (Standard PHP Library)の例外クラスを使ってみましょう。SPLでは以下の例外クラスを提供しています。 SPL 例外クラスツリー LogicException (extends Exceptio

    Standard PHP Libraryの例外クラスを活用しよう!
  • if-then-else文の順番 : 小野和俊のブログ

    ペアプロで if-then-else 文が出てきた際、「これ、else if の順序、こっちの方が良くない?」というような会話をすることが時折ある。 どれも当たり前のものかもしれないが、「ああ、確かに」という反応があることもあるので、今日はそんな会話の際に出てくる視点についてまとめてみた。 if (よくあるケース/正常なケース) { // 処理 } else if (比較的特殊なケース) { // 処理 } else if (さらに特殊なケース) { // 処理 } else { // 処理 } 条件式の結果がtrueになる確率が高く、「ノーマル」に近いものを上に書く。可読性が上がる他、特に2.で触れる条件式の判定に時間のかかる場合や、ループの最奥にある処理などのif-then-else文の実行される回数が極めて多い場合には体感レベルで実行速度にも大きな差が出ることもある。 Code Co

    if-then-else文の順番 : 小野和俊のブログ
  • 連載: IBM Watson Workspace #鬼わか アプリケーション開発: 第 7 回: IBM Watson Workspace で AI を利用したアプリ連携の実現 #鬼わか 解説(前編)

    IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.

    連載: IBM Watson Workspace #鬼わか アプリケーション開発: 第 7 回: IBM Watson Workspace で AI を利用したアプリ連携の実現 #鬼わか 解説(前編)
  • jQueryの$()が多機能すぎる件について。5種類も仕事があるよ。(軽めのjQuery Advent Calendar 2012 – 01日目) | Ginpen.com

    軽めのjQuery Advent Calendar 2012 – 01日目 jQueryってあるじゃないですか。便利ですよね。いろんなところで紹介されてるっていうかもう普通に使われてると思うんですけど。 jQuery() APIについてはこちら。 jQuery() – jQuery API jQuery(expression, context) – jQuery 日語リファレンス jQuery(html, [ownerDocument]) – jQuery 日語リファレンス jQuery(callback) – jQuery 日語リファレンス jQuery(elements) – jQuery 日語リファレンス jQueryと$は同じものなので、jQuery()と$()は同じです。これ、実は関数なんですよ。 というわけで、以下使い方。 5種類の使い方 セレクター : $('#tar

    jQueryの$()が多機能すぎる件について。5種類も仕事があるよ。(軽めのjQuery Advent Calendar 2012 – 01日目) | Ginpen.com
  • Webアプリケーションを高速化する50のトリック

    MicrosoftのInternet Explorer PMであるJatinder Mann氏は、BUILD 2012でHTML5アプリとサイトを高速化する50のパフォーマンストリックというセッションで、Webアプリケーションを高速化する多くのチップスを提供した。 Mann氏が提供したアドバイスは、以下の6つの原則を中心に構成されていた。 1. ネットワークリクエストに迅速に応答する リダイレクトを避ける。上位1,000のWebサイトのうち63%は、リダイレクトを使用している。これらはリダイレクトをやめることによって10%のパフォーマンスを改善することができる。 メタリフレッシュを避ける。世界のURLのうち14%は、メタリフレッシュを使っている。 可能な限りユーザーの近くにあるCDNを使用してサーバーの応答時間を最小化する。 異なるドメインからのリソースをダウンロードすることによって、同時

    Webアプリケーションを高速化する50のトリック
  • scriptのdefer/asyncを理解し、ページの高速化方法を探る | ゆっくりと…

    Yslow ルールでは、スクリプトはページの最後尾、つまり </body> 直前に置け、と言っています。なぜなら、スクリプトの読み込みや実行により、他のページ要素の読み込みやレンダリングがブロックされてしまうからです。 一方、古くは IE4 の時代から Microsoft はこの問題に対処するため、defer 属性という独自の解決策を実装してきました。これは HTML 4.01、XHTML 1.0、1.1 で仕様として採用され、HTML5 にも発展する形で引き継がれています。 IE 以外のブラウザも既に対応されており、IE の独自仕様という色合いが濃かった従来と異なり、これからは広く利用されていくのではないかと思います。 下のビデオは、スクリプトの位置と defer 属性のあり/なしによる、ページの読み込み/表示速度の違いを Pagetest.com でテストしてみたもので、明らかな差異が

  • jQueryコーディングの基本的なことからプラグイン化までの注意書き(Webデザイン)

    jQuery でのプログラミングの、基的なことからプラグインを作るところまで、初心者の頃につまずいた部分を中心にまとめてみました。公式ドキュメントなどで使われている、少し難しい印象の専門用語も織り交ぜながら書きました。jQuery で Webデザインのパーツを作るときの注意書きという感じです。 Webサイトを作るとき、私的にはとってもよく使っている jQuery。jQuery を勉強しだしたころは、自分の書いたコードが動いたりするのが、とっても楽しくて嬉しかった覚えがあります。私はあまり JavaScript でのコーディングが得意ではないので、今でもよく jQuery を使ってコーディングしてます …。 以前:CSSは分かるけど jQuery は苦手 … という人が jQuery に親しんでくれるといいなーと思って書きました という記事を書いたのですが、今回はその復習 & jQuery

  • ちょっと便利なJavascriptオブジェクトの作り方

    今回は、ちょっと便利なJavascriptオブジェクトの作り方をご紹介します。いわゆるモジュール・パターンと呼ばれている方法です。 はじめに 最近、HTML5への注目と共に、Javascriptを使用する機会が増えてきました。以下のように適用範囲は多岐に渡っています。 通常のWebサイトでのユーザビリティ向上 スマートフォン用Webサイト開発 HTML5アプリによるクライアント・アプリ開発 スマートフォンのハイブリッドアプリ開発 Node.jsによるサーバサイド・プログラミング このように、Javascriptが基幹となる仕組みが広がっています。クライアント側とサーバ側を同じ言語で作れることは、開発側にとってはとても有難いことです(学習コストの低減、人的リソース配分の柔軟性など)。もちろん、発注者やエンドユーアにとっても開発速度などの面で利益が生まれます。 Javascriptプログラミン

    ちょっと便利なJavascriptオブジェクトの作り方
  • Eclipseを改善するインクリメンタルサーチプラグイン「Glance」がオススメ!

    Chromeのページ内検索ライクに結果が表示できる「Glance」プラグインがとても良く、「何で標準じゃないんだ!」と思うくらいだったので、紹介します。 標準から置き換えてしまうのがおすすめです。インストール方法・置き換え方法付き。 また、インクリメンタルサーチを知らない人も、インクリメンタルサーチはとても基的なテキスト内の移動手段なので、これを機に使い始めることをおすすめします。 目次 1. インクリメンタルサーチとは2. Eclipse標準のインクリメンタルサーチが貧弱3. Glanceの特徴1:他のヒット位置が表示される4. Glanceの特徴2:ヒット位置がスクロールバーに表示される5. Glanceのその他の特徴5.1. 現在のヒット数が表示される5.2. 拡張検索5.3. 検索履歴5.4. 設定ができる5.5. 実はダイアログなどでも使える6. Glanceのインストール方法

    Eclipseを改善するインクリメンタルサーチプラグイン「Glance」がオススメ!