投稿

10月 20, 2018の投稿を表示しています

PythonでUnderscore.jsのような配列操作

PythonでUnderscore.jsのような配列操作 : JavaScriptで書いてると、Underscore.jsがとても便利でしてな(´・ω・`) Pythonで配列操作やろうとした時に迷うことが多いので、自分用に対応表を作っておくことにしました。いいやり方見つけるたびにアップデートしていこうと思います。 基本的な配列操作(append/insert/pop/extend/+/*/スライス)は省略。 対応表 Underscore.js Python 結果(Python) 動作 _.indexOf([1, 2, 3], 2) [1, 2, 3].index(2) 1 配列のどこにあるかインデックスを返す。なければ-1 _.lastIndexOf([1, 2, 3, 2], 2) (lambda array, val: len(array)-1 - array[::-1].index(val))([1, 2, 3, 2], 2) 3 配列の後ろから検索してindexを返す。なければ-1。Python版は逆順配列を新たに作るので巨大な配列には使用しない _.find([1, 2, 3], (val)=>{ return val == 2; }) next((val for val in [1, 2, 3] if val == 2), None) 2 配列の中に条件の合う値が存在すればそれを返す。無ければundefined/None _.contains([1, 2, 3], 2) 2 in [1, 2, 3] True 配列に含まれるかどうかbooleanで返す _.every([1, 2, 3], (val)=>{ return val < 10; }) all(val < 10 for val in [1, 2, 3]) True 配列の内容が全て条件に当てはまるか _.some([1, 2, 3], (val)=>{ return val < 2; }) any(val < 2 for val in [1, 2, 3]) True 配列の内容が1つでも条件に当てはまるか _.

RailsでJSファイルが読み込まれない!と困った話

RailsでJSファイルが読み込まれない!と困った話 : 前提 AWSのcloud9を利用して、Railsを使った簡単なMAP表示アプリを製作していた時の話です。 Rails初心者のため、「アセットパイプラインって何?」レベルの知識しかありません。 そんな時に、思わず嵌ってしまって解決するのに時間が掛かった経験をしたため、同じ様な事象に悩む方々いたら参考になればと思い投稿しました。 概要 ①勉強を兼ねて、Google Maps APIを利用したMAP表示アプリを制作。 ②「rails g controller maps index」でmapsコントローラを新規に作成。 ③index.html.erbにmap表示用の"divタグ"とmap描画用の"scriptタグ"及び”JSコード”を埋め込んで、動作を確認。 ④上記の方法で無事動作したため、新規に作成したmap.jsファイルにJSコードを記載し、jsファイルを読み込んでmapを描画させようとした。 ⑤map.jsファイルだけが呼び出し出来ず、mapが描画されない事態になった。 aplication.html.erb <head> //下記の記述により、jsファイルが自動で読み込まれるはずだが、map.jsファイルだけが呼び出し出来ず <%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %> </head> aplication.js //下記の記述により、assets以下のフォルダに保存した自動で読み込まれるはずだが、map.jsファイルだけが呼び出し出来ず //= require_tree . //試しにconsole.logで動作を確認したら、application.jsは正常に読み込まれていた。 console.log("hogehoge") 原因と結論 結論を言ってしまうと、 assets/javascriptファイル に map.coffee が生成されていたことが原因でした。 このcoffeeファ

【JavaScript】スイッチのJoy-Conをプレゼンリモコンにするワンライナー

イメージ
【JavaScript】スイッチのJoy-Conをプレゼンリモコンにするワンライナー : 以前に Joystick Mapper という、ゲームパッドのボタンをキーに対応させる有料ツールを使ってJoy-Conをプレゼンリモコンにする方法が紹介されていました 1 が、ブラウザ上であれば JavaScriptのワンライナー でJoy-Conをプレゼンリモコンにすることができます! 動作環境 macOS High Sierra Chrome 70 Joy-Con (L) 準備 Joy-Con (L) を macOS の標準の機能で接続しておきます。 Joy-Conをプレゼンリモコンにするワンライナー 以下のスクリプトをデベロッパーツール(Macであればcommand+option+I)の Console に貼り付け Enter で実行します (()=>{const[a,b]=[0,3],[c,d]=[37,39];let e=!1;const f=a=>{if(e)return;const b=document.activeElement,c="IFRAME"===document.activeElement.tagName?b.contentWindow:window;[c,c.document].forEach(b=>{["keyup","keydown"].forEach(c=>{b.dispatchEvent(new KeyboardEvent(c,{keyCode:a}))})}),e=!0};setInterval(()=>{const g=navigator.getGamepads()[0];if(g){const e=g.buttons;if(e[a].pressed)return void f(c);if(e[b].pressed)return void f(d)}e=!1},1e3/60)})(); ページが再読み込みされた場合には、再度上記のスクリプトを実行する必要があります。 利用するボタン 画像で図示したボタンでスライドを進めたり、戻したりすることができます。 対応サイト 以下の対応サイトで利用できることを

たとえば全部"ゴミ記事"だったら

たとえば全部"ゴミ記事"だったら : 全部〇〇だったら△△したい 配列の中のすべての要素が〇〇だったら、△△の処理をしたい。 逆に、ひとつでも〇〇じゃない要素があったら✗✗したい。 こんな場面、割とよくありますよね。 そんなときは everyメソッド を使うと便利です。 まずはeveryメソッドを使わずに書いてみる まずは forEach で書いてみます。 もし全部"ゴミ記事"だったら「全部ゴミ記事!」と表示するプログラムです。 script.js const Qiita = ["ゴミ記事", "ゴミ記事", "ネタ記事", "ゴミ記事", "ゴミ記事"]; //ゴミ記事が4つ、ネタ記事が1つ入った配列を、定数Qiitaに格納。 let allGomi = true; //初期値ではtrue。 //forEachで全部の記事を回します。 Qiita.forEach(kiji => { if(kiji !== "ゴミ記事"){ allGomi = false; //一つでもゴミ記事じゃない要素があればfalseが代入される。 } }); if(allGomi){ alert("全部ゴミ記事!"); }else{ alert("良記事もあるだろ!"); } 変数 allGomi に初期値として true を入れておいて、 forEachで全要素を回して、一つでもゴミ記事じゃないのがあれば allGomi が false になる、という流れですね。 everyを使ってみる everyメソッドを使うともう少しシンプルに書けます。 script.js /* 〜〜〜省略〜〜〜 */ const allGomi = Qiita.every(kiji => { return kiji === "ゴミ記事"; }); /* 〜〜〜省略〜〜〜 */ everyメソッドは真偽値を返します。

dockerで機械学習(17) with anaconda(17)「PythonとKerasによるディープラーニング」 :Francois Chollet著

イメージ
dockerで機械学習(17) with anaconda(17)「PythonとKerasによるディープラーニング」 :Francois Chollet著 : dockerで機械学習(17) with anaconda(17)「PythonとKerasによるディープラーニング」 :Francois Chollet著 dockerを導入し、Windows, Macではdockerを起動しておいてください。 Windowsでは、BiosでIntel Virtualizationをenableにしないとdockerが起動しない場合があります。 また、セキュリティの警告などが出ることがあります。 docker pull and run 以下のshell sessionでは (base) root@f19e2f06eabb:/#は入力促進記号(com...

GoogleはGoogleアプリ標準搭載のAndroid端末1台につき4500円のライセンス料を課す見込み - GIGAZINE

イメージ
GoogleはGoogleアプリ標準搭載のAndroid端末1台につき4500円のライセンス料を課す見込み - GIGAZINE : GoogleはGoogleアプリ標準搭載のAndroid端末1台につき4500円のライセンス料を課す見込み - GIGAZINE by Matthew Kwong Googleのモバイル向けOSであるAndroidの提供法が欧州連合競争法(独占禁止法)に違反していたとして、Googleに5700億円もの罰金が科せられました。これにより、GoogleはEU圏内ではGoogle PlayをはじめとするGoogle製アプリを標準搭載(プリインストール)する端末にライセンス料を課す方針であることを明か...

リライトの効果!ブログ記事をリライトするとアクセス数が増えるのか?Googleの検索順位が上がるのか? - 魂を揺さぶるヨ!

イメージ
リライトの効果!ブログ記事をリライトするとアクセス数が増えるのか?Googleの検索順位が上がるのか? - 魂を揺さぶるヨ! : リライトの効果!ブログ記事をリライトするとアクセス数が増えるのか?Googleの検索順位が上がるのか? - 魂を揺さぶるヨ! こんにちはユレオです。 本日の記事はブログ運営者に向けた内容で、ブログをしていない方からすると「?」という内容です。 私は2017年6月にブログ運営を始め、現在1年4か月目に入り、ようやくブログ運営初心者を脱却してブログ中級者になったくらいかなー という身なので、ブログ運営について深いお話はできないかもし...

【メルマガ発行者必読】GoogleAnalyticsでメルマガ経由のユーザー行動を把握する方法 | ワードプレステーマTCD

イメージ
【メルマガ発行者必読】GoogleAnalyticsでメルマガ経由のユーザー行動を把握する方法 | ワードプレステーマTCD : 【メルマガ発行者必読】GoogleAnalyticsでメルマガ経由のユーザー行動を把握する方法 | ワードプレステーマTCD アクセス解析ツール, マーケティング 2018.10.19 【メルマガ発行者必読】GoogleAnalyticsでメルマガ経由のユーザー行動を把握する方法 今回の記事では無料で利用できるサイト解析ツール(GoogleAnalytics)を活用した、メルマガ(キャンペーンリンク)経由でやってきたユーザー行動を計測する方法についてご紹介します。...

mrbgem CIにドメインを付けてもらった

イメージ
mrbgem CIにドメインを付けてもらった : mrbgem CIにドメインを付けてもらった 今まで https://103.128.221.202.static.iijgio.jp/jenkins/ で運用していたmrbgem CIなんですが、この度 ci.mruby.org というドメインを付けてもらいました: https://github.com/mruby/mruby.github.io/issues/61 (対応してくれた @yukihiro_matz に感謝!) https://ci.mruby.org/jenkins/ にアクセスするとmgem-list...

GCPのHTTPロードバランサ用のマネージドSSL証明書がリリースされたので試してみた - 本日も乙

イメージ
GCPのHTTPロードバランサ用のマネージドSSL証明書がリリースされたので試してみた - 本日も乙 : GCPのHTTPロードバランサ用のマネージドSSL証明書がリリースされたので試してみた - 本日も乙 Google Cloud Load Balancer(GCLB) でマネージドのSSL証明書がパブリックベータでリリースされました。 同時にManaged TLS証明書が GCEの HTTPS LB でサポートされました。https://t.co/YFsxBIlSHV#gcpja— Yuta.H (@yutah_3) 2018年10月11日 Creating and Using SSL Certificates  |  Load Balancing  |  Google Cloud A...

Ubuntu 18.10登場

Ubuntu 18.10登場 : Canonicalは10月18日(米国時間)、公式ブログにおいて、Ubuntuの最新版となるUbuntu 18.10の公開を伝えた。Ubuntu 18.10の主な特徴は、「マルチクラウドコンピューティングに最適化」「 4000を超えるSnapパッケージの提供」など。

いつになったら我々は地球工学しか方法はないと認めるのだろう | TechCrunch Japan

イメージ
いつになったら我々は地球工学しか方法はないと認めるのだろう | TechCrunch Japan : いつになったら我々は地球工学しか方法はないと認めるのだろう | TechCrunch Japan 1883年、クラカタウ火山の噴火で、火山灰と火山性ガスが成層圏にまで立ち上った。それにより雲の反射率が高まり、その年、地球全体の気温がおよそ摂氏1度低下した。2018年、人間の活動により地球の気温は摂氏1度上昇したと国連が発表した。今すぐ思い切った手を打たなければ、破滅的な結果につながるという。 最適な解決...

アンマウントされたコンポーネントのstate更新問題に対処する。

アンマウントされたコンポーネントのstate更新問題に対処する。 : あらすじ 画像を表示するコンポーネントで、非同期通信(Ajax, fetch)で取得したものをstateで管理するようにしたら怒られた。 Warning: Can't call setState (or forceUpdate) on an unmounted component. This is a no-op, but it indicates a memory leak in your application. To fix, cancel all subscriptions and asynchronous tasks in the componentWillUnmount method. 今回は2画面用意しました。 問題のコンポーネント 雑な画面 問題のコンポーネントの componentDidMount が走った頃合いで、違う画面に行くとエラーが発生します。 そんな実装がこれです。 import React from "react"; import ReactDOM from "react-dom"; import { compose, withStateHandlers, lifecycle } from "recompose"; import { BrowserRouter as Router, Route, Link, Switch } from "react-router-dom"; import "./styles.css"; function getReactImage() { // 3秒後にReactの画像返してくれる処理 return new Promise(resolve => { setTimeout(() => { resolve( "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9Ii0xMS41IC0xMC4yMzE3

「Lumada」がノンプログラミング開発環境をユーザー向けに展開、Node-REDベース - MONOist(モノイスト)

イメージ
「Lumada」がノンプログラミング開発環境をユーザー向けに展開、Node-REDベース - MONOist(モノイスト) : 「Lumada」がノンプログラミング開発環境をユーザー向けに展開、Node-REDベース - MONOist(モノイスト) 組み込み開発ニュース:「Lumada」がノンプログラミング開発環境をユーザー向けに展開、Node-REDベース 日立製作所は、プライベートイベント「Hitachi Social Innovation Forum 2018 TOKYO」において、同社のIoTプラットフォーム「Lumada」と連携するコーディング不要のノンプログラミング開発環境を披露した。オープン...

【新バンドル】WorkSpacesでPowerProバンドルが発表されました!

イメージ
【新バンドル】WorkSpacesでPowerProバンドルが発表されました! : ご機嫌いかがでしょうか、豊崎です。 AWSからWorkSpacesの新しいハードウェアバンドル、PowerProが発表されました。今回の発表で選択の幅が広がったので、WorkSpacesが使いやすくなりました。 Anno […]

[レポート]第3回 流通・小売・消費財業界 MeetUp #tableau

イメージ
[レポート]第3回 流通・小売・消費財業界 MeetUp #tableau : DI部の川崎です。 Tableauの業界カットのミートアップシリーズ、「第3回 流通・小売・消費財業界 MeetUp」が開催されましたので、レポートいたします。 今回のミートアップの目玉は、日本を代表する市場調査会社の2 […]

AWS初心者がAWS Solution Architect Associate試験に挑んだ時の事をまとめてみた

AWS初心者がAWS Solution Architect Associate試験に挑んだ時の事をまとめてみた : どうも、福岡のmeです。 今日は、クラメソ社員にとっては登竜門とも言えるSolution Architect Associate 試験に挑んだ時のことをまとめました。 これから受けてみようかなーという方への参考になれば良 […]

【AWS IoT】ボタン1クリックで「いまから帰るよ」を実現した

イメージ
【AWS IoT】ボタン1クリックで「いまから帰るよ」を実現した : はじめに 皆さんは帰りの連絡を忘れてしまい、家の人に怒られてしまった経験が一度はあるんじゃないでしょうか。僕は何十回かあります。 特に既婚者の場合、奥さんの夕飯作りに多大な影響を与えますので、この連絡を忘れてしまうと死を招きかねません。 それなのに私たちはなぜ何度も失敗をくり返すのでしょうか。 原因はただ一つ。「めんどくさい 」。 そんなこと言うと「LINEで1通送るだけじゃん!」と言われそうですが、もはやそれすらめんどい。私にはできない。 そんな時私が出会ったのが、「AWS IoT Enterprise Button」だったのです。 以前ボタンワンクリックで洗剤やティッシュなど日用品が注文できる、Amazon Dashというサービスが話題になったかと思います。このボタンは、形状はAmazon Dashのボタンとほぼ同じなのですが、違いとしてクリック時の処理を開発者が自由に記述できるようになっています。 ボタンワンクリックならさすがの私でも連絡できるはずですので、クリックすると帰宅メッセージがLINE通知されるプログラムを作ってみました。 作ったもの AWS IoT Enterprise Buttonはクリックの種別(シングル、ダブル、長押し)を通知することができるため、種別に応じて送信するメッセージを変えてみました。 ■シングルクリック ■その他(ダブルクリック、長押し) 我ながらこれは便利!!IoT革命を起こしたと言っても過言ではないでしょう。 定時で帰れる日も残業で遅くなる日もこのボタン一つでバッチリです。 絵文字も使えますので、温もりを感じますね 構成図 AWS IoT 1-Clickの設定画面で、AWS IoT Enterprise ButtonとLambda Functionを紐づけるイメージを持つと分かりやすいと思います。LINE通知の処理はIFTTTにお任せして、トリガーとなるWebHook URLをLambda Functionから叩きます。 コード Lambdaで動けばどの言語でも良いのですが、今回は勉強のため初めてGoを使ってみました。 package main import ( "

ソリマチ、経営者専用iOSアプリ「スマホ社長」提供開始 - INTERNET Watch

イメージ
ソリマチ、経営者専用iOSアプリ「スマホ社長」提供開始 - INTERNET Watch : ソリマチ、経営者専用iOSアプリ「スマホ社長」提供開始 - INTERNET Watch