「シリアライズ」を含む日記 RSS

はてなキーワード: シリアライズとは

2022-08-13

プログラマー生産性は人により100倍くらい差があるというけれど

 割りとマジだよねと思う出来事をふと思い出したので書いてみる。

 といっても後輩が俺の思ってもいないところでつまづいて、それに俺がカルチャーショックを受けたというだけの話。

 問題の話なんだけど、とある有名サービスJSON APIを叩いて呼び出し結果を手元のオブジェクトマッピングするというただそれだけのコードを書くというもの

 普通に考えて一日もしないで出来ると思うような代物だけど、三日以上悩んで彼はそれでも出来なかった。

 何があったかというと、そのJSON API

{ ..., "count": 10000000000000000000000000000000000000, ...}

 という感じで多倍長整数リテラルとして書かれているのを前提として受け取る仕様だった。

 JavaScriptの通常の整数と違って、JSON整数リテラル仕様上大きさの制限記載がないので、上のようなのも合法

 で、彼の使ってたプログラミング言語オブジェクト から JSONの変換ライブラリが、多倍長整数文字列("")としてシリアライズするような仕様なことがわかって、彼は行き詰まった。

 そこで何をやり始めたかというと、JSON整数がそのまま1000000000000000みたいにシリアライズされるライブラリ探し始めたんだけど、それは見つからないまま。

 というわけで「増田さん、詰まってるんですけど……」と言われて助け舟出すことになったはいものの、彼のコード見るとJSON抽象構文木クラスがそのまま使えるようだった。

 なので、

String serialiaze(Ast.JsValue value) {
    return switch(value) {
        case Ast.JsNull nullValue-> "null";
        case Ast.JsInt bigIntValue -> bigIntValue.toString();
        case Ast.JsArray arrayValue -> arrayValue.stream().map(v -> serialize(v)).collect(Collectors.joining(", ", "[", "]"));
        // 他のJSONの木についても同様に処理
        default -> throw new RuntimeException("cannot reach")
    };
}

 1時間しない内にこんな感じのコード言語Javaじゃなかったけど、だいたいこういう感じ)を書いて無事問題解決。細かいタイポとかあるかもだけど、日記では確認してないのでそれはおいといて)。

 結局、JSONの形が期待と違って、しか既存APIじゃいいのがなかったのに延々API探すことしか出来なかったのが問題解決できなかった原因だけど、このくらいのは割りとちょこちょこある。

 きっと、それから一週間放置しても問題解決できなかっただろうし、どうも同じチームの同僚も問題解決できなかったようだった。

 最近APIは叩けるけど、そこでトラブルとどうにもならなくエンジニアにちょくちょく遭遇するんだけど、やっぱりもうちょっと基礎出来てないと駄目だなと思った出来事だった。

 具体的には、再帰が相性が良いプログラムを書けるとか、APIに頼れないときはさっさと自作する頭の切り替えとかもろもろ。

 それと、情報大学出てるのなら、せめて木構造に対してはサクっと再帰関数くらい書けてほしかったなと思う出来事だった。

2021-08-02

アニメシリアライズ

小林さんちのメイドラゴンを絶賛視聴中

やっぱりおっぱい特盛は飽きが来ない

  

それはそうと2期3話で1期OPのミュージックビデオアニメ化されて流れた

見た人ならわかるけど、なかなかの再限度

そしてとても可愛くなったボーカル女性(元が可愛くないとは断じて言わない)

この実在する人間アニメシリアライズする事で、逆にデシリアライズ可能性も予想する事ができる

  

まり人間アニメにするとああで、あのキャラ人間にするとああなんだからアニメキャラが実際に現実にいたらだいたいどんなになるかがわかると思う

  

似顔絵とかのテクニックでもあるけど、その顔の特徴を足したり引いたり盛ったりする事でよりキャラっぽくデザインする

そういったデフォルメ差し引きを考えられるようになると、胸の大きなあいつは実際にいたら半分の大きさも無いだろうなとか、可愛いから許せてるボソボソ喋る根暗も実際にいたらムカつくだろうなとかを考えるようになって、

次元があるから次元不要って考える人ってのは、そういうデシリアライズができないか拒否してるかのどっちかなんだろうなと思った

2021-05-24

anond:20210524113704

相関関係とか、シリアライズ処理が極力ないように

設計してあるから

10秒未満とかにしない限りは、ライナルに性能が伸びるように設計してある

2021-02-11

anond:20210211182427

なぜWordpressNoSQLに変換してもよいか?それはシリアライズ可能な組み合わせの検索しかSQLでしないから むしろNoSQLSQLラッパかましたほうが効率的R昨日読んでいない

2020-05-23

インターネットには説明しろおじさんが多い。ブコメTwitterでよく観られる。対象政治家とか企業、有名な人。いろんな人に説明しろ罵倒気味に命じる。発祥国会の質疑だと思われる。いつの間にか説明責任とかいう謎概念ができている。ただ、困ったことに説明をしても、説明しろと言った人は聞いちゃいない。説明理解する能力がないか、あえて無視している。個人的ダサいと思うのは、質問する側が問いを練り上げてない点だ。ただ漠然説明しろと言うのは知性に欠ける。何が問題であるのか練り上げて質問したほうが効率的だし楽しい。ただ、曖昧な問いしか投げられないのは、言語化能力問題かもしれない。研ぎ澄ました本質的な問い、質問された人が簡単には答えられないような問いを投げるのが、かっこいい在りかただと思うのだが、言語化できない人は質問をするだけで満足しているのだろう。権力を持っているのはわれわれ有権者なので質問はしていい。だが、薄っぺらい問いを投げて満足しているのは残念な姿だと思う。

近代社会言語化できない人に厳しい。国家的な教育を通して国語能力を磨かせているはずなのに、読み書きできる人は少ない。しかし、言語能力が高くないと困る社会にも問題がある。認知特性には人によって偏りがあり、言語より図やイラストによる表現が得意な人もいる。音楽だってそうだ。これだけ国語をやっても変わらないのだから、人によって得意分野が違うとして諦めるしかない。一部のエリートは何も苦労せず読み書きができている。彼らは制度を作る側なので、当たり前のように読み書きを重視する。残念ながら、この構造は変えられない。思考固定化するには文字効率的なのだ。新しいシリアライズ形式が出ない限りはこのままだろう。

2019-06-27

シリアライズ、デシリアライズ

よくわかんないんだよね。

シリアライズって書いて、他のC#ファイルクラスを参照したりするじゃん?

結局どういうこと?

まとめる意味ってあるの?

2018-12-14

C#Classについて知ってる人教えてほしい

VisualStudioローカル動作するアプリを作ろうと思ってるんだけど

本当に初歩的なことかもしれないことが分からない。

class」というやつについてだ。

XXXXX.csというファイル内にそいつは居るんだが、

そいつの中には複数classさんが存在してもいいのか?SAVACLASSとLOADCLASS存在しても良いのか?

namespaceって何だよ。名前空間意味分からん


public class Person
{
    public string name { get; set; }
    public int age { get; set; }
}
public class Office
{
    public string name;
    public ObservableCollection<Person> persons;
}


private Office office;
private void init()
{
    office = new Office();
    office.name = "オフィス";
    office.persons = new ObservableCollection<Person>();
    office.persons.Add(new Person { name = "001", age = 11 });
    office.persons.Add(new Person { name = "002", age = 22 });
    office.persons.Add(new Person { name = "003", age = 33 });
}

上記って全て同じCLASSファイルに置いていいの?

OFFICEという属性にはPARSONというものが集まってて、そのPARSONの情報にはNAMEAGEがありますよ!というのは分かるんだけど

1から書けといわれたらちょっとからなくなる……

シリアライズも、デシリアライズも、「圧縮解凍」みたいなイメージしかないし

うーん。難しい。

クラスって何なんだ。VBA風に説明できる人いない?(VBAでもClassは使わずにFunctionとSUBだけ使い回してた)

2018-09-06

anond:20180906101653

まあ増田ツッコミ自体は正しいが、

いし→意思 という変換が一筋縄シリアライズド・ロープ)とならないのは何となくわかるだろ。

いし→意思と素直に変換できた場合でも「こっちの意思ってなんぞや」問題がまたついて回る。「こっちの意思ワードを出す前に「可否」ワードが無きゃこっちの意思意味分からんだろ的な拙い部分もある。

それら含めて「変だ」って感覚は(ワイ視点だと)そこそこコモンセンスだとは思うんだが、そうでないって感覚コミュニティはあるって事よな。そこは理解する。

(今の所ガチ陰キャ集団って扱いだけど)

[]2018年9月5日水曜日増田

時間記事文字数文字数平均文字数中央値
008624247281.957
01555963108.466
02185202289.0111
03192475130.381
04151632108.826
05939043.333
061199490.430
0740392998.268.5
0873632786.773
0913814812107.365.5
101421169182.352
111361284894.549
1295849589.445
131311144387.444
141141115397.863.5
151721599093.046
1619820577103.944.5
171161149699.159.5
1814214218100.141
1993775883.454
20479758207.684
217010584151.270.5
228613810160.655.5
238611647135.463
1日2092237439113.553

頻出名詞 ()内の数字単語が含まれ記事

人(258), 自分(224), 増田(135), 女(134), 話(126), 男(100), 女性(88), 問題(81), 今(77), 仕事(76), 男性(75), 子供(73), 人間(73), 場合(69), 気(65), ー(64), 前(63), 必要(59), 時間(55), 社会(54), 他人(53), 収入(50), 意味(49), 関係(49), 相手(49), あと(48), 台風(47), 痴漢(46), 感じ(46), 結婚(44), 男女(44), 他(43), 可能性(43), 世界(43), 普通(43), しない(43), 人生(43), 下方婚(43), 気持ち(42), 馬鹿(42), データ(41), 好き(38), 理解(38), 日本(38), レベル(37), 逆(37), 無理(37), 否定(37), 会社(36), 主張(36), 最近(35), 全部(33), じゃなくて(33), 存在(33), 声(32), 手(32), ネット(32), 理由(32), 周り(32), 趣味(31), 差別(31), ソース(31), 被害者(31), ゲーム(30), 頭(30), 結局(30), 嫌(30), 友達(30), 別(29), 結果(29), 一番(28), 誰か(28), 言葉(28), クズ(27), 今日(27), 根拠(27), ダメ(27), 親(27), 子ども(26), 年収(26), 女性専用車両(26), 状況(26), 毎日(25), 漫画(25), 昔(25), 絶対(25), 育児(25), 自体(25), バカ(25), 意識(25), 確か(24), 作品(24), 時代(24), 家事(24), 批判(24), 本人(24), 時点(24), 金(24), 完全(23), 被害(23), 程度(23), 対応(23), 価値(23), 当たり前(23), 環境(23), 家(23), 奴(23), 最初(23), 一つ(23)

頻出固有名詞 ()内の数字単語が含まれ記事

増田(135), 下方婚(43), 可能性(43), 日本(38), じゃなくて(33), 被害者(31), 女性専用車両(26), 障害者(20), リアル(20), マジで(17), ブコメ(15), 東大(14), いない(13), 個人的(13), hatena(12), 就活(12), SNS(12), パワハラ(11), 元増田(11), ツイッター(11), 夫婦(11), スマホ(11), 分からん(11), 痴漢冤罪(10), ヘイト(10), 悪いこと(10), なのか(10), いいんじゃない(10), ブログ(9), わからん(9), 差別主義(9), ブクマ(9), 価値観(9), 知らんけど(9), フェミ(9), カス(9), 1日(8), いつまでも(8), ディストピア(8), はてなー(8), s(8), なんだろう(8), 東京(8), 加害者(8), はてブ(8), ブクマカ(8), 基本的(8), プレイ(8), togetter(7), あなたに(7), 男性専用車両(7), 安倍(7), アメリカ(7), 満員電車(7), …。(7), 毎日(7), ダブスタ(7), 低能先生(7), 自分自身(7), 毒親(7), 脳内(7), gt(7), 1人(7), twitter(7), 飲み会(7), ???(7), 中国(7), かもしれん(7), 正義感(7), どんだけ(6), な!(6), 障碍者(6), OK(6), 一緒に(6), 説得力(6), ようじょ(6), 社会的(6), いじめられっ子(6), nekora(6), レディースデー(6), 1年(6), ぶっちゃけ(6), ツイート(6), イケメン(6), ワイ(6), 一方的(6), 男性差別(6), .s(6), 笑(6), 健常者(6), 何度(6), エビデンス(6), 最終的(6), P(6), eスポーツ(6), 大企業(5), 一本(5), 負け組(5), シリアライズ(5), ー(5), キチガイ(5), 女性差別(5), アレ(5), キモい(5), 男女平等(5), 論理的(5), 大阪(5), サイコパス(5), 人として(5), お気持ち(5), 関空(5), まんこ(5), トラバ(5), 非モテ(5), Google(5), 飲食店(5), 100%(5), w(5), GNU(5), 1回(5), デレステ(5), ATM(5), 自然災害(5), 人間関係(5), 生活保護(5), ホッテントリ(5), である(5), 20代(5)

投稿警察もどき日中に再投稿された本文の先頭20文字 ()内の数字投稿された回数

しゃぶれよ (4), ソースなし (2), >そもそも人生軌道にのってし(2), 台風で騒ぐのべつに悪くないと思うけど(2), 子供が楽しめることを新しい趣味として(2), 子どもまれたら自分時間がなくなる(2), 生きた人間が剣で刺し合ってる方がやば(2)

頻出トラックバック先(簡易)

一日一善の一善ってなにすればいいの /20180905163106(20), ■人は人、自分は自分なんて逃げでしかない /20180905072910(14), ■家庭教師先が教育ママで見てるのしんどい /20180904200821(11), ■中学時代カースト高くなかった東大卒の奴の扱いは酷いまま /20180904220725(10), ■1000人の学生全員を私服面接に来させる採用試験案内を考えて下さい /20180905104640(10), ■主語を大きくして話すひとは赤ちゃんなのだ /20180905140221(9), ■ /20180905133951(9), ■友達いない人どうやって生きてる? /20180905011928(8), ■好きな芸能人の熱愛とか結婚報道で落ち込む人 /20180905185135(8), ■漫画海外展開しないとジリ貧 /20180905041015(7), (タイトル不明) /20180904191904(7), ■趣味が生きがいの人は子どもを持つ前によく考えろ /20180904233809(7), ■「自分に刺さるコンテンツ」が年々なくなっていく問題 /20180829224019(7), ■ゴキ、ゼロにしたい /20180905011258(6), ■毎日虚無感しかない /20180905164609(6), ■子供が生まれたぞー!! /20180905025354(6), ■ミリオンライブかいう声豚用コンテンツと化したアイマスお荷物( /20180904235138(6), ■eスポーツ地位を向上させようとしている人たち /20180905165521(5), ■anond20180904191904 /20180905100655(5), ■id:houyhnhm増田匿名HN匿名じゃない!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!」 /20180905183506(5), ■結局ダブスタって何が悪いの? /20180905130710(5), ■「ディストピア」が誤解されている件 /20180905125439(5)

増田合計ブックマーク数 ()内の数字は1日の増減

5585765(2637)

2018-09-05

anond:20180905095839

えっと、クラスは大まかなざっくりとした定義(?)であって

インスタンスはそこから作られた実体

クラスは確かなんでも良いんだよね? 性別クラスがあったり、性格クラスがあったりとか…。

シリアライズはたくさんのクラスを通って作られたインスタンス実体)の特徴をまとめたデータってこと?

シリアライズデータから実体復元させるってことになるのかな。

何となく分かってきたけど、合ってるのかが分からない。

anond:20180905094945

クラスってのはバーサーカーとかライダーとかキャスターかいろいろあるだろ。

属性」と「振る舞い」が定義された人間側の便宜的な区別だよ。

セイバーなら刀を使うとか、アーチャーなら弓を使うとか。

セイバークラスには「顔が似てる」って属性定義されていて、キャスターには「重いものを運ぶのに便利」って属性定義されてるだろ。そういうのの塊。

インスタンスはそのクラス定義から作られた実体の事よ。

野獣先輩なんかはバーサーカークラスから作られたインスタンス吉田沙保里バーサーカークラスから作られたインスタンス

どちらも乱暴者という部分は共通しているよな。

それは、バーサーカークラスに「乱暴である」という属性定義があるからなんだ。

そして、その野獣先輩の特徴をwikiなんかに箇条書きで纏めていくことを「シリアライズ」と言う。

そうすることでwikiを参照した他の野獣先輩ファンが、自身野獣先輩になり切ることができるわけだろう。

このようにインスタンスの詳細を言語化することをシリアライズするってことになるんだよ。

分かった?

anond:20180905094534

VBAのショボイ知識ならあるんだけど、

クラスって、FunctionとかSubプロシージャとかそういう感じ?

インスタンス実体……。

シリアライズは、この例えで無理やり続けるなら、インスタンスたい焼きの頭を食べたとして、この時点で実体状態が変化している

変化したその状態を保存して、いつでも好きなとき実体に戻せるような形式実体を変換するのがシリアライズ

だめだ、わからん

シリアライズインスタンスが良く分からん

Unity始めようと思ったんだけど

シリアライズインスタンスが良く分からない。

これはJAVA?それともC#?

データシリアライズしないと出来ない?どういうこと?

インスタンスデータを受け渡す?変数と何か違うの?

パース?デシリアライズ

意味が分からないよ。

単純に、シナリオゲーム用のマスターデータや、キャラ用のデータなどを保持しておきたいんだけど、

どうすべきなんかな。意味不明じゃ。

Unity本3冊買ったけど意味不明。

2014-04-23

http://anond.hatelabo.jp/20140423185238

ん?圧縮センシングの話?

シリアライズ別に何も情報圧縮してないぞ?

基底を減らすのが情報圧縮本質

例えば128×128の画像があったとして、でもそれは32×32の白黒から成るチェッカーパターンだった場合

128×128×8bitの情報を保持するのはアホで、4×4×2bitくらいの情報で十分。

その際の基底は、例えば32pixelごとの画素値だけ憶えておくとかそんなん。

2010-07-24

google発のProtocol Buffersについて

オブジェクトシリアライズツールであるプロトコルバッファについて書きます。

プロトコルバッファって何って方はこちらへ

Protocol Buffers 本家

http://code.google.com/apis/protocolbuffers/

XMLはもう不要!? Googleシリアライズツール「Protocol Buffer」

http://journal.mycom.co.jp/articles/2008/07/18/protocolbuffer/index.html

Protocol Buffers (Protocol Buffers の内部解説記事。とても参考になります)

http://dodgson.org/omo/t/?date=20080712

内容

プロトコルバッファは異種言語間でオブジェクトのやりとりをするための規格です。

独自の言語によりオブジェクトインターフェースを規定することで、多言語対応を行っています。

例えばこんな感じ。

  • address.proto
package tutorial;

message Person {
  required string name = 1;
  required int32 id = 2;        // Unique ID number for this person.
  optional string email = 3;

  enum PhoneType {
    MOBILE = 0;
    HOME = 1;
    WORK = 2;
  }

  message PhoneNumber {
    required string number = 1;
    optional PhoneType type = 2 [default = HOME];
  }

  repeated PhoneNumber phone = 4;
}

// Our address book file is just one of these.
message AddressBook {
  repeated Person person = 1;
}

以上のようなprotoファイルから各言語ソースコード、または何らかのデータ操作ライブラリを使いオブジェクトの処理を行います。

googleによってC++, Java, Python用のライブラリ作成されましたが、他の言語対応したサードパーティー製のライブラリがいくらでもあるので、実質的にほぼすべての言語で使えると言っても過言ではありません。

以下はこのライブラリを使ってみた感想などです。

整数型はVarintという可変長型でバイナリに保存される

数字が多きければ大きいほど、長いバイト長で保存されます。ただし、負数の場合符号ビットが立つ関係で、ほとんど常に変換後のバイト数が最長バイト数(10)になってしまいます。フィールドの型をsint32, sint64で宣言しると、各数値にzig-zags変換が行われるため、負数であってもその値の絶対値で使用バイト数が決まるようになります。

保存されるデータは各メッセージID/型/値のみ

バイナリに保存されるデータは各メッセージID/型/値のみです。なので、同じ定義の二つのメッセージ型は、プロトコルバッファ上では全く同じように扱うことが出来ます。例えば、片方からシリアライズしたデータを、もう片方の型でデシリアライズすることが可能です。

またオブジェクト連続シリアライズ/デシリアライズすることもできます。

継承されたクラスマッピング

すでに存在する継承関係のあるクラスを、Protocol Buffersでシリアライズ/デシリアライズしたい場合は次のようにします。

(Base, Derived はすでに存在するとします)

(ソースコード中になぜか日本語が書けないので、コメントはすべて英語になっています)

message PbBase {
        require int32 id = 1;
        require int32 value = 2;

        require Derived derived = 10; // - Point !!!
}

message PbDerived {
        require string string_value = 1;
}

継承元のメッセージ定義に、継承先のメッセージを持たせます。Base継承するクラスシリアライズ/デシリアライズしたい場合は、PbBaseメッセージを中心に処理を行うことで、比較的簡単に処理を実装することが出来ます。

例えばこんな感じ

Base *Base_DeserializeFrom(PbBase &pbobj)
{
    // Arrange the classes which inherits from Base.
    if (pbobj.has_derived()) {
        return new Derived(pbobj);
    }
    else
    ...
}

class Base {
    ...
    virtual void Base::SerializeTo(PbBase &pbobj) {
        // Set the fields of 'pbobj',
    }
    ...
};

class Derived {
    ...
    virtual void Base::SerializeTo(PbBase &pbobj)
    {
        PbDerived *derived = pbobj.mutable_derived();

        Base::SerializeTo(pbobj);
        // Set the fields of 'derived',
        ...
    }
    ...
};

protoファイルを以下のように書くと、メッセージの扱いが非常に難しくなります。

message PbBase {
        require int32 id = 1;
        require int32 value = 2;
}

message PbDerived {
        required PbBase base = 1; // - Here is the point !!!
        require string string_value = 2;
}

2010-07-02

XmlSerializer vs SoapFormatter

.NETオブジェクト永続化によく使われる、この二つのクラスの違いについて書きます。サンプルコードなどは書きませんので必要ならリンクを参照してください。ずいぶん古いネタだけど、許してね。

全体的に速度が重要場合永続化するオブジェクトが単純な場合XmlSerializerを、それ以外の場合SoapFormatterを使うのが良いと思う。なるべく短いコード量で行きたいならSoapFormatterの方がベター

あと、細かいことだけどTypeConverterは便利なので使うべし。シリアライズ不可能な小さなクラスとか特に有効。

2007-10-20

http://anond.hatelabo.jp/20071019153453

よもや、レスがついてるとは思わなかった。

興味を持ってもらえてサンクスです。

entry = diary.entry('20070712231804')

エントリー指定してたからなんなんだろうと思って。

editもできるってことなのかな?

書き込んだあとの編集機能はいまんとこなし。

上記は指定したidエントリを引っ張ってくる。

# get entry from id
entry = diary.entry('20070712231804')

# puts entry title
puts entry.title

# puts entry content
puts entry.content

で、そもそもRubyに詳しくない自分からするとちゃんとした使い方がそれでもわからない。

バカでごめんねなんだけど、どうやって使えばいいの?

たとえば、エントリタイトル一覧(1ページ目だけだけど)を出力するなら

diary = Masuda::Diary.new

diary.entries do |entry|
  puts entry.title
end

こんな感じかな。

新しいエントリを登録するなら

diary = Masuda::Diary.new

diary.login('my_id', 'my_pass')
diary.post('koko wa title ne', <<EOS)
koko ni kizi no honbun wo kaku
EOS

とか。

ずらーっと増田らしきものを読み込む。

そりゃそうだわなと思いながら文字化けの山。

文字化けなのは、たぶん増田エントリ(UTF-8)をそのまんま取得しているせいだと思う。

なんでスクリプトを実行するときにフィルタを通すとか

~$ ruby hoge.rb | nkf -Ws

出力するときにSJISに変換するとか。

require 'rubygems'
require 'masuda'
require 'kconv'

diary = Masuda::Diary.new
diary.entries.each do |entry|
  puts entry.title.tosjis
  puts entry.content.tosjis
end

あと

session[:diary] = diary.raw

diary = Masuda::Diary.restore(session[:diary])

の...って何でしょうか??

Masuda::Diary#rawインスタンスシリアライズするメソッド。

ログイン済みのインスタンスシリアライズしてセッションにつっこんどいて、次のリクエストでも使いまわすとか。

わかりづらい文章で申し訳ない。

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