「sqlite」を含む日記 RSS

はてなキーワード: sqliteとは

2018-06-17

anond:20180617192243

FirefoxくらいのアプリケーションでもSQLiteで済ませてるんだからなんとかなりそうなもんだよね

2017-12-21

https://anond.hatelabo.jp/20171221020132

バグばっかりだったあのゲームの思い出 の続き

遊べなくなり解析を始める

iOS版の新クライアントが導入されたのは12月の頭位であった。この月の頃には僕の所で前から起こっていた、ダンジョンからの帰還操作時間がかかる、という問題だが、これが帰還操作をしてからだいたい30秒以上かかるようになっていた。この問題は、30秒以上になると通信エラーを起こすという問題に発展しており、通信エラーが起こった時には帰還が失敗することが多くなってきていた。

この問題は新クライアントになる前から観測されており、何度もユーザサポートに問い合わせを行ってはいたのだが特に何も対応されることはなかった。僕としては何度も通信エラーを起こしていればたまに帰還が成功するわけなので遊べないことはない、というような言い訳をしつつ、15分の冒険を行わせるために30分位は帰還しようとして通信エラー再起動させてまた通信エラー、という事を繰り返していたのである

さすがにこんな事に時間が取られてしまうのは面白くないと思っていた所で、新クライアントリリースされ、「お知らせタップ」が知らされるまでは遊ぶこともできなくなり、何故「お知らせタップ」で解決するのかを観測してみたところでスキマの通信が平文で見放題であることに気づいてしまったわけである。そこにやってくる正月休み。なるほどこれは僕に与えられたハックの時間なのですねと僕は正月休みをスキマの解析に当てた。

解析自体簡単であった。帰還時に時間がかかっているのはクライアント側ではなくサーバであることも観測から明らかになった。何故時間がかかるのかは皆目検討がつかなかったが、とにかくサーバ側(多分DBアクセス等をしている)で時間がかかる処理が行われることによって、PHP側のタイムアウト(default では 30秒)にひっかかって50*のサーバエラーが起こる。クライアントは50*が返った事により「通信エラー」を表示する。サーバ側では処理が終わることもあるようだが大半は処理は終わらずそのプロセスごと殺されているようだ。従って、帰還するためのPUTリクエストを送って、失敗したら/login2からセッションキーをもらってもう一度PUT、と繰り返す事で30分(その頃には45分を越え50分位はリトライし続けないと駄目だった)以上かかる帰還操作自動化することができた。

ここまでで検証作業自体を終了とし、検証で明らかとなった問題(遅いのはサーバ側、30秒以上の処理が行われる事によって50*が発生する、PHPで動いているようだがPHPのtimeoutの初期値は30秒、ワークアラウンドとしてはこの30秒のタイムアウトを60秒とかにすれば当面の問題回避可能であるが、このままいけば早晩60秒の壁も突破するので根本的な修正必要)といった事を詳細に書き、Pythonにより自動化された帰還操作を繰り返す(つまり問題となっている50*のサーバエラーを起こすための)プログラムを添付して、「ここまでやったのでBANするならすればいいよ」と添えてサポートに提出した。

しかして返答としては「BANはしないけど今後はしないでくれる?」という温情あふれるものであり、その後すぐにタイムアウトの設定が増えたらしく30秒で50*が返される事はなくなり、一回で帰還操作が正常に終了するようになり、僕は帰還操作で50分も無駄時間を奪われる事はなくなった。(といってもその2ヶ月後には60秒の壁が立ちふさがって同じ事が起こったのであるが)

サービス終了

年が明けて5月、一ヶ月後にスキマのサービスが終了することが発表された。先程も書いたように僕は帰還操作がうまくいかないためにまともには遊べなくなっていたが、サービスが終了するのであればこれ以上とりたてて修正を願い出ることもあるまいとそれ以上は特に何も言わないで最後の一ヶ月を過ごした。

振り返ってみるとバグ攻略するという楽しいゲームであった。最後の方では通信の解析を行ってBOTのようなプログラム作成して非常に楽しんだ(実際、二週間位(一つのイベントが終了するまで)は自分操作しないでほったらかしておいてもやりたいことはだいたい全部できているようなBOT作成できた)。今となっては起動してもタイトル画面しか見えないゲームであるが、データが見えなくなるのは寂しいのでとクライアント側に保存されているキャッシュデータ(sqlite形式だった)の中身を閲覧するためのWebアプリを書いたりもしてとても楽しかった。多分運営側としてはいちいちバグ報告と称して長たらしいmailを投げ込んできたり、果ては通信内容を解析してサーバ側の設定を書き換えろと指示するといった迷惑まりないユーザであったとは思うが、まぁ、終わってしまったゲームであるのでもう何を言ってもいいのかなぁと思ってあけっぴろげに書いてしまった。

また、スキマを最後に開発していた会社はその後解体されて本社に吸収されている。

そういえば、色々とお世話になった2chスレッドはまだ残っているようである。せっかくなのでスレの方にもこの文書の事は紹介しておこうと思う。

2017-10-19

BASIC!のプログラミング教育適応性について

題:BASIC!のプログラミング教育適応性について

副題:Androidで動くBASIC!でプログラミング教育を行うメリットデメリット

少し考えてみたのでまとめとして投稿します。

01.はじめに

この文章は、Androidで動くBASIC!でプログラミング教育を行うメリットデメリット

ついて記載しています

02.BASICとは

BASICプログラム初心者向け言語として1960年代に発表された古い言語です。

極めて簡単文法インタープリターによる即時実行や1970~80年代パソコン

無償で搭載されていたこから沢山の人に利用されていました。

しかし、簡単ゆえの機能の少なさと即時実行方式のための性能の低さやその後の

優れたプログラム言語発表によりBASICの利用は著しく低下しています

03.BASIC!とは

BASIC!はアンドロイドタブレットスマートフォン上で動くアプリです。

Google playからインストール可能無料で利用できます

BASIC!

https://play.google.com/store/apps/details?id=com.rfo.basic&hl=ja

BASIC文法踏襲していますが、Android向けに大幅に命令拡張されており、

GPS等の各種センサー情報取得やSQLiteデータベース機能WEBVIEWを利用

したHTMLCSSJS表示・実行など約500程度の命令群で構成されています

無料広告なしのアプリインストールするだけでこれらの機能が利用可能

インタープリターなのですぐに実行することもできます

04.BASIC!でプログラミング教育を行うメリット

メリットについては以下があげられます

a.BASICプログラミング知識を持つ人は以外と多い

 過去の栄光というかBASIC自体は広く利用された時期が過去存在パソコン

 だけでなくポケコンゲーム機等でも利用できました。

 BASIC!は基本はBASIC拡張であり文法変数の取り扱いにおおきな違いは

 ありません。

 その当時、少しであってもBASICを触った人は多いのでメンターとしての

 再教育は容易だと考えます

b.HTML,JS,CSS勉強継続してできる

 BASIC!は手続き型と呼ばれる非オブジェクト指向言語であり最新の言語

 とは異なっています

 BASIC!のネイティブ命令群だけだと他の言語へのスムーズな移行は難しい

 かもしれません。

 しかし、BASIC!にはHTML5アプリのようにBASIC!自体webViewでHTML,JS,CSS

 を動かすことができます。(HTMLモード

 HTML,JS,CSS現在Webの標準であり、進化を続けています

 特にjavascriptオブジェクト指向言語進化採用される領域フロント

 エンドからバックエンドまで広がっています

 

 BASIC!自体webViewは他のAndroidアプリ同様、chromiumベースAndroid

 システムWebviewの更新により常に最新化されています

 HTMLモードではjQuery,Angular,ReactなどのJSライブラリも利用できます

 最初BASIC!ネイティブプログラムHTMLモードJSを利用したプログラム

 とSTEPを踏んだ学習可能だと思います

c.インストール環境設定が容易

 前述の通りアプリインストールするだけで利用できます

 追加の課金プラグインなどは不要です。

 またAndroid2.3以降でインストール可能です。

 但しAndroid5.0あたりからAndroidシステムWebviewが導入されているので

 Android5.0以降の端末を選択する方が無難です。

 インストール後、環境設定をする必要もありません。

 端末のルート化も不要です。

d.Androidデバイス等が安価

 安いタブレットであれば1万円程度で新品が買えます中古スマホであれば

 更に安価です。

 またプログラムを作るのでキーボードもあった方がいいと思います

 キーボードも2~3千円程度で安価です。

 もちろんソフトウェアキーボードフリック入力など)でもプログラム

 作れます

 パソコンよりもはるか安価プログラミング教育が実現可能です。

e.子供Androidデバイスに慣れている

 iPhoneの登場以来現在の子供たちはタッチパネルAndroidデバイス

 慣れています

 通常のノートパソコンに比べ違和感は少ないと思います

 また教える大人側も日頃パソコンよりスマホを触る人は多いと思います

 教える側の負担も小さいのではないかと考えています

f.可搬性が高い

 ここで述べる可搬性とは別のデバイスで同じプログラムを動かす場合

 容易さの事です。

 BASIC!はインタープリタなのでソースファイルのみを別のデバイス

 SDカード経由等でコピーすれば基本的には動作します。

 仮にHTMLモード場合は併せてHTML,JS,CSSコピーするだけです。

 別のデバイスにはBASIC!さえインストールされていれば動きます

 BASIC!独自プラグイン拡張モジュールなどは特にありません。

05.BASIC!でプログラミング教育を行うデメリット

メリットだけでなくデメリットもあります。以下の通りです。 

a.性能上の問題

 BASIC!の実体Javaで出来ています。すなわちJavaよりは性能は悪い

 ことになります

 実際、大量の繰り返しや大量の文字列を扱うプログラムは性能が出ないので

 処理に時間がかかります

 Androidスマホタブレット自体パソコン演算能力には劣ります

 大量の実験データ演算するような教育には向いていません。

 但し、プログラミング教育には大きな障害にならないと思います

b.BASIC!自体の仕組みの問題

 BASIC!はプログラムを作るアプリである以上当然文法エラーを実行時に

 表示する仕組みになっています

 ただ一部エラーチェックが甘い部分もあり本来エラーとすべきところを

 そのまま実行する場合もあり想定外の結果となる可能性もあります

 次にエディタは単なるテキストエディタと同等の機能しかなく最近

 エディタにあるようなシンタクスハイライト入力補完といった機能

 ありません。

 ただ比較シンプルプログラムを作る教育では大きな影響は無いと

 考えています

c.一部機能に制約がある

 前述の通りHTMLモードではJSが動かせます。ただし制約があります

 JSローカルモードで実行されるという事です。

 非同期通信などを行おうする場合JSが実行時エラーになる可能性が

 あります

 またデータベース機能であるSQLiteへの操作についても文字型項目しか

 利用できない制約があります

 JSローカルモードのみなのは教育の事を考えると少し残念ですが

 それでも多くのフロントエンドJSは実行可能なので教育には

 使えるという理解でいます

d.参考となる文献がほぼない

 教育には教科書またはそれに準ずる書籍必要だと思います

 該当する書籍がないのが実情です。

 ただ1冊だけ日本語で書かれた電子書籍存在します。

 ■BASIC! ~ 分かりやすい教本で一から学べるコンピュータ言語 - AndroidSQUARE

 http://blog.livedoor.jp/an_square/archives/51887786.html

 BASIC!の文法自体は極めて簡単なのでどうにかなると思います

06.結論

上記の通り、メリット/デメリットを列挙してきました。

デメリットもあるものメリットの方が大きい印象です。

とくに教える側の負担が少ない点がメリットだと思います。 

 

2017-09-10

anond:20170910121642

ウソです

 

 

CentOSインストール
c:\>docker pull centos

c:\>docker run -i -t centos /bin/bash

# cat /etc/os-release
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"

CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"

pythonパスバージョン
# which pyhton
bash: which: command not found

# yum install which
Loaded plugins: fastestmirror, ovl

# which python
/usr/bin/python

# ls -l /usr/bin/py*
-rwxr-xr-x 1 root root   78 Nov  6  2016 /usr/bin/pydoc
lrwxrwxrwx 1 root root    7 Aug  1 17:23 /usr/bin/python -> python2
lrwxrwxrwx 1 root root    9 Aug  1 17:23 /usr/bin/python2 -> python2.7
-rwxr-xr-x 1 root root 7136 Nov  6  2016 /usr/bin/python2.7

# python --version
Python 2.7.5

yumとは
# which yum
/usr/bin/yum

# file /usr/bin/yum
bash: file: command not found

# yum install file

# file /usr/bin/yum
/usr/bin/yum: Python script, ASCII text executable

# head /usr/bin/yum
#!/usr/bin/python
import sys
try:
    import yum
except ImportError:
    print >> sys.stderr, """\
There was a problem importing one of the Python modules
required to run yum. The error leading to this problem was:

    %s

# yum --version
3.4.3
  Installed: rpm-4.11.3-21.el7.x86_64 at 2017-08-01 17:23
  Built    : CentOS BuildSystem <http://bugs.centos.org> at 2016-11-05 23:37
  Committed: Florian Festi <ffesti@redhat.com> at 2016-07-26

  Installed: yum-3.4.3-150.el7.centos.noarch at 2017-08-01 17:23
  Built    : CentOS BuildSystem <http://bugs.centos.org> at 2016-11-15 15:30
  Committed: CentOS Sources <bugs@centos.org> at 2016-11-03

  Installed: yum-plugin-fastestmirror-1.1.31-40.el7.noarch at 2017-08-01 17:23
  Built    : CentOS BuildSystem <http://bugs.centos.org> at 2016-11-06 00:11
  Committed: Valentina Mukhamedzhanova <vmukhame@redhat.com> at 2016-08-04

yum remove pythonしてみた
# yum remove python
Loaded plugins: fastestmirror, ovl
Resolving Dependencies
--> Running transaction check
---> Package python.x86_64 0:2.7.5-48.el7 will be erased
--> Processing Dependency: python >= 2.4 for package: yum-3.4.3-150.el7.centos.noarch
--> Processing Dependency: python >= 2.2 for package: pyxattr-0.5.1-5.el7.x86_64
--> Processing Dependency: python(abi) = 2.7 for package: yum-metadata-parser-1.1.4-10.el7.x86_64
--> Processing Dependency: python(abi) = 2.7 for package: python-kitchen-1.1.1-5.el7.noarch
--> Processing Dependency: python(abi) = 2.7 for package: pygpgme-0.3-9.el7.x86_64
--> Processing Dependency: python(abi) = 2.7 for package: python-pycurl-7.19.0-19.el7.x86_64
--> Processing Dependency: python(abi) = 2.7 for package: libxml2-python-2.9.1-6.el7_2.3.x86_64
--> Processing Dependency: python(abi) = 2.7 for package: python-chardet-2.2.1-1.el7_1.noarch
--> Processing Dependency: python(abi) = 2.7 for package: dbus-python-1.1.1-9.el7.x86_64
--> Processing Dependency: python(abi) = 2.7 for package: python-urlgrabber-3.10-8.el7.noarch
--> Processing Dependency: python(abi) = 2.7 for package: pyxattr-0.5.1-5.el7.x86_64
--> Processing Dependency: python(abi) = 2.7 for package: yum-3.4.3-150.el7.centos.noarch
--> Processing Dependency: python(abi) = 2.7 for package: pyliblzma-0.5.3-11.el7.x86_64
--> Processing Dependency: python(abi) = 2.7 for package: pygobject3-base-3.14.0-3.el7.x86_64
--> Processing Dependency: python(abi) = 2.7 for package: python-iniparse-0.4-9.el7.noarch
--> Processing Dependency: python(abi) = 2.7 for package: yum-utils-1.1.31-40.el7.noarch
--> Processing Dependency: python(abi) = 2.7 for package: rpm-python-4.11.3-21.el7.x86_64
--> Processing Dependency: python(abi) = 2.7 for package: yum-metadata-parser-1.1.4-10.el7.x86_64
--> Processing Dependency: python(abi) = 2.7 for package: python-kitchen-1.1.1-5.el7.noarch
--> Processing Dependency: python(abi) = 2.7 for package: pygpgme-0.3-9.el7.x86_64
--> Processing Dependency: python(abi) = 2.7 for package: python-pycurl-7.19.0-19.el7.x86_64
--> Processing Dependency: python(abi) = 2.7 for package: libxml2-python-2.9.1-6.el7_2.3.x86_64
--> Processing Dependency: python(abi) = 2.7 for package: python-chardet-2.2.1-1.el7_1.noarch
--> Processing Dependency: python(abi) = 2.7 for package: dbus-python-1.1.1-9.el7.x86_64
--> Processing Dependency: python(abi) = 2.7 for package: python-urlgrabber-3.10-8.el7.noarch
--> Processing Dependency: python(abi) = 2.7 for package: pyxattr-0.5.1-5.el7.x86_64
--> Processing Dependency: python(abi) = 2.7 for package: yum-3.4.3-150.el7.centos.noarch
--> Processing Dependency: python(abi) = 2.7 for package: pyliblzma-0.5.3-11.el7.x86_64
--> Processing Dependency: python(abi) = 2.7 for package: pygobject3-base-3.14.0-3.el7.x86_64
--> Processing Dependency: python(abi) = 2.7 for package: python-iniparse-0.4-9.el7.noarch
--> Processing Dependency: python(abi) = 2.7 for package: yum-utils-1.1.31-40.el7.noarch
--> Processing Dependency: python(abi) = 2.7 for package: rpm-python-4.11.3-21.el7.x86_64
--> Processing Dependency: python-sqlite for package: yum-3.4.3-150.el7.centos.noarch
--> Running transaction check
---> Package dbus-python.x86_64 0:1.1.1-9.el7 will be erased
---> Package libxml2-python.x86_64 0:2.9.1-6.el7_2.3 will be erased
---> Package pygobject3-base.x86_64 0:3.14.0-3.el7 will be erased
---> Package pygpgme.x86_64 0:0.3-9.el7 will be erased
---> Package pyliblzma.x86_64 0:0.5.3-11.el7 will be erased
---> Package python-chardet.noarch 0:2.2.1-1.el7_1 will be erased
---> Package python-iniparse.noarch 0:0.4-9.el7 will be erased
---> Package python-kitchen.noarch 0:1.1.1-5.el7 will be erased
---> Package python-pycurl.x86_64 0:7.19.0-19.el7 will be erased
---> Package python-urlgrabber.noarch 0:3.10-8.el7 will be erased
---> Package pyxattr.x86_64 0:0.5.1-5.el7 will be erased
---> Package rpm-python.x86_64 0:4.11.3-21.el7 will be erased
---> Package yum.noarch 0:3.4.3-150.el7.centos will be erased
--> Processing Dependency: yum >= 3.4.3 for package: yum-plugin-ovl-1.1.31-40.el7.noarch
--> Processing Dependency: yum >= 3.0 for package: yum-plugin-fastestmirror-1.1.31-40.el7.noarch
---> Package yum-metadata-parser.x86_64 0:1.1.4-10.el7 will be erased
---> Package yum-utils.noarch 0:1.1.31-40.el7 will be erased
--> Running transaction check
---> Package yum-plugin-fastestmirror.noarch 0:1.1.31-40.el7 will be erased
---> Package yum-plugin-ovl.noarch 0:1.1.31-40.el7 will be erased
--> Finished Dependency Resolution
Error: Trying to remove "yum", which is protected

 

 

結論

依存チェックではじかれて、pythonを削除できません

2017-08-03

https://anond.hatelabo.jp/20170803123853

JSONは主に通信のために用いられる形式

保存にも使われることがあるが、表形式にはそんなに向いていない(入れ子構造データに向いている)

形式で保存したいなら、RDBに保存した方がいい

RDBは、CSVをそのまま取り込めて、SQL検索できる

RDBにも色々種類があるが、インストール簡単さでは、SQLiteがいいか

2017-04-08

http://anond.hatelabo.jp/20170407112743

プログラミング10年ちょい、仕事WebシステムとかiPhoneアプリとか、色々プログラミングしてるアラサーおっさんからだ。

増田10代後半〜20代前半くらいかな?と思って、書く。参考にしてほしい。うっかり年上だったら何かゴメン、でも少しは参考になると思う。

こういう「どこからやったらいいんだよ…」っていう悩みは俺もちょうど中学生くらいの頃に思ってて、悩みながら薦めたんだけど、

結局の所「どの経験もムダにはならないから、とりあえず沢山やってみるといい」ってことだ。これについては後述するけど、まずは細かい疑問に答えていこうと思う。

まず、色々調べてて、結構詳しいし感心した。ただ、その詳しさは、まだスタート地点だ。

どの言語がどういうものなのか、何となく知ってるのは役に立つから、これからアンテナを張り続けるといい。

MySQL使うべきなのかSQLite使うべきなのか、GolangにすべきかRubyにすべきかいっそJava?いやC#

こういう悩みが出るのは勉強した証拠しかし、この問題レベルの高いプログラマーでも難しい。

何故かというと、作ろうと思うもの次第だし、作ってみたら意外と相性が悪いみたいな事も起きるし、

何より、根性出せばどれを使っても作れるからだ。

疑問に思っているらしい、言語複数触れた方が良い理由は、こういう「どれを選んだら良いか」という問いに答えやすくなるからだ。

自分理解していないものが、今作ろうとしているものマッチするかしないか判断するには、言語環境に対する深い理解必要だ。

エディタ個人的にはVisualStudioXcode、あるいはIntelliJ系をオススメする。

何も設定していなくても好ましくない書き方の時に警告が出るから強制ギプスみたいに作用するからだ。

Twitterとかで騒いでる強いプログラマーの皆さんはvimemacsを薦めるけれど、意外にもchokudaiさんとかはVSでC#を書く派なのを思い出して欲しい。

IDEを作っているのもプログラマーなので、IDEを使うメリットもかなりあるんだ。使った上でやっぱりvimが良ければvimに戻ると良い。

パソコンスペックについては、確かにスペックが低すぎる。そのマシンで開発するなら、vim/emacsにせざるを得ない。 AtomSublimeでもキツそうだ。

書いてる通りで、Core i7/RAM 4Gくらいあればとりあえず基本的人権って感じ。

性能は高ければ高いほど良いけど、予算の都合だってあるだろう。 10万用意できるなら、結構選択の幅は広がるんじゃないかバイトなり親の説得なりお金ためるなり、頑張って調達するんだ。

さて、最初話題に戻る。

から勉強したら良いかからないなら、とりあえず何かをパクれ。Twitterクローンみたいなのでも良い。フォローテキスト書き込みだけなら作れるんじゃないか

なんならそれを公開してもいい。

もしアイディアがないなら、それこそTwitterで誰かが「こんなのあったらいいなぁ」って言ってるもののうち、何となく頑張れば作れそうなものに手をつけてみると良い。

どの経験もムダにはならない。やってみろ。1個作ったら、もっと広い世界が見えてくる。

2017-04-07

http://anond.hatelabo.jp/20170407112743

意識低い企業研究者です。プログラミングはサブウエポン。だけど趣味でも勉強してる。

働き方改革のせいで早く帰れって言われて、酒のみながら今これを書いてる。

C言語とかC++・・・これで作らないといけないものが今の所ないし、これでお金を稼ぐのはハードルが高いし、

WindowsAPIを使って複雑なプログラムを作りたいわけじゃないのでwhileとかifとか基本的な構文だけ覚えるだけで満足。

組み込みプログラミングではC言語はいまだに現役。お金普通に稼げると思うよ!次代のCOBOLと化しそうで怖いとこはあるけど。

Java・・・使える人が多いからあえて今から学習しなくてもいいような気がする。

文字列の結合だけでもダメやり方と良いやり方があるらしくて、何かPHPのようにその言語特有セオリーみたいなのを覚えるのが面倒くさそうなので入門の時点で学習するのをやめた。

セオリーとかあるかもしんないけど速度とか気に揉むまえに書いて測れ。たいていは杞憂か、あるいはCPUパワーで殴れるから

Go・・・HTTP/2が使えるから学習してる。他の言語だとnghttp2をインストールしないといけないようなのでGo便利だと思ってる。

ライブラリ選択肢が多すぎるのでこういうのが作りたいってときにこれを使うのがいいよっていうのが知りたい。

GUI作るのにライブラリありすぎてどうやって選べばいいのかさっぱりわかんない。

Goデータベース扱うならこれを使え、だけどMySQLしか使わないならこれを使え、あっSQLiteならこっちのライブラリ使うと便利みたいなこういう情報が欲しい。

GoGUIつくるの?あんまり普通じゃない気がする。軽量プロセスうまみがそんなない(詳しい人に否定されそうだけど)

普通にC#(mono/.net)かwebアプリにするかで良くないか

ただ、言語をあれもこれも覚えるのって僕は意味があるのかなという思いもある。

20言語Hello World出来るより、1つの言語でいろんなアルゴリズムを知っている方がすごいと思う。

コミュ症がフランス語英語ドイツ語覚えても、使う機会がないとまったく価値がないと思う。

アルゴリズムは使うものだ書くものではない!!

広く浅く学習するより、狭く深くいきたいとおもうけど、paizaでCランクしか取れない。

twitterで有名な人てやっぱりSランクとか余裕なのかな、こういうのもいろんなプログラマーに聞いてみたい。

一応著名なプログラマーTwitterフォローしてるけど、ご飯の画像を載せてたり、若者の僕には通じない寒いギャク連発してたり、ロリっぽい画像RTしてたりと、twitterはメインの情報収集としては利用してない。

twitterやってるプログラマーって勉強会とかオフ会に参加してるようなリア充の人ばっかりなので、肩身が狭いか自分からリプは送ったりはしない。

ファンがたくさんいるのに最近ニコ生配信してくれないchokudai先生みたいに、アルゴリズムを学ぶのがいいのかな。

深さ優先探索とか理解できない。

コード写経しても覚えられないし、仕組みは理解したけど自力コードが書けない。

コードにする能力ってどうやって鍛えるのか知りたい。

アルゴリズムは使うものだ書くものではない!高階関数とかテンプレートプログラミングとかその辺勉強するといい。

あと計算制限時間内に終わるなら総当たりが最速で品質も高いぞ。

エディタサクラエディタからVimに変えた。

どうしてVimかというとプラグインが多いしIDEっぽくできるから

Vim使う一番の理由は補完が強いのが気に入ってるから

Vimってハードル高いイメージあったけど、入門記事がたくさんあるので助かっている。

NetBeansが重すぎるんだよ。補完ボックスが表示されるの遅すぎて警告メッセージが出た。補完ボックスが表示されるまで7秒ぐらい経過すると警告メッセージが表示されたと思う。

Vim知らない。Linux使うならVimemacs使えるだろみたいな雰囲気あるけど、GUIならgedit, CUIならnanoでいいよね。

パソコンスペックもどのくらいのものを用意したらいいのかわからない。

10年前のVistaが搭載されていた頃の家電量販店で一番安かったCeleron 1コア メモリ1GB グラボなしノートからプログラミングに向いてないのかもしれない。

VirtualBox上のubuntuMySQLコンパイルすると2時間20分ぐらいかかった記憶がある。

CPUが1コアなのでコンパイル中にそれ以外の作業なんて重くてできない。

スペックお金をかけることで時間節約ツール選択肢が増える

EclipseなどのIDEが支障なく使えるレベルスペックってどのくらいするんだろう。

ノートCore i3メモリ4GBにランクアップしたらいけるのかな。

他人がどんなスペックPCで何のツール使ってプログラミングしているか知りたい。

3年前のCore i7, SSD, 8GB。最近はもっぱらJupyter。

もっと早いPCが欲しいけど、年度末に買うのを忘れた。

Python・・・機械学習する上で避けて通れないけど、今のPCだと無理。

例題が豊富逆引き辞典みたいなサイトや本がほしい。

あと、クレジットカード持てないのでAWS上で機械学習するのだけは遠慮したい。

過大請求されるの怖いし、トラブルが起きた時に英語コミュニケーション出来ないから。

Pythonはいいぞ、機械学習だけじゃなく計算系はエクセルじゃなくてJupyter使う。でも周りはエクセルつかってる、勿体ない。

使ってないけど最先端研究では機械学習使って当たり前感があってそろそろヤバい

僕は中学生の頃、いじめにより心の余裕なんてなかったか勉強どころではなかったけどもっと英語勉強しておけばよかったと後悔している。

やっぱり子供の頃の生活環境って大事だなと思う。

今は英検3級に向けて勉強中。

APIドキュメント頑張って読もう。俺も頑張って読んでる。

何を学習したらいいのか本当にわかんない。

迷宮にいる感じ。

なんとなく、プログラミングじゃないほうがいい気がするなあ。

とりあえずバイトしてPC買わない?プログラミングバイトでもいいと思うよ。

働き方改革最前線からは以上です。

プログラミングの学び方がわからない

C言語とかC++・・・これで作らないといけないものが今の所ないし、これでお金を稼ぐのはハードルが高いし、

WindowsAPIを使って複雑なプログラムを作りたいわけじゃないのでwhileとかifとか基本的な構文だけ覚えるだけで満足。

Java・・・使える人が多いからあえて今から学習しなくてもいいような気がする。

文字列の結合だけでもダメやり方と良いやり方があるらしくて、何かPHPのようにその言語特有セオリーみたいなのを覚えるのが面倒くさそうなので入門の時点で学習するのをやめた。

Go・・・HTTP/2が使えるから学習してる。他の言語だとnghttp2をインストールしないといけないようなのでGo便利だと思ってる。

ライブラリ選択肢が多すぎるのでこういうのが作りたいってときにこれを使うのがいいよっていうのが知りたい。

GUI作るのにライブラリありすぎてどうやって選べばいいのかさっぱりわかんない。

Goデータベース扱うならこれを使え、だけどMySQLしか使わないならこれを使え、あっSQLiteならこっちのライブラリ使うと便利みたいなこういう情報が欲しい。

ただ、言語をあれもこれも覚えるのって僕は意味があるのかなという思いもある。

20言語Hello World出来るより、1つの言語でいろんなアルゴリズムを知っている方がすごいと思う。

コミュ症がフランス語英語ドイツ語覚えても、使う機会がないとまったく価値がないと思う。

広く浅く学習するより、狭く深くいきたいとおもうけど、paizaでCランクしか取れない。

twitterで有名な人てやっぱりSランクとか余裕なのかな、こういうのもいろんなプログラマーに聞いてみたい。

一応著名なプログラマーTwitterフォローしてるけど、ご飯の画像を載せてたり、若者の僕には通じない寒いギャク連発してたり、ロリっぽい画像RTしてたりと、twitterはメインの情報収集としては利用してない。

twitterやってるプログラマーって勉強会とかオフ会に参加してるようなリア充の人ばっかりなので、肩身が狭いか自分からリプは送ったりはしない。

ファンがたくさんいるのに最近ニコ生配信してくれないchokudai先生みたいに、アルゴリズムを学ぶのがいいのかな。

深さ優先探索とか理解できない。

コード写経しても覚えられないし、仕組みは理解したけど自力コードが書けない。

コードにする能力ってどうやって鍛えるのか知りたい。

エディタサクラエディタからVimに変えた。

どうしてVimかというとプラグインが多いしIDEっぽくできるから

Vim使う一番の理由は補完が強いのが気に入ってるから

Vimってハードル高いイメージあったけど、入門記事がたくさんあるので助かっている。

NetBeansが重すぎるんだよ。補完ボックスが表示されるの遅すぎて警告メッセージが出た。補完ボックスが表示されるまで7秒ぐらい経過すると警告メッセージが表示されたと思う。

パソコンスペックもどのくらいのものを用意したらいいのかわからない。

10年前のVistaが搭載されていた頃の家電量販店で一番安かったCeleron 1コア メモリ1GB グラボなしノートからプログラミングに向いてないのかもしれない。

VirtualBox上のubuntuMySQLコンパイルすると2時間20分ぐらいかかった記憶がある。

CPUが1コアなのでコンパイル中にそれ以外の作業なんて重くてできない。

スペックお金をかけることで時間節約ツール選択肢が増える

EclipseなどのIDEが支障なく使えるレベルスペックってどのくらいするんだろう。

ノートCore i3メモリ4GBにランクアップしたらいけるのかな。

他人がどんなスペックPCで何のツール使ってプログラミングしているか知りたい。

Python・・・機械学習する上で避けて通れないけど、今のPCだと無理。

例題が豊富逆引き辞典みたいなサイトや本がほしい。

あと、クレジットカード持てないのでAWS上で機械学習するのだけは遠慮したい。

過大請求されるの怖いし、トラブルが起きた時に英語コミュニケーション出来ないから。

僕は中学生の頃、いじめにより心の余裕なんてなかったか勉強どころではなかったけどもっと英語勉強しておけばよかったと後悔している。

やっぱり子供の頃の生活環境って大事だなと思う。

今は英検3級に向けて勉強中。


何を学習したらいいのか本当にわかんない。

迷宮にいる感じ。

2017-02-17

今、スタバでルネラジを聴きながらコレを書いてます

さっき、テックブログRSSと一緒にホットエントリRSSを外して、アプリを削除したよ。何年の付き合いだろう?サービス開始からから・・・悲しくなるから確認せずに行くよ。

最初ダイアリーに書いて、反応なんて全然なくて、広告コメントばかりだったな。いまでもはてなの知り合いはいないんじゃないかな。

ネットコミュ障なんだ。Twitterとか色々やってるけどやりとりする相手なんて誰もいないよ。

僕は君になにもできなかったね。本当に君の事が好きだったのかな?本当に村民になりたかったのかな?多分、違う。本当はブクマされて、スターつけられて、承認欲求を満たしたかったんだ。

意識高い系を笑えないよね。何年も異性にお金を注ぎ込む人を笑えないね。僕もずっとホットエントリを見て、色んなものを買ったりしたんだ。

====

どうしてこうなったか?聞きたくもないだろうけど、最後から言わせてくれよ。

初めて君を見たとき天国に見えたよ。最新の技術トレンドがここにあってさ。自分理想郷はここなんだって技術力をつけて、認められる人間になって、ここの住人になる事が幸せなんだって思ったんだ。

そうやってさ、次々流れてくるトレンドに耳だけが年増になっていって、それを知らない周りの人たちをバカにしてたな。

でもさ、肝心の技術力は全然つかなくてさ、大学生になれば、就職すれば、東京に出れば、新しいマシンがあれば、お金があれば、時間があれば、やる気があればって制約条件がなくなる度に新しい言い訳を考えてたな。

結局、生半可な知識じゃ参加できないってチンケなプライドのせいで勉強会に参加せず、ブログも書かず、なれたのは一番軽蔑するExcelとにらめっこしてるSIer。おいおい、Web系のベンチャーテックブログ書くんじゃなかったのかよ(笑)

耳年増で、周りをバカにしてたクセに仕事全然できない自分とのギャップ10年耐えてきたけど、年末休職したんだ。自律神経失調症

眠れるんだよ?ごはん食べられるんだよ?ただ、会社の人みんなが怖くなってさ、朝だるくってさ、すげー疲れてさ。苦しくて。仕方ないから受け入れて。っていうか、甘やかして。つまるところ、ズル休みなんだよ。

時間が出来たから、ずっと積ん読になってた技術に正面きって立ち向かってみたんだ。すぐ投げ出したね。理由は分からないけどただ苦痛だった。

作りたいものなんかなかったし。多分、技術を使いこなしてスゴいって言われたかったんだね。

部屋にはPerlRoRSQLitejQuerynode.jsAWSHaskellHadoopDockerRaspberry Pi、R、Reactのホコリを被った本がある。彼らはブックオフ行きかな。

最近時間はあるからさ、はてブばっかやってたんだ。見るのがホットエントリから新着エントリーになったな。いつもみたいに100文字制限ギリギリコメントだけじゃなくて、10文字くらいの一言コメントも書くようになったんだ。その10文字コメントのうちひとつ100スターくらいもらえてさ。

そのとき分かったんだ、これはずっと片思いなんだって。叶わない恋なんだって自分が住める世界じゃないんだっておかしいよね、小学校の頃のプロ野球選手の夢だって中学生の頃の小説家の夢だって高校の頃のパンクロックスターの夢だってすぐ諦められたのに、この夢は35歳の今だって諦めきれないんだ。

応用情報取った時も、ネスペ取ったときも、オラクルブロンズ取った時もLPIC 2取った時も全く達成感なかったよ。コレ取るのに何年かかってんだってさ。村民は1ヶ月あれば取れるぞ。同期のアイツだって3ヶ月で取ってるぞ。何が言えるんだってさ。

銃・病原菌・鉄読んだ時もそうだった。で、お前はそこから何かアウトプット出来るのか?ってさ。読むだけなら幼女でも出来るんですけどwって。

伝わる?伝わらないだろうな。みんな高IQですぐに色んな技術理解出来るじゃない?すごいよ。自分二浪駅弁大学しか行けないくらいのバカで、リアルでもネットでも知り合いを作れないコミュ障自己承認全然出来ないんだ。

ADHDって言葉を知った時、これだーって思ったけど違ったね。IT勉強してても過集中が全然ないんだ。

話が逸れたね。認知療法してて、気づいたんだよ。何をしてても自分を認められないんだよ。はてなに受け入れられる事を成し遂げられてないからね。

から自分を認めるために、君のことを自分から切り離さなきゃいけない。自分世界を作らないと。一方的なっちゃうけど、さようなら勝手だけど、今にも泣きそうだよ。

これからどうしようかな。匿名で好きな事書けるのはココだけなんだ。自信のない間違ってるかもしれない事を書いてもいいのはココだけなんだよね。ここなら見たくないコメントを見なくてすむんだ。

新聞も取ってないかチラシの裏にも書けないよ。

でも、前に進まなきゃ。夢の世界への憧れは終わりだ。目の前の現実世界適応しなきゃ。また逃げ戻ってくるかもしれないけど、いまはさようならしなきゃ。

最後に何か残せるとしたら・・・スタバハチミツ、あれ何に使うと思う?あれ、ワッフルを食べるときに使うんだよ。

・・・スベったね。

さようなら。このエントリも2時間すれば次のページ行きだ。そうすると、誰かの目にも触れなくなる。単なるはてな磁気データになる。

最後ブコメとかつくんじゃないかって浅はかな期待を持ちながらこの内容を登録するボタンを押します。じゃあね。

P.S. 認知療法について書いてくれたこの増田には本当に感謝しています。まだまだ自分について書く事が苦しいけど、正しい道を向いてると信じています

http://anond.hatelabo.jp/20150213215921

2016-10-13

アプリエンジニアだけど、サーバーエンジニア尊敬する

3人くらいで集まってBtoBtoCアプリサービス作ってるんだけど

お金いから一旦俺がアプリサーバーデザインサービスモデル化までやってる

(ちなみに得意なのはiOS

それで一番苦戦するのがサーバー

サーバーサイドってなんでああも意味不明なのか

Rails覚えりゃいいんだろ? と思ったら

RailsRubyNginxUnicornJbuilderSQLiteAWS、その他いろいろ

とにかく多い

芋づる式にいろいろ必要になる

linux知識が薄いから更にアレだし、IDE入れたら更にアレだ

(いや、AptanaEclipseベースからまり問題はなかったか

しかも、そこまでに取捨選択が入るから、登場する「ナニコレ」はもっともっと多くなる

 

まあそこまではまだいいんだけど

一個一個のバージョン差とか、書き方の差でハマる

「まあこの書き方が主流だよね」があまりない

MySQLは書けるのにSQLiteでハマるしActiveRecordでドハマリする

自由すぎる

そして問題が起きた時にどこでコケてるのか調べるのが骨すぎる

何でコンパイラ無いんだよ

テストとかだるい

優しく教えてよエラー場所

 

おまけにググっても色々出てこない

これはやってみると、いかアプリが恵まれてるかがわかる

99%の問題はStackOverflowに書かれているか

 

完成しても「本当にこれでいいのか?」がよくわからない

色々蓄積してどっかで問題が起こるかもしれない

アプリならそんなこと滅多にないのに

 

難しいよサーバーサイド

俺やだよ

まあ片手間でやってるからなんだけどさ・・・

 

サービスリリースしたらWeb必要だよね」って話もあるんだけど

たぶん無理だな、外注しないと

 

___

 

ちなみに、複数領域を1人でやったときの利点と欠点

利点:設計とかあとで適当に変更してもコミュニケーションコストがかからいから楽

   デバッグ捗る

   複雑な仕様を全部把握できる

   まだサービス全体像ふわふわ場合試行錯誤できるから非常に有効だと思う

欠点:ドハマリする回数が単純にN倍になる

   頼れない

   進みが遅くてイラつく

 

みんなもやってみて

2016-08-10

http://anond.hatelabo.jp/20160810154352

サーバを立てんでも良いからね。

テーブルメモリ上だけに作れたりするし。

ものぐさにはぴったり。

というかさ、テストはどこで走らせることになるか分からんものから

MySQLが無くても動くように作るとなると、SQLiteが便利だったりする。

開発環境sqliteで本番はMySQLとか分けるのって何の意味があるの?

2016-02-01

http://anond.hatelabo.jp/20160201065131

覚えるべき言語PHP

データベースは、最初SQLite で十分でしょう。

入門書は、本屋適当に読みやすそうなものを探すのが良いと思う。

入力フォームを作る。

それを受け取り、SQLite登録する。

検索フォームを作る。

それを受け取り、SQLite から検索して、一覧表示する。

最初はこのくらい目標で。

2015-10-30

http://anond.hatelabo.jp/20151030042729

現役のプログラマーさんとのことで質問があります

ゲームデータ管理ややりとりってどんなものを使ってます

敵やプレイヤーステータスアイテム効果説明文とかの。

例えばゲーム内ではSQLiteプランナーとのやりとりではExcelとか。

以前にプレイしていたゲーム攻略Wiki生データっぽいのが書き込まれ

ことがあって、それがxmlだったらしくて普段はどんなツールを使用してるのが

疑問だったので。

2015-08-20

スキルを増やしたら仕事が楽になるのだろうか?

とある会社プログラマをしている。プログラマと言えるかどうかわからないけど。

少し前まで携わっていたのは、具体的に書くと問題がありそうなので少し分野を変えて述べる。スマホ向けにTOEIC学習ソフトみたいなものを作っていた。プログラム自体は単純で、データベースから問題を読んできて表示して採点するだけのアプリだ。ただ困ったことにデータの数が多かった。図とか問題文とか選択肢とかボイスとか。チームは外部の専門家とかデザイナーを除けば実質二人だけ。上司自分

問題エクセル管理されていた。最初は「(会社名・部署名・以下長い名前プロジェクト名)07_FINAL. xlsx」のようなファイルが次々メールで飛んできた。FINALとあるのに「(会社名・部署名・以下長い名前プロジェクト名)09. xlsx」もあって、09が最新だ。他にも長い名前の一部が違っているファイルも飛んできて、さながら間違い探しのようだった。こういうファイルが次々来るのでどれが最新かよくわからない。上司も「この問題変更したよ?」と常々言ってくる。直属の上司なのでミーティングの頻度は多く、何か意思疎通に問題があってもその日のうちに解消される。アプリデータベースSQLiteなので更新箇所をコピペしていくことになる。頻繁に間違いもあるので気をつけながらコピペしなくてはならない。プログラマというよりはタイピストみたいな仕事だった。

ある日、会社で使っているGoogle Appsを使うように提案した。1つのスプレッドシートを共有して編集すれば、ファイルの数が爆発的に増えることなく、いま見ているファイルを二人で共有しているのだからわかりやすくなると思った。その提案は受け入れられたが、メールボックスに「上司さんが次のスプレッドシートを共有しました」という大量のメールが届くようになるだけで事態改善しなかった。今まではデスクトップExcelファイル編集して添付していたのが、Google Driveアップロードしてシェアするステップに増えただけだった。

GitHubを導入して欲しいと頼んだこともあるが「必要ない」の一言却下された。1つにはプライベートリポジトリに7ドル払いたくないというのと、BitBucketならどうかと提案したところやはり要らないとのことだったので、新しいサービスを覚えるのが嫌だったのだと思う。バージョン管理システムSubversionを使ったことがあるらしく、Gitは難しいとか複雑だとかコマンドが多いとだけコメントを述べていた。

問題文だけでなく画像管理煩雑の限りを極めている。長いファイル名の付いた.zipファイルが添付メールで送られてくる。中にはゴチャゴチャとたくさんの画像が詰まっていて、この中の画像と前回のミーティングで話した問題のある画像差し替えて欲しいらしい。画像の大きさもデタラメだし、場合によっては切り抜いて貼り合わせるなどの簡単な編集必要なことも多かった。そして画像差し替えても夕方ミーティングで「その馬じゃないよ、送ったでしょ?」とダメ出しされる。

自分も不幸だったけど上司も不幸だと思う。上司PC内はものすごく几帳面に整理されていて、非常に深い階層に至るまでフォルダで分類されている。しか目的ファイルを探すのに非常に時間がかかる。いつも長時間労働をしている。そうやってがんばってエクセル編集して画像デザイナーから受け取ってzipしてメールしたのに、自分が望んだ結果とは違うアップデートがなされている。そうした開発期間がそこそこ長くなったのに辛抱強くエクセルファイルを送り続けてくれたし、zipファイルもたくさん届いた。もし上司SQLiteを直接いじってくれたら仕事はだいぶ早く終わったと思う。そうしたら自分仕事はなくなってしまうか。その時間を使ってプログラム本体もっといいものにできたかも知れない。

もし、自分Ruby on Railsみたいなフレームワークに習熟していて、SQLite問題データベース画像ファイル直感的に上司差し替えシステムを土日返上で作ることができたら、お互いにそんなに苦労しなくて済んだのかも知れない。でも土日返上システム作っても「必要ない」「Google Driveでいいじゃない?」で済まされたかも知れないけど。残念なことに自分入社してiOSの開発をちょっとだけかじった程度だったので、片手間に便利なシステムを作る技能はなかったのだ。そして今も覚えたい技術にまで手が回っていない。

2014-12-02

結局FuelPHPRubyってどっちが優れてるの?

このタイトルを見てFuelPHP(以下、Fuel)が勝ちだとか、Rubyのほうが優れてるだとか、思った方はいます反省するべき。

Fuelミリョク

FuelRESTfulアクセスセッションサポートしているなど、フレームワーク自体最近ウェブサービス思考対応し、また、ローカルの開発の場合SQLite(もつかえる)を使うなど、開発環境においても最近流行を取り入れていますgitとの相性も良いです。

Fuelの最大の魅力はComposerと呼ばれるphpライブラリパッケージシステムでしょう。Fuel(のコア)自体もComposerの1つで、Composerを使わないFuelアプリケーションはありません。(というかComposerを使わないのであればFuelである必要がない。)

フレームワーク拡張するプラグインが幾つもあることにより、Fuel汎用性が高くも多くの人に使われるフレームワークであるといえます




もういい・・・! もう・・・ 休めっ・・・! 休めっ・・・!

2014-10-29

http://anond.hatelabo.jp/20141028072958

はてなブックマーク - Cujoのブックマーク - 2014年10月28日

Cujo Cujo Security tool つーる>おぷしょん>ぷらいばしー>りれき>しょうさいせってい>れいがいさいとに不許可でドメインが追加されてないかな。自分ニコ百かいくつかのドメイン最近頻繁になって困ってる。対処療法は削除。 2014/10/28

チェックしたけど許可だったし、Cookie一覧見てみたけど普通にagqrあった。

なんでかなーって思って、すったもんだの末Cookieファイルがぶっ壊れてるぽいと思い当たる

一旦Firefoxを落としてcookie.sqliteを削除して再起動したら解決。あー、びっくりした。お騒がせしました。

しか野水いおりはなぁ。チャイOP、両方ともひでーじゃん。あれは声質があってないのかそれとも音t……

かいろいろ書いてたらみかこしリピ始まって10分も経ってしまった。ヤバい。寝る。

2014-03-06

http://anond.hatelabo.jp/20140306121554

たぶん元増田の疑問というかニーズみたいなものはこんな感じかね。

RDBでも良いから程ほどにゆるくやりたい → Sqlite

データ構造に柔軟性を!変化を! → XMLDB

整合性には目をつぶるから大量に速く → NoSQL

階層型の需要はどうなんだろうね。

言い出しっぺの法則で是非実装してみてほしいw

2013-11-03

http://anond.hatelabo.jp/20131102115722

JavaperlHTMLCSSJavaScriptの基本もやって今rubyやってる

Webアプリ向けの知識だね。

これと、データベースSQLiteとか)組み合わせれば、はてな匿名ダイアリーっぽいものは作れる。

Ruby On Railsとかのウェブアプリケーションフレームワークを使うと、ひな形アプリケーション自動生成して、それを自分拡張していくような作り方ができる。

2013-10-20

いや、やっぱボロいわ、 SQLite

http://anond.hatelabo.jp/20131020004606

あれから時間かけてコーディングすすめたが、結局PHPエラーもないのにSQLITEの例のエラーが出てくる。

TRANSACTIONでくるんでもだめだわ。時間返せよ。

初めからぼろぼろに見せといてくれ。うまく使えそうなそぶりするなよ。そうすれば、はじめからつかわんかったわ。

SQLITE 3 "Error: database disk image is malformed" は、私のせいであった

PHP 5 で、Sqlite 3 を PDO を利用して操作しておりました。

 *** in database main ***
 On tree page 2 cell 3: invalid page number 112
 On tree page 2 cell 3: Child page depth differs
 On tree page 2 cell 4: Child page depth differs
 Error: database disk image is malformed

たかだかテーブル 1 つ(1000行インサートした程度)で、まだ 100kB のファイルサイズで、もう綻び!?無償だし、Lite (お気軽)だからって SQLite 脆弱すぎ、使えないなぁ...と憤慨。しかし、解せないのは途中で vacuum しても、データ処理の順番を変えても、いつも同じ内容データを処理しようとしたときに壊れてしまう。

データ内容が悪いのかな、UTF-8データを扱っていて、sqlite は既定で UTF-8 を扱う設定だし(pragma encodingで確かめても UTF-8 と表示される)、文字列中にコントロールコードでも混じって壊れたのか?

原因は、PHP のほかのコードエラーが発生して PHP スクリプトの動作が停止したので、SQLITE エンジンの処理も途中で強制終了してしまったためみたい。

まりSQLiteデータベースが壊れる原因は、データベース操作のものではなくて(まったく別の個所で)、PHPエラー場合があるということです。

2013-08-26

初めてのRailsサイト作った人が使ったGemリスト一覧

ども。

以前、はてな匿名ダイアリー日記を書いた者です。

【Ruby on Rails勉強】 xvideosまとめサイトっておいしいの?

上の記事でも書いていますが、Railsはおろか、Rubyを初めて触った人間ゼロからWebサービスリリースするために利用しているGemを公開したいと思います

作ったサービス

サイトonalife(オナライフ)
URLhttp://www.onalife.com
説明xvideos動画の共有・ユーザー参加型のまとめサイト

使っているGem

sqlite3

developmentモードで起動する際のデータベースsqlite3を使うようにしています

コーディングサーバー起動→動作確認→コーディング…という流れになりますが、サーバーを起動する際に、

$ rails s

と実行するだけでサーバーが起動できるため大変手軽です。

サーバー起動後はブラウザhttp://localhost:3000/アクセスすれば開発用のサイトを確認できます

mysql2

productionモード(本番環境)で利用するのはMySQLを使うようにしています

理由は他のWebサイトで推奨されていたため。

sqlite場合だと、単純にDBデータファイルとして扱っており、同時に複数アクセスがあった際、最初アクセス中にファイルロックされてしま仕様との記事をどこかで見たため、MySQLを使うようにしています

developmentとproductionで動作を分けるには、 config/database.ymlで分けることができます

development:

adapter: sqlite3

database: db/development.sqlite3

pool: 5

timeout: 5000

production:

adapter: mysql2

database: production.mysql

encoding: utf8

pool: 5

username: <yourname>

password: <password>

timeout: 5000

kaminari

pagenation系のド定番ですね。

よくWebサービスのページ下にある [1][2]・・・[X]といったリンクが表示されている、あれです。

http://memo.yomukaku.net/entries/238

https://github.com/amatsuda/kaminari

unicorn

Unicorn + Nginx + Rails で構築しています

効果の違いなどはGoogle先生質問すると大量に返答がありますのでこちらでは割愛

体感的にもかなり違います

nokogiri

スクレイピングするのに使っています

ONALIFE(オナライフ)では、xvideosの動画URL画像パスを抜き出す為に、こちらのGemを使っています

HTMLブロック単位で抜き出せるため大変重宝しました。

http://himaratsu.hatenablog.com/entry/2013/04/27/002249

http://nokogiri.org/

acts-as-taggable-on

タグ機能を簡単に実装するためのGem

これは捗る。超絶オススメ

サイトタグ機能はこちらで一瞬のうちに導入できました。

自作するとなるとかなり労力使いますから…こういったところは極力他の人が作ってくれたものを流用してもバチはあたらんでしょう。

https://github.com/mbleigh/acts-as-taggable-on

typus

管理画面を一瞬で作ってくれるGem

通常だと管理画面も rails g xxx とかやって controller 作って、 view 作って…とかやらないといけませんが、こちらのGemを使うと一瞬で終わります

素晴らしい!!

サイトでは、投稿していただいたxvideosの動画が不適切な場合などに消去する必要があるため、どうしても管理者向けの画面が欲しかったのでこちらを使いました。

データベースを直接操作して delete とかできちゃいます

http://www.func09.com/wordpress/archives/1136

google-analytics-rails

Webサイトを作る上でアクセス解析というのは必須です。

自分サイトアクセス傾向を解析して、どうすればアクセスが伸ばせるか、ということを考察するのに必要不可欠な機能です。

通常、Google Analyticsサイトを登録すると、Javascriptコードが生成されるので、それをWebサービスに貼り付けるだけで完了ですが、こちらのGemを使うと、Google Analytics で生成されるID番号のみを登録するだけで自動的に挿入されるようになります

コードがごちゃごちゃしなくなるので可読性が上がります

最後

まだONALIFE(オナライフ)は発展途上のサービスです。

機能拡張していくうえで、先人たちのありがたいGemをどんどんこれから活用していければ、と思っています

みなさんもこれは便利!というお勧めGemがあれば是非教えて頂ければと思います

トラックバックコメントとかでも大歓迎です!

以上、ONALIFE(オナライフ)で利用しているGem一覧の紹介でした。

参考サイト

http://anond.hatelabo.jp/20101206224349

http://anond.hatelabo.jp/20101203150748

http://anond.hatelabo.jp/20120914214121

http://anond.hatelabo.jp/20130120190550

じゃあの。

2013-03-03

RailsとTwitterBootstrapでエロ動画ソーシャルブックマークWebサービス作った

Rails + Twitter bootstrapでエロ動画ソーシャルブックマークWebサービスソーシャルオナニー=ソシャニーを作りました


こちらです http://www.socianie.com


【なにこれ?】

かっこつけた言い方をすると、

「いっぱいエロ動画あるけど結局みんなどんなお宝動画で抜いてるの?という日常的な疑問への答え」

とかでしょうか。

実際どんな事が出来るサービスかというと、基本的には、はてなブックマークのようにエロいページをブックマークする(その時に、コメントを付記することができる)というものです。

サイト内の他のユーザーフォローすることができ、TwitterのようにTimelineのようなものがあってそこにフォローしている人がブックマークしたページが表示されます(そのページが、xvideos,fc2などの有名サイトならば埋め込みプレーヤーですぐ再生出来ます。)

まりフォローしてる人の最新お気に入りエロ動画がチェックできます

ブックマークされたページはそれぞれが固有のページを持っており、タグを付ける事ができます

ユーザーブックマークしたもの動画一覧で横断的に見ることができ、並び替え・検索などが出来ます

ブックマーク数で今日ランキング今週のランキングなどが見れます

あと、累計ブックマーク数によってユーザーランクが上がったりします。

TwitterOAuth認証ログインが出来ますTwitterツイート投稿などはしません。また、サイト内の名前アイコンTwitterのものを流用するかどうかも自分で決められます。)



他のエロサイトとの違いは、3つあると思っています

ソーシャル機能。他にも世の中に色々素晴らしいエロサイトがありますがそれらはソーシャル機能を持つものが少ない。

②上記の話とちょっと被ってますが、他のサイトは基本コンテンツ自体を自動クローリングするけれどソシャニーはそこをユーザー自身に委譲しているため、集まってくる動画の質はそれに比べて上がるんじゃないかというのと、

エロサイトありがちな出来るだけごちゃっと感を無く広告も無しでTwitter bootstrap使って小綺麗な感じ


作成後記】

Webサービス作るならRailsかな楽で便利らしいしというざっくりとしたイメージからRailsで作り始めましたが、

ネット情報入門書に取り組んでもサンプルと同じモノは作れても実際自分が作りたいモノになると、で、どうやるの?となりなかなか進みませんでした。

Railsは色々と勝手によろしくやってくれる機能が多すぎて実際何が起きてんの?というのがわかりづらいというのが第一印象でした。

色々試行錯誤した結果、一番参考になったのはRails tutorial( http://ruby.railstutorial.org/ruby-on-rails-tutorial-book )でした。

英語ですがバージョンは新しいしBootstrapの使い方もわかるしサンプルがTwitterクローンサービスを作ろうというなかなかおもしろものなので途中で飽きること無く取り組めました。

何かを学ぶ時は、モチベーションが続く形の学び方が一番いいと思いました。

僕はエロ動画が大好きなので、エロサイトというのもモチベーションの1つです(ただ、作業中に脱線して気づいたらキーボードではなく下半身に手が伸びているという事もありました。)

また、上記のチュートリアルテスト駆動開発なのでSpecテストをモリモリ書いているのですが、とりあえずはテストに関しては何をやってるのかざっと眺める程度で精読しませんでした。

まずは全体像を把握して何が必要か把握したかたからです。結果的に最後までやりきれたので良かったと思います



あとは、Rails固有の知識ではなくWebサービス全般の知識で足りないな、と思ったときネット上や本屋立ち読みで済ましました。

ネットで細切れにお勉強している場合本屋で体系的にまとまっている本をざっと読むと意外に抜けてる知識が保管されたり脳内インデックスが作れるのでいいと思いました。


バージョン管理gitを使いました。

理由はみんなが良い良いというので乗っておくかという安易なものです。

実際のところgitの良い所を使い倒せているのかというと全くそんな事ないですね。

せいぜいstash位でしょうか。あとbisectとか。


リポジトリ最初DropBoxに作ってたのですが、途中からBitbucketを使いました。

GitHubを使わなかった理由はBitbucketプライベートリポジトリ無料で持てるからです。

また、恥ずかしがり屋なのでGithubで公開は敷居が高いと感じたからです。

初のRailsプロジェクトというのもありソースがイケてないので恥ずかしいのです。

いつかイケメンコードGithubで公開してオレツエーしたいものです。


サーバーエロOKのところを探すのがなかなか難しく結局海外VPSを使いました。

Linodeというところですが、他との違いを挙げるとiPhoneアプリ経由で再起動などが出来たりします。あまりこの機能使ってないですが。

OSベタCentOSです。

構成はpassenger+apacheで、DBSQLite特にLBなどはないです。

諸々構築後に人気が出た時困らないように負荷分散のお勉強なんぞもやりかけましたがまずは不要かなということで辞めました。

ちなみにサーバーがUS西海岸なのでSSHで作業するとエディタちょっともっさりすることがありました。


プロジェクト管理は、会社でも使ってるのでRedmineかなと思ったのですがどうせ一人だしRedmineのUIきじゃないのでTrello( https://trello.com/ )を使いました。

TODO,Doing,Done,Bug,Suspendのリストを作ってやること忘れないように管理しました。

ふと出先で思いついた機能とかをiPhoneでスイっと追加など出来て便利でした。


正月に公開してお友達界隈で見てもらったんですが、よかれと思って作ったChrome拡張CSRFの対策が不備あり結局ブックマークレットにしたり、

ソースを見てもらったら設計RestfulじゃないとかControllerがfat過ぎるModelに押しこめなどアドバイスをもらえたり無知な僕には色々とお勉強になりました。

出来たものはしょぼいものですが、「Webサービス作ったことないコンプ」は少し解消出来た気がします。


以上、月19ドルも払ってるのにお友達だけで使われてるのも寂しいので増田でまとめついでに宣伝してみました。

叩かれるんでしょうか。怖いです。いじめないで。

アーカイブ ヘルプ
ログイン ユーザー登録
ようこそ ゲスト さん