タグ

ブックマーク / fromatom.hatenablog.com (34)

  • 2022年の買ってよかったもの。 - 文字っぽいの。

    良くて使い続けてるものだけ書いていく。 デスク周り fromatom.hatenablog.com デスク周りをどかっとリニューアルした。コード周りもいい感じにまとまったし、デスクの色もダークブラウンになって満足している。 エスプレッソメーカー ついに買ってしまった。 デロンギ(DeLonghi)スティローザ エスプレッソ・カプチーノメーカー EC235J-BK ブラック DeLonghi(デロンギ)Amazon これがかなり良い。エスプレッソというものがそもそも旨い。 すぐに飽きてしまうかと思ったけど、なんだかんだで定期的に飲んでいる。 朝起きた時や、後や、仕事中に眠くなった時などに、エスプレッソをガッと入れてグッと飲むと最高。 のんびりしたいときは、レンチンしたミルクを入れればカフェラテも作れる。 フォームミルクは面倒なので作らなくなった。だってミルクぶちこめば味同じだし。 コーヒー

    2022年の買ってよかったもの。 - 文字っぽいの。
    FromAtom
    FromAtom 2022/12/21
  • SwiftでURLやファイル拡張子から画像か動画か判別する。 - 文字っぽいの。

    やりたいこと WKWebViewの func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Void) でタップされたリンクが画像ならAという処理、動画ならBという処理をしたいという事がある。WebViewだけでなく、localのメディアに対するfile://path/to/fileというURLを取得した場合も同様に知りたいし、なんならファイル名だけ(hoge.png)だけからも知りたい。 よくある解決方法 ざっくり調べると拡張子をリストしておいて、それと合致するか調べる方法がよく出てくる。 let imageUrl = URL(string: "file:

    SwiftでURLやファイル拡張子から画像か動画か判別する。 - 文字っぽいの。
    FromAtom
    FromAtom 2022/08/09
  • 「僕の考えた最強のデスク環境」をアップデートした。 - 文字っぽいの。

    2年前にデスク環境をがっちり整えた。 fromatom.hatenablog.com そこから時は経ち、書斎の棚を処分したり新しくWindowsPCを購入したりと環境も変わってきたので、アップデートをした。 この記事では、この状態になるまでに行った作業や、使った製品を紹介していく。 デスクのリメイク 前まで使っていたデスクはこんな感じの白いものだった。 この白い色にだんだん飽きてきたので、暗い茶色のデスクが欲しくなった。KANADEMONOだったり、PREDUCTSだったりと世の中にはおしゃれなデスクが様々あるけれどお値段が高すぎるのと「エンジニアなら既製品買わずにDIYできるやろ」とも思ったのでリメイクすることにした。 使った商品はこれ item.rakuten.co.jp いわゆるリメイクシートというやつで、この商品はシールになっているので接着剤が必要なくて便利。デスクの大きさにもよる

    「僕の考えた最強のデスク環境」をアップデートした。 - 文字っぽいの。
    FromAtom
    FromAtom 2022/06/27
    最強環境になりました。
  • 横断型テックリードという働き方 - 文字っぽいの。

    みなさんこんにちは。FromAtomです。 自分は今『モバイルアプリ分野テックリード』という肩書で仕事をしています。世の中のテックリードの皆様におかれましては「"分野" テックリードって?」「横断型テックリードって?」という感じかと思います。そんなテックリード業を2019年末から2年ちょっとやってきたので、この記事では自分がやっていることの説明と、分野テックリードが置かれた経緯を紹介します。 なぜモバイルアプリ分野テックリードが必要になったのか 弊社では、全部で12つのiOS・Androidアプリを開発しています。これだけあると、各アプリのプロダクトオーナー毎に意思決定の精度にばらつきが出てきます。例えば、Appleのレビューリジェクトに対する姿勢が異なると「まぁ適当にごまかして通せば勝ちや!」というチームと「BANリスクもあるからちゃんとやるか。面倒だけど。」というチームが生まれる可能性

    横断型テックリードという働き方 - 文字っぽいの。
    FromAtom
    FromAtom 2022/02/08
    自分がやっている「モバイルアプリ分野テックリード」という役職について書きました。
  • 木製のパームレストを自作した。 - 文字っぽいの。

    こんな感じ。 経緯 自分はLogicoolのG913 TKLというキーボードを使っている。 Logicool G ロジクール G ゲーミングキーボード テンキーレス ワイヤレス G913 TKL 薄型 GLスイッチ リニア 静音 日語配列 LIGHTSPEED 無線 Bluetooth 接続対応 LIGHTSYNC RGB G913-TKL-LNBK 国内正規品 Logicool G(ロジクール G)Amazon 薄型なので、パームレストなしで使っている人が多そうだけど、個人的にやっぱりパームレストが欲しかったので色々試してみた。 とりあえず純正品っぽいやつを探して購入。 ロジクール パームレスト MX10PR グラファイト キーボード用 国内正規品 Logicool(ロジクール)Amazon 使ってみたけども、柔らかいし低いしで微妙だった。「あってもなくても同じでは?」という感じ。 次

    木製のパームレストを自作した。 - 文字っぽいの。
    FromAtom
    FromAtom 2021/09/18
  • Xcode12時代のライブラリ管理ツール選定 - 文字っぽいの。

    背景 iOSDC 2020でMint及びiOSアプリ開発時のライブラリ管理について執筆し、同様の内容をZennでもとして販売した。 zenn.dev しかし、Xcode12の正式版がリリース後に、執筆時からライブラリ管理を取り巻く状況が大きく変わってきたため、ここに筆を執った次第である。 はじめに この記事はXcode12を利用してiOSアプリ開発を行う前提で執筆されている。また、情報は2020年12月25日現在のものとなる。 iOSアプリ開発を行う場合、ライブラリ管理には CocoaPods Carthage Swift Package Manager(以下 SwiftPM) Manual が選択肢として挙げられる。Manualは管理といえるのか怪しいため今回は省略する。なお筆者は、 業:Carthage, CocoaPods, Mint 1 副業SwiftPM, Mint 個人開

    Xcode12時代のライブラリ管理ツール選定 - 文字っぽいの。
    FromAtom
    FromAtom 2020/12/25
    「なーにがイブデートだ。こちとらDerived Dataじゃ。」って序文があったんですがクリスマス公開だったので消しました。
  • SwiftUIでUILabelやNSAttributedStringを利用せずに文字装飾をがんばる - 文字っぽいの。

    1つのText 内で文字色を変えたり、太字にしたり、下線を入れたりと、文字装飾を行いたいことがあると思います。UIKit時代ではUILabelやUITextViewとNSAttributedStringを利用して実装していたと思います。 今回は例として複数の tag を , で結合して表示したい場合考えていきます。さて、なにも装飾せずに結合して表示するのはとても簡単です。 struct ContentView: View { let tags = Array(repeating: "tag", count: 10) var body: some View { Text(tags.joined(separator: ", ")) } } struct ContentView_Previews: PreviewProvider { static var previews: some View

    SwiftUIでUILabelやNSAttributedStringを利用せずに文字装飾をがんばる - 文字っぽいの。
    FromAtom
    FromAtom 2020/05/11
    SwiftUIのTextは"+"で結合できるの案外知られてなさそうだったので書きました。
  • GitHub謹製のghコマンドとpecoを組み合わせて、高速にPull Requestのブランチにチェックアウトする。 - 文字っぽいの。

    GitHub公式からghというCLIツールがbetaリリースされています。まだbeta版ですが、非常にシンプルで使いやすいCLIツールです。 この記事では、その ghとpeco を利用して、高速にPull Requestに対応するブランチにチェックアウトする方法を説明します。 コードレビューをお願いされて「checkoutして挙動を確認したいな」という時に、ブラウザでGitHubを開いてブランチ名をコピーする必要がなくなるので非常に便利です。 様子 手順 macOS 10.15.4での手順になります。まず、pecoとghが入っていない場合は準備します。 $ brew install peco $ brew install gh 次にこちらを .zshrc に追記します。 function peco-checkout-pull-request () { local selected_pr_i

    GitHub謹製のghコマンドとpecoを組み合わせて、高速にPull Requestのブランチにチェックアウトする。 - 文字っぽいの。
    FromAtom
    FromAtom 2020/04/01
    ghコマンド便利だからみんな使うと良いよ
  • Slackのカスタム絵文字をesaにらくらくコピー!「Utsushie(写し絵)」シリーズを作りました。 - 文字っぽいの。

    はじめに 企業やグループでSlackを使っていると、カスタム絵文字をいっぱい登録しますよね。そしてesaも使っていると、Slackで登録したカスタム絵文字と同じものがesaでも使いたくなってきます。 そこで、Slackに登録されたカスタム絵文字をかんたんにesaにもコピーできる「Utsushie(写し絵)」シリーズを作りました。この記事ではUtsushieシリーズの紹介をしたいと思います。 Utsushieシリーズ Utsushieシリーズには Utsushie Utsushie-Stream の2つがあります。それぞれできることや使い所が違うので解説していきます。 Utsushie github.com UtsushieはSlackに登録されているCustom EmojiをesaにコピーするCLIツールです。なお、esaのカスタム絵文字仕様 に準拠していないCustom Emojiは無視

    Slackのカスタム絵文字をesaにらくらくコピー!「Utsushie(写し絵)」シリーズを作りました。 - 文字っぽいの。
    FromAtom
    FromAtom 2020/02/04
  • #esa の記事が古いものか一発で分かるChrome拡張「esa鮮度」をリリースしました。 - 文字っぽいの。

    様子 こんな感じで、よくある「最終更新日からn日経ってます」という表示が出ます。便利。 なお、README更新されてないやんみたいな意図は全く無いのであしからず。 インストール こちらからどうぞ。 chrome.google.com 実装 github.com 簡単なコードですが、GitHubで公開しています。 まとめ ドキュメントが古いとつらいことが多い世の中ですが、このChrome拡張を入れたらぱっと見で分かるようになって便利です。 Chrome拡張なので、ブラウザに入れてしまえばすべてのesaグループで使えるのも便利です。 そうそう、Yakitori, Kujaku はいい感じのネーミングができたんですが、esa鮮度は難しかったですね。 いろいろ考えたうえで諦めて、「英語でカッコつけるより、ダサくても分かりやすいほうがええわい!」と考えてesa鮮度という名前になりました。ちなみに、ア

    #esa の記事が古いものか一発で分かるChrome拡張「esa鮮度」をリリースしました。 - 文字っぽいの。
    FromAtom
    FromAtom 2019/06/17
    作りました。
  • 「いい温泉に入る」を目的としたストイック家族旅行に行ってきました。 - 文字っぽいの。

    背景 嫁の友人4人が泊りがけで我が家に遊びに来ることに。コミュ障な旦那は家から逃げ出すため、弟を召喚して温泉旅行を計画。せっかくだからと両親も誘って家族旅行にした。 takachi.hatenablog.jp この記事をよんで「山梨ええやん」となったので、 日帰り温泉を旅のメインとする 宿はビジネスホテルで安く済ませる 良質な温泉が主目的だから観光はプランに入れない(偶然通りがかったら寄る程度) というストイックな家族旅行プランが立案・施行された。 1日目 甲府駅 新宿駅から1時間半ほど特急あずさに乗って到着。初めて降りた。 クソデカ武田信玄が迎えてくれる。 ここから両親が乗ってきた車と合流する。ここから解散までは車移動。 自分で運転したかったので、コンビニで1日保険に加入した。 奥藤店 甲府駅前店 昼飯はほうとうをべに。ぶっちゃけほうとうってそんなに好きじゃないんだけど、 観光なので

    「いい温泉に入る」を目的としたストイック家族旅行に行ってきました。 - 文字っぽいの。
    FromAtom
    FromAtom 2019/01/15
    温泉最高だったので書きました。
  • Storyboardを利用したViewControllerのインスタンス生成を楽にする - 文字っぽいの。

    背景 1つのStoryboardに1つのViewControllerという運用をしていると、ViewControllerのインスタンス生成するコードを書くことが多くなると思います。雑に書くと、 let storyboard = UIStoryboard(name: "SomeViewController", bundle: .main) let vc = storyboard.instantiateInitialViewController() as! SomeViewController present(vc, animated: true, completion: nil) こんな感じでViewControllerを作ってモーダル表示できますね。 さて、これだと生成する度にこのコードを書かないといけないので大変です。なので生成したいViewController側に書いちゃいましょう。

    Storyboardを利用したViewControllerのインスタンス生成を楽にする - 文字っぽいの。
    FromAtom
    FromAtom 2018/11/12
  • 『吉田類の酒場放浪記』で紹介されたお店をGoogle Mapにまとめました。 - 文字っぽいの。

    こちらをご覧ください。 初めていく駅で飲み屋で迷ったときは「吉田類 駅名」で検索しろって教えてくれた知らない人 ありがとう— セキグチ (@sekigucheap) 2017年12月12日 そうです。酒飲みが愛する情報番組である『吉田類の酒場放浪記』は、最高便利なのです。最高便利なの番組の情報がもっと簡単に使えるように、えっさほいさとGoogle My Mapにまとめたので共有します。 drive.google.com このマップを使えば、どんな駅に降り立っても酒を楽しむことができます。ご自由にご利用ください。 備考 吉田類の酒場放浪記はHuluで見ることができます。 www.happyon.jp 掲載内容に問題がある場合は、ご連絡お願い致します。

    『吉田類の酒場放浪記』で紹介されたお店をGoogle Mapにまとめました。 - 文字っぽいの。
    FromAtom
    FromAtom 2018/03/05
    エッサホイサまとめました。
  • 嫁の転職を支える技術 - 文字っぽいの。

    嫁を面接した企業が「あれ、これって……。」となる画像 はじめに 最近嫁が転職活動をしていたのですが、デザイナーは転職活動をする際に「ポートフォリオ」なるものが必要になるそうです。Webデザイナーである嫁は、このポートフォリオをWebサイトとして製作したいとのこと。 エンジニアリングを生業とする旦那として、ここは一肌脱がねばと思い、ポートフォリオサイトの構築をしました。 コントラクター(僕)のスペック iOSエンジニア Webアプリは過去にやっていた クライアント(嫁)のスペック デザイナー(仕事はWeb系) Ruby, JavaScriptはほぼ書けない HTML, CSSは書ける Git, GitHubは使える クライアント(嫁)の要望 パブリックに公開するのではなく、履歴書に添えたい URLを知っている人しかアクセスしない パスワード(BASIC認証)が欲しい デザインはいちから自分で

    嫁の転職を支える技術 - 文字っぽいの。
    FromAtom
    FromAtom 2018/02/15
  • "carthage-verify" を使って `carthage bootstrap` 忘れを防ぐ - 文字っぽいの。

    やりたいこと CocoaPodsがビルド時に「pod install しないとだめだよ」とエラー吐いてくれるのが便利なので、Carthageでも同じことをやりたい。 実現方法 Carthage公式のworkflowsというリポジトリに carthage-verify というスクリプトがあるので、そちらを使います。 github.com 手順 まずは carthage-verify をcloneするなりDownloadするなりして、手元に持ってきます。ディレクトリ構成としては、下記のように scripts ディレクトリを作って、その中に入れてあげます。 . ├── sample.xcodeproj ├── sample.xcworkspace └── scripts └── carthage-verify <- [コレ!] 次にBuild PhasesにScript Phaseを追加していき

    "carthage-verify" を使って `carthage bootstrap` 忘れを防ぐ - 文字っぽいの。
    FromAtom
    FromAtom 2018/01/05
    Carthageでバージョン管理している人向けに便利情報を書きました。
  • 【esa】社内ドキュメントツールのホッテントリを分かるようにしたら捗った話 - 文字っぽいの。

    この記事はピクシブ株式会社 Advent Calendar 2017の20日目です。 昨日はおしゃれな動画を作るマンであるまつらいの inside.pixiv.blog でした。かっこよくてずるいですね。 こんにちは、Atomです。普段はiOS EngineerとしてSwiftを書いたり、9%チューハイを片手に街を散歩したりしています。 さて、弊社ではesaを利用したポエム駆動開発が活発に行われています。esaは、 esaは「情報を育てる」という視点で作られた 自律的なチームのためのドキュメント共有サービスです。 というサービスで、社内での情報共有を気軽に行うことができます。詳しい利用事例やポエム駆動開発についてはこちらの記事をご参照ください。 gihyo.jp esaはとても優れたサービスで、だれでも気軽にポエム、思考、ノウハウなどを共有することができます。弊社では今年1年で1617件の

    【esa】社内ドキュメントツールのホッテントリを分かるようにしたら捗った話 - 文字っぽいの。
    FromAtom
    FromAtom 2017/12/20
    書きました。
  • iOSのTwitterKitで投稿しようとすると、401が返ってきて投稿できない問題。 - 文字っぽいの。

    環境 Xcode9.1 Swift 4.0.2 TwitterKit 3.2.1 問題 上記環境でTwitterに投稿をするコードを書いた。雑にコードの様子を書くと、Twitter.sharedInstance().logInをしてログインが成功した後で、 guard let session = Twitter.sharedInstance().sessionStore.session() else { return } let apiClient = TWTRAPIClient(userID: session.userID) let request = apiClient.urlRequest( withMethod: "POST", url: "https://api.twitter.com/1.1/statuses/update.json", parameters: [ "statu

    iOSのTwitterKitで投稿しようとすると、401が返ってきて投稿できない問題。 - 文字っぽいの。
    FromAtom
    FromAtom 2017/11/09
    ハマったので書きました。
  • エンジニア立ち居振舞い:なんでもかんでも技術で解決しない - 文字っぽいの。

    お題「エンジニア立ち居振舞い」 面白そうなので便乗する。 だいたい表題通りで、エンジニアエンジニアリングができてしまうので、エンジニアリング(技術)で解決できる or できないの視点で見がち。 自動化とかスケールするかとかの話も好きなので、自動化できてかつスケールするような仕組みを、新機能を作り始める初期から考えることが多い。 例えば、「今日のおすすめ10選」という毎日更新される機能を実装しようとなった時に、「じゃあLIKEが付いた順と更新日時でいい感じに計算して、バッチ処理でもしましょう。」となる。 ただ、その機能を実装するためには工数がかかるし、そもそも「今日のおすすめ10選」によってKPIにどのくらいの影響があるか分からない。 わからないのにそこに工数を割いてしまうと「なんかすごい時間かかって疲れて作った機能だけどユーザには全然使われない。」という不幸を産んでしまう。 これは正解で

    エンジニア立ち居振舞い:なんでもかんでも技術で解決しない - 文字っぽいの。
    FromAtom
    FromAtom 2016/11/11
    なんでもかんでもみんな〜♪
  • Swiftのコードレビュー勘所 - 文字っぽいの。

    はじめに Swift with iOSなコードをレビューする時に僕が気をつけて見ているところをざっくりまとめました 今年からSwift始めます!って人が読めばクラッシュしやすいコードを書きにくくなるはず ロジック面についてもちゃんと確認しましょう 勘所 AnyObject使ってる 不適切に使われてる(型を消すとか)場合には絶対に直させる。型を消したい場合は protocol + typealias とかgenerics でなんとかできる場合が多い。というか AnyObject を使ってるコードでは、型を消す必要がない場合が多い。 配列にindex指定してアクセスしている let item = items[index] とか。基的にはindexなど使わずにアクセスするのが一番なので、書き直せないか確認する。 書き直せない場合はロジック自体の設計を変えられないか、もしくははみ出ない処理がちゃ

    Swiftのコードレビュー勘所 - 文字っぽいの。
    FromAtom
    FromAtom 2016/07/04
    '??' はコンパイル遅くなるって教えてもらった。
  • 「師弟登壇2015」でpixivの新卒研修について話してきました。 - 文字っぽいの。

    GMOペパボさんが主催、クックパッドさんに会場提供していただいた『師弟登壇2015』に師弟として登壇してきました。 pepabo.connpass.com pixivの新卒研修はざっくりと、 業務知識・スキルを学ぶ:7日 ビジネスマナーを学ぶ:2日 会社の理念を学ぶ:3日 会社の歴史を知る:1日 プログラミングを学ぶ:7日 という感じの内容になっています。発表では@bash0C7さんが企業説明や新卒研修・新卒採用についての概要を説明し、私がプログラミング研修について説明をしました。詳しい内容についてはスライドを見ていただくと分かるかと思います。 発表のメインは、新卒研修の1セクションであるプログラミング研修についてで、 新卒(エンジニア)が新卒(総合職)にプログラミングを教えている 7日間で画像投稿掲示板を作ってもらう 目的はエンジニアと『きもちよく』仕事ができるようになること といったこ

    「師弟登壇2015」でpixivの新卒研修について話してきました。 - 文字っぽいの。
    FromAtom
    FromAtom 2015/12/07
    話してきたので書きました。