タグ

programmingに関するmasa0x80のブックマーク (314)

  • ビキビキ…たった1行のC言語だけで鳴らされる異常に格好良い電子ノイズの数々 : matsu & take

    ブブブブブブビビビビビビ…。 まったくC言語のプログラムに関する知識のない自分でも、このノイズの格好良さとシンプルな数式のマジックには意味がわからないままに驚愕します。たった1行程度のC言語プログラムで生成された低bitなデジタルノイズミュージックの数々がプログラムのコードとセットでYouTubeに公開されています(via: motherboard.tv)。 上のようなたった数十文字の単純な記号と数字を書きこむだけで当にこんなノイズが出せるものなんでしょうか。一文字一文字の意味の詳しい説明を聞いても全く頭の中にとどまりそうにありませんが、作者のブログに説明が書かれています(→Link) 動画の作者はviznutというフィンランド人。小サイズのCGアートを製作するデモシーン(Demoscene →Wikipedia)で活動している人物だそうです。 作者がこの動画を作るきっかけになったという

  • repl.it

    Build software fasterReplit is an AI-powered software development & deployment platform for building, sharing, and shipping software fast. Everything you need to build software in one placeCreate & deploy websites, automations, internal tools, data pipelines and more in any programming language without setup, downloads or extra tools. All in a single cloud workspace with AI built in. “We use Repli

    repl.it
  • アーキテクトを考える | システム設計日記

    Bruce A. Tate 著、まつもとゆきひろさん監訳、田和勝さん訳の 「7つの言語 7つの世界」 を楽しみながら読んでいる。 最初のページの「読者の声」の、 「複数のパラダイムを理解すると、設計能力が大幅に強化される」by Dr. Venkat Subramaniam に、はっとさせられた。 読み進めるうちに、この言葉の意味が、実感できてきた。 「異なるパラダイムを、実感してみる」と「設計の発想やセンスが変化する」手ごたえがあった。 9章「まとめ」に、プログラミングパラダイムを4つに分類した要約がある。 ●オブジェクト指向 --> Ruby, Scala ●プロトタイプ型 --> Io ●制約論理型 --> Prolog ●関数型 --> Scala, Erlang, Clojure, Haskell ※「手続き型」がないのは、このでは C, FORTRAN, COBOL, BASI

  • ObjectClub - ソフトウェア原則 ちょっと横道 その2 Name and Conquer

    前回は、名前に関するエピソードとして、「Joshua Tree Principle(名前を知 ることで、見えなかったものがめるようになるという法則)」を紹介し、名前の 重要性を指摘しました。今回はもう1つの名前に関するエピソードを紹介します。 それは、「問題を解く方法」に関するものです。数学の問題解決法を分析し、 大きく2つに分けると、 (1)Divide and Conquer(分割攻略) (2)Name and Conquer(定義攻略) になるそうです(*1)。Divide and Conquerは複雑な問題をより単純なサブ問題 に分ける方法です。ごく普通の考え方です。ソフトウェア開発に例えると、そ れはサブシステム分割や構造化分析設計になるでしょう。 (2)Name and Conquerは少し変わっています。これは、「名前を付ける」方法 です。 「まだ未知だが、とりあえずこの数を

  • プログラミングは「名前」が9割。 - このブログは証明できない。

    プログラミングというのは、名前をつける行為なんだと思う。 プログラミングで一番大切なこと。 もしも、プログラマーじゃない人に、「プログラミングで一番大切なことは?」と聞かれたら、迷わず「名前」だと答える。もちろん、人それぞれだし、自分はスキルの高いプログラマーじゃないよ、と前置きして。 名前が9割と言ったときの、9割という部分は人によってだいぶ差があるんだと思う。もっと小さいかもしれない。けれど、名前が重要だという点に関しては、反対するプログラマーはいないんじゃないだろうか。 時代や環境で変わる名前。 いま僕がイメージしてる名前というのは、変数名だったり関数名だったりクラス名だったり、とにかくいろいろ。さらに、JavaScriptとか高階関数をバリバリ使うような場合など、名前をつけないという選択肢もある。 なんとなくJavaScriptと書いたんだけど、名前はプログラミング言語や開発環境や

    プログラミングは「名前」が9割。 - このブログは証明できない。
  • Google Code Jam Japan 2011 に参加しませんか?

    Google では 2003 年から毎年、世界中のプログラマを対象にしたプログラミングコンテスト Google Code Jam を開催しています。今年は 30,000 人のプログラマが 130 の国から参加し、総計 60 以上のプログラミング言語を用いて競い合いました。7 月に東京オフィスで行われた決勝戦には世界中から選りすぐりの 25 人が集結。日からも過去最高となる 3 人が Top 25 に入り、rng..58 さんが日人初となる Google Code Jam 世界チャンピオンに輝きました! さて、今度は日の居住者をターゲットとした Google Code Jam Japan の開催が 10 月 1 日に迫っています。日ではここ数年 Google Code Jam の参加者数が飛躍的に増えていますが、英語の問題文に躊躇して参加していない、という声も多数聞かれました。今度の

    Google Code Jam Japan 2011 に参加しませんか?
  • 最小限のJavaで素数を列挙(Javaで無限リスト) - 貳佰伍拾陸夜日記

    以前書いた「ラムダ計算基礎文法最速マスター」では, ラムダ計算に自然数やデータ構造, 条件分岐, ループが用意されていないため, これらをラムダ項を使って模倣する方法を紹介しました. このようなことはどんなプログラミング言語でも起きうることで, たとえば, アセンブリ言語にforループが無いために, C言語で書かれたプログラムをアセンブリ言語にコンパイルするときには条件ジャンプ命令とラベルでforループを模倣する, というのも同じことです. 今回は, Javaを最小限の機能だけに制限した純粋オブジェクト指向言語で, 以下のものを実現してみます. 真偽値と条件分岐 自然数と四則演算 リスト 無限リスト さらに, これらすべてを用いて任意個の素数を列挙するプログラムを書いてみます. 完全なソースコードは一番最後にあります. 最小限のJava Javaはそれ自体純粋なオブジェクト指向言語ですが,

    最小限のJavaで素数を列挙(Javaで無限リスト) - 貳佰伍拾陸夜日記
  • 『プログラミングの魔導書 Vol.2』予約開始! - Faith and Brave - C++で遊ぼう

    株式会社ロングゲート - プログラミングの魔導書 〜Programmers' Grimoire〜 Vol.2 Vol.1から約1年経ってしまいましたが、日、 『プログラミングの魔導書 〜Programmers' Grimoire〜』 Vol.2 The Evolution of Languages の予約を開始いたしました。 Vol.2のテーマは「言語の進化」です。 いろいろな言語における日の第一人者と言って差し支えない日人プログラマの方々に、歴史や現在の状況、今後の展開について執筆していただきました。 書では、Boost C++ Librariesの設計者であるDave Abrahamsへのインタビューに成功しました。ライブラリが言語の進化にどう貢献していくのか、プログラマにライブラリをどう教育していくのか、などを伺いました。 書のコンテンツおよび執筆者は以下のとおりです。 D

    『プログラミングの魔導書 Vol.2』予約開始! - Faith and Brave - C++で遊ぼう
  • おまじないではない#include その2 - 郡山からHello World

    http://d.hatena.ne.jp/ytetsuwo/20110820/p1 の続き stdio.hからincludeされている/usr/include/_types.hの抜粋は以下の通り 32 #include <sys/cdefs.h> 33 #include <machine/_types.h> 34 35 /* 36 * Standard type definitions. 37 */ 38 typedef __uint32_t __blksize_t; /* file block size */ 39 typedef __int64_t __blkcnt_t; /* file block count */ 40 typedef __int32_t __clockid_t; /* clock_gettime()... */ 41 typedef __uint32_t __f

    おまじないではない#include その2 - 郡山からHello World
  • おまじないではない#include - 郡山からHello World

    C言語を最初に学ぶと、必ず出てくる以下の行 #include <stdio.h> おなじないと言われて、常に書いている人がいるみたいだが、おまじないでもなんでもなくて stdio.h ファイルをそこに展開せよといっているだけである。 なんで展開するかというと、たいていはprintf関数を使うので、そのプロトタイプ宣言なんかが書いてあって必要になるから。使う分にはそれでもいいけど、それだと面白くないからstdio.hファイルでも見てみようかと思うわけですよ。 どこにあるかというと、まぁ、環境によるわけですが、UNIX系の場合 /usr/include だったりします。 というわけで、/usr/include/stdio.hファイルを見ていけばいいということで。以下、FreeBSD 7.3-RELEASE の環境の話です。 ファイル長いので、面白そうなとこだけ見ていこうかと。 最初は以下の通り

    おまじないではない#include - 郡山からHello World
  • 数万のソースコードから目的の一行を一瞬で見つけ出す、Milkode - おんがえしの blog

    最新バージョンはコチラです。 Milkode(ミルコード)はソースコード検索エンジンです。手元にある大量のソースコードを登録し、ブラウザで閲覧したり検索することが出来ます。20000ファイル位であれば1秒位で特定の一行を見つけることが可能です。 Rubyで書かれており、使っているライブラリも含めてRubyGem経由でインストールすることが出来ます。 OSX, Unix $ sudo gem install milkode Windows(32bit) $ gem.bat install rroonga --platform x86-mingw32 $ gem.bat install milkode Windows(64bit) ※ 事前に64bit版rroongaのインストールが必要です。 $ gem.bat install milkode詳しいインストール方法はホームページをご覧下さい。

    数万のソースコードから目的の一行を一瞬で見つけ出す、Milkode - おんがえしの blog
    masa0x80
    masa0x80 2011/08/01
    便利そう
  • TechCrunch

    Bandcamp has officially changed hands from its old new owner, Epic, to its new new owner, Songtradr, and lost half its employees in the process. Songtradr confirmed that “50% of employees receiv

    TechCrunch
  • 練習問題 - プログラミングスレまとめ in VIP

    これは何? † 練習問題(アルゴリズム編)もご覧ください。 練習問題を集めてみました。 言語は問いません。入力出力は特に問いません。 キー入力でもファイルでもソースにべた書きでもいいです。 答えは誰かが書いてくれます。それまではスレで聞いてください。 ↑ ループ練習 † Hello World![改行]を5回表示させてください。 print(或いはprintf,cout等)を5回コピーすれば当然可能ですが、 ループ構文(for,while等)を利用して、print等は1回の使用にとどめてみてください。 出力結果 Hello World! Hello World! Hello World! Hello World! Hello World! 解答例 Java版 C Python Haskell Scala Scheme 可能ならコマンドラインから入力を受け取って、n回表示するように改造してく

  • Programming in Lua

    This book is a detailed and authoritative introduction to all aspects of Lua programming written by Lua's chief architect. Programming in Lua provides a solid base to any programmer who wants to use Lua. It covers all aspects of Lua—from the basics to its API with C. The book is the main source of programming patterns for Lua, with numerous code examples that help the reader to make the most of Lu

  • JavaScriptのいろいろなコーディングルールをまとめてみた

    JavaScriptの書き方はJavaScript自体がある程度自由なためいろいろな書き方ができますが、一貫性を持って書いた方がバグなども発生しにくくなるため、コーディングルールを定めておくのはよいことだと思います(特に複数人の開発の場合) 有名な企業やライブラリはコーディングルールも公開している事が多いので適当にまとめてみました JavaScript style guide – MDC Docs Mozilla/Firefox向けのものなので、一部ECMAScriptの範囲を超えたものも含まれています。 多くの人が見ていると思うので、見たことない人は一度読んでみるといいです。 jscsにこのコーディングルールをチェックするプリセットが用意されています。 Google JavaScript Style Guide Google JavaScript Style Guide 和訳 — Goo

    JavaScriptのいろいろなコーディングルールをまとめてみた
  • cでcode golf

    code golfでもやってみる 競技場は http://golf.shinh.org/ C言語で挑戦してます。 最近終了した問題の上位者のコード読んでみたり、新しい問題に挑戦したりしよう。 FAQ Q1.コードゴルフとは? A.1 与えられた入力に対し、定められた出力と一致するコードについて、ソースコードの文字数の短さを競うプログラミング競技です。 ショートコーディング(Short Coding)などとも言い、競技場も世界中にいくつもあり、専門の書籍なんかも出ています。 Q2. 使ってる環境は何? A2. MacBook Air の標準のターミナル(フォントはRicty)ごしにDebianのサーバー上のvimで編集しています。インデント除去整形などは自作のMakefile内スクリプト。 Q3. 放送主は何者ですか? A3. プログラマ。代表作: ニコニコ動画。twitterでは @koi

    cでcode golf
  • anarchy golf

    Anarchy Golf This is a golf server. You can enjoy short coding here in several languages (115 languages). The purpose of this server is not serious competition. Joke problems are welcomed and you can speak freely about problems and can release spoilers. For serious competition with ranking, enter Code Golf. IRC channel for this golf server: #anagol in freenode. Please feel free to join the channel

  • プログラミングをはじめた理由 あるいはなぜ中1の頃の僕が親父のPCをクラックするに至ったか - mizchi log

    91世代部あたりで流行ってるようなので、プログラミングに手を出したいけど悩んでる人向けに、自分がどういう変遷を辿ったか書く。 あまり91世代とは関わりないけど、88なのでそんなに変わらない、つもり。大学4年。 生い立ちから書く。生い立ちを書かなければこのテーマに挑めない。その理由は、次の章の書き出しを見てもらえばわかるとおもう。 小学生 95~00 物心ついた頃からインターネット小僧だった。95年には既に家にインターネットが通っていた。最初はポケモンの裏技ばかり調べていた気がする。最初に触ったのはMacだった。ハイパーカードのゲームで遊んでいた。 小学3年生のころだったか、親父にWin95のノートPCのおさがりを貰って、一人っ子で鍵っ子だった自分はひたすらインターネットをしていた。友達は少なくはなかったが、家が自分だけ皆と逆方向だったので必然的に一人遊びする時間が多かった。 小遣いが少なか

    プログラミングをはじめた理由 あるいはなぜ中1の頃の僕が親父のPCをクラックするに至ったか - mizchi log
  • 線形帰還シフトレジスタ - Wikipedia

    線形帰還シフトレジスタ(せんけいきかんシフトレジスタ、英: linear feedback shift register, LFSR)は、入力ビットが直前の状態の線形写像になっているシフトレジスタである。 値域が単一のビットとなる線形写像は、XORおよびXORの否定だけである。したがって、線形帰還シフトレジスタとは、その値を構成するビット列の一部の排他的論理和を入力ビットとするシフトレジスタである。 LFSR の初期値をシードと呼ぶ。レジスタの動作は決定的であるため、レジスタが生成する値の列はその状態によって完全に決定される。同様に、レジスタの取りうる状態は有限個であるため、最終的に周期的動作になる。しかし、帰還関数をうまく設定したLFSRは乱数のようなビット列を生成し、その周期も非常に長い。 LFSRの用途としては、擬似乱数生成、擬似ノイズ生成、高速デジタルカウンタ、白色化などがある。L

    線形帰還シフトレジスタ - Wikipedia
  • 肉体言語 Tython - Thanks Driven Life

    Tython とはhttps://github.com/gongo/Tython/tree/development 肉体言語 Tython は、Kinect センサーを用いて、体の動きを利用してプログラムを入力する言語、というかインターフェースというかフレームワークというか。 図にするとこんな感じです。 Kinect を介して動きを検知 (Detector) 検知した動きによって、入力するソースコードを決定 (InputMethod) ソースコードを入力し終わったら、コンパイル (Compile) コンパイルしてできた命令列を実行 (VM) デモ 「Hello, World!」Tython を使って Hello, World! を出力してみました。 Hello, World! 出力まで 4分強 一回で成功しなかった 最終的に成功するまでの時間は 90分 一度でも文字入力失敗すると最初から

    肉体言語 Tython - Thanks Driven Life