タグ

ブックマーク / qiita.com (296)

  • 標準出力もプログラムの動作を致命的に変えるという話 - Qiita

    正常に動作しないスクリプトやプログラムに標準出力処理(echoやSystem.out.print()など)を追加して、デバッグした経験は誰にでもあるのではないでしょうか。標準出力処理の追加は、簡単なプログラムの動作検証から制限などによりデバッガーを使用できない環境での調査まで、いろいろな場面で活用されていると思います。 しかし、1行の標準出力処理の追加でもプログラムの動作を致命的に変える可能性はあります。 過去に、echoが原因でバッチが停止した問題の対策のために、JavaのプログラムにSystem.out.println(・・・);の1行を追加した結果、アプリケーションが応答を返せなくなったことがありました。その時の記憶を、サンプルプログラムを交えながら説明したいと思います。 年次バッチが停止した! 10年ほど前のある日、あるシステムの保守を担当していた私のもとに「年次バッチが停止してし

    標準出力もプログラムの動作を致命的に変えるという話 - Qiita
  • Webでどこまで遊べるか試してみた - Qiita

    Sound Walker という Web アプリを作りました。 ↓ここで遊べます↓(スマートフォンで開いてください) https://www.sound-walker.app リポジトリはこちら https://github.com/Leonardo-mbc/sound-walker ホーム画面に追加することで、インストールしたアプリのように遊べます。 Webでどこまでできるかをやってみようと思って作り始めて、 ほっといて数年たったら技術がみるみる変わっていて、いろいろ味が出てきました。 Service Worker, Add To HomeScreen などなど Webでできるゲームってだけだったのが、普通にスマホで動くゲームになる時代になっております。 Sound Walker で使ってる技術は WebGL(Three.js), WebAudioAPI, ServiceWorker,

    Webでどこまで遊べるか試してみた - Qiita
  • linuxでファイルを複数行を一行にする方法 - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

    linuxでファイルを複数行を一行にする方法 - Qiita
  • HTMLのinputタグ[type=file]のブラウザごとの挙動について調べてみた - Qiita

    はじめに みなさんHTMLタグの一つであるinputタグはご存知だと思います。 その中でもtype="file"についてぼくはこんな疑問を持ちました。 選択したファイルはどこのファイル?コピーとかされているの? これみなさん知っていますか? ちょこっと調べたんですがなかなか情報がなかったので いろいろ自分で調査してみました。 (音は調査が面白そうだったのでそんなに気で調べてないだけです 仮説を立てる まずは仮説をいくつか立ててそれぞれを検証していきます A. ブラウザはファイル参照だけ持っている B. ファイル選択時にTemp領域へコピーしている C. メモリ上に抱えている たぶんこれらのどれかじゃないかなと思っており、 個人的にはBが濃厚だと勝手に考えています。 調査開始 ファイルアップロード機能が必要なので 簡単にファイルをアップロードするだけのアプリを自前で作りました。 http

    HTMLのinputタグ[type=file]のブラウザごとの挙動について調べてみた - Qiita
  • Dialogflow入門 - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? はじめに これはDialogflowを初めて触るための記事です。 Dialogflow関連の記事を見ていても全体図が見えてこなかったので、ここでは全体図を紹介することに専念しています。 #全体像 ##やたらと多い登場人物 Google Home関連の話を聞いていて最初に躓いたのがココ。 Google HomeがいたりGoogle on Actionがあったり、DialogflowがいたりFirebaseがいたりと、とにかくやたら登場人物が多い。 ##Google Home いわゆるスマートスピーカーで音声の入出力を取り扱う。 OK Go

    Dialogflow入門 - Qiita
  • Google Apps Scriptを使って簡易APIをサクッと作る - Qiita

    今回、クライアント側のみでフォームに入力されたコードを事前に決められたコードかどうかを判断したい、という要望がありました。 が、適切なコードかどうかをクライアントサイドに埋め込んでしまうと問題があるので、どうしたらいいかを考えた結果、Google Apps Scriptを使ってSpreadSheetに記載されたコードとのマッチングを行う、という方法に辿り着きました。 今回はその方法と簡単なコードのメモを残したいと思います。 実際の動作デモ jsdo.itの動作デモ Google SpreadSheetデータサンプル jsdo.itのサンプルに、SpreadSheetに記載されてるコードを入力してCheckボタンを押すと、バリデーションしてくれます。 手順 実際の手順については以下のフローを踏みます。 Google Spreadsheetを新規作成 Spreadsheetのスクリプトエディタ

    Google Apps Scriptを使って簡易APIをサクッと作る - Qiita
  • 【危険シェル芸】☠️禁じられた闇の魔術とその防衛術💥 - Qiita

    はじめに Shellには決して使ってはいけない禁呪文と呼ばれるものが存在する。もし社用サーバに対しこれを故意に使えばアズカバン送りは免れ得ないであろう恐ろしい闇の魔術である。(果たしてそれだけで済むのか・・・?) しかし、無知故に、意図せずこのような闇の魔術を発動させてしまうことはインフラエンジニアにとっては、ごく稀にある出来事と言える。無知ゆえに事故を起こさないためにも、🔰初心者🔰にこそ読んでほしい。 今回は、闇の魔術の発動原理と、そのような闇の魔術に対する防衛術を伝授したい。 ‼️注意‼️ ここにある記事の闇の魔術を実行したことによる責任は”一切”取れませんのでご注意ください。 また、禁忌呪文は魔法省から使用が禁じられているので、具体的な抜け方などが未検証なコマンドもいくつか存在します。(は?)詳しい情報をお持ちの偉大なる魔法使いの方は情報提供の方をぜひお願いいたします。 参考サイ

    【危険シェル芸】☠️禁じられた闇の魔術とその防衛術💥 - Qiita
    AmaiSaeta
    AmaiSaeta 2019/01/02
    コメント欄に在る `set -o noclobber` 知らなかった。やらかした事が有る(対象が特に重要でないファイルで良かった)ので、後で.bashrcに足しとく。
  • 心理的安全性ガイドライン(あるいは権威勾配に関する一考察) - Qiita

    権力格差が大きい国の文化圏では、権威勾配が大きくなります。また、個人主義であるほど自己主張がしやすくなるため、意見が生まれやすくなります。男性主義的であると、女性から男性への意見をしづらいと感じる社会であることを意味しています。また、不確実性忌避の傾向が高い国では新しいことや常識の外にあることを受容する力が弱くなり権威勾配が大きくなる傾向があります。 文化的権力格差 Q. あなたの職場では職位を尊称として使うか?たとえば、「〜〜部長」「〜〜課長」など。年少の同僚を「〜〜くん」や呼び捨てするなどの傾向はあるか? Q. あなたの職場では上長の発言に疑義があっても明確な理由がなければ、反論すべきでないという風土があるか? Q. あなたの職場では年齢が若い人は年齢が上の人の意見に反論すべきでないという風土があるか? 年齢や権威に対してものが言えなくなる文化が強い場合、実際の職位の乖離を大きな権威勾

    心理的安全性ガイドライン(あるいは権威勾配に関する一考察) - Qiita
  • WAI-ARIAをマークアップ以外の視点から考える - Qiita

    はじめに 前から気になっていたWAI-ARIA(ウェイアリア)。 HTML5 Conference 2018に参加して、WAI-ARIAをマークアップ以外の視点から掘ってみたいと思ったので記事を書いてみようと思いました。 基的内容からつらつら書いてみています。大まかな流れが頭の中に入りやすいように、細かい専門用語は控え目にしてみています。 WAI-ARIAってなんですか? アクセシビリティ関連の技術 セマンティクスを補強する ⇒ WAI-ARIAはHTMLタグだけでは表現できない。セマンティクスを補強してくれる。 WAI-ARIAが気になってた理由 状態を表す属性とかあって、js, cssのセレクタとして利用できたら便利! [is-selected]クラスを付与するより[aria-selected]属性を付与して状態を表現できたほうがコードが読みやすそう。 →やってみたーい! が引き金

    WAI-ARIAをマークアップ以外の視点から考える - Qiita
  • 新卒からの質問をソシャゲっぽい仕組みにしたら捗った話 - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? ディップ Advent Calendar の4日目です。 はじめに こんにちは。 ディップでUXデザインや速度改善、潤滑油などをやっている@ysktsunaです。 今回は自分のチームに新メンバーを受け入れた時に発生した悩みと、それをソシャゲ風に解決した方法について書きます。 読んでほしい人 先輩として若手(特に新卒)の面倒を見る人 こんな話ありませんか? 仲間が増えた 僕らのチームに新たなデザイナーが参画しました。 :新卒ちゃん(デザイナ見習い) :僕(おっさん) < 新しくチームに入りました! よろしくお願いします! < こちらこそよ

    新卒からの質問をソシャゲっぽい仕組みにしたら捗った話 - Qiita
    AmaiSaeta
    AmaiSaeta 2018/12/15
    チケット回復時に、さり気なく困ってる事ないか聞いたりすれば尚いいかも。
  • インフラエンジニアと謎のサーバ - Qiita

    この記事は闇の魔術に対する防衛術 Advent Calendar 2018の6日目の記事です。 あらすじ この世には歴史的経緯により何が動いているか分からない謎のサーバというものが存在する。 謎のサーバには、気の利いたドキュメントだの仕様だのGitHubにコードが上がってるだの、そういう甘っちょろい物は一切ない。謎のサーバは殆ど変更される事なく、あまりトラブルを起こす事なく、しかし何かのサービスによって必要とされてひっそりと動いている。 インフラエンジニアは時にこういった謎のサーバを調査して、ドキュメントに起こすか、コード化するか、ひっそりと退役させるか、はたまたリプレイスするか、といった対応に追われる。 私はこういったタスクの事を”考古学”とか”遺跡発掘”とか呼んだりする。 (考古学の成果の一例) uptime2700日超えのサーバにshutdown -h nowをカマした — かんが

    インフラエンジニアと謎のサーバ - Qiita
  • Chatbase のススメ - Qiita

    Chatbase とは Chatbase とは対話型アシスタント(チャットボット)用のアナリティクスツールです。 作成したボットのログをプラットフォーム横断で確認することが出来ます。 アクション作ったはいいものの、どう分析すればいいか Google Assistant のアクションや Alexa のスキルを作成する際に問題となるのが、 「会話データの分析をどのようにすればいいかわからない」ということです。 Chatbase は、その問題の解決策の一つです。 この記事では、 Chatbase の使い方を、満月のことを教えてくれる「満月博士」というアプリを例を紹介します。 設定方法 設定チュートリアルは以下のドキュメントを読んでいただければと思います。 できること 処理出来なかったメッセージの確認 「Message」 タブでは、どのようなメッセージを受け取っているか確認出来ます。 この例では、

    Chatbase のススメ - Qiita
  • つらくない複数のGASプロジェクトの横断的な管理について - Qiita

    Google Apps Script (以下GAS)の管理について, 「アレレ,あのトリガーはどこで動いているんだっけ?」 といった事が多々あると思います.しかし,その悩みは G Suite Developer Hub による管理UIの提供によって解消されることになります. この記事では G Suite Developer Hub を使用したGASの管理について書いていこうと思います. G Suite Developer Hub とは G Suite Developer Hub はGASの新しい管理画面とその機能群です. 主に以下の機能が提供されます. Google ドライブ内にあるGASプロジェクトの一覧表示 実行結果や実行数の管理 トリガーの管理 それぞれ紹介していきます 機能紹介 Google ドライブ内にあるGASプロジェクトの一覧表示 実際に https://script.goo

    つらくない複数のGASプロジェクトの横断的な管理について - Qiita
  • [VIM] まだインデントで消耗してるの? 〜スペースインデントでもタブインデントでもない新しいインデント手法〜 - Qiita

    [VIM] まだインデントで消耗してるの? 〜スペースインデントでもタブインデントでもない新しいインデント手法〜VimvimrcvimscriptindentFormat 皆さんはスペースインデントとタブインデントのどちらをお使いでしょうか。 私はタブインデント派なのですが、タブインデントとスペースインデントの双方に利点が存在するため、簡単にどちらが良いと決めることはできません。 ここでは、タブインデントとスペースインデントを組み合わせた新しいインデントの方法を提案し、Vim上で実現するためのvimrcの実装を紹介します。 ※ 提案手法を実際に導入される場合、なにか問題が起こっても私は責任を負いかねますのでご了承ください123。 タブインデントの利点と欠点 ソースコードの閲覧者がtabstopの設定により見やすいインデント幅で閲覧できる タブ幅が環境によってまちまち4なので、ソースコードの

    [VIM] まだインデントで消耗してるの? 〜スペースインデントでもタブインデントでもない新しいインデント手法〜 - Qiita
    AmaiSaeta
    AmaiSaeta 2018/12/12
    どうしても揃えたい時は、俺もこのやり方してる。ただ、この記事みたいにifの条件部の頭を揃えるとかはしないので、本当に稀。
  • ドメイン駆動設計における2つの『不変』 - Qiita

    この記事は ドメイン駆動設計 advent calendar 11日目 の記事です。 日語版だとわかりずらい「不変(不変条件)」 エヴァンスのドメインでは、頻繁に「不変(不変条件)」という言葉が出てきます。Kindleで検索してみたところ、83件でした。 分類してみると、主に2箇所でよく使われています。 1つは「ValueObject(値オブジェクト)」の項。もう一つは「Aggregate(集約)」の項です。 Factoryでも多く使われていますが、こちらはAggregateの不変条件に関連する内容ですね。 さて、実は「ValueObject」と「Aggregate」で使われている「不変(不変条件)」の意味って全然違う意味なんです。 弊社でドメイン駆動設計の読書会をしているなかで、話題になり目から鱗が出てしまったので紹介しますね。 「ValueObject」と「Aggregate」の項

    ドメイン駆動設計における2つの『不変』 - Qiita
  • ユビキタス言語についての知見を共有します - Qiita

    この記事は、ドメイン駆動設計 #1 Advent Calendar 2018の10日目です。 ユビキタス言語は大事 DDDは分類手法の一つという側面があります。 分類の道具は境界づけられたコンテキストと、ユビキタス言語です。 境界づけられたコンテキストで、システムの対象業務を分類し、境界づけられたコンテキスト内部ではユビキタス言語で言葉を分類します。 個人的に、ユビキタス言語はDDDを実践する上でとても大事なテクニックだと思うのですが、何を指すものなのか、どういうメリットがあるものなのかわかりにくいために、初心者にとってはわかりにくいものかもなー、とも感じます。 そこでこの記事では、ユビキタス言語についての私の知見を書いてみます。ユビキタス言語についての学習の助けになれば幸いです。 ユビキタス言語とは何か? ユビキタス言語の定義をする前に、「境界づけられたコンテキスト」について説明します。

    ユビキタス言語についての知見を共有します - Qiita
  • Actions on Googleでパーソナライズ化 - Qiita

    はじめに あなたのGoogleアシスタントアクションで、ユーザ情報に適した情報を提供をしたいと思いませんか? 例えば、連続で起動してくれているユーザには「毎日起動してくれて、ありがとう😸」って言ってみたり、ユーザの位置情報に応じた情報提供したり、ゲームでの最高得点を保存してみたり。 ユーザデータが保存できると作れるアクションの幅も広がるかと思います!💪 次から、Actions on Googleで利用できるユーザデータの保存方法を紹介していきます。 会話中だけデータ保存する 利用例: フレーズを話したかフラグとして保存しておく。 1つ以上前の質問の回答を利用したい。 使い方 1つの会話中だけ(起動->終了まで)情報を保存したい時、 conversationTokenを利用してみましょう。 使い方はアクションのFullfillment処理でActions on Google Node.j

    Actions on Googleでパーソナライズ化 - Qiita
  • Google Assistantアプリで位置情報を取得する - Qiita

    Actions on Google ではパーミッションを適切に求めることで、 位置情報を初めとしたユーザーの情報を取得することが可能です。 大まかな流れ 大きく分けるとこんな感じです。 fulfillment で許可を求める処理を動かす 許可を求めた結果を Intent で受ける 取得した情報を自由にゴニョゴニョする 1. fulfillment で許可を求める処理を動かす 許可を求める処理はnpmパッケージの actions-on-google で定義されている Permmision クラスを用います。 Permission クラスはレスポンスの一種で以下のように記述します。 import { Permission } from 'actions-on-google' app.intent('TestIntent', conv => { const context = '「位置情報を使っ

    Google Assistantアプリで位置情報を取得する - Qiita
  • JavaScript中級者向けHelloWorld - Qiita

    この記事は、JavaScript2 Advent Calendarの9日目の記事です。「javascript に関することなら初心者〜玄人まで歓迎」と書いてあったので、間を取って中級者向けの記事を書きます。(そもそも玄人向けの記事は私には書けませんが…) 内容は、HelloWorldです。中級者の方は、もちろん分かりますよね。 初心者の方はヒントを見ながら(ちょっと厳しいかもしれませんが)、上級者の方は鼻で笑いながら、最後まで読んで頂けると幸いです。 このコードの振る舞いを完全に説明できれば、あなたはJavaScript中級者です。 コード ((_, ...args) => Function.prototype.call.call(...args))`${ function() { console.log(this.valueOf()) } }${ String.raw({ raw: {

    JavaScript中級者向けHelloWorld - Qiita
  • ドメイン駆動設計を勉強するときのオススメ資料 - Qiita

    この記事は、ドメイン駆動設計 #1 Advent Calendar 2018の9日目です。 明日は@kmdsbngさんです。 今回は、ドメイン駆動設計(以下DDD)を学ぼうとする人に対して参考になる資料をまとめます。 DDD関連資料のオススメ まずはDDDの青い、エリック・エヴァンスのドメイン駆動設計から手を出したいところですが、500ページ超えで分厚く、初学者の人とっては解説される内容が抽象度が高く、理解するのに苦労すると思います。 ですのでこれから紹介するSTEPの順番から読んでいくのことをオススメします。 STEP1 まずはDDDの概念から理解していくことから始めましょう。下記のがオススメです。 わかる!ドメイン駆動設計 ~もちこちゃんの大冒険~ https://booth.pm/en/items/392260 このはストーリー形式でDDDを解説されていますので比較的理解しやす

    ドメイン駆動設計を勉強するときのオススメ資料 - Qiita