Tomas Petricek, Charles University
tomas@tomasp.net
https://tomasp.net
@tomaspetricek
The technical way in which you currently look at programming is almost as if you were willing to be "guns for hire."
What I am proposing [is] a view of programming as the natural genetic infrastructure of a living world (...) could
then have the result that a living structure in our towns, houses, work places, cities, becomes an attainable thing.
Along the way, we ended up creating one of the most hated tools in the advertiser’s toolkit: the
pop-up ad.
I wrote the code to launch the window and run an
ad in it. I’m sorry. Our intentions were good.
window.open
and window.onunload
Geocities
Creative online com-munity of the 1990s
Subject of interest to internet historians (Screen by Olia Lialina)
Easy to copy and adapt fun JavaScript hacks!
Popup blocking commonplace in the early 2000s
Blocks popups on page load, unload and timer events, but not on click
Is this the evolution
of the pop-up ad idea?
Same user experience, recreated using harder to block technique
Simple scripts
View source
Copy & paste
Popups work!
Complex apps
Transpiled code
Canvas + WASM
Opaque elements
Replace built-in editable element with custom code
Announced in May 2021
Better performance!
Accessibility issues?
May affect extensions?
Hackable editor for
the 21st century
Build and debug modern web & cloud applications.
FsLab plugin for F# data science
Not possible in Code, until more extensibility points added.
Openness allows unanticipated extensibility
Popular new ideas may inspire later API change
Information hiding
Allow later adaptations
and system evolution
But how reliably
can we anticipate?
The reason for the project workbook is distribution of information.
The problem is not to restrict information, but to ensure that relevant information gets to all the people who need it.
Fred Brooks (1975)
We propose that one begins with a list of difficult design decision or design decisions which are likely to change.
Each module is then designed to hide such a decision from the others.
Dave Parnas (1972)
I dismissed Parnas's concept as a "recipe for disaster" (...). Parnas was right, and I was wrong.
I am now convinced that information hiding is the only way of raising the level of software design.
Fred Brooks (1995)
Many old MIDI instruments continue to be musically viable [due to] its least “designed” aspect: system exclusive (SysEx) messages.
The content of SysEx messages was never standardized (...). In practice, [they] were used in a semi-conventionalized way as a means for externalizing the complete state of a musical device.
On the growing opacity of software systems
Tomas Petricek, Charles University
tomas@tomasp.net
https://tomasp.net
@tomaspetricek
API for web browser extensions in Chrome
"V3 extensions enjoy enhancements in security, privacy, and performance"
Adds limitations on request blocking and number of rules
Advertising API replacing cookies
"In practice, we expect that Privacy Sandbox will harm Web privacy, and further cement Google’s control over the Web."