Website Review


Enter domain


← Click to update
herbsutter.com

Website review herbsutter.com

 Generated on April 21 2021 09:39 AM

Old statistics? UPDATE !


The score is 61/100

SEO Content

Title

Sutter’s Mill – Herb Sutter on software development



Length : 51

Perfect, your title contains between 10 and 70 characters.
Description

Herb Sutter on software development



Length : 35

Ideally, your meta description should contain between 70 and 160 characters (spaces included). Use this free tool to calculate text length.
Keywords



Very bad. We haven't found meta keywords on your page. Use this free online meta tags generator to create keywords.
Og Meta Properties Good, your page take advantage of Og Properties.
Property Content
type website
title Sutter’s Mill
description Herb Sutter on software development
url https://herbsutter.com/
site_name Sutter’s Mill
image https://secure.gravatar.com/blavatar/4554b8d24c7f200dc5e2e1b18db1893f?s=200&ts=1618990786
image:width 200
image:height 200
locale en_US
Headings
H1 H2 H3 H4 H5 H6
27 53 13 0 0 0
  • [H1] Sutter’s Mill
  • [H1] GotW #101 Solution: Preconditions, Part 2 (Difficulty: 7/10)
  • [H1] Notes
  • [H1] Acknowledgments
  • [H1] GotW #101: Preconditions, Part 2 (Difficulty: 7/10)
  • [H1] Notes
  • [H1] GotW #100 Solution: Preconditions, Part 1 (Difficulty: 8/10)
  • [H1] Notes
  • [H1] Acknowledgments
  • [H1] Trip report: Winter 2021 ISO C++ standards meeting (virtual)
  • [H1] GotW #100: Preconditions, Part 1 (Difficulty: 8/10)
  • [H1] Notes
  • [H1] GotW #99 Solution: Postconditions (Difficulty: 7/10)
  • [H1] Notes
  • [H1] Acknowledgments
  • [H1] GotW #99: Postconditions (Difficulty: 7/10)
  • [H1] Notes
  • [H1] GotW #98 Solution: Assertion levels (Difficulty: 5/10)
  • [H1] Notes
  • [H1] Acknowledgments
  • [H1] GotW #98: Assertion levels (Difficulty: 5/10)
  • [H1] GotW #97 Solution: Assertions (Difficulty: 4/10)
  • [H1] Notes
  • [H1] Acknowledgments
  • [H1] Follow by email
  • [H1] Tweets
  • [H1] Archives
  • [H2] 1. Consider these functions, expanded from an article by Andrzej Krzemieński: [1] … How many ways could a caller of each function get the arguments wrong, but that would silently compile without error? Name as many different ways as you can.
  • [H2] (a) is_in_values (int val, int min, int max)
  • [H2] (b) is_in_container (int val, int idx_min, int idx_max)
  • [H2] (c) is_in_range (T val, Iter first, Iter last)
  • [H2] 2. Show how can you improve the function declarations in Question 1 by …
  • [H2] (a) just grouping parameters, using a struct with public variables
  • [H2] (b) just using an encapsulated class, using a class with private variables (an abstraction with its own invariant)
  • [H2] (c) just using post-C++20 contract preconditions (not yet valid C++, but something like the syntax in [2])
  • [H2] 3. Consider these three examples, where each shows expressing a boolean condition either as a function precondition or as an encapsulated invariant inside a new type… In each of these cases, which way is better? Explain your answer.
  • [H2] JG Question
  • [H2] Guru Questions
  • [H2] 1. What is a precondition, and how is it related to an assertion?
  • [H2] Explain your answer using the following example, which uses a variation of a proposed post-C++20 syntax for preconditions. [1]
  • [H2] 2. Rewrite the example in Question 1 to show how to approximate the same effect using assertions in today’s C++.
  • [H2] Are there any drawbacks to your solution compared to having language support for preconditions?
  • [H2] 3. If a precondition fails, what does that indicate, and who is responsible for fixing the failure?
  • [H2] Explain how this makes a precondition fundamentally different from every other kind of contract.
  • [H2] 4. Consider this example, expanded from a suggestion by Gábor Horváth:
  • [H2] a) What kinds of preconditions must a caller of calc satisfy that can’t generally be written as testable boolean expressions?
  • [H2] b) What kinds of boolean-testable preconditions are implicit within the explicitly written declaration of calc?
  • [H2] c) Should any of these boolean-testable implicit preconditions also be written explicitly here in this precondition code? Explain.
  • [H2] Our virtual 2021
  • [H2] Today: A few more C++23 features adopted
  • [H2] What’s next
  • [H2] JG Question
  • [H2] Guru Questions
  • [H2] 1. What is a postcondition, and how is it related to an assertion?
  • [H2] Explain your answer using the following example, which uses a variation of a proposed post-C++20 syntax for postconditions. [1]
  • [H2] 2. Rewrite the example in Question 1 to show how to approximate the same effect using assertions in today’s C++. Are there any drawbacks to your solution compared to having language support for postconditions?
  • [H2] 3. Should a postcondition be expected to be true if the function throws an exception back to the caller?
  • [H2] Justify your answer with example(s).
  • [H2] 4. Should postconditions be able to refer to both the initial (on entry) and final (on exit) value of a parameter, if those could be different?
  • [H2] If so, give an example.
  • [H2] JG Question
  • [H2] Guru Questions
  • [H2] 1. Give one example each of an asserted condition whose run-time evaluation is:
  • [H2] a) super cheap
  • [H2] b) arbitrarily expensive
  • [H2] 2. What does the answer to Question 1 imply for assertion checking? Explain.
  • [H2] 3. Give an example of an asserted condition that is in general impossible to evaluate, and so cannot be checked.
  • [H2] Can these kinds of conditions still be useful?
  • [H2] 4. How do these questions help answer:
  • [H2] a) what “levels” of asserted conditions we should be able to express?
  • [H2] b) why the assertions we can “practically” write are a subset of all the ones we might “ideally” like to write?
  • [H2] JG Questions
  • [H2] Guru Questions
  • [H2] 1. What is an assertion, and what is it used for?
  • [H2] 2. C++20 supports two main assertion facilities… For each one, briefly summarize how it works, when it is evaluated, and whether it is possible for the programmer to specify a message to be displayed if the assertion fails.
  • [H2] 3. If an assertion fails, what does that indicate, and who is responsible for fixing the failure?
  • [H2] 4. Are assertions primarily about checking at compile time, at test time, or at run time? Explain.
  • [H2] Posts navigation
  • [H2]
  • [H2]
  • [H3] (a) A vector that is sorted
  • [H3] // (b) A vector that is not empty
  • [H3] (c) A pointer that is not null
  • [H3] (1) Type invariants
  • [H3] (2) Subexpression preconditions
  • [H3] (3) Subexpressions that make the whole precondition false
  • [H3] Putting it all together
  • [H3] Option 1 (basic): Named return object + an exit guard
  • [H3] Option 2 (better): “return post” postcondition pattern
  • [H3] Option 3 (mo’betta): Wrapping up option 2… with a macro
  • [H3] assert
  • [H3] static_assert
  • [H3] Bonus: [[assert: ?
Images We found 5 images on this web page.

5 alt attributes are empty or missing. Add alternative text so that search engines can better understand the content of your images.
Text/HTML Ratio Ratio : 16%

Good, this page's ratio of text to HTML code is higher than 15, but lower than 25 percent.
Flash Perfect, no Flash content has been detected on this page.
Iframe Great, there are no Iframes detected on this page.

URL Rewrite Good. Your links looks friendly!
Underscores in the URLs Perfect! No underscores detected in your URLs.
In-page links We found a total of 197 links including 2 link(s) to files



Anchor Type Juice
Skip to content Internal Passing Juice
Sutter’s Mill Internal Passing Juice
GotW #101 Solution: Preconditions, Part 2 (Difficulty: 7/10) Internal Passing Juice
GotW #98 Internal Passing Juice
“Contracts, preconditions and invariants” External Passing Juice
“P0542: Support for contract based programming in C++” External Passing Juice
P0515 External Passing Juice
P0893 External Passing Juice
“I.12 Declare a pointer that must not be null as not_null” External Passing Juice
Herb Sutter Internal Passing Juice
C++ Internal Passing Juice
GotW Internal Passing Juice
Uncategorized Internal Passing Juice
9 Comments Internal Passing Juice
GotW #101: Preconditions, Part 2 (Difficulty: 7/10) Internal Passing Juice
GotW #100 Solution: Preconditions, Part 1 (Difficulty: 8/10) Internal Passing Juice
#97 Internal Passing Juice
#99 Internal Passing Juice
Trip report: Winter 2021 ISO C++ standards meeting (virtual) Internal Passing Juice
priorities External Passing Juice
schedule External Passing Juice
P1102 External Passing Juice
P2259 External Passing Juice
P2017 External Passing Juice
P2212 External Passing Juice
P2162 External Passing Juice
P1682 External Passing Juice
P0533 External Passing Juice
Upcoming Meetings page External Passing Juice
2 Comments Internal Passing Juice
GotW #100: Preconditions, Part 1 (Difficulty: 8/10) Internal Passing Juice
4 Comments Internal Passing Juice
“P0052: Generic Scope Guard and RAII Wrapper for the Standard Library” External Passing Juice
“Change the Way You Write Exception-Safe Code – Forever” External Passing Juice
compose External Passing Juice
11 Comments Internal Passing Juice
GotW #99: Postconditions (Difficulty: 7/10) Internal Passing Juice
5 Comments Internal Passing Juice
assumes what we want to prove External Passing Juice
4 Comments Internal Passing Juice
GotW #98: Assertion levels (Difficulty: 5/10) Internal Passing Juice
11 Comments Internal Passing Juice
shift-left External Passing Juice
shift-right External Passing Juice
belt-and-suspenders External Passing Juice
“Planning and Coding of problems for an Electronic Computing Instrument” External Passing Juice
“Checking a Large Routine” External Passing Juice
“P0542: Support for contract based programming in C++” External Passing Juice
spdlog: Fast C++ logging library External Passing Juice
Event Tracing for Windows (ETW) External Passing Juice
“P2064: Assumptions” External Passing Juice
18 Comments Internal Passing Juice
Older posts Internal Passing Juice
Tweets External Passing Juice
isocpp External Passing Juice
bit.ly/3rSiLGF External Passing Juice
#cpp External Passing Juice
2 weeks ago External Passing Juice
March 2021 Internal Passing Juice
February 2021 Internal Passing Juice
January 2021 Internal Passing Juice
December 2020 Internal Passing Juice
November 2020 Internal Passing Juice
October 2020 Internal Passing Juice
September 2020 Internal Passing Juice
July 2020 Internal Passing Juice
June 2020 Internal Passing Juice
May 2020 Internal Passing Juice
April 2020 Internal Passing Juice
March 2020 Internal Passing Juice
February 2020 Internal Passing Juice
November 2019 Internal Passing Juice
October 2019 Internal Passing Juice
September 2019 Internal Passing Juice
July 2019 Internal Passing Juice
June 2019 Internal Passing Juice
May 2019 Internal Passing Juice
April 2019 Internal Passing Juice
February 2019 Internal Passing Juice
November 2018 Internal Passing Juice
September 2018 Internal Passing Juice
July 2018 Internal Passing Juice
April 2018 Internal Passing Juice
November 2017 Internal Passing Juice
October 2017 Internal Passing Juice
September 2017 Internal Passing Juice
July 2017 Internal Passing Juice
June 2017 Internal Passing Juice
March 2017 Internal Passing Juice
February 2017 Internal Passing Juice
November 2016 Internal Passing Juice
September 2016 Internal Passing Juice
June 2016 Internal Passing Juice
March 2016 Internal Passing Juice
October 2015 Internal Passing Juice
September 2015 Internal Passing Juice
July 2015 Internal Passing Juice
June 2015 Internal Passing Juice
May 2015 Internal Passing Juice
April 2015 Internal Passing Juice
January 2015 Internal Passing Juice
December 2014 Internal Passing Juice
November 2014 Internal Passing Juice
October 2014 Internal Passing Juice
September 2014 Internal Passing Juice
August 2014 Internal Passing Juice
July 2014 Internal Passing Juice
May 2014 Internal Passing Juice
April 2014 Internal Passing Juice
March 2014 Internal Passing Juice
February 2014 Internal Passing Juice
January 2014 Internal Passing Juice
December 2013 Internal Passing Juice
November 2013 Internal Passing Juice
October 2013 Internal Passing Juice
September 2013 Internal Passing Juice
August 2013 Internal Passing Juice
July 2013 Internal Passing Juice
June 2013 Internal Passing Juice
May 2013 Internal Passing Juice
April 2013 Internal Passing Juice
March 2013 Internal Passing Juice
February 2013 Internal Passing Juice
January 2013 Internal Passing Juice
December 2012 Internal Passing Juice
November 2012 Internal Passing Juice
October 2012 Internal Passing Juice
September 2012 Internal Passing Juice
August 2012 Internal Passing Juice
July 2012 Internal Passing Juice
June 2012 Internal Passing Juice
May 2012 Internal Passing Juice
April 2012 Internal Passing Juice
March 2012 Internal Passing Juice
February 2012 Internal Passing Juice
January 2012 Internal Passing Juice
December 2011 Internal Passing Juice
November 2011 Internal Passing Juice
October 2011 Internal Passing Juice
September 2011 Internal Passing Juice
August 2011 Internal Passing Juice
July 2011 Internal Passing Juice
June 2011 Internal Passing Juice
May 2011 Internal Passing Juice
April 2011 Internal Passing Juice
March 2011 Internal Passing Juice
January 2011 Internal Passing Juice
December 2010 Internal Passing Juice
October 2010 Internal Passing Juice
September 2010 Internal Passing Juice
August 2010 Internal Passing Juice
July 2010 Internal Passing Juice
June 2010 Internal Passing Juice
May 2010 Internal Passing Juice
April 2010 Internal Passing Juice
March 2010 Internal Passing Juice
February 2010 Internal Passing Juice
January 2010 Internal Passing Juice
December 2009 Internal Passing Juice
November 2009 Internal Passing Juice
October 2009 Internal Passing Juice
September 2009 Internal Passing Juice
August 2009 Internal Passing Juice
July 2009 Internal Passing Juice
June 2009 Internal Passing Juice
May 2009 Internal Passing Juice
April 2009 Internal Passing Juice
March 2009 Internal Passing Juice
February 2009 Internal Passing Juice
January 2009 Internal Passing Juice
December 2008 Internal Passing Juice
November 2008 Internal Passing Juice
October 2008 Internal Passing Juice
September 2008 Internal Passing Juice
August 2008 Internal Passing Juice
July 2008 Internal Passing Juice
June 2008 Internal Passing Juice
May 2008 Internal Passing Juice
April 2008 Internal Passing Juice
March 2008 Internal Passing Juice
February 2008 Internal Passing Juice
January 2008 Internal Passing Juice
December 2007 Internal Passing Juice
November 2007 Internal Passing Juice
October 2007 Internal Passing Juice
September 2007 Internal Passing Juice
August 2007 Internal Passing Juice
July 2007 Internal Passing Juice
June 2007 Internal Passing Juice
May 2007 Internal Passing Juice
April 2007 Internal Passing Juice
March 2007 Internal Passing Juice
February 2007 Internal Passing Juice
January 2007 Internal Passing Juice
December 2006 Internal Passing Juice
Blog at WordPress.com. External noFollow
Cancel Internal Passing Juice

SEO Keywords

Keywords Cloud because int abstraction all preconditions auto precondition wrong using type
Keywords Consistency
Keyword Content Title Keywords Description Headings
int 32
wrong 29
type 29
using 24
preconditions 24

Usability

Url Domain : herbsutter.com
Length : 14
Favicon Great, your website has a favicon.
Printability Great. We have found a Print-Friendly CSS.
Language Good. Your declared language is en.
Dublin Core This page does not take advantage of Dublin Core.

Document

Doctype HTML 5
Encoding Perfect. Your declared charset is UTF-8.
W3C Validity Errors : 3
Warnings : 48
Email Privacy Great no email address has been found in plain text!
Deprecated HTML Great! We haven't found deprecated HTML tags in your HTML.
Speed Tips
Excellent, your website doesn't use nested tables.
Too bad, your website is using inline styles.
Great, your website has few CSS files.
Too bad, your website has too many JS files (more than 6).
Too bad, your website does not take advantage of gzip.

Mobile

Mobile Optimization
Apple Icon
Meta Viewport Tag
Flash content

Optimization

XML Sitemap Great, your website has an XML sitemap.

http://herbsutter.com/sitemap.xml
https://herbsutter.com/sitemap.xml
https://herbsutter.com/news-sitemap.xml
Robots.txt http://herbsutter.com/robots.txt

Great, your website has a robots.txt file.
Analytics Missing

We didn't detect an analytics tool installed on this website.

Web analytics let you measure visitor activity on your website. You should have at least one analytics tool installed, but It can also be good to install a second in order to cross-check the data.

PageSpeed Insights


Device
Categories


Visi mobilieji | Darbo birža | Receptai | Vyriski ir moteriski batai | ETS 2 mods | Kur apsistoti Šiauliuose? | IT naujienos |