惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
雷峰网
雷峰网
Recent Announcements
Recent Announcements
月光博客
月光博客
G
Google Developers Blog
腾讯CDC
S
Secure Thoughts
大猫的无限游戏
大猫的无限游戏
T
Tenable Blog
云风的 BLOG
云风的 BLOG
W
WeLiveSecurity
博客园 - 【当耐特】
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
博客园 - 聂微东
The Cloudflare Blog
阮一峰的网络日志
阮一峰的网络日志
人人都是产品经理
人人都是产品经理
P
Privacy International News Feed
MyScale Blog
MyScale Blog
K
Kaspersky official blog
T
The Blog of Author Tim Ferriss
Attack and Defense Labs
Attack and Defense Labs
Spread Privacy
Spread Privacy
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
aimingoo的专栏
aimingoo的专栏
I
Intezer
Vercel News
Vercel News
小众软件
小众软件
Simon Willison's Weblog
Simon Willison's Weblog
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
N
Netflix TechBlog - Medium
P
Proofpoint News Feed
Latest news
Latest news
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
T
Tor Project blog
S
Security Affairs
P
Proofpoint News Feed
博客园 - 三生石上(FineUI控件)
博客园 - Franky
C
Cyber Attacks, Cyber Crime and Cyber Security
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
美团技术团队
Recent Commits to openclaw:main
Recent Commits to openclaw:main
S
Security @ Cisco Blogs
L
LINUX DO - 热门话题
Know Your Adversary
Know Your Adversary
Project Zero
Project Zero
D
Docker
L
Lohrmann on Cybersecurity
F
Full Disclosure

Henri Sivonen’s pages

Parin vuoden tutkimattomuus crates.io: Rust Package Registry Asiakirjatonta toimintaa It’s not wrong that "🤦🏼‍♂️".length == 7 Koulutartuntojen tilastointimenettely Perusteasiakirjoja hallussapitämättä ikärajoitettu Asiantuntijat ja nukkuva vallan vahtikoira Koronapassilausunto Suppealla tietopohjalla ohimeneväksi väitetty Text Encoding Menu in 2021 The Text Encoding Submenu Is Gone An HTML5 Conformance Checker Not Part of the Technology Stack Browser Technology Stack Bogo-XML Declaration Returns to Gecko A Look at Encoding Detection and Encoding Menu Telemetry from Firefox 86 Why Supporting Unlabeled UTF-8 in HTML on the Web Would Be Problematic Rust Target Names Aren’t Passed to LLVM Toimintamalli Activating Browser Modes with Doctype Johtopäätöksiä mallin rakenteesta Tehtävänmäärittelyä kirjoittamatta ja kuolemia laskematta laumasuojamallinnettu Character Encoding Menu in 2014 Erillissuosituksen tarpeettomuudesta yleissuosituksen poikkeukseksi? STM:n maskiaikajana Rust 2021 Oma-aloitteisesti mallinnettu Kokopinovaatimuksin kilpailutettu chardetng: A More Compact Character Encoding Detector for the Legacy Web Varauksia paisutellen tiedotettu Perusteasiakirjoitta tiedotettu Always Use UTF-8 & Always Label Your HTML Saying So IME Smoke Testing The Validator.nu HTML Parser About the Hiragino Fonts with CSS It’s Time to Stop Adding New Features for Non-Unicode Execution Encodings in C++ Rust 2020 The Last of the Parsing Quirks About about:blank Rust 2019 a Web-Compatible Character Encoding Library in Rust How I Wrote a Modern C++ Library in Rust Using cargo-fuzz to Transfer Code Review of Simple Safe Code to Complex Code that Uses unsafe A Rust Crate that Also Quacks Like a Modern C++ Library #Rust2018 No Namespaces in JSON, Please A Lecture about HTML5 Julkisesti luotettu varmenne ikidomainille TLS:ää (SSL:ää) varten -webkit-HTML5 Lists in Attribute Values The Sad Story of PNG Gamma “Correction” If You Want Software Freedom on Phones, You Should Work on Firefox OS, Custom Hardware and Web App Self-Hostablility HTML5 Parser Improvements ARIA in HTML5 Integration: Document Conformance (Draft, Take Two) Schema.org and Pre-Existing Communities Lowering memory requirements by replacing Schematron HTML5 Parsing in Gecko: A Build Introducing SAX Tree NVDL Support in Validator.nu HOWTO Avoid Being Called a Bozo When Producing XML An Unofficial Q&A about the Discontinuation of the XHTML2 WG Thoughts on HTML5 Becoming a W3C Recommendation Four Finnish Banks Training Users to Give Banking Credentials to Another Site Unimpressed by Leopard Sergeant Semantics The Content Sink Inheritance Diagram – 2006-06-30 What is EME? About Points and Pixels as Units The Performance Cost of the HTML Tree Builder Social Media Impression Management The spacer Element Is Gone Openmind 2006 Performance Mistake XHTML and Mobile Devices WebM-Enabled Browser Usage Share Exceeds H.264-Enabled Browser Usage Share on Desktop (in StatCounter Numbers) HTML5 Parser-Based View Source Syntax Highlighting Vendor Prefixes Are Hurting the Web Accept-Charset Is No More Dualroids Writing Structural Stylable Document in Mozilla Editor ISO-8859-15 on haitallinen Hourglass The Scientific Method According to Hixie Maemo Source Code Karpelan lukkovertaus ontuu Digitaalisesta arkistoinnista ARIA in HTML5 Integration: Document Conformance (Draft) XHTML—What’s the Point? (Draft, incomplete) Mac OS X Browser Comparison HOWTO Spot a Wannabe Web Standards Advocate An Idea About Intermediate Language Trees and Web UI Generation Thoughts on Using SSL/TLS Certificates as the Solution to Phishing Bureaucracy Meets the Web Europe Day HOWTO Establish a 100% Literacy Rate What to Do with All These Photos? Charmod Norm Checking Validator Web Service Interface Ideas DTDs Don’t Work on the Web EFFI’s Day in Court
Week 22
Henri Sivonen · 2011-12-22 · via Henri Sivonen’s pages

The weekly report for week 22.

Monday 2006-05-29

Tuesday 2006-05-30

  • Learned that the zoom level affects the computed style. I had thought it affected the metrics gfx reports to layout.

  • Moved to development in the chrome rather than in the test harness. Longer build–run–debug–code cycle than with the test harness.

  • Leaned how to do it faster.

  • Found a bug in my previous optimizations.

  • Unoptimized.

  • Reoptimized carefully. Saw the same bug.

  • Concluded that the objects returned by getComputedStyle are not valid after subsequent calls. Removed part of the optimization.

  • Noticed that even when running from chrome, the script is slower than when running in the document. Tried different tricks to no avail.

  • Learned how to read prefs.

  • Made the zoom reset to 100% if using the smart zoom when the view is already zoomed to the smart zoom level.

  • Uploaded a preliminary test patch to the bug report.

  • Started reading DOM/XPCOM docs.

Wednesday 2006-05-31

  • Read newsgroup archives in the hope of seeing something relevant to the remaining performance problems.

  • Random thought of the day while hunting for implementations of nsITextContent: Javadoc rocks.

  • Posted a the performance question to mozilla.dev.tech.dom.

  • Read docs. And more docs.

  • Asked around on IRC. Learned that nsITextContent is not scriptable.

  • Started to wonder if implementation in C++ would have been easier than figuring out how to squeeze performance out of JS.

  • Diminishing returns are kicking in big time, but I don’t want the feature be yanked because of performance concerns.

  • Packaged the problem as test cases and filed a bug as requested by Boris Zbarsky.

Thursday 2006-06-01

  • Reading code on LXR again.

  • Got rid of the precise regexp and started using isIgnorableWhitespace from inIDOMUtils. Not touching text node content strings in JS at all. Big performance win!

  • Decided to reimplement in C++ to avoid the performance problems of JavaScript. Should have done this earlier.

  • Started the C++ reimplementation. I figured I might as well learn to get over the first XPCOM hurdles with this bug instead of the next one on my list.

  • Asked around on IRC for array types. Gecko has lots of those!

  • Spend a lot of time trying to understand inIFrame in order to read style data directly from the private interface without going through the string-based getComputedStyle.

  • Posted a question to mozilla.dev.tech.layout.

Friday 2006-06-02

  • Rewrote the tree walk in C++.

  • Learned about XPCOM identity guarantees or lack thereof.

  • Learned to debug Firefox in XCode.

  • Found out the bug was hidden due to partial builds! (See Tuesday above.)

  • Other embarrassing newbie mistakes.

Saturday 2006-06-03

  • Compensated for time lost on Monday.

  • Wrestled with build misconfiguration.

  • Corresponded in the newsgroups.

Sunday 2006-06-04

  • Corresponded in the newsgroups.

In summary, the basic algorithm made sense from the start, was rather straight-forward and gives the desired results. However, in JavaScript it wasn’t fast enough. My expectations of JavaScript performance were totally wrong. Basically the whole week was lost in first trying to make the JavaScript version run faster—without success—and then in learning how to do it right in C++. If I had more experience in this, I would have known to use C++ to begin with and wouldn’t have spent so much time on JavaScript performance. Quite embarrassing really.