den8のブックマーク (477)

  • WebエンジニアのチームがReactNativeでアプリをリリースした話 - クラウドワークス エンジニアブログ

    @kinakobo です。 先日フィークルという新規サービスのiOS, AndroidアプリをReactNativeで開発し、リリースしました。 アプリ: iOS | Android feecle.works すでに国内でもいくつか採用事例があるReactNativeですが、まだまだ事例が少ないと感じます。 今回自分たちもReactNativeを採用したので、まずはその検討段階から紹介したいと思います。 また、開発チームはWebエンジニアのみで構成されていたため、特にWebエンジニアの方向けの内容になります。参考までに、開発チームの人数は4人でAPI側も同じメンバーが担当していました。 はじめに、ネイティブアプリを何で作るか検討した際に出た選択肢は以下の3つでした。 iOSとAndroidそれぞれネイティブのコードで書く ReactNativeを使用する Flutterを使用する 1は全く

    WebエンジニアのチームがReactNativeでアプリをリリースした話 - クラウドワークス エンジニアブログ
    den8
    den8 2018/09/13
    すごく良い記事。端末差やiOS/Android両対応が嫌でネイティブアプリを敬遠してたけどこれ読んで10年ぶりに作ろうかと思った。
  • ロードバイクスタンド研究所 |iWA A01VとCS-650との比較

    「iWA」というブランド まず「iWA」とはどういうブランドなのか?ネットで調べました。2014年に丸八工機株式会社(後述します)が立ち上げたブランド。ウェブサイトを見ると、「A01V」、「A02L」、「ラムダワン」という3つの自転車スタンドがオリジナル商品として掲載されています。今回紹介する「A01V」以外は平置きタイプのメンテナンススタンドです。 丸八工機株式会社とは 丸八工機株式会社は1951年創業し現在に至るまで大手自転車メーカーの生産委託先(いわゆる下請けの町工場)。リアキャリア、バスケット両立スタンド、補助輪、サドルなど、どちらかというとママチャリ向けのアクセサリーがメインでウェブサイトに掲載されています。 「A01V」の特徴 サイクルロッカー社のクランクストッパースタンドCS-650にそっくり! A01V     CS-650 パイプを中間部でつないで高さ調整するところ、2

    ロードバイクスタンド研究所 |iWA A01VとCS-650との比較
    den8
    den8 2018/09/10
    助かった
  • riywo/anyenv: all in one for **env

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    riywo/anyenv: all in one for **env
    den8
    den8 2018/09/09
    ndenvじゃなくてnodenvのほう推奨 https://github.com/riywo/anyenv/issues/38
  • Scala用のDIライブラリAirframeを試してみた - たけぞう瀕死ブログ

    ScalaではJavaと違ってDIコンテナの必要性を感じることがあまりないのですが、フレームワークを作っているとユーザコードにフレームワークが提供するコンポーネントを供給したり、フレームワーク自体を拡張するための拡張ポイントを提供するためにDIコンテナ的なものを使いたいというケースがあったりします。 PlayではGoogle Guiceが導入されていますが、もう少し簡潔でScalaらしいDIコンテナはないものかと思っていたところ@taroleoさんがAirframeというライブラリを開発されていたのを思い出したので試してみました。 github.com 基的にはフィールドインジェクションぽい感じで、DIするフィールドを以下のように宣言しておきます。 import wvlet.airframe._ class AccountController { val accountService =

    Scala用のDIライブラリAirframeを試してみた - たけぞう瀕死ブログ
    den8
    den8 2018/09/09
  • EC2上のAWS CLIで使われている169.254について - 妄想まとめ

    お久しぶりです。ひろたんです。 前々から気になっていたAWS EC2の169.254.169.254について少し遊んでみたのでまとめます。 EC2では、インスタンス内から http://169.254.169.254/ にアクセスすると、そのインスタンスに関する情報が取得できるようになっています。 docs.aws.amazon.com あまり意識したことはないかもしれませんが、インスタンスにIAMロールを結び付けた状態でAWS CLIを使うと内部的にこの169のURLが叩かれる仕組みになっています。 これはインスタンス内で--debugオプションを使ってAWS CLIを実行するとわかると思います。 [ec2-user@ip-172-31-30-197 ~]$ aws s3 ls --debug ~~~ 2018-09-03 11:11:33,898 - MainThread - boto

    EC2上のAWS CLIで使われている169.254について - 妄想まとめ
    den8
    den8 2018/09/07
  • Minimal Cake Pattern のお作法 - Qiita

    追記 (2020-12-27) より基礎的な説明を Minimal Cake Pattern 再考 にまとめました。Minimal Cake Pattern という言葉を初めて聞く人は、こちらの記事を先に読むことをおすすめします。 Scalaにおける最適なDependency Injectionの方法を考察する 〜なぜドワンゴアカウントシステムの生産性は高いのか〜 で紹介されている Minimal Cake Pattern をもう少し詳しく解説します。 Minimal Cake Pattern それ自体は自明なものですが、いくつかの規約に従わないと混乱を招きます。以下の事柄を覚えておくと良いでしょう。 MixIn に extends はいらない trait UsesSomething { def something: Something } trait MixInSomething ext

    Minimal Cake Pattern のお作法 - Qiita
    den8
    den8 2018/09/06
    この記事盛ってなくてよい。等身大の説明がある。
  • Scalaにおける最適なDependency Injectionの方法を考察する 〜なぜドワンゴアカウントシステムの生産性は高いのか〜 - Qiita

    DIを使わない状態ではUserRepositoryというインターフェースが定義されているのにもかかわらず、UserServiceはUserRepositoryImplの参照も持っていました。 これではせっかくインターフェースを分離した意味がありません。 UserServiceがUserRepositoryインターフェースだけを参照(依存)するようにすれば、具体的な実装であるUserRepositoryImplの変更に影響されることはありません。 この問題を解決するのがDIの目的です。 それではDIのインジェクタを加えて、上記のクラス図を修正しましょう。 謎のインジェクタの登場によりUserServiceからUserRepositoryImplへの参照がなくなりました。 おそらくインジェクタは何らかの手段でサービスであるUserRepositoryImpl(Dependency)をクライアン

    Scalaにおける最適なDependency Injectionの方法を考察する 〜なぜドワンゴアカウントシステムの生産性は高いのか〜 - Qiita
    den8
    den8 2018/09/06
    scalaで22万行もあるプロジェクトがまともだとは思えない。
  • 【シェル芸人への道】Bashの変数展開と真摯に向き合う - Qiita

    はじめに 個人的なシェル(スクリプト)あるあるなんですが、変数操作に悩んでいるとBashの 変数展開 って思った以上に色んなことができてしまうことに気がつきます。 「なんかいい感じの書き方ないかなー」 「cut, tr, sed, awk, ...、まぁできるのは間違いないんだけど」 「うーん」ググリ― (10分後) 「えっ、変数展開...?(怪訝)」ポチポチ 「...」カタカタ 「いけるやん!!!」 ってことが結構あります。皆さんもこういった経験少なからずあるのではないでしょうか。 (そして今もまさにそういう記憶・期待があるから、変数展開について少し調べている...そんなところかと推察します) 毎回調べるのも感動があっていいと思うんですが、もはや衝動を押さえきれないので 全部調べたい と思います。 Bashのバージョンは 4.3.48(1) でしたが、そうそう変わるような内容でも

    【シェル芸人への道】Bashの変数展開と真摯に向き合う - Qiita
    den8
    den8 2018/09/03
    前方一致/後方一致以外はほとんど使えていないので何ができるのかをとりあえず覚えておきたい
  • Firebase でバックエンドエンジニアがいらなくなるは正しくない - Diary

    Firebase でバックエンドエンジニアがいらなくなるは正しくない と思っている。 用語定義が曖昧だが、「バックエンドエンジニア」という言葉でなんとなく想像されるものとしては、 Rails とか Laravel とかでデータベースに CRUD する Web アプリケーションを書ける人を指すと思う。違いますかね。そんなに違ってないと思うが。 Firebase でこれらの知識をもつ人が不要か?というとある程度の規模、機能を持つアプリを作ろうと思うとこれは必須になる。 Firebase のデータベースは機能が少なく(とはいえ Firestore はわりと「これで十分じゃん」ではあるが)、なにか複雑なことをしようとすると、すぐに Cloud Functions という機能に頼ることになる。 Cloud Functions はようするに Firebase の Lambda + API Gatewa

    den8
    den8 2018/09/03
  • Firebase Analyticsの真面目なユーザープロパティ戦略 - Qiita

    ユーザープロパティはFirebase運用の一番のボトルネック いきなり怒りから入る文体もなかなかないが、ユーザープロパティはFirebaseの運用を考える上でコアの機能(特にRemote Configと組み合わせてのABテスト)でありながら、ボトルネックになるリスクが非常に高い。 特にやばいのが以下の仕様である。 ユーザープロパティは一度作成したら、ユーザプロパティ名を修正できない。 ユーザープロパティは一度作成したら、削除できない。 ユーザープロパティの作成上限は25個である。 ユーザープロパティ名の文字上限は24文字である。 引用: ユーザー プロパティを設定する setUserProperty() 上記より運用に際し、慎重に戦略を練らなければいけない。 ユーザープロパティで使用されると想定されるのが、そのままの意味だがユーザーのプロパティ(例えば、性別・地域など)、ABテストのフィル

    Firebase Analyticsの真面目なユーザープロパティ戦略 - Qiita
    den8
    den8 2018/08/30
    良いまとめ。
  • エラーメッセージはフォームのどこに表示するべきか

    UX Movementの著者および設立者です。ユーザー体験のデザインスキルの開発を手助けしてよりユーザーフレンドリーな世界のために、このブログを創設しました。 フォームのどこにエラーメッセージを配置していますか? ユーザーの期待する場所にエラーメッセージが置かれていないと、ユーザーはフォーム入力を完了できなくなってしまうかもしれません。 フォーム入力を間違えたら、ユーザーはそれを修正して送信し直すために、なにが間違っていたのかを理解する必要があります。フォームを完了しようと思っていたとしても、それがあまりにも大変であればユーザーは心変わりしてしまうでしょう。 フォームの上か、フィールドのインラインか エラーメッセージの配置場所でもっとも一般的なのは、「フォームの上」と、「エラーのあるフィールドのインライン」という2箇所です。どちらの配置場所が、ユーザーにとってより直感的でしょうか? 調査に

    エラーメッセージはフォームのどこに表示するべきか
    den8
    den8 2018/08/28
  • A compiler plugin makes Scaladoc readable at runtime

    den8
    den8 2018/08/26
    scaladocとswagger(OAS)がredundantだという指摘はその通り。ただscaladocからswaggerを生成するのは蛇の道だと思う。swaggerのほうが表現能力が高いのでむしろswaggerの情報をscaladocとして埋め込む方が筋が良いか?
  • scalafalsexing-kurasuwowan-quan-nili-jie-suru?slide=3

    人類には早すぎる、謎の計算ロジックに立ち向かう / Strugle with the most complicated logic ever

    scalafalsexing-kurasuwowan-quan-nili-jie-suru?slide=3
    den8
    den8 2018/08/25
  • scalafalsexing-kurasuwowan-quan-nili-jie-suru?slide=3

    人類には早すぎる、謎の計算ロジックに立ち向かう / Strugle with the most complicated logic ever

    scalafalsexing-kurasuwowan-quan-nili-jie-suru?slide=3
    den8
    den8 2018/08/25
  • 『シノアリス』リリース当初に発生した“あの連続メンテナンス”の裏で行われていたこととは?【CEDEC2018】 | ファミ通App【スマホゲーム情報サイト】

    講演で登壇したのは、株式会社ポケラボの覚張泰幸氏。覚張氏は2013年の入社から、エンジニアとして『戦乱の侍キングダム』や未リリースの新規アクションRPGなどに参画。今回の公演で扱うタイトルの『SINoALICE ―シノアリス―』(以下、『シノアリス』)にも、エンジニアリーダーとして携わっているという。 覚張氏はまず、大きな話題ともなった『シノアリス』リリース当時に発生した連続メンテナンスについて、対応に当たった当事者として説明を行った。 なお、連続メンテナンスの概要はつぎの通りである。『シノアリス』はリリース後間もなく緊急メンテナンスを開始。翌日には一時的にメンテナンスから脱するも、数時間後には再度メンテナンスに入るという状態が1週間も近く続いていた。 覚張氏はこうした当時の様子をより具体的に紹介するため、メンテナンスが行われたスケジュール表を公開。その内容はというと、ほとんどがメンテナ

    『シノアリス』リリース当初に発生した“あの連続メンテナンス”の裏で行われていたこととは?【CEDEC2018】 | ファミ通App【スマホゲーム情報サイト】
    den8
    den8 2018/08/25
    キモは負荷がうまくバランシングされていなかったこと。IaaSやSaaSを使ってスケーリングできる環境にしてもアルゴリズム側が対応できていないんじゃ意味がない。
  • ツールは解決策ではない | POSTD

    最近、『The Atlantic』に掲載された非常に重苦しい 記事 「The Coming Software Apocalypse」(きたるソフトウェア大惨事)を読み終えました。同記事は最初のうちは、人に傷害を与えたり、人の命を奪ったりした恐ろしいソフトウェアバグについて述べており、いい内容です。しかし、途中から急に残念な展開になっているのです。 同記事の著者はソフトウェア業界の多くの思想的リーダーにインタビューをしましたが、 Light Table 、 モデル駆動工学 、 TLA+ といった新しい技術を生み出したリーダーだけを選んでいます。 私はこうしたツールに何ら反対しているわけではありません。Light Tableプロジェクトに資金提供さえしました。優れたソフトウェアツールは優れたソフトウェアを書きやすくすると思います。しかし、ツールは「大惨事」に対する解決策ではありません。 著者は

    ツールは解決策ではない | POSTD
    den8
    den8 2018/08/24
    ドラマの中とはいえ主任開発者の振る舞いにちょっと感動した。日本ではこのふるまいが美徳であることすら忘れさられてない?
  • サービス利用規約 第9条(ユーザーによる投稿内容の取扱い) - Qiita [キータ]

    第2条(適用範囲・利用規約の変更) 規約は、登録ユーザーと当社の間における、サービスの利用につき生じるすべての法律関係に適用されます。登録ユーザーは規約に同意のうえサービスを利用するものとします。 登録ユーザーがアカウントの登録を行った場合、規約に同意したものとみなします。 当社は、次の各号のいずれかに該当する場合、登録ユーザーの承諾を得ることなく規約の内容を変更(追加を含む)できるものとします。 規約の変更が、登録ユーザーの一般の利益に適合するとき。 規約の変更が、登録ユーザーがサービスの利用登録をした目的に反せず、かつ、変更の必要性、変更後の内容の相当性、変更の内容その他の変更に係る事情に照らして合理的なものであるとき。 当社は、規約の変更を行う場合、変更した規約の効力発生日より1週間前までに、規約を変更すること及び、変更後の規約の内容及び効力発生日を、公式ブロ

    サービス利用規約 第9条(ユーザーによる投稿内容の取扱い) - Qiita [キータ]
    den8
    den8 2018/08/23
  • JavaScript おじさんが教える本当の Modern JavaScript 入門 1 - Qiita

    一部修正しました UdemyReact コース公開してます。(絶対 Udemy の 1200 円割引価格にはしないので、このリンクから買ってもらうのが一番お互いに得です。) Udemy React + Redux コース 発表における Modern JavaScript とは何か Phase 1 として以下の環境での開発ができれば Modern JavaScript に入門できたものとする。 Webpack, Parcel 等の module bundler による "module system" の活用。 ES2015+ や TypeScript といった "Compile to JS *1" の使用。それに伴う Babel によるトランスコンパイルツールの使用。 ESlint, Prettier といった集団開発における、ソース品質安定のためのツール の使用。 ここまでのツール

    JavaScript おじさんが教える本当の Modern JavaScript 入門 1 - Qiita
    den8
    den8 2018/08/23
    第8条(禁止事項) 3. (1)宣伝や商用を目的とした広告・勧誘その他の行為。ただし、当社が本サービス上で別途定める場合はその限りではありません。
  • AWS運用でよく聞く不安とその対策を書き出してみた | DevelopersIO

    はじめに 皆さまがシステムを運用にするあたり、様々な不安を抱えていらっしゃると思います。 そういったよくある「不安」を書き出し、解消するための対策や参考ページなども記載しましたので、記事をご覧いただいている皆さまには抱えている不安を淡々と潰していただければと思います。 【ケース1】大量のアクセスによる高負荷への不安 近日中に Web サイトの広告を出す予定だが、現状のままで増加するアクセスに対応できるのか不安がある 以下のような対策が考えられます ELB(Elastic Load Balancing)を使用し、Webサーバー(Amazon EC2)の複数台構成にする アクセス数や負荷に応じて自動で Webサーバー(Amazon EC2)の台数を増やす(スケールアウト)、減らす(スケールイン)ために AWS Auto Scaling を使用する ELB の暖機申請(予め AWS へ連絡して

    AWS運用でよく聞く不安とその対策を書き出してみた | DevelopersIO
    den8
    den8 2018/08/22
    コンサルなのにこういうのを率先してまとめて他のエンジニアでも実践しやすいようにするclassmethodの姿勢は素晴らしい
  • sbtでMavenリポジトリにpublishする - たけぞう瀕死ブログ

    mirage-scalaはSourceForge.jpのProject AmaterasのMavenリポジトリにデプロイしています。このリポジトリへのpublishはscp(ssh)経由で行う必要があり、さらに認証は鍵認証となっています。 というわけでbuild.sbtはこんな感じにしてみました。 publishTo := Some(Resolver.ssh("amateras-repo-scp", "shell.sourceforge.jp", "/home/groups/a/am/amateras/htdocs/mvn/") as(System.getProperty("user.name"), new java.io.File(Path.userHome.absolutePath + "/.ssh/id_rsa"))) sbt publishを実行するとIvyがパスフレーズを入力する

    sbtでMavenリポジトリにpublishする - たけぞう瀕死ブログ
    den8
    den8 2018/08/21