User:Kim/Special Issue 26/Inspector Extensions: Difference between revisions

From XPUB & Lens-Based wiki
 
(28 intermediate revisions by the same user not shown)
Line 22: Line 22:
WebsiteAgeExtWIP2.png|Website Age WiP 2
WebsiteAgeExtWIP2.png|Website Age WiP 2
</gallery>
</gallery>
* '''Empty Elements + Head''' analogy to file, roughening, thinning the surface, hidden elements as ghosts
* '''website age''' lifetime, lifespan (instead of 'age'), growth, decay, cracking open/ cracks
* '''comments''' reading between the lines


== General Tasks ==
== General Tasks ==
* <span style="color: lightgray;">look into browser API's (JavaScript can do more on browser level than on website level!)<span>
* <span style="color: lightgray;">look into browser API's (JavaScript can do more on browser level than on website level!)</span>
** [https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/history history API] allows to see how many times you visited a website (--wear and tear of a website)
* <span style="color: lightgray;">[https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/history history API] allows to see how many times you visited a website (--wear and tear of a website)</span>
* read '''[https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions MDN Docs]'''
 
* bring individual extensions together in a bundle
=== updated: finalizing phase ===
** interface that allows to navigate between 4 extensions
;conceptual
*** what does this look like?
[ ] titles <br>
*** What functions does it need?
[ ] description/ intro texts (popup.html)
** Extension Meta Info: Title(s), Icons ...
 
* publish (see outlook) print, git, moz extension store?
;technical
[ ] add popup.html to comments <br>
[ ] empty extension has some issues with the mouse over (buggy name display, removing event listener creates error)


'''need tech help with:'''
;visual
* website age Whois request / API
[ ] head + empty color palettes <br>
* bringing extensions together
[ ] layout popup pages


'''class questions:'''
;publishing
* how much explanation should there be about what is happening, what this is examining? (source code comments etc are not widely known)
[ ] moz extension store <br>
[ ] Si 26 event comments reading <br>
[ ] website taxonomy Poster (w/ age extension, maybe head/ empty) <br>


== Elements ==
== Elements ==
Line 45: Line 53:
a websites HTML <span style="color: lightgray;">(example for html comments [https://stackoverflow.com/questions/13363946/how-do-i-get-an-html-comment-with-javascript]) -- html works but only on some levels yet (not on comments in document head)</span> + CSS + JS  
a websites HTML <span style="color: lightgray;">(example for html comments [https://stackoverflow.com/questions/13363946/how-do-i-get-an-html-comment-with-javascript]) -- html works but only on some levels yet (not on comments in document head)</span> + CSS + JS  
Comments visible through browser extension (in three columns)
Comments visible through browser extension (in three columns)
<br><br>
try out on: https://words-on-margins.website/source-code/index.html, https://digitale-grafik.com/,


'''Do:''' <br>
'''Do:''' <br>
* <span style="color: lightgrey;">needs better html parsing (treewalker: [https://mitya.uk/articles/using-treewalkers-query-non-element-nodes] [https://developer.mozilla.org/en-US/docs/Web/API/Document/createTreeWalker])</span>
* <span style="color: lightgrey;">needs better html parsing (treewalker: [https://mitya.uk/articles/using-treewalkers-query-non-element-nodes] [https://developer.mozilla.org/en-US/docs/Web/API/Document/createTreeWalker])</span>
* make panel and comments container removable
* <span style="color: lightgrey;">make panel and comments container removable</span>


=== Website Age ===
=== Website Age ===
This extension asks for the registration date of a websites Domain - and per year the website is old adds a border to every website element (while shrinking the inner content, growing outwards)
This extension asks for the registration date of a websites Domain - and per year the website is old adds a border to every website element (while shrinking the inner content, growing outwards) [https://en.wikipedia.org/wiki/Dendrochronology Dendrochronology] (growth ring, annual ring, tree ring: they reveal not only a period of time but also climate and environmental conditions) the pattern emerging from the extension not only gives a numerical information but also tells us about the sites structure.
 
<br>
try out on on: https://parallelograms.info/21-LBA.html,


'''Do:''' <br>
* find solution for Whois Api: at the moment it has restricted TLD support (see below) <nowiki>*</nowiki>
* rebuild extension so it also works on request (button) not automatically on every page visited
* refine functionality: maybe rings can build up one after another, maybe there is a way to not let it destroy the interface this much? should the age be displayed somewhere as number?


<nowiki>*</nowiki> <span style="color:lightgray;">is it possible to use a python script for that? specifically to connect .py with browser extension?
<nowiki>*</nowiki> <span style="color:lightgray;">is it possible to use a python script for that? specifically to connect .py with browser extension?
Line 63: Line 73:
<br><br>
<br><br>
update: together with Joseph started to write my own API. This lives on Cerealbox and uses php to make a whois request and returns a response in json that I can then fetch in my browser extensions javascript. (not fully running yet but its a good lead how this could work)<br>
update: together with Joseph started to write my own API. This lives on Cerealbox and uses php to make a whois request and returns a response in json that I can then fetch in my browser extensions javascript. (not fully running yet but its a good lead how this could work)<br>
'''url for cerealbox api debugging: https://hub.xpub.nl/cerealbox/whois/index.php?domain=xpub.nl''' <br>
'''url for cerealbox api debugging: https://hub.xpub.nl/cerealbox/whois/index.php?domain=xpub.nl''' and the path '''/var/www/html/whois'''<br>
'''still to do:'''  
'''still to do:'''  
* if a domain has more than two parts (like home.elliott.computer does, it can only get the parent url elliott.computer)
* <span style="color:lightgray;">if a domain has more than two parts (like home.elliott.computer does, it can only get the parent url elliott.computer)</span>
** maybe I can do this with the url cleaning like with www
** <span style="color:lightgray;">maybe I can do this with the url cleaning like with www</span>
* make it work on demand not immediately every website? (popup html)
* <span style="color:lightgray;">make it work on demand not immediately every website? (popup html)</span>
* '''tlds''' not (yet) supported:
** .uk, .tk, .ru, .be
** .ch, .eu, .tw are practically impossible


=== Empty Elements ===
=== Empty Elements ===
Line 73: Line 86:
# it allows to log all :empty html elements (with name and attributes) into the inspector console  
# it allows to log all :empty html elements (with name and attributes) into the inspector console  
# makes all empty elements visible in the websites interface and creates an inspector cursor which shows :empty elements name on hover  
# makes all empty elements visible in the websites interface and creates an inspector cursor which shows :empty elements name on hover  
<br>
try out on: https://alt-text-as-poetry.net/, https://en.wikipedia.org/wiki/2_Pallas


'''Do:'''
'''Do:'''
Line 115: Line 131:
<br>
<br>
* back and forth between inspector's and website's interface: giving in and extracting, copying, shifting
* back and forth between inspector's and website's interface: giving in and extracting, copying, shifting
=== questions tutorial 03/25/25 ===
; Conceptual
# Do I want to bring the extensions together (3)?
## is there a more elegant way to do this other than having a loooong js file?
## maybe publishing them together could also mean I make a website where I link them all
# '''<head>''' visuality and interaction with website interface
# '''empty''' styling is basic (needs sth that says 'reset empty' --> maybe it shouldnt append to a random dom element but one of the empty ones!!)
; Technical
# make '''website age''' extension work on popup enable/ disable (not by default)
## how do I use this with having background script
## url cleaning, currently its not working on sub-domain (like home.elliott.computer does, it can only get the parent url elliott.computer)
# '''comments''' removing the comments, once they have been displayed not fully working (removing does work but then displaying them again doesnt)

Latest revision as of 10:09, 1 April 2025

Concept

keys

  • website is not a sealed off, pure surface current web interfaces and focus on 'user experience' hide programmability of the system, to minimize and channel user interacting with it: creates the illusion that there is nothing behind (the user interface)
  • Browsers (crucial, performative) role as interpreter
  • Layers (visually but also layers of actors/technologies involved in the process of rendering this website)
  • Visibility (transparency, permeability)
  • inspection + making structure visible + contamination (on browser level) inspection also suggests looking at something that is initially hidden, its intimate and intruding at times

Metaphors / Analogies

  • looking glass or microscope (with different lenses) [1] [2] [3] [4] [5]
  • what if inspection was less visual and more tactile ? (haptik – surface feel)
    • they have a tactility to them: stickyness, maserung holz
    • 'see trough' cameras or scans – let us look behind surfaces (like infra red, x ray or MRI scan (which makes head/ brain visible)) --> play with transparencies
  • Topography emphasizes web as environment/ spacial, layers "is the study of the forms and features of land surfaces" -> extensions inspect websites on 'surface' level (Graphical interface) to extract information about underlying structure, environment and involved entities [6] [7] [8] [9]


contamination --> infectious interfaces --> malware [10] --> website extension ...

  • Empty Elements + Head analogy to file, roughening, thinning the surface, hidden elements as ghosts
  • website age lifetime, lifespan (instead of 'age'), growth, decay, cracking open/ cracks
  • comments reading between the lines

General Tasks

  • look into browser API's (JavaScript can do more on browser level than on website level!)
  • history API allows to see how many times you visited a website (--wear and tear of a website)

updated: finalizing phase

conceptual

[ ] titles
[ ] description/ intro texts (popup.html)

technical

[ ] add popup.html to comments
[ ] empty extension has some issues with the mouse over (buggy name display, removing event listener creates error)

visual

[ ] head + empty color palettes
[ ] layout popup pages

publishing

[ ] moz extension store
[ ] Si 26 event comments reading
[ ] website taxonomy Poster (w/ age extension, maybe head/ empty)

Elements

Comments

a websites HTML (example for html comments [11]) -- html works but only on some levels yet (not on comments in document head) + CSS + JS Comments visible through browser extension (in three columns)

try out on: https://words-on-margins.website/source-code/index.html, https://digitale-grafik.com/,


Do:

  • needs better html parsing (treewalker: [12] [13])
  • make panel and comments container removable

Website Age

This extension asks for the registration date of a websites Domain - and per year the website is old adds a border to every website element (while shrinking the inner content, growing outwards) Dendrochronology (growth ring, annual ring, tree ring: they reveal not only a period of time but also climate and environmental conditions) the pattern emerging from the extension not only gives a numerical information but also tells us about the sites structure.


try out on on: https://parallelograms.info/21-LBA.html,


* is it possible to use a python script for that? specifically to connect .py with browser extension? apparently this works see [14] or [15] this later one recommends creating my own api with python script and call api inside you javascript file or writing Pyscript
https://stackoverflow.com/questions/6728143/how-do-i-run-a-whois-lookup-with-php-or-python

update: together with Joseph started to write my own API. This lives on Cerealbox and uses php to make a whois request and returns a response in json that I can then fetch in my browser extensions javascript. (not fully running yet but its a good lead how this could work)
url for cerealbox api debugging: https://hub.xpub.nl/cerealbox/whois/index.php?domain=xpub.nl and the path /var/www/html/whois
still to do:

  • if a domain has more than two parts (like home.elliott.computer does, it can only get the parent url elliott.computer)
    • maybe I can do this with the url cleaning like with www
  • make it work on demand not immediately every website? (popup html)
  • tlds not (yet) supported:
    • .uk, .tk, .ru, .be
    • .ch, .eu, .tw are practically impossible

Empty Elements

this extension comes in two steps:

  1. it allows to log all :empty html elements (with name and attributes) into the inspector console
  2. makes all empty elements visible in the websites interface and creates an inspector cursor which shows :empty elements name on hover


try out on: https://alt-text-as-poetry.net/, https://en.wikipedia.org/wiki/2_Pallas

Do:

  • styling
    • how empty elements appear on the page (darker bg color to create empty as 'cut-outs') + console.logs + browser pop up

assumption: empty elements are used for structuring and layout, by exaggerating their visibility and size, their usage become evident. escaping boundaries between foreground and background, element and its container.

< head >

reveals meta, script and link tags in the head of a websites source code

Do:
needs: visual appearance (?) styling other than low key techy dark mode * styling idea: everything color bg (like comments, but focussed transparency)

  • tabindex navigation works but should/ can I prevent it from navigating the whole website?
  • Maybe the fact that a head is attached to the top of something could give interesting layout or positioning ideas

this is the etherpad css url: https://pad.xpub.nl/p/css-show-meta

Outlook

I would like to have a way of publishing them other than (just) in the extension store
-- could this be a printed zine that contains all the code annotated?
-- or some things I found in codes while browsing with extensions?
-- or giving a live reading of source code comments --> extension gives the protocol
--- this could also be intertwined by reading of (the pages or other) content to create more of a narrative, involve both sides and their intra-acting
(towards a paradigm shift in commenting source code)

Presentation Feedback + Ideas

  • can the comments (and empty) extension have a small notification always on the website that recognizes if there is something to see explore?
    • button, shape, pulsing (do all three go into one container?, distinction blurry between website and extension... do I want that?)
    • or add to context menu
    • or add as notification
    • playing on modes of visibility, discovery, inspection


  • comments: add console messages as feature?


  • make the extension interfaces more resonating with the website contents / existing appearance, allow penetration
    • inherit styles
    • 'comments' work well --> 'head' and 'empty' not so much yet


  • head, empty, comments fit together well, age is different (keep separate?)


  • back and forth between inspector's and website's interface: giving in and extracting, copying, shifting

questions tutorial 03/25/25

Conceptual
  1. Do I want to bring the extensions together (3)?
    1. is there a more elegant way to do this other than having a loooong js file?
    2. maybe publishing them together could also mean I make a website where I link them all
  2. <head> visuality and interaction with website interface
  3. empty styling is basic (needs sth that says 'reset empty' --> maybe it shouldnt append to a random dom element but one of the empty ones!!)
Technical
  1. make website age extension work on popup enable/ disable (not by default)
    1. how do I use this with having background script
    2. url cleaning, currently its not working on sub-domain (like home.elliott.computer does, it can only get the parent url elliott.computer)
  2. comments removing the comments, once they have been displayed not fully working (removing does work but then displaying them again doesnt)