ときどきの雑記帖'

最新ページへのリンク
目次ページへのリンク

一つ前へ 2013年4月(上旬)
一つ後へ 2013年4月(下旬)

ホームへ

2013年04月20日

■_

IDEA MAN やっと読了。

マスタースイッチ 図書館から借りたはいいが、読み切らないうちに貸出期限切れ (予約待ちがいるので延長不可。ぐっすん)。

初版とだいぶ印象が変わりましたね… Photo by kmizushimax • Instagram

■_ InfoQ

これは Simon Peyton Jones on Teaching Computer Science to Kids with the Computing At School Initiative Simon Peyton Jones explains the Computing At School initiative which aims to introduce Computer Science as a discipline in schools, how to explain the ideas behind algorithms to kids and much more.

I’m here at QCon London with Simon Peyton Jones. Simon, we know a lot about you being the co-creator of Haskell, also about your implementation of the compiler, one of the most used compilers in Haskell. So, can you tell us a bit about that and then about your new project that I heard about, not directly related to that, but rather related to education?

[...] So, is it an old problem or is it a new problem?

Simon さんの回答の方も文字起こしして欲しいのだわ…

■_

NHK 高校講座、社会と情報。これかしら NHK高校講座 | 社会と情報 第一回の再放送が25日にありますわね… というか隔週なのか Eテレ 木曜日 隔週再放送 午後2:00〜2:20

■_ 読書会

えーとあれだ。 次回から平日夜開催になります。 一回当たりの時間は短くなり回数は増える予定。

今日は 22.4 のUnification のところをいっしょーけんめい読んでおりました。 パターンマッチ万歳。

  let unify fi ctx msg constr =
    let rec u constr = match constr with
        [] → []
      | (tyS,TyId(tyX)) :: rest →
          if tyS = TyId(tyX) then u rest
          else if occursin tyX tyS then
            error fi (msg ^ ": circular constraints")
          else
            List.append (u (substinconstr tyX tyS rest))
                        [(TyId(tyX),tyS)]
      | (TyId(tyX),tyT) :: rest →
          if tyT = TyId(tyX) then u rest
          else if occursin tyX tyT then
            error fi (msg ^ ": circular constraints")
          else
            List.append (u (substinconstr tyX tyT rest))
                        [(TyId(tyX),tyT)]
      | (TyNat,TyNat) :: rest → u rest
      | (TyBool,TyBool) :: rest → u rest
      | (TyArr(tyS1,tyS2),TyArr(tyT1,tyT2)) :: rest →
          u ((tyS1,tyT1) :: (tyS2,tyT2) :: rest)
      | (tyS,tyT)::rest →
          error fi "Unsolvable constraints"
    in
      u constr

■_

2013年04月19日

■_

買った。 僕の友人が本を出しましたので是非予約してください『白と黒のとびら: オートマトンと形式言語をめぐる冒険』 - 男たち、野獣の輝き~す一の映画、漫画、ゲーム日記~ トピックス » 『白と黒のとびら』の本文の一部をPDFファイルで公開しています:東京大学出版会 他にも色々と。

■_ Java 7 update 21

u21でfixされたバグについて?

IKVM.NET Weblog - Java 7 Update 21

While I was working on rewriting IKVM's dynamic binding support based on method handles I stumbled
into a rather serious bug in the Oracle Java implementation. It allowed any code to overwrite public
final fields. This has been fixed in Update 21.

Below is a proof of concept that disables the security manager. It works by changing Double.TYPE to
Integer.TYPE and then using reflection to copy an integer field from one object to another, but
because of the patched TYPE fields reflection thinks the integer field is a double and copies 8 bytes
instead of 4.

import java.lang.invoke.MethodHandle;
import java.lang.reflect.Field;
import static java.lang.invoke.MethodHandles.lookup;

以下略

あとで読む

■_

■_

明日のための予習など。

2013年04月18日

■_

書評が出たからわたし書かないでも良いですよね 404 Blog Not Found:言語を支えるコンセプト - 書評 - コーディングを支える技術 「コーディングを支える技術」著者公式ページ

■_

■_

「メタボリックシンドローム」ってありますよね。 Metabolic Syndrome。 「メタボ」ってすると相当元の意味から乖離した使われ方になってる気もするんですが それはさておき。 今日、「ロコモ」ってのを耳にしたんですよ。 なんのこっちゃいと確かめると、 「ロコモティブシンドローム」の略だと。 んが。 Locomotive って Metabolic とはちがって Syndrome にかかる形の単語じゃないような気がするんですけど なんですかこれ。 ちょっと調べると少し変化した 「ロコモティックシンドローム」なるものも。 これはこれで locomotic なんて単語はないようなんですけどね。

第一、Metabolic Syndrome はちゃんとうぃきぺに項目があるけど Locomotive~ はないし。

新概念「ロコモ(運動器症候群)」|公益社団法人 日本整形外科学会 そこで、日本整形外科学会では、運動器の障害による要介護の状態や要介護リスクの高い状態を表す新しい言葉として 「ロコモティブシンドローム(以下「ロコモ」)(locomotive syndrome)」を提唱し、 和文は「運動器症候群」としました。 Locomotive(ロコモティブ)は「運動の」の意味で、機関車という意味もあり、 能動的な意味合いを持つ言葉です。運動器は広く人の健康の根幹であるという考えを背景として、 年をとることに否定的なニュアンスを持ち込まないことが大事であると考え、この言葉を選びました。 …その選択ってどうよ? って問題ない使い方だったらごめんなさい(予防線)

Metabolic | Define Metabolic at Dictionary.com Locomotive | Define Locomotive at Dictionary.com

2013年04月17日

■_

買った。

西尾さんの本から読んでる。今のところ半分行くか行かないかくらいのところだけどなかなか面白い。 ただ、個々の項目についてもうちょっとボリューム持たせられたんじゃないのかなあという感じはあって、 物足りない部分がなきにしもあらず。 とはいうものの全体の構成やらボリュームやらとの兼ね合いでこうなったのかもなあという気はします。 なんにせよまだ途中なので詳しくはまた。

今日買ったもののアフィリエイトリンクをさりげなく
テスト駆動開発による組み込みプログラミング ―C言語とオブジェクト指向で学ぶアジャイルな設計 コーディングを支える技術 ~成り立ちから学ぶプログラミング作法 (WEB+DB PRESS plus) WEB+DB PRESS Vol.74

残念ながらこいつはみあたらなかった。 コンピュータ工学概論 —コンピュータはなぜ計算ができるのか?—
コンピュータ工学概論 —コンピュータはなぜ計算ができるのか?— ジュンク堂の方には入ったみたいなんだけど

■_ Javascript は世界を制する。か?

Will JavaScript take over the programming world? - Programming 最初の辺りを。

Will JavaScript take over the programming world? - Programming

Last July, I had to give an impromptu talk. What came out, much to my surprise, was roughly
“JavaScript will dominate the programming world.” I didn’t say that JavaScript would dominate
through sheer popularity – JavaScript may in fact top the list of languages disliked by programmers,
because so many programmers use it as a strictly secondary language beside their preferred server-side
toolkit.

Instead, I argued, as you’ll see in “Concentration,” that JavaScript would win by ubiquity,
offering a solution that fit well enough in both clients and servers. While I still think JavaScript
could indeed “fit well enough,” the winds have changed and JavaScript may be about to surrender its
ubiquity advantage, as you’ll see in “Dispersion.”

■_

■_ ソフト・エッジ

おっとこの本も途中までしか読んでなかった 『ソフト・エッジ: ソフトウェア開発の科学を求めて』のレビュー 中島震 (akiyama924さん) - ブクログ F(a,b) = (333.75 - a^2)b^6+a^2(11a^2b^2-121b^4-2)+5.5b^8+a/(2b) という式のaとbに  a = 77617.0; b = 33096.0 を代入して計算すると、 この話は確かに面白かった。

■_

LuaJIT authors thoughts on language design : programming 時間がなかったので「language design」で検索して、ひっかかったあたりを読むw

Ramblings on languages and architectures (was Re: any benefit to throwing off lua51 constraints?) - luajit - FreeLists


I strongly believe in the Sapir-Whorf hypothesis when it comes to
computer language design. A likely conjecture is that if you offer
the right abstractions, people will use them. So better design
abstractions that map cleanly onto the target architecture(s).
Alas, if you're only looking at current CPU architectures, you'd
primarily offer plain imperative concepts. Thankfully, the arrival
of GPGPUs in the mainstream has opened up the perspective somewhat.

But we're still very much entrenched in the thinking that jointly
created the CPU architectures plus the matching languages in the
last decades. This is neither surprising nor a bad thing per se --
we've witnessed enormous progress in scalar execution performance
and (much less spectacular) progress in programming language
implementation efficiency. But the real advances in e.g. parallel
execution will only materialize by out-of-the-box thinking.

So, dreaming a little bit, a CPU based on a data-flow architecture
is probably the way to go. Obviously, data-flow programming
languages are a natural match. But most of the existing ones are
visual languages. That's nice for some tasks, but IMHO these are
not suitable for general programming. And before the functional
programming crowd cheers: nope, sorry, the usual blend of concepts
offered by FP languages is decidedly not what I'd personally
consider worthwhile (some concepts in isolation certainly are).


ふむ。データフロープログラミング?

■_

忙しい。というわけではないんだけどいろいろ余裕がなっしんぐ。 あれもこれもてんで進まない。

2013年04月16日

■_

Welcome Elsevier - Deals - O'Reilly Media なんか良いのあるかなあ 今回は Use discount code WKESEVE - Deal expires April 23, 2013 at 11:59pm PT, and cannot be combined with other offers. ちょっと時間的余裕があると思うのでゆっくりどうぞ

■_ formal method

この記事 朝日新聞デジタル:日立など、高信頼の車制御ソフト検査技術を開発-プログラム35万行適用 - 日刊工業新聞ニュース - テック&サイエンス 成果は、米デトロイトで16日から18日まで開かれる米国自動車技術会(SAE)国際学会で発表される。 この国際学会ってこれかな Technical Sessions - Attend - SAE Congress 2013- Events - SAE International プログラムのどこに載ってるのか見つけられなかったけど。

■_

抄訳だときちんと書いているのはいいんだけど LinkedInの快進撃を支えるソフトウェア開発の革新 « WIRED.jp

元記事のこの辺が抜けているのはちと残念な気も

The Software Revolution Behind LinkedIn's Gushing Profits | Wired Business | Wired.com

Shifting from feature-branch-based development to the new continuous deployment system required
halting all development for two months as LinkedIn trained staff, migrated old code, and built out
the automated tools it needed to make the new system work.

“It was a pretty big risk the business took,” says Scott, “to look at its engineering team and
say, ‘we’re going to completely change the way we do software… and somewhere in the middle of this
two-month process you’re going to run across a bridge and burn it behind you.”

LinkedIn is hardly the only company to use continuous deployment. Scott had experience with the system
from prior gigs, and other internet companies have embraced the practice as well, including
handcrafted-goods marketplace Etsy and Facebook. But LinkedIn’s big switch to continuous deployment
has been linked to very concrete and visible financial success, helping lend credence to the practice
and potentially helping to accelerate the delivery of software across the tech industry.

■_

Goのどのあたりがよいか

■_

■_

あれもこれも中途半端ー

2013年04月15日

■_

放送大学の教科書(らしきもの)を書店で見かけたのですが結構面白そうなものが 授業科目案内 | 放送大学

金曜日に買えなかった数学セミナーを購入。 毎月買ってるけど目当ての連載と特集くらいしか読んでないなあ。ぐすん。

■_

■_

Revisiting Value Types vs. Reference Types - All Your Base Are Belong To Us

Revisiting Value Types vs. Reference Types - All Your Base Are Belong To Us

Why do C#, the .NET Framework, and the CLR need value types and reference types? Why two categories
of types? Why the added complexity in training developers to understand why and when to use each type
of type?

There are many answers, but very few get to the crux of the matter. You could try to justify the need
for two types of types by looking at the semantic differences C# affords each.

■_

A Hard Case for Memory Safety - pcwalton

A Hard Case for Memory Safety - pcwalton

Quick quiz: In this C++ program, is the definition of munge guaranteed to be memory safe? (Assume that
the definition of increment_counter uses only modern C++ idioms and doesn’t do anything like
dereference an invalid pointer.)

#include <iostream>
#include <vector>

class foo {
public:
    std::vector<int> indices;
    int counter;

    foo() : indices(), counter(0) {
        indices.push_back(1);
        indices.push_back(2);
        indices.push_back(3);
    }

    void increment_counter();

    int &get_first_index() {
        assert(indices.size() > 0);
        return indices[0];
    }

    void munge() {
        int &first = get_first_index();
        increment_counter();
        std::cout << first << std::endl;
        first = 20;
    }
};

int main() {
    foo foo;
    foo.munge();
    return 0;
}

解答は元記事の続きにあるよ!

■_

都立中央図書館に数日通い詰めたい…

2013年04月14日

■_

「~でないのは先進国では日本だけ」みたいな主張を見かけたときに とりあえず「裏の意味」がないか考えるようになったのはスレたってことなんだろうか。

年々歳々花相以 歳々年々人不同

部屋の掃除してたら君主論がでてきた。 そっか、買ってたんだな、これ。
君主論 (講談社学術文庫)
君主論 (講談社学術文庫)

■_

alias rm='rm -i'しても何の解決にもならない - jarp,

新人の頃、こういう理由があるからこのエイリアス使っちゃダメと言われた覚えがあるんだけど (ebanさんが指摘しているのではなく)、どんなんだったけか。

■_

Stephen Ball » Delphi education training and events in South Africa. Embarcadero (Delphi) Employee Writes On Blog That Delphi Is Better Than Python For Learning To Program Because Delphi Has a Compiler : Python エンバカデロのとある blog で

Stephen Ball » Delphi education training and events in South Africa.

Embarcadero is working hard to support Delphi in education in South Africa (as well as else where).
Earlier this year, Computer Science and ICT in South Africa got a boost when Embarcadero engaged with
schools and academic institutions to get access to the programming tools they need to deliver the
curriculum.

We have had a lot of support from a number of people in terms of making this possible, but someone we
have been working closely with for a while is Bertie Buitendag, Lecturer in the Department of Computer
Science, Faculty of ICT at TUT university. This week Bertie has been running some well attended teacher
training based on the CAPS IT for Grade 11 students.

One of the key reasons teachers in South Africa continue to use Delphi, and are moving back to Delphi
Programming again is that they want to make computer sciences enjoyable, simple and fun. Delphi really
helps this in a number of ways; including having a friendly easy to read language, full object
orientated notations, but most importantly by having a compiler!

The benefit of having a compiler is key in encouraging students to take up and stick with programming.
Without a compiler it is hard for students to understand where errors are being made. Sounds a small
thing, but makes a massive difference and has a huge impact on writing code where you can quickly see
where there are errors and help address them. If you compare that to Python or Java Script, your soon
understand what a benefit a proper compiler brings.

If you compare that to Python or Java Script, your soon understand what a benefit a proper compiler brings. とか書いちゃったものだから

Embarcadero (Delphi) Employee Writes On Blog That Delphi Is Better Than Python For Learning To Program Because Delphi Has a Compiler : Python

I wish I had the Python command line interpreter back when I was learning to program using Visual Basic
and Java. That would have made learning to program so much easier. Being able to type in "a = 2"
and manipulate the variable right away helps a lot. Hell, I still use it all the time to test little things.


This was the same point I made in a comment I posted awaiting approval... an interpreter is so much
more immediate than a write-compile-link-run cycle. You also need to use a debugger to really find
out what's going on sometimes when being able to just access a value from a command prompt would be
so much easier.


Exactly.

A language that can be ran and breakpointed entirely with an interpreter allows much easier debugging
than one that doesn't.

It sounds to me like his point was more "static typing allows errors to be found more quickly,"
which is only indirectly related to compilation.


Holy shit, people still use Delphi?

That shocked me much more than the claim he's making.

There is a reason that Borland made C / C++ IDEs aside of their Delphi products. I actually know one
company who uses Delphi, but doesn't disclose the languages they use (which is total nonsense..). I
think this may be a common habit in companies which were based on the Wirth-Languages.


About 90% of the schools in Germany teach programming via Delphi. It sucks. A lot.

■_

GPLは相変わらずこういう嫌われ方してますね。と。

■_ R 3.0.0

Windows用のバイナリがあがってたんですが、 32ビット用と64ビット用が一つのインストールパッケージにまとまってるんですね

The Comprehensive R Archive Network

2.27 Can I use R on 64-bit Windows?

The 32-bit build of R for Windows will run on both 32-bit and 64-bit2 versions of Windows. 64-bit
versions of Windows run 32-bit executables under the WOW (Windows on Windows) subsystem: they run in
almost exactly the same way as on a 32-bit version of Windows, except that the address limit for the
R process is 4GB (rather than 2GB or perhaps 3GB).

When R is installed on 64-bit Windows there is the option of installing 32- and/or 64-bit builds: the
default is to install both. If you are using the 32-bit build, replace ‘x64’ by ‘i386’ in the
examples in this FAQ.


■_

■_

午後にちょっとだけ隙間時間ができたので、そこに無理矢理 2199鑑賞をねじ込み。 いやーなんとか席取れるもんですなw 色々ネタバレつきで書きたいけど自重。 宇宙戦艦ヤマト2199 5 [Blu-ray]
宇宙戦艦ヤマト2199 5 [Blu-ray]

2013年04月13日

■_

HP Calculator Software 15c のiPhone版を買おうとしたら日本からは買えませんとか蹴られた○| ̄|_

契約書ってのは色々面倒くさいことが書いてありますな。

■_ -a

そいやこれも Perl を経由して入ってきた機能すな >auto split

■_ Ada 2012

Dr, Dobb's の記事に対して Ada 2012: Ada With Contracts -- Dr Dobb's : programming

Ada 2012: Ada With Contracts -- Dr Dobb's : programming

It seems so awesome, I wish I had a project idea to start working with it.


It is awesome for what it is designed for, which is low-level realtime and embedded programming.
Generally, if you consider C or C++ for a project, you should consider Ada as well, especially if
there is threads involved or reliability is important.

If you otherwise would consider Python or Ruby, then don't think about it.


This looks like run-time checking. Can't much of this be done in many languages without changing the language?


Ada is the best programming language.

I think it's a good programming language (from the few weeks of personal study I did on it; I've
never worked on a large Ada program), with many interesting features. It seems to me that certain
types of programs would be rather cumbersome to write in Ada. Anything with lots of arbitrary-length
string manipulation, for example (which covers rather a large swath of the programming landscape!).
Also, it doesn't seem generally well-suited to rapid protoyping --- though the type system would
certainly give a sense of reassurance during prototyping, there's often lots of finger-typing and
boilerplate necessary to get some basic things done.

Why do you think it's the best? Does it fit well with the kinds of programming that you do?


I agree that Ada isn't great for rapid prototyping, but I would say that it's better than C for rapid engineering.

As for string handling, the examples you find in non-Ada textbooks focus on the novelty of the type
system and use the language defined string, but ignore the functionality of other built in APIs such
as "Ada.Strings.Unbounded".

Ada actually has three standard defined ways of dealing with strings:

    The standard string type, which many basic examples use. Each string is created with one specific size.

    The type "Ada.Strings.Bounded.Bounded_String" where each string string is treated as variable length, but is represented by a fixed size buffer.

    The type "Ada.Strings.Unbounded" which automatically handles re-allocation and freeing of memory for arbitrary length strings.

Of course, many of the people that have created examples for Ada are in industries that use the
language for time-critical applications and have strict limits on dynamic memory management.

ちょっと使ってみたくはある

■_

さっき見たらほぼ全部あげられたらしい。 次回が最後。 News - Strange Loop

News - Strange Loop

8-Apr-2013 	Angular JS - HTML redesigned for web apps 	Misko Hevery
8-Apr-2013 	Wolfram's data analysis platform 	Taliesin Beynon
8-Apr-2013 	Programming by Voice: becoming a computer whisperer. 	Tavis Rudd
15-Apr-2013 	Getting Physical: Networked Hardware with Node.js 	Ted Hayes
15-Apr-2013 	Numeric Programming in Scala with Spire 	Tom Switzer, Erik Osheim
15-Apr-2013 	A Whole New World 	Gary Bernhardt

でも4/8分の Wolfram's ~のところリンクがないなあ

■_

なんだろこれ

■_

2013年04月12日

■_

この土日は出かけられない模様。 積ん読解消に努力すっかなあ。できる範囲で。 2199はいつ観に行けるだろう…

■_

■_

なんて読むんだろう>返戻値。 って「戻」の音読みが「れい」だから「へんれいち」か。 実際IMEの辞書に「返戻」が「へんれい」で登録されてたし(ATOK)

2013年04月11日

■_

あら表紙は原著と一緒なのね O'Reilly Japan - テスト駆動開発による組み込みプログラミング

欲しい O'Reilly Japan - オライリー・ジャパン2013年春のブックフェア、ただいま参加店募集中 - Information from O'Reilly Japan さて今回提供する特製グッズですが、書籍のカバーをモチーフにしたオリジナル付箋紙です。『JavaScript 第6版』『リーダブルコード』『カンフーマック』という昨年発売の書籍から3タイトルを選びました。 三ついっぺんにくれるところはないだろうなあ。 三冊買うのあるかなあ…そもそもお金(ry

■_

■_

x86/x64 勉強会で、アセンブリ言語とか特定のCPU限定のテクニック披露会とかやったら 面白いかなあとは思った。 そういうのを「持ってる」人多そうだったしw

■_

あー余裕ナッシング。

あ、いけがみさんだ(ストーカーかわしは) haskell-ja > Archives > 2013/04/11


一つ前へ 2013年4月(上旬)
一つ後へ 2013年4月(下旬)

ホームへ


リンクはご自由にどうぞ

メールの宛先はこちらkbk AT kt DOT rim DOT or DOT jp