SlideShare a Scribd company logo
[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

More Related Content

What's hot

Python and sysadmin I
Python and sysadmin IPython and sysadmin I
Python and sysadmin I
Guixing 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 Zakharenko
Nina Zakharenko
 
java 8 Hands on Workshop
java 8 Hands on Workshopjava 8 Hands on Workshop
java 8 Hands on Workshop
Jeanne Boyarsky
 
Programming Under Linux In Python
Programming Under Linux In PythonProgramming Under Linux In Python
Programming Under Linux In Python
Marwan Osman
 
Learn python - for beginners - part-2
Learn python - for beginners - part-2Learn python - for beginners - part-2
Learn python - for beginners - part-2
RajKumar 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 Without
Audrey 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 2
Zaar Hai
 
PostgreSQL: How to Store Passwords Safely
PostgreSQL: How to Store Passwords SafelyPostgreSQL: How to Store Passwords Safely
PostgreSQL: How to Store Passwords Safely
Juliano Atanazio
 
Memory Management In Python The Basics
Memory Management In Python The BasicsMemory Management In Python The Basics
Memory Management In Python The Basics
Nina 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 python
Charles-Axel Dein
 
Python fundamentals - basic | WeiYuan
Python fundamentals - basic | WeiYuanPython fundamentals - basic | WeiYuan
Python fundamentals - basic | WeiYuan
Wei-Yuan Chang
 
Begin with Python
Begin with PythonBegin with Python
Begin with Python
Narong Intiruk
 
Don't do this
Don't do thisDon't do this
Don't do this
Richard Jones
 
Python Tutorial
Python TutorialPython Tutorial
Python Tutorial
Eueung Mulyana
 
Python for Dummies
Python for DummiesPython for Dummies
Python for Dummies
Leonardo Jimenez
 
AmI 2016 - Python basics
AmI 2016 - Python basicsAmI 2016 - Python basics
AmI 2016 - Python basics
Luigi De Russis
 
Python in 90 minutes
Python in 90 minutesPython in 90 minutes
Python in 90 minutes
Bardia Heydari
 

What's hot (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
 

Viewers also liked

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
eComm2008
 
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 2008
eComm2008
 
Teste Sua personalidade
Teste Sua personalidadeTeste Sua personalidade
Teste Sua personalidade
guest4dbc4c
 
Testesuapersonalidade
TestesuapersonalidadeTestesuapersonalidade
Testesuapersonalidade
guest4dbc4c
 
PresentacióN Diego Traver
PresentacióN Diego TraverPresentacióN Diego Traver
PresentacióN Diego Traver
macbenlliure
 
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 Cars
LinkedIn
 

Viewers also liked (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 to Rocky Nevin's presentation at eComm 2008

Extreme Swift
Extreme SwiftExtreme Swift
Extreme Swift
Movel
 
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
Jamund 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 Rails
freelancing_god
 
Fire-fighting java big data problems
Fire-fighting java big data problemsFire-fighting java big data problems
Fire-fighting java big data problems
grepalex
 
Java
JavaJava
Who pulls the strings?
Who pulls the strings?Who pulls the strings?
Who pulls the strings?
Ronny
 
Easy R
Easy REasy R
Easy R
Ajay Ohri
 
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
SkillCertProExams
 
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
PrestaShop
 
Lec 1 Ds
Lec 1 DsLec 1 Ds
Lec 1 Ds
Qundeel
 
Data Structure
Data StructureData Structure
Data Structure
sheraz1
 
Lec 1 Ds
Lec 1 DsLec 1 Ds
Lec 1 Ds
Qundeel
 
Fantom and Tales
Fantom and TalesFantom and Tales
Fantom and Tales
kaushik_sathupadi
 
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
Jay 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 code
Wim 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 ppp
noc_313
 
Java Intro
Java IntroJava Intro
Java Intro
backdoor
 
Open Source Systems Performance
Open Source Systems PerformanceOpen Source Systems Performance
Open Source Systems Performance
Brendan Gregg
 
Why Java Needs Hierarchical Data
Why Java Needs Hierarchical DataWhy Java Needs Hierarchical Data
Why Java Needs Hierarchical Data
Marakana Inc.
 

Similar to 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
 

More from 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 2008
eComm2008
 
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
eComm2008
 
eComm 2008 Programme Guide
eComm 2008 Programme GuideeComm 2008 Programme Guide
eComm 2008 Programme Guide
eComm2008
 
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
eComm2008
 
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
eComm2008
 
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
eComm2008
 
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
eComm2008
 
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
eComm2008
 
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
eComm2008
 
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
eComm2008
 
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
eComm2008
 
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
eComm2008
 
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
eComm2008
 
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
eComm2008
 
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
eComm2008
 
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
eComm2008
 
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
eComm2008
 
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
eComm2008
 
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
eComm2008
 
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
eComm2008
 

More from 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
 

Recently uploaded

Digital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
Digital Banking in the Cloud: How Citizens Bank Unlocked Their MainframeDigital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
Digital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
Precisely
 
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-EfficiencyFreshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
ScyllaDB
 
Azure API Management to expose backend services securely
Azure API Management to expose backend services securelyAzure API Management to expose backend services securely
Azure API Management to expose backend services securely
Dinusha Kumarasiri
 
dbms calicut university B. sc Cs 4th sem.pdf
dbms  calicut university B. sc Cs 4th sem.pdfdbms  calicut university B. sc Cs 4th sem.pdf
dbms calicut university B. sc Cs 4th sem.pdf
Shinana2
 
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Jeffrey Haguewood
 
Generating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and MilvusGenerating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and Milvus
Zilliz
 
WeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation TechniquesWeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation Techniques
Postman
 
Trusted Execution Environment for Decentralized Process Mining
Trusted Execution Environment for Decentralized Process MiningTrusted Execution Environment for Decentralized Process Mining
Trusted Execution Environment for Decentralized Process Mining
LucaBarbaro3
 
AWS Cloud Cost Optimization Presentation.pptx
AWS Cloud Cost Optimization Presentation.pptxAWS Cloud Cost Optimization Presentation.pptx
AWS Cloud Cost Optimization Presentation.pptx
HarisZaheer8
 
SAP S/4 HANA sourcing and procurement to Public cloud
SAP S/4 HANA sourcing and procurement to Public cloudSAP S/4 HANA sourcing and procurement to Public cloud
SAP S/4 HANA sourcing and procurement to Public cloud
maazsz111
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
shyamraj55
 
Nordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptxNordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptx
MichaelKnudsen27
 
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
saastr
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
tolgahangng
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
Tatiana Kojar
 
Dandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity serverDandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity server
Antonios Katsarakis
 
Public CyberSecurity Awareness Presentation 2024.pptx
Public CyberSecurity Awareness Presentation 2024.pptxPublic CyberSecurity Awareness Presentation 2024.pptx
Public CyberSecurity Awareness Presentation 2024.pptx
marufrahmanstratejm
 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
Zilliz
 
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
Tatiana Kojar
 
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdfMonitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Tosin Akinosho
 

Recently uploaded (20)

Digital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
Digital Banking in the Cloud: How Citizens Bank Unlocked Their MainframeDigital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
Digital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
 
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-EfficiencyFreshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
 
Azure API Management to expose backend services securely
Azure API Management to expose backend services securelyAzure API Management to expose backend services securely
Azure API Management to expose backend services securely
 
dbms calicut university B. sc Cs 4th sem.pdf
dbms  calicut university B. sc Cs 4th sem.pdfdbms  calicut university B. sc Cs 4th sem.pdf
dbms calicut university B. sc Cs 4th sem.pdf
 
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
 
Generating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and MilvusGenerating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and Milvus
 
WeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation TechniquesWeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation Techniques
 
Trusted Execution Environment for Decentralized Process Mining
Trusted Execution Environment for Decentralized Process MiningTrusted Execution Environment for Decentralized Process Mining
Trusted Execution Environment for Decentralized Process Mining
 
AWS Cloud Cost Optimization Presentation.pptx
AWS Cloud Cost Optimization Presentation.pptxAWS Cloud Cost Optimization Presentation.pptx
AWS Cloud Cost Optimization Presentation.pptx
 
SAP S/4 HANA sourcing and procurement to Public cloud
SAP S/4 HANA sourcing and procurement to Public cloudSAP S/4 HANA sourcing and procurement to Public cloud
SAP S/4 HANA sourcing and procurement to Public cloud
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
 
Nordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptxNordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptx
 
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
 
Dandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity serverDandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity server
 
Public CyberSecurity Awareness Presentation 2024.pptx
Public CyberSecurity Awareness Presentation 2024.pptxPublic CyberSecurity Awareness Presentation 2024.pptx
Public CyberSecurity Awareness Presentation 2024.pptx
 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
 
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
 
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdfMonitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdf
 

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

Editor's Notes

  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.