Windows 版 Xamarin が壊れていたので直したときの備忘録

若干古いバージョンでハマったので備忘録として残しておきます。
ログ残ってないので曖昧ですが Visual Stuido 15.0 だったはず。

$ xcodebuild -sdk -version
iPhoneOS10.3.sdk - iOS 10.3 (iphoneos10.3)
SDKVersion: 10.3

Visual Studio 15.1 (26403.3) で直っていたという報告もあるようなので
まずはアップデート試すといいかもしれません。
なお最新版 Visual Stuido for Mac での新規プロジェクト作成は問題ありませんでした。

Visual Studio for Mac Preview
Version Preview 9 (7.0 build 2943)

Windows 版 Xamarin で新規に [クロスプラットフォームアプリ] の [詳細/マスター] (PCL) で新規プロジェクトを作っても iOS がビルドできませんでした。
これは Visual Studio とテンプレートにそれぞれ問題があります。
リモートの Mac に繋いで iPhoneSimulator で実行しようとした場合。実行方法は割愛。

Visual Stuido を直す

Error The root assembly conflicts with another assembly

フォーラム を参考に Xamarin.iOS.Common.After.targets ファイルを修正します。
自分の環境では C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Xamarin\iOS\Xamarin.iOS.Common.After.targets でした。

line 73:
-      <_ReferencedDlls Include="@(AllBuiltProjectOutputs);" />
-      <_Assemblies Include="@(MainAssembly);@(_ReferencedDlls)" />
+      <_Assemblies Include="@(AllBuiltProjectOutputs)" />
 
line 85:
-      <MTouchReferencePath Include="@(_Assemblies)" />
+      <!-- Don't append as an MTouchReferencePath the primary assembly itself since that's already passed as MainAssembly="$(TargetPath)" -->
+      <MTouchReferencePath Include="@(_Assemblies)"
+                           Condition="'%(_Assemblies.IsKeyOutput)' != 'true'" />

テンプレートを直す

error : The file 'Resources/LaunchScreen.storyboard' conflicts with 'LaunchScreen.storyboard'.

Bug 53845 – Build error: The file ‘LaunchScreen.storyboard’ conflicts with ‘Resources/LaunchScreen.storyboard’
LaunchScreen.storyboard がプロジェクト直下と Resources フォルダの下に
2重に存在しているので Resources フォルダ下のものを消す。


カテゴリー: Xamarin | コメントする

Mastodonサーバーの費用感

Mastodon サーバーを建てると一体いくらかかるのか。
pawoo.net を参考にします。

pawoo.net

規模

PixivのPawoo担当者が語る、マストドン早期参入の理由と可能性
11日経過で9万ユーザー

サーバー構成

Mastodonを3倍早くしたい話
APサーバー 10台
Sidekiq 60プロセス 1400ワーカー
DB 40コア メモリ160GB
→ DB 16コア メモリ64GB

料金

DB サーバー

Amazon RDS for PostgreSQL として 料金表 を参考に
DB (16コア メモリ64GB) だと db.m4.4xlarge で $4.244/h = $3055.68/m
DB (40コア メモリ160GB) だと db.m4.10xlarge で $10.614/h = $7642.08/m
マスタースレーブ構成にしてるなら2倍。

ちなみに MySQL だと
DB (16コア メモリ64GB) だと db.m4.4xlarge で $2.034/h = $1464.48/m
DB (40コア メモリ160GB) だと db.m4.10xlarge で $5.087/h = $3662.64/m
PostgreSQL の方が高いんですね。倍のお値段。

AP サーバー

Amazon EC2 として 料金表 を参考に
2コア メモリ8GB なら m4.large で $0.139/h = $100.08/m
4コア メモリ16GB なら m4.xlarge で $0.278/h = $200.16/m
× 10台

Redis

Amazon ElastiCache として 料金表 を参考に
どの程度のスペックが必要か不明だが cache.m3.medium なら $0.120/h = $86.4/m

Sidekiq

不明。
60プロセス動かすならそれなりに台数必要?

Node.js

不明。

メール

SnedGrid は無料枠があるらしい。

合計

ある程度正確な情報があったのがDBサーバーだけなので何とも言えませんが
予想できるものだけでも最小構成40~50万円/月といったところでしょうか。
実際はロードバランサーがあったり踏み台があったりすると思うのでもっとかかっていると思います。
スレーブサーバーやその他諸々を含めると80~100万円/月くらいなのかな。


カテゴリー: Mastodon | コメントする

[MySQL] テーブル名からデータベース名を逆引きする

テーブル名からデータベース名を逆引きする SQL

SELECT TABLE_SCHEMA, TABLE_NAME FROM information_schema.TABLES WHERE TABLE_NAME LIKE 'user_%';

テーブルが格納されているデータベースが分からないときや、似たようなテーブルがないか探すときに。


カテゴリー: MySQL | コメントする

C#でゲームを作るには

C# で開発ができるゲームエンジン。


カテゴリー: C# | コメントする

Docker を使って Windows 上に MySQL を立てる

予め Docker をインストールしておきます。詳細については割愛。

PowerShell で以下を実行すると MySQL が立ち上がって接続できます。

docker pull mysql
docker run --name mysql-sandbox -e MYSQL_ROOT_PASSWORD=mypass -d -p 3306:3306 mysql
docker exec -it mysql-sandbox mysql -p

停止/起動

docker stop mysql-sandbox
docker start mysql-sandbox

削除(docker stop しておく)

docker rm mysql-sandbox
docker rmi mysql

続きを読む


カテゴリー: Docker | タグ: | コメントする