コグノスケ


link 未来から過去へ表示(*)  link 過去から未来へ表示

link もっと前
2014年3月21日 >>> 2014年3月8日
link もっと後

2014年3月21日

Scalaコレクションとlength

Scalaでファイルの中身を解析したいとき、遅延評価コレクション(StreamとかViewとか)にファイル全体をマッピングすれば、好きな位置を解析できて楽だろう、というアイデアは誰しもが考えると思います。

実は私もその口だったのですが、実際にやってみるとScalaコレクションはlengthが全てInt型とされているため、アクセスできる範囲が短すぎて(最大で2Gi要素まで)困ってしまいました。

たかがそれしきのことですが、lengthはコレクション操作の至る所に出現しますので、非常に影響は大きいです。

Scalaの遅延評価は、事前に全て評価するのは不可能な(長さが無限大、あるいは大きすぎる)コレクションを扱うアイデアのはずなのに、何を思ってコレクションのlengthをInt型にしたのでしょう…。

編集者:すずき(2014/03/22 02:02)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



2014年3月17日

独り言レビューだって良いじゃないか

$shibayu36->blog; - 2014-03-16コードコンプリートを再読した

「二人である物事に取り組むと、大体会話をしている最中に設計が良くなっていくことが多い印象がある。議論にならなくても良いことも多くて、話しかけるためだけのぬいぐるみとしてだけでも良いこともある。」(以上、引用、強調は私によるもの)

作業履歴代わりに、会社のRedmineに設計とかコーディングについて、独り言を書き続けていて、最近ちょっと虚しくなってきていたのだけど、実はレビューの意味もあったんだよ、ということを気づかせてくれた。そうだったのか…。

メモ: 技術系?の話はFacebookから転記しておくことにした。

編集者:すずき(2014/04/21 02:05)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



2014年3月16日

難解なコードが増える理由

数年前から、会社で理解に苦しむ難解なコードが多いのはなぜだろう、誰に聞いても「このコードは意味不明だ、一見してもわからない」と言うのに、どうして誰も直さないのだろう?と疑問に思っていました。

金、土とほぼ風邪で寝てて暇だったので、久しぶりにこのブログ(脱社畜ブログ - 2013-10-30 - 「あなたにしかできない仕事」を無くすために必要なこと)を読み返していたら、なんとなく答えがわかりました。

特にこの部分です。
(引用)「あなたにしかできない仕事」を「誰でもできる仕事」に変えることは、「あなたにしかできない仕事」を一人で抱えるよりも遥かに価値があることだ。そういう意味で、この手の「標準化」は高く評価されなければならない。(引用終)

以前読んだときは「標準化」がイマイチわからなかったのですが、これを、

  • 「あなたにしかできない仕事」=「あなたにしか理解、メンテナンスできないコード」
  • 「誰でもできる仕事」=「誰でも理解、メンテナンスできるコード」

と置き換えて、「標準化」は「読みやすい、わかりやすいコードに書き換える」「一見して理解できる小規模に分割する」といった行為に置き換えると、非常にしっくりきました。

会社の難解なコードが増えていく理由は、標準化、つまりコードをわかりやすくするインセンティブが会社から与えられないというシステム的な問題が主な原因であって、個人に責はない、ということです。

このような評価体制だと、他人のコードに興味を示さない方が得になってしまいます。金より、エンジニアとして一目置かれたい、と思う人のやる気すらも奪ってしまうことになります。

私個人が会社の金銭的インセンティブのシステムを変えるのは難しいですが、せめて、わかりやすいコードを書く人を褒めて感謝し、自身もわかりやすいコードを書くことで報いることを心掛けようと思います。

編集者:すずき(2014/03/16 16:17)

コメント一覧

  • よしださん(2014/03/16 17:09)
    会社のシステムの前に、コード(というか設計そのもの)がわかりにくいことによる金銭的・機会的なロスが見えにくい、というのが問題なんでしょうね。。

    かといって、ほら、いまこんなに無駄なんですよ、というのは実改善とセットじゃないと生産的とは言えないので、やはり「わかりやすい設計」「ノウハウの共有知化」を心がけてしっかりやる、というしかないのでしょうかね。。
  • すずきさん(2014/03/16 21:52)
    >よしださん
    地震の被害予想と同じで、過去の失敗例から、この規模で設計をマズったら作り直しに幾ら掛かる、と言えば良いと思います。
  • すずきさん(2014/03/16 21:57)
    あー、でも、被害予想に必要な過去の失敗例がありませんね。

    失敗例を公開することに対して、マイナスのインセンティブが働くので、誰も公開しないのでしょうね。

    明らかな失敗なのに絶対に失敗とは認めず「こんな成果があった」とウソばかりついて、最後はウヤムヤにするプロジェクトが多いのはそのせいなのか…。
open/close この記事にコメントする



2014年3月15日

炎上したプロジェクトの評価が良いのはなぜ

なぜ暇な人ほど「忙しいふり」をするのか - ダイヤモンド・オンラインを読んで。

炎上する案件ほど、上司が関わる時間が増えるので、
「あの案件はつらかったが、俺のおかげでぎりぎり回せたんだ」
という上司の勘違いが強く記憶に残り、評価の際にも思い出しやすいので、評価が上がるのだと思います。

上司の参画により早く終わることもあるかも知れませんが、大抵の場合は、プロジェクトが炎上すると…、

  • 上司が勝手に割り込んでくる
  • 上司は進捗管理ミーティングで毎日メンバーをロックするので、さらに遅れる
  • 上司はメンバーにいつ出来るんだと怒鳴り散らし志気を下げるので、さらに遅れる
  • 上司は何も知らない人を追加し開発を混乱させるので、さらに遅れる
  • 上司はPLを呼びつけては怒鳴りつけるので、PLが病んで失踪してさらに遅れる
  • 上司は死ぬ気でやれとデスマーチを強行してメンバーを潰すので、さらに遅れる
  • 上司は客のプレッシャーにすぐ負けて、期日を勝手に約束してくる(が、当然守れず、さらに炎上する)

となりますよね。

メモ: 技術系の話はFacebookから転記しておくことにした。

編集者:すずき(2015/11/29 20:26)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



2014年3月14日

日記システムがまたコメントスパムにやられた

目次: 自宅サーバー

以前、コメントが書き込めなくなって(2014年1月7日の日記参照)しまい、応急処置で切り抜けましたが2か月経たないうちに再発しました。年単位ならまだしも1〜2か月で再発するようじゃ、もう駄目だろということで真面目に調査開始しました。

原因

白いページが出る原因は、PHPプロセスのクラッシュによるものでした。具体的には、コメントの承認待ちデータの肥大化により、承認待ちデータをロードした際にPHPスクリプトを実行するプロセスがクラッシュして、何も応答を返せなかったためです。大体50MB overくらいで発生するようです。

また、コメントの承認待ちデータが肥大する原因は、この日記システムの設計が悪かったためです。コメントの承認待ちデータは下記の仕組みで、追加、および、削除が行われていました。

  • コメントを送信する
  • コメントの承認待ちデータの最後尾に「追記」
  • コメント書き込み内容を承認(「上記、確かに認めます」のチェックを付けて「送信」することを指す)
  • コメントの承認待ちデータを全て「ロード」して、時間切れのモノを「削除」

設計の大きなミスとしてコメントを承認しないと、コメントの承認待ちデータを削除する処理が絶対に動作しない点です。コメントを承認しない限り、コメントの承認待ちデータが際限なく追記されてしまいます。

対策

対策として、コメントの承認待ちデータを「追記」する際に、同時に時間切れのモノを「削除」する処理を追加しました。これにより、時間切れと判定する時間内(現在は300秒)に、50MB分のスパムを送りつけられない限り、今回の問題は発生しないはずです。

承認待ちデータの大きさは、名前+コメント+約600バイトです。だいぶ長いスパムでも、せいぜい数KB程度なので、33回/秒の勢いで300秒間連続で投稿されない限り、パンクは免れるはずです。

残課題

ただし、今は名前やコメントに長さの制限がないため、50MB超のコメントを送信されると、一撃でコメントが書き込めなくなります。

やられたらそのときまた考えますけど、できればやらんで欲しいですな…。

編集者:すずき(2024/01/13 17:00)

コメント一覧

  • IKeJIさん(2014/03/17 14:39)
    ロードして、ゴニョゴニョして、書き戻すと、途中で死んだ時に消えませんか?
    読みながら別ファイルに書いて、リネームの法が良さそうな。
  • すずきさん(2014/03/17 21:44)
    >IKeJI さん
    今は、ファイルから全部メモリに読んで、加工が全部終わったら、メモリから一気にファイルに書いているので、ファイルに書いている途中で死ぬと全損ですね。
    リネームの方が良さそうですね。同時にリネームが走ると悲劇が起きそうなので、ロック用のダミーファイルが要るかな。

    問題は、既に PHP をだいぶ忘れていることですね。過去の自分は他人だ…。
open/close この記事にコメントする



2014年3月9日

スゴイと思う人

1人で問題を解決する奴は、スゴイと思う。

1人じゃ無理だけど周りに呼びかけて解決まで導く奴は、偉いと思う。

問題を指摘するだけで逃げる奴は、居ても居なくても良いと思う。

「何だアイツ熱くなって…」ってバカにして何もしない奴らは、居ない方が良いと思う。

メモ: 技術系?の話はFacebookから転記しておくことにした。

編集者:すずき(2014/04/21 02:01)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



2014年3月8日

アクセス解析

日記表示の際のアクセス解析をやめました。カウンターを表示しないブラウザ、Web Botなどからのアクセスはカウントしなくなります。

最近見つかる未知のエージェントは、従来ブラウザのバージョンアップ物か、人間からのアクセスではなかろうBotやクローラばかりで、そんなもん分類してもつまらんのですよ。

編集者:すずき(2014/03/09 01:13)

コメント一覧

  • すずきさん(2014/03/21 00:31)
    メモ: IE11(Trident 7) と iPod touch と Nintendo 3DS と PhantomJS 対応。
open/close この記事にコメントする



link もっと前
2014年3月21日 >>> 2014年3月8日
link もっと後

管理用メニュー

link 記事を新規作成

<2014>
<<<03>>>
------1
2345678
9101112131415
16171819202122
23242526272829
3031-----

最近のコメント5件

  • link 21年9月20日
    すずきさん (11/19 01:04)
    「It was my pleasure.」
  • link 21年9月20日
    whtさん (11/17 23:41)
    「This blog solves my ...」
  • link 24年10月1日
    すずきさん (10/06 03:41)
    「xrdpで十分動作しているので、Wayl...」
  • link 24年10月1日
    hdkさん (10/03 19:05)
    「GNOMEをお使いでしたら今はWayla...」
  • link 24年10月1日
    すずきさん (10/03 10:12)
    「私は逆にVNCサーバーに繋ぐ使い方をした...」

最近の記事20件

  • link 23年4月10日
    すずき (11/15 23:48)
    「[Linux - まとめリンク] 目次: Linux関係の深いまとめリンク。目次: RISC-V目次: ROCK64/ROCK...」
  • link 24年11月6日
    すずき (11/15 23:47)
    「[Ubuntu 24.04 LTS on ThinkPad X1 Carbon Gen 12] 目次: Linux会社ではTh...」
  • link 24年11月11日
    すずき (11/15 23:26)
    「[Pythonのテストフレームワーク] 目次: Python最近Pythonを触ることが増えたのでテストについて調べようと思い...」
  • link 24年11月2日
    すずき (11/15 23:25)
    「[Python - まとめリンク] 目次: Python一覧が欲しくなったので作りました。 スクリプト言語始めました(Pyth...」
  • link 20年5月10日
    すずき (11/15 23:24)
    「[Pythonの文字置換APIは変な名前] 目次: PythonPythonの文字列置換は "string".replace(...」
  • link 24年2月7日
    すずき (11/15 23:23)
    「[複数の音声ファイルのラウドネスを統一したい] 目次: PythonPCやデジタル音楽プレーヤーで音楽を聞いていると、曲によっ...」
  • link 13年7月2日
    すずき (11/15 23:22)
    「[スクリプト言語始めました(PythonとRubyでNクイーン問題)] 目次: ベンチマーク目次: Pythonスクリプト言語...」
  • link 23年9月18日
    すずき (11/15 23:22)
    「[一覧の一覧 - まとめリンク] 一覧の一覧、まとめのまとめが欲しくなったので作りました。OS、アーキテクチャ系。目次: An...」
  • link 13年10月1日
    すずき (11/15 23:21)
    「[JetBrains PyCharm 3.0リリース] 目次: PythonPyCharmがメジャーアップデートされ PyCh...」
  • link 22年7月8日
    すずき (11/08 23:28)
    「[マンガ紹介 - まとめリンク] 目次: マンガ紹介面白かった漫画の紹介です。知名度はあまり気にせず紹介します。5作品乙女ゲー...」
  • link 24年10月31日
    すずき (11/04 15:17)
    「[DENSOの最終勤務日] 最終勤務日でした、入門カードや会社のPCを返却してきました。在籍期間はNSITEXE(品川のオフィ...」
  • link 24年10月30日
    すずき (11/02 20:33)
    「[マンガ紹介] 目次: マンガ紹介お気に入りのマンガ紹介シリーズ。最近完結した短めの作品を紹介します。マイナススキル持ち四人が...」
  • link 19年3月28日
    すずき (11/02 13:27)
    「[マンガ紹介] 目次: マンガ紹介お気に入りのマンガ紹介シリーズ。こわもてかわもて(全2巻、2019年)(アマゾンへのリンク)...」
  • link 21年6月20日
    すずき (11/02 13:22)
    「[読書一生分が93万円?] 目次: マンガ紹介書籍通販のhontoがこんなキャンペーンをやっています。honto読書一生分プレ...」
  • link 17年10月27日
    すずき (11/02 13:11)
    「[異世界&最強系漫画の種類] 目次: マンガ紹介少し前にアニメ化されて盛り上がって(おそらく負の方向に…)いた「...」
  • link 24年10月28日
    すずき (10/30 23:49)
    「[Linuxからリモートデスクトップ] 目次: Linux開発用のLinuxマシンの画面を見るにはいろいろな手段がありますが、...」
  • link 24年10月24日
    すずき (10/25 02:35)
    「[ONKYOからM-AUDIOのUSB DACへ] 目次: PCかれこれ10年以上(2013年3月16日の日記参照)活躍してく...」
  • link 24年7月25日
    すずき (10/25 02:24)
    「[OpenSBIを調べる - デバイスツリーの扱い(別方法)] 目次: LinuxOpenSBIのブート部分を調べます。Ope...」
  • link 24年8月7日
    すずき (10/25 02:23)
    「[Debian独自の挙動をするQEMUとbinfmt_misc] 目次: Linux前回はbinfmt_miscの使い方や動作...」
  • link 24年9月9日
    すずき (10/25 02:22)
    「[GDBの便利コマンド] 目次: LinuxGDBは便利ですが、少し使わないでいるとあっという間にコマンドを忘れます。便利&使...」
link もっとみる

こんてんつ

open/close wiki
open/close Linux JM
open/close Java API

過去の日記

open/close 2002年
open/close 2003年
open/close 2004年
open/close 2005年
open/close 2006年
open/close 2007年
open/close 2008年
open/close 2009年
open/close 2010年
open/close 2011年
open/close 2012年
open/close 2013年
open/close 2014年
open/close 2015年
open/close 2016年
open/close 2017年
open/close 2018年
open/close 2019年
open/close 2020年
open/close 2021年
open/close 2022年
open/close 2023年
open/close 2024年
open/close 過去日記について

その他の情報

open/close アクセス統計
open/close サーバ一覧
open/close サイトの情報

合計:  counter total
本日:  counter today

link About www.katsuster.net
RDFファイル RSS 1.0

最終更新: 11/19 01:04