The Qiita Advent Calendar 2017 is supported by the following companies, organizations, and services.
![ひとりでCPUとエミュレータとコンパイラを作るのカレンダー | Advent Calendar 2017 - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/091ee0745e55e3824e66d171b31ea23be19ec3d0/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Fadvent_calendar%252Fogp%252Fcalendar-ogp-background-c24e7570f8dc39b6f4e1323cbd83d11f.jpg%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark-x%3D142%26mark-y%3D128%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZ0eHQtY29sb3I9JTIzRkZGRkZGJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTU2JnR4dD0lRTMlODElQjIlRTMlODElQTglRTMlODIlOEElRTMlODElQTdDUFUlRTMlODElQTglRTMlODIlQTglRTMlODMlOUYlRTMlODMlQTUlRTMlODMlQUMlRTMlODMlQkMlRTMlODIlQkYlRTMlODElQTglRTMlODIlQjMlRTMlODMlQjMlRTMlODMlOTElRTMlODIlQTQlRTMlODMlQTklRTMlODIlOTIlRTQlQkQlOUMlRTMlODIlOEIlMjBBZHZlbnQlMjBDYWxlbmRhciUyMDIwMTcmdz05MTYmcz00ZjMyMDU5NmM1YTcyZGY4MTdmM2NkNTBjMjVkMDc5ZQ%26blend-mode%3Dnormal%26blend-x%3D142%26blend-y%3D491%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZ0eHQtY29sb3I9JTIzRkZGRkZGJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTM2JnR4dD0lNDBrYWl0b3Vfcnlha3Umdz05MTYmcz0xMDFmNTkxN2RiNjljNzQ2ZDhkZjllZDBhNzFiNjZjOA%26s%3D8abd65e9c8fa9c5ea72cab2a9f60170d)
The Qiita Advent Calendar 2017 is supported by the following companies, organizations, and services.
今更MySQL5.7を扱うにあたって MySQL5.6とMySQL5.7のパラメータ差分をあらためて見直してたら、「show_compatibility_56」という、プロダクトのアーキ移行期間にありがちな「いかにも」な名前のパラメータがありまして。 これは何? 「SHOW [GLOBAL] STATUS」や「SHOW [GLOBAL] VARIABLES」という、とてもお世話になるコマンドがあり、その実、テーブルに格納されている値を表示していたわけで、テーブル*1があることから、SELECT文を使うことでSHOWコマンドよりもより柔軟な条件式などを使って参照ができたわけです。 そんなテーブルたち、MySQL5.6まではInformation_Schemaにあったのが、MySQL 5.7からはPerformance_schemaに移動するぞ、ってドキュメントに書いてあります。 その説明のた
概要 PHPプログラミングの世界では、ある一定のトレンドが「モダンPHP」として、一部の人によって (彼らの書籍やウェブサイト上で) 強烈に広められ、他のアプローチは、遅れていたり、愚かだったり、あるいは単に間違いだとみなされて、眉をひそめられています。 それらの人々は、彼らの物事のやり方を他人に追従させようと、飽くなき努力を続けているように見えます。 このウェブサイトは、PHP プログラミングに関する現実的な見解を示すために作られました。流行りのトレンド、理論、学問的な教示ではなく、経験と実践の帰着を書き記した視点です。 ウェブサイト PHP - The Wrong Way は生きたドキュメントですので、より多くの情報が明らかになるにしたがって更新され続けます。 お気軽にコントリビュートしてください。 翻訳 ドイツ語 英語 フランス語 日本語 インドネシア語 トルコ語 ペルシャ語 ポルト
「ユーザー目線」のシステムを目指して RDBが従来の階層型DBに比べて優れていた点はいくつか挙げることができますが、シェアを伸ばすうえで最も大きな影響は、ユーザーが使いやすいデータ構造とインタフェースにこだわったことです。すなわち、「テーブル」と「SQL」の発明です。 RDBでは、すべてのデータを「テーブル」というただ一つのデータ形式によって表現します。テーブルは、見た目が「二次元表」に似ているため*3、Microsoft ExcelやGoogle ドキュメントなどのスプレッドシートを使い慣れた人が見ると、データを格納する方法が直観的にイメージしやすいという利点があります。実際、こうした二次元表によるデータ管理は、Excelなどのソフトウェアが登場する前から一般的な方法だったため、RDBが登場した当時の人々にとっても受け入れやすいものでした。 テーブルが画期的だった点は、もう一つあります。
最近 Golang を使っています。開発中、私は go build と go test を繰り返し手入力で実行するのに慣れてしまいました。これはついついやってしまう、私の悪い癖でした。引数がないようなシンプルなコマンドであれば、それほど辛くありません。しかし、タスクが複雑になってくれば、当然苦痛になってきます。逃げ道となりえる選択肢はほとんどありません。bash スクリプトは、あなたの仕事の役に立つでしょう。しかし、私としては makefile が役に立つと言いたいです。make ツールはこういった理由から生まれたものであり、 makefile には普段行う作業をまとめておくことができるからです。私は make の教祖になって、うまい書き方を教えたりすることはできませんが、今回の記事では、私のプロジェクトでよく使っている makefile をまとめておきました。では、やってみましょう。 #
今日、マイクロソフト本社から来た David さんとお昼ご飯をしたときに教えてもらえた彼のプロダクトが凄かったので紹介したいと思います。 quicktype.io quicktype JSON をペーストするとシリアライズ・デシリアライズするためのコードを出力してくれるサービスです。 例えば、以下のような JSON があるとします。 { "name": "Kazuki Ota", "age": 36, "pets": [ { "name": "hoge" }, { "name": "foo" } ] } ページに張り付けるとこういうコードが生成されます。 // To parse this JSON data, add NuGet 'Newtonsoft.Json' then do: // // using Sample.Models; // // var data = Person.Fro
かつてJavaは技術の中心だった 私はSIerでシステム開発のアーキテクトやPMを担当しています。SIではまだまだJavaが主流ですが、文法を理解してコーディングできるだけでは活躍できない時代がすでにきていることを実感します。 私の上司が「技術の渦」という独特の表現を使って説明してくれたのですが、2000年から2006年ぐらいまではJavaを書くということは、いろいろな最新技術の実装を学べる時代でした。アプリケーションサーバー、XML、SOAP、MQ、CORBA、マルチスレッドなど、現代の評価としては芳しくないものも多いですが、そういった技術的チャレンジが多かったため、Javaエンジニアはあえて外に出ることもなく、ITの主要技術を学ぶことができていました。 時代の変化とそれへの追随 ただ、Web2.0やiPhone/Android登場以降、技術の渦はフロントエンドを経てアプリへと移ってきま
概要(お前は何を言っているんだ) コードレビューしていると、Java8のfeature(Stream APIとかOptionalとか)を使ってるんだけど、Java7以前と大差ない書き方をされているコードをよく見かける。 もっと皆にJava8っぽいコードを書いて欲しい。そうじゃないともったいない。 (*"Java8っぽい"の基準は割りと(かなり?)私見が入っている) 言葉を尽くしても伝わりづらいので、例を作ろう。 ← これ ついでに、「無理してJava8のfeature使うことで、逆に悪くなってしまっている例」も作ろう。 対象読者 Java8でコード書いてるけど、Java7以前の書き方が染み付いちゃっていてなかなか抜け出せない人 「forやnullチェックは絶対使うべきでない」という思いが強すぎて、何でもかんでもStream APIやOptional使ってる人 Notice この記事で書いて
はじめに 昨日のTwitterで書いたこちらが非常に反響を呼びました。 半年間かけたデータ解析の仕事が全くうまくいかなかった 今回の失敗は契約書に納品物を明記していなかったこと 機械学習の依頼は学習済みモデルのファイルを納品しただけでは、先方は検収できず、結果支払いを受けられない この教訓をひとりでも多くの人に知ってもらいたい — キカガク代表 吉崎亮介 (@yoshizaki_kkgk) 2017年11月20日 そうなんですよね。 全く先方が悪いわけでもなく、私自身が「機械学習のお仕事=解析」だと思いこんでいたことが失敗の始まり。 結局のところ、機械学習系のプロダクトを依頼されて、学習済みモデルを作成して即納品とはいかず、検証結果を示されないと検収できないよとなってしまうので、結局アプリケーション側まで組み込まないと納得感はないんですよね。 この検証とは、訓練データと検証データを分けた時
「俺は知らなかったんだ… そのターミナルが本番環境に接続していたなんて… 知っていたらrm -rf /なんて、流さなかった…」 想像しただけで前世に帰りたくなりますね。((((;゚Д゚))))ガクガクブルブル 上のは超極端な例ですが、ITエンジニアなら、SSHログイン先の環境を勘違いして危ない目にあったこと、一度や二度あると思います。 そんなSSHを普段使いしている全エンジニアに向けて、iTerm2を利用して、お手軽簡単にSSHログイン先別に、iTerm2のプロファイル(ターミナルの全体的な見た目)を切替える方法をお伝えいたします。 この記事により、全国で一つでも不幸な事故が減れば、筆者本望でございます。 __ (祭) ∧ ∧ Y ( ゚Д゚) Φ[_ソ__y_l〉 SSHダ ワッショイ |_|_| し'´J ほな、いってみよ。 この記事を読んだらできるようになること 冒頭のG
Windows10でファイルコピーを行った後、「やりなおし」コマンドである「Ctrl+z」を行うのは非常に危ない。有無を言わさずにコピー先のファイルが消えることとなるのだ。コピーした直後であれば元のファイルが残っているが、コピー後のファイルを編集した後などの状況では手痛いダメージを受けることとなる。 ネットでも、様々な“悲鳴”が上がっている。 ・ファイルコピーした後、中身を編集して保存しなおした後にCtrl+Zを押したらファイルが即座に消えた ・ファイルのリネームした後、やり直そうと思ってCtrl+zを押し過ぎたらファイルが消えた ・システムからの警告なし。Windows7だったら警告ダイアログが出てきたはず ・ゴミ箱にも入らず完全消滅 Windowsって、他のフォルダからコピーしてきたファイルを編集した後にエクスプローラー上でうっかりCtrl-Zとか押しちゃうと、警告もなしに編集したばか
Webサービス同士を連携できるサービス「IFTTT」。スマートスピーカーとWebサービスの連携も可能なことから最近注目が集まっている。IFTTTでサービス連携を作りながら、特徴や注意点などを解説しよう。 連載目次 IFTTTとは TwitterやFacebook、Gmail、Instagram、Evernote、Dropboxなど、数え上げたらキリがないほど、現在では実に多彩なWebサービスが提供されている。こうしたWebサービスは単体でも非常に便利な機能を提供しているのだが、複数のWebサービスが連携できれば、新しいWebサービスとしてさらに多くのことを実現できるだろう。ただ、Webサービスの連携には、多くの場合プログラミングが必須であり、実現するにはハードルが高いと思われがちだ。 しかし、こうしたWebサービスを連携させる「IFTTT(イフト:IF This Then That)」とい
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く