Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Tabledown    2011 OSDC.TW@tcc / tcchou@tcchou.org
Tabledown?•           : Markdown• ( ) , Java , Python• google: tabledown
About me                C/C++SI   5+          Perl                 Java                  WebSW   5-         PythonSD   5+ ...
•••
•   -   Tabledown•   -•   -      ?
• DIY, DRY•           ...• OFBiz FLOSS! Apache!   ?
• FLOSS                      DATA FAIL!  •                     ,•                ,     UI UX FAIL!•       twill      HTTP ...
twillgo http://localhost:8080/ofbizsetup/control/mainfv 2 groupName    fv 2 USER_ADDRESS1      fv 2 USER_POSTAL_CODE 300fv...
•   :    ,    ,••       ...              UX FAIL!
•    ,•   ok•   orz
• :              ,• API:         /• DSL: Groovy Builder/Slurper• Tabledown: Collections Collections    Hash + List
tabledown                                               1{ _:[master,tasks],                      { uSheet1: { master: { b...
tabledown                  2from tabledown.tdxls import TDXlstdx = TDXls(conf)data = tdx.xls2dict(filename)tdx.dict2xls(da...
• REST, Web Service ... OFBiz•         ...          !   SOA FAIL!•      Web App     mechanize  (Python, Perl, Ruby ... PHP...
mechanize•    •                     WWW::Mechanize    •             /   (Ruby)    • 10yr, 5yr•    •    twill    •    Beaut...
mechanize  import mechanize  br = mechanize.Browser()  ...  # create project  dProject={workEffortName: mName, description...
mechanize                  +            BeatifulSoup             Tabledown Web/                            PythonServices ...
• OFBiz   (Timesheet) →      ♥•  •                       UX OK  •           (Task)  •  •  •
OFBiz
Td•    •               (       )    •       ?•       (               )•               /               ,                   ...
•                  ...   !•    •   ex: PM,    •   >>•         ,•                 ...    ?
•          SaaS,   PaaS           ,       IaaS   ?•   IaaS           /          /•   >        /            >           >
IaaS                   (   )•       IaaS•       >      /   >   >•   :•   :•   :
•    •     :            ,    •     :    •     :•      :      Socialtext   Socailcalc    Google Spreadsheet
•             ,    •   :         ,    •   :         (   ),      SFC• mechanize• UI                  FAIL?
FAILs• DATA FAIL:• UX FAIL:         ,• SOA FAIL:            Web App
•         ,           ,•                 ;       ??•♥   / ♥ $ £¥             ,
•   Tabledown http://code.google.com/p/tabledown/    •   OFBiz http://ofbiz.apache.org/    •   xlrd, xlwt http://www.pytho...
[ Tabledown ]      Twitter: tcc  tcchou@tcchou.org
OptionXML, JSON,YAML, S-
Option:                   1  !"#$    ()*    %&#$           +,                 -*!"./
Option:                                                                                                          2        ...
Upcoming SlideShare
Loading in …5
×

Tabledown

1,100 views

Published on

  • Be the first to comment

  • Be the first to like this

Tabledown

  1. 1. Tabledown 2011 OSDC.TW@tcc / tcchou@tcchou.org
  2. 2. Tabledown?• : Markdown• ( ) , Java , Python• google: tabledown
  3. 3. About me C/C++SI 5+ Perl Java WebSW 5- PythonSD 5+ Groovy Scala
  4. 4. •••
  5. 5. • - Tabledown• -• - ?
  6. 6. • DIY, DRY• ...• OFBiz FLOSS! Apache! ?
  7. 7. • FLOSS DATA FAIL! • ,• , UI UX FAIL!• twill HTTP ( ) • scotch HTTP *.pickle • translate-recording-to-twill *.twill
  8. 8. twillgo http://localhost:8080/ofbizsetup/control/mainfv 2 groupName fv 2 USER_ADDRESS1 fv 2 USER_POSTAL_CODE 300fv 2 USER_COUNTRY TWNfv 2 USER_CITY fv 2 USER_WORK_COUNTRY 886fv 2 partyId jiafv 2 USER_WORK_CONTACT 5153000fv 2 USER_WORK_AREA 3fv 2 USER_EMAIL jia@side.orgsubmit ( )
  9. 9. • : , ,•• ... UX FAIL!
  10. 10. • ,• ok• orz
  11. 11. • : ,• API: /• DSL: Groovy Builder/Slurper• Tabledown: Collections Collections Hash + List
  12. 12. tabledown 1{ _:[master,tasks], { uSheet1: { master: { billing: uyi, master:{ cust_pm: uyi, id:[A^1,u ID], desc: , name:[A^2,u ], exec_pm: ubing, desc:[A^3,u ], id: , billing:[A^4,u ], name: uPR001, cust_pm:[C^4,u PM], org: ujia, org:[A^5,u ], pg: uwu,ji,geng, exec_pm:[C^5,u PM], sa: uding}, sa:[E^5,u ], tasks: [ { desc: , pg:[G^5,u ], est_bgn: , }, est_end: , tasks:{ id: , *:{ name: uu8a55u4f30, id:[A1,uID], sno: u100, sno:[B1,u ], type: uP}, type:[C1,u ], { desc: , name:[D1,u ], est_bgn: u2011-3-26, desc:[E1,u ], est_end: u2011-3-26, est_bgn:[F1,u ], id: , est_end:[G1,u ], name: uu8166u529bu6fc0u76ea, res:[H1,u ], res: bing,ding,wu, }, sno: , }, type: uT},} ( )
  13. 13. tabledown 2from tabledown.tdxls import TDXlstdx = TDXls(conf)data = tdx.xls2dict(filename)tdx.dict2xls(data, filename)
  14. 14. • REST, Web Service ... OFBiz• ... ! SOA FAIL!• Web App mechanize (Python, Perl, Ruby ... PHP )
  15. 15. mechanize• • WWW::Mechanize • / (Ruby) • 10yr, 5yr• • twill • Beautiful Soup
  16. 16. mechanize import mechanize br = mechanize.Browser() ... # create project dProject={workEffortName: mName, description: mDesc, clientBillingPartyId: mBilling, organizationPartyId: mOrg, scopeEnumId:WES_PRIVATE,} br.open("%s/EditProject" % url_app) applyDict2Form(br, EditProject, dProject) res = br.submit() id, soup = page_get_project_id_and_soup(res.get_data()) ( )def page_get_id_and_soup(page): soup = BeautifulSoup(page, convertEntities=BeautifulSoup.HTML_ENTITIES) title = soup.find(div, {class:page-title}) # ok id = None if title: m = re.search(r[([^]]+)], title.find(span).getText()) if m: id = m.groups()[0] print "---> new id %s" % id return (id, soup)
  17. 17. mechanize + BeatifulSoup Tabledown Web/ PythonServices twill + scotch
  18. 18. • OFBiz (Timesheet) → ♥• • UX OK • (Task) • • •
  19. 19. OFBiz
  20. 20. Td• • ( ) • ?• ( )• / , …
  21. 21. • ... !• • ex: PM, • >>• ,• ... ?
  22. 22. • SaaS, PaaS , IaaS ?• IaaS / /• > / > >
  23. 23. IaaS ( )• IaaS• > / > >• :• :• :
  24. 24. • • : , • : • :• : Socialtext Socailcalc Google Spreadsheet
  25. 25. • , • : , • : ( ), SFC• mechanize• UI FAIL?
  26. 26. FAILs• DATA FAIL:• UX FAIL: ,• SOA FAIL: Web App
  27. 27. • , ,• ; ??•♥ / ♥ $ £¥ ,
  28. 28. • Tabledown http://code.google.com/p/tabledown/ • OFBiz http://ofbiz.apache.org/ • xlrd, xlwt http://www.python-excel.org/• twill http://twill.idyll.org/• scotch http://darcs.idyll.org/~t/projects/scotch/doc/• mechanize http://wwwsearch.sourceforge.net/mechanize/• Beatiful Soup http://www.crummy.com/software/ BeautifulSoup/
  29. 29. [ Tabledown ] Twitter: tcc tcchou@tcchou.org
  30. 30. OptionXML, JSON,YAML, S-
  31. 31. Option: 1 !"#$ ()* %&#$ +, -*!"./
  32. 32. Option: 2 robust cust. Web MN FTP UV Zenoss ["]^ ERP OFBiz BC MO serv. serv. App Web ST Nuexo Felix / Karaf B2B ... @A Akka Grails ZK JKL ... Camel ServiceMix R3 Activiti Scala Groovy Portal ... >? DEFGHI ... Apache WXYZ Java PQ DS Openfire!"#$ ()* +,#$-./ +,#$-.0 +,#$-.1 23 45 67 89 :; <= Vim Markdown Ant/mvn Jenkins Hg Trac Eclipse Docbook sbt/gradle (Hudson) git DITA Artifactory Selenium Sphinx JMeter _*!"`a %&

×