Sunday, March 1, 2009

Statistically Improbable Phrases within a CMS

Look at http://sip.s-anand.net/ for reference on what a Statistically Improbable Phrase is, and it has an immediate and fun way to play with the concept.

Here is my idea for a kind of Content Management System, with companies that make standardized widgets as the best use scenario.

The company's product names, model numbers, prices, and other specifics are recorded as the text corpus. In all data entry, even email composing, the live typing is compared to the corpus. A tag cloud with oddest words shown in high contrast is ever present in a box near the data entry.

Corpora could have various granularities. Speaking in extremes of large and small, a corpus of all (or almost all) company online dialogue is a large example, and a corpus of model names/numbers/prices could be a tiny corpus example.

I am not talking about Natural Language processing, although that could be more complex implementation of this role. I'm thinking more of a spellchecker data entry police that plugs all corporate dialogue into itself to show anomalous input. The easiest example is with a model number 5100AGT, I am writing an email and type 51000AGT, it shows up as anomalous.

The interesting place all this goes is A.I.-ish. The machine sees when the company is staying within behavioral bounds, and when the company is deviating from a norm. Example: the company normally does business in the midwest region around Chicago. Flights and hotels are regularly booked in Lansing, Minneapolis, and Milwaukee. The first trip by sales staff to Los Angeles stands out as a deviance from the norm, and in human terms can be expressed as gains in market territory. Funny: note that A.I. should only check sales trips with sales trips. The legal team suddenly traveling outside the normal sphere is not a sign of increased markets, but a sign of possible larger legal problems.

This is not to deprecate the humble and effective selection menu. Very narrow data entry tasks are fully served by these menus. This SIP idea is more for the open end of company dialogue, where language is a little more natural but still redundant.

I may be showing my ignorance more than my brilliance in this post. Google has long had the Google Search Appliance (GSA). A really smart company would have already cobbled together a CMS hack on top of the GSA service.

Javascript Regex Reference

http://www.evolt.org/article/Regular_Expressions_in_JavaScript/17/36435/

Saturday, February 28, 2009

Jitter Explained

(click on graphic to see full size)

Wednesday, January 7, 2009

Amazing Windows GUI Emulation

Warning: this site almost surely has evil virus things for Windows computers. Took the screenshot for record. They did an amazing job making it look like a real Windows environment.

Tuesday, December 9, 2008

Using OO Javascript to create DOM elements and CSS Style

A lot of javascript tricks use CSS classes to toggle graphic properties, such as .mygoldbackground { ... } .mygreenbackground {...} and the js resets the classname of the HTML element. This is fine for most scenarios.

I am writing games where the CSS is much more dynamic, and I was constantly having to edit the CSS to match up with the game board layout ( for early prototype example of my players and game boards, see: http://my-toolbox.appspot.com/javascript.js?queryvalue=critters%201.2&dbtab=show )

So I am going to 1) create all game DOM elements with js 2) set all game DOM CSS with js.

Here is the core toolset of code for doing that:

Thursday, October 23, 2008

Documenting behavior of the Google Cloud

This is a non-dynamic webpage documenting the database object insert timing for the Google Gdata object. I thought the randomness of insert completion of each node to be interesting and shows the "cloud" in action. Note the python code at the bottom of this page (here). The "nodes" were executed 1...64 in the python script, so it is easy to see where the cloud disengages from that linearity.

  1. Node:1 Insert time:2008-10-23 10:56:23.353281
  2. Node:3 Insert time:2008-10-23 10:56:23.413692
  3. Node:5 Insert time:2008-10-23 10:56:23.477040
  4. Node:7 Insert time:2008-10-23 10:56:23.534829
  5. Node:10 Insert time:2008-10-23 10:56:23.624858
  6. Node:11 Insert time:2008-10-23 10:56:23.667277
  7. Node:13 Insert time:2008-10-23 10:56:23.725053
  8. Node:2 Insert time:2008-10-23 10:56:23.382015
  9. Node:4 Insert time:2008-10-23 10:56:23.443903
  10. Node:6 Insert time:2008-10-23 10:56:23.507742
  11. Node:8 Insert time:2008-10-23 10:56:23.562350
  12. Node:9 Insert time:2008-10-23 10:56:23.593376
  13. Node:12 Insert time:2008-10-23 10:56:23.697803
  14. Node:14 Insert time:2008-10-23 10:56:23.755138
  15. Node:16 Insert time:2008-10-23 10:56:23.843447
  16. Node:18 Insert time:2008-10-23 10:56:23.907231
  17. Node:20 Insert time:2008-10-23 10:56:23.965684
  18. Node:22 Insert time:2008-10-23 10:56:24.037075
  19. Node:24 Insert time:2008-10-23 10:56:24.100084
  20. Node:26 Insert time:2008-10-23 10:56:24.176800
  21. Node:28 Insert time:2008-10-23 10:56:24.236621
  22. Node:30 Insert time:2008-10-23 10:56:24.297839
  23. Node:32 Insert time:2008-10-23 10:56:24.362423
  24. Node:34 Insert time:2008-10-23 10:56:24.422469
  25. Node:36 Insert time:2008-10-23 10:56:24.477692
  26. Node:38 Insert time:2008-10-23 10:56:24.532586
  27. Node:40 Insert time:2008-10-23 10:56:24.589649
  28. Node:42 Insert time:2008-10-23 10:56:24.651617
  29. Node:44 Insert time:2008-10-23 10:56:24.716515
  30. Node:46 Insert time:2008-10-23 10:56:24.780054
  31. Node:50 Insert time:2008-10-23 10:56:24.916035
  32. Node:52 Insert time:2008-10-23 10:56:24.974097
  33. Node:54 Insert time:2008-10-23 10:56:25.034449
  34. Node:56 Insert time:2008-10-23 10:56:25.092311
  35. Node:59 Insert time:2008-10-23 10:56:25.192227
  36. Node:61 Insert time:2008-10-23 10:56:25.258557
  37. Node:63 Insert time:2008-10-23 10:56:25.326543
  38. Node:15 Insert time:2008-10-23 10:56:23.785200
  39. Node:17 Insert time:2008-10-23 10:56:23.875937
  40. Node:19 Insert time:2008-10-23 10:56:23.934721
  41. Node:21 Insert time:2008-10-23 10:56:24.003711
  42. Node:23 Insert time:2008-10-23 10:56:24.068636
  43. Node:25 Insert time:2008-10-23 10:56:24.131330
  44. Node:27 Insert time:2008-10-23 10:56:24.207301
  45. Node:29 Insert time:2008-10-23 10:56:24.268193
  46. Node:31 Insert time:2008-10-23 10:56:24.331993
  47. Node:33 Insert time:2008-10-23 10:56:24.394126
  48. Node:35 Insert time:2008-10-23 10:56:24.451277
  49. Node:37 Insert time:2008-10-23 10:56:24.504942
  50. Node:39 Insert time:2008-10-23 10:56:24.560311
  51. Node:41 Insert time:2008-10-23 10:56:24.621935
  52. Node:43 Insert time:2008-10-23 10:56:24.685583
  53. Node:45 Insert time:2008-10-23 10:56:24.752918
  54. Node:47 Insert time:2008-10-23 10:56:24.810532
  55. Node:48 Insert time:2008-10-23 10:56:24.851659
  56. Node:49 Insert time:2008-10-23 10:56:24.885912
  57. Node:51 Insert time:2008-10-23 10:56:24.945490
  58. Node:53 Insert time:2008-10-23 10:56:25.006673
  59. Node:55 Insert time:2008-10-23 10:56:25.062369
  60. Node:57 Insert time:2008-10-23 10:56:25.124670
  61. Node:58 Insert time:2008-10-23 10:56:25.157359
  62. Node:60 Insert time:2008-10-23 10:56:25.225718
  63. Node:62 Insert time:2008-10-23 10:56:25.293517
  64. Node:64 Insert time:2008-10-23 10:56:25.360900
The insert db code: