タグ

Programmingに関するtuto0621のブックマーク (101)

  • プログラミング言語の未来はどうなるか | κeenのHappy Hacκing Blog

    κeenです。最近JEITAのソフトウェアエンジニアリング技術ワークショップ2020に参加したんですが、そこで五十嵐先生、柴田さん、Matzとパネルティスカッションをしました。その議論が面白かったので個人的に話を広げようと思います。 年末年始休暇に書き始めたんですが体調を崩したりと色々あって執筆に時間がかかってしまいました。 時間を置いて文章を書き足していったので継ぎ接ぎ感のある文体になってるかもしれませんがご容赦下さい。 というのを踏まえて以下をお読み下さい。 いくつか議題があったのですが、ここで拾うのは一番最後の「プログラミング言語の未来はどうなるか」という話題です。 アーカイブが1月末まで残るようです。もうあと数日しかありませんが間に合うかたはご覧下さい。 そのとき各人の回答を要約すると以下でした。 五十嵐先生:DSLを簡単に作れる言語というのが重要。それとプログラム検証、プログラム

    プログラミング言語の未来はどうなるか | κeenのHappy Hacκing Blog
    tuto0621
    tuto0621 2021/01/27
    汎用ランタイムとそれを使った処理系が出る?早い話がジェネリック版Goのランタイム。
  • 型なし言語のための型

    富山Ruby会議01

    型なし言語のための型
    tuto0621
    tuto0621 2019/11/06
    型定義ファイルを書いたらVSCodeで補完できるようにしたい、どうすればできるのかな?
  • 「本」を読まないエンジニアはたぶん進化しないと思う

    バグとグリッチ 最近、私が気に入っている神田神保町の「GLITCH・COFFE&ROASTERS」(グリッチ・コーヒー&ロースターズ)というカフェがある。狭い店内の5分の1は占めてしまう巨大な焙煎器もだが、なんといっても「GLITCH」という名前がいい。(今回は「週刊アスキー連載中の『神は雲の中にあられる』より転載です) “GLITCH”というのは「 【名詞】【可算名詞】《口語》1(機械・計画などの)欠陥、故障 〔in〕。2電力の突然の異常」(Weblio)という意味だが、私的には「millennium glitch」(2000年問題)がすぐに頭にうかんだ。 要するに、“Bug”(バグ)が、プログラムやハードウェアの欠陥のことだとすると、それの発症が“Glitch”(グリッチ)なのだ。バグについては、よく語られているし私も『近代プログラマの夕』(拙著=ホーテンス・S・エンドウ名で絶版だが)

    「本」を読まないエンジニアはたぶん進化しないと思う
  • Big Sky :: 「みんなのGo言語」の執筆に参加させて頂きました。

    僕がプログラミング言語「Go言語」を知り、使い始めてからそろそろ7年目に入ろうとしています。 当初 Google が作っているという鳴り物があった為、色々なメディアに取り上げられ色々な方がブログ等でGo言語を紹介し、色々な意見でGo言語が語られました。大抵の場合、プログラミング言語とは始めはチヤホヤと取り出され、落ち着いてからが当の人気を表すという傾向にあります。皆さんもそう思っていたかもしれませんし、僕もそう思っていたと思います。 僕がGo言語を触りだした頃、まだ色々と足りない部分がありました。Linux で動いている多くの機能が Windows では未実装になっていました。しかしそんなGo言語であっても高速なビルドと実行速度で僕の好奇心を揺さぶるには十分な物でした。 その後、僕はGo言語にパッチを送る様になりました。その内幾らかはマージされました。現時点ではコアのリポジトリで79個の

    Big Sky :: 「みんなのGo言語」の執筆に参加させて頂きました。
    tuto0621
    tuto0621 2016/08/15
    楽しみだ
  • エラーメッセージは 2W1H がいいんじゃないか

    良くあるダメなエラーメッセージ エラーが起きたときは、以下のようにエラーメッセージをどこかしらに出力すると思います。 $c->log->error('something wrong!'); ただ、このエラーメッセージって、実際に発生したときには意味がわからないことが多いのです。 $c->log->error('error!'); 気でこういう「error!」とだけ吐くメッセージだと、エラーが起きたことしか伝わってきません。程度の差はあれ意味のわからないエラーメッセージはこの世にあふれているかと思います。 機械的なエラー情報 そういうわけで、たいていは Exception クラスや Logger クラスで多くの補助が受けられるようになっていると思います。 発生時刻 発生場所 stack trace 変数の状態 ただ、このような機械的な情報だけだと、結局、運用上は対応が難しい場面ってのが多か

    エラーメッセージは 2W1H がいいんじゃないか
  • 30のプログラミング言語でFast inverse square rootを実装してみました! - プログラムモグモグ

    あなたの好きな言語は何ですか。そして、あなたの好きなアルゴリズムは何ですか。 好きな言語があると、その言語でどんな問題でも解決しようとなりがちになります。その言語を極めるのは素晴らしいことですが、その言語や似たような言語でしかコードが書けなくなったり、他の言語に対して見向きもしなくなってしまう可能性があります。 勇気を出して新しい言語にチャレンジしてみませんか?色々な言語に挑戦してみませんか? 何から始めればいいか分からない。次にどの言語を学べばいいか分からない。いま特に何も困っていない。何でも得意な言語で書けてしまう。そういう人が多いのではないでしょうか。 新しい言語にチャレンジするきっかけを作る一つの方法は、ある特定のアルゴリズムを一つ決めて、あらゆる言語で実装してみることです。解く問題が大きすぎると力尽きてしまうので、せいぜい20〜30行程度で書ける簡単なものが良いでしょう。大事なこ

    30のプログラミング言語でFast inverse square rootを実装してみました! - プログラムモグモグ
    tuto0621
    tuto0621 2016/07/26
    JSで実装できるのすごい。MS系の処理系が言語は違っても同じように書けるところや、スクリプト系言語に対するPerlの影響力の強さとかが分かった。おもしろかった。
  • Create Your Own Programming Language

    Want to create a programming language, but don't feel like going through one of those expensive and boring 1000-page books ? Well, you're not alone ... The best system to create your first programming language.

    tuto0621
    tuto0621 2016/07/18
    なにこれ読みたい
  • 友達がいなくても新しい言語は学べる | tech - 氾濫原

    プログラミングが分かってる相手に気軽に挙動について訊ける機会なんてありませんね。仕事なら同僚に訊けばいいと思いますけど、同僚が暇とは限りませんし、学生ならそういった相手がいないことが普通ではないでしょうか。 ということで、独りで言語を学ぶ方法について考えます。 作りたいものを決める 大変重要なところです。どの言語でも書けて、どの言語も多少の個性が出て、そこそこ簡単なものがいいですね。 ぼくの場合は blosxom という「テキストファイルをスキャンしてHTMLにするだけのブログツール」なんですが、まぁなんでもいいと思います。ぼくはウェブエンジニアなので、ブラウザに何か表示がでるとそれだけで嬉しいというところがあります。 リファレンスをひけるようにする どの言語も必ずどこかに言語リファレンスがあります。必ず公式のものを一式見れる状態にします。そしてできれば Chemr とか Dash みたい

    tuto0621
    tuto0621 2016/07/13
    作りたいものを決める、リファレンスをひけるようにする、書き始める
  • Swift の Nil Coalescing Operator でコンパイルは遅くなるか - cockscomblog?

    趣味のウェブブラウジングをしていると、Swift の ?? (nil coalescing operator) がコンパイルを遅くするのではないか、といった話題*1を見かけました。この演算子は、左辺の Optional<Wrapped> 型の値が Optional.none である場合に右辺の値を返すというもので、直感的にはこれがコンパイル時間を悪化させるとは思えません。経験から言えば、このようなケースでは大抵やや複雑な型推論が発生しており、それがコンパイル時間に支配的な影響を与えています。そうであるなら、人間が少し工夫して型のコンテキストを与えてやることで、計算機はずっとよいパフォーマンスを発揮できるはずです。 ごく簡単な例で実験してみましょう。以下のコードは、let view: UIView? があるとき、座標系における view のX座標を得ようとするものです。ただし view が

    Swift の Nil Coalescing Operator でコンパイルは遅くなるか - cockscomblog?
    tuto0621
    tuto0621 2016/07/07
    Swift コンパイラに少しオプション(-Xfrontend -debug-time-function-bodies)を渡すことで、関数毎にコンパイル時間を出力
  • 「クイックソート」「バブルソート」などのソート・アルゴリズムをフォークダンスで説明する恐るべきムービー集「AlgoRythmics」

    たくさんのデータを大小関係に従って、小さい順(昇順)や大きい順(降順)に並び替える作業はソート(整列)と呼ばれ、ソフトウェア・プログラムではよく使われています。このようなソート作業を行うために並び替えの方法を手順化したのが「ソート・アルゴリズム」で、アイデアを理解すると「ほほー、なるほど」と思えるのですが、複雑すぎて理解しづらいものもあります。そんなソート・アルゴリズムの中でも有名で、仕組みを理解しておきたいものばかりを題材に、なんとフォークダンスに合わせてアルゴリズムを表現するムービー集「AlgoRythmics」が公開されており、学習効果があるかどうかは脇に置いて、思わず見入ってしまう魅惑のムービーとなっています。 最も有名なソート・アルゴリズムの一つである「バブルソート」をハンガリーのフォークダンスにのせて表現するのが「Bubble-sort with Hungarian ("Csá

    「クイックソート」「バブルソート」などのソート・アルゴリズムをフォークダンスで説明する恐るべきムービー集「AlgoRythmics」
  • 仕事中、一瞬の隙も見逃さずに情報収集できるRubyワンライナーとスクリプト - maeharinの日記

    情報収集はビジネスマンとしての基である。しかし普段シェルで作業する者としては、毎回ブラウザを立ち上げる時間すら不毛である。よって、シェルから一瞬で情報収集できるRubyのワンライナーを書いた。 上からYahoo, はてな, Naverまとめ, 2ちゃん $ ruby -r open-uri -e 'open("http://www.yahoo.co.jp").read.scan(/topics.+?>([^<]+?)</) {|m| puts m}' $ ruby -r open-uri -e 'open("http://b.hatena.ne.jp/hotentry").read.scan(/entry-link.+>(.+?)</) {|m| puts m}' $ ruby -r open-uri -e 'open("http://matome.naver.jp/").read.sc

    仕事中、一瞬の隙も見逃さずに情報収集できるRubyワンライナーとスクリプト - maeharinの日記
  • 詳細PDF入門 ー 実装して学ぼう!PDFファイルの構造とその書き方読み方 - プログラムモグモグ

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

    詳細PDF入門 ー 実装して学ぼう!PDFファイルの構造とその書き方読み方 - プログラムモグモグ
  • コーディング面接の例 - soutaroブログ

    プログラマの面接をするときには実際にコーディングをしてもらうべきという話は良く聞くが、もうちょっと細かくどういうお題を出したら良いかとか、どういう風に評価したら良いかとかの話はあんまり聞かない気がする。せっかくなので、ユビレジでの面接で私がコーディングについて確認するときのパターンを、いくつか紹介してみようと思う。 実際にコードを書いてもらうパターン 候補者がどのくらいプログラミングできそうかの予備情報がない場合に、簡単なアルゴリズムを書いてもらうことが多い。例としては、 Linked Listを書いてください Stackを書いてください など。ここで、おもむろに int main(int argc, char* argv[]) { などと書き始める人は、あまり良い印象をもたれない。 class Stack などと書き始める人は上よりは期待できる。 このとき、わざと出題で詳細をあまり明らか

    コーディング面接の例 - soutaroブログ
    tuto0621
    tuto0621 2015/06/22
    この記事は最初Qiita Teamに公開してたけど、社内から好意的な反応をもらえたような気がしたので提案もあって公開することにした。
  • 【iOS9】API Diffs から見る iOS 9 の新機能 - Over&Out その後

    WWDCのチケットは外れましたが、サンフランシスコに来ております。そこで色んなミートアップに参加して世界中のiOSエンジニアと交流を図・・・ってはおらず、もくもくと Apple のドキュメントを見ています。(参考記事) 基調講演だけ見ると開発者的にでかい話は Swift 2 と watchOS 2 ぐらいかな、という感がありますが、「iOS 9.0 API Diffs」や「What's New in iOS」を見ると今回も新しい機能が数多く追加されているようです。分量が多すぎてほんの一部しか見れてませんが、気になったものを列挙していきます。 ※ 記事は Apple による公開ドキュメント(ログイン不要領域にある)を元に構成しています App Extension App Extension は、iOS 8 から導入された、アプリの機能を他のアプリからも使えるようにするためのしくみですが、な

    【iOS9】API Diffs から見る iOS 9 の新機能 - Over&Out その後
  • 【iOS】たった数行で画像のフィルタ/エフェクトが実現できる超便利フレームワークCoreImage。とりあえず7つ紹介! - @kitano_ow 's blog

    iPhoneデジカメプログラミング 作者: 細谷日出海出版社/メーカー: ソフトバンククリエイティブ発売日: 2011/03/18メディア: 大型購入: 1人 クリック: 33回この商品を含むブログ (4件) を見る ちょっとブログ(WordPress)の移行ができてないので、 ネタかぶっちゃうわけですが、改めてまとめ直したいと思います。 元記事(その1,その2) iOS5からCoreImageというフレームワークを使うと、 画像のフィルタが簡単にできます。リアルタイムフィルタには少し重かった印象ですが、静止画であれば特に問題なく利用できるかなと思いまして。 以下記事にて引用している記述は 公式ドキュメントからなど引用させていただいております。 前提その1 CoreImageというフレームワークを使います。 前提その2 インポートしましょう。 #import <CoreImage/Cor

    【iOS】たった数行で画像のフィルタ/エフェクトが実現できる超便利フレームワークCoreImage。とりあえず7つ紹介! - @kitano_ow 's blog
  • 橋本商会 » プログラムの写経

    プログラミング初心者が写経する時に気をつけると良い事を4つ説明します。 画像はイメージです プログラムを勉強する時に、写経しろ(すでに完成しているプログラムをから書き写せ)とか言われるが、ちょっと意識するとだいぶ違うと思う 1. 外から書け 例えば、1からnまでの数字を全部表示するプログラムがあるとする。 def run(max) 1.upto(max).each do |i| puts i end end run(10) これを写経する時、上から下に1行目から順に書くのではなくて、まず def run(max) end いちばん外側を書いて def run(max) 1.upto(max).each do |i| end end 中を書いて def run(max) 1.upto(max).each do |i| puts i end end こうなる。 上から書かないのが重要。プログ

    橋本商会 » プログラムの写経
  • インターネット時代に本を読む - ブログのおんがえし

    テクノロジーの進化、特にここ10年におけるモバイルコンピューター(最初のiPhoneが2007年)の登場によって情報取得ツールとしての(ここではあえて電子書籍、紙のをまとめてと呼ぶ)の使い方は大きく変わった。あるトピックに最初に出会うのはでもテレビでもなくネットの情報である確率はどんどん上がっているしこれからも高まる一方だろう。 とはいってもの重要性が下がった訳ではなく、ネットの情報だけである程度のことは理解出来るようになったからこそ、ネットとの両方から情報収集することに優位性がある。私がよくやるの読み方についてまとめてみた。 インターネット時代のの読み方 気になるトピックを見つける ネットを使って調べる ある程度分かってきたらを読む(さらに理解を深める) の内容をある程度理解したらネットに戻る 情報発信したりに書かれていないことを調べる(1.に戻る) ポイントは自分

    インターネット時代に本を読む - ブログのおんがえし
  • Rebuild: Aftershow 91: With PHP, Everything Is Acceptable (Naoya Ito)

    Naoya Itoさんと、Slack, プログラミングの才能、コーディングの楽しさ、ゼノブレイドクロス、シドニアの騎士などについて話しました。 Show Notes 私では「Slackがどうして愛されているか」ということが説明できない いかにしてSlackは市場を席巻したか Slack is killing email Atlassian Acquires Team Chat Service “Hall” To Bring More Non-Technical Users To HipChat Hipchat Ad Channel and group notification preferences – Slack Jacob Kaplan-MossのPyCon 2015における基調講演: プログラミングの才能という都市伝説 Keynote - Jacob Kaplan-Moss - Py

    Rebuild: Aftershow 91: With PHP, Everything Is Acceptable (Naoya Ito)
    tuto0621
    tuto0621 2015/05/23
    プログラミングの才能からの流れの話面白かった。手段にこだわりすぎにとりあえず動くもの作るの大切。
  • Announcing Rust 1.0 | Rust Blog

    Today we are very proud to announce the 1.0 release of Rust, a new programming language aiming to make it easier to build reliable, efficient systems. Rust combines low-level control over performance with high-level convenience and safety guarantees. Better yet, it achieves these goals without requiring a garbage collector or runtime, making it possible to use Rust libraries as a "drop-in replacem

    Announcing Rust 1.0 | Rust Blog
    tuto0621
    tuto0621 2015/05/16
    GC無しでここまで来たのすごいなぁ。リアルタイム系のベースエンジンとしてならgoよりもよい?
  • Rust の Lifetimes - steps to phantasien

    もうすぐ 1.0 という Rust。 久しぶりにチュートリアルを読む。以前見た時は不可解な機能が多く、こりゃ難しさに溺れて死にそうだな・・・と思っていた。今見るとずいぶんすっきりしている。単純さに舵を切れたのはえらい。 チュートリアルに登場したうちわからなかった機能は 2 つ: Lifetimes と Macros. Macros はさておき Lifetimes は理解してよさそう。詳しい情報を求めてリファレンスをひやかすが、驚くほど何も書いてない。かわりにメモリ安全な C の方言 Cyclone による region based memory management が元ネタとして言及されている。勢いでその資料にも目を通す。解説 PDF ひとつとマニュアルの一部。どちらもよく書けていた。記法も Rust の lifetimes と似ている。 Cyclone の region based m

    tuto0621
    tuto0621 2015/05/11
    Rust のような GC-less