SlideShare une entreprise Scribd logo
1  sur  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

Contenu connexe

Tendances

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
 

Tendances (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
 

En vedette

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
 

En vedette (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
 

Similaire à 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.
 

Similaire à 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
 

Plus 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
 

Plus 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
 

Dernier

ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesrafiqahmad00786416
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Orbitshub
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Victor Rentea
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 
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
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsNanddeep Nachan
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusZilliz
 
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
 
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
 
Cyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdfCyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdfOverkill Security
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...Zilliz
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKJago de Vreede
 

Dernier (20)

ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
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
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
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
 
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
 
Cyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdfCyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdf
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
 

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

Notes de l'éditeur

  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.