SlideShare uma empresa Scribd logo
1 de 129
MY LAST THREE PROJECTS
WINS AND FAILURES
Created by /Anton Katunin @antulik
ABOUT ME
Bachelor of IT at UQ
MS Access and VBA
C# and .Net
Ruby on Rails
Javascript
Visualisations
AGENDA
TwinMaze
TopicRay.com
StoryLine.im
TWINMAZE
Movie recomendation website
Feb 2011
FRUSTRATION
Hard to find movies you would enjoy
General ratings don't work (IMDB)
e.g. movies you enjoy aren't neccessary have high rating
THE IDEA
What if ...
you had a clone of yourself
it could watch movies
and you could do other things
then he could tell you what is good and what is not
just like twins
TWINS
What if ...
You had not 1 twin
but 2 twins
or 10 twins
or 100 twins
or 1000 twins
PLAN
1. Select movies you like and don't
2. Run magic algorithm
3. Get personalised movie recommendations
ALGORITHM
Machine learning
Neuron networks
Data mining
just keep it simple
ALGORITHM
Step 1. Find your top Twins
Match each user with every other user
Calculate compatibility rating between each pair of users
REPLACE INTO `user_twins`
(`user_id`, `twin_id`, `avg_difference`,
`percent`, `movies_matched`, `level`, `updated_at`)
(select user_id,twin_id, avg_difference, percent, movies
_matched,
if(percent > 92.5, 1,
if(percent > 90, 2,
if(percent > 87.5, 3,
if(percent > 85, 4,
if(percent > 82.5, 5,
if(percent > 80, 6,
if(percent > 77.5, 7,
if(percent > 75, 8, 9)))))))),
CURRENT_TIMESTAMP
from
(select sr.user_id as user_id, sr.twin_id as twin_id,
Sum(single_points) as avg_difference,
(10-(Sum(single_points)/count(*)))*10 as percent, count(
*) as movies_matched
from
(select mr1.user_id as user_id,
mr2.user_id as twin_id,
ABS(mr1.rating-mr2.rating) as single_points
from user_votes as mr1 join user_votes as mr2
on mr1.movie_id = mr2.movie_id and mr1.user_id <> mr2.us
er_id
where mr1.user_id = %d)
as sr
group by sr.user_id, sr.twin_id
having count(*) >= %d) as t2
);
ALGORITHM
Step 2. Calculate personalized movie ratings
Pick 1000 best twins
Combine their ratings
Predict rating for each movie
Pick best movies which user haven't seen
select ...
Power(10-level, ln(count(*))/ln(2.5)) * count(*) * avg(ratin
g) as rating_points_sum,
Power(10-level, ln(count(*))/ln(2.5)) * count(*) as vote_poi
nts_sum,
ln(count(*))/ln(2.5) as power,
PROBLEM
Where do you get your movie catalogue?
IMDB.com - good and expensive
TMDB.org - okay and free
BIG PROBLEM
How do you test your recommendations
when you have 0 users?
MORE USERS = BETTER SYSTEM
Another Social network?
BOOTSTRAP THE DATA
get data from other websites
DARK DAYS
web crawler days
5 days
17GB of web pages (no images)
30k users
500k ratings
user accounts data?? WAT!?
ONE SUPRISING MORNING
/logs
/backups
THE NEXT DAY...
BANNED!
at least they fixed their security issues...
... you are welcome!
HOW TO SAVE $10/M
or hosting from home
TEAM
divide and conquer
business + design + development
founders vs contributors
50% OF NOTHING IS $0
TESTING
It works!
LAUNCH!!
Not sure if we ever launched
WHAT'S NEXT?
Push or drop?
Performance is slow
(10s + 2min per user)
Movie database quality is bad
Dealing with competitors
Social network effect
WHAT'S NEXT?
Push or drop?
DROP!
TOPICRAY
multi-threaded chat system
Sep 2011
FRUSTRATION
chats are hard for work discussions
deep comments
GoogleWave is closed
HackerNews nested comments
CONTEXT
context in a converstion
or 'what do you mean'
think of bug reports
THE IDEA
What if ...
You could never mix context in your discussions
PROBLEM ANALYSIS
hierarchical data
very very deep hierarchical data
TOPICRAY PROGRESS
start with the end in mind
html map, topic list, linear chat view
styles, linear chat with rotation
map in ocanvas
map is draggable, chat space view
different layout with bigger chat view, focused message
trying another layout
and another, direction of chat is the same as on the map
switched to panels, map is expandable
straight layout + transparency
collapsable messages
collapsable messages with limit and size
moved away from draggable map to automatic map layout
moved away from panels, added bootstrap css, map is not expandable
consistent color scheme, topic headers, issues with ui overlap, topic name at the corner
unread messages, collapsable limit set to one
trying sunburst map layout in d3.js
added map view with icicle graph
icicle graph styles
removed inline map, sorted topic list, experimenting with floating messages
rebranded to TopicRay, added focused line, hacker news integration
topic list is transparent
icicle with unread messages
attempt to improve icicle
inline sunburst graph
animation for sunburst
tree depth indicator, inline message radar
new conversation tree view
DEMO
STACK
Backend:
Ruby on Rails + Postgres
Frontend:
HTML + CSS + SCSS + jQuery
backbone.js
oCanvas, d3.js
websockets (Pusher)
twitter bootstrap
and others
PERFORMANCE ISSUES
jQuery.animate is very slow
Firefox -> Chrome
TOPICRAY LAUNCH
HackerNews
We need blog
ONE MONTH LATER...
It's time to launch!!
and ...
NOTHING HAPPENED!
WHAT'S NEXT?
Push or drop?
1 year old
solid proof of concept
no real use case
no competitors
no market?
WHAT'S NEXT?
Push or drop?
HOLD!
LESSONS
Keep history of your progress
Don't strive for perfection
Release as soon as you can
Have a blog
Keep asking for feedback
Javascript frameworks are good
Browsers are not as fast
AND
ITERATE
ITERATE
ITERATE
STORYLINE
HISTORIC NEWS BROWSER
FRUSTRATION
I hate twitter!!
@antulik
Google Reader
300 rss articles per day
Too much information
Too little time
THE IDEA
What if ...
we had a tool which could
give us insights into information importance
tool which would
structure and prioritise information
get inspired
STORYLINE PROGRESS
started with google calendar
prettify
moved to force graph
group into lines
add twitter
focus on twitter, calendar list
focus on twitter, zoom
navigation slider
prettify, add top previews
add avatars
add inline link preview
remove link preview
x axis is minutes
twisted layout 1/2 (DNA?)
twisted layout 2/2
bended lines
problems with size
zoom 1/5
zoom 2/5
zoom 3/5
zoom 4/5
zoom 5/5
added mouse scroll
reddit and multi-calendar colors
make everything smaller
grouped per lines, less chaos
another twist layout attemp
lines with small overlap
top 10 reddit streams for 12 hours
screencast v2
calendars hidden, add links preview
HackerNews integration
repositioned ui, mark as read, 4 previews
smarter selection
add tutorial, joyride.js
DEMO
TESTING
common reaction
WOW! IT'S AWESOME!
WHAT IS IT?
EXPLANING
narrowing down
from
data visualisation tool
to
historic news browser
STACK
Backend:
Ruby on Rails + Postgres
Frontend:
HTML + CSS + SCSS + jQuery
ember.js
d3.js
twitter bootstrap
S3 + CloudFront CDN
and others
BRANDING
'StoryLine' is too popular
HooDB.com?
StoryParticles.com?
.com?
StoryLine.im
LAUNCH
on HackerNews
+ facebook, twitter, gplus
attempt #2
at BrisJelly
LAUNCH STATS
in 24 hours
85 up votes
4k unique visitors
9.5k pageviews
600 visitors/hour peak
No performance issues during launch
StoryLine on StoryLine
PERFORMANCE ISSUES
800+kb .js file
1000+ animated objects
Optimised filtering
Smart fetching
How many times to redraw
Chrome vs others
LESSONS
Grow and change ideas
Browser perfomance is hard
Communicating ideas is hard
Iterate
Ember.js + d3.js is a killer combo
Caching and CDN - FTW!
Web analytics to measure success
WHAT'S NEXT?
Push or drop?
PUSH!
CAMPJS
campjs.com
9-11th August
THE END
TwinMaze
TopicRay.com
StoryLine.im
@antulik

Mais conteúdo relacionado

Semelhante a My last three projects - wins and failures

AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
VictorSzoltysek
 
Zimmertwins Presentation
Zimmertwins PresentationZimmertwins Presentation
Zimmertwins Presentation
Ashok Modi
 
Data Science Challenge presentation given to the CinBITools Meetup Group
Data Science Challenge presentation given to the CinBITools Meetup GroupData Science Challenge presentation given to the CinBITools Meetup Group
Data Science Challenge presentation given to the CinBITools Meetup Group
Doug Needham
 
Cool Software Tips And Tricks
Cool Software Tips And TricksCool Software Tips And Tricks
Cool Software Tips And Tricks
trudeaujp
 

Semelhante a My last three projects - wins and failures (20)

Micro services
Micro servicesMicro services
Micro services
 
Demo day
Demo dayDemo day
Demo day
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
 
Dato Keynote
Dato KeynoteDato Keynote
Dato Keynote
 
Rails in the Large - Neal Ford
Rails in the Large - Neal FordRails in the Large - Neal Ford
Rails in the Large - Neal Ford
 
data-science-pdf-16588.pdf
data-science-pdf-16588.pdfdata-science-pdf-16588.pdf
data-science-pdf-16588.pdf
 
Zimmertwins Presentation
Zimmertwins PresentationZimmertwins Presentation
Zimmertwins Presentation
 
Kaz Sato, Evangelist, Google at MLconf ATL 2016
Kaz Sato, Evangelist, Google at MLconf ATL 2016Kaz Sato, Evangelist, Google at MLconf ATL 2016
Kaz Sato, Evangelist, Google at MLconf ATL 2016
 
Data Science Challenge presentation given to the CinBITools Meetup Group
Data Science Challenge presentation given to the CinBITools Meetup GroupData Science Challenge presentation given to the CinBITools Meetup Group
Data Science Challenge presentation given to the CinBITools Meetup Group
 
Cloudera Data Science Challenge
Cloudera Data Science ChallengeCloudera Data Science Challenge
Cloudera Data Science Challenge
 
Cool Software Tips And Tricks
Cool Software Tips And TricksCool Software Tips And Tricks
Cool Software Tips And Tricks
 
Building a game engine with jQuery
Building a game engine with jQueryBuilding a game engine with jQuery
Building a game engine with jQuery
 
Social Network Analysis Introduction including Data Structure Graph overview.
Social Network Analysis Introduction including Data Structure Graph overview. Social Network Analysis Introduction including Data Structure Graph overview.
Social Network Analysis Introduction including Data Structure Graph overview.
 
Adding a DBpedia Mapping
Adding a DBpedia MappingAdding a DBpedia Mapping
Adding a DBpedia Mapping
 
WannaEat: A computer vision-based, multi-platform restaurant lookup app
WannaEat: A computer vision-based, multi-platform restaurant lookup appWannaEat: A computer vision-based, multi-platform restaurant lookup app
WannaEat: A computer vision-based, multi-platform restaurant lookup app
 
2020 04 04 NetCoreConf - Machine Learning.Net
2020 04 04 NetCoreConf - Machine Learning.Net2020 04 04 NetCoreConf - Machine Learning.Net
2020 04 04 NetCoreConf - Machine Learning.Net
 
50 Ways To Love Your Project
50 Ways To Love Your Project50 Ways To Love Your Project
50 Ways To Love Your Project
 
Performance By Design
Performance By DesignPerformance By Design
Performance By Design
 
Gaps in the algorithm
Gaps in the algorithmGaps in the algorithm
Gaps in the algorithm
 
Voxxed Athens 2018 - UX design and back-ends: When the back-end meets the user
Voxxed Athens 2018 - UX design and back-ends: When the back-end meets the userVoxxed Athens 2018 - UX design and back-ends: When the back-end meets the user
Voxxed Athens 2018 - UX design and back-ends: When the back-end meets the user
 

Último

EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
 

Último (20)

Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
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
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
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
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 

My last three projects - wins and failures