SquirrelENABLING ACCESSIBLE ANALYTICS FOR ALL
A Small Data Movement for Developer, Consumers and Business Users
Create simpler, smarter and more responsive applications
Provide intuitive experiences that are easier to consume
Reach mobile users
Tools for Data Processing and Analytics leveraging the full .NET stack
I/O Blocks
Data Modeling
Database ConnectorsData
Generation
Data Visualization Adaptors
Statistics & Mathematics
Data Cleansing
The Templatized Design StyleThe Function Stack
I/O Blocks
Data Modeling
Database ConnectorsData
Generation
Data Visualization Adaptors
Statistics & Mathematics
Data Cleansing
The Templatized Design StyleThe Function Stack
Add rows based on shorthand
increment functions
Standard Data input formats e.g. CSV, TXT,
XLS, ARFF, XLX, HTML, XML, JSON
RDBMS and NOSQL
connectors e.g. SQL Server, MongoDB
I/O Blocks
Data Modeling
Database ConnectorsData
Generation
Data Visualization Adaptors
Statistics & Mathematics
Data Cleansing
The Templatized Design StyleThe Function Stack
All data is transformed into an
internal data structure
representation
I/O Blocks
Data Modeling
Database ConnectorsData
Generation
Data Visualization Adaptors
Statistics & Mathematics
Data Cleansing
The Templatized Design StyleThe Function Stack
Removing duplicates,
Outlier extraction
Highcharts, Google Charts, D3.js
I/O Blocks
Data Modeling
Database ConnectorsData
Generation
Data Visualization Adaptors
Statistics & Mathematics
Data Cleansing
The Templatized Design StyleThe Function Stack
Basic functions like Median,
Range, Standard deviation,
Kurtosis, etc.
Applying the Templatized Design StyleExample #1: Question – Do women tip more than men?
// Load the data Table tips = DataAcquisition.LoadCSV(@"..\..\tips.csv");
//Add a new column based on a formulatips.AddColumn(columnName: "tip%", formula: "[tip]*100/[totbill]", decimalDigits: 3);
tips//Pick the columns to display.Pick("sex", "tip%")//Aggregate the tip% values.Aggregate("sex", AggregationMethod.Average)//Round off the result.RoundOffTo(2)//Display the result on console.PrettyDump();
sex tip% F 16.65 M 15.77
Answer – Yes! Women do tip more than men.
Applying the Templatized Design StyleExample #1: Question – What is the range of the iris dataset?
Table iris = DataAcquisition.LoadCSV(@"iris.csv");
StringBuilder builder = new StringBuilder();builder.AppendLine("<html>");builder.AppendLine("<h2>Range</h2>");
builder.AppendLine(iris.Aggregate("Name", AggregationMethod.Range).ToBasicBootstrapHTMLTable(BootstrapTableDecorators.BootstrapTableClasses .Table_Striped)););
builder.AppendLine("</html>");StreamWriter writer = new StreamWriter("temp.html");writer.WriteLine(builder.ToString());writer.Close();
Answer – Iris-setosa has the least Petal width while the Iris-virginica has the largest Sepal length.
Name SepalLength SepalWidthPetalLength PetalWidth Iris-setosa 1.5 2.1
0.9 0.5 Iris-versicolor 2.1 1.4
2.1 0.8Iris-virginica 3.0 1.6
2.4 1.1
Reaching Mobile UsersIntegration with Android Devices
Typed Duplex Message sender
User Code in Java
Typed Duplex Message receiver
User Code in C#
Eneter for Android Eneter for .NETSquirrel Application on Android Squirrel Application on .NET
SendRequests
ReceiveResponses
SendMessages
ObserveResponseMessages
ObserveMessages
SendResponseMessages
ReceiveRequests
MessageChannel
SendResponses
• A simple request-response communication• The Android device is a client to the .NET
application as a service• Uses Eneter (www.eneter.net) as the
messaging framework
What’s coming up?New and Enhanced features
Table API 1.0.1(now)
Current version
Table API 1.1 ( 3 months)
• Enhanced Support for Connectors
• Connect to all relevant enterprise and application data and content sources• RDBMS, NoSQL,
Hadoop, social media, machine data, …
Table API 2.0 ( 6 months)
• Smart Defaults, e.g. Sort of weekday
• One API for Data Visualization• Charts on
Tableau, Google Charts using the same API
Table API 3.0 ( 1
year)
• Voice Recognition• Smart
Slicing/Dicing with Voice commands, Ad-hoc Voice query for Data Visualization
• Gesture Recognition• Change, Create
Data Visualization with Gestures, Zoom, Scale, …
Thank you!Experiment, Adopt, Collaborate email to: [email protected] or [email protected]
References1. Squirrel - https://github.com/sudipto80/Squirrel2. Small Data and IoT –
a) https://ctovision.com/2015/01/beyond-iot-buzz-new-horizon-embedded-intelligence-information-flows-seriously-smart-apps/
b) http://smalldatagroup.com/2013/10/18/defining-small-data/