Karl Dubost: How To Contact Web Sites For Web Compatibility Issues |
A lot of the content in this document has already been written in How to do sites outreach?. Let's go over it again. There is no way to ensure a methodology which is 100% effective. A lot come from practices, hunch and patience.
When it's time to track down someone to help get the fix implemented, it is useful to keep in mind a few tips on doing outreach:
There's not one way of making Web sites. Some Web sites are made in-house by a team of Developers hired by the company itself. Sometimes there are projects which are created by multiple Web agencies (marketing and development).
Scripts, images, design may come from different sources with their own source of bugs. A good analysis will provide a way to understand who you might want to reach out first. For example, a company Web site will use WordPress for the backend and a template from a third party company, the mistake is the template code. You will need then to get the template fixed and to have the company to update to the new version.
Some sites have no budget anymore to be updated. Some sites have very precise release cycles based on a yearly schedule, sometimes more. Understanding the structure of the web site may help in some circumstances.
If the Twitter account seems to be run by a person, it can be a good start for initial contact. A twitter account with a real person behind usually answers the questions of people, check the Tweet & Replies section. Ask who you should contact with the fix.
If the Twitter account is just broadcasting information, move on. You will lose time. Try to reach out through another mean.
This is a simple one, but there's no guarantee that your request will be addressed. Most of the time the responses are automatic but it's better than nothing. If in return you get an ID, reference number and/or a URI, put it in the issue comments. Sometimes bug reports are closed without notice. It really depends on who is behind the triage of the bug reporting system.
Going through digital marketing Web site and magazine might help in finding who (person) or what (Web marketing agency) created the Web site. While the person in charge of changing the site is at the company, the people who will be doing the work might be from an external agency. Finding out the agency might help you channel the information upstream to the company, if there are still in good terms.
It's wonderful when you can find the right person right away. But more often it's not the case. So the goal here is about finding someone who will be kind enough to lead you to the right person. Human networks are often more effective than the company process for dealing with customer issues.
Some professions are more public than others. Some developers exposed themselves more than others. For example, developers such as Front-End developers, Web Designers, are easier to contact than backend or DB developers.
This doesn't necessary work with all countries, but worth trying. For example, in Japan and China it's a lot more difficult to find a contact through linkedin. You can start for example in your favorite search engine with: 'Web developer' $COMPANY_NAME site:linkedin.com
. This will list names of people who are likely to work there, some of them in their profile will have contact information and often Twitter accounts, personal web sites or emails. Their linkedin username might be very similar to their username on other social networks.
Once you reached a profile page, in the right column, you may found other people working at the same company. You will also notice that often people who puts their photos on the linkedin profile are often more reachable.
'Web Developer'
might not always be the right string to search. Depending on the countries, people will label themselves differently such as 'Web Engineer'
or 'Software Developer'
.
Some people put their company affiliation in Twitter. Tweet or DM them if possible and ask who to contact. Always check if the Twitter account is active. Some people haven't used their account for ages. If so, move on.
When you can't find the information about a developer, you might want to try to search something such as $COMPANY_NAME site:slideshare.net
or any appropriate keywords that will make you closer to a contact. Some companies have their developers speaking at conferences about issues with performances, etc. Be careful of talks related to sales or marketing. In the slides, there is often the contact information of the developer.
Search by individual person or by company names. Many developers have either company projects online and/or their personal projects. As usual be careful to not abuse or harass people with your requests.
When you find a company repository, check the most recent project, and you might find who are the recent committers on the code. These are the ones who are the most recently active and likely to respond to your request. The backend of Webcompat.com is provided by GitHub so you may want to comment with @username
syntax to reach out a specific developer.
Sometimes when you can't reach a web developer, you may try to reach web designers who have also their own type of social networks such as dribbble.com. Usually they have contacts with web developers and may be able to give an introduction. In some web agencies, the web designer will be a good initial contact. Again, be tactful and don't make the life of the web designer harder in his/her own company.
This may work time to time. When you know the person is working in a specific company (You have last and first name), but you have been unable to find any contacts at all through twitter and so on. You might want to find out through search engines and/or people working at this company how the email addresses have been created. You may find that the pattern is firstname.lastname@company.example.org
or lastnameF@
, etc. You can try to send an email.
The person will be probably surprised on how did you get the email address. So there is a risk to anger the person. Be gentle and just explain how you found the person.
All of these techniques are not 100% perfect. They might fail more often than you wish. Sometimes you need to try multiple times and develop new techniques for finding the right person.
If you have any other tips, recommendations on how to contact the right person, please come on IRC and tell us on freenode #webcompat
and/or irc.mozilla.org #webcompat
.
Otsukare!
|
Joel Maher: intermittent oranges- missing a real definition |
There are all kinds of great ideas folks have for fixing intermittent issues. In fact each idea in and of itself is a worthwhile endeavor. I have spent some time over the last couple of months fixing them, filing bugs on them, and really discussing them. One question that remains- what is the definition of an intermittent.
I don’t plan to lay out a definition, instead I plan to ask some questions and lay out some parameters. According to orange factor, there are 4640 failures in the last week (May 3 -> May 10) all within 514 unique bugs. These are all failures that the sheriffs have done some kind of manual work on to star on treeherder. I am not sure anybody can find a way to paint a pretty picture to make it appear we don’t have intermittent failures.
Looking at a few bugs, there are many reasons for intermittent failures:
There are a lot of reasons, many of these have nothing to do with poor test cases or bad code in Firefox. But many of these are showing up many times a day and as a developer who wants to fix a bad test, many are not really actionable. Do we need to have some part of a definition to include something that is actionable?
Looking at the history of ‘intermittent-failure’ bugs in Bugzilla, many occur once and never occur again. In fact this is the case for over half of the bugs filed (we file upwards of 100 new bugs/week). While there are probably reasons for a given test case to fail, if it failed in August 2014 and has never failed again, is that test case intermittent? As a developer could you really do anything about this given the fact that reproducing it is virtually impossible?
This is where I start to realize we need to find a way to identify real intermittent bugs/tests and not clutter the statistics with tests which are virtually impossible to reproduce. Thinking back to what is actionable- I have found that while filing bugs for Talos regressions the closer the bug is filed to the original patch landing, the better the chance it will get fixed. Adding to that point, we only keep 30 days of builds/test packages around for our CI automation. I really think a definition of an intermittent needs to have some kind of concept of time. Should we ignore intermittent failures which occur only once in 90 days? Maybe ignore ones that don’t reproduce after 1000 iterations? Some could argue that we look in a smaller or larger window of time/iterations.
Lastly, when looking into specific bugs, I find many times they are already fixed. Many of the intermittent failures are actually fixed! Do we track how many get fixed? How many have patches and have debugging already taking place? For example in the last 28 days, we have filed 417 intermittents, of which 55 are already resolved and of the remaining 362 only 25 have occurred >=20 times. Of these 25 bugs, 4 already have patches. It appears a lot of work is done to fix intermittent failures which are actionable. Are the ones which are not being fixed not actionable? Are they in a component where all the developers are busy and heads down?
In a perfect world a failure would never occur, all tests would be green, and all users would use Firefox. In reality we have to deal with thousands of failures every week, most of which never happen again. This quarter I would like to see many folks get involved in discussions and determine:
Thanks for reading, I look forward to hearing from many who have ideas on this subject. Stay tuned for an upcoming blog post about re-trigging intermittent failures to find the root cause.
https://elvis314.wordpress.com/2015/05/10/intermittent-oranges-missing-a-real-definition/
|
Mike Conley: Things I’ve Learned This Week (May 4 – May 8, 2015) |
I actually discovered this during my most recent Joy of Coding episode – there is a static utility method to convert between native Cocoa NSStrings and Gecko nsAStrings – nsCocoaUtils::GetStringForNSString. Very handy, and works exactly as advertised.
I actually have colleague Garvan Keeley to thank for this one, and technically I learned this on April 24th. It was only this week that I remembered I had learned it!
When I’m debugging Firefox on OS X, I tend to use XCode, and I usually attach to Firefox after it has started running. I have to navigate some menus in order to bring up the dialog to attach to a process by pid, and I was getting tired of doing that over and over again.
So, as usual, I tweeted my frustration:
Dear lazyweb – is there an XCode keyboard shortcut for “Attach to Process” > “By Process Identifier (PID) or Name”? Mousing it blows.
— Mike Conley (@mike_conley) April 24, 2015
AND LO, THE INTERNET SPOKE BACK:
@mike_conley Yes. Shift-cmd-/, type ‘attach’, down arrow, enter, type proc name. next time, ‘attach’ and proc name is remembered. — Garvan Keeley (@garvankeeley) April 24, 2015
It seems small, but the savings in time for something that I do so frequently quickly adds up. And it always feels good to go faster!
http://mikeconley.ca/blog/2015/05/10/things-ive-learned-this-week-may-4-may-8-2015/
|
Andy McKay: Catching unused Python mocks |
It's easy for mocks to get out of hand and I've seen tests that have many mocks and patches. That in itself is bad enough, but I want to make sure that each mock is there for a reason. Over time tests get been copy and pasted or underlying code has changes - meaning mocks exist but are no longer used.
You can do this my asserting that each mock is called in the test. I've seen tests with that end up being 4 lines of mocks, a call, then 4 lines of checking the mocks are being called. Clearly, something was going wrong with those tests in the first place.
Anyway, I wanted to keep my tests clean in the future, so I added a registration step for mocks. Here's a simplified version:
def setUp(self):
self.mocks = {}
for name, obj in self.registered_mocks.items():
self.mocks[name] = OurMock(name, spec=obj)
self.addCleanup(self.cleanUpMocks)
OurMock
is a special mock that registers all the mocks registered against it. This pattern is pretty specific to the type of object I'm mocking in the tests:
class OurMock(mock.Mock):
def __getattr__(self, name):
if not name.startswith('_'):
setattr(self, '_registered', [])
self._registered.append(name)
return super(OurMock, self).__getattr__(name)
Then on cleanUp
:
def cleanUpMocks(self):
for k, v in self.mocks.items():
for call in getattr(v, '_registered', []):
if not getattr(v, call).called:
raise MockError('{0}.{1} registered but not called.'
.format(self.registered_mocks[k].__name__, call))
So a test now reads:
class Test(tests.TestCase):
self.registered_mocks = {'some': object}
def test_ok(self):
self.mocks['some'].create.return_value = something()
In this example: create is in the list of _registered on the Mock. When the test completes we check it got called. If you run that test without anything else, it will fail because the mock never actually got called.
If what is passed to the mock is important, all the usual methods like assertcalledwith can be called.
This has already caught a few errors in my tests.
|
Raniere Silva: MathML Accessibility |
Fr'ed'eric Wang wrote a nice post about MathML Accessibility that has a comparison table between NVDA, VoiceOver and Orca.
I promised to Fr'ed'eric to provide a sample of the support of Firefox OS’ screen reader and you can find it here (it is a ogg file with the video in theora and the audio in vorbis).
Note
For the test I used this app.
http://blog.rgaiacs.com/2015/05/10/mathml_accessibility.html
|
Cameron Kaiser: 31.7.0 available |
38 is on time for a beta release in a few weeks, though I need to do some more prophylactic changes to its changesets as well for the same reason. Once the 38 beta gets off the ground, then we will begin the final exodus from Google Code.
|
Andy McKay: Preventing typos with Python mock |
Python mock is pretty cool, but there's been a recurring problem for me with mock in that if you access any property on a Mock it returns a method which is truthy. This means simple typos can exist in your testing.
As an example, in this library, there's a method from_nonce
. If you just mock the object, then you can typo the method and it continues like normal:
>>> with mock.patch('braintree.CreditCard') as mocked:
... assert mocked.from_none
...
This has happened to me and I didn't notice when I'd typo'd a mock call, like is_called
. The test were wrong, but passed quite happily.
The better way is to pass the object to the Mock call as spec
. Then only methods on the object can be called, for example:
>>> with mock.patch('braintree.CreditCard', spec=braintree.CreditCard) as mocked:
... assert mocked.from_none
...
Traceback (most recent call last):
[..snip]
File "/Users/andy/.virtualenvs/solitude/lib/python2.7/site-packages/mock.py", line 658, in __getattr__
raise AttributeError("Mock object has no attribute %r" % name)
AttributeError: Mock object has no attribute 'from_none'
Much better.
Update: Paul Winkler points out that instead of passing spec=braintree.CreditCard
through you can pass autospec=True
. Good call.
|
Armen Zambrano: "Thank you!" |
http://feedproxy.google.com/~r/armenzg_mozilla/~3/nRyyL7HrCHs/thank-you.html
|
Armen Zambrano: mozci 0.5.0 released - Store password in keyring, prevent corrupted data, progress bar and many small improvements |
|
Mozilla Reps Community: Rep of the month – April 2015 |
Hello Fellow Reps,
Join me in welcoming our new Rep of the Month for April, Rajesh Ranjan from India.
Rajesh is a veteran localizer (leading the Mozilla Hindi Localization Team), with more than 10 years of experience working with different FOSS communities, he’s also in the field of journalism. He is the founder of the award-wining FUEL Project and has been managing the global community on Standard Linguistic Resources for more than six years now.
He led some of the most promising events in India like the recently concluded Mozilla Angika Meetup at Bhagalpur, Bihar.
Congratulations, Rajesh! Keep on rocking.
Don’t forget to congratulate him on Discourse!
https://blog.mozilla.org/mozillareps/2015/05/08/rep-of-the-month-april-2015/
|
The Mozilla Blog: Orange Launches First Firefox OS Smartphones in Africa |
We are happy to share that the first Firefox OS smartphones went on sale in Senegal and Madagascar this week. This follows an announcement from Mozilla and Orange at Mobile World Congress 2015 that Firefox OS smartphones would be available in markets across Africa and the Middle East later this year.
“We are pleased to partner with Orange to bring the mobile Web to users in a substantial number of new growth markets across Africa and the Middle East said Andreas Gal, CTO of Mozilla. “I’m also thrilled to see how the imminent arrival of Firefox OS has created excitement in the local Mozilla communities.”
Firefox OS is the first truly open mobile platform built entirely on Web technologies, bringing more choice and control to the mobile industry. Through these launches, Mozilla and Orange deliver on the promise of putting the mobile Web within reach of millions more people, not previously addressed by mobile offers. The Orange offer features the newest Firefox OS phone, the Orange Klif. This 3G Firefox OS smartphone is exclusive to Orange.
With these launches, the Firefox OS presence in Africa continues to grow and Orange will launch Firefox OS smartphones in more countries in the coming weeks.
Earlier this spring, Firefox OS phones launched in South Africa.
https://blog.mozilla.org/blog/2015/05/08/orange-launches-first-firefox-os-smartphones-in-africa/
|
Cameron Kaiser: The End of the Road for MacTubes Enabler, et al? |
Fixing MacTubes will not be trivial. Although I have the source code for it, which the author graciously provides, it relies on the older GData framework. Unfortunately, the API is so different that it will need to be completely rewritten and some features will probably not translate. If/until that happens, the MacTubes Enabler (MTE) will no longer be supported, though the QuickTime Enabler (QTE) will still work for those YouTube videos it generally supports (it relies on a different method which Google will probably break again next week), and of course WebM still functions on YouTube if your Power Mac is fast enough and the video is available in that format.
I suppose this is a good time to mention that I've been working on a sandbox solution for "things like this" as a secret project for some time on the side. I will only say that it exists as an internal proof of concept and actually works, but I'm not offering more information until I have something releaseworthy and that's not going to happen until 38 comes out. For the time being, we appreciated all the work that went into MacTubes and its related applications, and we will be overjoyed if they are fixed, but I'd rather just find a way around Google instead of playing their stupid little games with their moving-target APIs. That is where our effort will be focused post-38.
31.7.0 is scheduled for testing availability this weekend, just in time to upgrade your mother's computer, because she loves you and misses you and wants to know why you never call.
http://tenfourfox.blogspot.com/2015/05/the-end-of-road-for-mactubes-enabler-et.html
|
Air Mozilla: German speaking community bi-weekly meeting |
Zweiw"ochentliches Meeting der deutschsprachigen Community. ==== German speaking community bi-weekly meeting.
https://air.mozilla.org/german-speaking-community-bi-weekly-meeting-20150507/
|
Luke Wagner: asm.js optimizations previewing in Windows 10 / Edge |
There’s a great new post by the Chakra team on the implementation details of their previously-announced asm.js optimizations. These optimizations are reaching a preview state in Windows 10 / Edge which is an important milestone for asm.js and the compile-to-web story. Congratulations to the team!
https://blog.mozilla.org/luke/2015/05/07/asm-js-optimizations-previewing-in-windows-10-edge/
|
Air Mozilla: Community Education Call |
The Community Education Working Group exists to merge ideas, opportunities, efforts and impact across the entire project through Education & Training.
|
Gregory Szorc: Dropping Explicit Support for Mercurial 3.0 |
As of a few minutes ago, we explicitly dropped support for Mercurial 3.0 for all the Mercurial code in the version-control-tools repository. File issues in bug 1162304.
Code may still work against Mercurial 3.0. But it isn't supported and could break hard at any time.
Supporting multiple versions of any software carries with it some cost. The people writing tooling around Mercurial are busy. It is a waste of our time to bend over backwards to support old versions of software that all users should have upgraded from months ago. Still using older Mercurial versions means you aren't getting the best performance and may encounter bugs that have since been fixed.
See the Mozilla tailored Mercurial installation instructions for info on how to upgrade to the latest/greatest Mercurial version.
http://gregoryszorc.com/blog/2015/05/07/dropping-explicit-support-for-mercurial-3.0
|
Air Mozilla: Reps weekly - Election Special Edition |
Weekly Mozilla Reps call
|
Doug Belshaw: A conversation with Helen Beetham around digital literacies |
Helen Beetham got in touch recently asking for a conversation about some work she’s doing with Jisc. I jumped at the chance as she’s got an extremely sharp mind - particularly when it comes to digital literacies.
Although I wasn’t expecting her to do so, I was delighted when Helen informed me that she’d created a transcript of most of our discussion. She’s also been kind enough to give me the go-ahead to post it here.
In what follows I reference my work around the eight elements of digital literacies as expressed in my e-book. Helen began by outlining the particular project she’s working on, expressing how difficult it is to define ‘digital literacy’ as a fixed set of terms.
Doug: That’s something I realised from my work – people always want to problematise terms and pick apart what you mean by 'e-safety’ or the 'civic element’. That’s why I ended up with an approach that means 'come up with your own definitions’. Which means people either have the conversation for themselves and that is productive, or they decide not to have the conversation and just to accept that it isn’t tightly defined.
Helen: Well we came up with some icons for the Jisc seven elements. And I quite like that. I like the icon, with just a name, and then quite a bit of text – four lines or so – which gives you enough room for some of the complexity, some of the 'sometimes it’s this, sometimes it’s that’ you need. But people don’t have to accept those four lines, they can just use the icon and write their own.
Doug: I like the very generic view you have – it’s more of a direction of travel than a definition.
Helen: That’s possible. What’s interesting to me is what is coming over the horizon, what is changing that means people have to do something in this space. And one of the things that we’ve done with the seven elements, the one that was 'research and scholarship’ is now 'innovation’ to recognise that some people might be innovating the organisation itself, its processes, and not just in their own research. There are quite a number of innovation frameworks coming from industry now. Having been at Mozilla for a while, do they have a model of innovation?
Doug: I think a model is something you have when it’s not already embedded in everything you do. Or when someone senior writes a book about it. Innovation is just what you do at an organisation like Mozilla.
Some of this stuff people could mandate and have programmes around – i.e. “you are not competent in this, so we can send you on a programme”. But if it’s a mindset it’s very hard to do that - and innovation is a mindset not a skillset. I’m not saying everyone is going to use a competency map to mandate that people should do stuff, but there will be people who want to use it for HR purposes. So being clear about which are mindsets and which are skillsets is useful. I never considered that until this school in the US started using my eight elements and the divided it into four skillsets and four mindsets. It seemed really obvious. I like it as an approach because people get hung up on functional low level definitions and want to add a 'fluency’ thing on top.
Helen: Perhaps for me that bit would come down more to levels. For example within the development pyramid, 'functional skills’ at the bottom with 'practices’ and 'identities’ built on them. So maybe mindsets are further up towards the top of the pyramid. But you could apply that to all of the eight elements, I think.
Doug: The Jisc seven elements diagram looks almost like a flower to me - and then what you’re describing is maybe flowers within a flower – skillset, mindset and values.
Helen: I like that. Three petals. You could apply that across all of the elements yes but in a flatter way than the pyramid implies.
Doug: In most people’s mind digital and web literacies might be the same thing but actually with the web it’s a more concrete thing -s everything you access through a browser. Digital literacy is so difficult to get hold of. Web literacy is a very different approach because everything on the Web Literacy Map has to be something for which you can actually create an activity. For example around 'Accessibility’, the learning activity has to be ambiguous enough to be contextualised but specific enough to do the work. I’ve never been able to do that with digital literacies because the digital is so indefinite. The boundaries are so blurred that it’s very hard to say anything that someone else doesn’t come along and say the opposite.
Helen: [Laughs] Well you just have to say it louder! No, that’s making me think, because for me I think the digital is actually quite a concrete thing too. I mean, we need to keep track of the fact that these technologies are real, and they change things in specific ways. So maybe what we need to do is to focus on those changes and what they mean, that horizon scanning bit.
Doug: One of the things I’ve been thinking about since leaving Mozilla is that people didn’t all arrive at that organisation with these ninja skills – they were employed to do something, but they might never have seen GitHub before they got there. So how did that learning take place? The thing is that they had enough skills to be able to pick things up, to have that mindset of trial and error. And a lot of it was almost in a playful, jokey way. Peer play, hanging out and seeing how it works. The opposite of an institutional programme of identifying your weaknesses and giving remedial support.
Helen: Yes, but for me that remedial support has to be there to pick up people who would otherwise fall through and just not be able to participate. You need a certain level of confidence Beyond that, then I think you quickly move into what should be a peer space, with the time and resources for exploration. To move from knowing how to use the technology to using it to solve real problems.
Doug: I’m trying to steer the organisation I’m currently consulting with away from the po-faced and super-serious way of doing things. I have had a limited life of interacting with academics but the ones who have written loads of books and highly respected articles tend not to be po-faced; they tend to be playful. So you don’ t have to be super-serious to be a successful academic. We should allow that, we should insist that they are playful because that is what works.
I don’t know if you saw Bonnie Stewart’s thesis defence, but she did it via a Google Hangout. That was so good - it’s how academic work should be. She was explaining things in a serious way but she was humorous at the same time – it was the best academic thing I’ve seen in a long time. If you were to deconstruct all the skills and the mindset that went into her being able to do that…
Helen: Well, but I think a lot of those skills and mindsets would not be specifically digital. And you know that I have tried in my way to push digital literacy away from the very literal IT skills and towards that is needed to learn and work in a digital setting. But we can’t push so far that way that the digital ends up being everything. That way you lose the ability to say anything concrete about what the digital actually means. I am a materialist at the end of the day. I think if you change the means of knowledge production, you change the practices that are possible in specific ways. We can’t afford to stop talking about that, even though the tendency is for it constantly to be made invisible through familiarisation.
Doug: No, we can’t take our eye off the ball yet. The question comes up time and time again: “can’t we just call it 'literacy’?” – and you can see how everyone in the room is sympathetic to the argument. But it’s like teaching ICT across the curriculum: in the end if it’s everyone’s responsibility it just doesn’t happen.
Questions? Comments? I’m @dajbelshaw on Twitter or you can email me: mail@dougbelshaw.com
|
Ludovic Hirlimann: My geeking plans for this summer |
During July I’ll be visiting family in Mongolia but I’ve also a few things that are very geeky that I want to do.
The first thing I want to do is plug the Ripe Atlas probes I have. It’s litle devices that look like that :
They enable anybody with a ripe atlas or ripe account to make measurements for dns queries and others. This helps making a global better internet. I have three of these probes I’d like to install. It’s good because last time I checked Mongolia didn’t have any active probe. These probes will also help Internet become better in Mongolia. I’ll need to buy some network cables before leaving because finding these in mongolia is going to be challenging. More on atlas at https://atlas.ripe.net/.
The second thing I intend to do is map Mongolia a bit better on two projects the first is related to Mozilla and maps gps coordinateswith wifi access point. Only a little part of The capital Ulaanbaatar is covered as per https://location.services.mozilla.com/map#11/47.8740/106.9485 I want this to be way more because having an open data source for this is important in the future. As mapping is my new thing I’ll probably edit Openstreetmap in order to make the urban parts of mongolia that I’ll visit way more usable on all the services that use OSM as a source of truth. There is already a project to map the capital city at http://hotosm.org/projects/mongolia_mapping_ulaanbaatar but I believe osm can server more than just 50% of mongolia’s population.
I got inspired to write this post by mu son this morning, look what he is doing at 17 months :
|
Daniel Stenberg: HTTP/2 for TCP/IP Geeks |
I attended a TCP/IP Geeks Stockholm meetup yesterday and did a talk about HTTP/2. Below is the slide set, but as usual it might not be entirely self explanatory…
http://daniel.haxx.se/blog/2015/05/07/http2-for-tcpip-geeks/
|