はてなキーワード: SQLITEとは
NTT退職エントリーが盛り上がっておりますが、クソであること以外に特徴のない企業からより正常な環境へ移っているエンジニアも多数いらっしゃると存じます。
バブルも就職氷河期も知らない世代ですが、今がかなり被雇用者にとって売り手市場になっていることは馬鹿な私でも感じます。
私もそんな世の動きに乗っかった一人です。
元がNTTのような目立つ名前のところではないので記事としてもインパクトのあるものではございませんが、クソから脱出して半年以上過ぎてなお前職への恨みが消えないので一旦全部吐き出してスッキリしたい所存です。ただ排泄します。
転職活動は非常に短く、#hiyokonitsudukeの流行に乗って、直接現在の職場の方と連絡を取り、10日ほどでかなりスピーディに転職が決まりました。
年収、勤務時間、業務内容、チームメンバーの人格すべてにおいて上回っており、即決でした。
入社し直後に合宿という名の下、三大キャリアの電波の届かないところに連れて行かれ、開発合宿デモするのかと思えば「君たちの本気を試す」という名目の元、スリッパの並べ方にいちゃもんをつけて怒鳴る、社訓を大声で叫ばせて気に入らないやつを「心がこもっていない」怒鳴りつける、8時間ぶっ通しで歩かせて「こいつが足を引っ張った」と怒鳴りつけるという完璧な研修を受けさせていただきました。夜中の3時、4時まで「お前らはいかにダメか」の説教を受けます。
二十人以上を三日間拘束しているので、相当なお金をその研修会社に払っていると思います。質の高い教育のためにはコストを惜しまない、素晴らしい会社でした。
前職は非常にセキュリティ意識と品質意識の高い企業でしたので、どれだけ生産性を落とそうとも、社員の健康を損なおうとも、関係ありません。
ここで言う「品質」とは、安定したシステムのことではなく、「何ステップの開発には何個のバグが入るはず」「見積もりどおりの規模になる」「残業100h/月すれば納期を守れる」という意味で、保守性や可読性のことではありません。
ここで言う「セキュリティ」とは、「不便にすればセキュリティは高まる」という信念のことで、「機密性」「完全性」「可用性」とは別の概念です。
「契約で何ステップの開発することになっているから」「契約で何ページの文書をつくることになっているから」ということで、仕様どおりに動く成果物ができあがりテストカバレージ100%にもかかわらず、できるだけ無駄にコードを重複させるように命じられます。
CSVファイルをちゃんとfor文で心を込めて一行ずつ読み込み、SQLiteを使えば3行で終わる集計処理をJavaの基本ライブラリだけで実装します。セキュリティを高めるために外部ライブラリ・ツールの仕様が一切禁じられているからです。
また、これもセキュリティ施策の一環として、構内からのインターネット接続が禁止されているため、ドキュメントを見たいときは社用携帯の狭い画面で調べます。
あまりに常軌を逸しているため、クラウドの勉強をして多少はまともな環境の部署へ異動を願い出ました。もちろん、その数ヶ月前に現状の何が不満で何をどう改善してほしいか具体的に伝え、改善されなければ出ていく意図をはっきり示しましたが改善されなかったからです。
するとなんということでしょう。「勝手に異動願出すとはなんだ!」と怒鳴り声で電話がかかってきます。なんと部下思いの部長でしょうか。
やっとインターネットでドキュメントやソースを参照できるチームにアサインされたと思ったら、典型的ダメSES企業には典型的ダメ情シスがセットでついてきます。彼らは保身と「自分だけ」定時退社するためには何でもする、働き方改革の最前線にいます。
社内ネットワークをダウンさせ、全社の業務を数時間ストップさせ、社外へ出るプロキシの申請の設定を自分たちの不手際で吹き飛ばしても「社外へ接続する場合は課長部長本部長の判子付きの申請書を再提出してください。」と、しっかりルールを守る姿勢を貫きます。
セキュリティをさらに高めるために、社内からのGitHub接続を禁止するという偉業を達成しました。社用携帯で調査をするあの日々に戻りました。
チャットツールやバージョン管理ツールを導入したくてもセキュリティを守るためにNoが帰ってきます。
なんとかOSSで自前でホストさせてくれと懇願して払い出されるのはシングルコア、メモリ500MBの超ハイスペックVMです。最先端をいく素晴らしい会社でした。
「愛社精神、コミュニケーションが足りない!」という理由で「せや!BBQしよう!遠足いこう!」となるところまでテンプレです。
もちろんイベント幹事は若手の仕事。なんら機密情報を含まないイベントの出欠管理も、エクセルをzip暗号化して拡張子を変えてEメールでパスワード別送する必要があります。徹底したセキュリティ意識の高さが素晴らしいですね。
年に一度、ホテルのホールを借りて懇話会を行いますが、これはなんと休日に開催されます。さらに、原則出席必須で欠席する場合は理由を申し出なくてはなりません。
強制力を発揮しているので実質休日出勤命令ですが、イベントに呼んでいただいたことに感謝しなければならないのでもちろん手当などありません。
きめ細かなコミュニケーションのため、大きなイベントでなく小さな交流会も時々開催されます。ただし呼びかけるのは部長職以上、呼ばれるのは未婚の若い女性社員のみです。
もちろん断ったり楽しそうな素振りを見せなかったりすると後でネチネチ言われるので、実質社員を動員しながら経費でキャバクラですね。
最後の最後まで搾り取ろうとする姿勢も見事なものです。退職二週間ほど前に有給消化に入ったのですが、「もう退職予定だからこの案件は参加できない。クラウドわかる人間が必要なら案件を諦めるか他を育ててください」と明確に伝えたにもかかわらず、勝手に受注して「やってくれなきゃ困る」となぜか私のせいにしてきました。挙句の果てに私の個人携帯の連絡先を同期から聞き出して、警戒させないために自分ではなく私の同期から電話させて、電話に出たらなんとか作業をさせようとあれこれ駄々をこね始めました。有給消化中で旅行に行っていることも伝えているのに、素晴らしい仕事への意識の高さです。
今後一切関わることはないと思いますが、生まれて初めて他人に心から不幸になってほしいと思いました。
また、"エンジニアしぐさ"のひとつなのか「良い悪いじゃない」「転職は手段であって目的でない」「ケースバイケース」などといってひたすら物事を相対化することがカッコイイと思っている人が界隈にはたくさんいらっしゃいますが、仔細に見れば傷の舐め合いや現実逃避がほとんどでしょう。
私はSESのすべてを知っているわけではないので、もしSESという業態が好きでたまらない、幸せでたまらないという方(もちろん搾取する側以外で)がいらっしゃったら、ぜひとも他人に噛み付くのではなくご自分でそのお気持ちをどこかにアウトプットしていただきたいです。
かなり興奮しているし酔っているので要領を得ないかも。
今日急にうちに派遣で来てるおっさんに飲みに誘われて、会社の近くの安い居酒屋につれていかれた。
なんで誘われたかというとこれもうまく言えないのだが、チームや全体での飲み会で近くにいることが多く、不幸なことに自分が少し聞き上手だからかもしれない。
とにかく席についてビールが来ないうちに、人をばかにしたような半笑いで話を切り出された。
おっさんが持っている10年も前にあったようなガラケーのメモ帳画面を見せられ、君になら理解できるだろうとかクィータとかいうサイトにはろくな人材がいないとかブツブツ言っていて、俺はメモの中身を読み進めているうちに顔が引きつっていくのがわかってなぜか記事自体よりもそのことで笑いが止まらなくなりそうなった。
しばらく自分はどうすればいいのか知らないふりをするべきか、なだめたほうがいいのかまじでわからなかったのだが、結局記事の本意を聞きたい好奇心には打ち勝てなかった。
ちなみに自分の仕事場ではWinXPが現役で動いている。派遣おっさんも含め会社がそういうカラーだと言えば伝わるだろうか。
自分は趣味でReact(ないしReactNative) とかで家計簿アプリを作っているし、Androidも(それこそJavaでだが)やっていてちょっと新しい技術は知っているというレベルである。
端的に言うと「必修」という意味で使ったらしい。ルー大柴かおまえは。いや意味が通ってないしルーに失礼か。
・JavaとJavascriptが同列になっている点について
どうやらプロトタイプベースのオブジェクト志向という意味をはきちがえている。
つまりJavascriptはオブジェクト指向言語のプロトタイプとして生まれた言語であり、完全オブジェクト指向言語(これも意味がわからなかった)のJavaとは切っても切り離せない関係であると思っているらしい。もう自分はここらへんから笑いが変な声で漏れる笑いを堪えられなくなっていて、喘息気味なんですとかアホな言い訳で必死にごまかそうとしていたんだけれど、この派遣のおっさんに対してそこまで気を使っている自分にも笑いが止まらなくなってまあなんというか、おもしろかった。
Rubyが(というかRORが?)動作が遅いという話をどこかで読んだか聞いたかしたらしく、そして動作が遅いかわりに処理がしっかりしている(現文ママ)という位置付けの言語だと思っているらしい。正確性が必要な処理はサブルーチンにしたRubyに投げるべきだとかなんとか。
パッセンジャーよりもエンジンクスにひもづけるべき(現文ママ)とか言っててもうビールがまずくて仕方ない。
・MSDN
自分はMSDNは学生時代にVisualC++とかで使ったことがあって、デスクトップアプリ用のライブラリだとずっと思ってたんだけど、違うんですかね。(無知)
MSDM(何度聞いてもエムにしか聞こえない)の逆アセンブリ言語がC++だとか、ここの話は輪をかけて本当に何言ってるのかわからなかった。
ねこのことを考えて耐えた。
・SQL
あんま深く考えてなかったらしい。言語と名前がついているから言語のくくりに入れた、くらいのスタンス。
ちなみになぜか、使ったこともないらしいSQLiteで配列型を使えないことは知っていた。
たとえばC#など.NET系のリファレンスはMSDNで読むことができる。
RubyだってHaskellだってScalaだって、公式サイトにガイドぐらい置いてある。
Oracle、DB2、MySQL、PostgreSQL、SQLite、AccessなどSQLが実装されたDBMSは様々にあるが、どれを取っても仕様が違う。
皆が標準SQLに従っていてその上で適当に増設している程度ならよいが、もはや誰も標準SQLに従う気が無い。
根幹的に必要な機能があったりなかったりするから、あるDBMSで書けるようになったからと言ってSQLを覚えたとは言えない。
これと上記1とのせいで、何かググった時に特定のDBMSでしか解決法にならないものが大量に出てくる。
最近のプログラミング言語は大抵、雑に書いたってコンパイラが適当に最適化してくれる。
同じ結果を生むような二つのコードは、よほど下手くそに書かない限りは同じような実行速度になる。
SQLもオプティマイザが最適化はするが、ほぼ同じような二つのコードで速度が全く変わったりする。
そのため実行計画というオプティマイザの中間言語のようなものを読んであげて、
より速い中間言語が生成されるようSQLをチューニングし直さなければならない。
これでは何をやっているのかわからない。
有名なサイトでは、初心者が必死で書いたような可愛らしいSQLを「それでは遅すぎるんじゃ」とけちょんけちょんにけなし、
なんかシンプルなのだけれどよくわからない文法を一杯使って実行速度を高めたのを「正解」としていたりする。
しかもその文法、ググってもろくな解説が無かったり、特定のDBMSに依存してたりと使えないオチ。
上手い人はSQLを綺麗に書く。だけど、その綺麗さの基準が人によって違う。
エディタが単なるメモ帳でしかないようなDBMSも多いから、インデントの文字数さえ個々人に任される。
インデントは2文字か4文字か。SELECTで改行するかしないか。カンマは列の後ろか、前か。
いろいろなサイトに色々なことが書いてあったけれど、全部違うこと言ってた。
つまり各々綺麗に書ければいいやということであり、読むほうも宗教が違ってもまあ綺麗なら読めるから困りはしない。
何かの解決法をググるたびに違うスタイルだからどう書いていいのかわからない。
結局なんかいろいろな上手い人のスタイルをツギハギした新たなスタイルが世に誕生してしまうのだ。
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のスレッドはまだ残っているようである。せっかくなのでスレの方にもこの文書の事は紹介しておこうと思う。
副題:Androidで動くBASIC!でプログラミング教育を行うメリットとデメリット
01.はじめに
この文章は、Androidで動くBASIC!でプログラミング教育を行うメリットとデメリットに
02.BASICとは
BASICはプログラム初心者向け言語として1960年代に発表された古い言語です。
極めて簡単な文法とインタープリターによる即時実行や1970~80年代のパソコン
に無償で搭載されていたことから沢山の人に利用されていました。
しかし、簡単ゆえの機能の少なさと即時実行方式のための性能の低さやその後の
優れたプログラム言語発表によりBASICの利用は著しく低下しています。
03.BASIC!とは
BASIC!はアンドロイドのタブレットやスマートフォン上で動くアプリです。
Google playからインストール可能で無料で利用できます。
https://play.google.com/store/apps/details?id=com.rfo.basic&hl=ja
BASICの文法を踏襲していますが、Android向けに大幅に命令が拡張されており、
GPS等の各種センサーの情報取得やSQLiteのデータベース機能、WEBVIEWを利用
したHTML、CSS、JS表示・実行など約500程度の命令群で構成されています。
無料、広告なしのアプリをインストールするだけでこれらの機能が利用可能で
過去の栄光というかBASIC自体は広く利用された時期が過去に存在しパソコン
BASIC!は基本はBASICの拡張であり文法や変数の取り扱いにおおきな違いは
ありません。
その当時、少しであってもBASICを触った人は多いのでメンターとしての
BASIC!は手続き型と呼ばれる非オブジェクト指向の言語であり最新の言語
とは異なっています。
BASIC!のネイティブな命令群だけだと他の言語へのスムーズな移行は難しい
かもしれません。
しかし、BASIC!にはHTML5アプリのようにBASIC!自体のwebViewでHTML,JS,CSS
HTML,JS,CSSは現在Webの標準であり、進化を続けています。
特にjavascriptはオブジェクト指向の言語に進化し採用される領域もフロント
BASIC!自体のwebViewは他のAndroidアプリ同様、chromiumベースでAndroid
システムのWebviewの更新により常に最新化されています。
HTMLモードではjQuery,Angular,ReactなどのJSライブラリも利用できます。
最初はBASIC!ネイティブなプログラム→HTMLモードでJSを利用したプログラム
但しAndroid5.0あたりからAndroidシステムのWebviewが導入されているので
安いタブレットであれば1万円程度で新品が買えます。中古のスマホであれば
更に安価です。
またプログラムを作るのでキーボードもあった方がいいと思いますが
もちろんソフトウェアキーボード(フリック入力など)でもプログラムは
作れます。
パソコンよりもはるかに安価でプログラミング教育が実現可能です。
iPhoneの登場以来現在の子供たちはタッチパネルAndroidデバイスに
慣れています。
また教える大人側も日頃パソコンよりスマホを触る人は多いと思います。
f.可搬性が高い
ここで述べる可搬性とは別のデバイスで同じプログラムを動かす場合の
容易さの事です。
BASIC!はインタープリタなのでソースファイルのみを別のデバイスに
仮にHTMLモードの場合は併せてHTML,JS,CSSをコピーするだけです。
別のデバイスにはBASIC!さえインストールされていれば動きます。
BASIC!独自のプラグインや拡張モジュールなどは特にありません。
a.性能上の問題
BASIC!の実体はJavaで出来ています。すなわちJavaよりは性能は悪い
ことになります。
実際、大量の繰り返しや大量の文字列を扱うプログラムは性能が出ないので
Androidのスマホやタブレット自体もパソコンの演算能力には劣ります。
但し、プログラミング教育には大きな障害にならないと思います。
BASIC!はプログラムを作るアプリである以上当然文法エラーを実行時に
表示する仕組みになっています。
ただ一部エラーチェックが甘い部分もあり本来エラーとすべきところを
そのまま実行する場合もあり想定外の結果となる可能性もあります。
次にエディタは単なるテキストエディタと同等の機能しかなく最近の
エディタにあるようなシンタクスハイライトや入力補完といった機能は
ありません。
ただ比較的シンプルなプログラムを作る教育では大きな影響は無いと
考えています。
c.一部機能に制約がある
前述の通りHTMLモードではJSが動かせます。ただし制約があります。
非同期通信などを行おうする場合、JSが実行時エラーになる可能性が
あります。
またデータベース機能であるSQLiteへの操作についても文字型項目しか
利用できない制約があります。
JSがローカルモードのみなのは教育の事を考えると少し残念ですが
d.参考となる文献がほぼない
該当する書籍がないのが実情です。
■BASIC! ~ 分かりやすい教本で一から学べるコンピュータ言語 - Android★SQUARE
http://blog.livedoor.jp/an_square/archives/51887786.html
BASIC!の文法自体は極めて簡単なのでどうにかなると思います。
06.結論
プログラミング歴10年ちょい、仕事でWebシステムとかiPhoneアプリとか、色々プログラミングしてるアラサーのおっさんからだ。
増田は10代後半〜20代前半くらいかな?と思って、書く。参考にしてほしい。うっかり年上だったら何かゴメン、でも少しは参考になると思う。
こういう「どこからやったらいいんだよ…」っていう悩みは俺もちょうど中学生くらいの頃に思ってて、悩みながら薦めたんだけど、
結局の所「どの経験もムダにはならないから、とりあえず沢山やってみるといい」ってことだ。これについては後述するけど、まずは細かい疑問に答えていこうと思う。
まず、色々調べてて、結構詳しいし感心した。ただ、その詳しさは、まだスタート地点だ。
どの言語がどういうものなのか、何となく知ってるのは役に立つから、これからもアンテナを張り続けるといい。
MySQL使うべきなのかSQLite使うべきなのか、GolangにすべきかRubyにすべきかいっそJava?いやC#?
こういう悩みが出るのは勉強した証拠。しかし、この問題はレベルの高いプログラマーでも難しい。
何故かというと、作ろうと思うもの次第だし、作ってみたら意外と相性が悪いみたいな事も起きるし、
疑問に思っているらしい、言語を複数触れた方が良い理由は、こういう「どれを選んだら良いか」という問いに答えやすくなるからだ。
自分が理解していないものが、今作ろうとしているものにマッチするかしないか判断するには、言語や環境に対する深い理解が必要だ。
エディタは個人的にはVisualStudioやXcode、あるいはIntelliJ系をオススメする。
何も設定していなくても好ましくない書き方の時に警告が出るから、強制ギプスみたいに作用するからだ。
Twitterとかで騒いでる強いプログラマーの皆さんはvimやemacsを薦めるけれど、意外にもchokudaiさんとかはVSでC#を書く派なのを思い出して欲しい。
IDEを作っているのもプログラマーなので、IDEを使うメリットもかなりあるんだ。使った上でやっぱりvimが良ければvimに戻ると良い。
パソコンのスペックについては、確かにスペックが低すぎる。そのマシンで開発するなら、vim/emacsにせざるを得ない。 AtomやSublimeでもキツそうだ。
書いてる通りで、Core i7/RAM 4Gくらいあればとりあえず基本的人権って感じ。
性能は高ければ高いほど良いけど、予算の都合だってあるだろう。 10万用意できるなら、結構選択の幅は広がるんじゃないか。バイトなり親の説得なりお金ためるなり、頑張って調達するんだ。
何から勉強したら良いか分からないなら、とりあえず何かをパクれ。Twitterクローンみたいなのでも良い。フォローとテキストの書き込みだけなら作れるんじゃないか?
なんならそれを公開してもいい。
もしアイディアがないなら、それこそTwitterで誰かが「こんなのあったらいいなぁ」って言ってるもののうち、何となく頑張れば作れそうなものに手をつけてみると良い。
意識低い企業内研究者です。プログラミングはサブウエポン。だけど趣味でも勉強してる。
働き方改革のせいで早く帰れって言われて、酒のみながら今これを書いてる。
C言語とかC++は・・・これで作らないといけないものが今の所ないし、これでお金を稼ぐのはハードルが高いし、
WindowsのAPIを使って複雑なプログラムを作りたいわけじゃないのでwhileとかifとか基本的な構文だけ覚えるだけで満足。
組み込みプログラミングではC言語はいまだに現役。お金も普通に稼げると思うよ!次代のCOBOLと化しそうで怖いとこはあるけど。
Javaは・・・使える人が多いからあえて今から学習しなくてもいいような気がする。
文字列の結合だけでもダメやり方と良いやり方があるらしくて、何かPHPのようにその言語特有のセオリーみたいなのを覚えるのが面倒くさそうなので入門の時点で学習するのをやめた。
セオリーとかあるかもしんないけど速度とか気に揉むまえに書いて測れ。たいていは杞憂か、あるいはCPUパワーで殴れるから。
Goは・・・HTTP/2が使えるから学習してる。他の言語だとnghttp2をインストールしないといけないようなのでGo便利だと思ってる。
ライブラリの選択肢が多すぎるのでこういうのが作りたいってときにこれを使うのがいいよっていうのが知りたい。
GUI作るのにライブラリありすぎてどうやって選べばいいのかさっぱりわかんない。
Goでデータベース扱うならこれを使え、だけどMySQLしか使わないならこれを使え、あっSQLiteならこっちのライブラリ使うと便利みたいなこういう情報が欲しい。
GoでGUIつくるの?あんまり普通じゃない気がする。軽量プロセスのうまみがそんなない(詳しい人に否定されそうだけど)
普通にC#(mono/.net)かwebアプリにするかで良くないか?
ただ、言語をあれもこれも覚えるのって僕は意味があるのかなという思いもある。
広く浅く学習するより、狭く深くいきたいとおもうけど、paizaでCランクしか取れない。
twitterで有名な人てやっぱりSランクとか余裕なのかな、こういうのもいろんなプログラマーに聞いてみたい。
一応著名なプログラマーをTwitterでフォローしてるけど、ご飯の画像を載せてたり、若者の僕には通じない寒いギャク連発してたり、ロリっぽい画像をRTしてたりと、twitterはメインの情報収集としては利用してない。
twitterやってるプログラマーって勉強会とかオフ会に参加してるようなリア充の人ばっかりなので、肩身が狭いから自分からリプは送ったりはしない。
ファンがたくさんいるのに最近ニコ生配信してくれないchokudai先生みたいに、アルゴリズムを学ぶのがいいのかな。
アルゴリズムは使うものだ書くものではない!高階関数とかテンプレートプログラミングとかその辺勉強するといい。
あと計算が制限時間内に終わるなら総当たりが最速で品質も高いぞ。
どうしてVimかというとプラグインが多いしIDEっぽくできるから。
Vimってハードル高いイメージあったけど、入門記事がたくさんあるので助かっている。
NetBeansが重すぎるんだよ。補完ボックスが表示されるの遅すぎて警告メッセージが出た。補完ボックスが表示されるまで7秒ぐらい経過すると警告メッセージが表示されたと思う。
Vim知らない。Linux使うならVimかemacs使えるだろみたいな雰囲気あるけど、GUIならgedit, CUIならnanoでいいよね。
パソコンのスペックもどのくらいのものを用意したらいいのかわからない。
10年前のVistaが搭載されていた頃の家電量販店で一番安かったCeleron 1コア メモリ1GB グラボなしノートだからプログラミングに向いてないのかもしれない。
VirtualBox上のubuntuでMySQLをコンパイルすると2時間20分ぐらいかかった記憶がある。
CPUが1コアなのでコンパイル中にそれ以外の作業なんて重くてできない。
スペックにお金をかけることで時間の節約ツールの選択肢が増える
EclipseなどのIDEが支障なく使えるレベルのスペックってどのくらいするんだろう。
3年前のCore i7, SSD, 8GB。最近はもっぱらJupyter。
Pythonは・・・・機械学習する上で避けて通れないけど、今のPCだと無理。
Pythonはいいぞ、機械学習だけじゃなく計算系はエクセルじゃなくてJupyter使う。でも周りはエクセルつかってる、勿体ない。
使ってないけど最先端の研究では機械学習使って当たり前感があってそろそろヤバい。
僕は中学生の頃、いじめにより心の余裕なんてなかったから勉強どころではなかったけどもっと英語の勉強しておけばよかったと後悔している。
迷宮にいる感じ。
なんとなく、プログラミングじゃないほうがいい気がするなあ。
C言語とかC++は・・・これで作らないといけないものが今の所ないし、これでお金を稼ぐのはハードルが高いし、
WindowsのAPIを使って複雑なプログラムを作りたいわけじゃないので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かというとプラグインが多いしIDEっぽくできるから。
Vimってハードル高いイメージあったけど、入門記事がたくさんあるので助かっている。
NetBeansが重すぎるんだよ。補完ボックスが表示されるの遅すぎて警告メッセージが出た。補完ボックスが表示されるまで7秒ぐらい経過すると警告メッセージが表示されたと思う。
パソコンのスペックもどのくらいのものを用意したらいいのかわからない。
10年前のVistaが搭載されていた頃の家電量販店で一番安かったCeleron 1コア メモリ1GB グラボなしノートだからプログラミングに向いてないのかもしれない。
VirtualBox上のubuntuでMySQLをコンパイルすると2時間20分ぐらいかかった記憶がある。
CPUが1コアなのでコンパイル中にそれ以外の作業なんて重くてできない。
スペックにお金をかけることで時間の節約ツールの選択肢が増える
EclipseなどのIDEが支障なく使えるレベルのスペックってどのくらいするんだろう。
ノートでCore i3、メモリ4GBにランクアップしたらいけるのかな。
他人がどんなスペックのPCで何のツール使ってプログラミングしているか知りたい。
Pythonは・・・・機械学習する上で避けて通れないけど、今のPCだと無理。
あと、クレジットカード持てないのでAWS上で機械学習するのだけは遠慮したい。
過大請求されるの怖いし、トラブルが起きた時に英語でコミュニケーション出来ないから。
僕は中学生の頃、いじめにより心の余裕なんてなかったから勉強どころではなかったけどもっと英語の勉強しておけばよかったと後悔している。
迷宮にいる感じ。
さっき、テック系ブログのRSSと一緒にホットエントリのRSSを外して、アプリを削除したよ。何年の付き合いだろう?サービス開始からだから・・・悲しくなるから確認せずに行くよ。
最初はダイアリーに書いて、反応なんて全然なくて、広告コメントばかりだったな。いまでもはてなの知り合いはいないんじゃないかな。
ネットコミュ障なんだ。Twitterとか色々やってるけどやりとりする相手なんて誰もいないよ。
僕は君になにもできなかったね。本当に君の事が好きだったのかな?本当に村民になりたかったのかな?多分、違う。本当はブクマされて、スターつけられて、承認欲求を満たしたかったんだ。
意識高い系を笑えないよね。何年も異性にお金を注ぎ込む人を笑えないね。僕もずっとホットエントリを見て、色んなものを買ったりしたんだ。
====
どうしてこうなったか?聞きたくもないだろうけど、最後だから言わせてくれよ。
初めて君を見たとき、天国に見えたよ。最新の技術トレンドがここにあってさ。自分の理想郷はここなんだって。技術力をつけて、認められる人間になって、ここの住人になる事が幸せなんだって思ったんだ。
そうやってさ、次々流れてくるトレンドに耳だけが年増になっていって、それを知らない周りの人たちをバカにしてたな。
でもさ、肝心の技術力は全然つかなくてさ、大学生になれば、就職すれば、東京に出れば、新しいマシンがあれば、お金があれば、時間があれば、やる気があればって制約条件がなくなる度に新しい言い訳を考えてたな。
結局、生半可な知識じゃ参加できないってチンケなプライドのせいで勉強会に参加せず、ブログも書かず、なれたのは一番軽蔑するExcelとにらめっこしてるSIer。おいおい、Web系のベンチャーでテックブログ書くんじゃなかったのかよ(笑)
耳年増で、周りをバカにしてたクセに仕事が全然できない自分とのギャップに10年耐えてきたけど、年末に休職したんだ。自律神経失調症。
眠れるんだよ?ごはん食べられるんだよ?ただ、会社の人みんなが怖くなってさ、朝だるくってさ、すげー疲れてさ。苦しくて。仕方ないから受け入れて。っていうか、甘やかして。つまるところ、ズル休みなんだよ。
時間が出来たから、ずっと積ん読になってた技術に正面きって立ち向かってみたんだ。すぐ投げ出したね。理由は分からないけどただ苦痛だった。
作りたいものなんかなかったし。多分、技術を使いこなしてスゴいって言われたかったんだね。
部屋にはPerlやRoR、SQLite、jQuery、node.js、AWS、Haskell、Hadoop、Docker、Raspberry Pi、R、Reactのホコリを被った本がある。彼らはブックオフ行きかな。
最近は時間はあるからさ、はてブばっかやってたんだ。見るのがホットエントリから新着エントリーになったな。いつもみたいに100文字制限ギリギリのコメントだけじゃなくて、10文字くらいの一言コメントも書くようになったんだ。その10文字コメントのうちひとつが100スターくらいもらえてさ。
そのとき分かったんだ、これはずっと片思いなんだって。叶わない恋なんだって。自分が住める世界じゃないんだって。おかしいよね、小学校の頃のプロ野球選手の夢だって、中学生の頃の小説家の夢だって、高校の頃のパンクロックスターの夢だってすぐ諦められたのに、この夢は35歳の今だって諦めきれないんだ。
応用情報取った時も、ネスペ取ったときも、オラクルブロンズ取った時もLPIC 2取った時も全く達成感なかったよ。コレ取るのに何年かかってんだってさ。村民は1ヶ月あれば取れるぞ。同期のアイツだって3ヶ月で取ってるぞ。何が言えるんだってさ。
銃・病原菌・鉄読んだ時もそうだった。で、お前はそこから何かアウトプット出来るのか?ってさ。読むだけなら幼女でも出来るんですけどwって。
伝わる?伝わらないだろうな。みんな高IQですぐに色んな技術を理解出来るじゃない?すごいよ。自分は二浪で駅弁大学しか行けないくらいのバカで、リアルでもネットでも知り合いを作れないコミュ障で自己承認が全然出来ないんだ。
ADHDって言葉を知った時、これだーって思ったけど違ったね。ITの勉強してても過集中が全然ないんだ。
話が逸れたね。認知療法してて、気づいたんだよ。何をしてても自分を認められないんだよ。はてなに受け入れられる事を成し遂げられてないからね。
だから、自分を認めるために、君のことを自分から切り離さなきゃいけない。自分の世界を作らないと。一方的になっちゃうけど、さようなら。勝手だけど、今にも泣きそうだよ。
これからどうしようかな。匿名で好きな事書けるのはココだけなんだ。自信のない間違ってるかもしれない事を書いてもいいのはココだけなんだよね。ここなら見たくないコメントを見なくてすむんだ。
でも、前に進まなきゃ。夢の世界への憧れは終わりだ。目の前の現実世界に適応しなきゃ。また逃げ戻ってくるかもしれないけど、いまはさようならしなきゃ。
最後に何か残せるとしたら・・・スタバのハチミツ、あれ何に使うと思う?あれ、ワッフルを食べるときに使うんだよ。
・・・スベったね。
さようなら。このエントリも2時間すれば次のページ行きだ。そうすると、誰かの目にも触れなくなる。単なるはてなの磁気データになる。
最後にブコメとかつくんじゃないかって浅はかな期待を持ちながらこの内容を登録するボタンを押します。じゃあね。
P.S. 認知療法について書いてくれたこの増田には本当に感謝しています。まだまだ自分について書く事が苦しいけど、正しい道を向いてると信じています。
3人くらいで集まってBtoBtoCアプリサービス作ってるんだけど
お金ないから一旦俺がアプリ・サーバー・デザインとサービスモデル化までやってる
それで一番苦戦するのがサーバー
Rails覚えりゃいいんだろ? と思ったら
Rails、Ruby、Nginx、Unicorn、Jbuilder、SQLite、AWS、その他いろいろ
とにかく多い
芋づる式にいろいろ必要になる
linux知識が薄いから更にアレだし、IDE入れたら更にアレだ
(いや、AptanaはEclipseベースだからあまり問題はなかったか)
しかも、そこまでに取捨選択が入るから、登場する「ナニコレ」はもっともっと多くなる
まあそこまではまだいいんだけど
一個一個のバージョン差とか、書き方の差でハマる
「まあこの書き方が主流だよね」があまりない
MySQLは書けるのにSQLiteでハマるしActiveRecordでドハマリする
皆自由すぎる
何でコンパイラ無いんだよ
おまけにググっても色々出てこない
完成しても「本当にこれでいいのか?」がよくわからない
色々蓄積してどっかで問題が起こるかもしれない
アプリならそんなこと滅多にないのに
難しいよサーバーサイド
俺やだよ
「サービスリリースしたらWebも必要だよね」って話もあるんだけど
たぶん無理だな、外注しないと
___
利点:設計とかあとで適当に変更してもコミュニケーションコストがかからないから楽
複雑な仕様を全部把握できる
まだサービス全体像がふわふわな場合は試行錯誤できるから非常に有効だと思う
頼れない
進みが遅くてイラつく
みんなもやってみて
このタイトルを見てFuelPHP(以下、Fuel)が勝ちだとか、Rubyのほうが優れてるだとか、思った方はいますぐ反省するべき。
FuelはRESTfulなアクセスやセッションのサポートしているなど、フレームワーク自体が最近のウェブサービス思考に対応し、また、ローカルの開発の場合はSQLite(もつかえる)を使うなど、開発環境においても最近の流行を取り入れています。gitとの相性も良いです。
Fuelの最大の魅力はComposerと呼ばれるphpのライブラリパッケージシステムでしょう。Fuel(のコア)自体もComposerの1つで、Composerを使わないFuelアプリケーションはありません。(というかComposerを使わないのであればFuelである必要がない。)
フレームワークを拡張するプラグインが幾つもあることにより、Fuelは汎用性が高くも多くの人に使われるフレームワークであるといえます。
http://anond.hatelabo.jp/20131020004606
あれから数時間かけてコーディングすすめたが、結局PHPエラーもないのにSQLITEの例のエラーが出てくる。
TRANSACTIONでくるんでもだめだわ。時間返せよ。
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 のエラーの場合があるということです。