SlideShare una empresa de Scribd logo
1 de 53
[object Object],[object Object],[object Object],[object Object],[object Object]
Before we communicate with a person we must communicate with the Machine ... improve!
Why do we have to do the work? ,[object Object],[object Object],[object Object]
Why do we have to do the work? ,[object Object],[object Object],[object Object],Speed,  size Coding Evolution (“Intelligence”)‏ Procedural Neural-like Human Speed,  size Coding
[object Object],[object Object]
“ I know what I want,  why can’t I just ask for it?”
Today’s Look:  Clutter ,[object Object],[object Object]
Today’s Look: Hieroglyphs  ,[object Object],[object Object]
Today’s Look: Hieroglyphs  ,[object Object],[object Object]
1) Follow Trees:  pre-defined pull-downs (most app’s)‏ 2) Intersection of sets: e.g. search engines 3) Neural Networks: optimization, processing layers 4) ‘Neural-like’ processing: DataSea Four models of interaction
Four models of interaction: Trees ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Four models of interaction: Intersections ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Four models of interaction: N-Nets Input Calculations  (hidden-layer)‏ Output
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Four models of interaction: ‘Neural-like’
Today’s methods: Why so brittle?   Relational Databases:  - fast, but not highly connected Inferencing is hard! “ what is the  beast’ s  name ?”   Table: Names Thing Name robot Gort cat Tally planet Earth ... ...
Table: Aliases Word Alias dog animal dog canine cat animal cat feline animal beast ... ... Today’s methods: Query Expansion What is the beast’s (?cat’s?) name?  Relational Databases:  - fast, but not highly connected Inferencing is hard! “ what is the  beast’ s  name ?”   Table: Names Thing Name robot Gort cat Tally planet Earth ... ...
Today’s methods: Query Expansion What is the beast’s (?cat’s?) name?  Relational Databases:  - fast, but not highly connected Inferencing is hard! “ what is the  beast’ s  name ?”   ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Table: Aliases Word Alias dog animal dog canine cat animal cat feline animal beast ... ... Table: Names Thing Name robot Gort cat Tally planet Earth ... ...
“ I know what I want,  why can’t I just ask for it?”
DataSea’s Query Expansion: automatic “ what is the beast’s name?” Tally, is Name Associative Memory ... Single Network
Today’s methods: Query Expansion What is the beast’s (cat’s?) name?  Need to automatically: 1) Look further than one link 2) Treat 3 inferences in the same way as 1 3) Avoid ‘query-explosion’
Object Reusability,  Data integration ... just connect them up! Fitting together ? Aaaaaimport java.io.*; import java.util.*; import java.io.*; import java.net.*; import Utils.Login; import Utils.Utils; import net.sf.asterisk.manager.*; import net.sf.asterisk.manager.event.*; import net.sf.asterisk.manager.action.*; import net.sf.asterisk.manager.impl.*; import net.sf.asterisk.manager.response.*; import net.sf.asterisk.fastagi.command.SetPriorityCommand; import net.sf.asterisk.fastagi.command.StreamFileCommand; public class MGR_Reminder { static int DELAY_SLEEP_SECS = 3; // Writing from server to ast2 goes about 40kB/sec, but to kvm ast is 500kB/sec // It's about 1MB per minute public static void main(String[] argv) { } static public void writeFileToAsterisk(String filebase, String msg_str)  { try { String command=utils.DS_ROOT+&quot;/Eclipse/Scripts/ds.genAudToAst.sh &quot;+user_name+&quot; &quot;+playback_str+ &quot; &quot; + filebase+&quot;  &quot;+msg_str; rt.exec(command); } catch (java.io.IOException e) { System.err.println(&quot;Runtime IOException: &quot; + e.toString()); } } private DefaultManagerConnection getDefaultManagerConnection()‏ { DefaultManagerConnection dmc; dmc = new DefaultManagerConnection(); dmc.setUsername(&quot;admin&quot;); dmc.setPassword(&quot;rocky&quot;); dmc.setHostname(Utils.ASTERISK_MANAGER); dmc.setHostname(&quot;ast&quot;);  // TODO !!  Fix this!!!!!!!! if (dmc==null) { System.out.println(&quot;DefaultManagerConnection:  FATAL ERROR  null dmc&quot;); } return dmc; } public void placeCall(String filebase, String str_number, String forwarding_number, String maxsecs1, String maxsecs2, String user_name) { try { this.loginAndOriginateCall(filebase, str_number, forwarding_number, maxsecs1, maxsecs2, user_name); } catch (Exception e) { System.out.println(&quot;ERROR IN MGR_Reminder main RUNNING OF mgr.testLogin&quot;); e.printStackTrace(); } import java.sql.Connection; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.SQLException; import java.sql.Statement; import java.sql.DriverManager; public class calcRate { static public Connection mysql_connection=null; public calcRate() { } public Connection testConnection(String host, String db, String user, String pass) { String diag_str=&quot;&quot;; try { Class.forName(&quot;com.mysql.jdbc.Driver&quot;).newInstance(); } catch (Exception ex) { System.err.println(&quot;ERROR  in newInstance of Login  Class.forName(com.mysql.jdbc.Driver.newInstance():&quot;+ex); return((Connection) null); // Bail out } Connection conn; try { conn = DriverManager.getConnection(&quot;jdbc:mysql://&quot;+host+&quot;/&quot;+ db +&quot;?user=&quot;+user+&quot;&password=&quot;+pass); } catch (SQLException ex) { diag_str +=&quot;ERROR  testConnection  SQLException: &quot; + ex.getMessage()+&quot;&quot;; System.err.println(diag_str); return((Connection)null); // Bail out } if (conn == null)‏ return(conn); //  OK } public double sqlCalcRate(String phone_number) { Statement stmt; int row_counter=0; int max_rows=100; String prefix=&quot;&quot;; String rate=&quot;&quot;; String destname=&quot;&quot;; if (phone_number==null)‏ return(-1); if (phone_number.length()<3)‏ return(-1); if (0==phone_number.indexOf(&quot;1&quot;)) // This is a US/Canada number return(DEFAULT_PHONE_COST_US_CANADA); else if (0==phone_number.indexOf(&quot;011&quot;))‏ phone_number = phone_number.substring(3); // Trim off the 01 and use the rest else  // We don't have an international code, so assume it's to the US/Canada return(DEFAULT_PHONE_COST_US_CANADA); Connection conn = mysql_connection; if (conn==null) { System.err.println(&quot;sqlCalcRate has null connections&quot;); return(-2); } String query_str = &quot;select Prefix, Rate, Rate from asteriskcdrdb.rates where Prefix like &quot; +&quot;'&quot;+phone_number.substring(0, 2)+&quot;%'&quot; +&quot; order by char_length(Prefix) desc&quot;; System.err.println(&quot;Login.sqlCalcRate: &quot; +&quot; phone_number = &quot;+phone_number+&quot;&quot; } ...
Object Reusability,  Data integration ... just connect them up! Fitting together ? rather complex Aaaaaimport java.io.*; import java.util.*; import java.io.*; import java.net.*; import Utils.Login; import Utils.Utils; import net.sf.asterisk.manager.*; import net.sf.asterisk.manager.event.*; import net.sf.asterisk.manager.action.*; import net.sf.asterisk.manager.impl.*; import net.sf.asterisk.manager.response.*; import net.sf.asterisk.fastagi.command.SetPriorityCommand; import net.sf.asterisk.fastagi.command.StreamFileCommand; public class MGR_Reminder { static int DELAY_SLEEP_SECS = 3; // Writing from server to ast2 goes about 40kB/sec, but to kvm ast is 500kB/sec // It's about 1MB per minute public static void main(String[] argv) { } static public void writeFileToAsterisk(String filebase, String msg_str)  { try { String command=utils.DS_ROOT+&quot;/Eclipse/Scripts/ds.genAudToAst.sh &quot;+user_name+&quot; &quot;+playback_str+ &quot; &quot; + filebase+&quot;  &quot;+msg_str; rt.exec(command); } catch (java.io.IOException e) { System.err.println(&quot;Runtime IOException: &quot; + e.toString()); } } private DefaultManagerConnection getDefaultManagerConnection()‏ { DefaultManagerConnection dmc; dmc = new DefaultManagerConnection(); dmc.setUsername(&quot;admin&quot;); dmc.setPassword(&quot;rocky&quot;); dmc.setHostname(Utils.ASTERISK_MANAGER); dmc.setHostname(&quot;ast&quot;);  // TODO !!  Fix this!!!!!!!! if (dmc==null) { System.out.println(&quot;DefaultManagerConnection:  FATAL ERROR  null dmc&quot;); } return dmc; } public void placeCall(String filebase, String str_number, String forwarding_number, String maxsecs1, String maxsecs2, String user_name) { try { this.loginAndOriginateCall(filebase, str_number, forwarding_number, maxsecs1, maxsecs2, user_name); } catch (Exception e) { System.out.println(&quot;ERROR IN MGR_Reminder main RUNNING OF mgr.testLogin&quot;); e.printStackTrace(); } import java.sql.Connection; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.SQLException; import java.sql.Statement; import java.sql.DriverManager; public class calcRate { static public Connection mysql_connection=null; public calcRate() { } public Connection testConnection(String host, String db, String user, String pass) { String diag_str=&quot;&quot;; try { Class.forName(&quot;com.mysql.jdbc.Driver&quot;).newInstance(); } catch (Exception ex) { System.err.println(&quot;ERROR  in newInstance of Login  Class.forName(com.mysql.jdbc.Driver.newInstance():&quot;+ex); return((Connection) null); // Bail out } Connection conn; try { conn = DriverManager.getConnection(&quot;jdbc:mysql://&quot;+host+&quot;/&quot;+ db +&quot;?user=&quot;+user+&quot;&password=&quot;+pass); } catch (SQLException ex) { diag_str +=&quot;ERROR  testConnection  SQLException: &quot; + ex.getMessage()+&quot;&quot;; System.err.println(diag_str); return((Connection)null); // Bail out } if (conn == null)‏ return(conn); //  OK } public double sqlCalcRate(String phone_number) { Statement stmt; int row_counter=0; int max_rows=100; String prefix=&quot;&quot;; String rate=&quot;&quot;; String destname=&quot;&quot;; if (phone_number==null)‏ return(-1); if (phone_number.length()<3)‏ return(-1); if (0==phone_number.indexOf(&quot;1&quot;)) // This is a US/Canada number return(DEFAULT_PHONE_COST_US_CANADA); else if (0==phone_number.indexOf(&quot;011&quot;))‏ phone_number = phone_number.substring(3); // Trim off the 01 and use the rest else  // We don't have an international code, so assume it's to the US/Canada return(DEFAULT_PHONE_COST_US_CANADA); Connection conn = mysql_connection; if (conn==null) { System.err.println(&quot;sqlCalcRate has null connections&quot;); return(-2); } String query_str = &quot;select Prefix, Rate, Rate from asteriskcdrdb.rates where Prefix like &quot; +&quot;'&quot;+phone_number.substring(0, 2)+&quot;%'&quot; +&quot; order by char_length(Prefix) desc&quot;; System.err.println(&quot;Login.sqlCalcRate: &quot; +&quot; phone_number = &quot;+phone_number+&quot;&quot; } ...
Object Reusability,  Data integration ... & Brain Transplants:   just connect them up! Fitting together ? rather complex Aaaaaimport java.io.*; import java.util.*; import java.io.*; import java.net.*; import Utils.Login; import Utils.Utils; import net.sf.asterisk.manager.*; import net.sf.asterisk.manager.event.*; import net.sf.asterisk.manager.action.*; import net.sf.asterisk.manager.impl.*; import net.sf.asterisk.manager.response.*; import net.sf.asterisk.fastagi.command.SetPriorityCommand; import net.sf.asterisk.fastagi.command.StreamFileCommand; public class MGR_Reminder { static int DELAY_SLEEP_SECS = 3; // Writing from server to ast2 goes about 40kB/sec, but to kvm ast is 500kB/sec // It's about 1MB per minute public static void main(String[] argv) { } static public void writeFileToAsterisk(String filebase, String msg_str)  { try { String command=utils.DS_ROOT+&quot;/Eclipse/Scripts/ds.genAudToAst.sh &quot;+user_name+&quot; &quot;+playback_str+ &quot; &quot; + filebase+&quot;  &quot;+msg_str; rt.exec(command); } catch (java.io.IOException e) { System.err.println(&quot;Runtime IOException: &quot; + e.toString()); } } private DefaultManagerConnection getDefaultManagerConnection()‏ { DefaultManagerConnection dmc; dmc = new DefaultManagerConnection(); dmc.setUsername(&quot;admin&quot;); dmc.setPassword(&quot;rocky&quot;); dmc.setHostname(Utils.ASTERISK_MANAGER); dmc.setHostname(&quot;ast&quot;);  // TODO !!  Fix this!!!!!!!! if (dmc==null) { System.out.println(&quot;DefaultManagerConnection:  FATAL ERROR  null dmc&quot;); } return dmc; } public void placeCall(String filebase, String str_number, String forwarding_number, String maxsecs1, String maxsecs2, String user_name) { try { this.loginAndOriginateCall(filebase, str_number, forwarding_number, maxsecs1, maxsecs2, user_name); } catch (Exception e) { System.out.println(&quot;ERROR IN MGR_Reminder main RUNNING OF mgr.testLogin&quot;); e.printStackTrace(); } import java.sql.Connection; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.SQLException; import java.sql.Statement; import java.sql.DriverManager; public class calcRate { static public Connection mysql_connection=null; public calcRate() { } public Connection testConnection(String host, String db, String user, String pass) { String diag_str=&quot;&quot;; try { Class.forName(&quot;com.mysql.jdbc.Driver&quot;).newInstance(); } catch (Exception ex) { System.err.println(&quot;ERROR  in newInstance of Login  Class.forName(com.mysql.jdbc.Driver.newInstance():&quot;+ex); return((Connection) null); // Bail out } Connection conn; try { conn = DriverManager.getConnection(&quot;jdbc:mysql://&quot;+host+&quot;/&quot;+ db +&quot;?user=&quot;+user+&quot;&password=&quot;+pass); } catch (SQLException ex) { diag_str +=&quot;ERROR  testConnection  SQLException: &quot; + ex.getMessage()+&quot;&quot;; System.err.println(diag_str); return((Connection)null); // Bail out } if (conn == null)‏ return(conn); //  OK } public double sqlCalcRate(String phone_number) { Statement stmt; int row_counter=0; int max_rows=100; String prefix=&quot;&quot;; String rate=&quot;&quot;; String destname=&quot;&quot;; if (phone_number==null)‏ return(-1); if (phone_number.length()<3)‏ return(-1); if (0==phone_number.indexOf(&quot;1&quot;)) // This is a US/Canada number return(DEFAULT_PHONE_COST_US_CANADA); else if (0==phone_number.indexOf(&quot;011&quot;))‏ phone_number = phone_number.substring(3); // Trim off the 01 and use the rest else  // We don't have an international code, so assume it's to the US/Canada return(DEFAULT_PHONE_COST_US_CANADA); Connection conn = mysql_connection; if (conn==null) { System.err.println(&quot;sqlCalcRate has null connections&quot;); return(-2); } String query_str = &quot;select Prefix, Rate, Rate from asteriskcdrdb.rates where Prefix like &quot; +&quot;'&quot;+phone_number.substring(0, 2)+&quot;%'&quot; +&quot; order by char_length(Prefix) desc&quot;; System.err.println(&quot;Login.sqlCalcRate: &quot; +&quot; phone_number = &quot;+phone_number+&quot;&quot; } ...
Immune system, Protein ‘lock and key’ model Biology Fitting together ? rather complex
Self-organizing => don’t need to know details  Immune system, Protein ‘lock and key’ model  Biology Fitting together ? complex … But biological systems are self organizing
Self-organizing: The Solution? Self-organizing data New Input Self- connecting Self-organizing => don’t need to know details
Self-organizing: The Solution? Are Operations different from Data?
Self-organizing: The Solution? Are Operations different from Data? Data & Operations merge
Self-organizing: The Solution? Self-organizing data and operations New Input Self- connecting Self-organizing => don’t need to know details
Self-organizing: The Solution? New Input Self- connecting Operation, Action Self-organizing => don’t need to know details  Self-organizing data and functions
DataSea Network
Input Processing ... DataSea Network
Input Output Answers pulled from network DataSea Network
Input Output Fusion ... - Entire network accessible you  can  get there from here - Immediate influence from new info - Inferencing DataSea Network
Input Output DataSea Network  Reduces ... - difficult UI navigation - multiple, precise steps & decisions  - False negatives (null intersection)‏
Multi-Source, Multi-modal  : Inputs Voice   Applications SQL-RDBMS XML/HTML MS Office: Excel/ Word/Outlook Computer   PDA   Voice & Text Notes Thesaurus Corporate Repositories Google:  web  and Desktop VoIP Outputs DataSea  Assimilation
Tricky Parts Solved ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Integrating with the Real World Upload Files  AddressBook, SpreadSheets, Text, HTML Crawl Relational DataBase Customize GUI for application specific needs
Home Companion  (prototype)  ‘ where is Lt. Sulu? ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Point of View ... Data Modules  Load Another User's Data, run a query:  see the world  from their Point of View
Application ... Product 1: Salesforce.com plugin  (beta) Gives: - Single-Step - Query expansion  - Actions
1) Search, Chicago –>  fails ... null answer   2) Click Advanced Search,    3) Select Find All,    4)  Type: Chicago  ,[object Object]
SF: DataSea; one step, richer response Finding accounts and contacts in Chicago 1) “show Chicago”
1) Search,    2) Detail Page,    3) contacts-DetailPage,   4) place call:  dial, wait, speak Time: 2+ minutes ,[object Object]
1) “show Grand Hotels”   2) “call Tim Barr and say Hi Tim, I’ll  be there at noon, sorry for delay.”  Time: 0.5 mins ,[object Object]
Broad Applicability Applications: - Salesforce.com (beta)‏ - Personal Assistant ‏ - Corporate DB/Knowledge-base - Corporate web portal  - Identity Sharing - Home Voice companion (prototyped)‏ - Business Portal (design) - Intelligence community DataSea  Assimilation
Broad Applicability Applications: - Salesforce.com (beta)‏ - Personal Assistant ‏ - Corporate DB/Knowledge-base - Corporate web portal  - Identity Sharing - Home Voice companion (prototyped)‏ - Business Portal (design) - Intelligence community DataSea  Assimilation
Broad Applicability Applications: - Salesforce.com (beta)‏ - Personal Assistant ‏ -  Corporate DB/Knowledge-base - Corporate web portal  - Identity Sharing - Home Voice companion (prototyped)‏ - Business Portal (design) - Intelligence community DataSea  Assimilation
Evolution of Search and Actions Traditional systems Evolution (“Intelligence”)‏ Procedural Neural-like Human DataSea
Trans-Application Fusion CRM data Corp’ DB App’ data DataSea Assimilates, ‘connects the dots’ In-house App CRM App DB App
Summary ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Contact Us CEO: Rocky Nevin [email_address] CFO: Linda Webster [email_address] SalesForce DataSea Plugin Pending SFDC Appexchange certification DataSea, Inc. www.DataSea.com
An   eComm 2008   presentation –   http://eCommMedia.com   for more

Más contenido relacionado

La actualidad más candente

Python and sysadmin I
Python and sysadmin IPython and sysadmin I
Python and sysadmin IGuixing Bai
 
Elegant Solutions For Everyday Python Problems - Nina Zakharenko
Elegant Solutions For Everyday Python Problems - Nina ZakharenkoElegant Solutions For Everyday Python Problems - Nina Zakharenko
Elegant Solutions For Everyday Python Problems - Nina ZakharenkoNina Zakharenko
 
java 8 Hands on Workshop
java 8 Hands on Workshopjava 8 Hands on Workshop
java 8 Hands on WorkshopJeanne Boyarsky
 
Programming Under Linux In Python
Programming Under Linux In PythonProgramming Under Linux In Python
Programming Under Linux In PythonMarwan Osman
 
Learn python - for beginners - part-2
Learn python - for beginners - part-2Learn python - for beginners - part-2
Learn python - for beginners - part-2RajKumar Rampelli
 
Python Tricks That You Can't Live Without
Python Tricks That You Can't Live WithoutPython Tricks That You Can't Live Without
Python Tricks That You Can't Live WithoutAudrey Roy
 
Python 101++: Let's Get Down to Business!
Python 101++: Let's Get Down to Business!Python 101++: Let's Get Down to Business!
Python 101++: Let's Get Down to Business!Paige Bailey
 
Python 표준 라이브러리
Python 표준 라이브러리Python 표준 라이브러리
Python 표준 라이브러리용 최
 
Advanced Python, Part 2
Advanced Python, Part 2Advanced Python, Part 2
Advanced Python, Part 2Zaar Hai
 
PostgreSQL: How to Store Passwords Safely
PostgreSQL: How to Store Passwords SafelyPostgreSQL: How to Store Passwords Safely
PostgreSQL: How to Store Passwords SafelyJuliano Atanazio
 
Memory Management In Python The Basics
Memory Management In Python The BasicsMemory Management In Python The Basics
Memory Management In Python The BasicsNina Zakharenko
 
Write better python code with these 10 tricks | by yong cui, ph.d. | aug, 202...
Write better python code with these 10 tricks | by yong cui, ph.d. | aug, 202...Write better python code with these 10 tricks | by yong cui, ph.d. | aug, 202...
Write better python code with these 10 tricks | by yong cui, ph.d. | aug, 202...amit kuraria
 
Introduction to advanced python
Introduction to advanced pythonIntroduction to advanced python
Introduction to advanced pythonCharles-Axel Dein
 
Python fundamentals - basic | WeiYuan
Python fundamentals - basic | WeiYuanPython fundamentals - basic | WeiYuan
Python fundamentals - basic | WeiYuanWei-Yuan Chang
 
AmI 2016 - Python basics
AmI 2016 - Python basicsAmI 2016 - Python basics
AmI 2016 - Python basicsLuigi De Russis
 

La actualidad más candente (20)

Python and sysadmin I
Python and sysadmin IPython and sysadmin I
Python and sysadmin I
 
Elegant Solutions For Everyday Python Problems - Nina Zakharenko
Elegant Solutions For Everyday Python Problems - Nina ZakharenkoElegant Solutions For Everyday Python Problems - Nina Zakharenko
Elegant Solutions For Everyday Python Problems - Nina Zakharenko
 
java 8 Hands on Workshop
java 8 Hands on Workshopjava 8 Hands on Workshop
java 8 Hands on Workshop
 
Programming Under Linux In Python
Programming Under Linux In PythonProgramming Under Linux In Python
Programming Under Linux In Python
 
Learn python - for beginners - part-2
Learn python - for beginners - part-2Learn python - for beginners - part-2
Learn python - for beginners - part-2
 
Python Tricks That You Can't Live Without
Python Tricks That You Can't Live WithoutPython Tricks That You Can't Live Without
Python Tricks That You Can't Live Without
 
Python 101++: Let's Get Down to Business!
Python 101++: Let's Get Down to Business!Python 101++: Let's Get Down to Business!
Python 101++: Let's Get Down to Business!
 
Python 표준 라이브러리
Python 표준 라이브러리Python 표준 라이브러리
Python 표준 라이브러리
 
Advanced Python, Part 2
Advanced Python, Part 2Advanced Python, Part 2
Advanced Python, Part 2
 
PostgreSQL: How to Store Passwords Safely
PostgreSQL: How to Store Passwords SafelyPostgreSQL: How to Store Passwords Safely
PostgreSQL: How to Store Passwords Safely
 
Memory Management In Python The Basics
Memory Management In Python The BasicsMemory Management In Python The Basics
Memory Management In Python The Basics
 
Write better python code with these 10 tricks | by yong cui, ph.d. | aug, 202...
Write better python code with these 10 tricks | by yong cui, ph.d. | aug, 202...Write better python code with these 10 tricks | by yong cui, ph.d. | aug, 202...
Write better python code with these 10 tricks | by yong cui, ph.d. | aug, 202...
 
Introduction to advanced python
Introduction to advanced pythonIntroduction to advanced python
Introduction to advanced python
 
Python fundamentals - basic | WeiYuan
Python fundamentals - basic | WeiYuanPython fundamentals - basic | WeiYuan
Python fundamentals - basic | WeiYuan
 
Begin with Python
Begin with PythonBegin with Python
Begin with Python
 
Don't do this
Don't do thisDon't do this
Don't do this
 
Python Tutorial
Python TutorialPython Tutorial
Python Tutorial
 
Python for Dummies
Python for DummiesPython for Dummies
Python for Dummies
 
AmI 2016 - Python basics
AmI 2016 - Python basicsAmI 2016 - Python basics
AmI 2016 - Python basics
 
Python in 90 minutes
Python in 90 minutesPython in 90 minutes
Python in 90 minutes
 

Destacado

Michel Bauwens's presentation at eComm 2008
Michel Bauwens's presentation at eComm 2008Michel Bauwens's presentation at eComm 2008
Michel Bauwens's presentation at eComm 2008eComm2008
 
wa toulouse
wa toulousewa toulouse
wa toulousediankhab
 
Dilip Kenchammana's presentation at eComm 2008
Dilip Kenchammana's presentation at eComm 2008Dilip Kenchammana's presentation at eComm 2008
Dilip Kenchammana's presentation at eComm 2008eComm2008
 
Teste Sua personalidade
Teste Sua personalidadeTeste Sua personalidade
Teste Sua personalidadeguest4dbc4c
 
Testesuapersonalidade
TestesuapersonalidadeTestesuapersonalidade
Testesuapersonalidadeguest4dbc4c
 
PresentacióN Diego Traver
PresentacióN Diego TraverPresentacióN Diego Traver
PresentacióN Diego Travermacbenlliure
 
Loving Teaching
Loving TeachingLoving Teaching
Loving TeachingCarolHohle
 
Study: The Future of VR, AR and Self-Driving Cars
Study: The Future of VR, AR and Self-Driving CarsStudy: The Future of VR, AR and Self-Driving Cars
Study: The Future of VR, AR and Self-Driving CarsLinkedIn
 

Destacado (8)

Michel Bauwens's presentation at eComm 2008
Michel Bauwens's presentation at eComm 2008Michel Bauwens's presentation at eComm 2008
Michel Bauwens's presentation at eComm 2008
 
wa toulouse
wa toulousewa toulouse
wa toulouse
 
Dilip Kenchammana's presentation at eComm 2008
Dilip Kenchammana's presentation at eComm 2008Dilip Kenchammana's presentation at eComm 2008
Dilip Kenchammana's presentation at eComm 2008
 
Teste Sua personalidade
Teste Sua personalidadeTeste Sua personalidade
Teste Sua personalidade
 
Testesuapersonalidade
TestesuapersonalidadeTestesuapersonalidade
Testesuapersonalidade
 
PresentacióN Diego Traver
PresentacióN Diego TraverPresentacióN Diego Traver
PresentacióN Diego Traver
 
Loving Teaching
Loving TeachingLoving Teaching
Loving Teaching
 
Study: The Future of VR, AR and Self-Driving Cars
Study: The Future of VR, AR and Self-Driving CarsStudy: The Future of VR, AR and Self-Driving Cars
Study: The Future of VR, AR and Self-Driving Cars
 

Similar a Rocky Nevin's presentation at eComm 2008

Extreme Swift
Extreme SwiftExtreme Swift
Extreme SwiftMovel
 
Don't Be Afraid of Abstract Syntax Trees
Don't Be Afraid of Abstract Syntax TreesDon't Be Afraid of Abstract Syntax Trees
Don't Be Afraid of Abstract Syntax TreesJamund Ferguson
 
Solving the Riddle of Search: Using Sphinx with Rails
Solving the Riddle of Search: Using Sphinx with RailsSolving the Riddle of Search: Using Sphinx with Rails
Solving the Riddle of Search: Using Sphinx with Railsfreelancing_god
 
Fire-fighting java big data problems
Fire-fighting java big data problemsFire-fighting java big data problems
Fire-fighting java big data problemsgrepalex
 
Who pulls the strings?
Who pulls the strings?Who pulls the strings?
Who pulls the strings?Ronny
 
Microsoft azure data fundamentals (dp 900) practice tests 2022
Microsoft azure data fundamentals (dp 900) practice tests 2022Microsoft azure data fundamentals (dp 900) practice tests 2022
Microsoft azure data fundamentals (dp 900) practice tests 2022SkillCertProExams
 
Good practices for PrestaShop code security and optimization
Good practices for PrestaShop code security and optimizationGood practices for PrestaShop code security and optimization
Good practices for PrestaShop code security and optimizationPrestaShop
 
Lec 1 Ds
Lec 1 DsLec 1 Ds
Lec 1 DsQundeel
 
Data Structure
Data StructureData Structure
Data Structuresheraz1
 
Lec 1 Ds
Lec 1 DsLec 1 Ds
Lec 1 DsQundeel
 
Letting In the Light: Using Solr as an External Search Component
Letting In the Light: Using Solr as an External Search ComponentLetting In the Light: Using Solr as an External Search Component
Letting In the Light: Using Solr as an External Search ComponentJay Luker
 
Beyond PHP - It's not (just) about the code
Beyond PHP - It's not (just) about the codeBeyond PHP - It's not (just) about the code
Beyond PHP - It's not (just) about the codeWim Godden
 
String Comparison Surprises: Did Postgres lose my data?
String Comparison Surprises: Did Postgres lose my data?String Comparison Surprises: Did Postgres lose my data?
String Comparison Surprises: Did Postgres lose my data?Jeremy Schneider
 
Rooted 2010 ppp
Rooted 2010 pppRooted 2010 ppp
Rooted 2010 pppnoc_313
 
Java Intro
Java IntroJava Intro
Java Introbackdoor
 
Open Source Systems Performance
Open Source Systems PerformanceOpen Source Systems Performance
Open Source Systems PerformanceBrendan Gregg
 
Why Java Needs Hierarchical Data
Why Java Needs Hierarchical DataWhy Java Needs Hierarchical Data
Why Java Needs Hierarchical DataMarakana Inc.
 

Similar a Rocky Nevin's presentation at eComm 2008 (20)

Extreme Swift
Extreme SwiftExtreme Swift
Extreme Swift
 
Don't Be Afraid of Abstract Syntax Trees
Don't Be Afraid of Abstract Syntax TreesDon't Be Afraid of Abstract Syntax Trees
Don't Be Afraid of Abstract Syntax Trees
 
Solving the Riddle of Search: Using Sphinx with Rails
Solving the Riddle of Search: Using Sphinx with RailsSolving the Riddle of Search: Using Sphinx with Rails
Solving the Riddle of Search: Using Sphinx with Rails
 
Fire-fighting java big data problems
Fire-fighting java big data problemsFire-fighting java big data problems
Fire-fighting java big data problems
 
Java
JavaJava
Java
 
Who pulls the strings?
Who pulls the strings?Who pulls the strings?
Who pulls the strings?
 
Easy R
Easy REasy R
Easy R
 
Microsoft azure data fundamentals (dp 900) practice tests 2022
Microsoft azure data fundamentals (dp 900) practice tests 2022Microsoft azure data fundamentals (dp 900) practice tests 2022
Microsoft azure data fundamentals (dp 900) practice tests 2022
 
Good practices for PrestaShop code security and optimization
Good practices for PrestaShop code security and optimizationGood practices for PrestaShop code security and optimization
Good practices for PrestaShop code security and optimization
 
Lec 1 Ds
Lec 1 DsLec 1 Ds
Lec 1 Ds
 
Data Structure
Data StructureData Structure
Data Structure
 
Lec 1 Ds
Lec 1 DsLec 1 Ds
Lec 1 Ds
 
Fantom and Tales
Fantom and TalesFantom and Tales
Fantom and Tales
 
Letting In the Light: Using Solr as an External Search Component
Letting In the Light: Using Solr as an External Search ComponentLetting In the Light: Using Solr as an External Search Component
Letting In the Light: Using Solr as an External Search Component
 
Beyond PHP - It's not (just) about the code
Beyond PHP - It's not (just) about the codeBeyond PHP - It's not (just) about the code
Beyond PHP - It's not (just) about the code
 
String Comparison Surprises: Did Postgres lose my data?
String Comparison Surprises: Did Postgres lose my data?String Comparison Surprises: Did Postgres lose my data?
String Comparison Surprises: Did Postgres lose my data?
 
Rooted 2010 ppp
Rooted 2010 pppRooted 2010 ppp
Rooted 2010 ppp
 
Java Intro
Java IntroJava Intro
Java Intro
 
Open Source Systems Performance
Open Source Systems PerformanceOpen Source Systems Performance
Open Source Systems Performance
 
Why Java Needs Hierarchical Data
Why Java Needs Hierarchical DataWhy Java Needs Hierarchical Data
Why Java Needs Hierarchical Data
 

Más de eComm2008

David Recordon's Presentation at eComm 2008
David Recordon's Presentation at eComm 2008David Recordon's Presentation at eComm 2008
David Recordon's Presentation at eComm 2008eComm2008
 
Dave Troy's Presentation at eComm 2008
Dave Troy's Presentation at eComm 2008Dave Troy's Presentation at eComm 2008
Dave Troy's Presentation at eComm 2008eComm2008
 
eComm 2008 Programme Guide
eComm 2008 Programme GuideeComm 2008 Programme Guide
eComm 2008 Programme GuideeComm2008
 
Anders Carlius's presentation at eComm 2008
Anders Carlius's presentation at eComm 2008Anders Carlius's presentation at eComm 2008
Anders Carlius's presentation at eComm 2008eComm2008
 
Sean O\'Sullivan\'s presentation at eComm 2008
Sean O\'Sullivan\'s presentation at eComm 2008Sean O\'Sullivan\'s presentation at eComm 2008
Sean O\'Sullivan\'s presentation at eComm 2008eComm2008
 
Norman Lewis\'s presentation at eComm 2008
Norman Lewis\'s presentation at eComm 2008Norman Lewis\'s presentation at eComm 2008
Norman Lewis\'s presentation at eComm 2008eComm2008
 
Sheldon Renan's presentation at eComm 2008
Sheldon Renan's presentation at eComm 2008Sheldon Renan's presentation at eComm 2008
Sheldon Renan's presentation at eComm 2008eComm2008
 
Brough Turner\'s presentation at eComm 2008
Brough Turner\'s presentation at eComm 2008Brough Turner\'s presentation at eComm 2008
Brough Turner\'s presentation at eComm 2008eComm2008
 
Brian Capouch's presentation at eComm 2008
Brian Capouch's presentation at eComm 2008Brian Capouch's presentation at eComm 2008
Brian Capouch's presentation at eComm 2008eComm2008
 
Fabrizio Capobianco's presentation at eComm 2008
Fabrizio Capobianco's presentation at eComm 2008Fabrizio Capobianco's presentation at eComm 2008
Fabrizio Capobianco's presentation at eComm 2008eComm2008
 
Shirish Andhare's presentation at eComm 2008
Shirish Andhare's presentation at eComm 2008Shirish Andhare's presentation at eComm 2008
Shirish Andhare's presentation at eComm 2008eComm2008
 
Gary Miner's presentation at eComm 2008
Gary Miner's presentation at eComm 2008Gary Miner's presentation at eComm 2008
Gary Miner's presentation at eComm 2008eComm2008
 
Trevor Baca's presentation at eComm 2008
Trevor Baca's presentation at eComm 2008Trevor Baca's presentation at eComm 2008
Trevor Baca's presentation at eComm 2008eComm2008
 
Jan Macek's presentation at eComm 2008
Jan Macek's presentation at eComm 2008Jan Macek's presentation at eComm 2008
Jan Macek's presentation at eComm 2008eComm2008
 
Martin Geddes's presentation at eComm 2008
Martin Geddes's presentation at eComm 2008Martin Geddes's presentation at eComm 2008
Martin Geddes's presentation at eComm 2008eComm2008
 
Nathan Eagle's presentation at eComm 2008
Nathan Eagle's presentation at eComm 2008Nathan Eagle's presentation at eComm 2008
Nathan Eagle's presentation at eComm 2008eComm2008
 
Stanley Chia's presentation at eComm 2008
Stanley Chia's presentation at eComm 2008Stanley Chia's presentation at eComm 2008
Stanley Chia's presentation at eComm 2008eComm2008
 
Phil Wolff's 's presentation at eComm 2008
Phil Wolff's 's presentation at eComm 2008Phil Wolff's 's presentation at eComm 2008
Phil Wolff's 's presentation at eComm 2008eComm2008
 
Jonathan Christensen's Panel Intro at eComm 2008
Jonathan Christensen's Panel Intro at eComm 2008Jonathan Christensen's Panel Intro at eComm 2008
Jonathan Christensen's Panel Intro at eComm 2008eComm2008
 
Bob Frankston's presentation at eComm 2008
Bob Frankston's presentation at eComm 2008Bob Frankston's presentation at eComm 2008
Bob Frankston's presentation at eComm 2008eComm2008
 

Más de eComm2008 (20)

David Recordon's Presentation at eComm 2008
David Recordon's Presentation at eComm 2008David Recordon's Presentation at eComm 2008
David Recordon's Presentation at eComm 2008
 
Dave Troy's Presentation at eComm 2008
Dave Troy's Presentation at eComm 2008Dave Troy's Presentation at eComm 2008
Dave Troy's Presentation at eComm 2008
 
eComm 2008 Programme Guide
eComm 2008 Programme GuideeComm 2008 Programme Guide
eComm 2008 Programme Guide
 
Anders Carlius's presentation at eComm 2008
Anders Carlius's presentation at eComm 2008Anders Carlius's presentation at eComm 2008
Anders Carlius's presentation at eComm 2008
 
Sean O\'Sullivan\'s presentation at eComm 2008
Sean O\'Sullivan\'s presentation at eComm 2008Sean O\'Sullivan\'s presentation at eComm 2008
Sean O\'Sullivan\'s presentation at eComm 2008
 
Norman Lewis\'s presentation at eComm 2008
Norman Lewis\'s presentation at eComm 2008Norman Lewis\'s presentation at eComm 2008
Norman Lewis\'s presentation at eComm 2008
 
Sheldon Renan's presentation at eComm 2008
Sheldon Renan's presentation at eComm 2008Sheldon Renan's presentation at eComm 2008
Sheldon Renan's presentation at eComm 2008
 
Brough Turner\'s presentation at eComm 2008
Brough Turner\'s presentation at eComm 2008Brough Turner\'s presentation at eComm 2008
Brough Turner\'s presentation at eComm 2008
 
Brian Capouch's presentation at eComm 2008
Brian Capouch's presentation at eComm 2008Brian Capouch's presentation at eComm 2008
Brian Capouch's presentation at eComm 2008
 
Fabrizio Capobianco's presentation at eComm 2008
Fabrizio Capobianco's presentation at eComm 2008Fabrizio Capobianco's presentation at eComm 2008
Fabrizio Capobianco's presentation at eComm 2008
 
Shirish Andhare's presentation at eComm 2008
Shirish Andhare's presentation at eComm 2008Shirish Andhare's presentation at eComm 2008
Shirish Andhare's presentation at eComm 2008
 
Gary Miner's presentation at eComm 2008
Gary Miner's presentation at eComm 2008Gary Miner's presentation at eComm 2008
Gary Miner's presentation at eComm 2008
 
Trevor Baca's presentation at eComm 2008
Trevor Baca's presentation at eComm 2008Trevor Baca's presentation at eComm 2008
Trevor Baca's presentation at eComm 2008
 
Jan Macek's presentation at eComm 2008
Jan Macek's presentation at eComm 2008Jan Macek's presentation at eComm 2008
Jan Macek's presentation at eComm 2008
 
Martin Geddes's presentation at eComm 2008
Martin Geddes's presentation at eComm 2008Martin Geddes's presentation at eComm 2008
Martin Geddes's presentation at eComm 2008
 
Nathan Eagle's presentation at eComm 2008
Nathan Eagle's presentation at eComm 2008Nathan Eagle's presentation at eComm 2008
Nathan Eagle's presentation at eComm 2008
 
Stanley Chia's presentation at eComm 2008
Stanley Chia's presentation at eComm 2008Stanley Chia's presentation at eComm 2008
Stanley Chia's presentation at eComm 2008
 
Phil Wolff's 's presentation at eComm 2008
Phil Wolff's 's presentation at eComm 2008Phil Wolff's 's presentation at eComm 2008
Phil Wolff's 's presentation at eComm 2008
 
Jonathan Christensen's Panel Intro at eComm 2008
Jonathan Christensen's Panel Intro at eComm 2008Jonathan Christensen's Panel Intro at eComm 2008
Jonathan Christensen's Panel Intro at eComm 2008
 
Bob Frankston's presentation at eComm 2008
Bob Frankston's presentation at eComm 2008Bob Frankston's presentation at eComm 2008
Bob Frankston's presentation at eComm 2008
 

Último

Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...apidays
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDropbox
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusZilliz
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfOverkill Security
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Zilliz
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbuapidays
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 

Último (20)

Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source Milvus
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 

Rocky Nevin's presentation at eComm 2008

  • 1.
  • 2. Before we communicate with a person we must communicate with the Machine ... improve!
  • 3.
  • 4.
  • 5.
  • 6. “ I know what I want, why can’t I just ask for it?”
  • 7.
  • 8.
  • 9.
  • 10. 1) Follow Trees: pre-defined pull-downs (most app’s)‏ 2) Intersection of sets: e.g. search engines 3) Neural Networks: optimization, processing layers 4) ‘Neural-like’ processing: DataSea Four models of interaction
  • 11.
  • 12.
  • 13.
  • 14.
  • 15. Today’s methods: Why so brittle? Relational Databases: - fast, but not highly connected Inferencing is hard! “ what is the beast’ s name ?” Table: Names Thing Name robot Gort cat Tally planet Earth ... ...
  • 16. Table: Aliases Word Alias dog animal dog canine cat animal cat feline animal beast ... ... Today’s methods: Query Expansion What is the beast’s (?cat’s?) name? Relational Databases: - fast, but not highly connected Inferencing is hard! “ what is the beast’ s name ?” Table: Names Thing Name robot Gort cat Tally planet Earth ... ...
  • 17.
  • 18. “ I know what I want, why can’t I just ask for it?”
  • 19. DataSea’s Query Expansion: automatic “ what is the beast’s name?” Tally, is Name Associative Memory ... Single Network
  • 20. Today’s methods: Query Expansion What is the beast’s (cat’s?) name? Need to automatically: 1) Look further than one link 2) Treat 3 inferences in the same way as 1 3) Avoid ‘query-explosion’
  • 21. Object Reusability, Data integration ... just connect them up! Fitting together ? Aaaaaimport java.io.*; import java.util.*; import java.io.*; import java.net.*; import Utils.Login; import Utils.Utils; import net.sf.asterisk.manager.*; import net.sf.asterisk.manager.event.*; import net.sf.asterisk.manager.action.*; import net.sf.asterisk.manager.impl.*; import net.sf.asterisk.manager.response.*; import net.sf.asterisk.fastagi.command.SetPriorityCommand; import net.sf.asterisk.fastagi.command.StreamFileCommand; public class MGR_Reminder { static int DELAY_SLEEP_SECS = 3; // Writing from server to ast2 goes about 40kB/sec, but to kvm ast is 500kB/sec // It's about 1MB per minute public static void main(String[] argv) { } static public void writeFileToAsterisk(String filebase, String msg_str) { try { String command=utils.DS_ROOT+&quot;/Eclipse/Scripts/ds.genAudToAst.sh &quot;+user_name+&quot; &quot;+playback_str+ &quot; &quot; + filebase+&quot; &quot;+msg_str; rt.exec(command); } catch (java.io.IOException e) { System.err.println(&quot;Runtime IOException: &quot; + e.toString()); } } private DefaultManagerConnection getDefaultManagerConnection()‏ { DefaultManagerConnection dmc; dmc = new DefaultManagerConnection(); dmc.setUsername(&quot;admin&quot;); dmc.setPassword(&quot;rocky&quot;); dmc.setHostname(Utils.ASTERISK_MANAGER); dmc.setHostname(&quot;ast&quot;); // TODO !! Fix this!!!!!!!! if (dmc==null) { System.out.println(&quot;DefaultManagerConnection: FATAL ERROR null dmc&quot;); } return dmc; } public void placeCall(String filebase, String str_number, String forwarding_number, String maxsecs1, String maxsecs2, String user_name) { try { this.loginAndOriginateCall(filebase, str_number, forwarding_number, maxsecs1, maxsecs2, user_name); } catch (Exception e) { System.out.println(&quot;ERROR IN MGR_Reminder main RUNNING OF mgr.testLogin&quot;); e.printStackTrace(); } import java.sql.Connection; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.SQLException; import java.sql.Statement; import java.sql.DriverManager; public class calcRate { static public Connection mysql_connection=null; public calcRate() { } public Connection testConnection(String host, String db, String user, String pass) { String diag_str=&quot;&quot;; try { Class.forName(&quot;com.mysql.jdbc.Driver&quot;).newInstance(); } catch (Exception ex) { System.err.println(&quot;ERROR in newInstance of Login Class.forName(com.mysql.jdbc.Driver.newInstance():&quot;+ex); return((Connection) null); // Bail out } Connection conn; try { conn = DriverManager.getConnection(&quot;jdbc:mysql://&quot;+host+&quot;/&quot;+ db +&quot;?user=&quot;+user+&quot;&password=&quot;+pass); } catch (SQLException ex) { diag_str +=&quot;ERROR testConnection SQLException: &quot; + ex.getMessage()+&quot;&quot;; System.err.println(diag_str); return((Connection)null); // Bail out } if (conn == null)‏ return(conn); // OK } public double sqlCalcRate(String phone_number) { Statement stmt; int row_counter=0; int max_rows=100; String prefix=&quot;&quot;; String rate=&quot;&quot;; String destname=&quot;&quot;; if (phone_number==null)‏ return(-1); if (phone_number.length()<3)‏ return(-1); if (0==phone_number.indexOf(&quot;1&quot;)) // This is a US/Canada number return(DEFAULT_PHONE_COST_US_CANADA); else if (0==phone_number.indexOf(&quot;011&quot;))‏ phone_number = phone_number.substring(3); // Trim off the 01 and use the rest else // We don't have an international code, so assume it's to the US/Canada return(DEFAULT_PHONE_COST_US_CANADA); Connection conn = mysql_connection; if (conn==null) { System.err.println(&quot;sqlCalcRate has null connections&quot;); return(-2); } String query_str = &quot;select Prefix, Rate, Rate from asteriskcdrdb.rates where Prefix like &quot; +&quot;'&quot;+phone_number.substring(0, 2)+&quot;%'&quot; +&quot; order by char_length(Prefix) desc&quot;; System.err.println(&quot;Login.sqlCalcRate: &quot; +&quot; phone_number = &quot;+phone_number+&quot;&quot; } ...
  • 22. Object Reusability, Data integration ... just connect them up! Fitting together ? rather complex Aaaaaimport java.io.*; import java.util.*; import java.io.*; import java.net.*; import Utils.Login; import Utils.Utils; import net.sf.asterisk.manager.*; import net.sf.asterisk.manager.event.*; import net.sf.asterisk.manager.action.*; import net.sf.asterisk.manager.impl.*; import net.sf.asterisk.manager.response.*; import net.sf.asterisk.fastagi.command.SetPriorityCommand; import net.sf.asterisk.fastagi.command.StreamFileCommand; public class MGR_Reminder { static int DELAY_SLEEP_SECS = 3; // Writing from server to ast2 goes about 40kB/sec, but to kvm ast is 500kB/sec // It's about 1MB per minute public static void main(String[] argv) { } static public void writeFileToAsterisk(String filebase, String msg_str) { try { String command=utils.DS_ROOT+&quot;/Eclipse/Scripts/ds.genAudToAst.sh &quot;+user_name+&quot; &quot;+playback_str+ &quot; &quot; + filebase+&quot; &quot;+msg_str; rt.exec(command); } catch (java.io.IOException e) { System.err.println(&quot;Runtime IOException: &quot; + e.toString()); } } private DefaultManagerConnection getDefaultManagerConnection()‏ { DefaultManagerConnection dmc; dmc = new DefaultManagerConnection(); dmc.setUsername(&quot;admin&quot;); dmc.setPassword(&quot;rocky&quot;); dmc.setHostname(Utils.ASTERISK_MANAGER); dmc.setHostname(&quot;ast&quot;); // TODO !! Fix this!!!!!!!! if (dmc==null) { System.out.println(&quot;DefaultManagerConnection: FATAL ERROR null dmc&quot;); } return dmc; } public void placeCall(String filebase, String str_number, String forwarding_number, String maxsecs1, String maxsecs2, String user_name) { try { this.loginAndOriginateCall(filebase, str_number, forwarding_number, maxsecs1, maxsecs2, user_name); } catch (Exception e) { System.out.println(&quot;ERROR IN MGR_Reminder main RUNNING OF mgr.testLogin&quot;); e.printStackTrace(); } import java.sql.Connection; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.SQLException; import java.sql.Statement; import java.sql.DriverManager; public class calcRate { static public Connection mysql_connection=null; public calcRate() { } public Connection testConnection(String host, String db, String user, String pass) { String diag_str=&quot;&quot;; try { Class.forName(&quot;com.mysql.jdbc.Driver&quot;).newInstance(); } catch (Exception ex) { System.err.println(&quot;ERROR in newInstance of Login Class.forName(com.mysql.jdbc.Driver.newInstance():&quot;+ex); return((Connection) null); // Bail out } Connection conn; try { conn = DriverManager.getConnection(&quot;jdbc:mysql://&quot;+host+&quot;/&quot;+ db +&quot;?user=&quot;+user+&quot;&password=&quot;+pass); } catch (SQLException ex) { diag_str +=&quot;ERROR testConnection SQLException: &quot; + ex.getMessage()+&quot;&quot;; System.err.println(diag_str); return((Connection)null); // Bail out } if (conn == null)‏ return(conn); // OK } public double sqlCalcRate(String phone_number) { Statement stmt; int row_counter=0; int max_rows=100; String prefix=&quot;&quot;; String rate=&quot;&quot;; String destname=&quot;&quot;; if (phone_number==null)‏ return(-1); if (phone_number.length()<3)‏ return(-1); if (0==phone_number.indexOf(&quot;1&quot;)) // This is a US/Canada number return(DEFAULT_PHONE_COST_US_CANADA); else if (0==phone_number.indexOf(&quot;011&quot;))‏ phone_number = phone_number.substring(3); // Trim off the 01 and use the rest else // We don't have an international code, so assume it's to the US/Canada return(DEFAULT_PHONE_COST_US_CANADA); Connection conn = mysql_connection; if (conn==null) { System.err.println(&quot;sqlCalcRate has null connections&quot;); return(-2); } String query_str = &quot;select Prefix, Rate, Rate from asteriskcdrdb.rates where Prefix like &quot; +&quot;'&quot;+phone_number.substring(0, 2)+&quot;%'&quot; +&quot; order by char_length(Prefix) desc&quot;; System.err.println(&quot;Login.sqlCalcRate: &quot; +&quot; phone_number = &quot;+phone_number+&quot;&quot; } ...
  • 23. Object Reusability, Data integration ... & Brain Transplants: just connect them up! Fitting together ? rather complex Aaaaaimport java.io.*; import java.util.*; import java.io.*; import java.net.*; import Utils.Login; import Utils.Utils; import net.sf.asterisk.manager.*; import net.sf.asterisk.manager.event.*; import net.sf.asterisk.manager.action.*; import net.sf.asterisk.manager.impl.*; import net.sf.asterisk.manager.response.*; import net.sf.asterisk.fastagi.command.SetPriorityCommand; import net.sf.asterisk.fastagi.command.StreamFileCommand; public class MGR_Reminder { static int DELAY_SLEEP_SECS = 3; // Writing from server to ast2 goes about 40kB/sec, but to kvm ast is 500kB/sec // It's about 1MB per minute public static void main(String[] argv) { } static public void writeFileToAsterisk(String filebase, String msg_str) { try { String command=utils.DS_ROOT+&quot;/Eclipse/Scripts/ds.genAudToAst.sh &quot;+user_name+&quot; &quot;+playback_str+ &quot; &quot; + filebase+&quot; &quot;+msg_str; rt.exec(command); } catch (java.io.IOException e) { System.err.println(&quot;Runtime IOException: &quot; + e.toString()); } } private DefaultManagerConnection getDefaultManagerConnection()‏ { DefaultManagerConnection dmc; dmc = new DefaultManagerConnection(); dmc.setUsername(&quot;admin&quot;); dmc.setPassword(&quot;rocky&quot;); dmc.setHostname(Utils.ASTERISK_MANAGER); dmc.setHostname(&quot;ast&quot;); // TODO !! Fix this!!!!!!!! if (dmc==null) { System.out.println(&quot;DefaultManagerConnection: FATAL ERROR null dmc&quot;); } return dmc; } public void placeCall(String filebase, String str_number, String forwarding_number, String maxsecs1, String maxsecs2, String user_name) { try { this.loginAndOriginateCall(filebase, str_number, forwarding_number, maxsecs1, maxsecs2, user_name); } catch (Exception e) { System.out.println(&quot;ERROR IN MGR_Reminder main RUNNING OF mgr.testLogin&quot;); e.printStackTrace(); } import java.sql.Connection; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.SQLException; import java.sql.Statement; import java.sql.DriverManager; public class calcRate { static public Connection mysql_connection=null; public calcRate() { } public Connection testConnection(String host, String db, String user, String pass) { String diag_str=&quot;&quot;; try { Class.forName(&quot;com.mysql.jdbc.Driver&quot;).newInstance(); } catch (Exception ex) { System.err.println(&quot;ERROR in newInstance of Login Class.forName(com.mysql.jdbc.Driver.newInstance():&quot;+ex); return((Connection) null); // Bail out } Connection conn; try { conn = DriverManager.getConnection(&quot;jdbc:mysql://&quot;+host+&quot;/&quot;+ db +&quot;?user=&quot;+user+&quot;&password=&quot;+pass); } catch (SQLException ex) { diag_str +=&quot;ERROR testConnection SQLException: &quot; + ex.getMessage()+&quot;&quot;; System.err.println(diag_str); return((Connection)null); // Bail out } if (conn == null)‏ return(conn); // OK } public double sqlCalcRate(String phone_number) { Statement stmt; int row_counter=0; int max_rows=100; String prefix=&quot;&quot;; String rate=&quot;&quot;; String destname=&quot;&quot;; if (phone_number==null)‏ return(-1); if (phone_number.length()<3)‏ return(-1); if (0==phone_number.indexOf(&quot;1&quot;)) // This is a US/Canada number return(DEFAULT_PHONE_COST_US_CANADA); else if (0==phone_number.indexOf(&quot;011&quot;))‏ phone_number = phone_number.substring(3); // Trim off the 01 and use the rest else // We don't have an international code, so assume it's to the US/Canada return(DEFAULT_PHONE_COST_US_CANADA); Connection conn = mysql_connection; if (conn==null) { System.err.println(&quot;sqlCalcRate has null connections&quot;); return(-2); } String query_str = &quot;select Prefix, Rate, Rate from asteriskcdrdb.rates where Prefix like &quot; +&quot;'&quot;+phone_number.substring(0, 2)+&quot;%'&quot; +&quot; order by char_length(Prefix) desc&quot;; System.err.println(&quot;Login.sqlCalcRate: &quot; +&quot; phone_number = &quot;+phone_number+&quot;&quot; } ...
  • 24. Immune system, Protein ‘lock and key’ model Biology Fitting together ? rather complex
  • 25. Self-organizing => don’t need to know details Immune system, Protein ‘lock and key’ model Biology Fitting together ? complex … But biological systems are self organizing
  • 26. Self-organizing: The Solution? Self-organizing data New Input Self- connecting Self-organizing => don’t need to know details
  • 27. Self-organizing: The Solution? Are Operations different from Data?
  • 28. Self-organizing: The Solution? Are Operations different from Data? Data & Operations merge
  • 29. Self-organizing: The Solution? Self-organizing data and operations New Input Self- connecting Self-organizing => don’t need to know details
  • 30. Self-organizing: The Solution? New Input Self- connecting Operation, Action Self-organizing => don’t need to know details Self-organizing data and functions
  • 32. Input Processing ... DataSea Network
  • 33. Input Output Answers pulled from network DataSea Network
  • 34. Input Output Fusion ... - Entire network accessible you can get there from here - Immediate influence from new info - Inferencing DataSea Network
  • 35. Input Output DataSea Network Reduces ... - difficult UI navigation - multiple, precise steps & decisions - False negatives (null intersection)‏
  • 36. Multi-Source, Multi-modal : Inputs Voice Applications SQL-RDBMS XML/HTML MS Office: Excel/ Word/Outlook Computer PDA Voice & Text Notes Thesaurus Corporate Repositories Google: web and Desktop VoIP Outputs DataSea Assimilation
  • 37.
  • 38. Integrating with the Real World Upload Files AddressBook, SpreadSheets, Text, HTML Crawl Relational DataBase Customize GUI for application specific needs
  • 39.
  • 40. Point of View ... Data Modules Load Another User's Data, run a query:  see the world from their Point of View
  • 41. Application ... Product 1: Salesforce.com plugin (beta) Gives: - Single-Step - Query expansion - Actions
  • 42.
  • 43. SF: DataSea; one step, richer response Finding accounts and contacts in Chicago 1) “show Chicago”
  • 44.
  • 45.
  • 46. Broad Applicability Applications: - Salesforce.com (beta)‏ - Personal Assistant ‏ - Corporate DB/Knowledge-base - Corporate web portal - Identity Sharing - Home Voice companion (prototyped)‏ - Business Portal (design) - Intelligence community DataSea Assimilation
  • 47. Broad Applicability Applications: - Salesforce.com (beta)‏ - Personal Assistant ‏ - Corporate DB/Knowledge-base - Corporate web portal - Identity Sharing - Home Voice companion (prototyped)‏ - Business Portal (design) - Intelligence community DataSea Assimilation
  • 48. Broad Applicability Applications: - Salesforce.com (beta)‏ - Personal Assistant ‏ - Corporate DB/Knowledge-base - Corporate web portal - Identity Sharing - Home Voice companion (prototyped)‏ - Business Portal (design) - Intelligence community DataSea Assimilation
  • 49. Evolution of Search and Actions Traditional systems Evolution (“Intelligence”)‏ Procedural Neural-like Human DataSea
  • 50. Trans-Application Fusion CRM data Corp’ DB App’ data DataSea Assimilates, ‘connects the dots’ In-house App CRM App DB App
  • 51.
  • 52. Contact Us CEO: Rocky Nevin [email_address] CFO: Linda Webster [email_address] SalesForce DataSea Plugin Pending SFDC Appexchange certification DataSea, Inc. www.DataSea.com
  • 53. An eComm 2008 presentation – http://eCommMedia.com for more

Notas del editor

  1. RN, startup applying NNet-like processing to Information systems In graduate school I studied the connections of neurons in an insect. I wanted to entitle my dissertation “RoboCricket” but my advisor said no. While I appropriately acceded to his advice, that name seemed appropriate to me because they are like little robots: very, very good at what they do, and their information processing is different than that of the computers which I used to help analyze the little creatures’ morphology. I will talk about a different way to store and process info’, more like how we think. This helps us communicate with the machine And I’ll talk about self-organizing systems which give Data and Function Modules, and let us see the worl from the POV of others ... this is relevant to social networking apps.