タグ

Programmingに関するhatekun33のブックマーク (196)

  • #と##演算子

    文字列化演算子 マクロ関数だけで使用できる、便利な演算子が用意されています そのひとつが文字列化演算子です マクロ関数で受け取った値に対して#記号をつけることで それを文字列、すなわちダブルクォーテーションをつけた状態に置換えます (プリプロセッサディレクティブであることを忘れないでください。あくまでソース上で置き換わるだけです) #define STRING(str) #str このマクロ関数は、仮引数の値をダブルクォーテーションをつけた状態に置き換えます 次のプログラムを実行してください #include <stdio.h> #define PRINT(str) printf(#str "\n") #define STRING(str) #str int main() { PRINT(Kitty on your lap); printf("%sバイトは1キロバイト" , STRING(

  • 可変個数引数マクロの作り方 - tshinoの日記

    GCCのプリプロセッサの便利な拡張を知ったのでメモ。 関数形式マクロの引数の数は固定、というのはよく知られていると思うけど、現在のC言語(C99)ではサポートされている。 // (1) #define DEBUG_PRINT(...) printf(__VA_ARGS__)C++の仕様には入っていないけど、まあGCCではC++でも使えている。 ただ、__VA_ARGS__ はすこし凝ったことをするには限界があることを最近知った。例えば、この DEBUG_PRINT() の表示に関数名を追加したいとする。 // (2) #define DEBUG_PRINT(fmt, ...) \ printf("%s(): "fmt, __func__, __VA_ARGS__)__func__ は関数名の文字列を指す特別な識別子で、これもC99。マクロに似ているけどマクロではないので、__FILE__や

    可変個数引数マクロの作り方 - tshinoの日記
  • https://qiita.com/kenokabe/items/13ea8d2da6adce1b3b9a

  • いまさら聞けない「オブジェクト指向設計の3つのコツ」~オブジェクト指向設計問題解説 #objectoriented - CodeIQ Blog

    CodeIQ中の人、millionsmileです。 いろいろ経歴を積むと、「いまさら聞けない」ことが増えてきます。「オブジェクト指向」というのもそんないまさら聞けないものの一つでしょうか。 そんなわけで、いまさら聞けないことをイマサラ問題として出題してみました。 問題は、日ITエンジニアの父と言いたくなるくらい温かみのあるフィードバックをしてくれることで好評な有限会社システム設計の増田亨さんからの出題です。オブジェクト指向設計について2問出題していただきました。総計65名もの方に挑戦いただきました! 問題の解説記事は、オブジェクト指向設計の3つのコツを中心に説明してくれていますので、読みやすいですし、頭にすっと入ってきます。 ではでは、増田亨さんによる解説記事をお楽しみください。 https://codeiq.jp/ace/toru_masuda/ ◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇

    いまさら聞けない「オブジェクト指向設計の3つのコツ」~オブジェクト指向設計問題解説 #objectoriented - CodeIQ Blog
  • Build seven good object-oriented habits in PHP

    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.

    Build seven good object-oriented habits in PHP
  • 「PHP使いはもう正規表現をblogに書くな」と言わせないでくれ : 404 Blog Not Found

    2009年03月19日18:00 カテゴリLightweight Languages 「PHP使いはもう正規表現をblogに書くな」と言わせないでくれ ああ、まただよ... かなり使えるPHPの正規表現まとめ - IDEA*IDEA 〜 百式管理人のライフハックブログ 〜 正規表現って、プログラミング言語間の差が少ないサブ言語なのに、なぜ「PHP」がつくとダメ正規表現ばかり登場するのか。うんざりだ。 かなり使えるPHPの正規表現まとめ - IDEA*IDEA 〜 百式管理人のライフハックブログ 〜メールアドレスは厳密にチェックしようとするとなかなか難しいのですが、簡単なチェックだったらこれでOKぽいですね。 /^[^0-9][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[@][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[.][a-zA-Z]{2,4}$

    「PHP使いはもう正規表現をblogに書くな」と言わせないでくれ : 404 Blog Not Found
  • いつからその方法で偏りのない乱数が得られると錯覚していた? - アスペ日記

    私はつい最近まで勘違いしていました。 ここのページに書いてあるような方法で、一様分布する整数が得られると。 int random(int n) { return (int)(( rand() / (RAND_MAX + 1.0) ) * n); } この方法、一見すると実に一様分布が得られそうに見えるんですよね。 どういう思考回路を通っているかというのを自己分析すると、次のような感じです。 1. rand() では 0〜RAND_MAX のランダムな整数が得られる。 2. それを RAND_MAX + 1 で割ると、[0, 1) に一様分布する実数が得られる。 3. [0, 1) の一様な実数を n 倍して小数点以下を切り捨てたら、0 から n-1 に一様分布する整数が得られる。 これの罠なところは、1 と(特に)3 が正しいというところだと思います。 ただ、2 がダウト。 思いっきりダウ

    いつからその方法で偏りのない乱数が得られると錯覚していた? - アスペ日記
  • JavaScriptでアニメーションを書く初歩の初歩

    JavaScriptを使ってアニメーションを書くときに有用なテクニックの、基中の基をご紹介します。おそらく、このブログを見ている人のほとんどにとっては釈迦に説法だと思います。今回、requestAnimationFrameの話すらしません。その点、ご留意ください。 まず、JavaScriptでアニメーションをする場合に気をつけないといけないのが、一度JavaScriptの実行(Context)を抜けないとブラウザに描画が反映されないということです。簡単に言うと、 <html><head><title>bad sample</title><script> onload = function() { var e = document.getElementById("e"); for(var i = 0; i <= 100; i += 5) { e.style.left = e.style.

  • Ruby on Rails を勉強しない方が良い100の理由 - @ledsun blog

    はじめに 今すぐ辞めて欲しい、「Ruby on Rails勉強してます」「CakePHP勉強してます」 | つい全力ツッコミしてしまうエンジニアCEOのブログ | sumyappを読みました。最初ツッコミどころが凄い*1なと思ったんですが、二回読んでちょっと思い当たる節があるなと思ったので書きます。 Rails を勉強しない方が良い理由 Railsにはscaffoldがあるので間口がすごく広いです。実際それを紹介した 15m intro video*2 が理由で人気を博しました。が、奥行きが深い。どこまで学べば「Railsを使いこなせます」って言えるのかまるでわかりません。 鉄板作法が共有されていない 2005年に出てきた割に意外に鉄板作法が共有されていません。 たとえばビジネスロジックをどこに置くのかについては以下のような議論があります やはりお前らのMVCは間違っている Rails

    Ruby on Rails を勉強しない方が良い100の理由 - @ledsun blog
  • 第7章 正規表現

    正規表現とは、ある特定の文字列ではなく、文字列の一部をパターン化して表現する手法をいいます。 複数行ある文章の中から文字列を検索する時に、検索したい文字列すべてを指定するのではなく、文字列の任意の一部を置き換え可能な状態にして検索をする場合に正規表現を用います。 たとえば、UNIXやWindowsでは、文字列を検索するときに使用される正規表現として、「*」を任意の文字列(空き文字も含む)に、「?」を任意の1文字として使用することができます。パターンを、app* と表現すると、 apple application appeal などの文字列がマッチすることになります。 この正規表現の方法は、当然ながらプログラム言語ごとに異なりますが、Perlの場合は他の言語に比べて非常に強力な正規表現によるパターンマッチ機能を備えており、より詳細にかつ容易にパターンマッチを行うことができるとされています。

  • そろそろGoについて一言いっておくか - kuenishi's blog

    昨日、GoCon(ごうこん)なるイベントに参加してきた。以下に続く話は5割以上がフィクションなので虚実織り混ざっている様を楽しみながらお読みいただけたらと思う。 最初に発表されたニュースを聞いたときは、Goはよい車輪のよい再発明で、結局GoogleC++Javaを使い続けるだろうし、世間はGoogle独自言語としてみなすのだろうなという予感はあったし、2010年だから2011年ころはそういう見方をされていたように記憶されている。私もそういうものだと思っていたし、特に関心を持つこともしなかった。いま思えば正常性バイアスだったのだろう。 実際に昨日のカンファレンスで一番興味深かったのは鵜飼さんによるGoの解説だった。比較対象がC++, Python, Javaだったことが最も印象的で、普段からErlangやOCamlといった関数型言語に接していた身として新鮮だった。話を聞くうちにGoogl

    そろそろGoについて一言いっておくか - kuenishi's blog
  • Perl, あるいは困ることについて - Kato Kazuyoshi

    Q2 になったので月に1回くらいは日語で書いてみることにした。 ここ数年で Perl に起こった良いことは2つある。 ひとつは PSGI/Plack, cpanminus, carton, cpanfile などいろいろ良いものが他言語から輸入されたことで、Perl で書かなくてはいけない時の面倒が軽減された。それぞれ Ruby でいうところの Rack, gem (1), Bundler, Gemfile に対応している。 もうひとつは Module Counts にみるライブラリ数の推移や、Moose の開発者で Perl 5 にメタオブジェクトプロトコルを入れるはずの Stevan Little が Perl is not Dead, it is a Dead End なんて言い出すくらい、だんだん衰退していることで、なんというか妥当な世代交代だと思う。 Perl で、たとえばなに

  • PSGI/Plack - [Perl Hackers Hub]

    連載では、第一線のPerlハッカーが回替わりで執筆していきます。記念すべき第1回は、WEB+DB PRESS誌ではVol.2から執筆しており、長らく連載も担当していた宮川達彦さんです。 はじめに PerlでWeb開発をするためのフレームワークは百花繚乱、人気を集めています。稿では、これらのフレームワークが共通して利用するためのインタフェース仕様であるPSGIと、そのエンジンとしての実装であるPlackを紹介します。 PSGIに至る道 PerlとWebアプリケーション開発の親和性 Perlは「インターネットのグルー(糊:のり)言語」とも言われ、CGIによる開発がメインだった1990年代から、Webアプリケーション開発に最も関わりのあるプログラミング言語の一つと言ってよいでしょう。2000年代に入っても、Ruby on RailsPHPなどの他言語からの影響も取り入れながら、Web開発

    PSGI/Plack - [Perl Hackers Hub]
  • 知らない人は遅れてる?新Zen-Coding Emmet

    頭の中のページ構成図をリズムで書いてHTMLに展開してくれるZen-Coding。 もはやHTMLコーダーで使っていない人はいないであろうZen-CodingがHTML5/CSS3の広まりと共にEmmetという名前に変更し、進化をとげているようです。 まだ開発中で公式アナウンスはまだのようですが先行して試すことが可能です。 Zen-Codingおさらい Zen-Codingは経験済みとして話しますが、まだ使ったことがないという方はまずこの映像から。 早速EmmetをSublime Text 2にインストール 1. Package Controlのリポジトリに追加 Sublime Text 2の標準リポジトリにはまだ入っていません。Cmd + Shift + Pで入力ボックスにadd repositoryを入力、下記のリポジトリを追加します。 https://github.com/serge

  • 本物のプログラマはHaskellを使う:ITpro

    筆者 shelarcy Haskellは,関数型プログラミングというジャンルに属する言語です。Haskellや関数型プログラミングを題材に物事を見ていくことで,今まで思いもよらなかったような未知の世界を知ることができるでしょう。 プログラミング言語を学ぶという行為には, 言語の基的な文法や考え方を理解する 言語の文化圏で広く使われている考え方に親しんでその言語らしい書き方を習得する 単に言語を使ってできること以上の知恵を学ぶ の3段階があります。この連載では,三つ目の段階を目標に,Haskellプログラミングの世界を一つひとつ丁寧に紹介していきます。 更新は毎月第1水曜日(1月のみ第2水曜日)

    本物のプログラマはHaskellを使う:ITpro
  • もしも10分の1の行数でHTMLが書けたら

    Zen-Codingとは 1年ほど前から、Zen-Codingが話題になっています。Zen-Codingを使うと、特定の省略された記法を展開できます。この展開が非常に強力で、ちょっとしたHTMLを記述するのであれば、Zen-CodingでHTMLCSSのマークアップを効率的に行えます。 Zen-Codingはさまざまなテキストエディタに対応したプラグインとして提供されています。プラグインには、公式対応しているものと、サードパーティの開発者が作成したものがあります。 それぞれのプラグインによって、実装機能が異なる場合があります。これらのプラグインの詳細はZen-Codingの公式サイトから確認できます。 基的な使い方 ここからはZen-Codingの基的な使い方を解説します。Zen-Codingをテキストエリアで利用できるサンプルを用いて、実際に試しながら読み進めてください。テキストエ

    もしも10分の1の行数でHTMLが書けたら
  • Cは既に時代遅れ? | スラド デベロッパー

    「どうも周知徹底が不足しているようなので再度のお願いとなりますが、C死ね。」などと言われるように、いつの間にかCは忌避すべき言語に成り下がったらしい。 /.J読者諸兄にはCでのプログラミングに造詣が深い方も多数いらっしゃると思いますが、どうでしょうか? 個人的には、自分が気に入らないからといって他人の志向をとやかくいうのもどうかと思いますが、COBOLerとかFORTRANマンセーな方々の意見も聞いてみたい。

  • これからweb開発に携わりたいと考えている人にお勧めの言語

    一説によると有史以来開発されたプログラミング言語は4000を超えるとされている。その中でどの言語を選べばいいのか初学者にとっては悩みの種であろう。この記事ではそんな初学者のとっかかりとなることを想定して書かれている。 Javascript(お勧め度☆☆☆☆☆)Javascriptは長らく「使えない糞言語」とのレッテルを張られていた言語である。2005年頃からAjaxの台頭で価値が見直され、2010年頃からはnode.jsの盛り上がりで一気にweb開発の主要言語の一つに躍進した。 node.jsは現在活発に開発が進んでおり今年中には実践投入が可能になる画期的なアーキテクチャとなる可能性が高い。それによって「クライアントサイド」と「サーバーサイド」をどちらもJavascriptで開発できることになり、これはよく比較対象にされるLLのライバル達が絶対になし得る事の出来ない独占的なメリットである。

    これからweb開発に携わりたいと考えている人にお勧めの言語
  • Googleが開発したJavaデバッグを簡単にする新技術「cofoja」 | エンタープライズ | マイコミジャーナル

    Java Programming Language Googleの20%プロジェクトからJava向けの新しい技術「cofoja (Contracts for Java)」が公開された。既存の実装に大きく手を加えることなく、デバッグをより簡単にしてくれる効果が期待できる。バグは些細なコードが起こすものだったりするが、それを追跡して発見するのは時に困難を極める。これは問題が発生した箇所と、実際にバグがある箇所が大きく離れていることが理由になっていることもある。問題発生箇所とバグ発生箇所を近くにまとめることができれば、それだけバグ発見も取り組みやすくなる。 cofojaはこれを簡単に実現するための技術。インタフェースに制約表現を追加可能にするところがポイントとなっており、クラスの実装に手を加えなくてもインタフェースに制約表記を追加することで実行時にチェックできるようになる。ブログに掲載されている

  • プログラミングのソースコードを共有するときに便利なサイト「codr.cc」 | ライフハッカー・ジャパン

    「codr.cc」は、プログラミングのソースコードを色付けして見やすく変換してくれるサービスです。さらに、ソースコードひとつひとつにURLを生成してくれるので、他の人と共有するときにも便利。 以下に使ってみた様子を載せておきます。 まず、codr.ccにアクセスしましょう。ソースコードを自由に入力します。 「create」を押して作成完了です。 このように、色がついてハイライトされます。生のデータとの切り替えもワンクリックでOK。友達と共有したいときは、URLをコピーしましょう。 プログラミングをする開発者向けのサービスでした。 codr.cc (カメきち)

    プログラミングのソースコードを共有するときに便利なサイト「codr.cc」 | ライフハッカー・ジャパン