しるてく

技術的な話をします

制御文字の検索と置換

背景 ブログのRSSで概要しか出していなかったところを全文出そうとしたら Input is not proper UTF-8, indicate encoding ! みたいに言われた。 おそらくどこかの記事で制御文字が含まれているのでなんとか見つけ出して撲滅したい。 やりかた 検索 git grep …

コマンドラインから直近の会議の zoom を開く

概要 在宅勤務となり、ほぼすべての会議が zoom となったが、Google Calendar から zoom を開くまでが色々とだるいので楽したい。 これまで Google Calendar を開き 予定の詳細を表示して zoomのURLをクリックすると 新しいタブが開き アプリケーションを開…

draw.io で Alibaba Cloud のアイコンを使いたい

draw.io はVisioとの互換性高いので、 https://www.alibabacloud.com/help/doc-detail/67830.htm で配布されている Microsoft Visio template(.vssx) がそのまま使える。 ダウンロードしてドラッグすれば良い。 ScratchPadはブラウザのローカルストレージを…

Alibaba Cloud はじめるまで

次のISUCONでAlibaba Cloudを使うのでちょっと触ってみた。 www.alibabacloud.com プロダクトとサービス たくさんあるけど今回はECS(Elastic Compute Service)を使う。 aliyun 管理画面でぽちぽちもできるけど、面倒なのでCLIを使う。 なんでaliyunなのか…

Google Form送信時に情報をslackに通知をする

GAS

そういう機能が欲しかったのでGAS書いた。 手順 1. フォームを作る 適当に好きなフォームを作る。 2. スクリプトエディタからGASを書く 画面右上のメニューから選択する。 3. スクリプト書く function onFormSubmit(e) { sendToSlack(e); } function sendToS…

crontabでdateを扱うときとかに注意すること

45 9 * * 3 hoge.pl `date -v+2d +"%Y%m%d"` こんな感じのことやろうとしたら /bin/sh: -c: line 0: unexpected EOF while looking for matching ``' /bin/sh: -c: line 1: syntax error: unexpected end of file こけてなんだろなーと思ったらcrontabでは %…

Androidのパッケージ名に使える文字

AppStoreとあわせようとしてハマったのでメモ。 基本は英字。 先頭でなければ 数字と_が使える。 https://android.googlesource.com/platform/frameworks/base/+/master/core/java/android/content/pm/PackageParser.java#1201 private static String valida…

macで半角ダッシュ(--)が全角ダッシュ(―)に変換されてしまう呪いを解く

mac

carton install --deployment 打ってくださいみたいな発言で、半角ダッシュが全角になってて、「なんかおかしいんですけど…」みたいになることが社内で頻発してて、なぜかslackのせいにされてるけど、それmacの設定だよ!! システム環境設定 > キーボード >…

UIWebView の謎のボーダーと白い背景

UIWebView配置したら、バウンスしたときの背景が白かったり、WevViewの下に黒い下線が表示されたりしてなんだろって思ったら、WebView の opaque を false にして、Background を ClearColor にすれば良いだけだった。 ちなみにバウンスもさせたくないよって…

android で INSTALL_FAILED_UID_CHANGED が出たら

諦めて出荷時に戻しましょう!

UICollectionViewでSDWebImage使うと同じ画像が表示されてしまうことがある

CollectionViewで図鑑(所持していると画像が見えて、所持していないと?画像が表示される)みたいなのを作るとして、 class HogeCollectionViewCell: UICollectionViewCell { @IBOutlet weak var hogeImageView: UIImageView! func setImage(url: String?) …

MapBox iOS SDK 2.0.0 試した

MapBoxっていうOpenStreetMapのデザインをカスタムできるみたいなサービスがあるのでiOS SDKを触ってみた。 触ってて、なんか転がっている情報となんか違うなと思っていたら、ちょうど6日程前に2.0.0がリリースされたっぽい。 Mapbox | Design and publish b…

Assets.carを展開してpngをゲットしたい

assets catalogにpdf突っ込むとビルド時に@1x, @2x, @3xのpng画像に変換してくれる。 Android用にpng書き出すのが面倒だったので、png取得できないかなーと思ったらAssets.carってやつにまとめられているらしい。 展開するには以下のツールをビルドして ./ca…

swiftでArrayの範囲外をよんだときにエラーにならずnilを返すextension

swiftのArrayでインデックスの範囲外を指定すると実行時にエラーになってしまう。 let data = [ 1, 2, 3, 4 ] return index < data.count ? data[index] : nil 毎度毎度こんな感じで書くのだるいので、 let data = [ 1, 2, 3, 4 ] return data[safe: index] …

githubではdiffを見たくないけど手元では見たい

pull-reqとか見てるとstoryboardがすごい行数のdiff出してきて他のファイルのdiffが見づらい。 そんなときは .gitattributes に *.storyboard -diff って追加してあげるとdiffがでなくてステキだ。 しかし、自分が作業しているときはうっかり変な変更入れて…

UICollectionViewでCellを長押ししたい

UILongPressGestureRecognizer を都度生成するの効率悪いのでViewDidLoadで一度だけ生成して、タップ後にどのCellを押したか判定する感じにする override func viewDidLoad() { super.viewDidLoad() let longPressRecognizer = UILongPressGestureRecognizer…

AutoLayout で UIButton の image が拡大しない

UIButtonをautolayoutで配置して、画面サイズにあわせて拡縮するようにすると、UIButton自体は拡大するんだけど、そこに設定しているimage画像(UIButtonと同じサイズ、同じアスペクト比)が拡大してくれなくて困ったマン。 Alignmentをこうやればちゃんと拡…

iOS でカスタムフォントを使いたいけどなぜか表示されないとき

Xcode6でiOSアプリに独自フォントを組み込んで表示する | calmscape://ソフトウェア開発部develop.calmscape.net の通りにやったつもりだけど、なんか実機にインストールすると表示されなかった。 フォント追加してる? -> OK info.plist > Fonts provided b…

storyboard で UILabel を袋文字にする

袋文字を使いたい病になった。 UIStrokeLabelみたいな感じでクラス作っておく。 import Foundation import UIKit @IBDesignable class UIDecorationLabel: UILabel { @IBInspectable var strokeSize: CGFloat = 0 @IBInspectable var strokeColor: UIColor =…

最近気になっているswiftのLibraryのメモ

最近swift書いててなんかいいライブラリないかなって調べてるとブラウザのタブがすごいことになるので、今開いている(良さそうと思ってる)やつをメモっておく。 Util akosma/SwiftMomentgithub.com moment.js っぽく、時間まわりをアレコレできるやつ。 we…

BigQuery メモ

BigQuery使いたくてちょっと調べたけど、ちゃんと使うのはもうちょっと後になりそうなので。参考になりそうなページだけぺろぺろ貼っておく。 誰でも簡単に超高速なクエリができるBigQueryとは?www.buildinsider.net すごい安いし、なんでもそこそこ高速な…

SlackでHubot Integrationを使わずにHubotを利用する

もしも、深淵な理由でIntegrationをユーザが追加できない場合にslackでhubotが使いたくなったら…。 というアレな状況だったので、hubot-slackのAdapterのmsg.as_user, msg.usernameを直接いじってゴリ押しした。 もしかしたらもっとスマートなやり方があるか…

シェイクでのUndo, Redoをやめたい

ios

UIApplication Class ReferenceWebView+SPAだと、フォーム投稿後もシェイクしたときのUndo, Redoが出てきてしまって面倒な感じだったので無効化するの巻。applicationSupportsShakeToEdit に NO を突っ込んであげればよさそう。

一部のAndroid端末でWebFontの代わりに絵文字が表示されてしまう問題

css

スマホサイトでWebFontの私用領域つかっていたら、一部のAndroid端末でWebFontの代わりに絵文字が表示されて困った。DECOLOG TECH BLOG: スマートフォンブラウザの絵文字事情ココらへんをさけるようにマッピングすれば良さそう。

絵文字を〓にする

MySQLでutf8mb4にしてなくて絵文字(4バイト文字)をDBに格納できない(その文字以降が突っ込まれない)問題があって、とりあえずjavascriptでアレな文字を〓に変換するやつ。 string.replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g, '〓');

ワンライナーでランダムな文字列作るやつ

しばらく使ってなかったらhistoryから消えてたのでメモっとく。 perl -le 'my @s = (0..9,"A".."Z", "a".."z"); print map { $s[int(rand(scalar @s))] } 1..8'

easymockからstubcellへ移行してみた

「チーム開発に役立つstubcell」ってタイトルでCodeGrid 2周年パーティでLTしてきた。 - from scratch 「チーム開発に役立つstubcell」ってタイトルでCodeGrid 2周年パーティでLTしてきた。 - from scratch今までAPIのモック作るのにCyberAgent/node-easymoc…

jsxをちょこっと触ったので今の感想書いとく

最近Photoshopで画像をバババッってしたくてJSX入門した。 基本的にjavascriptだけど、変数宣言とif/else, forだけ使えれば十分っぽい Adobe ExtendScript Toolkit ってやつ使うとデバッグが楽 ただ、エディタとして貧弱 ESTKでファイルを開きつつ好きなエデ…

一括置換するやつ

etc

初学者に毎回案内するの面倒なので、ぺろっとブログ貼るだけで解決したいの巻。 質問とか問題があれば随時更新して最終的にはURL貼るだけで解決したい。 ファイル内の文言の一括置換 find . -type f -name '*' | xargs perl -i -pe 's/before/after/g' ファ…

zshで{a..z}みたいなことがしたい

zsh

bashだと{0..9}とか{a..z}とか出来るんだけど、zshだと{a..z}ができない。 setopt bracecclしてやるとできるようになる。 ~$ echo {a..z} {a..z} ~$ echo {a-z} {a-z} ~$ setopt braceccl ~$ echo {a-z} a b c d e f g h i j k l m n o p q r s t u v w x y z