「SQLITE」を含む日記 RSS

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

2018-12-12

sqliteかわいくて好きなんだけど

オフラインで完結する小~中規模のデスクトップアプリだったらsqliteでもいいよね?

2018-12-01

典型的ダメSES企業退職しました。

NTT退職エントリーが盛り上がっておりますが、クソであること以外に特徴のない企業からより正常な環境へ移っているエンジニアも多数いらっしゃると存じます

バブル就職氷河期も知らない世代ですが、今がかなり被雇用者にとって売り手市場になっていることは馬鹿な私でも感じます

私もそんな世の動きに乗っかった一人です。

元がNTTのような目立つ名前のところではないので記事としてもインパクトのあるものではございませんが、クソから脱出して半年以上過ぎてなお前職への恨みが消えないので一旦全部吐き出してスッキリしたい所存です。ただ排泄します。

転職活動は非常に短く、#hiyokonitsuduke流行に乗って、直接現在職場の方と連絡を取り、10日ほどでかなりスピーディに転職が決まりました。

年収、勤務時間業務内容、チームメンバー人格すべてにおいて上回っており、即決でした。

典型的ダメSES企業研修

入社し直後に合宿という名の下、三大キャリア電波の届かないところに連れて行かれ、開発合宿デモするのかと思えば「君たちの本気を試す」という名目の元、スリッパの並べ方にいちゃもんをつけて怒鳴る、社訓を大声で叫ばせて気に入らないやつを「心がこもっていない」怒鳴りつける、8時間ぶっ通しで歩かせて「こいつが足を引っ張った」と怒鳴りつけるという完璧研修を受けさせていただきました。夜中の3時、4時まで「お前らはいかにダメか」の説教を受けます

二十人以上を三日間拘束しているので、相当なお金をその研修会社に払っていると思います。質の高い教育のためにはコストを惜しまない、素晴らしい会社でした。

典型的ダメSES企業のオシゴト

前職は非常にセキュリティ意識品質意識の高い企業でしたので、どれだけ生産性を落とそうとも、社員健康を損なおうとも、関係ありません。

ここで言う「品質」とは、安定したシステムのことではなく、「何ステップの開発には何個のバグが入るはず」「見積もりどおりの規模になる」「残業100h/月すれば納期を守れる」という意味で、保守性や可読性のことではありません。

ここで言う「セキュリティ」とは、「不便にすればセキュリティ高まる」という信念のことで、「機密性」「完全性」「可用性」とは別の概念です。

契約で何ステップの開発することになっているから」「契約で何ページの文書をつくることになっているから」ということで、仕様どおりに動く成果物ができあがりテストカバレージ100%にもかかわらず、できるだけ無駄コードを重複させるように命じられます

CSVファイルちゃんとfor文で心を込めて一行ずつ読み込み、SQLiteを使えば3行で終わる集計処理をJavaの基本ライブラリだけで実装します。セキュリティを高めるために外部ライブラリツール仕様が一切禁じられているからです。

また、これもセキュリティ施策の一環として、構内からインターネット接続禁止されているため、ドキュメントを見たいときは社用携帯の狭い画面で調べます

まり常軌を逸しているため、クラウド勉強をして多少はまともな環境部署へ異動を願い出ました。もちろん、その数ヶ月前に現状の何が不満で何をどう改善してほしいか具体的に伝え、改善されなければ出ていく意図をはっきり示しましたが改善されなかったからです。

するとなんということでしょう。「勝手に異動願出すとはなんだ!」と怒鳴り声で電話がかかってきます。なんと部下思いの部長でしょうか。

やっとインターネットドキュメントソースを参照できるチームにアサインされたと思ったら、典型的ダメSES企業には典型的ダメ情シスがセットでついてきます。彼らは保身と「自分だけ」定時退社するためには何でもする、働き方改革最前線にいます

社内ネットワークをダウンさせ、全社の業務を数時間ストップさせ、社外へ出るプロキシ申請の設定を自分たちの不手際で吹き飛ばしても「社外へ接続する場合課長部長本部長の判子付きの申請書を再提出してください。」と、しっかりルールを守る姿勢を貫きます

セキュリティさらに高めるために、社内からGitHub接続禁止するという偉業を達成しました。社用携帯調査をするあの日々に戻りました。

チャットツールバージョン管理ツールを導入したくてもセキュリティを守るためにNoが帰ってきます

なんとかOSSで自前でホストさせてくれと懇願して払い出されるのはシングルコアメモリ500MBの超ハイスペックVMです。最先端をいく素晴らしい会社でした。

典型的ダメSES企業イベント

愛社精神コミュニケーションが足りない!」という理由で「せや!BBQしよう!遠足いこう!」となるところまでテンプレです。

もちろんイベント幹事は若手の仕事。なんら機密情報を含まないイベントの出欠管理も、エクセルzip暗号化して拡張子を変えてEメールパスワード別送する必要があります。徹底したセキュリティ意識の高さが素晴らしいですね。

年に一度、ホテルホールを借りて懇話会を行いますが、これはなんと休日に開催されますさらに、原則出席必須で欠席する場合理由を申し出なくてはなりません。

強制力を発揮しているので実質休日出勤命令ですが、イベントに呼んでいただいたことに感謝しなければならないのでもちろん手当などありません。

きめ細かなコミュニケーションのため、大きなイベントでなく小さな交流会も時々開催されます。ただし呼びかけるのは部長職以上、呼ばれるのは未婚の若い女社員のみです。

もちろん断ったり楽しそうな素振りを見せなかったりすると後でネチネチ言われるので、実質社員を動員しながら経費でキャバクラですね。

最後まで典型的ダメ企業は素晴らしい

最後最後まで搾り取ろうとする姿勢も見事なものです。退職二週間ほど前に有給消化に入ったのですが、「もう退職予定だからこの案件は参加できない。クラウドわかる人間必要なら案件を諦めるか他を育ててください」と明確に伝えたにもかかわらず、勝手に受注して「やってくれなきゃ困る」となぜか私のせいにしてきました。挙句の果てに私の個人携帯の連絡先を同期から聞き出して、警戒させないために自分ではなく私の同期から電話させて、電話に出たらなんとか作業をさせようとあれこれ駄々をこね始めました。有給消化中で旅行に行っていることも伝えているのに、素晴らしい仕事への意識の高さです。

今後一切関わることはないと思いますが、生まれて初めて他人に心から不幸になってほしいと思いました。

また、"エンジニアしぐさ"のひとつなのか「良い悪いじゃない」「転職手段であって目的でない」「ケースバイケース」などといってひたすら物事を相対化することがカッコイイと思っている人が界隈にはたくさんいらっしゃいますが、仔細に見れば傷の舐め合いや現実逃避ほとんどでしょう。

私はSESのすべてを知っているわけではないので、もしSESという業態が好きでたまらない、幸せでたまらないという方(もちろん搾取する側以外で)がいらっしゃったら、ぜひとも他人に噛み付くのではなくご自分でそのお気持ちをどこかにアウトプットしていただきたいです。

2018-11-09

”今後必要になる〜”の著者がうちの派遣おっさんだった

かなり興奮しているし酔っているので要領を得ないかも。

今日急にうちに派遣で来てるおっさんに飲みに誘われて、会社の近くの安い居酒屋につれていかれた。

なんで誘われたかというとこれもうまく言えないのだが、チームや全体での飲み会で近くにいることが多く、不幸なことに自分が少し聞き上手だからかもしれない。

とにかく席についてビールが来ないうちに、人をばかにしたような半笑いで話を切り出された。

おっさんが持っている10年も前にあったようなガラケーメモ帳画面を見せられ、君になら理解できるだろうとかクィータとかいサイトにはろくな人材がいないとかブツブツ言っていて、俺はメモの中身を読み進めているうちに顔が引きつっていくのがわかってなぜか記事自体よりもそのことで笑いが止まらなくなりそうなった。

しばらく自分はどうすればいいのか知らないふりをするべきか、なだめたほうがいいのかまじでわからなかったのだが、結局記事の本意を聞きたい好奇心には打ち勝てなかった。

ちなみに自分仕事場ではWinXPが現役で動いている。派遣おっさんも含め会社がそういうカラーだと言えば伝わるだろうか。

自分趣味でReact(ないしReactNative) とかで家計簿アプリを作っているし、Androidも(それこそJavaでだが)やっていてちょっと新しい技術は知っているというレベルである

・「マスター言語」について

端的に言うと「必修」という意味で使ったらしい。ルー大柴かおまえは。いや意味が通ってないしルーに失礼か。

JavaJavascriptが同列になっている点について

どうやらプロトタイプベースオブジェクト志向という意味をはきちがえている。

まりJavascriptはオブジェクト指向言語プロトタイプとして生まれ言語であり、完全オブジェクト指向言語(これも意味がわからなかった)のJavaとは切っても切り離せない関係であると思っているらしい。もう自分はここらへんから笑いが変な声で漏れる笑いを堪えられなくなっていて、喘息気味なんですとかアホな言い訳必死ごまかそうとしていたんだけれど、この派遣おっさんに対してそこまで気を使っている自分にも笑いが止まらなくなってまあなんというか、おもしろかった。

RubyJavaサブルーチンとは

Rubyが(というかRORが?)動作が遅いという話をどこかで読んだか聞いたかしたらしく、そして動作が遅いかわりに処理がしっかりしている(現文ママ)という位置付けの言語だと思っているらしい。正確性が必要な処理はサブルーチンにしたRubyに投げるべきだとかなんとか。

パッセンジャーよりもエンジンクスにひもづけるべき(現文ママ)とか言っててもうビールがまずくて仕方ない。

MSDN

自分MSDN学生時代にVisualC++とかで使ったことがあって、デスクトップアプリ用のライブラリだとずっと思ってたんだけど、違うんですかね。(無知

MSDM(何度聞いてもエムにしか聞こえない)の逆アセンブリ言語C++だとか、ここの話は輪をかけて本当に何言ってるのかわからなかった。

ねこのことを考えて耐えた。

SQL

あんま深く考えてなかったらしい。言語名前がついているか言語のくくりに入れた、くらいのスタンス

ちなみになぜか、使ったこともないらしいSQLiteで配列型を使えないことは知っていた。

と、ひと通り聞きたかたことを聞いた後、もうなんか疲れ果てたのでビールを半分残して帰った。

よほど調子が悪く見えたらしく、おっさんはひどく自分のことを心配してくれた。ごめんおっさん

2018-08-29

anond:20180829104103

ゆうてIoT機器の内部でsqlite使ってそん中にデータ保存したりするんやで。

…というより、どういうIoT機器を指して言ってるかで大分答えが異なるけどな。

温度計みたいな奴であれば、そもそもセンサー規定値かどうかを判断するだけでいいので別にDBなんかいらねーし。(I越しにアラートを受け取る口にはもちろん必要だが)

Amazon echoみたいなのであれば別にリアルタイムで何か記録したりする必要ねーから正にsqliteでいいしで結局あんIoTDB関係ないぞ。

2018-08-12

なぜSQLけがこの世界で未だに職人芸じみているのか

1.リファレンス無料で読めないか

標準SQL仕様書は有料である。このご時世ありえん。

たとえばC#など.NET系のリファレンスMSDNで読むことができる。

RubyだってHaskellだってScalaだって公式サイトガイドぐらい置いてある。

そもそも標準SQLサイトは有料ですら見つけるのが難しい。

2.実装ごとに仕様が違いすぎるから

OracleDB2MySQLPostgreSQLSQLite、AccessなどSQL実装されたDBMSは様々にあるが、どれを取っても仕様が違う。

皆が標準SQLに従っていてその上で適当増設している程度ならよいが、もはや誰も標準SQLに従う気が無い。

この点でCコンパイラ多様性のようなものとはわけが違う。

根幹的に必要機能があったりなかったりするから、あるDBMSで書けるようになったからと言ってSQLを覚えたとは言えない。

これと上記1とのせいで、何かググった時に特定DBMSしか解決法にならないものが大量に出てくる。

3.最適化人間任せだから

最近プログラミング言語は大抵、雑に書いたってコンパイラ適当最適化してくれる。

同じ結果を生むような二つのコードは、よほど下手くそに書かない限りは同じような実行速度になる。

SQLオプティマイザが最適化はするが、ほぼ同じような二つのコードで速度が全く変わったりする。

そのため実行計画というオプティマイザの中間言語のようなものを読んであげて、

より速い中間言語が生成されるようSQLチューニングし直さなければならない。

これでは何をやっているのかわからない。

有名なサイトでは、初心者必死で書いたような可愛らしいSQLを「それでは遅すぎるんじゃ」とけちょんけちょんにけなし、

なんかシンプルなのだけれどよくわからない文法を一杯使って実行速度を高めたのを「正解」としていたりする。

しかもその文法、ググってもろくな解説が無かったり、特定DBMS依存してたりと使えないオチ

4.スタイルガイドがないか

上手い人はSQLを綺麗に書く。だけど、その綺麗さの基準が人によって違う。

エディタが単なるメモ帳しかないようなDBMSも多いから、インデント文字数さえ個々人に任される。

インデントは2文字か4文字か。SELECTで改行するかしないかカンマは列の後ろか、前か。

いろいろなサイトに色々なことが書いてあったけれど、全部違うこと言ってた。

まり各々綺麗に書ければいいやということであり、読むほうも宗教が違ってもまあ綺麗なら読めるから困りはしない。

困るのは初心者である

何かの解決法をググるたびに違うスタイルからどう書いていいのかわからない。

結局なんかいろいろな上手い人のスタイルをツギハギした新たなスタイルが世に誕生してしまうのだ。

最後

だけど、そんな職人芸じみたSQL世界が私は好きです

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-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だったらしくて普段はどんなツールを使用してるのが

疑問だったので。

2014-12-02

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

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

Fuelミリョク

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

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

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




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

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エラー場合があるということです。

ログイン ユーザー登録
ようこそ ゲスト さん