タグ

プログラムに関するjoint1のブックマーク (20)

  • ワイド文字 - Wikipedia

    ワイド文字(ワイドもじ、英: wide character)とは、主にC言語およびC++における文法要素で、1文字あたりのバイト数を通常より多くしたデータ型である。 C言語やC++の基実行文字集合は通常、ASCIIのサブセットの文字種からなる。ただし実際の文字コードが何であるかは規定されていない。 漢字のような拡張実行文字集合は、通常マルチバイト文字として扱われるが、1文字を構成するバイト数が可変長であり、来1つの文字でありながら複数の文字の組(あるいは文字列)として扱わなければならないなどの不便がある。そうした問題を解消するために、1文字を1つの整数値で扱えるようにすることを目指したのがワイド文字である。 C言語では1995年の ISO/IEC 9899/AMD1:1995 より、wchar_t 型や <wchar.h>、<wctype.h> などのヘッダーファイルが追加になった。ワ

    joint1
    joint1 2018/11/18
    wchar_t型は廃れ、char16_t, char32_t型によって移植性の問題は乗り越えられる。
  • バイト順マーク - Wikipedia

    プログラムがテキストデータを読み込む時、その先頭の数バイトからそのデータがUnicodeで表現されていること、また符号化形式(エンコーディング)としてどれを使用しているかを判別できるようにしたものである。[1] Unicodeが開発された当初は、アメリカではASCII、ヨーロッパなどではISO-8859、日ではShift_JISやEUC-JPといった他の文字コードが主流であり、使用されている符号化方式がUnicodeのものであることを明示する必要があった。また、Unicodeの符号化方式は複数あり、特にUTF-16やUTF-32にはそれぞれエンディアンが異なる2種類があるため、符号化方式同士を区別する必要があった。その方法として、先頭のデータにテキスト以外のデータを入れることが発案された。 実際にBOMを使用すべきか、あるいは使用すべきでないかは、Unicodeを利用したより上位の仕様に

    joint1
    joint1 2018/11/17
    悩ましいBOM。まぁそのファイルが何かと言うのを扱う人が判別できるならBOMは不要なわけではあるが。
  • ググるのをやめるとプログラムの生産性が上がるかもしれない - メソッド屋のブログ

    今日はプログラミングの生産性に対して気づきがあったのでシェアしてみたい。 なぜ米国の人は生産性が高いのだろう プログラミングの生産性に関しては以前から興味がありいくつかのポストで考えたことをシェアしてきた。私は職業柄、いろんな国でいろんな人々とプログラミングを一緒にする機会が多い。その時に頻繁に感じるのは、平均的に言うと、アメリカの人プログラマが生産性が高い確率が高くて、しかもコードもきれいだという傾向にある。アメリカでお客さんと一緒にコードを書くと、お客さん自体が物凄く良く知っているし、実行力もある。アメリカの次と言うことでいうと、英語がネイティブの国もそれに近く、フランスなどの言語が近いところが続く感じなので、英語が物凄く影響すると思っていたし、実際すると思う。そのあたりの話はこちらのポストに書いてみた。 simplearchitect.hatenablog.com 定義での理解と、例

    ググるのをやめるとプログラムの生産性が上がるかもしれない - メソッド屋のブログ
    joint1
    joint1 2018/09/18
    公式リファレンスだけで済むならそうしたい。ググるのは確かにめんどくさいから、ググろうとしなかった事については共感できるのだが..........。これはやるしかないな!、今日から実践。ロシア人の話を思い出した。
  • Super Technique 講座〜再帰関数の技

    C言語初心者が戸惑うものとして、「再帰」に関する技法がある。まあ、今時の言語で「再帰関数」を書けないのは、COBOL と FORTRAN, 古典的BASIC くらいのものだが、一般的な言語解説書での説明は大変おざなりなものである。だから、これは意識して憶えないことには、やはり身に着かない。 そこで「Super Technique 講座」では、再帰の技法を、再帰という発想の親玉である Lisp(Scheme) を利用して理解する、という無謀な企てをしてみることにする。「ある言語を理解するのに、何で別な言語を勉強するの?」という当然の疑問が湧くことだろう。しかし、しかし、「それがハッカーというものである」。筆者は MS-DOS の時代に、UNIXのテキストツールの使い方を理解するために、それらを自分で実装した。一見「無駄」に見える技術投資は、ことプログラマにとっては決して「無駄」ではない。Li

    joint1
    joint1 2018/07/20
    再帰の再勉強。Schemeの方がイカシテルってことをこの時知った、もっと早く知りたかった。・・・やっぱり周りに知ってる人がいないから仕方ない。
  • Node.js における設計ミス By Ryan Dahl - from scratch

    Ryan Dahl は Node.js の original author ですが、彼の作ったプロダクト deno に関するトークが jsconf.eu 2018 でありました。 Node.js にずっと関わってきた僕が見て非常に興奮するような話だったので、しばらくぶりにブログに書き起こすことにしました。 背景 Ryan Dahl は2009年に Node.js の話を初めて公の場に公開しました。その時の「公の場」というのが「jsconf.eu 2009」です。 www.youtube.com Video: Node.js by Ryan Dahl - JSConf.eu - 2009 この発表から Node.js が広まり、今やサーバのみならず、IoTデバイス、デスクトップアプリなど、様々なところで動作しています。 で、今回はその発表から9年の歳月が経過し、Node.jsに対しての設計不

    Node.js における設計ミス By Ryan Dahl - from scratch
    joint1
    joint1 2018/06/07
    とりあえずいつか使うかもしれないし
  • Linus氏のC++に対する最近の否定的見解 | taro-nishinoの日記 | スラド

    最近、Linus氏はまたしてもReal World TechnologiesのModerated DiscussionsフォーラムでC++に対する否定的見解を投稿したことは皆さんも御存知でしょう。主要な投稿は以下の5つです。 http://www.realworldtech.com/forums/index.cfm?action=detail&id=110563&threadid=110549&roomid=2 http://www.realworldtech.com/forums/index.cfm?action=detail&id=110577&threadid=110549&roomid=2 http://www.realworldtech.com/forums/index.cfm?action=detail&id=110618&threadid=110549&roomid=2 ht

  • nako3storage v0.41

    joint1
    joint1 2018/05/29
    ドルアーガの塔 迷路生成
  • https://www.ipa.go.jp/files/000007130.pdf

    joint1
    joint1 2018/05/24
    日本語プログラミングの何がいいかってと、敷居を下げられる。プログラムって簡単だからすぐ普及する。パソコンとの距離が縮む。すると本当の目的であるビジネスが捗る。日本語ネイティブにPGを広げたい。CLIから〜
  • FizzBuzz Zero ―― 人類の知識なしでFizzBuzzをマスターする

    プログラム問題としてあまりにも有名になってしまったので、今ではあらゆる言語のFizzBuzzがそろっています。面白いですね。 深層学習 で FizzBuzz この記事の読まれている大半の方は、FizzBuzzを書くのにあまり苦労しないでしょう。 しかし、あなたが何かの拍子でプログラムの書き方を忘れてしまったらどうでしょう? 心配する必要はありません。そういうときこそAIの出番です。 最近は空前の人工知能ブームで、も杓子もDeep Learningです。 実際、Deep LearningによるFizzBuzzは、いくつも先例があります。 Fizz Buzz in Tensorflow TensorFlowコトハジメ Fizz-Buzz問題 Kerasでfizzbuzz問題を解いてみる 実装方法にはバリエーションがありますが、基的には 入力は直前の数値 or 文字列 出力は「数値」「Fiz

    FizzBuzz Zero ―― 人類の知識なしでFizzBuzzをマスターする
    joint1
    joint1 2018/05/11
    うーん、プログラマちっくー
  • 絵文字がある種のUnicodeバグを世界から一掃しつつある件について|Rui Ueyama

    UnicodeのUTF-16エンコーディングではほとんどの文字(コードポイント)は2バイトで表現されるが、Unicodeに後から追加収録された文字の多くは4バイトで表現される。4バイト文字がうまく扱えないプログラムというのはわりとよくある。しかし世界中で広く使われるようになった絵文字がよりによって4バイト文字であるせいで、そのような文字が扱えない問題がよいペースで解決に向かいつつある。それについて少し説明してみようと思う。 Unicodeが80年代から90年代初頭にかけてデザインされたときの目標の一つは、Unicodeに含まれる文字数を65536個以内に収めることだった。現代の文章を実用的なレベルで表すためには、漢字などを含めてもそれだけの種類の文字があれば十分だと考えられたのだ。当然これは1文字を2バイトで表すことを念頭に置いていた。つまりコンピュータの揺籃期から当時に至るまで単純に英語

    絵文字がある種のUnicodeバグを世界から一掃しつつある件について|Rui Ueyama
    joint1
    joint1 2018/05/05
    わろす。この内容とは関係ないけど、絵文字の問題悩まされたな。
  • プログラマーの格言(盗作多し)

    プログラマーの格言(盗作多し) 頼む、96になるまで盗作を続けさせてくれ プログラマーの格言(盗作多し) 一日は24時間ある。 今日中という意味は明日の朝までという意味である。 プログラマーの格言2(盗作多し) プログラムは思った通りに動かない。書いた通りに動く。 プログラマーの格言3(盗作多し) 要求仕様はプログラム完成後に完結する。 基仕様は完成品を顧客が見てから決定される。 詳細仕様は使用者がプログラムを動かしてから固まる。 プログラマーの格言4(盗作多し) 私は、ソフトウェア設計には 二つの方法があるという結論に達した。 一つは、欠陥がないことが明らかなほど単純にする方法である。 もう一つは、明らかな欠陥がないほど複雑にする方法である。 C.A.R.Hoare プログラマーの格言5(盗作多し) コードは開発現場で書くんじゃない! 納品先で書くんだ! デバグは納期前にするんじゃない

  • ADLが謎 - C++と色々

    こちらのサイトを見て、テンプレート引数の型が宣言された名前空間もADLの範囲にはいるんだー、へー、と思った。 ADLはAgument Dependent Lookupの略で、実引数依存の名前検索と訳されている。要は、ある名前空間に所属している関数・演算子のオーバーロードを使うとき、 引数の値の型が宣言された名前空間も関数・演算子のオーバーロード捜すときの範囲に含まれるから、わざわざ(名前空間)::(関数名)とか、 (名前空間)::operator(何か)とか書かなくていいね、やったね便利!って感じ。 で、リンク先様のソースとまったく一緒でわざわざ書く必要もあるのか疑問ですが、サンプルソースを出すと… #include <iostream> using std::cout; using std::endl; namespace a { struct hoge{}; template<clas

    ADLが謎 - C++と色々
    joint1
    joint1 2017/12/19
    ADLはAgument Dependent Lookup
  • OpenGLでムカつくこと

    Rich Geldreich's Blog: Things that drive me nuts about OpenGL Valve社員のRich Geldreichが、OpenGLの設計が古臭すぎることについて不満を爆発させている。 OpenGLについてムカつくことを脳内ダンプしてみる(これは個人的な件秋であって、Valveや同僚の見解ではない。あと、ここ数年、OpenGLと格闘してきたので、今日は機嫌が悪い)。これを投稿する理由はこうだ。GL APIには再設計が必要だ。というのも、思うに、MantleやD3D12がどうせ昼飯前にOpenGL APIを駆逐してしまうだろうから、この問題については、今考える必要があるのだ。 ここに見れば些細な問題もある。単にAPIのトレースの問題というのもある。しかし、それらの問題が積み重なって、他の開発者にGL APIという環境に飛び込むよう誘うのを躊

  • ソースコードを自動的に整形する - テラシュールブログ

    Unityに限らずプログラムを作成し管理する際、整形のルールを設けることでソースコードを読む負荷が大分減る。ただし、この手法で統一した際に整形ルールを守らないコードが出た場合、非常に気持ちが悪い。 ソースを整形する方法だが、基的にMonodevelopのFormatがお手軽でお勧め出来る。但し、Unity 4.3以降ではMonodevelopのプロジェクトを作成する機能がバグっており、インテントが余計に気持ちの悪い物になるので、Mac版の場合は一旦ソリューションを修正する必要がある。 インテントを修復するには、プロジェクト毎に以下の手順を行う。 Monodevelopを開くプロジェクト -> ソリューションオプションを開くコードフォーマッティング → Text fileを開くIndent widthの設定を8から4へ変更する ソースコードを整形するには、以下の手順で行う。 Monodev

    ソースコードを自動的に整形する - テラシュールブログ
    joint1
    joint1 2017/03/22
     コード整形自動化 参考まで。Monodevelopの機能
  • コード自動整形ツールまとめ - takkyuuplayer's blog

    PHP コードの整形はプログラマがやるべきことじゃない - Shin x blog その通りだと思う。そしてそれは PHP に限ったことではない。 コーディングスタイルを周知してそれに従うというのは チームが大きくなればなるほど大切になるが、 同時に難しくなる。 Perl::Tidy を使うようになってから、自分のコード/チームのコードが読みやすくなった。 コードの整形に使う労力は減り、なんとなく開発のスピードも上がった。 コードの自動整形ツールは素晴らしい。 ぜひとも、他の言語でも使いたい。 ということで、各言語で使える整形ツールをまとめてみた。 GitHub にそれぞれ1行で書いたテストコードを自動整形させた結果のファイルがある。 HTML html-beautify 惜しい! div の閉じタグの位置を揃えて欲しいなという感じだ。 JavaScript js-beautify なかな

    コード自動整形ツールまとめ - takkyuuplayer's blog
    joint1
    joint1 2017/03/22
    コードの自動整形ツール。参考まで
  • コマンドライン引数の取得とgetopt - ファイヤープロジェクト

    コマンドライン引数を取得する方法と,それを簡単に行なうライブラリ関数getoptについて. 引数の取得 とりあえず引数を取ってみる getopt いろんなコマンドはいろんな引数をとる. int main(int argc,char *argv[]) のargcが引数の数でargvが引数の値である.0番目の引数の値はプログラム自身の名前である. とりあえず引数を取ってみる次のプログラムは全ての引数を表示するだけのものである. includeint main(int argc,char *argv[]) { int i; for(i=0;i<argc;i++){ fprintf(stdout,”arg %d is %s\n”,i,argv[i]); } exit(0); } これを実行すると以下の感じになる. $> ./getArgs hoge fuga arg 0 is ./getArgs

    joint1
    joint1 2017/03/22
     オプション引数を、C言語で扱う場合
  • bash のシェルスクリプト(関数)でオプション引数を扱う getopts 使い方サンプル - それマグで!

    シェルスクリプトで引数オプションを使いたい my_shell_script -a /usr/bin みたいに、bashのシェルスクリプトでも引数を扱いたい。 getopts を使えば引数が取れる bash では getopts を使えば、引数の処理を簡単に行うことができて便利。ruby などでは optparseに相当するやつです。 はじめに getopt / getopts の違いについて 全ての初めに。 getoptsについて読む前に知っておかなくちゃいけないことがある。 getopts コマンドとシェルのビルトインの二種類がある。 名前 種類 getopts シェル組み込み getopt コマンド・ファイル Google検索はgetopt/getopts を区別しないで結果を出すので注意が必要でした。 今回、調べたのは getopts です。 getopt は/usr/bin にある

    bash のシェルスクリプト(関数)でオプション引数を扱う getopts 使い方サンプル - それマグで!
    joint1
    joint1 2017/03/22
     オプション引数のまとめ。bashの場合。
  • CPU とキャッシュのはなし - graphics.hatenablog.com

    別にグラフィックスに限ったことじゃないし、そもそも論文とか全然関係ないけど。GPU 周りでもたまに話題になるし、自分でもたまにわけわからんくなるから整理しとく。 メインメモリは遅い CPU からメインメモリにデータを読みに行く場合、これはとにかく遅い。例えばレジスタにあるデータを読みに行く場合と比べると、だいたい数倍から数100倍の遅さ。ヤバいからなんとかしよう。もっと早くアクセスできる場所にデータおいとこう。 キャッシュライン CPU がメインメモリからデータを読み出すとき、必ず小さなメモリチャンクをキャッシュ上にロードする。ロード単位はプロセッサによるけど、だいたい 8 ~ 512 バイト。このロード単位をキャッシュラインと呼ぶ。 アクセス対象のデータが既にキャッシュに載ってる場合は、メインメモリじゃなくてキャッシュを読みに行く。ない場合はメインメモリにアクセスするけど、そのデータはも

    CPU とキャッシュのはなし - graphics.hatenablog.com
    joint1
    joint1 2017/03/07
    キャッシュとか懐かしい。卒業からのブランクがなければなぁとかは今でもごく稀に思う。
  • グルーコード - Wikipedia

    グルーコード(英: glue code)とは、コンピュータプログラミングにおいてプログラムの要求仕様の実現には一切寄与しないが、もともと互換性がない部分同士を結合するためだけに働くコードである。グルー (glue) とはにかわなどの接着剤を意味する。グルーコードは既存のライブラリやプログラムの相互運用のために、例えばJava Native Interfaceなどの外部関数インターフェイスの形態で、あるいはオブジェクト関係マッピングを用いてオブジェクトとデータベースを対応付ける場合や、商用オフザシェルフプログラムを統合するような場合に現れる。 グルーコードの例[編集] C言語やC++で書かれた既存コードを、他の言語(例えばLuaやPythonなどのスクリプト言語)で使用するためのコード(スクリプト言語実行環境へのC関数の登録など) C++で書かれた既存コードをC++で利用するが、仕様的に互換

  • おすすめTips! - Growthbeat FAQ

    Growthbeat,グロースビート,プッシュ通知,ポップアップ,グロースハック

  • 1