ubuntuで.net coreを動かしたらnuget動かんかったのでその対処とAngular追加
タイトルどおりです。なんにも動かんくなったので、対処法を書く。
まず以下のエラーが発生
Unhandled Exception: System.IO.FileLoadException: Could not load file or assembly 'System.Runtime.Extensions, Version=4.2.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
おなじみのアセンブリエラーですが、.net coreは.net Frameworkと違ってbin配下にnugetライブラリが入りません。以下のコマンド打つとパスが表示されます。
saito@saito-Aspire-one-1-131:~$ dotnet --info .NET コマンド ライン ツール (2.0.0) Product Information: Version: 2.0.0 Commit SHA-1 hash: cdcd1928c9 Runtime Environment: OS Name: ubuntu OS Version: 16.04 OS Platform: Linux RID: ubuntu.16.04-x64 Base Path: /usr/share/dotnet/sdk/2.0.0/ Microsoft .NET Core Shared Framework Host Version : 2.0.0 Build : e8b8861ac7faf042c87a5c2f9f2d04c98b69f28d
パスが「/usr/share/dotnet/sdk/」なのでlsすると.Net Core1.0からいっぱい入ってました。ログ取るの忘れていたので「2.0」となってますが、本当はPreviewがはいってました
これが原因で、Nuget参照するときにどのバージョンでNugetを参照するかわかんなかったみたいです(これ予想なのであてにしないで下さい)
全部いらないんで、過去のバージョンをすべて削除
sudo apt remove dotnet*
全部なくなりました。次に.Net Core2.0をインストールします。以下の記事を参考に
kledgeb.blogspot.jp
これでdotnet new mvc、dotnet restore、dotnet build、dotnet runをやってみて確認で完了。
次にAngularテンプレートを入れます。Windowsとちょっと違いました。
SPAテンプレートを取得
dotnet new --install Microsoft.DotNet.Web.Spa.ProjectTemplates::2.0.0-rc1-final
いろんな記事に「dotnet new --install Microsoft.AspNetCore.SpaTemplates::*」と書いてあるけど、ubuntuだと出来ませんでした。Windowsだと出来た気がするけど。
ログは出力されてReact、Vueなど様々なスキャフォールディングが使えます、超便利。
Restoring packages for /home/saito/.templateengine/dotnetcli/v2.0.0/scratch/restore.csproj... Installing Microsoft.DotNet.Web.Spa.ProjectTemplates 2.0.0-rc1-final. Generating MSBuild file /home/saito/.templateengine/dotnetcli/v2.0.0/scratch/obj/restore.csproj.nuget.g.props. Generating MSBuild file /home/saito/.templateengine/dotnetcli/v2.0.0/scratch/obj/restore.csproj.nuget.g.targets. Restore completed in 3.7 sec for /home/saito/.templateengine/dotnetcli/v2.0.0/scratch/restore.csproj. テンプレート 短い名前 言語 タグ -------------------------------------------------------------------------------------------------------- Console Application console [C#], F#, VB Common/Console Class library classlib [C#], F#, VB Common/Library Unit Test Project mstest [C#], F#, VB Test/MSTest xUnit Test Project xunit [C#], F#, VB Test/xUnit ASP.NET Core Empty web [C#], F# Web/Empty ASP.NET Core Web App (Model-View-Controller) mvc [C#], F# Web/MVC ASP.NET Core Web App razor [C#] Web/MVC/Razor Pages ASP.NET Core with Angular angular [C#] Web/MVC/SPA ASP.NET Core with React.js react [C#] Web/MVC/SPA ASP.NET Core with React.js and Redux reactredux [C#] Web/MVC/SPA ASP.NET Core Web API webapi [C#], F# Web/WebAPI global.json file globaljson Config Nuget Config nugetconfig Config Web Config webconfig Config Solution File sln Solution Razor Page page Web/ASP.NET MVC ViewImports viewimports Web/ASP.NET MVC ViewStart viewstart Web/ASP.NET Examples: dotnet new mvc --auth Individual dotnet new mstest dotnet new --help
これで以下のコマンド打てばAngularプロジェクトが完成。
mkdir test cd test dotnet new angular npm i dotnet restore dotnet buld dotnet run
AzureにカスタムドメインとSSLを設定する
SSLやらなんやらやってきましたが、最終章です。
tekitoumemo.hatenablog.com
tekitoumemo.hatenablog.com
tekitoumemo.hatenablog.com
SSLやらドメインの取得をしたらAzure Portalへ移動します。
まずはSSLの登録をしましょう。
[SSL証明書]→[証明書のアップロード]を押下します。そしたら以下のような画面が表示されると思います。
前回、エクスポートした際に設定したパスワードを入力し、アップロードします。それでSSL証明書の設定は完了です。
次に、[カスタムドメイン]→[ホスト名の追加]をクリックします。SSL設定後の写真で申し訳ないですが、SSLが登録されていなかったら追加的な文字が出ます。
右側に表示されたテキストにお名前.comやらから取得したドメインを登録します。
ドメイン所有権のところでエラーになると思います。これが出たらドメインを取得したサイトの管理画面からDNSレコードを設定してあげます。
お名前.comだとこんな感じです。所有権の確認が出来るまで結構時間がかかります(5分〜1時間程度)
確認が完了すると[ホスト名の追加]が押下出来ると思います。
ホスト名の追加作業は終了です。
次にSSLの設定を行います。ドメインとアップロードしたSSL証明書を関連付けるだけです。
すべて完了したのでサイトを見に行きましょう!
ちなみにLet's Encryptは90日間すると期限が切れちゃうので定期的に更新しなければいけません。
SSL証明書のpemをpfxに変換する
前回の記事に続き、変換作業を行いました。AzureやWindowsServerを使ってるとpemで登録出来ないのでちょっとめんどい。
Let's Encrypt でワイルドカードSSLを取得する方法は以下を見て下さい。
tekitoumemo.hatenablog.com
tekitoumemo.hatenablog.com
失敗編、成功編と書いてますが、続編になってますのでどちらも見てもらえると良いかと思います。わかりにくいんで他の人の記事でもいいかも。
取得した証明書を確認します。取得したあとのログで「/etc/letsencrypt/live/ドメイン/」に置きまっせ!との表示がされると思います。
saito@saito-Aspire-one-1-131:~$ cd /etc/letsencrypt/live/mygkrnk.com/ bash: cd: /etc/letsencrypt/live/mygkrnk.com/: 許可がありません
はい。権限がありません。なのでliveディレクトリに権限を付与します。ちなみにcdはsudo出来ません。
sudo chmod 755 live
lsするとこんな感じになってます。
saito@saito-Aspire-one-1-131:/etc/letsencrypt/live/mygkrnk.com$ ls README cert.pem chain.pem fullchain.pem privkey.pem
4つ証明書が入っていて、以下のような内訳です。
- 証明書
/etc/letsencrypt/live/<ドメイン名>/cert.pem
- 証明書+中間CA証明書
/etc/letsencrypt/live/<ドメイン名>/fullchain.pem
/etc/letsencrypt/live/<ドメイン名>/privkey.pem
- 中間CA証明書
/etc/letsencrypt/live/<ドメイン名>/chain.pem
次にpfxに変換します。変換にはopensslを使います。ubuntuはデフォで入ってるので便利っすわ。
openssl pkcs12 -export -in fullchain.pem -inkey privkey.pem -out mygkrnk.pfx
- inには変換対象のpemを指定します。全部入っているfullchain.pemが良いと思います。
- inkeyは秘密鍵を指定します。今回はprivkey.pemですね。
- outはエクスポートするファイルの名前を指定します。取得したドメイン名とかで良いんじゃないでしょうか。
次に以下のような表示がされます。
[sudo] saito のパスワード: Enter Export Password: Verifying - Enter Export Password:
一行目の「[sudo] saito のパスワード: 」はいつものやつです。
二行目の「Enter Export Password:」エクスポート用のパスワードです。忘れないようにしましょう。
三行目の「Verifying - Enter Export Password:」は二行目の確認です。
しれっと変換が完了しているのでlsで確認します。
saito@saito-Aspire-one-1-131:/etc/letsencrypt/live/mygkrnk.com$ ls README cert.pem chain.pem fullchain.pem mygkrnk.pfx privkey.pem
「mygkrnk.pfx」出来ましたね!
以外に簡単でした。
Let’s EncryptでワイルドカードSSL化に挑戦(成功編)
これでドメインが使えるので、やり方を紹介します。
作れないと困っている人がいたら以下のURLを確認してみて下さい。
tekitoumemo.hatenablog.com
やり方は前回書いたので、今回実施したことを記載します。
TXTタイプでDNSレコードを登録したら以下のコマンドを実行します。
dig -t txt _acme-challenge.xxxx.com
digコマンドはネームサーバーから情報を引き出すツールです。そうすると以下のような表示がされます。
saito@saito-Aspire-one-1-131:~$ dig -t txt _acme-challenge.xxxx.com ; <<>> DiG 9.10.3-P4-Ubuntu <<>> -t txt _acme-challenge.xxxx.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 11446 ;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;_acme-challenge.xxxx.com. IN TXT ;; AUTHORITY SECTION: .xxxx.com. 300 IN SOA dns.jp. xxxx.dns.jp. 0000.. ;; Query time: 9 msec ;; SERVER: 192.168.1.1#53(192.168.1.1) ;; WHEN: Wed Apr 11 20:02:07 JST 2018 ;; MSG SIZE rcvd: 113
これはまだ登録されていないので以下の質問に答えちゃだめ(Enter押しちゃだめ)です。
------------------------------------------------------------------------------- Please deploy a DNS TXT record under the name _acme-challenge.xxxxxx.com with the following value: xxxxxxxxxxxxxxxxxxxxxxxxxxxx Before continuing, verify the record is deployed. ------------------------------------------------------------------------------- Press Enter to Continue
しばらく経ってからdigコマンドを打つと以下のように表示されます。
saito@saito-Aspire-one-1-131:~$ dig -t txt _acme-challenge.xxxx.com ; <<>> DiG 9.10.3-P4-Ubuntu <<>> -t txt _acme-challenge.xxxx.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 47846 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 4, ADDITIONAL: 5 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 1280 ;; QUESTION SECTION: ;_acme-challenge.xxxx.com. IN TXT ;; ANSWER SECTION: _acme-challenge.xxxx.com. 3600 IN TXT "xxxxxxxxxxxxxxxxxxxxxxxxxxxx" ;; AUTHORITY SECTION: 以下略...
以下の表記がされていればDNSレコードが登録されています。
;; ANSWER SECTION: _acme-challenge.xxxx.com. 3600 IN TXT "xxxxxxxxxxxxxxxxxxxxxxxxxxxx"
こちらが確認出来たら「Press Enter to Continue 」の指示通りEnterを押してやります。
Waiting for verification... Cleaning up challenges IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/xxxxxx.com/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/xxxxxx.com/privkey.pem Your cert will expire on 2018-07-10. To obtain a new or tweaked version of this certificate in the future, simply run certbot-auto again. To non-interactively renew *all* of your certificates, run "certbot-auto renew" - If you like Certbot, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF: https://eff.org/donate-le
Congratulations!
証明書は「/etc/letsencrypt/live/xxxxxx.com/fullchain.pem」に置いてやったぜ!って書いてあるのでそこを参照して下さい。
追記:1日20回失敗するとアクセスできなくなります(笑)以下の記事に書いてありました。
Rate Limits - Let's Encrypt - Free SSL/TLS Certificates
Let’s EncryptでワイルドカードSSL化に挑戦(失敗編)
先週、「みんなの洋楽ランキング」を作ったのでLet’s EncryptでワイルドカードSSLの取得に挑戦しました。が、、
失敗しました。
失敗したと言ってもまた挑戦出来るようなので、再度挑戦します。
「Azureドメインでいいじゃん」って思うこともあったのですが、まぁ、いろいろとやりたいことが出来ないんですよこれが(アフリエイトとかね
Let’s Encryptのワイルドカード化は結構いろんなサイトに載ってるので簡易的な感じで書きます。
環境 : Ubuntu16.04
※以下のコマンドはsudoをつけるように
certbot-autoコマンドを取得する
curl https://dl.eff.org/certbot-auto -o /usr/bin/certbot-auto
実行可能な権限に変更
chmod 700 /usr/bin/certbot-auto
実行
certbot-auto certonly --server https://acme-v02.api.letsencrypt.org/directory --manual --preferred-challenges dns-01 --domain example.com --domain *.example.com
パラメータの説明は以下参照
laboradian.com
僕の場合は、メールアドレスを指定してなかったので再度聞かれます。多分、使えるメールアドレスなら何でも大丈夫っす。
同意やらなんやらを「YES」で進むと以下のようなメッセージが出ます。
------------------------------------------------------------------------------- Please deploy a DNS TXT record under the name _acme-challenge.example.com with the following value: xxxxxxxxxxxxxxxxxxxxx Before continuing, verify the record is deployed. ------------------------------------------------------------------------------- Press Enter to Continue
これはドメインのDNSレコードにType「TXT」で登録してねってやつです。お名前.comではこんな感じで設定します。
登録が完了したらEnterで完了します。
IMPORTANT NOTES: - The following errors were reported by the server: Domain: mygkrnk.com Type: unauthorized Detail: Incorrect TXT record "xxxx" found at _acme-challenge.example.com Domain: mygkrnk.com Type: unauthorized Detail: Incorrect TXT record "xxxxx" found at _acme-challenge.example.com To fix these errors, please make sure that your domain name was entered correctly and the DNS A/AAAA record(s) for that domain contain(s) the right IP address.
はい、エラーが発生しました。不正なTXTレコードだと
失敗した要因としては、はじめのコマンドでドメインとサブドメインの2つを指定していて、サブドメインに設定してなかったことが原因っぽいです(そもそもサブドメイン作ってないのに欲張り過ぎた)。気を取り直して再度挑戦しましたが、先ほど登録したDNSレコードがキャッシュのため完全になくなってないので、なくなるまで待たなければいけません。
レコードの設定情報のキャッシュ時間がなくなるまで待たなきゃです。今からやると寝れなくなるので明日までおあずけです。
さらにWindows Serverはpfxに変換しなければいけないので手間がかかります。
今週中に出来るかなぁ。。
フリーランスになるためにやったこと
3/31付で会社をやめました、長く働き過ぎた(3年
転職とかも考えたのですが
「転職して対して変わらん給料で特に学ぶことも変わらないなら意味なくね?」
と思ってフリーランスでしばらくは活動しようと思ったので、そこでいろいろやったのでここに書こうと思います。
会社に在籍中にクレジットカードを作りまくる
フリーランスになるとカード等の審査が通りにくくなるらしいので、とりあえずカードを作りまくりました。オリコ、三菱、みずほなど計5つぐらい作りました。
エージェントを使う
フリーランスと言っても仕事をもらえるほど人脈があるわけではないので、エージェントを使いました。エージェントに職務経歴書を見せて単価を決めれば勝手に面接の日程を設定してくれます。で適当に雑談したら仕事決まる感じです。ある程度、技術をキャッチアップしている人なら面談というより、技術共有で面談が終わるのでそこら辺は転職より楽だなぁと思いました。
エージェントに単価を交渉する
希望単価をある程度決めておいて提示した金額で交渉します。ちょっと多いかな?と思うぐらいの単価で交渉しても良いかもしれません。私の場合は、企業の予算と募集要項にどれだけマッチしているかを比較して、単価を出しました。60万の単価で募集要項に完全にマッチしてるのであれば、予算と同じ金額を提示しても良いと思います。
ポートフォリオを作る
これは正直いらないと思います。趣味でプログラムやるのが苦痛じゃなければ作ったほうが良い程度で、特に面談とかには影響しないと思います。ポートフォリオ作って問い合わせフォームとか作っていると「おっ?」ってなる問い合わせが増えたりするので普通に面白いですよ。
tekitoumemo.hatenablog.com
tekitoumemo.hatenablog.com
tekitoumemo.hatenablog.com
在籍中に使ったテクニックや学んだ知見をブログに書く
やったことの1割ぐらいしかかけてない気がしますが、自分の身の回りの整理をしながら盗んでいくのは良かったなと思いました。これとかね↓
tekitoumemo.hatenablog.com
Gihubのお金を払うからアカウント消さないでほしいなぁ。
厚生年金から国民年金への切り替え
市役所行くとめっちゃガラガラなので一瞬で終わります。1万6千ぐらい払って下さいって言われます。
個人事業の開業届出書
税務署で開業届けを出します。正直なにも準備していかなくてよいです。なぜなら税務署の人はめっちゃ親切で、なにも準備しなくても一からおしえてくれますし、聞いてないことも教えてくれます。準備するのは屋号ぐらいでしょうか、ここは空欄でも良いので私は空欄にしました。
青色申告承認申請書
これも税務署で提出します。ここもなーんにも準備しなくても問題ないです。なんでこんなに親切なんだ?
会社の健康保険から国民健康保健への切り替え
市役所でやればよいのですが、会社員であれば任意継続というものが使えます。どのようなことかというと、在籍していた会社の健康保険に2年間は継続で入れるという仕組みです。IT健保は結構良いみたいなので、一応入りました。IT健保の人は全然親切じゃないです。
わりとまじめにサービスを作った
ずっとWEBサービスを作りたいと思っていて、時間やアイデアなどなかなか思い浮かばなくてずっとやらずにいましたがもう諦めついて
「趣味をWEBサービスにしちゃおう!」
と思いわりとまじめに作りました。それがこちらです。
みんなの洋楽ランキングは最新の洋楽ランキングの情報を発信している。気になる曲のランキングや内容。アーティストの情報など詳しく載せている。洋楽の初心者から上級者まで楽しめる。Youtubeのランキングや再生回数などから最新洋楽ランキングを見れる
「みんなの洋楽ランキング」とは
ビルボードランキングを通じて洋楽を身近に感じるようなサービスです。洋楽の情報は散乱していて、個人のブログがメインなので、もう少しまとまっててもよいのかなぁと思いますし、日本で流れている洋楽は外国でヒットしてから半年〜1年前のものが多く、ちょっと出遅れている感が否めないのでとっつきやすくわかりやすいサイトがあると良いと思いました。今現在、Youtubeと同じぐらいに強力なメディアとされているSpotify VIRAL Top 50の日本ランキングにエド・シーランの「Shape Of You」が2位になるなど、日本国内でも洋楽はメジャーな音楽になっていることがわかります。
spotifycharts.com
作った技術について
C# 7.0
.Net Framework 4.7(大失敗)
Azure Web Service
Azure Database
Jquery
BootStrap
API Reference | YouTube Data API (v3) | Google Developers
基本は.Net Frameworkベースの技術で、WEBサーバーなどははPaasであるAzureを選定しました。ここらへんは他の記事で深く書こうと思っているので深くは書きません。
このサービスでこだわったところ、こだわり続けたいと思っているところ
「洋楽」のキーワードを軸に
サービスを作る上で、そのサービスがどうあるべきか、どうなったらよいかを考えるのは非常に重要だと思います。このサイトは日本の洋楽情報をまとめたプラットフォームとして成り立たせることを目的としているのでこの軸は絶対にずらさないようにしたいと考えています。SEOでも、ここの軸がずれると大幅に順位を下げたりするので一番大切なことかなと思っています。
会員登録などのユーザー操作が複雑な改善は極力しない
「みんなの洋楽ランキング」はメディアサービスなので、会員登録などのフローは入れない予定でいきます。ここは僕の勝手な考えですが、会員事業というものはここ数年で流行らなくなるなっている気がします。前職で自社サービスを運用していましたが、ただでさえ流入を増やすのが難しいのにさらにメールアドレスを用意させ、登録させ、本人確認させるというフローはサービスに対して本気でなければやらないので、メディアサービスとして展開するのであれば絶対にいらない機能だと思います。以下の記事を書いた子は大学生なのに的確なことを記事にしていて納得させられました。
www.eggineer.info
更新し続けられるように仕組み
洋楽のランキングは1週間でほとんど入れ替わりがないので、比較的更新するのが楽です。外出先でも、ちゃちゃっと更新出来るような仕組みを作りました。デザインはダサい(ユーザーに見られないから問題ない)ですが、曲名はプルダウンで設定でき、ランキングの数値は自動で付与されます。ランキング自体は1分程度で更新出来ていますので、良かったかなと思います。
さらにこの紹介ページの文章など、通勤時間にググったことを書き溜めて登録すれば反映されるので非常に楽です。最近は書くのすらめんどくさくなっちゃったので、iPhoneのマイクを使って文章化しています。
めんどくさいところは究極に手を抜く
私の場合はインフラやデザインは得意でなく、好きでもないので究極に手を抜きます。プログラムの部分は時間をかけて、他はお金で解決するか仕組みを持ってきて改善するか心がけます。Azureは本当に楽で全く苦労せずにデプロイまで持ってこれました。お金はかかりますが、状況見てスケールアップするなど、かかる費用をコントロール出来るのも最高です。VPSも考えましたが、今の需要はVPS<Paasになっていますので学習コストと考えればかかる費用もそんなに気にならないと思います。貧乏暇なしというのはこういうことだったんですね。まぁそこまで高くないですよ。
Railsが個人サービスの記事に取り上げられている理由の一つがHerokuでGithubにデプロイしたらリリース出来るので、Web系の手軽さが良いのだと思います。
どのぐらいの期間で作ったか
思い立ってから3ヶ月ちょっと程度かかりました。実際は、仕事探したり、式の準備したり、フリーソフトの業務提携したりなどなかなか忙しい日々を過ごしていたので週に2日1時間ぐらいの時間しか取れていませんでした。Github Insightが物語ってます。
2月から3月頭が一番忙しかったので、ほぼいじれてないことがわかりますね。Github Insightは誰がどのぐらい貢献したかの度合いなので、偉い人は評価の1つとして見ても良いかなと思いました。前職では、一番若い女の子がダントツで一位でしたよ。
失敗したこと
Windowsでしか開発出来ない環境を作ってしまった。
.NetCoreにすればLinuxでもMacでも開発出来ますし、Ngixで動いているのでAzureじゃなくてもよいです。.NetFrameworkの選定はミスったなぁと思いました。今は一人でこもってられる時間がそんなにないので、リビングでテラスハウス見ながら開発出来る仕組みを作らなければいけないと思っています。これは5月までに改善したい。
独自ドメインのSSL化が、、、
独自ドメインも買いまして、いざワイルドカードSSL化をするために「Let's Encrypt」を使って試したのですが、アクセス権のエラーに悩まされました。Azureドメインでも運用出来るので、暇があったら再度トライしようかな程度になってしまった。。ワイルドカードSSLは高いので、ちょっと買えません。
letsencrypt.org
ステージング環境とデプロイ環境の区別ができていない
Azure Web ServceのデプロイはVisualStudioからやっているので、開発してユニットテスト(XUnit)が成功したらデプロイしています。問題なさそうに見えますが、切り替えるのが面倒で開発中もAzure Databaseに接続しているのでいつか絶対事故が起こります。うまく同期を取って運用出来る仕組みを考えなきゃです。
これからどうしていくか
このサイトは1年間の事業投資(自分への投資)として運用していくので、目標を決めてそれが達成出来なければ閉鎖しようと考えています。予算(自分の懐)と相談し、ライターさんを雇ったり、広告を出すことも視野に入れています(ライターさんに関しては、少し動いています。)また、目標ばかりとらわれず「やらなきゃいけないこと」、「数値を増やしていくための改善」はしっかりと線引きをしていく必要があると考えています。どういうことかというと、TwitterCardの例ではキャプチャが同じなので流入が見込めないという課題は「数値を増やしていくための改善」でコンテンツを増やすための運用改善は「やらなきゃいけないこと」です。2つを比較するとTwitterCardを改善したほうが効果が出そうと考えられますが、駆け出しのサービスはまだコンテンツも少なく地盤を整える必要があるので運用の改善を早急にすすめる必要があると考えます。
最後に
「わりとまじめにサービスを作った」というタイトルなので、わりとまじめに偉そうに記事を書きましたが実際はイラストのようにお菓子食べながらYoutubeで新曲を聞きながら適当に作りました。モチベーションが一番重要なので、はじめはいい感じに気合を入れずに作っても良いかもしれませんね。
あ、良かったらシェアして下さい(切実)
twitter.com