タグ

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

  • GASをイケイケな環境で開発したい!claspを使ってみる - Qiita

    TL; DR clasp + esbuild で、GASのアプリケーションを... バージョン管理できる!(GitHubでコード管理) 型安全にできる!(TypeScript使用) ユニットテストできる!(Jest使用) が、つらみも感じたのでご利用は計画的に 作ったもの: SwitchBot 温湿度計プラスで取得した温度、湿度をスプレッドシートに記録 はじめに Google Apps Script (GAS) を使うと、ちょっとした処理を手軽に自動化できます。エディタがWeb上にあるので、サクッと書いてすぐに動かせます。 そのままでも使いやすいのですが、もっとイケイケな開発環境を作りたい!(欲張り) ローカルで、好きなエディタで開発したい! Gitで管理したい/GitHubに公開したい! TypeScriptで型安全にしたい! ディレクトリ構成を整理して、クラスを疎結合にしたい! ユニッ

    GASをイケイケな環境で開発したい!claspを使ってみる - Qiita
  • 良いコードの書き方 - Qiita

    概要 チームによる継続的開発を前提としたコーディングのガイドライン。 特定の言語を対象としたものではないが、主に静的型付けのオブジェクト指向言語を想定している。 サンプルコードは別段の定めがなければSwiftで記載。 ガイドラインの目的 生産性を高め、メンテナンスコストを下げる バグが生まれづらくする 開発メンバー(特に新規参加者)がコードを理解しやすくする 初心者プログラマー教育 内容の説明 タイトルの頭についた【数字】は重要度。 高いほどシステムに与える影響が大きいが、低いものの方が影響が小さく改修しやすいものが多い。 【5】変数のスコープを小さくする 変わり得る値は複雑さを生み誤解やバグに繋がるため、プログラムは変数が少ないほど問題が生まれづらい。 プログラミングの大原則として、変数は必要最低限を心がけ、むやみに増やさないようにする。 また、変数はスコープや寿命が大きいほど悪影響が

    良いコードの書き方 - Qiita
  • dev.toがなぜinsanely fastを実現出来ているか - Qiita

    INSANELY FAST Qiitaを読んでる人なら https://dev.to をほとんどの人が見たはず。見てない人は見てきてください、速すぎて驚くはず。またmizchiさんがdev.toに書いた なぜ dev.to がこんなにも速く、こんなにも自分にとって感動的なのか - dev.to を見た人も多いと思う。個人的にHeroku, Railsを採用してここまで爆速なサイトを構築出来ていることは今までの常識を覆す衝撃な出来事だった。こんな新しい発見をもたらしてくれたdev.toには当に感謝してる。自分もこんなサイト作ってみたいなと思ってdev.toのことを色々調べてて少し知見がたまったので共有してみます。 この記事はOkinawa.rb Advent Calendar 2017 7日目の記事です。 Twitterやってるのでよかったらフォローしてください🙋‍♀️ @saboyut

    dev.toがなぜinsanely fastを実現出来ているか - Qiita
  • [React Native事始め完全版]「いきなりデート」のアプリをReact Nativeで開発した知見をまとめます。 - Qiita

    [React Native入門完全版]「いきなりデート」のアプリをReact Nativeで開発した知見をまとめます。 この記事で説明する事 React Native採用に係る意思決定の話 atom + eslint + flowによるIDE風開発環境 line by lineによるプロジェクト作成方法とリリース方法 デバッグ方法やtips集、補助ツールの使い方 React Nativeとは Facebookがオープソースとして開発するReact.jsの思想の一つである「Learn once, Write everywhere」(元ネタはもちろんJavaのWrite once, Run anywhere)を体現した、Facebookが開発主体となるプロジェクトの一つで、要はJavascriptReactフレームワーク1つでモバイルアプリ(iosとAndroid)を作れる、といった代物です

    [React Native事始め完全版]「いきなりデート」のアプリをReact Nativeで開発した知見をまとめます。 - Qiita
  • ソシャゲ開発経験から学んだゲームに Redis を使う際の Tips

    近年の KVS では割と Redis が覇権を取っていることもあり(当社比), 社内の多くのプロジェクトで Redis を使用するようになりました. ということでノウハウ的なのも溜まってきたのでまとめたいと思います. (大量のユーザーデータを扱うソシャゲにしか当てはまらない部分もあるかと思います) 単純にパフォーマンスを RDB < Redis と思い込んでとりあえずでキャッシュしない 「Redis は速い」と言われますが, インデックスをちゃんと貼った RDB のクエリも そこまで遅いわけではありません. 結局通信コストの方が遥かに大きいので内部の 取得時間差はトータルで考えると多くの場合誤差です. 特に RDB の主キーのみで取得できるようなデータを Redis にキャッシュすることに メリットはありません. キャッシュするコードを書くコストの方が高くつきます. キャッシュするのは R

    ソシャゲ開発経験から学んだゲームに Redis を使う際の Tips
    nantan
    nantan 2017/06/15
  • lessのおすすめオプション - Qiita

    概要 lessのman見てたら便利っぽいの見つけたからまとめる 内容 自分がドキュメントのどこらへんを見てるのか表示する(-m) less -m で↑のスクショの左下のようにドキュメントのどこらへんにいるかをパーセンテージで表示する 自分が見てる行数やそのパーセンテージや開いてるファイル名を表示する(-M) less -M で↑のスクショの左下のように行数と -m 同様なパーセンテージと開いているファイル名を表示する ドキュメント内検索する時に検索ワードに大文字が入ってない限り大文字小文字を区別しない(-i) less -i でドキュメントを開くと、ドキュメント内検索する時に検索ワードに大文字が入ってない限り大文字小文字を区別しない。 つまり、 ↓のようなドキュメントを開いている時に /test で検索したら全部ヒットするが /Test で検索するとTest しかヒットしない ANSI C

    lessのおすすめオプション - Qiita
  • Mastodonを支えるgems - Qiita

    Mastodonのコードを読んでみることにしました。 知らないgemが一杯あったのでまずは調べてみることにしました。標準添付ライブラリ、Railsにデフォルトで含まれているものは除きます。また、group :developmentとか、group指定ありのは疲れたのでまた今度。 今回確認したGemfile 実際のコードに目を通しながら調べましたが、勘違いなどあればご指摘頂けるとうれしいです。 hamlit-rails hamlit-rails provides generators for Rails 4. Railsのジェネレータが生成するビューテンプレートをHaml化するhaml-railsのhamlit版のようです。Hamlという点では同じですがhaml gemへの依存をなくせますね。 pg Pg is the Ruby interface to the PostgreSQL RDB

    Mastodonを支えるgems - Qiita
  • たぶんこれが一番分かりやすいと思います React + Redux のフロー図解 - Qiita

    【追記】 もうこれ古いから参考にしないでください https://t.co/mXtcc73Orf — もし Laravel が流行しなくなってこられてきてたとしたら、絶対に捨てられてこられてたと思うか (@mpyw) January 26, 2021 Redux にはその昔 connect()() とかいうクソ API と, Redux-Saga とかいう宗教がありました という考古学です — もし Laravel が流行しなくなってこられてきてたとしたら、絶対に捨てられてこられてたと思うか (@mpyw) January 26, 2021 読者対象 Tutorial: Intro To React - React Example: Todo List · Redux 「チュートリアルそれぞれ一周した!Reactは何とか理解できたが,Reduxがさっぱりわかんねぇ!」 ぐらいの人向け。自分

    たぶんこれが一番分かりやすいと思います React + Redux のフロー図解 - Qiita
  • Mac のターミナルに `CAL` と打ち込んだときの挙動を追った話 - Qiita

    みなさん、こんにちは。 最近、曜日や日付の感覚とかがあまり意識できない不健康な生活をしております。 @takano32 です。 そんな私は月曜日とか休日明けとかによくターミナルに cal って打ち込んで日付を確認したりします。 date でもいいし、 Mac なら右上に日付が出ていたりするわけですが、習慣なんだからしょうがない。 ところがですね。今日、Mac の仮想端末に Caps Lock が入ったまま CAL と打ってしまったんですよ。 「ノー、サッチコマ…えっ?なんかカレンダーでてる!」というね。 そこまでなら「あー、HFS+ のファイルシステムってデフォルトのフォーマットでは大文字と小文字を区別しないから、小文字の cal が呼ばれたのかな」って思うわけですが、よく見ると変なんですよ。 小文字 cal と 大文字 CAL の出力 小文字 cal のカレンダーはこんな感じ $ cal

    Mac のターミナルに `CAL` と打ち込んだときの挙動を追った話 - Qiita
  • AndroidのBuildを別マシンで行うスクリプト書いたった - Qiita

    追加 2017-06-21 これを使ったほうがcoolです。 gojuno/mainframer: Tool for remote builds. Sync project to remote machine, execute command, sync back. 2016-11-21 23:44 テストに対応 2016-11-14 13:12 クラウドでの実行方法追記 この記事を3行で Androidはビルドが重い。 CPU100%なので開発マシンがその間使えない。 別のマシンでビルドする。 問題 遅い、遅い、AndroidStudioのビルドが、遅い。 とりあえずビルドを始めるとこうなる。 これが、これくらい続く この間はAndroidStudioでコード入力も出来ない。ブラウジングもできない。を読むしか無い。お陰で積ん読が減った。でも納期はやってくる。 ビルドが重いのは仕方ない。

    AndroidのBuildを別マシンで行うスクリプト書いたった - Qiita
  • 2016/05/11時点でWebAssembly関連の情報を整理してみた - Qiita

    フロントエンドとしては絶対に避けて通れないWASM、そろそろエッジ環境なら試せるツールが揃ってきたということで、手を出してみた。 自分がどうしてもローレベルに弱いので、たぶん色々間違ってるんだけど、識者各位は指摘お願いします。 現在の仕様はここ https://github.com/WebAssembly/spec Chrome Canary と Firefox Beta で動作可能 WASMのゴール asm.jsに比べてサイズが小さく高速にデコード可能なバイナリフォーマット 将来的な目標として、DOMアクセスとそのGCインテグレーション これが達成されれば、ブラウザにおいて JS がファーストプライオリティな言語という状態ではなくなる とはいえ既存の資産が多いのでなくなることはないだろうが wasmのスペック自体は小さいのでおそらくブレようがないが、DOMの実装とGCは各ベンダごとに別々

    2016/05/11時点でWebAssembly関連の情報を整理してみた - Qiita
  • JavaScriptでファイルダウンロード処理を実現する - Qiita

    はじめに モダンブラウザならJavaScriptでファイルダウンロード処理を実現することができます。SPA(シングルページアプリケーション)など、クライアント側にデータを持つようなアプリケーションであればサーバアクセスなしにメモリの内容からファイルを生成してダウンロードさせることができます。 実装方法 やり方は リンクのHTML5のdownload属性を使用してダウンロードファイル名を設定 File APIBlobを使用してデータを作成 window.URL.createObjectURLでBlobからURLを生成しそれをリンク先に設定 とするだけです。これでChromeとFireFoxはいけます(download属性のブラウザ実装状況を見るとを見ると、試せていないですがEdgeとOperaもいけそう)。加えてIEをサポートする場合は、IE10/11であればwindow.navigato

    JavaScriptでファイルダウンロード処理を実現する - Qiita
  • CORSリクエストでクレデンシャル(≒クッキー)を必要とする場合の注意点 - Qiita

    クレデンシャルの送信 クロスオリジンのAJAXリクエストでクレデンシャル(クッキーの送信またはBASIC認証)を必要とする場合は、それを許可するオプションをフロント側Javascriptで付けておく必要があります。デフォルトではCORSリクエストでクッキーは送信されませんし、BASIC認証は送れません。 Fetch API の場合 fetch(url, { mode: 'cors', //クロスオリジンリクエストをするのでCORSモードにする credentials: 'include' //クレデンシャルを含める指定 })

    CORSリクエストでクレデンシャル(≒クッキー)を必要とする場合の注意点 - Qiita
  • いまさらHTML5 (FileAPI編) - Qiita

    はじめに HTML5でファイル操作をやってみます。 ついでに、ドラッグ・アンド・ドロップで、ファイルの選択をしてみます。 ファイル情報取得 初期設定でdragoverとdropイベントを設定します。 dragoverイベントは、ファイルをドラッグして対象領域の上に来た時に発生するイベントです。 イベントキャンセルを行わないと、そのままブラウザにファイルが読み込まれてしまいます。 (アイコンの種類をlinkとしていますが、Chrome以外適用されていない気がします。) dropイベントは、ファイルをドロップした時に発生するイベントです。 イベントキャンセル後、ドロップされたファイルを取得します。 event.originalEvent.dataTransfer.files、JQueryでイベント登録している為 オリジナルのイベントデータが欲しい場合originalEventを指定しなければな

    いまさらHTML5 (FileAPI編) - Qiita
    nantan
    nantan 2016/11/08
  • なんとなくで理解しないWebpackのCSS周辺 - Qiita

    CSS in JSに夢を見たが、なかなか一筋縄では行かなかったので1、webpackにおけるCSS気で向き合ってみた。 しかしまだ理解が甘いところがあったのでloader, pluginまわりの関係性を整理した。 (前置き)webpackの基礎情報 css関連の題にはいる前に、webpackの基礎を再確認する。 Webpackの特徴 webpackの特徴的な事項として、CSSや画像など、javascriptでないデータも基的に全てをjavascriptで扱ってしまう、という事が挙げられる。 同等の対抗として挙げられるbrowserifyやrollupは、あくまでも「javascriptのmodule解決」にフォーカスしているのに対して、webpackは全く違う方向を向いている loaderとpluginの違い 結構あやふやに扱っていたが、上記のwebpackの基部分を明確にして考

    なんとなくで理解しないWebpackのCSS周辺 - Qiita
  • slack の /remind 機能まとめ - Qiita

    時間が来たら何か通知させるたりするの,あちこちで bot で実装してたりすると思いますが, 標準で存在してる slackbot が最近色々機能拡張されたので通知させるだけなら独自に bot を用意しなくても充分になりました. けど,英語読むのめんどい人とか,詳しい使い方を知ってる人は知っているけど知らない人は知らないと思うのでまとめてみました. (というか 公式のhelp にまとまってるのでそっちで良い人はそっちみた方が早いです.) slash command メッセージ入力で / から始まるコマンドを入力する事を slash command と言います. irc や skype 等 chat アプリでは一般的な機能で, slack にも実装されています. / 以下にいろいろなコマンドを続ける事で,色々な事ができるんですが,今回は remind だけ説明. 登録方法 順序はわりと自由です.

    slack の /remind 機能まとめ - Qiita
    nantan
    nantan 2016/11/01
  • Barge(Docker ホスト用軽量 OS)って? - Qiita

    気軽に Docker を使いたい人向けの軽量な Docker ホスト(VM)用 Linux OS です。 Only-Docker → RancherOS-Lite → DockerRoot → Barge と変遷してきています。 (最後に Barge になったのは、Docker 社が他社製品名の先頭に Docker を使用することを禁止しているため) Barge は、以下のような特徴を持っています。 最軽量 高速ブート Docker のバージョンを切り替え可能 glibc、bash、dumb-init を標準搭載 パッケージ・インストーラ Vagrant 用 Box VirtualBox に最適化 Raspberry Pi 3 のサポート 最軽量 以前、メモ:Docker ホスト用軽量 OS の比較 - Qiita でもご紹介させて頂いたんですが、なんとか未だに 15MB をキープしており

    Barge(Docker ホスト用軽量 OS)って? - Qiita
  • JavaScriptの配列の使い方まとめ。要素の追加,結合,取得,削除。 - Qiita

    はじめに ここではJavaScriptの配列である、Arrayの基的な使い方をまとめました。主な内容としては、要素の追加、結合、取得、削除となります。 JavaScriptの最新情報などの技術系のみをつぶやくTwitterをはじめました。 Twitter: @takeharumikami RSSはこちら RSS: http://qiita.com/takeharu/feed Feedly: フォロー

    JavaScriptの配列の使い方まとめ。要素の追加,結合,取得,削除。 - Qiita
  • JavaScriptの1msは4ms - Qiita

    はじめに JavaScriptのタイマー処理(setTimeout(), setInterval())は1000分の1秒の精度(ms)で遅延時間を指定することができます。 setTimeout(function() { // 1ms後に実行してほしい alert('hello!'); }, 1); 見ての通り、上記のコードは第一引数に渡した関数が1ms後に実行されることを期待して書かれていますが、実際にこれを実行すると4ms以上の遅延が発生する可能性があります。 これは、JavaScriptエンジンの実装によって、4ms以下の設定値は4msに矯正するという処理が行われているためです。 ※追記)厳密には上記処理のみを実行した場合は4msへの矯正は行われないようです。4msへの矯正が行われる条件として当記事最下部に追記を行っておりますので併せてご参照下さい。 なぜ4msなのか 実はこの4msと

    JavaScriptの1msは4ms - Qiita
  • 新形態素解析器JUMAN++を触ってみたけど思ったより高精度でMeCabから乗り換えようかと思った話

    JUMAN++は最近黒橋・河原研究室から発表された、JUMANの後継となる形態素解析器です。 これまでの形態素解析器と比べて違うのは、RNN言語モデルを用いて意味的自然さを考慮する、ニューラルネットワークを利用した形態素解析器となっている点です。 速度や語彙等の課題はあるものの、解析能力自体はMeCab以上なので、導入方法と共に触ってみた所感を述べてみます。 導入方法 前提 OS X Yosemite 10.10.5 VirtualBox 5.1.6 Vagrant 1.8.6 インストール vagrant boxは bento/ubuntu-16.04を使用します。 推奨はCentOSですが、自分の環境ではCentOSではビルドに失敗しました。 また、OSはubuntu16.04でもboxによっては上手くインストールすることができないため、bentoのboxがおすすめです。 $ vagr

    新形態素解析器JUMAN++を触ってみたけど思ったより高精度でMeCabから乗り換えようかと思った話