khondalitのブログスマートフォン用の表示で見るkhondalitのブログ2019-12-06マスターデータを取り扱うサービスをはじめましたさて、色々あって退職して、3ヶ月ほど経過しました。仕事はしておらず収入がなく辛い日々ではありますが個人でサービスをリリースしました。これで食べていければ嬉しいなぁ。前回オープンデータでなんとか出来ないかなぁという投稿をしました。khondalit.hatenablog.comこちらにも投稿しましたがそもそも私が今までWebサービスの開発してきて不満の1つがマスターデータの入手の難しさです。www.fuzina.comここで例に出しているデータは駅データですが、同じ様に欲しいデータは多々あるわけです。公共機関のデータがあればこれも嬉しいでしょう。Mapを埋め込むだけでも見れなくは無いですが、検索システムに組み込むのは無理でしょう。無いならいっそのこと自分が作ればよいのではと数年前から頭の中にはありましたが、仕事の忙しさ等で時間がなく、またデータの取得の難しさから手をあまり動かせずにいましたが、退職や年齢などのタイミングが重なり今回の挑戦となりました。15:29マスターデータを取り扱うサービスをはじめましたTweet広告を非表示にするもっと読むコメントを書く2019-09-26オープンデータで個人開発が出来ないか?すごく久しぶりのblog。あって仕事を退職し今は有給消化中です。会社には色々言いたいことがあるがまあそれはそれとして良い面も多々ありました。振り返りプログラマーとして社会人になり20年ほど経ち何社も経験してきて来ました。得られたのは長時間労働と無茶な開発現場の数々、その場限りで作るだけといういい加減なビジネスばかり、安い給料、それに伴いプライベートが無く人間関係がほぼ持てず、多少なりともの病気...、言い出したら切が無くお世辞にも良い結果は得られなかった。今回の会社ではほぼリモートワークとなり時間に余裕が持て色々仕事や人生について考えざるを得ない状況になりました。幼少期の家庭環境問題もあり、色々問題はありまだまだ考えねばならない事も多いですが、私は通常の社会生活には向いていないのでは無いかと考え始めています。時間がある中で個人開発をする余裕も出てきました。実際仕事の副産物としてgemを1つリリースしています(まああまり需要はないでしょうが...)。時間が取れだして来てから個人開発を行っておりオープンデータを利用して遊んでいます。実際今までは若さと体力にまかせて個人で勉強したりちょっとした開発も行ってきました。年を取ると時間が無い中でなかなかそういった事も難しく明確な目標が無い物に時間や精神的なコストをつぎ込む事も困難になって来ていました。余裕が出来てくると話は別です。仕事を通じて色々不満も出てきていました(仕事そのものへの不満とは違います)。公開していませんが例えばGeolocationなAPIを作成出来ました。位置情報と住所の相互変換が可能となっています。建物自体を表すのでプライバシー問題があるようです。他には会社リストもある程度まで作成しています。目指したい目標はマスターデータの充実とその提供です。そもそもの動機は今までのWebサービスでこういった欲しいデータが必要となる場面が多いのに良いデータがほぼ無いことです。賃貸物件のマッチングサービスを例に取りましょう。ユーザなら住む場所を地名でも探しますし特定の駅に近い場所とかでも探すでしょう。いった場合住所や駅の場所とそこから物件の距離等で探せると良いでしょう。駅も会社へのルートを考えて選択できると嬉しいですよね。いった場合に住所の一覧、駅の住所等が必要ですしまたそれぞれの住所から位置情報を取得し距離計算が必要でしょう。先程書いたように住所データはある程度まで公開されていますがこれらをDBに入れるとなるとそれなりの開発コストが必要ですし、地名の書き方で色々問題もあります。難しい漢字をひらがなで書いてあったりして名寄せ処理等が必要となる場合も珍しくありません。駅データは無料で公開されているのも無くもないですが有料となると非常に高価です。年で数十万〜百万以上の値段となります。以前在籍していた会社では駅データを購入していましたが高価ですしまた位置情報がありませんでした。サービス側の問題として何故かデータの更新作業が5年前後ほど行われておらずその手順も一切不明で、古いデータのままサービスを運用していました。仕方なく自分が頑張り購入したデータを使用せず0から駅データのリスト化作業を行い、コマンド1つでデータの最新化を行えるようになりました。これらは一例ですがこういったマスターデータはあらゆるサービスで必要とされていますが供給が追いついていない状況です。完璧では無いにしろオープンデータでこういった状況の打破が出来ないものかと現在データと色々集めている最中です。できればこれらを安価に楽に提供する手段を開発出来ないか、可能ならばこれで自分一人でも飯が食えるようになればと頑張っている最中です。方は一旦移動させましたが、DBの移行がちょっと面倒なので諦めました。https://yoseba.herokuapp.com/Sqaleのデータ移行のなにが面倒と言えば、scpは禁止、~/.sshはreadしか権限がない、ftpコマンドすら使えないという有様。ヘルプによるとs3で移行しろらしいのですが、Amazonとの契約はしていないし、たかがバックアップのために移行程度に契約はしたくない。一応scriptコマンドでバックアップはしたものの、HerokuはメインのDBはPostgreSQL。MySQLも使えますがせっかくならPostgreSQLを使いたい。いうことで、データ移行は諦めました。方は、ちょと通常と違うサービスなので少し復旧まで時間ください。GW中にはなんとかしたいですね。このapi意外と利用している人がいるので、がんばります。あと仕事関係でシソーラス作成もしていて、落ち着いたら1から個人で作成してみるつもりだったりします。更新は続けていくのに不自由していたのでMiddlemanへ乗り換えることにしました躊躇してみた割には結構簡単に終わりましたので、簡単にメモ程度ですが特徴を公開します。source/以下となります。source/layaouts以下になっていたりします。以下に置くこととなります。htmlの書き方Nanocでは基本的にhtmlのままですが、MiddlemanはERBを採用しているのでlink_toやimage_tagなどのヘルパーが使えます。Railsになれた人ならば非常に使いやすくなています。Sitemap作成機能や、Markdown、Haml、Sass等も使えるなど、モダンな開発環境となっています。ファイルの置き場所など細かいルールは違いますが、基本的にNanocで困っていたことが大体解決していて上位互換と捉えて問題ないかと思います。移行作業時間はおそらく、公開まで1時間かかってないでしょう。19:43静的サイトゲネレータをNanocからMiddlemanへ乗り換えましたTweet広告を非表示にするもっと読むコメントを書く2016-07-19Rails4系からRails5へのアプデsqale.yoseba.org以前リリースしたサービスですが、Rails4.2.6からRails5.0.0へのアップデートを行いましたので手順を残しておこうかと思います。ちなみに、仕事でも現在アップデート作業を頑張っていますが、こっちは規模が違うので色々大変で難航しています。テストコード可能な限りテストコードは用意しておきましょう。サービスが大きくなればなるほどアップデート作業が大変になります。こまめに、無理のない範囲で用意しましょう。テストコードがない場合は、重要な部分、テストコードが簡単に用意できる部分、RailsであればModelのように下位レイヤーあたりから始めるのがおすすめです。テストコードが1つもないより、1つだけでもあるプロジェクトの方が安心感がぐっと上がります。Rubyのアップデート最近のRubyでは互換性が無い修正はまずありません。可能な限りRubyのアップデートから始めましょう。アップデート前と後でテスト結果に変化が無いことも試しましょう。問題が発生するとすればRubyのバージョンとGemのバージョンの依存関係が多いと思います。Gemは普段からアップデートしておき、開発が停止している場合は乗り換え先を探しましょう。可能ならば、Gemを使わなくて済む方法を探しましょう。した機能であれば自前で開発するのが良いです。Rails4系の最新版へのアップデート自分のサービスは小さいので定期的にアップデートを行っていますが、最新になっていない場合はまずメジャーバージョンは固定しつつ最新にしましょう。ここでもGemの依存関係に悩まされるはずです。Gemは少ないほうがバージョンアップ時に苦しまなくても済みます。テストはもちろんテストコードを利用しましょう。Rails4系からRails5系へアップデートいよいよ本題です。私の場合は次のような手順を踏むことが多いです。s'が動けば最低限の山は超えたと言ってよいでしょうもちろん、テストコードの結果、rakeタスクのようにテストコードが書きにくい機能の手動テスト、デザインやJSなどUI/UX周り、等など確認する部分は多々有ります。最終的に納得する部分まで来たら、最後は覚悟を決めてリリースです。22:35Rails4系からRails5へのアプデTweet広告を非表示にするもっと読むコメントを書く2016-06-06MeCabのWebAPIを公開してみた仕事でmecabを使わざるを得ない機会が出てきました。やりたいことは複合名詞の取得。SEOを目的としたサイト内リンクの増加の為に、キーワードを増やしたいわけですが、これがどうしてもサイトがターゲットの業界でよく使われるキーワードが多く、データは毎日何万、何十万という単位での変更があるため、手動では追いつきません。そこでMeCabでの複合名詞の自動取得というわけです。サーバのOSのバージョンやライブラリの関係から全サーバにMeCabを入れるのが辛い状況。そこでWebAPIなのですが、仕事用ということでどうしても独自性が出てきて汎用的ではありません。割り込みも多く開発がどうしても遅くなりがちです。個人的にNLPや機械学習系は興味があったのですが、これを機会に個人で作ろうかと思いたち公開しました。Sqaleさんを利用します。内容的には大したことないですし(DataBaseすら必要無い),個人でクラウド借りてサーバの管理までしたくはないので、これで十分でしょう。ちなみに、mohadanaはMeCab->和布蕪->海苔から調べると、こういう記述がありまして、パクりました。Wikipedia和銅3年(710年)に遷都した平城京には、海草類を売る「にぎめだな」(和布店)、海苔や昆布を佃煮のように加工したものを売る「もはだな」(藻葉店)という市場も存在した。サンプルから持ってきます。品詞の種類で判定しています。初めは名詞+名詞という単純なルールで実験をしていましたが、これが結構ダメなようでして色々調べた所、幾つかのパターンがあるようです。これは一般名詞の連続で、この場合は複合名詞と判定して良いようです。]}では「交通費」はどうでしょうか。この場合は「費」が名詞ですが、接尾語のようです。逆に接頭語とかもありそですね。この場合も複合名詞として良いでしょう。]}||>このように幾つかのパターンをWeb上で調べまして、複合名詞処理を行いました。専門家ではない人間が行った処理ですので、推測が正確ではないかもしれませんが、テストをした範囲ではそれなりに動くようです。複合名詞以外にも、複合動詞というのがあるそうですので対応を行うのも良いかもしれません。名詞でもアニメのタイトルなど判定が難しい新語もありますので、このあたりは辞書を強化する必要があるでしょう。分野によってはアスキーアートの対応が欲しい場面もあるようです。追加したい処理はありますので、これから対応したいと考えています。PaaSなSqale年も開けて1ヶ月経ちます。1/12が過ぎましたね、時間が経つのは早いです。khondalitのWebを学ぶブログ前回の続きです。今回はサーバについてです。sakura辺りを借りても良かったのですが、今回はSqaleを借りてみたので軽く感想を書きます。SqaleはいわゆるPaaSですね。Herokuと同じようなサービスですね。サーバサイドのコードさえ書けばOSからDBまで用意してくれて個人開発には非常に有り難い存在です。chefなり自前で用意するのも可能なのですが、リリースまでそれなりに時間がかかりますし最近はそこまで頑張る気力も無いのでありがたく使わせてもらいます。特徴gitでデプロイできます。非常に楽ですが、デプロイ後サーバの強制再起動を行っているのか一時的につながらない時間があるようです。gracefulじゃあないのがちょっと辛いですね。sshログインもできますし、cronも使い放題です。最初の2週間はただですので、お試しができるので初心者の方には嬉しいかも。あと、スケールアウトも可能な点も嬉しい。逆に辛いところは、DB容量が2GBだったりメモリも512MBなど結構厳しい。大きめのサイトを作るには向いてないですね。中小企業のサイトや個人のちょっとしたサイト等、データが小さめのサイト向けでしょうか。S3等別のサービスとの併用となりそうです。ファイルはS3でもよいけど、DBを大量に必要とするサービスにはさすがに向いていないようです。落語の動画をまとめているサイトを公開しています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。