Meta tags:
Headings (most frequently used words):
your, the, quality, software, navigation, post, is, customer, errors, metrics, interruptive, user, respect, assurance, engineers, are, blog, can, world, automated, but, release, cannot, developer, experiences, means, not, an, end, be, toward, of, taiwan, main, menu, celebrating, css, testing, versatile, yet, elusive, book, recommendation, contested, sense, democracy, under, threat, on, life, unending, journey, timdream, making, conclusion,
Text of the page (most frequently used words):
the (92), and (36), software (33), are (23), #that (22), #your (21), you (20), #quality (18), for (14), #with (14), not (12), #engineers (12), how (12), but (10), #people (10), can (10), #than (8), their (8), #there (7), end (7), test (7), when (7), know (7), this (7), through (7), css (7), them (6), like (6), because (6), taiwan (6), customers (6), should (6), they (6), engineering (6), more (6), posted (6), its (6), #blog (6), best (5), value (5), #book (5), web (5), some (5), customer (5), engineer (5), all (5), much (5), democracy (4), any (4), automated (4), way (4), hard (4), next (4), chien (4), life (4), make (4), problem (4), timothy (4), one (4), world (4), about (3), case (3), especially (3), lives (3), time (3), flow (3), javascript (3), release (3), may (3), developers (3), decision (3), making (3), project (3), testing (3), point (3), these (3), under (3), will (3), what (3), problems (3), even (3), needs (3), never (3), tool (3), after (3), title (3), developer (3), someone (3), economy (3), yet (3), users (3), post (3), don (3), cases (3), programming (3), other (3), would (3), thing (3), right (3), everything (3), joke (3), being (3), pay (3), own (3), sure (2), industry (2), role (2), comment (2), books (2), read (2), away (2), our (2), true (2), responsible (2), typed (2), parties (2), github (2), business (2), user (2), explored (2), human (2), economic (2), paying (2), leave (2), again (2), internet (2), issue (2), try (2), fail (2), shouldn (2), has (2), website (2), 2023 (2), indirectly (2), responsibility (2), paid (2), while (2), back (2), take (2), general (2), critical (2), errors (2), less (2), before (2), stop (2), things (2), also (2), could (2), well (2), little (2), see (2), into (2), whatever (2), manual (2), now (2), metrics (2), creates (2), boom (2), versions (2), which (2), makes (2), taiwanese (2), working (2), however (2), team (2), call (2), complex (2), threat (2), contested (2), computer (2), day (2), every (2), assume (2), effectively (2), timdream (2), code (2), front (2), those (2), lens (2), look (2), conclusion (2), compared (2), only (2), out (2), outputs (2), always (2), trying (2), too (2), often (2), create (2), regretfully (2), many (2), both (2), adoption (2), maintenance (2), cost (2), treating (2), does (2), prevent (2), older (2), posts (2), free (2), navigation (2), multiple (2), use (2), who (2), fast (2), lines (2), versatile (2), sense (2), assert (2), layout (2), toward (2), same (2), mistakes (2), journey (2), experience (2), few (2), measured (2), experiences (2), unending (2), goal (2), lot (2), better (2), doing (2), complexity, dark, simpler, reach, politics, superpower, appreciative, abstractions, quite, did, have, disappoint, top, states, enjoyed, conflict, demanding, been, seen, wants, agency, hover, cascade, bunch, internationally, love, reading, validate, diversity, mode, deserve, heard, lenses, dominant, frustrating, perspectives, contemporary, built, october, worthwhile, fails, tinker, efforts, content, intentional, main, beings, menu, felt, experienced, engineered, listeners, remind, term, creation, truth, meant, service, freemium, tier, ads, put, advertisers, subscriptions, nowadays, containing, rom, skip, random, copy, norm, get, please, despite, haters, march, 2024, approach, takes, celebrating, here, sloppy, home, rather, learned, expansion, decades, junior, changed, profoundly, elusive, perspective, dealers, twitter, drug, fresh, entertaining, new, nation, island, cause, regressions, careful, none, care, easy, enough, hiring, relationships, china, speak, told, manually, pundits, click, news, commentaries, pages, just, history, rich, understand, screenshot, diff, called, obviously, pixels, cracking, tools, either, spreadsheet, write, languages, declarative, half, century, maybe, popular, since, invention, recommendation, biased, december, extent, reflects, victim, success, adaptive, country, allowing, achieve, engages, download, ahead, still, exposed, authors, view, votes, cornering, ambiguities, strategic, including, underlining, employ, major, two, text, explained, crackled, avoid, known, was, studies, relationship, international, rendering, familiar, changes, already, dimensions, topic, precariously, angering, framework, across, importantly, most, young, face, above, addition, itself, transformed, today, maintaining, became, suite, thoroughly, bases, browsers, oses, tell, nachman, lev, days, different, election, presidential, real, happening, theme, pays, timespan, static, pipelines, integration, continuous, paradigm, git, goes, list, discussions, engaging, picture, big, lose, development, unidirectional, fewer, allows, secondary, important, elevate, agree, arguing, quickly, pretty, apart, fall, give, perfect, dynamically, bidirectional, ever, solutions, management, therefore, accountable, held, 1979, ibm, from, allegedly, quote, memorable, releases, judgment, eventually, observability, data, definitely, tests, indispensable, job, falls, managerial, forever, off, sign, subsuming, definition, based, dedicated, means, methodology, telling, feeling, opinions, figure, empowered, undoubtedly, silicons, ask, keyboard, sitting, monkeys, intelligent, typing, mortal, tin, guan, aspects, losing, societal, technical, curious, immensely, decade, stuff, related, worked, had, search, wordpress, powered, proudly, automattic, without, sight, showing, language, rockstar, gain, offset, immature, newer, loop, feedback, tightening, contribute, faster, argument, persistent, eliminate, typeerror, why, alone, else, though, judge, position, correct, interested, interact, excellence, driving, machinery, values, provides, others, cannot, arises, traditionally, methods, encounter, page, reload, article, troubleshooting, literally, period, edge, handle, crash, app, cache, bust, formal, cookies, leaving, waving, hand, solve, collectively, deployable, realistically, atomically, assets, deliver, ordering, gimmicky, occupies, clear, open, tolerated, distinguish, model, matter, argue, implies, strange, word, find, employees, serving, businesses, interfaces, external, between, need, browser, times, surely, gratitude, fact, acknowledges, referring, wealth, transfers, rest, interacts, activity, industries, highest, interruptive, predates, attitude, hear, shed, constantly, motivate, self, ensure, bit, generalists, err, entry, easiest, shoves, supporting, plain, stigma, attempt, themselves, managers, build, automation, taking, finds, soon, changing, notion, sadly, save, very, shipping, identifying, given, reinvent, identify, such, ultimately, during, repurposed, avionics, suggest, depend, bulbs, light, resetting, minutes, spend, toolbox, wouldn, assurance, facing, respect, inspector, office, banner, etc, questioning, found, pushing, disrespect, unhealthy, translates, reason, runs, issues, want,
Text of the page (random words):
blog timdream life n the unending journey toward making sense of the world blog timdream life n the unending journey toward making sense of the world main menu skip to content home blog twitter github post navigation older posts celebrating css testing the versatile yet elusive posted on march 15 2024 by timothy chien blog i love css despite i know there are a lot of haters out there the problem with css is not cascade the problem with css is it is hard to test we know how to test javascript create a bunch of test cases and assert the outputs but we know too little about how to validate css outputs the layout effectively it is so frustrating to the point that people end up demanding simpler abstractions on top of it to prevent mistakes you can read back layout in javascript and assert the dimensions but not everything is exposed like before or after and some states are hard to reach like hover or dark mode or you can create a screenshot tool to diff the pixels you would still face the issue above in addition to maintaining a complex test suite across multiple browsers and multiple oses on and different versions too including underlining text rendering changes regretfully none of these are easy enough than hiring qa engineers to manually click through the pages in a way css is a victim of its own success it is so versatile and adaptive allowing you to achieve a lot with a few lines of code and cause regressions in the same few lines if you are not careful maybe this is a problem of declarative languages in general i don t know how to write test cases for a spreadsheet either and there are no well known or built in tools for that after more than a half century since its invention cracking this problem may be the thing that could make css popular posted in programming leave a comment book recommendation taiwan a contested democracy under threat posted on december 28 2023 by timothy chien blog you should care about that island nation called taiwan not because i told you to and i am obviously biased but because how your democracy engages the country reflects its value and to some extent your value you should also try to understand it through its rich complex history and people not just commentaries in the news when pundits speak of u s china relationships taiwan a contested democracy under threat is the best book that i know of that will tell you all about it the book thoroughly explored how taiwan became what it is today how it transformed itself into a young democracy and most importantly a framework to look ahead i have been reading lev nachman s perspectives on contemporary taiwan for quite a while the book did not disappoint i enjoyed the fresh new take on a topic that i m already familiar with especially through the lens of international relationship studies it was also entertaining in a way i crackled when the authors explained how the two major parties employ their own versions of strategic ambiguities when cornering votes my take not the view of the book while precariously trying to avoid angering the bases it is happening in real time right now again with the presidential election less than 30 days away i am especially appreciative of the conclusion superpower politics and the conflict are the dominant lenses through which taiwan is seen internationally but taiwanese agency and the complexity and diversity of taiwanese wants and needs deserve to be heard please get a copy i am sure it is a worthwhile read posted in books leave a comment on software quality posted on october 8 2023 by timothy chien blog one perspective i ve profoundly changed compared to the junior engineer in me is how i see software quality with decades of economic expansion and internet boom our industry has learned a rather sloppy norm on quality in this post here are my takes on how you should approach software quality your user is your customer only software engineers and drug dealers call their customers users a random joke on internet the joke is meant to be a joke but there is some truth in it the term user fails to remind listeners that software like everything engineered in the world is experienced explored and felt by human beings a human being that makes intentional efforts to tinker with your creation some people find the word strange because customer implies these people are paying for the software i would argue that this is always true no matter your business model traditionally your customer pays for software download or the cd rom containing the software nowadays they may pay through subscriptions often people pay indirectly through advertisers that put ads on your ui even the free tier customers of your freemium service pay with their time surely there are times when you need to distinguish between end users and external developers when your software interfaces both or your business software is paid for by businesses serving their employees yet at the end of the day all parties are your customers software engineering is one of the highest paying industries like any other economic activity it interacts with the rest of the economy creates value and transfers wealth referring to your customers as customers acknowledges this fact with gratitude software errors are interruptive try to reload the page if you encounter an issue clear cookies and open the browser again literally every troubleshooting article no your website shouldn t stop working because you fail to bust the cache your app shouldn t crash because you fail to handle an edge case period sure it is hard on the web to deliver assets atomically formal methods are not realistically deployable yet but those are the problems our industry needs to collectively solve not hand waving them and leaving the problems to the users during the boom such an attitude is tolerated because software creates much more value to the economy predates it software engineering is the economy now it occupies a much critical role in people s lives than that gimmicky website for ordering books assume people s lives depend on your software doing the right things indirectly even if the use cases don t suggest that we are not all software engineers working on avionics software but you never know how your software would be repurposed we are ultimately all software customers you wouldn t want to spend 5 minutes resetting the light bulbs every other day don t you respect your quality assurance engineers the next inspector is the customer a banner that should be in your office for some reason qa engineers are being paid less than software engineers in general that translates to an unhealthy disrespect to qa engineers pushing back on what they found questioning their value to the project etc it is true that qa engineers is the easiest entry point into software engineering the next being err web front end engineer the best qa engineers are however generalists they know a little bit of everything to effectively ensure software quality they self motivate and constantly reinvent themselves for the next best way to identify customer facing issues they do much much more things than manual test case runs sadly i do not see this notion changing any time soon life finds a way many qa engineers end up taking the title of automation engineers or build and release managers as an attempt to shed the stigma of the plain title with whatever supporting responsibility the team shoves on them assume the qa engineer in your team does more than manual testing and stop treating them with whatever feeling arises when you hear the title qa engineer we are all responsible for quality given how critical software errors may be identifying them before shipping could very well save lives quality metrics can be automated but release cannot a computer can never be held accountable therefore a computer can never make a management decision a memorable quote allegedly from ibm in 1979 tests can definitely be automated and they should be automated quality metrics and observability are software engineering problems with software solutions however eventually someone needs to make the judgment call on quality and releases software release sign off quality is and forever will be the managerial decision that can t be automated away this is a responsibility that falls under qa engineering which makes their job indispensable even if your project has no dedicated people responsible for qa or testing someone is making a go no go decision based on quality that someone by definition is subsuming the role developer experiences is a means not an end especially in web engineering people lose the big picture when engaging in developer experience dx discussions unidirectional or bidirectional data flow static typed or dynamically typed test case paradigm on continuous integration pipelines git flow or github flow the list goes on there is no point in arguing any of these if people can t agree that the end goal is to elevate software quality developers quality of life is important but it is secondary to that goal for me the best developer experience is what allows me to make fewer mistakes in the same development timespan there will always be rockstar developers showing up and telling you their next project is the best thing ever or their methodology is perfect give them a hard look through the lens of software quality many of them fall apart pretty quickly one persistent dx argument is fast faster tool does contribute to software quality by tightening the feedback loop regretfully the adoption and maintenance cost of a newer immature tool often offset the gain compared to fast i am much more interested in correct like a programming language that can eliminate use after free or prevent typeerror s in javascript alone only you are in the position to judge adoption and the maintenance cost though no one else conclusion software provides values like any other machinery driving the world its excellence is measured by quality and quality is measured by the experiences of those who interact with the software as software engineers we are mortal code typing intelligent monkeys sitting in front of a keyboard trying to ask silicons to do the right thing we are undoubtedly empowered to figure out how we can be better at doing it but we should do so without losing sight of why and treating others better posted in programming post navigation older posts timothy guan tin chien i am a software engineer who had worked on web related stuff for more than a decade i am immensely curious on web both in its technical and societal aspects opinions are my own search for proudly powered by wordpress theme toolbox by automattic
|