From e21c0479cb0d246dd337192be51cd9b8b4e96f1e Mon Sep 17 00:00:00 2001 From: Joe Crawford Date: Sat, 11 Jan 2025 09:40:31 -0800 Subject: [PATCH 1/3] Get new webmentions, fix errror in code that handles getting webmentions --- classes/Nav.php | 4228 +++++++++-------- composer.json | 3 +- get-webmentions.php | 8 +- web/50states/50states.yaml | 2 +- web/ArtLung-Notes/ArtLung-Notes.yaml | 2 +- web/a-outline-none/a-outline-none.yaml | 2 +- .../additive-font-size.yaml | 2 +- .../ancient-tidy-tutorial.yaml | 2 +- web/anti-cache/anti-cache.yaml | 2 +- web/asp-cdonts/asp-cdonts.yaml | 2 +- .../asp-selectbox-function.yaml | 2 +- web/asp/asp.yaml | 2 +- web/autocalc/autocalc.yaml | 2 +- web/barcampla6/barcampla6.yaml | 2 +- web/bloggingbot/bloggingbot.yaml | 2 +- .../bluedragon-net-installer.yaml | 2 +- web/blur/blur.yaml | 2 +- web/bookmarklets/bookmarklets.yaml | 2 +- web/border-style/border-style.yaml | 2 +- .../bug-mac-netscape-forms-update.yaml | 2 +- web/buttonybutton/buttonybutton.yaml | 2 +- .../buttonybuttonsonbuttons.yaml | 2 +- ...riginal-version-of-redefined-vbscript.yaml | 2 +- web/camel-selector/camel-selector.yaml | 2 +- .../canvas-html-render-download.yaml | 2 +- web/change-all-links/change-all-links.yaml | 2 +- ...ange-content-in-iframe-with-prototype.yaml | 2 +- .../change-document-background-color.yaml | 2 +- .../change-space-between-paragraphs.yaml | 2 +- web/checkbox-validate/checkbox-validate.yaml | 2 +- web/circles-crawl/circles-crawl.yaml | 2 +- web/clock-concept/clock-concept.yaml | 2 +- .../coldfusion-break-db.yaml | 2 +- .../coldfusion-force-download.yaml | 2 +- .../coldfusion-titlecase.yaml | 2 +- web/compare-fields/compare-fields.yaml | 2 +- .../connect-to-remote-server.yaml | 2 +- .../copy-to-clipboard-javascript.yaml | 2 +- .../countdown-daily-to-a-time.yaml | 2 +- .../countdown-to-the-first.yaml | 2 +- web/countdown/countdown.yaml | 2 +- web/crossdomain/crossdomain.yaml | 2 +- web/css3-smiley/css3-smiley.yaml | 2 +- web/detagger/detagger.yaml | 2 +- web/detection-real/detection-real.yaml | 2 +- .../display-inline-block.yaml | 2 +- .../domain-name-sql-excel.yaml | 2 +- web/dropdown-focus/dropdown-focus.yaml | 2 +- web/dropdown-frames/dropdown-frames.yaml | 2 +- .../dropdown-only-some-new-window.yaml | 2 +- .../dropdown-submit-form.yaml | 2 +- web/dropdown/dropdown.yaml | 2 +- web/echo-http-host/echo-http-host.yaml | 2 +- .../email-submission-stinks.yaml | 2 +- .../first-child-last-child.yaml | 2 +- .../font-awesome-sample.yaml | 2 +- .../form-image-background.yaml | 2 +- web/format-time/format-time.yaml | 2 +- web/frames-mouseover/frames-mouseover.yaml | 2 +- web/gallery/gallery.yaml | 2 +- web/generic-validator/generic-validator.yaml | 2 +- web/gettysburg/gettysburg.yaml | 2 +- web/goal50/goal50.yaml | 2 +- .../group-concat-mysql.yaml | 2 +- web/history/history.yaml | 2 +- web/home/home.yaml | 2 +- web/html-2.0/html-2.0.yaml | 2 +- web/image-border/image-border.yaml | 2 +- web/image-hover/image-hover.yaml | 2 +- web/input-direction/input-direction.yaml | 2 +- .../interesting-date-layout.yaml | 2 +- .../invisible-unspiderable-link.yaml | 2 +- web/is-email/is-email.yaml | 2 +- web/java-tags/java-tags.yaml | 2 +- web/keycode/keycode.yaml | 2 +- .../keystroke-to-go-to-random-page.yaml | 2 +- .../larger-checkbox-with-css.yaml | 2 +- web/make-unique-id/make-unique-id.yaml | 2 +- web/mathml/mathml.yaml | 2 +- .../meaningful-html-class-names.yaml | 2 +- web/media/media.yaml | 2 +- web/misc-files/misc-files.yaml | 2 +- web/mm_validateform/mm_validateform.yaml | 2 +- web/modify-the-box/modify-the-box.yaml | 2 +- web/mouseover-vote/mouseover-vote.yaml | 2 +- web/mouseover-vote100/mouseover-vote100.yaml | 2 +- .../multiple-select-v2.yaml | 2 +- web/multiple-select/multiple-select.yaml | 2 +- web/museum/museum.yaml | 2 +- .../my-first-vbscript-class.yaml | 2 +- .../navigation-function-vs-asp.yaml | 2 +- .../navigator-language.yaml | 2 +- web/navigator-object/navigator-object.yaml | 2 +- web/nonsense-dtd/nonsense-dtd.yaml | 2 +- .../not-valid-itunes-library.yaml | 2 +- web/notifications/notifications.yaml | 2 +- web/now-getdate/now-getdate.yaml | 2 +- web/oncontextmenu/oncontextmenu.yaml | 2 +- .../onunload-window-open-evil.yaml | 2 +- .../open-graph-protocol-tools.yaml | 2 +- .../outbound-link-confirmation.yaml | 2 +- web/password-maker/password-maker.yaml | 2 +- web/php-all-websafe/php-all-websafe.yaml | 2 +- .../php-php3-mod-rewrite.yaml | 2 +- web/pinkvalidation/pinkvalidation.yaml | 2 +- .../plus-plus-a-string-php.yaml | 2 +- .../quick-jquery-overlay.yaml | 2 +- web/quote-to-dl/quote-to-dl.yaml | 2 +- web/random-cells/random-cells.yaml | 2 +- web/random-content/random-content.yaml | 2 +- .../random-string-in-sql.yaml | 2 +- web/recursive-iframe/recursive-iframe.yaml | 2 +- .../response-end-is-like-exit-in-php.yaml | 2 +- .../reverse-string-nums.yaml | 2 +- web/robots-nocontent/robots-nocontent.yaml | 2 +- .../root-color-properties-editor.yaml | 2 +- web/rosetta/rosetta.yaml | 2 +- web/rounded-mozilla/rounded-mozilla.yaml | 2 +- web/rtf/rtf.yaml | 2 +- .../screen-resolutions.yaml | 2 +- web/self-refresh/self-refresh.yaml | 2 +- .../server-side-image-map.yaml | 2 +- web/single-pixel-gif/single-pixel-gif.yaml | 2 +- .../six-finger-ai-hand.yaml | 2 +- web/slideshow-img/slideshow-img.yaml | 2 +- web/slideshow-plus/slideshow-plus.yaml | 2 +- web/slideshow/slideshow.yaml | 2 +- web/speech-synthesis/speech-synthesis.yaml | 2 +- web/spoiler/spoiler.yaml | 2 +- .../sql-server-collations.yaml | 2 +- .../t-paamayim-nekudotayim.yaml | 2 +- .../the-problem-with-blur.yaml | 2 +- web/three-char-combos/three-char-combos.yaml | 2 +- web/tips-2001/tips-2001.yaml | 2 +- .../tr-onmouseover-style.yaml | 2 +- .../undocumented-linklint.yaml | 2 +- .../unix-batch-file-rename.yaml | 2 +- web/upload/upload.yaml | 2 +- web/url-compare/url-compare.yaml | 2 +- web/urlencode/urlencode.yaml | 2 +- .../user-preference-for-new-windows.yaml | 2 +- .../vaguely-interesting-layout.yaml | 2 +- web/validate-checkbox/validate-checkbox.yaml | 2 +- web/validate-image/validate-image.yaml | 2 +- .../vbscript-always-elseif-never-else-if.yaml | 2 +- .../w3c-with-and-without-css.yaml | 2 +- web/webmentions/webmentions.yaml | 2 +- .../windows-export-file-list.yaml | 2 +- .../ws-ftp-password-decoder.yaml | 2 +- web/xml-encode/xml-encode.yaml | 2 +- webmention_data/anti-cache.json | 2 +- webmention_data/home.json | 2 +- webmention_data/spoiler.json | 2 +- yaml-management.php | 2 +- 154 files changed, 2272 insertions(+), 2269 deletions(-) diff --git a/classes/Nav.php b/classes/Nav.php index d892fb2..db01415 100644 --- a/classes/Nav.php +++ b/classes/Nav.php @@ -27,2119 +27,2121 @@ public static function getMetadata(): array // yaml is the source of truth, generate this with slugs_and_titles.php do not hand edit this: - /* START: handled by php generate-nav-value LAST UPDATE 2024-12-24 06:40:18 */ - return $slugs_and_titles = array ( - '50states' => - array ( - 'slug' => '50states', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2003, - 'canonical_url' => 'https://lab.artlung.com/50states/', - 'title' => '50 U.S. States Dropdown Box HTML Code Snippets', - 'tags' => - array ( - 0 => 'html', - ), - 'webmention_last_checked' => 1734922957, - 'webmention_count' => 1, - ), - 'ArtLung-Notes' => - array ( - 'slug' => 'ArtLung-Notes', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2010, - 'canonical_url' => 'https://lab.artlung.com/ArtLung-Notes/', - 'title' => 'ArtLung Notes (Experimental, 2010)', - 'tags' => - array ( - 0 => 'experimental', - ), - 'webmention_last_checked' => 1734922957, - 'webmention_count' => 0, - ), - 'a-outline-none' => - array ( - 'slug' => 'a-outline-none', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2001, - 'canonical_url' => 'https://lab.artlung.com/a-outline-none/', - 'title' => 'outline:none to affect IE5/Mac focus outline', - 'tags' => - array ( - 0 => 'css', - ), - 'webmention_last_checked' => 1734922957, - 'webmention_count' => 1, - ), - 'additive-font-size' => - array ( - 'slug' => 'additive-font-size', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2001, - 'canonical_url' => 'https://lab.artlung.com/additive-font-size/', - 'title' => 'How font-size accumulates', - 'tags' => - array ( - 0 => 'css', - ), - 'webmention_last_checked' => 1734922958, - 'webmention_count' => 1, - ), - 'ancient-tidy-tutorial' => - array ( - 'slug' => 'ancient-tidy-tutorial', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 1999, - 'canonical_url' => 'https://lab.artlung.com/ancient-tidy-tutorial/', - 'title' => 'Ancient HTML Tidy Tutorial', - 'tags' => - array ( - 0 => 'html', - ), - 'webmention_last_checked' => 1734922958, - 'webmention_count' => 1, - ), - 'anti-cache' => - array ( - 'slug' => 'anti-cache', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2001, - 'canonical_url' => 'https://lab.artlung.com/anti-cache/', - 'title' => 'Preventing Browser Cache', - 'tags' => - array ( - 0 => 'asp', - 1 => 'coldfusion', - 2 => 'jsp', - 3 => 'php', - ), - 'webmention_last_checked' => 1734989345, - 'webmention_count' => 2, - ), - 'asp' => - array ( - 'slug' => 'asp', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2001, - 'canonical_url' => 'https://lab.artlung.com/asp/', - 'title' => 'ASP Hello World Script', - 'tags' => - array ( - 0 => 'asp', - ), - 'webmention_last_checked' => 1734922959, - 'webmention_count' => 1, - ), - 'asp-cdonts' => - array ( - 'slug' => 'asp-cdonts', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2005, - 'canonical_url' => 'https://lab.artlung.com/asp-cdonts/', - 'title' => 'ASP: CDONTS snippet', - 'tags' => - array ( - 0 => 'asp', - ), - 'webmention_last_checked' => 1734922959, - 'webmention_count' => 0, - ), - 'asp-selectbox-function' => - array ( - 'slug' => 'asp-selectbox-function', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2016, - 'canonical_url' => 'https://lab.artlung.com/asp-selectbox-function/', - 'title' => 'selectBox function in Traditional ASP', - 'tags' => - array ( - 0 => 'asp', - ), - 'webmention_last_checked' => 1734922959, - 'webmention_count' => 0, - ), - 'autocalc' => - array ( - 'slug' => 'autocalc', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2002, - 'canonical_url' => 'https://lab.artlung.com/autocalc/', - 'title' => 'Auto-Calculator', - 'tags' => - array ( - 0 => 'experimental', - ), - 'webmention_last_checked' => 1734922959, - 'webmention_count' => 2, - ), - 'barcampla6' => - array ( - 'slug' => 'barcampla6', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2008, - 'canonical_url' => 'https://lab.artlung.com/barcampla6/', - 'title' => 'jQuery Basics (barcampla6)', - 'tags' => - array ( - 0 => 'javascript', - ), - 'webmention_last_checked' => 1734922960, - 'webmention_count' => 0, - ), - 'bloggingbot' => - array ( - 'slug' => 'bloggingbot', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2018, - 'canonical_url' => 'https://lab.artlung.com/bloggingbot/', - 'title' => 'Blogging Bot (Markov Chains are Hilarious)', - 'tags' => - array ( - 0 => 'experimental', - 1 => 'markovchains', - ), - 'webmention_last_checked' => 1734922960, - 'webmention_count' => 0, - ), - 'bluedragon-net-installer' => - array ( - 'slug' => 'bluedragon-net-installer', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2010, - 'canonical_url' => 'https://lab.artlung.com/bluedragon-net-installer/', - 'title' => 'Screenshots of an installation of BlueDragon 7.1 for the Microsoft .NET Framework', - 'tags' => - array ( - 0 => 'coldfusion', - 1 => 'dotnet', - ), - 'webmention_last_checked' => 1734922960, - 'webmention_count' => 0, - ), - 'blur' => - array ( - 'slug' => 'blur', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2004, - 'canonical_url' => 'https://lab.artlung.com/blur/', - 'title' => 'CSS Blur Example', - 'tags' => - array ( - 0 => 'css', - ), - 'webmention_last_checked' => 1734922960, - 'webmention_count' => 0, - ), - 'bookmarklets' => - array ( - 'slug' => 'bookmarklets', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2006, - 'canonical_url' => 'https://lab.artlung.com/bookmarklets/', - 'title' => 'Killer Bookmarklets I have Come Across', - 'tags' => - array ( - 0 => 'css', - 1 => 'html', - 2 => 'rss', - 3 => 'bookmarklet', - ), - 'webmention_last_checked' => 1734922961, - 'webmention_count' => 1, - ), - 'border-style' => - array ( - 'slug' => 'border-style', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2002, - 'canonical_url' => 'https://lab.artlung.com/border-style/', - 'title' => 'border-style Experiment', - 'tags' => - array ( - 0 => 'css', - ), - 'webmention_last_checked' => 1734922961, - 'webmention_count' => 1, - ), - 'bug-mac-netscape-forms-update' => - array ( - 'slug' => 'bug-mac-netscape-forms-update', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 1998, - 'canonical_url' => 'https://lab.artlung.com/bug-mac-netscape-forms-update/', - 'title' => 'Netscape/Macintosh Changing Form Button or Submit Input Value Fails', - 'tags' => - array ( - 0 => 'html', - ), - 'webmention_last_checked' => 1734922961, - 'webmention_count' => 0, - ), - 'buttonybutton' => - array ( - 'slug' => 'buttonybutton', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2015, - 'canonical_url' => 'https://lab.artlung.com/buttonybutton/', - 'title' => 'Buttony Button', - 'tags' => - array ( - 0 => 'css', - ), - 'webmention_last_checked' => 1734922961, - 'webmention_count' => 0, - ), - 'buttonybuttonsonbuttons' => - array ( - 'slug' => 'buttonybuttonsonbuttons', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2015, - 'canonical_url' => 'https://lab.artlung.com/buttonybuttonsonbuttons/', - 'title' => 'Big Buttony Buttons on Buttons', - 'tags' => - array ( - 0 => 'css', - ), - 'webmention_last_checked' => 1734922961, - 'webmention_count' => 0, - ), - 'call-original-version-of-redefined-vbscript' => - array ( - 'slug' => 'call-original-version-of-redefined-vbscript', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2016, - 'canonical_url' => 'https://lab.artlung.com/call-original-version-of-redefined-vbscript/', - 'title' => 'Call the native version of a VBScript object', - 'tags' => - array ( - 0 => 'vbscript', - ), - 'webmention_last_checked' => 1734922962, - 'webmention_count' => 0, - ), - 'camel-selector' => - array ( - 'slug' => 'camel-selector', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2002, - 'canonical_url' => 'https://lab.artlung.com/camel-selector/', - 'title' => 'camelCase <-> selector-case w/o Regex', - 'tags' => - array ( - 0 => 'javascript', - ), - 'webmention_last_checked' => 1734922962, - 'webmention_count' => 1, - ), - 'canvas-html-render-download' => - array ( - 'slug' => 'canvas-html-render-download', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2024, - 'canonical_url' => 'https://lab.artlung.com/canvas-html-render-download/', - 'title' => 'Canvas HTML Render Download not working', - 'tags' => - array ( - 0 => 'html', - ), - 'webmention_last_checked' => 1734922962, - 'webmention_count' => 0, - ), - 'change-all-links' => - array ( - 'slug' => 'change-all-links', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2000, - 'canonical_url' => 'https://lab.artlung.com/change-all-links/', - 'title' => 'How can I change every link on a page to something new?', - 'tags' => - array ( - 0 => 'javascript', - ), - 'webmention_last_checked' => 1734922962, - 'webmention_count' => 0, - ), - 'change-content-in-iframe-with-prototype' => - array ( - 'slug' => 'change-content-in-iframe-with-prototype', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2010, - 'canonical_url' => 'https://lab.artlung.com/change-content-in-iframe-with-prototype/', - 'title' => 'What is the way to access IFrame\'s element using Prototype $ method?', - 'tags' => - array ( - 0 => 'javascript', - ), - 'webmention_last_checked' => 1734922963, - 'webmention_count' => 0, - ), - 'change-document-background-color' => - array ( - 'slug' => 'change-document-background-color', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 1999, - 'canonical_url' => 'https://lab.artlung.com/change-document-background-color/', - 'title' => 'Change document background color', - 'tags' => - array ( - 0 => 'css', - 1 => 'javascript', - ), - 'webmention_last_checked' => 1734922963, - 'webmention_count' => 0, - ), - 'change-space-between-paragraphs' => - array ( - 'slug' => 'change-space-between-paragraphs', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2006, - 'canonical_url' => 'https://lab.artlung.com/change-space-between-paragraphs/', - 'title' => 'Changing the spacing between paragraphs', - 'tags' => - array ( - 0 => 'css', - 1 => 'typography', - ), - 'webmention_last_checked' => 1734922963, - 'webmention_count' => 0, - ), - 'checkbox-validate' => - array ( - 'slug' => 'checkbox-validate', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2001, - 'canonical_url' => 'https://lab.artlung.com/checkbox-validate/', - 'title' => 'Checkbox Validator', - 'tags' => - array ( - 0 => 'javascript', - ), - 'webmention_last_checked' => 1734922963, - 'webmention_count' => 1, - ), - 'circles-crawl' => - array ( - 'slug' => 'circles-crawl', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2010, - 'canonical_url' => 'https://lab.artlung.com/circles-crawl/', - 'title' => 'Circles Crawl and you click them (jQuery)', - 'tags' => - array ( - 0 => 'javascript', - ), - 'webmention_last_checked' => 1734922964, - 'webmention_count' => 0, - ), - 'clock-concept' => - array ( - 'slug' => 'clock-concept', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2024, - 'canonical_url' => 'https://lab.artlung.com/clock-concept/', - 'title' => 'Clock Concept (1998-2024)', - 'tags' => - array ( - 0 => 'css', - 1 => 'experimental', - 2 => 'javascript', - ), - 'webmention_last_checked' => 1734922964, - 'webmention_count' => 0, - ), - 'coldfusion-break-db' => - array ( - 'slug' => 'coldfusion-break-db', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2003, - 'canonical_url' => 'https://lab.artlung.com/coldfusion-break-db/', - 'title' => 'Ways to break a lock on an Access Database with Cold Fusion', - 'tags' => - array ( - 0 => 'coldfusion', - ), - 'webmention_last_checked' => 1734922964, - 'webmention_count' => 1, - ), - 'coldfusion-force-download' => - array ( - 'slug' => 'coldfusion-force-download', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2016, - 'canonical_url' => 'https://lab.artlung.com/coldfusion-force-download/', - 'title' => 'ColdFusion: Force Download of File', - 'tags' => - array ( - 0 => 'coldfusion', - ), - 'webmention_last_checked' => 1734922964, - 'webmention_count' => 0, - ), - 'coldfusion-titlecase' => - array ( - 'slug' => 'coldfusion-titlecase', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2003, - 'canonical_url' => 'https://lab.artlung.com/coldfusion-titlecase/', - 'title' => 'ColdFusion TitleCase Function', - 'tags' => - array ( - 0 => 'coldfusion', - ), - 'webmention_last_checked' => 1734922964, - 'webmention_count' => 1, - ), - 'compare-fields' => - array ( - 'slug' => 'compare-fields', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2002, - 'canonical_url' => 'https://lab.artlung.com/compare-fields/', - 'title' => 'Compare two fields, Submit only if they are the same:', - 'tags' => - array ( - 0 => 'javascript', - ), - 'webmention_last_checked' => 1734922965, - 'webmention_count' => 0, - ), - 'connect-to-remote-server' => - array ( - 'slug' => 'connect-to-remote-server', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2004, - 'canonical_url' => 'https://lab.artlung.com/connect-to-remote-server/', - 'title' => 'Simple example connecting to a remote server', - 'tags' => - array ( - 0 => 'php', - ), - 'webmention_last_checked' => 1734922965, - 'webmention_count' => 0, - ), - 'copy-to-clipboard-javascript' => - array ( - 'slug' => 'copy-to-clipboard-javascript', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2005, - 'canonical_url' => 'https://lab.artlung.com/copy-to-clipboard-javascript/', - 'title' => 'Copy to Clipboard JavaScript', - 'tags' => - array ( - 0 => 'javascript', - ), - 'webmention_last_checked' => 1734922965, - 'webmention_count' => 0, - ), - 'countdown' => - array ( - 'slug' => 'countdown', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2005, - 'canonical_url' => 'https://lab.artlung.com/countdown/', - 'title' => 'Super Simple Countdown in PHP.', - 'tags' => - array ( - 0 => 'php', - ), - 'webmention_last_checked' => 1734922965, - 'webmention_count' => 1, - ), - 'countdown-daily-to-a-time' => - array ( - 'slug' => 'countdown-daily-to-a-time', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2011, - 'canonical_url' => 'https://lab.artlung.com/countdown-daily-to-a-time/', - 'title' => 'Countdown to a time of the day every day (PHP)', - 'tags' => - array ( - 0 => 'php', - ), - 'webmention_last_checked' => 1734922965, - 'webmention_count' => 0, - ), - 'countdown-to-the-first' => - array ( - 'slug' => 'countdown-to-the-first', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2011, - 'canonical_url' => 'https://lab.artlung.com/countdown-to-the-first/', - 'title' => 'Countdown in to the first of the month in PHP', - 'tags' => - array ( - 0 => 'php', - ), - 'webmention_last_checked' => 1734922966, - 'webmention_count' => 0, - ), - 'crossdomain' => - array ( - 'slug' => 'crossdomain', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2009, - 'canonical_url' => 'https://lab.artlung.com/crossdomain/', - 'title' => 'crossdomain.xml', - 'tags' => - array ( - 0 => 'http', - ), - 'webmention_last_checked' => 1734922966, - 'webmention_count' => 0, - ), - 'css3-smiley' => - array ( - 'slug' => 'css3-smiley', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2024, - 'canonical_url' => 'https://lab.artlung.com/css3-smiley/', - 'title' => 'CSS3 Smiley in Color', - 'tags' => - array ( - 0 => 'css', - ), - 'webmention_last_checked' => 1734922966, - 'webmention_count' => 1, - ), - 'detagger' => - array ( - 'slug' => 'detagger', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2005, - 'canonical_url' => 'https://lab.artlung.com/detagger/', - 'title' => 'Fun Detagger Script', - 'tags' => - array ( - 0 => 'php', - ), - 'webmention_last_checked' => 1734922967, - 'webmention_count' => 1, - ), - 'detection-real' => - array ( - 'slug' => 'detection-real', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 1999, - 'canonical_url' => 'https://lab.artlung.com/detection-real/', - 'title' => 'RealMedia Plugin Detection', - 'tags' => - array ( - 0 => 'javascript', - 1 => 'realplayer', - ), - 'webmention_last_checked' => 1734922967, - 'webmention_count' => 0, - ), - 'display-inline-block' => - array ( - 'slug' => 'display-inline-block', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2009, - 'canonical_url' => 'https://lab.artlung.com/display-inline-block/', - 'title' => 'CSS workaround for external link with small icon (2007)', - 'tags' => - array ( - 0 => 'css', - ), - 'webmention_last_checked' => 1734922967, - 'webmention_count' => 0, - ), - 'domain-name-sql-excel' => - array ( - 'slug' => 'domain-name-sql-excel', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2016, - 'canonical_url' => 'https://lab.artlung.com/domain-name-sql-excel/', - 'title' => 'Extract Domain Names from a list of email addresses', - 'tags' => - array ( - 0 => 'sql', - ), - 'webmention_last_checked' => 1734922967, - 'webmention_count' => 0, - ), - 'dropdown' => - array ( - 'slug' => 'dropdown', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2004, - 'canonical_url' => 'https://lab.artlung.com/dropdown/', - 'title' => 'Dropdown Navigation', - 'tags' => - array ( - 0 => 'html', - 1 => 'javascript', - ), - 'webmention_last_checked' => 1734922967, - 'webmention_count' => 2, - ), - 'dropdown-focus' => - array ( - 'slug' => 'dropdown-focus', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2001, - 'canonical_url' => 'https://lab.artlung.com/dropdown-focus/', - 'title' => 'Setting Dropdown Focus', - 'tags' => - array ( - 0 => 'javascript', - ), - 'webmention_last_checked' => 1734922968, - 'webmention_count' => 0, - ), - 'dropdown-frames' => - array ( - 'slug' => 'dropdown-frames', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2008, - 'canonical_url' => 'https://lab.artlung.com/dropdown-frames/', - 'title' => 'Dropdown Navigation in Frames', - 'tags' => - array ( - 0 => 'javascript', - ), - 'webmention_last_checked' => 1734922968, - 'webmention_count' => 0, - ), - 'dropdown-only-some-new-window' => - array ( - 'slug' => 'dropdown-only-some-new-window', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2002, - 'canonical_url' => 'https://lab.artlung.com/dropdown-only-some-new-window/', - 'title' => 'Dropdown Navigation Where Only Some Links Open New Windows', - 'tags' => - array ( - 0 => 'javascript', - ), - 'webmention_last_checked' => 1734922968, - 'webmention_count' => 2, - ), - 'dropdown-submit-form' => - array ( - 'slug' => 'dropdown-submit-form', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2008, - 'canonical_url' => 'https://lab.artlung.com/dropdown-submit-form/', - 'title' => 'dropdown-submit-form', - 'tags' => - array ( - 0 => 'javascript', - ), - 'webmention_last_checked' => 1734922968, - 'webmention_count' => 0, - ), - 'echo-http-host' => - array ( - 'slug' => 'echo-http-host', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2008, - 'canonical_url' => 'https://lab.artlung.com/echo-http-host/', - 'title' => 'HTTP_HOST environment variable in PHP', - 'tags' => - array ( - 0 => 'php', - ), - 'webmention_last_checked' => 1734922969, - 'webmention_count' => 0, - ), - 'email-submission-stinks' => - array ( - 'slug' => 'email-submission-stinks', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2003, - 'canonical_url' => 'https://lab.artlung.com/email-submission-stinks/', - 'title' => 'Form action mailto: stinks', - 'tags' => - array ( - 0 => 'html', - ), - 'webmention_last_checked' => 1734922969, - 'webmention_count' => 1, - ), - 'first-child-last-child' => - array ( - 'slug' => 'first-child-last-child', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2011, - 'canonical_url' => 'https://lab.artlung.com/first-child-last-child/', - 'title' => 'First Child Last Child Demonstration', - 'tags' => - array ( - 0 => 'css', - ), - 'webmention_last_checked' => 1734922969, - 'webmention_count' => 0, - ), - 'font-awesome-sample' => - array ( - 'slug' => 'font-awesome-sample', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2017, - 'canonical_url' => 'https://lab.artlung.com/font-awesome-sample/', - 'title' => 'Font Awesome 4.6.3 Class Explorer (version 4.6.3)', - 'tags' => - array ( - 0 => 'typography', - ), - 'webmention_last_checked' => 1734922969, - 'webmention_count' => 1, - ), - 'form-image-background' => - array ( - 'slug' => 'form-image-background', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2005, - 'canonical_url' => 'https://lab.artlung.com/form-image-background/', - 'title' => 'background images in form elements', - 'tags' => - array ( - 0 => 'css', - 1 => 'html', - ), - 'webmention_last_checked' => 1734922970, - 'webmention_count' => 1, - ), - 'format-time' => - array ( - 'slug' => 'format-time', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2002, - 'canonical_url' => 'https://lab.artlung.com/format-time/', - 'title' => 'JavaScript Date Formatting Demo', - 'tags' => - array ( - 0 => 'javascript', - ), - 'webmention_last_checked' => 1734922970, - 'webmention_count' => 0, - ), - 'frames-mouseover' => - array ( - 'slug' => 'frames-mouseover', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2004, - 'canonical_url' => 'https://lab.artlung.com/frames-mouseover/', - 'title' => 'frames-mouseover', - 'tags' => - array ( - 0 => 'javascript', - ), - 'webmention_last_checked' => 1734922970, - 'webmention_count' => 0, - ), - 'gallery' => - array ( - 'slug' => 'gallery', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2001, - 'canonical_url' => 'https://lab.artlung.com/gallery/', - 'title' => 'AutoMagic Gallery Listing', - 'tags' => - array ( - 0 => 'php', - ), - 'webmention_last_checked' => 1734922970, - 'webmention_count' => 2, - ), - 'generic-validator' => - array ( - 'slug' => 'generic-validator', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2004, - 'canonical_url' => 'https://lab.artlung.com/generic-validator/', - 'title' => 'Generic Validator', - 'tags' => - array ( - 0 => 'javascript', - ), - 'webmention_last_checked' => 1734922971, - 'webmention_count' => 0, - ), - 'gettysburg' => - array ( - 'slug' => 'gettysburg', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2006, - 'canonical_url' => 'https://lab.artlung.com/gettysburg/', - 'title' => 'Gettysburg Address in HTML Buttons', - 'tags' => - array ( - 0 => 'html', - ), - 'webmention_last_checked' => 1734922971, - 'webmention_count' => 1, - ), - 'goal50' => - array ( - 'slug' => 'goal50', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2024, - 'canonical_url' => 'https://lab.artlung.com/goal50/', - 'title' => 'Goal of 50!', - 'tags' => - array ( - 0 => 'css', - 1 => 'javascript', - ), - 'webmention_last_checked' => 1734922971, - 'webmention_count' => 0, - ), - 'group-concat-mysql' => - array ( - 'slug' => 'group-concat-mysql', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2016, - 'canonical_url' => 'https://lab.artlung.com/group-concat-mysql/', - 'title' => 'Using GROUP_CONCAT()', - 'tags' => - array ( - 0 => 'sql', - ), - 'webmention_last_checked' => 1734922971, - 'webmention_count' => 0, - ), - 'history' => - array ( - 'slug' => 'history', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 1999, - 'canonical_url' => 'https://lab.artlung.com/history/', - 'title' => 'How to implement a Forward and Back Buttons', - 'tags' => - array ( - 0 => 'javascript', - ), - 'webmention_last_checked' => 1734922972, - 'webmention_count' => 1, - ), - 'home' => - array ( - 'tags' => - array ( - 0 => 'home', - ), - 'slug' => 'home', - 'canonical_url' => 'https://lab.artlung.com/', - 'year' => 2024, - 'title' => 'The Lab', - 'webmention_last_checked' => 1734989686, - 'webmention_count' => 20, - 'og-image-date' => '2024-12-24 06:38:54', - ), - 'html-2.0' => - array ( - 'slug' => 'html-2.0', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2001, - 'canonical_url' => 'https://lab.artlung.com/html-2.0/', - 'title' => 'HTML 2.0 - An exploration!', - 'tags' => - array ( - 0 => 'html', - ), - 'webmention_last_checked' => 1734922972, - 'webmention_count' => 0, - ), - 'image-border' => - array ( - 'slug' => 'image-border', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 1999, - 'canonical_url' => 'https://lab.artlung.com/image-border/', - 'title' => 'Several Approaches to Do Image Borders of Different Colors: 1999', - 'tags' => - array ( - 0 => 'css', - ), - 'webmention_last_checked' => 1734922972, - 'webmention_count' => 0, - ), - 'image-hover' => - array ( - 'slug' => 'image-hover', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2004, - 'canonical_url' => 'https://lab.artlung.com/image-hover/', - 'title' => 'Image Hover', - 'tags' => - array ( - 0 => 'css', - ), - 'webmention_last_checked' => 1734922972, - 'webmention_count' => 0, - ), - 'input-direction' => - array ( - 'slug' => 'input-direction', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2006, - 'canonical_url' => 'https://lab.artlung.com/input-direction/', - 'title' => 'Change Form Input Direction', - 'tags' => - array ( - 0 => 'html', - ), - 'webmention_last_checked' => 1734922973, - 'webmention_count' => 2, - ), - 'interesting-date-layout' => - array ( - 'slug' => 'interesting-date-layout', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 1999, - 'canonical_url' => 'https://lab.artlung.com/interesting-date-layout/', - 'title' => 'interesting-date-layout', - 'tags' => - array ( - 0 => 'experimental', - ), - 'webmention_last_checked' => 1734922973, - 'webmention_count' => 0, - ), - 'invisible-unspiderable-link' => - array ( - 'slug' => 'invisible-unspiderable-link', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2024, - 'canonical_url' => 'https://lab.artlung.com/invisible-unspiderable-link/', - 'title' => 'Invisible Unspiderable Link', - 'tags' => - array ( - 0 => 'a11y', - 1 => 'css', - 2 => 'javascript', - ), - 'webmention_last_checked' => 1734922973, - 'webmention_count' => 1, - ), - 'is-email' => - array ( - 'slug' => 'is-email', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2009, - 'canonical_url' => 'https://lab.artlung.com/is-email/', - 'title' => 'isEmail() aka is_email() in PHP', - 'tags' => - array ( - 0 => 'php', - ), - 'webmention_last_checked' => 1734922973, - 'webmention_count' => 0, - ), - 'java-tags' => - array ( - 'slug' => 'java-tags', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 1999, - 'canonical_url' => 'https://lab.artlung.com/java-tags/', - 'title' => 'Java Tags 1999', - 'tags' => - array ( - 0 => 'java', - ), - 'webmention_last_checked' => 1734922974, - 'webmention_count' => 2, - ), - 'keycode' => - array ( - 'slug' => 'keycode', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2011, - 'canonical_url' => 'https://lab.artlung.com/keycode/', - 'title' => 'Listen for Key Presses on a Web Page', - 'tags' => - array ( - 0 => 'javascript', - ), - 'webmention_last_checked' => 1734922974, - 'webmention_count' => 0, - ), - 'keystroke-to-go-to-random-page' => - array ( - 'slug' => 'keystroke-to-go-to-random-page', - 'year' => 2024, - 'title' => 'Keystroke to Go to Random Web Page', - 'canonical_url' => 'https://lab.artlung.com/keystroke-to-go-to-random-page/', - 'tags' => - array ( - 0 => 'javascript', - 1 => 'php', - ), - 'og-image-date' => '2024-12-18 15:40:35', - 'webmention_last_checked' => 1734922974, - 'webmention_count' => 0, - 'atom_feed_publish_date' => '2024-12-23 20:00:00', - ), - 'larger-checkbox-with-css' => - array ( - 'slug' => 'larger-checkbox-with-css', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2009, - 'canonical_url' => 'https://lab.artlung.com/larger-checkbox-with-css/', - 'title' => 'Larger Checkbox with CSS', - 'tags' => - array ( - 0 => 'css', - ), - 'webmention_last_checked' => 1734922974, - 'webmention_count' => 1, - ), - 'make-unique-id' => - array ( - 'slug' => 'make-unique-id', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2005, - 'canonical_url' => 'https://lab.artlung.com/make-unique-id/', - 'title' => 'Make a Unique ID in PHP', - 'tags' => - array ( - 0 => 'php', - ), - 'webmention_last_checked' => 1734922975, - 'webmention_count' => 1, - ), - 'mathml' => - array ( - 'slug' => 'mathml', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2024, - 'canonical_url' => 'https://lab.artlung.com/mathml/', - 'title' => 'MathML Test Page', - 'tags' => - array ( - 0 => 'html', - 1 => 'mathml', - ), - 'webmention_last_checked' => 1734922975, - 'webmention_count' => 1, - ), - 'meaningful-html-class-names' => - array ( - 'slug' => 'meaningful-html-class-names', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2024, - 'canonical_url' => 'https://lab.artlung.com/meaningful-html-class-names/', - 'title' => 'What CSS class names are semantically meaningful?', - 'tags' => - array ( - 0 => 'css', - 1 => 'html', - ), - 'webmention_last_checked' => 1734922975, - 'webmention_count' => 0, - ), - 'media' => - array ( - 'slug' => 'media', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2024, - 'canonical_url' => 'https://lab.artlung.com/media/', - 'title' => 'What to do with a directory of images that are letters?', - 'tags' => - array ( - 0 => 'css', - 1 => 'javascript', - ), - 'webmention_last_checked' => 1734922975, - 'webmention_count' => 0, - ), - 'misc-files' => - array ( - 'slug' => 'misc-files', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2016, - 'canonical_url' => 'https://lab.artlung.com/misc-files/', - 'title' => 'Miscellaneous Web Files', - 'tags' => - array ( - 0 => 'apache', - 1 => 'asp', - 2 => 'coldfusion', - 3 => 'google', - 4 => 'html', - 5 => 'http', - ), - 'webmention_last_checked' => 1734922976, - 'webmention_count' => 1, - ), - 'mm_validateform' => - array ( - 'slug' => 'mm_validateform', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2009, - 'canonical_url' => 'https://lab.artlung.com/mm_validateform/', - 'title' => 'MM_validateForm() and MM_findObj() functions', - 'tags' => - array ( - 0 => 'javascript', - 1 => 'macromedia', - ), - 'webmention_last_checked' => 1734922976, - 'webmention_count' => 0, - ), - 'modify-the-box' => - array ( - 'slug' => 'modify-the-box', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2001, - 'canonical_url' => 'https://lab.artlung.com/modify-the-box/', - 'title' => 'Modify The Box (dhtml experiment, 2001)', - 'tags' => - array ( - 0 => 'html', - ), - 'webmention_last_checked' => 1734922976, - 'webmention_count' => 1, - ), - 'mouseover-vote' => - array ( - 'slug' => 'mouseover-vote', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 1999, - 'canonical_url' => 'https://lab.artlung.com/mouseover-vote/', - 'title' => 'Mouseover Vote Thing JavaScript', - 'tags' => - array ( - 0 => 'javascript', - ), - 'webmention_last_checked' => 1734922976, - 'webmention_count' => 0, - ), - 'mouseover-vote100' => - array ( - 'slug' => 'mouseover-vote100', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 1999, - 'canonical_url' => 'https://lab.artlung.com/mouseover-vote100/', - 'title' => 'Mouseover Vote Thing x 100', - 'tags' => - array ( - 0 => 'javascript', - ), - 'webmention_last_checked' => 1734922977, - 'webmention_count' => 0, - ), - 'multiple-select' => - array ( - 'slug' => 'multiple-select', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 1999, - 'canonical_url' => 'https://lab.artlung.com/multiple-select/', - 'title' => 'Multiple, Hierarchical SelectBoxes', - 'tags' => - array ( - 0 => 'javascript', - ), - 'webmention_last_checked' => 1734922977, - 'webmention_count' => 0, - ), - 'multiple-select-v2' => - array ( - 'slug' => 'multiple-select-v2', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2008, - 'canonical_url' => 'https://lab.artlung.com/multiple-select-v2/', - 'title' => 'Multiple, Hierarchical SelectBoxes, version 2', - 'tags' => - array ( - 0 => 'javascript', - ), - 'webmention_last_checked' => 1734922977, - 'webmention_count' => 0, - ), - 'museum' => - array ( - 'slug' => 'museum', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2010, - 'canonical_url' => 'https://lab.artlung.com/museum/', - 'title' => 'Museum Notes (2010)', - 'tags' => - array ( - 0 => 'ux', - ), - 'webmention_last_checked' => 1734922977, - 'webmention_count' => 0, - ), - 'my-first-vbscript-class' => - array ( - 'slug' => 'my-first-vbscript-class', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2016, - 'canonical_url' => 'https://lab.artlung.com/my-first-vbscript-class/', - 'title' => 'My first VBScript Test Class', - 'tags' => - array ( - 0 => 'vbscript', - ), - 'webmention_last_checked' => 1734922978, - 'webmention_count' => 0, - ), - 'navigation-function-vs-asp' => - array ( - 'slug' => 'navigation-function-vs-asp', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2006, - 'canonical_url' => 'https://lab.artlung.com/navigation-function-vs-asp/', - 'title' => 'Navigation Function (in PHP and ASP)', - 'tags' => - array ( - 0 => 'asp', - 1 => 'php', - ), - 'webmention_last_checked' => 1734922978, - 'webmention_count' => 0, - ), - 'navigator-language' => - array ( - 'slug' => 'navigator-language', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2012, - 'canonical_url' => 'https://lab.artlung.com/navigator-language/', - 'title' => 'JavaScript: navigator.language', - 'tags' => - array ( - 0 => 'javascript', - ), - 'webmention_last_checked' => 1734922978, - 'webmention_count' => 0, - ), - 'navigator-object' => - array ( - 'slug' => 'navigator-object', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2010, - 'canonical_url' => 'https://lab.artlung.com/navigator-object/', - 'title' => 'What\'s in the Navigator object?', - 'tags' => - array ( - 0 => 'javascript', - ), - 'webmention_last_checked' => 1734922978, - 'webmention_count' => 0, - ), - 'nonsense-dtd' => - array ( - 'slug' => 'nonsense-dtd', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2011, - 'canonical_url' => 'https://lab.artlung.com/nonsense-dtd/', - 'title' => 'nonsense-dtd', - 'tags' => - array ( - 0 => 'html', - ), - 'webmention_last_checked' => 1734922978, - 'webmention_count' => 0, - ), - 'not-valid-itunes-library' => - array ( - 'slug' => 'not-valid-itunes-library', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2004, - 'canonical_url' => 'https://lab.artlung.com/not-valid-itunes-library/', - 'title' => 'iTunes Error: The iTunes Music Library file cannot be read because it does not appear to be a valid library file', - 'tags' => - array ( - 0 => 'itunes', - ), - 'webmention_last_checked' => 1734922979, - 'webmention_count' => 3, - ), - 'notifications' => - array ( - 'slug' => 'notifications', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2010, - 'canonical_url' => 'https://lab.artlung.com/notifications/', - 'title' => 'window.webkitNotifications support', - 'tags' => - array ( - 0 => 'javascript', - ), - 'webmention_last_checked' => 1734922979, - 'webmention_count' => 0, - ), - 'now-getdate' => - array ( - 'slug' => 'now-getdate', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2017, - 'canonical_url' => 'https://lab.artlung.com/now-getdate/', - 'title' => 'NOW() ~= GETDATE()', - 'tags' => - array ( - 0 => 'sql', - ), - 'webmention_last_checked' => 1734922979, - 'webmention_count' => 0, - ), - 'oncontextmenu' => - array ( - 'slug' => 'oncontextmenu', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2005, - 'canonical_url' => 'https://lab.artlung.com/oncontextmenu/', - 'title' => 'Demonstration of oncontextmenu', - 'tags' => - array ( - 0 => 'javascript', - ), - 'webmention_last_checked' => 1734922980, - 'webmention_count' => 2, - ), - 'onunload-window-open-evil' => - array ( - 'slug' => 'onunload-window-open-evil', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2001, - 'canonical_url' => 'https://lab.artlung.com/onunload-window-open-evil/', - 'title' => 'onunload + window.open = evil', - 'tags' => - array ( - 0 => 'javascript', - 1 => 'ux', - ), - 'webmention_last_checked' => 1734922980, - 'webmention_count' => 1, - ), - 'open-graph-protocol-tools' => - array ( - 'slug' => 'open-graph-protocol-tools', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2010, - 'canonical_url' => 'https://lab.artlung.com/open-graph-protocol-tools/', - 'title' => 'Open Graph Protocol Tools WordPress plugin', - 'tags' => - array ( - 0 => 'facebook', - 1 => 'opengraph', - ), - 'webmention_last_checked' => 1734922980, - 'webmention_count' => 0, - ), - 'outbound-link-confirmation' => - array ( - 'slug' => 'outbound-link-confirmation', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2013, - 'canonical_url' => 'https://lab.artlung.com/outbound-link-confirmation/', - 'title' => 'Outbound Link Confirmation', - 'tags' => - array ( - 0 => 'javascript', - ), - 'webmention_last_checked' => 1734922980, - 'webmention_count' => 1, - ), - 'password-maker' => - array ( - 'slug' => 'password-maker', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2009, - 'canonical_url' => 'https://lab.artlung.com/password-maker/', - 'title' => '20 Random Alphanumeric Passwords', - 'tags' => - array ( - 0 => 'php', - ), - 'webmention_last_checked' => 1734922981, - 'webmention_count' => 0, - ), - 'php-all-websafe' => - array ( - 'slug' => 'php-all-websafe', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2010, - 'canonical_url' => 'https://lab.artlung.com/php-all-websafe/', - 'title' => 'Generate All Websafe Colors with PHP', - 'tags' => - array ( - 0 => 'php', - ), - 'webmention_last_checked' => 1734922981, - 'webmention_count' => 0, - ), - 'php-php3-mod-rewrite' => - array ( - 'slug' => 'php-php3-mod-rewrite', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2001, - 'canonical_url' => 'https://lab.artlung.com/php-php3-mod-rewrite/', - 'title' => 'How to make .php files masquerade as .php3', - 'tags' => - array ( - 0 => 'php', - ), - 'webmention_last_checked' => 1734922981, - 'webmention_count' => 1, - ), - 'pinkvalidation' => - array ( - 'slug' => 'pinkvalidation', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2002, - 'canonical_url' => 'https://lab.artlung.com/pinkvalidation/', - 'title' => 'Changing the color of a form element when it\'s blank', - 'tags' => - array ( - 0 => 'css', - 1 => 'javascript', - ), - 'webmention_last_checked' => 1734922981, - 'webmention_count' => 3, - ), - 'plus-plus-a-string-php' => - array ( - 'slug' => 'plus-plus-a-string-php', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2024, - 'canonical_url' => 'https://lab.artlung.com/plus-plus-a-string-php/', - 'title' => 'plusplus (++) a string in php', - 'tags' => - array ( - 0 => 'php', - ), - 'webmention_last_checked' => 1734922982, - 'webmention_count' => 0, - ), - 'quick-jquery-overlay' => - array ( - 'slug' => 'quick-jquery-overlay', - 'year' => 2024, - 'canonical_url' => 'https://lab.artlung.com/quick-jquery-overlay/', - 'title' => 'Quick Overlay', - 'tags' => - array ( - 0 => 'javascript', - 1 => 'bookmarklet', - ), - 'webmention_last_checked' => 1734922982, - 'webmention_count' => 0, - 'og-image-date' => '2024-12-24 06:38:54', - ), - 'quote-to-dl' => - array ( - 'slug' => 'quote-to-dl', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2024, - 'canonical_url' => 'https://lab.artlung.com/quote-to-dl/', - 'title' => 'Quote to DL (Definition List)', - 'tags' => - array ( - 0 => 'html', - 1 => 'javascript', - 2 => 'tools', - ), - 'webmention_last_checked' => 1734922982, - 'webmention_count' => 0, - ), - 'random-cells' => - array ( - 'slug' => 'random-cells', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2010, - 'canonical_url' => 'https://lab.artlung.com/random-cells/', - 'title' => 'Generate a Random String!', - 'tags' => - array ( - 0 => 'experimental', - 1 => 'javascript', - 2 => 'toys', - ), - 'webmention_last_checked' => 1734922982, - 'webmention_count' => 0, - ), - 'random-content' => - array ( - 'slug' => 'random-content', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2001, - 'canonical_url' => 'https://lab.artlung.com/random-content/', - 'title' => 'Random Content', - 'tags' => - array ( - 0 => 'php', - ), - 'webmention_last_checked' => 1734922983, - 'webmention_count' => 0, - ), - 'random-string-in-sql' => - array ( - 'slug' => 'random-string-in-sql', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2000, - 'canonical_url' => 'https://lab.artlung.com/random-string-in-sql/', - 'title' => 'Random String in SQL', - 'tags' => - array ( - 0 => 'sql', - ), - 'webmention_last_checked' => 1734922983, - 'webmention_count' => 0, - ), - 'recursive-iframe' => - array ( - 'slug' => 'recursive-iframe', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2009, - 'canonical_url' => 'https://lab.artlung.com/recursive-iframe/', - 'title' => 'This page calls an iframe which calls itself. The question, is what happens?', - 'tags' => - array ( - 0 => 'html', - ), - 'webmention_last_checked' => 1734922983, - 'webmention_count' => 0, - ), - 'response-end-is-like-exit-in-php' => - array ( - 'slug' => 'response-end-is-like-exit-in-php', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2016, - 'canonical_url' => 'https://lab.artlung.com/response-end-is-like-exit-in-php/', - 'title' => 'In ASP, Response.End is like exit() in PHP', - 'tags' => - array ( - 0 => 'asp', - 1 => 'php', - ), - 'webmention_last_checked' => 1734922983, - 'webmention_count' => 0, - ), - 'reverse-string-nums' => - array ( - 'slug' => 'reverse-string-nums', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2001, - 'canonical_url' => 'https://lab.artlung.com/reverse-string-nums/', - 'title' => 'Reverse a string, but only the digits', - 'tags' => - array ( - 0 => 'php', - ), - 'webmention_last_checked' => 1734922984, - 'webmention_count' => 0, - ), - 'robots-nocontent' => - array ( - 'slug' => 'robots-nocontent', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2008, - 'canonical_url' => 'https://lab.artlung.com/robots-nocontent/', - 'title' => 'Robots-Nocontent (2008)', - 'tags' => - array ( - 0 => 'html', - ), - 'webmention_last_checked' => 1734922984, - 'webmention_count' => 0, - ), - 'root-color-properties-editor' => - array ( - 'slug' => 'root-color-properties-editor', - 'canonical_url' => 'https://lab.artlung.com/root-color-properties-editor/', - 'year' => 2024, - 'title' => ':root Color Properties Editor (Bookmarklet)', - 'tags' => - array ( - 0 => 'css', - 1 => 'javascript', - 2 => 'bookmarklet', - ), - 'og-image-date' => '2024-12-21 05:09:27', - 'atom_feed_publish_date' => '2024-12-20 21:09:27', - 'webmention_last_checked' => 1734922984, - 'webmention_count' => 0, - ), - 'rosetta' => - array ( - 'slug' => 'rosetta', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2010, - 'canonical_url' => 'https://lab.artlung.com/rosetta/', - 'title' => 'Artlung Rosetta: Comparing dojo, Ext, Glow, jQuery, MooTools & Prototype', - 'tags' => - array ( - 0 => 'javascript', - ), - 'webmention_last_checked' => 1734922984, - 'webmention_count' => 1, - ), - 'rounded-mozilla' => - array ( - 'slug' => 'rounded-mozilla', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2024, - 'canonical_url' => 'https://lab.artlung.com/rounded-mozilla/', - 'title' => 'Mozilla CSS Extensions', - 'tags' => - array ( - 0 => 'css', - ), - 'webmention_last_checked' => 1734922985, - 'webmention_count' => 2, - ), - 'rtf' => - array ( - 'slug' => 'rtf', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2024, - 'canonical_url' => 'https://lab.artlung.com/rtf/', - 'title' => 'Make an RTF Document with PHP', - 'tags' => - array ( - 0 => 'php', - ), - 'webmention_last_checked' => 1734922985, - 'webmention_count' => 1, - ), - 'screen-resolutions' => - array ( - 'slug' => 'screen-resolutions', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2012, - 'canonical_url' => 'https://lab.artlung.com/screen-resolutions/', - 'title' => 'Compared Mobile Screen Resolutions (old)', - 'tags' => - array ( - 0 => 'mobile', - ), - 'webmention_last_checked' => 1734922985, - 'webmention_count' => 0, - ), - 'self-refresh' => - array ( - 'slug' => 'self-refresh', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2008, - 'canonical_url' => 'https://lab.artlung.com/self-refresh/', - 'title' => 'Code to make a page that refresh to itself', - 'tags' => - array ( - 0 => 'javascript', - ), - 'webmention_last_checked' => 1734922985, - 'webmention_count' => 0, - ), - 'server-side-image-map' => - array ( - 'slug' => 'server-side-image-map', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2024, - 'canonical_url' => 'https://lab.artlung.com/server-side-image-map/', - 'title' => 'Server Side Image Map', - 'tags' => - array ( - 0 => 'apache', - 1 => 'html', - ), - 'webmention_last_checked' => 1734922985, - 'webmention_count' => 0, - ), - 'single-pixel-gif' => - array ( - 'slug' => 'single-pixel-gif', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2011, - 'canonical_url' => 'https://lab.artlung.com/single-pixel-gif/', - 'title' => 'Single Pixel Gif as a base 64 encoded string', - 'tags' => - array ( - 0 => 'html', - ), - 'webmention_last_checked' => 1734922986, - 'webmention_count' => 0, - ), - 'six-finger-ai-hand' => - array ( - 'slug' => 'six-finger-ai-hand', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2024, - 'canonical_url' => 'https://lab.artlung.com/six-finger-ai-hand/', - 'title' => 'Six Finger AI Hand (as Slack Emoji)', - 'tags' => - array ( - 0 => 'silly', - ), - 'webmention_last_checked' => 1734922986, - 'webmention_count' => 0, - ), - 'slideshow' => - array ( - 'slug' => 'slideshow', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2003, - 'canonical_url' => 'https://lab.artlung.com/slideshow/', - 'title' => 'SlideShow Implementation', - 'tags' => - array ( - 0 => 'javascript', - ), - 'webmention_last_checked' => 1734922986, - 'webmention_count' => 0, - ), - 'slideshow-img' => - array ( - 'slug' => 'slideshow-img', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 1999, - 'canonical_url' => 'https://lab.artlung.com/slideshow-img/', - 'title' => 'Slideshows Roughly How We did them in 1999', - 'tags' => - array ( - 0 => 'javascript', - ), - 'webmention_last_checked' => 1734922986, - 'webmention_count' => 0, - ), - 'slideshow-plus' => - array ( - 'slug' => 'slideshow-plus', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2003, - 'canonical_url' => 'https://lab.artlung.com/slideshow-plus/', - 'title' => 'slideshow plus! cleaner slideshow which can also move forward automatically', - 'tags' => - array ( - 0 => 'javascript', - ), - 'webmention_last_checked' => 1734922987, - 'webmention_count' => 0, - ), - 'speech-synthesis' => - array ( - 'slug' => 'speech-synthesis', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2024, - 'canonical_url' => 'https://lab.artlung.com/speech-synthesis/', - 'title' => 'Speech Synthesis', - 'tags' => - array ( - 0 => 'javascript', - ), - 'webmention_last_checked' => 1734922987, - 'webmention_count' => 0, - ), - 'spoiler' => - array ( - 'slug' => 'spoiler', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2024, - 'canonical_url' => 'https://lab.artlung.com/spoiler/', - 'title' => 'Spoiler Widget', - 'tags' => - array ( - 0 => 'css', - 1 => 'html', - ), - 'webmention_last_checked' => 1734922987, - 'webmention_count' => 0, - ), - 'sql-server-collations' => - array ( - 'slug' => 'sql-server-collations', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2011, - 'canonical_url' => 'https://lab.artlung.com/sql-server-collations/', - 'title' => 'Show all SQL Server Collations', - 'tags' => - array ( - 0 => 'sql', - ), - 'webmention_last_checked' => 1734922987, - 'webmention_count' => 0, - ), - 't-paamayim-nekudotayim' => - array ( - 'slug' => 't-paamayim-nekudotayim', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2016, - 'canonical_url' => 'https://lab.artlung.com/t-paamayim-nekudotayim/', - 'title' => 'syntax error, unexpected T_PAAMAYIM_NEKUDOTAYIM', - 'tags' => - array ( - 0 => 'php', - ), - 'webmention_last_checked' => 1734922987, - 'webmention_count' => 0, - ), - 'the-problem-with-blur' => - array ( - 'slug' => 'the-problem-with-blur', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2001, - 'canonical_url' => 'https://lab.artlung.com/the-problem-with-blur/', - 'title' => 'Why not to use blur() to make dotted lines go away in MSIE for Windows', - 'tags' => - array ( - 0 => 'a11y', - 1 => 'css', - ), - 'webmention_last_checked' => 1734922988, - 'webmention_count' => 1, - ), - 'three-char-combos' => - array ( - 'slug' => 'three-char-combos', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2006, - 'canonical_url' => 'https://lab.artlung.com/three-char-combos/', - 'title' => 'Permutations of a set of characters', - 'tags' => - array ( - 0 => 'php', - ), - 'webmention_last_checked' => 1734922988, - 'webmention_count' => 0, - ), - 'tips-2001' => - array ( - 'slug' => 'tips-2001', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2001, - 'canonical_url' => 'https://lab.artlung.com/tips-2001/', - 'title' => 'Random HTML Tips', - 'tags' => - array ( - 0 => 'html', - ), - 'webmention_last_checked' => 1734922989, - 'webmention_count' => 1, - ), - 'tr-onmouseover-style' => - array ( - 'slug' => 'tr-onmouseover-style', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 1999, - 'canonical_url' => 'https://lab.artlung.com/tr-onmouseover-style/', - 'title' => 'onMouseover in a TR tag', - 'tags' => - array ( - 0 => 'javascript', - ), - 'webmention_last_checked' => 1734922989, - 'webmention_count' => 2, - ), - 'undocumented-linklint' => - array ( - 'slug' => 'undocumented-linklint', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2002, - 'canonical_url' => 'https://lab.artlung.com/undocumented-linklint/', - 'title' => 'Undocumented Linklint JavaScript Feature', - 'tags' => - array ( - 0 => 'javascript', - ), - 'webmention_last_checked' => 1734922990, - 'webmention_count' => 1, - ), - 'unix-batch-file-rename' => - array ( - 'slug' => 'unix-batch-file-rename', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2004, - 'canonical_url' => 'https://lab.artlung.com/unix-batch-file-rename/', - 'title' => 'Batch File Rename By File Extension in Unix', - 'tags' => - array ( - 0 => 'unix', - ), - 'webmention_last_checked' => 1734922990, - 'webmention_count' => 1, - ), - 'upload' => - array ( - 'slug' => 'upload', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2015, - 'canonical_url' => 'https://lab.artlung.com/upload/', - 'title' => 'Sample Uploader Code', - 'tags' => - array ( - 0 => 'javascript', - 1 => 'php', - ), - 'webmention_last_checked' => 1734922990, - 'webmention_count' => 0, - ), - 'url-compare' => - array ( - 'slug' => 'url-compare', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2024, - 'canonical_url' => 'https://lab.artlung.com/url-compare/', - 'title' => 'Compare Two URLs', - 'tags' => - array ( - 0 => 'http', - 1 => 'tools', - ), - 'webmention_last_checked' => 1734922990, - 'webmention_count' => 0, - ), - 'urlencode' => - array ( - 'slug' => 'urlencode', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2001, - 'canonical_url' => 'https://lab.artlung.com/urlencode/', - 'title' => 'How to Encode URLs / An ASCII to URLEncoded JavaScript', - 'tags' => - array ( - 0 => 'javascript', - ), - 'webmention_last_checked' => 1734922991, - 'webmention_count' => 1, - ), - 'user-preference-for-new-windows' => - array ( - 'slug' => 'user-preference-for-new-windows', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2004, - 'canonical_url' => 'https://lab.artlung.com/user-preference-for-new-windows/', - 'title' => 'Giving Users A Preference Widget for Opening New Windows', - 'tags' => - array ( - 0 => 'html', - 1 => 'php', - 2 => 'ux', - ), - 'webmention_last_checked' => 1734922991, - 'webmention_count' => 1, - ), - 'vaguely-interesting-layout' => - array ( - 'slug' => 'vaguely-interesting-layout', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2010, - 'canonical_url' => 'https://lab.artlung.com/vaguely-interesting-layout/', - 'title' => 'Vaguely Interesting Layout', - 'tags' => - array ( - 0 => 'css', - 1 => 'design', - ), - 'webmention_last_checked' => 1734922991, - 'webmention_count' => 0, - ), - 'validate-checkbox' => - array ( - 'slug' => 'validate-checkbox', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2001, - 'canonical_url' => 'https://lab.artlung.com/validate-checkbox/', - 'title' => 'Only submit if at least one checkbox is checked', - 'tags' => - array ( - 0 => 'javascript', - ), - 'webmention_last_checked' => 1734922991, - 'webmention_count' => 0, - ), - 'validate-image' => - array ( - 'slug' => 'validate-image', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2002, - 'canonical_url' => 'https://lab.artlung.com/validate-image/', - 'title' => 'How do I validate a form when the form has an image as submit?', - 'tags' => - array ( - 0 => 'javascript', - ), - 'webmention_last_checked' => 1734922991, - 'webmention_count' => 0, - ), - 'vbscript-always-elseif-never-else-if' => - array ( - 'slug' => 'vbscript-always-elseif-never-else-if', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2016, - 'canonical_url' => 'https://lab.artlung.com/vbscript-always-elseif-never-else-if/', - 'title' => 'In VBScript, It\'s always "Elseif" and never "Else If"', - 'tags' => - array ( - 0 => 'vbscript', - ), - 'webmention_last_checked' => 1734922992, - 'webmention_count' => 0, - ), - 'w3c-with-and-without-css' => - array ( - 'slug' => 'w3c-with-and-without-css', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2002, - 'canonical_url' => 'https://lab.artlung.com/w3c-with-and-without-css/', - 'title' => 'How Powerful is CSS?', - 'tags' => - array ( - 0 => 'css', - ), - 'webmention_last_checked' => 1734922992, - 'webmention_count' => 1, - ), - 'webmentions' => - array ( - 'title' => 'Webmentions', - 'slug' => 'webmentions', - 'canonical_url' => 'https://lab.artlung.com/webmentions/', - 'year' => 2024, - 'tags' => - array ( - 0 => 'curl', - 1 => 'indieweb', - ), - 'og-image-date' => '2024-12-18 17:51:46', - 'atom_feed_publish_date' => '2024-12-18 17:51:46', - 'webmention_last_checked' => 1734922885, - 'webmention_count' => 2, - ), - 'windows-export-file-list' => - array ( - 'slug' => 'windows-export-file-list', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2000, - 'canonical_url' => 'https://lab.artlung.com/windows-export-file-list/', - 'title' => 'How to Make a file with every file on a C:\\ drive (Windows)', - 'tags' => - array ( - 0 => 'windows', - ), - 'webmention_last_checked' => 1734922992, - 'webmention_count' => 0, - ), - 'ws-ftp-password-decoder' => - array ( - 'slug' => 'ws-ftp-password-decoder', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2001, - 'canonical_url' => 'https://lab.artlung.com/ws-ftp-password-decoder/', - 'title' => 'WS_FTP JavaScript Password Decoder', - 'tags' => - array ( - 0 => 'javascript', - ), - 'webmention_last_checked' => 1734922992, - 'webmention_count' => 0, - ), - 'xml-encode' => - array ( - 'slug' => 'xml-encode', - 'og-image-date' => '2024-12-17 01:21:10', - 'year' => 2009, - 'canonical_url' => 'https://lab.artlung.com/xml-encode/', - 'title' => 'xml_encode()', - 'tags' => - array ( - 0 => 'php', - ), - 'webmention_last_checked' => 1734922993, - 'webmention_count' => 0, - ), - ); +/* START: handled by php generate-nav-value LAST UPDATE 2025-01-11 17:39:37 */ +return $slugs_and_titles = array ( + '50states' => + array ( + 'slug' => '50states', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2003, + 'canonical_url' => 'https://lab.artlung.com/50states/', + 'title' => '50 U.S. States Dropdown Box HTML Code Snippets', + 'tags' => + array ( + 0 => 'html', + ), + 'webmention_last_checked' => 1736616861, + 'webmention_count' => 1, + ), + 'ArtLung-Notes' => + array ( + 'slug' => 'ArtLung-Notes', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2010, + 'canonical_url' => 'https://lab.artlung.com/ArtLung-Notes/', + 'title' => 'ArtLung Notes (Experimental, 2010)', + 'tags' => + array ( + 0 => 'experimental', + ), + 'webmention_last_checked' => 1736616862, + 'webmention_count' => 0, + ), + 'a-outline-none' => + array ( + 'slug' => 'a-outline-none', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2001, + 'canonical_url' => 'https://lab.artlung.com/a-outline-none/', + 'title' => 'outline:none to affect IE5/Mac focus outline', + 'tags' => + array ( + 0 => 'css', + ), + 'webmention_last_checked' => 1736616862, + 'webmention_count' => 1, + ), + 'additive-font-size' => + array ( + 'slug' => 'additive-font-size', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2001, + 'canonical_url' => 'https://lab.artlung.com/additive-font-size/', + 'title' => 'How font-size accumulates', + 'tags' => + array ( + 0 => 'css', + ), + 'webmention_last_checked' => 1736616862, + 'webmention_count' => 1, + ), + 'ancient-tidy-tutorial' => + array ( + 'slug' => 'ancient-tidy-tutorial', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 1999, + 'canonical_url' => 'https://lab.artlung.com/ancient-tidy-tutorial/', + 'title' => 'Ancient HTML Tidy Tutorial', + 'tags' => + array ( + 0 => 'html', + ), + 'webmention_last_checked' => 1736616862, + 'webmention_count' => 1, + ), + 'anti-cache' => + array ( + 'slug' => 'anti-cache', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2001, + 'canonical_url' => 'https://lab.artlung.com/anti-cache/', + 'title' => 'Preventing Browser Cache', + 'tags' => + array ( + 0 => 'asp', + 1 => 'coldfusion', + 2 => 'jsp', + 3 => 'php', + ), + 'webmention_last_checked' => 1736616863, + 'webmention_count' => 2, + ), + 'asp' => + array ( + 'slug' => 'asp', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2001, + 'canonical_url' => 'https://lab.artlung.com/asp/', + 'title' => 'ASP Hello World Script', + 'tags' => + array ( + 0 => 'asp', + ), + 'webmention_last_checked' => 1736616863, + 'webmention_count' => 1, + ), + 'asp-cdonts' => + array ( + 'slug' => 'asp-cdonts', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2005, + 'canonical_url' => 'https://lab.artlung.com/asp-cdonts/', + 'title' => 'ASP: CDONTS snippet', + 'tags' => + array ( + 0 => 'asp', + ), + 'webmention_last_checked' => 1736616863, + 'webmention_count' => 0, + ), + 'asp-selectbox-function' => + array ( + 'slug' => 'asp-selectbox-function', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2016, + 'canonical_url' => 'https://lab.artlung.com/asp-selectbox-function/', + 'title' => 'selectBox function in Traditional ASP', + 'tags' => + array ( + 0 => 'asp', + ), + 'webmention_last_checked' => 1736616863, + 'webmention_count' => 0, + ), + 'autocalc' => + array ( + 'slug' => 'autocalc', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2002, + 'canonical_url' => 'https://lab.artlung.com/autocalc/', + 'title' => 'Auto-Calculator', + 'tags' => + array ( + 0 => 'experimental', + ), + 'webmention_last_checked' => 1736616864, + 'webmention_count' => 2, + ), + 'barcampla6' => + array ( + 'slug' => 'barcampla6', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2008, + 'canonical_url' => 'https://lab.artlung.com/barcampla6/', + 'title' => 'jQuery Basics (barcampla6)', + 'tags' => + array ( + 0 => 'javascript', + ), + 'webmention_last_checked' => 1736616864, + 'webmention_count' => 0, + ), + 'bloggingbot' => + array ( + 'slug' => 'bloggingbot', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2018, + 'canonical_url' => 'https://lab.artlung.com/bloggingbot/', + 'title' => 'Blogging Bot (Markov Chains are Hilarious)', + 'tags' => + array ( + 0 => 'experimental', + 1 => 'markovchains', + ), + 'webmention_last_checked' => 1736616864, + 'webmention_count' => 0, + ), + 'bluedragon-net-installer' => + array ( + 'slug' => 'bluedragon-net-installer', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2010, + 'canonical_url' => 'https://lab.artlung.com/bluedragon-net-installer/', + 'title' => 'Screenshots of an installation of BlueDragon 7.1 for the Microsoft .NET Framework', + 'tags' => + array ( + 0 => 'coldfusion', + 1 => 'dotnet', + ), + 'webmention_last_checked' => 1736616864, + 'webmention_count' => 0, + ), + 'blur' => + array ( + 'slug' => 'blur', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2004, + 'canonical_url' => 'https://lab.artlung.com/blur/', + 'title' => 'CSS Blur Example', + 'tags' => + array ( + 0 => 'css', + ), + 'webmention_last_checked' => 1736616865, + 'webmention_count' => 0, + ), + 'bookmarklets' => + array ( + 'slug' => 'bookmarklets', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2006, + 'canonical_url' => 'https://lab.artlung.com/bookmarklets/', + 'title' => 'Killer Bookmarklets I have Come Across', + 'tags' => + array ( + 0 => 'css', + 1 => 'html', + 2 => 'rss', + 3 => 'bookmarklet', + ), + 'webmention_last_checked' => 1736616865, + 'webmention_count' => 1, + ), + 'border-style' => + array ( + 'slug' => 'border-style', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2002, + 'canonical_url' => 'https://lab.artlung.com/border-style/', + 'title' => 'border-style Experiment', + 'tags' => + array ( + 0 => 'css', + ), + 'webmention_last_checked' => 1736616865, + 'webmention_count' => 1, + ), + 'bug-mac-netscape-forms-update' => + array ( + 'slug' => 'bug-mac-netscape-forms-update', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 1998, + 'canonical_url' => 'https://lab.artlung.com/bug-mac-netscape-forms-update/', + 'title' => 'Netscape/Macintosh Changing Form Button or Submit Input Value Fails', + 'tags' => + array ( + 0 => 'html', + ), + 'webmention_last_checked' => 1736616865, + 'webmention_count' => 0, + ), + 'buttonybutton' => + array ( + 'slug' => 'buttonybutton', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2015, + 'canonical_url' => 'https://lab.artlung.com/buttonybutton/', + 'title' => 'Buttony Button', + 'tags' => + array ( + 0 => 'css', + ), + 'webmention_last_checked' => 1736616866, + 'webmention_count' => 0, + ), + 'buttonybuttonsonbuttons' => + array ( + 'slug' => 'buttonybuttonsonbuttons', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2015, + 'canonical_url' => 'https://lab.artlung.com/buttonybuttonsonbuttons/', + 'title' => 'Big Buttony Buttons on Buttons', + 'tags' => + array ( + 0 => 'css', + ), + 'webmention_last_checked' => 1736616866, + 'webmention_count' => 0, + ), + 'call-original-version-of-redefined-vbscript' => + array ( + 'slug' => 'call-original-version-of-redefined-vbscript', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2016, + 'canonical_url' => 'https://lab.artlung.com/call-original-version-of-redefined-vbscript/', + 'title' => 'Call the native version of a VBScript object', + 'tags' => + array ( + 0 => 'vbscript', + ), + 'webmention_last_checked' => 1736616866, + 'webmention_count' => 0, + ), + 'camel-selector' => + array ( + 'slug' => 'camel-selector', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2002, + 'canonical_url' => 'https://lab.artlung.com/camel-selector/', + 'title' => 'camelCase <-> selector-case w/o Regex', + 'tags' => + array ( + 0 => 'javascript', + ), + 'webmention_last_checked' => 1736616866, + 'webmention_count' => 1, + ), + 'canvas-html-render-download' => + array ( + 'slug' => 'canvas-html-render-download', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2024, + 'canonical_url' => 'https://lab.artlung.com/canvas-html-render-download/', + 'title' => 'Canvas HTML Render Download not working', + 'tags' => + array ( + 0 => 'html', + ), + 'webmention_last_checked' => 1736616867, + 'webmention_count' => 0, + ), + 'change-all-links' => + array ( + 'slug' => 'change-all-links', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2000, + 'canonical_url' => 'https://lab.artlung.com/change-all-links/', + 'title' => 'How can I change every link on a page to something new?', + 'tags' => + array ( + 0 => 'javascript', + ), + 'webmention_last_checked' => 1736616867, + 'webmention_count' => 0, + ), + 'change-content-in-iframe-with-prototype' => + array ( + 'slug' => 'change-content-in-iframe-with-prototype', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2010, + 'canonical_url' => 'https://lab.artlung.com/change-content-in-iframe-with-prototype/', + 'title' => 'What is the way to access IFrame\'s element using Prototype $ method?', + 'tags' => + array ( + 0 => 'javascript', + ), + 'webmention_last_checked' => 1736616867, + 'webmention_count' => 0, + ), + 'change-document-background-color' => + array ( + 'slug' => 'change-document-background-color', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 1999, + 'canonical_url' => 'https://lab.artlung.com/change-document-background-color/', + 'title' => 'Change document background color', + 'tags' => + array ( + 0 => 'css', + 1 => 'javascript', + ), + 'webmention_last_checked' => 1736616867, + 'webmention_count' => 0, + ), + 'change-space-between-paragraphs' => + array ( + 'slug' => 'change-space-between-paragraphs', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2006, + 'canonical_url' => 'https://lab.artlung.com/change-space-between-paragraphs/', + 'title' => 'Changing the spacing between paragraphs', + 'tags' => + array ( + 0 => 'css', + 1 => 'typography', + ), + 'webmention_last_checked' => 1736616867, + 'webmention_count' => 0, + ), + 'checkbox-validate' => + array ( + 'slug' => 'checkbox-validate', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2001, + 'canonical_url' => 'https://lab.artlung.com/checkbox-validate/', + 'title' => 'Checkbox Validator', + 'tags' => + array ( + 0 => 'javascript', + ), + 'webmention_last_checked' => 1736616868, + 'webmention_count' => 1, + ), + 'circles-crawl' => + array ( + 'slug' => 'circles-crawl', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2010, + 'canonical_url' => 'https://lab.artlung.com/circles-crawl/', + 'title' => 'Circles Crawl and you click them (jQuery)', + 'tags' => + array ( + 0 => 'javascript', + ), + 'webmention_last_checked' => 1736616868, + 'webmention_count' => 0, + ), + 'clock-concept' => + array ( + 'slug' => 'clock-concept', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2024, + 'canonical_url' => 'https://lab.artlung.com/clock-concept/', + 'title' => 'Clock Concept (1998-2024)', + 'tags' => + array ( + 0 => 'css', + 1 => 'experimental', + 2 => 'javascript', + ), + 'webmention_last_checked' => 1736616868, + 'webmention_count' => 0, + ), + 'coldfusion-break-db' => + array ( + 'slug' => 'coldfusion-break-db', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2003, + 'canonical_url' => 'https://lab.artlung.com/coldfusion-break-db/', + 'title' => 'Ways to break a lock on an Access Database with Cold Fusion', + 'tags' => + array ( + 0 => 'coldfusion', + ), + 'webmention_last_checked' => 1736616868, + 'webmention_count' => 1, + ), + 'coldfusion-force-download' => + array ( + 'slug' => 'coldfusion-force-download', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2016, + 'canonical_url' => 'https://lab.artlung.com/coldfusion-force-download/', + 'title' => 'ColdFusion: Force Download of File', + 'tags' => + array ( + 0 => 'coldfusion', + ), + 'webmention_last_checked' => 1736616869, + 'webmention_count' => 0, + ), + 'coldfusion-titlecase' => + array ( + 'slug' => 'coldfusion-titlecase', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2003, + 'canonical_url' => 'https://lab.artlung.com/coldfusion-titlecase/', + 'title' => 'ColdFusion TitleCase Function', + 'tags' => + array ( + 0 => 'coldfusion', + ), + 'webmention_last_checked' => 1736616869, + 'webmention_count' => 1, + ), + 'compare-fields' => + array ( + 'slug' => 'compare-fields', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2002, + 'canonical_url' => 'https://lab.artlung.com/compare-fields/', + 'title' => 'Compare two fields, Submit only if they are the same:', + 'tags' => + array ( + 0 => 'javascript', + ), + 'webmention_last_checked' => 1736616869, + 'webmention_count' => 0, + ), + 'connect-to-remote-server' => + array ( + 'slug' => 'connect-to-remote-server', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2004, + 'canonical_url' => 'https://lab.artlung.com/connect-to-remote-server/', + 'title' => 'Simple example connecting to a remote server', + 'tags' => + array ( + 0 => 'php', + ), + 'webmention_last_checked' => 1736616869, + 'webmention_count' => 0, + ), + 'copy-to-clipboard-javascript' => + array ( + 'slug' => 'copy-to-clipboard-javascript', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2005, + 'canonical_url' => 'https://lab.artlung.com/copy-to-clipboard-javascript/', + 'title' => 'Copy to Clipboard JavaScript', + 'tags' => + array ( + 0 => 'javascript', + ), + 'webmention_last_checked' => 1736616869, + 'webmention_count' => 0, + ), + 'countdown' => + array ( + 'slug' => 'countdown', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2005, + 'canonical_url' => 'https://lab.artlung.com/countdown/', + 'title' => 'Super Simple Countdown in PHP.', + 'tags' => + array ( + 0 => 'php', + ), + 'webmention_last_checked' => 1736616870, + 'webmention_count' => 1, + ), + 'countdown-daily-to-a-time' => + array ( + 'slug' => 'countdown-daily-to-a-time', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2011, + 'canonical_url' => 'https://lab.artlung.com/countdown-daily-to-a-time/', + 'title' => 'Countdown to a time of the day every day (PHP)', + 'tags' => + array ( + 0 => 'php', + ), + 'webmention_last_checked' => 1736616870, + 'webmention_count' => 0, + ), + 'countdown-to-the-first' => + array ( + 'slug' => 'countdown-to-the-first', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2011, + 'canonical_url' => 'https://lab.artlung.com/countdown-to-the-first/', + 'title' => 'Countdown in to the first of the month in PHP', + 'tags' => + array ( + 0 => 'php', + ), + 'webmention_last_checked' => 1736616870, + 'webmention_count' => 0, + ), + 'crossdomain' => + array ( + 'slug' => 'crossdomain', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2009, + 'canonical_url' => 'https://lab.artlung.com/crossdomain/', + 'title' => 'crossdomain.xml', + 'tags' => + array ( + 0 => 'http', + ), + 'webmention_last_checked' => 1736616870, + 'webmention_count' => 0, + ), + 'css3-smiley' => + array ( + 'slug' => 'css3-smiley', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2024, + 'canonical_url' => 'https://lab.artlung.com/css3-smiley/', + 'title' => 'CSS3 Smiley in Color', + 'tags' => + array ( + 0 => 'css', + ), + 'webmention_last_checked' => 1736616871, + 'webmention_count' => 1, + ), + 'detagger' => + array ( + 'slug' => 'detagger', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2005, + 'canonical_url' => 'https://lab.artlung.com/detagger/', + 'title' => 'Fun Detagger Script', + 'tags' => + array ( + 0 => 'php', + ), + 'webmention_last_checked' => 1736616871, + 'webmention_count' => 1, + ), + 'detection-real' => + array ( + 'slug' => 'detection-real', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 1999, + 'canonical_url' => 'https://lab.artlung.com/detection-real/', + 'title' => 'RealMedia Plugin Detection', + 'tags' => + array ( + 0 => 'javascript', + 1 => 'realplayer', + ), + 'webmention_last_checked' => 1736616871, + 'webmention_count' => 0, + ), + 'display-inline-block' => + array ( + 'slug' => 'display-inline-block', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2009, + 'canonical_url' => 'https://lab.artlung.com/display-inline-block/', + 'title' => 'CSS workaround for external link with small icon (2007)', + 'tags' => + array ( + 0 => 'css', + ), + 'webmention_last_checked' => 1736616871, + 'webmention_count' => 0, + ), + 'domain-name-sql-excel' => + array ( + 'slug' => 'domain-name-sql-excel', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2016, + 'canonical_url' => 'https://lab.artlung.com/domain-name-sql-excel/', + 'title' => 'Extract Domain Names from a list of email addresses', + 'tags' => + array ( + 0 => 'sql', + ), + 'webmention_last_checked' => 1736616872, + 'webmention_count' => 0, + ), + 'dropdown' => + array ( + 'slug' => 'dropdown', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2004, + 'canonical_url' => 'https://lab.artlung.com/dropdown/', + 'title' => 'Dropdown Navigation', + 'tags' => + array ( + 0 => 'html', + 1 => 'javascript', + ), + 'webmention_last_checked' => 1736616872, + 'webmention_count' => 2, + ), + 'dropdown-focus' => + array ( + 'slug' => 'dropdown-focus', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2001, + 'canonical_url' => 'https://lab.artlung.com/dropdown-focus/', + 'title' => 'Setting Dropdown Focus', + 'tags' => + array ( + 0 => 'javascript', + ), + 'webmention_last_checked' => 1736616872, + 'webmention_count' => 0, + ), + 'dropdown-frames' => + array ( + 'slug' => 'dropdown-frames', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2008, + 'canonical_url' => 'https://lab.artlung.com/dropdown-frames/', + 'title' => 'Dropdown Navigation in Frames', + 'tags' => + array ( + 0 => 'javascript', + ), + 'webmention_last_checked' => 1736616872, + 'webmention_count' => 0, + ), + 'dropdown-only-some-new-window' => + array ( + 'slug' => 'dropdown-only-some-new-window', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2002, + 'canonical_url' => 'https://lab.artlung.com/dropdown-only-some-new-window/', + 'title' => 'Dropdown Navigation Where Only Some Links Open New Windows', + 'tags' => + array ( + 0 => 'javascript', + ), + 'webmention_last_checked' => 1736616872, + 'webmention_count' => 2, + ), + 'dropdown-submit-form' => + array ( + 'slug' => 'dropdown-submit-form', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2008, + 'canonical_url' => 'https://lab.artlung.com/dropdown-submit-form/', + 'title' => 'dropdown-submit-form', + 'tags' => + array ( + 0 => 'javascript', + ), + 'webmention_last_checked' => 1736616873, + 'webmention_count' => 0, + ), + 'echo-http-host' => + array ( + 'slug' => 'echo-http-host', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2008, + 'canonical_url' => 'https://lab.artlung.com/echo-http-host/', + 'title' => 'HTTP_HOST environment variable in PHP', + 'tags' => + array ( + 0 => 'php', + ), + 'webmention_last_checked' => 1736616873, + 'webmention_count' => 0, + ), + 'email-submission-stinks' => + array ( + 'slug' => 'email-submission-stinks', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2003, + 'canonical_url' => 'https://lab.artlung.com/email-submission-stinks/', + 'title' => 'Form action mailto: stinks', + 'tags' => + array ( + 0 => 'html', + ), + 'webmention_last_checked' => 1736616873, + 'webmention_count' => 1, + ), + 'first-child-last-child' => + array ( + 'slug' => 'first-child-last-child', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2011, + 'canonical_url' => 'https://lab.artlung.com/first-child-last-child/', + 'title' => 'First Child Last Child Demonstration', + 'tags' => + array ( + 0 => 'css', + ), + 'webmention_last_checked' => 1736616873, + 'webmention_count' => 0, + ), + 'font-awesome-sample' => + array ( + 'slug' => 'font-awesome-sample', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2017, + 'canonical_url' => 'https://lab.artlung.com/font-awesome-sample/', + 'title' => 'Font Awesome 4.6.3 Class Explorer (version 4.6.3)', + 'tags' => + array ( + 0 => 'typography', + ), + 'webmention_last_checked' => 1736616874, + 'webmention_count' => 1, + ), + 'form-image-background' => + array ( + 'slug' => 'form-image-background', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2005, + 'canonical_url' => 'https://lab.artlung.com/form-image-background/', + 'title' => 'background images in form elements', + 'tags' => + array ( + 0 => 'css', + 1 => 'html', + ), + 'webmention_last_checked' => 1736616874, + 'webmention_count' => 1, + ), + 'format-time' => + array ( + 'slug' => 'format-time', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2002, + 'canonical_url' => 'https://lab.artlung.com/format-time/', + 'title' => 'JavaScript Date Formatting Demo', + 'tags' => + array ( + 0 => 'javascript', + ), + 'webmention_last_checked' => 1736616874, + 'webmention_count' => 0, + ), + 'frames-mouseover' => + array ( + 'slug' => 'frames-mouseover', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2004, + 'canonical_url' => 'https://lab.artlung.com/frames-mouseover/', + 'title' => 'frames-mouseover', + 'tags' => + array ( + 0 => 'javascript', + ), + 'webmention_last_checked' => 1736616874, + 'webmention_count' => 0, + ), + 'gallery' => + array ( + 'slug' => 'gallery', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2001, + 'canonical_url' => 'https://lab.artlung.com/gallery/', + 'title' => 'AutoMagic Gallery Listing', + 'tags' => + array ( + 0 => 'php', + ), + 'webmention_last_checked' => 1736616875, + 'webmention_count' => 2, + ), + 'generic-validator' => + array ( + 'slug' => 'generic-validator', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2004, + 'canonical_url' => 'https://lab.artlung.com/generic-validator/', + 'title' => 'Generic Validator', + 'tags' => + array ( + 0 => 'javascript', + ), + 'webmention_last_checked' => 1736616875, + 'webmention_count' => 0, + ), + 'gettysburg' => + array ( + 'slug' => 'gettysburg', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2006, + 'canonical_url' => 'https://lab.artlung.com/gettysburg/', + 'title' => 'Gettysburg Address in HTML Buttons', + 'tags' => + array ( + 0 => 'html', + ), + 'webmention_last_checked' => 1736616875, + 'webmention_count' => 1, + ), + 'goal50' => + array ( + 'slug' => 'goal50', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2024, + 'canonical_url' => 'https://lab.artlung.com/goal50/', + 'title' => 'Goal of 50!', + 'tags' => + array ( + 0 => 'css', + 1 => 'javascript', + ), + 'webmention_last_checked' => 1736616875, + 'webmention_count' => 0, + ), + 'group-concat-mysql' => + array ( + 'slug' => 'group-concat-mysql', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2016, + 'canonical_url' => 'https://lab.artlung.com/group-concat-mysql/', + 'title' => 'Using GROUP_CONCAT()', + 'tags' => + array ( + 0 => 'sql', + ), + 'webmention_last_checked' => 1736616876, + 'webmention_count' => 0, + ), + 'history' => + array ( + 'slug' => 'history', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 1999, + 'canonical_url' => 'https://lab.artlung.com/history/', + 'title' => 'How to implement a Forward and Back Buttons', + 'tags' => + array ( + 0 => 'javascript', + ), + 'webmention_last_checked' => 1736616876, + 'webmention_count' => 1, + ), + 'home' => + array ( + 'tags' => + array ( + 0 => 'home', + ), + 'slug' => 'home', + 'canonical_url' => 'https://lab.artlung.com/', + 'year' => 2024, + 'title' => 'The Lab', + 'webmention_count' => 20, + 'og-image-date' => '2024-12-24 06:38:54', + 'webmention_last_checked' => 1736616876, + ), + 'html-2.0' => + array ( + 'slug' => 'html-2.0', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2001, + 'canonical_url' => 'https://lab.artlung.com/html-2.0/', + 'title' => 'HTML 2.0 - An exploration!', + 'tags' => + array ( + 0 => 'html', + ), + 'webmention_last_checked' => 1736616876, + 'webmention_count' => 0, + ), + 'image-border' => + array ( + 'slug' => 'image-border', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 1999, + 'canonical_url' => 'https://lab.artlung.com/image-border/', + 'title' => 'Several Approaches to Do Image Borders of Different Colors: 1999', + 'tags' => + array ( + 0 => 'css', + ), + 'webmention_last_checked' => 1736616877, + 'webmention_count' => 0, + ), + 'image-hover' => + array ( + 'slug' => 'image-hover', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2004, + 'canonical_url' => 'https://lab.artlung.com/image-hover/', + 'title' => 'Image Hover', + 'tags' => + array ( + 0 => 'css', + ), + 'webmention_last_checked' => 1736616877, + 'webmention_count' => 0, + ), + 'input-direction' => + array ( + 'slug' => 'input-direction', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2006, + 'canonical_url' => 'https://lab.artlung.com/input-direction/', + 'title' => 'Change Form Input Direction', + 'tags' => + array ( + 0 => 'html', + ), + 'webmention_last_checked' => 1736616877, + 'webmention_count' => 2, + ), + 'interesting-date-layout' => + array ( + 'slug' => 'interesting-date-layout', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 1999, + 'canonical_url' => 'https://lab.artlung.com/interesting-date-layout/', + 'title' => 'interesting-date-layout', + 'tags' => + array ( + 0 => 'experimental', + ), + 'webmention_last_checked' => 1736616877, + 'webmention_count' => 0, + ), + 'invisible-unspiderable-link' => + array ( + 'slug' => 'invisible-unspiderable-link', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2024, + 'canonical_url' => 'https://lab.artlung.com/invisible-unspiderable-link/', + 'title' => 'Invisible Unspiderable Link', + 'tags' => + array ( + 0 => 'a11y', + 1 => 'css', + 2 => 'javascript', + ), + 'webmention_last_checked' => 1736616878, + 'webmention_count' => 1, + ), + 'is-email' => + array ( + 'slug' => 'is-email', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2009, + 'canonical_url' => 'https://lab.artlung.com/is-email/', + 'title' => 'isEmail() aka is_email() in PHP', + 'tags' => + array ( + 0 => 'php', + ), + 'webmention_last_checked' => 1736616878, + 'webmention_count' => 0, + ), + 'java-tags' => + array ( + 'slug' => 'java-tags', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 1999, + 'canonical_url' => 'https://lab.artlung.com/java-tags/', + 'title' => 'Java Tags 1999', + 'tags' => + array ( + 0 => 'java', + ), + 'webmention_last_checked' => 1736616878, + 'webmention_count' => 2, + ), + 'keycode' => + array ( + 'slug' => 'keycode', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2011, + 'canonical_url' => 'https://lab.artlung.com/keycode/', + 'title' => 'Listen for Key Presses on a Web Page', + 'tags' => + array ( + 0 => 'javascript', + ), + 'webmention_last_checked' => 1736616878, + 'webmention_count' => 0, + ), + 'keystroke-to-go-to-random-page' => + array ( + 'slug' => 'keystroke-to-go-to-random-page', + 'year' => 2024, + 'title' => 'Keystroke to Go to Random Web Page', + 'canonical_url' => 'https://lab.artlung.com/keystroke-to-go-to-random-page/', + 'tags' => + array ( + 0 => 'javascript', + 1 => 'php', + ), + 'og-image-date' => '2024-12-18 15:40:35', + 'webmention_last_checked' => 1736616878, + 'webmention_count' => 0, + 'atom_feed_publish_date' => '2024-12-23 20:00:00', + ), + 'larger-checkbox-with-css' => + array ( + 'slug' => 'larger-checkbox-with-css', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2009, + 'canonical_url' => 'https://lab.artlung.com/larger-checkbox-with-css/', + 'title' => 'Larger Checkbox with CSS', + 'tags' => + array ( + 0 => 'css', + ), + 'webmention_last_checked' => 1736616879, + 'webmention_count' => 1, + ), + 'make-unique-id' => + array ( + 'slug' => 'make-unique-id', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2005, + 'canonical_url' => 'https://lab.artlung.com/make-unique-id/', + 'title' => 'Make a Unique ID in PHP', + 'tags' => + array ( + 0 => 'php', + ), + 'webmention_last_checked' => 1736616879, + 'webmention_count' => 1, + ), + 'mathml' => + array ( + 'slug' => 'mathml', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2024, + 'canonical_url' => 'https://lab.artlung.com/mathml/', + 'title' => 'MathML Test Page', + 'tags' => + array ( + 0 => 'html', + 1 => 'mathml', + ), + 'webmention_last_checked' => 1736616879, + 'webmention_count' => 1, + ), + 'meaningful-html-class-names' => + array ( + 'slug' => 'meaningful-html-class-names', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2024, + 'canonical_url' => 'https://lab.artlung.com/meaningful-html-class-names/', + 'title' => 'What CSS class names are semantically meaningful?', + 'tags' => + array ( + 0 => 'css', + 1 => 'html', + ), + 'webmention_last_checked' => 1736616879, + 'webmention_count' => 0, + ), + 'media' => + array ( + 'slug' => 'media', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2024, + 'canonical_url' => 'https://lab.artlung.com/media/', + 'title' => 'What to do with a directory of images that are letters?', + 'tags' => + array ( + 0 => 'css', + 1 => 'javascript', + ), + 'webmention_last_checked' => 1736616880, + 'webmention_count' => 0, + ), + 'misc-files' => + array ( + 'slug' => 'misc-files', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2016, + 'canonical_url' => 'https://lab.artlung.com/misc-files/', + 'title' => 'Miscellaneous Web Files', + 'tags' => + array ( + 0 => 'apache', + 1 => 'asp', + 2 => 'coldfusion', + 3 => 'google', + 4 => 'html', + 5 => 'http', + ), + 'webmention_last_checked' => 1736616880, + 'webmention_count' => 1, + ), + 'mm_validateform' => + array ( + 'slug' => 'mm_validateform', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2009, + 'canonical_url' => 'https://lab.artlung.com/mm_validateform/', + 'title' => 'MM_validateForm() and MM_findObj() functions', + 'tags' => + array ( + 0 => 'javascript', + 1 => 'macromedia', + ), + 'webmention_last_checked' => 1736616880, + 'webmention_count' => 0, + ), + 'modify-the-box' => + array ( + 'slug' => 'modify-the-box', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2001, + 'canonical_url' => 'https://lab.artlung.com/modify-the-box/', + 'title' => 'Modify The Box (dhtml experiment, 2001)', + 'tags' => + array ( + 0 => 'html', + ), + 'webmention_last_checked' => 1736616880, + 'webmention_count' => 1, + ), + 'mouseover-vote' => + array ( + 'slug' => 'mouseover-vote', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 1999, + 'canonical_url' => 'https://lab.artlung.com/mouseover-vote/', + 'title' => 'Mouseover Vote Thing JavaScript', + 'tags' => + array ( + 0 => 'javascript', + ), + 'webmention_last_checked' => 1736616881, + 'webmention_count' => 0, + ), + 'mouseover-vote100' => + array ( + 'slug' => 'mouseover-vote100', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 1999, + 'canonical_url' => 'https://lab.artlung.com/mouseover-vote100/', + 'title' => 'Mouseover Vote Thing x 100', + 'tags' => + array ( + 0 => 'javascript', + ), + 'webmention_last_checked' => 1736616881, + 'webmention_count' => 0, + ), + 'multiple-select' => + array ( + 'slug' => 'multiple-select', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 1999, + 'canonical_url' => 'https://lab.artlung.com/multiple-select/', + 'title' => 'Multiple, Hierarchical SelectBoxes', + 'tags' => + array ( + 0 => 'javascript', + ), + 'webmention_last_checked' => 1736616881, + 'webmention_count' => 0, + ), + 'multiple-select-v2' => + array ( + 'slug' => 'multiple-select-v2', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2008, + 'canonical_url' => 'https://lab.artlung.com/multiple-select-v2/', + 'title' => 'Multiple, Hierarchical SelectBoxes, version 2', + 'tags' => + array ( + 0 => 'javascript', + ), + 'webmention_last_checked' => 1736616881, + 'webmention_count' => 0, + ), + 'museum' => + array ( + 'slug' => 'museum', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2010, + 'canonical_url' => 'https://lab.artlung.com/museum/', + 'title' => 'Museum Notes (2010)', + 'tags' => + array ( + 0 => 'ux', + ), + 'webmention_last_checked' => 1736616881, + 'webmention_count' => 0, + ), + 'my-first-vbscript-class' => + array ( + 'slug' => 'my-first-vbscript-class', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2016, + 'canonical_url' => 'https://lab.artlung.com/my-first-vbscript-class/', + 'title' => 'My first VBScript Test Class', + 'tags' => + array ( + 0 => 'vbscript', + ), + 'webmention_last_checked' => 1736616882, + 'webmention_count' => 0, + ), + 'navigation-function-vs-asp' => + array ( + 'slug' => 'navigation-function-vs-asp', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2006, + 'canonical_url' => 'https://lab.artlung.com/navigation-function-vs-asp/', + 'title' => 'Navigation Function (in PHP and ASP)', + 'tags' => + array ( + 0 => 'asp', + 1 => 'php', + ), + 'webmention_last_checked' => 1736616882, + 'webmention_count' => 0, + ), + 'navigator-language' => + array ( + 'slug' => 'navigator-language', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2012, + 'canonical_url' => 'https://lab.artlung.com/navigator-language/', + 'title' => 'JavaScript: navigator.language', + 'tags' => + array ( + 0 => 'javascript', + ), + 'webmention_last_checked' => 1736616882, + 'webmention_count' => 0, + ), + 'navigator-object' => + array ( + 'slug' => 'navigator-object', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2010, + 'canonical_url' => 'https://lab.artlung.com/navigator-object/', + 'title' => 'What\'s in the Navigator object?', + 'tags' => + array ( + 0 => 'javascript', + ), + 'webmention_last_checked' => 1736616882, + 'webmention_count' => 0, + ), + 'nonsense-dtd' => + array ( + 'slug' => 'nonsense-dtd', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2011, + 'canonical_url' => 'https://lab.artlung.com/nonsense-dtd/', + 'title' => 'nonsense-dtd', + 'tags' => + array ( + 0 => 'html', + ), + 'webmention_last_checked' => 1736616883, + 'webmention_count' => 0, + ), + 'not-valid-itunes-library' => + array ( + 'slug' => 'not-valid-itunes-library', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2004, + 'canonical_url' => 'https://lab.artlung.com/not-valid-itunes-library/', + 'title' => 'iTunes Error: The iTunes Music Library file cannot be read because it does not appear to be a valid library file', + 'tags' => + array ( + 0 => 'itunes', + ), + 'webmention_last_checked' => 1736616883, + 'webmention_count' => 3, + ), + 'notifications' => + array ( + 'slug' => 'notifications', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2010, + 'canonical_url' => 'https://lab.artlung.com/notifications/', + 'title' => 'window.webkitNotifications support', + 'tags' => + array ( + 0 => 'javascript', + ), + 'webmention_last_checked' => 1736616883, + 'webmention_count' => 0, + ), + 'now-getdate' => + array ( + 'slug' => 'now-getdate', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2017, + 'canonical_url' => 'https://lab.artlung.com/now-getdate/', + 'title' => 'NOW() ~= GETDATE()', + 'tags' => + array ( + 0 => 'sql', + ), + 'webmention_last_checked' => 1736616883, + 'webmention_count' => 0, + ), + 'oncontextmenu' => + array ( + 'slug' => 'oncontextmenu', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2005, + 'canonical_url' => 'https://lab.artlung.com/oncontextmenu/', + 'title' => 'Demonstration of oncontextmenu', + 'tags' => + array ( + 0 => 'javascript', + ), + 'webmention_last_checked' => 1736616884, + 'webmention_count' => 2, + ), + 'onunload-window-open-evil' => + array ( + 'slug' => 'onunload-window-open-evil', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2001, + 'canonical_url' => 'https://lab.artlung.com/onunload-window-open-evil/', + 'title' => 'onunload + window.open = evil', + 'tags' => + array ( + 0 => 'javascript', + 1 => 'ux', + ), + 'webmention_last_checked' => 1736616884, + 'webmention_count' => 1, + ), + 'open-graph-protocol-tools' => + array ( + 'slug' => 'open-graph-protocol-tools', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2010, + 'canonical_url' => 'https://lab.artlung.com/open-graph-protocol-tools/', + 'title' => 'Open Graph Protocol Tools WordPress plugin', + 'tags' => + array ( + 0 => 'facebook', + 1 => 'opengraph', + ), + 'webmention_last_checked' => 1736616884, + 'webmention_count' => 0, + ), + 'outbound-link-confirmation' => + array ( + 'slug' => 'outbound-link-confirmation', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2013, + 'canonical_url' => 'https://lab.artlung.com/outbound-link-confirmation/', + 'title' => 'Outbound Link Confirmation', + 'tags' => + array ( + 0 => 'javascript', + ), + 'webmention_last_checked' => 1736616884, + 'webmention_count' => 1, + ), + 'password-maker' => + array ( + 'slug' => 'password-maker', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2009, + 'canonical_url' => 'https://lab.artlung.com/password-maker/', + 'title' => '20 Random Alphanumeric Passwords', + 'tags' => + array ( + 0 => 'php', + ), + 'webmention_last_checked' => 1736616884, + 'webmention_count' => 0, + ), + 'php-all-websafe' => + array ( + 'slug' => 'php-all-websafe', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2010, + 'canonical_url' => 'https://lab.artlung.com/php-all-websafe/', + 'title' => 'Generate All Websafe Colors with PHP', + 'tags' => + array ( + 0 => 'php', + ), + 'webmention_last_checked' => 1736616885, + 'webmention_count' => 0, + ), + 'php-php3-mod-rewrite' => + array ( + 'slug' => 'php-php3-mod-rewrite', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2001, + 'canonical_url' => 'https://lab.artlung.com/php-php3-mod-rewrite/', + 'title' => 'How to make .php files masquerade as .php3', + 'tags' => + array ( + 0 => 'php', + ), + 'webmention_last_checked' => 1736616885, + 'webmention_count' => 1, + ), + 'pinkvalidation' => + array ( + 'slug' => 'pinkvalidation', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2002, + 'canonical_url' => 'https://lab.artlung.com/pinkvalidation/', + 'title' => 'Changing the color of a form element when it\'s blank', + 'tags' => + array ( + 0 => 'css', + 1 => 'javascript', + ), + 'webmention_last_checked' => 1736616885, + 'webmention_count' => 3, + ), + 'plus-plus-a-string-php' => + array ( + 'slug' => 'plus-plus-a-string-php', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2024, + 'canonical_url' => 'https://lab.artlung.com/plus-plus-a-string-php/', + 'title' => 'plusplus (++) a string in php', + 'tags' => + array ( + 0 => 'php', + ), + 'webmention_last_checked' => 1736616885, + 'webmention_count' => 0, + ), + 'quick-jquery-overlay' => + array ( + 'slug' => 'quick-jquery-overlay', + 'year' => 2024, + 'canonical_url' => 'https://lab.artlung.com/quick-jquery-overlay/', + 'title' => 'Quick Overlay', + 'tags' => + array ( + 0 => 'javascript', + 1 => 'bookmarklet', + ), + 'webmention_last_checked' => 1736616886, + 'webmention_count' => 0, + 'shot_scraper_extra_params' => '--javascript "document.querySelector(\'.bookmarklet\').click();"', + 'og-image-date' => '2024-12-24 16:10:11', + ), + 'quote-to-dl' => + array ( + 'slug' => 'quote-to-dl', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2024, + 'canonical_url' => 'https://lab.artlung.com/quote-to-dl/', + 'title' => 'Quote to DL (Definition List)', + 'tags' => + array ( + 0 => 'html', + 1 => 'javascript', + 2 => 'tools', + ), + 'webmention_last_checked' => 1736616886, + 'webmention_count' => 0, + ), + 'random-cells' => + array ( + 'slug' => 'random-cells', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2010, + 'canonical_url' => 'https://lab.artlung.com/random-cells/', + 'title' => 'Generate a Random String!', + 'tags' => + array ( + 0 => 'experimental', + 1 => 'javascript', + 2 => 'toys', + ), + 'webmention_last_checked' => 1736616886, + 'webmention_count' => 0, + ), + 'random-content' => + array ( + 'slug' => 'random-content', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2001, + 'canonical_url' => 'https://lab.artlung.com/random-content/', + 'title' => 'Random Content', + 'tags' => + array ( + 0 => 'php', + ), + 'webmention_last_checked' => 1736616886, + 'webmention_count' => 0, + ), + 'random-string-in-sql' => + array ( + 'slug' => 'random-string-in-sql', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2000, + 'canonical_url' => 'https://lab.artlung.com/random-string-in-sql/', + 'title' => 'Random String in SQL', + 'tags' => + array ( + 0 => 'sql', + ), + 'webmention_last_checked' => 1736616887, + 'webmention_count' => 0, + ), + 'recursive-iframe' => + array ( + 'slug' => 'recursive-iframe', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2009, + 'canonical_url' => 'https://lab.artlung.com/recursive-iframe/', + 'title' => 'This page calls an iframe which calls itself. The question, is what happens?', + 'tags' => + array ( + 0 => 'html', + ), + 'webmention_last_checked' => 1736616887, + 'webmention_count' => 0, + ), + 'response-end-is-like-exit-in-php' => + array ( + 'slug' => 'response-end-is-like-exit-in-php', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2016, + 'canonical_url' => 'https://lab.artlung.com/response-end-is-like-exit-in-php/', + 'title' => 'In ASP, Response.End is like exit() in PHP', + 'tags' => + array ( + 0 => 'asp', + 1 => 'php', + ), + 'webmention_last_checked' => 1736616887, + 'webmention_count' => 0, + ), + 'reverse-string-nums' => + array ( + 'slug' => 'reverse-string-nums', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2001, + 'canonical_url' => 'https://lab.artlung.com/reverse-string-nums/', + 'title' => 'Reverse a string, but only the digits', + 'tags' => + array ( + 0 => 'php', + ), + 'webmention_last_checked' => 1736616887, + 'webmention_count' => 0, + ), + 'robots-nocontent' => + array ( + 'slug' => 'robots-nocontent', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2008, + 'canonical_url' => 'https://lab.artlung.com/robots-nocontent/', + 'title' => 'Robots-Nocontent (2008)', + 'tags' => + array ( + 0 => 'html', + ), + 'webmention_last_checked' => 1736616887, + 'webmention_count' => 0, + ), + 'root-color-properties-editor' => + array ( + 'slug' => 'root-color-properties-editor', + 'canonical_url' => 'https://lab.artlung.com/root-color-properties-editor/', + 'year' => 2024, + 'title' => ':root Color Properties Editor (Bookmarklet)', + 'tags' => + array ( + 0 => 'css', + 1 => 'javascript', + 2 => 'bookmarklet', + ), + 'atom_feed_publish_date' => '2024-12-20 21:09:27', + 'webmention_last_checked' => 1736616888, + 'webmention_count' => 0, + 'shot_scraper_extra_params' => '--javascript "document.querySelector(\'.bookmarklet\').click();"', + 'og-image-date' => '2024-12-24 17:57:58', + ), + 'rosetta' => + array ( + 'slug' => 'rosetta', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2010, + 'canonical_url' => 'https://lab.artlung.com/rosetta/', + 'title' => 'Artlung Rosetta: Comparing dojo, Ext, Glow, jQuery, MooTools & Prototype', + 'tags' => + array ( + 0 => 'javascript', + ), + 'webmention_last_checked' => 1736616888, + 'webmention_count' => 1, + ), + 'rounded-mozilla' => + array ( + 'slug' => 'rounded-mozilla', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2024, + 'canonical_url' => 'https://lab.artlung.com/rounded-mozilla/', + 'title' => 'Mozilla CSS Extensions', + 'tags' => + array ( + 0 => 'css', + ), + 'webmention_last_checked' => 1736616888, + 'webmention_count' => 2, + ), + 'rtf' => + array ( + 'slug' => 'rtf', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2024, + 'canonical_url' => 'https://lab.artlung.com/rtf/', + 'title' => 'Make an RTF Document with PHP', + 'tags' => + array ( + 0 => 'php', + ), + 'webmention_last_checked' => 1736616888, + 'webmention_count' => 1, + ), + 'screen-resolutions' => + array ( + 'slug' => 'screen-resolutions', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2012, + 'canonical_url' => 'https://lab.artlung.com/screen-resolutions/', + 'title' => 'Compared Mobile Screen Resolutions (old)', + 'tags' => + array ( + 0 => 'mobile', + ), + 'webmention_last_checked' => 1736616889, + 'webmention_count' => 0, + ), + 'self-refresh' => + array ( + 'slug' => 'self-refresh', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2008, + 'canonical_url' => 'https://lab.artlung.com/self-refresh/', + 'title' => 'Code to make a page that refresh to itself', + 'tags' => + array ( + 0 => 'javascript', + ), + 'webmention_last_checked' => 1736616889, + 'webmention_count' => 0, + ), + 'server-side-image-map' => + array ( + 'slug' => 'server-side-image-map', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2024, + 'canonical_url' => 'https://lab.artlung.com/server-side-image-map/', + 'title' => 'Server Side Image Map', + 'tags' => + array ( + 0 => 'apache', + 1 => 'html', + ), + 'webmention_last_checked' => 1736616889, + 'webmention_count' => 0, + ), + 'single-pixel-gif' => + array ( + 'slug' => 'single-pixel-gif', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2011, + 'canonical_url' => 'https://lab.artlung.com/single-pixel-gif/', + 'title' => 'Single Pixel Gif as a base 64 encoded string', + 'tags' => + array ( + 0 => 'html', + ), + 'webmention_last_checked' => 1736616889, + 'webmention_count' => 0, + ), + 'six-finger-ai-hand' => + array ( + 'slug' => 'six-finger-ai-hand', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2024, + 'canonical_url' => 'https://lab.artlung.com/six-finger-ai-hand/', + 'title' => 'Six Finger AI Hand (as Slack Emoji)', + 'tags' => + array ( + 0 => 'silly', + ), + 'webmention_last_checked' => 1736616889, + 'webmention_count' => 0, + ), + 'slideshow' => + array ( + 'slug' => 'slideshow', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2003, + 'canonical_url' => 'https://lab.artlung.com/slideshow/', + 'title' => 'SlideShow Implementation', + 'tags' => + array ( + 0 => 'javascript', + ), + 'webmention_last_checked' => 1736616890, + 'webmention_count' => 0, + ), + 'slideshow-img' => + array ( + 'slug' => 'slideshow-img', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 1999, + 'canonical_url' => 'https://lab.artlung.com/slideshow-img/', + 'title' => 'Slideshows Roughly How We did them in 1999', + 'tags' => + array ( + 0 => 'javascript', + ), + 'webmention_last_checked' => 1736616890, + 'webmention_count' => 0, + ), + 'slideshow-plus' => + array ( + 'slug' => 'slideshow-plus', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2003, + 'canonical_url' => 'https://lab.artlung.com/slideshow-plus/', + 'title' => 'slideshow plus! cleaner slideshow which can also move forward automatically', + 'tags' => + array ( + 0 => 'javascript', + ), + 'webmention_last_checked' => 1736616890, + 'webmention_count' => 0, + ), + 'speech-synthesis' => + array ( + 'slug' => 'speech-synthesis', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2024, + 'canonical_url' => 'https://lab.artlung.com/speech-synthesis/', + 'title' => 'Speech Synthesis', + 'tags' => + array ( + 0 => 'javascript', + ), + 'webmention_last_checked' => 1736616890, + 'webmention_count' => 0, + ), + 'spoiler' => + array ( + 'slug' => 'spoiler', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2024, + 'canonical_url' => 'https://lab.artlung.com/spoiler/', + 'title' => 'Spoiler Widget', + 'tags' => + array ( + 0 => 'css', + 1 => 'html', + ), + 'webmention_last_checked' => 1736616890, + 'webmention_count' => 0, + ), + 'sql-server-collations' => + array ( + 'slug' => 'sql-server-collations', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2011, + 'canonical_url' => 'https://lab.artlung.com/sql-server-collations/', + 'title' => 'Show all SQL Server Collations', + 'tags' => + array ( + 0 => 'sql', + ), + 'webmention_last_checked' => 1736616891, + 'webmention_count' => 0, + ), + 't-paamayim-nekudotayim' => + array ( + 'slug' => 't-paamayim-nekudotayim', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2016, + 'canonical_url' => 'https://lab.artlung.com/t-paamayim-nekudotayim/', + 'title' => 'syntax error, unexpected T_PAAMAYIM_NEKUDOTAYIM', + 'tags' => + array ( + 0 => 'php', + ), + 'webmention_last_checked' => 1736616891, + 'webmention_count' => 0, + ), + 'the-problem-with-blur' => + array ( + 'slug' => 'the-problem-with-blur', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2001, + 'canonical_url' => 'https://lab.artlung.com/the-problem-with-blur/', + 'title' => 'Why not to use blur() to make dotted lines go away in MSIE for Windows', + 'tags' => + array ( + 0 => 'a11y', + 1 => 'css', + ), + 'webmention_last_checked' => 1736616891, + 'webmention_count' => 1, + ), + 'three-char-combos' => + array ( + 'slug' => 'three-char-combos', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2006, + 'canonical_url' => 'https://lab.artlung.com/three-char-combos/', + 'title' => 'Permutations of a set of characters', + 'tags' => + array ( + 0 => 'php', + ), + 'webmention_last_checked' => 1736616891, + 'webmention_count' => 0, + ), + 'tips-2001' => + array ( + 'slug' => 'tips-2001', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2001, + 'canonical_url' => 'https://lab.artlung.com/tips-2001/', + 'title' => 'Random HTML Tips', + 'tags' => + array ( + 0 => 'html', + ), + 'webmention_last_checked' => 1736616892, + 'webmention_count' => 1, + ), + 'tr-onmouseover-style' => + array ( + 'slug' => 'tr-onmouseover-style', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 1999, + 'canonical_url' => 'https://lab.artlung.com/tr-onmouseover-style/', + 'title' => 'onMouseover in a TR tag', + 'tags' => + array ( + 0 => 'javascript', + ), + 'webmention_last_checked' => 1736616892, + 'webmention_count' => 2, + ), + 'undocumented-linklint' => + array ( + 'slug' => 'undocumented-linklint', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2002, + 'canonical_url' => 'https://lab.artlung.com/undocumented-linklint/', + 'title' => 'Undocumented Linklint JavaScript Feature', + 'tags' => + array ( + 0 => 'javascript', + ), + 'webmention_last_checked' => 1736616892, + 'webmention_count' => 1, + ), + 'unix-batch-file-rename' => + array ( + 'slug' => 'unix-batch-file-rename', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2004, + 'canonical_url' => 'https://lab.artlung.com/unix-batch-file-rename/', + 'title' => 'Batch File Rename By File Extension in Unix', + 'tags' => + array ( + 0 => 'unix', + ), + 'webmention_last_checked' => 1736616892, + 'webmention_count' => 1, + ), + 'upload' => + array ( + 'slug' => 'upload', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2015, + 'canonical_url' => 'https://lab.artlung.com/upload/', + 'title' => 'Sample Uploader Code', + 'tags' => + array ( + 0 => 'javascript', + 1 => 'php', + ), + 'webmention_last_checked' => 1736616893, + 'webmention_count' => 0, + ), + 'url-compare' => + array ( + 'slug' => 'url-compare', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2024, + 'canonical_url' => 'https://lab.artlung.com/url-compare/', + 'title' => 'Compare Two URLs', + 'tags' => + array ( + 0 => 'http', + 1 => 'tools', + ), + 'webmention_last_checked' => 1736616893, + 'webmention_count' => 0, + ), + 'urlencode' => + array ( + 'slug' => 'urlencode', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2001, + 'canonical_url' => 'https://lab.artlung.com/urlencode/', + 'title' => 'How to Encode URLs / An ASCII to URLEncoded JavaScript', + 'tags' => + array ( + 0 => 'javascript', + ), + 'webmention_last_checked' => 1736616893, + 'webmention_count' => 1, + ), + 'user-preference-for-new-windows' => + array ( + 'slug' => 'user-preference-for-new-windows', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2004, + 'canonical_url' => 'https://lab.artlung.com/user-preference-for-new-windows/', + 'title' => 'Giving Users A Preference Widget for Opening New Windows', + 'tags' => + array ( + 0 => 'html', + 1 => 'php', + 2 => 'ux', + ), + 'webmention_last_checked' => 1736616893, + 'webmention_count' => 1, + ), + 'vaguely-interesting-layout' => + array ( + 'slug' => 'vaguely-interesting-layout', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2010, + 'canonical_url' => 'https://lab.artlung.com/vaguely-interesting-layout/', + 'title' => 'Vaguely Interesting Layout', + 'tags' => + array ( + 0 => 'css', + 1 => 'design', + ), + 'webmention_last_checked' => 1736616894, + 'webmention_count' => 0, + ), + 'validate-checkbox' => + array ( + 'slug' => 'validate-checkbox', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2001, + 'canonical_url' => 'https://lab.artlung.com/validate-checkbox/', + 'title' => 'Only submit if at least one checkbox is checked', + 'tags' => + array ( + 0 => 'javascript', + ), + 'webmention_last_checked' => 1736616894, + 'webmention_count' => 0, + ), + 'validate-image' => + array ( + 'slug' => 'validate-image', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2002, + 'canonical_url' => 'https://lab.artlung.com/validate-image/', + 'title' => 'How do I validate a form when the form has an image as submit?', + 'tags' => + array ( + 0 => 'javascript', + ), + 'webmention_last_checked' => 1736616894, + 'webmention_count' => 0, + ), + 'vbscript-always-elseif-never-else-if' => + array ( + 'slug' => 'vbscript-always-elseif-never-else-if', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2016, + 'canonical_url' => 'https://lab.artlung.com/vbscript-always-elseif-never-else-if/', + 'title' => 'In VBScript, It\'s always "Elseif" and never "Else If"', + 'tags' => + array ( + 0 => 'vbscript', + ), + 'webmention_last_checked' => 1736616894, + 'webmention_count' => 0, + ), + 'w3c-with-and-without-css' => + array ( + 'slug' => 'w3c-with-and-without-css', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2002, + 'canonical_url' => 'https://lab.artlung.com/w3c-with-and-without-css/', + 'title' => 'How Powerful is CSS?', + 'tags' => + array ( + 0 => 'css', + ), + 'webmention_last_checked' => 1736616895, + 'webmention_count' => 1, + ), + 'webmentions' => + array ( + 'title' => 'Webmentions', + 'slug' => 'webmentions', + 'canonical_url' => 'https://lab.artlung.com/webmentions/', + 'year' => 2024, + 'tags' => + array ( + 0 => 'curl', + 1 => 'indieweb', + ), + 'og-image-date' => '2024-12-18 17:51:46', + 'atom_feed_publish_date' => '2024-12-18 17:51:46', + 'webmention_last_checked' => 1736616895, + 'webmention_count' => 2, + ), + 'windows-export-file-list' => + array ( + 'slug' => 'windows-export-file-list', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2000, + 'canonical_url' => 'https://lab.artlung.com/windows-export-file-list/', + 'title' => 'How to Make a file with every file on a C:\\ drive (Windows)', + 'tags' => + array ( + 0 => 'windows', + ), + 'webmention_last_checked' => 1736616895, + 'webmention_count' => 0, + ), + 'ws-ftp-password-decoder' => + array ( + 'slug' => 'ws-ftp-password-decoder', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2001, + 'canonical_url' => 'https://lab.artlung.com/ws-ftp-password-decoder/', + 'title' => 'WS_FTP JavaScript Password Decoder', + 'tags' => + array ( + 0 => 'javascript', + ), + 'webmention_last_checked' => 1736616895, + 'webmention_count' => 0, + ), + 'xml-encode' => + array ( + 'slug' => 'xml-encode', + 'og-image-date' => '2024-12-17 01:21:10', + 'year' => 2009, + 'canonical_url' => 'https://lab.artlung.com/xml-encode/', + 'title' => 'xml_encode()', + 'tags' => + array ( + 0 => 'php', + ), + 'webmention_last_checked' => 1736616895, + 'webmention_count' => 0, + ), +); /* END: handled by php generate-nav-value */ diff --git a/composer.json b/composer.json index 89be21c..2dcc07f 100644 --- a/composer.json +++ b/composer.json @@ -30,6 +30,7 @@ "test": "phpunit --bootstrap loader.php", "sniff": "phpcs --standard=phpcs.xml *.php */*.php */*/*.php */*/*/*.php", "snifferfix" : "phpcbf --standard=phpcs.xml *.php */*.php */*/*.php */*/*/*.php", - "updatenav": "php generate-nav-value.php" + "updatenav": "php generate-nav-value.php", + "webmentions": "php get-webmentions.php" } } diff --git a/get-webmentions.php b/get-webmentions.php index dc1506d..6ffe272 100644 --- a/get-webmentions.php +++ b/get-webmentions.php @@ -31,8 +31,8 @@ if ($count > 0) { print "Count for $slug is " . count($webmentions) . "\n"; } - $yaml = Spyc::YAMLDump($yaml); - file_put_contents($yaml_file, $yaml); + $yaml_text = Spyc::YAMLDump($yaml); + file_put_contents($yaml_file, $yaml_text); } @@ -57,7 +57,7 @@ continue; } - $yaml[\ArtlungLab\WebmentionIoGetter::WEBMENTION_LAST_CHECKED_KEY] = time(); + $yaml[\ArtlungLab\WebmentionIoGetter::WEBMENTION_LAST_CHECKED_KEY] = time() ?? 0; $yaml = Spyc::YAMLDump($yaml); @@ -73,5 +73,5 @@ } echo "Done. If the webmention count changed,\n"; -echo "be sure to run generate-nav-value.php\n"; +echo "be sure to run composer updatenav\n"; echo "and composer snifferfix\n"; \ No newline at end of file diff --git a/web/50states/50states.yaml b/web/50states/50states.yaml index 02a7212..32ebb8f 100644 --- a/web/50states/50states.yaml +++ b/web/50states/50states.yaml @@ -8,5 +8,5 @@ title: > Snippets tags: - html -webmention_last_checked: 1734922957 +webmention_last_checked: 1736616861 webmention_count: 1 diff --git a/web/ArtLung-Notes/ArtLung-Notes.yaml b/web/ArtLung-Notes/ArtLung-Notes.yaml index 26946e0..83e7a58 100644 --- a/web/ArtLung-Notes/ArtLung-Notes.yaml +++ b/web/ArtLung-Notes/ArtLung-Notes.yaml @@ -6,5 +6,5 @@ canonical_url: https://lab.artlung.com/ArtLung-Notes/ title: ArtLung Notes (Experimental, 2010) tags: - experimental -webmention_last_checked: 1734922957 +webmention_last_checked: 1736616862 webmention_count: 0 diff --git a/web/a-outline-none/a-outline-none.yaml b/web/a-outline-none/a-outline-none.yaml index 8044a79..e50f03a 100644 --- a/web/a-outline-none/a-outline-none.yaml +++ b/web/a-outline-none/a-outline-none.yaml @@ -8,5 +8,5 @@ title: > outline tags: - css -webmention_last_checked: 1734922957 +webmention_last_checked: 1736616862 webmention_count: 1 diff --git a/web/additive-font-size/additive-font-size.yaml b/web/additive-font-size/additive-font-size.yaml index 1dba05f..545487c 100644 --- a/web/additive-font-size/additive-font-size.yaml +++ b/web/additive-font-size/additive-font-size.yaml @@ -7,5 +7,5 @@ canonical_url: > title: How font-size accumulates tags: - css -webmention_last_checked: 1734922958 +webmention_last_checked: 1736616862 webmention_count: 1 diff --git a/web/ancient-tidy-tutorial/ancient-tidy-tutorial.yaml b/web/ancient-tidy-tutorial/ancient-tidy-tutorial.yaml index 0726e18..2fa8aac 100644 --- a/web/ancient-tidy-tutorial/ancient-tidy-tutorial.yaml +++ b/web/ancient-tidy-tutorial/ancient-tidy-tutorial.yaml @@ -7,5 +7,5 @@ canonical_url: > title: Ancient HTML Tidy Tutorial tags: - html -webmention_last_checked: 1734922958 +webmention_last_checked: 1736616862 webmention_count: 1 diff --git a/web/anti-cache/anti-cache.yaml b/web/anti-cache/anti-cache.yaml index 243b699..53532d5 100644 --- a/web/anti-cache/anti-cache.yaml +++ b/web/anti-cache/anti-cache.yaml @@ -9,5 +9,5 @@ tags: - coldfusion - jsp - php -webmention_last_checked: 1734989345 +webmention_last_checked: 1736616863 webmention_count: 2 diff --git a/web/asp-cdonts/asp-cdonts.yaml b/web/asp-cdonts/asp-cdonts.yaml index 995c240..4debcdf 100644 --- a/web/asp-cdonts/asp-cdonts.yaml +++ b/web/asp-cdonts/asp-cdonts.yaml @@ -6,5 +6,5 @@ canonical_url: https://lab.artlung.com/asp-cdonts/ title: 'ASP: CDONTS snippet' tags: - asp -webmention_last_checked: 1734922959 +webmention_last_checked: 1736616863 webmention_count: 0 diff --git a/web/asp-selectbox-function/asp-selectbox-function.yaml b/web/asp-selectbox-function/asp-selectbox-function.yaml index 9134828..7826472 100644 --- a/web/asp-selectbox-function/asp-selectbox-function.yaml +++ b/web/asp-selectbox-function/asp-selectbox-function.yaml @@ -7,5 +7,5 @@ canonical_url: > title: selectBox function in Traditional ASP tags: - asp -webmention_last_checked: 1734922959 +webmention_last_checked: 1736616863 webmention_count: 0 diff --git a/web/asp/asp.yaml b/web/asp/asp.yaml index 6703006..6f34b29 100644 --- a/web/asp/asp.yaml +++ b/web/asp/asp.yaml @@ -6,5 +6,5 @@ canonical_url: https://lab.artlung.com/asp/ title: ASP Hello World Script tags: - asp -webmention_last_checked: 1734922959 +webmention_last_checked: 1736616863 webmention_count: 1 diff --git a/web/autocalc/autocalc.yaml b/web/autocalc/autocalc.yaml index 59f7e3a..f42f8cc 100644 --- a/web/autocalc/autocalc.yaml +++ b/web/autocalc/autocalc.yaml @@ -6,5 +6,5 @@ canonical_url: https://lab.artlung.com/autocalc/ title: Auto-Calculator tags: - experimental -webmention_last_checked: 1734922959 +webmention_last_checked: 1736616864 webmention_count: 2 diff --git a/web/barcampla6/barcampla6.yaml b/web/barcampla6/barcampla6.yaml index 4f7dc27..bd2d559 100644 --- a/web/barcampla6/barcampla6.yaml +++ b/web/barcampla6/barcampla6.yaml @@ -6,5 +6,5 @@ canonical_url: https://lab.artlung.com/barcampla6/ title: jQuery Basics (barcampla6) tags: - javascript -webmention_last_checked: 1734922960 +webmention_last_checked: 1736616864 webmention_count: 0 diff --git a/web/bloggingbot/bloggingbot.yaml b/web/bloggingbot/bloggingbot.yaml index c751a98..efabfd0 100644 --- a/web/bloggingbot/bloggingbot.yaml +++ b/web/bloggingbot/bloggingbot.yaml @@ -9,5 +9,5 @@ title: > tags: - experimental - markovchains -webmention_last_checked: 1734922960 +webmention_last_checked: 1736616864 webmention_count: 0 diff --git a/web/bluedragon-net-installer/bluedragon-net-installer.yaml b/web/bluedragon-net-installer/bluedragon-net-installer.yaml index 35c3ee7..bbb3b0b 100644 --- a/web/bluedragon-net-installer/bluedragon-net-installer.yaml +++ b/web/bluedragon-net-installer/bluedragon-net-installer.yaml @@ -11,5 +11,5 @@ title: > tags: - coldfusion - dotnet -webmention_last_checked: 1734922960 +webmention_last_checked: 1736616864 webmention_count: 0 diff --git a/web/blur/blur.yaml b/web/blur/blur.yaml index 5c80143..203ce28 100644 --- a/web/blur/blur.yaml +++ b/web/blur/blur.yaml @@ -6,5 +6,5 @@ canonical_url: https://lab.artlung.com/blur/ title: CSS Blur Example tags: - css -webmention_last_checked: 1734922960 +webmention_last_checked: 1736616865 webmention_count: 0 diff --git a/web/bookmarklets/bookmarklets.yaml b/web/bookmarklets/bookmarklets.yaml index bcf31a7..40d7fdd 100644 --- a/web/bookmarklets/bookmarklets.yaml +++ b/web/bookmarklets/bookmarklets.yaml @@ -9,5 +9,5 @@ tags: - html - rss - bookmarklet -webmention_last_checked: 1734922961 +webmention_last_checked: 1736616865 webmention_count: 1 diff --git a/web/border-style/border-style.yaml b/web/border-style/border-style.yaml index ae35761..01c5353 100644 --- a/web/border-style/border-style.yaml +++ b/web/border-style/border-style.yaml @@ -6,5 +6,5 @@ canonical_url: https://lab.artlung.com/border-style/ title: border-style Experiment tags: - css -webmention_last_checked: 1734922961 +webmention_last_checked: 1736616865 webmention_count: 1 diff --git a/web/bug-mac-netscape-forms-update/bug-mac-netscape-forms-update.yaml b/web/bug-mac-netscape-forms-update/bug-mac-netscape-forms-update.yaml index 2967140..8dfeabb 100644 --- a/web/bug-mac-netscape-forms-update/bug-mac-netscape-forms-update.yaml +++ b/web/bug-mac-netscape-forms-update/bug-mac-netscape-forms-update.yaml @@ -9,5 +9,5 @@ title: > or Submit Input Value Fails tags: - html -webmention_last_checked: 1734922961 +webmention_last_checked: 1736616865 webmention_count: 0 diff --git a/web/buttonybutton/buttonybutton.yaml b/web/buttonybutton/buttonybutton.yaml index b9008d6..5dd145f 100644 --- a/web/buttonybutton/buttonybutton.yaml +++ b/web/buttonybutton/buttonybutton.yaml @@ -6,5 +6,5 @@ canonical_url: https://lab.artlung.com/buttonybutton/ title: Buttony Button tags: - css -webmention_last_checked: 1734922961 +webmention_last_checked: 1736616866 webmention_count: 0 diff --git a/web/buttonybuttonsonbuttons/buttonybuttonsonbuttons.yaml b/web/buttonybuttonsonbuttons/buttonybuttonsonbuttons.yaml index 03f9eee..a79c66c 100644 --- a/web/buttonybuttonsonbuttons/buttonybuttonsonbuttons.yaml +++ b/web/buttonybuttonsonbuttons/buttonybuttonsonbuttons.yaml @@ -7,5 +7,5 @@ canonical_url: > title: Big Buttony Buttons on Buttons tags: - css -webmention_last_checked: 1734922961 +webmention_last_checked: 1736616866 webmention_count: 0 diff --git a/web/call-original-version-of-redefined-vbscript/call-original-version-of-redefined-vbscript.yaml b/web/call-original-version-of-redefined-vbscript/call-original-version-of-redefined-vbscript.yaml index f28b329..435ccb1 100644 --- a/web/call-original-version-of-redefined-vbscript/call-original-version-of-redefined-vbscript.yaml +++ b/web/call-original-version-of-redefined-vbscript/call-original-version-of-redefined-vbscript.yaml @@ -10,5 +10,5 @@ title: > object tags: - vbscript -webmention_last_checked: 1734922962 +webmention_last_checked: 1736616866 webmention_count: 0 diff --git a/web/camel-selector/camel-selector.yaml b/web/camel-selector/camel-selector.yaml index 3f58afe..00e0fc7 100644 --- a/web/camel-selector/camel-selector.yaml +++ b/web/camel-selector/camel-selector.yaml @@ -6,5 +6,5 @@ canonical_url: https://lab.artlung.com/camel-selector/ title: 'camelCase <-> selector-case w/o Regex' tags: - javascript -webmention_last_checked: 1734922962 +webmention_last_checked: 1736616866 webmention_count: 1 diff --git a/web/canvas-html-render-download/canvas-html-render-download.yaml b/web/canvas-html-render-download/canvas-html-render-download.yaml index 237bb4b..ef2eb62 100644 --- a/web/canvas-html-render-download/canvas-html-render-download.yaml +++ b/web/canvas-html-render-download/canvas-html-render-download.yaml @@ -7,5 +7,5 @@ canonical_url: > title: Canvas HTML Render Download not working tags: - html -webmention_last_checked: 1734922962 +webmention_last_checked: 1736616867 webmention_count: 0 diff --git a/web/change-all-links/change-all-links.yaml b/web/change-all-links/change-all-links.yaml index e0c93cb..b0e7123 100644 --- a/web/change-all-links/change-all-links.yaml +++ b/web/change-all-links/change-all-links.yaml @@ -9,5 +9,5 @@ title: > something new? tags: - javascript -webmention_last_checked: 1734922962 +webmention_last_checked: 1736616867 webmention_count: 0 diff --git a/web/change-content-in-iframe-with-prototype/change-content-in-iframe-with-prototype.yaml b/web/change-content-in-iframe-with-prototype/change-content-in-iframe-with-prototype.yaml index c610000..4c14edc 100644 --- a/web/change-content-in-iframe-with-prototype/change-content-in-iframe-with-prototype.yaml +++ b/web/change-content-in-iframe-with-prototype/change-content-in-iframe-with-prototype.yaml @@ -7,5 +7,5 @@ canonical_url: > title: "What is the way to access IFrame's element using Prototype $ method?" tags: - javascript -webmention_last_checked: 1734922963 +webmention_last_checked: 1736616867 webmention_count: 0 diff --git a/web/change-document-background-color/change-document-background-color.yaml b/web/change-document-background-color/change-document-background-color.yaml index 78cbafc..fd7c9ea 100644 --- a/web/change-document-background-color/change-document-background-color.yaml +++ b/web/change-document-background-color/change-document-background-color.yaml @@ -8,5 +8,5 @@ title: Change document background color tags: - css - javascript -webmention_last_checked: 1734922963 +webmention_last_checked: 1736616867 webmention_count: 0 diff --git a/web/change-space-between-paragraphs/change-space-between-paragraphs.yaml b/web/change-space-between-paragraphs/change-space-between-paragraphs.yaml index 4d0610e..0ae3721 100644 --- a/web/change-space-between-paragraphs/change-space-between-paragraphs.yaml +++ b/web/change-space-between-paragraphs/change-space-between-paragraphs.yaml @@ -8,5 +8,5 @@ title: Changing the spacing between paragraphs tags: - css - typography -webmention_last_checked: 1734922963 +webmention_last_checked: 1736616867 webmention_count: 0 diff --git a/web/checkbox-validate/checkbox-validate.yaml b/web/checkbox-validate/checkbox-validate.yaml index 2fce1d7..185ea17 100644 --- a/web/checkbox-validate/checkbox-validate.yaml +++ b/web/checkbox-validate/checkbox-validate.yaml @@ -7,5 +7,5 @@ canonical_url: > title: Checkbox Validator tags: - javascript -webmention_last_checked: 1734922963 +webmention_last_checked: 1736616868 webmention_count: 1 diff --git a/web/circles-crawl/circles-crawl.yaml b/web/circles-crawl/circles-crawl.yaml index 02fb47d..b4900a4 100644 --- a/web/circles-crawl/circles-crawl.yaml +++ b/web/circles-crawl/circles-crawl.yaml @@ -8,5 +8,5 @@ title: > (jQuery) tags: - javascript -webmention_last_checked: 1734922964 +webmention_last_checked: 1736616868 webmention_count: 0 diff --git a/web/clock-concept/clock-concept.yaml b/web/clock-concept/clock-concept.yaml index 7e9ef58..6004f88 100644 --- a/web/clock-concept/clock-concept.yaml +++ b/web/clock-concept/clock-concept.yaml @@ -8,5 +8,5 @@ tags: - css - experimental - javascript -webmention_last_checked: 1734922964 +webmention_last_checked: 1736616868 webmention_count: 0 diff --git a/web/coldfusion-break-db/coldfusion-break-db.yaml b/web/coldfusion-break-db/coldfusion-break-db.yaml index ed5b180..957c04d 100644 --- a/web/coldfusion-break-db/coldfusion-break-db.yaml +++ b/web/coldfusion-break-db/coldfusion-break-db.yaml @@ -9,5 +9,5 @@ title: > Database with Cold Fusion tags: - coldfusion -webmention_last_checked: 1734922964 +webmention_last_checked: 1736616868 webmention_count: 1 diff --git a/web/coldfusion-force-download/coldfusion-force-download.yaml b/web/coldfusion-force-download/coldfusion-force-download.yaml index ee5235b..b0f471c 100644 --- a/web/coldfusion-force-download/coldfusion-force-download.yaml +++ b/web/coldfusion-force-download/coldfusion-force-download.yaml @@ -7,5 +7,5 @@ canonical_url: > title: 'ColdFusion: Force Download of File' tags: - coldfusion -webmention_last_checked: 1734922964 +webmention_last_checked: 1736616869 webmention_count: 0 diff --git a/web/coldfusion-titlecase/coldfusion-titlecase.yaml b/web/coldfusion-titlecase/coldfusion-titlecase.yaml index 5cac3dd..1ec7ed1 100644 --- a/web/coldfusion-titlecase/coldfusion-titlecase.yaml +++ b/web/coldfusion-titlecase/coldfusion-titlecase.yaml @@ -7,5 +7,5 @@ canonical_url: > title: ColdFusion TitleCase Function tags: - coldfusion -webmention_last_checked: 1734922964 +webmention_last_checked: 1736616869 webmention_count: 1 diff --git a/web/compare-fields/compare-fields.yaml b/web/compare-fields/compare-fields.yaml index 9c5b071..b7ef8ee 100644 --- a/web/compare-fields/compare-fields.yaml +++ b/web/compare-fields/compare-fields.yaml @@ -6,5 +6,5 @@ canonical_url: https://lab.artlung.com/compare-fields/ title: 'Compare two fields, Submit only if they are the same:' tags: - javascript -webmention_last_checked: 1734922965 +webmention_last_checked: 1736616869 webmention_count: 0 diff --git a/web/connect-to-remote-server/connect-to-remote-server.yaml b/web/connect-to-remote-server/connect-to-remote-server.yaml index 2b0dcde..86d34ef 100644 --- a/web/connect-to-remote-server/connect-to-remote-server.yaml +++ b/web/connect-to-remote-server/connect-to-remote-server.yaml @@ -9,5 +9,5 @@ title: > server tags: - php -webmention_last_checked: 1734922965 +webmention_last_checked: 1736616869 webmention_count: 0 diff --git a/web/copy-to-clipboard-javascript/copy-to-clipboard-javascript.yaml b/web/copy-to-clipboard-javascript/copy-to-clipboard-javascript.yaml index 5e2b584..6ec18a5 100644 --- a/web/copy-to-clipboard-javascript/copy-to-clipboard-javascript.yaml +++ b/web/copy-to-clipboard-javascript/copy-to-clipboard-javascript.yaml @@ -7,5 +7,5 @@ canonical_url: > title: Copy to Clipboard JavaScript tags: - javascript -webmention_last_checked: 1734922965 +webmention_last_checked: 1736616869 webmention_count: 0 diff --git a/web/countdown-daily-to-a-time/countdown-daily-to-a-time.yaml b/web/countdown-daily-to-a-time/countdown-daily-to-a-time.yaml index 7f4d8ab..f4005d7 100644 --- a/web/countdown-daily-to-a-time/countdown-daily-to-a-time.yaml +++ b/web/countdown-daily-to-a-time/countdown-daily-to-a-time.yaml @@ -9,5 +9,5 @@ title: > (PHP) tags: - php -webmention_last_checked: 1734922965 +webmention_last_checked: 1736616870 webmention_count: 0 diff --git a/web/countdown-to-the-first/countdown-to-the-first.yaml b/web/countdown-to-the-first/countdown-to-the-first.yaml index 483131e..f564eb9 100644 --- a/web/countdown-to-the-first/countdown-to-the-first.yaml +++ b/web/countdown-to-the-first/countdown-to-the-first.yaml @@ -9,5 +9,5 @@ title: > in PHP tags: - php -webmention_last_checked: 1734922966 +webmention_last_checked: 1736616870 webmention_count: 0 diff --git a/web/countdown/countdown.yaml b/web/countdown/countdown.yaml index 7eb683d..3573a4b 100644 --- a/web/countdown/countdown.yaml +++ b/web/countdown/countdown.yaml @@ -6,5 +6,5 @@ canonical_url: https://lab.artlung.com/countdown/ title: Super Simple Countdown in PHP. tags: - php -webmention_last_checked: 1734922965 +webmention_last_checked: 1736616870 webmention_count: 1 diff --git a/web/crossdomain/crossdomain.yaml b/web/crossdomain/crossdomain.yaml index 772b837..3a965be 100644 --- a/web/crossdomain/crossdomain.yaml +++ b/web/crossdomain/crossdomain.yaml @@ -6,5 +6,5 @@ canonical_url: https://lab.artlung.com/crossdomain/ title: crossdomain.xml tags: - http -webmention_last_checked: 1734922966 +webmention_last_checked: 1736616870 webmention_count: 0 diff --git a/web/css3-smiley/css3-smiley.yaml b/web/css3-smiley/css3-smiley.yaml index c58fd7d..5bbbcb7 100644 --- a/web/css3-smiley/css3-smiley.yaml +++ b/web/css3-smiley/css3-smiley.yaml @@ -6,5 +6,5 @@ canonical_url: https://lab.artlung.com/css3-smiley/ title: CSS3 Smiley in Color tags: - css -webmention_last_checked: 1734922966 +webmention_last_checked: 1736616871 webmention_count: 1 diff --git a/web/detagger/detagger.yaml b/web/detagger/detagger.yaml index 6d09f11..c61aa5a 100644 --- a/web/detagger/detagger.yaml +++ b/web/detagger/detagger.yaml @@ -6,5 +6,5 @@ canonical_url: https://lab.artlung.com/detagger/ title: Fun Detagger Script tags: - php -webmention_last_checked: 1734922967 +webmention_last_checked: 1736616871 webmention_count: 1 diff --git a/web/detection-real/detection-real.yaml b/web/detection-real/detection-real.yaml index 9812253..aa504d7 100644 --- a/web/detection-real/detection-real.yaml +++ b/web/detection-real/detection-real.yaml @@ -7,5 +7,5 @@ title: RealMedia Plugin Detection tags: - javascript - realplayer -webmention_last_checked: 1734922967 +webmention_last_checked: 1736616871 webmention_count: 0 diff --git a/web/display-inline-block/display-inline-block.yaml b/web/display-inline-block/display-inline-block.yaml index 8e40aa3..ba72f54 100644 --- a/web/display-inline-block/display-inline-block.yaml +++ b/web/display-inline-block/display-inline-block.yaml @@ -9,5 +9,5 @@ title: > small icon (2007) tags: - css -webmention_last_checked: 1734922967 +webmention_last_checked: 1736616871 webmention_count: 0 diff --git a/web/domain-name-sql-excel/domain-name-sql-excel.yaml b/web/domain-name-sql-excel/domain-name-sql-excel.yaml index 35d5f3c..b63f543 100644 --- a/web/domain-name-sql-excel/domain-name-sql-excel.yaml +++ b/web/domain-name-sql-excel/domain-name-sql-excel.yaml @@ -9,5 +9,5 @@ title: > email addresses tags: - sql -webmention_last_checked: 1734922967 +webmention_last_checked: 1736616872 webmention_count: 0 diff --git a/web/dropdown-focus/dropdown-focus.yaml b/web/dropdown-focus/dropdown-focus.yaml index f86b9f7..a56d947 100644 --- a/web/dropdown-focus/dropdown-focus.yaml +++ b/web/dropdown-focus/dropdown-focus.yaml @@ -6,5 +6,5 @@ canonical_url: https://lab.artlung.com/dropdown-focus/ title: Setting Dropdown Focus tags: - javascript -webmention_last_checked: 1734922968 +webmention_last_checked: 1736616872 webmention_count: 0 diff --git a/web/dropdown-frames/dropdown-frames.yaml b/web/dropdown-frames/dropdown-frames.yaml index 636f335..2ac40ae 100644 --- a/web/dropdown-frames/dropdown-frames.yaml +++ b/web/dropdown-frames/dropdown-frames.yaml @@ -6,5 +6,5 @@ canonical_url: https://lab.artlung.com/dropdown-frames/ title: Dropdown Navigation in Frames tags: - javascript -webmention_last_checked: 1734922968 +webmention_last_checked: 1736616872 webmention_count: 0 diff --git a/web/dropdown-only-some-new-window/dropdown-only-some-new-window.yaml b/web/dropdown-only-some-new-window/dropdown-only-some-new-window.yaml index d798d20..8fda833 100644 --- a/web/dropdown-only-some-new-window/dropdown-only-some-new-window.yaml +++ b/web/dropdown-only-some-new-window/dropdown-only-some-new-window.yaml @@ -9,5 +9,5 @@ title: > Links Open New Windows tags: - javascript -webmention_last_checked: 1734922968 +webmention_last_checked: 1736616872 webmention_count: 2 diff --git a/web/dropdown-submit-form/dropdown-submit-form.yaml b/web/dropdown-submit-form/dropdown-submit-form.yaml index 41ab95d..5219a96 100644 --- a/web/dropdown-submit-form/dropdown-submit-form.yaml +++ b/web/dropdown-submit-form/dropdown-submit-form.yaml @@ -7,5 +7,5 @@ canonical_url: > title: dropdown-submit-form tags: - javascript -webmention_last_checked: 1734922968 +webmention_last_checked: 1736616873 webmention_count: 0 diff --git a/web/dropdown/dropdown.yaml b/web/dropdown/dropdown.yaml index e199710..1ddacbb 100644 --- a/web/dropdown/dropdown.yaml +++ b/web/dropdown/dropdown.yaml @@ -7,5 +7,5 @@ title: Dropdown Navigation tags: - html - javascript -webmention_last_checked: 1734922967 +webmention_last_checked: 1736616872 webmention_count: 2 diff --git a/web/echo-http-host/echo-http-host.yaml b/web/echo-http-host/echo-http-host.yaml index ae2c9ae..f65a871 100644 --- a/web/echo-http-host/echo-http-host.yaml +++ b/web/echo-http-host/echo-http-host.yaml @@ -6,5 +6,5 @@ canonical_url: https://lab.artlung.com/echo-http-host/ title: HTTP_HOST environment variable in PHP tags: - php -webmention_last_checked: 1734922969 +webmention_last_checked: 1736616873 webmention_count: 0 diff --git a/web/email-submission-stinks/email-submission-stinks.yaml b/web/email-submission-stinks/email-submission-stinks.yaml index c87388e..789ec47 100644 --- a/web/email-submission-stinks/email-submission-stinks.yaml +++ b/web/email-submission-stinks/email-submission-stinks.yaml @@ -7,5 +7,5 @@ canonical_url: > title: 'Form action mailto: stinks' tags: - html -webmention_last_checked: 1734922969 +webmention_last_checked: 1736616873 webmention_count: 1 diff --git a/web/first-child-last-child/first-child-last-child.yaml b/web/first-child-last-child/first-child-last-child.yaml index dd6c3c6..ca403ae 100644 --- a/web/first-child-last-child/first-child-last-child.yaml +++ b/web/first-child-last-child/first-child-last-child.yaml @@ -7,5 +7,5 @@ canonical_url: > title: First Child Last Child Demonstration tags: - css -webmention_last_checked: 1734922969 +webmention_last_checked: 1736616873 webmention_count: 0 diff --git a/web/font-awesome-sample/font-awesome-sample.yaml b/web/font-awesome-sample/font-awesome-sample.yaml index 7910990..9febe43 100644 --- a/web/font-awesome-sample/font-awesome-sample.yaml +++ b/web/font-awesome-sample/font-awesome-sample.yaml @@ -9,5 +9,5 @@ title: > (version 4.6.3) tags: - typography -webmention_last_checked: 1734922969 +webmention_last_checked: 1736616874 webmention_count: 1 diff --git a/web/form-image-background/form-image-background.yaml b/web/form-image-background/form-image-background.yaml index 64a86b4..ad9f175 100644 --- a/web/form-image-background/form-image-background.yaml +++ b/web/form-image-background/form-image-background.yaml @@ -8,5 +8,5 @@ title: background images in form elements tags: - css - html -webmention_last_checked: 1734922970 +webmention_last_checked: 1736616874 webmention_count: 1 diff --git a/web/format-time/format-time.yaml b/web/format-time/format-time.yaml index df9a006..41405d1 100644 --- a/web/format-time/format-time.yaml +++ b/web/format-time/format-time.yaml @@ -6,5 +6,5 @@ canonical_url: https://lab.artlung.com/format-time/ title: JavaScript Date Formatting Demo tags: - javascript -webmention_last_checked: 1734922970 +webmention_last_checked: 1736616874 webmention_count: 0 diff --git a/web/frames-mouseover/frames-mouseover.yaml b/web/frames-mouseover/frames-mouseover.yaml index 163125a..4d8b23f 100644 --- a/web/frames-mouseover/frames-mouseover.yaml +++ b/web/frames-mouseover/frames-mouseover.yaml @@ -7,5 +7,5 @@ canonical_url: > title: frames-mouseover tags: - javascript -webmention_last_checked: 1734922970 +webmention_last_checked: 1736616874 webmention_count: 0 diff --git a/web/gallery/gallery.yaml b/web/gallery/gallery.yaml index 90a1386..997d23b 100644 --- a/web/gallery/gallery.yaml +++ b/web/gallery/gallery.yaml @@ -6,5 +6,5 @@ canonical_url: https://lab.artlung.com/gallery/ title: AutoMagic Gallery Listing tags: - php -webmention_last_checked: 1734922970 +webmention_last_checked: 1736616875 webmention_count: 2 diff --git a/web/generic-validator/generic-validator.yaml b/web/generic-validator/generic-validator.yaml index 85fd0b6..1949bbf 100644 --- a/web/generic-validator/generic-validator.yaml +++ b/web/generic-validator/generic-validator.yaml @@ -7,5 +7,5 @@ canonical_url: > title: Generic Validator tags: - javascript -webmention_last_checked: 1734922971 +webmention_last_checked: 1736616875 webmention_count: 0 diff --git a/web/gettysburg/gettysburg.yaml b/web/gettysburg/gettysburg.yaml index 38dbb39..833b669 100644 --- a/web/gettysburg/gettysburg.yaml +++ b/web/gettysburg/gettysburg.yaml @@ -6,5 +6,5 @@ canonical_url: https://lab.artlung.com/gettysburg/ title: Gettysburg Address in HTML Buttons tags: - html -webmention_last_checked: 1734922971 +webmention_last_checked: 1736616875 webmention_count: 1 diff --git a/web/goal50/goal50.yaml b/web/goal50/goal50.yaml index 1c6f075..a2d24b6 100644 --- a/web/goal50/goal50.yaml +++ b/web/goal50/goal50.yaml @@ -7,5 +7,5 @@ title: Goal of 50! tags: - css - javascript -webmention_last_checked: 1734922971 +webmention_last_checked: 1736616875 webmention_count: 0 diff --git a/web/group-concat-mysql/group-concat-mysql.yaml b/web/group-concat-mysql/group-concat-mysql.yaml index e052eef..f008ef4 100644 --- a/web/group-concat-mysql/group-concat-mysql.yaml +++ b/web/group-concat-mysql/group-concat-mysql.yaml @@ -7,5 +7,5 @@ canonical_url: > title: Using GROUP_CONCAT() tags: - sql -webmention_last_checked: 1734922971 +webmention_last_checked: 1736616876 webmention_count: 0 diff --git a/web/history/history.yaml b/web/history/history.yaml index 8591d10..c39a90d 100644 --- a/web/history/history.yaml +++ b/web/history/history.yaml @@ -8,5 +8,5 @@ title: > Buttons tags: - javascript -webmention_last_checked: 1734922972 +webmention_last_checked: 1736616876 webmention_count: 1 diff --git a/web/home/home.yaml b/web/home/home.yaml index 92b60b5..d469541 100644 --- a/web/home/home.yaml +++ b/web/home/home.yaml @@ -7,4 +7,4 @@ year: 2024 title: The Lab webmention_count: 20 og-image-date: 2024-12-24 06:38:54 -webmention_last_checked: 1735239762 +webmention_last_checked: 1736616876 diff --git a/web/html-2.0/html-2.0.yaml b/web/html-2.0/html-2.0.yaml index 2d30d49..45ab665 100644 --- a/web/html-2.0/html-2.0.yaml +++ b/web/html-2.0/html-2.0.yaml @@ -6,5 +6,5 @@ canonical_url: https://lab.artlung.com/html-2.0/ title: 'HTML 2.0 - An exploration!' tags: - html -webmention_last_checked: 1734922972 +webmention_last_checked: 1736616876 webmention_count: 0 diff --git a/web/image-border/image-border.yaml b/web/image-border/image-border.yaml index 2b65448..9cfcc4b 100644 --- a/web/image-border/image-border.yaml +++ b/web/image-border/image-border.yaml @@ -6,5 +6,5 @@ canonical_url: https://lab.artlung.com/image-border/ title: 'Several Approaches to Do Image Borders of Different Colors: 1999' tags: - css -webmention_last_checked: 1734922972 +webmention_last_checked: 1736616877 webmention_count: 0 diff --git a/web/image-hover/image-hover.yaml b/web/image-hover/image-hover.yaml index db21f94..be38fa1 100644 --- a/web/image-hover/image-hover.yaml +++ b/web/image-hover/image-hover.yaml @@ -6,5 +6,5 @@ canonical_url: https://lab.artlung.com/image-hover/ title: Image Hover tags: - css -webmention_last_checked: 1734922972 +webmention_last_checked: 1736616877 webmention_count: 0 diff --git a/web/input-direction/input-direction.yaml b/web/input-direction/input-direction.yaml index 107c85b..9338e15 100644 --- a/web/input-direction/input-direction.yaml +++ b/web/input-direction/input-direction.yaml @@ -6,5 +6,5 @@ canonical_url: https://lab.artlung.com/input-direction/ title: Change Form Input Direction tags: - html -webmention_last_checked: 1734922973 +webmention_last_checked: 1736616877 webmention_count: 2 diff --git a/web/interesting-date-layout/interesting-date-layout.yaml b/web/interesting-date-layout/interesting-date-layout.yaml index 71b6859..6e8641d 100644 --- a/web/interesting-date-layout/interesting-date-layout.yaml +++ b/web/interesting-date-layout/interesting-date-layout.yaml @@ -7,5 +7,5 @@ canonical_url: > title: interesting-date-layout tags: - experimental -webmention_last_checked: 1734922973 +webmention_last_checked: 1736616877 webmention_count: 0 diff --git a/web/invisible-unspiderable-link/invisible-unspiderable-link.yaml b/web/invisible-unspiderable-link/invisible-unspiderable-link.yaml index e582894..b2b4cac 100644 --- a/web/invisible-unspiderable-link/invisible-unspiderable-link.yaml +++ b/web/invisible-unspiderable-link/invisible-unspiderable-link.yaml @@ -9,5 +9,5 @@ tags: - a11y - css - javascript -webmention_last_checked: 1734922973 +webmention_last_checked: 1736616878 webmention_count: 1 diff --git a/web/is-email/is-email.yaml b/web/is-email/is-email.yaml index 3c685e2..f8e624d 100644 --- a/web/is-email/is-email.yaml +++ b/web/is-email/is-email.yaml @@ -6,5 +6,5 @@ canonical_url: https://lab.artlung.com/is-email/ title: isEmail() aka is_email() in PHP tags: - php -webmention_last_checked: 1734922973 +webmention_last_checked: 1736616878 webmention_count: 0 diff --git a/web/java-tags/java-tags.yaml b/web/java-tags/java-tags.yaml index 7d15a95..a1cbd42 100644 --- a/web/java-tags/java-tags.yaml +++ b/web/java-tags/java-tags.yaml @@ -6,5 +6,5 @@ canonical_url: https://lab.artlung.com/java-tags/ title: Java Tags 1999 tags: - java -webmention_last_checked: 1734922974 +webmention_last_checked: 1736616878 webmention_count: 2 diff --git a/web/keycode/keycode.yaml b/web/keycode/keycode.yaml index c3122e6..d331267 100644 --- a/web/keycode/keycode.yaml +++ b/web/keycode/keycode.yaml @@ -6,5 +6,5 @@ canonical_url: https://lab.artlung.com/keycode/ title: Listen for Key Presses on a Web Page tags: - javascript -webmention_last_checked: 1734922974 +webmention_last_checked: 1736616878 webmention_count: 0 diff --git a/web/keystroke-to-go-to-random-page/keystroke-to-go-to-random-page.yaml b/web/keystroke-to-go-to-random-page/keystroke-to-go-to-random-page.yaml index 1478e93..04e81a8 100644 --- a/web/keystroke-to-go-to-random-page/keystroke-to-go-to-random-page.yaml +++ b/web/keystroke-to-go-to-random-page/keystroke-to-go-to-random-page.yaml @@ -8,6 +8,6 @@ tags: - javascript - php og-image-date: 2024-12-18 15:40:35 -webmention_last_checked: 1734922974 +webmention_last_checked: 1736616878 webmention_count: 0 atom_feed_publish_date: 2024-12-23 20:00:00 diff --git a/web/larger-checkbox-with-css/larger-checkbox-with-css.yaml b/web/larger-checkbox-with-css/larger-checkbox-with-css.yaml index 1ed7528..37b0301 100644 --- a/web/larger-checkbox-with-css/larger-checkbox-with-css.yaml +++ b/web/larger-checkbox-with-css/larger-checkbox-with-css.yaml @@ -7,5 +7,5 @@ canonical_url: > title: Larger Checkbox with CSS tags: - css -webmention_last_checked: 1734922974 +webmention_last_checked: 1736616879 webmention_count: 1 diff --git a/web/make-unique-id/make-unique-id.yaml b/web/make-unique-id/make-unique-id.yaml index 639b9db..cfd5ce4 100644 --- a/web/make-unique-id/make-unique-id.yaml +++ b/web/make-unique-id/make-unique-id.yaml @@ -6,5 +6,5 @@ canonical_url: https://lab.artlung.com/make-unique-id/ title: Make a Unique ID in PHP tags: - php -webmention_last_checked: 1734922975 +webmention_last_checked: 1736616879 webmention_count: 1 diff --git a/web/mathml/mathml.yaml b/web/mathml/mathml.yaml index ed530c2..51791d0 100644 --- a/web/mathml/mathml.yaml +++ b/web/mathml/mathml.yaml @@ -7,5 +7,5 @@ title: MathML Test Page tags: - html - mathml -webmention_last_checked: 1734922975 +webmention_last_checked: 1736616879 webmention_count: 1 diff --git a/web/meaningful-html-class-names/meaningful-html-class-names.yaml b/web/meaningful-html-class-names/meaningful-html-class-names.yaml index 3d62eca..b21b1a2 100644 --- a/web/meaningful-html-class-names/meaningful-html-class-names.yaml +++ b/web/meaningful-html-class-names/meaningful-html-class-names.yaml @@ -10,5 +10,5 @@ title: > tags: - css - html -webmention_last_checked: 1734922975 +webmention_last_checked: 1736616879 webmention_count: 0 diff --git a/web/media/media.yaml b/web/media/media.yaml index 4a8d673..e9ee6a7 100644 --- a/web/media/media.yaml +++ b/web/media/media.yaml @@ -9,5 +9,5 @@ title: > tags: - css - javascript -webmention_last_checked: 1734922975 +webmention_last_checked: 1736616880 webmention_count: 0 diff --git a/web/misc-files/misc-files.yaml b/web/misc-files/misc-files.yaml index 1de7af4..f5061de 100644 --- a/web/misc-files/misc-files.yaml +++ b/web/misc-files/misc-files.yaml @@ -11,5 +11,5 @@ tags: - google - html - http -webmention_last_checked: 1734922976 +webmention_last_checked: 1736616880 webmention_count: 1 diff --git a/web/mm_validateform/mm_validateform.yaml b/web/mm_validateform/mm_validateform.yaml index af45eda..0b059ff 100644 --- a/web/mm_validateform/mm_validateform.yaml +++ b/web/mm_validateform/mm_validateform.yaml @@ -9,5 +9,5 @@ title: > tags: - javascript - macromedia -webmention_last_checked: 1734922976 +webmention_last_checked: 1736616880 webmention_count: 0 diff --git a/web/modify-the-box/modify-the-box.yaml b/web/modify-the-box/modify-the-box.yaml index a6c6df8..56d18fa 100644 --- a/web/modify-the-box/modify-the-box.yaml +++ b/web/modify-the-box/modify-the-box.yaml @@ -6,5 +6,5 @@ canonical_url: https://lab.artlung.com/modify-the-box/ title: Modify The Box (dhtml experiment, 2001) tags: - html -webmention_last_checked: 1734922976 +webmention_last_checked: 1736616880 webmention_count: 1 diff --git a/web/mouseover-vote/mouseover-vote.yaml b/web/mouseover-vote/mouseover-vote.yaml index f1e2888..b716eb8 100644 --- a/web/mouseover-vote/mouseover-vote.yaml +++ b/web/mouseover-vote/mouseover-vote.yaml @@ -6,5 +6,5 @@ canonical_url: https://lab.artlung.com/mouseover-vote/ title: Mouseover Vote Thing JavaScript tags: - javascript -webmention_last_checked: 1734922976 +webmention_last_checked: 1736616881 webmention_count: 0 diff --git a/web/mouseover-vote100/mouseover-vote100.yaml b/web/mouseover-vote100/mouseover-vote100.yaml index 9427a1b..7dd1427 100644 --- a/web/mouseover-vote100/mouseover-vote100.yaml +++ b/web/mouseover-vote100/mouseover-vote100.yaml @@ -7,5 +7,5 @@ canonical_url: > title: Mouseover Vote Thing x 100 tags: - javascript -webmention_last_checked: 1734922977 +webmention_last_checked: 1736616881 webmention_count: 0 diff --git a/web/multiple-select-v2/multiple-select-v2.yaml b/web/multiple-select-v2/multiple-select-v2.yaml index 53b520c..11ce7fa 100644 --- a/web/multiple-select-v2/multiple-select-v2.yaml +++ b/web/multiple-select-v2/multiple-select-v2.yaml @@ -9,5 +9,5 @@ title: > version 2 tags: - javascript -webmention_last_checked: 1734922977 +webmention_last_checked: 1736616881 webmention_count: 0 diff --git a/web/multiple-select/multiple-select.yaml b/web/multiple-select/multiple-select.yaml index 9576bcf..d67c1ed 100644 --- a/web/multiple-select/multiple-select.yaml +++ b/web/multiple-select/multiple-select.yaml @@ -6,5 +6,5 @@ canonical_url: https://lab.artlung.com/multiple-select/ title: Multiple, Hierarchical SelectBoxes tags: - javascript -webmention_last_checked: 1734922977 +webmention_last_checked: 1736616881 webmention_count: 0 diff --git a/web/museum/museum.yaml b/web/museum/museum.yaml index 3208aa3..0015d9d 100644 --- a/web/museum/museum.yaml +++ b/web/museum/museum.yaml @@ -6,5 +6,5 @@ canonical_url: https://lab.artlung.com/museum/ title: Museum Notes (2010) tags: - ux -webmention_last_checked: 1734922977 +webmention_last_checked: 1736616881 webmention_count: 0 diff --git a/web/my-first-vbscript-class/my-first-vbscript-class.yaml b/web/my-first-vbscript-class/my-first-vbscript-class.yaml index 885e04a..780f1e7 100644 --- a/web/my-first-vbscript-class/my-first-vbscript-class.yaml +++ b/web/my-first-vbscript-class/my-first-vbscript-class.yaml @@ -7,5 +7,5 @@ canonical_url: > title: My first VBScript Test Class tags: - vbscript -webmention_last_checked: 1734922978 +webmention_last_checked: 1736616882 webmention_count: 0 diff --git a/web/navigation-function-vs-asp/navigation-function-vs-asp.yaml b/web/navigation-function-vs-asp/navigation-function-vs-asp.yaml index 8d88cf7..6986135 100644 --- a/web/navigation-function-vs-asp/navigation-function-vs-asp.yaml +++ b/web/navigation-function-vs-asp/navigation-function-vs-asp.yaml @@ -8,5 +8,5 @@ title: Navigation Function (in PHP and ASP) tags: - asp - php -webmention_last_checked: 1734922978 +webmention_last_checked: 1736616882 webmention_count: 0 diff --git a/web/navigator-language/navigator-language.yaml b/web/navigator-language/navigator-language.yaml index 08789bf..dab6556 100644 --- a/web/navigator-language/navigator-language.yaml +++ b/web/navigator-language/navigator-language.yaml @@ -7,5 +7,5 @@ canonical_url: > title: 'JavaScript: navigator.language' tags: - javascript -webmention_last_checked: 1734922978 +webmention_last_checked: 1736616882 webmention_count: 0 diff --git a/web/navigator-object/navigator-object.yaml b/web/navigator-object/navigator-object.yaml index 79fa75f..0386070 100644 --- a/web/navigator-object/navigator-object.yaml +++ b/web/navigator-object/navigator-object.yaml @@ -7,5 +7,5 @@ canonical_url: > title: "What's in the Navigator object?" tags: - javascript -webmention_last_checked: 1734922978 +webmention_last_checked: 1736616882 webmention_count: 0 diff --git a/web/nonsense-dtd/nonsense-dtd.yaml b/web/nonsense-dtd/nonsense-dtd.yaml index fe3dac4..c9764c1 100644 --- a/web/nonsense-dtd/nonsense-dtd.yaml +++ b/web/nonsense-dtd/nonsense-dtd.yaml @@ -6,5 +6,5 @@ canonical_url: https://lab.artlung.com/nonsense-dtd/ title: nonsense-dtd tags: - html -webmention_last_checked: 1734922978 +webmention_last_checked: 1736616883 webmention_count: 0 diff --git a/web/not-valid-itunes-library/not-valid-itunes-library.yaml b/web/not-valid-itunes-library/not-valid-itunes-library.yaml index 78884e6..16b793a 100644 --- a/web/not-valid-itunes-library/not-valid-itunes-library.yaml +++ b/web/not-valid-itunes-library/not-valid-itunes-library.yaml @@ -7,5 +7,5 @@ canonical_url: > title: 'iTunes Error: The iTunes Music Library file cannot be read because it does not appear to be a valid library file' tags: - itunes -webmention_last_checked: 1734922979 +webmention_last_checked: 1736616883 webmention_count: 3 diff --git a/web/notifications/notifications.yaml b/web/notifications/notifications.yaml index 9c07b1a..6af29e6 100644 --- a/web/notifications/notifications.yaml +++ b/web/notifications/notifications.yaml @@ -6,5 +6,5 @@ canonical_url: https://lab.artlung.com/notifications/ title: window.webkitNotifications support tags: - javascript -webmention_last_checked: 1734922979 +webmention_last_checked: 1736616883 webmention_count: 0 diff --git a/web/now-getdate/now-getdate.yaml b/web/now-getdate/now-getdate.yaml index 076fd90..076cf76 100644 --- a/web/now-getdate/now-getdate.yaml +++ b/web/now-getdate/now-getdate.yaml @@ -6,5 +6,5 @@ canonical_url: https://lab.artlung.com/now-getdate/ title: NOW() ~= GETDATE() tags: - sql -webmention_last_checked: 1734922979 +webmention_last_checked: 1736616883 webmention_count: 0 diff --git a/web/oncontextmenu/oncontextmenu.yaml b/web/oncontextmenu/oncontextmenu.yaml index 7e8862c..4dfdf2d 100644 --- a/web/oncontextmenu/oncontextmenu.yaml +++ b/web/oncontextmenu/oncontextmenu.yaml @@ -6,5 +6,5 @@ canonical_url: https://lab.artlung.com/oncontextmenu/ title: Demonstration of oncontextmenu tags: - javascript -webmention_last_checked: 1734922980 +webmention_last_checked: 1736616884 webmention_count: 2 diff --git a/web/onunload-window-open-evil/onunload-window-open-evil.yaml b/web/onunload-window-open-evil/onunload-window-open-evil.yaml index ce550a2..392257f 100644 --- a/web/onunload-window-open-evil/onunload-window-open-evil.yaml +++ b/web/onunload-window-open-evil/onunload-window-open-evil.yaml @@ -8,5 +8,5 @@ title: onunload + window.open = evil tags: - javascript - ux -webmention_last_checked: 1734922980 +webmention_last_checked: 1736616884 webmention_count: 1 diff --git a/web/open-graph-protocol-tools/open-graph-protocol-tools.yaml b/web/open-graph-protocol-tools/open-graph-protocol-tools.yaml index 1bd0c94..7e7a65e 100644 --- a/web/open-graph-protocol-tools/open-graph-protocol-tools.yaml +++ b/web/open-graph-protocol-tools/open-graph-protocol-tools.yaml @@ -10,5 +10,5 @@ title: > tags: - facebook - opengraph -webmention_last_checked: 1734922980 +webmention_last_checked: 1736616884 webmention_count: 0 diff --git a/web/outbound-link-confirmation/outbound-link-confirmation.yaml b/web/outbound-link-confirmation/outbound-link-confirmation.yaml index 8167068..102bdc5 100644 --- a/web/outbound-link-confirmation/outbound-link-confirmation.yaml +++ b/web/outbound-link-confirmation/outbound-link-confirmation.yaml @@ -7,5 +7,5 @@ canonical_url: > title: Outbound Link Confirmation tags: - javascript -webmention_last_checked: 1734922980 +webmention_last_checked: 1736616884 webmention_count: 1 diff --git a/web/password-maker/password-maker.yaml b/web/password-maker/password-maker.yaml index 4578c3a..f74f519 100644 --- a/web/password-maker/password-maker.yaml +++ b/web/password-maker/password-maker.yaml @@ -6,5 +6,5 @@ canonical_url: https://lab.artlung.com/password-maker/ title: 20 Random Alphanumeric Passwords tags: - php -webmention_last_checked: 1734922981 +webmention_last_checked: 1736616884 webmention_count: 0 diff --git a/web/php-all-websafe/php-all-websafe.yaml b/web/php-all-websafe/php-all-websafe.yaml index 87e26b7..fec48d8 100644 --- a/web/php-all-websafe/php-all-websafe.yaml +++ b/web/php-all-websafe/php-all-websafe.yaml @@ -6,5 +6,5 @@ canonical_url: https://lab.artlung.com/php-all-websafe/ title: Generate All Websafe Colors with PHP tags: - php -webmention_last_checked: 1734922981 +webmention_last_checked: 1736616885 webmention_count: 0 diff --git a/web/php-php3-mod-rewrite/php-php3-mod-rewrite.yaml b/web/php-php3-mod-rewrite/php-php3-mod-rewrite.yaml index df03978..03a8d4e 100644 --- a/web/php-php3-mod-rewrite/php-php3-mod-rewrite.yaml +++ b/web/php-php3-mod-rewrite/php-php3-mod-rewrite.yaml @@ -9,5 +9,5 @@ title: > .php3 tags: - php -webmention_last_checked: 1734922981 +webmention_last_checked: 1736616885 webmention_count: 1 diff --git a/web/pinkvalidation/pinkvalidation.yaml b/web/pinkvalidation/pinkvalidation.yaml index 56e1cdd..f9fb952 100644 --- a/web/pinkvalidation/pinkvalidation.yaml +++ b/web/pinkvalidation/pinkvalidation.yaml @@ -7,5 +7,5 @@ title: "Changing the color of a form element when it's blank" tags: - css - javascript -webmention_last_checked: 1734922981 +webmention_last_checked: 1736616885 webmention_count: 3 diff --git a/web/plus-plus-a-string-php/plus-plus-a-string-php.yaml b/web/plus-plus-a-string-php/plus-plus-a-string-php.yaml index 5a41d8e..798778b 100644 --- a/web/plus-plus-a-string-php/plus-plus-a-string-php.yaml +++ b/web/plus-plus-a-string-php/plus-plus-a-string-php.yaml @@ -7,5 +7,5 @@ canonical_url: > title: plusplus (++) a string in php tags: - php -webmention_last_checked: 1734922982 +webmention_last_checked: 1736616885 webmention_count: 0 diff --git a/web/quick-jquery-overlay/quick-jquery-overlay.yaml b/web/quick-jquery-overlay/quick-jquery-overlay.yaml index 04102bc..8da5884 100644 --- a/web/quick-jquery-overlay/quick-jquery-overlay.yaml +++ b/web/quick-jquery-overlay/quick-jquery-overlay.yaml @@ -7,7 +7,7 @@ title: Quick Overlay tags: - javascript - bookmarklet -webmention_last_checked: 1734922982 +webmention_last_checked: 1736616886 webmention_count: 0 shot_scraper_extra_params: | --javascript "document.querySelector('.bookmarklet').click();" diff --git a/web/quote-to-dl/quote-to-dl.yaml b/web/quote-to-dl/quote-to-dl.yaml index ec36b86..14269f0 100644 --- a/web/quote-to-dl/quote-to-dl.yaml +++ b/web/quote-to-dl/quote-to-dl.yaml @@ -8,5 +8,5 @@ tags: - html - javascript - tools -webmention_last_checked: 1734922982 +webmention_last_checked: 1736616886 webmention_count: 0 diff --git a/web/random-cells/random-cells.yaml b/web/random-cells/random-cells.yaml index cdb0ec4..9bffc5d 100644 --- a/web/random-cells/random-cells.yaml +++ b/web/random-cells/random-cells.yaml @@ -8,5 +8,5 @@ tags: - experimental - javascript - toys -webmention_last_checked: 1734922982 +webmention_last_checked: 1736616886 webmention_count: 0 diff --git a/web/random-content/random-content.yaml b/web/random-content/random-content.yaml index ef39908..20ca922 100644 --- a/web/random-content/random-content.yaml +++ b/web/random-content/random-content.yaml @@ -6,5 +6,5 @@ canonical_url: https://lab.artlung.com/random-content/ title: Random Content tags: - php -webmention_last_checked: 1734922983 +webmention_last_checked: 1736616886 webmention_count: 0 diff --git a/web/random-string-in-sql/random-string-in-sql.yaml b/web/random-string-in-sql/random-string-in-sql.yaml index a98388b..9d4b21c 100644 --- a/web/random-string-in-sql/random-string-in-sql.yaml +++ b/web/random-string-in-sql/random-string-in-sql.yaml @@ -7,5 +7,5 @@ canonical_url: > title: Random String in SQL tags: - sql -webmention_last_checked: 1734922983 +webmention_last_checked: 1736616887 webmention_count: 0 diff --git a/web/recursive-iframe/recursive-iframe.yaml b/web/recursive-iframe/recursive-iframe.yaml index a664ec5..3f65869 100644 --- a/web/recursive-iframe/recursive-iframe.yaml +++ b/web/recursive-iframe/recursive-iframe.yaml @@ -9,5 +9,5 @@ title: > itself. The question, is what happens? tags: - html -webmention_last_checked: 1734922983 +webmention_last_checked: 1736616887 webmention_count: 0 diff --git a/web/response-end-is-like-exit-in-php/response-end-is-like-exit-in-php.yaml b/web/response-end-is-like-exit-in-php/response-end-is-like-exit-in-php.yaml index be2900b..45bf6d8 100644 --- a/web/response-end-is-like-exit-in-php/response-end-is-like-exit-in-php.yaml +++ b/web/response-end-is-like-exit-in-php/response-end-is-like-exit-in-php.yaml @@ -10,5 +10,5 @@ title: > tags: - asp - php -webmention_last_checked: 1734922983 +webmention_last_checked: 1736616887 webmention_count: 0 diff --git a/web/reverse-string-nums/reverse-string-nums.yaml b/web/reverse-string-nums/reverse-string-nums.yaml index 83de970..1155681 100644 --- a/web/reverse-string-nums/reverse-string-nums.yaml +++ b/web/reverse-string-nums/reverse-string-nums.yaml @@ -7,5 +7,5 @@ canonical_url: > title: Reverse a string, but only the digits tags: - php -webmention_last_checked: 1734922984 +webmention_last_checked: 1736616887 webmention_count: 0 diff --git a/web/robots-nocontent/robots-nocontent.yaml b/web/robots-nocontent/robots-nocontent.yaml index c9270be..6f41f66 100644 --- a/web/robots-nocontent/robots-nocontent.yaml +++ b/web/robots-nocontent/robots-nocontent.yaml @@ -7,5 +7,5 @@ canonical_url: > title: Robots-Nocontent (2008) tags: - html -webmention_last_checked: 1734922984 +webmention_last_checked: 1736616887 webmention_count: 0 diff --git a/web/root-color-properties-editor/root-color-properties-editor.yaml b/web/root-color-properties-editor/root-color-properties-editor.yaml index 332d823..f375667 100644 --- a/web/root-color-properties-editor/root-color-properties-editor.yaml +++ b/web/root-color-properties-editor/root-color-properties-editor.yaml @@ -11,7 +11,7 @@ tags: - javascript - bookmarklet atom_feed_publish_date: 2024-12-20 21:09:27 -webmention_last_checked: 1734922984 +webmention_last_checked: 1736616888 webmention_count: 0 shot_scraper_extra_params: | --javascript "document.querySelector('.bookmarklet').click();" diff --git a/web/rosetta/rosetta.yaml b/web/rosetta/rosetta.yaml index 506ded1..492deba 100644 --- a/web/rosetta/rosetta.yaml +++ b/web/rosetta/rosetta.yaml @@ -6,5 +6,5 @@ canonical_url: https://lab.artlung.com/rosetta/ title: 'Artlung Rosetta: Comparing dojo, Ext, Glow, jQuery, MooTools & Prototype' tags: - javascript -webmention_last_checked: 1734922984 +webmention_last_checked: 1736616888 webmention_count: 1 diff --git a/web/rounded-mozilla/rounded-mozilla.yaml b/web/rounded-mozilla/rounded-mozilla.yaml index 2e67129..737dc22 100644 --- a/web/rounded-mozilla/rounded-mozilla.yaml +++ b/web/rounded-mozilla/rounded-mozilla.yaml @@ -6,5 +6,5 @@ canonical_url: https://lab.artlung.com/rounded-mozilla/ title: Mozilla CSS Extensions tags: - css -webmention_last_checked: 1734922985 +webmention_last_checked: 1736616888 webmention_count: 2 diff --git a/web/rtf/rtf.yaml b/web/rtf/rtf.yaml index fb8f40a..797a0f2 100644 --- a/web/rtf/rtf.yaml +++ b/web/rtf/rtf.yaml @@ -6,5 +6,5 @@ canonical_url: https://lab.artlung.com/rtf/ title: Make an RTF Document with PHP tags: - php -webmention_last_checked: 1734922985 +webmention_last_checked: 1736616888 webmention_count: 1 diff --git a/web/screen-resolutions/screen-resolutions.yaml b/web/screen-resolutions/screen-resolutions.yaml index e11d6d4..dd2896a 100644 --- a/web/screen-resolutions/screen-resolutions.yaml +++ b/web/screen-resolutions/screen-resolutions.yaml @@ -7,5 +7,5 @@ canonical_url: > title: Compared Mobile Screen Resolutions (old) tags: - mobile -webmention_last_checked: 1734922985 +webmention_last_checked: 1736616889 webmention_count: 0 diff --git a/web/self-refresh/self-refresh.yaml b/web/self-refresh/self-refresh.yaml index f90a4fd..6ffaa8d 100644 --- a/web/self-refresh/self-refresh.yaml +++ b/web/self-refresh/self-refresh.yaml @@ -8,5 +8,5 @@ title: > itself tags: - javascript -webmention_last_checked: 1734922985 +webmention_last_checked: 1736616889 webmention_count: 0 diff --git a/web/server-side-image-map/server-side-image-map.yaml b/web/server-side-image-map/server-side-image-map.yaml index 7cc26bb..a952e19 100644 --- a/web/server-side-image-map/server-side-image-map.yaml +++ b/web/server-side-image-map/server-side-image-map.yaml @@ -8,5 +8,5 @@ title: Server Side Image Map tags: - apache - html -webmention_last_checked: 1734922985 +webmention_last_checked: 1736616889 webmention_count: 0 diff --git a/web/single-pixel-gif/single-pixel-gif.yaml b/web/single-pixel-gif/single-pixel-gif.yaml index 017b446..f3500e6 100644 --- a/web/single-pixel-gif/single-pixel-gif.yaml +++ b/web/single-pixel-gif/single-pixel-gif.yaml @@ -9,5 +9,5 @@ title: > string tags: - html -webmention_last_checked: 1734922986 +webmention_last_checked: 1736616889 webmention_count: 0 diff --git a/web/six-finger-ai-hand/six-finger-ai-hand.yaml b/web/six-finger-ai-hand/six-finger-ai-hand.yaml index e327595..6b582f0 100644 --- a/web/six-finger-ai-hand/six-finger-ai-hand.yaml +++ b/web/six-finger-ai-hand/six-finger-ai-hand.yaml @@ -7,5 +7,5 @@ canonical_url: > title: Six Finger AI Hand (as Slack Emoji) tags: - silly -webmention_last_checked: 1734922986 +webmention_last_checked: 1736616889 webmention_count: 0 diff --git a/web/slideshow-img/slideshow-img.yaml b/web/slideshow-img/slideshow-img.yaml index 5e3c013..5495df1 100644 --- a/web/slideshow-img/slideshow-img.yaml +++ b/web/slideshow-img/slideshow-img.yaml @@ -8,5 +8,5 @@ title: > 1999 tags: - javascript -webmention_last_checked: 1734922986 +webmention_last_checked: 1736616890 webmention_count: 0 diff --git a/web/slideshow-plus/slideshow-plus.yaml b/web/slideshow-plus/slideshow-plus.yaml index ff1919e..0f2575f 100644 --- a/web/slideshow-plus/slideshow-plus.yaml +++ b/web/slideshow-plus/slideshow-plus.yaml @@ -8,5 +8,5 @@ title: > can also move forward automatically tags: - javascript -webmention_last_checked: 1734922987 +webmention_last_checked: 1736616890 webmention_count: 0 diff --git a/web/slideshow/slideshow.yaml b/web/slideshow/slideshow.yaml index 2306011..073c612 100644 --- a/web/slideshow/slideshow.yaml +++ b/web/slideshow/slideshow.yaml @@ -6,5 +6,5 @@ canonical_url: https://lab.artlung.com/slideshow/ title: SlideShow Implementation tags: - javascript -webmention_last_checked: 1734922986 +webmention_last_checked: 1736616890 webmention_count: 0 diff --git a/web/speech-synthesis/speech-synthesis.yaml b/web/speech-synthesis/speech-synthesis.yaml index e15721f..9dd60e9 100644 --- a/web/speech-synthesis/speech-synthesis.yaml +++ b/web/speech-synthesis/speech-synthesis.yaml @@ -7,5 +7,5 @@ canonical_url: > title: Speech Synthesis tags: - javascript -webmention_last_checked: 1734922987 +webmention_last_checked: 1736616890 webmention_count: 0 diff --git a/web/spoiler/spoiler.yaml b/web/spoiler/spoiler.yaml index 3ae1f2a..e43a6fc 100644 --- a/web/spoiler/spoiler.yaml +++ b/web/spoiler/spoiler.yaml @@ -7,5 +7,5 @@ title: Spoiler Widget tags: - css - html -webmention_last_checked: 1734922987 +webmention_last_checked: 1736616890 webmention_count: 0 diff --git a/web/sql-server-collations/sql-server-collations.yaml b/web/sql-server-collations/sql-server-collations.yaml index 0e4f538..c9c3fd6 100644 --- a/web/sql-server-collations/sql-server-collations.yaml +++ b/web/sql-server-collations/sql-server-collations.yaml @@ -7,5 +7,5 @@ canonical_url: > title: Show all SQL Server Collations tags: - sql -webmention_last_checked: 1734922987 +webmention_last_checked: 1736616891 webmention_count: 0 diff --git a/web/t-paamayim-nekudotayim/t-paamayim-nekudotayim.yaml b/web/t-paamayim-nekudotayim/t-paamayim-nekudotayim.yaml index 388845b..5736e21 100644 --- a/web/t-paamayim-nekudotayim/t-paamayim-nekudotayim.yaml +++ b/web/t-paamayim-nekudotayim/t-paamayim-nekudotayim.yaml @@ -9,5 +9,5 @@ title: > T_PAAMAYIM_NEKUDOTAYIM tags: - php -webmention_last_checked: 1734922987 +webmention_last_checked: 1736616891 webmention_count: 0 diff --git a/web/the-problem-with-blur/the-problem-with-blur.yaml b/web/the-problem-with-blur/the-problem-with-blur.yaml index d4b88da..e93a71b 100644 --- a/web/the-problem-with-blur/the-problem-with-blur.yaml +++ b/web/the-problem-with-blur/the-problem-with-blur.yaml @@ -10,5 +10,5 @@ title: > tags: - a11y - css -webmention_last_checked: 1734922988 +webmention_last_checked: 1736616891 webmention_count: 1 diff --git a/web/three-char-combos/three-char-combos.yaml b/web/three-char-combos/three-char-combos.yaml index c64354b..7959228 100644 --- a/web/three-char-combos/three-char-combos.yaml +++ b/web/three-char-combos/three-char-combos.yaml @@ -7,5 +7,5 @@ canonical_url: > title: Permutations of a set of characters tags: - php -webmention_last_checked: 1734922988 +webmention_last_checked: 1736616891 webmention_count: 0 diff --git a/web/tips-2001/tips-2001.yaml b/web/tips-2001/tips-2001.yaml index eafb25f..5146462 100644 --- a/web/tips-2001/tips-2001.yaml +++ b/web/tips-2001/tips-2001.yaml @@ -6,5 +6,5 @@ canonical_url: https://lab.artlung.com/tips-2001/ title: Random HTML Tips tags: - html -webmention_last_checked: 1734922989 +webmention_last_checked: 1736616892 webmention_count: 1 diff --git a/web/tr-onmouseover-style/tr-onmouseover-style.yaml b/web/tr-onmouseover-style/tr-onmouseover-style.yaml index 3426f90..a71abc7 100644 --- a/web/tr-onmouseover-style/tr-onmouseover-style.yaml +++ b/web/tr-onmouseover-style/tr-onmouseover-style.yaml @@ -7,5 +7,5 @@ canonical_url: > title: onMouseover in a TR tag tags: - javascript -webmention_last_checked: 1734922989 +webmention_last_checked: 1736616892 webmention_count: 2 diff --git a/web/undocumented-linklint/undocumented-linklint.yaml b/web/undocumented-linklint/undocumented-linklint.yaml index 167caf0..a21163f 100644 --- a/web/undocumented-linklint/undocumented-linklint.yaml +++ b/web/undocumented-linklint/undocumented-linklint.yaml @@ -7,5 +7,5 @@ canonical_url: > title: Undocumented Linklint JavaScript Feature tags: - javascript -webmention_last_checked: 1734922990 +webmention_last_checked: 1736616892 webmention_count: 1 diff --git a/web/unix-batch-file-rename/unix-batch-file-rename.yaml b/web/unix-batch-file-rename/unix-batch-file-rename.yaml index 28a87be..9431bc7 100644 --- a/web/unix-batch-file-rename/unix-batch-file-rename.yaml +++ b/web/unix-batch-file-rename/unix-batch-file-rename.yaml @@ -9,5 +9,5 @@ title: > Unix tags: - unix -webmention_last_checked: 1734922990 +webmention_last_checked: 1736616892 webmention_count: 1 diff --git a/web/upload/upload.yaml b/web/upload/upload.yaml index 79a94a6..9fa7bf3 100644 --- a/web/upload/upload.yaml +++ b/web/upload/upload.yaml @@ -7,5 +7,5 @@ title: Sample Uploader Code tags: - javascript - php -webmention_last_checked: 1734922990 +webmention_last_checked: 1736616893 webmention_count: 0 diff --git a/web/url-compare/url-compare.yaml b/web/url-compare/url-compare.yaml index 31fcd2c..320e1ee 100644 --- a/web/url-compare/url-compare.yaml +++ b/web/url-compare/url-compare.yaml @@ -7,5 +7,5 @@ title: Compare Two URLs tags: - http - tools -webmention_last_checked: 1734922990 +webmention_last_checked: 1736616893 webmention_count: 0 diff --git a/web/urlencode/urlencode.yaml b/web/urlencode/urlencode.yaml index c4d3567..f2453dc 100644 --- a/web/urlencode/urlencode.yaml +++ b/web/urlencode/urlencode.yaml @@ -8,5 +8,5 @@ title: > URLEncoded JavaScript tags: - javascript -webmention_last_checked: 1734922991 +webmention_last_checked: 1736616893 webmention_count: 1 diff --git a/web/user-preference-for-new-windows/user-preference-for-new-windows.yaml b/web/user-preference-for-new-windows/user-preference-for-new-windows.yaml index a371198..673b510 100644 --- a/web/user-preference-for-new-windows/user-preference-for-new-windows.yaml +++ b/web/user-preference-for-new-windows/user-preference-for-new-windows.yaml @@ -11,5 +11,5 @@ tags: - html - php - ux -webmention_last_checked: 1734922991 +webmention_last_checked: 1736616893 webmention_count: 1 diff --git a/web/vaguely-interesting-layout/vaguely-interesting-layout.yaml b/web/vaguely-interesting-layout/vaguely-interesting-layout.yaml index 8bf139b..b7400a3 100644 --- a/web/vaguely-interesting-layout/vaguely-interesting-layout.yaml +++ b/web/vaguely-interesting-layout/vaguely-interesting-layout.yaml @@ -8,5 +8,5 @@ title: Vaguely Interesting Layout tags: - css - design -webmention_last_checked: 1734922991 +webmention_last_checked: 1736616894 webmention_count: 0 diff --git a/web/validate-checkbox/validate-checkbox.yaml b/web/validate-checkbox/validate-checkbox.yaml index 76240a6..7637be5 100644 --- a/web/validate-checkbox/validate-checkbox.yaml +++ b/web/validate-checkbox/validate-checkbox.yaml @@ -9,5 +9,5 @@ title: > checked tags: - javascript -webmention_last_checked: 1734922991 +webmention_last_checked: 1736616894 webmention_count: 0 diff --git a/web/validate-image/validate-image.yaml b/web/validate-image/validate-image.yaml index b6d7305..49f5837 100644 --- a/web/validate-image/validate-image.yaml +++ b/web/validate-image/validate-image.yaml @@ -8,5 +8,5 @@ title: > has an image as submit? tags: - javascript -webmention_last_checked: 1734922991 +webmention_last_checked: 1736616894 webmention_count: 0 diff --git a/web/vbscript-always-elseif-never-else-if/vbscript-always-elseif-never-else-if.yaml b/web/vbscript-always-elseif-never-else-if/vbscript-always-elseif-never-else-if.yaml index 838fe30..c90e4cc 100644 --- a/web/vbscript-always-elseif-never-else-if/vbscript-always-elseif-never-else-if.yaml +++ b/web/vbscript-always-elseif-never-else-if/vbscript-always-elseif-never-else-if.yaml @@ -8,5 +8,5 @@ title: | In VBScript, It's always "Elseif" and never "Else If" tags: - vbscript -webmention_last_checked: 1734922992 +webmention_last_checked: 1736616894 webmention_count: 0 diff --git a/web/w3c-with-and-without-css/w3c-with-and-without-css.yaml b/web/w3c-with-and-without-css/w3c-with-and-without-css.yaml index 86bb2eb..477404f 100644 --- a/web/w3c-with-and-without-css/w3c-with-and-without-css.yaml +++ b/web/w3c-with-and-without-css/w3c-with-and-without-css.yaml @@ -7,5 +7,5 @@ canonical_url: > title: How Powerful is CSS? tags: - css -webmention_last_checked: 1734922992 +webmention_last_checked: 1736616895 webmention_count: 1 diff --git a/web/webmentions/webmentions.yaml b/web/webmentions/webmentions.yaml index b7d3856..f172a41 100644 --- a/web/webmentions/webmentions.yaml +++ b/web/webmentions/webmentions.yaml @@ -8,5 +8,5 @@ tags: - indieweb og-image-date: 2024-12-18 17:51:46 atom_feed_publish_date: 2024-12-18 17:51:46 -webmention_last_checked: 1734922885 +webmention_last_checked: 1736616895 webmention_count: 2 diff --git a/web/windows-export-file-list/windows-export-file-list.yaml b/web/windows-export-file-list/windows-export-file-list.yaml index d77e3f8..d5a602d 100644 --- a/web/windows-export-file-list/windows-export-file-list.yaml +++ b/web/windows-export-file-list/windows-export-file-list.yaml @@ -9,5 +9,5 @@ title: > C:\ drive (Windows) tags: - windows -webmention_last_checked: 1734922992 +webmention_last_checked: 1736616895 webmention_count: 0 diff --git a/web/ws-ftp-password-decoder/ws-ftp-password-decoder.yaml b/web/ws-ftp-password-decoder/ws-ftp-password-decoder.yaml index d151b46..8030765 100644 --- a/web/ws-ftp-password-decoder/ws-ftp-password-decoder.yaml +++ b/web/ws-ftp-password-decoder/ws-ftp-password-decoder.yaml @@ -7,5 +7,5 @@ canonical_url: > title: WS_FTP JavaScript Password Decoder tags: - javascript -webmention_last_checked: 1734922992 +webmention_last_checked: 1736616895 webmention_count: 0 diff --git a/web/xml-encode/xml-encode.yaml b/web/xml-encode/xml-encode.yaml index 7f7c12c..b98bf19 100644 --- a/web/xml-encode/xml-encode.yaml +++ b/web/xml-encode/xml-encode.yaml @@ -6,5 +6,5 @@ canonical_url: https://lab.artlung.com/xml-encode/ title: xml_encode() tags: - php -webmention_last_checked: 1734922993 +webmention_last_checked: 1736616895 webmention_count: 0 diff --git a/webmention_data/anti-cache.json b/webmention_data/anti-cache.json index 3824900..d1eb748 100644 --- a/webmention_data/anti-cache.json +++ b/webmention_data/anti-cache.json @@ -1 +1 @@ -[{"type":"entry","author":{"type":"card","name":"Joe Crawford","photo":"https:\/\/webmention.io\/avatar\/cdn.artlung.com\/a0b5bad7e1082e08dc5e72e7f4760d40596782e04895da8b740023e7c1904d15.jpg","url":""},"url":"https:\/\/artlung.com\/blog\/2024\/12\/23\/lab-artlung-com-and-a-return-to-a-world-wide-web\/","published":"2024-12-23T11:25:29","wm-received":"2024-12-23T19:25:48Z","wm-id":1869370,"wm-source":"https:\/\/artlung.com\/blog\/2024\/12\/23\/lab-artlung-com-and-a-return-to-a-world-wide-web\/","wm-target":"https:\/\/lab.artlung.com\/anti-cache\/","wm-protocol":"webmention","name":"lab.artlung.com and a return to a World Wide Web","content":{"html":"

I have made every kind of web page. I\u2019ve worked on every sort of web application. I learned ColdFusion. I learned Perl. I learned PHP. CSS came out<\/em> at the start of my career.<\/p>\n

Also, Active Server Pages (\u201cASP\u201d) is now referred to as \u201cClassic ASP\u201d<\/em> which makes it sound related to some middle-aged-man\u2019s drop-top Corvette Stingray.<\/p>\n

So I used my website to play with the web. In part I did it to remember little bits of arcana that kept coming up. I remember looking up my page Preventing Browser Cache<\/a> several times over the years to see the various different ways the different application platforms represented the HTTP headers. Originally they were all here on artlung.com. <\/p>\n

It felt good to give back to the web. I had learned so much over the years from mailing lists. We used to call them listservs<\/em>. Webmonster, Web405, evolt.org, webdesign-L, WWWAC, WebSanDiego, GOODTIMES and others taught me so much. <\/p>\n

I also had learned from usenet. And for a time Macromedia offered their own newsgroup hierarchy.<\/p>\n

But here in 2024 I suppose the answer is StackOverflow. Or just type your question into Google or Bing or DuckDuckGo. Even though often what comes up are ads and summations \u201cwritten\u201d\u2013which is to say, they\u2019ve been laundered through an AI tool. Nobody wrote that answer.<\/em> <\/p>\n

But there was human effort that caused those answers to display. We forget that at our peril. It\u2019s a key part of why I also felt compelled to include webmention support using Aaron Pareki\u2019s<\/a> excellent webmention.io service<\/a>, among the best parts of the indieweb.<\/p>\n

I\u2019m writing this at a coffee shop a stone\u2019s throw from what was the site of San Diego Technical Books<\/em>. I would go there just to browse and to learn. And yes, buy a book now and again. The newsgroups and listservs are gone. Now everything is in some Discord. And I can\u2019t search for it. I can\u2019t find it. It\u2019s invisible. The web is worse because we stopped putting things onto the web. <\/p>\n

I had added comments in 2010. I used Disqus<\/a>. It worked, and still works, great. People can make suggestions as to what specific thing they would encounter<\/em> when creating a menu, or trying to get SQL to behave, or would just leave a \u201cthank you\u201d for a chunk of code that was useful to them. That was so gratifying to me. I also would get some email along those lines. And Disqus includes moderation tools to allow me to make choices about what can and can\u2019t go into the site.<\/p>\n

But I added advertisements in the form of Google Ads in the 2010s. And they did not improve the site. In fact, they made the pages worse. They would spawn big takeovers to prevent visitors from reading. And the income from the ads dried up.<\/p>\n

lab.artlung.com<\/a> has been fully refitted and I\u2019m rather proud of it all. It\u2019s all hand-rolled PHP code underpinning it. I\u2019m using composer<\/code> to allow me to pull in useful libraries to read and write YAML consistently, to compress JavaScript (I did that to make it easy to create bookmarklets) and something to streamline creating an Atom feed. The site has webmentions and unit tests and I use PHP_CodeSniffer to keep the code from being a tangled mess. I have fun features like a random page load when you do (alt-r or option-r). It includes og:image<\/code> capture using the excellent shot-scraper. I also created a command line tool to force myself to do some sort of organization on the many pages. And it\u2019s gotten me to create some new pages too. I don\u2019t have anything about React on the site but that may change! <\/p>\n

I\u2019m glad for this change. It\u2019s a return to practices that are good parts of the web: Sharing source code. Sharing with each other. No ads, or at least less-intrusive ads<\/em>. <\/p>\n

We have let the badness of computers and technology force us to forget the web. Urls are a weird mishmash of letters and numbers we have no hope of remembering. We spend times in apps where algorithms seem to prevent us from doing what we want to do. And so we\u2019re angry and isolated from things that might be useful to us. That stinks. <\/p>\n

You and me, we own the web<\/em>. It\u2019s ours.<\/p>\n

We talked the other day in an IndieWeb Homebrew Website Club meeting about \u201cWWW\u201d and why sites seldom have that at the beginnings of their web urls. For a time, every site had that \"www.\"<\/code> <\/p>\n

\u201cWorld Wide Web\u201d is not quaint. I think it was a promise. It\u2019s a manifesto. Information for the whole world, no matter who you are, or where you are, you can get this information.<\/em> No registration required. No cookies required. No newsletter to subscribe to. No Discord to join. No monthly fee. No special hardware required.<\/p>\n

It\u2019s so fun to make web pages and share them.<\/p>\n

Go make a web page and share it.<\/p>","text":"I have made every kind of web page. I\u2019ve worked on every sort of web application. I learned ColdFusion. I learned Perl. I learned PHP. CSS came out at the start of my career.\nAlso, Active Server Pages (\u201cASP\u201d) is now referred to as \u201cClassic ASP\u201d which makes it sound related to some middle-aged-man\u2019s drop-top Corvette Stingray.\nSo I used my website to play with the web. In part I did it to remember little bits of arcana that kept coming up. I remember looking up my page Preventing Browser Cache several times over the years to see the various different ways the different application platforms represented the HTTP headers. Originally they were all here on artlung.com. \nIt felt good to give back to the web. I had learned so much over the years from mailing lists. We used to call them listservs. Webmonster, Web405, evolt.org, webdesign-L, WWWAC, WebSanDiego, GOODTIMES and others taught me so much. \nI also had learned from usenet. And for a time Macromedia offered their own newsgroup hierarchy.\nBut here in 2024 I suppose the answer is StackOverflow. Or just type your question into Google or Bing or DuckDuckGo. Even though often what comes up are ads and summations \u201cwritten\u201d\u2013which is to say, they\u2019ve been laundered through an AI tool. Nobody wrote that answer. \nBut there was human effort that caused those answers to display. We forget that at our peril. It\u2019s a key part of why I also felt compelled to include webmention support using Aaron Pareki\u2019s excellent webmention.io service, among the best parts of the indieweb.\nI\u2019m writing this at a coffee shop a stone\u2019s throw from what was the site of San Diego Technical Books. I would go there just to browse and to learn. And yes, buy a book now and again. The newsgroups and listservs are gone. Now everything is in some Discord. And I can\u2019t search for it. I can\u2019t find it. It\u2019s invisible. The web is worse because we stopped putting things onto the web. \nI had added comments in 2010. I used Disqus. It worked, and still works, great. People can make suggestions as to what specific thing they would encounter when creating a menu, or trying to get SQL to behave, or would just leave a \u201cthank you\u201d for a chunk of code that was useful to them. That was so gratifying to me. I also would get some email along those lines. And Disqus includes moderation tools to allow me to make choices about what can and can\u2019t go into the site.\nBut I added advertisements in the form of Google Ads in the 2010s. And they did not improve the site. In fact, they made the pages worse. They would spawn big takeovers to prevent visitors from reading. And the income from the ads dried up.\nlab.artlung.com has been fully refitted and I\u2019m rather proud of it all. It\u2019s all hand-rolled PHP code underpinning it. I\u2019m using composer to allow me to pull in useful libraries to read and write YAML consistently, to compress JavaScript (I did that to make it easy to create bookmarklets) and something to streamline creating an Atom feed. The site has webmentions and unit tests and I use PHP_CodeSniffer to keep the code from being a tangled mess. I have fun features like a random page load when you do (alt-r or option-r). It includes og:image capture using the excellent shot-scraper. I also created a command line tool to force myself to do some sort of organization on the many pages. And it\u2019s gotten me to create some new pages too. I don\u2019t have anything about React on the site but that may change! \nI\u2019m glad for this change. It\u2019s a return to practices that are good parts of the web: Sharing source code. Sharing with each other. No ads, or at least less-intrusive ads. \nWe have let the badness of computers and technology force us to forget the web. Urls are a weird mishmash of letters and numbers we have no hope of remembering. We spend times in apps where algorithms seem to prevent us from doing what we want to do. And so we\u2019re angry and isolated from things that might be useful to us. That stinks. \nYou and me, we own the web. It\u2019s ours.\nWe talked the other day in an IndieWeb Homebrew Website Club meeting about \u201cWWW\u201d and why sites seldom have that at the beginnings of their web urls. For a time, every site had that \"www.\" \n\u201cWorld Wide Web\u201d is not quaint. I think it was a promise. It\u2019s a manifesto. Information for the whole world, no matter who you are, or where you are, you can get this information. No registration required. No cookies required. No newsletter to subscribe to. No Discord to join. No monthly fee. No special hardware required.\nIt\u2019s so fun to make web pages and share them.\nGo make a web page and share it."},"mention-of":"https:\/\/lab.artlung.com\/anti-cache\/","wm-property":"mention-of","wm-private":false,"rels":{"canonical":"https:\/\/artlung.com\/blog\/2024\/12\/23\/lab-artlung-com-and-a-return-to-a-world-wide-web\/"}},{"type":"entry","author":{"type":"card","name":"Joe Crawford","photo":"https:\/\/webmention.io\/avatar\/cdn.artlung.com\/a0b5bad7e1082e08dc5e72e7f4760d40596782e04895da8b740023e7c1904d15.jpg","url":""},"url":"https:\/\/artlung.com\/blog\/2003\/11\/13\/106878821057274262\/","published":"2003-11-13T20:36:00","wm-received":"2024-12-02T06:07:29Z","wm-id":1863931,"wm-source":"https:\/\/artlung.com\/blog\/2003\/11\/13\/106878821057274262\/","wm-target":"https:\/\/lab.artlung.com\/anti-cache\/","wm-protocol":"webmention","content":{"html":"

This needs a librarian.<\/b> <\/p>\n

  1. \/<\/a><\/li>\n
  2. \/archive\/<\/a><\/li>\n
  3. \/archive\/0\/<\/a><\/li>\n
  4. \/archive\/0\/alhome.html<\/a><\/li>\n
  5. \/archive\/0\/index.html<\/a><\/li>\n
  6. \/archive\/0\/undcon.html<\/a><\/li>\n
  7. \/archive\/1\/<\/a><\/li>\n
  8. \/archive\/1\/alhome.html<\/a><\/li>\n
  9. \/archive\/1\/index.html<\/a><\/li>\n
  10. \/archive\/1\/resume.html<\/a><\/li>\n
  11. \/archive\/2\/<\/a><\/li>\n
  12. \/archive\/2\/animatedgifs.html<\/a><\/li>\n
  13. \/archive\/2\/biography.html<\/a><\/li>\n
  14. \/archive\/2\/book_covers.html<\/a><\/li>\n
  15. \/archive\/2\/book_covers2.html<\/a><\/li>\n
  16. \/archive\/2\/ccks.html<\/a><\/li>\n
  17. \/archive\/2\/clock_concept.html<\/a><\/li>\n
  18. \/archive\/2\/crossplatform.html<\/a><\/li>\n
  19. \/archive\/2\/flash_checker.html<\/a><\/li>\n
  20. \/archive\/2\/freelance_etching.html<\/a><\/li>\n
  21. \/archive\/2\/home.html<\/a><\/li>\n
  22. \/archive\/2\/kingman.html<\/a><\/li>\n
  23. \/archive\/2\/links.html<\/a><\/li>\n
  24. \/archive\/2\/logo_parody.html<\/a><\/li>\n
  25. \/archive\/2\/logos.html<\/a><\/li>\n
  26. \/archive\/2\/logos2.html<\/a><\/li>\n
  27. \/archive\/2\/logos3.html<\/a><\/li>\n
  28. \/archive\/2\/newcomer.html<\/a><\/li>\n
  29. \/archive\/2\/pictures.html<\/a><\/li>\n
  30. \/archive\/2\/resume.html<\/a><\/li>\n
  31. \/archive\/2\/ronsrhinestones.html<\/a><\/li>\n
  32. \/archive\/2\/selfportrait.html<\/a><\/li>\n
  33. \/archive\/2\/send_email.html<\/a><\/li>\n
  34. \/archive\/2\/spacebaby.html<\/a><\/li>\n
  35. \/archive\/2\/spot_illustrations_1.html<\/a><\/li>\n
  36. \/archive\/2\/spot_illustrations_2.html<\/a><\/li>\n
  37. \/archive\/2\/spot_illustrations_3.html<\/a><\/li>\n
  38. \/archive\/2\/spot_illustrations_4.html<\/a><\/li>\n
  39. \/archive\/2\/spot_illustrations_5.html<\/a><\/li>\n
  40. \/archive\/2\/strange_landscapes_1.html<\/a><\/li>\n
  41. \/archive\/2\/strange_landscapes_2.html<\/a><\/li>\n
  42. \/archive\/2\/strange_landscapes_3.html<\/a><\/li>\n
  43. \/archive\/2\/strange_landscapes_4.html<\/a><\/li>\n
  44. \/archive\/2\/xkitty.html<\/a><\/li>\n
  45. \/archive\/2\/z_image_manip.html<\/a><\/li>\n
  46. \/archive\/2\/z_image_manip2.html<\/a><\/li>\n
  47. \/archive\/3\/<\/a><\/li>\n
  48. \/archive\/3beta\/<\/a><\/li>\n
  49. \/archive\/4\/<\/a><\/li>\n
  50. \/archive\/sig\/<\/a><\/li>\n
  51. \/archive\/splashes\/-20020114<\/a><\/li>\n
  52. \/archive\/splashes\/-20020123<\/a><\/li>\n
  53. \/archive\/splashes\/-20020130<\/a><\/li>\n
  54. \/archive\/splashes\/-20020306<\/a><\/li>\n
  55. \/archive\/splashes\/-20020424<\/a><\/li>\n
  56. \/archive\/splashes\/-20020806<\/a><\/li>\n
  57. \/archive\/splashes\/-20030702<\/a><\/li>\n
  58. \/bio\/<\/a><\/li>\n
  59. \/bio\/respiratory\/nametag\/<\/a><\/li>\n
  60. \/bio\/respiratory\/physics\/<\/a><\/li>\n
  61. \/bio\/wedding\/<\/a><\/li>\n
  62. \/bio\/wedding\/announcement\/<\/a><\/li>\n
  63. \/bio\/wedding\/anuncio\/<\/a><\/li>\n
  64. \/bio\/wedding\/slide.php<\/a><\/li>\n
  65. \/blog\/<\/a><\/li>\n
  66. \/blog\/2001\/01\/<\/a><\/li>\n
  67. \/blog\/2001\/02\/<\/a><\/li>\n
  68. \/blog\/2001\/03\/<\/a><\/li>\n
  69. \/blog\/2001\/04\/<\/a><\/li>\n
  70. \/blog\/2001\/05\/<\/a><\/li>\n
  71. \/blog\/2001\/06\/<\/a><\/li>\n
  72. \/blog\/2001\/07\/<\/a><\/li>\n
  73. \/blog\/2001\/08\/<\/a><\/li>\n
  74. \/blog\/2001\/09\/<\/a><\/li>\n
  75. \/blog\/2001\/10\/<\/a><\/li>\n
  76. \/blog\/2001\/11\/<\/a><\/li>\n
  77. \/blog\/2001\/12\/<\/a><\/li>\n
  78. \/blog\/2002\/01\/<\/a><\/li>\n
  79. \/blog\/2002\/02\/<\/a><\/li>\n
  80. \/blog\/2002\/03\/<\/a><\/li>\n
  81. \/blog\/2002\/04\/<\/a><\/li>\n
  82. \/blog\/2002\/05\/<\/a><\/li>\n
  83. \/blog\/2002\/06\/<\/a><\/li>\n
  84. \/blog\/2002\/07\/<\/a><\/li>\n
  85. \/blog\/2002\/08\/<\/a><\/li>\n
  86. \/blog\/2002\/09\/<\/a><\/li>\n
  87. \/blog\/2002\/10\/<\/a><\/li>\n
  88. \/blog\/2002\/11\/<\/a><\/li>\n
  89. \/blog\/2002\/12\/<\/a><\/li>\n
  90. \/blog\/2003\/01\/<\/a><\/li>\n
  91. \/blog\/2003\/02\/<\/a><\/li>\n
  92. \/blog\/2003\/02\/<\/a><\/li>\n
  93. \/blog\/2003\/03\/<\/a><\/li>\n
  94. \/blog\/2003\/04\/<\/a><\/li>\n
  95. \/blog\/2003\/05\/<\/a><\/li>\n
  96. \/blog\/2003\/06\/<\/a><\/li>\n
  97. \/blog\/2003\/07\/<\/a><\/li>\n
  98. \/blog\/2003\/08\/<\/a><\/li>\n
  99. \/blog\/2003\/09\/<\/a><\/li>\n
  100. \/blog\/2003\/10\/<\/a><\/li>\n
  101. \/blog\/2003\/11\/<\/a><\/li>\n
  102. \/blog\/2003\/12\/<\/a><\/li>\n
  103. \/blog\/pageholder\/<\/a><\/li>\n
  104. \/blog\/special_2003_02_15.php<\/a><\/li>\n
  105. \/blog\/special_2003_02_16.php<\/a><\/li>\n
  106. \/colophon\/<\/a><\/li>\n
  107. \/contact\/<\/a><\/li>\n
  108. \/deprecated\/books.uk\/<\/a><\/li>\n
  109. \/deprecated\/books\/<\/a><\/li>\n
  110. \/deprecated\/che\/<\/a><\/li>\n
  111. \/deprecated\/che\/goodbye.php<\/a><\/li>\n
  112. \/deprecated\/jennifer\/<\/a><\/li>\n
  113. \/fansite\/bebe\/<\/a><\/li>\n
  114. \/fansite\/ronnyvardy\/<\/a><\/li>\n
  115. \/fansite\/stew-tnp\/<\/a><\/li>\n
  116. \/fansite\/voltes-v\/<\/a><\/li>\n
  117. \/fansite\/voltes-v\/index.html<\/a><\/li>\n
  118. \/fansite\/voltes-v\/paper.html<\/a><\/li>\n
  119. \/fansite\/voltes-v\/toy.html<\/a><\/li>\n
  120. \/fansite\/voltes-v\/where.html<\/a><\/li>\n
  121. \/feedback\/<\/a><\/li>\n
  122. \/flash\/<\/a><\/li>\n
  123. \/flash\/flash_checker.html<\/a><\/li>\n
  124. \/friends\/eduquake\/<\/a><\/li>\n
  125. \/friends\/jared\/<\/a><\/li>\n
  126. \/friends\/vince\/<\/a><\/li>\n
  127. \/headers\/<\/a><\/li>\n
  128. \/headers\/-20000114<\/a><\/li>\n
  129. \/headers\/-20000912<\/a><\/li>\n
  130. \/headers\/-20010216<\/a><\/li>\n
  131. \/headers\/-20010223<\/a><\/li>\n
  132. \/headers\/-20010305<\/a><\/li>\n
  133. \/headers\/-20010307<\/a><\/li>\n
  134. \/headers\/-20010322<\/a><\/li>\n
  135. \/headers\/-20010403<\/a><\/li>\n
  136. \/headers\/-20010412<\/a><\/li>\n
  137. \/headers\/-20010508<\/a><\/li>\n
  138. \/headers\/-20010624<\/a><\/li>\n
  139. \/headers\/-20010630<\/a><\/li>\n
  140. \/headers\/-20010823<\/a><\/li>\n
  141. \/headers\/-20010915<\/a><\/li>\n
  142. \/headers\/-20011002<\/a><\/li>\n
  143. \/headers\/-20011013<\/a><\/li>\n
  144. \/headers\/-20011014<\/a><\/li>\n
  145. \/headers\/-20011023<\/a><\/li>\n
  146. \/headers\/-20011114<\/a><\/li>\n
  147. \/headers\/-20011121<\/a><\/li>\n
  148. \/headers\/-20011128<\/a><\/li>\n
  149. \/headers\/-20011202<\/a><\/li>\n
  150. \/headers\/-20011206<\/a><\/li>\n
  151. \/headers\/-20011224<\/a><\/li>\n
  152. \/headers\/-20011231<\/a><\/li>\n
  153. \/headers\/-20020106<\/a><\/li>\n
  154. \/headers\/-20020118<\/a><\/li>\n
  155. \/headers\/-20020130<\/a><\/li>\n
  156. \/headers\/-20020225<\/a><\/li>\n
  157. \/headers\/-20020322<\/a><\/li>\n
  158. \/headers\/-20020326<\/a><\/li>\n
  159. \/headers\/-20020424<\/a><\/li>\n
  160. \/headers\/-20020628<\/a><\/li>\n
  161. \/headers\/-20020806<\/a><\/li>\n
  162. \/headers\/-20020911<\/a><\/li>\n
  163. \/headers\/-20021018<\/a><\/li>\n
  164. \/headers\/-20021104<\/a><\/li>\n
  165. \/headers\/-20021113<\/a><\/li>\n
  166. \/headers\/-20021217<\/a><\/li>\n
  167. \/headers\/-20030128<\/a><\/li>\n
  168. \/headers\/-20030215<\/a><\/li>\n
  169. \/headers\/-20030412<\/a><\/li>\n
  170. \/headers\/-20030621<\/a><\/li>\n
  171. \/headers\/-20030707<\/a><\/li>\n
  172. \/headers\/-20030911<\/a><\/li>\n
  173. \/headers\/-20030912<\/a><\/li>\n
  174. \/headers\/-20030923<\/a><\/li>\n
  175. \/headers\/-20031019<\/a><\/li>\n
  176. \/headers\/-20031027<\/a><\/li>\n
  177. \/headers\/-20031031<\/a><\/li>\n
  178. \/headers\/-20031102<\/a><\/li>\n
  179. \/headers\/-20031111<\/a><\/li>\n
  180. \/headers\/\/<\/a><\/li>\n
  181. \/images\/<\/a><\/li>\n
  182. \/images\/20030216\/<\/a><\/li>\n
  183. \/images\/amiga\/<\/a><\/li>\n
  184. \/images\/joyofbeing.html<\/a><\/li>\n
  185. \/lab\/<\/a><\/li>\n
  186. \/lab\/css\/<\/a><\/li>\n
  187. \/lab\/css\/a-outline-none\/<\/a><\/li>\n
  188. \/lab\/css\/additive-font-size\/<\/a><\/li>\n
  189. \/lab\/css\/border-style\/<\/a><\/li>\n
  190. \/lab\/css\/form-image-background\/<\/a><\/li>\n
  191. \/lab\/css\/modify-the-box\/<\/a><\/li>\n
  192. \/lab\/css\/rounded-mozilla\/<\/a><\/li>\n
  193. \/lab\/css\/w3c-with-and-without-css\/<\/a><\/li>\n
  194. \/lab\/html\/50states\/<\/a><\/li>\n
  195. \/lab\/html\/ancient-tidy-tutorial\/<\/a><\/li>\n
  196. \/lab\/html\/gettysburg\/<\/a><\/li>\n
  197. \/lab\/html\/html-2.0\/<\/a><\/li>\n
  198. \/lab\/html\/image_border\/<\/a><\/li>\n
  199. \/lab\/html\/input-direction\/<\/a><\/li>\n
  200. \/lab\/html\/tips-2001\/<\/a><\/li>\n
  201. \/lab\/other\/<\/a><\/li>\n
  202. \/lab\/other\/anti-cache\/<\/a><\/li>\n
  203. \/lab\/other\/asp\/<\/a><\/li>\n
  204. \/lab\/other\/coldfusion-break-db\/<\/a><\/li>\n
  205. \/lab\/other\/email-submission-stinks\/<\/a><\/li>\n
  206. \/lab\/other\/java-tags\/<\/a><\/li>\n
  207. \/lab\/other\/java-tags\/-applet-tag-3.2.php<\/a><\/li>\n
  208. \/lab\/other\/java-tags\/-applet-tag-4.0.php<\/a><\/li>\n
  209. \/lab\/other\/java-tags\/-applet-tag-microsoft.php<\/a><\/li>\n
  210. \/lab\/other\/java-tags\/-applet-tag-netscape.php<\/a><\/li>\n
  211. \/lab\/other\/java-tags\/-applet-tag-sun.php<\/a><\/li>\n
  212. \/lab\/other\/misc-files\/<\/a><\/li>\n
  213. \/lab\/other\/not-valid-itunes-library\/<\/a><\/li>\n
  214. \/lab\/other\/undocumented-linklint\/<\/a><\/li>\n
  215. \/lab\/other\/unix-batch-file-rename\/<\/a><\/li>\n
  216. \/lab\/other\/windows_export_file_list\/<\/a><\/li>\n
  217. \/lab\/other\/ws_ftp_password_decoder\/<\/a><\/li>\n
  218. \/lab\/php\/<\/a><\/li>\n
  219. \/lab\/php\/countdown\/<\/a><\/li>\n
  220. \/lab\/php\/detagger\/<\/a><\/li>\n
  221. \/lab\/php\/echo_http_host\/<\/a><\/li>\n
  222. \/lab\/php\/gallery\/<\/a><\/li>\n
  223. \/lab\/php\/interesting_date_layout\/<\/a><\/li>\n
  224. \/lab\/php\/make-unique-id\/<\/a><\/li>\n
  225. \/lab\/php\/php-php3-mod-rewrite\/<\/a><\/li>\n
  226. \/lab\/php\/rtf\/<\/a><\/li>\n
  227. \/lab\/scripting\/autocalc\/<\/a><\/li>\n
  228. \/lab\/scripting\/bookmarklets\/<\/a><\/li>\n
  229. \/lab\/scripting\/bug_mac_netscape_forms_update\/<\/a><\/li>\n
  230. \/lab\/scripting\/camel-selector\/<\/a><\/li>\n
  231. \/lab\/scripting\/change_all_links\/<\/a><\/li>\n
  232. \/lab\/scripting\/checkbox-validate\/<\/a><\/li>\n
  233. \/lab\/scripting\/compare_fields\/<\/a><\/li>\n
  234. \/lab\/scripting\/detection_real\/<\/a><\/li>\n
  235. \/lab\/scripting\/dropdown_focus\/<\/a><\/li>\n
  236. \/lab\/scripting\/dropdown_frames\/<\/a><\/li>\n
  237. \/lab\/scripting\/dropdown_frames\/the-content.php<\/a><\/li>\n
  238. \/lab\/scripting\/dropdown_frames\/the-navigation.php<\/a><\/li>\n
  239. \/lab\/scripting\/dropdown_submit_form\/<\/a><\/li>\n
  240. \/lab\/scripting\/dropdown-only-some-new-window\/<\/a><\/li>\n
  241. \/lab\/scripting\/dropdown\/<\/a><\/li>\n
  242. \/lab\/scripting\/format_time\/<\/a><\/li>\n
  243. \/lab\/scripting\/frames_mouseover\/<\/a><\/li>\n
  244. \/lab\/scripting\/history\/<\/a><\/li>\n
  245. \/lab\/scripting\/invisible-unspiderable-link\/<\/a><\/li>\n
  246. \/lab\/scripting\/mouseover_vote\/<\/a><\/li>\n
  247. \/lab\/scripting\/mouseover_vote100\/<\/a><\/li>\n
  248. \/lab\/scripting\/multiple_select\/<\/a><\/li>\n
  249. \/lab\/scripting\/oncontextmenu\/<\/a><\/li>\n
  250. \/lab\/scripting\/onunload-window-open-evil\/<\/a><\/li>\n
  251. \/lab\/scripting\/outbound-link-confirmation\/<\/a><\/li>\n
  252. \/lab\/scripting\/pinkvalidation\/<\/a><\/li>\n
  253. \/lab\/scripting\/reverse_string_nums\/<\/a><\/li>\n
  254. \/lab\/scripting\/self_refresh\/<\/a><\/li>\n
  255. \/lab\/scripting\/slideshow-plus\/<\/a><\/li>\n
  256. \/lab\/scripting\/slideshow\/<\/a><\/li>\n
  257. \/lab\/scripting\/the-problem-with-blur\/<\/a><\/li>\n
  258. \/lab\/scripting\/tr-onmouseover-style\/<\/a><\/li>\n
  259. \/lab\/scripting\/urlencode\/<\/a><\/li>\n
  260. \/lab\/scripting\/validate_checkbox\/<\/a><\/li>\n
  261. \/lab\/scripting\/validate_image\/<\/a><\/li>\n
  262. \/newcomer\/<\/a><\/li>\n
  263. \/photos\/<\/a><\/li>\n
  264. \/photos\/2003balloons<\/a><\/li>\n
  265. \/photos\/albums.php<\/a><\/li>\n
  266. \/photos\/family2003<\/a><\/li>\n
  267. \/photos\/firefallout<\/a><\/li>\n
  268. \/photos\/greazel<\/a><\/li>\n
  269. \/photos\/hedgehog\/<\/a><\/li>\n
  270. \/photos\/meetup<\/a><\/li>\n
  271. \/photos\/miscellany<\/a><\/li>\n
  272. \/photos\/wisdomteeth<\/a><\/li>\n
  273. \/portfolio\/<\/a><\/li>\n
  274. \/portfolio\/albums.php<\/a><\/li>\n
  275. \/portfolio\/show<\/a><\/li>\n
  276. \/portfolio\/show\/artlung_dhtml<\/a><\/li>\n
  277. \/portfolio\/show\/artlung_splash_20020114<\/a><\/li>\n
  278. \/portfolio\/show\/artlung_splash_20020123<\/a><\/li>\n
  279. \/portfolio\/show\/artlung_splash_20020130<\/a><\/li>\n
  280. \/portfolio\/show\/artlung_splash_20020306<\/a><\/li>\n
  281. \/portfolio\/show\/artlung_splash_20020424<\/a><\/li>\n
  282. \/portfolio\/show\/artlung_splash_20020806<\/a><\/li>\n
  283. \/portfolio\/show\/artlung_wsd_home<\/a><\/li>\n
  284. \/portfolio\/show\/artlung_wsd_movienight<\/a><\/li>\n
  285. \/portfolio\/show\/avencom_dynapulse<\/a><\/li>\n
  286. \/portfolio\/show\/avencom_ebill<\/a><\/li>\n
  287. \/portfolio\/show\/avencom_freakygeekball<\/a><\/li>\n
  288. \/portfolio\/show\/avencom_gbs<\/a><\/li>\n
  289. \/portfolio\/show\/avencom_giftbasketshoppe_1<\/a><\/li>\n
  290. \/portfolio\/show\/avencom_giftbasketshoppe_2<\/a><\/li>\n
  291. \/portfolio\/show\/avencom_lightpointe<\/a><\/li>\n
  292. \/portfolio\/show\/avencom_paul_m_bowers<\/a><\/li>\n
  293. \/portfolio\/show\/avencom_paulmbowers<\/a><\/li>\n
  294. \/portfolio\/show\/avencom_robertsformayor<\/a><\/li>\n
  295. \/portfolio\/show\/avencom_sanyo<\/a><\/li>\n
  296. \/portfolio\/show\/avencom_transitworks<\/a><\/li>\n
  297. \/portfolio\/show\/avencom_waitt_map<\/a><\/li>\n
  298. \/portfolio\/show\/bidland_fishball<\/a><\/li>\n
  299. \/portfolio\/show\/freelance_aircar3000<\/a><\/li>\n
  300. \/portfolio\/show\/freelance_digitelle<\/a><\/li>\n
  301. \/portfolio\/show\/freelance_leahpeah_com<\/a><\/li>\n
  302. \/portfolio\/show\/freelance_los_angeles_newspaper_group<\/a><\/li>\n
  303. \/portfolio\/show\/freelance_solonglandlord_us<\/a><\/li>\n
  304. \/portfolio\/show\/lg_ss_arco_001<\/a><\/li>\n
  305. \/portfolio\/show\/lg_ss_artlung_swf_anim<\/a><\/li>\n
  306. \/portfolio\/show\/lg_ss_geocities_001<\/a><\/li>\n
  307. \/portfolio\/show\/personal_blog_rss<\/a><\/li>\n
  308. \/portfolio\/show\/sandiegobloggers_com<\/a><\/li>\n
  309. \/portfolio\/show\/sandiegobloggers_com_admin<\/a><\/li>\n
  310. \/portfolio\/show\/stew_sez_online_journal<\/a><\/li>\n
  311. \/portfolio\/show\/websandiego_org_happy_hour_7<\/a><\/li>\n
  312. \/portfolio\/show\/websandiego_org_happy_hour_8<\/a><\/li>\n
  313. \/portfolio\/show\/websandiego_org_happy_hour_9<\/a><\/li>\n
  314. \/portfolio\/show\/websandiego_org_not_websandiego_bonfire_1<\/a><\/li>\n
  315. \/resume\/<\/a><\/li>\n
  316. \/resume\/respiratory\/<\/a><\/li>\n
  317. \/showoff\/dhtml\/<\/a><\/li>\n
  318. \/showoff\/draw\/draw-20020113.php<\/a><\/li>\n
  319. \/showoff\/fun\/-23<\/a><\/li>\n
  320. \/showoff\/fun\/-70s_Wedding<\/a><\/li>\n
  321. \/showoff\/fun\/-AL_ArtCenter<\/a><\/li>\n
  322. \/showoff\/fun\/-Askew_Askance_92<\/a><\/li>\n
  323. \/showoff\/fun\/-Cardiopulmonary<\/a><\/li>\n
  324. \/showoff\/fun\/-Clock_Concept<\/a><\/li>\n
  325. \/showoff\/fun\/-Cocoa_Krispies<\/a><\/li>\n
  326. \/showoff\/fun\/-CompAOLation<\/a><\/li>\n
  327. \/showoff\/fun\/-Easter_1992<\/a><\/li>\n
  328. \/showoff\/fun\/-er_1997<\/a><\/li>\n
  329. \/showoff\/fun\/-Etching<\/a><\/li>\n
  330. \/showoff\/fun\/-Experiment_92<\/a><\/li>\n
  331. \/showoff\/fun\/-Ferris_Charcoal<\/a><\/li>\n
  332. \/showoff\/fun\/-First_Digital<\/a><\/li>\n
  333. \/showoff\/fun\/-GIF89a<\/a><\/li>\n
  334. \/showoff\/fun\/-HS_RT_School<\/a><\/li>\n
  335. \/showoff\/fun\/-Hunting_Time<\/a><\/li>\n
  336. \/showoff\/fun\/-IllusPhoto<\/a><\/li>\n
  337. \/showoff\/fun\/-Image_Correction<\/a><\/li>\n
  338. \/showoff\/fun\/-Jacqui_Card_2000<\/a><\/li>\n
  339. \/showoff\/fun\/-Kingman<\/a><\/li>\n
  340. \/showoff\/fun\/-Logo_Parodies<\/a><\/li>\n
  341. \/showoff\/fun\/-Order_of_the_Sleepless_Knights<\/a><\/li>\n
  342. \/showoff\/fun\/-Prom_1987<\/a><\/li>\n
  343. \/showoff\/fun\/-Reciept_Poetry<\/a><\/li>\n
  344. \/showoff\/fun\/-RonsRhinestones<\/a><\/li>\n
  345. \/showoff\/fun\/-SDPLSA<\/a><\/li>\n
  346. \/showoff\/fun\/-Self_1988<\/a><\/li>\n
  347. \/showoff\/fun\/-Silva_Reunion_2000<\/a><\/li>\n
  348. \/showoff\/fun\/-Star_Wars_77<\/a><\/li>\n
  349. \/showoff\/fun\/-Strange_1<\/a><\/li>\n
  350. \/showoff\/fun\/-Strange_2<\/a><\/li>\n
  351. \/showoff\/fun\/-Strange_3<\/a><\/li>\n
  352. \/showoff\/fun\/-Strange_4<\/a><\/li>\n
  353. \/showoff\/fun\/-Untitled_06_11_2000<\/a><\/li>\n
  354. \/showoff\/fun\/-Untitled_1997<\/a><\/li>\n
  355. \/showoff\/fun\/-Vampire<\/a><\/li>\n
  356. \/showoff\/fun\/-VOAA<\/a><\/li>\n
  357. \/showoff\/fun\/-Watercolor_Dorene<\/a><\/li>\n
  358. \/showoff\/fun\/-Watercolor_SpaceSuit<\/a><\/li>\n
  359. \/showoff\/pro\/-aias_realaudio<\/a><\/li>\n
  360. \/showoff\/pro\/-arco<\/a><\/li>\n
  361. \/showoff\/pro\/-Cardiopulmonary<\/a><\/li>\n
  362. \/showoff\/pro\/-CompAOLation<\/a><\/li>\n
  363. \/showoff\/pro\/-Etching<\/a><\/li>\n
  364. \/showoff\/pro\/-Flash<\/a><\/li>\n
  365. \/showoff\/pro\/-GIF89a<\/a><\/li>\n
  366. \/showoff\/pro\/-Kingman<\/a><\/li>\n
  367. \/showoff\/pro\/-RonsRhinestones<\/a><\/li>\n
  368. \/showoff\/pro\/-SDPLSA<\/a><\/li>\n
  369. \/showoff\/pro\/-VOAA<\/a><\/li>\n
  370. \/site-index\/<\/a><\/li>\n
  371. \/smorgasborg\/<\/a><\/li>\n
  372. \/smorgasborg\/20030204-9999_1c4blogs.html<\/a><\/li>\n
  373. \/smorgasborg\/20030704-walk.html<\/a><\/li>\n
  374. \/smorgasborg\/alanis_so_pure.shtml<\/a><\/li>\n
  375. \/smorgasborg\/aol_gibson.shtml<\/a><\/li>\n
  376. \/smorgasborg\/art_nav_test_0\/<\/a><\/li>\n
  377. \/smorgasborg\/art_nav_test_0\/index.html<\/a><\/li>\n
  378. \/smorgasborg\/babble_urls.shtml<\/a><\/li>\n
  379. \/smorgasborg\/Booming_Granny.shtml<\/a><\/li>\n
  380. \/smorgasborg\/browser_stat\/<\/a><\/li>\n
  381. \/smorgasborg\/bruce_lookup.shtml<\/a><\/li>\n
  382. \/smorgasborg\/C_R_Y_P_T_O_N_O_M_I_C_O_N.shtml<\/a><\/li>\n
  383. \/smorgasborg\/captain-k-joseph-45\/<\/a><\/li>\n
  384. \/smorgasborg\/comeonover-sunship-vocal.shtml<\/a><\/li>\n
  385. \/smorgasborg\/cuba\/<\/a><\/li>\n
  386. \/smorgasborg\/flame_response_form.shtml<\/a><\/li>\n
  387. \/smorgasborg\/flash_urls_1999.shtml<\/a><\/li>\n
  388. \/smorgasborg\/girlfriend_1.0.shtml<\/a><\/li>\n
  389. \/smorgasborg\/good_internet_publications.shtml<\/a><\/li>\n
  390. \/smorgasborg\/greek_text.shtml<\/a><\/li>\n
  391. \/smorgasborg\/how_to_tick_people_off.shtml<\/a><\/li>\n
  392. \/smorgasborg\/international_xmas.shtml<\/a><\/li>\n
  393. \/smorgasborg\/Invention_of_Cplusplus.shtml<\/a><\/li>\n
  394. \/smorgasborg\/is-there-a-santa-engineers-view.shtml<\/a><\/li>\n
  395. \/smorgasborg\/jamisongold_bought.shtml<\/a><\/li>\n
  396. \/smorgasborg\/Kid_Charlemagne_Lyrics.shtml<\/a><\/li>\n
  397. \/smorgasborg\/kpbs-schedule-redesign.html<\/a><\/li>\n
  398. \/smorgasborg\/LaughAndBeHappyRandyNewman.shtml<\/a><\/li>\n
  399. \/smorgasborg\/let-forever-be.shtml<\/a><\/li>\n
  400. \/smorgasborg\/mac_java_urls.shtml<\/a><\/li>\n
  401. \/smorgasborg\/Macaroni_Salad.shtml<\/a><\/li>\n
  402. \/smorgasborg\/major_search_engines.shtml<\/a><\/li>\n
  403. \/smorgasborg\/notes-builder-live-1999.shtml<\/a><\/li>\n
  404. \/smorgasborg\/notes-tar.shtml<\/a><\/li>\n
  405. \/smorgasborg\/once_upon_a_time.shtml<\/a><\/li>\n
  406. \/smorgasborg\/otherviews\/<\/a><\/li>\n
  407. \/smorgasborg\/p_fun_index.shtml<\/a><\/li>\n
  408. \/smorgasborg\/Penguin.log.shtml<\/a><\/li>\n
  409. \/smorgasborg\/phonics\/<\/a><\/li>\n
  410. \/smorgasborg\/QuixtarAmwayURLs.shtml<\/a><\/li>\n
  411. \/smorgasborg\/roadrunner_login_macperl.shtml<\/a><\/li>\n
  412. \/smorgasborg\/sandiego-tech-cos.shtml<\/a><\/li>\n
  413. \/smorgasborg\/spam_sig.shtml<\/a><\/li>\n
  414. \/smorgasborg\/star_wars_songbook.shtml<\/a><\/li>\n
  415. \/smorgasborg\/Sterling_SF_lexicon.shtml<\/a><\/li>\n
  416. \/smorgasborg\/time_speeds_download.shtml<\/a><\/li>\n
  417. \/smorgasborg\/TMBG-Yeh-Yeh.shtml<\/a><\/li>\n
  418. \/smorgasborg\/urm_searches.shtml<\/a><\/li>\n
  419. \/smorgasborg\/various_URLs.sandiego.shtml<\/a><\/li>\n
  420. \/smorgasborg\/various_URLS.shtml<\/a><\/li>\n
  421. \/smorgasborg\/various_URLssandiego2000.shtml<\/a><\/li>\n
  422. \/smorgasborg\/VideoIndiaIrie.shtml<\/a><\/li>\n
  423. \/smorgasborg\/why_a_website.shtml<\/a><\/li>\n
  424. \/smorgasborg\/why_visitors_return.shtml<\/a><\/li>\n
  425. \/smorgasborg\/William_Gibson_Interview.shtml<\/a><\/li>\n
  426. \/viridian-contest\/<\/a><\/li>\n
  427. \/viridian-contest\/02001.1\/<\/a><\/li>\n
  428. \/viridian-contest\/02001e\/<\/a><\/li>\n
  429. \/viridian-contest\/6\/<\/a><\/li>\n
  430. \/viridian-contest\/9\/<\/a><\/li>\n
  431. \/viridian-contest\/couture\/<\/a><\/li>\n
  432. \/words\/<\/a><\/li>\n
  433. \/words\/accessibility\/<\/a><\/li>\n
  434. \/words\/accessibility\/accessibility.html<\/a><\/li>\n
  435. \/words\/aip-19990727\/<\/a><\/li>\n
  436. \/words\/aol_nostalgia\/<\/a><\/li>\n
  437. \/words\/becoming\/<\/a><\/li>\n
  438. \/words\/crossplatform\/<\/a><\/li>\n
  439. \/words\/flash-psychic-proof\/<\/a><\/li>\n
  440. \/words\/forta-speaks\/<\/a><\/li>\n
  441. \/words\/lindows-pitch\/<\/a><\/li>\n
  442. \/words\/never-enough\/<\/a><\/li>\n
  443. \/words\/some-poems\/<\/a><\/li>\n
  444. \/words\/standards-baseline-proposal\/<\/a><\/li>\n
  445. \/words\/two-ships\/<\/a><\/li>\n
  446. \/words\/web-work-200111\/<\/a><\/li>\n
  447. \/words\/websandiego-vision\/<\/a><\/li>\n
  448. \/words\/what-is-a-web-integrator\/<\/a><\/li>\n
  449. \/words\/what-is-the-internet-for\/<\/a><\/li>\n
  450. \/words\/zappa\/<\/a><\/li>\n<\/ol>","text":"This needs a librarian. \n\/\n\/archive\/\n\/archive\/0\/\n\/archive\/0\/alhome.html\n\/archive\/0\/index.html\n\/archive\/0\/undcon.html\n\/archive\/1\/\n\/archive\/1\/alhome.html\n\/archive\/1\/index.html\n\/archive\/1\/resume.html\n\/archive\/2\/\n\/archive\/2\/animatedgifs.html\n\/archive\/2\/biography.html\n\/archive\/2\/book_covers.html\n\/archive\/2\/book_covers2.html\n\/archive\/2\/ccks.html\n\/archive\/2\/clock_concept.html\n\/archive\/2\/crossplatform.html\n\/archive\/2\/flash_checker.html\n\/archive\/2\/freelance_etching.html\n\/archive\/2\/home.html\n\/archive\/2\/kingman.html\n\/archive\/2\/links.html\n\/archive\/2\/logo_parody.html\n\/archive\/2\/logos.html\n\/archive\/2\/logos2.html\n\/archive\/2\/logos3.html\n\/archive\/2\/newcomer.html\n\/archive\/2\/pictures.html\n\/archive\/2\/resume.html\n\/archive\/2\/ronsrhinestones.html\n\/archive\/2\/selfportrait.html\n\/archive\/2\/send_email.html\n\/archive\/2\/spacebaby.html\n\/archive\/2\/spot_illustrations_1.html\n\/archive\/2\/spot_illustrations_2.html\n\/archive\/2\/spot_illustrations_3.html\n\/archive\/2\/spot_illustrations_4.html\n\/archive\/2\/spot_illustrations_5.html\n\/archive\/2\/strange_landscapes_1.html\n\/archive\/2\/strange_landscapes_2.html\n\/archive\/2\/strange_landscapes_3.html\n\/archive\/2\/strange_landscapes_4.html\n\/archive\/2\/xkitty.html\n\/archive\/2\/z_image_manip.html\n\/archive\/2\/z_image_manip2.html\n\/archive\/3\/\n\/archive\/3beta\/\n\/archive\/4\/\n\/archive\/sig\/\n\/archive\/splashes\/-20020114\n\/archive\/splashes\/-20020123\n\/archive\/splashes\/-20020130\n\/archive\/splashes\/-20020306\n\/archive\/splashes\/-20020424\n\/archive\/splashes\/-20020806\n\/archive\/splashes\/-20030702\n\/bio\/\n\/bio\/respiratory\/nametag\/\n\/bio\/respiratory\/physics\/\n\/bio\/wedding\/\n\/bio\/wedding\/announcement\/\n\/bio\/wedding\/anuncio\/\n\/bio\/wedding\/slide.php\n\/blog\/\n\/blog\/2001\/01\/\n\/blog\/2001\/02\/\n\/blog\/2001\/03\/\n\/blog\/2001\/04\/\n\/blog\/2001\/05\/\n\/blog\/2001\/06\/\n\/blog\/2001\/07\/\n\/blog\/2001\/08\/\n\/blog\/2001\/09\/\n\/blog\/2001\/10\/\n\/blog\/2001\/11\/\n\/blog\/2001\/12\/\n\/blog\/2002\/01\/\n\/blog\/2002\/02\/\n\/blog\/2002\/03\/\n\/blog\/2002\/04\/\n\/blog\/2002\/05\/\n\/blog\/2002\/06\/\n\/blog\/2002\/07\/\n\/blog\/2002\/08\/\n\/blog\/2002\/09\/\n\/blog\/2002\/10\/\n\/blog\/2002\/11\/\n\/blog\/2002\/12\/\n\/blog\/2003\/01\/\n\/blog\/2003\/02\/\n\/blog\/2003\/02\/\n\/blog\/2003\/03\/\n\/blog\/2003\/04\/\n\/blog\/2003\/05\/\n\/blog\/2003\/06\/\n\/blog\/2003\/07\/\n\/blog\/2003\/08\/\n\/blog\/2003\/09\/\n\/blog\/2003\/10\/\n\/blog\/2003\/11\/\n\/blog\/2003\/12\/\n\/blog\/pageholder\/\n\/blog\/special_2003_02_15.php\n\/blog\/special_2003_02_16.php\n\/colophon\/\n\/contact\/\n\/deprecated\/books.uk\/\n\/deprecated\/books\/\n\/deprecated\/che\/\n\/deprecated\/che\/goodbye.php\n\/deprecated\/jennifer\/\n\/fansite\/bebe\/\n\/fansite\/ronnyvardy\/\n\/fansite\/stew-tnp\/\n\/fansite\/voltes-v\/\n\/fansite\/voltes-v\/index.html\n\/fansite\/voltes-v\/paper.html\n\/fansite\/voltes-v\/toy.html\n\/fansite\/voltes-v\/where.html\n\/feedback\/\n\/flash\/\n\/flash\/flash_checker.html\n\/friends\/eduquake\/\n\/friends\/jared\/\n\/friends\/vince\/\n\/headers\/\n\/headers\/-20000114\n\/headers\/-20000912\n\/headers\/-20010216\n\/headers\/-20010223\n\/headers\/-20010305\n\/headers\/-20010307\n\/headers\/-20010322\n\/headers\/-20010403\n\/headers\/-20010412\n\/headers\/-20010508\n\/headers\/-20010624\n\/headers\/-20010630\n\/headers\/-20010823\n\/headers\/-20010915\n\/headers\/-20011002\n\/headers\/-20011013\n\/headers\/-20011014\n\/headers\/-20011023\n\/headers\/-20011114\n\/headers\/-20011121\n\/headers\/-20011128\n\/headers\/-20011202\n\/headers\/-20011206\n\/headers\/-20011224\n\/headers\/-20011231\n\/headers\/-20020106\n\/headers\/-20020118\n\/headers\/-20020130\n\/headers\/-20020225\n\/headers\/-20020322\n\/headers\/-20020326\n\/headers\/-20020424\n\/headers\/-20020628\n\/headers\/-20020806\n\/headers\/-20020911\n\/headers\/-20021018\n\/headers\/-20021104\n\/headers\/-20021113\n\/headers\/-20021217\n\/headers\/-20030128\n\/headers\/-20030215\n\/headers\/-20030412\n\/headers\/-20030621\n\/headers\/-20030707\n\/headers\/-20030911\n\/headers\/-20030912\n\/headers\/-20030923\n\/headers\/-20031019\n\/headers\/-20031027\n\/headers\/-20031031\n\/headers\/-20031102\n\/headers\/-20031111\n\/headers\/\/\n\/images\/\n\/images\/20030216\/\n\/images\/amiga\/\n\/images\/joyofbeing.html\n\/lab\/\n\/lab\/css\/\n\/lab\/css\/a-outline-none\/\n\/lab\/css\/additive-font-size\/\n\/lab\/css\/border-style\/\n\/lab\/css\/form-image-background\/\n\/lab\/css\/modify-the-box\/\n\/lab\/css\/rounded-mozilla\/\n\/lab\/css\/w3c-with-and-without-css\/\n\/lab\/html\/50states\/\n\/lab\/html\/ancient-tidy-tutorial\/\n\/lab\/html\/gettysburg\/\n\/lab\/html\/html-2.0\/\n\/lab\/html\/image_border\/\n\/lab\/html\/input-direction\/\n\/lab\/html\/tips-2001\/\n\/lab\/other\/\n\/lab\/other\/anti-cache\/\n\/lab\/other\/asp\/\n\/lab\/other\/coldfusion-break-db\/\n\/lab\/other\/email-submission-stinks\/\n\/lab\/other\/java-tags\/\n\/lab\/other\/java-tags\/-applet-tag-3.2.php\n\/lab\/other\/java-tags\/-applet-tag-4.0.php\n\/lab\/other\/java-tags\/-applet-tag-microsoft.php\n\/lab\/other\/java-tags\/-applet-tag-netscape.php\n\/lab\/other\/java-tags\/-applet-tag-sun.php\n\/lab\/other\/misc-files\/\n\/lab\/other\/not-valid-itunes-library\/\n\/lab\/other\/undocumented-linklint\/\n\/lab\/other\/unix-batch-file-rename\/\n\/lab\/other\/windows_export_file_list\/\n\/lab\/other\/ws_ftp_password_decoder\/\n\/lab\/php\/\n\/lab\/php\/countdown\/\n\/lab\/php\/detagger\/\n\/lab\/php\/echo_http_host\/\n\/lab\/php\/gallery\/\n\/lab\/php\/interesting_date_layout\/\n\/lab\/php\/make-unique-id\/\n\/lab\/php\/php-php3-mod-rewrite\/\n\/lab\/php\/rtf\/\n\/lab\/scripting\/autocalc\/\n\/lab\/scripting\/bookmarklets\/\n\/lab\/scripting\/bug_mac_netscape_forms_update\/\n\/lab\/scripting\/camel-selector\/\n\/lab\/scripting\/change_all_links\/\n\/lab\/scripting\/checkbox-validate\/\n\/lab\/scripting\/compare_fields\/\n\/lab\/scripting\/detection_real\/\n\/lab\/scripting\/dropdown_focus\/\n\/lab\/scripting\/dropdown_frames\/\n\/lab\/scripting\/dropdown_frames\/the-content.php\n\/lab\/scripting\/dropdown_frames\/the-navigation.php\n\/lab\/scripting\/dropdown_submit_form\/\n\/lab\/scripting\/dropdown-only-some-new-window\/\n\/lab\/scripting\/dropdown\/\n\/lab\/scripting\/format_time\/\n\/lab\/scripting\/frames_mouseover\/\n\/lab\/scripting\/history\/\n\/lab\/scripting\/invisible-unspiderable-link\/\n\/lab\/scripting\/mouseover_vote\/\n\/lab\/scripting\/mouseover_vote100\/\n\/lab\/scripting\/multiple_select\/\n\/lab\/scripting\/oncontextmenu\/\n\/lab\/scripting\/onunload-window-open-evil\/\n\/lab\/scripting\/outbound-link-confirmation\/\n\/lab\/scripting\/pinkvalidation\/\n\/lab\/scripting\/reverse_string_nums\/\n\/lab\/scripting\/self_refresh\/\n\/lab\/scripting\/slideshow-plus\/\n\/lab\/scripting\/slideshow\/\n\/lab\/scripting\/the-problem-with-blur\/\n\/lab\/scripting\/tr-onmouseover-style\/\n\/lab\/scripting\/urlencode\/\n\/lab\/scripting\/validate_checkbox\/\n\/lab\/scripting\/validate_image\/\n\/newcomer\/\n\/photos\/\n\/photos\/2003balloons\n\/photos\/albums.php\n\/photos\/family2003\n\/photos\/firefallout\n\/photos\/greazel\n\/photos\/hedgehog\/\n\/photos\/meetup\n\/photos\/miscellany\n\/photos\/wisdomteeth\n\/portfolio\/\n\/portfolio\/albums.php\n\/portfolio\/show\n\/portfolio\/show\/artlung_dhtml\n\/portfolio\/show\/artlung_splash_20020114\n\/portfolio\/show\/artlung_splash_20020123\n\/portfolio\/show\/artlung_splash_20020130\n\/portfolio\/show\/artlung_splash_20020306\n\/portfolio\/show\/artlung_splash_20020424\n\/portfolio\/show\/artlung_splash_20020806\n\/portfolio\/show\/artlung_wsd_home\n\/portfolio\/show\/artlung_wsd_movienight\n\/portfolio\/show\/avencom_dynapulse\n\/portfolio\/show\/avencom_ebill\n\/portfolio\/show\/avencom_freakygeekball\n\/portfolio\/show\/avencom_gbs\n\/portfolio\/show\/avencom_giftbasketshoppe_1\n\/portfolio\/show\/avencom_giftbasketshoppe_2\n\/portfolio\/show\/avencom_lightpointe\n\/portfolio\/show\/avencom_paul_m_bowers\n\/portfolio\/show\/avencom_paulmbowers\n\/portfolio\/show\/avencom_robertsformayor\n\/portfolio\/show\/avencom_sanyo\n\/portfolio\/show\/avencom_transitworks\n\/portfolio\/show\/avencom_waitt_map\n\/portfolio\/show\/bidland_fishball\n\/portfolio\/show\/freelance_aircar3000\n\/portfolio\/show\/freelance_digitelle\n\/portfolio\/show\/freelance_leahpeah_com\n\/portfolio\/show\/freelance_los_angeles_newspaper_group\n\/portfolio\/show\/freelance_solonglandlord_us\n\/portfolio\/show\/lg_ss_arco_001\n\/portfolio\/show\/lg_ss_artlung_swf_anim\n\/portfolio\/show\/lg_ss_geocities_001\n\/portfolio\/show\/personal_blog_rss\n\/portfolio\/show\/sandiegobloggers_com\n\/portfolio\/show\/sandiegobloggers_com_admin\n\/portfolio\/show\/stew_sez_online_journal\n\/portfolio\/show\/websandiego_org_happy_hour_7\n\/portfolio\/show\/websandiego_org_happy_hour_8\n\/portfolio\/show\/websandiego_org_happy_hour_9\n\/portfolio\/show\/websandiego_org_not_websandiego_bonfire_1\n\/resume\/\n\/resume\/respiratory\/\n\/showoff\/dhtml\/\n\/showoff\/draw\/draw-20020113.php\n\/showoff\/fun\/-23\n\/showoff\/fun\/-70s_Wedding\n\/showoff\/fun\/-AL_ArtCenter\n\/showoff\/fun\/-Askew_Askance_92\n\/showoff\/fun\/-Cardiopulmonary\n\/showoff\/fun\/-Clock_Concept\n\/showoff\/fun\/-Cocoa_Krispies\n\/showoff\/fun\/-CompAOLation\n\/showoff\/fun\/-Easter_1992\n\/showoff\/fun\/-er_1997\n\/showoff\/fun\/-Etching\n\/showoff\/fun\/-Experiment_92\n\/showoff\/fun\/-Ferris_Charcoal\n\/showoff\/fun\/-First_Digital\n\/showoff\/fun\/-GIF89a\n\/showoff\/fun\/-HS_RT_School\n\/showoff\/fun\/-Hunting_Time\n\/showoff\/fun\/-IllusPhoto\n\/showoff\/fun\/-Image_Correction\n\/showoff\/fun\/-Jacqui_Card_2000\n\/showoff\/fun\/-Kingman\n\/showoff\/fun\/-Logo_Parodies\n\/showoff\/fun\/-Order_of_the_Sleepless_Knights\n\/showoff\/fun\/-Prom_1987\n\/showoff\/fun\/-Reciept_Poetry\n\/showoff\/fun\/-RonsRhinestones\n\/showoff\/fun\/-SDPLSA\n\/showoff\/fun\/-Self_1988\n\/showoff\/fun\/-Silva_Reunion_2000\n\/showoff\/fun\/-Star_Wars_77\n\/showoff\/fun\/-Strange_1\n\/showoff\/fun\/-Strange_2\n\/showoff\/fun\/-Strange_3\n\/showoff\/fun\/-Strange_4\n\/showoff\/fun\/-Untitled_06_11_2000\n\/showoff\/fun\/-Untitled_1997\n\/showoff\/fun\/-Vampire\n\/showoff\/fun\/-VOAA\n\/showoff\/fun\/-Watercolor_Dorene\n\/showoff\/fun\/-Watercolor_SpaceSuit\n\/showoff\/pro\/-aias_realaudio\n\/showoff\/pro\/-arco\n\/showoff\/pro\/-Cardiopulmonary\n\/showoff\/pro\/-CompAOLation\n\/showoff\/pro\/-Etching\n\/showoff\/pro\/-Flash\n\/showoff\/pro\/-GIF89a\n\/showoff\/pro\/-Kingman\n\/showoff\/pro\/-RonsRhinestones\n\/showoff\/pro\/-SDPLSA\n\/showoff\/pro\/-VOAA\n\/site-index\/\n\/smorgasborg\/\n\/smorgasborg\/20030204-9999_1c4blogs.html\n\/smorgasborg\/20030704-walk.html\n\/smorgasborg\/alanis_so_pure.shtml\n\/smorgasborg\/aol_gibson.shtml\n\/smorgasborg\/art_nav_test_0\/\n\/smorgasborg\/art_nav_test_0\/index.html\n\/smorgasborg\/babble_urls.shtml\n\/smorgasborg\/Booming_Granny.shtml\n\/smorgasborg\/browser_stat\/\n\/smorgasborg\/bruce_lookup.shtml\n\/smorgasborg\/C_R_Y_P_T_O_N_O_M_I_C_O_N.shtml\n\/smorgasborg\/captain-k-joseph-45\/\n\/smorgasborg\/comeonover-sunship-vocal.shtml\n\/smorgasborg\/cuba\/\n\/smorgasborg\/flame_response_form.shtml\n\/smorgasborg\/flash_urls_1999.shtml\n\/smorgasborg\/girlfriend_1.0.shtml\n\/smorgasborg\/good_internet_publications.shtml\n\/smorgasborg\/greek_text.shtml\n\/smorgasborg\/how_to_tick_people_off.shtml\n\/smorgasborg\/international_xmas.shtml\n\/smorgasborg\/Invention_of_Cplusplus.shtml\n\/smorgasborg\/is-there-a-santa-engineers-view.shtml\n\/smorgasborg\/jamisongold_bought.shtml\n\/smorgasborg\/Kid_Charlemagne_Lyrics.shtml\n\/smorgasborg\/kpbs-schedule-redesign.html\n\/smorgasborg\/LaughAndBeHappyRandyNewman.shtml\n\/smorgasborg\/let-forever-be.shtml\n\/smorgasborg\/mac_java_urls.shtml\n\/smorgasborg\/Macaroni_Salad.shtml\n\/smorgasborg\/major_search_engines.shtml\n\/smorgasborg\/notes-builder-live-1999.shtml\n\/smorgasborg\/notes-tar.shtml\n\/smorgasborg\/once_upon_a_time.shtml\n\/smorgasborg\/otherviews\/\n\/smorgasborg\/p_fun_index.shtml\n\/smorgasborg\/Penguin.log.shtml\n\/smorgasborg\/phonics\/\n\/smorgasborg\/QuixtarAmwayURLs.shtml\n\/smorgasborg\/roadrunner_login_macperl.shtml\n\/smorgasborg\/sandiego-tech-cos.shtml\n\/smorgasborg\/spam_sig.shtml\n\/smorgasborg\/star_wars_songbook.shtml\n\/smorgasborg\/Sterling_SF_lexicon.shtml\n\/smorgasborg\/time_speeds_download.shtml\n\/smorgasborg\/TMBG-Yeh-Yeh.shtml\n\/smorgasborg\/urm_searches.shtml\n\/smorgasborg\/various_URLs.sandiego.shtml\n\/smorgasborg\/various_URLS.shtml\n\/smorgasborg\/various_URLssandiego2000.shtml\n\/smorgasborg\/VideoIndiaIrie.shtml\n\/smorgasborg\/why_a_website.shtml\n\/smorgasborg\/why_visitors_return.shtml\n\/smorgasborg\/William_Gibson_Interview.shtml\n\/viridian-contest\/\n\/viridian-contest\/02001.1\/\n\/viridian-contest\/02001e\/\n\/viridian-contest\/6\/\n\/viridian-contest\/9\/\n\/viridian-contest\/couture\/\n\/words\/\n\/words\/accessibility\/\n\/words\/accessibility\/accessibility.html\n\/words\/aip-19990727\/\n\/words\/aol_nostalgia\/\n\/words\/becoming\/\n\/words\/crossplatform\/\n\/words\/flash-psychic-proof\/\n\/words\/forta-speaks\/\n\/words\/lindows-pitch\/\n\/words\/never-enough\/\n\/words\/some-poems\/\n\/words\/standards-baseline-proposal\/\n\/words\/two-ships\/\n\/words\/web-work-200111\/\n\/words\/websandiego-vision\/\n\/words\/what-is-a-web-integrator\/\n\/words\/what-is-the-internet-for\/\n\/words\/zappa\/"},"mention-of":"https:\/\/lab.artlung.com\/anti-cache\/","wm-property":"mention-of","wm-private":false,"rels":{"canonical":"https:\/\/artlung.com\/blog\/2003\/11\/13\/106878821057274262\/"}}] \ No newline at end of file +[{"type":"entry","author":{"type":"card","name":"Joe Crawford","photo":"https:\/\/webmention.io\/avatar\/cdn.artlung.com\/a0b5bad7e1082e08dc5e72e7f4760d40596782e04895da8b740023e7c1904d15.jpg","url":""},"url":"https:\/\/artlung.com\/blog\/2024\/12\/23\/lab-artlung-com-and-a-return-to-a-world-wide-web\/","published":"2024-12-23T11:25:29","wm-received":"2024-12-23T19:25:48Z","wm-id":1869370,"wm-source":"https:\/\/artlung.com\/blog\/2024\/12\/23\/lab-artlung-com-and-a-return-to-a-world-wide-web\/","wm-target":"https:\/\/lab.artlung.com\/anti-cache\/","wm-protocol":"webmention","name":"lab.artlung.com and a return to a World Wide Web","syndication":["https:\/\/news.indieweb.org\/en"],"content":{"html":"

    I have made every kind of web page. I\u2019ve worked on every sort of web application. I learned ColdFusion. I learned Perl. I learned PHP. CSS came out<\/em> at the start of my career.<\/p>\n

    Active Server Pages (\u201cASP\u201d) is now referred to as \u201cClassic ASP\u201d<\/em> which makes it sound related to some middle-aged-man\u2019s drop-top Corvette Stingray. I learned ASP too.<\/p>\n

    When I was learning, I used my website to play with the web. I called it THE LAB. I want to talk about how it came to be and how it changed with time today.<\/p>\n

    In part I created the site to help me remember little bits of arcana that kept coming up for me as a web developer. I remember looking up my page Preventing Browser Cache<\/a> several times to see the various different ways the different application platforms represented the HTTP headers. Originally pages like this were here on artlung.com. I put them on my website as part of giving back to the web. It felt good. I had learned so much from mailing lists\u2013sometimes called listservs: <\/em>Webmonster, Web405, evolt.org, webdesign-L, WWWAC, WebSanDiego, GOODTIMES and others taught me so much. Mailing lists are gone, as are most of their archives.<\/p>\n

    I also learned on usenet. The comp.* groups had some great stuff. And for a time Macromedia offered their own newsgroup hierarchy. It used to be you could click on news:\/\/forums.macromedia.com\/macromedia.dreamweaver<\/a> and fire up your newsreader and get help about Dreamweaver. All of that is now history. Some of that is archived to the web.<\/p>\n

    Here in 2024 one can use StackOverflow to ask questions and discuss programming.<\/p>\n

    We can also type a question into Google or Bing or DuckDuckGo. Often what comes up are ads and summations \u201cwritten\u201d\u2013which is to say\u2013laundered<\/em> through an AI tool. But those written words couldn\u2019t exist without human effort. Human beings are part of the system. We forget those humans in the loop at our peril. It\u2019s why I try to add webmention support to anything new I build for the web. Aaron Parecki\u2019s<\/a> excellent webmention.io service<\/a> is one of the best parts of the independent web: the indieweb<\/em>.<\/p>\n

    I\u2019m writing this at a coffee shop a stone\u2019s throw from what was the site of San Diego Technical Books<\/em>. I would go there just to browse and to learn. And yes, buy a book now and again. But technical bookstores are also mostly gone. Things went online.<\/p>\n

    And for a while, the web was pretty good at replacing mailing lists, newsgroups, and even paper books.<\/p>\n

    But gradually, the web has gotten worse. Things seemed to have gotten so spammy and troll-filled and the good parts of the web have gone underground to places like Discord and Patreon and Substack and Facebook. Gated by rules or fees or sign-up required<\/em>.<\/p>\n

    But that means I can\u2019t find a lot of those things on the web. If I can\u2019t search for it, I can\u2019t find it. It\u2019s invisible. And a private site is fine, of course. We all ought to have the right to create private enclaves for us and a few friends. But if my intent is for a site to be useful to the world, I am often thwarted by the search engine gatekeepers. They don\u2019t want you to visit my site as much as they want you to stay on their site as long as possible.<\/p>\n

    I made an effort to make my own site better and more of a \u201cplace\u201d when I added comments in 2010. I used Disqus<\/a>. It worked, and still works, great. People can make suggestions as to what specific thing they would encounter<\/em> when, say, creating a menu, or trying to get SQL to behave. People would leave a \u201cthank you\u201d comment occasionally. Some folks emailed me to comment or thank. Disqus includes moderation tools to allow me to make choices about what can and can\u2019t go into the site, which kept spam out.<\/p>\n

    But I also made the site worse in the 2010s. I added Google Ads. They were not intrusive, just a banner on the side. But they got worse, spawning big takeovers and keeping the reader from seeing the page they came for.<\/p>\n

    And so, I remade The Lab<\/h2>\n

    lab.artlung.com<\/a> has been fully refitted and I\u2019m rather proud of it all. It\u2019s all hand-rolled PHP code underpinning it. I\u2019m using composer<\/code> to allow me to pull in useful libraries to read and write YAML consistently, to compress JavaScript (I did that to make it easy to create bookmarklets) and something to streamline creating an Atom feed. The site has webmentions and unit tests and I use PHP_CodeSniffer to keep the code from being a tangled mess. I have fun features like a random page load when you do (alt\u2013r or option\u2013r). It includes og:image<\/code> capture using the excellent shot-scraper. I also created a command line tool to force myself to do some sort of organization on the many pages. And it\u2019s gotten me to create some new pages too. I don\u2019t have anything about React on the site but that may change!<\/p>\n

    I\u2019m glad for this change. It\u2019s a return to practices that are good parts of the web: Sharing source code (all the code is up on GitHub<\/a>). Sharing with each other. No ads, or at least I promise non-intrusive ads<\/em>.<\/p>\n

    We have let the badness of computers and technology force us to forget why the web became the largest publishing and communications platform humanity ever made. We spend times in apps where algorithms seem to prevent us from doing what we want to do. Sharing what I want to share is complicated and tricky and often forces me to download an app I don\u2019t want. And so we\u2019re frustrated and isolated from things that might be useful or fun or interesting or elucidating.<\/p>\n

    But you and me, we own the web<\/em>. It\u2019s ours.<\/p>\n

    We talked the other day in an IndieWeb Homebrew Website Club meeting about \u201cWWW\u201d and why sites seldom have that at the beginnings of their web urls. For a time, every site had that \"www\"<\/code> at the beginning when publicizing their websites. But then it seemed kind of antiquated to use that. We have domains that scarcely look like domains. I have a page on tilde.club and it still surprises me that\u2019s a legitimate domain name. But it is.<\/p>\n

    I want to bring back a recognition that the web is useful and good. \u201cWorld Wide Web\u201d is not quaint. I think of it as a statement of intent. It\u2019s a three-word manifesto. World. Wide. Web: Information for the whole world, no matter who you are, or where you are, interlinked.<\/em> No registration required. No cookies required. No newsletter to subscribe to. No Discord to join. No monthly fee.<\/p>\n

    And so I offer up the lab<\/a>.<\/p>\n

    It\u2019s so fun to make web pages and share them.<\/p>\n

    Go make a web page and share it.<\/p>","text":"I have made every kind of web page. I\u2019ve worked on every sort of web application. I learned ColdFusion. I learned Perl. I learned PHP. CSS came out at the start of my career.\nActive Server Pages (\u201cASP\u201d) is now referred to as \u201cClassic ASP\u201d which makes it sound related to some middle-aged-man\u2019s drop-top Corvette Stingray. I learned ASP too.\nWhen I was learning, I used my website to play with the web. I called it THE LAB. I want to talk about how it came to be and how it changed with time today.\nIn part I created the site to help me remember little bits of arcana that kept coming up for me as a web developer. I remember looking up my page Preventing Browser Cache several times to see the various different ways the different application platforms represented the HTTP headers. Originally pages like this were here on artlung.com. I put them on my website as part of giving back to the web. It felt good. I had learned so much from mailing lists\u2013sometimes called listservs: Webmonster, Web405, evolt.org, webdesign-L, WWWAC, WebSanDiego, GOODTIMES and others taught me so much. Mailing lists are gone, as are most of their archives.\nI also learned on usenet. The comp.* groups had some great stuff. And for a time Macromedia offered their own newsgroup hierarchy. It used to be you could click on news:\/\/forums.macromedia.com\/macromedia.dreamweaver and fire up your newsreader and get help about Dreamweaver. All of that is now history. Some of that is archived to the web.\nHere in 2024 one can use StackOverflow to ask questions and discuss programming.\nWe can also type a question into Google or Bing or DuckDuckGo. Often what comes up are ads and summations \u201cwritten\u201d\u2013which is to say\u2013laundered through an AI tool. But those written words couldn\u2019t exist without human effort. Human beings are part of the system. We forget those humans in the loop at our peril. It\u2019s why I try to add webmention support to anything new I build for the web. Aaron Parecki\u2019s excellent webmention.io service is one of the best parts of the independent web: the indieweb.\nI\u2019m writing this at a coffee shop a stone\u2019s throw from what was the site of San Diego Technical Books. I would go there just to browse and to learn. And yes, buy a book now and again. But technical bookstores are also mostly gone. Things went online.\nAnd for a while, the web was pretty good at replacing mailing lists, newsgroups, and even paper books.\nBut gradually, the web has gotten worse. Things seemed to have gotten so spammy and troll-filled and the good parts of the web have gone underground to places like Discord and Patreon and Substack and Facebook. Gated by rules or fees or sign-up required.\nBut that means I can\u2019t find a lot of those things on the web. If I can\u2019t search for it, I can\u2019t find it. It\u2019s invisible. And a private site is fine, of course. We all ought to have the right to create private enclaves for us and a few friends. But if my intent is for a site to be useful to the world, I am often thwarted by the search engine gatekeepers. They don\u2019t want you to visit my site as much as they want you to stay on their site as long as possible.\nI made an effort to make my own site better and more of a \u201cplace\u201d when I added comments in 2010. I used Disqus. It worked, and still works, great. People can make suggestions as to what specific thing they would encounter when, say, creating a menu, or trying to get SQL to behave. People would leave a \u201cthank you\u201d comment occasionally. Some folks emailed me to comment or thank. Disqus includes moderation tools to allow me to make choices about what can and can\u2019t go into the site, which kept spam out.\nBut I also made the site worse in the 2010s. I added Google Ads. They were not intrusive, just a banner on the side. But they got worse, spawning big takeovers and keeping the reader from seeing the page they came for.\nAnd so, I remade The Lab\nlab.artlung.com has been fully refitted and I\u2019m rather proud of it all. It\u2019s all hand-rolled PHP code underpinning it. I\u2019m using composer to allow me to pull in useful libraries to read and write YAML consistently, to compress JavaScript (I did that to make it easy to create bookmarklets) and something to streamline creating an Atom feed. The site has webmentions and unit tests and I use PHP_CodeSniffer to keep the code from being a tangled mess. I have fun features like a random page load when you do (alt\u2013r or option\u2013r). It includes og:image capture using the excellent shot-scraper. I also created a command line tool to force myself to do some sort of organization on the many pages. And it\u2019s gotten me to create some new pages too. I don\u2019t have anything about React on the site but that may change!\nI\u2019m glad for this change. It\u2019s a return to practices that are good parts of the web: Sharing source code (all the code is up on GitHub). Sharing with each other. No ads, or at least I promise non-intrusive ads.\nWe have let the badness of computers and technology force us to forget why the web became the largest publishing and communications platform humanity ever made. We spend times in apps where algorithms seem to prevent us from doing what we want to do. Sharing what I want to share is complicated and tricky and often forces me to download an app I don\u2019t want. And so we\u2019re frustrated and isolated from things that might be useful or fun or interesting or elucidating.\nBut you and me, we own the web. It\u2019s ours.\nWe talked the other day in an IndieWeb Homebrew Website Club meeting about \u201cWWW\u201d and why sites seldom have that at the beginnings of their web urls. For a time, every site had that \"www\" at the beginning when publicizing their websites. But then it seemed kind of antiquated to use that. We have domains that scarcely look like domains. I have a page on tilde.club and it still surprises me that\u2019s a legitimate domain name. But it is.\nI want to bring back a recognition that the web is useful and good. \u201cWorld Wide Web\u201d is not quaint. I think of it as a statement of intent. It\u2019s a three-word manifesto. World. Wide. Web: Information for the whole world, no matter who you are, or where you are, interlinked. No registration required. No cookies required. No newsletter to subscribe to. No Discord to join. No monthly fee.\nAnd so I offer up the lab.\nIt\u2019s so fun to make web pages and share them.\nGo make a web page and share it."},"mention-of":"https:\/\/lab.artlung.com\/anti-cache\/","wm-property":"mention-of","wm-private":false,"rels":{"canonical":"https:\/\/artlung.com\/blog\/2024\/12\/23\/lab-artlung-com-and-a-return-to-a-world-wide-web\/"}},{"type":"entry","author":{"type":"card","name":"Joe Crawford","photo":"https:\/\/webmention.io\/avatar\/cdn.artlung.com\/a0b5bad7e1082e08dc5e72e7f4760d40596782e04895da8b740023e7c1904d15.jpg","url":""},"url":"https:\/\/artlung.com\/blog\/2003\/11\/13\/106878821057274262\/","published":"2003-11-13T20:36:00","wm-received":"2024-12-02T06:07:29Z","wm-id":1863931,"wm-source":"https:\/\/artlung.com\/blog\/2003\/11\/13\/106878821057274262\/","wm-target":"https:\/\/lab.artlung.com\/anti-cache\/","wm-protocol":"webmention","content":{"html":"

    This needs a librarian.<\/b> <\/p>\n

    1. \/<\/a><\/li>\n
    2. \/archive\/<\/a><\/li>\n
    3. \/archive\/0\/<\/a><\/li>\n
    4. \/archive\/0\/alhome.html<\/a><\/li>\n
    5. \/archive\/0\/index.html<\/a><\/li>\n
    6. \/archive\/0\/undcon.html<\/a><\/li>\n
    7. \/archive\/1\/<\/a><\/li>\n
    8. \/archive\/1\/alhome.html<\/a><\/li>\n
    9. \/archive\/1\/index.html<\/a><\/li>\n
    10. \/archive\/1\/resume.html<\/a><\/li>\n
    11. \/archive\/2\/<\/a><\/li>\n
    12. \/archive\/2\/animatedgifs.html<\/a><\/li>\n
    13. \/archive\/2\/biography.html<\/a><\/li>\n
    14. \/archive\/2\/book_covers.html<\/a><\/li>\n
    15. \/archive\/2\/book_covers2.html<\/a><\/li>\n
    16. \/archive\/2\/ccks.html<\/a><\/li>\n
    17. \/archive\/2\/clock_concept.html<\/a><\/li>\n
    18. \/archive\/2\/crossplatform.html<\/a><\/li>\n
    19. \/archive\/2\/flash_checker.html<\/a><\/li>\n
    20. \/archive\/2\/freelance_etching.html<\/a><\/li>\n
    21. \/archive\/2\/home.html<\/a><\/li>\n
    22. \/archive\/2\/kingman.html<\/a><\/li>\n
    23. \/archive\/2\/links.html<\/a><\/li>\n
    24. \/archive\/2\/logo_parody.html<\/a><\/li>\n
    25. \/archive\/2\/logos.html<\/a><\/li>\n
    26. \/archive\/2\/logos2.html<\/a><\/li>\n
    27. \/archive\/2\/logos3.html<\/a><\/li>\n
    28. \/archive\/2\/newcomer.html<\/a><\/li>\n
    29. \/archive\/2\/pictures.html<\/a><\/li>\n
    30. \/archive\/2\/resume.html<\/a><\/li>\n
    31. \/archive\/2\/ronsrhinestones.html<\/a><\/li>\n
    32. \/archive\/2\/selfportrait.html<\/a><\/li>\n
    33. \/archive\/2\/send_email.html<\/a><\/li>\n
    34. \/archive\/2\/spacebaby.html<\/a><\/li>\n
    35. \/archive\/2\/spot_illustrations_1.html<\/a><\/li>\n
    36. \/archive\/2\/spot_illustrations_2.html<\/a><\/li>\n
    37. \/archive\/2\/spot_illustrations_3.html<\/a><\/li>\n
    38. \/archive\/2\/spot_illustrations_4.html<\/a><\/li>\n
    39. \/archive\/2\/spot_illustrations_5.html<\/a><\/li>\n
    40. \/archive\/2\/strange_landscapes_1.html<\/a><\/li>\n
    41. \/archive\/2\/strange_landscapes_2.html<\/a><\/li>\n
    42. \/archive\/2\/strange_landscapes_3.html<\/a><\/li>\n
    43. \/archive\/2\/strange_landscapes_4.html<\/a><\/li>\n
    44. \/archive\/2\/xkitty.html<\/a><\/li>\n
    45. \/archive\/2\/z_image_manip.html<\/a><\/li>\n
    46. \/archive\/2\/z_image_manip2.html<\/a><\/li>\n
    47. \/archive\/3\/<\/a><\/li>\n
    48. \/archive\/3beta\/<\/a><\/li>\n
    49. \/archive\/4\/<\/a><\/li>\n
    50. \/archive\/sig\/<\/a><\/li>\n
    51. \/archive\/splashes\/-20020114<\/a><\/li>\n
    52. \/archive\/splashes\/-20020123<\/a><\/li>\n
    53. \/archive\/splashes\/-20020130<\/a><\/li>\n
    54. \/archive\/splashes\/-20020306<\/a><\/li>\n
    55. \/archive\/splashes\/-20020424<\/a><\/li>\n
    56. \/archive\/splashes\/-20020806<\/a><\/li>\n
    57. \/archive\/splashes\/-20030702<\/a><\/li>\n
    58. \/bio\/<\/a><\/li>\n
    59. \/bio\/respiratory\/nametag\/<\/a><\/li>\n
    60. \/bio\/respiratory\/physics\/<\/a><\/li>\n
    61. \/bio\/wedding\/<\/a><\/li>\n
    62. \/bio\/wedding\/announcement\/<\/a><\/li>\n
    63. \/bio\/wedding\/anuncio\/<\/a><\/li>\n
    64. \/bio\/wedding\/slide.php<\/a><\/li>\n
    65. \/blog\/<\/a><\/li>\n
    66. \/blog\/2001\/01\/<\/a><\/li>\n
    67. \/blog\/2001\/02\/<\/a><\/li>\n
    68. \/blog\/2001\/03\/<\/a><\/li>\n
    69. \/blog\/2001\/04\/<\/a><\/li>\n
    70. \/blog\/2001\/05\/<\/a><\/li>\n
    71. \/blog\/2001\/06\/<\/a><\/li>\n
    72. \/blog\/2001\/07\/<\/a><\/li>\n
    73. \/blog\/2001\/08\/<\/a><\/li>\n
    74. \/blog\/2001\/09\/<\/a><\/li>\n
    75. \/blog\/2001\/10\/<\/a><\/li>\n
    76. \/blog\/2001\/11\/<\/a><\/li>\n
    77. \/blog\/2001\/12\/<\/a><\/li>\n
    78. \/blog\/2002\/01\/<\/a><\/li>\n
    79. \/blog\/2002\/02\/<\/a><\/li>\n
    80. \/blog\/2002\/03\/<\/a><\/li>\n
    81. \/blog\/2002\/04\/<\/a><\/li>\n
    82. \/blog\/2002\/05\/<\/a><\/li>\n
    83. \/blog\/2002\/06\/<\/a><\/li>\n
    84. \/blog\/2002\/07\/<\/a><\/li>\n
    85. \/blog\/2002\/08\/<\/a><\/li>\n
    86. \/blog\/2002\/09\/<\/a><\/li>\n
    87. \/blog\/2002\/10\/<\/a><\/li>\n
    88. \/blog\/2002\/11\/<\/a><\/li>\n
    89. \/blog\/2002\/12\/<\/a><\/li>\n
    90. \/blog\/2003\/01\/<\/a><\/li>\n
    91. \/blog\/2003\/02\/<\/a><\/li>\n
    92. \/blog\/2003\/02\/<\/a><\/li>\n
    93. \/blog\/2003\/03\/<\/a><\/li>\n
    94. \/blog\/2003\/04\/<\/a><\/li>\n
    95. \/blog\/2003\/05\/<\/a><\/li>\n
    96. \/blog\/2003\/06\/<\/a><\/li>\n
    97. \/blog\/2003\/07\/<\/a><\/li>\n
    98. \/blog\/2003\/08\/<\/a><\/li>\n
    99. \/blog\/2003\/09\/<\/a><\/li>\n
    100. \/blog\/2003\/10\/<\/a><\/li>\n
    101. \/blog\/2003\/11\/<\/a><\/li>\n
    102. \/blog\/2003\/12\/<\/a><\/li>\n
    103. \/blog\/pageholder\/<\/a><\/li>\n
    104. \/blog\/special_2003_02_15.php<\/a><\/li>\n
    105. \/blog\/special_2003_02_16.php<\/a><\/li>\n
    106. \/colophon\/<\/a><\/li>\n
    107. \/contact\/<\/a><\/li>\n
    108. \/deprecated\/books.uk\/<\/a><\/li>\n
    109. \/deprecated\/books\/<\/a><\/li>\n
    110. \/deprecated\/che\/<\/a><\/li>\n
    111. \/deprecated\/che\/goodbye.php<\/a><\/li>\n
    112. \/deprecated\/jennifer\/<\/a><\/li>\n
    113. \/fansite\/bebe\/<\/a><\/li>\n
    114. \/fansite\/ronnyvardy\/<\/a><\/li>\n
    115. \/fansite\/stew-tnp\/<\/a><\/li>\n
    116. \/fansite\/voltes-v\/<\/a><\/li>\n
    117. \/fansite\/voltes-v\/index.html<\/a><\/li>\n
    118. \/fansite\/voltes-v\/paper.html<\/a><\/li>\n
    119. \/fansite\/voltes-v\/toy.html<\/a><\/li>\n
    120. \/fansite\/voltes-v\/where.html<\/a><\/li>\n
    121. \/feedback\/<\/a><\/li>\n
    122. \/flash\/<\/a><\/li>\n
    123. \/flash\/flash_checker.html<\/a><\/li>\n
    124. \/friends\/eduquake\/<\/a><\/li>\n
    125. \/friends\/jared\/<\/a><\/li>\n
    126. \/friends\/vince\/<\/a><\/li>\n
    127. \/headers\/<\/a><\/li>\n
    128. \/headers\/-20000114<\/a><\/li>\n
    129. \/headers\/-20000912<\/a><\/li>\n
    130. \/headers\/-20010216<\/a><\/li>\n
    131. \/headers\/-20010223<\/a><\/li>\n
    132. \/headers\/-20010305<\/a><\/li>\n
    133. \/headers\/-20010307<\/a><\/li>\n
    134. \/headers\/-20010322<\/a><\/li>\n
    135. \/headers\/-20010403<\/a><\/li>\n
    136. \/headers\/-20010412<\/a><\/li>\n
    137. \/headers\/-20010508<\/a><\/li>\n
    138. \/headers\/-20010624<\/a><\/li>\n
    139. \/headers\/-20010630<\/a><\/li>\n
    140. \/headers\/-20010823<\/a><\/li>\n
    141. \/headers\/-20010915<\/a><\/li>\n
    142. \/headers\/-20011002<\/a><\/li>\n
    143. \/headers\/-20011013<\/a><\/li>\n
    144. \/headers\/-20011014<\/a><\/li>\n
    145. \/headers\/-20011023<\/a><\/li>\n
    146. \/headers\/-20011114<\/a><\/li>\n
    147. \/headers\/-20011121<\/a><\/li>\n
    148. \/headers\/-20011128<\/a><\/li>\n
    149. \/headers\/-20011202<\/a><\/li>\n
    150. \/headers\/-20011206<\/a><\/li>\n
    151. \/headers\/-20011224<\/a><\/li>\n
    152. \/headers\/-20011231<\/a><\/li>\n
    153. \/headers\/-20020106<\/a><\/li>\n
    154. \/headers\/-20020118<\/a><\/li>\n
    155. \/headers\/-20020130<\/a><\/li>\n
    156. \/headers\/-20020225<\/a><\/li>\n
    157. \/headers\/-20020322<\/a><\/li>\n
    158. \/headers\/-20020326<\/a><\/li>\n
    159. \/headers\/-20020424<\/a><\/li>\n
    160. \/headers\/-20020628<\/a><\/li>\n
    161. \/headers\/-20020806<\/a><\/li>\n
    162. \/headers\/-20020911<\/a><\/li>\n
    163. \/headers\/-20021018<\/a><\/li>\n
    164. \/headers\/-20021104<\/a><\/li>\n
    165. \/headers\/-20021113<\/a><\/li>\n
    166. \/headers\/-20021217<\/a><\/li>\n
    167. \/headers\/-20030128<\/a><\/li>\n
    168. \/headers\/-20030215<\/a><\/li>\n
    169. \/headers\/-20030412<\/a><\/li>\n
    170. \/headers\/-20030621<\/a><\/li>\n
    171. \/headers\/-20030707<\/a><\/li>\n
    172. \/headers\/-20030911<\/a><\/li>\n
    173. \/headers\/-20030912<\/a><\/li>\n
    174. \/headers\/-20030923<\/a><\/li>\n
    175. \/headers\/-20031019<\/a><\/li>\n
    176. \/headers\/-20031027<\/a><\/li>\n
    177. \/headers\/-20031031<\/a><\/li>\n
    178. \/headers\/-20031102<\/a><\/li>\n
    179. \/headers\/-20031111<\/a><\/li>\n
    180. \/headers\/\/<\/a><\/li>\n
    181. \/images\/<\/a><\/li>\n
    182. \/images\/20030216\/<\/a><\/li>\n
    183. \/images\/amiga\/<\/a><\/li>\n
    184. \/images\/joyofbeing.html<\/a><\/li>\n
    185. \/lab\/<\/a><\/li>\n
    186. \/lab\/css\/<\/a><\/li>\n
    187. \/lab\/css\/a-outline-none\/<\/a><\/li>\n
    188. \/lab\/css\/additive-font-size\/<\/a><\/li>\n
    189. \/lab\/css\/border-style\/<\/a><\/li>\n
    190. \/lab\/css\/form-image-background\/<\/a><\/li>\n
    191. \/lab\/css\/modify-the-box\/<\/a><\/li>\n
    192. \/lab\/css\/rounded-mozilla\/<\/a><\/li>\n
    193. \/lab\/css\/w3c-with-and-without-css\/<\/a><\/li>\n
    194. \/lab\/html\/50states\/<\/a><\/li>\n
    195. \/lab\/html\/ancient-tidy-tutorial\/<\/a><\/li>\n
    196. \/lab\/html\/gettysburg\/<\/a><\/li>\n
    197. \/lab\/html\/html-2.0\/<\/a><\/li>\n
    198. \/lab\/html\/image_border\/<\/a><\/li>\n
    199. \/lab\/html\/input-direction\/<\/a><\/li>\n
    200. \/lab\/html\/tips-2001\/<\/a><\/li>\n
    201. \/lab\/other\/<\/a><\/li>\n
    202. \/lab\/other\/anti-cache\/<\/a><\/li>\n
    203. \/lab\/other\/asp\/<\/a><\/li>\n
    204. \/lab\/other\/coldfusion-break-db\/<\/a><\/li>\n
    205. \/lab\/other\/email-submission-stinks\/<\/a><\/li>\n
    206. \/lab\/other\/java-tags\/<\/a><\/li>\n
    207. \/lab\/other\/java-tags\/-applet-tag-3.2.php<\/a><\/li>\n
    208. \/lab\/other\/java-tags\/-applet-tag-4.0.php<\/a><\/li>\n
    209. \/lab\/other\/java-tags\/-applet-tag-microsoft.php<\/a><\/li>\n
    210. \/lab\/other\/java-tags\/-applet-tag-netscape.php<\/a><\/li>\n
    211. \/lab\/other\/java-tags\/-applet-tag-sun.php<\/a><\/li>\n
    212. \/lab\/other\/misc-files\/<\/a><\/li>\n
    213. \/lab\/other\/not-valid-itunes-library\/<\/a><\/li>\n
    214. \/lab\/other\/undocumented-linklint\/<\/a><\/li>\n
    215. \/lab\/other\/unix-batch-file-rename\/<\/a><\/li>\n
    216. \/lab\/other\/windows_export_file_list\/<\/a><\/li>\n
    217. \/lab\/other\/ws_ftp_password_decoder\/<\/a><\/li>\n
    218. \/lab\/php\/<\/a><\/li>\n
    219. \/lab\/php\/countdown\/<\/a><\/li>\n
    220. \/lab\/php\/detagger\/<\/a><\/li>\n
    221. \/lab\/php\/echo_http_host\/<\/a><\/li>\n
    222. \/lab\/php\/gallery\/<\/a><\/li>\n
    223. \/lab\/php\/interesting_date_layout\/<\/a><\/li>\n
    224. \/lab\/php\/make-unique-id\/<\/a><\/li>\n
    225. \/lab\/php\/php-php3-mod-rewrite\/<\/a><\/li>\n
    226. \/lab\/php\/rtf\/<\/a><\/li>\n
    227. \/lab\/scripting\/autocalc\/<\/a><\/li>\n
    228. \/lab\/scripting\/bookmarklets\/<\/a><\/li>\n
    229. \/lab\/scripting\/bug_mac_netscape_forms_update\/<\/a><\/li>\n
    230. \/lab\/scripting\/camel-selector\/<\/a><\/li>\n
    231. \/lab\/scripting\/change_all_links\/<\/a><\/li>\n
    232. \/lab\/scripting\/checkbox-validate\/<\/a><\/li>\n
    233. \/lab\/scripting\/compare_fields\/<\/a><\/li>\n
    234. \/lab\/scripting\/detection_real\/<\/a><\/li>\n
    235. \/lab\/scripting\/dropdown_focus\/<\/a><\/li>\n
    236. \/lab\/scripting\/dropdown_frames\/<\/a><\/li>\n
    237. \/lab\/scripting\/dropdown_frames\/the-content.php<\/a><\/li>\n
    238. \/lab\/scripting\/dropdown_frames\/the-navigation.php<\/a><\/li>\n
    239. \/lab\/scripting\/dropdown_submit_form\/<\/a><\/li>\n
    240. \/lab\/scripting\/dropdown-only-some-new-window\/<\/a><\/li>\n
    241. \/lab\/scripting\/dropdown\/<\/a><\/li>\n
    242. \/lab\/scripting\/format_time\/<\/a><\/li>\n
    243. \/lab\/scripting\/frames_mouseover\/<\/a><\/li>\n
    244. \/lab\/scripting\/history\/<\/a><\/li>\n
    245. \/lab\/scripting\/invisible-unspiderable-link\/<\/a><\/li>\n
    246. \/lab\/scripting\/mouseover_vote\/<\/a><\/li>\n
    247. \/lab\/scripting\/mouseover_vote100\/<\/a><\/li>\n
    248. \/lab\/scripting\/multiple_select\/<\/a><\/li>\n
    249. \/lab\/scripting\/oncontextmenu\/<\/a><\/li>\n
    250. \/lab\/scripting\/onunload-window-open-evil\/<\/a><\/li>\n
    251. \/lab\/scripting\/outbound-link-confirmation\/<\/a><\/li>\n
    252. \/lab\/scripting\/pinkvalidation\/<\/a><\/li>\n
    253. \/lab\/scripting\/reverse_string_nums\/<\/a><\/li>\n
    254. \/lab\/scripting\/self_refresh\/<\/a><\/li>\n
    255. \/lab\/scripting\/slideshow-plus\/<\/a><\/li>\n
    256. \/lab\/scripting\/slideshow\/<\/a><\/li>\n
    257. \/lab\/scripting\/the-problem-with-blur\/<\/a><\/li>\n
    258. \/lab\/scripting\/tr-onmouseover-style\/<\/a><\/li>\n
    259. \/lab\/scripting\/urlencode\/<\/a><\/li>\n
    260. \/lab\/scripting\/validate_checkbox\/<\/a><\/li>\n
    261. \/lab\/scripting\/validate_image\/<\/a><\/li>\n
    262. \/newcomer\/<\/a><\/li>\n
    263. \/photos\/<\/a><\/li>\n
    264. \/photos\/2003balloons<\/a><\/li>\n
    265. \/photos\/albums.php<\/a><\/li>\n
    266. \/photos\/family2003<\/a><\/li>\n
    267. \/photos\/firefallout<\/a><\/li>\n
    268. \/photos\/greazel<\/a><\/li>\n
    269. \/photos\/hedgehog\/<\/a><\/li>\n
    270. \/photos\/meetup<\/a><\/li>\n
    271. \/photos\/miscellany<\/a><\/li>\n
    272. \/photos\/wisdomteeth<\/a><\/li>\n
    273. \/portfolio\/<\/a><\/li>\n
    274. \/portfolio\/albums.php<\/a><\/li>\n
    275. \/portfolio\/show<\/a><\/li>\n
    276. \/portfolio\/show\/artlung_dhtml<\/a><\/li>\n
    277. \/portfolio\/show\/artlung_splash_20020114<\/a><\/li>\n
    278. \/portfolio\/show\/artlung_splash_20020123<\/a><\/li>\n
    279. \/portfolio\/show\/artlung_splash_20020130<\/a><\/li>\n
    280. \/portfolio\/show\/artlung_splash_20020306<\/a><\/li>\n
    281. \/portfolio\/show\/artlung_splash_20020424<\/a><\/li>\n
    282. \/portfolio\/show\/artlung_splash_20020806<\/a><\/li>\n
    283. \/portfolio\/show\/artlung_wsd_home<\/a><\/li>\n
    284. \/portfolio\/show\/artlung_wsd_movienight<\/a><\/li>\n
    285. \/portfolio\/show\/avencom_dynapulse<\/a><\/li>\n
    286. \/portfolio\/show\/avencom_ebill<\/a><\/li>\n
    287. \/portfolio\/show\/avencom_freakygeekball<\/a><\/li>\n
    288. \/portfolio\/show\/avencom_gbs<\/a><\/li>\n
    289. \/portfolio\/show\/avencom_giftbasketshoppe_1<\/a><\/li>\n
    290. \/portfolio\/show\/avencom_giftbasketshoppe_2<\/a><\/li>\n
    291. \/portfolio\/show\/avencom_lightpointe<\/a><\/li>\n
    292. \/portfolio\/show\/avencom_paul_m_bowers<\/a><\/li>\n
    293. \/portfolio\/show\/avencom_paulmbowers<\/a><\/li>\n
    294. \/portfolio\/show\/avencom_robertsformayor<\/a><\/li>\n
    295. \/portfolio\/show\/avencom_sanyo<\/a><\/li>\n
    296. \/portfolio\/show\/avencom_transitworks<\/a><\/li>\n
    297. \/portfolio\/show\/avencom_waitt_map<\/a><\/li>\n
    298. \/portfolio\/show\/bidland_fishball<\/a><\/li>\n
    299. \/portfolio\/show\/freelance_aircar3000<\/a><\/li>\n
    300. \/portfolio\/show\/freelance_digitelle<\/a><\/li>\n
    301. \/portfolio\/show\/freelance_leahpeah_com<\/a><\/li>\n
    302. \/portfolio\/show\/freelance_los_angeles_newspaper_group<\/a><\/li>\n
    303. \/portfolio\/show\/freelance_solonglandlord_us<\/a><\/li>\n
    304. \/portfolio\/show\/lg_ss_arco_001<\/a><\/li>\n
    305. \/portfolio\/show\/lg_ss_artlung_swf_anim<\/a><\/li>\n
    306. \/portfolio\/show\/lg_ss_geocities_001<\/a><\/li>\n
    307. \/portfolio\/show\/personal_blog_rss<\/a><\/li>\n
    308. \/portfolio\/show\/sandiegobloggers_com<\/a><\/li>\n
    309. \/portfolio\/show\/sandiegobloggers_com_admin<\/a><\/li>\n
    310. \/portfolio\/show\/stew_sez_online_journal<\/a><\/li>\n
    311. \/portfolio\/show\/websandiego_org_happy_hour_7<\/a><\/li>\n
    312. \/portfolio\/show\/websandiego_org_happy_hour_8<\/a><\/li>\n
    313. \/portfolio\/show\/websandiego_org_happy_hour_9<\/a><\/li>\n
    314. \/portfolio\/show\/websandiego_org_not_websandiego_bonfire_1<\/a><\/li>\n
    315. \/resume\/<\/a><\/li>\n
    316. \/resume\/respiratory\/<\/a><\/li>\n
    317. \/showoff\/dhtml\/<\/a><\/li>\n
    318. \/showoff\/draw\/draw-20020113.php<\/a><\/li>\n
    319. \/showoff\/fun\/-23<\/a><\/li>\n
    320. \/showoff\/fun\/-70s_Wedding<\/a><\/li>\n
    321. \/showoff\/fun\/-AL_ArtCenter<\/a><\/li>\n
    322. \/showoff\/fun\/-Askew_Askance_92<\/a><\/li>\n
    323. \/showoff\/fun\/-Cardiopulmonary<\/a><\/li>\n
    324. \/showoff\/fun\/-Clock_Concept<\/a><\/li>\n
    325. \/showoff\/fun\/-Cocoa_Krispies<\/a><\/li>\n
    326. \/showoff\/fun\/-CompAOLation<\/a><\/li>\n
    327. \/showoff\/fun\/-Easter_1992<\/a><\/li>\n
    328. \/showoff\/fun\/-er_1997<\/a><\/li>\n
    329. \/showoff\/fun\/-Etching<\/a><\/li>\n
    330. \/showoff\/fun\/-Experiment_92<\/a><\/li>\n
    331. \/showoff\/fun\/-Ferris_Charcoal<\/a><\/li>\n
    332. \/showoff\/fun\/-First_Digital<\/a><\/li>\n
    333. \/showoff\/fun\/-GIF89a<\/a><\/li>\n
    334. \/showoff\/fun\/-HS_RT_School<\/a><\/li>\n
    335. \/showoff\/fun\/-Hunting_Time<\/a><\/li>\n
    336. \/showoff\/fun\/-IllusPhoto<\/a><\/li>\n
    337. \/showoff\/fun\/-Image_Correction<\/a><\/li>\n
    338. \/showoff\/fun\/-Jacqui_Card_2000<\/a><\/li>\n
    339. \/showoff\/fun\/-Kingman<\/a><\/li>\n
    340. \/showoff\/fun\/-Logo_Parodies<\/a><\/li>\n
    341. \/showoff\/fun\/-Order_of_the_Sleepless_Knights<\/a><\/li>\n
    342. \/showoff\/fun\/-Prom_1987<\/a><\/li>\n
    343. \/showoff\/fun\/-Reciept_Poetry<\/a><\/li>\n
    344. \/showoff\/fun\/-RonsRhinestones<\/a><\/li>\n
    345. \/showoff\/fun\/-SDPLSA<\/a><\/li>\n
    346. \/showoff\/fun\/-Self_1988<\/a><\/li>\n
    347. \/showoff\/fun\/-Silva_Reunion_2000<\/a><\/li>\n
    348. \/showoff\/fun\/-Star_Wars_77<\/a><\/li>\n
    349. \/showoff\/fun\/-Strange_1<\/a><\/li>\n
    350. \/showoff\/fun\/-Strange_2<\/a><\/li>\n
    351. \/showoff\/fun\/-Strange_3<\/a><\/li>\n
    352. \/showoff\/fun\/-Strange_4<\/a><\/li>\n
    353. \/showoff\/fun\/-Untitled_06_11_2000<\/a><\/li>\n
    354. \/showoff\/fun\/-Untitled_1997<\/a><\/li>\n
    355. \/showoff\/fun\/-Vampire<\/a><\/li>\n
    356. \/showoff\/fun\/-VOAA<\/a><\/li>\n
    357. \/showoff\/fun\/-Watercolor_Dorene<\/a><\/li>\n
    358. \/showoff\/fun\/-Watercolor_SpaceSuit<\/a><\/li>\n
    359. \/showoff\/pro\/-aias_realaudio<\/a><\/li>\n
    360. \/showoff\/pro\/-arco<\/a><\/li>\n
    361. \/showoff\/pro\/-Cardiopulmonary<\/a><\/li>\n
    362. \/showoff\/pro\/-CompAOLation<\/a><\/li>\n
    363. \/showoff\/pro\/-Etching<\/a><\/li>\n
    364. \/showoff\/pro\/-Flash<\/a><\/li>\n
    365. \/showoff\/pro\/-GIF89a<\/a><\/li>\n
    366. \/showoff\/pro\/-Kingman<\/a><\/li>\n
    367. \/showoff\/pro\/-RonsRhinestones<\/a><\/li>\n
    368. \/showoff\/pro\/-SDPLSA<\/a><\/li>\n
    369. \/showoff\/pro\/-VOAA<\/a><\/li>\n
    370. \/site-index\/<\/a><\/li>\n
    371. \/smorgasborg\/<\/a><\/li>\n
    372. \/smorgasborg\/20030204-9999_1c4blogs.html<\/a><\/li>\n
    373. \/smorgasborg\/20030704-walk.html<\/a><\/li>\n
    374. \/smorgasborg\/alanis_so_pure.shtml<\/a><\/li>\n
    375. \/smorgasborg\/aol_gibson.shtml<\/a><\/li>\n
    376. \/smorgasborg\/art_nav_test_0\/<\/a><\/li>\n
    377. \/smorgasborg\/art_nav_test_0\/index.html<\/a><\/li>\n
    378. \/smorgasborg\/babble_urls.shtml<\/a><\/li>\n
    379. \/smorgasborg\/Booming_Granny.shtml<\/a><\/li>\n
    380. \/smorgasborg\/browser_stat\/<\/a><\/li>\n
    381. \/smorgasborg\/bruce_lookup.shtml<\/a><\/li>\n
    382. \/smorgasborg\/C_R_Y_P_T_O_N_O_M_I_C_O_N.shtml<\/a><\/li>\n
    383. \/smorgasborg\/captain-k-joseph-45\/<\/a><\/li>\n
    384. \/smorgasborg\/comeonover-sunship-vocal.shtml<\/a><\/li>\n
    385. \/smorgasborg\/cuba\/<\/a><\/li>\n
    386. \/smorgasborg\/flame_response_form.shtml<\/a><\/li>\n
    387. \/smorgasborg\/flash_urls_1999.shtml<\/a><\/li>\n
    388. \/smorgasborg\/girlfriend_1.0.shtml<\/a><\/li>\n
    389. \/smorgasborg\/good_internet_publications.shtml<\/a><\/li>\n
    390. \/smorgasborg\/greek_text.shtml<\/a><\/li>\n
    391. \/smorgasborg\/how_to_tick_people_off.shtml<\/a><\/li>\n
    392. \/smorgasborg\/international_xmas.shtml<\/a><\/li>\n
    393. \/smorgasborg\/Invention_of_Cplusplus.shtml<\/a><\/li>\n
    394. \/smorgasborg\/is-there-a-santa-engineers-view.shtml<\/a><\/li>\n
    395. \/smorgasborg\/jamisongold_bought.shtml<\/a><\/li>\n
    396. \/smorgasborg\/Kid_Charlemagne_Lyrics.shtml<\/a><\/li>\n
    397. \/smorgasborg\/kpbs-schedule-redesign.html<\/a><\/li>\n
    398. \/smorgasborg\/LaughAndBeHappyRandyNewman.shtml<\/a><\/li>\n
    399. \/smorgasborg\/let-forever-be.shtml<\/a><\/li>\n
    400. \/smorgasborg\/mac_java_urls.shtml<\/a><\/li>\n
    401. \/smorgasborg\/Macaroni_Salad.shtml<\/a><\/li>\n
    402. \/smorgasborg\/major_search_engines.shtml<\/a><\/li>\n
    403. \/smorgasborg\/notes-builder-live-1999.shtml<\/a><\/li>\n
    404. \/smorgasborg\/notes-tar.shtml<\/a><\/li>\n
    405. \/smorgasborg\/once_upon_a_time.shtml<\/a><\/li>\n
    406. \/smorgasborg\/otherviews\/<\/a><\/li>\n
    407. \/smorgasborg\/p_fun_index.shtml<\/a><\/li>\n
    408. \/smorgasborg\/Penguin.log.shtml<\/a><\/li>\n
    409. \/smorgasborg\/phonics\/<\/a><\/li>\n
    410. \/smorgasborg\/QuixtarAmwayURLs.shtml<\/a><\/li>\n
    411. \/smorgasborg\/roadrunner_login_macperl.shtml<\/a><\/li>\n
    412. \/smorgasborg\/sandiego-tech-cos.shtml<\/a><\/li>\n
    413. \/smorgasborg\/spam_sig.shtml<\/a><\/li>\n
    414. \/smorgasborg\/star_wars_songbook.shtml<\/a><\/li>\n
    415. \/smorgasborg\/Sterling_SF_lexicon.shtml<\/a><\/li>\n
    416. \/smorgasborg\/time_speeds_download.shtml<\/a><\/li>\n
    417. \/smorgasborg\/TMBG-Yeh-Yeh.shtml<\/a><\/li>\n
    418. \/smorgasborg\/urm_searches.shtml<\/a><\/li>\n
    419. \/smorgasborg\/various_URLs.sandiego.shtml<\/a><\/li>\n
    420. \/smorgasborg\/various_URLS.shtml<\/a><\/li>\n
    421. \/smorgasborg\/various_URLssandiego2000.shtml<\/a><\/li>\n
    422. \/smorgasborg\/VideoIndiaIrie.shtml<\/a><\/li>\n
    423. \/smorgasborg\/why_a_website.shtml<\/a><\/li>\n
    424. \/smorgasborg\/why_visitors_return.shtml<\/a><\/li>\n
    425. \/smorgasborg\/William_Gibson_Interview.shtml<\/a><\/li>\n
    426. \/viridian-contest\/<\/a><\/li>\n
    427. \/viridian-contest\/02001.1\/<\/a><\/li>\n
    428. \/viridian-contest\/02001e\/<\/a><\/li>\n
    429. \/viridian-contest\/6\/<\/a><\/li>\n
    430. \/viridian-contest\/9\/<\/a><\/li>\n
    431. \/viridian-contest\/couture\/<\/a><\/li>\n
    432. \/words\/<\/a><\/li>\n
    433. \/words\/accessibility\/<\/a><\/li>\n
    434. \/words\/accessibility\/accessibility.html<\/a><\/li>\n
    435. \/words\/aip-19990727\/<\/a><\/li>\n
    436. \/words\/aol_nostalgia\/<\/a><\/li>\n
    437. \/words\/becoming\/<\/a><\/li>\n
    438. \/words\/crossplatform\/<\/a><\/li>\n
    439. \/words\/flash-psychic-proof\/<\/a><\/li>\n
    440. \/words\/forta-speaks\/<\/a><\/li>\n
    441. \/words\/lindows-pitch\/<\/a><\/li>\n
    442. \/words\/never-enough\/<\/a><\/li>\n
    443. \/words\/some-poems\/<\/a><\/li>\n
    444. \/words\/standards-baseline-proposal\/<\/a><\/li>\n
    445. \/words\/two-ships\/<\/a><\/li>\n
    446. \/words\/web-work-200111\/<\/a><\/li>\n
    447. \/words\/websandiego-vision\/<\/a><\/li>\n
    448. \/words\/what-is-a-web-integrator\/<\/a><\/li>\n
    449. \/words\/what-is-the-internet-for\/<\/a><\/li>\n
    450. \/words\/zappa\/<\/a><\/li>\n<\/ol>","text":"This needs a librarian. \n\/\n\/archive\/\n\/archive\/0\/\n\/archive\/0\/alhome.html\n\/archive\/0\/index.html\n\/archive\/0\/undcon.html\n\/archive\/1\/\n\/archive\/1\/alhome.html\n\/archive\/1\/index.html\n\/archive\/1\/resume.html\n\/archive\/2\/\n\/archive\/2\/animatedgifs.html\n\/archive\/2\/biography.html\n\/archive\/2\/book_covers.html\n\/archive\/2\/book_covers2.html\n\/archive\/2\/ccks.html\n\/archive\/2\/clock_concept.html\n\/archive\/2\/crossplatform.html\n\/archive\/2\/flash_checker.html\n\/archive\/2\/freelance_etching.html\n\/archive\/2\/home.html\n\/archive\/2\/kingman.html\n\/archive\/2\/links.html\n\/archive\/2\/logo_parody.html\n\/archive\/2\/logos.html\n\/archive\/2\/logos2.html\n\/archive\/2\/logos3.html\n\/archive\/2\/newcomer.html\n\/archive\/2\/pictures.html\n\/archive\/2\/resume.html\n\/archive\/2\/ronsrhinestones.html\n\/archive\/2\/selfportrait.html\n\/archive\/2\/send_email.html\n\/archive\/2\/spacebaby.html\n\/archive\/2\/spot_illustrations_1.html\n\/archive\/2\/spot_illustrations_2.html\n\/archive\/2\/spot_illustrations_3.html\n\/archive\/2\/spot_illustrations_4.html\n\/archive\/2\/spot_illustrations_5.html\n\/archive\/2\/strange_landscapes_1.html\n\/archive\/2\/strange_landscapes_2.html\n\/archive\/2\/strange_landscapes_3.html\n\/archive\/2\/strange_landscapes_4.html\n\/archive\/2\/xkitty.html\n\/archive\/2\/z_image_manip.html\n\/archive\/2\/z_image_manip2.html\n\/archive\/3\/\n\/archive\/3beta\/\n\/archive\/4\/\n\/archive\/sig\/\n\/archive\/splashes\/-20020114\n\/archive\/splashes\/-20020123\n\/archive\/splashes\/-20020130\n\/archive\/splashes\/-20020306\n\/archive\/splashes\/-20020424\n\/archive\/splashes\/-20020806\n\/archive\/splashes\/-20030702\n\/bio\/\n\/bio\/respiratory\/nametag\/\n\/bio\/respiratory\/physics\/\n\/bio\/wedding\/\n\/bio\/wedding\/announcement\/\n\/bio\/wedding\/anuncio\/\n\/bio\/wedding\/slide.php\n\/blog\/\n\/blog\/2001\/01\/\n\/blog\/2001\/02\/\n\/blog\/2001\/03\/\n\/blog\/2001\/04\/\n\/blog\/2001\/05\/\n\/blog\/2001\/06\/\n\/blog\/2001\/07\/\n\/blog\/2001\/08\/\n\/blog\/2001\/09\/\n\/blog\/2001\/10\/\n\/blog\/2001\/11\/\n\/blog\/2001\/12\/\n\/blog\/2002\/01\/\n\/blog\/2002\/02\/\n\/blog\/2002\/03\/\n\/blog\/2002\/04\/\n\/blog\/2002\/05\/\n\/blog\/2002\/06\/\n\/blog\/2002\/07\/\n\/blog\/2002\/08\/\n\/blog\/2002\/09\/\n\/blog\/2002\/10\/\n\/blog\/2002\/11\/\n\/blog\/2002\/12\/\n\/blog\/2003\/01\/\n\/blog\/2003\/02\/\n\/blog\/2003\/02\/\n\/blog\/2003\/03\/\n\/blog\/2003\/04\/\n\/blog\/2003\/05\/\n\/blog\/2003\/06\/\n\/blog\/2003\/07\/\n\/blog\/2003\/08\/\n\/blog\/2003\/09\/\n\/blog\/2003\/10\/\n\/blog\/2003\/11\/\n\/blog\/2003\/12\/\n\/blog\/pageholder\/\n\/blog\/special_2003_02_15.php\n\/blog\/special_2003_02_16.php\n\/colophon\/\n\/contact\/\n\/deprecated\/books.uk\/\n\/deprecated\/books\/\n\/deprecated\/che\/\n\/deprecated\/che\/goodbye.php\n\/deprecated\/jennifer\/\n\/fansite\/bebe\/\n\/fansite\/ronnyvardy\/\n\/fansite\/stew-tnp\/\n\/fansite\/voltes-v\/\n\/fansite\/voltes-v\/index.html\n\/fansite\/voltes-v\/paper.html\n\/fansite\/voltes-v\/toy.html\n\/fansite\/voltes-v\/where.html\n\/feedback\/\n\/flash\/\n\/flash\/flash_checker.html\n\/friends\/eduquake\/\n\/friends\/jared\/\n\/friends\/vince\/\n\/headers\/\n\/headers\/-20000114\n\/headers\/-20000912\n\/headers\/-20010216\n\/headers\/-20010223\n\/headers\/-20010305\n\/headers\/-20010307\n\/headers\/-20010322\n\/headers\/-20010403\n\/headers\/-20010412\n\/headers\/-20010508\n\/headers\/-20010624\n\/headers\/-20010630\n\/headers\/-20010823\n\/headers\/-20010915\n\/headers\/-20011002\n\/headers\/-20011013\n\/headers\/-20011014\n\/headers\/-20011023\n\/headers\/-20011114\n\/headers\/-20011121\n\/headers\/-20011128\n\/headers\/-20011202\n\/headers\/-20011206\n\/headers\/-20011224\n\/headers\/-20011231\n\/headers\/-20020106\n\/headers\/-20020118\n\/headers\/-20020130\n\/headers\/-20020225\n\/headers\/-20020322\n\/headers\/-20020326\n\/headers\/-20020424\n\/headers\/-20020628\n\/headers\/-20020806\n\/headers\/-20020911\n\/headers\/-20021018\n\/headers\/-20021104\n\/headers\/-20021113\n\/headers\/-20021217\n\/headers\/-20030128\n\/headers\/-20030215\n\/headers\/-20030412\n\/headers\/-20030621\n\/headers\/-20030707\n\/headers\/-20030911\n\/headers\/-20030912\n\/headers\/-20030923\n\/headers\/-20031019\n\/headers\/-20031027\n\/headers\/-20031031\n\/headers\/-20031102\n\/headers\/-20031111\n\/headers\/\/\n\/images\/\n\/images\/20030216\/\n\/images\/amiga\/\n\/images\/joyofbeing.html\n\/lab\/\n\/lab\/css\/\n\/lab\/css\/a-outline-none\/\n\/lab\/css\/additive-font-size\/\n\/lab\/css\/border-style\/\n\/lab\/css\/form-image-background\/\n\/lab\/css\/modify-the-box\/\n\/lab\/css\/rounded-mozilla\/\n\/lab\/css\/w3c-with-and-without-css\/\n\/lab\/html\/50states\/\n\/lab\/html\/ancient-tidy-tutorial\/\n\/lab\/html\/gettysburg\/\n\/lab\/html\/html-2.0\/\n\/lab\/html\/image_border\/\n\/lab\/html\/input-direction\/\n\/lab\/html\/tips-2001\/\n\/lab\/other\/\n\/lab\/other\/anti-cache\/\n\/lab\/other\/asp\/\n\/lab\/other\/coldfusion-break-db\/\n\/lab\/other\/email-submission-stinks\/\n\/lab\/other\/java-tags\/\n\/lab\/other\/java-tags\/-applet-tag-3.2.php\n\/lab\/other\/java-tags\/-applet-tag-4.0.php\n\/lab\/other\/java-tags\/-applet-tag-microsoft.php\n\/lab\/other\/java-tags\/-applet-tag-netscape.php\n\/lab\/other\/java-tags\/-applet-tag-sun.php\n\/lab\/other\/misc-files\/\n\/lab\/other\/not-valid-itunes-library\/\n\/lab\/other\/undocumented-linklint\/\n\/lab\/other\/unix-batch-file-rename\/\n\/lab\/other\/windows_export_file_list\/\n\/lab\/other\/ws_ftp_password_decoder\/\n\/lab\/php\/\n\/lab\/php\/countdown\/\n\/lab\/php\/detagger\/\n\/lab\/php\/echo_http_host\/\n\/lab\/php\/gallery\/\n\/lab\/php\/interesting_date_layout\/\n\/lab\/php\/make-unique-id\/\n\/lab\/php\/php-php3-mod-rewrite\/\n\/lab\/php\/rtf\/\n\/lab\/scripting\/autocalc\/\n\/lab\/scripting\/bookmarklets\/\n\/lab\/scripting\/bug_mac_netscape_forms_update\/\n\/lab\/scripting\/camel-selector\/\n\/lab\/scripting\/change_all_links\/\n\/lab\/scripting\/checkbox-validate\/\n\/lab\/scripting\/compare_fields\/\n\/lab\/scripting\/detection_real\/\n\/lab\/scripting\/dropdown_focus\/\n\/lab\/scripting\/dropdown_frames\/\n\/lab\/scripting\/dropdown_frames\/the-content.php\n\/lab\/scripting\/dropdown_frames\/the-navigation.php\n\/lab\/scripting\/dropdown_submit_form\/\n\/lab\/scripting\/dropdown-only-some-new-window\/\n\/lab\/scripting\/dropdown\/\n\/lab\/scripting\/format_time\/\n\/lab\/scripting\/frames_mouseover\/\n\/lab\/scripting\/history\/\n\/lab\/scripting\/invisible-unspiderable-link\/\n\/lab\/scripting\/mouseover_vote\/\n\/lab\/scripting\/mouseover_vote100\/\n\/lab\/scripting\/multiple_select\/\n\/lab\/scripting\/oncontextmenu\/\n\/lab\/scripting\/onunload-window-open-evil\/\n\/lab\/scripting\/outbound-link-confirmation\/\n\/lab\/scripting\/pinkvalidation\/\n\/lab\/scripting\/reverse_string_nums\/\n\/lab\/scripting\/self_refresh\/\n\/lab\/scripting\/slideshow-plus\/\n\/lab\/scripting\/slideshow\/\n\/lab\/scripting\/the-problem-with-blur\/\n\/lab\/scripting\/tr-onmouseover-style\/\n\/lab\/scripting\/urlencode\/\n\/lab\/scripting\/validate_checkbox\/\n\/lab\/scripting\/validate_image\/\n\/newcomer\/\n\/photos\/\n\/photos\/2003balloons\n\/photos\/albums.php\n\/photos\/family2003\n\/photos\/firefallout\n\/photos\/greazel\n\/photos\/hedgehog\/\n\/photos\/meetup\n\/photos\/miscellany\n\/photos\/wisdomteeth\n\/portfolio\/\n\/portfolio\/albums.php\n\/portfolio\/show\n\/portfolio\/show\/artlung_dhtml\n\/portfolio\/show\/artlung_splash_20020114\n\/portfolio\/show\/artlung_splash_20020123\n\/portfolio\/show\/artlung_splash_20020130\n\/portfolio\/show\/artlung_splash_20020306\n\/portfolio\/show\/artlung_splash_20020424\n\/portfolio\/show\/artlung_splash_20020806\n\/portfolio\/show\/artlung_wsd_home\n\/portfolio\/show\/artlung_wsd_movienight\n\/portfolio\/show\/avencom_dynapulse\n\/portfolio\/show\/avencom_ebill\n\/portfolio\/show\/avencom_freakygeekball\n\/portfolio\/show\/avencom_gbs\n\/portfolio\/show\/avencom_giftbasketshoppe_1\n\/portfolio\/show\/avencom_giftbasketshoppe_2\n\/portfolio\/show\/avencom_lightpointe\n\/portfolio\/show\/avencom_paul_m_bowers\n\/portfolio\/show\/avencom_paulmbowers\n\/portfolio\/show\/avencom_robertsformayor\n\/portfolio\/show\/avencom_sanyo\n\/portfolio\/show\/avencom_transitworks\n\/portfolio\/show\/avencom_waitt_map\n\/portfolio\/show\/bidland_fishball\n\/portfolio\/show\/freelance_aircar3000\n\/portfolio\/show\/freelance_digitelle\n\/portfolio\/show\/freelance_leahpeah_com\n\/portfolio\/show\/freelance_los_angeles_newspaper_group\n\/portfolio\/show\/freelance_solonglandlord_us\n\/portfolio\/show\/lg_ss_arco_001\n\/portfolio\/show\/lg_ss_artlung_swf_anim\n\/portfolio\/show\/lg_ss_geocities_001\n\/portfolio\/show\/personal_blog_rss\n\/portfolio\/show\/sandiegobloggers_com\n\/portfolio\/show\/sandiegobloggers_com_admin\n\/portfolio\/show\/stew_sez_online_journal\n\/portfolio\/show\/websandiego_org_happy_hour_7\n\/portfolio\/show\/websandiego_org_happy_hour_8\n\/portfolio\/show\/websandiego_org_happy_hour_9\n\/portfolio\/show\/websandiego_org_not_websandiego_bonfire_1\n\/resume\/\n\/resume\/respiratory\/\n\/showoff\/dhtml\/\n\/showoff\/draw\/draw-20020113.php\n\/showoff\/fun\/-23\n\/showoff\/fun\/-70s_Wedding\n\/showoff\/fun\/-AL_ArtCenter\n\/showoff\/fun\/-Askew_Askance_92\n\/showoff\/fun\/-Cardiopulmonary\n\/showoff\/fun\/-Clock_Concept\n\/showoff\/fun\/-Cocoa_Krispies\n\/showoff\/fun\/-CompAOLation\n\/showoff\/fun\/-Easter_1992\n\/showoff\/fun\/-er_1997\n\/showoff\/fun\/-Etching\n\/showoff\/fun\/-Experiment_92\n\/showoff\/fun\/-Ferris_Charcoal\n\/showoff\/fun\/-First_Digital\n\/showoff\/fun\/-GIF89a\n\/showoff\/fun\/-HS_RT_School\n\/showoff\/fun\/-Hunting_Time\n\/showoff\/fun\/-IllusPhoto\n\/showoff\/fun\/-Image_Correction\n\/showoff\/fun\/-Jacqui_Card_2000\n\/showoff\/fun\/-Kingman\n\/showoff\/fun\/-Logo_Parodies\n\/showoff\/fun\/-Order_of_the_Sleepless_Knights\n\/showoff\/fun\/-Prom_1987\n\/showoff\/fun\/-Reciept_Poetry\n\/showoff\/fun\/-RonsRhinestones\n\/showoff\/fun\/-SDPLSA\n\/showoff\/fun\/-Self_1988\n\/showoff\/fun\/-Silva_Reunion_2000\n\/showoff\/fun\/-Star_Wars_77\n\/showoff\/fun\/-Strange_1\n\/showoff\/fun\/-Strange_2\n\/showoff\/fun\/-Strange_3\n\/showoff\/fun\/-Strange_4\n\/showoff\/fun\/-Untitled_06_11_2000\n\/showoff\/fun\/-Untitled_1997\n\/showoff\/fun\/-Vampire\n\/showoff\/fun\/-VOAA\n\/showoff\/fun\/-Watercolor_Dorene\n\/showoff\/fun\/-Watercolor_SpaceSuit\n\/showoff\/pro\/-aias_realaudio\n\/showoff\/pro\/-arco\n\/showoff\/pro\/-Cardiopulmonary\n\/showoff\/pro\/-CompAOLation\n\/showoff\/pro\/-Etching\n\/showoff\/pro\/-Flash\n\/showoff\/pro\/-GIF89a\n\/showoff\/pro\/-Kingman\n\/showoff\/pro\/-RonsRhinestones\n\/showoff\/pro\/-SDPLSA\n\/showoff\/pro\/-VOAA\n\/site-index\/\n\/smorgasborg\/\n\/smorgasborg\/20030204-9999_1c4blogs.html\n\/smorgasborg\/20030704-walk.html\n\/smorgasborg\/alanis_so_pure.shtml\n\/smorgasborg\/aol_gibson.shtml\n\/smorgasborg\/art_nav_test_0\/\n\/smorgasborg\/art_nav_test_0\/index.html\n\/smorgasborg\/babble_urls.shtml\n\/smorgasborg\/Booming_Granny.shtml\n\/smorgasborg\/browser_stat\/\n\/smorgasborg\/bruce_lookup.shtml\n\/smorgasborg\/C_R_Y_P_T_O_N_O_M_I_C_O_N.shtml\n\/smorgasborg\/captain-k-joseph-45\/\n\/smorgasborg\/comeonover-sunship-vocal.shtml\n\/smorgasborg\/cuba\/\n\/smorgasborg\/flame_response_form.shtml\n\/smorgasborg\/flash_urls_1999.shtml\n\/smorgasborg\/girlfriend_1.0.shtml\n\/smorgasborg\/good_internet_publications.shtml\n\/smorgasborg\/greek_text.shtml\n\/smorgasborg\/how_to_tick_people_off.shtml\n\/smorgasborg\/international_xmas.shtml\n\/smorgasborg\/Invention_of_Cplusplus.shtml\n\/smorgasborg\/is-there-a-santa-engineers-view.shtml\n\/smorgasborg\/jamisongold_bought.shtml\n\/smorgasborg\/Kid_Charlemagne_Lyrics.shtml\n\/smorgasborg\/kpbs-schedule-redesign.html\n\/smorgasborg\/LaughAndBeHappyRandyNewman.shtml\n\/smorgasborg\/let-forever-be.shtml\n\/smorgasborg\/mac_java_urls.shtml\n\/smorgasborg\/Macaroni_Salad.shtml\n\/smorgasborg\/major_search_engines.shtml\n\/smorgasborg\/notes-builder-live-1999.shtml\n\/smorgasborg\/notes-tar.shtml\n\/smorgasborg\/once_upon_a_time.shtml\n\/smorgasborg\/otherviews\/\n\/smorgasborg\/p_fun_index.shtml\n\/smorgasborg\/Penguin.log.shtml\n\/smorgasborg\/phonics\/\n\/smorgasborg\/QuixtarAmwayURLs.shtml\n\/smorgasborg\/roadrunner_login_macperl.shtml\n\/smorgasborg\/sandiego-tech-cos.shtml\n\/smorgasborg\/spam_sig.shtml\n\/smorgasborg\/star_wars_songbook.shtml\n\/smorgasborg\/Sterling_SF_lexicon.shtml\n\/smorgasborg\/time_speeds_download.shtml\n\/smorgasborg\/TMBG-Yeh-Yeh.shtml\n\/smorgasborg\/urm_searches.shtml\n\/smorgasborg\/various_URLs.sandiego.shtml\n\/smorgasborg\/various_URLS.shtml\n\/smorgasborg\/various_URLssandiego2000.shtml\n\/smorgasborg\/VideoIndiaIrie.shtml\n\/smorgasborg\/why_a_website.shtml\n\/smorgasborg\/why_visitors_return.shtml\n\/smorgasborg\/William_Gibson_Interview.shtml\n\/viridian-contest\/\n\/viridian-contest\/02001.1\/\n\/viridian-contest\/02001e\/\n\/viridian-contest\/6\/\n\/viridian-contest\/9\/\n\/viridian-contest\/couture\/\n\/words\/\n\/words\/accessibility\/\n\/words\/accessibility\/accessibility.html\n\/words\/aip-19990727\/\n\/words\/aol_nostalgia\/\n\/words\/becoming\/\n\/words\/crossplatform\/\n\/words\/flash-psychic-proof\/\n\/words\/forta-speaks\/\n\/words\/lindows-pitch\/\n\/words\/never-enough\/\n\/words\/some-poems\/\n\/words\/standards-baseline-proposal\/\n\/words\/two-ships\/\n\/words\/web-work-200111\/\n\/words\/websandiego-vision\/\n\/words\/what-is-a-web-integrator\/\n\/words\/what-is-the-internet-for\/\n\/words\/zappa\/"},"mention-of":"https:\/\/lab.artlung.com\/anti-cache\/","wm-property":"mention-of","wm-private":false,"rels":{"canonical":"https:\/\/artlung.com\/blog\/2003\/11\/13\/106878821057274262\/"}}] \ No newline at end of file diff --git a/webmention_data/home.json b/webmention_data/home.json index e5b3ddc..fc47c09 100644 --- a/webmention_data/home.json +++ b/webmention_data/home.json @@ -1 +1 @@ -[{"type":"entry","author":{"type":"card","name":"joe jenett","photo":"https:\/\/webmention.io\/avatar\/secure.gravatar.com\/be3469587ad065ec1ec48004220592a16ea2a86cfc5b7deeaa680ca2895847ab.png","url":"https:\/\/iwebthings.joejenett.com\/"},"url":"https:\/\/iwebthings.joejenett.com\/world-wide-web\/","published":null,"wm-received":"2024-12-26T15:15:56Z","wm-id":1869808,"wm-source":"https:\/\/iwebthings.joejenett.com\/world-wide-web\/","wm-target":"https:\/\/lab.artlung.com\/","wm-protocol":"webmention","name":"\u201cWorld. Wide. Web.\u201d","content":{"html":"

      lab.artlung.com and a return to a World Wide Web<\/a>
      \u21aa
      ArtLung Lab<\/a><\/p>\n\n

      Web experiments, explainers, code snippets by Joe Crawford<\/a> since 1996. Some current. Some out of date. You can follow the site feed<\/a> and the code in the GitHub repository<\/a>.<\/p><\/blockquote>\n

      ???? I like!\n<\/a><\/p>","text":"lab.artlung.com and a return to a World Wide Web\n\u21aaArtLung Lab\n\nWeb experiments, explainers, code snippets by Joe Crawford since 1996. Some current. Some out of date. You can follow the site feed and the code in the GitHub repository.\n???? I like!"},"mention-of":"https:\/\/lab.artlung.com\/","wm-property":"mention-of","wm-private":false},{"type":"entry","author":{"type":"card","name":"Joe Crawford","photo":"https:\/\/webmention.io\/avatar\/cdn.artlung.com\/a0b5bad7e1082e08dc5e72e7f4760d40596782e04895da8b740023e7c1904d15.jpg","url":""},"url":"https:\/\/artlung.com\/blog\/2024\/12\/23\/lab-artlung-com-and-a-return-to-a-world-wide-web\/","published":"2024-12-23T11:25:29","wm-received":"2024-12-23T19:25:50Z","wm-id":1869372,"wm-source":"https:\/\/artlung.com\/blog\/2024\/12\/23\/lab-artlung-com-and-a-return-to-a-world-wide-web\/","wm-target":"https:\/\/lab.artlung.com\/","wm-protocol":"webmention","name":"lab.artlung.com and a return to a World Wide Web","syndication":["https:\/\/news.indieweb.org\/en"],"content":{"html":"

      I have made every kind of web page. I\u2019ve worked on every sort of web application. I learned ColdFusion. I learned Perl. I learned PHP. CSS came out<\/em> at the start of my career.<\/p>\n

      Active Server Pages (\u201cASP\u201d) is now referred to as \u201cClassic ASP\u201d<\/em> which makes it sound related to some middle-aged-man\u2019s drop-top Corvette Stingray. I learned ASP too.<\/p>\n

      When I was learning, I used my website to play with the web. I called it THE LAB. I want to talk about how it came to be and how it changed with time today.<\/p>\n

      In part I created the site to help me remember little bits of arcana that kept coming up for me as a web developer. I remember looking up my page Preventing Browser Cache<\/a> several times to see the various different ways the different application platforms represented the HTTP headers. Originally pages like this were here on artlung.com. I put them on my website as part of giving back to the web. It felt good. I had learned so much from mailing lists\u2013sometimes called listservs: <\/em>Webmonster, Web405, evolt.org, webdesign-L, WWWAC, WebSanDiego, GOODTIMES and others taught me so much. Mailing lists are gone, as are most of their archives.<\/p>\n

      I also learned on usenet. The comp.* groups had some great stuff. And for a time Macromedia offered their own newsgroup hierarchy. It used to be you could click on news:\/\/forums.macromedia.com\/macromedia.dreamweaver<\/a> and fire up your newsreader and get help about Dreamweaver. All of that is now history. Some of that is archived to the web.<\/p>\n

      Here in 2024 one can use StackOverflow to ask questions and discuss programming.<\/p>\n

      We can also type a question into Google or Bing or DuckDuckGo. Often what comes up are ads and summations \u201cwritten\u201d\u2013which is to say\u2013laundered<\/em> through an AI tool. But those written words couldn\u2019t exist without human effort. Human beings are part of the system. We forget those humans in the loop at our peril. It\u2019s why I try to add webmention support to anything new I build for the web. Aaron Parecki\u2019s<\/a> excellent webmention.io service<\/a> is one of the best parts of the independent web: the indieweb<\/em>.<\/p>\n

      I\u2019m writing this at a coffee shop a stone\u2019s throw from what was the site of San Diego Technical Books<\/em>. I would go there just to browse and to learn. And yes, buy a book now and again. But technical bookstores are also mostly gone. Things went online.<\/p>\n

      And for a while, the web was pretty good at replacing mailing lists, newsgroups, and even paper books.<\/p>\n

      But gradually, the web has gotten worse. Things seemed to have gotten so spammy and troll-filled and the good parts of the web have gone underground to places like Discord and Patreon and Substack and Facebook. Gated by rules or fees or sign-up required<\/em>.<\/p>\n

      But that means I can\u2019t find a lot of those things on the web. If I can\u2019t search for it, I can\u2019t find it. It\u2019s invisible. And a private site is fine, of course. We all ought to have the right to create private enclaves for us and a few friends. But if my intent is for a site to be useful to the world, I am often thwarted by the search engine gatekeepers. They don\u2019t want you to visit my site as much as they want you to stay on their site as long as possible.<\/p>\n

      I made an effort to make my own site better and more of a \u201cplace\u201d when I added comments in 2010. I used Disqus<\/a>. It worked, and still works, great. People can make suggestions as to what specific thing they would encounter<\/em> when, say, creating a menu, or trying to get SQL to behave. People would leave a \u201cthank you\u201d comment occasionally. Some folks emailed me to comment or thank. Disqus includes moderation tools to allow me to make choices about what can and can\u2019t go into the site, which kept spam out.<\/p>\n

      But I also made the site worse in the 2010s. I added Google Ads. They were not intrusive, just a banner on the side. But they got worse, spawning big takeovers and keeping the reader from seeing the page they came for.<\/p>\n

      And so, I remade The Lab<\/h2>\n

      lab.artlung.com<\/a> has been fully refitted and I\u2019m rather proud of it all. It\u2019s all hand-rolled PHP code underpinning it. I\u2019m using composer<\/code> to allow me to pull in useful libraries to read and write YAML consistently, to compress JavaScript (I did that to make it easy to create bookmarklets) and something to streamline creating an Atom feed. The site has webmentions and unit tests and I use PHP_CodeSniffer to keep the code from being a tangled mess. I have fun features like a random page load when you do (alt-r or option-r). It includes og:image<\/code> capture using the excellent shot-scraper. I also created a command line tool to force myself to do some sort of organization on the many pages. And it\u2019s gotten me to create some new pages too. I don\u2019t have anything about React on the site but that may change!<\/p>\n

      I\u2019m glad for this change. It\u2019s a return to practices that are good parts of the web: Sharing source code (all the code is up on GitHub<\/a>). Sharing with each other. No ads, or at least I promise non-intrusive ads<\/em>.<\/p>\n

      We have let the badness of computers and technology force us to forget why the web became the largest publishing and communications platform humanity ever made. We spend times in apps where algorithms seem to prevent us from doing what we want to do. Sharing what I want to share is complicated and tricky and often forces me to download an app I don\u2019t want. And so we\u2019re frustrated and isolated from things that might be useful or fun or interesting or elucidating.<\/p>\n

      But you and me, we own the web<\/em>. It\u2019s ours.<\/p>\n

      We talked the other day in an IndieWeb Homebrew Website Club meeting about \u201cWWW\u201d and why sites seldom have that at the beginnings of their web urls. For a time, every site had that \"www\"<\/code> at the beginning when publicizing their websites. But then it seemed kind of antiquated to use that. We have domains that scarcely look like domains. I have a page on tilde.club and it still surprises me that\u2019s a legitimate domain name. But it is.<\/p>\n

      I want to bring back a recognition that the web is useful and good. \u201cWorld Wide Web\u201d is not quaint. I think of it as a statement of intent. It\u2019s a three-word manifesto. World. Wide. Web: Information for the whole world, no matter who you are, or where you are, interlinked.<\/em> No registration required. No cookies required. No newsletter to subscribe to. No Discord to join. No monthly fee.<\/p>\n

      And so I offer up the lab<\/a>.<\/p>\n

      It\u2019s so fun to make web pages and share them.<\/p>\n

      Go make a web page and share it.<\/p>","text":"I have made every kind of web page. I\u2019ve worked on every sort of web application. I learned ColdFusion. I learned Perl. I learned PHP. CSS came out at the start of my career.\nActive Server Pages (\u201cASP\u201d) is now referred to as \u201cClassic ASP\u201d which makes it sound related to some middle-aged-man\u2019s drop-top Corvette Stingray. I learned ASP too.\nWhen I was learning, I used my website to play with the web. I called it THE LAB. I want to talk about how it came to be and how it changed with time today.\nIn part I created the site to help me remember little bits of arcana that kept coming up for me as a web developer. I remember looking up my page Preventing Browser Cache several times to see the various different ways the different application platforms represented the HTTP headers. Originally pages like this were here on artlung.com. I put them on my website as part of giving back to the web. It felt good. I had learned so much from mailing lists\u2013sometimes called listservs: Webmonster, Web405, evolt.org, webdesign-L, WWWAC, WebSanDiego, GOODTIMES and others taught me so much. Mailing lists are gone, as are most of their archives.\nI also learned on usenet. The comp.* groups had some great stuff. And for a time Macromedia offered their own newsgroup hierarchy. It used to be you could click on news:\/\/forums.macromedia.com\/macromedia.dreamweaver and fire up your newsreader and get help about Dreamweaver. All of that is now history. Some of that is archived to the web.\nHere in 2024 one can use StackOverflow to ask questions and discuss programming.\nWe can also type a question into Google or Bing or DuckDuckGo. Often what comes up are ads and summations \u201cwritten\u201d\u2013which is to say\u2013laundered through an AI tool. But those written words couldn\u2019t exist without human effort. Human beings are part of the system. We forget those humans in the loop at our peril. It\u2019s why I try to add webmention support to anything new I build for the web. Aaron Parecki\u2019s excellent webmention.io service is one of the best parts of the independent web: the indieweb.\nI\u2019m writing this at a coffee shop a stone\u2019s throw from what was the site of San Diego Technical Books. I would go there just to browse and to learn. And yes, buy a book now and again. But technical bookstores are also mostly gone. Things went online.\nAnd for a while, the web was pretty good at replacing mailing lists, newsgroups, and even paper books.\nBut gradually, the web has gotten worse. Things seemed to have gotten so spammy and troll-filled and the good parts of the web have gone underground to places like Discord and Patreon and Substack and Facebook. Gated by rules or fees or sign-up required.\nBut that means I can\u2019t find a lot of those things on the web. If I can\u2019t search for it, I can\u2019t find it. It\u2019s invisible. And a private site is fine, of course. We all ought to have the right to create private enclaves for us and a few friends. But if my intent is for a site to be useful to the world, I am often thwarted by the search engine gatekeepers. They don\u2019t want you to visit my site as much as they want you to stay on their site as long as possible.\nI made an effort to make my own site better and more of a \u201cplace\u201d when I added comments in 2010. I used Disqus. It worked, and still works, great. People can make suggestions as to what specific thing they would encounter when, say, creating a menu, or trying to get SQL to behave. People would leave a \u201cthank you\u201d comment occasionally. Some folks emailed me to comment or thank. Disqus includes moderation tools to allow me to make choices about what can and can\u2019t go into the site, which kept spam out.\nBut I also made the site worse in the 2010s. I added Google Ads. They were not intrusive, just a banner on the side. But they got worse, spawning big takeovers and keeping the reader from seeing the page they came for.\nAnd so, I remade The Lab\nlab.artlung.com has been fully refitted and I\u2019m rather proud of it all. It\u2019s all hand-rolled PHP code underpinning it. I\u2019m using composer to allow me to pull in useful libraries to read and write YAML consistently, to compress JavaScript (I did that to make it easy to create bookmarklets) and something to streamline creating an Atom feed. The site has webmentions and unit tests and I use PHP_CodeSniffer to keep the code from being a tangled mess. I have fun features like a random page load when you do (alt-r or option-r). It includes og:image capture using the excellent shot-scraper. I also created a command line tool to force myself to do some sort of organization on the many pages. And it\u2019s gotten me to create some new pages too. I don\u2019t have anything about React on the site but that may change!\nI\u2019m glad for this change. It\u2019s a return to practices that are good parts of the web: Sharing source code (all the code is up on GitHub). Sharing with each other. No ads, or at least I promise non-intrusive ads.\nWe have let the badness of computers and technology force us to forget why the web became the largest publishing and communications platform humanity ever made. We spend times in apps where algorithms seem to prevent us from doing what we want to do. Sharing what I want to share is complicated and tricky and often forces me to download an app I don\u2019t want. And so we\u2019re frustrated and isolated from things that might be useful or fun or interesting or elucidating.\nBut you and me, we own the web. It\u2019s ours.\nWe talked the other day in an IndieWeb Homebrew Website Club meeting about \u201cWWW\u201d and why sites seldom have that at the beginnings of their web urls. For a time, every site had that \"www\" at the beginning when publicizing their websites. But then it seemed kind of antiquated to use that. We have domains that scarcely look like domains. I have a page on tilde.club and it still surprises me that\u2019s a legitimate domain name. But it is.\nI want to bring back a recognition that the web is useful and good. \u201cWorld Wide Web\u201d is not quaint. I think of it as a statement of intent. It\u2019s a three-word manifesto. World. Wide. Web: Information for the whole world, no matter who you are, or where you are, interlinked. No registration required. No cookies required. No newsletter to subscribe to. No Discord to join. No monthly fee.\nAnd so I offer up the lab.\nIt\u2019s so fun to make web pages and share them.\nGo make a web page and share it."},"mention-of":"https:\/\/lab.artlung.com\/","wm-property":"mention-of","wm-private":false,"rels":{"canonical":"https:\/\/artlung.com\/blog\/2024\/12\/23\/lab-artlung-com-and-a-return-to-a-world-wide-web\/"}},{"type":"entry","author":{"type":"card","name":"Joe Crawford","photo":"https:\/\/webmention.io\/avatar\/cdn.artlung.com\/a0b5bad7e1082e08dc5e72e7f4760d40596782e04895da8b740023e7c1904d15.jpg","url":""},"url":"https:\/\/artlung.com\/blog\/2001\/04\/14\/3206818\/","published":"2001-04-14T20:15:00","wm-received":"2024-12-02T06:10:48Z","wm-id":1864035,"wm-source":"https:\/\/artlung.com\/blog\/2001\/04\/14\/3206818\/","wm-target":"https:\/\/lab.artlung.com\/","wm-protocol":"webmention","content":{"html":"

      The PHP AutoMagic Gallery Listing<\/a> is the latest item to be added to The Lab<\/a>. Never heard of PHP? Shame on you!<\/a><\/p>","text":"The PHP AutoMagic Gallery Listing is the latest item to be added to The Lab. Never heard of PHP? Shame on you!"},"mention-of":"https:\/\/lab.artlung.com\/","wm-property":"mention-of","wm-private":false,"rels":{"canonical":"https:\/\/artlung.com\/blog\/2001\/04\/14\/3206818\/"}},{"type":"entry","author":{"type":"card","name":"Joe Crawford","photo":"https:\/\/webmention.io\/avatar\/cdn.artlung.com\/a0b5bad7e1082e08dc5e72e7f4760d40596782e04895da8b740023e7c1904d15.jpg","url":""},"url":"https:\/\/artlung.com\/blog\/2001\/04\/02\/3042057\/","published":"2001-04-02T23:12:00","wm-received":"2024-12-02T06:10:47Z","wm-id":1864034,"wm-source":"https:\/\/artlung.com\/blog\/2001\/04\/02\/3042057\/","wm-target":"https:\/\/lab.artlung.com\/","wm-protocol":"webmention","content":{"html":"

      I have lots of JavaScript experience.<\/p>\n

      Amazingly, this makes me valuable in some ways. I had no idea that people would tip for it. I got my first Tip the other day through the lab. Is my Lab<\/a> now a commercial site? Or am I just a busker \u2013 some modern day mendicant poet of JavaScript?<\/p>\n

      Hmmm.<\/p>","text":"I have lots of JavaScript experience.\n Amazingly, this makes me valuable in some ways. I had no idea that people would tip for it. I got my first Tip the other day through the lab. Is my Lab now a commercial site? Or am I just a busker \u2013 some modern day mendicant poet of JavaScript?\n Hmmm."},"mention-of":"https:\/\/lab.artlung.com\/","wm-property":"mention-of","wm-private":false,"rels":{"canonical":"https:\/\/artlung.com\/blog\/2001\/04\/02\/3042057\/"}},{"type":"entry","author":{"type":"card","name":"Joe Crawford","photo":"https:\/\/webmention.io\/avatar\/cdn.artlung.com\/a0b5bad7e1082e08dc5e72e7f4760d40596782e04895da8b740023e7c1904d15.jpg","url":""},"url":"https:\/\/artlung.com\/blog\/2001\/05\/16\/3668802\/","published":"2001-05-16T22:58:00","wm-received":"2024-12-02T06:10:44Z","wm-id":1864033,"wm-source":"https:\/\/artlung.com\/blog\/2001\/05\/16\/3668802\/","wm-target":"https:\/\/lab.artlung.com\/","wm-protocol":"webmention","content":{"html":"

      New stuff for the lab! <\/i>
      Multiple, Hierarchical SelectBoxes<\/a> and Reverse a string, but only the digits<\/a>.<\/p>\n

      Always satisfying to add to the lab<\/a>. Based on the hit logs, it looks like people are using it. This makes me happy.<\/p>","text":"New stuff for the lab! \nMultiple, Hierarchical SelectBoxes and Reverse a string, but only the digits.\n Always satisfying to add to the lab. Based on the hit logs, it looks like people are using it. This makes me happy."},"mention-of":"https:\/\/lab.artlung.com\/","wm-property":"mention-of","wm-private":false,"rels":{"canonical":"https:\/\/artlung.com\/blog\/2001\/05\/16\/3668802\/"}},{"type":"entry","author":{"type":"card","name":"Joe Crawford","photo":"https:\/\/webmention.io\/avatar\/cdn.artlung.com\/a0b5bad7e1082e08dc5e72e7f4760d40596782e04895da8b740023e7c1904d15.jpg","url":""},"url":"https:\/\/artlung.com\/blog\/2001\/05\/22\/3756864\/","published":"2001-05-22T22:00:00","wm-received":"2024-12-02T06:10:39Z","wm-id":1864028,"wm-source":"https:\/\/artlung.com\/blog\/2001\/05\/22\/3756864\/","wm-target":"https:\/\/lab.artlung.com\/","wm-protocol":"webmention","content":{"html":"

      New lab<\/a> item!<\/b>
      How can I change every link on a page to something new?<\/a><\/p>","text":"New lab item!\nHow can I change every link on a page to something new?"},"mention-of":"https:\/\/lab.artlung.com\/","wm-property":"mention-of","wm-private":false,"rels":{"canonical":"https:\/\/artlung.com\/blog\/2001\/05\/22\/3756864\/"}},{"type":"entry","author":{"type":"card","name":"Joe Crawford","photo":"https:\/\/webmention.io\/avatar\/cdn.artlung.com\/a0b5bad7e1082e08dc5e72e7f4760d40596782e04895da8b740023e7c1904d15.jpg","url":""},"url":"https:\/\/artlung.com\/blog\/2001\/06\/21\/4177099\/","published":"2001-06-21T11:34:00","wm-received":"2024-12-02T06:10:37Z","wm-id":1864026,"wm-source":"https:\/\/artlung.com\/blog\/2001\/06\/21\/4177099\/","wm-target":"https:\/\/lab.artlung.com\/","wm-protocol":"webmention","content":{"html":"

      I\u2019m mortified. Broken stuff in the lab<\/a>. The horror! The horror!<\/i><\/p>\n

      The multiple select<\/a> tool was broken in essentially every browser. Ugh. Luckily nobody donated anything on the strength of that one.<\/p>\n

      I have now fixed it.<\/p>","text":"I\u2019m mortified. Broken stuff in the lab. The horror! The horror!\n The multiple select tool was broken in essentially every browser. Ugh. Luckily nobody donated anything on the strength of that one.\n I have now fixed it."},"mention-of":"https:\/\/lab.artlung.com\/","wm-property":"mention-of","wm-private":false,"rels":{"canonical":"https:\/\/artlung.com\/blog\/2001\/06\/21\/4177099\/"}},{"type":"entry","author":{"type":"card","name":"Joe Crawford","photo":"https:\/\/webmention.io\/avatar\/cdn.artlung.com\/a0b5bad7e1082e08dc5e72e7f4760d40596782e04895da8b740023e7c1904d15.jpg","url":""},"url":"https:\/\/artlung.com\/blog\/2001\/07\/11\/4494715\/","published":"2001-07-11T19:44:00","wm-received":"2024-12-02T06:10:33Z","wm-id":1864024,"wm-source":"https:\/\/artlung.com\/blog\/2001\/07\/11\/4494715\/","wm-target":"https:\/\/lab.artlung.com\/","wm-protocol":"webmention","content":{"html":"

      New item for The Lab<\/a>:
      Some bookmarklets which I can never remember where to go get.
      So here they are<\/a>.<\/p>","text":"New item for The Lab:\nSome bookmarklets which I can never remember where to go get. So here they are."},"mention-of":"https:\/\/lab.artlung.com\/","wm-property":"mention-of","wm-private":false,"rels":{"canonical":"https:\/\/artlung.com\/blog\/2001\/07\/11\/4494715\/"}},{"type":"entry","author":{"type":"card","name":"Joe Crawford","photo":"https:\/\/webmention.io\/avatar\/cdn.artlung.com\/a0b5bad7e1082e08dc5e72e7f4760d40596782e04895da8b740023e7c1904d15.jpg","url":""},"url":"https:\/\/artlung.com\/blog\/2001\/07\/20\/4638580\/","published":"2001-07-20T07:43:00","wm-received":"2024-12-02T06:10:30Z","wm-id":1864022,"wm-source":"https:\/\/artlung.com\/blog\/2001\/07\/20\/4638580\/","wm-target":"https:\/\/lab.artlung.com\/","wm-protocol":"webmention","content":{"html":"

      Lab<\/a> time again! This time I\u2019m addressing the question of the dotted lines in Windows MSIE. It\u2019s titled: Why not to use blur() to make dotted lines go away in MSIE for Windows<\/a>. The cousin of this entry is outline: none CSS property<\/a>.<\/p>","text":"Lab time again! This time I\u2019m addressing the question of the dotted lines in Windows MSIE. It\u2019s titled: Why not to use blur() to make dotted lines go away in MSIE for Windows. The cousin of this entry is outline: none CSS property."},"mention-of":"https:\/\/lab.artlung.com\/","wm-property":"mention-of","wm-private":false,"rels":{"canonical":"https:\/\/artlung.com\/blog\/2001\/07\/20\/4638580\/"}},{"type":"entry","author":{"type":"card","name":"Joe Crawford","photo":"https:\/\/webmention.io\/avatar\/cdn.artlung.com\/a0b5bad7e1082e08dc5e72e7f4760d40596782e04895da8b740023e7c1904d15.jpg","url":""},"url":"https:\/\/artlung.com\/blog\/2001\/07\/25\/4722767\/","published":"2001-07-25T08:01:00","wm-received":"2024-12-02T06:10:25Z","wm-id":1864020,"wm-source":"https:\/\/artlung.com\/blog\/2001\/07\/25\/4722767\/","wm-target":"https:\/\/lab.artlung.com\/","wm-protocol":"webmention","content":{"html":"

      Yep, Lab<\/a> time. This one\u2019s a simple little idea. Submit a form by selecting a dropdown item<\/a> with client-side scripting (read: JavaScript).<\/p>","text":"Yep, Lab time. This one\u2019s a simple little idea. Submit a form by selecting a dropdown item with client-side scripting (read: JavaScript)."},"mention-of":"https:\/\/lab.artlung.com\/","wm-property":"mention-of","wm-private":false,"rels":{"canonical":"https:\/\/artlung.com\/blog\/2001\/07\/25\/4722767\/"}},{"type":"entry","author":{"type":"card","name":"Joe Crawford","photo":"https:\/\/webmention.io\/avatar\/cdn.artlung.com\/a0b5bad7e1082e08dc5e72e7f4760d40596782e04895da8b740023e7c1904d15.jpg","url":""},"url":"https:\/\/artlung.com\/blog\/2001\/08\/06\/4941364\/","published":"2001-08-06T12:25:00","wm-received":"2024-12-02T06:10:21Z","wm-id":1864018,"wm-source":"https:\/\/artlung.com\/blog\/2001\/08\/06\/4941364\/","wm-target":"https:\/\/lab.artlung.com\/","wm-protocol":"webmention","content":{"html":"

      Lab<\/a> time! Why the form action mailto: stinks<\/a>. Includes screengrabs.<\/p>","text":"Lab time! Why the form action mailto: stinks. Includes screengrabs."},"mention-of":"https:\/\/lab.artlung.com\/","wm-property":"mention-of","wm-private":false,"rels":{"canonical":"https:\/\/artlung.com\/blog\/2001\/08\/06\/4941364\/"}},{"type":"entry","author":{"type":"card","name":"Joe Crawford","photo":"https:\/\/webmention.io\/avatar\/cdn.artlung.com\/a0b5bad7e1082e08dc5e72e7f4760d40596782e04895da8b740023e7c1904d15.jpg","url":""},"url":"https:\/\/artlung.com\/blog\/2001\/08\/20\/5200687\/","published":"2001-08-20T17:02:00","wm-received":"2024-12-02T06:09:37Z","wm-id":1864017,"wm-source":"https:\/\/artlung.com\/blog\/2001\/08\/20\/5200687\/","wm-target":"https:\/\/lab.artlung.com\/","wm-protocol":"webmention","content":{"html":"

      I put this in the lab<\/a> because I don\u2019t know where else to put it \u2014 HTML 2.0 \u2013 An exploration!<\/a>. The idea here is an exercise in web authoring, 1996-style. Just some pointers to the original specs, and brief ruminations on how it\u2019s a little different.<\/p>","text":"I put this in the lab because I don\u2019t know where else to put it \u2014 HTML 2.0 \u2013 An exploration!. The idea here is an exercise in web authoring, 1996-style. Just some pointers to the original specs, and brief ruminations on how it\u2019s a little different."},"mention-of":"https:\/\/lab.artlung.com\/","wm-property":"mention-of","wm-private":false,"rels":{"canonical":"https:\/\/artlung.com\/blog\/2001\/08\/20\/5200687\/"}},{"type":"entry","author":{"type":"card","name":"Joe Crawford","photo":"https:\/\/webmention.io\/avatar\/cdn.artlung.com\/a0b5bad7e1082e08dc5e72e7f4760d40596782e04895da8b740023e7c1904d15.jpg","url":""},"url":"https:\/\/artlung.com\/blog\/2001\/09\/03\/5469844\/","published":"2001-09-03T22:51:00","wm-received":"2024-12-02T06:09:35Z","wm-id":1864016,"wm-source":"https:\/\/artlung.com\/blog\/2001\/09\/03\/5469844\/","wm-target":"https:\/\/lab.artlung.com\/","wm-protocol":"webmention","content":{"html":"

      New Lab<\/a> item. How to make .php files masquerade as .php3<\/a>. It\u2019s a bit of magic which requires the very cool mod_rewrite for apache. Good mod_rewrite tutorials here<\/a> and here<\/a>.<\/p>","text":"New Lab item. How to make .php files masquerade as .php3. It\u2019s a bit of magic which requires the very cool mod_rewrite for apache. Good mod_rewrite tutorials here and here."},"mention-of":"https:\/\/lab.artlung.com\/","wm-property":"mention-of","wm-private":false,"rels":{"canonical":"https:\/\/artlung.com\/blog\/2001\/09\/03\/5469844\/"}},{"type":"entry","author":{"type":"card","name":"Joe Crawford","photo":"https:\/\/webmention.io\/avatar\/cdn.artlung.com\/a0b5bad7e1082e08dc5e72e7f4760d40596782e04895da8b740023e7c1904d15.jpg","url":""},"url":"https:\/\/artlung.com\/blog\/2001\/11\/07\/6934971\/","published":"2001-11-07T00:22:00","wm-received":"2024-12-02T06:09:34Z","wm-id":1864015,"wm-source":"https:\/\/artlung.com\/blog\/2001\/11\/07\/6934971\/","wm-target":"https:\/\/lab.artlung.com\/","wm-protocol":"webmention","content":{"html":"

      Still fooling with OSX. Keeping me busy. Hopefully I\u2019ll have some new lab<\/a> entries as a result of all this playing.<\/p>","text":"Still fooling with OSX. Keeping me busy. Hopefully I\u2019ll have some new lab entries as a result of all this playing."},"mention-of":"https:\/\/lab.artlung.com\/","wm-property":"mention-of","wm-private":false,"rels":{"canonical":"https:\/\/artlung.com\/blog\/2001\/11\/07\/6934971\/"}},{"type":"entry","author":{"type":"card","name":"Joe Crawford","photo":"https:\/\/webmention.io\/avatar\/cdn.artlung.com\/a0b5bad7e1082e08dc5e72e7f4760d40596782e04895da8b740023e7c1904d15.jpg","url":""},"url":"https:\/\/artlung.com\/blog\/2001\/12\/16\/7978233\/","published":"2001-12-16T20:00:00","wm-received":"2024-12-02T06:09:26Z","wm-id":1864011,"wm-source":"https:\/\/artlung.com\/blog\/2001\/12\/16\/7978233\/","wm-target":"https:\/\/lab.artlung.com\/","wm-protocol":"webmention","content":{"html":"

      New Lab Items:<\/a><\/b>
      How to Encode URLs; An ASCII to URLEncoded JavaScript<\/a> and Checkbox Validator<\/a>.<\/p>","text":"New Lab Items:\nHow to Encode URLs; An ASCII to URLEncoded JavaScript and Checkbox Validator."},"mention-of":"https:\/\/lab.artlung.com\/","wm-property":"mention-of","wm-private":false,"rels":{"canonical":"https:\/\/artlung.com\/blog\/2001\/12\/16\/7978233\/"}},{"type":"entry","author":{"type":"card","name":"Joe Crawford","photo":"https:\/\/webmention.io\/avatar\/cdn.artlung.com\/a0b5bad7e1082e08dc5e72e7f4760d40596782e04895da8b740023e7c1904d15.jpg","url":""},"url":"https:\/\/artlung.com\/blog\/2001\/12\/17\/8011644\/","published":"2001-12-17T23:26:00","wm-received":"2024-12-02T06:09:22Z","wm-id":1864008,"wm-source":"https:\/\/artlung.com\/blog\/2001\/12\/17\/8011644\/","wm-target":"https:\/\/lab.artlung.com\/","wm-protocol":"webmention","content":{"html":"

      more new lab<\/a> items: onunload + window.open = evil<\/a> and Preventing Browser Cache<\/a><\/p>","text":"more new lab items: onunload + window.open = evil and Preventing Browser Cache"},"mention-of":"https:\/\/lab.artlung.com\/","wm-property":"mention-of","wm-private":false,"rels":{"canonical":"https:\/\/artlung.com\/blog\/2001\/12\/17\/8011644\/"}},{"type":"entry","author":{"type":"card","name":"Joe Crawford","photo":"https:\/\/webmention.io\/avatar\/cdn.artlung.com\/a0b5bad7e1082e08dc5e72e7f4760d40596782e04895da8b740023e7c1904d15.jpg","url":""},"url":"https:\/\/artlung.com\/blog\/2001\/12\/27\/8223931\/","published":"2001-12-27T20:45:00","wm-received":"2024-12-02T06:09:20Z","wm-id":1864006,"wm-source":"https:\/\/artlung.com\/blog\/2001\/12\/27\/8223931\/","wm-target":"https:\/\/lab.artlung.com\/","wm-protocol":"webmention","content":{"html":"

      New lab<\/a> item: Batch File Rename By File Extension in Unix<\/a>. (Not really new, but moved from the smorgasborg<\/a>)<\/p>","text":"New lab item: Batch File Rename By File Extension in Unix. (Not really new, but moved from the smorgasborg)"},"mention-of":"https:\/\/lab.artlung.com\/","wm-property":"mention-of","wm-private":false,"rels":{"canonical":"https:\/\/artlung.com\/blog\/2001\/12\/27\/8223931\/"}},{"type":"entry","author":{"type":"card","name":"Joe Crawford","photo":"https:\/\/webmention.io\/avatar\/cdn.artlung.com\/a0b5bad7e1082e08dc5e72e7f4760d40596782e04895da8b740023e7c1904d15.jpg","url":""},"url":"https:\/\/artlung.com\/blog\/2002\/01\/02\/8341034\/","published":"2002-01-02T02:43:00","wm-received":"2024-12-02T06:09:18Z","wm-id":1864005,"wm-source":"https:\/\/artlung.com\/blog\/2002\/01\/02\/8341034\/","wm-target":"https:\/\/lab.artlung.com\/","wm-protocol":"webmention","content":{"html":"

      New Lab<\/a> Item:<\/b> Outbound Link Confirmation<\/a><\/p>","text":"New Lab Item: Outbound Link Confirmation"},"mention-of":"https:\/\/lab.artlung.com\/","wm-property":"mention-of","wm-private":false,"rels":{"canonical":"https:\/\/artlung.com\/blog\/2002\/01\/02\/8341034\/"}},{"type":"entry","author":{"type":"card","name":"Joe Crawford","photo":"https:\/\/webmention.io\/avatar\/cdn.artlung.com\/a0b5bad7e1082e08dc5e72e7f4760d40596782e04895da8b740023e7c1904d15.jpg","url":""},"url":"https:\/\/artlung.com\/blog\/2002\/02\/27\/10213406\/","published":"2002-02-27T20:32:00","wm-received":"2024-12-02T06:09:14Z","wm-id":1864003,"wm-source":"https:\/\/artlung.com\/blog\/2002\/02\/27\/10213406\/","wm-target":"https:\/\/lab.artlung.com\/","wm-protocol":"webmention","name":"\u201cA sufficiently advanced Google search is indistinguishable from magic.\u201d","content":{"html":"

      If you have any interest in weblogs and search algorithms, you must read Google Loves Blogs: How Weblogs Influence A Billion Google Searches A Week<\/a>. I\u2019ve been saying that without Google<\/a>, I am not as smart as I am with it. Very often I will not so much know something as know where I have the answer stored. An example, for me to get lorem ipsum text for a project, from wherever I\u2019m sitting at work, all I need to do it do a search for artlung greek<\/a>. Blammo, there\u2019s my<\/b> lorem ipsum for my project. Any number of items in my lab<\/a> are just like that. In so doing I appear nearly clairvoyant to my co-workers. But like any good programmer, I am merely lazy. I have no need to memorize lorem ipsum. I have no need to keep a file with lorem ipsum on my desktop at work. But with a string of 13 letters and a click I get precisely<\/i> what I need. Google is my command line to the web. And I think I am not alone.<\/p>","text":"If you have any interest in weblogs and search algorithms, you must read Google Loves Blogs: How Weblogs Influence A Billion Google Searches A Week. I\u2019ve been saying that without Google, I am not as smart as I am with it. Very often I will not so much know something as know where I have the answer stored. An example, for me to get lorem ipsum text for a project, from wherever I\u2019m sitting at work, all I need to do it do a search for artlung greek. Blammo, there\u2019s my lorem ipsum for my project. Any number of items in my lab are just like that. In so doing I appear nearly clairvoyant to my co-workers. But like any good programmer, I am merely lazy. I have no need to memorize lorem ipsum. I have no need to keep a file with lorem ipsum on my desktop at work. But with a string of 13 letters and a click I get precisely what I need. Google is my command line to the web. And I think I am not alone."},"mention-of":"https:\/\/lab.artlung.com\/","wm-property":"mention-of","wm-private":false,"rels":{"canonical":"https:\/\/artlung.com\/blog\/2002\/02\/27\/10213406\/"}},{"type":"entry","author":{"type":"card","name":"Joe Crawford","photo":"https:\/\/webmention.io\/avatar\/cdn.artlung.com\/a0b5bad7e1082e08dc5e72e7f4760d40596782e04895da8b740023e7c1904d15.jpg","url":""},"url":"https:\/\/artlung.com\/blog\/2002\/03\/06\/10475841\/","published":"2002-03-06T18:43:00","wm-received":"2024-12-02T06:09:12Z","wm-id":1864001,"wm-source":"https:\/\/artlung.com\/blog\/2002\/03\/06\/10475841\/","wm-target":"https:\/\/lab.artlung.com\/","wm-protocol":"webmention","name":"New Silly Lab Item.","content":{"html":"

      In the lab<\/a>:
      camelCase <-> selector-case in JavaScript w\/o Regular Expressions<\/a>. Why? Because sometimes you gotta make stuff for no reason.<\/p>","text":"In the lab:\ncamelCase <-> selector-case in JavaScript w\/o Regular Expressions. Why? Because sometimes you gotta make stuff for no reason."},"mention-of":"https:\/\/lab.artlung.com\/","wm-property":"mention-of","wm-private":false,"rels":{"canonical":"https:\/\/artlung.com\/blog\/2002\/03\/06\/10475841\/"}}] \ No newline at end of file +[{"type":"entry","author":{"type":"card","name":"joe jenett","photo":"https:\/\/webmention.io\/avatar\/secure.gravatar.com\/be3469587ad065ec1ec48004220592a16ea2a86cfc5b7deeaa680ca2895847ab.png","url":"https:\/\/iwebthings.joejenett.com\/"},"url":"https:\/\/iwebthings.joejenett.com\/world-wide-web\/","published":null,"wm-received":"2024-12-26T15:15:56Z","wm-id":1869808,"wm-source":"https:\/\/iwebthings.joejenett.com\/world-wide-web\/","wm-target":"https:\/\/lab.artlung.com\/","wm-protocol":"webmention","name":"\u201cWorld. Wide. Web.\u201d","content":{"html":"

      lab.artlung.com and a return to a World Wide Web<\/a>
      \u21aa
      ArtLung Lab<\/a><\/p>\n\n

      Web experiments, explainers, code snippets by Joe Crawford<\/a> since 1996. Some current. Some out of date. You can follow the site feed<\/a> and the code in the GitHub repository<\/a>.<\/p><\/blockquote>\n

      ???? I like!\n<\/a><\/p>","text":"lab.artlung.com and a return to a World Wide Web\n\u21aaArtLung Lab\n\nWeb experiments, explainers, code snippets by Joe Crawford since 1996. Some current. Some out of date. You can follow the site feed and the code in the GitHub repository.\n???? I like!"},"mention-of":"https:\/\/lab.artlung.com\/","wm-property":"mention-of","wm-private":false},{"type":"entry","author":{"type":"card","name":"Joe Crawford","photo":"https:\/\/webmention.io\/avatar\/cdn.artlung.com\/a0b5bad7e1082e08dc5e72e7f4760d40596782e04895da8b740023e7c1904d15.jpg","url":""},"url":"https:\/\/artlung.com\/blog\/2024\/12\/23\/lab-artlung-com-and-a-return-to-a-world-wide-web\/","published":"2024-12-23T11:25:29","wm-received":"2024-12-23T19:25:50Z","wm-id":1869372,"wm-source":"https:\/\/artlung.com\/blog\/2024\/12\/23\/lab-artlung-com-and-a-return-to-a-world-wide-web\/","wm-target":"https:\/\/lab.artlung.com\/","wm-protocol":"webmention","name":"lab.artlung.com and a return to a World Wide Web","syndication":["https:\/\/news.indieweb.org\/en"],"content":{"html":"

      I have made every kind of web page. I\u2019ve worked on every sort of web application. I learned ColdFusion. I learned Perl. I learned PHP. CSS came out<\/em> at the start of my career.<\/p>\n

      Active Server Pages (\u201cASP\u201d) is now referred to as \u201cClassic ASP\u201d<\/em> which makes it sound related to some middle-aged-man\u2019s drop-top Corvette Stingray. I learned ASP too.<\/p>\n

      When I was learning, I used my website to play with the web. I called it THE LAB. I want to talk about how it came to be and how it changed with time today.<\/p>\n

      In part I created the site to help me remember little bits of arcana that kept coming up for me as a web developer. I remember looking up my page Preventing Browser Cache<\/a> several times to see the various different ways the different application platforms represented the HTTP headers. Originally pages like this were here on artlung.com. I put them on my website as part of giving back to the web. It felt good. I had learned so much from mailing lists\u2013sometimes called listservs: <\/em>Webmonster, Web405, evolt.org, webdesign-L, WWWAC, WebSanDiego, GOODTIMES and others taught me so much. Mailing lists are gone, as are most of their archives.<\/p>\n

      I also learned on usenet. The comp.* groups had some great stuff. And for a time Macromedia offered their own newsgroup hierarchy. It used to be you could click on news:\/\/forums.macromedia.com\/macromedia.dreamweaver<\/a> and fire up your newsreader and get help about Dreamweaver. All of that is now history. Some of that is archived to the web.<\/p>\n

      Here in 2024 one can use StackOverflow to ask questions and discuss programming.<\/p>\n

      We can also type a question into Google or Bing or DuckDuckGo. Often what comes up are ads and summations \u201cwritten\u201d\u2013which is to say\u2013laundered<\/em> through an AI tool. But those written words couldn\u2019t exist without human effort. Human beings are part of the system. We forget those humans in the loop at our peril. It\u2019s why I try to add webmention support to anything new I build for the web. Aaron Parecki\u2019s<\/a> excellent webmention.io service<\/a> is one of the best parts of the independent web: the indieweb<\/em>.<\/p>\n

      I\u2019m writing this at a coffee shop a stone\u2019s throw from what was the site of San Diego Technical Books<\/em>. I would go there just to browse and to learn. And yes, buy a book now and again. But technical bookstores are also mostly gone. Things went online.<\/p>\n

      And for a while, the web was pretty good at replacing mailing lists, newsgroups, and even paper books.<\/p>\n

      But gradually, the web has gotten worse. Things seemed to have gotten so spammy and troll-filled and the good parts of the web have gone underground to places like Discord and Patreon and Substack and Facebook. Gated by rules or fees or sign-up required<\/em>.<\/p>\n

      But that means I can\u2019t find a lot of those things on the web. If I can\u2019t search for it, I can\u2019t find it. It\u2019s invisible. And a private site is fine, of course. We all ought to have the right to create private enclaves for us and a few friends. But if my intent is for a site to be useful to the world, I am often thwarted by the search engine gatekeepers. They don\u2019t want you to visit my site as much as they want you to stay on their site as long as possible.<\/p>\n

      I made an effort to make my own site better and more of a \u201cplace\u201d when I added comments in 2010. I used Disqus<\/a>. It worked, and still works, great. People can make suggestions as to what specific thing they would encounter<\/em> when, say, creating a menu, or trying to get SQL to behave. People would leave a \u201cthank you\u201d comment occasionally. Some folks emailed me to comment or thank. Disqus includes moderation tools to allow me to make choices about what can and can\u2019t go into the site, which kept spam out.<\/p>\n

      But I also made the site worse in the 2010s. I added Google Ads. They were not intrusive, just a banner on the side. But they got worse, spawning big takeovers and keeping the reader from seeing the page they came for.<\/p>\n

      And so, I remade The Lab<\/h2>\n

      lab.artlung.com<\/a> has been fully refitted and I\u2019m rather proud of it all. It\u2019s all hand-rolled PHP code underpinning it. I\u2019m using composer<\/code> to allow me to pull in useful libraries to read and write YAML consistently, to compress JavaScript (I did that to make it easy to create bookmarklets) and something to streamline creating an Atom feed. The site has webmentions and unit tests and I use PHP_CodeSniffer to keep the code from being a tangled mess. I have fun features like a random page load when you do (alt\u2013r or option\u2013r). It includes og:image<\/code> capture using the excellent shot-scraper. I also created a command line tool to force myself to do some sort of organization on the many pages. And it\u2019s gotten me to create some new pages too. I don\u2019t have anything about React on the site but that may change!<\/p>\n

      I\u2019m glad for this change. It\u2019s a return to practices that are good parts of the web: Sharing source code (all the code is up on GitHub<\/a>). Sharing with each other. No ads, or at least I promise non-intrusive ads<\/em>.<\/p>\n

      We have let the badness of computers and technology force us to forget why the web became the largest publishing and communications platform humanity ever made. We spend times in apps where algorithms seem to prevent us from doing what we want to do. Sharing what I want to share is complicated and tricky and often forces me to download an app I don\u2019t want. And so we\u2019re frustrated and isolated from things that might be useful or fun or interesting or elucidating.<\/p>\n

      But you and me, we own the web<\/em>. It\u2019s ours.<\/p>\n

      We talked the other day in an IndieWeb Homebrew Website Club meeting about \u201cWWW\u201d and why sites seldom have that at the beginnings of their web urls. For a time, every site had that \"www\"<\/code> at the beginning when publicizing their websites. But then it seemed kind of antiquated to use that. We have domains that scarcely look like domains. I have a page on tilde.club and it still surprises me that\u2019s a legitimate domain name. But it is.<\/p>\n

      I want to bring back a recognition that the web is useful and good. \u201cWorld Wide Web\u201d is not quaint. I think of it as a statement of intent. It\u2019s a three-word manifesto. World. Wide. Web: Information for the whole world, no matter who you are, or where you are, interlinked.<\/em> No registration required. No cookies required. No newsletter to subscribe to. No Discord to join. No monthly fee.<\/p>\n

      And so I offer up the lab<\/a>.<\/p>\n

      It\u2019s so fun to make web pages and share them.<\/p>\n

      Go make a web page and share it.<\/p>","text":"I have made every kind of web page. I\u2019ve worked on every sort of web application. I learned ColdFusion. I learned Perl. I learned PHP. CSS came out at the start of my career.\nActive Server Pages (\u201cASP\u201d) is now referred to as \u201cClassic ASP\u201d which makes it sound related to some middle-aged-man\u2019s drop-top Corvette Stingray. I learned ASP too.\nWhen I was learning, I used my website to play with the web. I called it THE LAB. I want to talk about how it came to be and how it changed with time today.\nIn part I created the site to help me remember little bits of arcana that kept coming up for me as a web developer. I remember looking up my page Preventing Browser Cache several times to see the various different ways the different application platforms represented the HTTP headers. Originally pages like this were here on artlung.com. I put them on my website as part of giving back to the web. It felt good. I had learned so much from mailing lists\u2013sometimes called listservs: Webmonster, Web405, evolt.org, webdesign-L, WWWAC, WebSanDiego, GOODTIMES and others taught me so much. Mailing lists are gone, as are most of their archives.\nI also learned on usenet. The comp.* groups had some great stuff. And for a time Macromedia offered their own newsgroup hierarchy. It used to be you could click on news:\/\/forums.macromedia.com\/macromedia.dreamweaver and fire up your newsreader and get help about Dreamweaver. All of that is now history. Some of that is archived to the web.\nHere in 2024 one can use StackOverflow to ask questions and discuss programming.\nWe can also type a question into Google or Bing or DuckDuckGo. Often what comes up are ads and summations \u201cwritten\u201d\u2013which is to say\u2013laundered through an AI tool. But those written words couldn\u2019t exist without human effort. Human beings are part of the system. We forget those humans in the loop at our peril. It\u2019s why I try to add webmention support to anything new I build for the web. Aaron Parecki\u2019s excellent webmention.io service is one of the best parts of the independent web: the indieweb.\nI\u2019m writing this at a coffee shop a stone\u2019s throw from what was the site of San Diego Technical Books. I would go there just to browse and to learn. And yes, buy a book now and again. But technical bookstores are also mostly gone. Things went online.\nAnd for a while, the web was pretty good at replacing mailing lists, newsgroups, and even paper books.\nBut gradually, the web has gotten worse. Things seemed to have gotten so spammy and troll-filled and the good parts of the web have gone underground to places like Discord and Patreon and Substack and Facebook. Gated by rules or fees or sign-up required.\nBut that means I can\u2019t find a lot of those things on the web. If I can\u2019t search for it, I can\u2019t find it. It\u2019s invisible. And a private site is fine, of course. We all ought to have the right to create private enclaves for us and a few friends. But if my intent is for a site to be useful to the world, I am often thwarted by the search engine gatekeepers. They don\u2019t want you to visit my site as much as they want you to stay on their site as long as possible.\nI made an effort to make my own site better and more of a \u201cplace\u201d when I added comments in 2010. I used Disqus. It worked, and still works, great. People can make suggestions as to what specific thing they would encounter when, say, creating a menu, or trying to get SQL to behave. People would leave a \u201cthank you\u201d comment occasionally. Some folks emailed me to comment or thank. Disqus includes moderation tools to allow me to make choices about what can and can\u2019t go into the site, which kept spam out.\nBut I also made the site worse in the 2010s. I added Google Ads. They were not intrusive, just a banner on the side. But they got worse, spawning big takeovers and keeping the reader from seeing the page they came for.\nAnd so, I remade The Lab\nlab.artlung.com has been fully refitted and I\u2019m rather proud of it all. It\u2019s all hand-rolled PHP code underpinning it. I\u2019m using composer to allow me to pull in useful libraries to read and write YAML consistently, to compress JavaScript (I did that to make it easy to create bookmarklets) and something to streamline creating an Atom feed. The site has webmentions and unit tests and I use PHP_CodeSniffer to keep the code from being a tangled mess. I have fun features like a random page load when you do (alt\u2013r or option\u2013r). It includes og:image capture using the excellent shot-scraper. I also created a command line tool to force myself to do some sort of organization on the many pages. And it\u2019s gotten me to create some new pages too. I don\u2019t have anything about React on the site but that may change!\nI\u2019m glad for this change. It\u2019s a return to practices that are good parts of the web: Sharing source code (all the code is up on GitHub). Sharing with each other. No ads, or at least I promise non-intrusive ads.\nWe have let the badness of computers and technology force us to forget why the web became the largest publishing and communications platform humanity ever made. We spend times in apps where algorithms seem to prevent us from doing what we want to do. Sharing what I want to share is complicated and tricky and often forces me to download an app I don\u2019t want. And so we\u2019re frustrated and isolated from things that might be useful or fun or interesting or elucidating.\nBut you and me, we own the web. It\u2019s ours.\nWe talked the other day in an IndieWeb Homebrew Website Club meeting about \u201cWWW\u201d and why sites seldom have that at the beginnings of their web urls. For a time, every site had that \"www\" at the beginning when publicizing their websites. But then it seemed kind of antiquated to use that. We have domains that scarcely look like domains. I have a page on tilde.club and it still surprises me that\u2019s a legitimate domain name. But it is.\nI want to bring back a recognition that the web is useful and good. \u201cWorld Wide Web\u201d is not quaint. I think of it as a statement of intent. It\u2019s a three-word manifesto. World. Wide. Web: Information for the whole world, no matter who you are, or where you are, interlinked. No registration required. No cookies required. No newsletter to subscribe to. No Discord to join. No monthly fee.\nAnd so I offer up the lab.\nIt\u2019s so fun to make web pages and share them.\nGo make a web page and share it."},"mention-of":"https:\/\/lab.artlung.com\/","wm-property":"mention-of","wm-private":false,"rels":{"canonical":"https:\/\/artlung.com\/blog\/2024\/12\/23\/lab-artlung-com-and-a-return-to-a-world-wide-web\/"}},{"type":"entry","author":{"type":"card","name":"Joe Crawford","photo":"https:\/\/webmention.io\/avatar\/cdn.artlung.com\/a0b5bad7e1082e08dc5e72e7f4760d40596782e04895da8b740023e7c1904d15.jpg","url":""},"url":"https:\/\/artlung.com\/blog\/2001\/04\/14\/3206818\/","published":"2001-04-14T20:15:00","wm-received":"2024-12-02T06:10:48Z","wm-id":1864035,"wm-source":"https:\/\/artlung.com\/blog\/2001\/04\/14\/3206818\/","wm-target":"https:\/\/lab.artlung.com\/","wm-protocol":"webmention","content":{"html":"

      The PHP AutoMagic Gallery Listing<\/a> is the latest item to be added to The Lab<\/a>. Never heard of PHP? Shame on you!<\/a><\/p>","text":"The PHP AutoMagic Gallery Listing is the latest item to be added to The Lab. Never heard of PHP? Shame on you!"},"mention-of":"https:\/\/lab.artlung.com\/","wm-property":"mention-of","wm-private":false,"rels":{"canonical":"https:\/\/artlung.com\/blog\/2001\/04\/14\/3206818\/"}},{"type":"entry","author":{"type":"card","name":"Joe Crawford","photo":"https:\/\/webmention.io\/avatar\/cdn.artlung.com\/a0b5bad7e1082e08dc5e72e7f4760d40596782e04895da8b740023e7c1904d15.jpg","url":""},"url":"https:\/\/artlung.com\/blog\/2001\/04\/02\/3042057\/","published":"2001-04-02T23:12:00","wm-received":"2024-12-02T06:10:47Z","wm-id":1864034,"wm-source":"https:\/\/artlung.com\/blog\/2001\/04\/02\/3042057\/","wm-target":"https:\/\/lab.artlung.com\/","wm-protocol":"webmention","content":{"html":"

      I have lots of JavaScript experience.<\/p>\n

      Amazingly, this makes me valuable in some ways. I had no idea that people would tip for it. I got my first Tip the other day through the lab. Is my Lab<\/a> now a commercial site? Or am I just a busker \u2013 some modern day mendicant poet of JavaScript?<\/p>\n

      Hmmm.<\/p>","text":"I have lots of JavaScript experience.\n Amazingly, this makes me valuable in some ways. I had no idea that people would tip for it. I got my first Tip the other day through the lab. Is my Lab now a commercial site? Or am I just a busker \u2013 some modern day mendicant poet of JavaScript?\n Hmmm."},"mention-of":"https:\/\/lab.artlung.com\/","wm-property":"mention-of","wm-private":false,"rels":{"canonical":"https:\/\/artlung.com\/blog\/2001\/04\/02\/3042057\/"}},{"type":"entry","author":{"type":"card","name":"Joe Crawford","photo":"https:\/\/webmention.io\/avatar\/cdn.artlung.com\/a0b5bad7e1082e08dc5e72e7f4760d40596782e04895da8b740023e7c1904d15.jpg","url":""},"url":"https:\/\/artlung.com\/blog\/2001\/05\/16\/3668802\/","published":"2001-05-16T22:58:00","wm-received":"2024-12-02T06:10:44Z","wm-id":1864033,"wm-source":"https:\/\/artlung.com\/blog\/2001\/05\/16\/3668802\/","wm-target":"https:\/\/lab.artlung.com\/","wm-protocol":"webmention","content":{"html":"

      New stuff for the lab! <\/i>
      Multiple, Hierarchical SelectBoxes<\/a> and Reverse a string, but only the digits<\/a>.<\/p>\n

      Always satisfying to add to the lab<\/a>. Based on the hit logs, it looks like people are using it. This makes me happy.<\/p>","text":"New stuff for the lab! \nMultiple, Hierarchical SelectBoxes and Reverse a string, but only the digits.\n Always satisfying to add to the lab. Based on the hit logs, it looks like people are using it. This makes me happy."},"mention-of":"https:\/\/lab.artlung.com\/","wm-property":"mention-of","wm-private":false,"rels":{"canonical":"https:\/\/artlung.com\/blog\/2001\/05\/16\/3668802\/"}},{"type":"entry","author":{"type":"card","name":"Joe Crawford","photo":"https:\/\/webmention.io\/avatar\/cdn.artlung.com\/a0b5bad7e1082e08dc5e72e7f4760d40596782e04895da8b740023e7c1904d15.jpg","url":""},"url":"https:\/\/artlung.com\/blog\/2001\/05\/22\/3756864\/","published":"2001-05-22T22:00:00","wm-received":"2024-12-02T06:10:39Z","wm-id":1864028,"wm-source":"https:\/\/artlung.com\/blog\/2001\/05\/22\/3756864\/","wm-target":"https:\/\/lab.artlung.com\/","wm-protocol":"webmention","content":{"html":"

      New lab<\/a> item!<\/b>
      How can I change every link on a page to something new?<\/a><\/p>","text":"New lab item!\nHow can I change every link on a page to something new?"},"mention-of":"https:\/\/lab.artlung.com\/","wm-property":"mention-of","wm-private":false,"rels":{"canonical":"https:\/\/artlung.com\/blog\/2001\/05\/22\/3756864\/"}},{"type":"entry","author":{"type":"card","name":"Joe Crawford","photo":"https:\/\/webmention.io\/avatar\/cdn.artlung.com\/a0b5bad7e1082e08dc5e72e7f4760d40596782e04895da8b740023e7c1904d15.jpg","url":""},"url":"https:\/\/artlung.com\/blog\/2001\/06\/21\/4177099\/","published":"2001-06-21T11:34:00","wm-received":"2024-12-02T06:10:37Z","wm-id":1864026,"wm-source":"https:\/\/artlung.com\/blog\/2001\/06\/21\/4177099\/","wm-target":"https:\/\/lab.artlung.com\/","wm-protocol":"webmention","content":{"html":"

      I\u2019m mortified. Broken stuff in the lab<\/a>. The horror! The horror!<\/i><\/p>\n

      The multiple select<\/a> tool was broken in essentially every browser. Ugh. Luckily nobody donated anything on the strength of that one.<\/p>\n

      I have now fixed it.<\/p>","text":"I\u2019m mortified. Broken stuff in the lab. The horror! The horror!\n The multiple select tool was broken in essentially every browser. Ugh. Luckily nobody donated anything on the strength of that one.\n I have now fixed it."},"mention-of":"https:\/\/lab.artlung.com\/","wm-property":"mention-of","wm-private":false,"rels":{"canonical":"https:\/\/artlung.com\/blog\/2001\/06\/21\/4177099\/"}},{"type":"entry","author":{"type":"card","name":"Joe Crawford","photo":"https:\/\/webmention.io\/avatar\/cdn.artlung.com\/a0b5bad7e1082e08dc5e72e7f4760d40596782e04895da8b740023e7c1904d15.jpg","url":""},"url":"https:\/\/artlung.com\/blog\/2001\/07\/11\/4494715\/","published":"2001-07-11T19:44:00","wm-received":"2024-12-02T06:10:33Z","wm-id":1864024,"wm-source":"https:\/\/artlung.com\/blog\/2001\/07\/11\/4494715\/","wm-target":"https:\/\/lab.artlung.com\/","wm-protocol":"webmention","content":{"html":"

      New item for The Lab<\/a>:
      Some bookmarklets which I can never remember where to go get.
      So here they are<\/a>.<\/p>","text":"New item for The Lab:\nSome bookmarklets which I can never remember where to go get. So here they are."},"mention-of":"https:\/\/lab.artlung.com\/","wm-property":"mention-of","wm-private":false,"rels":{"canonical":"https:\/\/artlung.com\/blog\/2001\/07\/11\/4494715\/"}},{"type":"entry","author":{"type":"card","name":"Joe Crawford","photo":"https:\/\/webmention.io\/avatar\/cdn.artlung.com\/a0b5bad7e1082e08dc5e72e7f4760d40596782e04895da8b740023e7c1904d15.jpg","url":""},"url":"https:\/\/artlung.com\/blog\/2001\/07\/20\/4638580\/","published":"2001-07-20T07:43:00","wm-received":"2024-12-02T06:10:30Z","wm-id":1864022,"wm-source":"https:\/\/artlung.com\/blog\/2001\/07\/20\/4638580\/","wm-target":"https:\/\/lab.artlung.com\/","wm-protocol":"webmention","content":{"html":"

      Lab<\/a> time again! This time I\u2019m addressing the question of the dotted lines in Windows MSIE. It\u2019s titled: Why not to use blur() to make dotted lines go away in MSIE for Windows<\/a>. The cousin of this entry is outline: none CSS property<\/a>.<\/p>","text":"Lab time again! This time I\u2019m addressing the question of the dotted lines in Windows MSIE. It\u2019s titled: Why not to use blur() to make dotted lines go away in MSIE for Windows. The cousin of this entry is outline: none CSS property."},"mention-of":"https:\/\/lab.artlung.com\/","wm-property":"mention-of","wm-private":false,"rels":{"canonical":"https:\/\/artlung.com\/blog\/2001\/07\/20\/4638580\/"}},{"type":"entry","author":{"type":"card","name":"Joe Crawford","photo":"https:\/\/webmention.io\/avatar\/cdn.artlung.com\/a0b5bad7e1082e08dc5e72e7f4760d40596782e04895da8b740023e7c1904d15.jpg","url":""},"url":"https:\/\/artlung.com\/blog\/2001\/07\/25\/4722767\/","published":"2001-07-25T08:01:00","wm-received":"2024-12-02T06:10:25Z","wm-id":1864020,"wm-source":"https:\/\/artlung.com\/blog\/2001\/07\/25\/4722767\/","wm-target":"https:\/\/lab.artlung.com\/","wm-protocol":"webmention","content":{"html":"

      Yep, Lab<\/a> time. This one\u2019s a simple little idea. Submit a form by selecting a dropdown item<\/a> with client-side scripting (read: JavaScript).<\/p>","text":"Yep, Lab time. This one\u2019s a simple little idea. Submit a form by selecting a dropdown item with client-side scripting (read: JavaScript)."},"mention-of":"https:\/\/lab.artlung.com\/","wm-property":"mention-of","wm-private":false,"rels":{"canonical":"https:\/\/artlung.com\/blog\/2001\/07\/25\/4722767\/"}},{"type":"entry","author":{"type":"card","name":"Joe Crawford","photo":"https:\/\/webmention.io\/avatar\/cdn.artlung.com\/a0b5bad7e1082e08dc5e72e7f4760d40596782e04895da8b740023e7c1904d15.jpg","url":""},"url":"https:\/\/artlung.com\/blog\/2001\/08\/06\/4941364\/","published":"2001-08-06T12:25:00","wm-received":"2024-12-02T06:10:21Z","wm-id":1864018,"wm-source":"https:\/\/artlung.com\/blog\/2001\/08\/06\/4941364\/","wm-target":"https:\/\/lab.artlung.com\/","wm-protocol":"webmention","content":{"html":"

      Lab<\/a> time! Why the form action mailto: stinks<\/a>. Includes screengrabs.<\/p>","text":"Lab time! Why the form action mailto: stinks. Includes screengrabs."},"mention-of":"https:\/\/lab.artlung.com\/","wm-property":"mention-of","wm-private":false,"rels":{"canonical":"https:\/\/artlung.com\/blog\/2001\/08\/06\/4941364\/"}},{"type":"entry","author":{"type":"card","name":"Joe Crawford","photo":"https:\/\/webmention.io\/avatar\/cdn.artlung.com\/a0b5bad7e1082e08dc5e72e7f4760d40596782e04895da8b740023e7c1904d15.jpg","url":""},"url":"https:\/\/artlung.com\/blog\/2001\/08\/20\/5200687\/","published":"2001-08-20T17:02:00","wm-received":"2024-12-02T06:09:37Z","wm-id":1864017,"wm-source":"https:\/\/artlung.com\/blog\/2001\/08\/20\/5200687\/","wm-target":"https:\/\/lab.artlung.com\/","wm-protocol":"webmention","content":{"html":"

      I put this in the lab<\/a> because I don\u2019t know where else to put it \u2014 HTML 2.0 \u2013 An exploration!<\/a>. The idea here is an exercise in web authoring, 1996-style. Just some pointers to the original specs, and brief ruminations on how it\u2019s a little different.<\/p>","text":"I put this in the lab because I don\u2019t know where else to put it \u2014 HTML 2.0 \u2013 An exploration!. The idea here is an exercise in web authoring, 1996-style. Just some pointers to the original specs, and brief ruminations on how it\u2019s a little different."},"mention-of":"https:\/\/lab.artlung.com\/","wm-property":"mention-of","wm-private":false,"rels":{"canonical":"https:\/\/artlung.com\/blog\/2001\/08\/20\/5200687\/"}},{"type":"entry","author":{"type":"card","name":"Joe Crawford","photo":"https:\/\/webmention.io\/avatar\/cdn.artlung.com\/a0b5bad7e1082e08dc5e72e7f4760d40596782e04895da8b740023e7c1904d15.jpg","url":""},"url":"https:\/\/artlung.com\/blog\/2001\/09\/03\/5469844\/","published":"2001-09-03T22:51:00","wm-received":"2024-12-02T06:09:35Z","wm-id":1864016,"wm-source":"https:\/\/artlung.com\/blog\/2001\/09\/03\/5469844\/","wm-target":"https:\/\/lab.artlung.com\/","wm-protocol":"webmention","content":{"html":"

      New Lab<\/a> item. How to make .php files masquerade as .php3<\/a>. It\u2019s a bit of magic which requires the very cool mod_rewrite for apache. Good mod_rewrite tutorials here<\/a> and here<\/a>.<\/p>","text":"New Lab item. How to make .php files masquerade as .php3. It\u2019s a bit of magic which requires the very cool mod_rewrite for apache. Good mod_rewrite tutorials here and here."},"mention-of":"https:\/\/lab.artlung.com\/","wm-property":"mention-of","wm-private":false,"rels":{"canonical":"https:\/\/artlung.com\/blog\/2001\/09\/03\/5469844\/"}},{"type":"entry","author":{"type":"card","name":"Joe Crawford","photo":"https:\/\/webmention.io\/avatar\/cdn.artlung.com\/a0b5bad7e1082e08dc5e72e7f4760d40596782e04895da8b740023e7c1904d15.jpg","url":""},"url":"https:\/\/artlung.com\/blog\/2001\/11\/07\/6934971\/","published":"2001-11-07T00:22:00","wm-received":"2024-12-02T06:09:34Z","wm-id":1864015,"wm-source":"https:\/\/artlung.com\/blog\/2001\/11\/07\/6934971\/","wm-target":"https:\/\/lab.artlung.com\/","wm-protocol":"webmention","content":{"html":"

      Still fooling with OSX. Keeping me busy. Hopefully I\u2019ll have some new lab<\/a> entries as a result of all this playing.<\/p>","text":"Still fooling with OSX. Keeping me busy. Hopefully I\u2019ll have some new lab entries as a result of all this playing."},"mention-of":"https:\/\/lab.artlung.com\/","wm-property":"mention-of","wm-private":false,"rels":{"canonical":"https:\/\/artlung.com\/blog\/2001\/11\/07\/6934971\/"}},{"type":"entry","author":{"type":"card","name":"Joe Crawford","photo":"https:\/\/webmention.io\/avatar\/cdn.artlung.com\/a0b5bad7e1082e08dc5e72e7f4760d40596782e04895da8b740023e7c1904d15.jpg","url":""},"url":"https:\/\/artlung.com\/blog\/2001\/12\/16\/7978233\/","published":"2001-12-16T20:00:00","wm-received":"2024-12-02T06:09:26Z","wm-id":1864011,"wm-source":"https:\/\/artlung.com\/blog\/2001\/12\/16\/7978233\/","wm-target":"https:\/\/lab.artlung.com\/","wm-protocol":"webmention","content":{"html":"

      New Lab Items:<\/a><\/b>
      How to Encode URLs; An ASCII to URLEncoded JavaScript<\/a> and Checkbox Validator<\/a>.<\/p>","text":"New Lab Items:\nHow to Encode URLs; An ASCII to URLEncoded JavaScript and Checkbox Validator."},"mention-of":"https:\/\/lab.artlung.com\/","wm-property":"mention-of","wm-private":false,"rels":{"canonical":"https:\/\/artlung.com\/blog\/2001\/12\/16\/7978233\/"}},{"type":"entry","author":{"type":"card","name":"Joe Crawford","photo":"https:\/\/webmention.io\/avatar\/cdn.artlung.com\/a0b5bad7e1082e08dc5e72e7f4760d40596782e04895da8b740023e7c1904d15.jpg","url":""},"url":"https:\/\/artlung.com\/blog\/2001\/12\/17\/8011644\/","published":"2001-12-17T23:26:00","wm-received":"2024-12-02T06:09:22Z","wm-id":1864008,"wm-source":"https:\/\/artlung.com\/blog\/2001\/12\/17\/8011644\/","wm-target":"https:\/\/lab.artlung.com\/","wm-protocol":"webmention","content":{"html":"

      more new lab<\/a> items: onunload + window.open = evil<\/a> and Preventing Browser Cache<\/a><\/p>","text":"more new lab items: onunload + window.open = evil and Preventing Browser Cache"},"mention-of":"https:\/\/lab.artlung.com\/","wm-property":"mention-of","wm-private":false,"rels":{"canonical":"https:\/\/artlung.com\/blog\/2001\/12\/17\/8011644\/"}},{"type":"entry","author":{"type":"card","name":"Joe Crawford","photo":"https:\/\/webmention.io\/avatar\/cdn.artlung.com\/a0b5bad7e1082e08dc5e72e7f4760d40596782e04895da8b740023e7c1904d15.jpg","url":""},"url":"https:\/\/artlung.com\/blog\/2001\/12\/27\/8223931\/","published":"2001-12-27T20:45:00","wm-received":"2024-12-02T06:09:20Z","wm-id":1864006,"wm-source":"https:\/\/artlung.com\/blog\/2001\/12\/27\/8223931\/","wm-target":"https:\/\/lab.artlung.com\/","wm-protocol":"webmention","content":{"html":"

      New lab<\/a> item: Batch File Rename By File Extension in Unix<\/a>. (Not really new, but moved from the smorgasborg<\/a>)<\/p>","text":"New lab item: Batch File Rename By File Extension in Unix. (Not really new, but moved from the smorgasborg)"},"mention-of":"https:\/\/lab.artlung.com\/","wm-property":"mention-of","wm-private":false,"rels":{"canonical":"https:\/\/artlung.com\/blog\/2001\/12\/27\/8223931\/"}},{"type":"entry","author":{"type":"card","name":"Joe Crawford","photo":"https:\/\/webmention.io\/avatar\/cdn.artlung.com\/a0b5bad7e1082e08dc5e72e7f4760d40596782e04895da8b740023e7c1904d15.jpg","url":""},"url":"https:\/\/artlung.com\/blog\/2002\/01\/02\/8341034\/","published":"2002-01-02T02:43:00","wm-received":"2024-12-02T06:09:18Z","wm-id":1864005,"wm-source":"https:\/\/artlung.com\/blog\/2002\/01\/02\/8341034\/","wm-target":"https:\/\/lab.artlung.com\/","wm-protocol":"webmention","content":{"html":"

      New Lab<\/a> Item:<\/b> Outbound Link Confirmation<\/a><\/p>","text":"New Lab Item: Outbound Link Confirmation"},"mention-of":"https:\/\/lab.artlung.com\/","wm-property":"mention-of","wm-private":false,"rels":{"canonical":"https:\/\/artlung.com\/blog\/2002\/01\/02\/8341034\/"}},{"type":"entry","author":{"type":"card","name":"Joe Crawford","photo":"https:\/\/webmention.io\/avatar\/cdn.artlung.com\/a0b5bad7e1082e08dc5e72e7f4760d40596782e04895da8b740023e7c1904d15.jpg","url":""},"url":"https:\/\/artlung.com\/blog\/2002\/02\/27\/10213406\/","published":"2002-02-27T20:32:00","wm-received":"2024-12-02T06:09:14Z","wm-id":1864003,"wm-source":"https:\/\/artlung.com\/blog\/2002\/02\/27\/10213406\/","wm-target":"https:\/\/lab.artlung.com\/","wm-protocol":"webmention","name":"\u201cA sufficiently advanced Google search is indistinguishable from magic.\u201d","content":{"html":"

      If you have any interest in weblogs and search algorithms, you must read Google Loves Blogs: How Weblogs Influence A Billion Google Searches A Week<\/a>. I\u2019ve been saying that without Google<\/a>, I am not as smart as I am with it. Very often I will not so much know something as know where I have the answer stored. An example, for me to get lorem ipsum text for a project, from wherever I\u2019m sitting at work, all I need to do it do a search for artlung greek<\/a>. Blammo, there\u2019s my<\/b> lorem ipsum for my project. Any number of items in my lab<\/a> are just like that. In so doing I appear nearly clairvoyant to my co-workers. But like any good programmer, I am merely lazy. I have no need to memorize lorem ipsum. I have no need to keep a file with lorem ipsum on my desktop at work. But with a string of 13 letters and a click I get precisely<\/i> what I need. Google is my command line to the web. And I think I am not alone.<\/p>","text":"If you have any interest in weblogs and search algorithms, you must read Google Loves Blogs: How Weblogs Influence A Billion Google Searches A Week. I\u2019ve been saying that without Google, I am not as smart as I am with it. Very often I will not so much know something as know where I have the answer stored. An example, for me to get lorem ipsum text for a project, from wherever I\u2019m sitting at work, all I need to do it do a search for artlung greek. Blammo, there\u2019s my lorem ipsum for my project. Any number of items in my lab are just like that. In so doing I appear nearly clairvoyant to my co-workers. But like any good programmer, I am merely lazy. I have no need to memorize lorem ipsum. I have no need to keep a file with lorem ipsum on my desktop at work. But with a string of 13 letters and a click I get precisely what I need. Google is my command line to the web. And I think I am not alone."},"mention-of":"https:\/\/lab.artlung.com\/","wm-property":"mention-of","wm-private":false,"rels":{"canonical":"https:\/\/artlung.com\/blog\/2002\/02\/27\/10213406\/"}},{"type":"entry","author":{"type":"card","name":"Joe Crawford","photo":"https:\/\/webmention.io\/avatar\/cdn.artlung.com\/a0b5bad7e1082e08dc5e72e7f4760d40596782e04895da8b740023e7c1904d15.jpg","url":""},"url":"https:\/\/artlung.com\/blog\/2002\/03\/06\/10475841\/","published":"2002-03-06T18:43:00","wm-received":"2024-12-02T06:09:12Z","wm-id":1864001,"wm-source":"https:\/\/artlung.com\/blog\/2002\/03\/06\/10475841\/","wm-target":"https:\/\/lab.artlung.com\/","wm-protocol":"webmention","name":"New Silly Lab Item.","content":{"html":"

      In the lab<\/a>:
      camelCase <-> selector-case in JavaScript w\/o Regular Expressions<\/a>. Why? Because sometimes you gotta make stuff for no reason.<\/p>","text":"In the lab:\ncamelCase <-> selector-case in JavaScript w\/o Regular Expressions. Why? Because sometimes you gotta make stuff for no reason."},"mention-of":"https:\/\/lab.artlung.com\/","wm-property":"mention-of","wm-private":false,"rels":{"canonical":"https:\/\/artlung.com\/blog\/2002\/03\/06\/10475841\/"}}] \ No newline at end of file diff --git a/webmention_data/spoiler.json b/webmention_data/spoiler.json index 0637a08..15974fb 100644 --- a/webmention_data/spoiler.json +++ b/webmention_data/spoiler.json @@ -1 +1 @@ -[] \ No newline at end of file +[{"type":"entry","author":{"type":"card","name":"Tracy Durnell","photo":"https:\/\/webmention.io\/avatar\/secure.gravatar.com\/166bfa79afa93d034d4fe38d5b399838c290891e3144a650d46f1a7e5acd6532.jpg","url":"https:\/\/tracydurnell.com"},"url":"https:\/\/tracydurnell.com\/2025\/01\/10\/weeknotes-jan-4-10-2025\/","published":"2025-01-10T20:44:41-08:00","wm-received":"2025-01-11T04:45:08Z","wm-id":1874339,"wm-source":"https:\/\/tracydurnell.com\/2025\/01\/10\/weeknotes-jan-4-10-2025\/","wm-target":"https:\/\/lab.artlung.com\/spoiler\/","wm-protocol":"webmention","name":"Weeknotes: Jan 4 \u2013 10, 2025","content":{"html":"\"glovednew gloves<\/a> kick ass against thorns, if a bit loose (I got large because so many reviews said they run small, I might try a pair of mediums)

      Win of the week: <\/strong>adapted a post that\u2019s been sitting on draft since last June into my entry for this month\u2019s IndieWeb carnival<\/a> ????<\/p>\n

      Looking forward to: <\/strong>walking with a friend I haven\u2019t seen since summer next week<\/p>\n

      Stuff I did:<\/h2>\n