sax-machine-patched 0.2.0.rc2

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,411 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <statuses type="array">
3
+ <status>
4
+ <created_at>Fri Jan 16 03:13:39 +0000 2009</created_at>
5
+ <id>1122786091</id>
6
+ <text>@Ryudokun :-P</text>
7
+ <source>web</source>
8
+ <truncated>false</truncated>
9
+ <in_reply_to_status_id>1122783776</in_reply_to_status_id>
10
+ <in_reply_to_user_id>14090866</in_reply_to_user_id>
11
+ <favorited>false</favorited>
12
+ <user>
13
+ <id>2685941</id>
14
+ <name>Zafiro Hernández</name>
15
+ <screen_name>kethzy</screen_name>
16
+ <description>Escritora de la revista Niponia, turistologa y loca enamorada</description>
17
+ <location>Mexico</location>
18
+ <profile_image_url>http://s3.amazonaws.com/twitter_production/profile_images/57794212/candado_normal.jpg</profile_image_url>
19
+ <url>http://www.niponia.com.mx</url>
20
+ <protected>false</protected>
21
+ <followers_count>280</followers_count>
22
+ </user>
23
+ </status><status>
24
+ <created_at>Fri Jan 16 03:13:39 +0000 2009</created_at>
25
+ <id>1122786090</id>
26
+ <text>New blog post: Welcome to Life Sais http://lifesais.com/2009/01/life-sais/</text>
27
+ <source>&lt;a href=&quot;http://alexking.org/projects/wordpress&quot;&gt;Twitter Tools&lt;/a&gt;</source>
28
+ <truncated>false</truncated>
29
+ <in_reply_to_status_id />
30
+ <in_reply_to_user_id />
31
+ <favorited>false</favorited>
32
+ <user>
33
+ <id>16279065</id>
34
+ <name>Sais</name>
35
+ <screen_name>Sais</screen_name>
36
+ <description>I'm sort of a big deal hehehehe*</description>
37
+ <location>NY</location>
38
+ <profile_image_url>http://s3.amazonaws.com/twitter_production/profile_images/69122175/Picture_2_normal.png</profile_image_url>
39
+ <url>http://www.supersais.com/blog</url>
40
+ <protected>false</protected>
41
+ <followers_count>134</followers_count>
42
+ </user>
43
+ </status><status>
44
+ <created_at>Fri Jan 16 03:13:39 +0000 2009</created_at>
45
+ <id>1122786089</id>
46
+ <text>On Youtube. Youtube.com/TinyHustla</text>
47
+ <source>web</source>
48
+ <truncated>false</truncated>
49
+ <in_reply_to_status_id />
50
+ <in_reply_to_user_id />
51
+ <favorited>false</favorited>
52
+ <user>
53
+ <id>19052333</id>
54
+ <name>Alonzo Nuno</name>
55
+ <screen_name>SouljaSkoolSwag</screen_name>
56
+ <description />
57
+ <location />
58
+ <profile_image_url>http://static.twitter.com/images/default_profile_normal.png</profile_image_url>
59
+ <url />
60
+ <protected>false</protected>
61
+ <followers_count>0</followers_count>
62
+ </user>
63
+ </status><status>
64
+ <created_at>Fri Jan 16 03:13:39 +0000 2009</created_at>
65
+ <id>1122786088</id>
66
+ <text>@scanhead it will be a well deserved win if it walks away with Best Animated. I can't think of anything that comes close</text>
67
+ <source>&lt;a href=&quot;http://www.tweetdeck.com/&quot;&gt;TweetDeck&lt;/a&gt;</source>
68
+ <truncated>false</truncated>
69
+ <in_reply_to_status_id>1122156627</in_reply_to_status_id>
70
+ <in_reply_to_user_id>16721278</in_reply_to_user_id>
71
+ <favorited>false</favorited>
72
+ <user>
73
+ <id>14518496</id>
74
+ <name>David Chapman</name>
75
+ <screen_name>davechappers</screen_name>
76
+ <description></description>
77
+ <location>Cambridge</location>
78
+ <profile_image_url>http://s3.amazonaws.com/twitter_production/profile_images/70439325/Photo_3_normal.jpg</profile_image_url>
79
+ <url></url>
80
+ <protected>false</protected>
81
+ <followers_count>2</followers_count>
82
+ </user>
83
+ </status><status>
84
+ <created_at>Fri Jan 16 03:13:39 +0000 2009</created_at>
85
+ <id>1122786087</id>
86
+ <text>Craps is an interesting game.</text>
87
+ <source>&lt;a href=&quot;http://orangatame.com/products/twitterberry/&quot;&gt;TwitterBerry&lt;/a&gt;</source>
88
+ <truncated>false</truncated>
89
+ <in_reply_to_status_id />
90
+ <in_reply_to_user_id />
91
+ <favorited>false</favorited>
92
+ <user>
93
+ <id>16436531</id>
94
+ <name>chaser1975</name>
95
+ <screen_name>chaser1975</screen_name>
96
+ <description></description>
97
+ <location>Jacksonville</location>
98
+ <profile_image_url>http://s3.amazonaws.com/twitter_production/profile_images/63201969/July8_2008_047_normal.jpg</profile_image_url>
99
+ <url></url>
100
+ <protected>false</protected>
101
+ <followers_count>27</followers_count>
102
+ </user>
103
+ </status><status>
104
+ <created_at>Fri Jan 16 03:13:39 +0000 2009</created_at>
105
+ <id>1122786086</id>
106
+ <text>Intel's net profit drops 90 percent... ouch. http://tinyurl.com/8elfpl</text>
107
+ <source>&lt;a href=&quot;http://iconfactory.com/software/twitterrific&quot;&gt;twitterrific&lt;/a&gt;</source>
108
+ <truncated>false</truncated>
109
+ <in_reply_to_status_id />
110
+ <in_reply_to_user_id />
111
+ <favorited>false</favorited>
112
+ <user>
113
+ <id>14970813</id>
114
+ <name>blobinabottle</name>
115
+ <screen_name>blobinabottle</screen_name>
116
+ <description></description>
117
+ <location></location>
118
+ <profile_image_url>http://s3.amazonaws.com/twitter_production/profile_images/54912507/domo_normal.jpg</profile_image_url>
119
+ <url>http://blobinabottle.blogspot.com</url>
120
+ <protected>false</protected>
121
+ <followers_count>38</followers_count>
122
+ </user>
123
+ </status><status>
124
+ <created_at>Fri Jan 16 03:13:39 +0000 2009</created_at>
125
+ <id>1122786083</id>
126
+ <text>Re-pinging @Greed32: hahah I'm bored/curious and plus I only respond to good answers and normal people</text>
127
+ <source>&lt;a href=&quot;http://twitter.com/twinkleking&quot;&gt;Twinkle&lt;/a&gt;</source>
128
+ <truncated>false</truncated>
129
+ <in_reply_to_status_id />
130
+ <in_reply_to_user_id />
131
+ <favorited>false</favorited>
132
+ <user>
133
+ <id>18010200</id>
134
+ <name>lenalover</name>
135
+ <screen_name>lenalover</screen_name>
136
+ <description>escapism is key in this fantasy world </description>
137
+ <location>Pompton Lakes, New Jersey</location>
138
+ <profile_image_url>http://static.twitter.com/images/default_profile_normal.png</profile_image_url>
139
+ <url></url>
140
+ <protected>false</protected>
141
+ <followers_count>31</followers_count>
142
+ </user>
143
+ </status><status>
144
+ <created_at>Fri Jan 16 03:13:39 +0000 2009</created_at>
145
+ <id>1122786082</id>
146
+ <text>And what is the grocery store membership all about anyway?</text>
147
+ <source>&lt;a href=&quot;http://www.twittermail.com/&quot;&gt;TwitterMail&lt;/a&gt;</source>
148
+ <truncated>false</truncated>
149
+ <in_reply_to_status_id />
150
+ <in_reply_to_user_id />
151
+ <favorited>false</favorited>
152
+ <user>
153
+ <id>14221234</id>
154
+ <name>susbarefoot</name>
155
+ <screen_name>susbarefoot</screen_name>
156
+ <description>In life, we have poop.</description>
157
+ <location>Raleigh, NC</location>
158
+ <profile_image_url>http://s3.amazonaws.com/twitter_production/profile_images/54048743/avatar_normal.gif</profile_image_url>
159
+ <url></url>
160
+ <protected>false</protected>
161
+ <followers_count>49</followers_count>
162
+ </user>
163
+ </status><status>
164
+ <created_at>Fri Jan 16 03:13:39 +0000 2009</created_at>
165
+ <id>1122786081</id>
166
+ <text>@nfreader I...should be FLYING! NOT SWIMMING!!</text>
167
+ <source>&lt;a href=&quot;http://iconfactory.com/software/twitterrific&quot;&gt;twitterrific&lt;/a&gt;</source>
168
+ <truncated>false</truncated>
169
+ <in_reply_to_status_id>1122783193</in_reply_to_status_id>
170
+ <in_reply_to_user_id>10014522</in_reply_to_user_id>
171
+ <favorited>false</favorited>
172
+ <user>
173
+ <id>5723532</id>
174
+ <name>Bradley</name>
175
+ <screen_name>warbrain</screen_name>
176
+ <description></description>
177
+ <location>Des Plaines, IL (42.028351,-87</location>
178
+ <profile_image_url>http://s3.amazonaws.com/twitter_production/profile_images/69653184/Photo_112_normal.jpg</profile_image_url>
179
+ <url>http://bradleysays.com</url>
180
+ <protected>false</protected>
181
+ <followers_count>420</followers_count>
182
+ </user>
183
+ </status><status>
184
+ <created_at>Fri Jan 16 03:13:39 +0000 2009</created_at>
185
+ <id>1122786080</id>
186
+ <text>You guys are too funny, do you think we have worn out TWTTRSTRM yet? LOL I'm heading off for the night, not feeling too well * pout *</text>
187
+ <source>web</source>
188
+ <truncated>false</truncated>
189
+ <in_reply_to_status_id />
190
+ <in_reply_to_user_id />
191
+ <favorited>false</favorited>
192
+ <user>
193
+ <id>16618589</id>
194
+ <name>Pretty Bullet</name>
195
+ <screen_name>prettybullet</screen_name>
196
+ <description>The prettiest bullet on Squidoo!</description>
197
+ <location>Spanish, Ontario Canada</location>
198
+ <profile_image_url>http://s3.amazonaws.com/twitter_production/profile_images/67497171/1avatar-xmas-78_normal.jpg</profile_image_url>
199
+ <url>http://www.squidoo.com/lensmasters/awelldressedbullet</url>
200
+ <protected>false</protected>
201
+ <followers_count>109</followers_count>
202
+ </user>
203
+ </status><status>
204
+ <created_at>Fri Jan 16 03:13:39 +0000 2009</created_at>
205
+ <id>1122786079</id>
206
+ <text>Thinks her scones are good but a little well done...</text>
207
+ <source>&lt;a href=&quot;http://help.twitter.com/index.php?pg=kb.page&amp;id=75&quot;&gt;txt&lt;/a&gt;</source>
208
+ <truncated>false</truncated>
209
+ <in_reply_to_status_id />
210
+ <in_reply_to_user_id />
211
+ <favorited>false</favorited>
212
+ <user>
213
+ <id>15357848</id>
214
+ <name>brittymine</name>
215
+ <screen_name>brittymine</screen_name>
216
+ <description>i make your dreams come true!</description>
217
+ <location>at my house!</location>
218
+ <profile_image_url>http://s3.amazonaws.com/twitter_production/profile_images/56368682/543476751_70398214dc_t_normal.jpg</profile_image_url>
219
+ <url></url>
220
+ <protected>false</protected>
221
+ <followers_count>15</followers_count>
222
+ </user>
223
+ </status><status>
224
+ <created_at>Fri Jan 16 03:13:39 +0000 2009</created_at>
225
+ <id>1122786078</id>
226
+ <text>Mariam N’KASSAI : Togo:
227
+
228
+
229
+
230
+
231
+ $0 of $1,025 raised.
232
+
233
+ Started raising funds on Jan 1.. http://tinyurl.com/99bx65</text>
234
+ <source>&lt;a href=&quot;http://twitterfeed.com&quot;&gt;twitterfeed&lt;/a&gt;</source>
235
+ <truncated>false</truncated>
236
+ <in_reply_to_status_id />
237
+ <in_reply_to_user_id />
238
+ <favorited>false</favorited>
239
+ <user>
240
+ <id>18072695</id>
241
+ <name>Microfinance</name>
242
+ <screen_name>Microfinance</screen_name>
243
+ <description />
244
+ <location />
245
+ <profile_image_url>http://s3.amazonaws.com/twitter_production/profile_images/69655320/kiva_normal.jpg</profile_image_url>
246
+ <url />
247
+ <protected>false</protected>
248
+ <followers_count>12</followers_count>
249
+ </user>
250
+ </status><status>
251
+ <created_at>Fri Jan 16 03:13:39 +0000 2009</created_at>
252
+ <id>1122786077</id>
253
+ <text>@VibeMagazine ...jokin.. but nah fo' real i killed it, though!! lol</text>
254
+ <source>web</source>
255
+ <truncated>false</truncated>
256
+ <in_reply_to_status_id>1122779374</in_reply_to_status_id>
257
+ <in_reply_to_user_id>14691200</in_reply_to_user_id>
258
+ <favorited>false</favorited>
259
+ <user>
260
+ <id>16541773</id>
261
+ <name>Leroy Duncan Jr.</name>
262
+ <screen_name>gooduncan</screen_name>
263
+ <description>imma music lover, cool and funny in a nerdy way brother, spread peace not hate, get along with one another...</description>
264
+ <location>North Carolina</location>
265
+ <profile_image_url>http://s3.amazonaws.com/twitter_production/profile_images/69820903/my_stare_normal.jpg</profile_image_url>
266
+ <url></url>
267
+ <protected>false</protected>
268
+ <followers_count>15</followers_count>
269
+ </user>
270
+ </status><status>
271
+ <created_at>Fri Jan 16 03:13:39 +0000 2009</created_at>
272
+ <id>1122786076</id>
273
+ <text>tonight was great to be a part of. looking forward to sunday to see Gods work in action.</text>
274
+ <source>&lt;a href=&quot;http://help.twitter.com/index.php?pg=kb.page&amp;id=75&quot;&gt;txt&lt;/a&gt;</source>
275
+ <truncated>false</truncated>
276
+ <in_reply_to_status_id />
277
+ <in_reply_to_user_id />
278
+ <favorited>false</favorited>
279
+ <user>
280
+ <id>19048879</id>
281
+ <name>Erica Rupert</name>
282
+ <screen_name>ericarupert</screen_name>
283
+ <description>obsessed with Bryson ; )</description>
284
+ <location>Gville</location>
285
+ <profile_image_url>http://s3.amazonaws.com/twitter_production/profile_images/71370743/127_127_normal.JPG</profile_image_url>
286
+ <url></url>
287
+ <protected>false</protected>
288
+ <followers_count>2</followers_count>
289
+ </user>
290
+ </status><status>
291
+ <created_at>Fri Jan 16 03:13:39 +0000 2009</created_at>
292
+ <id>1122786075</id>
293
+ <text>@Crystal_clear I need to update my twitter</text>
294
+ <source>web</source>
295
+ <truncated>false</truncated>
296
+ <in_reply_to_status_id>1122782227</in_reply_to_status_id>
297
+ <in_reply_to_user_id>11832612</in_reply_to_user_id>
298
+ <favorited>false</favorited>
299
+ <user>
300
+ <id>16586561</id>
301
+ <name>KristinaLeigh</name>
302
+ <screen_name>KristinaLeigh</screen_name>
303
+ <description>A Momma with a six year old son with Bipolar and one girl on the way....</description>
304
+ <location>Mandeville</location>
305
+ <profile_image_url>http://s3.amazonaws.com/twitter_production/profile_images/61244564/Phillip_normal.jpg</profile_image_url>
306
+ <url>http://itrhymeswithbanana.blogspot.com</url>
307
+ <protected>false</protected>
308
+ <followers_count>42</followers_count>
309
+ </user>
310
+ </status><status>
311
+ <created_at>Fri Jan 16 03:13:39 +0000 2009</created_at>
312
+ <id>1122786074</id>
313
+ <text>RT @BreakingNewsOn: The Minnesota Star Tribune which was founded in 1867 says it has filed for Chapter 11 bankruptcy, according to its w ...</text>
314
+ <source>&lt;a href=&quot;http://socialscope.net&quot;&gt;SocialScope&lt;/a&gt;</source>
315
+ <truncated>false</truncated>
316
+ <in_reply_to_status_id />
317
+ <in_reply_to_user_id />
318
+ <favorited>false</favorited>
319
+ <user>
320
+ <id>12332112</id>
321
+ <name>Amit Kumar</name>
322
+ <screen_name>amitkumar01</screen_name>
323
+ <description>CEO Ubiquitous Systems </description>
324
+ <location>San Francisco, California 9410</location>
325
+ <profile_image_url>http://s3.amazonaws.com/twitter_production/profile_images/52548135/frameAndServeImage.pl_normal.jpeg</profile_image_url>
326
+ <url>http:///www.socialscope.net</url>
327
+ <protected>false</protected>
328
+ <followers_count>125</followers_count>
329
+ </user>
330
+ </status><status>
331
+ <created_at>Fri Jan 16 03:13:39 +0000 2009</created_at>
332
+ <id>1122786073</id>
333
+ <text>Annie made my birthday cake herself! She is sooooo proud.</text>
334
+ <source>&lt;a href=&quot;http://iconfactory.com/software/twitterrific&quot;&gt;twitterrific&lt;/a&gt;</source>
335
+ <truncated>false</truncated>
336
+ <in_reply_to_status_id />
337
+ <in_reply_to_user_id />
338
+ <favorited>false</favorited>
339
+ <user>
340
+ <id>17530527</id>
341
+ <name>TimRhodus</name>
342
+ <screen_name>TimRhodus</screen_name>
343
+ <description>Christ-follower, Husband of Kathi, Dad of Trevor &amp;amp; Annie, Pastor of 400-500 amazing people</description>
344
+ <location>Carlinville, IL</location>
345
+ <profile_image_url>http://s3.amazonaws.com/twitter_production/profile_images/65406330/Tim_2_normal.jpg</profile_image_url>
346
+ <url>http://www.timrhodus.com</url>
347
+ <protected>false</protected>
348
+ <followers_count>70</followers_count>
349
+ </user>
350
+ </status><status>
351
+ <created_at>Fri Jan 16 03:13:39 +0000 2009</created_at>
352
+ <id>1122786072</id>
353
+ <text>Demo de Skate 2 na PSN européia!</text>
354
+ <source>&lt;a href=&quot;http://twitterfox.net/&quot;&gt;TwitterFox&lt;/a&gt;</source>
355
+ <truncated>false</truncated>
356
+ <in_reply_to_status_id />
357
+ <in_reply_to_user_id />
358
+ <favorited>false</favorited>
359
+ <user>
360
+ <id>15067571</id>
361
+ <name>jcvasc</name>
362
+ <screen_name>jcvasc</screen_name>
363
+ <description>Um viciado em DVD e BD - DVDBDAddict</description>
364
+ <location>Porto Alegre - Brazil</location>
365
+ <profile_image_url>http://s3.amazonaws.com/twitter_production/profile_images/55257978/avatar_81190_f_normal.jpg</profile_image_url>
366
+ <url>http://jcvasc.wordpress.com</url>
367
+ <protected>false</protected>
368
+ <followers_count>84</followers_count>
369
+ </user>
370
+ </status><status>
371
+ <created_at>Fri Jan 16 03:13:39 +0000 2009</created_at>
372
+ <id>1122786064</id>
373
+ <text>@shortyawards I vote for @StockTwits in the Shorty Awards Finals for #finance because it's the best thing going on Twitter</text>
374
+ <source>web</source>
375
+ <truncated>false</truncated>
376
+ <in_reply_to_status_id>1122785132</in_reply_to_status_id>
377
+ <in_reply_to_user_id>17663756</in_reply_to_user_id>
378
+ <favorited>false</favorited>
379
+ <user>
380
+ <id>899941</id>
381
+ <name>Sam Huleatt</name>
382
+ <screen_name>squasher98</screen_name>
383
+ <description>I dream Workstreams and post two interesting links daily on the Twitter</description>
384
+ <location>New York, NY</location>
385
+ <profile_image_url>http://s3.amazonaws.com/twitter_production/profile_images/54138892/newyearsme_normal.jpg</profile_image_url>
386
+ <url>http://Leveragingideas.com</url>
387
+ <protected>false</protected>
388
+ <followers_count>506</followers_count>
389
+ </user>
390
+ </status><status>
391
+ <created_at>Fri Jan 16 03:13:39 +0000 2009</created_at>
392
+ <id>1122786062</id>
393
+ <text>Once again, I glance at The Super-Organism in a bookstore display and see the title as... erm... something else. It fools me every time.</text>
394
+ <source>web</source>
395
+ <truncated>false</truncated>
396
+ <in_reply_to_status_id />
397
+ <in_reply_to_user_id />
398
+ <favorited>false</favorited>
399
+ <user>
400
+ <id>17876737</id>
401
+ <name>Amanda</name>
402
+ <screen_name>irreverentmuse</screen_name>
403
+ <description></description>
404
+ <location>Boston, MA, USA</location>
405
+ <profile_image_url>http://s3.amazonaws.com/twitter_production/profile_images/66363500/amandaMA_normal.jpg</profile_image_url>
406
+ <url>http://www.irreverentmusings.com</url>
407
+ <protected>false</protected>
408
+ <followers_count>11</followers_count>
409
+ </user>
410
+ </status>
411
+ </statuses>
@@ -0,0 +1,165 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/atom10full.xsl" type="text/xsl" media="screen"?><?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/itemcontent.css" type="text/css" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">
3
+ <title>Paul Dix Explains Nothing</title>
4
+
5
+ <link rel="alternate" type="text/html" href="http://www.pauldix.net/" />
6
+ <id>tag:typepad.com,2003:weblog-108605</id>
7
+ <updated>2008-09-04T16:07:19-04:00</updated>
8
+ <subtitle>Entrepreneurship, programming, software development, politics, NYC, and random thoughts.</subtitle>
9
+ <generator uri="http://www.typepad.com/">TypePad</generator>
10
+ <link rel="self" href="http://feeds.feedburner.com/PaulDixExplainsNothing" type="application/atom+xml" /><entry>
11
+ <title>Marshal data too short error with ActiveRecord</title>
12
+ <link rel="alternate" type="text/html" href="http://feeds.feedburner.com/~r/PaulDixExplainsNothing/~3/383536354/marshal-data-to.html?param1=1&amp;param2=2" />
13
+ <link rel="replies" type="text/html" href="http://www.pauldix.net/2008/09/marshal-data-to.html" thr:count="2" thr:updated="2008-11-17T14:40:06-05:00" />
14
+ <id>tag:typepad.com,2003:post-55147740</id>
15
+ <published>2008-09-04T16:07:19-04:00</published>
16
+ <updated>2008-11-17T14:40:06-05:00</updated>
17
+ <summary>In my previous post about the speed of serializing data, I concluded that Marshal was the quickest way to get things done. So I set about using Marshal to store some data in an ActiveRecord object. Things worked great at...</summary>
18
+ <author>
19
+ <name>Paul Dix</name>
20
+ </author>
21
+ <category scheme="http://www.sixapart.com/ns/types#category" term="Tahiti" />
22
+
23
+
24
+ <content type="html" xml:lang="en-US" xml:base="http://www.pauldix.net/">
25
+ &lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;p&gt;In my previous &lt;a href="http://www.pauldix.net/2008/08/serializing-dat.html"&gt;post about the speed of serializing data&lt;/a&gt;, I concluded that Marshal was the quickest way to get things done. So I set about using Marshal to store some data in an ActiveRecord object. Things worked great at first, but on some test data I got this error: marshal data too short. Luckily, &lt;a href="http://www.brynary.com/"&gt;Bryan Helmkamp&lt;/a&gt; had helpfully pointed out that there were sometimes problems with storing marshaled data in the database. He said it was best to base64 encode the marshal dump before storing.&lt;/p&gt;
26
+
27
+ &lt;p&gt;I was curious why it was working on some things and not others. It turns out that some types of data being marshaled were causing the error to pop up. Here's the test data I used in my specs:&lt;/p&gt;
28
+ &lt;pre&gt;{ :foo =&amp;gt; 3, :bar =&amp;gt; 2 } # hash with symbols for keys and integer values&lt;br /&gt;[3, 2.1, 4, 8]&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; # array with integer and float values&lt;/pre&gt;
29
+ &lt;p&gt;Everything worked when I switched the array values to all integers so it seems that floats were causing the problem. However, in the interest of keeping everything working regardless of data types, I base64 encoded before going into the database and decoded on the way out.&lt;/p&gt;
30
+
31
+ &lt;p&gt;I also ran the benchmarks again to determine what impact this would have on speed. Here are the results for 100 iterations on a 10k element array and a 10k element hash with and without base64 encode/decode:&lt;/p&gt;
32
+ &lt;pre&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; user&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; system&amp;nbsp; &amp;nbsp;&amp;nbsp; total&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; real&lt;br /&gt;array marshal&amp;nbsp; 0.200000&amp;nbsp; &amp;nbsp;0.010000&amp;nbsp; &amp;nbsp;0.210000 (&amp;nbsp; 0.214018) (without Base64)&lt;br /&gt;array marshal&amp;nbsp; 0.220000&amp;nbsp; &amp;nbsp;0.010000&amp;nbsp; &amp;nbsp;0.230000 (&amp;nbsp; 0.250260)&lt;br /&gt;&lt;br /&gt;hash marshal&amp;nbsp; &amp;nbsp;1.830000&amp;nbsp; &amp;nbsp;0.040000&amp;nbsp; &amp;nbsp;1.870000 (&amp;nbsp; 1.892874) (without Base64)&lt;br /&gt;hash marshal&amp;nbsp; &amp;nbsp;2.040000&amp;nbsp; &amp;nbsp;0.100000&amp;nbsp; &amp;nbsp;2.140000 (&amp;nbsp; 2.170405)&lt;/pre&gt;
33
+ &lt;p&gt;As you can see the difference in speed is pretty negligible. I assume that the error has to do with AR cleaning the stuff that gets inserted into the database, but I'm not really sure. In the end it's just easier to use Base64.encode64 when serializing data into a text field in ActiveRecord using Marshal.&lt;/p&gt;
34
+
35
+ &lt;p&gt;I've also read people posting about this error when using the database session store. I can only assume that it's because they were trying to store either way too much data in their session (too much for a regular text field) or they were storing float values or some other data type that would cause this to pop up. Hopefully this helps.&lt;/p&gt;&lt;/div&gt;
36
+ &lt;div class="feedflare"&gt;
37
+ &lt;a href="http://feeds.feedburner.com/~f/PaulDixExplainsNothing?a=rWfWO"&gt;&lt;img src="http://feeds.feedburner.com/~f/PaulDixExplainsNothing?i=rWfWO" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/PaulDixExplainsNothing?a=RaCqo"&gt;&lt;img src="http://feeds.feedburner.com/~f/PaulDixExplainsNothing?i=RaCqo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/PaulDixExplainsNothing?a=1CBLo"&gt;&lt;img src="http://feeds.feedburner.com/~f/PaulDixExplainsNothing?i=1CBLo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
38
+ &lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/PaulDixExplainsNothing/~4/383536354" height="1" width="1"/&gt;</content>
39
+
40
+
41
+ <feedburner:origLink>http://www.pauldix.net/2008/09/marshal-data-to.html?param1=1&amp;param2=2</feedburner:origLink></entry>
42
+ <entry>
43
+ <title>Serializing data speed comparison: Marshal vs. JSON vs. Eval vs. YAML</title>
44
+ <link rel="alternate" type="text/html" href="http://feeds.feedburner.com/~r/PaulDixExplainsNothing/~3/376401099/serializing-dat.html" />
45
+ <link rel="replies" type="text/html" href="http://www.pauldix.net/2008/08/serializing-dat.html" thr:count="5" thr:updated="2008-10-14T01:26:31-04:00" />
46
+ <id>tag:typepad.com,2003:post-54766774</id>
47
+ <published>2008-08-27T14:31:41-04:00</published>
48
+ <updated>2008-10-14T01:26:31-04:00</updated>
49
+ <summary>Last night at the NYC Ruby hackfest, I got into a discussion about serializing data. Brian mentioned the Marshal library to me, which for some reason had completely escaped my attention until last night. He said it was wicked fast...</summary>
50
+ <author>
51
+ <name>Paul Dix</name>
52
+ </author>
53
+ <category scheme="http://www.sixapart.com/ns/types#category" term="Tahiti" />
54
+
55
+
56
+ <content type="html" xml:lang="en-US" xml:base="http://www.pauldix.net/">
57
+ &lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;p&gt;Last night at the &lt;a href="http://nycruby.org"&gt;NYC Ruby hackfest&lt;/a&gt;, I got into a discussion about serializing data. Brian mentioned the Marshal library to me, which for some reason had completely escaped my attention until last night. He said it was wicked fast so we decided to run a quick benchmark comparison.&lt;/p&gt;
58
+ &lt;p&gt;The test data is designed to roughly approximate what my &lt;a href="http://www.pauldix.net/2008/08/storing-many-cl.html"&gt;stored classifier data&lt;/a&gt; will look like. The different methods we decided to benchmark were Marshal, json, eval, and yaml. With each one we took the in-memory object and serialized it and then read it back in. With eval we had to convert the object to ruby code to serialize it then run eval against that. Here are the results for 100 iterations on a 10k element array and a hash with 10k key/value pairs run on my Macbook Pro 2.4 GHz Core 2 Duo:&lt;/p&gt;
59
+ &lt;pre&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; user&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;system&amp;nbsp; &amp;nbsp;&amp;nbsp; total&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; real&lt;br /&gt;array marshal&amp;nbsp; 0.210000&amp;nbsp; &amp;nbsp;0.010000&amp;nbsp; &amp;nbsp;0.220000 (&amp;nbsp; 0.220701)&lt;br /&gt;array json&amp;nbsp; &amp;nbsp;&amp;nbsp; 2.180000&amp;nbsp; &amp;nbsp;0.050000&amp;nbsp; &amp;nbsp;2.230000 (&amp;nbsp; 2.288489)&lt;br /&gt;array eval&amp;nbsp; &amp;nbsp;&amp;nbsp; 2.090000&amp;nbsp; &amp;nbsp;0.060000&amp;nbsp; &amp;nbsp;2.150000 (&amp;nbsp; 2.240443)&lt;br /&gt;array yaml&amp;nbsp; &amp;nbsp; 26.650000&amp;nbsp; &amp;nbsp;0.350000&amp;nbsp; 27.000000 ( 27.810609)&lt;br /&gt;&lt;br /&gt;hash marshal&amp;nbsp; &amp;nbsp;2.000000&amp;nbsp; &amp;nbsp;0.050000&amp;nbsp; &amp;nbsp;2.050000 (&amp;nbsp; 2.114950)&lt;br /&gt;hash json&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;3.700000&amp;nbsp; &amp;nbsp;0.060000&amp;nbsp; &amp;nbsp;3.760000 (&amp;nbsp; 3.881716)&lt;br /&gt;hash eval&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;5.370000&amp;nbsp; &amp;nbsp;0.140000&amp;nbsp; &amp;nbsp;5.510000 (&amp;nbsp; 6.117947)&lt;br /&gt;hash yaml&amp;nbsp; &amp;nbsp;&amp;nbsp; 68.220000&amp;nbsp; &amp;nbsp;0.870000&amp;nbsp; 69.090000 ( 72.370784)&lt;/pre&gt;
60
+ &lt;p&gt;The order in which I tested them is pretty much the order in which they ranked for speed. Marshal was amazingly fast. JSON and eval came out roughly equal on the array with eval trailing quite a bit for the hash. Yaml was just slow as all hell. A note on the json: I used the 1.1.3 library which uses c to parse. I assume it would be quite a bit slower if I used the pure ruby implementation. Here's &lt;a href="http://gist.github.com/7549"&gt;a gist of the benchmark code&lt;/a&gt; if you're curious and want to run it yourself.&lt;/p&gt;
61
+
62
+
63
+
64
+ &lt;p&gt;If you're serializing user data, be super careful about using eval. It's probably best to avoid it completely. Finally, just for fun I took yaml out (it was too slow) and ran the benchmark again with 1k iterations:&lt;/p&gt;
65
+ &lt;pre&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; user&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;system&amp;nbsp; &amp;nbsp;&amp;nbsp; total&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; real&lt;br /&gt;array marshal&amp;nbsp; 2.080000&amp;nbsp; &amp;nbsp;0.110000&amp;nbsp; &amp;nbsp;2.190000 (&amp;nbsp; 2.242235)&lt;br /&gt;array json&amp;nbsp; &amp;nbsp; 21.860000&amp;nbsp; &amp;nbsp;0.500000&amp;nbsp; 22.360000 ( 23.052403)&lt;br /&gt;array eval&amp;nbsp; &amp;nbsp; 20.730000&amp;nbsp; &amp;nbsp;0.570000&amp;nbsp; 21.300000 ( 21.992454)&lt;br /&gt;&lt;br /&gt;hash marshal&amp;nbsp; 19.510000&amp;nbsp; &amp;nbsp;0.500000&amp;nbsp; 20.010000 ( 20.794111)&lt;br /&gt;hash json&amp;nbsp; &amp;nbsp;&amp;nbsp; 39.770000&amp;nbsp; &amp;nbsp;0.670000&amp;nbsp; 40.440000 ( 41.689297)&lt;br /&gt;hash eval&amp;nbsp; &amp;nbsp;&amp;nbsp; 51.410000&amp;nbsp; &amp;nbsp;1.290000&amp;nbsp; 52.700000 ( 54.155711)&lt;/pre&gt;&lt;/div&gt;
66
+ &lt;div class="feedflare"&gt;
67
+ &lt;a href="http://feeds.feedburner.com/~f/PaulDixExplainsNothing?a=zombO"&gt;&lt;img src="http://feeds.feedburner.com/~f/PaulDixExplainsNothing?i=zombO" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/PaulDixExplainsNothing?a=T3kqo"&gt;&lt;img src="http://feeds.feedburner.com/~f/PaulDixExplainsNothing?i=T3kqo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/PaulDixExplainsNothing?a=aI6Oo"&gt;&lt;img src="http://feeds.feedburner.com/~f/PaulDixExplainsNothing?i=aI6Oo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
68
+ &lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/PaulDixExplainsNothing/~4/376401099" height="1" width="1"/&gt;</content>
69
+
70
+
71
+ <feedburner:origLink>http://www.pauldix.net/2008/08/serializing-dat.html</feedburner:origLink></entry>
72
+ <entry>
73
+ <title>Gotcha with cache_fu and permalinks</title>
74
+ <link rel="alternate" type="text/html" href="http://feeds.feedburner.com/~r/PaulDixExplainsNothing/~3/369250462/gotcha-with-cac.html" />
75
+ <link rel="replies" type="text/html" href="http://www.pauldix.net/2008/08/gotcha-with-cac.html" thr:count="2" thr:updated="2008-11-20T13:58:38-05:00" />
76
+ <id>tag:typepad.com,2003:post-54411628</id>
77
+ <published>2008-08-19T14:26:24-04:00</published>
78
+ <updated>2008-11-20T13:58:38-05:00</updated>
79
+ <summary>This is an issue I had recently in a project with cache_fu. Models that I found and cached based on permalinks weren't expiring the cache correctly when getting updated. Here's an example scenario. Say you have a blog with posts....</summary>
80
+ <author>
81
+ <name>Paul Dix</name>
82
+ </author>
83
+ <category scheme="http://www.sixapart.com/ns/types#category" term="Ruby on Rails" />
84
+
85
+
86
+ <content type="html" xml:lang="en-US" xml:base="http://www.pauldix.net/">
87
+ &lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;p&gt;This is an issue I had recently in a project with &lt;a href="http://errtheblog.com/posts/57-kickin-ass-w-cachefu"&gt;cache_fu&lt;/a&gt;. Models that I found and cached based on permalinks weren't expiring the cache correctly when getting updated. Here's an example scenario.&lt;/p&gt;
88
+
89
+ &lt;p&gt;Say you have a blog with posts. However, instead of using a url like http://paulscoolblog.com/posts/23 you want something that's more search engine friendly and readable for the user. So you use a permalink (maybe using the &lt;a href="http://github.com/github/permalink_fu/tree/master"&gt;permalink_fu plugin&lt;/a&gt;) that's auto-generated based on the title of the post. This post would have a url that looks something like http://paulscoolblog.com/posts/gotcha-with-cache_fu-and-permalinks.&lt;/p&gt;
90
+
91
+ &lt;p&gt;In your controller's show method you'd probably find the post like this:&lt;/p&gt;
92
+ &lt;pre&gt;@post = Post.find_by_permalink(params[:permalink])&lt;/pre&gt;
93
+ &lt;p&gt;However, you'd want to do the caching thing so you'd actually do this:&lt;/p&gt;
94
+ &lt;pre&gt;@post = Post.cached(:find_by_permalink, :with =&amp;gt; params[:permalink])&lt;/pre&gt;
95
+ &lt;p&gt;The problem that I ran into, which is probably obvious to anyone familiar with cache_fu, was that when updating the post, it wouldn't expire the cache. That part of the post model looks like this:&lt;/p&gt;
96
+ &lt;pre&gt;class Post &amp;lt; ActiveRecord::Base&lt;br /&gt;&amp;nbsp; before_save :expire_cache&lt;br /&gt;&amp;nbsp; ...&lt;br /&gt;end&lt;/pre&gt;
97
+ &lt;p&gt;Do you see it? The issue is that when expire_cache gets called on the object, it expires the key &lt;strong&gt;Post:23&lt;/strong&gt; from the cache (assuming 23 was the id of the post). However, when the post was cached using the cached(:find_by_permalink ...) method, it put the post object into the cache with a key of &lt;strong&gt;Post:find_by_permalink:gotcha-with-cache_fu-and-permalinks&lt;/strong&gt;.&lt;/p&gt;
98
+ &lt;p&gt;Luckily, it's a fairly simple fix. If you have a model that is commonly accessed through permalinks, just write your own cache expiry method that looks for both keys and expires them.&lt;/p&gt;&lt;/div&gt;
99
+ &lt;div class="feedflare"&gt;
100
+ &lt;a href="http://feeds.feedburner.com/~f/PaulDixExplainsNothing?a=V1ojO"&gt;&lt;img src="http://feeds.feedburner.com/~f/PaulDixExplainsNothing?i=V1ojO" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/PaulDixExplainsNothing?a=eu6Zo"&gt;&lt;img src="http://feeds.feedburner.com/~f/PaulDixExplainsNothing?i=eu6Zo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/PaulDixExplainsNothing?a=ddUho"&gt;&lt;img src="http://feeds.feedburner.com/~f/PaulDixExplainsNothing?i=ddUho" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
101
+ &lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/PaulDixExplainsNothing/~4/369250462" height="1" width="1"/&gt;</content>
102
+
103
+
104
+ <feedburner:origLink>http://www.pauldix.net/2008/08/gotcha-with-cac.html</feedburner:origLink></entry>
105
+ <entry>
106
+ <title>Non-greedy mode in regex</title>
107
+ <link rel="alternate" type="text/html" href="http://feeds.feedburner.com/~r/PaulDixExplainsNothing/~3/365673983/non-greedy-mode.html" />
108
+ <link rel="replies" type="text/html" href="http://www.pauldix.net/2008/08/non-greedy-mode.html" thr:count="0" />
109
+ <id>tag:typepad.com,2003:post-54227244</id>
110
+ <published>2008-08-15T09:32:11-04:00</published>
111
+ <updated>2008-08-27T09:33:15-04:00</updated>
112
+ <summary>I was writing a regular expression yesterday and this popped up. It's just a quick note about greedy vs. non-greedy mode in regular expression matching. Say I have a regular expression that looks something like this: /(\[.*\])/ In English that...</summary>
113
+ <author>
114
+ <name>Paul Dix</name>
115
+ </author>
116
+ <category scheme="http://www.sixapart.com/ns/types#category" term="Ruby" />
117
+
118
+
119
+ <content type="html" xml:lang="en-US" xml:base="http://www.pauldix.net/">&lt;p&gt;I was writing a regular expression yesterday and this popped up. It's just a quick note about greedy vs. non-greedy mode in regular expression matching. Say I have a regular expression that looks something like this:&lt;/p&gt;&#xD;
120
+ &lt;pre&gt;/(\[.*\])/&lt;/pre&gt;&#xD;
121
+ &lt;p&gt;In English that says something roughly like: find an opening bracket [ with 0 or more of any character followed by a closing bracket. The backslashes are to escape the brackets and the parenthesis specify grouping so we can later access that matched text.&lt;/p&gt;&#xD;
122
+ &#xD;
123
+ &lt;p&gt;The greedy mode comes up with the 0 or more characters part of the match (the .* part of the expression). The default mode of greedy means that the parser will gobble up as many characters as it can and match the very last closing bracket. So if you have text like this:&lt;/p&gt;&#xD;
124
+ &#xD;
125
+ &lt;pre&gt;a = [:foo, :bar]&lt;br&gt;b = [:hello, :world]&lt;/pre&gt;&#xD;
126
+ &lt;p&gt;The resulting grouped match would be this:&lt;/p&gt;&#xD;
127
+ &lt;pre&gt;[:foo, :bar]&lt;br&gt;b = [:hello, :world]&lt;/pre&gt;&#xD;
128
+ &lt;p&gt;If you just wanted the [:foo, :bar] part, the solution is to parse in non-greedy mode. This means that it will match on the first closing bracket it sees. The modified regular expression looks like this:&lt;/p&gt;&#xD;
129
+ &lt;pre&gt;/(\[.*?\])/&lt;/pre&gt;&#xD;
130
+ &lt;p&gt;I love the regular expression engine in Ruby. It's one of the best things it ripped off from Perl. The one thing I don't like is the magic global variable that it places matched groups into. You can access that first match through the $1 variable. If you're unfamiliar with regular expressions, a good place to start is the &lt;a href="http://www.amazon.com/Programming-Perl-3rd-Larry-Wall/dp/0596000278/ref=pd_bbs_sr_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1218806755&amp;amp;sr=8-1"&gt;Camel book&lt;/a&gt;. It's about Perl, but the way they work is very similar. I actually haven't seen good coverage of regexes in a Ruby book.&lt;/p&gt;&lt;div class="feedflare"&gt;
131
+ &lt;a href="http://feeds.feedburner.com/~f/PaulDixExplainsNothing?a=OkVmO"&gt;&lt;img src="http://feeds.feedburner.com/~f/PaulDixExplainsNothing?i=OkVmO" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/PaulDixExplainsNothing?a=iRpWo"&gt;&lt;img src="http://feeds.feedburner.com/~f/PaulDixExplainsNothing?i=iRpWo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/PaulDixExplainsNothing?a=pjRCo"&gt;&lt;img src="http://feeds.feedburner.com/~f/PaulDixExplainsNothing?i=pjRCo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
132
+ &lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/PaulDixExplainsNothing/~4/365673983" height="1" width="1"/&gt;</content>
133
+
134
+
135
+ <feedburner:origLink>http://www.pauldix.net/2008/08/non-greedy-mode.html</feedburner:origLink></entry>
136
+ <entry>
137
+ <title>Storing many classification models</title>
138
+ <link rel="alternate" type="text/html" href="http://feeds.feedburner.com/~r/PaulDixExplainsNothing/~3/358530158/storing-many-cl.html" />
139
+ <link rel="replies" type="text/html" href="http://www.pauldix.net/2008/08/storing-many-cl.html" thr:count="3" thr:updated="2008-08-08T11:40:28-04:00" />
140
+ <id>tag:typepad.com,2003:post-53888232</id>
141
+ <published>2008-08-07T12:01:38-04:00</published>
142
+ <updated>2008-08-27T16:58:18-04:00</updated>
143
+ <summary>One of the things I need to do in Filterly is keep many trained classifiers. These are the machine learning models that determine if a blog post is on topic (Filterly separates information by topic). At the very least I...</summary>
144
+ <author>
145
+ <name>Paul Dix</name>
146
+ </author>
147
+ <category scheme="http://www.sixapart.com/ns/types#category" term="Tahiti" />
148
+
149
+
150
+ <content type="html" xml:lang="en-US" xml:base="http://www.pauldix.net/">&lt;p&gt;One of the things I need to do in &lt;a href="http://filterly.com/"&gt;Filterly&lt;/a&gt; is keep many trained &lt;a href="http://en.wikipedia.org/wiki/Statistical_classification"&gt;classifiers&lt;/a&gt;. These are the machine learning models that determine if a blog post is on topic (Filterly separates information by topic). At the very least I need one per topic in the system. If I want to do something like &lt;a href="http://en.wikipedia.org/wiki/Boosting"&gt;boosting&lt;/a&gt; then I need even more. The issue I'm wrestling with is how to store this data. I'll outline a specific approach and what the storage needs are.&lt;/p&gt;&#xD;
151
+ &#xD;
152
+ &lt;p&gt;Let's say I go with boosting and 10 &lt;a href="http://en.wikipedia.org/wiki/Perceptron"&gt;perceptrons&lt;/a&gt;. I'll also limit my feature space to the 10,000 most statistically significant features. So the storage for each perceptron is a 10k element array. However, I'll also have to keep another data structure to store what the 10k features are and their position in the array. In code I use a hash for this where the feature name is the key and the value is its position. I just need to store one of these hashes per topic.&lt;/p&gt;&#xD;
153
+ &#xD;
154
+ &lt;p&gt;That's not really a huge amount of data. I'm more concerned about the best way to store it. I don't think this kind of thing maps well to a relational database. I don't need to store the features individually. Generally when I'm running the thing I'll want the whole perceptron and feature set in memory for quick access. For now I'm just using a big text field and serializing each using JSON.&lt;/p&gt;&#xD;
155
+ &#xD;
156
+ &lt;p&gt;I don't really like this approach. The whole serializing into the database seems really inelegant. Combined with the time that it takes to parse these things. Each time I want to see if a new post is on topic I'd need to load up the classifier and parse the 10 10k arrays and the 10k key hash. I could keep each classifier running as a service, but then I've got a pretty heavy process running for each topic.&lt;/p&gt;&#xD;
157
+ &#xD;
158
+ &lt;p&gt;I guess I'll just use the stupid easy solution for the time being and worry about performance later. Anyone have thoughts on the best approach?&lt;/p&gt;&lt;div class="feedflare"&gt;
159
+ &lt;a href="http://feeds.feedburner.com/~f/PaulDixExplainsNothing?a=DUT8O"&gt;&lt;img src="http://feeds.feedburner.com/~f/PaulDixExplainsNothing?i=DUT8O" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/PaulDixExplainsNothing?a=ZGjFo"&gt;&lt;img src="http://feeds.feedburner.com/~f/PaulDixExplainsNothing?i=ZGjFo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/PaulDixExplainsNothing?a=pH3Vo"&gt;&lt;img src="http://feeds.feedburner.com/~f/PaulDixExplainsNothing?i=pH3Vo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
160
+ &lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/PaulDixExplainsNothing/~4/358530158" height="1" width="1"/&gt;</content>
161
+
162
+
163
+ <feedburner:origLink>http://www.pauldix.net/2008/08/storing-many-cl.html</feedburner:origLink></entry>
164
+
165
+ </feed>