タグ

programmingに関するraysatoのブックマーク (102)

  • NULL vs Empty Strings – Why Oracle Was Right and Apple Is Not – Jos Jong – The Future of Software Development

    raysato
    raysato 2017/10/18
    オランダでソフトウェア開発について長年取り組まれているJos Jongさんのブログ記事「NULL 対 空文字」で、前にツイートした「0とNULLの違い」が使われています。(事前にメッセージをいただきました)
  • プログラミング初心者がつまづきやすい0とnullの違いを「トイレットペーパーで」解説した画像が見事

    プログラミング初心者がつまづきやすい、0(ゼロ)とnullの違い。その違いをトイレットペーパーで表した画像が分かりやすいと共感を呼んでいます。 0とnullの違いは初心者がつまづくポイント TwitterユーザーのR SATO(佐藤 玲)(@raysato)さんが投稿した画像には、2つのトイレットぺーパーホルダーが写っています。左側は「トイレットペーパーがなくなり芯が残っている状態」、右側は「芯も何も存在していない状態」です。 左が0、右がnullを表している(画像提供:R SATO(佐藤 玲)さん) 紙のない芯(=紙が0のもの)が存在している画像で0を、芯も何も存在していない(=無である)画像でnullを表しているというわけです。画像を見たTwitterユーザーからは「これ、的を射てます」「なんと分かりやすい」「これは秀逸」「わかりやすくてわろた」「この状態を見て、この解説を閃くことが素

    プログラミング初心者がつまづきやすい0とnullの違いを「トイレットペーパーで」解説した画像が見事
    raysato
    raysato 2017/02/22
    掲載されましたー。ありがとうございます。なお、予備のペーパーは十分な量が用意されていたのでご安心ください(?)
  • バグなどの謎の現象に立ち向かうも闇が濃く、どうしても沼から脱出できない時に見るフローチャート - Thanks Driven Life

    ご査収ください (2022年12月8日 追記) フローチャートを書き直しました。内容自体は当時のものと同じです。 補足 パフォーマンスの出し方は人それぞれなので「私はこんな感じです」というものです。 とりあえず「なんかやばいな?」と思ったら休む 体調的にはもちろん、「これ結構やばそうだな?」という勘所は大事 15分以上(長くても30分)悩んだら周りに聞いてみる こういう時はだいたい 視野が狭くなっている(簡単なスペルミスだったり) 暗黙知に触れている(業務だとよくある) とてつもない難問にぶちあたっている といったケースなので、仲間にSOSを出した方がチーム全体の進捗も結果的に良くなる、という経験談です。 ちなみに15分の根拠はなんとなくです。 ちなみに、問題に取り組み始めるその瞬間から「15分やってわからなかったら誰かに聞こう」としている場合は、 フローチャートの「30分動いてなかったら

    バグなどの謎の現象に立ち向かうも闇が濃く、どうしても沼から脱出できない時に見るフローチャート - Thanks Driven Life
  • 珍しいSHA1ハッシュを追い求めて - プログラムモグモグ

    「SHA1ハッシュってあるだろう?」 放課後、いつものように情報処理室に行くと、高山先輩が嬉しそうな顔でそう言った。 「ええ、SHA1、ありますね」 「SHA1って何桁か覚えているかい?」 「えっと…」 一年下の後輩、岡村が口を開いた。 「50桁くらいはありましたっけ…?」 先輩はパソコンに向かって何かを打ちはじめた。 現在、情報部の部員は三人しかいない。部長の高山先輩と、二年の自分と、後輩の岡村だ。いや、正確に言うと、先輩の学年にはもう少しいたのだが、もうほとんど部室に来ることはなくなってしまった。無理もない、この季節になると先輩たちは受験勉強で忙しくなる。 「例えば、こういうふうに… 適当なSHA1の長さを…」 echo -n | openssl sha1 | awk '{print length}' 部長だけは今も部活に来てこうやって色々なことを教えてくれている。人曰く、普通に勉強

    珍しいSHA1ハッシュを追い求めて - プログラムモグモグ
  • Windows で Xamarin 開発をしたい方はインストールする前に読んでほしい - Xamarin 日本語情報

    こんにちは。エクセルソフトの田淵です。 Visual Studio 2017 がリリースされましたね!Visual Studio のインストール記事を書きました。 ytabuchi.hatenablog.com 10分でわかる無料になったXamarin from Yoshito Tabuchi 今は Visual Studio 2015 でもすごく良くなっていて、普通にインストールして普通にビルドすると、Android SDK は追加で入れないといけないかもですが、恐らくビルド通るはずです! ytabuchi.hatenablog.com 一応記事を残しておきます。 見てらんない… どうやら、ニュースを見て Xamarin を触ろうとしてくださっている方々が大変苦労されているようです。 2016/4/9 ピックアップさせていただいた以下の 3名は皆さん問題が解決して快適な(?)Xamari

    Windows で Xamarin 開発をしたい方はインストールする前に読んでほしい - Xamarin 日本語情報
  • 「Kindle日替わりセールの予告」で明日以降のセール品をチェック!

    Kindle日替わりセールの予告」で明日以降のセール品をチェック! 2016-02-21-1 [Release][Kndlsl][Kindle][Programming] 先日このブログで書きましたが、翌日以降のKindle日替わりセールを知る方法があります。Amazon APIで情報を得ることができるのです。毎週金曜日にその先6日分のデータが入るようで、最大で6日先までわかります。 大発見!? 翌日以降のKindle日替わりセール品を知る方法[2016-02-12-5] この方法を用いて、この先の日替わりセール品をわかりやすくまとめたページを作りました。どうぞご利用ください。 Kindle日替わりセールの予告 RSSもありますよ。 更新されるのは金曜日の午後だけになると思いますが。 経緯 2016年2月8日正午に日替わりセールの日別のページが作られました。1日のページ、2日のページ、.

    「Kindle日替わりセールの予告」で明日以降のセール品をチェック!
  • 詳細PDF入門 ー 実装して学ぼう!PDFファイルの構造とその書き方読み方 - プログラムモグモグ

    PDFのファイル構造を理解すると、テキストエディタでも直接PDFファイルを作ることができるようになります。このエントリーではPDFファイルの基礎要素を説明し、簡単なPDFファイルを例にしてファイル構造を説明します。更に、テキストを渡すとPDFファイルを吐いてくれる簡単なプログラムや、PDFを読み込んで簡単な解析をするプログラムを書いてみます。 目次 目次 まえがき オブジェクト 間接参照 ファイル構造 Hello, world! ヘッダ トレーラ 相互参照テーブル PDFを生成するプログラム 日語の扱い方 日語を含むPDFを生成するプログラム グラフィックス PDFを読むプログラム あとがき まえがき 1990年代前半、アドビシステムズは、どのプラットフォームやデバイスでも文書を確実に表示・共有できることを目的としてPDFファイルフォーマットを開発しました。 PDFの表示ソフト

    詳細PDF入門 ー 実装して学ぼう!PDFファイルの構造とその書き方読み方 - プログラムモグモグ
  • TPCI - TIOBE Programming Community Index

    Let op! Internet Explorer wordt niet meer ondersteund. Hierdoor kan de website mogelijk niet goed functioneren, gebruik een alternatieve browser om optimaal gebruik te maken van deze website. Klik hier om een alternatieve browser te downloaden. Home » TIOBE Index TIOBE Index for June 2024 June Headline: C++ surpasses C for the first time in history C++ is the new number 2 in the TIOBE index. Origi

  • Androidアプリ開発をはじめた - Kentaro Kuribayashi's blog

    Nexus 5を常用しているAndroidユーザになってしばらく経つので、そろそろAndroidアプリを作りたい気持ちになってきた。先日、そのためにMacBook Proを新調したほどの、気の入れようである。ちょうど3連休だったので、2日目・3日目を使って、あれこれ調べながら、初めてのAndroidアプリ開発をしてみた。 kentaro/palimpsest · GitHub やりたかったこと まずは簡単なタスク管理ツールを作ってみようと思った。こんな感じ。 毎日習慣的に行いたいタスクがいくつかあるので、ちゃんと習慣的に行えるよう管理したい タスクは、名前と回数からなる(例: 腕立て伏せを30回する、英和辞典を5ページ読む、みたいな) また、ちゃんとしなかった場合は、前日以前の回数が今日の分に加算されるので、ちゃんと毎日やらないと大変なことになる 画面 ほぼ「sqliteのテーブル1つに対

    Androidアプリ開発をはじめた - Kentaro Kuribayashi's blog
  • Volleyのネットワーク設定を変更する - _development,

    Volleyのネットワーク設定を変更する方法です。 Volleyのネットワーク設定の変更は、Volley.newRequestQueue(...)でRequestQueueを生成する際に行えます。 newRequestQueue(...)はContextを引数に取るものと、Context,HttpStackを引数にとるオーバーロードの二つがあります。 後者のオーバーロードに任意に設定したHttpStackを渡すことでネットワーク設定を変更します。 HttpStackには標準で二つの実装があります。 HttpURLConnectionを使った実装であるHurlStack Apache Http Clientを使った実装であるHttpClientStack これらの実装は、Contextだけを引数にとるnewRequestQueue(Context)でAPIレベルによって使い分けられています。

    Volleyのネットワーク設定を変更する - _development,
  • [Android Tips] バージョン毎に読み込むクラスを変える | DevelopersIO

    バージョン毎に異なる処理を吸収する 最近では Android 4.x 系の端末もかなり普及し、4.x 系のみサポートするようなアプリ開発も増えてきているように感じています。しかしながら、 2.x 系をサポートして欲しいとう要件もゼロではありません。 各バージョンの対応でよくある問題がバージョン毎にアクセスする API が異なるという点です。4.0 以降で追加された API を 2.x 系では呼ばないようにする (または独自で実装する) などといった対応が必要です。こういった場合によく使うのがバージョン毎に読み込むクラスを変えるという方法です。ということで、今回はその手順を解説したいと思います。ちなみにこの方法は Google I/O 2012 で発表されており、 Lazy Loading というデザインパターンをベースに生み出された手法です。Support Package も同じ手法を採用

    [Android Tips] バージョン毎に読み込むクラスを変える | DevelopersIO
  • 開発者は必見? GoogleがAndroidアプリのUXアンチパターン動画を公開 - すまほん!!

    数多のアプリが氾濫する Android アプリですが、過去に開発の経験がある方・現在進行形で開発中の方……数多くいらっしゃるかと思います。 そんな方に是非、ご覧頂きたいのが Google が Youtube にて公開している ANDROID DESING in ACTION UX アンチパターンです。ご存じの通りアンチパターンとは「べからず集」のことで「これは駄目だからこうして欲しい」といったことがわかりやすく紹介されています。 動画の内容としては、ダイアログの表示方法、ボタンの位置、タッチフィードバック……etc 開発者の方はそのまま知識を吸収することができますし、開発者ではない方も「へー」と思えること間違いなしです。

    開発者は必見? GoogleがAndroidアプリのUXアンチパターン動画を公開 - すまほん!!
  • while(1){LOVE++;}を最適化 - duost

    最近ツイッターで "while(1){LOVE++}"と書き込まれてる指輪があって、 そのソースは最適化でLOVEが消えてただの無限ループになる云々という話があったので検証。 http://togetter.com/li/144840 用意したソースはこちら。 int main() { int LOVE = 0; while(1){LOVE++;} } それじゃアセンブラを見てみましょ。 まずは最適化抜き。 gcc -O0 -s hoge.c .file "hoge.c" .text .globl main .type main, @function main: pushl %ebp movl %esp, %ebp subl $16, %esp movl $0, -4(%ebp) ;LOVE=0 .L2: addl $1, -4(%ebp) ;LOVE++ jmp .L2 ;JUMP TO

    while(1){LOVE++;}を最適化 - duost
  • あなたのJavaコードをスッキリさせる、地味に便利な新API 10選(前編) - Taste of Tech Topics

    こんにちは! アキバです。 ...T3ブログは初登場かもしれません。ハジメマシテ。 以後お見知りおきを。 いよいよ、2014年3月、Java8が正式公開されますね。 なんと言っても、Java8の注目機能はラムダ式ですので、ラムダ式や型推論に関する記事は多いです。 世の中で「Java8」と検索すると、皆さんいろいろと記事を書かれているので、おおよその事はこれで分かっちゃうような気がします。 が、 実は地味に便利なAPIが追加されていたりすることを最近知りました。 これはあまり触れられていないぞ、と。 というわけで、このエントリでは、あまり日語で情報の無い、しかし地味に便利なAPIに実際に触れてみます。 大事なところなので2回強調して書いてみました。 今回は、前編として4つ紹介します。 ※APIの紹介と言いつつ、コードにはラムダ式を使ったコードが普通に出てるので、ご了承ください。 (むしろ、

    あなたのJavaコードをスッキリさせる、地味に便利な新API 10選(前編) - Taste of Tech Topics
  • 技術的負債という(非エンジニアにとっての)隠しパラメータが生産性100倍を起こす - mizchi's blog

    元糞コードマイスターとしては、生産性については思うところある。 技術的到達深度が深い人じゃないとそもそもかけないコードってのももちろん存在して、その前提で10倍とか100倍になりうる話をする。 そもそもマイナスになる人がいるって話。 隠しパラメータをモデル化 エンジニアA:「週に10の成果を出して3の負債を生む人」を考える。この人は開発を止めてリファクタリングをすれば10-3 = 7の技術的負債を返却できるとする。 ここで正確には成果10には* aの係数が掛かっている。これはプロジェクト開始時1.0で、技術的負債が貯まるほど0に近づいて行く 次に、エンジニアB:「週に15の成果を出して10の負債を生む人」を考える(これにも係数aがかかる)。この人は見た目上は上の人の1.5倍速く成果を出しているように観測できるが、負債もたまりやすい。リファクタしても綺麗になりにくい。 これは割とエンジニア

    技術的負債という(非エンジニアにとっての)隠しパラメータが生産性100倍を起こす - mizchi's blog
    raysato
    raysato 2014/02/20
    設計についても同じ。以前、ベテランに今は不要な昔の常識を盛り込まれて、コードをお願いした方々にも大変苦労をかけた。見つけた時点でその必要性について聞いたが政治で云々。
  • 登録されるとつらいユーザー名リスト - Qiita

    Twitter, GitHub, Qiita などのように root/(username) でユーザーページをルーティングするところが増えてきている. このルーティングを採用し, help などのユーザー名を許可すると, root/help が奪われてしまう. そこで, 登録時に validate で, ある程度排除するのが習わしになっていると思うが, 急に root 直下に置きたいページが増えたときなどに取得されていると悲しいことになる. また, サブドメインを利用するサービスだと, api などをうっかり取られてしまうケースが後を絶たない. http://api.hatenablog.com/ みたいに取られることによる面白みもあるが, おおむねつらい. 実際, twitter では search アカウントが取られていて, TweetDeck では twitter.com/searc

    登録されるとつらいユーザー名リスト - Qiita
  • 要するに DI って何なのという話 - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く

    友人から「しんぺいさん DI について書いてほしい」みたいな話をだいぶ前からされてたんだけど書く気力ずっとなかった。でも仕事の気分転換にちょっとずつ書いたやつがいい量まとまったので公開するです。たいしたことは書いてないっていうか知ってるひとにはあたりまえのことしか書いてない。サンプルコードはわたしの趣味Scala で書いてあるが、Java が読めればなんとなく読めると思います。 DI ってなに Dependency Injection、日語で言えば依存性の注入です。おしまい。 で記事を終えてもいいんだけど、そもそも依存性とはなんなのか、それを注入するとはどういうことなのか、なぜ DI が必要となるのかみたいな話をこれからします。 そもそも依存性ってなあに 例を出します。入力された文字列をもとにおみくじをひいて、その結果を twitter に投稿するプログラムにしましょう。 まずは普通

    要するに DI って何なのという話 - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く
  • 私がかつてTDDに対して誤解していた点 - エンジニア的なネタを毎週書くブログ

    半年前のTDD Boot Campでの気付きだけど、改めて。 ※これを読んで、「いや、相変わらず誤解してるんですけどww」 と思われた方は是非ご指摘いただけると幸いです…。 1. 先にテストを書けばTDDなんでしょ? ⇒リファクタこそがTDDの命! Red -> Green はまだ入り口。そのあといかにRefactorしていくかが大事。 2. 最初に全ケース網羅するテストを書かなきゃなんでしょ? ⇒TDDで書くテストコードは設計のための作業なので、必ずしもそうじゃないと思う。 ただし、それとは別に、「変更に対してコードを守る」ためのテストは整備したいので、 後でもいいから最終的にはケースは網羅してほしい。

    私がかつてTDDに対して誤解していた点 - エンジニア的なネタを毎週書くブログ
  • ココが好きだよIntelliJ IDEA – 便利機能10選 #jbugj – yusuke.blog

    IDEA Advent Calendar 2013の22日目です。 IntelliJ IDEAを使っていて「やっぱ便利!」と最近実感している小粒な機能を淡々と10件あげます。 1. 構造選択(⌘ + w) Structural selectionと呼ばれるもので文法上の構造の単位で選択範囲を広げていってくれます。単語→リテラル内(ダブルクォート内)→リテラル(ダブルクォート込)といった感じ。 言葉だとわかりにくいけど実際の動きを見てもらえれば分かるはず。Shiftを押しながらだと選択範囲を狭めていける。 慣れるとIDEA以外でテキストを編集しているときにも⌘ + wを押してしまい「あわわ」ってなる。 2. どこでも検索(Shift2回) とにかくShiftを2回押してからクラス名やファイル名、メソッド名などの断片をタイプするとインクリメンタルに絞り込んで好きなところにジャンプ出来ます。これ

    ココが好きだよIntelliJ IDEA – 便利機能10選 #jbugj – yusuke.blog
  • JDK付属の「src.zip」の代わりに「jdk7src」を使ってEclipseの「Source not found」を回避する方法

    JDKには、Java標準ライブラリのソースファイル一式(src.zip)が付属しています。しかし、これは標準ライブラリのソースコードの一部に過ぎず、「sun.misc.Launcher」をはじめとする、一部のパッケージのソースファイルは含まれていません。 今回は、それによって表示されるエラーや対策、について解説します。JDK7が対象なので、JDK6未満の場合は適用できません。 目次 1. 「src.zip」のよくある利用法2. JDK付属の「src.zip」だけでは見れないソースコードがある!2.1. Class File Editor2.2. 「sun.*」など一部のソースコードが非公開だったから2.3. OpenJDK→JDK7へ2.4. OpenJDKのライセンス的にソースコードは無理?3. jdk7src「src.zipに足りないものをOpenJDKから持ってきました」4. jdk

    JDK付属の「src.zip」の代わりに「jdk7src」を使ってEclipseの「Source not found」を回避する方法