なにこれすごい。 Kiteはお使いのエディターやターミナルと連動するプログラミングサポートツールだ。 これを横でたちあげておくと「この命令はこういう意味だよ」「そこ間違ってるし」「サンプルコードはこちら」といったことを教えてくれるのだ。 秀逸なので自分が使っているツールをそのまま使える点だ。 まだリリース前だが、是非サイトのデモムービーを見てほしい。あなただけのプログラミングパートナー、というキャッチがとても素晴らしい。
![あなただけのプログラミングパートナー、『kite』がなんかすごい | 100SHIKI](https://cdn-ak-scissors.b.st-hatena.com/image/square/04fc446317e17090c92aace94cb7fd758814533d/height=288;version=1;width=512/http%3A%2F%2Fwww.100shiki.com%2Fdocs%2F201604%2F15_logo.png)
なにこれすごい。 Kiteはお使いのエディターやターミナルと連動するプログラミングサポートツールだ。 これを横でたちあげておくと「この命令はこういう意味だよ」「そこ間違ってるし」「サンプルコードはこちら」といったことを教えてくれるのだ。 秀逸なので自分が使っているツールをそのまま使える点だ。 まだリリース前だが、是非サイトのデモムービーを見てほしい。あなただけのプログラミングパートナー、というキャッチがとても素晴らしい。
あらすじ ソフトウェアの中の依存関係について 正規表現で抽出できることとその限界 コードの依存関係を抽出するツール rexdep を作りました ソフトウェアの構造を概観するには あなたは、大きなソフトウェアを目にした時、何をしますか? ファイルが何十、何百もある時、どこから読みますか? ソフトウェアが巨大になると、そのコードの構造を把握するのは難しくなります。 特にプロジェクトに入りたての人にとって巨大なコードベースを一目で理解することは難しく、細かなタスクをこなしていく中で徐々に「どこに何が書いてあるか」を理解していくしかありません。 ソフトウェアによってはモデルとコントローラ、データベースとビューと言った具合にコードが分かれており、これくらいの分類はディレクトリ名を見れば理解できるかもしれません。 しかしそのようなざっくりとしたコードの分類が分かったところで、ソフトウェアの構造を理解し
プログラマが知るべき97のこと大人気の書籍『プログラマが知るべき97のこと』のエッセイを無料で公開中!すべてのプログラマにおすすめの本がウェブで読めるようになりました。 エッセイ一覧分別のある行動関数型プログラミングを学ぶことの重要性ユーザが何をするかを観察する(あなたはユーザではない)コーディング規約を自動化する美はシンプルさに宿るリファクタリングの際に注意すべきこと共有は慎重にボーイスカウト・ルール他人よりまず自分を疑うツールの選択は慎重にドメインの言葉を使ったコードコードは設計であるコードレイアウトの重要性コードレビューコードの論理的検証コメントについてのコメントコードに書けないことのみをコメントにする学び続ける姿勢誰にとっての「利便性」かすばやくデプロイ、こまめにデプロイ技術的例外とビジネス例外を明確に区別する1万時間の訓練ドメイン特化言語変更を恐れない見られて恥ず
あの Dave Thomas が書いた『Programming Elixir』を買ったのでぼちぼち読んでいる。 Chapter 1. に Elixir の特徴を巧みに表現した文章があってカッとなったので、引用しておきたい。 Object orientation is not the only way to design code Functional Programming need not be complex or mathematical. The foundations of programming are not assignments, if statements, and loops. Concurrency does not need locks,semaphores, monitors, and the like. Processes are not necessaril
メソッド名などをネーミングする際に、知っておくと便利な、接頭辞と接尾辞をリストアップしてみました。どのように元の単語の意味が変わるかのルールを知っておくと、よく使う単語をベースにボキャブラリーを増やすことができるので、覚えておいて損はないと思います。 使う場合は、当たりを付けて実際の使用がないか、Googleなどで調べてみてください。 1. pre-, post- / 事前〜、事後〜 per-は、元の意味に “事前に、前に”、post-は “事後に”という意味が付け加わえます。汎用性が高いのでとても便利です。afterやbeforeの代替になるかもしれません。 // 事前テストする function testBefore(); ↓ function pretest(); // 事後処理する function executeAfter(); ↓ function postexecute();
元糞コードマイスターとしては、生産性については思うところある。 技術的到達深度が深い人じゃないとそもそもかけないコードってのももちろん存在して、その前提で10倍とか100倍になりうる話をする。 そもそもマイナスになる人がいるって話。 隠しパラメータをモデル化 エンジニアA:「週に10の成果を出して3の負債を生む人」を考える。この人は開発を止めてリファクタリングをすれば10-3 = 7の技術的負債を返却できるとする。 ここで正確には成果10には* aの係数が掛かっている。これはプロジェクト開始時1.0で、技術的負債が貯まるほど0に近づいて行く 次に、エンジニアB:「週に15の成果を出して10の負債を生む人」を考える(これにも係数aがかかる)。この人は見た目上は上の人の1.5倍速く成果を出しているように観測できるが、負債もたまりやすい。リファクタしても綺麗になりにくい。 これは割とエンジニアに
2020/10/18 エンジニア D4DJ Groovy Mix オープンベータ開始 2020/10/18 DJ 秋葉原(を夢見る)パラダイスレイディオ Vol.1 @ twitch配信 2020/10/25 エンジニア D4DJ Groovy Mix リリース 2020/11/14 DJ UNDER Freaks 2nd anniv. @ 渋谷Cafe W (渋谷WOMB 1F) ゲームプログラミング未経験の素人が、Unityを使って7日間1日1本クソゲーを作ってみて、気がついたことをまとめてみました。 ※2017/01/21 更新 VRでも7日間クソゲーを作り続けてみました! 【Unity】あの素人がOculusでVRクソゲーを7日間作り続けてみた | uinyan.com ※2013/12/28 更新 後日談も書きました!あわせてどうぞ! 【Unity】クソゲーを作って晒したら世界が
null をフラグとして使うのは、やめた方がいいと思います。 null は、ただ変数が初期化されていないことを表しているだけです。 この意味以外で、null を使わない方がいいと思います。 null をフラグとして使う 「null をフラグとして使う」というのは、「null なら xxxx」というように、null が何らかの意味を持って使われていることを指します。 例えば、下記のコードでは「null はゲストユーザを指すフラグ」として使われています。 /** * ユーザ用のヘッダを作る処理 */ public String createHeader(User user){ (…中略…) String name; if(user != null){ name = user.getName(); }else{ name = "Guest"; // null ならゲストユーザ } 問題点 これの
Instagramは日本のユーザーも多く、日常を切り取った写真がほとんどで、 またお洒落なものも混じっているのでたまに眺めると気持ちがホッコリしたりします。 特定のキーワードでInstagramの最新の写真を検索したい時があります。 例えば、みんなが今どんな「ご飯」を食べているのか、今日の「日の出」はどのような具合なのか、 がInstagramの写真を通して分かるかもしれません。 Instagramの写真検索サービスを探してみると、 Instagram自身が検索機能を提供してないので他の第三者が作ったサービスがいくつか出てきます。 使ってみたところ、もう少し自分で見た目やら機能を変えてみたいなーなんて思いました。 そこで、「Instagramの今の写真を検索できるサービス」といういわばWebサービスを作りたい欲求にかられます。 今回はこのようなちょっとした欲求から考えた「Webサービスのモ
はじめに 恐怖のエディタ、Vim。 僕はこの間までずっとサクラエディタを愛用していましたが、最近Vimを使うようになりました。 ええ、Vimです。あのVimです。Viでもいいけど。 Vim・・・使いこなしている人はそれだけで玄人っぽく見られる伝説のエディタ。 実際にVimを使えばすさまじいスピードのコーディングが可能になる。(らしい) しかしそんな憧れだけで手を出しても大半の技術者は全く手に負えず、すぐに尻尾を巻いて元のエディタに舞い戻ってしまう恐怖のエディタ。 それがVimである。 ・・・はい、僕の中でVimやViのイメージはそんな感じでした。 実際、Unix/Linuxマシンのターミナル上で何度か(いやいや)使ったことがありましたが、まあ扱いにくいのなんのって。 「カーソルは十字キーで動くけど、どうやって入力するの? 」 「えっ? "i"を押せ? 」 「入力が終わったらESC? なんで
Document Data Structure in MongoDB Express MongoDB lets you easily store structured and unstructured data in a flexible and dynamic database schema. It supports CRUD operations on complex data objects using JSON as the main data type. Its an open source solution so it may not be as robust or well supported as commercial management tools. However it is easy to deploy and works well for most use cas
最新バージョンはコチラです。 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詳しいインストール方法はホームページをご覧下さい。
ブラウザ上でC#やPHP5を動かせて遊んで学べる「CodeRun」が凄いです。 最初アプリケーションかなと思ったのですが、全てブラウザ上で動作するので、学習用やちょっとした動作確認に使えます。 ブラウザ上でコーディング 次のように、IDEアプリケーションのようなUIで、C#やPHP5.1を、ブラウザの上で動かすことが出来ます。 プロジェクト作成 New → Project を選ぶと、C#やJavaScript、PHPの色々なプロジェクトが作れることがわかります。 PHPのHellow World のソースが入ったコードがエディタに表示されました。このソースをいじって直接動かせます。 コードを動作テスト 次のようなコードを書いて「Run」ボタンを押してみます。 以下、出力例です。ちゃんと動きました。 c2d6c077f524683db2f00c0e975766810 1 2 3 4 5 6
情報処理10月号では、『特集 未来のコンピュータ好きを育てる』としてコンピュータに魅力を感じる人材を育成する試みを紹介している。とても面白い特集となっているので、送付されてきたまま袋から出さずに放置してある人は是非一読する事を薦めたい。 小中学校における情報科学教育は世界的に重要視されつつある。ACMのモデルカリキュラムでは、第8学年(中学2年生)までにコンピュータ操作、デジタル化、情報の表現、問題解決などを履修し、第9-10学年で、コンピュータの構成、アルゴリズム、抽象化、数学との関連などの情報科学を学ぶ事を提言している。 ところが、現在の日本の情報教育は文字入力やWeb情報探索など、コンピュータの利用法に関する教育に終始し、情報科学をはじめとする情報技術の原理・仕組みに関してはほとんど重要視されていない。一方、韓国の情報教育 ━初・中等学校情報通信技術(ICT)教育運営指針と改訂中・高
はじめに SinatraやRamazeといったRubyのWebアプケーションフレームワークに興味をお持ちの方であれば、Rackという名前をしばしば目にしているかもしれません。どうやら様々なフレームワークに使われているらしいのだけど、そいつが一体なんなのかよくわからない、そんなあなたのために今日はそのRackをご紹介したいと思います。 様々なフレームワーク、様々なアプリケーションサーバ しばらく前なら、Ruby on Railsブームの真っ只中、Rubyと言えばRails、Webアプリケーションを作るならRails、といったイメージを持たれていた方も多かったと思います。実際にWebアプリケーションを作ったり、Rubyに触れたりしたきっかけがRailsだったという方も多いでしょう。 しかし最近は、RubyのWebアプケーションフレームワークと一口に言っても、非常に簡単にアプリケーションが書けて
Ruby on Railsの最大の問題点は、それが持つ「一見そのフレームワークがMVCの形をとりながら、MVCの最も大切なところを外している『えせMVC』である」点にある RailsのえせMVC疑惑で盛り上がってますね。Railsが「えせMVCフレームワーク」ではないのは、みんな知っていると思うので、記事、コメントをみて勘違いしている人が多そうな部分に一言書いておきます。 まず、おかしいのはsatoshiさんのこの意見。 PhotoShareは主にRailsで作られているので、ModelはActiveRecordが担当しているわけだが、Modelのレイヤーが非常に薄いために(O/Rマッピングをしているだけ)、データベースの整合性の責任がController側にある。そのため、ちょっとした機能変更のたびにAPIレベルでのテストを大量に走らせなければならないし、それでもどうしてもミスが生じてし
「1000のアルゴリズムを持つ男」vs.「やわらか頭脳」:最強最速アルゴリズマー養成講座(1/3 ページ) 典型的なアルゴリズムをたくさん知っている人間が最強か――? いいえ、典型的なアルゴリズムを知らなくても、違ったアプローチで答えに迫る方法はいくらでも存在します。短い実行時間で正確な答えを導き出せるかを考える習慣をつけましょう。 アルゴリズマー養成講座と銘打ってスタートした本連載。もしかすると読者の方の興味は、はやりのアルゴリズムや汎用的なアルゴリズムを知ることにあるのかもしれません。しかし、今回は、いわゆる「典型的なアルゴリズム」を用いずに進めていきたいと思います。 なぜ典型的なアルゴリズムを用いないのか。それは、典型的なアルゴリズムばかりを先に覚え、それだけでTopCoderなどを戦っていこうとした場合、それに少しでもそぐわない問題が出た場合に、まったく太刀打ちできなくなってしまう
グーグルが新プログラミング言語「Noop」を公開しました。Noopは新旧のプログラミング言語からいいとこ取りをした、JavaVMで動作するプログラミング言語と説明されています。 Noopは、サン・マイクロシステムズで開催中の「JVM Language Summit」で、グーグルの2人のエンジニア、Alex Eagle氏とJérémie Lenfant-Engelmann氏によって発表されました。 すでにJVM Language Summitでの発表資料がPDFとして公開されており、その資料には、Noopのミッションが次のように説明されています。 Noop's mission Help teams develop software that is easier to understand and maintain. Noopのミッション 分かりやすくメンテナンスしやすいソフトウェアのチーム開
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く