Ustream Techtalks: Google Chrome Developer ToolsMáté Nádasdi
This document provides an overview of Chrome Dev Tools and how it can be used for debugging websites. Some key points covered include:
- Chrome Dev Tools allows debugging of JavaScript, HTML, CSS and network requests. It provides features like logging, breakpoints, and profiling of frames and memory.
- The DevTools UI is based on WebKit, which provides common features across browsers like DOM, CSSOM, and rendering. It shows the DOM tree, render tree, layer tree, and graphics layer tree.
- Panels like Elements, Styles, Network, Timeline, Profiles, and Audits allow inspection and debugging of pages, styles, requests, performance, memory usage and more. Settings allow control of caching
Google's Chrome browser has an amazing array of built in tools that allow us to both find problems in our websites and allow us to improve, all for free. This talk is for all front end developers working in JavaScript and/or CSS. I will show how to spot performance issues, find memory leaks and how to fix them both. And best of all I will present some easy to remember rules of thumb to prevent these issues from re-occurring.
Browsers render web pages through a multi-step process involving parsing HTML, computing styles, constructing frames, layout, and painting. Key optimizations include minimizing payload size through techniques like compression, lazy-loading content, reducing reflows and repaints caused by DOM manipulation, and optimizing JavaScript execution through techniques like proper scoping and reducing property access in loops. Modern developer tools can help identify performance bottlenecks.
Vlad zelinschi optimizing the critical rendering pathCodecamp Romania
The document discusses optimizing the critical rendering path (CRP) of a web page. The CRP refers to the steps between receiving HTML, CSS, and JavaScript and rendering pixels on the screen. These steps include parsing HTML to build the DOM tree, parsing CSS to build the CSSOM tree, combining them into a render tree, running layout to compute geometry, and painting to the screen. Optimizing the CRP means minimizing the time spent in these steps. Some tips include getting CSS to the client fast, eliminating blocking JavaScript from the CRP, and focusing on above-the-fold content. Tools like critical CSS extraction can help optimize the CRP.
The first JavaScript engine was created by Brendan Eich at Netscape, for the Netscape browser
It is a programming language used to make dynamic web pages and Server side apps(Node.js)
It gives logic to static HTML pages
We can Update DOM tree by javascript dynamically
Challenges of angular in production (Tasos Bekos) - GreeceJS #17GreeceJS
Modern web applications have constantly growing requirements and their API and complexity grows exponentially. In this session we'll look at a practical example of how to optimize solutions, like bundling, tree shaking, ahead of time compilation, lazy loading, etc. Also, we will get a glimpse of what it takes to switch a complex product to a modern stack, with Angular in its heart, and how the company's commitment is making it possible.
Engin Yağız Hatay gave a presentation on graphics and animation capabilities in web browsers. He discussed several technologies including CSS3, Canvas, SVG, and WebGL, and when each is best suited. He provided details on HTML5 Canvas capabilities and limitations. Hatay also covered browser support for these technologies and recommended several JavaScript libraries that can be used to create graphics and animations, including PaperJS, ProcessingJS, and ThreeJS. He concluded with a discussion of tools and frameworks for mobile graphics development.
Creating 3D Worlds with WebGL and Babylon.js - Codemotion.esdavrous
We'll see in this session how to create 3D HTML5 WebGL games for the desktop & mobile web. For that, I’ll show you our open-source Babylon.JS WebGL gaming engine available on GitHub. It has been recently used by Ubisoft for the Assassin’s Creed Pirates web experience. We’ll see how to cover the complete gaming pipeline from the 3D assets created & exported from Blender/3DS Max/Maya to BabylonJS, the various camera's types (touch, virtual joysticks, gamepad, etc.), the usage of the embedded physic engine. At last, of course, how to implement the game logic in JavaScript. We'll build a simple game to better understand how to use this free engine.
Post-relational databases: What's wrong with web development?Dobrica Pavlinušić
This document discusses post-relational databases and how they have evolved over time from mainframes to the modern web. It focuses on NoSQL databases like CouchDB and Riak that use JSON and are well-suited for web applications. CouchDB allows for asynchronous processes through triggers and offline applications through replication. AngularJS is highlighted as a way to build applications with CouchDB that avoid complexity through the use of JSON, HTML templates, and JavaScript controllers.
Improving Game Performance in the Browser
with Mickey MacDonald
Presented on September 17 2014 at
FITC's Web Unleashed 2014 event in Toronto
Poor performance is the easiest way to wreck the experience of any game; with web-based games, performance is even more crucial. In this talk, Mickey will discuss the various ways that we can optimize web-based games. He will look at the how the use of WebWorkers can increase performance, as well as tricks to improve load times and audio performance. So join Mickey and learn how to optimize your game to be lightning fast in every browser.
OBJECTIVE
Demonstrate techniques for increasing game performance in browsers
TARGET AUDIENCE
Web-based game developers
ASSUMED AUDIENCE KNOWLEDGE
Basic web-based game development skills
FIVE THINGS AUDIENCE MEMBERS WILL LEARN
Using WebWorkers to increase performance
How to speed up load times
Audio performance techniques
Best practices for graphics compression
Pooling techniques
GsKit is an Objective-C library that allows GemStone objects to be used directly in Objective-C code on Mac OS X. It makes GemStone object instances first-class citizens in the Objective-C runtime. GsKit wraps GemStone collections like dictionaries and ordered collections in Objective-C classes like NSDictionary and NSArray. Other GemStone objects are wrapped in a generic GSProxy class. This allows GemStone objects to be accessed and manipulated directly from Objective-C code using standard Cocoa patterns. GsKit handles converting between GemStone and Objective-C types transparently under the hood. While it provides a way to integrate GemStone and Cocoa, there are still some unresolved issues around representing GemStone
This document discusses using HBase to store and query multi-dimensional data cubes. It describes how data cubes can be modeled in HBase by storing projections instead of distinct dimensions, and pre-computing all aggregations. An example row key and column family structure is given to store pageview counts by country, user agent, domain, and time. The document also introduces Zohmg, a distributed, multi-dimensional, time-series data store built on HBase that can be configured and mapped using YAML and Python scripts.
NGF2014 - Create a 3d game with webgl and babylon.jsdavrous
We'll see in this session how to create 3D HTML5 WebGL games for the web (IE11/Chrome/Firefox & Opera) as well as for some mobile ecosystems.
For that, we’ll show you our open-source Babylon.JS WebGL gaming engine available on GitHub: https://github.com/BabylonJS/Babylon.js
You’ll see how to cover the complete gaming pipeline from the 3D assets created & exported from Blender/3DS Max/Maya to BabylonJS, the various camera's types (touch, device orientation, etc.), the usage of the embedded physic engine. At last, of course, how to implement the game logic in JavaScript.
We'll build a simple game from scratch to better understand how to use this free engine.
The document discusses key topics in Android development including the Android operating system, Android development tools and SDK, application fundamentals like activities and intents, user interface design using XML layouts and views, data storage using SQLite databases, services like location services and maps, and animation. It provides an overview of the major concepts and components involved in building Android applications.
ScalaCache is a facade library that provides a simple API for caching methods across various cache systems like Google Guava, Ehcache, Memcached, and Redis. It uses macros to generate cache keys and automatically cache method return values. This avoids issues with traditional approaches using the Java API or Spring which involve runtime overhead or restrictions. ScalaCache aims to improve features like asynchronous support, versioning, custom serialization, and browser caching integration.
Creating and maintaining multilingual websites with OpenCms is possible since the earliest versions. However, there has been room for improvement especially when it comes to synchronizing sitemaps for different languages.
When translating websites, two approaches are usually considered: Either every page is made available for each language (single tree approach), or the languages use different page structures (multi tree approach). Each approach has different requirements, and OpenCms 10.5 has new features to help with both.
This document provides an introduction and overview of CouchDB including:
- Background on the creators and history of CouchDB's development
- An explanation of how CouchDB differs from traditional SQL databases through its use of RESTful HTTP, schemaless JSON documents, map/reduce views, and incremental replication
- A description of CouchDB's internal architecture and key modules
- An invitation for readers to get involved with the CouchDB community
Grunt is a JavaScript task runner that can automate front-end development tasks like linting, compiling Sass files to CSS, running tests and watching for file changes. It provides plugins for common tasks and allows developers to define custom workflows. The document discusses how Grunt can be used to integrate and run various tasks like linting, Sass compilation and watching files. It also explains how to define tasks, configure Grunt and run tasks from the command line. Custom tasks can be created and shared as plugins. The document provides an example of using Grunt to convert Markdown files to the Leanpub format and sync them to Dropbox.
Phone Home: A client-side error collection systemChris Birchall
This document summarizes Phone Home, a system to collect client-side errors from users' browsers. The Phone Home client runs JavaScript in users' browsers to collect errors and send them via HTTP POST requests to the Phone Home server. The server is built with Scalatra and saves the error data to MongoDB. It was created to debug unreproducible jQuery errors in IE browsers. Features include error handling, page load timing collection, custom field support, and an admin UI with stats and a recent events list. The server uses CORS to allow cross-domain requests from the Phone Home client. Data can also be analyzed using the ltsv4s library to parse and query the log files in Scala.
MongoDB and Redis are popular NoSQL alternatives to SQL databases. MongoDB is a document-oriented database that does not require a predefined schema and allows embedding documents. It supports features like sharding, replication, and indexing. Redis is an in-memory key-value store that persists data to disk. It supports data structures like strings, hashes, lists and sets. Both databases are commonly used for caching, queues, and other use cases where flexibility and performance are important.
Ustream vs Legacy, It's never too late to start your fight! #Jsist 2014Máté Nádasdi
A general talk about Ustream's revolution on our aging codebase. We had to make critical changes on our codebase to achieve more stability and scalability on the client side.
This talk is about encouragement with lot of tips and tricks if you are in a similar legacy situation.
https://speakerdeck.com/matenadasdi/ustream-vs-legacy-its-never-too-late-to-start-your-fight-jsist-2014
This document provides an overview of Firefox OS, including:
1. The main software components - Gaia (user interface), Gecko (application runtime), and Gonk (Linux kernel and hardware abstraction layer).
2. Application types - packaged apps, hosted apps, and their differences in terms of access to APIs, permissions, and distribution.
3. Key concepts like the app manifest, web activities, and the application sandbox.
4. Examples of web APIs and their different permission levels.
5. Tips for developing responsive web apps, using single page applications, client-side data handling, and performance optimization.
6. Debugging tools like the Firefox Developer Tools and Firefox OS
The document discusses optimizing browser experience with a focus on mobile performance. It notes that page load speed and frame rate affect user engagement. Some key challenges for mobile include higher latency, touch input latency, and limited battery life. It provides tips for faster initial rendering, such as inline critical resources and lazy loading others. It also recommends tools for measuring performance, such as Pagespeed Insights, Webpagetest, and the DevTools timeline. Maintaining 60 frames per second is important for smooth interactions, requiring optimizations like smaller DOM changes and using requestAnimationFrame. The document demonstrates DevTools frames and layers panels.
This document discusses frontend automation and stability. It recommends:
1. Writing unit tests using Mocha and Chai for efficient testing of separated layers and dependencies.
2. Performing UI testing using CasperJS for browser/DOM interaction or DalekJS for real browser support.
3. Integrating testing, code quality tools, and standards into a continuous integration system to catch errors and ensure code quality across contributors.
Measuring Front-End Performance - What, When and How?Gareth Hughes
This document discusses front-end performance measurement. It recommends measuring performance at every stage of a project's lifecycle using both synthetic and real user monitoring tools. Key metrics to measure include time to first byte, speed index, user timings. Both types of tools provide valuable but different insights and should be used together. Performance data should be reported visually through dashboards to make it relevant and actionable. The goal is to establish a "culture of performance" and catch problems early.
Study: The Future of VR, AR and Self-Driving CarsLinkedIn
We asked LinkedIn members worldwide about their levels of interest in the latest wave of technology: whether they’re using wearables, and whether they intend to buy self-driving cars and VR headsets as they become available. We asked them too about their attitudes to technology and to the growing role of Artificial Intelligence (AI) in the devices that they use. The answers were fascinating – and in many cases, surprising.
This SlideShare explores the full results of this study, including detailed market-by-market breakdowns of intention levels for each technology – and how attitudes change with age, location and seniority level. If you’re marketing a tech brand – or planning to use VR and wearables to reach a professional audience – then these are insights you won’t want to miss.
Incremental DOM and Recent Trend of Frontend DevelopmentAkihiro Ikezoe
This document discusses recent trends in frontend development, including:
1. Incremental DOM provides an efficient way to manipulate the DOM by only updating what has changed, using less memory than Virtual DOM.
2. Frameworks like AngularJS and React introduced new approaches like two-way data binding, virtual DOM, and component-based architectures to improve maintainability.
3. Architectures are shifting toward splitting responsibilities between server and client using approaches like single page applications, server-side rendering, and universal JavaScript.
WebTools for GemStone/S provides a new way to interact with a running GemStone system through a web browser. The presentation demonstrated WebTools and discussed its design using JavaScript and files served from the GemStone file system. Future enhancements could include additional tools like an inspector, Monticello browser, and Metacello browser, but WebTools is not officially supported and is provided as an example.
The theme of your website has the capacity for beautiful, semantic markup...and also the hacky HTML soup. You can build a new theme by downloading a free theme and tearing out its guts--or you can learn how to become a theme surgeon.
In this session you will learn two key techniques needed to build a successful theme: crime scene investigation (identifying Drupal page elements in your design files) and power tools for copy-cat theming (things you need to recreate your design using Drupal). From start to finish we will transform a design file into a Drupal theme. With special attention given to your all-important questions: how do I save time with grid-based design? Should I use Panels? How do I make this bit of stuff appear next to that bit? Yah, but how do I start?
[This presentation was given at DrupalCon Chicago but the recording failed. Slides are available from http://www.slideshare.net/emmajane/forensic-theming-for-drupal]
About The Presenter
Emma Jane Hogbin is well known in the Drupal community for her engaging presentations and kickass theming book, Front End Drupal. She is currently working on her second book, Drupal: A user's guide which is due out shortly after DrupalCon. Through her training company, Design to Theme, emmajane has empowered thousands of people to create the Drupal site of their dreams.
Intended audience
Small business site builders who partner with graphic designers but have no idea how to make Drupal look like a design file. Intermediate themers who start with a free Drupal theme that looks "close" to the final site and then start hacking to make their theme. The audience currently does not use base themes and are frustrated at how complicated all of the code is. They are looking for shortcuts and some quick-fix solutions to make theming faster and more profitable.
Questions answered by this session
What are the key tools I need to use to make themeing Drupal easier?
How can I make Drupal markup less yucky?
Where should I start when building a new theme?
Yeah, but how do I theme *that thing*?
I want to see how you build a theme: show me!
Presented at: http://london2011.drupal.org/conference/sessions/forensic-theming-key-techniques-building-effective-drupal-themes
At this point, you may be familiar with the design of MongoDB databases and collections – but what are the frequent patterns you may have to model?
This presentation will add knowledge of how to represent common relationships (1-1, 1-N, N-N) in MongoDB. Going further than relationships, this presentation identifies a set of common patterns, in a similar way to what the Gang of Four did for Object Oriented Design. Finally, this presentation will guide you through the steps of modeling those patterns in MongoDB collections.
In this session, you will learn about:
How to create the appropriate MongoDB collections for some of the patterns discussed.
Differences in relationships vs. the relational database world, and how those differences translate to MongoDB collections.
Common patterns in developing applications with MongoDB, plus a specific vocabulary with which to refer to them.
Post-relational databases: What's wrong with web development?Dobrica Pavlinušić
This document discusses post-relational databases and how they have evolved over time from mainframes to the modern web. It focuses on NoSQL databases like CouchDB and Riak that use JSON and are well-suited for web applications. CouchDB allows for asynchronous processes through triggers and offline applications through replication. AngularJS is highlighted as a way to build applications with CouchDB that avoid complexity through the use of JSON, HTML templates, and JavaScript controllers.
Improving Game Performance in the Browser
with Mickey MacDonald
Presented on September 17 2014 at
FITC's Web Unleashed 2014 event in Toronto
Poor performance is the easiest way to wreck the experience of any game; with web-based games, performance is even more crucial. In this talk, Mickey will discuss the various ways that we can optimize web-based games. He will look at the how the use of WebWorkers can increase performance, as well as tricks to improve load times and audio performance. So join Mickey and learn how to optimize your game to be lightning fast in every browser.
OBJECTIVE
Demonstrate techniques for increasing game performance in browsers
TARGET AUDIENCE
Web-based game developers
ASSUMED AUDIENCE KNOWLEDGE
Basic web-based game development skills
FIVE THINGS AUDIENCE MEMBERS WILL LEARN
Using WebWorkers to increase performance
How to speed up load times
Audio performance techniques
Best practices for graphics compression
Pooling techniques
GsKit is an Objective-C library that allows GemStone objects to be used directly in Objective-C code on Mac OS X. It makes GemStone object instances first-class citizens in the Objective-C runtime. GsKit wraps GemStone collections like dictionaries and ordered collections in Objective-C classes like NSDictionary and NSArray. Other GemStone objects are wrapped in a generic GSProxy class. This allows GemStone objects to be accessed and manipulated directly from Objective-C code using standard Cocoa patterns. GsKit handles converting between GemStone and Objective-C types transparently under the hood. While it provides a way to integrate GemStone and Cocoa, there are still some unresolved issues around representing GemStone
This document discusses using HBase to store and query multi-dimensional data cubes. It describes how data cubes can be modeled in HBase by storing projections instead of distinct dimensions, and pre-computing all aggregations. An example row key and column family structure is given to store pageview counts by country, user agent, domain, and time. The document also introduces Zohmg, a distributed, multi-dimensional, time-series data store built on HBase that can be configured and mapped using YAML and Python scripts.
NGF2014 - Create a 3d game with webgl and babylon.jsdavrous
We'll see in this session how to create 3D HTML5 WebGL games for the web (IE11/Chrome/Firefox & Opera) as well as for some mobile ecosystems.
For that, we’ll show you our open-source Babylon.JS WebGL gaming engine available on GitHub: https://github.com/BabylonJS/Babylon.js
You’ll see how to cover the complete gaming pipeline from the 3D assets created & exported from Blender/3DS Max/Maya to BabylonJS, the various camera's types (touch, device orientation, etc.), the usage of the embedded physic engine. At last, of course, how to implement the game logic in JavaScript.
We'll build a simple game from scratch to better understand how to use this free engine.
The document discusses key topics in Android development including the Android operating system, Android development tools and SDK, application fundamentals like activities and intents, user interface design using XML layouts and views, data storage using SQLite databases, services like location services and maps, and animation. It provides an overview of the major concepts and components involved in building Android applications.
ScalaCache is a facade library that provides a simple API for caching methods across various cache systems like Google Guava, Ehcache, Memcached, and Redis. It uses macros to generate cache keys and automatically cache method return values. This avoids issues with traditional approaches using the Java API or Spring which involve runtime overhead or restrictions. ScalaCache aims to improve features like asynchronous support, versioning, custom serialization, and browser caching integration.
Creating and maintaining multilingual websites with OpenCms is possible since the earliest versions. However, there has been room for improvement especially when it comes to synchronizing sitemaps for different languages.
When translating websites, two approaches are usually considered: Either every page is made available for each language (single tree approach), or the languages use different page structures (multi tree approach). Each approach has different requirements, and OpenCms 10.5 has new features to help with both.
This document provides an introduction and overview of CouchDB including:
- Background on the creators and history of CouchDB's development
- An explanation of how CouchDB differs from traditional SQL databases through its use of RESTful HTTP, schemaless JSON documents, map/reduce views, and incremental replication
- A description of CouchDB's internal architecture and key modules
- An invitation for readers to get involved with the CouchDB community
Grunt is a JavaScript task runner that can automate front-end development tasks like linting, compiling Sass files to CSS, running tests and watching for file changes. It provides plugins for common tasks and allows developers to define custom workflows. The document discusses how Grunt can be used to integrate and run various tasks like linting, Sass compilation and watching files. It also explains how to define tasks, configure Grunt and run tasks from the command line. Custom tasks can be created and shared as plugins. The document provides an example of using Grunt to convert Markdown files to the Leanpub format and sync them to Dropbox.
Phone Home: A client-side error collection systemChris Birchall
This document summarizes Phone Home, a system to collect client-side errors from users' browsers. The Phone Home client runs JavaScript in users' browsers to collect errors and send them via HTTP POST requests to the Phone Home server. The server is built with Scalatra and saves the error data to MongoDB. It was created to debug unreproducible jQuery errors in IE browsers. Features include error handling, page load timing collection, custom field support, and an admin UI with stats and a recent events list. The server uses CORS to allow cross-domain requests from the Phone Home client. Data can also be analyzed using the ltsv4s library to parse and query the log files in Scala.
MongoDB and Redis are popular NoSQL alternatives to SQL databases. MongoDB is a document-oriented database that does not require a predefined schema and allows embedding documents. It supports features like sharding, replication, and indexing. Redis is an in-memory key-value store that persists data to disk. It supports data structures like strings, hashes, lists and sets. Both databases are commonly used for caching, queues, and other use cases where flexibility and performance are important.
Ustream vs Legacy, It's never too late to start your fight! #Jsist 2014Máté Nádasdi
A general talk about Ustream's revolution on our aging codebase. We had to make critical changes on our codebase to achieve more stability and scalability on the client side.
This talk is about encouragement with lot of tips and tricks if you are in a similar legacy situation.
https://speakerdeck.com/matenadasdi/ustream-vs-legacy-its-never-too-late-to-start-your-fight-jsist-2014
This document provides an overview of Firefox OS, including:
1. The main software components - Gaia (user interface), Gecko (application runtime), and Gonk (Linux kernel and hardware abstraction layer).
2. Application types - packaged apps, hosted apps, and their differences in terms of access to APIs, permissions, and distribution.
3. Key concepts like the app manifest, web activities, and the application sandbox.
4. Examples of web APIs and their different permission levels.
5. Tips for developing responsive web apps, using single page applications, client-side data handling, and performance optimization.
6. Debugging tools like the Firefox Developer Tools and Firefox OS
The document discusses optimizing browser experience with a focus on mobile performance. It notes that page load speed and frame rate affect user engagement. Some key challenges for mobile include higher latency, touch input latency, and limited battery life. It provides tips for faster initial rendering, such as inline critical resources and lazy loading others. It also recommends tools for measuring performance, such as Pagespeed Insights, Webpagetest, and the DevTools timeline. Maintaining 60 frames per second is important for smooth interactions, requiring optimizations like smaller DOM changes and using requestAnimationFrame. The document demonstrates DevTools frames and layers panels.
This document discusses frontend automation and stability. It recommends:
1. Writing unit tests using Mocha and Chai for efficient testing of separated layers and dependencies.
2. Performing UI testing using CasperJS for browser/DOM interaction or DalekJS for real browser support.
3. Integrating testing, code quality tools, and standards into a continuous integration system to catch errors and ensure code quality across contributors.
Measuring Front-End Performance - What, When and How?Gareth Hughes
This document discusses front-end performance measurement. It recommends measuring performance at every stage of a project's lifecycle using both synthetic and real user monitoring tools. Key metrics to measure include time to first byte, speed index, user timings. Both types of tools provide valuable but different insights and should be used together. Performance data should be reported visually through dashboards to make it relevant and actionable. The goal is to establish a "culture of performance" and catch problems early.
Study: The Future of VR, AR and Self-Driving CarsLinkedIn
We asked LinkedIn members worldwide about their levels of interest in the latest wave of technology: whether they’re using wearables, and whether they intend to buy self-driving cars and VR headsets as they become available. We asked them too about their attitudes to technology and to the growing role of Artificial Intelligence (AI) in the devices that they use. The answers were fascinating – and in many cases, surprising.
This SlideShare explores the full results of this study, including detailed market-by-market breakdowns of intention levels for each technology – and how attitudes change with age, location and seniority level. If you’re marketing a tech brand – or planning to use VR and wearables to reach a professional audience – then these are insights you won’t want to miss.
Incremental DOM and Recent Trend of Frontend DevelopmentAkihiro Ikezoe
This document discusses recent trends in frontend development, including:
1. Incremental DOM provides an efficient way to manipulate the DOM by only updating what has changed, using less memory than Virtual DOM.
2. Frameworks like AngularJS and React introduced new approaches like two-way data binding, virtual DOM, and component-based architectures to improve maintainability.
3. Architectures are shifting toward splitting responsibilities between server and client using approaches like single page applications, server-side rendering, and universal JavaScript.
WebTools for GemStone/S provides a new way to interact with a running GemStone system through a web browser. The presentation demonstrated WebTools and discussed its design using JavaScript and files served from the GemStone file system. Future enhancements could include additional tools like an inspector, Monticello browser, and Metacello browser, but WebTools is not officially supported and is provided as an example.
The theme of your website has the capacity for beautiful, semantic markup...and also the hacky HTML soup. You can build a new theme by downloading a free theme and tearing out its guts--or you can learn how to become a theme surgeon.
In this session you will learn two key techniques needed to build a successful theme: crime scene investigation (identifying Drupal page elements in your design files) and power tools for copy-cat theming (things you need to recreate your design using Drupal). From start to finish we will transform a design file into a Drupal theme. With special attention given to your all-important questions: how do I save time with grid-based design? Should I use Panels? How do I make this bit of stuff appear next to that bit? Yah, but how do I start?
[This presentation was given at DrupalCon Chicago but the recording failed. Slides are available from http://www.slideshare.net/emmajane/forensic-theming-for-drupal]
About The Presenter
Emma Jane Hogbin is well known in the Drupal community for her engaging presentations and kickass theming book, Front End Drupal. She is currently working on her second book, Drupal: A user's guide which is due out shortly after DrupalCon. Through her training company, Design to Theme, emmajane has empowered thousands of people to create the Drupal site of their dreams.
Intended audience
Small business site builders who partner with graphic designers but have no idea how to make Drupal look like a design file. Intermediate themers who start with a free Drupal theme that looks "close" to the final site and then start hacking to make their theme. The audience currently does not use base themes and are frustrated at how complicated all of the code is. They are looking for shortcuts and some quick-fix solutions to make theming faster and more profitable.
Questions answered by this session
What are the key tools I need to use to make themeing Drupal easier?
How can I make Drupal markup less yucky?
Where should I start when building a new theme?
Yeah, but how do I theme *that thing*?
I want to see how you build a theme: show me!
Presented at: http://london2011.drupal.org/conference/sessions/forensic-theming-key-techniques-building-effective-drupal-themes
At this point, you may be familiar with the design of MongoDB databases and collections – but what are the frequent patterns you may have to model?
This presentation will add knowledge of how to represent common relationships (1-1, 1-N, N-N) in MongoDB. Going further than relationships, this presentation identifies a set of common patterns, in a similar way to what the Gang of Four did for Object Oriented Design. Finally, this presentation will guide you through the steps of modeling those patterns in MongoDB collections.
In this session, you will learn about:
How to create the appropriate MongoDB collections for some of the patterns discussed.
Differences in relationships vs. the relational database world, and how those differences translate to MongoDB collections.
Common patterns in developing applications with MongoDB, plus a specific vocabulary with which to refer to them.
The document discusses building a consistent user experience across Android devices by leveraging XML resources, styles, themes, and layouts that adapt to different screen sizes. It emphasizes using density-independent pixels (dp) and scale-independent pixels (sp), providing alternate resources for different configurations using qualifiers, and employing the Android support libraries to ensure backwards compatibility. The document also recommends evaluating open source libraries to implement Material Design components not fully supported by the official libraries and frameworks.
Machine Learning for Smarter Apps - Jacksonville MeetupSri Ambati
Machine Learning for Smarter Apps with Tom Kraljevic
- Powered by the open source machine learning software H2O.ai. Contributors welcome at: https://github.com/h2oai
- To view videos on H2O open source machine learning software, go to: https://www.youtube.com/user/0xdata
This document summarizes a presentation about using Ruby in an office setting. It discusses four case studies: [1] Applying the issue tracker Redmine to various projects beyond software development, [2] Using GitLab to allow every team member to easily create repositories for Redmine projects, [3] Using the Axlsx gem to generate Excel files for communicating project data with clients, and [4] Using the Sinatra web framework to easily create scripts for tasks like generating screenshots from a web repository. The document concludes by asking about what makes Ruby programming enjoyable.
This document provides an overview of latest developments at H2O.ai, including enhancements to their machine learning platform H2O such as Deep Water for distributed deep learning using GPUs, xgboost integration, stacked ensembles, automatic machine learning, and model interpretation capabilities. It also discusses H2O's community involvement through meetup groups and conferences like PyData.
This small presentation tries to synthesise the behaviour of a web browser's rendering engine as simply as possible. It also proposes a few tricks we've used internally to cope with very resource-demanding webapps.
JavaScript frameworks allow business logic to run on the client by sending JSON data on page load rather than dynamic HTML. This allows JavaScript to set up objects and classes to make assumptions without round trips to the server, improving performance. Popular frameworks like Backbone, Ember, Angular, Knockout, and Meteor emphasize separating UI from logic, data binding, templating, and routing to enable single-page applications. Meteor stands out by using the same syntax on client and server and web sockets for automatic UI updates.
At this point, you may be familiar with the design of MongoDB databases and collections – but what are the frequent patterns you may have to model?
This presentation will add knowledge of how to represent common relationships (1-1, 1-N, N-N) in MongoDB. Going further than relationships, this presentation identifies a set of common patterns, in a similar way to what the Gang of Four did for Object Oriented Design. Finally, this presentation will guide you through the steps of modeling those patterns in MongoDB collections.
In this session, you will learn about:
How to create the appropriate MongoDB collections for some of the patterns discussed.
Differences in relationships vs. the relational database world, and how those differences translate to MongoDB collections.
Common patterns in developing applications with MongoDB, plus a specific vocabulary with which to refer to them.
AWS CZSK Webinar - Migrácia desktopov a aplikácií do AWS cloudu s Amazon Work...Vladimir Simek
V polovici januára 2020 skončila rozšírená podpora operačného systému Windows 10. Mnoho organizácií stojí pred rozhodnutí, či investovať do existujúcej infraštrukúry alebo radšej poskytnú svojim používateľom flexibilnejšie a modernejšie riešenie - dostupné odkiaľkoľvek a na akomkoľvek zariadení. Presun desktopov a aplikácií do AWS cloudu ponúka vylepšené zabezpečenie, škálovateľnosť, flexibilitu a vyšší výkon. V tomto webinári vám poskytneme prehľad služieb Amazon WorkSpaces a Amazon AppStream 2.0 a ukážeme vám, aké ľahké je začať ich používať.
MongoDB Days Silicon Valley: Winning the Dreamforce Hackathon with MongoDBMongoDB
Presented by Greg Deeds, CEO, Technology Exploration Group
Experience level: Introductory
A two person team using MongoDB and Salesforce.com created a geospatial machine learning tool from various datasets, parsing, indexing, and mapreduce in 24 hours. The amazing hack that beat 350 teams from around the world designer Greg Deeds will speak on getting to the winners circle with MongoDB power. It was MongoDB that proved to be the teams secret weapon to level the playing field for the win!
Masterin Large Scale Java Script ApplicationsFabian Jakobs
Writing large desktop-like web applications is a challenge. Adapting such an application to different markets, languages or brands is even more of a challenge. This talk shows how the open source JavaScript framework qooxdoo can be leveraged to build such a rich internet application. As a real-life example the free web mail client gmx.com is used. This talk discusses the development model, customization and deployment of such an application.
Learn how JavaScript applications of this size and complexity are fundamentally different from classic web applications, and what issues come up when building fast, multi-language, multi-brand JavaScript applications.
The document discusses Chrome's page rendering cycle, which includes parsing HTML and CSS, building the DOM tree and rendering tree, calculating layout, painting, and compositing. It describes how the Skia graphics library is used for painting and how accelerated compositing passes layer bitmaps to the GPU. It also covers factors that can impact painting performance and tools for profiling rendering and compositing.
The document discusses schema design patterns for MongoDB databases. It introduces common patterns like attribute, subset, computed, and approximation to address issues like large documents, working set size, repeated calculations, and high write volumes. The patterns help optimize performance, scalability, and reduce costs. The document explains each pattern's problem, solution, and benefits through examples like storing movie release dates and computed values. It encourages applying these proven patterns as building blocks to design schemas for specific use cases like e-commerce or social networking applications.
OpenCL & the Future of Desktop High Performance Computing in CADDesign World
Modern desktop computers have more compute capabilities than ever before. Most of these systems include both a central processing unit (CPU) and a graphics processing unit (GPU), each consisting of multiple computing cores providing tremendous processing power. To date, harnessing the total processing power of a desktop workstation, fully utilizing both the CPU and GPU, has proven difficult for software developers. CPUs and GPUs have few similarities in both design and programming models. OpenCL is the tool that bridges the gap for software developers and enables them to fully tap into the power of both processors with a single software programming interface.
This presentation will examine the details of CPUs and GPUs, explore their differences and similarities, and highlight the computing power they can provide. We will also take a look OpenCL, what it is, what it does, and how this new computing interface will change the way software developers create software and help end users fully realize the compute power contained within today’s modern desktop computers.
This is the keynote of the Into the Box conference, highlighting the release of the BoxLang JVM language, its key enhancements, and its vision for the future.
Automation Dreamin' 2022: Sharing Some Gratitude with Your UsersLynda Kane
Slide Deck from Automation Dreamin'2022 presentation Sharing Some Gratitude with Your Users on creating a Flow to present a random statement of Gratitude to a User in Salesforce.
Hands On: Create a Lightning Aura Component with force:RecordDataLynda Kane
Slide Deck from the 3/26/2020 virtual meeting of the Cleveland Developer Group presentation on creating a Lightning Aura Component using force:RecordData.
What is Model Context Protocol(MCP) - The new technology for communication bw...Vishnu Singh Chundawat
The MCP (Model Context Protocol) is a framework designed to manage context and interaction within complex systems. This SlideShare presentation will provide a detailed overview of the MCP Model, its applications, and how it plays a crucial role in improving communication and decision-making in distributed systems. We will explore the key concepts behind the protocol, including the importance of context, data management, and how this model enhances system adaptability and responsiveness. Ideal for software developers, system architects, and IT professionals, this presentation will offer valuable insights into how the MCP Model can streamline workflows, improve efficiency, and create more intuitive systems for a wide range of use cases.
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...Impelsys Inc.
Impelsys provided a robust testing solution, leveraging a risk-based and requirement-mapped approach to validate ICU Connect and CritiXpert. A well-defined test suite was developed to assess data communication, clinical data collection, transformation, and visualization across integrated devices.
How Can I use the AI Hype in my Business Context?Daniel Lehner
𝙄𝙨 𝘼𝙄 𝙟𝙪𝙨𝙩 𝙝𝙮𝙥𝙚? 𝙊𝙧 𝙞𝙨 𝙞𝙩 𝙩𝙝𝙚 𝙜𝙖𝙢𝙚 𝙘𝙝𝙖𝙣𝙜𝙚𝙧 𝙮𝙤𝙪𝙧 𝙗𝙪𝙨𝙞𝙣𝙚𝙨𝙨 𝙣𝙚𝙚𝙙𝙨?
Everyone’s talking about AI but is anyone really using it to create real value?
Most companies want to leverage AI. Few know 𝗵𝗼𝘄.
✅ What exactly should you ask to find real AI opportunities?
✅ Which AI techniques actually fit your business?
✅ Is your data even ready for AI?
If you’re not sure, you’re not alone. This is a condensed version of the slides I presented at a Linkedin webinar for Tecnovy on 28.04.2025.
Special Meetup Edition - TDX Bengaluru Meetup #52.pptxshyamraj55
We’re bringing the TDX energy to our community with 2 power-packed sessions:
🛠️ Workshop: MuleSoft for Agentforce
Explore the new version of our hands-on workshop featuring the latest Topic Center and API Catalog updates.
📄 Talk: Power Up Document Processing
Dive into smart automation with MuleSoft IDP, NLP, and Einstein AI for intelligent document workflows.
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...TrustArc
Most consumers believe they’re making informed decisions about their personal data—adjusting privacy settings, blocking trackers, and opting out where they can. However, our new research reveals that while awareness is high, taking meaningful action is still lacking. On the corporate side, many organizations report strong policies for managing third-party data and consumer consent yet fall short when it comes to consistency, accountability and transparency.
This session will explore the research findings from TrustArc’s Privacy Pulse Survey, examining consumer attitudes toward personal data collection and practical suggestions for corporate practices around purchasing third-party data.
Attendees will learn:
- Consumer awareness around data brokers and what consumers are doing to limit data collection
- How businesses assess third-party vendors and their consent management operations
- Where business preparedness needs improvement
- What these trends mean for the future of privacy governance and public trust
This discussion is essential for privacy, risk, and compliance professionals who want to ground their strategies in current data and prepare for what’s next in the privacy landscape.
Learn the Basics of Agile Development: Your Step-by-Step GuideMarcel David
New to Agile? This step-by-step guide is your perfect starting point. "Learn the Basics of Agile Development" simplifies complex concepts, providing you with a clear understanding of how Agile can improve software development and project management. Discover the benefits of iterative work, team collaboration, and flexible planning.
"Rebranding for Growth", Anna VelykoivanenkoFwdays
Since there is no single formula for rebranding, this presentation will explore best practices for aligning business strategy and communication to achieve business goals.
Mobile App Development Company in Saudi ArabiaSteve Jonas
EmizenTech is a globally recognized software development company, proudly serving businesses since 2013. With over 11+ years of industry experience and a team of 200+ skilled professionals, we have successfully delivered 1200+ projects across various sectors. As a leading Mobile App Development Company In Saudi Arabia we offer end-to-end solutions for iOS, Android, and cross-platform applications. Our apps are known for their user-friendly interfaces, scalability, high performance, and strong security features. We tailor each mobile application to meet the unique needs of different industries, ensuring a seamless user experience. EmizenTech is committed to turning your vision into a powerful digital product that drives growth, innovation, and long-term success in the competitive mobile landscape of Saudi Arabia.
3. • Javascript is an interpreted language
• HTML, CSS debugging have to happen in the browser
• Logging, debugging network requests is essential
• Source and the final output could be totally different
• Performance optimization is becoming increasingly important,
especially on mobile
4. Google is leading in new technologies
Native implementation and really fast support
Canary build deliver new features in really short intervals
Deep configuration possibilites
Early experimental access
Rendering / Memory Profiling tools
Why Google Chrome?
5. Red - Yellow - Blue?
Chrome channels
• Stable (Releases in every 6 weeks)
• Beta (1 month before stable, weekly releases)
• Dev (twice weekly)
• Canary (daily)
Chromium
8. From source to display - The ordinary way
HTML
HTML
Parser
Attachment
CSS ParserStylesheets
Layout
Shared bitmap
DOM tree
CSSOM tree
Render Object
tree
Render Layer
tree
n..1
9. Layout (Reflow) & Repaint
Layout (reflow):
Parts of the render tree needs to be revalidated and node dimensions should be
recalculated.
Repaint:
Some part of the screen needs to be updated because of a reflow, node geometric
change or style change.
10. Possible reflows & repaints
• DOM actions (Add, Remove, Update DOM nodes)
• Hide/show with display: none (reflow & repaint)
• Hide/show with visibility: hidden (repaint only because of no geometric change)
• Adding stylesheet dynamically
• scrolling, resizing the window
• DOM queries can cause a reflow too
• offsetTop/Left/Right/Height
• scrollTop/Left/Right/Height
• clientTop/Left/Right/Height
• getComputedStyle
11. Tips to minimize reflow & repaint
• Try to minimize layout cost with smaller subtree modification
• Detach DOM nodes before huge manipulation
• Do not change styles one by one (use classes instead)
• Group DOM read and write actions to let the browser optimize reflows for you
(DOM queries flush the browser’s queue of changes)
• Cache queried values, do not query them in every case you use it
12. Compositing, You Are Welcome!
• There are more GraphicContexts
• New tree in our forest, Graphic Layer tree
• Composited RenderLayers get their own backing surface
• Upload painted bitmaps to the GPU as textures
• 256x256 tiles
• Different thread for compositing
• Much cheaper then paint
13. Frames & Jank
• 60 Hz = We have got 16.66 ms only! ( 60 Hz = 1 / ~0,016)
• 60FPS is important, because 60Hz is average refresh rate of devices
• Jank: every time you can’t create a frame when your screen refreshes
• vSync - generating new frames only between screen refreshes
• JavaScript timers fails because of inaccuracy and different frame rates
• requestAnimationFrame is a good solution
20ms 20ms 20ms 20ms 20ms 20ms 20ms
Display refresh at 60 hz:
Our frame creation:
14. DEMO! Rock with timeline panel!
Tips:
• Show paint rectangles: Use it to show expensive paints
• Show composited layer borders: Check your GPU compositing layers easily
• Enable continuous page repainting: Easy to find the most expensive layers
• chrome://tracing/: Detailed tracing system to track core functionalities
• Use JavaScript CPU profile with Flame chart to diagnose your yellow pieces.
16. Javascript memory basics
Root object
• Top of the memory management system
• We cannot manipulate
• References global variables
Object variable
• Can reference other variables
Scalar variable
• number, boolean, etc
17. Object sizes
Shallow size
• Memory held directly by the object
• It can be significant for arrays and strings
Retained size
• Indirect memory hold
• A size what will be freed if the object will be terminated
• For primitive types retained size equals shallow size
19. Garbage
Garbage:
Variables wich are unreachable from the GC root node
Garbage collection:
Finds all garbages and frees it’s memory to the system
Leak:
Object that still has retaining path accidently
20. Possible leaks
• Closures
• Deleting DOM nodes without removing event handlers
• DOM could hold event listeners to objects wich are inactive already
• Cycles: two objects reference to each other when they retain each other
21. DevTools workflow tips
1. Search for possible memory leaks with timeline panel
2. Use heap snapshots to capture object graph
3. Use all four views of the snapshot panel:
• Summary: An overview of our heap grouped by constructor name
• Comparison: Compare two snapshots
• Containment: Structured view of object graph
• Dominators: Find the most dominant points of the heap
4. Use the new Object Allocation Tracker in DevTools experiments
“Memory Lane with Gmail” talk about this new tool on Google IO 2013
https://developers.google.com/events/io/sessions/325547004
22. DEMO!
Tips:
• Check counters during your interaction on the examined page
• Use GC force button to see how it impacts on your memory
• Use it in incognito window, because extension allocated memory will be listed too
• Ignore:
• line in parentheses
• lines in light gray
• GC collects garbage before snapshot execution
23. Use Google Canary as it has all the features I have shown
and more including lots of profiling experiments
https://www.google.com/intl/en/chrome/browser/canary.html