投稿

11月 1, 2018の投稿を表示しています

ReactのPropTypesがundefinedの対処法

ReactのPropTypesがundefinedの対処法 : import React, {Component, PropTypes } from 'react'; のような書き方でエラーがでた。 解決方法 こちら バージョンアップで書き方が変わったようなので、以下のようにする import PropTypes from 'prop-types';

グレープシティ、kintone向けプラグイン2種を発売、複数アプリからのデータ集計が可能な「krewData」と、グラフやピボットテーブルによるデータ可視化を実現する「krewDashboard」

イメージ
グレープシティ、kintone向けプラグイン2種を発売、複数アプリからのデータ集計が可能な「krewData」と、グラフやピボットテーブルによるデータ可視化を実現する「krewDashboard」 :  グレープシティは、kintone向けプラグイン「krew(クルー)」の新ラインアップとして、複数アプリから簡単にデータを集計できる「krewData(クルーデータ)」と、多彩なグラフやピボットテーブルによってデータの可視化を実現する「krewDashboard(クルーダッシュボード)」を、11月1日に発売した。1サブドメインあたりのライセンス価格は月額12000円から。

コードレビューのレビューはマネージャーの仕事

イメージ
コードレビューのレビューはマネージャーの仕事 : 経営に関する名著「 High Output Management (邦題:ハイアウトプット・マネジメント(=高い成果を可能にするマネジメント))」の中でAndy Groveは、”トレーニング(訓練・教育)はマネージャーの仕事”であり、組織の成果を向上させるためにマネージャー(経営者・管理者)が実践できる最高のレバレッジ活動だと述べています。 多くの組織のマネージャーにとって、この言葉は現在においても参考にできる素晴らしいアドバイスでしょう。しかし、現代のソフトウェア開発チームのマネージャーに関して言うと、その中心となる考え方はシフトしています。 > エンジニアリングチームの成果向上にとっては、GitHubのプルリクエストなどで実行するコードレビューが、今では最大のレバレッジポイント(レバレッジの作用点)である。 品質管理以上の役割 従来、コードレビューのプロセスは品質管理のツールと見なされてきました。初期におけるその手法の実証的検証が重きを置いていたのは、圧倒的に不具合の防止という点です。 プルリクエストが主流になってから およそ10年になりますが、コードレビューはますますそのような形で進化し続けています。 コードの不具合発見に関して、コードレビュー(プルリクエストであれ他の手段であれ)は依然として作業対効果が大きい方法の1つと言えるでしょう。通常の”最優先”事項である品質(=コードの稼働性)の他、”二次的”な品質(=コードベースの保守性の不具合)の管理にも非常に適しています。 プルリクエストは、仲間同士で(マネージャーをトレーナー(指導者)として部分的に組み込みながら)互いに訓練する機会をチームに与えてくれる他、チーム文化が発展する主要な場にもなります。チームのメンバーが分散した状況にあるような時には特にその意味合いが強いでしょう。また、開発チームにとって、実質的な情報ラジエーターの役割も果たします。時間の経過とともに製品とコードベースがどのように変化しているかを知る最良の方法は、コードレビューの輪の中に入ることです。 > 優れたコードレビュープロセスを実践するチームは、コードベースもメンバーも改善する。劣悪なコードレビュープロセスを実践するチームは、良くてその場に立ち往生、普通であれ...

多倍長精度計算ライブラリ TsBigMath

多倍長精度計算ライブラリ TsBigMath : はじめに github : https://github.com/hopekb/TsBigMath TsBigMath は Typescript で実装した多倍長の数値を計算するためのライブラリです。 TsBigMath クラスは, 多倍長精度 Math 関数の static クラスです。 TsBigMath クラスの他, TsBigInt と TsBigFloat があり, 整数, 浮動小数が扱えます。 特徴 多倍長の整数, 浮動小数を計算するための標準的で static な Math 関数の実装, 簡単で簡潔な記述, 小さく短い実装, Typescript による実装, 依存関係なし, 用例 import { TsBigMath } from "ts-bigmath"; for (var i = 0; i < 4; i++) { TsBigMath.pr = 2 ** i; console.log(`pr = ${TsBigMath.pr}`); console.log(`eps = ${TsBigMath.eps.toStrE()}`); console.log(`pi = ${TsBigMath.pi.toString()}`); console.log(`pi/2 = ${TsBigMath.hpi.toString()}`); console.log(`e = ${TsBigMath.e.toString()}`); console.log(`exp(10) = ${TsBigMath.exp(10).toString()}`); console.log(`ln2 = ${TsBigMath.ln2.toString()}`); console.log(`ln3 = ${TsBigMath.ln3.toString()}`); console.log(`ln10 = ${TsBigMath.ln10.toString()}`); console.log(`pow(pi, 10) = ${TsBigMath.pow(TsBigMath.pi, 10).toString()}...

単純なjavascriptでページ毎に指定先へリダイレクトする

単純なjavascriptでページ毎に指定先へリダイレクトする : 背景 知人から、サイトURLの移転に伴いとあるサイトで全ページに共通なタグを埋め込んで指定された別のサイトへ個別にリダイレクトするようなものがほしいと言われて作りました。 JQueryとかも使えないようなサイトだったので、JQueryが無くてもそれなりに動くようにしました。 こだわったポイント リダイレクト中に移転前のページが見えないようにした 流入経路がリダイレクト先でも解るように、リクエストパラメータとリファラを引き継ぐ 実装 以下実施(jsを個別にRailsで読み込むため。Railsでなければ不要) 以下追記 ruby:config/environments/production.rb config.assets.precompile += ['*.js'] 以下削除 ruby:app/assets/javascripts/application.js //= require_tree . redirectするjs この例ではRailsにjsを入れたのでディレクトリ構造がこのようになってます app/assets/javascripts/redirect.js // bodyが読み込まれる前にタグを埋め込まれた場合、こだわったポイント1は実現できません if ( document.body === void 0 || document.body === null ){ } // こだわったポイント1 else if ( document.body != null ){ document.body.style = 'visibility:hidden' } window.onload = function() { try { // この例は https://~~~.com/1.html とかを 指定した遷移先1のURL へリダイレクトします var url_map = { 1:'遷移先1のURL', 2:'遷移先2のURL'} // 1.html だったら 1 にします。拡張子を消す処理 var keys = loc...

AWS Well-Architected フレームワークホワイトペーパー 日本語版の更新

イメージ
AWS Well-Architected フレームワークホワイトペーパー 日本語版の更新 : みなさん。こんにちは。アマゾン ウェブ サービス ジャパン 株式会社 Well-Architected リードの高山です。 このたびクラウド設計・運用のベストプラクティス集である” AWS Well-Architected フレームワーク “に関して、最新の日本語版ホワイトペーパーを公開しましたのでお知らせします。このホワイトペーパーは、2018年6月に内容が更新された”AWS Well-Architected フレームワーク “ホワイトペーパー( 英語版 )を日本語に翻訳したものです。 ダウンロードはこちらから> AWS Well-Architected フレームワーク ホワイトペーパー(PDF) ■AWS Well-Architected フレームワークとは? AWS Well-Architected フレームワーク(以下W-A)は、AWSのソリューションアーキテクト(SA)が、AWSのサービス開始から10年以上に渡り、様々な業種業界、数多くのお客様のアーキテクチャ設計および検証をお手伝いしてきた経験から作成したクラウド活用のベストプラクティス集です。具体的には「運用の優秀性」「セキュリティ」「可用性」「パフォーマンス効率」「コスト最適化」の5つの観点について、クラウドをより活用するための設計原則と、お客様システムがベストプラクティスに沿っているかを確認するための質問と回答で構成されています。 ■AWS Well-Architected フレームワークの活用について W-Aは設計・構築・運用の各フェーズでご活用いただけます。また一度だけではなく定期的にW-Aレビューを実施することで、よりWell-Architected(優れた設計がされた)なシステムを保つことが出来ます。活用方法については後述のBlackBeltオンラインセミナー「クラウド設計・運用のベストプラクティス集 “AWS Well-Architected Framework”」も是非ご参照ください。 一番大事なこと なお、オンラインセミナーでも触れていますが、W-Aの活用時に一番大事なことは(必ずしも全てをベストプラクティスに合わせるのがゴールではなく) 「ベストプラクティスを理解した上で、ビジ...

プログラミングスクールを卒業した人を採用した結果とSEの本音

イメージ
プログラミングスクールを卒業した人を採用した結果とSEの本音 : プログラミングスクールを卒業した人を採用した結果とSEの本音

サイバー攻撃で患者情報漏えい、厚労省に連絡を-都道府県などが医療機関に注意喚起へ

イメージ
サイバー攻撃で患者情報漏えい、厚労省に連絡を-都道府県などが医療機関に注意喚起へ :  厚生労働省は1日までに、都道府県と保健所設置市、特別区に対し、医療機関のサイバーセキュリティー対策に関する通知を出した。医療機関でコンピューターウイルスの感染が相次いでいることなどを踏まえた措置。医療機...

ソフトウェアテストの大規模カンファレンス「STARWEST」で学んだ3つのこと

イメージ
ソフトウェアテストの大規模カンファレンス「STARWEST」で学んだ3つのこと : ステージ上で講演するスピーカー * English follows Japanese Automation & QA グループ(通称:AQA)でぶりぶり自動化している@gloriaです。最近は、iOSアプリの自動テスト実装などを中心に担当しています。 9月の下旬から10月の頭にかけて、カリフォルニアのアナハイムで開催された「 STARWEST Software Testing Conference 」に参加しました。STARWESTは、品質保証や自動化に関するトピックが中心のカンファレンスです。 * なお、この記事は、 @gloria の原文(英語)を意訳しております。原文はこの記事の下部にありますのであわせてお楽しみください。 なぜSTARWESTなのか? STARWESTは6日にわたり、80を超えるチュートリアル、ワークショップ、プレゼンテーションが開催されます。そして、世界中から1000人以上のソフトウェアテスター、自動化エンジニア、開発者、マネージャーが知識や情熱を共有するために世界中から集まってきます。スピーカーも豪華で、マイクロソフト、eBay、インテルといった巨大IT企業や、ISTQB (国際ソフトウェアテスト資格認定委員会) といったプログラムで構成されています セッション前のチュートリアルルーム カンファレンスはとても興味深いものでした。それは、ソフトウェアテストに直結した、とても大きなカンファレンスの一つですし、とても長い歴史のあるカンファレンスでもあるからです(最初のSTARWESTはなんと1992年に開催!)。世界中から集まったスペシャリストたちは、最近の自動化に関するリサーチや品質保証に関するベストプラクティスを共有してくれます。このカンファレンスに参加することによって、メルカリAQAチームが未来のソフトウェアテストやその自動化にむかって進んでいくための知識を得たいと思いました。 今回、STARWESTで学んだことが3つあります。 その1:AIは自動化の未来 AIによって生成された2つのテストケース( https://tech.mercari.com/entry/2018/08/23/184237 より) ソフトウェ...

Amazon Linux 2 にデスクトップ環境(MATE)を入れてみた

イメージ
Amazon Linux 2 にデスクトップ環境(MATE)を入れてみた : はじめに こんにちは、望月です。 最近 Amazon Linux 2 でなにかをやっていることが多いですが、今回もAmazon Linux 2にデスクトップ環境を用意する機会がありましたので、ご紹介したいと思います。 前 […]

API Gateway のポータルサイトを簡単に構築できるサーバーレスアプリを試す

イメージ
API Gateway のポータルサイトを簡単に構築できるサーバーレスアプリを試す : 10月29日にアナウンスがあったこちらを試してみました。 Amazon API Gateway がサーバーレス開発者ポータルを提供開始 どういう仕組みか簡単に述べると、 aws-api-gateway-developer […]

AWS Cloud9でASP.NET Coreを使ってみる

イメージ
AWS Cloud9でASP.NET Coreを使ってみる : はじめに AWS Cloud9で.NET Coreを使う方法は以下で紹介されています AWS Cloud9 ユーザーガイド:AWS Cloud9 の .NET Core サンプル Qiita:Amazon Cloud9 で .NET Core を動かしてみた じゃあこの延長で、「ASP.NET Coreはどうやるんだろ ?」と思って調べてみました。 .NET Core 2.1 SDKのインストール 上記の「AWS Cloud9 ユーザーガイド」の手順どおり、Cloud9の環境を作成して.NET Core 2.1 SDKをインストールします。2018年11月時点では 2.1.403 が Current かつ LTS なのでこちらをインストールしておきます。 ASP.NET Core アプリの作成 dotnet new コマンドでRazor ページのテンプレートを使ってアプリケーションを作成します。 dotnet new razor -o RazorApp1 ASP.NET Core アプリの実行 dotnet run コマンドでアプリケーションを実行します。 cd RazorApp1 dotnet run ですが、アプリケーションをプレビューしようとしても表示されません。 これは以下のページ記載されている IDE 内からアプリケーションをプレビューするには、まずポート 8080、8081、または 8082 を経由して、IP 127.0.0.1、localhost、または 0.0.0.0 で HTTP を使用して、AWS Cloud9 development environment で実行している必要があります AWS Cloud9 ユーザーガイド:AWS Cloud9 Integrated Development Environment (IDE) で実行中のアプリケーションをプレビューする に沿ってアプリケーションを実行していないのが原因です。解決するにはRazorApp1/Properties/launchSettings.jsonの applicationUrl を修正する必要があります。 "applicationUrl": ...

Raspberry Pi Zeroから自宅のNASにアクセスしてみよう

イメージ
Raspberry Pi Zeroから自宅のNASにアクセスしてみよう :  この連載では、約650円で買えるマイコンボードRaspberry Pi Zeroを使って、ITエンジニアがIoTを学べたり、家族で楽しんだりできるIoTレシピをご紹介していきます。今回はRaspberry Piをより一層楽しむために、NASとの連携方法を紹介します。

実践DDD本 第13章「境界づけられたコンテキストの統合」~分散システム設計~

イメージ
実践DDD本 第13章「境界づけられたコンテキストの統合」~分散システム設計~ :  ドメイン駆動設計(DDD)は、顧客と開発者がビジネスを戦略的に理解し、共通の言葉を用いてシステムを発展させていく設計手法です。前回は集約を格納/取得する「リポジトリ」について紹介しました。第13回となる今回は「境界づけられたコンテキストの統合」について解説します。

AWS DevDay 2018/11/01 のGraph Database and Amazon Neptuneに参加してきた

AWS DevDay 2018/11/01 のGraph Database and Amazon Neptuneに参加してきた : 目的 弊社では既にOrientDBを使っているものの、バグを踏むことが多く、別のGraphDBでいいものがないか探しに行った 内容 基本的なこと 向いてる関係性 DB 多対多 GraphDB 多対一 RDBMS 一対一 KVS GraphDB でいける可能性があるもの SQL を書いてみたら、 connect by とか with とか出てきたら可能性あり 個人にカスタマイズされたレコメンデーションやナレッジグラフとかも可能性あり Neptune の特徴 Traversal に特化 ノートを起点に同時多発的に情報を探す Analytics には向いていない 全体を見てのクラスタリング等 スケーリング、可用性に特徴あり 15個のリードレプリカを立ち上げると10万/秒のクエリ発行が可能 インスタンスの性能をあげれば線形にパフォーマンスがあがる トランザクションがある Neptuneの注意事項 可視化機能がない public ip は付与されないのでVPC内に構築すること 東京リージョンにはまだない(2018/11/01時点) 感想 現在、OrientDBをSQLで使っているけど、他のGraphDBとの互換性を考えるとGremlin を使ったほうが良さそう OrientDB のOSS版だからバグを踏みまくってる可能性もあるので、AWSのSAがいるNeptuneのがもしかすると安心かもしれない

Vue.js童貞がネコ本読んで得たもの①

Vue.js童貞がネコ本読んで得たもの① : はじめに どうも、Vue.js童貞です。 JavaやRubyでバックエンドをずっと開発してきて、「センスがないから」とか「UIとか笑使えればええやん」とか言いながら逃げ続けてきたフロントエンドの領域ですが、どうやら抱えているプロダクトの影響でそろそろ逃げきれなくなりそうなので、初心に立ち返って0から勉強し直しています。 その過程で通称「ネコ本」を購入して自己学習をシコシコしてきたので、そこで学んだことを本稿に寄せることで、学んだことの知識の定着を測ろうかと考えた次第です。 ネコ本とは? Mio様の名著「基礎から学ぶ Vue.js」です。 https://www.amazon.co.jp/dp/B07D9BYHMZ Vue.jsとは? 2014年にリリースされたJavaScriptのフレームワークですね。 「学習コストが低い」「柔軟性が高い」「日本語ドキュメントが豊富」という特徴があります。 「日本語ドキュメントが豊富」←ここ大事ですね。英語ができないエンジニアにとっては死活問題です。 競合は? React、Angularあたりですかね。よく知らないので差別化できる特徴はわからないです。 Angularはまだ触れていないのでわからないですが、Reactは少し触れてみてVueと比較して習得まで高いハードルを感じました。 こいつは仲良くなれそうにないですね。ちょっとVue.jsを習得してからまたチャレンジしてみたいと思います。 童貞卒業までの道程 基本 データバインディング、条件分岐、繰り返し // ←今日はここまで ハンドラ 算出プロパティ ウォッチャ コンポーネント、VueCLI、単一ファイルコンポーネント Vuex Vue Router 基本 Vueクラスのインスタンスの生成テンプレート vue = Vue.new({ el: '#app', data: { message: "Hello Vue.js" }, computed: { computedMessage: function(){ return this.message + "!...

Google Launchpad Accelerator Tokyoに7社のスタートアップが選出、東京でプログラム開始

イメージ
Google Launchpad Accelerator Tokyoに7社のスタートアップが選出、東京でプログラム開始 : 8 月末に発表して応募を開始した Google 主催のグローバル アクセラレーター Google Launchpad Accelerator Tokyo の参加スタートアップ企業 7 社が、10 月 15 日から東京の Google オフィスでブートキャンプに参加、計 4 日間のプログラムを終了しました。今回応募多数の中から厳正な審査の結果、以下の 7 社を選出しました。 Joyz : 学校向け英語学習アプリ。非母語話者の発話分析エンジンを開発 Empath : 音声から感情を読み取る技術を開発。言語非依存で短時間の音声データでも分析可能 Cinnamon : 金融機関向け書類認識エンジンの提供。非構造化文書も処理可能 PicoCELA : マルチホップ技術を使った無線ネットワーク。エッジデバイスのさらなる効率化に取り組む ArchiTek : 低コストなAI向け半導体技術の開発 Zenport : 輸出入業者向け業務SaaSの開発 ThinkCyte : 独自の先端光学技術と機械学習処理を融合した高速な細胞分析選別ソリューション 当アクセラレーター プログラムはエクイティーフリーの 3 か月にわたるプログラムで、 3 つの鍵となるブートキャンプがあります。まず 10 月中旬の東京の 1 週間を皮切りに、11 月末にテルアビブ(イスラエル)、1 月末にシリコンバレーをまわり、現地のメンターコミュニティーとの交流、Google の持つ各種ワークショップに参加していただく予定です。発表時にご案内したたとおり、Launchpad Accelerator はこれまで、アフリカ、アジア、ヨーロッパ、南アメリカの各都市で同プログラムを展開し、これまでに世界 40 カ国以上からスタートアップ企業が参加しています。 東京で実施したプログラムには、シリコンバレーやブラジル、ベトナム、インドネシア、イスラエルなどから集まった経験豊富な起業家や投資家からなるグローバル メンター陣に加えて、東京を拠点に活躍するローカル メンター陣の総勢 20 人が 7 社のビジネスやテクノロジーについて助言。各 1 時間のセッションが終わっても...