tdrk18のブックマーク (911)

  • 雰囲気で乗り切っているひとのためのAndroidビルド高速化ノウハウ|mhidaka

    mhidakaです。久しぶりにAndroidアプリ開発の技術記事です。タイトルの「雰囲気で乗り切っているひとのためのAndroidビルド高速化ノウハウ」は書いている間にどんどん長くなってしまってGradleビルドシステム、CI/CD、ビルド時間等の計測手法という3つの内容をカバーするものになりました。 今回はそのなかから抜粋して、1つめのGradleビルドシステムを取り上げます。Androidアプリのビルドが早くなる(なった)Gradle設定を紹介します。プロジェクトルートにあるGradleビルドプロパティ設定値を変えるだけなので開発プロジェクトでも試しやすいと思います。いけそうなら使ってみてください(既に導入してたら開発プロジェクトの感度が高い…!雰囲気は卒業できています!)。 Gradleビルドキャッシュを使おうGradle 7.1.x以上 / Android Studio Bambl

    雰囲気で乗り切っているひとのためのAndroidビルド高速化ノウハウ|mhidaka
    tdrk18
    tdrk18 2021/12/28
  • 中日がソフトバンクから岩嵜翔の獲得を発表!FA移籍・又吉の人的補償 立浪監督「必要な戦力」(デイリースポーツ) - Yahoo!ニュース

    tdrk18
    tdrk18 2021/12/27
  • for文のforはなぜforなのか? - yapattaのブログ

    よく考えるとプログラミング言語で当たり前に使っているfor文のforは不思議な命名だ。 他のループで使う、whileやloopは繰り返しをする意味が含まれるからまだわかる。一方forは個人的なイメージではあるがループに関する意味は無さそうだ。 という感じになぜforなのか疑問が湧き上がってきた。 そこで今回はfor文のforはなぜforになったのかを調べてみた。 因みに一番最後に結論が書かれているので結論だけ気になる方は最後だけ見て頂けたら。 この結論は著者のyapattaの推論も含まれている。何か反論、意見があったら気軽にコメントして欲しい。自分が気づかなかったポイントを知れたら面白い。 まずforに一応ループ周りの意味が含まれるか辞書で調べてみた。自分がただforという単語に反復的な意味が含まれていることを知らなかったという可能性もある。 ejje.weblio.jp 10番目の意味で

    for文のforはなぜforなのか? - yapattaのブログ
    tdrk18
    tdrk18 2021/12/27
  • 食べログの大規模なエンジニア組織を段階的に改善していく取り組み - Qiita

    こんにちは、べログシステム部長の京和です。 昨年のアドベントカレンダーでは 「べログの大規模なレガシーシステムを段階的に改善していく取り組み」 と言う記事で技術的な取り組みを中心に紹介しました。 今年のアドベントカレンダーでは、べログのエンジニア組織を段階的に改善していく取り組みについてご紹介します。 べログの組織構造 べログの組織はシステム、営業、ビジネスと言った機能ごとに組織が分かれる、いわゆる機能別組織の組織構造を採用しています。 2021年12月現在のべログの組織は、公式な組織図としては上記の機能別組織を維持しながら、内部ではマトリクス型組織の要素を一部に導入したハイブリッドな組織形態となっています。 今も試行錯誤中の段階ではありますが、現在に至るまでの変遷を、 システム部門を機能別組織として最適化する マトリクス型組織によるクロスファンクショナルチームの導入 「冒険

    食べログの大規模なエンジニア組織を段階的に改善していく取り組み - Qiita
    tdrk18
    tdrk18 2021/12/27
  • モダンな技術と開発戦略で挑むABEMA Androidアプリのリニューアル | CyberAgent Developers Blog

    ABEMAのNativeチームでAndroidアプリの開発を担当している木永(@fuji_kinaga)と國師(@ronnnnn_jp)と高鼻(@go_takahana)です。 CyberAgent Developers Advent Calendar 2021 24日目のクリスマスイブは、ABEMAで行われたリニューアルプロジェクトについて、Androidアプリ開発の内容に特化してお話します。 目次 リニューアルプロジェクトの概要 リニューアルプロジェクトの開発項目 開発トピック1: ホーム画面のUI実装 開発トピック2: オンボーディングのアクセシビリティ対応 開発トピック3: リリースに至る開発戦略と開発Tipsのまとめ おわりに リニューアルプロジェクトの概要 始めに、2021年、ABEMAで行われた大規模なUI/UX刷新のリニューアルプロジェクト(通称: Phoenix) につい

    モダンな技術と開発戦略で挑むABEMA Androidアプリのリニューアル | CyberAgent Developers Blog
    tdrk18
    tdrk18 2021/12/25
  • Perlと型とコンテキスト - Qiita

    この記事はPerl Advent Calendar25日目の記事です。 Perlは動的型付き言語として一般的に知られています。実は、そのデータ型の定義とその使い方は一般的な他の動的型付き言語とは考え方が全く異なります。 そして、残念ながらそのデータ型について正しく理解していらっしゃる方はそこまで多くいらっしゃらないと思います。 今回は、そんなPerlにおけるデータ型と、それを用いてデータを扱う上で非常に重要になってくる概念であるコンテキストについて簡単に解説します。 なお、自分は一般的な型システムの概念そのものを正しく理解できている自信はないので、そのあたりの説明に関しておかしな記述があればその点へのツッコミは特に歓迎します。 また、Type::TinyなどPerlの上に作られた型の仕組みについては今回は触れません。 一般的なデータ型 一般的なデータ型の定義としては、たとえばRubyでは以

    Perlと型とコンテキスト - Qiita
    tdrk18
    tdrk18 2021/12/25
  • Nintendo Switch™ ネイティブバイナリへの Go コンパイルを成功させた話

    記事は「Go Advent Calender」25 日目の投稿です。 Happy Holidays! EDIT (2022-01-03): There is an English version of this article. tl;dr いままでは Go プログラムを Nintendo Switch 上で動かすために WebAssembly に一度変換し、それを C++ に変換してコンパイルするということを行ってきました。今回、 Go の Nintendo Switch 向けネイティブコンパイルに成功し、実際に手元でゲームを動かすことができました。手法として、システムコール呼び出しを C の関数呼び出しに置き換えるように -overlay オプションを指定してビルドしました。また、 -overlay オプションに指定する JSON を生成するパッケージ Hitsumabushi を開

    Nintendo Switch™ ネイティブバイナリへの Go コンパイルを成功させた話
    tdrk18
    tdrk18 2021/12/25
  • Swift - Visual Studio Marketplace

    Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter. Swift for Visual Studio Code This extension adds language support for Swift to Visual Studio Code. It supports: Code completion Jump to definition, peek definition, find all references, symbol search Error annotations and apply suggestions from errors Automatic generation of launch configurations for debugging with C

    Swift - Visual Studio Marketplace
    tdrk18
    tdrk18 2021/12/25
  • 借りたものはきっちり返す。技術的負債への向き合い方 - Gaudiy Tech Blog

    はじめまして。エンタメ領域のDXを推進するブロックチェーンスタートアップ、Gaudiyエンジニアをしている@kaa_a_zuです。 早速ですが、質問です。みなさんは、所属している組織のコードを誇りに思い、この先数十年間に渡って使い続けることができると確信していますか? 私は、この質問をされた場合、顔を背ける自信があります。今回は、私と同じようにこの質問に対して "YES" と答えることが出来なかった人たち、そして 「リファクタリングをしたい」と思っているエンジニアが在籍する組織の偉い人たち に読んでもらいたい内容を書こうと思います。 テーマは、技術的負債の返済方法と技術的負債をためない方法についてです。(かなり長いので、HOWだけ知りたい方は4章から読んでいただけたらと思います。) 1. 一般的な技術的負債とは 2. なぜ技術的負債が発生するのか 3. 技術的負債がもたらす問題点 3-1

    借りたものはきっちり返す。技術的負債への向き合い方 - Gaudiy Tech Blog
    tdrk18
    tdrk18 2021/12/24
  • 食べログアプリでの技術的負債との向き合い方 - Qiita

    こんにちは。べログでAndroidアプリ開発をしている @sada と申します。 この記事は べログ Advent Calendar 2021 22日目の記事です。 はじめに 先月、TECH HILLS #1 というイベントで登壇させていただきました。 その時の資料はこちらです。 今回は上記資料でも触れている「レガシーコードと向き合う辛さ」についてお話できればと思います。 イベントにご参加いただけた方は発表やその後のパネルディスカッションなどでお話ししたような内容も含まれるかと思います。その点はご了承ください。 簡単にチーム紹介 私はべログシステム部アプリ開発部基盤チームに所属しています。 アプリ基盤チームはリファクタリングや環境改善を専門にしたチームで、以下のような業務を行っています。 OSバージョンアップ対応 ライブラリ、ツールの継続的なバージョンアップ・差し替え アーキテクチ

    食べログアプリでの技術的負債との向き合い方 - Qiita
    tdrk18
    tdrk18 2021/12/24
  • 「開発環境の使用状況分かるくん」を作って冗長コミュニケーションを無くした話 - 生涯未熟

    記事は ミクシィグループ Advent Calendar 2021 の22日目の記事です。 前置き 私が現在所属しているプロジェクトでは「アプリケーション × 4 + 開発環境 × 3」という環境で開発しており、機能開発後のQA作業などのため常に3つある開発環境がどこかしら使われているという状況でした。 (ちなみに Fansta(ファンスタ) というプロジェクトですので、興味のある方は @syossan27 までご連絡を!) そのため開発環境の使用状況をtrelloを使い管理していましたが、新しく開発環境へデプロイする際にはSlackでデプロイしても大丈夫か尋ねる、という流れが定常化しておりました。 このままでも良いのですが、ここはエンジニアとしてこのような冗長コミュニケーションを無くすために技術を使おうじゃないかと思い立ち、カッとなって掲題の「開発環境の使用状況分かるくん」を作成し始め

    「開発環境の使用状況分かるくん」を作って冗長コミュニケーションを無くした話 - 生涯未熟
    tdrk18
    tdrk18 2021/12/24
  • リポジトリ内のソースコードを機械的にリファクタリングし続けるスクリプトを作る - hitode909の日記

    こんにちは、はてなのマンガチームでPerlを書いているid:hitode909です。 先日書いた、Perlのソースコードをリファクタリングし続けるスクリプトについて紹介します。 @EXPORTを撲滅したい 普段Perlを書くときに苦労していたのがテストを書くことで、さまざまなテスト用のヘルパ関数がどこからexportされているかわからない、という困りごとがありました。 私たちのプロダクトではマンガビューワを作っているので、テスト用の作品をcreate_seriesで作り、作品に紐づくエピソードをcreate_episodeで作り、エピソードに対してテストを書く、というような流れでテストを書くことが多いです。 以下の例ではGiga::Test::Core::Seriesからcreate_seriesがexportされていますが、込み入ったテストでは、このようなuseが数十行に渡って続き、どこ

    リポジトリ内のソースコードを機械的にリファクタリングし続けるスクリプトを作る - hitode909の日記
    tdrk18
    tdrk18 2021/12/23
  • ミクシィでインターンした話

    2021年の8/16から9/10までDive into mixi GROUPというインターンシップでmixiグループのminimo事業部にてiOSエンジニアとしてインターンした記録です。 ミクシィのオフィスから見えるG社 tl;dr ミクシィは最高なので全員応募しましょう! 選考 2021年の夏にインターンする先をさがしていたところ、ミクシィのインターンの募集を見つけて応募しました。 書類選考通過の連絡が来て一安心した後、面接の連絡が来ました。今回のインターンシップでは人事の方との面接、社員の方との技術面接、配属候補の組織の方との面接のプロセスがありました。 技術面接までは問題なく進んだのですが、最後の配属先候補の方との面接ではあまり候補の組織とのマッチがないので不合格ということになってしまいました。 ただその後で、技術面接をしていただいた社員の方が所属していたminimoで再面接していた

    tdrk18
    tdrk18 2021/12/22
  • 超凄いIPv6解説書(488ページ)を無料配布します!:Geekなぺーじ

    「プロフェッショナルIPv6 第2版」を無料配布します。2018年7月にプロフェッショナルIPv6初版を発売&無償配布開始しました(すごいIPv6を無料配布)。初版発売開始から3年、さらにパワーアップした「プロフェッショナルIPv6 第2版」がついに完成しました! 書を企画して、少しずつ文章を書き溜めはじめた2011年から10年近くかけて完成した488ページにおよぶ「プロフェッショナルIPv6 第2版」をお楽しみください。 プロフェッショナルIPv6第2版の構成 プロフェッショナルIPv6第2版は5部構成になっています。 第1部は「インターネットとIPv6の概要」というタイトルで、IPv6の視点からインターネット自体の仕組みを復習し、そのうえで、詳細の説明に入る前に把握しておくべきIPv6の概要として、次のような事項を解説しています。 従来のIPv4アドレスとは大きく異なるIPv6アド

    tdrk18
    tdrk18 2021/12/22
  • Swift で BudouX を使ってアラートの改行位置を整える

    BudouX.swift を作りました Google の BudouXSwift に移植しました。 BudouX とは? BudouX をみていただくと分かるとおり、日語の改行位置を日語として自然な位置で改行されるようにするツールです。機械学習ベースで分かち書きを行います。スタンドアロンで動作し学習データも15KB程度で軽量なのが特徴です。家 BudouX は主に Web 開発向けの機能を有しています。HTML を生成したり、Web Component としても動作するようになっています。このあたりは以下のアーティクルを参照いただくと良いかと思います。 日のWEBに革命をもたらす BudouX で自動文字組みを行う。しかも、Web Componentとして なぜ Swift に移植したのか? 僕は普段 iOS アプリ開発をしています。これまでの開発経験の中で度々以下のような経

    Swift で BudouX を使ってアラートの改行位置を整える
    tdrk18
    tdrk18 2021/12/22
  • GitHub Actions self-hosted runnerで自宅サーバのデプロイをしたら最高だった

    モチベーション 僕は自宅のサーバでいくつかの自宅用サービスを動かしています。全てのサービスはコンテナ化してあり、ホストマシン自体にはdockerとgitといくつかのツールぐらいしか追加していません。そんなサーバを前提にした話です。 前々から自宅サーバで動かしているサービスの継続的デリバリー( 以下CD )をしたいと思っていましたが、最初に思いついた幾つかの方法はどれも「これだ!」って感じがしませんでした。以下、思いついた方法です。 CircleCIにSSH鍵を登録してCircleCIから自宅サーバにSSHしてデプロイコマンドを叩く 外部に自宅サーバのSSH鍵を渡すのは怖い SSHのポート開くのもちょっと怖い githubからのwebhookを受け取ってデプロイコマンドを叩く webhookを受け取ってデプロイコマンドを叩くプログラム作らないといけない? CDのログどうやって見る? 自宅サー

    GitHub Actions self-hosted runnerで自宅サーバのデプロイをしたら最高だった
    tdrk18
    tdrk18 2021/12/22
  • モバイルアプリにおける読み込み処理周りのUIパターンとSwiftUIによる実装例

    どのモバイルアプリを作るにあたっても、何かしらコンテンツを読み込んで表示するという処理があると思います しかしながら、実際にデザインデータとして表現されるのは正常に読み込めた状態 (Ideal State) のみで、読み込み中や読み込み失敗時のUI表現についてはデザインデータとして表現されないケースも多いかと思います (https://www.scotthurff.com/posts/why-your-user-interface-is-awkward-youre-ignoring-the-ui-stack/ より) 記事では、モバイルアプリにおいてコンテンツを読み込んで表示するにあたって、どのようなUIパターンが考えられるかについて網羅的に紹介します さらに、それらUI表現のSwiftUIによる実装例もご紹介します (こちらの記事は ミクシィグループ Advent Calendar 2

    モバイルアプリにおける読み込み処理周りのUIパターンとSwiftUIによる実装例
    tdrk18
    tdrk18 2021/12/21
  • UIView で Property Wrapper を導入する - Toyship.org

    UIViewでもこっそり Property Wrapperが使えるようになっていました。 (なお、iOS15からです。) UIViewの表示の更新 今まで、UIViewの見た目を変更するには、View自体を作り直すか、Viewの更新処理を手動でよんだり(setNeedsDisplay)していました。 iOS15から導入された UIViewInvalidating を使えば、値を更新するだけで表示も更新されるようになります。 指定したい変数に下記のように@Invalidatingをつけ、必要なInvalidationTypeを設定するだけなので簡単ですね。 @Invalidating(wrappedValue: "Hello", .display) var title: String @Invalidating(wrappedValue: CGPoint.zero, .display, .l

    UIView で Property Wrapper を導入する - Toyship.org
    tdrk18
    tdrk18 2021/12/20
  • テクノブレーン被害者アドベントカレンダー Day 19 - その手の平は尻もつかめるさ

    この記事はテクノブレーン被害者アドベントカレンダーの19日目として書かれています。このアドベントカレンダーは今まさに作りましたから、参加者は自分しかいません。他に被害者がいたら続きを書いておいてください。 この記事は特定の企業に対する苦情および批判が含まれます。お前だ、テクノブレーン。 こんなことが横行していては、「リクルーティング」という職業の価値が著しく毀損されてしまうし、ソフトウェアエンジニアリング産業自体がスポイルされていってしまう。 明確に、俺は強く怒っている。お前たちは「駄目」だ。 TL;DR テクノブレーンは当に悪質なリクルーティング企業なので使ってはなりません。 テクノブレーンから電話が来ましたか? 奴らはカモフラージュしてきますが相手をしてはいけません。 テクノブレーンを貴方の所属する企業が採用目的で利用していますか? こんな邪悪な企業を使っているようでは自身の会社も邪

    テクノブレーン被害者アドベントカレンダー Day 19 - その手の平は尻もつかめるさ
    tdrk18
    tdrk18 2021/12/19
  • なぜあなたのA/Bテストはうまくいくのか?A/Bテストの分析で注意すること | CyberAgent Developers Blog

    概要 同じ介入を比較するA/Aテストで統計的に有意な差が出てしまうケースがある その原因は、A/Bテストの指標の設計に失敗していることかもしれない この問題の対処法としてユーザベースCTR、デルタメソッド、クラスターロバスト標準誤差を紹介する これらの手法は実務で運用する上では一長一短 はじめに AI事業部Dynalystの伊藤、小売セクターの藤田(@6km6km)です。 DynalystはReal Time Biddingと呼ばれる広告オークションにおいて広告枠の買付を行うプラットフォーム(DSP: Demand Side Platform)です。DSPでは、ユーザに広告を表示する際に複数あるクリエイティブの候補からひとつクリエイティブを選ぶ必要があり、その選択ロジックにバンディットアルゴリズムを用いています。(参考リンク1, 2) 以下では、バンディットアルゴリズムのA/Bテストをす

    なぜあなたのA/Bテストはうまくいくのか?A/Bテストの分析で注意すること | CyberAgent Developers Blog
    tdrk18
    tdrk18 2021/12/18