<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-5853799602784156923</id><updated>2011-07-08T03:20:50.907-07:00</updated><title type='text'>Keller Apps' Blog</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://kellerappsinc.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5853799602784156923/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://kellerappsinc.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Keller Apps</name><uri>http://www.blogger.com/profile/11160128216002881316</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>4</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5853799602784156923.post-2020145430426431520</id><published>2010-03-18T10:26:00.000-07:00</published><updated>2010-03-18T10:47:45.341-07:00</updated><title type='text'>appengine features</title><content type='html'>Currently an appengine entity is a bigtable/datastore row containing the serialized entity encoded by google's protocol buffers. Every property is indexed whether or not it will ever be queried. An entity reference is inter-row which means entities are heavyweight.&lt;br /&gt;&lt;br /&gt;Existing options for representing a Contact:&lt;br /&gt;1a) Contact entity w/ ListProperty's: addresses, emails, etc.&lt;br /&gt;1b) Contact entity w/ address1, address2, address3, email1, email2, email3, etc. properties.&lt;br /&gt;2a) Contact entity w/ addresses property listing keys of Address entities. This is a workaround because lists of ReferenceProperty is unsupported.&lt;br /&gt;&lt;br /&gt;I think it would be useful to have lightweight entities which can be embedded in the classic entities. This would enable more options for Contact:&lt;br /&gt;2b) Contact entity w/ addresses property listing NestedReferenceProperty referencing Address nested entities.&lt;br /&gt;2c) Contact entity containing Address nested entities--query by ancestor.&lt;br /&gt;&lt;br /&gt;Protocol buffers support nesting &amp;amp; repeating but not arbitrary graphs. Therefore, an implementation based on protocol buffers would restrict expressiveness or face that challenge.&lt;br /&gt;&lt;br /&gt;Possible API additions:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;constructor: new Model(nest=parent)&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;property type: NestedReferenceProperty; supported in lists.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;custom index support.&lt;/li&gt;&lt;/ul&gt;It would speed entity update &amp;amp; reduce space if properties could be excluded from indexing.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5853799602784156923-2020145430426431520?l=kellerappsinc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kellerappsinc.blogspot.com/feeds/2020145430426431520/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kellerappsinc.blogspot.com/2010/03/appengine-features.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5853799602784156923/posts/default/2020145430426431520'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5853799602784156923/posts/default/2020145430426431520'/><link rel='alternate' type='text/html' href='http://kellerappsinc.blogspot.com/2010/03/appengine-features.html' title='appengine features'/><author><name>Keller Apps</name><uri>http://www.blogger.com/profile/11160128216002881316</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5853799602784156923.post-1771381955369137432</id><published>2010-03-18T10:16:00.000-07:00</published><updated>2010-03-18T11:32:43.280-07:00</updated><title type='text'>entity extraction &amp; NLP APIs</title><content type='html'>&lt;span&gt;&lt;span&gt;A wikipedia &lt;a href="http://en.wikipedia.org/wiki/Named_entity_recognition"&gt;article &lt;/a&gt;on entity extraction. A useful &lt;a href="http://faganm.com/blog/2010/01/02/1009/"&gt;survey &lt;/a&gt;of actual use of APIs.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://opencalais.com/"&gt;opencalais &lt;/a&gt;is from Reuters.&lt;br /&gt;$2,000 / (100K queries * 30days) = .066 cents per query&lt;br /&gt;One must prepay $24K for the year. The daily cap is 100K queries &amp;amp; 20/sec.&lt;br /&gt;Tried the firefox &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/3999"&gt;addon&lt;/a&gt;. For the ag2.0 agenda, nba.yahoo.com, &amp;amp; IGN.com, the results are poor.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://gate.ac.uk/"&gt;gate &lt;/a&gt;is from U of Sheffield. It is more focused on NLP or language engineering.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5853799602784156923-1771381955369137432?l=kellerappsinc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kellerappsinc.blogspot.com/feeds/1771381955369137432/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kellerappsinc.blogspot.com/2010/03/entity-extraction-nlp-apis.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5853799602784156923/posts/default/1771381955369137432'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5853799602784156923/posts/default/1771381955369137432'/><link rel='alternate' type='text/html' href='http://kellerappsinc.blogspot.com/2010/03/entity-extraction-nlp-apis.html' title='entity extraction &amp; NLP APIs'/><author><name>Keller Apps</name><uri>http://www.blogger.com/profile/11160128216002881316</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5853799602784156923.post-1912050943574181180</id><published>2010-02-16T20:58:00.000-08:00</published><updated>2010-02-16T21:00:17.729-08:00</updated><title type='text'>usability testing tool</title><content type='html'>&lt;a href="http://www.loop11.com/home/"&gt;http://www.loop11.com/home/&lt;/a&gt;&lt;br /&gt;looks useful based on the demo. Sometimes product managers &amp;amp; interaction designers cling too strongly to their ideas. A tool like this could help bring objectivity to the change order process.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5853799602784156923-1912050943574181180?l=kellerappsinc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kellerappsinc.blogspot.com/feeds/1912050943574181180/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kellerappsinc.blogspot.com/2010/02/usability-testing-tool.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5853799602784156923/posts/default/1912050943574181180'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5853799602784156923/posts/default/1912050943574181180'/><link rel='alternate' type='text/html' href='http://kellerappsinc.blogspot.com/2010/02/usability-testing-tool.html' title='usability testing tool'/><author><name>Keller Apps</name><uri>http://www.blogger.com/profile/11160128216002881316</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5853799602784156923.post-4633181211904676289</id><published>2010-02-07T13:54:00.000-08:00</published><updated>2010-02-09T09:06:45.141-08:00</updated><title type='text'>billing systems in the cloud</title><content type='html'>We've been surveying billing systems in the cloud. Due to limited time, we're restricting our study to &lt;a href="http://www.ariasystems.com/"&gt;aria&lt;/a&gt;, &lt;a href="http://www.monexa.com/"&gt;monexa&lt;/a&gt;, &lt;a href="http://www.chargify.com/"&gt;chargify&lt;/a&gt;, &amp;amp; &lt;a href="http://www.recurly.com/"&gt;recurly&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;cost&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;#customers: chargify, recurly. Both cap at ~$30K/yr after one reaches ~15K customers. Equivalent to $30K / 2% = $1.5M in revenue at a 2% split.&lt;/li&gt;&lt;li&gt;%revenue: recurly (3-2%), aria (2%), monexa (1.9%). aria charges a setup fee &amp;amp; monthly minimum.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;In other words, chargify charges #customers, aria &amp;amp; monexa charge %revenue, &amp;amp; recurly offers choice.&lt;/p&gt;&lt;p&gt;Features they all offer:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;dunning&lt;/li&gt;&lt;li&gt;PCI compliant payment &amp;amp; self-service pages (recurly: alpha; chargify: designing; monexa: prefers not to host but provides php app)&lt;/li&gt;&lt;li&gt;account management portal including revenue &amp;amp; volume reports&lt;/li&gt;&lt;li&gt;API including notification for real-time sync (chargify: json &amp;amp; xml, recurly: xml, aria: soap &amp;amp; xml/wddx)&lt;/li&gt;&lt;li&gt;recurring billing&lt;/li&gt;&lt;li&gt;ad hoc billing (chargify: 2wks)&lt;/li&gt;&lt;li&gt;usage-based billing (recurly/chargify: soon)&lt;/li&gt;&lt;li&gt;salesforce.com sync (monexa: soon, aria: now, chargify: long term, recurly: unknown)&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;aria/monexa require their professional services to configure while recurly/chargify is self-service.&lt;/p&gt;&lt;p&gt;Features which aria/monexa offer but chargify/recurly lack:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;localization of UI&lt;/li&gt;&lt;li&gt;quickbooks sync&lt;/li&gt;&lt;li&gt;netsuite sync&lt;/li&gt;&lt;li&gt;reseller support (monexa doesn't pay splits--need to check on aria)&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;chargify is working on the following:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;multiple gateways: &lt;a style="COLOR: rgb(0,0,204)" href="http://authorize.net/" target="_blank"&gt;authorize.net&lt;/a&gt; only&lt;/li&gt;&lt;li&gt;&lt;a href="http://chargify.com/blog/adding-payment-gateways-while-maintaining-data-security/"&gt;gateway-independent &lt;/a&gt;cardholder profiles (beta uses &lt;a style="COLOR: rgb(0,0,204)" href="http://authorize.net/" target="_blank"&gt;authorize.net&lt;/a&gt; profiles)&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;but lacks:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;foreign currency&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Features none of the vendors have:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;historical event feed to overlay on charts&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5853799602784156923-4633181211904676289?l=kellerappsinc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kellerappsinc.blogspot.com/feeds/4633181211904676289/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kellerappsinc.blogspot.com/2010/02/billing-systems-in-cloud.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5853799602784156923/posts/default/4633181211904676289'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5853799602784156923/posts/default/4633181211904676289'/><link rel='alternate' type='text/html' href='http://kellerappsinc.blogspot.com/2010/02/billing-systems-in-cloud.html' title='billing systems in the cloud'/><author><name>Keller Apps</name><uri>http://www.blogger.com/profile/11160128216002881316</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
