Mile High Marathon
Denver CO/USA
Race Winners
(21 runnings)
08
May
1988
03
May
1987
04 May
1986
05
May
1985
06
May
1984
08
May
1983
02
May
1982
03
May
1981
04
May
1980
06
May
1979
07
May 1978
1975-1977
26 May
1974
27 May
1973
28 May
1972
30
May
1971
04
Jul
1970
05
Jul
1969
30
Jun
1968
02
Jul
1967
03
Jul
1966
17
Oct
1965
15 Nov
1964
Notes: 1964 was the inaugural year. The 1967 race was the National Junior AAU
Championships; races for 1968 and earlier were known as the Denver Marathon.
The 1984-1987 races were known as the Mayor's Cup Marathon.
---
cancelled
---
cancelled
2:31:26
David Reese (CO/USA)
3:12:13
Dawn Bohensen (CO/USA)
2:29:03
Doug Bell-2
2:55:56
Gail Scott (CO/USA)
2:25:18
Alan Lind-2
2:57:53
Abbie Wade (USA)
2:27:01
Alan Lind (CO/USA)
2:59:08
Melissa Duffy (NV/USA)
2:27:50
Bill Aragon (CO/USA)
3:01:42
Sharon O'Connor (CO/USA)
2:28:35
Doug Bell (CO/USA)
2:59:45
Judy Chamberlin (CO/USA)
2:23:25
Richard Musgrave (CO/USA)
2:54:32
Deborah Anderson (USA)
2:26:23
Lee Pollack (USA)
3:08:21
Lauri Hoffman (USA)
2:33:39
Henry Barksdale (DC/USA)
3:12:36
Bette Poppers (CO/USA)
2:30:53
Skip Houk (CA/USA)
3:11:51
Pam Olsen (USA)
---
not held
---
not held
2:39:19
Douglas Ford (USA)
2:41:27
James Gusek (CO/USA)
2:34:45
Tom Berger (CO/USA)
3:19:11
Pam Weigle-2
2:38:39
Damien Koch (CO/USA)
3:57:55
Pam Weigle (CO/USA)
2:37:54
Kenneth Katzer-2
2:37:09
Kenneth Katzer (NE/USA)
2:34:46
Martins Ande (NGR)
2:28:56.6
Floyd Godwin (CO/USA)
2:52:34
Leonard Edelen (USA)
2:52:00
Sean Riordan (IRL)
2:57:08
Gary Pierson (CO/USA)
Most Wins (1964/date)
Men
2
Kenneth Katzer (NE/USA)
1969-70
Alan Lind (CO/USA)
1984-85
Doug Bell (CO/USA)
1982,1986
Women
2
Pam Weigle (CO/USA)
1971-72
Prize Money
No information on prize money has been received for this race.
Race Time Bias
Insufficient data to calculate the race time bias
Competitive Level
Insufficient data to calculate the competitive level
Quality Performances
Men
No men under 2:20
Women
No women under 2:50
Last Updated on
24 Oct 2017
Contributors: Alan Lind (15), Roger Sayre


xf-model
The xf-model
element is a required element that defines the policies of a form in a descriptive
format.
It may occur anywhere in an HTML page but by convention should be put at the beginning of the body
of an HTML page outside of the xf-form
element.
xf-model
element and its children use HTML Custom Element syntax but have no
Web Component code attached to them. These elements are never send to the browser. Instead the xf-model
and its descendants are processed by eXist-db with XQuery. The Custom Element syntax is used for consistency
with the UI markup when embedded in a single HTML page.Example
This element has no attributes currently.


Tablet of Vision:
The Crimson Duchess, a follower of Beleth, eyes you suspiciously.
She already holds the Resonance Amulet and seems ready to return to Beleth.


Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.
Given a binary tree, determine if it is height-balanced.
For this problem, a height-balanced binary tree is defined as:
a binary tree in which the left and right subtrees of every node differ in height by no more than 1.
Example 1:
Input: root = [3,9,20,null,null,15,7] Output: true
Example 2:
Input: root = [1,2,2,3,3,null,null,4,4] Output: false
Example 3:
Input: root = [] Output: true
Constraints:
[0, 5000]
.-104 <= Node.val <= 104


dsymutil - manipulate archived DWARF debug symbol files¶
SYNOPSIS¶
DESCRIPTION¶
dsymutil links the DWARF debug information found in the object files
for an executable executable by using debug symbols information contained in
its symbol table. By default, the linked debug information is placed in a
.dSYM
bundle with the same name as the executable.
OPTIONS¶
-
–arch
=<arch>
¶ Link DWARF debug information only for specified CPU architecture types. Architectures may be specified by name. When using this option, an error will be returned if any architectures can not be properly linked. This option can be specified multiple times, once for each desired architecture. All CPU architectures will be linked by default and any architectures that can’t be properly linked will cause dsymutil to return an error.
-
–dump-debug-map
¶
Dump the executable’s debug-map (the list of the object files containing the debug information) in YAML format and exit. Not DWARF link will take place.
-
-f
,
–flat
¶
Produce a flat dSYM file. A
.dwarf
extension will be appended to the executable name unless the output file is specified using the -o option.
-
–no-odr
¶
Do not use ODR (One Definition Rule) for uniquing C++ types.
-
–no-output
¶
Do the link in memory, but do not emit the result file.
-
–no-swiftmodule-timestamp
¶
Don’t check the timestamp for swiftmodule files.
-
-j
<n>
,
–num-threads
=<n>
¶ Specifies the maximum number (
n
) of simultaneous threads to use when linking multiple architectures.
-
-o
<filename>
¶ Specifies an alternate
path
to place the dSYM bundle. The default dSYM bundle path is created by appending.dSYM
to the executable name.
-
–oso-prepend-path
=<path>
¶ Specifies a
path
to prepend to all debug symbol object file paths.
-
-s
,
–symtab
¶
Dumps the symbol table found in executable or object file(s) and exits.
-
-v
,
–verbose
¶
Display verbose information when linking.
-
–version
¶
Display the version of the tool.
-
-y
¶
Treat executable as a YAML debug-map rather than an executable.
EXIT STATUS¶
dsymutil returns 0 if the DWARF debug information was linked successfully. Otherwise, it returns 1.
SEE ALSO¶
llvm-dwarfdump(1)


Before Change
embeddings = np.asarray(embd, dtype=float)
word_to_ix = {}
for word in vocab:
word_to_ix[word] = len(word_to_ix)
return word_to_ix, embeddings
def glove_dump():
After Change
def load_glove_for_vocab(glove_filename, vocabulary):
vocab = []
embd = []
with open(glove_filename) as glove_file:
for line in glove_file:
row = line.strip().split(" ")
word = row[0]
if word in vocabulary:
vocab.append(word)
embd.append(row[1:])
logger.info("Loaded GloVe!")
embeddings = np.asarray(embd, dtype=float)
word_to_ix = {word: i for i, word in enumerate(vocab)}


Awesome WPO
A curated list of Web Performance Optimization. Everyone can contribute here!
Categories
:memo: Articles
:newspaper: Blogs
:books: Books
:book: Docs
:movie_camera: Talks
Tools
- Analyzers
- Analyzers API
- Benchmark - CSS
- Benchmark - JS
- Benchmark - PHP
- Bookmarklets
- CDN
- CDN - Monitor
- CDN - Utilities
- Image Optimizers
- Lazyloaders
- Loaders
- Metrics Monitor
- Minifiers HTML
- Minifiers JS & CSS
- Miscellaneous
- Sprite Generators
- SVG
- Web Components
- Webserver Benchmarks
- Webserver Modules
- Specs
- Stats
- Web Performance Meetup Groups
- Other Awesome Lists
- Contributing
Articles
For a better categorization of the articles, they were categorized into ARTICLES.md.
Blogs
For a better categorization of the Blogs, they were categorized into BLOGS.
Books
Best books about WPO
- Book of Speed - Stoyan Stefanov
- Even Faster Web Sites: Performance Best Practices for Web Developers - Steve Souders
- Getting Started with Web Performance - Daniel Austin - early release
- High Performance Browser Networking: What every web developer should know about networking and web performance - Ilya Grigorik
- High Performance JavaScript - Nicholas C. Zakas
- High Performance Web Sites: Essential Knowledge for Front-End Engineers - Steve Souders
- Using WebPagetest - Rick Viscomi, Andy Davies, Marcel Duran - early release
- Web Page Size, Speed, and Performance - Terrence Dorsey
- Web Performance Daybook Volume 2 - Stoyan Stefanov
- Web Performance Tuning - Patrick Killelea
- You Don't Know JS: Async & Performance - Kyle Simpson
Case studies
- WPOStats - Case studies and experiments demonstrating the impact of web performance optimization (WPO) on user experience and business metrics..
Documentation
- Browser Diet - A collaborative guide about front-end performance.
- PageSpeed Insights Rules - A guide created by PageSpeed Team.
- Best Practices for Speeding Up Your Web Site - The list includes 35 best practices divided into 7 categories, created by Yahoo! Exceptional Performance team.

Talks
For a better categorization of the talks, they were categorized into TALKS.md.
Tools
Analyzers
- Confess - Uses PhantomJS to headlessly analyze web pages and generate manifests.
- Page Speed - The PageSpeed family of tools is designed to help you optimize the performance of your website. PageSpeed Insights products will help you identify performance best practices that can be applied to your site, and PageSpeed optimization tools can help you automate the process.
- YSlow - YSlow analyzes web pages and suggests ways to improve their performance based on a set of rules for high performance web pages.
- YSlow for PhantomJS - YSlow for PhantomJS also introduces new output formats for automated test frameworks: TAP (Test Anything Protocol) and JUnit.
- Grunt-WebPageTest - Grunt plugin for continuously measurement of WebPageTest. (Demo)
- Grunt-yslow - Grunt task for testing page performance using PhantomJS, a headless WebKit browser.
- Grunt-perfbudget - A Grunt.js task for enforcing a performance budget (more on performance budgets).
- Web Tracing Framework - Web Tracing Framework is a set of libraries, tools, and visualizers for the tracing and investigation of complex web applications
- HP LoadRunner - An automated performance and test automation product from Hewlett-Packard for application load testing: examining system behaviour and performance, while generating actual load.
- Yandex.Tank - An extendable open source load testing tool for advanced linux users which is especially good as a part of automated load testing suit.
- Yellow Lab Tools - Online quick and easy tool that audits front-end bad practices, reveals performance issues and profiles JavaScript.
- PerfAudit - Performance audit of web applications by professionals to help make web applications faster.
- Pagelocity - A web performance optimization and analysis tool. It covers resources and code analysis as well as content and social audit.
Analyzers - API
- Node-yslowjs - YSlow.js on Node.js is a simple Node.js wrapper for programmatically running phantomjs yslow.js.
- PSI - PageSpeed Insights for Node - with reporting.
Benchmark - CSS
- CSS-perf - Completely unscientific way of testing CSS performance. Most of these tests will revolve around methodologies and techniques for determining effective CSS architecture. Put another way, I want to know what works best given a particular comparison of CSS strategies.
Benchmark - Javascript
A set of tools for creating test cases and compare different implementations in JavaScript.
- JSPerf - jsPerf aims to provide an easy way to create and share test cases, comparing the performance of different JavaScript snippets by running benchmarks.
- Benchmark.js - A robust benchmarking library that works on nearly all JavaScript platforms, supports high-resolution timers, and returns statistically significant results.
- JSlitmus - JSLitmus is a lightweight tool for creating ad-hoc JavaScript benchmark tests.
- Matcha - Matcha allow you to design experiments that will measure the performance of your code. It is recommended that each bench focus on a specific point of impact in your application.
- Timing.js - Timing.js is a small set of helpers for working with the Navigation Timing API to identify where your application is spending its time. Useful as a standalone script, DevTools Snippet or bookmarklet.
- Stats.js - This class provides a simple info box that will help you monitor your code performance.
- PerfTests - Performance tests of JavaScript inheritance models.
- Memory-stats.js - minimal monitor for JS Heap Size via performance memory.
Benchmark - PHP
- PHPench - PHPench creates a graphical output for a PHP benchmark. Plot the runtime of any function in realtime with GnuPlot and create an image out of the result.
- php-bench - Benchmark and profile PHP code blocks whilst measuring the performance footprint.
Bookmarklets
- Yahoo YSlow for Mobile/Bookmarklet - YSlow analyzes web pages and suggests ways to improve their performance based on a set of rules for high performance web pages.
- PageSpeed [Deprecated] - PageSpeed Insights is available as an open-source browser extension for Google Chrome. Webmasters and web developers can use PageSpeed Insights to evaluate the performance of their web pages and to get suggestions on how to improve them - Workaround by @Kiquenet - https://gist.github.com/davidsonfellipe/f8e3723b4dc0aaf9f6d4.
- PerfMap - A bookmarklet to create a front-end performance heatmap of resources loaded in the browser using the Resource Timing API.
- DOM Monster - A cross-platform, cross-browser bookmarklet that will analyze the DOM & other features of the page you're on, and give you its bill of health.
- CSS Stress - CSS Stress is a Testing and Performance Profiling.
- Performance-Bookmarklet - Analyze the current page through the Resource Timing API, Navigation Timing API and User-Timing - Sort of a light live WebPageTest. As Chrome Extension and Firefox Add-on under the name Performance-Analyser.
CDN
A content delivery network or content distribution network (CDN) is a large distributed system of servers deployed in multiple data centers across the Internet. The goal of a CDN is to serve content to end-users with high availability and high performance. See a large list of CDN in Wikipedia.
- jsDelivr - Similar to Google Hosted Libraries, jsDelivr is an open source CDN that allows developers to host their own projects and anyone to link to our hosted files in their websites.
- Google Hosted Libraries - Google Hosted Libraries is a content distribution network for the most popular, open-source JavaScript libraries.
- CDNjs - An open source CDN for Javascript and CSS sponsored by CloudFlare that hosts everything from jQuery and Modernizr to Bootstrap.
- Microsoft Ajax Content Delivery Network - Microsoft Ajax Content Delivery Network (CDN) hosts popular third party JavaScript libraries such as jQuery and enables you to easily add them to your Web applications.
- jQuery - jQuery CDN – Latest Stable Versions, powered by MaxCDN.
- Bootstrap - The recommended CDN for Bootstrap, Font Awesome, and Bootswatch.
- Handpicked jQuery Plugins Repository CDN - Content Delivery Network for popular jQuery plugins.
- OSSCDN - OSSCDN is a free CDN powered by MaxCDN that hosts all kinds of Open Source projects.
- CDNify - A Content Delivery Network for distributing all your static assets with ease around the globe.
- :cn: Baidu public CDN - Baidu public CDN serves stable, reliable, high-speed services, including all of the world's most popular open source JavaScript libraries.
- :cn: UpYun CDN - CDN provide by upyun.
- :cn: Sina Public Resources - CDN provide by sinaapp.com.
- :cn: Bootstrap中文网开放CDN服务 - Bootstrap Chinese net open CDN service (only HTTP).
- :ru: Yandex CDN - Yandex Content Delivery Network hosts popular third party JavaScript and CSS libraries (best for use in Russia).
To find useful informations and powerful tools in an easy-to-use online environment for you make the right choice between paid CDNs, please visit CDNPlanet.
CDN - Monitor
- CDNperf - finds you fast and reliable JavaScript CDNs that make your websites snappy and happy.
CDN - Utilities
- Cdnex - Prepends asset urls with custom CDN urls.
- Gulp-google-cdn - Replaces script references with Google CDN ones.
Image Optimizers
How to remove all this unnecessary data and give you a file without degrading quality.
- Grunt-smushit - Grunt plugin to remove unnecessary bytes of PNG and JPG using Yahoo Smushit.
- Gulp-smushit - Gulp plugin to optimize PNG and JPG using Yahoo Smushit. Made on top of smosh.
- Smush.it - Smush.it uses optimization techniques specific to image format to remove unnecessary bytes from image files. It is a "lossless" tool, which means it optimizes the images without changing their look or visual quality.
- Imagemin - Minify images seamlessly with Node.js.
- Sharp - The typical use case for this high speed Node.js module is to convert large images of many formats to smaller, web-friendly JPEG, PNG and WebP images of varying dimensions.
- Gm - GraphicsMagick and ImageMagick for node.
- Exexif - Pure elixir library to extract tiff and exif metadata from jpeg files.
- OptiPNG - OptiPNG is a PNG optimizer that recompresses image files to a smaller size, without losing any information.
- Grunt-contrib-imagemin - Minify PNG and JPEG images for Grunt.
- Gulp-imagemin - Minify PNG, JPEG, GIF and SVG images with imagemin for Gulp.
- Grunt-WebP - Convert your images to WebP format.
- Gulp-WebP - Convert images to WebP for Gulp.
- Imageoptim - Free app that makes images take up less disk space and load faster, without sacrificing quality. It optimizes compression parameters, removes junk metadata and unnecessary color profiles.
- Grunt-imageoptim - Make ImageOptim, ImageAlpha and JPEGmini part of your automated build process.
- ImageOptim-CLI - Automates ImageOptim, ImageAlpha, and JPEGmini for Mac to make batch optimisation of images part of your automated build process.
- Tinypng - Advanced lossy compression for PNG images that preserves full alpha transparency.
- Kraken Web-interface - Optimize your images and will be available for download for 12 hours.
- Shrinkray - One-click optimization for images in your Github repos
- mozjpeg - Improved JPEG encoder.
- Jpegoptim - Utility to optimize/compress JPEG files.
- ZopfliPNG - A command line program to optimize PNG images.
- AdvPNG - Recompress png files to get the smallest possible size.
- Leanify - Lightweight lossless file minifier/optimizer.
- Trimage - A cross-platform tool for losslessly optimizing PNG and JPG files.
Lazyloaders
- lazyload - Lazyload images, iframes, widgets with a standalone JavaScript lazyloader ~1kb
Loaders
- HeadJS- The only script in your HEAD. for Responsive Design, Feature Detections, and Resource Loading.
- RequireJS - RequireJS is a JavaScript file and module loader. It is optimized for in-browser use, but it can be used in other JavaScript environments, like Rhino and Node.
- Labjs - is an open-source (MIT license) project supported by Getify Solutions. The core purpose of LABjs is to be an all-purpose, on-demand JavaScript loader, capable of loading any JavaScript resource, from any location, into any page, at any time.
- Defer.js - Async Everything: Make the meat of your pages load faster with this JS morsel.
- InstantClick - InstantClick makes following links in your website instant.
- JIT - A JIT (Just In Time) plugin loader for Grunt. Load time of Grunt does not slow down even if there are many plugins.
Metrics Monitor
- Phantomas - PhantomJS-based web performance metrics collector and monitoring tool.
- Showslow - open source tool that helps monitor various website performance metrics over time. It captures the results of YSlow, Page Speed Insights, WebPageTest and dynaTrace AJAX Edition.
- Bench - Using Phantomas (a PhantomJS backed client performance metrics scrapper). Benchmark a page, store results in MongoDB and display result via the built in server.
- Keepfast - Tool to monitor indicators related to performance of a web page.
- GTmetrix - GTmetrix uses Google Page Speed and Yahoo! YSlow to grade your site's performance and provides actionable recommendations to fix these issues.
- Pingdom Website Speed Test - Test the load time of that page, analyze it and find bottlenecks.
- Dotcom-tools - analyze your website's speed in real browsers from 20 locations worldwide.
- Libra - Libra is a service to measure the weight along the time, written in Python.
- WebPageTest - Run a free website speed test from multiple locations around the globe using real browsers (IE and Chrome) and at real consumer connection speeds. You can run simple tests or perform advanced testing including multi-step transactions, video capture, content blocking and much more. Your results will provide rich diagnostic information including resource loading waterfall charts, Page Speed optimization checks and suggestions for improvements.
- Sitespeed.io - Sitespeed.io is an open source tool that will check your site against web performance best practice rules and use the Navigation Timing API to collect metrics. It will create XML & HTML output of the result.
- Grunt-phantomas - Grunt plugin wrapping phantomas to measure frontend performance.
- Perfjankie - Runtime Browser Performance regression suite (Demo).
- BrowserView Monitoring - Continually checks web page load times in Internet Explorer, Chrome and Firefox from multiple points around the world.
- PerfBar - Simple way to collect and look at your website performance metrics quickly, that supports budgeting and adding custom metrics.
- New Relic Browser Monitoring - Monitor your browser-side applications in real time, with a focus on real end users’ experiences.
- DareBoost - Real Browser Monitoring. Offers complete reports about web performance and quality using YSlow, Page Speed and numerous custom tips.
Metrics Monitor - API
- WebPageTest API Wrapper for NodeJS - WebPageTest API Wrapper is a NPM package that wraps WebPageTest API for NodeJS as a module and a command-line tool.
Minifiers - HTML
- HTMLCompressor - HtmlCompressor is a small, fast and very easy to use Java library that minifies given HTML or XML source by removing extra whitespaces, comments and other unneeded characters without breaking the content structure. As a result pages become smaller in size and load faster. A command-line version of the compressor is also available.
- Django-htmlmin - django-html in an HTML minifier for Python with full support for HTML 5. It supports Django, Flask and any other Python web framework. It also provides a command line tool that can be used for static websites or deployment scripts.
- HTMLMinifier - HTMLMinifier is a highly configurable, well-tested, Javascript-based HTML minifier, with lint-like capabilities.
- Grunt-contrib-htmlmin - A grunt plugin to minify HTML that uses HTMLMinifier.
- Gulp-htmlmin - A gulp plugin to minify HTML that uses HTMLMinifier.
- Grunt-htmlcompressor - Grunt plugin for html compression, using htmlcompressor.
- HTML_minifier - Ruby wrapper for kangax html-minifier.
- HTML_press - Ruby gem for compressing html, that removes all whitespace junk, and leaves only HTML.
- Koa HTML Minifier - Middleware that minifies your HTML responses using html-minifier. It uses html-minifier's default options which are all turned off by default, so you have to set the options otherwise it's not going to do anything.
- HTML Minifier Online - A HTML min tool by kangax (HTMLMinifier Creator).
- Minimize - Minimize is a HTML minifier based on the node-htmlparser,currently, HTML minifier is only usuable server side. Client side minification will be added in a future release.
- Html-minifier - A simple Windows command line tool to minify your HTML, Razor views & Web Forms views
Minifiers - JS & CSS
- YUI Compressor - JavaScript compressor which, in addition to removing comments and white-spaces, obfuscates local variables using the smallest possible variable name. This obfuscation is safe, even when using constructs such as 'eval' or 'with' (although the compression is not optimal is those cases) Compared to jsmin, the average savings is around 20%.
- UglifyJS2 - UglifyJS is a JavaScript parser, minifier, compressor or beautifier toolkit, written in JavaScript.
- CSSO - CSS minimizer unlike others. In addition to usual minification techniques it can perform structural optimization of CSS files, resulting in smaller file size compared to other minifiers.
- CSSmin.js - cssmin.js is a JavaScript port of YUICompressor's CSS minifier.
- Grunt-contrib-concat - A Grunt plugin to concatenate files.
- Grunt-contrib-uglify - A Grunt plugin to concatenate and minify Javascript files.
- Clean-css - A fast, efficient, and well tested CSS minifier for node.js.
- Django-compressor - Compresses linked and inline javascript or CSS into a single cached file.
- Django-pipeline - Pipeline is an asset packaging library for Django, providing both CSS and JavaScript concatenation and compression, built-in JavaScript template support, and optional data-URI image and font embedding.
- JShrink - JShrink is a PHP class that minifies javascript so that it can be delivered to the client quicker.
- JSCompress - The most minimalistic online JS Compress tool.
- CSSshrink - Because CSS is ospon the critical path to rendering pages. It must be small! Or else!
- Grunt-cssshrink - This is just a grunt wrapper for CSS Shrink.
- Gulp-cssshrink - Shrinks CSS files using cssshrink for Gulp.
- Prettyugly - Uglify (strip spaces) or prettify (add consistent spaces) CSS code.
- Grunt-contrib-cssmin - CSS Minifier for Grunt.
- Gulp-cssmin - CSS Minifier for Gulp.
- Grunt-uncss - A grunt task for removing unused CSS from your projects.
- Gulp-uncss - A gulp task for removing unused CSS from your projects.
Miscellaneous
- Socialite.js - Socialite provides a very easy way to implement and activate a plethora of social sharing buttons — any time you wish. On document load, on article hover, on any event.
- uCSS - uCSS is made for crawling (large) websites to find unused CSS selectors, but not remove unused CSS.
- HTTPinvoke- A no-dependencies HTTP client library for browsers and Node.js with a promise-based or Node.js-style callback-based API to progress events, text and binary file upload and download, partial response body, request and response headers, status code.
- Critical - Extract & Inline Critical-path CSS in HTML pages (alpha).
- Csscolormin - Utility that minifies CSS colors, example: min("white"); // minifies to "#fff".
- StyleStats - StyleStats is a Node.js library to collect CSS statistics.
- Lazysizes - High performance lazy loader for images (responsive and normal), iframes and scripts, that detects any visibility changes triggered through user interaction, CSS or JavaScript without configuration.
- Perf-Tooling - Perf Tooling is a shared resource to keep track of new and existent performance tools.
- TMI - TMI (Too Many Images) - discover your image weight on the web.
Sprite Generators
- Glue - Glue is a simple command line tool to generate sprites:
- Pitomba-spriter - Spriter is a simple and flexible dynamic sprite generator for CSS, using Python. It can process CSS both synchronous and asynchronous as it provides classes to be used in your python code and also a watcher that listens to your filesystem and changes CSS and sprite as soon as a static is changed.
- Grunt-spritesmith - Grunt task for converting a set of images into a spritesheet and corresponding CSS variables.
- Grunt-sprite-css-replace - Grunt task that generates a sprite from images referenced in a stylesheet and then updates the references with the new sprite image and positions.
- Grunt-svg-sprite - SVG sprites & stacks galore — Grunt plugin wrapping around svg-sprite that reads in a bunch of SVG files, optimizes them and creates SVG sprites and CSS resources in various flavours.
- Gulp-sprite - gulp task for creating a image sprite and the corresponding stylesheets for Gulp.
- Gulp-svg-sprites - gulp task for creating svg sprites.
- SvgToCSS - Optimizes and renders SVG files in css / sass sprites.
- Assetgraph-sprite - Assetgraph transform for auto generating sprites based on the CSS dependency graph.
- Sprite Cow - Sprite Cow helps you get the background-position, width and height of sprites within a spritesheet as a nice bit of copyable css.
- Spriteme - Create, integrate, and maintain CSS sprites with ease.
- ZeroSprites - ZeroSprites is a CSS sprites generator aimed at area minimization using algorithms used in the field of VLSI floorplanning.
- CSS Sprite Generator - CSS sprites allow you to combine multiple images into a single file.
- Sprity - A modular image sprite generator with a lot of features: supports retina sprites, supports different output formats, generates sprites and proper style files out of a directory of images, etc...
SVG
- SVGO - SVGO is a Nodejs-based tool for optimizing SVG vector graphics files.
- SVG OMG - SVGOMG is SVGO's Missing GUI, aiming to expose the majority, if not all the configuration options of SVGO.
- Grunt-svgmin - Minify SVG using SVGO for Grunt.
- Gulp-svgmin - Minify SVG with SVGO for Gulp.
- Scour - Scour is an open-source Python script that aggressively cleans SVG files, removing a lot of 'cruft' that certain tools or authors embed into their documents.
- SVG Cleaner - SVG Cleaner could help you to clean up your SVG files from unnecessary data. It has a lot of options for cleanup and optimization, works in batch mode, provides threaded processing on the multicore processors.
Web Components
- Vulcanize - Concatenate a set of Web Components into one file, a Build tool for HTMLImports and Web Components.
- Grunt-vulcanize - Grunt task for Polymer's Vulcanize.
- Gulp-vulcanize - Concatenate a set of Web Components into one file that use Vulcanize.
Webserver Benchmarks
- HTTPerf - httperf is a tool for measuring web server performance. It provides a flexible facility for generating various HTTP workloads and for measuring server performance.
- Apache JMeter - Open source load testing tool: It is a Java platform application.
- Locust - An open source load testing tool. Define user behaviour with Python code, and swarm your system with millions of simultaneous users.
- Autoperf - Autoperf is a ruby driver for httperf, designed to help you automate load and performance testing of any web application - for a single end point, or through log replay.
- HTTPerf.rb - Simple Ruby interface for httperf, written in Ruby.
- PHP-httperf - PHP Port of HTTPerf.rb.
- HTTPerf.js - JS Port of HTTPerf.rb.
- HTTPerf.py - Python Port of HTTPerf.rb.
- Gohttperf - Go Port of HTTPerf.rb.
- wrk - A HTTP benchmarking tool (with optional Lua scripting for request generation, response processing, and custom reporting)
- beeswithmachineguns - A utility for arming (creating) many bees (micro EC2 instances) to attack (load test) targets (web applications).
Webserver Modules
- PageSpeed Module - PageSpeed speeds up your site and reduces page load time. This open-source webserver module automatically applies web performance best practices to pages and associated assets (CSS, JavaScript, images) without requiring that you modify your existing content or workflow. PageSpeed is available as a module for Apache 2.x and Nginx 1.x.
- WebP-detect - WebP with Accept negotiation.
Specs
- Web Performance Working Group - The mission of the Web Performance Working Group, part of the Rich Web Client Activity, is to provide methods to measure aspects of application performance of user agent features and APIs.
- Page Visibility - This specification defines a means for site developers to programmatically determine the current visibility state of the page in order to develop power and CPU efficient web applications.
- Navigation Timing - This specification defines a unified interface to store and retrieve high resolution performance metric data related to the navigation of a document.
- Resource Timing - This specification defines an interface for web applications to access the complete timing information for resources in a document.
- User Timing - This specification defines an interface to help web developers measure the performance of their applications by giving them access to high precision timestamps.
- Performance Timeline - This specification defines an unified interface to store and retrieve performance metric data. This specification does not cover individual performance metric interfaces.
- CSS will-change - This specification defines the
will-change
CSS property which allows an author to declare ahead-of-time what properties are likely to change in the future, so the UA can set up the appropriate optimizations some time before they’re needed. This way, when the actual change happens, the page updates in a snappy manner. - Resource Hints - This specification defines the dns-prefetch, preconnect, prefetch, and prerender relationships of the HTML Link Element (<link>). These primitives enable the developer, and the server generating or delivering the resources, to assist the user agent in the decision process of which origins it should connect to, and which resources it should fetch and preprocess to improve page performance.
Stats
- HTTP Archive - It's a permanent repository of web performance information such as size of pages, failed requests, and technologies utilized. This performance information allows us to see trends in how the Web is built and provides a common data set from which to conduct web performance research.
Web Performance Meetup Groups
- Web Performance Meetup Groups - Full list on www.meetup.com.
Other Awesome Lists
Contributing
For contributing, open an issue and/or a pull request.


The concept of stakeholders is integral to any software development project and cannot be overemphasized. In the most general sense, stakeholders are individuals, teams, or entities who have a vested interest in the
outcome of the project. They can affect or be affected by the project’s objectives, deliverables, processes, and outcomes. Their involvement is critical at every stage of the software development life cycle (SDLC) because they bring
a variety of perspectives that influence requirements, constraints, risks, and solutions.
Why Are Stakeholders Important?
-
Clarification of Requirements: Stakeholders like business analysts, product owners, and users are often the sources of functional and non-functional requirements. Their insights ensure that the project
starts on the right foot, aligned with business needs and user expectations.
-
Decision-making and Governance: High-level stakeholders, often from the enterprise architecture and project management sectors, are vital for making crucial decisions regarding resource allocation,
timelines, and methodologies to be employed.
-
Technical Expertise: Technical stakeholders like architects, developers, and QA testers provide the skills and knowledge required to turn requirements into a working product. They make decisions about the
technical stack, architecture, and ensure that the product meets quality standards.
-
Business Alignment: Stakeholders from the business side help in ensuring that the project is not just technically sound but also aligned with business objectives, contributing to growth and profitability.
-
Risk Management: Stakeholders from various departments help in identifying, assessing, and mitigating risks. This collective wisdom often leads to more resilient project plans.
-
Feedback and Validation: Stakeholders are crucial for providing ongoing feedback, enabling iterative development that stays aligned with evolving needs and constraints. They also play a key role in
validating and accepting the final deliverables.
-
Compliance and Regulation: Certain stakeholders ensure that the project complies with legal requirements, standards, and best practices, thus protecting the organization from legal repercussions.
Stakeholders have multifaceted roles and their active involvement and commitment are essential for the successful initiation, planning, execution, and closure of a project. Neglecting to engage stakeholders or failing to
give due consideration to their inputs can result in misalignment with business goals, poor quality, and even project failure.
Stakeholders
1. Business
- Product Owner: The individual responsible for defining and prioritizing the product backlog, ensuring the team is working on tasks that deliver maximum business value.
- Product Manager: Manages the product lifecycle, bridges the gap between technical and non-technical teams, and ensures the product aligns with business goals.
- Business Analyst: Analyzes business processes and works closely with the product owner to define requirements for system changes or enhancements.
- Subject Matter Expert: Person with comprehensive and authoritative knowledge in a specific area.
- Users: The end-users who interact with the application or system.
2. Project
- Project Manager: Responsible for planning, executing, and closing projects, ensuring they are completed on time and within scope and budget.
- Facilitator/Scrum Master: Ensures the agile team follows agile practices, removes impediments, and ensures effective communication within the team.
3. Enterprise Architecture
- Enterprise Architect: Provides an overall vision for the enterprise's strategy and ensures alignment between the business's needs and IT architecture.
- Solution Architect: Plans, designs, and manages the solution architecture for specific business problems.
4. Technical
- Domain Analyst: Specialist in analyzing a specific business domain, understanding its intricacies, and translating them into technical requirements.
- Architect/Technical Lead: Guides the technical team, ensures the technical solution aligns with architectural standards and addresses business needs.
- Application Developer: Writes code and builds the application or system based on requirements.
- Devops Engineer: Integrates development and operations, focusing on automating the software delivery process.
- Database Admin: Manages and maintains the database systems, ensuring data consistency, integrity, and availability.
- QA Tester: Ensures the quality of the application through systematic testing.
- UAT Tester: End-users who validate the solution in the User Acceptance Testing phase.
- Development Manager: Leads the development team, ensuring they have the tools, resources, and processes to deliver the application efficiently.
This structured approach provides a clear overview of the roles and responsibilities of each stakeholder in the context of the project.
Stakeholders
1. Business
- Product Owner: The individual responsible for defining and prioritizing the product backlog, ensuring the team is working on tasks that deliver maximum business value.
- Product Manager: Manages the product lifecycle, bridges the gap between technical and non-technical teams, and ensures the product aligns with business goals.
- Business Analyst: Analyzes business processes and works closely with the product owner to define requirements for system changes or enhancements.
- Subject Matter Expert: Person with comprehensive and authoritative knowledge in a specific area.
- Users: The end-users who interact with the application or system.
2. Project
- Project Manager: Responsible for planning, executing, and closing projects, ensuring they are completed on time and within scope and budget.
- Facilitator/Scrum Master: Ensures the agile team follows agile practices, removes impediments, and ensures effective communication within the team.
3. Enterprise Architecture
- Enterprise Architect: Provides an overall vision for the enterprise's strategy and ensures alignment between the business's needs and IT architecture.
- Solution Architect: Plans, designs, and manages the solution architecture for specific business problems.
4. Technical
- Domain Analyst: Specialist in analyzing a specific business domain, understanding its intricacies, and translating them into technical requirements.
- Architect/Technical Lead: Guides the technical team, ensures the technical solution aligns with architectural standards and addresses business needs.
- Application Developer: Writes code and builds the application or system based on requirements.
- Devops Engineer: Integrates development and operations, focusing on automating the software delivery process.
- Database Admin: Manages and maintains the database systems, ensuring data consistency, integrity, and availability.
- QA Tester: Ensures the quality of the application through systematic testing.
- UAT Tester: End-users who validate the solution in the User Acceptance Testing phase.
- Development Manager: Leads the development team, ensuring they have the tools, resources, and processes to deliver the application efficiently.
This structured approach provides a clear overview of the roles and responsibilities of each stakeholder in the context of the project.


'The X-Files' (1998) (Fight the Future)
A movie review by Walter Frith
Member of the 'Internet Movie Critics Association' http://www.geocities.com/Hollywood/Studio/5713/index.html
Member of the 'Online Film Critics Society' http://smart.sbay.com/ofcs/
AS A REVIEW OF THIS FILM, I FEEL IT IS IMPORTANT TO GIVE YOU AN EXPLANATION OF THE SHOW'S PROGRESS IN BETTER UNDERSTANDING THE FILM.
Once in a generation, you get a truly great visionary who has a knack for capturing the desires of the human imagination better than you could ever believe. Rod Serling had 'The Twilight Zone', Gene Roddenberry had 'Star Trek', and Chris Carter now has 'The X-Files'. Inspired by the early 70's t.v. series 'Kolchak: The Night Stalker' starring Darren McGavin, Carter has crafted a television series that doesn't only investigate the paranormal but it provides an examination of the human condition that borders on being a soap opera but doesn't quite cross the line because all the shows are not tied directly to each other like a soap opera usually is.
'The X-Files' chooses to make episodes that are isolated in their own stories as well as other episodes that are part of the show's overall mythology that pick up from where they last left off every several episodes or so that examines the strengths, weaknesses, morals and intelligent qualities that each character possesses is his or her own way. 'The X-Files' did not start out as a borderline soap opera. It began as a cult show that looked more experimental than progressive in its first season (1993/94). In fact, the first episode aired on the FOX network on September 10, 1993. The total scope of characters had not yet come into play as being very interesting except for the two leads, David Duchovny as FBI Special Agent Fox Mulder and Gillian Anderson as Special Agent Dana Scully. Season 2 was more progressive and ended with its most intense cliffhanger in the show's five years. It was the first of a three part series that picked up with the first and second episode of season 3 that had Mulder and Scully involved in their most explosive adventure ever to date in the series. Season 3 is the show's BEST work to date. There is more diversity among the show's tone, both humourous and dramatic as well as its usual mystique. Season 4 is the show's most ambitious time as more story developments occur with splendidly addictive results. Season 5 is sort of an enigma. It's right in the middle. Better than season 1 and 2 but inferior to season 3 and 4.
Mulder is a true believer in the paranormal and its relative ties. UFO's, extra-terrestrials, mutants and un-Earthly beings in general are Mulder's cause in life as a branch of the FBI has a category known as the x-files, cases where the only explanation (or lack of one) seems to be tied to the supernatural. Enter Scully. She is a skeptic, a medical doctor with a background in science who believes that the answers for every unexplained occurrence are there and that one just has to know where to look. Cancer, AIDS and many other diseases haven't been cured as we haven't learned where to look and that is the parallel to Scully's belief that science can explain everything or so she believes. Scully has been assigned to become Mulder's partner and he believes she is to spy on him for her superiors but as the show would progress, Scully, to this day, has her same beliefs but is the only person that Mulder ends up trusting.
The show is basically tied to five important story lines. The first is Mulder's quest to find his sister, Samantha, who was abducted from her home at the age of 8 as Mulder, at age 12, watched as a supposed alien force took his sister in the same way the little boy was taken from his mother in 'Close Encounters'. Secondly is Mulder's quest to clarify his father's name. His father was murdered by forces inside a dark network tied to the government because he could expose too much about a secret government and military project that the men involved have supposedly been negotiating with extra-terrestrials for the revolution of a new way of life on Earth. His father has been shown in flashbacks from time to time as being involved in government experiments and the collection of data during the Cold War. These factors have included a mysterious alien entity in the form of a mysterious black oil that can infiltrate the human body and jump from person to person and is the main focus of a race between the United States and Russia to find a vaccine for it in fighting its effects that has been seen in the last three seasons of the five years the show has been on the air. Thirdly is the infiltration on society of a strange specimen of bees that appear to carry small pox, a disease thought to be almost eradicated by modern medicine but perhaps it will make a comeback for some sinister purpose. Fourth, Fox Mulder and his sister Samantha seem to be the focus of a reoccurring question. Who is their father?
Fifth is the progression of Scully's health. She was abducted by a strange force, some believe by aliens and some believe by the government and some believe both that later caused her to develop cancer and her fight against its progression that seems to be arrested for the moment that occurred at the beginning of season five. Season five, which just ended on May 17, 1998 was the most "teasing" season of the series as many of the regular characters weren't seen as often as they were in the other four seasons and for good reason. EVERYONE appears to be in the movie which is supposed to appeal to die hard fans of the show, such as myself and people who have never seen it. The movie is supposed to answer serious questions raised by the show over the past five seasons and the movie will be a stop sign at its conclusion that will phase in season 6 in the fall of 1998.
Mulder has had three secret sources of information that he turns to when he's stuck on a case. These people are like the deep throat character played by Hal Holbrook in 'All the President's Men'. In fact, Mulder's first informant, was named Deep Throat (Jerry Hardin), and he was murdered by conspiring forces at the end of season 1 and at the beginning of season 4, Mulder's other informant, Mr. X (Steven Williams) was likewise murdered by what we assume are the same people. Mulder's current source of information is from a UN employee named Marita Covarrubias (Laurie Holden). She is a woman who is the least trustworthy of all of Mulder's informants.
Other reoccurring characters on the show are the Lone Gunmen. They are Byers (Bruce Harwood), Langly (Dean Haglund) and Frohike (Tom Braidwood). These men are often the show's comic relief but are serious and important enough to help Mulder with his quest for unexplained scientific and technical explanations he needs in solving a case. The Lone Gunmen work out of a lab that also serves as their apartment where they have computers and other high tech gadgets for analyzing and explaining certain types of data fed to them.
There is Alex Krycek (Nicholas Lea). Krycek started off as what looked like an ally to Mulder but later we learned that Krycek was a double agent, working for the Cigarette Smoking Man and his consortium as well as for the Russians although Krycek's birthplace has never been established. He is one of the show's most interesting characters who hasn't been used as much as I would like to have seen.
There was the introduction in season 5 of Special Agent Spender (Chris Owens). His character has not yet been utilized enough to really comment on but more should be explained about him in season 6 and should involve a relationship between him and the Cigarette Smoking Man. Or maybe not.
Last but certainly not least is Mulder and Scully's boss, Assistant Director of the FBI, Walter Skinner (Mitch Pileggi) who is the most underplayed character in the series. Very little has been explained about Skinner in the four years the show has been on. Skinner is a former Marine and Vietnam veteran who seems to hiding a secret pain in life. Skinner never smiles and when he tries to, it doesn't last long and is usually a smile reminding him of a happier time in his life or is a smile that reminds him of something strange and not something funny. He is a somewhat sympathetic character that you like, hoping he will always remain as a good guy but Chris Carter has portrayed him as uncertain more than any other character.
Mulder and Scully are monitored by the government within the government, a consortium of men of considerable experience in their work who all look to be in their 50's and 60's. There is the 1st Elder (Don S. Williams), who seems to be the leader, the Well Manicured Man (John Neville), who appears to be an under boss of authority and the infamous Cigarette Smoking Man (William B. Davis) who is the most focused upon character of the three men and the show's chief bad guy and one of the most intelligently portrayed villains in the history of television or the movies. If you are having trouble picturing these men, think of a dark room or dark outside scenario, where men, dressed in suits, plan their next move that will affect the lives of millions. They're the sort of men believed by many to have killed JFK, RFK and Martin Luther King, Jr. In fact, in season 4, an episode called 'Musings of a Cigarette Smoking Man' is one of the series best episodes as its alternative presentation of ideas does in fact imply and it shows that the Cigarette Smoking Man killed JFK and Martin Luther King, Jr.
Throughout the show, Mulder and Scully have each lost a parent and a sibling. Scully's father died of a heart attack in season 1 and her sister was accidentally murdered by assassins who meant to kill Scully, at the beginning of season 3. Mulder's father, as mentioned already, was murdered by conspiring government forces involving the Cigarette Smoking Man at the end of season 2 and Mulder's sister Samantha has been missing since before the series began. These losses have driven them further in living up to the old adage that for every action there can be an equally strong reaction and their experiences and bonding with one another have taken the show to progressive heights virtually unmatched by any other show. What keeps 'The X-Files' so interesting is that the relationship between Mulder and Scully hs always been kept professional an never personal. They have never been lovers and despite the desire of immature teenage female fans who watch the show but aren't really fans and can't tell you what's going on (I can't tell you how much people like this bother me), Chris Carter says that he will never do anything to rock the boat in making their relationship anything but professional. I and several of my 'X-Files' friends have vowed to stop watching the show if it ever becomes personally romantic between Mulder and Scully.
The last episode of the show before the movie is the end of season 5. Fox Mulder's work, all of the x-files, were burned in his private office at the FBI Headquarters by the Cigarette Smoking Man who first removed Samantha Mulder's file. The x-files were apparently destroyed because a link in solving them all had allegedly been found through the mind reading abilities of a 12 year old boy. Solving all of the x-files would be a threat to the consortium's planned project involving extra-terrestrials and involving the Cigarette Smoking Man..........
..........HERE IS WHERE THE MOVIE REVIEW BEGINS
WARNING: This review contains some spoilers which I never do but it is necessary in this case to appreciate the film. Fear not. Not all is revealed!
'The X-Files' movie begins in what we know in the present day as being North Texas. It is 35,000 B.C., and a pair of what can be described most understandably as cave men, are running along a thick winter like tundra that resembles the North or South pole, probably the climate of North Texas in 35,000 B.C. before the evolution of climate change to its present day climate. They fall through a weak spot in the snow and encounter alien entities in an underground cave where the black oil is exposed to them. Skip forward to the present day. Again, it is North Texas. A group of boys are playing and one of them falls through the ground. We are to assume that its the same spot the cave men encountered as the boy who fell through finds a skull and the boy is contaminated by the black oil. There is a quick rush to quarantine the boy after a call is made by a mysterious man on the scene to the Cigarette Smoking Man.
The movie is clever in its opening scenes, as Mulder and Scully are not present right away and work their way into the story later in what would become another tie to the film's many plot points, all on a collision course with each other. When we do see Mulder and Scully, after about the first twenty minutes into the film, they are at the scene of a federal building in Dallas, Texas, where a bomb threat has been called in. Among their discussion is a phrase that tells the audience that the x-files have been shut down. After the bomb situation has resolved itself, Mulder encounters a doctor (Martin Landau), who was an old friend of Mulder's father and who knows the real purpose of the bomb scare scenario in Dallas.
The consortium introduces us to new character, a man we assume is a scientist (Armin Mueller-Stahl), who has information about a new virus related to the uncovering of the black oil in North Texas. The regular consortium members are there. The 1st Elder (Don S. Williams), The Well Manicured Man (John Neville), and, of course, the Cigarette Smoking Man (William B. Davis). We discover that not only has the government been working in control with some extra-terrestrial forces for the past fifty years, but we also learn that the consortium is working to prevent in part, a colonization of the Earth for which they have no control. This element is derived from season 5's two part story 'Patient X' and 'The Red and the Black'. We learn that the United States and Russia are working to find a vaccine that will prevent the colonization by extra terrestrials by spreading the black oil. The vaccine plays a major part in the film and progresses up to the film's conclusion where we learn the fate of the x-files in what will be the start of season 6 in the fall of 1998.
Mulder and Scully face elements that they've never been up against before as their exploits take them to the South pole for their most difficult adventure ever and although the film is an expansion of the television series, Skinner (Mitch Pileggi) and The Lone Gunmen (Bruce Harwood, Dean Haglund and Tom Braidwood) are only used briefly.
I was hoping the movie would create more depth than it ultimately did and although the creators of the movie say that you don't have to know anything about the television series to enjoy the movie, this is not entirely true. You can enjoy the movie if you've never seen the t.v. show but only about 75% of the movie will make sense. Without knowing anything about the black oil, the bees, and the consortium, audiences will have to watch repeats of the show to truly appreciate it. All in all, a good effort and certainly better than the first 'Star Trek' movie in 1979 and 'Twilight Zone---The Movie' in 1982 which failed to live up to the standards of their television pasts. 'The X-Files' movie does live up to the standards of its television past with a vision of the future which will keep true fans clued in for more.
OUT OF 5 > * * * *
Visit FILM FOLLOW-UP by Walter Frith http://home.netinc.ca/~wfrith/movies.htm
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


|
MSP430™CapTIvateSoftwareLibraryAPIGuide
1_70_00_03
|
Low-level sensor update module. More...
Functions | |
| void | CAPT_blockOnFlag (volatile bool *pFlag, uint8_t ui8LPM) |
| void | CAPT_loadCycle (tSensor *pSensor, uint8_t ui8Cycle, uint8_t ui8Freq, bool bFSM) |
| void | CAPT_unloadCycle (tSensor *pSensor, uint8_t ui8Cycle, uint8_t ui8Index, bool bFSM) |
| void | CAPT_startConversion (volatile bool *pbEndOfConversionFlag) |
| void | CAPT_cleanupAfterConversion (void) |
| void | CAPT_startConversionAndWaitUntilDone (volatile bool *pbEndOfConversionFlag, uint8_t ui8LPM) |
| void | CAPT_initSensor (tSensor *pSensor) |
| void | CAPT_updateSensor (tSensor *pSensor, uint8_t ui8LPM) |
| void | CAPT_updateSensorRawCount (tSensor *pSensor, tRawConversionStyle conversion, tOversamplingStyle oversampling, uint8_t ui8LPM) |
| void | CAPT_startWakeOnProxMode (tSensor *pSensor, uint8_t ui8Cycle, uint16_t ui16WakeupInterval) |
| void | CAPT_stopWakeOnProxMode (tSensor *pSensor, uint8_t ui8Cycle) |
| void | CAPT_processFSMCycle (tSensor *pSensor, tCycle *pCycle) |
| void | CAPT_processSensor (tSensor *pSensor) |
| bool | CAPT_testForRecalibration (tSensor *pSensor) |
| bool | CAPT_testForMaxCountRecalibration (tSensor *pSensor) |
| bool | CAPT_testForNegativeTouchRecalibration (tSensor *pSensor) |
| void | CAPT_flagAllElementsForReseed (tSensor *pSensor) |
| void | CAPT_updateSensorTimeout (tSensor *pSensor) |
| void | CAPT_updateSensorNoise (tSensor *pSensor) |
| uint8_t | CAPT_convertAbsToRel (uint16_t ui16Ref, uint16_t ui16Abs) |
| uint16_t | CAPT_convertRelToAbs (uint16_t ui16Ref, uint8_t ui8Rel) |
| uint64_t | CAPT_getElementStateBitField (tSensor *pSensor, tElementStatusType status) |
| Get a bit field of the requested state of all elements in the sensor. More... | |
| void | CAPT_registerCallback (tSensor *pSensor, void(*user_callback)(tSensor *pSensor)) |
| void | CAPT_registerTrackPadSensorProcessing (tSensor *pSensor, void(*user_function)(tSensor *)) |
| void | CAPT_registerTrackPadGestureProcessing (tSensor *pSensor, void(*user_function)(tSensor *)) |
| void | CAPT_clearSensorProxTouch (tSensor *pSensor) |
| IQ16_t | CAPT_computeIIRFilter (IQ16_t *pRaw, IQ16_t *pFiltered, uint8_t ui8Beta) |
| IQ16_t | CAPT_computeIIRFilterFast (IQ16_t *pRaw, IQ16_t *pFiltered, uint8_t ui8Beta) |
| void | CAPT_reseedFilterAll (tSensor *pSensor, tFilterOption WhatToFilter) |
| void | CAPT_reseedFilter (IQ16_t *pFilter, uint16_t ui16ReseedValue) |
| bool | CAPT_updateProx (tSensor *pSensor, tElement *pElement) |
| bool | CAPT_updateTouch (tSensor *pSensor, tElement *pElement) |
| void | CAPT_updateLTA (tSensor *pSensor, tElement *pElement) |
| void | CAPT_updateFilterCount (tSensor *pSensor, tElement *pElement) |
| void | CAPT_updateFilterCounts (tCycle *pCycle, uint8_t ui8Beta) |
| void | CAPT_updateFSMProx (tSensor *pSensor, tElement *pElement) |
| void | CAPT_updateFSMTouch (tSensor *pSensor, tElement *pElement) |
| void | CAPT_updateSensorProxTouch (tSensor *pSensor) |
| void | CAPT_updateSensorWithEMC (tSensor *pSensor, uint8_t ui8LPM) |
| void | CAPT_processCycleWithEMC (tSensor *pSensor, const tCycle *pCycle) |
| void | CAPT_updateElementFilteredValuesWithEMC (tSensor *pSensor, tElement *pElement) |
| bool | CAPT_updateSelfElementProxTouchWithEMC (tSensor *pSensor, tElement *pElement) |
| bool | CAPT_updateProjElementProxTouchWithEMC (tSensor *pSensor, tElement *pElement) |
Low-level sensor update module.
This module APIs for sensor initialization, measurement, filtering, auto calibration, threshold detection, and debounce for proximity and touch. A fast IIR filter API and a performance IIR filter API are made available to higher level processing functions as well.
| void CAPT_blockOnFlag | ( | volatile bool * | pFlag, |
| uint8_t | ui8LPM | ||
| ) |
Use CAPT_blockOnFlag to safely stall the running program in the specified LPM mode until a boolean flag is set to true and the CPU is awakened.
| pFlag | is a pointer to the boolean flag to pend on |
| ui8LPM | indicates the low power mode to use while waiting |
| void CAPT_loadCycle | ( | tSensor * | pSensor, |
| uint8_t | ui8Cycle, | ||
| uint8_t | ui8Freq, | ||
| bool | bFSM | ||
| ) |
Use CAPT_loadCycle before CAPT_startConversion() or CAPT_startConversionAndWaitUntilDone() to load a cycle for measurement. This function sets up the IO for the cycle, applies the gain and offset, for each element in the cycle, and configures the FSM if requested.
| pSensor | is a pointer to the parent sensor |
| ui8Cycle | is the cycle to load in the sensor |
| ui8Freq | is the oscillator frequency index to load values from |
| bFSM | specifies whether to load and enable the FSM. |
| void CAPT_unloadCycle | ( | tSensor * | pSensor, |
| uint8_t | ui8Cycle, | ||
| uint8_t | ui8Index, | ||
| bool | bFSM | ||
| ) |
Use CAPT_unloadCycle after CAPT_startConversion() or CAPT_startConversionAndWaitUntilDone() to unload a cycle after measurement. This function clears up the IO for the cycle, saves the raw results, and saves the filtered count / LTA if the FSM parameter is true.
| pSensor | is a pointer to the parent sensor |
| ui8Cycle | is the cycle to load in the sensor |
| ui8Index | is the raw count index to save the results to |
| bFSM | specifies whether to save filtered count and LTA data from the FSM. |
| void CAPT_startConversion | ( | volatile bool * | pbEndOfConversionFlag | ) |
Use CAPT_startConversion to immediately kickoff a conversion that has been set up. This function returns immediately and does not wait for the conversion to complete.
| none |
| void CAPT_cleanupAfterConversion | ( | void | ) |
Use CAPT_cleanupAfterConversion to cleanup the peripheral after CAPT_startConversion has been called and the conversion has completed.
| none |
| void CAPT_startConversionAndWaitUntilDone | ( | volatile bool * | pbEndOfConversionFlag, |
| uint8_t | ui8LPM | ||
| ) |
Use CAPT_startConversionAndWaitUntilDone to kickoff a conversion that has been setup and wait in the specified low power mode until the conversion has completed, at which time the peripheral will be cleaned up.
| ui8LPM | is the low power mode to enter during the conversion |
| void CAPT_initSensor | ( | tSensor * | pSensor | ) |
Initialize Sensor
Clear all status flags in the sensor and elements.
| pSensor | is a pointer to a generic sensor type |
Referenced by CAPT_initUI().
| void CAPT_updateSensor | ( | tSensor * | pSensor, |
| uint8_t | ui8LPM | ||
| ) |
Refresh all data for the specified sensor
This function samples the sensor and processes the data, upating all of the sensor and element values with the current data. Upon completion of the update, the sensor callback function will be called, if it exists.
| pSensor | is a pointer to the sensor to update |
| ui8LPM | is the low power mode to enter during conversions |
| void CAPT_updateSensorRawCount | ( | tSensor * | pSensor, |
| tRawConversionStyle | conversion, | ||
| tOversamplingStyle | oversampling, | ||
| uint8_t | ui8LPM | ||
| ) |
Update raw count values for a sensor.
This function samples the sensor, but only updates the raw count values for each element- no processing is performed on the data, and the sensor callback function is NOT called upon completion of the update.
| pSensor | is a pointer to the sensor to update |
| conversion | specifies the conversion style to use. Valid options include:
|
| oversampling | specifies the oversampling to use. Valid options include:
|
| ui8LPM | is the low power mode to enter during conversions. |
| void CAPT_startWakeOnProxMode | ( | tSensor * | pSensor, |
| uint8_t | ui8Cycle, | ||
| uint16_t | ui16WakeupInterval | ||
| ) |
Use CAPT_startWakeOnProxMode to configure the peripheral for wake-on-proximity mode. The cycle/sensor selected will be measured autonomously with no CPU unteraction. The following flags will indicate to the application that action needs to be taken:
| pSensor | is a pointer to the sensor to use |
| ui8Cycle | indicates the cycle of the sensor to load and use for for wakeup |
| ui16WakeupInterval | specifies the wakeup interval to use. Valid options include: |
| void CAPT_stopWakeOnProxMode | ( | tSensor * | pSensor, |
| uint8_t | ui8Cycle | ||
| ) |
Call CAPT_stopWakeOnProxMode() after calling CAPT_startWakeOnProxMode() to disable wake-on-proximity mode. This function saves the count/LTA data for the loaded cycle, then unloads the cycle from the peripheral.
| pSensor | is a pointer to the sensor that is being measured. |
| ui8Cycle | indicates the cycle of the sensor being measured. |
Perform processing for a cycle
Here standard processing is performed on the elements of the cycle. This includes the basics of capacitive sensing such as the long-term average, output status bits (prox/touch) and basic filtering.
| pSensor | is a pointer to the sensor of the cycle to process |
| pCycle | is a pointer to the cycle to process |
| void CAPT_processSensor | ( | tSensor * | pSensor | ) |
Perform generic sensor processing
Here different status bits are updated to summarise the status of the sensor
| pSensor | is a pointer to the Sensor Implementation to update |
| bool CAPT_testForRecalibration | ( | tSensor * | pSensor | ) |
Sensor Recalibration Management Function - LTA Drift Check
The LTA of each element of the sensor is monitored here, and if any of them drift out of range of the intended calibration values, the function returns true, flagging the application layer that the sensor should be re-calibrated as it has drifted out of range. Currently the drift is fixed at 1/8th of the conversion count.
| pSensor | is a pointer to the sensor to test. |
| bool CAPT_testForMaxCountRecalibration | ( | tSensor * | pSensor | ) |
Sensor Recalibration Management Function - Max Count Bounds Check
The max count parameter of the sensor is tested here, and if it is set and the runtime re-calibration parameter is set, this function returns true and clears the max count error for the sensor.
| pSensor | is a pointer to the sensor to test. |
| bool CAPT_testForNegativeTouchRecalibration | ( | tSensor * | pSensor | ) |
Sensor Recalibration Management Function - Negative Touch Check
The negative touch parameter of the sensor is tested here, and if it is set and the runtime re-calibration parameter is set, this function returns true.
| pSensor | is a pointer to the sensor to test. |
| void CAPT_flagAllElementsForReseed | ( | tSensor * | pSensor | ) |
Flag All Elements for Reseed
Use CAPT_flagAllElementsForReseed() to set the reseed bit for all elements within a sensor.
| pSensor | is a pointer to the sensor to process |
| void CAPT_updateSensorTimeout | ( | tSensor * | pSensor | ) |
Sensor Timeout algorithm
Update the sensor timeout counter, then test if the timeout threshold has been reached. In that case reseed all the sensor LTAs and clear status bits
| pSensor | is a pointer to the Sensor Implementation to update |
| void CAPT_updateSensorNoise | ( | tSensor * | pSensor | ) |
Sensor Noise Algorithm
Update the noise status flag of the sensor based on the status of it's elements.
| pSensor | is a pointer to the sensor to update. |
| uint8_t CAPT_convertAbsToRel | ( | uint16_t | ui16Ref, |
| uint16_t | ui16Abs | ||
| ) |
This function converts a absolute parameter to a relative parameter. This can be thought of as a percentage operation, but a value of 128 is equivalent to 100%. The maximum supported output is 255, or just under 200%.
| ui16Ref | is the reference value. |
| ui16Abs | is the value to convert with respect to the reference. |
| uint16_t CAPT_convertRelToAbs | ( | uint16_t | ui16Ref, |
| uint8_t | ui8Rel | ||
| ) |
This function converts a relative parameter to an absolute parameter. This can be thought of as reverse a percentage operation, but a value of 128 is equivalent to 100%. The relative value passed must be between 0 and 128.
| ui16Ref | is the reference value. |
| ui8Rel | is the value to convert. with respect to the reference. |
| uint64_t CAPT_getElementStateBitField | ( | tSensor * | pSensor, |
| tElementStatusType | status | ||
| ) |
Get a bit field of the requested state of all elements in the sensor.
This function may be called by the application to obtain a bit field containing the requested state of each element within the sensor. The bit field supports up to 64 elements. Elements are mapped to bit positions starting with the first element of the first cycle to the last element of the last cycle. For example, a sensor with two cycles and two elements in each cycle would have the following mapping: Return value bit 0 (0x01): Cycle 0 Element 0 Return value bit 1 (0x02): Cycle 0 Element 1 Return value bit 2 (0x04): Cycle 1 Element 0 Return value bit 3 (0x08): Cycle 1 Element 1
| pSensor | is a pointer to the sensor from which to generate the mask |
| status | is the element status flag of which to create a field. Valid options are:
|
Register a user's callback function with each sensor
This provides a method for the user to be notified of a sensor "event" such as touch, prox, etc.
The default callback is TL_GenericCallback() if user fails to register their own.
| pSensor | = pointer to the Sensor |
| user_callback | = pointer to user's callback function |
The default callback for sensor processing is CAPT_processTrackPadSensor() User can override by registering their own callback their own.
| pSensor | = pointer to the Trackpad sensor processing |
| user_callback | = pointer to user's callback function |
Referenced by CAPT_initUI().
The default callback for gesture processing is CAPT_processTrackPadGesture() User can override by registering their own callback
| pFunction | = pointer to the Gesture processing function |
Referenced by CAPT_initUI().
| void CAPT_clearSensorProxTouch | ( | tSensor * | pSensor | ) |
Clear all Prox, Touch and NegativeTouch status bits relating to a specific sensor. Here different status bits are cleared in the sensor, and in its elements.
| pSensor | is a pointer to the Sensor Implementation to update |
IIR Filter function
A common filter used for capacitive sensing. This filter implements a beta that is a value/255 and processing more than the IIRFilterFast() function. This is usually implemented on properties such as slider/wheel outputs.
| pRaw | is a pointer to the new value to enter the filter |
| pFiltered | is a pointer to the stored filter value |
| ui8Beta | is a fraction of 255 that determines the IIR filter Beta |
IIR Filter (fast) function
A common filter used for capacitive sensing. This filter is faster to process (since the beta is a bitwise shift, and is usually implemented on properties that are large in quantity, such as LTA's and Count values.
| pRaw | is a pointer to the new value to enter the filter |
| pFiltered | is a pointer to the stored filter value |
| ui8Beta | is a shifter value which determines the IIR filter Beta |
| void CAPT_reseedFilterAll | ( | tSensor * | pSensor, |
| tFilterOption | WhatToFilter | ||
| ) |
Reseed a filtered data array for a sensor
Perform a reseed on all of the filtered values for a specific sensor. This could be any filtered data such as Counts or Long-term averages.
| pSensor | is a pointer to the sensor to reseed |
| WhatToFilter | indicates which value is filtered |
| void CAPT_reseedFilter | ( | IQ16_t * | pFilter, |
| uint16_t | ui16ReseedValue | ||
| ) |
Reseed a filtered data value for a single data array entry
Perform a reseed on one of the filtered values. This could be any filtered data such as Counts or Long-term averages.
| pFilter | is a pointer to the data that must be reseeded |
| ui16ReseedValue | is the reseed value |
Update Prox Status
Depending on the senseMethod implemented, calculate the delta as a positive value when changing in the standard direction for the specific method. Counts increase for projected, and decrease for self capacitive. Then check if this exceeds the selected threshold value.
| pSensor | is the sensor pointer |
| pElement | is a pointer to the element to process |
Update Touch Status
Using the touch threshold, an actual threshold point is calculated for the specific element, and the count value is compared to that threshold. Clearly Projected must be above this threshold, and self capacitive below
| pSensor | is the sensor pointer |
| pElement | is a pointer to the element to process touch on |
Update LTA filter for specific element based upon four freq measurements
Update the LTA using the latest obtained Count value for the new cycle of sensed data.
| pSensor | is the sensor pointer |
| pElement | is a pointer to the element which LTA must be updated |
Update the count value used for processing
The raw count value is obtained from the HAL element structures, and if required, is processed (such as filtering) and populated in the capacitive touch library array 'Count[]'.
| pSensor | is the sensor pointer (for sensor configuration) |
| pElement | is the cycle pointer |
| void CAPT_updateFilterCounts | ( | tCycle * | pCycle, |
| uint8_t | ui8Beta | ||
| ) |
Update the filter count value based upon the 4 frequency measurements.
| pCycle | = pointer to cycle |
| ui8Beta | = |
Update Prox Status
Update the prox and debounce status.
| pSensor | = pointer to sensor |
| pElement | = pointer to the element to process |
Update Touch Status
Using the touch threshold, an actual threshold point is calculated for the specific element, and the count value is compared to that threshold. Clearly Projected must be above this threshold, and self capacitive below
| pSensor | is the sensor pointer |
| pElement | is a pointer to the element to process touch on |
| void CAPT_updateSensorProxTouch | ( | tSensor * | pSensor | ) |
Sensor Global Prox and Touch status update
The global sensor proximity and touch status is updated here. The touch or prox status is set if any of the elements in the sensor have prox or touch states active.
| pSensor | is a pointer to the Sensor Implementation to update |
| void CAPT_updateSensorWithEMC | ( | tSensor * | pSensor, |
| uint8_t | ui8LPM | ||
| ) |
Update all aspects of a sensor with additional EMC processing applied.
| pSensor | is a pointer to the sensor to update |
| ui8LPM | is the low power mode to use during conversions |
Perform processing for a cycle with additional EMC processing applied.
Here standard processing is performed on the elements of the cycle. This includes the basics of capacitive sensing such as the long-term average, output status bits (prox/touch) and basic filtering.
| pSensor | is a pointer to the sensor of the cycle to process |
| pCycle | is a pointer to the cycle to process |
Use CAPT_updateElementFilteredValuesWithEMC() to update filtered values in the element based on the raw sampled data. Updated values include the filtered count and the filtered noise value.
| pSensor | is the parent sensor to pElement. |
| pElement | is the element to process. |
Use CAPT_updateSelfElementProxTouchWithEMC() to update the prox/touch status of an element after the filtered count, LTA and noise values have all been updated. This function is for self-capacitance sensors.
| pSensor | is the parent sensor to pElement. |
| pElement | is the element to process. |
Use CAPT_updateProjElementProxTouchWithEMC() to update the prox/touch status of an element after the filtered count, LTA and noise values have all been updated. This function is for projected-capacitance sensors.
| pSensor | is the parent sensor to pElement. |
| pElement | is the element to process. |


I am a front-end web developer who works magic in HTML5, CSS, and Javascript. However, I do rise to the challenge and develop sites using PHP and Ruby on Rails.
I live with 2 cats and 2 salmanders in a miniature jungle. I am an amature botantist whose favorite past-time is the conservation of species through horticulture.


BAM alignment data is a fundamental data type and format for genomic analysis. However its a difficult data-type to work with as it is often very large 10s-100s of gb's and is a compressed binary format, which means you can never just open it up in notepad and take a look at the data. This tutorial will try to explain BAM's, the metrics that can be derived from the data, and finally allow interaction with real, large BAMS with different characteristics.
What is read depth coverage?
1/6
>
Read coverage is normally not enough by itself to figure out what is really happening but can be a powerful hint for what to investigate next. Many other metrics can also give you an idea what is going on.


Shakir Consulting Services was founded upon integrity, values, servitude, cultural responsiveness, and racial equity. Our vision is to be a leading consulting and social services agency owned by a Muslim American woman who is a descendant of slavery, that provides seamless and transformative services for those who are often overlooked or go unnoticed.
Our Consulting Services is a small social services and consulting agency that currently provides the following culturally specific services: Contracted case management services for Ramsey County's elderly and disabled, Culturally centered housing services through Housing Stabilization Services, Parent Support Outreach Services (PSOP) for residents of Ramsey County, Business Consulting, Racial Equity Training, Organization Development and Change Management.
Housing Stabilization Services is a Medical Assistance benefit to help people with disabilities and seniors find and keep housing. Housing stabilization services are state plan (not waiver) Home and Community-Based Services (HCBS).
Shakir Consulting is a new PSOP provider with Ramsey County. Ramsey County is committed to supporting healthy families and strong communities. Our Parent Support Outreach Program (PSOP) can help connect you to the services and resources your family needs, and work with you on support options to help your family thrive.
Shakir Consulting provides the following case management services to people of all ages and backgrounds in Ramsey County: Alternative Care (AC) Program Elderly Waiver (EW) Community Access for Disability Inclusion (CADI) Waiver Developmental Disability (DD) Waiver DD Non- Waiver Brain Injury (BI) Waiver Community Alternative Care (CAC) Waiver.
President and CEO
Ayana is a Doctoral Candidate in Organization Development and Change Management at the University of St. Thomas. Ms. Shakir has a Master's of Arts in Health and Human Services Administration from St. Mary's University. She has over 20 years of experience as a Social Work Practitioner and Educator working in the areas of Adoption, Foster Care, Child Protection, Adult Protection, MN Choices DD Assessments, and taught English in Saudi Arabia at Taif University.
Supervisor
Hana is the supervisor for the Alternative Care, Elderly Waiver, and CADI Waiver programs with Ramsey County. Ms. Song has over 12 years of experience in the aging and disabilities field.
Program Coordinator
Imad experience includes emergency mental services with Hennepin County, child protection services with Hennepin County, and behavioral therapy with Minnesota Autism Center. Imad is also involved in the Equity Committee as an Equity Champion at DHS.
Case Aide
Hodan has experience in Early Childhood Education, is bi-lingual in English and Somali, and knowledgeable about the Somali and Muslim communities in the Twin Cities. In addition, Ms. Ibrahim is a trained Somali interpreter.
Disability Hub MN: 1-866-333-2466
Domestic Violence: 1-866-223-1111
MN Mental Health Crisis Response contacts by county and tribe
MN Attorney General, consumer complaints: 1-800-657-3787
National Alliance on Mental Illness Minnesota: 1-888-626-4435
Alzheimer's Association 24/7 Helpline: 1-800-272-3900
Office of the Ombudsperson for Long-Term Care: 1-800-657-3591
Office of the Ombudsperson for Mental Health and Developmental Disabilities: 1-800-657-3506
Senior Linkage Line: 1-800-333-2433
Suicide Prevention Hotline: 1-800-273-8255
United Way: 211/ 1-800-543-7709
For more information about our service, send us an email or give us a call


Manage your anti-money laundering supervision
Use this service to register with HM Revenue and Customs (HMRC) for supervision under the Money Laundering Regulations.
If you’re already registered you can update your information, de-register or renew your registration.
Start nowBefore you register
You’ll need to answer a few questions so HMRC can identify your business. You might need to look up a couple of things.
Unique Taxpayer Reference (UTR) number
If we can’t find your business automatically, we’ll ask for your UTR number. You’ll find it in the header of any letter issued by HMRC. It may be labelled ‘Tax Reference’, ‘UTR’ or ‘Official Use’.
Company registration number
If your business is a limited company you’ll need this. You can search for your company registration number, or find it on official letters from Companies House or your Certificate of Incorporation.


--- layout: default ---
Our Aim is to connect FAIR stakeholders and foster a community where FAIR approaches can be shared, discussed, and advanced collaboratively.
Read More
All News
All Events


QR Code Scanner
Settings
There is no connection with server.
Unknown response from server.
Datetime
QR Code
Status
Settings
Load Settings from File
×
Select Camera:
API URL:
Post
Get
Responses:
Success:
Fail:
Field name for QR Code:
Fields:
Add Field


Toggle navigation
Project name
Home
About
Contact
An agile Timer for all your agile meetings
StandUp
Sprint Planning
Back Log Refinement
Sprint Review
Retrospective
Other
Duration:


View on Github
Some visual effects may trigger photosensitive seizures.
Brought to you by Patreon supporters.
Working...
Sorry, something went wrong:
Hover over the corner of the screen to show controls.


Teachers helping teachers.
Montly Workshops held at Jeonju University for teachers of all levels.
App design ©2017 Aaron Snowberger
Teachers helping teachers.
Montly Workshops held at Jeonju University for teachers of all levels.
App design ©2017 Aaron Snowberger


Lang, Doc, Corpus¶
Convenient entry points for making spaCy docs and loading spaCy language pipelines.
-
textacy.spacier.core.
load_spacy_lang
(name: Union[str, pathlib.Path], disable: Optional[Tuple[str, ...]] = None, allow_blank: bool = False) → spacy.language.Language[source]¶ Load a spaCy
Language
: a shared vocabulary and language-specific data for tokenizing text, and (if available) model data and a processing pipeline containing a sequence of components for annotating a document. An LRU cache saves languages in memory.- Parameters
name – spaCy language to load. Could be a shortcut link, full package name, or path to model directory, or a 2-letter ISO language code for which spaCy has language data.
disable –
Names of pipeline components to disable, if any.
Note
Although spaCy’s API specifies this argument as a list, here we require a tuple. Pipelines are stored in the LRU cache with unique identifiers generated from the hash of the function name and args — and lists aren’t hashable.
allow_blank – If True, allow loading of blank spaCy
Language
s; if False, raise an OSError if a full processing pipeline isn’t available. Note that spaCyDoc
s produced by blank languages are missing key functionality, e.g. POS tags, entities, sentences.
- Returns
A loaded spaCy
Language
.- Raises
OSError –
-
textacy.spacier.core.
make_spacy_doc
(data: Union[str, Tuple[str, dict], spacy.tokens.doc.Doc], lang: Union[str, Callable[[str], str], spacy.language.Language] = <bound method LangIdentifier.identify_lang of <textacy.lang_utils.LangIdentifier object>>) → spacy.tokens.doc.Doc[source]¶ Make a
spacy.tokens.Doc
from valid inputs, and automatically load/validatespacy.language.Language
pipelines to processdata
.Make a
Doc
from text:>>> text = "To be, or not to be, that is the question." >>> doc = make_spacy_doc(text) >>> doc._.preview 'Doc(13 tokens: "To be, or not to be, that is the question.")'
Make a
Doc
from a (text, metadata) pair, aka a “record”:>>> record = (text, {"author": "Shakespeare, William"}) >>> doc = make_spacy_doc(record) >>> doc._.preview 'Doc(13 tokens: "To be, or not to be, that is the question.")' >>> doc._.meta {'author': 'Shakespeare, William'}
Specify the language /
Language
pipeline used to process the text — or don’t:>>> make_spacy_doc(text) >>> make_spacy_doc(text, lang="en") >>> make_spacy_doc(text, lang="en_core_web_sm") >>> make_spacy_doc(text, lang=textacy.load_spacy_lang("en")) >>> make_spacy_doc(text, lang=textacy.lang_utils.identify_lang)
Ensure that an already-processed
Doc
is compatible withlang
:>>> spacy_lang = textacy.load_spacy_lang("en") >>> doc = spacy_lang(text) >>> make_spacy_doc(doc, lang="en") >>> make_spacy_doc(doc, lang="es") ... ValueError: lang of spacy pipeline used to process document ('en') must be the same as `lang` ('es')
- Parameters
data – Make a
spacy.tokens.Doc
from a text or (text, metadata) pair. If already aDoc
, ensure that it’s compatible withlang
to avoid surprises downstream, and return it as-is.lang –
Language with which spaCy processes (or processed)
data
.If known, pass a standard 2-letter language code (e.g. “en”), or the name of a spacy language pipeline (e.g. “en_core_web_md”), or an already-instantiated
spacy.language.Language
object. If not known, pass a function that takes unicode text as input and outputs a standard 2-letter language code.A given / detected language string is then used to instantiate a corresponding
Language
with all default components enabled.
- Returns
Processed spaCy Doc.
- Raises
A class for working with a collection of spaCy docs. Includes functionality for easily adding, getting, and removing documents; saving to / loading their data from disk; and tracking basic corpus statistics.
-
class
textacy.corpus.
Corpus
(lang: Union[str, spacy.language.Language], data: Union[str, spacy.tokens.doc.Doc, Tuple[str, dict], Iterable[str], Iterable[spacy.tokens.doc.Doc], Iterable[Tuple[str, dict]], None] = None)[source]¶ An ordered collection of
spacy.tokens.Doc
, all of the same language and sharing the samespacy.language.Language
processing pipeline and vocabulary, with data held in-memory.Initialize from a language /
Language
and (optionally) one or a stream of texts or (text, metadata) pairs:>>> ds = textacy.datasets.CapitolWords() >>> records = ds.records(limit=50) >>> corpus = textacy.Corpus("en", data=records) >>> print(corpus) Corpus(50 docs, 32175 tokens)
Add or remove documents, with automatic updating of corpus statistics:
>>> texts = ds.texts(congress=114, limit=25) >>> corpus.add(texts) >>> corpus.add("If Burton were a member of Congress, here's what he'd say.") >>> print(corpus) Corpus(76 docs, 55906 tokens) >>> corpus.remove(lambda doc: doc._.meta.get("speaker_name") == "Rick Santorum") >>> print(corpus) Corpus(61 docs, 48567 tokens)
Get subsets of documents matching your particular use case:
>>> match_func = lambda doc: doc._.meta.get("speaker_name") == "Bernie Sanders" >>> for doc in corpus.get(match_func, limit=3): ... print(doc._.preview) Doc(159 tokens: "Mr. Speaker, 480,000 Federal employees are work...") Doc(336 tokens: "Mr. Speaker, I thank the gentleman for yielding...") Doc(177 tokens: "Mr. Speaker, if we want to understand why in th...")
Get or remove documents by indexing, too:
>>> corpus[0]._.preview 'Doc(159 tokens: "Mr. Speaker, 480,000 Federal employees are work...")' >>> [doc._.preview for doc in corpus[:3]] ['Doc(159 tokens: "Mr. Speaker, 480,000 Federal employees are work...")', 'Doc(219 tokens: "Mr. Speaker, a relationship, to work and surviv...")', 'Doc(336 tokens: "Mr. Speaker, I thank the gentleman for yielding...")'] >>> del corpus[:5] >>> print(corpus) Corpus(56 docs, 41573 tokens)
Compute basic corpus statistics:
>>> corpus.n_docs, corpus.n_sents, corpus.n_tokens (56, 1771, 41573) >>> word_counts = corpus.word_counts(as_strings=True) >>> sorted(word_counts.items(), key=lambda x: x[1], reverse=True)[:5] [('-PRON-', 2553), ('people', 215), ('year', 148), ('Mr.', 139), ('$', 137)] >>> word_doc_counts = corpus.word_doc_counts(weighting="freq", as_strings=True) >>> sorted(word_doc_counts.items(), key=lambda x: x[1], reverse=True)[:5] [('-PRON-', 0.9821428571428571), ('Mr.', 0.7678571428571429), ('President', 0.5), ('people', 0.48214285714285715), ('need', 0.44642857142857145)]
Save corpus data to and load from disk:
>>> corpus.save("~/Desktop/capitol_words_sample.bin.gz") >>> corpus = textacy.Corpus.load("en", "~/Desktop/capitol_words_sample.bin.gz") >>> print(corpus) Corpus(56 docs, 41573 tokens)
- Parameters
lang –
Language with which spaCy processes (or processed) all documents added to the corpus, whether as
data
now or later.Pass a standard 2-letter language code (e.g. “en”), or the name of a spacy language pipeline (e.g. “en_core_web_md”), or an already-instantiated
spacy.language.Language
object.A given / detected language string is then used to instantiate a corresponding
Language
with all default components enabled.data (obj or Iterable[obj]) –
One or a stream of texts, records, or
spacy.tokens.Doc
s to be added to the corpus.See also
-
lang
¶
-
spacy_lang
¶
-
docs
¶
-
n_docs
¶
-
n_sents
¶
-
n_tokens
¶
-
add
(data: Union[str, spacy.tokens.doc.Doc, Tuple[str, dict], Iterable[str], Iterable[spacy.tokens.doc.Doc], Iterable[Tuple[str, dict]]], batch_size: int = 1000, n_process: int = 1) → None[source]¶ Add one or a stream of texts, records, or
spacy.tokens.Doc
s to the corpus, ensuring that all processing is or has already been done by theCorpus.spacy_lang
pipeline.- Parameters
data –
batch_size – Number of texts to buffer when processing with spaCy.
n_process –
Number of parallel processors to run when processing. If -1, this is set to
multiprocessing.cpu_count()
.Note
This feature is only available in spaCy 2.2.2+, and only applies when
data
is a sequence of texts or records.
-
add_text
(text: str) → None[source]¶ Add one text to the corpus, processing it into a
spacy.tokens.Doc
using theCorpus.spacy_lang
pipeline.- Parameters
text (str) –
-
add_texts
(texts: Iterable[str], batch_size: int = 1000, n_process: int = 1) → None[source]¶ Add a stream of texts to the corpus, efficiently processing them into
spacy.tokens.Doc
s using theCorpus.spacy_lang
pipeline.- Parameters
texts – Sequence of texts to process and add to corpus.
batch_size – Number of texts to buffer when processing with spaCy.
n_process –
Number of parallel processors to run when processing. If -1, this is set to
multiprocessing.cpu_count()
.Note
This feature is only available in spaCy 2.2.2+.
-
add_record
(record: Tuple[str, Dict[Any, Any]]) → None[source]¶ Add one record to the corpus, processing it into a
spacy.tokens.Doc
using theCorpus.spacy_lang
pipeline.- Parameters
record –
-
add_records
(records: Iterable[Tuple[str, dict]], batch_size: int = 1000, n_process: int = 1) → None[source]¶ Add a stream of records to the corpus, efficiently processing them into
spacy.tokens.Doc
s using theCorpus.spacy_lang
pipeline.- Parameters
records – Sequence of records to process and add to corpus.
batch_size – Number of texts to buffer when processing with spaCy.
n_process –
Number of parallel processors to run when processing. If -1, this is set to
multiprocessing.cpu_count()
.Note
This feature is only available in spaCy 2.2.2+.
-
add_doc
(doc: spacy.tokens.doc.Doc) → None[source]¶ Add one
spacy.tokens.Doc
to the corpus, provided it was processed using theCorpus.spacy_lang
pipeline.- Parameters
doc –
-
add_docs
(docs: Iterable[spacy.tokens.doc.Doc]) → None[source]¶ Add a stream of
spacy.tokens.Doc
s to the corpus, provided they were processed using theCorpus.spacy_lang
pipeline.- Parameters
docs –
-
get
(match_func: Callable[[spacy.tokens.doc.Doc], bool], limit: Optional[int] = None) → Iterator[spacy.tokens.doc.Doc][source]¶ Get all (or N <=
limit
) docs inCorpus
for whichmatch_func(doc)
is True.- Parameters
match_func –
Function that takes a
spacy.tokens.Doc
as input and returns a boolean value. For example:Corpus.get(lambda x: len(x) >= 100)
gets all docs with at least 100 tokens. And:
Corpus.get(lambda doc: doc._.meta["author"] == "Burton DeWilde")
gets all docs whose author was given as ‘Burton DeWilde’.
limit – Maximum number of matched docs to return.
- Yields
spacy.tokens.Doc
– Next document passingmatch_func
.
Tip
To get doc(s) by index, treat
Corpus
as a list and use Python’s usual indexing and slicing:Corpus[0]
gets the first document in the corpus;Corpus[:5]
gets the first 5; etc.
-
remove
(match_func: Callable[[spacy.tokens.doc.Doc], bool], limit: Optional[int] = None) → None[source]¶ Remove all (or N <=
limit
) docs inCorpus
for whichmatch_func(doc)
is True. Corpus doc/sent/token counts are adjusted accordingly.- Parameters
match_func –
Function that takes a
spacy.tokens.Doc
and returns a boolean value. For example:Corpus.remove(lambda x: len(x) >= 100)
removes docs with at least 100 tokens. And:
Corpus.remove(lambda doc: doc._.meta["author"] == "Burton DeWilde")
removes docs whose author was given as “Burton DeWilde”.
limit – Maximum number of matched docs to remove.
Tip
To remove doc(s) by index, treat
Corpus
as a list and use Python’s usual indexing and slicing:del Corpus[0]
removes the first document in the corpus;del Corpus[:5]
removes the first 5; etc.
-
property
vectors
¶ Constituent docs’ word vectors stacked in a 2d array.
-
property
vector_norms
¶ Constituent docs’ L2-normalized word vectors stacked in a 2d array.
-
word_counts
(*, normalize: str = 'lemma', weighting: str = 'count', as_strings: bool = False, filter_stops: bool = True, filter_punct: bool = True, filter_nums: bool = False) → Dict[Union[int, str], Union[int, float]][source]¶ Map the set of unique words in
Corpus
to their counts as absolute, relative, or binary frequencies of occurence, similar toDoc._.to_bag_of_words()
but aggregated over all docs.- Parameters
normalize – If “lemma”, lemmatize words before counting; if “lower”, lowercase words before counting; otherwise, words are counted using the form with which they appear.
weighting ({"count", "freq"}) –
Type of weight to assign to words. If “count” (default), weights are the absolute number of occurrences (count) of word in corpus. If “freq”, word counts are normalized by the total token count, giving their relative frequencies of occurrence.
Note
The resulting set of frequencies won’t (necessarily) sum to 1.0, since punctuation and stop words are filtered out after counts are normalized.
as_strings – If True, words are returned as strings; if False (default), words are returned as their unique integer ids.
filter_stops – If True (default), stop word counts are removed.
filter_punct – If True (default), punctuation counts are removed.
filter_nums – If True, number counts are removed.
- Returns
Mapping of a unique word id or string (depending on the value of
as_strings
) to its absolute, relative, or binary frequency of occurrence (depending on the value ofweighting
).
See also
-
word_doc_counts
(*, normalize: str = 'lemma', weighting: str = 'count', smooth_idf: bool = True, as_strings: bool = False, filter_stops: bool = True, filter_punct: bool = True, filter_nums: bool = True) → Dict[Union[int, str], Union[int, float]][source]¶ Map the set of unique words in
Corpus
to their document counts as absolute, relative, inverse, or binary frequencies of occurence.- Parameters
normalize – If “lemma”, lemmatize words before counting; if “lower”, lowercase words before counting; otherwise, words are counted using the form with which they appear.
weighting ({"count", "freq", "idf"}) – Type of weight to assign to words. If “count” (default), weights are the absolute number (count) of documents in which word appears. If “freq”, word doc counts are normalized by the total document count, giving their relative frequencies of occurrence. If “idf”, weights are the log of the inverse relative frequencies:
log(n_docs / word_doc_count)
or (ifsmooth_idf
is True)log(1 + (n_docs / word_doc_count))
.smooth_idf – If True, add 1 to all word doc counts when calculating “idf” weighting, equivalent to adding a single document to the corpus containing every unique word.
as_strings – If True, words are returned as strings; if False (default), words are returned as their unique integer ids
filter_stops – If True (default), stop word counts are removed.
filter_punct – If True (default), punctuation counts are removed.
filter_nums – If True (default), number counts are removed.
- Returns
Mapping of a unique word id or string (depending on the value of
as_strings
) to the number of documents in which it appears weighted as absolute, relative, or binary frequencies (depending on the value ofweighting
).
See also
-
save
(filepath: Union[str, pathlib.Path], store_user_data: bool = True) → None[source]¶ Save
Corpus
to disk as binary data.- Parameters
filepath – Full path to file on disk where
Corpus
data will be saved as a binary file.store_user_data – If True, store user data and values of custom extension attributes along with core spaCy attributes.
See also
spacy.tokens.DocBin
-
classmethod
load
(lang: Union[str, spacy.language.Language], filepath: Union[str, pathlib.Path], store_user_data: bool = True) → textacy.corpus.Corpus[source]¶ Load previously saved
Corpus
binary data, reproduce the original :class:`spacy.tokens.Doc`s tokens and annotations, and instantiate a new :class:`Corpus from them.- Parameters
lang –
filepath – Full path to file on disk where
Corpus
data was previously saved as a binary file.store_user_data – If True, load stored user data and values of custom extension attributes along with core spaCy attributes.
- Returns
See also
spacy.tokens.DocBin