Shibuya.pm #16 「夏の正規表現祭り」で、正規表現のお話をさせていただきました。 まぁ、「電話番号にマッチする正規表現」とか「郵便番号にマッチする正規表現」とかよく書かれてるけど、「どれもこれも手緩いよね」って話。 あ、だいぶはしょったかな。 とりあえずスライドに書いたので、発表をご覧になってない方はスライドからご覧ください。 ふと見返すと、このブログで電話番号の正規表現を公表するのは 3 度目ですが、あれからだいぶ経ってますね。 今ではもっと厳密な正規表現を作っています。 そして、Number::Phone::JP に続き、Number::ZipCode::JP という酔狂なモジュールが公開された記念で、郵便番号にマッチする正規表現を今回初めて公開しますが、そもそもここまで厳密な正規表現が公開されること自体、本邦初公開ってヤツでしょう。 Shibuya.pm でも言いましたが
プログラミングを知り合いなどに教えるときに使ってるツール類。 前提だけども、こういったツール類をすぐに使いこなせるぐらいコンピュータ、インターネットに慣れてる人であること。 リモートじゃない場合はどうやって教えてるか 直接画面を見せながらプログラムを入力して、動かして説明してる。ファイルを渡すときはUSBメモリで渡す。 つまりこれらを各種ツールを使ってインターネットごしに同様にできるようにする。 繋ぐ(場所の問題の解決) まずは横にいる状態、つまりネットワーク的に同じ空間にいる状態を作らないと各種ツールを使うのに不便です。 グローバルIPで片方に繋がる環境があれば必要なかったりするかもしれないけど、必要であればVPNやSSHなどでトンネル掘るなりして、LAN環境を作ります。 VPN 手軽に使いたいならHamachiなどのP2Pでつなげるもの、しっかりやるならOpenVPNといったところか。
正しく意味を理解している方にとっては、まったく常識レベルの話であり、何をいまさらと思われる方々も多いかと思いますが、大規模案件のレガシーコードなど、私が仕事で見かけるJavaのコードを読むと、「このコードを書いたSEやPGの方々は、はたして継承の意味を正しく理解していないのではないか」と思われる設計のコードに出会うことが少なからずあります。現在では改良されましたが(Javaプログラミング能力認定試験の問題がかなり改善されていました - 達人プログラマーを目指して)、以前のJavaプログラム認定試験の問題は、そうした不適切な設計がされている典型的な例となっていたのですが、実際、SI業界ではあのような品質のコードのシステムが今でも現役で多数稼動しているというだけでなく、現在でも新たに生み出されているというのは残念ながら紛れもない事実のようなのです。 確かに新人研修で「哺乳類を継承して犬クラスと
イベントの定義を事前に理解する 大きく分けて、イベントには2つのタイプがあると感じています。この2つのタイプを理解して、十分な準備をしてイベントにのぞみましょう。 講師から講義を受けて、知識を “教えてもらう” スタイル 特定のテーマに沿って、ディスカッションや手を動かして “学びあう” スタイル 告知ページやメーリングリスト、Twitterなどで雰囲気はつかめます。過去の開催情報も公開している勉強会も多いので、それを確認するのが一番確実でしょう。 教えもらうスタイル 「○○入門」といった感じの勉強会が多いタイプです。何も知らないところから、色々と手ほどきを受けて、使い始めてみるきっかけをつかむタイプの勉強会です。ですが、限られた時間で、限られたことをするので、体系的に知識を得られるケースはまれです。 よって、講義を受けたからといって満足してしまってはいけません。実際に自分で手を動かして、
ASCII Booksのサイトをご利用いただき、ありがとうございます。 2016年12月6日をもちまして、サイトを閉鎖させていただくことになりました。 今までサイトをご利用いただき、ありがとうございました。 アスキー・メディアワークスを引き続き、よろしくお願いいたします。
以前、図らずも注目を集めてしまった人材獲得の件からおよそ1年経ちました。 そこで、再び募集をかけてみようと思います。今回は転職サイトは使わずにここで告知します。 【募集要項】 ●これは1次試験です。合格者には次のステップの案内を送ります。(2次試験以降は非公開で行います) ●待遇はその人の実力次第ですが、年俸で500~1000万円の間になるでしょう。基本在宅勤務です。居住地不問。 ●仕事は相場に関わりのあるソフトウェアを作ること全般です。クライアントサイドはWindows(C#)/iOS/android, サーバサイドではJava/Rubyがターゲットになります。その中から、得意なもの・興味のあるものを担当してもらいます。 ●上記の言語/プラットフォームを知らないのは問題にしない(勉強すればいいだけなので)ですが、ソフトウェア作りに適度なプライドと熱意を持っていることは問題にします。(過剰
Tython とはhttps://github.com/gongo/Tython/tree/development 肉体言語 Tython は、Kinect センサーを用いて、体の動きを利用してプログラムを入力する言語、というかインターフェースというかフレームワークというか。 図にするとこんな感じです。 Kinect を介して動きを検知 (Detector) 検知した動きによって、入力するソースコードを決定 (InputMethod) ソースコードを入力し終わったら、コンパイル (Compile) コンパイルしてできた命令列を実行 (VM) デモ 「Hello, World!」Tython を使って Hello, World! を出力してみました。 Hello, World! 出力まで 4分強 一回で成功しなかった 最終的に成功するまでの時間は 90分 一度でも文字入力失敗すると最初から
[Webサービス] Pythonプログラミングを2時間で学べる43個のチュートリアル動画。 最終更新日: 2012/03/19 Python はじめにプログラミングが楽しくなってきました。([Programming] 猫とRubyを始めました 基礎文法まとめ | Last Day. jp) Youtubeには沢山の動画がアップロードされているのは皆さんご存知だと思いますが、今の時代プログラミングもYoutubeで学べてしまうんです。 今日紹介するのはPythonというプログラミング言語のYoutubeチュートリアル動画です。 初心者向けです。動画は英語ですが、スクリーンキャストを見ながらなのでわかりやすいです。 Python チュートリアルPython Programming Tutorial – 1 – Installing Python Pythonをインストールする所から教えてくれま
SourceKitはGoogle Chrome内で動作するテキストエディタ。Dropbox APIを使っている。 SourceKitはGoogle Chrome向けのフリーウェア(ソースコードは公開されている)。なかなかWebアプリケーション化しないものの筆頭として考えられてきたのがテキストエディタだ。特にプログラマ向けのエディタになると手になじんでいるかどうかの問題が大きく、なかなか本格化しなかった。 まさにエディタ 確かにWebベースで開発するということに大きなメリットは感じられなかったのは確かだ。だがSourceKitを見たら、その考えが変わってしまいそうだ。 SourceKitはGoogle Chromeの機能拡張として提供される。左側にファイルツリー、右側に編集画面が表示される。開発者向きに各言語向けのハイライトに対応している。さらにテーマも幾つも用意されており自分好みの配色を選
Task Queue Sortは, Google App Engineの並列処理の仕組みTaskQueueを使ってソート処理を行う,クラウド時代の新しいソートアルゴリズムです. (クラウドソートとも言う) ネタ元 http://d.hatena.ne.jp/gfx/20110519/1305810786 http://www.yuyak.com/1339 http://togetter.com/li/137698 重要な仕様 ソートした結果のソート順は保証されない. たまにソート対象の要素が増える事がある. Java(slim3)での実装例 TaskQueueを投げる側 public class IndexController extends Controller { @Override public Navigation run() throws Exception { addToQue
2008年02月04日07:00 カテゴリLightweight Languages λ Calculus - まずは遅延評価から うーん、まずY Combinatorというのはおじさんたちが悪かったかな。ギター習いたてでいきなりFの音を出すようなもんだから。 Haskell のリストと遅延評価が少し分かった - IT戦記 Y コンビネータって何? - IT戦記 まずは、遅延評価についてきちんとおさらいしておこう。 慌てるな、ループは急に止まらない まずは、以下の式を考えてみる。 (function(a, b, c){ return a ? b : c; })(true, 1, 1+1); 実行してみると、1となるはずだ。しかしここで重要なのはこのことじゃない。後ろの1+1が実行されるかだ。このことはどうやって確認したらよいだろうか。以下のようにしてみればいいはずだ。 var ELSE =
The contents you are looking for have moved. You will be redirected to the new location automatically.
The document discusses C++ and its history and features. It describes C++ as an extension of C with object-oriented features like classes. It provides information on the creator of C++, Bjarne Stroustrup, and the evolution of C++ since its introduction as a way to add object-oriented programming to C. It also includes sample C++ code demonstrating the use of arrays and includes from the Boost libr
Pythonなら短く書ける。スリ〜プソ〜トはネタとして面白いが実用性は皆無。 だけど、multiprocessingはガチで実用的なモジュール。(Python2.6以降の標準ライブラリ) #!/usr/bin/env python from time import sleep from multiprocessing import Pool from random import randint num = 20 def sleep_sort(n): sleep(n) print(n) Pool(num).map( sleep_sort, [randint(1, num) for i in xrange(num)] ) Pool#mapの返り値はそれぞれの実行結果のリストなんだけど、sleep sortでは役に立たないので割愛 常識を覆すソートアルゴリズム!その名も"sleep sort"!
TwitterのTLで知ったのだが、少し前に海外の掲示板で"sleep sort"というソートアルゴリズムが発明され、公開されたようだ。このアルゴリズムが面白かったので紹介してみる。 Genius sorting algorithm: Sleep sort 1 Name: Anonymous : 2011-01-20 12:22 諸君!オレは天才かもしれない。このソートアルゴリズムをみてくれ。こいつをどう思う? #!/bin/bash function f() { sleep "$1" echo "$1" } while [ -n "$1" ] do f "$1" & shift done wait example usage: ./sleepsort.bash 5 3 6 3 6 3 1 4 7 2 Name: Anonymous : 2011-01-20 12:27 >>1 なん…だと
作者ホームページサービス(hp.vector)は終了いたしました。 長らくのご利用、ありがとうございます。 ご不明な点があれば、お問い合わせページをご覧の上、お問い合わせください。 ※15秒後にトップページに戻ります。 (c) Vector HOLDINGS Inc.All Rights Reserved.
About Project Euler What is Project Euler? Project Euler is a series of challenging mathematical/computer programming problems that will require more than just mathematical insights to solve. Although mathematics will help you arrive at elegant and efficient methods, the use of a computer and programming skills will be required to solve most problems. The motivation for starting Project Euler, and
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く