CodeMap Google Maps for Source Code Yoann Padioleau (Facebook)

Slides:



Advertisements
Similar presentations
ConfluentMinds Solutions Socializing Knowledge
Advertisements

Extending Eclipse Kai-Uwe Mätzel IBM OTI Labs Zurich
Designing Corporate Communication Intranets: Tips&Tools Manuel Gago Manuel Gago University of Santiago de Compostela Department of Communication.
EMu New Features 2013 Bernard Marshall KE Software.
Visualizing maps on the web. What is a Map? A map is a drawing that is the representation, on a certain scale, of a terrain.
HalFILE 2.1 New Application Features Session I-a.
NW Mapbook Application ftp.esri.com, login: nwmapbook password: nwma1456 ftp.esri.com April 18, 2006.
Test Automation: Coded UI Test
Google Earth/Sky in the Classroom. What is Google Earth/Sky? Google Earth is free program which allows users to: Explore geographic locations both on.
Location Tracker Maciej Mensfeld Presented by: Maciej Mensfeld Location Tracker dev.mensfeld.pl github.com/mensfeld.
Software Testing with Visual Studio 2013 & Team Foundation Server 2013 Benjamin Day.
ONYX RIP Version Technical Training General. Overview General Messaging and What’s New in X10 High Level Print and Cut & Profiling Overviews In Depth.
Morris LeBlanc.  Why Image Retrieval is Hard?  Problems with Image Retrieval  Support Vector Machines  Active Learning  Image Processing ◦ Texture.
ClearEye: An Visualization System for Document Revision CPSC 533C Project Update Qiang Kong Qixing Zheng.
Linux+ Guide to Linux Certification, Second Edition
Computer Science 162 Section 1 CS162 Teaching Staff.
FHIRFarm – How to build a FHIR Server Farm (quickly)
5 Copyright © 2009, Oracle. All rights reserved. Defining ETL Mappings for Staging Data.
Standards for Technology in Automotive Retail STAR Workbench 1.0 Michelle Vidanes & Dave Carver STAR XML Data Architects, Certified Scrum Masters.
Wordpress SEO. Your Own Website If you want your own website, we have designed Wordpress website templates that you can purchase that have pretty much.
HTML and Designing Web Pages. u At its creation, the web was all about –Web pages were clumsily assembled –Web sites were accumulations of hyperlinked.
© 2010 OpenLink Software, All rights reserved. Linked Data Visualization Using HTML5 based PivotViewer By Kingsley IdehenKingsley Idehen Twitter
What is Web Design?  Web design is the creation of a Web page using hypertext or hypermedia to be viewed on the World Wide Web.
Fusion Overview Paul Spencer CTO Jason Fournier Product Manager
A guide for UICET for using Wikispaces.  A wiki is a web page or collection of web pages that can be linked together as a website.  Wikis are often.
By LaBRI – INRIA Information Visualization Team. Tulip 2010 – version Tulip is an information visualization framework dedicated to the analysis.
Project 9 Using Visual Basic for Applications (VBA) to Customize and Automate Excel Jason C. H. Chen, Ph.D. Professor of Management Information Systems.
Source Forge Phi Le Thanh Huynh Surinder Singh Benjamin Roppiyakuda.
Presented by Abirami Poonkundran.  Introduction  Current Work  Current Tools  Solution  Tesseract  Tesseract Usage Scenarios  Information Flow.
2. Introduction to the Visual Studio.NET IDE. Chapter Outline Overview of the Visual Studio.NET IDE Overview of the Visual Studio.NET IDE Menu Bar and.
Dali JPA Tools. About Dali Dali JPA Tools is an Eclipse Web Tools Platform sub-Project Dali 1.0 is a part of WTP 2.0 Europa coordinated release Goal -
1 Change Personnel Number (via transaction ZMTRR_TRAVEL_WORK_LI) If your security prevents you from accessing the employee using the Change Personnel Number.
G.Sirri – INFN Bologna videconf /14 Fiducial Mark Finding with ESS  Lateral Mark Finding [FlexMapX]: Recommended release 42b ( )
Microsoft Academic Search Search | Explore | Discover Alex D. Wade Director - Scholarly Communication.
AUTOMATION OF WEB-FORM CREATION - KINNERA ANGADI – MS FINAL DEFENSE GUIDANCE BY – DR. DANIEL ANDRESEN.
Introduction to CacheWorx Lucian Plesea - Esri Robert Jensen - Esri.
Implementation Strategies ONE COMPUTER and DATA PROJECTOR  Whole class lesson with mixed ability groups  Model use of manipulatives  Problem-solving.
Netbeans Intro & Who's used Netbeans And then un-installed it?
Your Friendly Neighborhood Search Engine January 12, 2006 Eric Holter Newfangled Web Factory.
Office 2003 to Office 2007 Transition. What’s New?  Improved GUI  Bigger spreadsheets  1,048,576 rows x 16,384 columns  Improved memory and multi.
 By Thu Nguyen  Advisor: Prof. Krzysztof Janowicz GEOG 596A – Capstone Project.
Technical Workshops | Esri International User Conference San Diego, California Creating Geoprocessing Services Kevin Hibma, Scott Murray July 25, 2012.
Demo: Power Tools for P8 Presenter: Jay Bowen Demonstration Topic: Choice List Features Demo URL below Power Tools Choice List Support 1. Native P8 Choice.
Eclipse 3.1 IDE Overview.
***Adding items to your Etudes Homepage*** Log into Etudes
The Birth & Growth of Web 2.0 COM 415-Fall II Ashley Velasco (Prince)
Ryan MacDowell Marko Popović.  Currently it takes too much time and effort to understand how, where, and when people spend their money  Create a web.
Software. A web site is a collection of web pages on a particular topic. A web page is a document written in HTML code. Web pages are linked together.
ATN GIS Support ArcGIS: ArcCatalog.
Introduction to the Semantic Web and Linked Data
Pad++: A Zooming Graphical Interface for Exploring Alternate Interface Physics Presented By: Daniel Loewus-Deitch.
Linux+ Guide to Linux Certification, Second Edition Chapter 4 Exploring Linux Filesystems.
Windows Azure and iOS Chris Risner Windows Azure Technical Evangelist Microsoft
By: Your Name ELEMENTS OF WEB DESIGN. VISUAL APPEAL Optimization of Graphics, for people to stay on your website, your pictures have to load out as soon.
MarkLogic The Only Enterprise NoSQL Database Presented by: Aashi Rastogi ( ) Sanket Patel ( )
CSCI 3100 Tutorial 5 JavaScript & Ajax Jichuan Zeng Department of Computer Science and Engineering The Chinese University of Hong.
More Graphics. Hit Testing Mouse clicked here What did I click on?
Customer Webinar December 3, 2008
Imaging and Design for Online Environment
Nope OS Prepared by, Project Guides: Ms. Divya K V Ms. Jucy Vareed
Logo here Module 3 Microsoft Azure Web App. Logo here Module Overview Introduction to App Service Overview of Web Apps Hosting Web Applications in Azure.
Steering Group Member, Link Digital
Create your Benner - intro
ورشة عمل : لنفبرك معاً! تقديم : مها عبوش.
Text Editors Vim (Chapter 6) Emacs (Chapter 7)
INFO 344 Web Tools And Development
Yoann Padioleau (Facebook)
Dreaming up a CMS in Go (golang)
Enol Fernandez & Giuseppe La Rocca EGI Foundation
Transitioning To Windows 8 & Touchscreen 5 March 2013
Presentation transcript:

CodeMap Google Maps for Source Code Yoann Padioleau (Facebook)

About this talk Feel free to ask questions during the talk Disclaimer: I do not represent Facebook

Problem Dealing with huge codebase is difficult for noobs or new employees. Typical questions: What are the important functions in big API? What are the entry points? What is the big picture? Spend time mostly reading/understanding code, not so much writing new code. Tools to assist reading and understanding code?

Recent technological changes Huge monitors, 30 Often have multiple ones Very high resolution (2600 x 1700) But we still use 80-columns based editors Can we leverage all those pixels?

Codemap Approach Focus on assist reading/understanding code Program analysis + information visualization Google maps metaphor Zoom in/out Important stuff should be bigger

Demo

Features Big picture, treemaps, macro level Search, navigation Semantic-based code highlightingmicro level Connection to editor (emacs/vim) Extensible via layers (predator mode) Codemap is not an editor

Features: treemap Each rectangle is a file Size of rectangle =~ size of file Color of rectangle = aspect (test, main, storage, security, etc) Code aware (heuristics) Auto generated file do not eat real-estate Code is more important than data, xml, jpg Tiling, use all the space

Features: search and navigation Search Highlighted rectangle Ranked entities Navigation Up/down (not as smooth as google maps) Direct access to file (faster than speedbar or expand-directory widgets) Can see spread directories

Features: semantic code visualizer grammar-based highlighting, not regexps as in emacs/vim Know records vs functions vs constants Functions/classes are in bigger size than statements Tiling, use all the space, multi columns Semantic aware (global analysis) Important functions are in bigger size

Layers: alternate color schemes Age (help find dead code) #authors (important stuff usually) Activity (whats going on?) Code coverage Bugs/warnings of linter grep/sgrep results Top/Bottom modules …

Conclusion A semantic-based source code visualizer/searcher/navigator Accelerate loading the code into your brain (can see 20 files at once) Future work: Web UI, LXR 2? Smoother zoom Module/package dependencies $ git clone git://github.com/facebook/pfff.git

Related work SeeSoft (does not scale, no treemaps) Code Thumbnails (2 different modes) 3d visualization (not sure it helps, eat pixels) Disk explorer (not code aware, no micro- level)