Frederic Jurie is a professor at the French University of Caen Normandie (Computer Science Department) member of GREYC-UMR6072 Research Lab (affiliated with Normandie Univ, UNICAEN, ENSICAEN, CNRS).
His research interests lie predominantly in the area of Computer Vision, particularly with respect to object recognition, image classification and object detection.
Datasets
- QUAERO's visual concepts image dataset can be downloaded [here]
- Database of Human Attributes (HAT) is available [here]
- RECONSURVE's boat dataset is available [here]
- VEDAI: Vehicle Detection in Aerial Imagery is available [here]
Publications
2018
CAKE: a Compact and Accurate K-dimensional representation of Emotion.Corentin Kervadec, Valentin Vielzeuf, Stéphane Pateux, Alexis Lechervy, Frédéric Jurie, BMVC 2018. [pdf]
CentralNet: A Multilayer Approach for Multimodal Fusion. Valentin Vielzeuf, Alexis Lechervy, Stéphane Pateux, Frédéric Jurie, ECCV Workshops, 2018. [pdf]
RPNet: An End-to-End Network for Relative Camera Pose Estimation. Sovann En, Alexis Lechervy, Frédéric Jurie, ECCV Workshops, 2018. [pdf]
Deep Multi-Scale Architectures for Monocular Depth Estimation. Michel Moukari, Sylvaine Picard, Loïc Simon, Frédéric Jurie, ICIP 2018. [pdf]
TS-NET: Combining Modality Specific and Common Features for Multimodal Patch Matching. Sovann En, Alexis Lechervy, Frédéric Jurie, ICIP 2018. [pdf]
An Occam's Razor View on Learning Audiovisual Emotion Recognition with Small Training Sets. Valentin Vielzeuf, Corentin Kervadec, Stéphane Pateux, Alexis Lechervy, Frédéric Jurie, ICMI 2018. [pdf]
Recent Advances in Object Detection in the Age of Deep Convolutional Neural Networks. Shivang Agarwal, Jean Ogier Du Terrail, Frédéric Jurie, CoRR abs/1809.03193 (2018). [pdf]
Faster RER-CNN: application to the detection of vehicles in aerial images. Jean Ogier Du Terrail, Frédéric Jurie:, CoRR abs/1809.07628 (2018). [pdf]
The Many Moods of Emotion. Valentin Vielzeuf, Corentin Kervadec, Stéphane Pateux, Frédéric Jurie, CoRR abs/1810.13197 (2018). [pdf]
Semantic bottleneck for computer vision tasks. Maxime Bucher, Stéphane Herbin, Frédéric Jurie:, ACCV (2018). [pdf]
Multi-Level Sensor Fusion with Deep Learning. Valentin Vielzeuf, Alexis Lechervy, Stéphane Pateux, Frédéric Jurie, IEEE Sensors Letters, 2018. [pdf]
2017
Unsupervised part learning for visual recognition, R. Sicre, Y. Avrithis, E. Kijak, F. Jurie, CVPR, 2017. [pdf]
Mateusz Kozínski, Loïc Simon, Frédéric Jurie. An Adversarial Regularisation for Semi-Supervised Training of Structured Output Neural Networks, NIPS2017 workshops, Dec 2017, Long Beach, United States [pdf]
Generating Visual Representations for Zero-Shot Classification, M. Bucher, S. Herbin, F. Jurie, ICCV Workshop TASK-CV, 2017 [pdf]
Automatic discovery of discriminative parts as a quadratic assignment problem, R. Sicre, J. Rabin, Y. Avrithis, T. Furon, F. Jurie and E. Kijak , ICCV Workshops CEFRL, 2017 [pdf]
On the use of deep neural networks for the detection of small vehicules in ortho-images, J. Ogier Du Terrail, F. Jurie, IEEE ICIP 2017. [pdf]
Unsupervised deep hashing with stacked convolutional autoencoders, S. En, B. Crémilleux, F. Jurie, IEEE ICIP, 2017 [pdf]
Temporal Multimodal Fusion for Video Emotion Classification in the Wild, V. Vielzeuf, S. Pateux, F Jurie, ACM - ICMI 2017, 2017 [pdf]
2016
Improving Semantic Embedding Consistency by Metric Learning for Zero-Shot Classification M. Bucher, S. Herbin, F. Jurie, ECCV 2016. [pdf]
SPLeaP: Soft Pooling of Learned Parts for Image Classification, P. Kulkarni, F. Jurie, J. Zepeda, P. Pérez, L. Chevallier, ECCV 2016. [pdf]
CP-mtML: Coupled Projection multi-task Metric Learning for Large Scale Face Retrieval, Binod Bhattarai, Gaurav Sharma, Frederic Jurie, CVPR, 2016 [pdf]
Hard Negative Mining for Metric Learning Based Zero-Shot Classification, Maxime Bucher, Stéphane Herbin, Frédéric Jurie. ECCV 2016 Workshop TASK-CV, 2016, Amsterdam, Netherlands. ECCV 16 WS TASK-CV. [pdf]
A Joint Learning Approach for Cross Domain Age Estimation, B. Bhattarai, G. Sharma, A. Lechervy, F. Jurie, ICASSP, 2016 [pdf]
Expanded Parts Model for Semantic Description of Humans in Still Images, Gaurav Sharma, Frederic Jurie, Cordelia Schmid, IEEE Transactions on Pattern Analysis and Machine Intelligence (TPAMI), 2016 [pdf]
MLBoost Revisited: A Faster Metric Learning Algorithm for Identity-Based Face Retrieval, Romain Negrel, Alexis Lechervy, Frédéric Jurie, BMVC 2016. [pdf]
Deep fusion of visual signatures for client-server facial analysis, B. Bhattarai, G. Sharma, F. Jurie, ICVGIP'16, 2016. [pdf]
2015
Discriminative part model for visual recognition, Ronan Sicre, Frédéric Jurie, International Journal on Computer Vision and Image undestanding, 2015[pdf]
Local Higher-Order Statistics (LHS) describing images with statistics of local non-binarized pixel patterns, Gaurav Sharma and Frederic Jurie, International Journal on Computer Vision and Image undestanding, 2015 (to appear) [pdf]
Learning the Structure of Deep Architectures Using L1 Regularization Praveen Kulkarni, Joaquin Zepeda, Frederic Jurie, Patrick Perez and Louis Chevallier, British Machine Vision Conference, 2015. [pdf]
Boosted Metric Learning for Efficient Identity-Based Face Retrieval Romain Negrel, Alexis Lechervy and Frederic Jurie, British Machine Vision Conference, 2015. [pdf]
A Novel Target Detection Algorithm Combining Foreground and Background Manifold-Based Models, Sebastien Razakarivony, Frederic Jurie, International Journal Of Machine Vision and Applications, 2015 [pdf]
Hybrid multi-layer Deep CNN/Aggregator feature for image classification, Frederic Jurie, International Journal Of Machine Vision and Applications, Praveen Kulkarni, Joaquin Zepeda, Frederic Jurie, Patrick Perez, Louis Chevallier, ICASSP, 2015 [pdf]
Max-margin, single-layer adaptation of transferred image features., P. Kulkani, J. Zepeda, F. Jurie, P. Pérez, L. Chevallier, CVPR w. BigVision 2015[pdf]
Vehicle Detection in Aerial Imagery: A small target detection benchmark., Sébastien Razakarivony and Frédéric Jurie, Journal of Visual Communication and Image Representation, 2015 [pdf]
2014
Histograms of Pattern Sets for Image Classification and Object Recognition, Winn Voravuthikunchai, Bruno Cremilleux and Frederic Jurie, IEEE Conference on Computer Vision and Pattern Recognition, 2014. [pdf]
Image re-ranking based on statistics of frequent patterns, Winn Voravuthikunchai, Bruno Cremilleux and Frederic Jurie, ACM International Conference on Multimedia Retrieval, 2014. [pdf]
Dating color images with ordinal classification, Paul Martin, Antoine Doucet and Frederic Jurie, ACM International Conference on Multimedia Retrieval, 2014. [pdf]
Discriminative Autoencoders for Small Targets Detection, Sebastien Razakarivony and Frederic Jurie, 22nd International Conference on Pattern Recognition, 2014. [pdf]
Discovering and Aligning Discriminative Mid-Level Features for Image Classification, Ronan Sicre and Frederic Jurie, 22nd International Conference on Pattern Recognition, 2014. [pdf]
Puzzling Face Verification Algorithms for Privacy Protection, Binod Bhattarai, Alexis Mignon, Frédéric Jurie, Teddy Furon, IEEE Workshop on Information Forensics and Security, 2014. [pdf]
Covariance Descriptor based on Bio-inspired Features for Person Re-identification and Face Verification, Bingpeng Maa, Yu Su, Frédéric Jurie, Image and Vision Computing, Volume 32, Issues 6–7, June–July 2014, Pages 379–390, 2014. [pdf]
Some faces are more equal than others: Hierarchical organization for accurate and efficient large-scale identity-based face retrieval, B. Bhattarai, G. Sharma, F. Jurie and P. Perez, European Conference on Computer Vision (ECCV) Workshops, 2014 [pdf]
Image re-ranking system based on closed frequent patterns, Winn Voravuthikunchai, Bruno Crémilleux and Frédéric Jurie, International Journal of Multimedia Information Retrieval, September 2014. [pdf]
Photorealistic Face de-Identification by Aggregating Donors' Face Components, Saleh Mosaddegh, Loïc Simon and Frederic Jurie, Asian Conference on Computer Vision (ACCV), 2014. [pdf]
Expanded Parts based Metric Learning for Occlusion Robust Face Verification, Gaurav Sharma, Frederic Jurie and Patrick Perez, Asian Conference on Computer Vision (ACCV), 2014. [pdf]
2013
Expanded Parts Model for Human Attribute and Action Recognition in Still Images, Gaurav Sharma, Frederic Jurie and Cordelia Schmid, CVPR, 2013. [pdf]
A Novel Approach for Efficient SVM Classification with Histogram Intersection Kernel, Gaurav Sharma and Frederic Jurie, BMVC, 2013. [pdf]
Reconstructing faces using RBF regression, Alexis Mignon and Frederic Jurie, BMVC, 2013. [pdf]
Small Target Detection combining Foreground and Background Manifolds S ́ebastien Razakarivony and Frederic Jurie, MVA, 2013. [pdf]
2012
Local Higher-order Statistics (LHS) for Texture Categorization and Facial Analysis, Gaurav Sharma, Sibt ul Hussain and Frederic Jurie, ECCV, 2012. [pdf]
Improving Image Classification using Semantic Attributes, Yu Su and Frederic Jurie, International Journal of Computer Vision (IJCV), 100(1): 59-77, 2012. [pdf]
Discriminative Spatial Saliency for Image Classification, Gaurav Sharma, Frederic Jurie and Cordelia Schmid, CVPR, 2012. [pdf]
PCCA: A New Approach for Distance Learning from Sparse Pairwise Constraints, Alexis Mignon and Frederic Jurie, CVPR, 2012. [pdf]
CMML: a New Metric Learning Approach for Cross Modal Matching Alexis Mignon and Frederic Jurie, ACCV, 2012. [pdf]
Learning Compact Visual Attributes for Large-Scale Image Classification, Yu Su, Frederic Jurie, ECCV Workshops, 2012 [pdf]
Local Descriptors Encoded by Fisher Vectors for Person Re-identification, Bingpeng Ma, Yu Su, Frédéric Jurie, ECCV Workshops, 2012. [pdf]
Finding Groups of Duplicate Images in Very Large Datasets, Winn Voravuthikunchai, Bruno Cremilleux and Frederic Jurie, BMVC, 2012. [pdf]
Motion Models that Only Work Sometimes, Cristina Garcia Cifuentes, Marc Sturzel, Frederic Jurie and Gabriel J. Brostow, BMVC, 2012. [pdf]
Face Recognition using Local Quantized Patterns, Sibt ul Hussain, Thibault Napoleon and Frederic Jurie, BMVC, 2012. [pdf]
BiCov: a novel image representation for person re-identification and face verification, Bingpeng Ma, Yu Su and Frederic Jurie, BMVC, 2012. [pdf]
2011
Modeling Spatial Layout with Fisher Vectors for Image Categorization, Josip Krapac, Jakob Verbeek and Frederic Jurie, ICCV, 2011. [pdf]Visual Word Disambiguation by Semantic Contexts, Yu Su and Frederic Jurie, ICCV, 2011. [pdf]
Learning discriminative spatial representation for image classification, Gaurav Sharma and Frederic Jurie, British Machine Vision Conference, 2011. [pdf]
Combining Bag-of-Words Model, Semantic Contexts and Fisher Vector for ImageCLEF 2011 Photo Annotation Task, Yu Su and Frederic Jurie, ImageCLEF 2011 Working Notes, 2011. [pdf]
Learning Tree-structured Descriptor Quantizers for Image Categorization, Josip Krapac, Jakob Verbeek and Frederic Jurie, British Machine Vision Conference, 2011. [pdf]
2010
Improving object classification using semantic attributes, Yu Su, Moray Allan, Frederic Jurie, British Machine Vision Conference, 2010. [pdf]
Improving web-image search results using query-independent classiﬁers, J. Krapac, M. Allan, J. Verbeek, F. Jurie, IEEE Conference on Computer Vision and Pattern Recognition, 2010. [pdf]
2009
From Images to Shape Models for Object Detection, V. Ferrari, F. Jurie, and C. Schmid, International Journal of Computer Vision (IJCV), Volume 87, Number 3, pp284, 2010. [pdf]
Category Level Object Segmentation by Combining Bag-of-Words Models with Dirichlet Processes and Random Fields, D. Larlus, J. Verbeek and F. Jurie, International Journal of Computer Vision (IJCV), Volume 88, Number 2, pp238-253, 2010. [pdf]
Combining efficient object localization and image classification, H. Harzallah, F. Jurie and C. Schmid, International Conference on Computer Vision (ICCV), 2009. [pdf]
Learning Shape Prior Models for Object Matching, T. Jiang, F. Jurie and C. Schmid, IEEE Conference on Computer Vision and Pattern Recognition (CVPR'09), 2009. [pdf]
2008
Randomized Clustering Forests for Image Classification, F. Moosmann, E. Nowak, F. Jurie, IEEE Trans. on Pattern Analysis and Machine Intelligence, Volume: 30, Issue: 9, Sept. 2008. [pdf]Latent Mixture Vocabularies for Object Categorization and Segmentation, D. Larlus, F. Jurie, Journal of Image & Vision Computing - Volume 27, Issue 5, 2009. [pdf]
Combining Appearance Models and Markov Random Fields for Category Level Object Segmentation, D. Larlus, F. Jurie, IEEE Conf. on Computer Vision and Pattern Recognition, 2008. [pdf]
Groups of Adjacent Contour Segments for. Object Detection, V. Ferrari, L. Fevrier, F. Jurie, and C. Schmid, IEEE trans. on PAMI, (30)1:36-51, 2008, [pdf]
Unifying Discriminative Visual Codebook Generation with Classifier Training for Object Category Recognition, L. Yang, R. Jin, R. Sukthankar, and F. Jurie, IEEE Conf. on Computer Vision and Pattern Recognition, 2008. [pdf]
Margin-Based Discriminant Dimensionality Reduction for Visual Recognition, H. Cevikalp, B. Triggs, F. Jurie and R. Polikar, IEEE Conf. on Computer Vision and Pattern Recognition, 2008. [pdf]
2007
Learning Visual Similarity Measures for Comparing Never Seen Objects, E. Nowak and F. Jurie, IEEE Conf. on Computer Vision and Pattern Recognition, 2007. [pdf]
Category Level Object Segmentation, D. Larlus and F. Jurie, International Conference on Computer Vision Theory and Applications, 2007. [pdf]
Accurate object detection with deformable shape models learnt from images, V. Ferrari, F. Jurie and C. Schmid, IEEE Conf. on Computer Vision and Pattern Recognition, 2007. [pdf]
2006
Randomized Clustering Forests for Building Fast and Discriminative Visual Vocabularies, F. Moosmann, B. Triggs, F. Jurie, NIPS'06, 2006. [pdf]
Groups of Adjacent Contour Segments for Object Detection, V. Ferrari, L. Fevrier, F. Jurie, C. Schmid, Technical Report 5980, INRIA - Sep 2006. [pdf]
Latent Mixture Vocabularies for Object Categorization, D. Larlus and F. Jurie, BMVC 2006. [pdf]
Sampling Strategies for Bag-of-Features Image Classification, E. Nowak, F. Jurie, B. Triggs, European Conference on Computer Vision, 2006. [pdf]
Learning Saliency Maps for Object Categorization, E. Nowak and F. Jurie, ECCV International Workshop on The Representation and Use of Prior Knowledge in Vision - 2006. [pdf]
2005
Creating Efficient Codebooks for Visual Recognition, F. Jurie and B. Triggs, IEEE Int. Conference on Computer Vision, 2005. [pdf]
Learned Color Constancy From Local Correspondences, T. Moerland and F. Jurie, IEEE ICME, 2005. [pdf]
Tracking 3D Object using Flexible Model, L. Masson, M. Dhome and F. Jurie, BMVC, 2005.[pdf]
2004
Scale-invariant shape features for recognition of object categories, F. Jurie and C. Schmid, IEEE Int. Conference on Computer Vision and Pattern Recognition, 2004. [pdf]


Here is the heading.
Here is the article that I will write.
A box within a box...
...another box?
Here is another paragraph.
Here is the article that I will write.
Here is another paragraph.


|
Achievements In Poverty
Eradication More than one-fifth of the world's people live in extreme
poverty, on little more than US$1.00 a day. UNDP sees poverty as a complex
and multi-dimensional phenomenon, involving people's lack of empowerment,
as well as their lack of income and basic services.
UNDP supports programmes that assist gov-ernments and organizations
of civil society in developing economic and social policies and programmes
to address the whole range of factors that contribute to poverty. Among
other things, these programmes seek to increase food security; improve
the availability and quality of shelter and basic services; generate opportunities
for employment and sustainable livelihoods; empower women and men through
access to assets and productive resources such as land, credit, technology,
training and markets; and enable people to participate in the political
forces that shape their lives. Here are some examples.
CHINA: TARGETING 80 MILLION China's "8-7"
programme aims to raise the living standards of the 80 million Chinese
citizens who still live below the poverty line, in seven years. This programme
includes a poverty eradication initiative targeting six poor counties in
southwestern China, supported by UNDP and several UN agencies. It emphasizes
income generation, health and education, and features a participatory approach.
UNDP is supporting the work of the China Community Corps in identifying
poor households and organizing members into self-help groups. The World
Food Programme (WFP) is contributing food aid to support terracing and
other sustainable agricultural practices. UNICEF provides maternal/child
health care and primary education. The International Fund for Agricultural
Development (IFAD) provides for rural credit. (Duration: 1994-2001; Partners:
China, WFP, UNICEF, IFAD)
SUDAN: AREA DEVELOPMENT SCHEMES Area Development
Schemes in five drought-prone rural areas of Sudan take a participatory
approach to eradicating poverty in an environmentally sustainable way.
Developed in collaboration with several UN agencies, the schemes have benefitted
half a million people in 2,000 of the country+s poorest villages. Participants
have been mobilized, organised and trained to select, implement and manage
activities through Village Development Committees, over 30 per cent of
whose members are women. Credit comes from revolving funds jointly financed
by the communities and UNDP. Fields covered include agriculture, afforestation,
water supply, handicrafts, small-scale industry, and other income generating
pursuits. The approach will be replicated in other countries. (Duration:
1990-1996; Partners: Sudan, with technical assistance from United Nations
Office for Project Services, Food and Agriculture Organization of the UN,
International Labour Organisation and United Nations Department for Development
Support and Management Services. Related social services provided by UNICEF
(in one province) and food-for-work by World Food Programme)
ETHIOPIA: SOCIAL REHABILITATION FUND Ethiopia emerged
from nearly 30 years of civil strife with thousands of communities in need
of rehabilitation, thousands of returning refugees and some 400,000 demobilized
soldiers. The Ethiopian Social Rehabilitation and Development Fund began
to test a self-help, community-based approach to rehabilitation and development
in 1992. In the initial phase, 1,220,000 people benefitted from more than
200 projects: clinics, schools, drainage facilities, communal latrines,
small dams and income generating enterprises like grinding mills, quarries
and electrical workshops. Community organizations, local government staffs
and NGOs simultaneously improved project planning and implementation capacities.
The Fund is being expanded to implement small-scale, community-based projects
throughout rural Ethiopia. UNDP is helping to mobilize the US$243 million
required for this phase, and to put together machinery to effectively manage
these resources. (Duration: Pilot phase: 1992-95; Current phase: 1995-97;
Partners: Ethiopia, World Bank, Canada, Italy, Norway, Sweden)
EL SALVADOR: SUPPORTING SMALL FARMERS Some 7,000
farmers in the Cabaûos and San Vicente departments of El Salvador
have benefitted from UNDP support to the Project Execution Unit of the
Ministry of Agriculture. Of these, more than 2,000 small agricultural producers
have received credits totalling US$1.1 million. Approximately 2,500 Project
Execution Unit technicians and small producers have been trained in sustainable
agricultural techniques, entrepreneurial development and credit management.
Twenty-six demonstration farms have been established to carry out research
and extension activities. Six pilot commercial groups have been established,
resulting in the farmers paying lower prices for seeds and fertilizer,
and receiving high prices for their produce. Many farmers have diversified
their production from basic crops and are now producing vegetables and
fruit. (Duration: 1993-99; Partners: Ecuador, Central American Bank for
Economic Integration)
|


The Rolling Jubilee is project of Strike Debt where we buy debts for pennies on the dollar. But instead of collecting on that debt like a debt collector would, we just abolish it. A common criticism of Rolling Jubilee is that we’re buying “bad” debts that would never have been collected anyway.
We assure you that this is not the case. Here’s why.
We are stepping in to the process at precisely the same point as other participants, the debt buyers and debt collectors. These are investors, who buy this debt precisely so that they can collect on it and make a profit. And they are succeeding. The New Economy Project looked at just 26 debt buyers in just New York City over a two year period and documented how they extracted $1.1 billion dollars of wealth from the poorest New Yorkers. Debt buying is a very lucrative industry.
If they’re valuable, why sell them?
If it’s possible to collect on these debts, why do the lenders sell them in the first place? It turns out that large lenders like banks and credit card companies are actually required by law to write off the value of all “non-performing” debts after a certain number of days, in order to keep the lenders from hiding large losses on their paper balance sheets. These laws were mainly implemented after the Savings and Loan crisis of the late 1980s, when bank books were bloated with badly accounted non-performing assets. The number of days at which a debt is considered “non-performing” vary by the type of debt and state, but can range from about 180 days to as little as 60 days!
When they write off the debts, the lenders get a tax deduction for the written-off value. Many lenders choose to then sell these written-off debts, in bulk, to debt buyers. Because they are already written off, and because they sell them in bulk, on a regular basis, the prices debt buyers pay are very low – often just pennies on the dollar.
[This is also why buying debt is not, as some have claimed, “helping” the banks and lenders. If the Rolling Jubilee could buy enough debt to drive up the market price of debt – and we can’t, because the market, at around $100 billion per year, is far, far larger than we will ever be – we would not be enticing banks to sell more debt than they already are, because they are forced to sell it by law. But even in that unthinkable scenario, the primary effect of driving up the price of debt would be to increase the cost of doing business for debt collectors – potentially putting some of them out of business! We think that would be a fantastic outcome.]
Sometimes, the banks selling the debt are providing financing to the debt buyers they are selling the debt to, so they end up making money off these collections, too!
Debt buying is extremely profitable
Debt buying has been considered a “growth industry” for much of the past decade precisely because these debts are highly collectable. Collectors will buy a large portfolio and then start “working” the debt for 2-5 months. They don’t need to collect on every single account in order to make a massive profit because they bought this debt at such a steep discount. And they don’t need to collect 100% of each account. One common practice is to offer to settle with debtors for 50% of the original principal. The debtors are tricked into thinking this is such a great deal, and even feel an extra obligation to pay because they think this is an act of generosity on the part of the debt collector. But if someone pays 50% of a debt’s face value when the investor purchased it for just 3%, the investor is still making a return on investment of 1,666%!
A debt buyer will generally have a particular profit margin that they are trying to hit and will keep working a portfolio until they hit it. At that point they will sell the remain accounts downstream. The next investor will wait a year or so and then try again.
Debt buyers make their most money off of people who are just getting back on their feet. The debt industry makes its most money by preying on people who are temporarily down on their luck, can’t pay their bills for a short period of time, and get loaded up with debt. Collectors tend to make their largest profits about a year or two after the debt was considered “non-performing”, when the debtor’s situation has improved. Most of the debts we buy fall in this most lucrative time window.
A bailout for those who need it most
Fundamentally, our project of abolishing this debt is keeping more money in the hands of debtors who need more money, and it is removing millions of dollars that would have ended up in the hands of investors and collectors. To be sure, the Rolling Jubilee is a drop in the bucket in terms of overall indebtedness, or even debt being traded in the secondary market, but for the people who are helped, our intervention can mean the difference between life or debt.
As we look beyond the Rolling Jubilee, we are developing tactics to help build collective forms of power that will allow us all to resist illegitimate debts. Throughout history, when debtors have banded together, they have won. We are building tools and organizing to help break our collective bonds. The Rolling Jubilee is a spark, not the solution. In the meantime, here are some ways you can keep the Jubilee rolling.


--- layout: post status: publish published: true title: MSN Space any Time! any Where! author: Leask author_login: leask author_email<EMAIL_ADDRESS>author_url: https://leaskh.com wordpress_id: 682 wordpress_url: http://leaskh.wordpress.com/2005/09/14/msn-space-any-time-any-where date: '2005-09-14 11:59:42 +0800' date_gmt: '2005-09-14 11:59:42 +0800' categories: - Mobile tags: [] comments: [] ---


The form below allows you to experiment with different image transforms, and easily try the service before you start using it in your application. The URL builder does not include all of the available options. See the API Documentation for more information.


This starter project is our way of helping you get a functional app running in record time use following technologies:


| Opcode/Instruction | Op /En | 64/32 bit Mode Support | CPUID Feature Flag | Description |
|---|---|---|---|---|
|
F2 0F 51/r SQRTSD xmm1,xmm2/m64 |
RM | V/V | SSE2 | Computes square root of the low double-precision floating-point value in xmm2/m64 and stores the results in xmm1. |
|
VEX.NDS.128.F2.0F.WIG 51/r VSQRTSD xmm1,xmm2, xmm3/m64 |
RVM | V/V | AVX | Computes square root of the low double-precision floating-point value in xmm3/m64 and stores the results in xmm1. Also, upper double-precision floating-point value (bits[127:64]) from xmm2 is copied to xmm1[127:64]. |
|
EVEX.NDS.LIG.F2.0F.W1 51/r VSQRTSD xmm1 {k1}{z}, xmm2, xmm3/m64{er} |
T1S | V/V | AVX512F | Computes square root of the low double-precision floating-point value in xmm3/m64 and stores the results in xmm1 under writemask k1. Also, upper double-precision floating-point value (bits[127:64]) from xmm2 is copied to xmm1[127:64]. |
| Op/En | Operand 1 | Operand 2 | Operand 3 | Operand 4 |
| RM | ModRM:reg (w) | ModRM:r/m (r) | NA | NA |
| RVM | ModRM:reg (w) | VEX.vvvv (r) | ModRM:r/m (r) | NA |
| T1S | ModRM:reg (w) | EVEX.vvvv (r) | ModRM:r/m (r) | NA |
Description
Computes the square root of the low double-precision floating-point value in the second source operand and stores the double-precision floating-point result in the destination operand. The second source operand can be an XMM register or a 64-bit memory location. The first source and destination operands are XMM registers.
128-bit Legacy SSE version: The first source operand and the destination operand are the same. The quadword at bits 127:64 of the destination operand remains unchanged. Bits (MAX_VL-1:64) of the corresponding destination register remain unchanged.
VEX.128 and EVEX encoded versions: Bits 127:64 of the destination operand are copied from the corresponding bits of the first source operand. Bits (MAX_VL-1:128) of the destination register are zeroed.
EVEX encoded version: The low quadword element of the destination operand is updated according to the writemask.
Software should ensure VSQRTSD is encoded with VEX.L=0. Encoding VSQRTSD with VEX.L=1 may encounter unpredictable behavior across different processor generations.
Operation
VSQRTSD (EVEX encoded version)
IF (EVEX.b = 1) AND (SRC2 *is register*)
THEN
SET_RM(EVEX.RC);
ELSE
SET_RM(MXCSR.RM);
FI;
IF k1[0] or *no writemask*
THEN
DEST[63:0] (cid:197) SQRT(SRC2[63:0])
ELSE
IF *merging-masking*
; merging-masking
THEN *DEST[63:0] remains unchanged*
ELSE
; zeroing-masking
THEN DEST[63:0] (cid:197) 0
FI;
FI;
DEST[127:64] (cid:197) SRC1[127:64]
DEST[MAX_VL-1:128] (cid:197) 0
VSQRTSD (VEX.128 encoded version)
DEST[63:0] (cid:197)SQRT(SRC2[63:0])
DEST[127:64] (cid:197)SRC1[127:64]
DEST[MAX_VL-1:128] (cid:197)0
SQRTSD (128-bit Legacy SSE version)
DEST[63:0] (cid:197)SQRT(SRC[63:0])
DEST[MAX_VL-1:64] (Unmodified)
Intel C/C++ Compiler Intrinsic Equivalent
VSQRTSD __m128d _mm_sqrt_round_sd(__m128d a, __m128d b, int r);
VSQRTSD __m128d _mm_mask_sqrt_round_sd(__m128d s, __mmask8 k, __m128d a, __m128d b, int r);
VSQRTSD __m128d _mm_maskz_sqrt_round_sd(__mmask8 k, __m128d a, __m128d b, int r);
SQRTSD __m128d _mm_sqrt_sd (__m128d a, __m128d b)
SIMD Floating-Point Exceptions
Invalid, Precision, Denormal
Other Exceptions
Non-EVEX-encoded instruction, see Exceptions Type 3.
EVEX-encoded instruction, see Exceptions Type E3.


Disappearing artwork?
-
markymix
Is it just me or did last night's iTunes 7.6.1 update kill new artwork within Synergy?
Synergy still displays artwork it has already cached but it doesn't get any new artwork from iTunes anymore. It seems to be the same for 3.2, 3.5a2 and 3.5a5, i tried them all...
Just me?
-
Greg Hurrell
Can't tell you yet as at least in my part of the world iTunes 7.6.1 hasn't showed up in Software Update yet...
-
user3
I'm having the same problem. In addition to 3.5a5 quiting every like 10 min since I upgraded my iTunes (to 7.6.1), there's not artwork showing up (even thought I'm not connected to the internet, I know it shouldnt be a problem cos in the past, it hasnt as all my songs have artwork imbeded).
Incidentally, can showing the album artwork please be divorced from being connected to the internet in future versions (or can we get a seperate option for it)? Cos I have my own artwork which I download from iTunes, and the amazon.com artwork is bollocks to begin with...
-
Greg Hurrell
The problem retrieving the art is being tracked here:
https://wincent.com/a/support/bugs/show_bug.cgi?id=601
Unfortunately it looks like a bug in iTunes 7.6.1 as it affects other applications which ask iTunes for art, so we're waiting on Apple for a fix.
The crashes in the alpha series are being tracked here:
https://wincent.com/a/support/bugs/show_bug.cgi?id=640
The 3.2 series is still available for download if you want to go back to it, and it should be rock solid:
https://wincent.com/a/products/synergy-classic/download/tiger/
Finally, the Internet vs iTunes thing is being tracked here:
Reply
This topic is now closed.


Identify a serial port on your machine. These days you might need to plug in a USB-to-serial adapter.
Connect up to six wires to DCD (pin 1), DTR (pin 4), DSR (pin 6), RTS (pin 7), CTS (pin 8), and RI (pin 9). Write down which is which.
Fire up this app.
Make sure that the port dropdown matches your serial port.
Using a multimeter, confirm that any connected outputs (DTR or RTS) swing from negative voltage (true, or checked checkbox) to positive voltage (false, or unchecked checkbox) in sync with their respective checkboxes in the app.
Provide a reference voltage to any of the inputs (DCD, CTS, RI, and DSR) and confirm that the app's true/false indicators properly update themselves. If you want a quickie reference voltage, just connect one of the outputs to one of the inputs (e.g., DTR to DCD) and flick the output on and off. Note that the input-reading code is on a 1-second timer, so there's often a bit of latency.


Inductive Data Structures
Sources of examples from the book
Exercises
Types without recursion
Exercise 6.1 page 139 On seasons
Exercise 6.3 page 140 Using bool_ind
Exercise 6.4 page 144 On seasons (continued)
Exercise 6.6 page 144 Computing on booleans
Exercise 6.8 page 146 Manhattan distance
Exercise 6.9 page 148 Functions defined by cases without match
Case based reasoning
Exercise 6.10 page 153 Applying mont_rect
Exercise 6.11 page 153 A manual proof of discrimination
Exercise 6.13 page 156 About the danger of axioms
New! On partial functions
Recursive types
Exercise 6.15 page 166 Definition by cases
Exercise 6.16 page 166 Another definition of addition
Exercise 6.17 page 166 Computing f(0)+f(1)+...f(n)
Exercise 6.18 page 166 Computing 2n
Exercise 6.19 page 169 Representation of positive numbers
Exercise 6.20 page 169 On even positive numbers
Exercise 6.21 page 169 Division by 4
Exercise 6.23 page 169 Propositional formulae
Exercise 6.24 page 169 On fractions
Exercise 6.25 page 169 Looking for a value in a tree
Exercise 6.26 page 170 Logarithm and power
Exercise 6.27 page 171 Representing trees with functions
Exercise 6.28 page 172 Finding 0 in an infinitely branching tree
Exercise 6.29 page 173 A simple proof by elimination
Exercise 6.30 page 173 Representing trees with functions (continued)
Exercise 6.31 page 174 A simple proof by induction
Exercises 6.32 and 6.33 page 174 On the sum of the n first natural numbers
Polymorphic types
Exercise 6.34 and 6.35 page 177 A simple polymorphic function on lists
Exercise 6.38 page 177 On the list 1::2:: ... n::nil.
Exercise 6.40 page 178 On (too) short lists
Exercise 6.41 page 179 Finding the first element satisfying a boolean predicate in a list
Exercise 6.42 page 179 Splitting and combining lists
Exercise 6.43 page 179 Monomorphic binary trees and polymorphic trees
Exercise 6.45 page 179 Computing prime numbers
Dependent inductive types
Exercise 6.46 page 183 Manual injection on variably dependent types
Exercise 6.47 page 183 Trees with fixed height
Exercise 6.48 page 183 Binary words
Exercise 6.49 page 183Bit-wise or on binary words
Polymorphic vectors
Exercise 6.50 page 183 A function returning a value in a dependent type
Empty types
Exercise 6.51 page 183 On the empty set
Errata
- Exercise 6.32 page 174
The correct statement is here
- Section 6.1.3, paragraph 4 p 141,
read "; apply T_ind2" instead of "; apply T_ind"


Bug Fixes
- Fixed crash when trying to use the Writing Aid towards a character whose situations are corrupted.
- Characters coming first in the alphabet no longer get preferential treatment when the Dashboard Checklist is making suggestions.
- Fixed issue with the +OR and +AND buttons being inaccurate when switching between cases that have alternative sets.
- Fixed crash when closing a workspace too quickly while the checklist is running.
- Tab strips are now scrollable when cut off.


{{campaign.approved_posts}}
{{campaign.num_of_artists}}
{{campaign.approved_likes}}
{{campaign.approved_comments}}
MORE TO SHOW


Manage user accounts file. More...
Public Member Functions | |
| def | __init__ |
| def | add |
| def | find |
| def | modif |
| def | remove |
| def | resolve_path |
| def | update |
| def | user_list |
Public Attributes | |
| accounts_dir | |
| accounts_xml | |
Static Public Attributes | |
| string | ACCOUNTS_FILENAME = 'accounts.db' |
| string | CREATED = 'created' |
| string | MODIFIED = 'modified' |
| string | PASSWORD = 'password' |
| string | PRIVILEGE = 'privilege' |
| string | UID = 'id' |
| string | USER = 'user' |
| string | USER_STR_ITEM |
Private Member Functions | |
| def | _xml_file_generator |
Manage user accounts file.
Manage user account file xml: - Get user list - Find user account, - Add user account, - Modif user account, - Remove user account.
Definition at line 183 of file accounts.py.
| def airbus_cobot_gui.account.accounts.UserAccounts.__init__ | ( | self | ) |
Constructor
Definition at line 210 of file accounts.py.
|
private |
Definition at line 253 of file accounts.py.
| def airbus_cobot_gui.account.accounts.UserAccounts.add | ( | self, | |
| userinfo | |||
| ) |
Add new user account in "accounts.db" file. @param: userinfo: user informations. @type userinfo: C{User}.
Definition at line 303 of file accounts.py.
| def airbus_cobot_gui.account.accounts.UserAccounts.find | ( | self, | |
| userid | |||
| ) |
Read and get user account information @param: userid: user id. @type userid: str. @return: userinfo: user informations. @type userinfo: C{User}.
Definition at line 277 of file accounts.py.
| def airbus_cobot_gui.account.accounts.UserAccounts.modif | ( | self, | |
| usersource, | |||
| usermodifed | |||
| ) |
Update user informations. @param: usersource: current user informations. @type usersource: C{User}. @param: usermodifed: new user informations. @type usermodifed: C{User}.
Definition at line 333 of file accounts.py.
| def airbus_cobot_gui.account.accounts.UserAccounts.remove | ( | self, | |
| userinfo | |||
| ) |
Remove user account. @param: userinfo: user informations. @type userinfo: C{User}.
Definition at line 366 of file accounts.py.
| def airbus_cobot_gui.account.accounts.UserAccounts.resolve_path | ( | self, | |
| userid | |||
| ) |
Definition at line 262 of file accounts.py.
| def airbus_cobot_gui.account.accounts.UserAccounts.update | ( | self | ) |
Definition at line 234 of file accounts.py.
| def airbus_cobot_gui.account.accounts.UserAccounts.user_list | ( | self | ) |
Read and get user(s) id list registered in user accounts file @return: user_list: user(s) id list. @type user_list: array string.
Definition at line 265 of file accounts.py.
| airbus_cobot_gui.account.accounts.UserAccounts.accounts_dir |
Definition at line 213 of file accounts.py.
|
static |
Definition at line 192 of file accounts.py.
| airbus_cobot_gui.account.accounts.UserAccounts.accounts_xml |
Definition at line 224 of file accounts.py.
|
static |
Definition at line 200 of file accounts.py.
|
static |
Definition at line 201 of file accounts.py.
|
static |
Definition at line 197 of file accounts.py.
|
static |
Definition at line 196 of file accounts.py.
|
static |
Definition at line 199 of file accounts.py.
|
static |
Definition at line 195 of file accounts.py.
|
static |
Definition at line 203 of file accounts.py.


How I'd Help Wistia Improve Their SEO: An In-Depth Audit
I love SEO and inbound marketing, which means I spend too much time looking at marketing sites: Inbound.org, Hubspot, Moz, etc… A few days ago, I was reading up on Video Optimization on Wistia, and after looking through their site, I wanted to offer a few thoughts.
I’m sure Wistia’s people have already analyzed this design from a funnel and business perspective, but maybe no one has analyzed the SEO ramifications?
Perhaps, I’ll get a free T-shirt.
Wistia certainly has thought about SEO from a product perspective; their video embeds for SEO are top notch (seriously, I could not be more of an advocate for Wistia Video Hosting after spending weeks auditing – I’d never host my videos anywhere else – and that’s saying a lot – so Get Started Here [not an affiliate link] or check out this great article via Phil Nottingham at Distilled).
But what about using SEO to market their own website? They currently rank #1 for “video hosting,” but given the right tools, could they increase their organic traffic and CRO? As I looked through their employees, I didn’t see an SEO Analyst or Inbound Manager who is specifically devoted to this issue, so I thought I could offer some fresh perspective.
The last major redesign for Wistia happened during the first week of April in 2013. Since a year old website is ancient in web standards, and a redesign may be in the future, I thought now would be a great time to chime in.
In this post, I’ve put together a detailed, technical SEO Audit for Wistia. My audit is widespread and comprehensive, covering a wide range of SEO topics (e.g., article listings, structured data, duplicate content, backlink analysis, etc.). But before the audit, let’s cover the basics…
Who is Wistia?
Wistia Inc. is an internet video hosting and analytics company that was founded in April 2006 by Brown University graduates Chris Savage and Brendan Schwartz.
Disclaimer
Before I jump into the technical details of the audit, it’s important to note that I have no affiliation with Wistia. As a result, I don’t have access to any of the site’s analytics or webmaster tools accounts, and I don’t have access to the site’s content management system (CMS).
I also did not want to hammer their site’s bandwidth using multiple crawlers, thus if my data is inaccurate, I blame my sincerity. If this were a typical audit, I’d run through their analytics and start the assessment from there, but for this audit, I am relying exclusively on third-party data.
So… if I make completely inaccurate observations, I blame the third party, ie (Searchmetrics, Ahrefs, SEMrush, Moz, etc…). You may have noticed similar audits on Webgnomes, Moz, and Quicksprout. I have no problem admitting I used their layouts as a template and even linking to them, but of course, all of the data here is relevant to Wistia. With that disclaimer out of the way, let’s roll.
Table of Contents
Since this post will be extremely long – here is a detailed navigation to help you understand where you are throughout this audit.
- Organic Search Visibility
- Index-ability
- Accessibility
- On Page Factors
- Off Page Factors
- 50 Grove
- Inbound Marketing
- Summary
Organic Search
In order to set the framework for the entire audit, it’s important to analyze the site’s organic performance. When looking at Wistia’s organic traffic, there are 3 important questions:
- Is the organic traffic growing?
- Has the site been penalized?
- What is the percentage of organic traffic?
To determine Wistia’s SEO performance, I used two tools: Searchmetrics Suit, and one of my new favorites, Similar Web. Again, finding accurate third party data is incredibly difficult, but after using Google Analytics on a network of sites, I’ve found that these two programs provide the most accuracy in capturing data.
As this graph shows, Wisita’s traffic is growing. It is estimated that the monthly traffic to Wistia.com is 4.8 million, with a high time-on-site average and an extremely low bounce rate. Things are looking pretty good for Wistia, but let’s take a closer look.
Based on the data above, we are looking at all traffic (referrals, organic, paid, etc…) but we are really interested in organic for this audit. To get a better picture, we need to run some numbers and exclusions.
First Exclusion: Wistia’s users accounts (user.wistia.com) are each included in total sessions (more on that in the analysis below). This explains why the bounce rate is extremely low and the time on site is extremely high. When you sign up for an account at Wistia.com, you receive an account on a subdomain of wistia (elioverbey.wistia.com). Thus, users are repeating visits to their subdomain to login (lowering bounce) and upload videos (increasing time on site). This first exclusion removes over 51% of all visits. (As you can tell by the graph below, I am being generous by not excluding fast.wistia and secure.wistia).
This exclusion removes 2,457,600 visits, and we are left with only 48.98% of visitors actually visiting a Wistia front-facing site (http://wistia.com, secure.wistia.com, embed.wistia.com, etc…).
Second Exclusion: According to the third party data, only 10.56% of all visits are organic.
If you do the math, we are left with roughly 248,269 organic visitors per month to Wistia.com.
Why exclude subomain / user accounts?
In this scenario, if I would have just taken 10% (organic) of 4.8M (all visits), I’d have inaccurate data. Since organic only applies to those coming from search, I know that users’ subdomains should not be included in organic data because their robots.txt makes it difficult for them to appear in search (more on that below).
Thus, user subdomains were excluded – leaving us with an average of 250,000 organic visitors per month.
In any regard, Wistia should always be looking to improve their 10% organic search. It could be said that most of Wistia’s traffic is branded, and so, much of their traffic is direct. But, with Wistia only being 8 years old, the branded traffic is young as well – thus it’d be nice to see organic hovering around 25%.
One very positive thing to note: in the last 6 months, Wistia does not seem to have been hurt by any penalties from Google. Again, you cannot trust the graph above because it contains all traffic and not just organic, but other graphs from Search Metrics show a similar pattern:
There does seem to be a drop in keyword rankings from January to end of March, but luckily, there were no major updates released in that time period (just anonymous soft Panda updates). The cause could be that one of their major keywords “video hosting” seems to fluctuate quite a bit.
Index-ability
To find how many of Wistia’s pages are actually out there, I crawled their entire site using Screaming Frog’s SEO Spider and Xenu Link Slueth. The crawlers found thousands of URLs, and after multiple crawls, I successfully crawled 5,685 unique pages. Of that, 2,325 URLs were on the Wistia root domain [http://wisita.com/].
Finally, there were 1,243 of those pages that were html/text. It gets complicated with Wistia because they host their customers’ videos on subdomains, so that a user who uses Wistia gets a url similar to: user.wisita.com. Those subdomain URLs were not included in the crawl.
Based on my two previous site crawls, I was able to successfully crawl 5,685 unique pages. But, according to the search operator “site:”, Google has indexed quite a bit more. 31,400 to be exact.
According to this, Google has been able to crawl 6 times more than what I was able to crawl. But we need to keep in mind that the high result number is known to be inaccurate. On the other hand, it shows that Wistia needs to start “no-indexing” some of their content because when you navigate to page 54 on Google, you are greeted with this warning:
This warning suggests duplicate content issues. If you repeat the search with omitted results, you will notice 4 things:
First, If you navigate to the last page, there are only around 6,000 pages indexed – which is much closer to my crawl estimate.
Second, There are broken links that should be absolved. There are not many (only 119) links that should be cleaned up.
Third, There are duplicates that should be de-indexed. Wistia has hundreds of pages that are indexed that are basically copies of each other. Take for example: wistia.com/blog?page=38 (Below).
These blog roll pages should be noindex, follow. Wistia has done a great job of implementing rel=prev/next, and according to the Official Google Webmaster Blog, they are meeting the standards:
When you implement rel=”next” and rel=”prev” on component pages of a series, we’ll then consolidate the indexing properties from the component pages and attempt to direct users to the most relevant page/URL. This is typically the first page. There’s no need to mark page 2 to n of the series with noindex unless you’re sure that you don’t want those pages to appear in search results.
Based on that information, Wistia has marked up their information correctly, but in this scenario, they “are sure” they do not want these pages crawled. Using a robots meta tag here to “noindex, follow” the pages would be encouraged since the rel/prev is still being indexed. In this case, rel/prev is preventing a duplication issue, but it is not solving the indexing issue.
Fourth, Wistia’s product is built on a subdomain model. The reason for so many URLs is because each new user of Wistia gets a subdomain on the URL. I tried out the sign-up process:
They have correctly added a disallow in the robots.txt to each user’s profile (more on that in a moment), but to better enforce the issue, Wistia should consider adding a robots meta tag that noindexes all subdomains at the page level. They could keep the “follow” aspect, and could benefit from links back to the subdomains. Here is the current setup:
The subdomains are being indexed, but Wistia is not receiving any credit for them. Another concern is that the crawl budget is being affected. While it’s good that most of Wistia’s content is being crawled, the subdomains are taking away from the bots crawling Wistia’s main pages. They are giving a lot of room away to subdomainers who are disallowed anyways.
Robots.txt
A robots.txt file is used to restrict search engines from accessing specific sections of a site. Here is a copy of Wistia’s root domain Robots.txt file:
The first record in robots.txt file explains how to write and use the robots file. The next entry is telling the webmaster how to use the file. The third record politely asks all bots (bots used by all search engines are identified with the aterisk) to not crawl the old blog /oldblog/.
Finally, the remaining records simply specify the locations for Wistia’s XML Sitemaps and are technically accurate. In any case, I would recommend moving the sitemaps entries to the top of the robots.txt
There are a few improvements that Wistia could make in the construction of their robots.txt.
Robots.txt is ONLY a way in which to tell a search engine bot which pages it’s allowed to spider, to “see”, and which pages it cannot “see.”
This is not telling search engines if they can include them in their index or not. There is a huge difference. For example, Google will sometimes list URLs that it’s not allowed to spider, because it’s blocked by robots.txt, yet it still shows up in their index.
Wistia should update their robots file because the /oldblog/ contains links. The problem is, right now, the links towards that blog don’t count towards the credibility of Wistia because they’re blocked, but Google displays the page anyway in the search results; It looks something like this:
In order to avoid “A description for this result is not available because of this site’s robots.txt – learn more,” There are two possible solutions for this problem:
First, Wistia could add a <meta name=”robots” content=”noindex, follow”> tag to those /oldblog/ pages, as it would prevent the pages from being indexed and would allow the link “juice” to flow through to the returned posts and pages.
Second, Wistia could 301 redirect all of the /oldblog/ pages to their corresponding new pages. Thus, an article like “Improved Stats Exports In Wistia” on the old blog “http://wistia.com/oldblog/stats-export-updates/” would 301 redirect to the new location at http://wistia.com/blog/stats-export-updates.
These solutions will pass links and will help Wistia from creating duplicate content. A quick reminder: telling Google that it cannot see something in the robots.txt file does not mean that they cannot index it; it tells the engines not to crawl the given URL, but that they may keep the page in the index and display it in the results. There are better solutions for blocking robots than in the robots.txt file.
With the page level solutions mentioned above, the new robots.txt file for the Wisita root domain would look like:
As you can see, I’ve removed the comments and the /oldblog/ from the original.
Robots.txt for Wistia Users
Each Wistia user receives a setup similar to the following: company.wistia.com. Wistia uses the subdomain to build out the users’ hosting space. They’ve equipped each subdomain with the following robots.txt:
This setup is technically correct, and I would need a deeper understanding of the Wistia platform before suggesting prudent changes. However, here is what I can tell with my limited access:
The subdomains are being indexed, which is not technically healthy for Wistia’s site. Again, blocking the robots.txt file doesn’t keep Google from indexing the content, it just keeps the search engines from showing what’s inside.
A solution would be to add a <meta name=”robots” content=”noindex, follow”> tag to all user subdomains.
If Wistia switched from blocking pages at the robots.txt pages to blocking pages at the page level, they could benefit from embedded links pointing at their subdomains. But once again, I would need a fuller understanding of the platform and limitations before suggesting any changes.
Robots Meta Tag
Each page on a site can use a robots meta tag to tell search engine crawlers if they are allowed to index that page and follow its links.
Very few of Wistia’s pages have a meta robots tag – which is fine – they are unnecessary unless they are trying to specify a hidden page. In the case mentioned above, it would benefit Wistia to include a “noindex” robots meta tag on a per page basis, rather than blocking an entire directory.
Finally, Wistia’s SEO could benefit by adding a “noindex,follow” (perhaps nofollow) tag to their users’ profiles. The image below shows what Google does with users’ profiles.
The problem here is that because users’ profiles are displayed, they take up Wistia’s crawl budget. Wistia’s main content should be what consumes the crawl budget, not individual user profiles. So, it would be beneficial to “noindex,follow” all user profiles.
XML Sitemaps
What are sitemaps?
Sitemaps are an easy way for webmasters to inform search engines about pages on their sites that are available for crawling. In its simplest form, a Sitemap is an XML file that lists URLs for a site along with additional metadata about each URL… Sitemaps.org
I identified two Sitemap listings in Wistia’s robots.txt file:
The first listing points to the site’s Web Sitemap, which should include URLs for every page the site wants search engines to crawl and index.
The second listing points to the site’s Video Sitemap, which should include URLs for pages that include video listings. The video sitemap may also earn Wistia a click through boost by giving them a picture in the SERPs. Here are the contents to Wistia’s first sitemap:
The video sitemap is implemented correctly:
- It makes it clear to Google what their content is.
- They have the opportunity to provide a range of details through schema.
- Additional presence on video.google.com search.
- A picture thumbnail, which is a pretty great call to action in the SERPs.
It is interesting to note that Wistia does not include all posts with videos in their sitemap. However, since most of their videos earn a picture thumbnail, it may be beneficial for Wistia to add more videos to their sitemap.
I would recommend compiling a comprehensive list of the site’s indexable pages with videos on the page (i.e., pages that are substantive enough to warrant video inclusion) and creating the video sitemap using that list.
Wistia’s other sitemap is a little more disappointing.
This sitemap is not populated – and it’s another video sitemap – meaning Wistia does not have a sitemap for text posts. I would recommend compiling a comprehensive list of the site’s indexable posts and pages and creating the sitemap using that list.
One last issue with the sitemaps: they are located on a subdomain of wistia.com. Moving the sitemaps from app.wistia.com to wistia.com/sitemaps/ may help with indexing, since all the articles inside the sitemap are hosted on the root domain.
Accessibility
This section covers best practices for both search engines and users. Many of the search engines’ accessibility issues were mentioned above in index-ability, and now we’ll cover accessibility as it mainly relates to humans with the benefits of robots in mind.
Performance
According to Google Webmaster tools:
You may have heard that here at Google we’re obsessed with speed, in our products and on the web. As part of that effort, today we’re including a new signal in our search ranking algorithms: site speed. Site speed reflects how quickly a website responds to web requests… While site speed is a new signal, it doesn’t carry as much weight as the relevance of a page.
Though it’s tempting to dismiss site speed as an important SEO ranking factor, if Google says it matters (even a small percentage), it matters.
Wistia’s site speed is decent, but Wistia could make a few tweaks to make their site much more efficient:
One of the things you’ll notice is that the site is loading too many external files. Reducing the number of files needed to load the site, thereby reducing the number of HTTP requests, will make the site load more quickly. Currently, Wistia is making 94 HTTP requests – far too many requests.
There’s usually three parts to fixing this:
- Reduce the number of JavaScript files
- Reduce the number of CSS files
- Reduce the number of images
The Time to First Byte is extremely quick, but the page load is somewhat slow – anywhere from 2.88 seconds to 3.93 seconds (Pingdom). They received a 63/100 on Page Speed Insights via Google, and 72/100 on Pingdom. Wistia’ site has room for improvement.
The site could be improved with the following:
- Eliminate render-blocking JavaScript and CSS
- Minimize HTTP request – Wistia’s pages will load more quickly with fewer requests. Minimizing these requests involves reducing the number of files that have to be loaded, such as javascript, css, and images.
- Combine Javascript and CSS into external files with links from the header. This allows the external page to be cached so that it’ll load faster.
- Optimize images for the web.
- Implement server side caching – This creates a static html page for a URL so that the dynamic sites don’t have to reload / be recreated each time the URL is requested.
- Use a CDN – such as Amazon. The CDN will allow users to download information more quickly.
- Load Javascript asynchronously.
- Finally, use 301’s only when necessary. A 301 forces a new URL, which takes a longer time to load.
Wistia also has around 200 broken links – which is not a lot – but fixing those would cut down on 404s and unnecessary HTTP requests.
Finally, Wistia loads some of their CSS in the header – over 500 lines of CSS on each page. This occurs on the homepage and other pages throughout the site. In order to increase page speed and be more semantic, Wistia should move their styles to the main CSS style sheet. Right now, Wistia’s website suffers from 120+ CSS errors.
Site Architecture
Currently, Wistia’s average page level is 5.4 (0 being the homepage). At this point, Wistia should:
- Start to trim back their content that doesn’t produce results
- Reduce the number of content silos on their pages by creating a flatter, better connected architecture
First, some SEOs are under the impression that all content is good, meaning that content should never be deleted.  I tend to lean the other way.
Content is like a grapevine: In order to produce the best fruit possible, you really need to prune. I’d suggest that Wistia sit down with Google Analytics, Backink profiles, etc. and decide which pages are brining in traffic, shares, etc, and which articles are not. Based on the results, Wistia can create better content that engages and prevents keyword cannibalization.
Wistia can cut back on content in two ways: meta robots “noindex” or they can delete the content. Content that is necessary for a positive user experience but should not be included in the SERPs should be deindexed. _For example, _one of the first places Wistia should consider deindexing is /community/. This section of the site does not contain any CTAs – the rankings are low – and the architecture is deep. Wistia should not cut this content because it is useful for the user, but not for the search engine. Deindexing the content takes care of the problem.
On the other hand, there are posts that have aged poorly. If they are not driving traffic, increasing shares, ranking, or converting, Wistia should delete them. In_ deleting content, Wistia should 301 duplicate content and let the rest of the content 404. _
Secondly, Wistia should create a flatter site architecture. If Wisita can contain most of their content within 3 levels http://wistia.com/blog/category/article (root counts as 0), they will be able to increase indexation and increase long tail results. This will also prevent vertical silos (Rand has a great article on content silos).
Right now, Wistia exists in 4 main silos: /blog, /learning, /community and /doc. The Wistia homepage links to a silo (ie. blog), and silos link to posts. This creates lots of information, but links are flowing down, not around.
In reworking their site architecture, these vertical silos will disappear.
Usability
Wistia has a few layout issues that reduce the website’s usability and effectiveness.
First, noticeably missing from the Wistia website is a search form. The only way to find something on the Wistia website (outside of the navigation) is to head over to Google and search “Wistia + “. Adding this search functionality will help users, and it will also help Wistia know what the user is searching for in their site page analytics.
Next, Wistia’s site is not mobile responsive. Based on the analytics, Wistia has 50% of their users visiting the site on mobile. On iOS, sometimes Wistia’s entire site loads, but at other times, users will see this:
At some breakpoints, Wistia’s site seems to be in the middle of transition between “almost mobile ready” and fixed width:
Usability needs improvement on mobile, and according to Matt Cutts, “There is NO SEO disadvantage to using responsive design, only advantages.” I’m sure this usability problem will be fixed in the next iteration of Wistia’s website.
Click Depth
Click Depth or crawl depth is the number of times a website visitor must click on a link from the root domain in order to get to the desired page. The root domain will have a link depth of zero – since it takes zero clicks to get to the root domain on a webpage.
Search Engines are like humans – they do not want to waste time trying to find pages hidden deep into a site’s architecture. Pages that are available in one click – thus one page from the homepage – are deemed more important by search engines than those that are nearly hidden.
As the graph below shows, Wistia is doing a good job of keeping the required clicks minimal. What will decrease click depth even more, though, would be to remove silos.
####
On Page Ranking Factors
In this section, I’ll examine Wistia’s on-page ranking factors (e.g., Titles,URLs, markup, images, content, etc.) that influence the site’s search engine rankings.
HTML Markup
Semantic HTML markup, in its most basic elements, is a machine readable language that is used to tell the browser how to display the text or graphics in the document. Search engines crawl over your pages and semantic markup can identify your pages’ most important information. Semantic HTML markup is a way of indicating the meaning of web content to the search engine.
When examining Wistia’s pages, I found multiple pages with 10-30 errors per page. The most concerning was the empty heading tags littered throughout the pages. Although these aren’t extremely critical issues, I’d recommend cleaning up as many errors as possible (empty headings, duplicate IDs, attributes, etc).
Structured Data
Schema.org mircodata is an extra set of HTML tags that you can add to your HTML elements to let the search engines know specifically what you are talking about. For example, for the Wistia blog post, they would tag the title as a “headline,” the author as an “author” (with authorship), and the date the blog post was published as the “publishedDate.” Now when Google indexes Wistia’s blog, it knows specifically what the title of an article is, who the author is, and when the post was published.
Unfortunately, Wistia does not define structured data. To make these articles more readable for search engines, I’d recommend adding the article markup. Wistia is already doing a great job with Video Markups, and the posts should be an easy next step.
Wistia fails to add authorship to most of its articles. Though a few of Wistia’s articles include authorship, such as the one below, including authorship in all articles would be greatly beneficial.
In order to add authorship, here’s what you can do: create a Google+ profile for each of the site’s authors. Then, link from Google + profile back to the blog, and vice versa.
Be Careful with Schema.org
One caution: I do not recommend schema.org for all HTML elements. For example, consider the search term “OneRepublic”:
Here, you can see that Google is using micro markup (schema) to scrape the content and place it on Google – this could potentially hurt click through rates (CTR). The more information you tell Google – the more you risk Google scraping your content and your site losing sessions.
Meta Descriptions
Meta descriptions are HTML attributes that provide concise explanations of the contents of web pages. Meta descriptions are commonly used on search engine result pages (SERPs) to display preview snippets for a given page (Moz).
Meta Descriptions do not influence the ranking factor of a site’s page, but they do influence the CTR (click-through-rate).
These short paragraphs (normally 155 words) are a website’s opportunity to advertise content to searchers and to let them know whether the given page contains the information they’re looking for.
Out of 1,243 unique HTML/Text URLs on Wisita’s root domain (more on that in a minute) only 76 of Wistia’s pages use a meta description, and 19 of those descriptions are duplicates. What this means is that in almost all of the searches, the meta descriptions are automatically generated.
2 Options to Fix
There is no single answer for this problem.
The first answer would be adding a unique meta description for each of the page’s content.
The second answer is a bit more complex. If a page is only targeting between one and three search terms, then by all means, write a meta description that targets those key words. But if the page is targeting long-tail searches, it may be easier to let the search engines pull in the meta descriptions themselves.
The reason the second answer is more feasible is because when the search engines pull content, they pull content and display keywords surrounding the user’s query. If you force a meta description, it can detract from the relevance of long tail search.
In some cases, search engines will overrule your meta description anyways, but you cannot always rely on that. In that regard, it would be advantageous for Wistia to add meta descriptions for pages that target only a few keywords and leave the other long-tail pages open for variance.
One last issue to be aware of when thinking about meta descriptions:
Social sharing sites will commonly pull the meta description when sharing.
Without the meta description, social sharing sites will just use the first text they can find. As you can see above, the social share pulled the title twice, the date, and then the first words from the opening paragraph. Not using a meta description may create a bad user experience for social sharing.
Head Tags
rel=publisher
Wistia has a great looking Google+ page, and they need to take advantage of rel=publisher. This tag has seen a much smaller adoption rate compared to Rel=Author, and its name may cause the confusion. The publisher tag can be used by any business or brand website that has a corresponding Google+ page.
Publisher connects your Google + page to your website, and that results in your Google + page being displayed in search results whenever anyone is searching for your brand name. For example:
See the rich snippet on the right? This is what Wistia is missing. Currently, a search for Wistia leaves room to be desired:
The red box here indicates where Wistia’s publisher mark-up could go. Wistia simply needs to link from their home page to their Google Plus page using rel=”publisher”.
rel=canonical
Wistia does a fine job of inputting rel=canonical in most cases. On many subpages, blog rolls, etc… Wistia uses rel=prev, rel=next, which is actually a common substitute for canonical (according to webmaster tools). On http://wistia.com/community there does seem to be a small error in rel=canonical. In the markup, Wistia has the canonical page as the first page. According to Google Webmaster Tools:
Specifying a rel=canonical from page 2 (or any later page) to page 1 is not correct use of rel=canonical, as these are not duplicate pages.
Based on this information, Wistia has the rel=canonical set up incorrectly. All community subpages point back to /community. According to webmaster tools, Google actually recommends that you rel=canonical to a “View All” page. The current set up is technically incorrect because page 2 is not a duplicated of /community.
In order to fix this, I’d recommend that Wistia implement rel=prev / rel=next like they do in other subpages (and remove rel=canonical), or that they create a “view all” page and rel=canonical the pages that include all discussions from community. This may help decrease the indexing of the community pages.
Lastly, not all subpages include canonical or rel=”prev/next”. I’d suggest adding those tags to help the search engines distinguish the paginated series.
rel=prev / next
Google asks that webmasters add rel=”next” and rel=”prev” to paginated archives, so that Google can distinguish them as a series and send users to the most relevant pages.
As far as I can tell, Wistia implements this correctly (ie, the blog).
Open Graph
The Open Graph protocol enables any web page on Wistia’s site – or all sites – to become a rich object. For instance, the Open Graph is used by Facebook to allow any web page to have the same functionality as any other object on Facebook. Currently, Wistia does not implement Open Graph protocol on their site.
If you look closely, you can easily notice that Wistia is not using the open graph – due to how the description is automatically generated by Facebook. At the very minimum, Wistia should include the following open graph tags:
Even if Wistia does not have the time to implement all forms of open graph, at the bare minimum, I’d recommend they include Open Graph (all social platforms can use it as a baseline, including Twitter). Adding Open Graph tags to their website won’t directly affect the on-page SEO, but it will influence the performance of Wistia’s links in social media.
Twitter Cards
Currently, Wistia is not implementing Twitter cards on their site:
Twitter cards are another micro markup – essentially rich snippets for Tweets. Now, as mentioned above, Twitter will actually fall back on the Open Graph tags used for FB if Wistia would implement them, but the Open Graph tags aren’t comprehensive.
There may be a reason that Wistia opted not to use Twitter cards, because they could easily implement them if they wanted to. Since they’ve seamlessly implemented video on Twitter, the other card formats would be easy to implement.
It is an easy fix. At the very minimum, Wistia could add:
I’d recommend Wistia looking into adding open graph to all of their pages to help with social engagement and sharing.
Titles
According to Cyrus Shepard at Moz:
Title tags—technically called title elements—define the title of a document. Title tags are often used on search engine results pages (SERPs) to display preview snippets for a given page, and are important both for SEO and social sharing.
Each page that is indexed should have unique content and a unique title that effectively summarizes the content for users and search engines. Out of the 1200+ pages on Wistia’s website, only 512 pages have unique titles.
On these pages, there are two options:
First, add a unique title that describes the pages.
Second, and probably most preferred, “noindex, follow” the pages that are not necessarily important (See the example below of titles and pages that are not necessary). This will remove them from the search engines but links will still pass equity.
Many of the site’s pages use titles that are not descriptive enough (Ie. “Sent from my iPhone,” “Lighting for a Webcam,” etc). These titles do not provide enough information about Wistia or their products , which results in a lower ranking and lower CTR for Wistia. Here is a sampling of the titles from Wistia:
Shooting for the Edit
Choosing a Microphone
Choosing Music for Your Video
Sent from my iPhone
Shooting with a Ring Light
Lighting for a Webcam
Making Better Help Videos
Based on the titles above, it seems as if Wistia is more of a video creation company rather than a video hosting company. I’d suggest researching the CTR and the company’s business needs and crafting articles and titles that are focused on those needs with the audience in mind.
For example, let’s look closely at this title: “Does Length Matter?“. Of course, if you know Wistia, you know that they are referring to video length. But let’s say you don’t know Wistia. What would you think? Wistia isn’t trying to be explicit or inappropriate, but you can see how a more descriptive title, such as, “Does Length Matter in Online Videos: Video Analytics Say Yes” makes much more sense. That title is a little long, 61 characters, but it would show up in Google as:
It cut the title off, but it does leave the viewer wondering what the analytics say. This title is much more descriptive and removes any click anxiety a user would face when coming upon the title “Does Length Matter.”
As you noticed above, Google will show as many characters that a 512 pixel display can show – thus, around 50-60 characters. The reason the number varies is because some characters are bigger than others (ie, you could fit a lot more “i”s than you could “w”s). _Wistia is not taking advantage of this character count. _Most of Wistia’s titles are at an average of 22 characters long, and very few of them reach 50 characters in the title. If Google gives you the opportunity to create a longer, more descriptive title, do it.
I’d suggest that Wistia go back and rewrite many of their titles. A longer, more specific title could result in higher click through rates, and ultimately, better rankings. Even if Wistia does not want to rewrite many of their titles, adding the branding would increase character count and would, at the very least, take back the length real estate they have lost up until this point.
| Less than 50% of the site’s titles actually incorporate the brand name. To help promote brand awareness, I’d add Wistia at the end of each title (“Shooting for the Edit | Wistia”). Because Wistia is well recognized, including the brand name in the title element can increase search engine clicks. |
URLs
Wistia has done a great job crafting their URLs. Their URLs are at an average length of 50 characters (including http://wistia).
The site’s URL structure is organized and clean. The blog section is under /blog/. The Documentation lives under /doc/, and community lives under /community/. Each URL also contains at least one keyword.
Wistia could, however, improve their URL structure by making it slightly more descriptive. Take this URL, for example:
http://wistia.com/blog/screenr/
Wistia could add one or two more words to the URL to describe what the page is about. The keyword Screenr is very vague, and Wistia could potentially help ranking and click through by describing the URL better.
Images
For the benefit of search engines, compliance (HTML), and the visually impaired – all images should have an ALT tag.
The ALT tag should accurately describe the image, and if possible, contain a keyword relevant to Wistia’s site (but only if the keyword is relevant to the image).
Additionally, image file names should be descriptive – not containing random numbers or queries. The file name should describe the image and, once again, use a keyword if possible.
If Wistia ensures that images follow these two rules, they will increase the likelihood of referral traffic from image searches. Wistia has hundreds of images, but only about 8% of the images take advantage of the alt text. Wistia also has many images that are labeled with random numbers and strings:
There are hundreds of images like this on Wistia’s blog, and the ones above were taken from the most recent articles posted. I’d suggest adding alt tags and descriptive title tags to the images to increase organic image search, but to also be HTML compliant (they currently aren’t) and to help the visually impaired.
Transcripts
According to Wistia:
When a search engine is indexing your page, instead of seeing a video element with a few tags, transcripts allow the search engines to index every single word of your video.
Transcripts are an opportunity to tell Google what a video is about. Transcripts also generates a closed caption for the video, which allows hearing impaired users to watch the video and read the dialogue.
Unfortunately, some of Wistia’s videos do not appear to utilize transcripts, and what’s more, those that do have transcripts do not accurately match the video. I would recommend adding transcripts to improve the searchability and usability of Wistia’s videos.
Content Duplication
Wistia is doing a great job keeping their content unique and fresh. They do, however, need to be careful with canonicalization (only point back to a view all page in archives) and prev/next.
For example, Wistia does need to do something about their users’ profiles, ie. http://wistia.com/community/users/. Their users’ profiles should be deindexed. They risk spammy content and content duplication, as seen below:
Wistia also doesn’t have a major issue yet, but they might want to remove the old WordPress /oldblog (or bring it in house since it might be a test sight):
Off-Site Ranking Factors
This section will cover some of the most influential factors in ranking: backlinks and social engagement.
Backlinks
Links are not everything when it comes to SEO, but search professionals and companies attribute a large portion of the search engines’ algorithms to backlinks (Larry Page based Google off of the Educational Citation Method – ie. A professor who was cited by other authors was considered more credible – Read his dissertation for more information).
When analyzing backlinks, you should consider: Total number of links, link quality, number of unique domains, fresh/incoming links, and anchor text usage.
To start, I first recorded how many backlinks Wistia had received over the past few months (this is not including 500 unique domains that point to www.wistia.com). The charts below show the growth of Wistia’s backlink profile over the course of one year.
After comparing the backlink analysis above to Majestic SEO and Moz, there was not much of a difference. Wistia was consistently growing their unique domain backlinks until April, and has started a recent growth.
To see how Wistia’s backlink growth matches up with their competition, I compared Wistia’s growth with 4 of their competitors over the past 5 years: Vzaar, Viddler, Viewbix, and Sproutvideo (notable, Vimeo was not included. Vimeo is on a much larger scale than Wistia at this point). *Wistia is a startup, but they’ve been around the past years.
One would hope that Wistia would be the yellow line, but they are not. Currently, Wistia is being outpaced by Viddler (Viddler provides online video hosting and custom solutions for businesses along with industry leading support and professional services). Viddler is only one year older than Wistia – Viddler was founded in 2005 and Wistia was founded in 2006 – which means that there should not be such a significant difference in the two companies’ backlink growth.
So that you can actually see Wistia’s cumulative backlink growth, I removed Viddler and focused on only the last 2 years (cumulative):
These charts shows 2 things:
- Wistia’s backlinks are growing.
- They have fierce competition.
If Wistia is not careful, they could potentially lose their #1 ranking for “video hosting” to Viddler. Almost every month, the competitors are acquiring more links from more unique referring domains. The backlink analysis shows the competitiveness of backlinks:
Subdomain Backlinks
As previously mentioned, Wistia sets their users up with a subdomain on their on site to host videos.
Thus, when anyone signs up, they can host their videos on their own subdomain hosted at Wistia.
What does this mean for Wistia?
They receive a lot of subdomain links from their users. In fact, out of the 17,000 backlinks, 13,000 of them point at subdomains of Wistia. There are three ways to look at this situation, but they all come with one major caution:
- Pro: The backlinks on the subdomains are actually helping Wistia. Many companies have started to place their blog on a subdomain, and it seems to be a standard. Supposedly, the search engines are treating subdomains more and more as just portions of the main website, and in a way, links are passing credibility.
- Neutral: Since the backlinks are not in a subdirectory and are in a subdomain, Google does not pass link credibility. They see the subdomains as a separate site, and thus, the subdomain does not help the main site.
- Con: Currently, all of Wistia’s subdomains are disallowed from their robots.txt. It would be better for Wistia to set up meta robots tags with “noindex,follow” (to keep link credibility) than to disallow in the robots.
Caution: Whether Wistia changes their robots disallow to meta robots or not, Wistia needs to be mindful of their backlink profile. Even though Wistia currently disallows their users’ subdomains, the users’ links are still tracked. If users have spammy content, the fact that they are hosted at wistia.com means that Wistia could be penalized.
Backlink Distribution
To monitor Wistia’s backlink distribution – the links dispersed among all of their pages – I used Moz’s Pro Tools to analyze the backlinks for each page on Wistia’s site.
Wistia has – according to Moz, Majestic and Ahrefs – around 17,000 referring domains. But, upon closer inspection – many of those links are pointing to subdomains of Wisita. There are only around 1,250 domains pointing to the root folder (http://wistia.com).
According to the data, 72% of all Wistia’s pages have no backlinks. Of the 28% (359 pages) that do have links, the homepage accounts for almost 55% of those links. If you remove the homepage, here is what happens:
The articles with the most links (excluding the homepage) are:
The rest of the pages contain less than 1% of all referring links. Moving forward, I recommend spending more time on in-depth / well researched articles, ie. Does Video Length Matter. Additionally, it would not hurt to conduct outreach on the articles to increase page shares.
Backlink Source Analysis
To analyze Wistia’s backlinks, I used Majestic SEO. Here is a plotting of their backlinks:
The site has quite a few quality backlinks. When analyzing Majestic, you are hoping to see the links fall to the top right. Citation Flow is link juice and the Trust Flow is how close those links are to trustworthy, authoritative sources.
Correlating with the data above, only a handful of Wistia’s links that I checked out appeared spammy, and very few of the links over-optimized anchor text. With a trust ratio of .918, Wistia has links from mostly trustworthy sources. It would be nice, however, to see the ratio greater than 1.
One last caution: Wistia should be careful of others websites using links in headers and footers that repeat across the site, ie, this site. These sitewide links are heavily scrutinized by Google’s Penguin update, but they should be okay with just a few…
Anchor Text Distribution
After Penguin, Panda, etc – it’s important for Wistia to conduct an anchor text analysis. Over the years, there were many ways to manipulate rankings on Google, and links were one of them. Google has always been aware of this, and they are finally cracking down (in fact, anchor text misuse will trigger the Penguin filter quickly).
What Links Do They Need to Examine?
Branded Links
Branded anchor text includes any link that is a brand name (Wistia), URL, or domain (wistia.com). Google wants to see these brand referrals. If you notice that your link profiles has higher branded links, that is okay. It is natural.
Partial Match (Money)
Compound, also commonly known as ‘partial match anchor text,’ is used when the link contains the brand or targeted term, in addition to other words that you aren’t targeting. For example, Wistia may target ‘Wistia Production’ as a partial match…
Exact Match (Money)
Exact match anchor text can be considered over optimization. This refers to the words in the links (anchor text, ie… Video Hosting), exactly matching the keywords that you are trying to rank for.
Generic
‘Zero match anchor text’ or white noise / generic uses calls to action to drive users to targeted pages. Example: click here, learn more, follow, read more, etc…
Naked URLs
A naked URL is simply the domain name or page you are linking to. For example: http://wistia.com
Image Links
Often overlooked, but are still powerful links, are links on images, which have keywords in the alternate text of the image.
This is a great rule of thumb to follow:
- 70% brand, URL, brand+keyword, and non-targeted anchor texts (Branded Links, White Noise, Naked URL, Titles, and Image)
- 25% partial, phrase, and broad match keyword anchor texts (Compound)
- 5% exact match anchor texts (Exact Match)
Below is the Anchor Text chart for Wistia…
Wistia does very well. If you examine the chart closely:
- 6% of Wistia links come from “Wistia,” which is a branded identity.
- 10% of searches include a partial match, etc…
- 84% include the other types of links: Naked, URL, etc..
Wistia has done a great job of keeping their links diverse. One of the best things Wistia did was leaving their video backlinks, from their embeds, empty. This is the reason for the massive amounts of empty anchor text links.
As a result, Wistia’s anchor text appears to be natural. As the company grows, the branded terms should grow as well, but again, that would be a natural progression.
Social Engagement
In May 2010, Google’s SEO Genius, Cutts, stated that the algorithm does not use social signals as a factor in search results. In December 2010, Cutts said social signals are a factor. More recently, in January of 2014, Cutts went back and said social media is not a signal in the algorithm.
Either way, we cannot ignore the fact that social media is a search engine of sorts. People on social media are researching, searching, interacting, and engaging – and at very high engagement rates. According to Statisticbrain, the number of Twitter search engine queries every day is over 2.1 billion. In any regard, a site’s success is largely dependent on social success and social engagement.
The chart below gives you a great visual of how Wistia’s shares are split concerning a search engine’s point of view. The center represents the first page, and each segment beyond it are pages linked from that page. Segments beyond that are linked to their parent. Pages with no shares are not included or shown.
As you can see from the graph above, the center represents the homepage, and all directories off of the homepage (/blog, /docs, /learning, etc). It’s great to see that the /blog (large orange portion) takes up a large portion of the shares. The graph below breaks down that same content by social network:
As you can tell, Wistia is putting their best foot forward on Twitter, but Facebook still needs some help. On Twitter, they’ve got hashtags (#wisitafest), embed videos, pictures, and links – and the best part – most of their links are to endorse content that is not always their own. In fact, most of the time, the links go to varying sources.
On Facebook, though, Wistia needs a little work:
The Wistia Facebook page is updated on a daily basis, but those updates have various characteristics that need improvement:
- Wistia’s content is likable, but it’s not sharable. As a third party analyst, most of their content looks interesting. In the example above, their work space looks cool, but is it worth sharing? A better approach in the specific example above would be to encourage input, such as, “Practicing for the Wistiafest workshops: what are some things you want to see taught?” Very basic, but it’s _at least _asking for interaction.
- Wistia doesn’t create interaction on the posts – their engagement rate is hovering around 2%.
Most disconcerting of all: 76% of all content has no FB engagement, and the lack of engagement is true for 51% of Tweets. Even worse, Google+ is non-existent. Here’s why: Wistia only promotes Facebook and Twitter sharing on their blogs – AND they are not very visible. (The red box below highlights this.)
To improve Wistia’s engagement on Facebook, Twitter, and Google+, I would :
- Start using more prominent social sharing buttons. I would also add Google+ (since their network seems to have high link authority).
- Use the data above to delete old content that receives no engagement.
50 Grove {#50grove}
50 Grove is a subdomain of Wistia – 50grove.wistia.com – that was created a few years back to help connect videos producers with clients. This site doesn’t appear to have been updated since early 2013, and accounts for quite a bit of Wistia’s search real-estate. With the uncertainty of how exactly Google sees subdomains, it might be in the best interest of Wistia to cut this subdomain.
Again – this is from the outside looking in, but with only 40 referring domains, and a lack of updating – it seems as if Wistia has moved on from 50 Grove. Even Wistia’s CEO had this to say about 50 grove:
We take no commission from 50 Grove and we aren’t a video production company. Our interests are solely in making it easier to connect businesses with producers.
I do think 50grove is a great idea, and I do understand how it relates to the business model, but with so many other products that Wistia offers, it may be a subdomain that is consuming more resources than it’s worth.
Inbound Marketing
After analyzing their site – over 1,200+ pages, I noticed that Wistia could also improve on their inbound marketing. With HubSpot right down the street from Wistia’s headquarters, Wistia may want to lean on their neighbor’s expertise (I’m sure Dharmesh has tickets to Inbound 2014).
As Wistia’s website currently stands, they are lacking lead generation tools. Right now, Wistia excels in blogging and social media content, but they are lacking in many conversion channels: calls-to actions, landing pages, forms, marketing automation, etc.
If Wistia does follow the practices above, their organic traffic will grow, but since only 2% of website visitors return, they’ve got to implement lead generation tools where they can build relationships, lead nurture, and then hopefully convert those visitors to customers. This audit will help attract users to the website, but it is only a stepping stone in creating customers.
Wistia should be adding compelling calls-to-action at the bottom of each posts, with helpful tools such as: ebooks, videos, freebies, etc. that will funnel a visitor to a landing page where Wistia can collect information.
Summary
As important as SEO is, it doesn’t exist in a silo. Right now, Wistia is doing well, but if they could make these tweaks and incorporate SEO into their business’s best practices and online marketing objectives, their gross revenue could soar.
Best of luck, Wistia.


Introduction
Every Brick has a way to detect the voltage of the Battery.
1. How to use the sensor
1.1. Read the voltage
package ev3dev.sensors;
import lejos.utility.Delay;
public class BatteryDemo {
public static void main(String[] args) {
final Battery battery = Battery.getInstance();
for(int x = 0; x < 20; x++){
System.out.println("Battery Voltage: " + battery.getVoltage());
Delay.msDelay(1000);
}
}
}


Module unitFlows
Functions
adjacencyIndex
areUnitFlows
breakEvenOverlap
breakEvenOverlaps
breakEvenOverlaps_Event
cycleAdjacencyIndexes
cycleSelfOverlaps
destructiveOverlap
destructiveOverlaps
detectHairpin
detectRedundancy
fixHairpin
getEndOfDirectRepeat
getEndOfReverseRepeat
getEvenOverlapIndex
getEvenOverlapIndices
getStartOfDirectRepeat
getStartOfReverseRepeat
hairpinLength
isHairpinIndex
isUnitFlow
main
removeEventHairpins
removeEventsHairpins
simplifyEventCycles
sortedCycleAdjacencyIndexes
splitDirectRedundancy
splitEventsRedundancies
splitRedundancies_Event
splitRedundancy
splitReverseRedundancy
Variables
__package__


Markdown Test
Markdown Plus
Markdown Plus (“M+” or “mdp” for short) is a markdown editor with extra features.
Apps
We currently don’t accept donations. The best way to support our development is to buy our apps.
Markdown Mate
Markdown Mate is a markdown previewer, it’s not going to replace your favorite editor but handles everything about markdown.
Table of Contents
[toc]
Note: Only h2
and h3
are shown in toc.
Mastering Markdown
Markdown allows you to write using an easy-to-read, easy-to-write plain text format, which then converts to valid HTML for viewing.
strikethrough
++insert++
==mark==
Subscript: H~2~O
You can also use inline math: $H_2O$
Superscript: 29^th^
You can also use inline math: $29^{th}$
Emoji: :panda_face: :sparkles: :camel: :boom: :pig:
Fontawesome: :fa-cab: :fa-flag: :fa-bicycle: :fa-leaf: :fa-heart:
print 'hello code'
evens = [1, 2, 3, 4, 5].collect do |item|
item * 2
end
|
|
Tables and alignment
| First Header | Second Header |
|---|---|
| Content from cell 1 | Content from cell 2 |
| Content in the first column | Content in the second column |
| Left-Aligned | Center Aligned | Right Aligned |
|---|---|---|
| col 3 is | some wordy text | $1600 |
| col 2 is | centered | $12 |
Task list
a separate task
Abbreviation
Markup is based on php markdown extra definition, but without multiline support:
*[HTML]: Hyper Text Markup Language *[W3C]: World Wide Web Consortium The HTML specification is maintained by the W3C.
Footnote
Here is a footnote reference,1 and another.2
belong to the previous footnote.
Here is an inline note.3
Mathematical formula $y = x^2$
Inline math: $\dfrac{ \tfrac{1}{2}[1-(\tfrac{1}{2})^n] }{ 1-\tfrac{1}{2} } = s_n$
.
Math block:
\oint_C x^3\, dx + 4y^2\, dy
2 = \left(
\frac{\left(3-x\right) \times 2}{3-x}
\right)
\sum_{m=1}^\infty\sum_{n=1}^\infty\frac{m^2\,n}
{3^m\left(m\,3^n+n\,3^m\right)}
\phi_n(\kappa) =
\frac{1}{4\pi^2\kappa^2} \int_0^\infty
\frac{\sin(\kappa R)}{\kappa R}
\frac{\partial}{\partial R}
\left[R^2\frac{\partial D_n(R)}{\partial R}\right]\,dR
AsciiMath
Inline AsciiMath: @(1/2[1-(1/2)^n])/(1-(1/2))=s_n@
oint_Cx^3 dx+4y^2 dy
2=(((3-x)xx2)/(3-x))
sum_(m=1)^oosum_(n=1)^oo(m^2 n)/(3^m(m3^n+n3^m)
phi_n(kappa) = 1/(4pi^2 kappa^2)
int_0^oo (sin(kappa R))/(kappa R)
del/(del R)
[R^2 (del D_n (R))/(del R)] del R
mermaid charts
Flowchart
graph TD
A[Christmas] -->|Get money| B(Go shopping)
B --> C{Let me think}
C -->|One| D[Laptop]
C -->|Two| E[iPhone]
C -->|Three| F[Car]
- Flowchart Syntax
- ::: warning Adding many flowcharts will slow down the editor. :::
Sequence diagram
sequenceDiagram
loop every day
Alice->>John: Hello John, how are you?
John-->>Alice: Great!
end
- Sequence Diagram Syntax
- ::: warning Adding many sequence diagrams will slow down the editor. :::
Gantt diagram
gantt
dateFormat YYYY-MM-DD
title Adding GANTT diagram to mermaid
section A section
Completed task :done, des1, 2014-01-06,2014-01-08
Active task :active, des2, 2014-01-09, 3d
Future task : des3, after des2, 5d
Future task2 : des4, after des3, 5d
section Critical tasks
Completed task in the critical line :crit, done, 2014-01-06,24h
Implement parser and jison :crit, done, after des1, 2d
Create tests for parser :crit, active, 3d
Future task in critical line :crit, 5d
Create tests for renderer :2d
Add to mermaid :1d
section Documentation
Describe gantt syntax :active, a1, after des1, 3d
Add gantt diagram to demo page :after a1 , 20h
Add another diagram to demo page :doc1, after a1 , 48h
section Last section
Describe gantt syntax :after doc1, 3d
Add gantt diagram to demo page : 20h
Add another diagram to demo page : 48h
- Gantt Diagram Syntax
- ::: warning Adding many gantt diagrams will slow down the editor. :::
Class diagram
classDiagram
Class01 <|-- AveryLongClass : Cool
Class03 *-- Class04
Class05 o-- Class06
Class07 .. Class08
Class09 --> C2 : Where am i?
Class09 --* C3
Class09 --|> Class07
Class07 : equals()
Class07 : Object[] elementData
Class01 : size()
Class01 : int chimp
Class01 : int gorilla
Class08 <--> C2: Cool label
- Class diagram is powered by mermaid.
- ::: warning Adding many class diagrams will slow down the editor. :::
Custom Container
- Markup is similar to fenced code blocks. Valid container types are
success
,info
,warning
anddanger
. - ::: info You have new mail. :::
- ::: danger Staying up all night is bad for health. :::
Definition list
Term 1 ~ Definition 1
Term 2 ~ Definition 2a ~ Definition 2b


-webkit-touch-callout
Disables the default callout shown when you touch and hold a touch target.
On iPhone OS, when you touch and hold a touch target such as a link, Safari displays a callout containing information about the link. This property allows you to disable that callout.
The current allowable values are none
and inherit
.
-webkit-touch-callout: <behavior>;
The touch callout behavior.
| none | |
| inherit |


prtRegressRvm Relevance vector machine regression object
REGRESS = prtRegressRvm returns a prtRegressRvm object
REGRESS = prtRegressRVM(PROPERTY1, VALUE1, ...) constructs a
prtRegressRvm object REGRESS with properties as specified by
PROPERTY/VALUE pairs.
A prtRegressRvm object inherits all properties from the prtRegress
class. In addition, it has the following properties:
SetAccess = public:
kernels - A cell array of prtKernel objects specifying
the kernels to use
verbosePlot - Flag indicating whether or not to plot during
training
verboseText - Flag indicating whether or not to display
a message during training
SetAccess = private/protected:
learningConverged - Flag indicating if the training converged
learningResults - Struct with information about the convergence
beta - The weights on each of the kernel elements;
learned during training
Sigma - The learned covariance
sparseBeta - The weights on the retained kernel elements;
learned durning training
sparseKernels - The retained kernels
This code is based on:
Michael E Tipping, Sparse bayesian learning and the relevance
vector machine, The Journal of Machine Learning Research, Vol 1.
Also see http://en.wikipedia.org/wiki/Relevance_vector_machine
A prtRegressionRvm object inherits the PLOT method from the
prtRegress object, and the TRAIN, RUN, CROSSVALIDATE and KFOLDS
methods from the prtAction object.
Example:
dataSet = prtDataGenNoisySinc; % Load a prtDataRegress
dataSet.plot; % Display data
reg = prtRegressRvm; % Create a prtRegressRvm object
reg = reg.train(dataSet); % Train the prtRegressRvm object
reg.plot(); % Plot the resulting curve
dataSetOut = reg.run(dataSet); % Run the regressor on the data
hold on;
plot(dataSet.getX,dataSetOut.getX,'c.') % Plot, overlaying the
% fitted points with the
% curve and original data
legend('Regression curve','Original Points','Kernel Locations Used',0)