この一か月分の学習成果を整理したリポジトリを作ったので、その成果についてまとめておく。 作ったサンプルプロジェクトだけを手軽に欲しければ、このリポジトリを clone してほしい。 taichi/js-boilerplate master ブランチには、ミニマムな JavaScript 開発環境がサンプルコード付きで入っている frontend ブランチには、React/Redux/webpackなウェブアプリケーション用の開発環境が入っている デフォルトブランチにしてある electron ブランチには、frontend ブランチの内容に加えてElectronでアプリケーションを開発するための環境が入っている はじめに 最近の JavaScript について 僕は仕事として JavaScript を書いている訳ではないけども、この半年くらいの間にちょっとしたツールならいくつか作った。
JavaScriptは大変難しい言語です。Rubyの難易度を2、Cの難易度を5、C++の難易度を8にすると、JavaScriptの難易度は12ぐらいあると思います。このコーディングガイドはそんなJavaScriptの深みに嵌まらないようにするためのJavaScriptの書き方を規定したものです。初級者1のための物ですので、わかってやっている人に好きにやってください。 このコーディングガイドは絶対に従わなければならないものではありません。私は一切強制はしませんし、初級者が従わなければならないという義務もありません。採用するしないはみなさんの自由です。 禁止編 JavaScriptには安易に使用してはいけない機能があります。下記の機能は、**それぞれの機能を使っても良い、または、使うべきであるという理由を説明できない限り、**使用してはいけません。 ==、!= ==と!=を使用してはいけません
はじめに 第2作目のプログラム。このまま練習用に書いたプログラムを公開し続ければ、100作目に到達する頃はかなり上達しているのでは。というわけで、これはまだまだ改善の余地があるが、とりあえず公開する。失敗や恥を恐れずアウトプットすることが大事(と自分に言い聞かせる)。尚、あくまでプログラミングの練習なのでデザインはほぼ意識していない。CSSも今回はあまりに雑なので載せない。 仕様 シンプルな電話帳。名前、電話番号、アドレス、メモが登録できる。 登録した情報をFirst Nameから検索し、該当情報を表示する。 コード <h1>Contact Book</h1> <div class="container"> <h2>Entry</h2> <form name="contactBook"> <p>No.<span id="bookId">-</span></p> <p>First Name:
はじめに 僕はプログラミングの初心者である。これまでHTML, CSS, wordpressで騙し騙しやってきたが、思うところあって、プログラミングの勉強を始めた。そして、これはそんな僕がJavaScriptを使って初めて書いたプログラム。だいたい勉強を始めて一ケ月ぐらい。もっと綺麗に書けるのだろうが、初めてならこんなものだろうと思い、ひとまず公開することにする。 仕様 21点を超えずに、21点により近い方が勝ち。同じ点数はドロー。 絵札(表示はマーク + 数字)は全て10点。Aは本来であれば、11点にも1点にもなれるが、本プログラムではAを引いた時点で11点を足しても21点を超えない場合は11点に、超える場合は1となる。それ以降で点数を変えることはできない(*改善したい)。 ブラックジャック(Aと10点のカードの2枚で21点を作れば、他の組み合わせの21点よりも強い)はない。5枚以上で2
「そのコメントわかりづらいんだよ!」なんて上司や同僚に叱られちゃった人へ。コメントがなくてもわかりやすいJavaScriptを書くテクニックです。コメントを書かなくていい、ということではないので、あしからず。 本記事はTim Severien、Mark Brownが査読を担当しています。最高のコンテンツに仕上げるために尽力してくれたSitePointの査読担当者のみなさんに感謝します。 完全に場違いで無意味なコードのコメントを書くのはつまらないと思いませんか? 一番ありがちな間違いの例は、いくつかのコードを変更したあと、コメントの削除や更新を忘れてしまうことです。悪いコメントがあるからと言ってコードそのものは壊れませんが、デバッグ時にどうなるかを想像してください。そのコメントが読まれるとします。そこには何かが書いてあるわけですが、コードはまったく別のことを実行します。おそらく、コメントとコ
近年、JavaScriptでコードを書こうとすると、お膳立て7割、コード書き3割みたいな事態がざらにあります。「お膳立て」の例としては、Gulp, Babel, Sass, PostCSS, WebPack, Rollup, Browserifyほか数限りなく。 たしかに、一旦フロントエンド開発に慣れてしまえば、お膳立てにかける時間は短縮することが可能です。でも、これを初学者に強いるのはツラすぎる...! 覚える方はともかく、 教える側がツライ。 今回、未来なJavaScriptやCSSの文法で書いても、よしなにとりなしてくれるWebサーバ「Felt」を作ったので、ご査収ください。 (2016/7/19 関連ツールとの比較を追記しました) GitHub: https://github.com/cognitom/felt npm: https://www.npmjs.com/package/
どうも、まさとらん(@0310lan)です。 今回は、面倒な登録手続きやトークンなどが一切不要で、今すぐ利用できる便利な「Web API」を厳選してご紹介しようと思います。 これらのAPIを使うことで、Web制作がちょっと便利になったり、独自性のあるユニークなサービスを構築できるようになるでしょう。 また、簡単に扱えることから、「Web APIを使って何か作ってみたい…」と思っている初心者の方にもオススメですよ! ■「Web API」の使い方! 今回ご紹介する「API」は、いずれも「JSONP」形式でデータが取得できるので、普通のJavaScriptだけで試すことが出来ます。 以下のコードを、HTMLファイルに記述するか、新規にJSファイルを作って読み込むようにしましょう。 var script = document.createElement('script'); script.src
数日前に、Vue.js 2.0 が発表された ( Announcing Vue.js 2.0 – The Vue Point – Medium )。Server Side Renderingに対応するそうなので、pre-alphaではあるけれど、単純なサンプルを動かしつつ、軽くコードリーディングした。対象のVue.jsはこの記事を書いた時の最新のnextブランチ( fix eslint again · vuejs/vue@014ac35 · GitHub ) 2.0のポイント 内部で GitHub - snabbdom/snabbdom: A virtual DOM library with focus on simplicity, modularity, powerful features and performance. ベースのVirtual DOMを持つようになり、パフォーマンスが
ハードマージンSVM SVMはパターン認識手法の一種です。 ハードマージンSVMはその中でも一番基本となるものです。 ソフトマージンSVM 上のハードマージンSVMリンクではJavascriptで実装した簡単なデモができます。 そのデモでいろいろいじってみると分かりますが、線形分離不可能(直線では分けられない場合)にはうまく行きません。 それを解決するのがソフトマージンSVMです。 カーネルトリック ソフトマージンで線形分離不可能な場合でも、分離超平面を決定することができますが、 所詮線形分離なので、性能には限界があります。 カーネルトリックはその限界を取り払い、SVMが注目されるきっかけを作った手法です。 参考 Wikipedia:Support vector machine わかんなかったら取り合えずここをみちゃうよね 小野田 崇 「サポートベクタマシンの概要」 Support Vec
一変数の最適化問題 「最急降下法」とは関数の最小値(または最大値)を求める手法です。 単純で計算量が少ないのでよく使われる方法です。 最適化したい関数を目的関数と呼びます。 これをとしましょう。 これを最小化を考えます。最大化したい場合はの最小化をすればいいだけです。 今、が適当な値としましょう。 最急降下法ではを次のように更新します。 ここで、αは小さな正の定数です。これを繰り返すことで最小値に近づいていきます。 αがあまり大きすぎると最小値を行き過ぎ、小さすぎるとなかなか収束しません。 また、極小値があるとそこに収束してしまう場合があるのが問題です。 証明 授業でこんな感じで習ったような、という覚え書き。 僕の解釈も含まれているので、間違っているかも。 変数xがtの関数であり、とします。 このとき、目的関数fをtについて微分してみましょう。 となります。ここでαを正の定数とし、が を満
ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog はじめに はじめまして、安藤義裕と申します。ヤフー株式会社データ&サイエンスソリューション統括本部ソリューション本部でプログラマーをしております。趣味はカミさんの手料理です。 機械学習で用いられるアルゴリズムの一つにニューラルネットワークがあります。ニューラルネットワークは脳細胞の働きにヒントを得て考えられたものです。今回扱う多層ニューラルネットワークはニューラルネットワークの中間層と呼ばれる部分を多層化したものです。近年話題に上ることの多い Deep Learning ではこの多層ニューラルネットワークが利用されています。 多層ニューラルネットワークは用途に応じて異なるネットワークが利用されます。画像処理では畳込みニューラルネッ
ブラウザでバイナリを扱うのが辛すぎて、何とかしたいと作りこんでいた冶具(HexDump.js) がだんだん極まってきたの図。 ただの Hex Dump 機能として作ってたハズが、気がついたらこんな感じに。 冶具: 作業の効率を改善するために自分でクリエイトする道具 HexDump(source, { style: { "packet_start_code_prefix(00 00 01)": { values: [0x00, 0x00, 0x01], css: "font-weight:bold;color:green" }, "stream_id(1 byte)": { begin: 3, end: 4, css: "font-weight:bold;color:blue" }, "PES_packet_length(2 byte)": { begin: 4, end: 6, css:
今年、クックパッドでは夏のインターンと題して20名弱のインターンを受け入れました。 このインターンは前半と後半に大きく分かれており、 後半が社員に混じって業務をするいわゆる普通のインターンで、 前半は7日間にわたってプログラミング関連の講義を受けるという仕組みです。 わたし(青木)はその前半の過程において、「プログラミングパラダイム」という 1 日の講義を担当し、 JavaScriptの処理系を書くという、ツッコミどころの多い課題を実施しました。 本稿では、その講義を開発する際に考慮したこと、特に難易度調整についてお話しします。 また講義のために開発したJavaScript処理系「JetSpider」についても軽くふれます。 ▼講義資料 Cookpad Summer Intern 2015 - Programming Paradigm from Minero Aoki JetSpiderコ
全国5000人のエンジニアをやめて寿司職人になろうと思っているみなさんこんばんは。 前回までスライド共有用のアプリケーションを趣味(リハビリ)で作っていたのですが、折角なのでデスクトップクライアントも作ってみました。 構築にはElectronを使ったのですが、結構簡単にできたので記録としてまとめておきます。 Electronって何?GitHubが開発するクロスプラットフォームで動作するアプリケーションを開発するためのフレームワーク。コードの記述はHTML5とNode.js。その範囲であれば既存のWeb開発技術が使いまわせる。例えばjQueryとかAngularなんかを使うのも可能Chromeブラウザのオープンソース版のChroniumのエンジンを内蔵例えばAtom・Visual Studio Code・Slackクライアントや、日本だとKobitoあたりがメジャー作り方あちこちに記事があが
クラスタリングの定番アルゴリズム K-means 法(K平均法)の動作原理を理解するために、D3.js を使って可視化してみました。 図をクリックするか [ステップ] ボタンを押すと、1ステップずつ処理を行います [最初から] ボタンを押すと、最初の状態に戻ります [新規作成] ボタンを押すと、N (ノード数) と K (クラスタ数) の値で新しく初期化します 古いブラウザーではうまく表示できない可能性があります (IE 10、Firefox 25、Chrome 30 で動作確認しています) K-Means 法とは 英語版 Wikipedia の k-means clustering - Wikipedia, the free encyclopedia の手順に沿って実装しています。 英語版の手順をザックリと書くとこんなイメージになります。 初期化: N 個のノード (丸印) と K 個の
This webpage was generated by the domain owner using Sedo Domain Parking. Disclaimer: Sedo maintains no relationship with third party advertisers. Reference to any specific service or trade mark is not controlled by Sedo nor does it constitute or imply its association, endorsement or recommendation.
問題 今年も弊社に新卒採用で入社された方が何名かいます。 採用情報ページに記載されているように、 弊社ではメンター制度が設けられており、 誰かしら指導役の社員が面倒を見たり見なかったりします。 ただ指導するにはまず相手の力量を測る必要があります。 技術者として採用された方を相手にするなら、 適当な課題を与えて、それに対して作り上げたモノを見るのが一番手っ取り早いです。 と言う訳で「適当な課題」として今回は「オセロを実装する」ことにしました。 しかしこれだけではテキトー過ぎるので、以下のように段階を設定しました: 1. 黒も白も人間が指す一人二役の寂しいオセロを実装する。 盤面のサイズは4×4とする。外観やUIは凝らなくてよい。実装はJavaScriptで行い、Webブラウザで遊べるものにする。 2. 仮AIを実装する。このAIの手筋は以下の通り: 取り得る手のうち最も上の行に石を置ける手を
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く