# ItemTable

key: workbench.scm.views.state
value:
  {"workbench.scm.repositories":{"collapsed":false,"isHidden":true},"workbench.scm":{"collapsed":false,"isHidden":true},"workbench.scm.history":{"collapsed":false,"isHidden":true}}


key: workbench.view.extension.github-actions.state
value:
  {"github-actions.current-branch":{"collapsed":false,"isHidden":true},"github-actions.workflows":{"collapsed":false,"isHidden":true},"github-actions.settings":{"collapsed":false,"isHidden":true},"github-actions.empty-view":{"collapsed":false,"isHidden":true}}


key: workbench.view.extension.dockerView.state
value:
  {"dockerContainers":{"collapsed":false,"isHidden":true},"dockerImages":{"collapsed":false,"isHidden":true},"dockerRegistries":{"collapsed":false,"isHidden":true},"dockerNetworks":{"collapsed":true,"isHidden":true},"dockerVolumes":{"collapsed":true,"isHidden":true},"vscode-docker.views.dockerContexts":{"collapsed":true,"isHidden":true},"vscode-docker.views.help":{"collapsed":false,"isHidden":true}}


key: workbench.view.debug.state
value:
  {"workbench.debug.welcome":{"collapsed":false,"isHidden":true},"workbench.debug.variablesView":{"collapsed":false,"isHidden":true},"workbench.debug.watchExpressionsView":{"collapsed":false,"isHidden":true},"workbench.debug.callStackView":{"collapsed":false,"isHidden":true},"workbench.debug.loadedScriptsView":{"collapsed":true,"isHidden":true},"workbench.debug.breakPointsView":{"collapsed":false,"isHidden":true},"jsBrowserBreakpoints":{"collapsed":true,"isHidden":true},"jsExcludedCallers":{"collapsed":true,"isHidden":true},"jsDebugNetworkTree":{"collapsed":true,"isHidden":true}}


key: anysphere.cursor-retrieval
value:
  {"cursor-retrieval-state-version":1,"map/98dc48ece91df8d1ce4f1e58cdfd71decf9b60c78939aaa51d4aa46ba745f8a5-josiedotlol/repoKeys":{"repoName":"cec02e6d-bc5b-439e-a354-f2515318cd19","orthogonalTransformationSeed":6975329601422983,"pathEncryptionKey":"7RCHIsHPb7P-hSildPzOx-iYKefoJlnGTiSoPl4VtEo","pathEncryptionScheme":"aes-256-ctr"}}


key: workbench.zenMode.exitInfo
value:
  {"transitionedToCenteredEditorLayout":false,"transitionedToFullScreen":false,"handleNotificationsDoNotDisturbMode":false,"wasVisible":{"auxiliaryBar":false,"panel":false,"sideBar":false}}


key: scm:view:visibleRepositories
value:
  {"all":["git:Git:file:///home/josie/development/josiedotlol"],"sortKey":"discoveryTime","visible":[0]}


key: workbench.explorer.views.state
value:
  {"notepad":{"collapsed":true,"isHidden":true,"size":22},"outline":{"collapsed":true,"isHidden":true,"size":22},"timeline":{"collapsed":true,"isHidden":true,"size":22},"workbench.explorer.openEditorsView":{"collapsed":false,"isHidden":true},"workbench.explorer.fileView":{"collapsed":false,"isHidden":true,"size":1255},"npm":{"collapsed":true,"isHidden":true},"go.explorer":{"collapsed":true,"isHidden":true},"go.package.outline":{"collapsed":true,"isHidden":true}}


key: workbench.auxiliarybar.viewContainersWorkspaceState
value:
  [{"id":"workbench.panel.aichat","visible":true},{"id":"workbench.panel.composerViewPane2","visible":false},{"id":"workbench.panel.aipaneaaaiBugFinder","visible":false},{"id":"workbench.panel.chat","visible":false},{"id":"workbench.panel.chatEditing","visible":false}]


key: terminal.integrated.layoutInfo
value:
  {"workspaceId":"64f51f4fce698869b27b3fa94f111ccd","tabs":[{"isActive":false,"activePersistentProcessId":1,"terminals":[{"relativeSize":1,"terminal":1}]},{"isActive":true,"activePersistentProcessId":2,"terminals":[{"relativeSize":1,"terminal":2}]}]}


key: workbench.panel.viewContainersWorkspaceState
value:
  [{"id":"workbench.panel.markers","visible":true},{"id":"workbench.panel.output","visible":true},{"id":"workbench.panel.repl","visible":true},{"id":"terminal","visible":true},{"id":"workbench.panel.testResults","visible":false},{"id":"~remote.forwardedPortsContainer","visible":true},{"id":"refactorPreview","visible":false}]


key: terminal.integrated.environmentVariableCollectionsV2
value:
  [{"extensionIdentifier":"vscode.git","collection":[["GIT_ASKPASS",{"variable":"GIT_ASKPASS","value":"/tmp/.mount_CursorDDNoVB/usr/share/cursor/resources/app/extensions/git/dist/askpass.sh","type":1,"options":{"applyAtProcessCreation":true,"applyAtShellIntegration":false}}],["VSCODE_GIT_ASKPASS_NODE",{"variable":"VSCODE_GIT_ASKPASS_NODE","value":"/tmp/.mount_CursorDDNoVB/usr/share/cursor/cursor","type":1,"options":{"applyAtProcessCreation":true,"applyAtShellIntegration":false}}],["VSCODE_GIT_ASKPASS_EXTRA_ARGS",{"variable":"VSCODE_GIT_ASKPASS_EXTRA_ARGS","value":"","type":1,"options":{"applyAtProcessCreation":true,"applyAtShellIntegration":false}}],["VSCODE_GIT_ASKPASS_MAIN",{"variable":"VSCODE_GIT_ASKPASS_MAIN","value":"/tmp/.mount_CursorDDNoVB/usr/share/cursor/resources/app/extensions/git/dist/askpass-main.js","type":1,"options":{"applyAtProcessCreation":true,"applyAtShellIntegration":false}}],["VSCODE_GIT_IPC_HANDLE",{"variable":"VSCODE_GIT_IPC_HANDLE","value":"/run/user/1000/vscode-git-d8fdab8a5e.sock","type":1,"options":{"applyAtProcessCreation":true,"applyAtShellIntegration":false}}]],"description":[["",{"description":"Enables the following features: git auth provider"}]]}]


key: composer.composerData
value:
  {"allComposers":[{"type":"head","composerId":"30b64e82-d5be-486a-9891-0e4c3b004e90","name":"Modify Blog Build Script for Sitemap","lastUpdatedAt":1746092155458,"createdAt":1746091927888,"unifiedMode":"chat","forceMode":"edit"},{"type":"head","composerId":"a4ca3032-b47a-4e69-ad79-1d72907745a1","name":"Apache Config Update for URL Handling","lastUpdatedAt":1746091765985,"createdAt":1746091269173,"unifiedMode":"chat","forceMode":"edit"},{"type":"head","composerId":"8c46a67c-8e87-4cb7-aba1-7f059edc7cf8","name":"Dynamic Index for Conference Talks","lastUpdatedAt":1746032407340,"createdAt":1746022188953,"unifiedMode":"chat","forceMode":"edit"},{"type":"head","composerId":"51c51610-bcb3-47f7-bc7f-15f996100735","name":"Pandoc Syntax Highlighting Implementation","lastUpdatedAt":1745962484330,"createdAt":1745962462581,"unifiedMode":"chat","forceMode":"edit"},{"type":"head","composerId":"91c60704-a78d-4b79-80f3-4685584a5b3c","name":"Implementing Syntax Highlighting in Blog Template","lastUpdatedAt":1745962440927,"createdAt":1745961724754,"unifiedMode":"chat","forceMode":"edit"},{"type":"head","composerId":"708310cc-2fbc-45e7-aa66-591e81fc10db","name":"Reformatting AWS Markdown to Match T-Rex Style","lastUpdatedAt":1745961623454,"createdAt":1745959901535,"unifiedMode":"chat","forceMode":"edit"},{"type":"head","composerId":"233a497c-0b3e-4268-bc4d-c083fe0b6ba4","name":"Modify Template for PNG Background","lastUpdatedAt":1745959702104,"createdAt":1745958593823,"unifiedMode":"chat","forceMode":"edit"},{"type":"head","composerId":"f99a0ff7-ff9d-45f5-a790-6a4cfc372c5b","name":"Formatting and Image Updates for t-rex.md","lastUpdatedAt":1745958580624,"createdAt":1745957197977,"unifiedMode":"chat","forceMode":"edit"},{"type":"head","composerId":"2b4c7add-ac99-4799-b25c-a142224cb7cf","name":"Removing Sygnum GitLab Link from Website","lastUpdatedAt":1745356645363,"createdAt":1745356638426,"unifiedMode":"chat","forceMode":"edit"},{"type":"head","composerId":"c754a11f-2dc8-411a-80f8-26f56766c0ee","name":"HTTPD Containerfile Configuration for Static Site","lastUpdatedAt":1745356250152,"createdAt":1745353198008,"unifiedMode":"agent","forceMode":"edit"},{"type":"head","composerId":"dc63118a-9b3d-44f8-83d1-d28afa06d657","name":"Improving Lighthouse Score for Index.html","lastUpdatedAt":1745352588845,"createdAt":1745352568544,"unifiedMode":"agent","forceMode":"edit"},{"type":"head","composerId":"73b13483-82af-445e-b127-4f4759c13b6e","name":"Integrating a Blog with Pre-commit Hook","lastUpdatedAt":1745323257937,"createdAt":1745309482015,"unifiedMode":"agent","forceMode":"edit"},{"type":"head","composerId":"2743f778-2c93-4b38-9c80-c6de4a8e8229","name":"Check CSS Removal in PR","lastUpdatedAt":1745232890060,"createdAt":1744042530806,"unifiedMode":"agent","forceMode":"edit"},{"type":"head","composerId":"7f06134b-058b-4413-bbb6-91c7ff3f4ec3","lastUpdatedAt":1744042433675,"createdAt":1744042371864,"unifiedMode":"agent","forceMode":"edit"},{"type":"head","composerId":"43496f3c-4c6b-4986-a345-56f7b5f506de","name":"Add Certifications Section in Linux Style","lastUpdatedAt":1744042354187,"createdAt":1744022137713,"unifiedMode":"agent","forceMode":"edit"},{"type":"head","composerId":"d2004b91-97b0-46ce-8289-a81e349cc8f3","createdAt":1744022137713,"unifiedMode":"chat","forceMode":"chat"}],"selectedComposerId":"30b64e82-d5be-486a-9891-0e4c3b004e90","selectedChatId":"d2004b91-97b0-46ce-8289-a81e349cc8f3","hasMigratedChatData":false,"hasMigratedUseAutoContext":true,"hasMigratedComposerData":true}


key: aiService.prompts
value:
  [{"text":"add a section for certifications from @https://www.credly.com/users/pfeifferj  \n\nit should also be in the linux terminal style as the rest of the site ","commandType":4},{"text":"add a person schema to the website @https://schema.org/Person ","commandType":4},{"text":"add a service worker to ensure the site works offline","commandType":4},{"text":"add sections for these too\n\nVolunteer Work\nOpen Infra Foundation: Programming Committee Member, Open Infra Summit (2025)\nThe Linux Foundation: Subject Matter Expert/Exam Developer, Certified Backstage Associate Exam (2024)\nOpen-Source Projects\nArch Linux: Contributor & AUR Package Maintainer\nKube-burner: Maintainer\nBackstage.io: Contributor\n\nConference Talks\nMainframes Aren’t Dead, They’re Just Running Kubernetes Now: \n- The Linux Foundation Open Source Summit North America (2025)\n- Kubernetes Community Day Budapest (2025)\nA Hitchhiker's Guide to Developer Productivity:\n- Swiss Dev Confederation (2024)\n9001 Ways to break out of a container:\n- Bsides Bristol (2024)\nWould You Like Fries With That? AI for Developer Productivity\n- Uphill conf (2024)\n- Kubernetes Community Day Zurich Rejects (2024)\nPublications\nHow golden paths improve developer productivity\nUnleashing the T-Rex: How Containers Sometimes Fail to Contain\nAchieve more with less using Red Hat Developer Hub's self-service features\nCVE-2023-6944\nCertifications\nGoogle Cloud Professional Cloud Architect (2025)\nIBM z/OS Mainframe Practitioner (2025)\nRed Hat Certified Architect (2024)\nRed Hat Certified Specialist in Multi-Cluster Management (2024)\nRed Hat Certified Specialist in OpenShift Data Foundation (2024)\nRed Hat Certified OpenShift Administrator (2023)\nRed Hat Certified Specialist in Containers (2023)\nAWS Certified Security - Specialty (2023)\nCertified SAFe 5 & 6 Product Owner/Product Manager (2022 & 2023)\nAWS Certified Solutions Architect – Professional (2022)\nscrum.org Professional Scrum Master (PSM I) (2019)\n","commandType":4},{"text":"instead of cating txt files over and over again mic it up a little like certifications could be in the crt dir etc.","commandType":4},{"text":"do something else instead of the git remote stuff","commandType":4},{"text":"use tree for talks to follow this logic\ntitle\n- event, year","commandType":4},{"text":"add an rss feed and reference that for publications instead of mock curling an api","commandType":4},{"text":"there is padding around the tree lines so it looks weird","commandType":4},{"text":"there's a little too much vertical space in between rss lines","commandType":4},{"text":"let's move the css inti its own file","commandType":4},{"text":"there's still too much whitespace in between rss items","commandType":4},{"text":"the links don't have the hiver effect anymore it seems","commandType":4},{"text":"I think it can be visually overwhelming to have one command right after the outher. let's add some more spacing","commandType":4},{"text":"there is a huge gap between bio and crt","commandType":4},{"text":"neofetch doesn't have the same bg styling also the gap is still there","commandType":4},{"text":"use the tailwind styles as much a possible. also you broke the neofetch section's alignment. the face is lower than the text on the right of it now","commandType":4},{"text":"the neoftech alignment is still wrong","commandType":4},{"text":"no the issue is that the face col and the senior consultant text col are misaligned. the face is now lower because of the neofetch padding so the text relatively is higher and it looks wrong","commandType":4},{"text":"the tailwind classes add too much vertical whitespace to the first and second sections","commandType":4},{"text":"maybe the grid rwos are the issue","commandType":4},{"text":"add an hr after every section","commandType":4},{"text":"the hr should be full width","commandType":4},{"text":"what ways could we use to actually hide all the sections after the bio and then have them be toggled on by the user that fits with the terminal theme","commandType":4},{"text":"add autocomplete","commandType":4},{"text":"remove ls              - List sections\nand\nshow all        - Show all sections\n  hide all        - Hide all sections","commandType":4},{"text":"make links purple be default and on hover wihte with underline","commandType":4},{"text":"we can just use tailwind classes","commandType":4},{"text":"also the blog, code linked etc. links should follow this pattern","commandType":4},{"text":"add a tab to autocomplete notice to the terminal","commandType":4},{"text":"in the help menu, make the command purple to distiguish it from the description","commandType":4},{"text":"it looks wrong now. actual html is printed in plaintext","commandType":4},{"text":"can we align the tabs for the descriptions?","commandType":4},{"text":"can we clear previous output when sending another command after the previous one","commandType":4},{"text":"can we make it so the face ascii art doesn't get squished on mobile?","commandType":4},{"text":"can we make it so the face ascii art doesn't get squished on mobile?\nmaybe put the face into one col and the text in that row into another col so they stack","commandType":4},{"text":"clear doesn't clear previous outputs","commandType":4},{"text":"if I run gh repo list and then clear after, the gh repo list output is still there","commandType":4},{"text":"remove any unneeded css","commandType":4},{"text":"what about things in @styles.css ","commandType":4},{"text":"update the publication and rss links to the correct ones\n\n@https://access.redhat.com/security/cve/cve-2023-6944 \n@https://developers.redhat.com/articles/2024/03/12/achieve-more-less-using-red-hat-developer-hubs-self-service-features \nhttps://medium.com/@josielol/unleashing-the-t-rex-how-containers-sometimes-fail-to-contain-1710b6cc7990\n@https://developers.redhat.com/articles/2025/01/29/how-golden-paths-improve-developer-productivity ","commandType":4},{"text":"in the light mode, the links should be black instead of white on hover","commandType":4},{"text":"run a python webserver to serve this","commandType":4},{"text":"for some reason fonts and other styling isn't loading anymore @http://127.0.0.1:8080/ ","commandType":4},{"text":"only 2 warnings\n\ncdn.tailwindcss.com should not be used in production. To use Tailwind CSS in production, install it as a PostCSS plugin or use the Tailwind CLI: https://tailwindcss.com/docs/installation cdn.tailwindcss.com:64:1711\nServiceWorker registration successful with scope:  http://127.0.0.1:8080/ 127.0.0.1:8080:792:23\nError in parsing value for ‘-webkit-text-size-adjust’.  Declaration dropped. 127.0.0.1:8080:1:2485","commandType":4},{"text":"based on the style editor it looks like tailwidn isn't loaded","commandType":4},{"text":"publicatiosn is @rss.xml now","commandType":4},{"text":"none of the styles seem to be applied now apart from colours\n\nGET\nhttp://127.0.0.1:8080/\n[HTTP/1 304 Not Modified 1ms]\n\nGET\nhttp://127.0.0.1:8080/styles.css\n[HTTP/1 200 OK 0ms]\n\nGET\nhttps://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;700&display=swap\n[HTTP/2 200 OK 0ms]\n\nGET\nhttp://127.0.0.1:8080/tailwind.js\n[HTTP/1 304 Not Modified 1ms]\n\nGET\nhttp://127.0.0.1:8080/favicon-16x16.png\n[HTTP/1 200 OK 0ms]\n\nGET\nhttp://127.0.0.1:8080/apple-touch-icon.png\n[HTTP/1 200 OK 0ms]\n\nServiceWorker registration successful with scope:  http://127.0.0.1:8080/ 127.0.0.1:8080:792:23\n","commandType":4},{"text":"@PR (Diff with Main Branch) check if we're missing essential css related stuff in the changes","commandType":4},{"text":"@PR (Diff with Main Branch) check if we accidentally removed imortant css","commandType":4},{"text":"@PR (Diff with Main Branch)  check if we accidentally removed imortant css","commandType":4},{"text":"check if we accidentally removed imortant css\n\ndo a git diff @styles.css origin main","commandType":4},{"text":"currently styles aren't applied correctly. pls fix thx","commandType":4},{"text":"@index.html make it so the list of commands in the help menu is clickable (i.e. if the user clicks on one the commands it is executed)","commandType":4},{"text":"clicking the grep command doesn't work. only \"grep\" is passed not the whole command","commandType":4},{"text":"add a blog to the website. the idea would be to have a blog dir that has markdown files for the log posts and a subdir for images\n\nwe could write a precommit hook that uses pandoc to render html pages ffrom markdown and update the blog index and also the rss feed","commandType":4},{"text":"align the style more to the original","commandType":4},{"text":"resume","commandType":4},{"text":"code is rendered badly in the blog html\n\n\n\necho CONTENT_PLACEHOLDERquot;Thanks for reading!CONTENT_PLACEHOLDERquot;","commandType":4},{"text":"add an image with a captopn to the example post @example.jpg ","commandType":4},{"text":"use markdown syntax for images as well wtf","commandType":4},{"text":"it's already there","commandType":4},{"text":"add an example link into the text as well","commandType":4},{"text":"@index.html pls fix the bad lighthouse score\n\nDiagnostics\nAvoid large layout shifts 2 layout shifts found\nThese are the largest layout shifts observed on the page. Each table item represents a single layout shift, and shows the element that shifted the most. Below each item are possible root causes that led to the layout shift. Some of these layout shifts may not be included in the CLS metric value due to windowing. Learn how to improve CLSCLS\nElement\nLayout shift score\nbody\n<body>\n0.161\n❯ ls -la /crt/ Google Cloud Profes…\n<div id=\"section-certs\" class=\"p-2 w-full md:col-span-10 col-span-1 mt-1 mb-1 hidden\">\n0.090\n…v19/-F63fjptA….woff2(fonts.gstatic.com)\nWeb font loaded\nEliminate render-blocking resources Potential savings of 1,480 ms\nResources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. Learn how to eliminate render-blocking resources.LCPFCP\nURL\nTransfer Size\nPotential Savings\nGoogle Fonts cdn \n1.3 KiB\t750 ms\n/css2?family=IBM+Plex+Mono:wght@400;700&display=swap(fonts.googleapis.com)\n1.3 KiB\n750 ms\nLargest Contentful Paint element 2,820 ms\nThis is the largest contentful element painted within the viewport. Learn more about the Largest Contentful Paint elementLCP\nElement\nhi@josie.lol ------------- senior consultant @ red hat zurich, switzerland clou…\n<div class=\"text-center md:text-left\">\nPhase\n% of LCP\nTiming\nTTFB\n21%\n600 ms\nLoad Delay\n0%\n0 ms\nLoad Time\n0%\n0 ms\nRender Delay\n79%\n2,220 ms\n\n\n","commandType":4},{"text":"add an httpd containerfile using quay.io\n\nconfigure it so the root is @index.html \n\n/blog should be @index.html \n\nand blog postes e.g. /blog/hello-world should be @hello-world.html etc.","commandType":4},{"text":"fix the links in @index.html and @template.html ","commandType":4},{"text":"replace medium with our local blog","commandType":4},{"text":"add a gititnore","commandType":4},{"text":"pls","commandType":4},{"text":"make on brand error pages instead","commandType":4},{"text":"pls","commandType":4},{"text":"check docs first @https://quay.io/repository/fedora/httpd-24 ","commandType":4},{"text":"Description\nApache HTTP Server 2.4 Container Image\n\nThis container image includes Apache HTTP Server 2.4 for OpenShift and general usage. Users can choose between RHEL, CentOS and Fedora based images. The RHEL images are available in the Red Hat Container Catalog, the CentOS Stream images are available on Quay.io, and the Fedora images are available in Fedora Registry. The resulting image can be run using podman.\n\nNote: while the examples in this README are calling podman, you can replace any such calls by docker with the same arguments\nDescription\n\nApache HTTP Server 2.4 available as container, is a powerful, efficient, and extensible web server. Apache supports a variety of features, many implemented as compiled modules which extend the core functionality. These can range from server-side programming language support to authentication schemes. Virtual hosting allows one Apache installation to serve many different Web sites.\"\nUsage in OpenShift\n\nIn this example, we assume that you are using the rhel8/httpd-24 image, available through the openshift/httpd:2.4-el8 imagestream tag in Openshift. To build a simple httpd-sample-app application in Openshift:\n\noc new-app openshift/httpd:2.4-el8~https://github.com/sclorg/httpd-ex.git\n\nTo access the application:\n\n$ oc get pods\n$ oc exec <pod> -- curl 127.0.0.1:8080\n\nSource-to-Image framework and scripts\n\nThis image supports the Source-to-Image (S2I) strategy in OpenShift. The Source-to-Image is an OpenShift framework which makes it easy to write images that take application source code as an input, use a builder image like this httpd container image, and produce a new image that runs the assembled application as an output.\n\nTo support the Source-to-Image framework, important scripts are included in the builder image:\n\n    The /usr/libexec/s2i/run script is set as the default command in the resulting container image (the new image with the application artifacts).\n\n    The /usr/libexec/s2i/assemble script inside the image is run to produce a new image with the application artifacts. The script takes sources of a given application and places them into appropriate directories inside the image. The structure of httpd-app can look like this:\n\n./httpd-cfg\nCan contain additional Apache configuration files (*.conf)\n\n./httpd-pre-init\nCan contain shell scripts (*.sh) that are sourced before httpd is started\n\n./httpd-ssl\nCan contain user's own SSL certificate (in the certs/ subdirectory) and a key (in the private/ subdirectory)\n\n./\nApplication source code\nBuild an application using a Dockerfile\n\nCompared to the Source-to-Image strategy, using a Dockerfile is a more flexible way to build an httpd container image with an application. Use a Dockerfile when Source-to-Image is not sufficiently flexible for you or when you build the image outside of the OpenShift environment.\n\nTo use the httpd image in a Dockerfile, follow these steps:\n1. Pull a base builder image to build on\n\npodman pull rhel8/httpd-24\n\n2. Pull an application code\n\nAn example application available at https://github.com/sclorg/httpd-ex.git is used here. To adjust the example application, clone the repository.\n\ngit clone https://github.com/sclorg/httpd-ex.git app-src\n\n3. Prepare an application inside a container\n\nThis step usually consists of at least these parts:\n\n    putting the application source into the container\n    moving certificates to the correct place (if available in the application source code)\n    setting the default command in the resulting image\n\nFor all these three parts, you can either set up all manually and use the httpd or run-httpd commands explicitly in the Dockerfile (3.1.), or you can use the Source-to-Image scripts inside the image (3.2.. For more information about these scripts, which enable you to set-up and run the httpd daemon, see the \"Source-to-Image framework and scripts\" section above.\n3.1. To use your own setup, create a Dockerfile with this content:\n\nFROM registry.redhat.io/rhel8/httpd-24\n\n# Add application sources\nADD app-src/index.html /var/www/html/index.html\n\n# The run script uses standard ways to run the application\nCMD run-httpd\n\n3.2. To use the Source-to-Image scripts and build an image using a Dockerfile, create a Dockerfile with this content:\n\nFROM registry.redhat.io/rhel8/httpd-24\n\n# Add application sources to a directory where the assemble script expects them\n# and set permissions so that the container runs without the root access\nUSER 0\nADD app-src/index.html /tmp/src/index.html\nRUN chown -R 1001:0 /tmp/src\nUSER 1001\n\n# Let the assemble script install the dependencies\nRUN /usr/libexec/s2i/assemble\n\n# The run script uses standard ways to run the application\nCMD /usr/libexec/s2i/run\n\n4. Build a new image from a Dockerfile prepared in the previous step\n\npodman build -t httpd-app .\n\n5. Run the resulting image with the final application\n\npodman run -d httpd-app\n\nDirect usage with a mounted directory\n\nAn example of the data on the host for both the examples above, which is served by The Apache HTTP web server:\n\n$ ls -lZ /wwwdata/html\n-rw-r--r--. 1 1001 1001 54321 Jan 01 12:34 index.html\n-rw-r--r--. 1 1001 1001  5678 Jan 01 12:34 page.html\n\nIf you want to run the image directly and mount the static pages available in the /wwwdata/ directory on the host as a container volume, execute the following command:\n\n$ podman run -d --name httpd -p 8080:8080 -v /wwwdata:/var/www:Z rhel8/httpd-24\n\nThis creates a container named httpd running the Apache HTTP Server, serving data from the /wwwdata/ directory. Port 8080 is exposed and mapped to the host.\nEnvironment variables and volumes\n\nThe Apache HTTP Server container image supports the following configuration variable, which can be set by using the -e option with the podman run command:\n\nHTTPD_LOG_TO_VOLUME\nBy default, httpd logs into standard output, so the logs are accessible by using the podman logs command. When HTTPD_LOG_TO_VOLUME is set, httpd logs into /var/log/httpd24, which can be mounted to host system using the container volumes. This option is only allowed when container is run as UID 0.\n\nHTTPD_MPM The variable HTTPD_MPM can be set to change the default Multi-Processing Module (MPM) from the package default MPM.\n\nIf you want to run the image and mount the log files into /wwwlogs on the host as a container volume, execute the following command:\n\n$ podman run -d -u 0 -e HTTPD_LOG_TO_VOLUME=1 --name httpd -v /wwwlogs:/var/log/httpd24:Z rhel8/httpd-24\n\nTo run an image using the event MPM (rather than the default prefork), execute the following command:\n\n$ podman run -d -e HTTPD_MPM=event --name httpd rhel8/httpd-24\n\nYou can also set the following mount points by passing the -v /host:/container flag to podman.\n\n/var/www\nApache HTTP Server data directory\n\n/var/log/httpd24\nApache HTTP Server log directory (available only when running as root, path /var/log/httpd is used in case of Fedora based image)\n\nNotice: When mouting a directory from the host into the container, ensure that the mounted directory has the appropriate permissions and that the owner and group of the directory matches the user UID or name which is running inside the container.\nDefault SSL certificates\n\nDefault SSL certificates are generated when Apache HTTP server container is started for the first time or own SSL certificates were not provided (see bolow how to provide them). SSL certificates are not stored in the base image but generated, so each container will have unique default SSL key pair. SSL certificate/key are stored in /etc/httpd/tls directory:\n\n/etc/httpd/tls/localhost.key\n/etc/httpd/tls/localhost.crt\n\nUsing own SSL certificates\n\nIn order to provide own SSL certificates for securing the connection with SSL, use the extending feature described above. In particular, put the SSL certificates into a separate directory inside your application:\n\n./httpd-ssl/certs/server-cert-selfsigned.pem\n./httpd-ssl/private/server-key.pem\n\nThe default behaviour is to look for the certificate and the private key in subdirectories certs/ and private/; those files will be used for the ssl settings in the httpd.\nDefault user\n\nBy default, Apache HTTP Server container runs as UID 1001. That means the volume mounted directories for the files (if mounted using -v option) need to be prepared properly, so the UID 1001 can read them.\n\nTo run the container as a different UID, use -u option. For example if you want to run the container as UID 1234, execute the following command:\n\npodman run -d -u 1234 rhel8/httpd-24\n\nTo log into a volume mounted directory, the container needs to be run as UID 0 (see above).\nTroubleshooting\n\nThe httpd deamon in the container logs to the standard output by default, so the log is available in the container log. The log can be examined by running:\n\npodman logs <container>\n\nSee also\n\nDockerfile and other sources for this container image are available on https://github.com/sclorg/httpd-container. In that repository, the Dockerfile for RHEL8 is called Dockerfile.rhel8, the Dockerfile for RHEL9 is called Dockerfile.rhel9, the Dockerfile for RHEL10 is called Dockerfile.rhel10, the Dockerfile for CentOS Stream 9 is called Dockerfile.c9s, the Dockerfile for CentOS Stream 10 is called Dockerfile.c10s, and the Dockerfile for Fedora is called Dockerfile.fedora.\n\n\n","commandType":4},{"text":"still the same error\n\n","commandType":4},{"text":"remove the sygnum gitlab link","commandType":4},{"text":"fix the formatting in @t-rex.md to look like @https://medium.com/p/1710b6cc7990/edit and add the missing images too\n\nuse @hello-world.md as an example","commandType":4},{"text":"the date is Sep 23, 2024\n\ncheck @https://medium.com/@josielol/unleashing-the-t-rex-how-containers-sometimes-fail-to-contain-1710b6cc7990","commandType":4},{"text":"we're migrating from medium to my own blog. you need to download the images from the post\n@https://medium.com/@josielol/unleashing-the-t-rex-how-containers-sometimes-fail-to-contain-1710b6cc7990 ","commandType":4},{"text":"I added the images to @images ","commandType":4},{"text":"the blog post is based on a bsides talk I gave. add a link to the talk with some context: @https://www.youtube.com/watch?v=_7R-Ha3cnuE&pp=ygUaYnNpZGVzIGpvc2llcGhpbmUgcGZlaWZmZXI%3D ","commandType":4},{"text":"edit @Containerfile to run @scripts to generate static files as part of the build","commandType":4},{"text":"do this in a builder container first and then pass that to a runtime httpd container","commandType":4},{"text":"the rendered @template.html has redundant titles\n\nonce in the actual title section and once in the content it seems\n\n\n\nUnleashing the T-Rex - How Containers Sometimes Fail to Contain\n2024-09-23 by Josephine Pfeiffer\ncontainerssecurityvulnerabilitieseBPFjurassic-park\nUnleashing the T-Rex: How Containers Sometimes Fail to Contain\n\nIn Jurassic Park, the electric fences were supposed to keep the dinosaurs locked in, but as we all know, things didn’t exactly go as planned. Containers are kind of like those dino enclosures-meant to isolate and contain-but under the right conditions, they can break free and cause chaos in the system. In this post, we will explore how containers can escape their supposed isolation, using Jurassic Park terms to help make sense of the low-level system internals.","commandType":4},{"text":"modify @template.html to render pngs with a white background","commandType":4},{"text":"fix the figure cpations in @t-rex.md to look like @hello-world.md ","commandType":4},{"text":"ok then it just looks bad. adapt captions in @template.html to look better","commandType":4},{"text":"now it's redundant and there are 2 captions","commandType":4},{"text":"now the caption is not styled anymore","commandType":4},{"text":"now we have 2 captions again. one unstyled and one styled underneath","commandType":4},{"text":"why so much js bullshit. can't we just use static stuff?","commandType":4},{"text":"add more vertical space after the image caption","commandType":4},{"text":"can you also center the caption and add figure numbering like Figurre X: <caption>","commandType":4},{"text":"format @aws.md like @t-rex.md ","commandType":4},{"text":"rewrite @hello-world.md to exaplain why medium sucks for readers, why it's a good opportunity to also clean house and describe technically how I set this blog up with scripting, multi stage container build, pre-commit hooks. better than overcomplicated ci pipelines, keeping things minimal with pandoc and markdown. static etc.","commandType":4},{"text":"add code snippest to @hello-world.md to show the structure of files/dirs and files mentioned","commandType":4},{"text":"@Containerfile @blog-build.sh use content from the actual files and runa tree for the structure lmao","commandType":4},{"text":"don't add the full content. just use snippets to illustrate concepts mentioned in the text","commandType":4},{"text":"can we add more syntax hilighting lang support  to @template.html ","commandType":4},{"text":"check \nSkip to content\nDEV Community\nPowered by\nAlgolia\nLog in\nCreate account\nCover image for Impossible⁉️ CSS only syntax highlighting 😱 ...with a single element and GRADIENTS 🤯\nGrahamTheDev\nGrahamTheDev\n\nPosted on Aug 16, 2023 • Edited on Nov 12, 2023\n105 12 16 3 8\nImpossible⁉️ CSS only syntax highlighting 😱 ...with a single element and GRADIENTS 🤯\n#css\n#html\n#javascript\n#webdev\nExperiments on the web (13 Part Series)\n1 I built a countdown timer without using any JS...or CSS...or HTML 😲?? [tutorial on dynamic GIFs for email marketing]\n2 A pure CSS password generator! 😱 They said it can't be done...\n... 9 more parts...\n12 Video encoded as emojis⁉️ Stored in a DB? 😱🤯\n13 Single div ACTUALLY 3D cube📦 in Pure CSS! (They said it was impossible!)\n\nAwww shi...here we go again.\n\nYes I am back, breaking the internet once more. I know, it has been a while.\n\nBut this time...I may have come up with something kind of useful?\n\nWe will see!\n\nFirst of all, the title is not clickbait.\n\nI have actually built a (buggy) syntax highlighting system, that uses just a single element and can function in pure CSS (for displaying snippets).\n\nNo <span> elements for each different part of syntax that is highlighted, no bulky JavaScript libraries to render everything.\n\nSounds interesting? Let's jump right in with a code example:\nAn example\n\nLook at this beautiful syntax highlighting!\n\nA code snippet with dark theme syntax highlighting applied\n\nAll done in less than 1kb of code!\n\nHere is the HTML:\n\n<pre>\nlet thisContent = 'highlighted';\nfor(x = 0; x &lt; 10; x++){\n    console.log('loopy loopy loop' + x);\n}\n</pre>\n\nNote: Please use <pre><code> for marking up code blocks in production.\n\nAnd here is the CSS:\n\nbody{\n    background-color: #111;\n    padding: 20px;\n    color: white;\n    font-size: 125%;\n}\n\npre{\n    width: 80ch;\n    font-family: monospace;\n    font-size: 30px;\n    line-height: 30px;\n    background: \n        linear-gradient(to right, white 0ch, #78dce8 0ch, #78dce8 3ch, white 3ch, white 18ch, #FFD658 18ch, #FFD658 31ch, white 31ch, white 80ch), \n        linear-gradient(to right, white 0ch, #a6e22e 0ch, #a6e22e 3ch, white 3ch, white 12ch, #f92672 12ch, #f92672 15ch,  #A7C 15ch,  #A7C 17ch, white 17ch, white 80ch), \n        linear-gradient(to right, white 0ch, white 0ch, white 4ch, #fd971f 4ch, #fd971f 11ch, white 11ch, white 12ch, #a6e22e 12ch, #a6e22e 15ch, white 15ch, white 16ch, #FFD658 16ch, #FFD658 34ch, #f92672 34ch, #f92672 37ch, white 37ch, white 80ch), \n        linear-gradient(to right, white 0ch, white 0ch, white 80ch), \n        linear-gradient(to right, white 0ch, white 0ch, white 80ch); \n    background-repeat: no-repeat; \n    background-size: 80ch 30px, 80ch 60px, 80ch 90px, 80ch 120px, 80ch 150px; \n    background-clip: text; \n    -webkit-background-clip: text; \n    color: transparent;\n}\n\nThat is it!\nSo what?\n\nSo...highlight.js, one of the leading syntax highlighting libraries is...wait for it...286Kb (and that is minified and gZipped! It is over 980kb of raw JS 😱).\n\nThat is a huge amount of JS to push down the wire if all you are wanting to do is show a code snippet with some syntax highlighting.\n\nYet many sites do this, destroying their performance.\n\nSo while the demo may not look that impressive, the 99.8% data saving is pretty impressive!\nExplanation: how does it work?\n\nSo what we are doing is applying a very carefully created background linear-gradient to the <pre> element, that looks like this:\n\nA rectangular shape with various rectangles within it in different colours. The shapes correspond to where text was previously shown\n\nEach of the coloured blocks corresponds to some text we want to highlight.\n\nsome code in front of the rectangular shapes we created in the background using a linear gradient. The parts of the code that are to be highlighted line up with the different coloured blocks on the background.\n\nThen all we do is use background-clip: text;, a CSS property that allows us to say \"hey, can you please use the text above the background as a mask, and only show the background if there is text in front of it, otherwise show a transparent background.\"\n\nAnd we end up with this example:\nWorking Example\n\nBut if it is that easy, then why doesn't everyone do this?\n\nThe short answer is: linear-gradients and alignment.\n\nTo try and align the linear gradient by hand would take a lot of time.\n\nAlso, this relies on lines not \"wrapping\", as otherwise the gradient will not align anymore (although with some clever maths, we could probably account for this! Not part of this demo though).\n\nYou see, in order to generate the gradient we need to know:\n\n    how wide each highlighted section to be generated is\n    how many lines of text there are\n    to know what colour each part needs to be highlighted in.\n\nThe second part is straight-forward. But working out the width of each item to be highlighted is hard, working out what to highlight...is really hard!\n\nLuckily...I am silly enough to build a fully working editor, which finds relevant \"tokens\" within a JavaScript snippet, and then uses these to calculate where each part of the linear-gradient should be.\n\nWanna try it?\nThe Snippet generator\n\nInstructions:\n\n    Input: Enter a short JS snippet in the first box(*)\n    Preview: Check that the preview is as expected (Preview) (this is a janky setup for highlighting, it may fail on certain snippets).\n    Output: Copy and paste the resulting code from the output section into your code! (Don't forget, this is designed for a dark background, so you need a dark background on either your <body> element or to create a wrapper around the <pre> element and give that a dark background.\n\n(*) Due to limitations of this demo, please make sure that no line is more than 70 characters in length.\n\nThat is it, give it a try below:\n\nUnderstanding how this works\n\nLook, that JavaScript is a hot mess of cobbled together snippets...I would not expect you to try and follow it.\n\nHere is the simplified version of what is happening though:\n\n    We grab each line in the (input) section and loop through it.\n    We use a RegEx (yes...I know) to capture key terms in JavaScript such as let and function etc.\n    We then create a linear gradient for each line, with the length of each section of the gradient corresponding to found matches.\n    Finally, we adjust the background-size CSS property to account for the height of the given lines of code, so that each linear-gradient declaration we have lines up with the length and height of each line of code.\n\nThat last part might be the most confusing part.\n\nTo explain better, think of the following:\n\nlet a = 'test';\nlet b = a + ' your code';\n\nLet's assume that all we want to do is highlight the strings in these two lines ('test' and ' your code').\n\nSo we need 2 gradients.\n\nThey need to be 25 characters long (the length of the longest line) and we need to have a coloured block appear at:\n\n    character 9 to 13 on line 1\n    character 13 to 23 on line 2\n\nThese turn into linear gradients as follows:\n\nlinear-gradient(to right, white 0ch, white 8ch, red 8ch, red 14ch, white 14ch, white 25ch),\n\nlinear-gradient(to right, white 0ch, white 12ch, red 12ch, red 24ch, white 24ch, white 25ch);\n\nWhere \"red\" is our highlight colour and \"white\" is our non-highlighted colour. (our characters are 0 indexed in case you wonder why the number / position of each character is 1 less).\n\nBUT, if we just tried to use those two gradients on their own, it would fail.\n\ncode snippet mirroring example given, but the syntax highlighting does not line up on the second row\n\nThis is because the first gradient has taken up 100% of the height.\n\nSo to fix this, we need to set the height of each of the linear-gradient declarations, using background-size.\n\nThis would look like this:\n\nbackground-size: 25ch 22px, 25ch 44px; \n\nAssuming a line-height of 22px (so the first gradient is 22px high from the top, to cover the height of the first line, and then the second gradient is 44px high from the top, to cover the second line. This is because linear gradients stack on top of each other and the one that is declared first is on top).\n\nOh but it still doesn't work yet.\n\nYou see, gradients repeat by default. So we also need to set background-repeat: no-repeat;\n\nNow we get a working highlight on the strings:\n\ncode snippet mirroring example given, this time the red highlight is directly over the two strings\n\nAnd that is essentially it, just add different colours for each type of token and you have a \"working\" syntax highlighting system in pure CSS with no <span> elements.\nBut...why?\n\nOk, ok. You have now read the whole article and are still asking why. That is fair!\n\nTo be honest, I just had a silly idea.\n\nBut also, I like to take something and use it in a way that was not intended.\n\nI find it is a great way to learn as there are no tutorials I can follow for things like this. I just have to keep trying things and work out how to solve the problem.\n\nIt also really helps you learn things more deeply as you need to read the docs and experiment. (for example, I learned a couple of things with linear-gradients that I didn't fully understand before, such as how they stack when you declare multiple linear-gradients as a single background)\nSo what do you think?\n\nCould this actually become something useful?\n\nCan you imagine generating super light-weight code snippets for documentation as part of the build step, and just serving CSS and a single element?\n\nAlthough it is a joke project right now, could the concept actually work in production? 🤔\n\nLet me know what you think in the comments. 💗\nExperiments on the web (13 Part Series)\n1 I built a countdown timer without using any JS...or CSS...or HTML 😲?? [tutorial on dynamic GIFs for email marketing]\n2 A pure CSS password generator! 😱 They said it can't be done...\n... 9 more parts...\n12 Video encoded as emojis⁉️ Stored in a DB? 😱🤯\n13 Single div ACTUALLY 3D cube📦 in Pure CSS! (They said it was impossible!)\nprofile\nQuadratic AI\nPromoted\n\nQuadratic AI\nQuadratic AI – The Spreadsheet with AI, Code, and Connections\n\n    AI-Powered Insights: Ask questions in plain English and get instant visualizations\n    Multi-Language Support: Seamlessly switch between Python, SQL, and JavaScript in one workspace\n    Zero Setup Required: Connect to databases or drag-and-drop files straight from your browser\n    Live Collaboration: Work together in real-time, no matter where your team is located\n    Beyond Formulas: Tackle complex analysis that traditional spreadsheets can't handle\n\nGet started for free.\n\nWatch The Demo 📊✨\nTop comments (23)\nSubscribe\npic\n \nlionelrowe profile image\n•\nAug 17 '23\n\n    All done in less than 1kb of code!\n    ...\n    So...highlight.js, one of the leading syntax highlighting libraries is...wait for it...286Kb (and that is minified and gZipped! It is over 980kb of raw JS 😱).\n    ...\n    So while the demo may not look that impressive, the 99.8% data saving is pretty impressive!\n\nYou're not comparing like-for-like, though. highlight.js's source code implements the syntax highlighting logic and grammars for the languages it supports, not the output of highlighting a given code block. If you want to compare output size, which is only really relevant if you're doing the highlighting on the server side, then the equivalent highlight.js output is this (you can try it in the highlight.js playground):\n\n<pre class=\"theme-atom-one-dark shadow-3xl text-sm relative overflow-hidden max-w-full tab-size h-full\"><span class=\"hljs mb-0 p-4 block min-h-full overflow-auto\"><code><span class=\"hljs-keyword\">let</span> thisContent = <span class=\"hljs-string\">'highlighted'</span>;\n<span class=\"hljs-keyword\">for</span>(x = <span class=\"hljs-number\">0</span>; x &lt; <span class=\"hljs-number\">10</span>; x++){\n    <span class=\"hljs-variable language_\">console</span>.<span class=\"hljs-title function_\">log</span>(<span class=\"hljs-string\">'loopy loopy loop'</span> + x);\n}</code></span><small class=\"bg-black/30 absolute top-0 right-0 uppercase font-bold text-xs rounded-bl-md px-2 py-1\"><span class=\"sr-only\">Language:</span>JavaScript</small></pre>\n\n...which is 737 bytes, plus the CSS required for the various classes (hljs-keyword, hljs-string, etc). Even with very aggressive dead code removal, that CSS would undoubtedly push it over the ~1.2k bytes of your version, but that wouldn't necessarily hold for significantly longer code snippets, as the length of the linear-gradient increases along with the highlighted code.\n\nI do think the CSS gradient approach is an interesting and unique idea, and I'd be interested to see if it could be expanded into a comprehensive and robust syntax highlighting solution. Here are some currently failing cases based on your codepen logic:\n\n/* 1 */ let meDoThis = 'let me do this';\n/* 2 */ let num = 1+5;\n/* 3 */ let hanzis = '呜呜呜' + 1111;\n/* 4 */ let emojis = '💩💩💩' + 1111;\n/* 5 */ let longLine = 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa';\n\nOutput:\n\nImage description\n\n    1 and 2 could definitely be fixed, at the cost of implementing a much more robust JS grammar (for reference, here's highlight.js's).\n     \n\n    3 and 4 are significantly more problematic, as many characters are wider or narrower than printable ASCIIs, even in monospace fonts. In TTY environments, text is laid out in a grid format of columns and rows in which characters can have column widths of 0, 1, or 2; but in-browser pre elements have no such restrictions, and wide/narrow characters usually aren't an exact multiple of monospaced characters (as you can see from the screenshot, \"呜呜呜\" and \"💩💩💩\" are different widths, whereas in a TTY they'd both be the same width as \"XXXXXX\").\n     \n\n    Actually, I think 💩💩💩 is already being treated as length=6 here, not due to physical width but because JavaScript has a Unicode problem, but even that's not wide enough to cover its physical width.\n     \n\n    You could try physically measuring the characters with something like CanvasRenderingContext2D#measureText, but that would be a significant increase in complexity, a performance hit in the browser, and impossible on the server side.\n     \n\n    5 might fixable easily enough without line wrap, but adding line wrap would add a host of new problems, as now each \"physical\" line (accounting for where the line break would happen based on character width) would need its own gradient segment.\n\nAnyway, I'd be interested to see where you take this if you try tackling some of those cases 😄\n \ngrahamthedev profile image\n•\nAug 17 '23\n\nThanks for taking my silly post so seriously lol.\n\nIt was a really well thought out rebuttal of the idea, love it!\n\nOne thing that you wasted too much time on was the highlighting being broken though...I used RegExs for tokenisation...it was never going to be robust which is why I said it is likely to break and commented (I know...) when I said i used a RegEx.\n\nThe gradient part would work if the there was a robust highlighter, that wasn't the concept being explored here!\n\nEither way, I enjoyed the write up and I hope you enjoyed this silly experiment! 😂💗\n \ngrahamthedev profile image\n•\nAug 16 '23\n\nIt has been a while, how are you all?\n\nWhat did you think of this silly idea? 🤔💗\n \ningosteinke profile image\n•\nAug 16 '23 • Edited on Aug 16\n\nHi Graham, so glad you're back! (and back to your recommended Monday/Wednesday posting schedule?)\nI will tell you how I like your idea when I eventually read your post, but I have seen enough to put it on my reading list and give you the \"exploding head\" sticker 😲🤯😹\n\nP.S. I still haven't had time to give Mads' post more attention, but I see that you did ...\nmadsstoumann\nSyntax-Highlight CSS with Semantic HTML — and get Dark Mode for free\nMads Stoumann ・ Aug 12\n#css #html #webdev #showdev\n\n... and took his approach some steps further.\n\nSo I am very curious...\n \ngrahamthedev profile image\n•\nAug 16 '23\n\nHaha thanks bud! I never had a schedule, I just released in “chaos mode” whenever I felt like it! 🤣💗\nThread\n \ningosteinke profile image\n•\nAug 16 '23 • Edited on Aug 16\n\nYou used to post some reading + reaction stats of your posts. Maybe the Monday/Wednesday thing was only my personal takeway. So now it's my mid-week social media time slot but I won't release anything new before next week, because I already spent too much time refining my latest post.\n\nP.S. I updated my comment above to give credits to Mads\nP.P.S. I found your stats post. Here it is:\ngrahamthedev\nMy writing stats for 2021, best time to post on DEV and plans for 2022-2023 [over 250 articles planned]\nGrahamTheDev ・ Jan 3 '22\nThread\n \ngrahamthedev profile image\n•\nAug 16 '23 • Edited on Aug 16\n\nOh 100% I wrote when the best times to post were...I just didn't follow my own advice! 😂💗\n\nThanks for crediting Mads, but this concept is entirely different, the only thing I thought was \"can we syntax highlight in pure CSS\". 💗\n \npepelsbey profile image\n•\nAug 19 '23\n\nI like the idea! I think this might improve rendering performance by reducing the number of nested elements. I just hope that rendering CSS gradients won’t slow it down 😅 I’d also like to point out that <pre> is just pre-formatted text, like poetry or some other plain-text formatted content. To markup something as code, you’re supposed to use <pre><code>. This is recommended in the spec and a common approach for Markdown engines.\n \ngrahamthedev profile image\n•\nAug 19 '23 • Edited on Aug 19\n\nYeah, but then it isn't a single element if I use <pre><code>, I always deliver on my \"clickbait\" titles. 😂.\n\nI 100% agree though, it should be pre and code if you are doing it properly and so I added a small note about that under the first HTML snippet. 🙏🏼💗\n \npepelsbey profile image\n•\nAug 19 '23\n\nI know, right? When CSS-only Mona Lisa is coded with two divs it’s not a piece of art anymore 😭\n \nnjong_emy profile image\n•\nAug 16 '23\n\nI don't know how you do it, but you do it Graham! Feels like a whole lot of maths, but you're a CSS guru I won't lie 😫💕🤌🤌 This is brilliant\n \ngrahamthedev profile image\n•\nAug 16 '23\n\nHaha thanks Emy. I am TERRIBLE at CSS...I just fiddle with things until they work lol. 😂💗\n \niamcymentho profile image\n•\nAug 17 '23\n\nMind-blowing CSS sorcery! 🎩✨ Your ingenious approach to achieving syntax highlighting with gradients within a single element is truly remarkable. Breaking down complex concepts into a visually captivating format like this is both educational and inspiring. Kudos for pushing the boundaries of what's possible in web development!\n \ngrahamthedev profile image\n•\nAug 17 '23\n\nThank you, I am glad you liked my silly idea lol! 🙏🏼💗\n \nthemoviemadman profile image\n•\nJun 13 '24\n\nSaying that it's CS only syntax highlighhting when there's a clear JS regex selection function hiding in the wings is a bit cheeky, Graham... But this is impressive nonetheless with cutting this down from the near 1MB raw JS needed for a simple syntax highlight library... Nice work.\n \ngrahamthedev profile image\n•\nJun 15 '24\n\nI might not have made it clear that you can simply ship the CSS and HTML and it will all work.\n\nRegex is for real time or for generating the CSS in the first place.\n\nI don’t think that is cheeky, I just think that is realistic. You could do it all by hand if you wanted though…one of the few times you would probably then be grateful for Regex though! Hahaha. 💗\n \ntqbit profile image\n•\nAug 17 '23\n\nThis is brilliant! I'd love to see the clever math solution tho\n \nfabiosantoscode profile image\n•\nAug 18 '23\n\nI think this can be useful in web editors. Maintaining an application that uses contenteditable is an experience that still gives me nightmares, but you are fine if you can eliminate its need.\n\nWith syntactic highlighting like this you may be able to use a textarea instead, or a contenteditable span where you automatically remove any pasted formatting, which will let you sleep at night.\n\nJust make the token finding and CSS generation be real-time, and you should be good to go.\n \ngrahamthedev profile image\n•\nAug 18 '23\n\nThere is a real-time example further down the article. It sucks and is buggy, but you can at least play with that! 😂💗\n \njuansanchez profile image\n•\nOct 4 '23\n\nThis is insane, and at the same time, a perfect example of lateral thinking, that is a powerful thinking method when developing.\n\nCongratulations\n \nrespect17 profile image\n•\nAug 18 '23\n\nTHANKS\nView full discussion (23 comments)\nCode of Conduct • Report abuse\nprofile\nPulumi\nPromoted\n\nImage of PulumiUP 2025\nTransform Your Cloud Infrastructure\n\nJoin PulumiUP 2025 on May 6 for Expert Insights & Demos.\n\nRegister Now\nRead next\nomriluz1 profile image\nSource Maps for JavaScript Debugging\n\nOmri Luz - Apr 4\nomriluz1 profile image\nUsing Console.time and Performance.now for Profiling\n\nOmri Luz - Apr 3\naniruddhaadak profile image\nCodePen Games with AI\n\nANIRUDDHA ADAK - Apr 3\nomriluz1 profile image\nModule Federation in Modern JavaScript\n\nOmri Luz - Apr 1\nGrahamTheDev\nAccessibility Specialist. I focus on ensuring content created, events held and company assets are as accessible as possible, for as many people as possible.\n\n    Location\n    United Kingdown\n    Work\n    Head of Accessibility - SFG20\n    Joined\n    Jan 2, 2021\n\nMore from GrahamTheDev\nVibeScript - GenZ programming language\n#ai #javascript #webdev #programming\nSingle div ACTUALLY 3D cube📦 in Pure CSS! (They said it was impossible!)\n#css #webdev #showdev #codepen\nThe Perceptron! [visually see an AI learn in real time! 👀]\n#ai #machinelearning #javascript #beginners\nprofile\nStellar Development Foundation\nPromoted\n\nImage of Stellar post\nFrom Hackathon to Funded - Stellar Dev Diaries Ep. 1 🎥\n\nEver wondered what it takes to go from idea to funding? In episode 1 of the Stellar Dev Diaries, we hear how the Freelii team did just that. Check it out and follow along to see the rest of their dev journey!\n\nWatch the video\n\nThank you to our Diamond Sponsor Neon for supporting our community.\n\nDEV Community — A constructive and inclusive social network for software developers. With you every step of your journey.\n\n    Home\n    DEV++\n    Reading List\n    Podcasts\n    Videos\n    Tags\n    DEV Help\n    Forem Shop\n    Advertise on DEV\n    DEV Challenges\n    DEV Showcase\n    About\n    Contact\n    Free Postgres Database\n    Software comparisons\n\n    Code of Conduct\n    Privacy Policy\n    Terms of use\n\nBuilt on Forem — the open source software that powers DEV and other inclusive communities.\n\nMade with love and Ruby on Rails. DEV Community © 2016 - 2025.\n","commandType":4},{"text":"can we do smth like this instead?\n\n\n\n    HTML CSS \n\n    Result\n    Skip Results Iframe\n\nEDIT ON\n\n/**\n * GHColors theme by Avi Aryan (http://aviaryan.in)\n * Inspired by Github syntax coloring\n */\n\ncode[class*=\"language-\"],\npre[class*=\"language-\"] {\n    color: #393A34;\n    font-family: \"Consolas\", \"Bitstream Vera Sans Mono\", \"Courier New\", Courier, monospace;\n    direction: ltr;\n    text-align: left;\n    white-space: pre;\n    word-spacing: normal;\n    word-break: normal;\n    font-size: 0.95em;\n    line-height: 1.2em;\n\n    -moz-tab-size: 4;\n    -o-tab-size: 4;\n    tab-size: 4;\n\n    -webkit-hyphens: none;\n    -moz-hyphens: none;\n    -ms-hyphens: none;\n    hyphens: none;\n}\n\npre[class*=\"language-\"]::-moz-selection, pre[class*=\"language-\"] ::-moz-selection,\ncode[class*=\"language-\"]::-moz-selection, code[class*=\"language-\"] ::-moz-selection {\n    background: #b3d4fc;\n}\n\npre[class*=\"language-\"]::selection, pre[class*=\"language-\"] ::selection,\ncode[class*=\"language-\"]::selection, code[class*=\"language-\"] ::selection {\n    background: #b3d4fc;\n}\n\n/* Code blocks */\npre[class*=\"language-\"] {\n    padding: 1em;\n    margin: .5em 0;\n    overflow: auto;\n    border: 1px solid #dddddd;\n    background-color: white;\n}\n\n:not(pre) > code[class*=\"language-\"],\npre[class*=\"language-\"] {\n}\n\n/* Inline code */\n:not(pre) > code[class*=\"language-\"] {\n    padding: .2em;\n    padding-top: 1px; padding-bottom: 1px;\n    background: #f8f8f8;\n    border: 1px solid #dddddd;\n}\n\n.token.comment,\n.token.prolog,\n.token.doctype,\n.token.cdata {\n    color: #999988; font-style: italic;\n}\n\n.token.namespace {\n    opacity: .7;\n}\n\n.token.string,\n.token.attr-value {\n    color: #e3116c;\n}\n.token.punctuation,\n.token.operator {\n    color: #393A34; /* no highlight */\n}\n\n.token.entity,\n.token.url,\n.token.symbol,\n.token.number,\n.token.boolean,\n.token.variable,\n.token.constant,\n.token.property,\n.token.regex,\n.token.inserted {\n    color: #36acaa;\n}\n\n.token.atrule,\n.token.keyword,\n.token.attr-name,\n.language-autohotkey .token.selector {\n    color: #00a4db;\n}\n\n.token.function,\n.token.deleted,\n.language-autohotkey .token.tag {\n    color: #9a050f;\n}\n\n.token.tag,\n.token.selector,\n.language-autohotkey .token.keyword {\n    color: #00009f;\n}\n\n.token.important,\n.token.function,\n.token.bold {\n    font-weight: bold;\n}\n\n.token.italic {\n    font-style: italic;\n}\n\n","commandType":4},{"text":"check out @https://github.com/soulshined/ft-syntax-highlight to add syntax highlighting for code blocks","commandType":4},{"text":"this is terrible maybe we can just make it work with pandoc stuff since we're using pandoc with the template anyways @scripts \n\n\n 14\n\nI have a Markdown file, e.g.\n\n---\ntitle: Question\ndate: 2020-07-07\n---\n\nThis is some code:\n\n```python\ndef add(a, b):\n    return a+b\n```\n\nand I'd like to leverage the syntax highlighting of Pandoc. This works fine:\n\npandoc -s --to=html5 2020-07-07-question.md\n\nBecause it includes the necessary CSS, e.g.:\n\n<style>\n    code{white-space: pre-wrap;}\n    span.smallcaps{font-variant: small-caps;}\n    span.underline{text-decoration: underline;}\n    div.column{display: inline-block; vertical-align: top; width: 50%;}\n    div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}\n    ul.task-list{list-style: none;}\n    ...\n\nHowever, I'm actually using Pypandoc to compile the Markdown into HTML, and then I'm including the HTML into a web page. Therefore, I'd like the CSS to be standalone, something I can reference in a file, e.g.\n\n<link rel='stylesheet' href='/path/to/some/highlighting.css'/>\n\nHow can I do this?\n\n    markdownpandoc\n\nShare\nImprove this question\nFollow\nasked Jul 7, 2020 at 11:54\njds's user avatar\njds\n8,2801313 gold badges6868 silver badges111111 bronze badges\nAdd a comment\n2 Answers\nSorted by:\n23\n\nOne can inspect the default template used for HTML generation by running\n\npandoc --print-default-template=html5\n\nThe result will depend on your version, but should contain everything interesting. E.g., for pandoc 2.10, this will include the code\n\n<style>\n  $styles.html()$\n</style>\n\nwhich causes pandoc to include a file styles.html, the content of which is retrievable via\n\npandoc --print-default-data-file=templates/styles.html\n\nIn principle, this is what you are looking for. Now, you'll notice that there are a lot of templating commands, and the syntax highlighting CSS seems not to be included. This is because pandoc generates the CSS on the fly: the styles are stored in a way which makes it easy to use them with other outputs as well. Checkout --list-highlight-styles and --print-highlight-style.\n\nWhat this means for you is that you can either just generate HTML output and copy-paste the code from there. Or you can create a helper template which just contains\n\n$-- this is file highlighting-css.template\n$highlighting-css$\n\nThen use that template to create your highlighting.css:\n\npandoc --template=highlighting-css.template sample.md -o highlighting.css\n\nNote that sample.md must contain a highlightable code block such as\n\n~~~html\n<p>placeholder</p>\n~~~\n\nThis is necessary, as pandoc generates highlighting CSS only if there is something to highlight.\n\n","commandType":4},{"text":"no completely wrong. I want to use the pandoc syntax highlighting but we probably need to include the css in the template","commandType":4},{"text":"do this all for me","commandType":4},{"text":"Syntax highlighting\n\nPandoc will automatically highlight syntax in fenced code blocks that are marked with a language name. The Haskell library skylighting is used for highlighting. Currently highlighting is supported only for HTML, EPUB, Docx, Ms, Man, and LaTeX/PDF output. To see a list of language names that pandoc will recognize, type pandoc --list-highlight-languages.\n\nThe color scheme can be selected using the --highlight-style option. The default color scheme is pygments, which imitates the default color scheme used by the Python library pygments (though pygments is not actually used to do the highlighting). To see a list of highlight styles, type pandoc --list-highlight-styles.\n\nIf you are not satisfied with the predefined styles, you can use --print-highlight-style to generate a JSON .theme file which can be modified and used as the argument to --highlight-style. To get a JSON version of the pygments style, for example:\n\npandoc -o my.theme --print-highlight-style pygments\n\nThen edit my.theme and use it like this:\n\npandoc --highlight-style my.theme\n\nIf you are not satisfied with the built-in highlighting, or you want to highlight a language that isnâ€™t supported, you can use the --syntax-definition option to load a KDE-style XML syntax definition file. Before writing your own, have a look at KDEâ€™s repository of syntax definitions.\n\nIf you receive an error that pandoc â€œCould not read highlighting themeâ€, check that the JSON file is encoded with UTF-8 and has no Byte-Order Mark (BOM).\n\nTo disable highlighting, use the --no-highlight option.","commandType":4},{"text":"Syntax highlighting\n\nPandoc will automatically highlight syntax in fenced code blocks that are marked with a language name. The Haskell library skylighting is used for highlighting. Currently highlighting is supported only for HTML, EPUB, Docx, Ms, Man, and LaTeX/PDF output. To see a list of language names that pandoc will recognize, type pandoc --list-highlight-languages.\n\nThe color scheme can be selected using the --highlight-style option. The default color scheme is pygments, which imitates the default color scheme used by the Python library pygments (though pygments is not actually used to do the highlighting). To see a list of highlight styles, type pandoc --list-highlight-styles.\n\nIf you are not satisfied with the predefined styles, you can use --print-highlight-style to generate a JSON .theme file which can be modified and used as the argument to --highlight-style. To get a JSON version of the pygments style, for example:\n\npandoc -o my.theme --print-highlight-style pygments\n\nThen edit my.theme and use it like this:\n\npandoc --highlight-style my.theme\n\nIf you are not satisfied with the built-in highlighting, or you want to highlight a language that isnâ€™t supported, you can use the --syntax-definition option to load a KDE-style XML syntax definition file. Before writing your own, have a look at KDEâ€™s repository of syntax definitions.\n\nIf you receive an error that pandoc â€œCould not read highlighting themeâ€, check that the JSON file is encoded with UTF-8 and has no Byte-Order Mark (BOM).\n\nTo disable highlighting, use the --no-highlight option.\n\n@scripts \n\nwe want to use pandoc syntax highlighting for code blocks","commandType":4},{"text":"@scripts @blog @slides @index.html \n\n\nI want some mechanism to dynamically build an index of talks with links to recordings and/or slides\n\nit should be on its own page and follow th hierarchy of\n<talk title>\n<abstract>\n<slides> <recording>\n<list of conferences presented>","commandType":4},{"text":"I moved teh slides to @talks ","commandType":4},{"text":"the talks in dex looks wrong\n\neg\n\nBuilding AI-powered Developer Tools with Backstage\n\nThis talk explores how to integrate AI capabilities into Backstage plugins to enhance developer productivity and improve internal developer platforms.\nSlides\nRecording\n\nPresented at:\nKubeCon + CloudNativeCon Europe, ()\n, ()\n","commandType":4},{"text":"the slide link 404s","commandType":4},{"text":"the list still looks goofy\n\n\n\nBuilding AI-powered Developer Tools with Backstage\n\nA deep dive into how to integrate AI capabilities into Backstage plugins to enhance developer productivity.\nSlides\nRecording\n\nPresented at:\nKubeCon + CloudNativeCon Europe, ()\nFOSDEM, ()\n, ()\nBuilding AI-powered Developer Tools with Backstage\n\nThis talk explores how to integrate AI capabilities into Backstage plugins to enhance developer productivity and improve internal developer platforms.\nSlides\nRecording\n\nPresented at:\nKubeCon + CloudNativeCon Europe, ()\n, ()\n","commandType":4},{"text":"no effect","commandType":4},{"text":"\\","commandType":4},{"text":"now there are no talks listed in the index","commandType":4},{"text":"@Containerfile \nfix the apache config so we don't have to add .html to links and don't include .md files in being served","commandType":4},{"text":"going to http://localhost:8080/blog/hello-world still 404s and the md files are accessible","commandType":4},{"text":"","commandType":4},{"text":"no this is terrible","commandType":4},{"text":"we could just put it into an actual file and add it to the container","commandType":4},{"text":"yay it works!\n\nwe should add another custom page for forbidden\n\nForbidden\n\nYou don't have permission to access this resource.","commandType":4},{"text":"add a f403 file","commandType":4},{"text":"modify @blog-build.sh to also generate a sitemap","commandType":4},{"text":"add a robots txt","commandType":4},{"text":"this can just be static","commandType":4},{"text":"@robots.txt disallow ai scraping on blog postsd","commandType":4}]


key: aiService.generations
value:
  [{"unixMs":1745960709778,"generationUUID":"c8ff6b70-9e25-4178-87d2-7879bb4525fa"},{"unixMs":1745960724722,"generationUUID":"120fc8c4-57fa-4507-8305-54a5fbd8d9b6","type":"chat"},{"unixMs":1745960733582,"generationUUID":"cd5bcc1f-3a28-4c55-9d00-1b912e78108f","type":"apply","textDescription":"hello-world.md"},{"unixMs":1745960773460,"generationUUID":"cb98b575-9b5f-4931-984f-860034156a99","type":"apply","textDescription":"hello-world.md"},{"unixMs":1745960831393,"generationUUID":"ffbb7f03-3014-4c5a-9afd-b4e9e2341713"},{"unixMs":1745960845301,"generationUUID":"360abbdc-013a-4d0c-b9bc-2a091356ff87","type":"chat"},{"unixMs":1745960861894,"generationUUID":"ffd7a161-a0aa-4940-82b1-b7f01f5825e5","type":"apply","textDescription":"hello-world.md"},{"unixMs":1745960945274,"generationUUID":"900f26c8-021a-4af7-bead-c5eb6f0b9cc6"},{"unixMs":1745960959678,"generationUUID":"05bdd5e7-bcac-48ef-8db2-1f27455e00b1","type":"chat"},{"unixMs":1745960975704,"generationUUID":"a5e526d0-1cf6-4a48-8ffa-daffd21ecfa9","type":"apply","textDescription":"hello-world.md"},{"unixMs":1745961027803,"generationUUID":"f21fff79-15af-471e-b360-28bae80d4ea6","type":"apply","textDescription":"hello-world.md"},{"unixMs":1745961206780,"generationUUID":"5e963e8c-8452-4f0c-bdd9-58eab1f6f7ff"},{"unixMs":1745961221844,"generationUUID":"3badef32-305e-46dd-a0bb-c67096f80787","type":"chat"},{"unixMs":1745961293149,"generationUUID":"4646ed98-fd98-4035-bf36-4456ed75e46a","type":"apply","textDescription":"template.html"},{"unixMs":1745961415617,"generationUUID":"57c979af-27f0-4968-8efe-810c92284070","type":"chat"},{"unixMs":1745961617885,"generationUUID":"cee9637e-5cc3-4d9b-996c-71a2ed74cb06"},{"unixMs":1745961623454,"generationUUID":"1b8bb5a1-5f3d-4efd-83ea-f0dff8495ef3","type":"chat"},{"unixMs":1745961657041,"generationUUID":"c7a78834-7155-4e4f-96f3-9ba6e3548928","type":"apply","textDescription":"template.html"},{"unixMs":1745961727523,"generationUUID":"4cd1e624-1ed8-4ed2-add3-99f176162b4f"},{"unixMs":1745961809579,"generationUUID":"c2cf00aa-d24b-49c6-b483-9583a0c7a622"},{"unixMs":1745961817905,"generationUUID":"ab38c7a8-70d3-4e92-b29f-982ba94e1aaa","type":"chat"},{"unixMs":1745962007235,"generationUUID":"a4747854-f6cf-45c1-a4ea-4d58b7aad0c0"},{"unixMs":1745962035404,"generationUUID":"3ed65594-5236-4a7b-bbf3-1c9be5dbcba5","type":"chat"},{"unixMs":1745962066949,"generationUUID":"9182775b-0f05-4554-a085-b84b8f604b21"},{"unixMs":1745962095193,"generationUUID":"5b84e195-9bb5-47fc-8352-8157cad6c5e0","type":"chat"},{"unixMs":1745962204708,"generationUUID":"7be8c6e3-1533-4cc0-b13d-bc5e1d49f64d","type":"chat"},{"unixMs":1745962440926,"generationUUID":"17b4ec56-e983-468a-b8c0-34ee7fe5a3da","type":"chat"},{"unixMs":1745962458363,"generationUUID":"f0a62411-b06f-457a-b7a3-47ba906f1b64","type":"apply","textDescription":"blog-build.sh"},{"unixMs":1745962472757,"generationUUID":"c100f188-c990-49eb-baa7-f81f3b4d4034"},{"unixMs":1745962474178,"generationUUID":"49d883a2-22f5-44db-90de-136d3f2d3d87"},{"unixMs":1745962484330,"generationUUID":"56a0b52b-5973-4f7a-b208-6a5dd50b489f","type":"chat"},{"unixMs":1745962501768,"generationUUID":"c4a03eb5-25da-464e-98d3-18e1b82a6088","type":"apply","textDescription":"blog-build.sh"},{"unixMs":1745962653194,"generationUUID":"40c8fcd1-0a0d-435e-957e-d54619d4a592","type":"apply","textDescription":"blog-build.sh"},{"unixMs":1746024878115,"generationUUID":"60fb9fe8-7e63-4efa-b642-03e316edbb4d"},{"unixMs":1746024880990,"generationUUID":"72d5e7bf-8cd9-4ebb-83e2-efceb81545d6"},{"unixMs":1746024895169,"generationUUID":"8ab89b7a-5ce4-4c2d-8a79-9f6e02c0f14a"},{"unixMs":1746024921924,"generationUUID":"4c05c610-0112-4161-a73b-1dcfa7af4492"},{"unixMs":1746025034250,"generationUUID":"1fba7018-380a-4e2a-b1f7-dab8107439f2","type":"chat"},{"unixMs":1746025078860,"generationUUID":"64bbb812-4c46-4aeb-97be-2055cd4c70bc","type":"apply","textDescription":"blog-build.sh"},{"unixMs":1746025092179,"generationUUID":"3581b283-c251-4517-99ca-2676713ee595","type":"apply","textDescription":"index.html"},{"unixMs":1746025437741,"generationUUID":"146d5a1f-b9c4-4c84-b39c-fc1baebedcdb","type":"apply","textDescription":"backstage-ai.md"},{"unixMs":1746025466485,"generationUUID":"f6464224-2bc1-4044-a07a-c27095ad168d","type":"apply","textDescription":"index.html"},{"unixMs":1746025491428,"generationUUID":"310d7f82-b24b-4c53-ab66-2ac63c4ca8fa","type":"apply","textDescription":"blog-build.sh"},{"unixMs":1746025501388,"generationUUID":"427449fb-d675-4adb-bd53-db96fbb5d900","type":"apply","textDescription":"example-talk.md"},{"unixMs":1746025508923,"generationUUID":"3d3e72fd-dfa8-4447-bc71-80f7359aa995","type":"apply","textDescription":"template.html"},{"unixMs":1746028428369,"generationUUID":"aa0a0b63-fb77-4a94-9f38-29d63a66eaad"},{"unixMs":1746028428422,"generationUUID":"3d68e5fa-cc93-4dbe-9bb3-fcde6ea0c801","type":"chat"},{"unixMs":1746028495197,"generationUUID":"7d9a9b0a-4363-4ea9-99f9-16b8c9ac2dbe"},{"unixMs":1746028498342,"generationUUID":"90c8813f-38eb-4589-8592-1fca2cd4eab1","type":"chat"},{"unixMs":1746028515515,"generationUUID":"8904609b-a9c1-4cdc-adef-7910ed0ef0d8","type":"apply","textDescription":"blog-build.sh"},{"unixMs":1746028533122,"generationUUID":"b61211a1-438b-47b3-ae61-7045b1fac4ef","type":"apply","textDescription":"blog-build.sh"},{"unixMs":1746028608077,"generationUUID":"6d772192-4f62-42cb-8527-1fcefe943e95","type":"apply","textDescription":"blog-build.sh"},{"unixMs":1746028612643,"generationUUID":"65aeb564-33ee-41cc-88dd-96bc3a2a7c4e","type":"apply","textDescription":"blog-build.sh"},{"unixMs":1746028615514,"generationUUID":"7dea1b40-fd2c-4604-b9ce-0736d66513af","type":"apply","textDescription":"blog-build.sh"},{"unixMs":1746028652300,"generationUUID":"3c185b98-0bd7-4537-a343-87934cfc791c","type":"apply","textDescription":"blog-build.sh"},{"unixMs":1746029426567,"generationUUID":"304cd41f-4d8f-4310-857b-2edb30b1f53c","type":"apply","textDescription":"blog-build.sh"},{"unixMs":1746029430989,"generationUUID":"37760578-3be2-47fd-a473-1a908076490a","type":"apply","textDescription":"blog-build.sh"},{"unixMs":1746031974222,"generationUUID":"0840ef8c-1c6c-48de-a077-219c01eccfdc","type":"chat"},{"unixMs":1746031988157,"generationUUID":"5bfd43f8-e0fd-4402-ae9b-7074853da364","type":"apply","textDescription":"backstage-ai.md"},{"unixMs":1746031988227,"generationUUID":"d1849c96-9607-4baf-bcb3-7ce84599a267","type":"apply","textDescription":"blog-build.sh"},{"unixMs":1746032042426,"generationUUID":"851973ad-695a-49e8-998c-2dcdbe7d65a7"},{"unixMs":1746032049801,"generationUUID":"38f4e104-637d-497d-8467-fbdd75b00897","type":"chat"},{"unixMs":1746032220328,"generationUUID":"b508abc0-9126-498b-961e-a3b68a929cb8","type":"apply","textDescription":"blog-build.sh"},{"unixMs":1746032311756,"generationUUID":"10c23d5b-3cb9-40ed-bd71-40cb9cd0faf0","type":"chat"},{"unixMs":1746032326329,"generationUUID":"b739b4e9-0bba-453d-bfba-939e1ebe23cb","type":"chat"},{"unixMs":1746032352194,"generationUUID":"c7123099-9e32-4bbc-8641-6594f7afb2f4","type":"apply","textDescription":"blog-build.sh"},{"unixMs":1746032355583,"generationUUID":"1090a282-d8c9-4f3b-a3ee-496131d6fbcc","type":"apply","textDescription":"blog-build.sh"},{"unixMs":1746032367800,"generationUUID":"b1e09d2d-2644-4944-b6b1-d142330add36","type":"apply","textDescription":"blog-build.sh"},{"unixMs":1746032403043,"generationUUID":"b6fc33b4-88a0-4be8-a8a2-cb023aa1adf6"},{"unixMs":1746032407340,"generationUUID":"09bd8a06-a139-4591-96eb-1050fc24da43","type":"chat"},{"unixMs":1746032435717,"generationUUID":"921eb0d7-d41c-4e1f-95f9-a99374c379b8","type":"apply","textDescription":"blog-build.sh"},{"unixMs":1746091283629,"generationUUID":"c050f507-6caf-45e6-a010-a1e979807441"},{"unixMs":1746091319134,"generationUUID":"1e09bb15-6a4e-4d3e-a794-a71ff09e5ca7","type":"chat"},{"unixMs":1746091342229,"generationUUID":"2a2208fb-80a9-417f-a4c2-3f7300015674","type":"apply","textDescription":"Containerfile"},{"unixMs":1746091463155,"generationUUID":"e0b432b8-d286-4b34-8f6a-93082eeb01da"},{"unixMs":1746091472198,"generationUUID":"dbfadc95-f770-43e3-ad19-1ad6150a4d77","type":"chat"},{"unixMs":1746091505524,"generationUUID":"39e9ed60-4473-4569-b730-30db7345ff2e","type":"apply","textDescription":"Containerfile"},{"unixMs":1746091537079,"generationUUID":"91093afd-1529-4bcd-9ea1-016317f1340f","type":"chat"},{"unixMs":1746091584585,"generationUUID":"53b5f4d3-c653-4832-ab1d-fdb9d65bbd2b","type":"chat"},{"unixMs":1746091610587,"generationUUID":"3758f361-4579-4160-940c-3dbda6c81d59"},{"unixMs":1746091621103,"generationUUID":"69ef7837-7841-4dbb-b42e-610d8c00b0ee","type":"chat"},{"unixMs":1746091653335,"generationUUID":"a010ac31-872c-4bf9-9ddb-0d5895919433","type":"apply","textDescription":"Containerfile"},{"unixMs":1746091713574,"generationUUID":"bcb8d58d-1abe-4be1-bf27-8e22274e4007"},{"unixMs":1746091732708,"generationUUID":"d34f3917-329b-409b-ac18-37654159f641","type":"chat"},{"unixMs":1746091737908,"generationUUID":"0e468355-973a-4938-b655-a1c8d98db005","type":"apply","textDescription":"httpd-custom.conf"},{"unixMs":1746091765985,"generationUUID":"706290fd-6908-4bd4-89cf-60e2e31ad5f2","type":"chat"},{"unixMs":1746091795878,"generationUUID":"e9915b95-d6fb-4155-a45b-c7824bc563f3","type":"apply","textDescription":"httpd-custom.conf"},{"unixMs":1746091830691,"generationUUID":"360222e2-083c-48e3-8cff-a2504381cbb5","type":"apply","textDescription":"403.html"},{"unixMs":1746091999170,"generationUUID":"c74576fb-4272-40da-8d4f-891b4cb3b40a"},{"unixMs":1746092003580,"generationUUID":"1a59a9ec-9540-4175-a60b-2bec83be07ad"},{"unixMs":1746092013790,"generationUUID":"426738c9-b692-4fc9-96a2-bd9a6b4e9eb3","type":"chat"},{"unixMs":1746092032842,"generationUUID":"4d0492d6-3e37-4e69-81a0-5824ea5f543d","type":"apply","textDescription":"blog-build.sh"},{"unixMs":1746092082509,"generationUUID":"f16a1d9f-8fde-46ac-935b-bebf309b768c","type":"chat"},{"unixMs":1746092091106,"generationUUID":"69bfd7b9-61ef-4597-9a7a-78f1a3441568","type":"apply","textDescription":"blog-build.sh"},{"unixMs":1746092103362,"generationUUID":"0afbaf63-40d8-4858-9b0b-fc139dd6dc38"},{"unixMs":1746092107704,"generationUUID":"f0b591d4-374d-41b0-bd6e-71b7ba372dfb","type":"chat"},{"unixMs":1746092119514,"generationUUID":"f3f6ae45-3de1-4a0c-a67d-f8afc4bea251","type":"apply","textDescription":"blog-build.sh"},{"unixMs":1746092153599,"generationUUID":"cd97241c-fc90-453c-a00f-10094e5cf13e"},{"unixMs":1746092155458,"generationUUID":"98c4398e-0413-4aeb-90e2-4d67bc69430f","type":"chat"},{"unixMs":1746092163752,"generationUUID":"04f8c1dd-7b20-42d5-b438-5b22b95833bb","type":"apply","textDescription":"robots.txt"}]


key: workbench.editor.languageDetectionOpenedLanguages.workspace
value:
  [["json",true],["javascript",true],["css",true],["ignore",true],["dockercompose",true],["xml",true],["dockerfile",true],["properties",true],["html",true],["shellscript",true],["plaintext",true],["markdown",true]]


key: memento/workbench.parts.editor
value:
  {"editorpart.state":{"serializedGrid":{"root":{"type":"branch","data":[{"type":"leaf","data":{"id":0,"editors":[{"id":"workbench.editors.files.fileEditorInput","value":"{\"resourceJSON\":{\"$mid\":1,\"fsPath\":\"/home/josie/development/josiedotlol/robots.txt\",\"external\":\"file:///home/josie/development/josiedotlol/robots.txt\",\"path\":\"/home/josie/development/josiedotlol/robots.txt\",\"scheme\":\"file\"},\"encoding\":\"utf8\"}"},{"id":"workbench.editors.files.fileEditorInput","value":"{\"resourceJSON\":{\"$mid\":1,\"fsPath\":\"/home/josie/development/josiedotlol/scripts/blog-build.sh\",\"external\":\"file:///home/josie/development/josiedotlol/scripts/blog-build.sh\",\"path\":\"/home/josie/development/josiedotlol/scripts/blog-build.sh\",\"scheme\":\"file\"},\"encoding\":\"utf8\"}"},{"id":"workbench.editors.files.fileEditorInput","value":"{\"resourceJSON\":{\"$mid\":1,\"fsPath\":\"/home/josie/development/josiedotlol/talks/backstage-ai.md\",\"external\":\"file:///home/josie/development/josiedotlol/talks/backstage-ai.md\",\"path\":\"/home/josie/development/josiedotlol/talks/backstage-ai.md\",\"scheme\":\"file\"},\"encoding\":\"utf8\"}"},{"id":"workbench.editors.files.fileEditorInput","value":"{\"resourceJSON\":{\"$mid\":1,\"fsPath\":\"/home/josie/development/josiedotlol/talks/example-talk.md\",\"external\":\"file:///home/josie/development/josiedotlol/talks/example-talk.md\",\"path\":\"/home/josie/development/josiedotlol/talks/example-talk.md\",\"scheme\":\"file\"},\"encoding\":\"utf8\"}"},{"id":"workbench.editors.files.fileEditorInput","value":"{\"resourceJSON\":{\"$mid\":1,\"fsPath\":\"/home/josie/development/josiedotlol/talks/template.html\",\"external\":\"file:///home/josie/development/josiedotlol/talks/template.html\",\"path\":\"/home/josie/development/josiedotlol/talks/template.html\",\"scheme\":\"file\"},\"encoding\":\"utf8\"}"},{"id":"workbench.editors.files.fileEditorInput","value":"{\"resourceJSON\":{\"$mid\":1,\"fsPath\":\"/home/josie/development/josiedotlol/blog/template.html\",\"external\":\"file:///home/josie/development/josiedotlol/blog/template.html\",\"path\":\"/home/josie/development/josiedotlol/blog/template.html\",\"scheme\":\"file\"},\"encoding\":\"utf8\"}"},{"id":"workbench.editors.files.fileEditorInput","value":"{\"resourceJSON\":{\"$mid\":1,\"fsPath\":\"/home/josie/development/josiedotlol/blog/hello-world.md\",\"external\":\"file:///home/josie/development/josiedotlol/blog/hello-world.md\",\"path\":\"/home/josie/development/josiedotlol/blog/hello-world.md\",\"scheme\":\"file\"},\"encoding\":\"utf8\"}"},{"id":"workbench.editors.files.fileEditorInput","value":"{\"resourceJSON\":{\"$mid\":1,\"fsPath\":\"/home/josie/development/josiedotlol/blog/aws.md\",\"external\":\"file:///home/josie/development/josiedotlol/blog/aws.md\",\"path\":\"/home/josie/development/josiedotlol/blog/aws.md\",\"scheme\":\"file\"},\"encoding\":\"utf8\"}"},{"id":"workbench.editors.files.fileEditorInput","value":"{\"resourceJSON\":{\"$mid\":1,\"fsPath\":\"/home/josie/development/josiedotlol/blog/t-rex.md\",\"external\":\"file:///home/josie/development/josiedotlol/blog/t-rex.md\",\"path\":\"/home/josie/development/josiedotlol/blog/t-rex.md\",\"scheme\":\"file\"},\"encoding\":\"utf8\"}"},{"id":"workbench.editors.files.fileEditorInput","value":"{\"resourceJSON\":{\"$mid\":1,\"fsPath\":\"/home/josie/development/josiedotlol/Containerfile\",\"external\":\"file:///home/josie/development/josiedotlol/Containerfile\",\"path\":\"/home/josie/development/josiedotlol/Containerfile\",\"scheme\":\"file\"},\"encoding\":\"utf8\"}"},{"id":"workbench.editors.files.fileEditorInput","value":"{\"resourceJSON\":{\"$mid\":1,\"fsPath\":\"/home/josie/development/josiedotlol/httpd-custom.conf\",\"external\":\"file:///home/josie/development/josiedotlol/httpd-custom.conf\",\"path\":\"/home/josie/development/josiedotlol/httpd-custom.conf\",\"scheme\":\"file\"},\"encoding\":\"utf8\"}"},{"id":"workbench.editors.files.fileEditorInput","value":"{\"resourceJSON\":{\"$mid\":1,\"fsPath\":\"/home/josie/development/josiedotlol/talks/index.html\",\"external\":\"file:///home/josie/development/josiedotlol/talks/index.html\",\"path\":\"/home/josie/development/josiedotlol/talks/index.html\",\"scheme\":\"file\"},\"encoding\":\"utf8\"}"},{"id":"workbench.editors.files.fileEditorInput","value":"{\"resourceJSON\":{\"$mid\":1,\"fsPath\":\"/home/josie/development/josiedotlol/offline.html\",\"external\":\"file:///home/josie/development/josiedotlol/offline.html\",\"path\":\"/home/josie/development/josiedotlol/offline.html\",\"scheme\":\"file\"},\"encoding\":\"utf8\"}"},{"id":"workbench.editors.files.fileEditorInput","value":"{\"resourceJSON\":{\"$mid\":1,\"fsPath\":\"/home/josie/development/josiedotlol/rss.xml\",\"external\":\"file:///home/josie/development/josiedotlol/rss.xml\",\"path\":\"/home/josie/development/josiedotlol/rss.xml\",\"scheme\":\"file\"},\"encoding\":\"utf8\"}"},{"id":"workbench.editors.files.fileEditorInput","value":"{\"resourceJSON\":{\"$mid\":1,\"fsPath\":\"/home/josie/development/josiedotlol/styles.css\",\"external\":\"file:///home/josie/development/josiedotlol/styles.css\",\"path\":\"/home/josie/development/josiedotlol/styles.css\",\"scheme\":\"file\"},\"encoding\":\"utf8\"}"},{"id":"workbench.editors.files.fileEditorInput","value":"{\"resourceJSON\":{\"$mid\":1,\"fsPath\":\"/home/josie/development/josiedotlol/index.html\",\"external\":\"file:///home/josie/development/josiedotlol/index.html\",\"path\":\"/home/josie/development/josiedotlol/index.html\",\"scheme\":\"file\"},\"encoding\":\"utf8\"}"},{"id":"workbench.editors.files.fileEditorInput","value":"{\"resourceJSON\":{\"$mid\":1,\"fsPath\":\"/home/josie/development/josiedotlol/.git/hooks/pre-commit\",\"external\":\"file:///home/josie/development/josiedotlol/.git/hooks/pre-commit\",\"path\":\"/home/josie/development/josiedotlol/.git/hooks/pre-commit\",\"scheme\":\"file\"}}"},{"id":"workbench.editors.webviewEditor","value":"{\"origin\":\"b93a6486-7659-439b-9f7b-9e6646574fec\",\"viewType\":\"imagePreview.previewEditor\",\"providedId\":\"imagePreview.previewEditor\",\"title\":\"example.jpg\",\"options\":{\"purpose\":\"customEditor\",\"allowScripts\":true,\"allowForms\":false,\"localResourceRoots\":[{\"$mid\":1,\"path\":\"/home/josie/development/josiedotlol/blog/images\",\"scheme\":\"file\"},{\"$mid\":1,\"path\":\"/tmp/.mount_Cursor1ClpuS/usr/share/cursor/resources/app/extensions/media-preview\",\"scheme\":\"file\"}]},\"extensionLocation\":{\"$mid\":1,\"path\":\"/tmp/.mount_Cursor1ClpuS/usr/share/cursor/resources/app/extensions/media-preview\",\"scheme\":\"file\"},\"extensionId\":\"vscode.media-preview\",\"group\":0,\"editorResource\":{\"$mid\":1,\"fsPath\":\"/home/josie/development/josiedotlol/blog/images/example.jpg\",\"external\":\"file:///home/josie/development/josiedotlol/blog/images/example.jpg\",\"path\":\"/home/josie/development/josiedotlol/blog/images/example.jpg\",\"scheme\":\"file\"},\"dirty\":false}"},{"id":"workbench.editors.files.fileEditorInput","value":"{\"resourceJSON\":{\"$mid\":1,\"fsPath\":\"/home/josie/development/josiedotlol/blog/index.html\",\"external\":\"file:///home/josie/development/josiedotlol/blog/index.html\",\"path\":\"/home/josie/development/josiedotlol/blog/index.html\",\"scheme\":\"file\"},\"encoding\":\"utf8\"}"},{"id":"workbench.editors.files.fileEditorInput","value":"{\"resourceJSON\":{\"$mid\":1,\"fsPath\":\"/home/josie/development/josiedotlol/README.md\",\"external\":\"file:///home/josie/development/josiedotlol/README.md\",\"path\":\"/home/josie/development/josiedotlol/README.md\",\"scheme\":\"file\"},\"encoding\":\"utf8\"}"},{"id":"workbench.editors.files.fileEditorInput","value":"{\"resourceJSON\":{\"$mid\":1,\"fsPath\":\"/home/josie/development/josiedotlol/.dockerignore\",\"external\":\"file:///home/josie/development/josiedotlol/.dockerignore\",\"path\":\"/home/josie/development/josiedotlol/.dockerignore\",\"scheme\":\"file\"},\"encoding\":\"utf8\"}"},{"id":"workbench.editors.files.fileEditorInput","value":"{\"resourceJSON\":{\"$mid\":1,\"fsPath\":\"/home/josie/development/josiedotlol/.gitignore\",\"external\":\"file:///home/josie/development/josiedotlol/.gitignore\",\"path\":\"/home/josie/development/josiedotlol/.gitignore\",\"scheme\":\"file\"},\"encoding\":\"utf8\"}"},{"id":"workbench.editors.files.fileEditorInput","value":"{\"resourceJSON\":{\"$mid\":1,\"fsPath\":\"/home/josie/development/josiedotlol/500.html\",\"external\":\"file:///home/josie/development/josiedotlol/500.html\",\"path\":\"/home/josie/development/josiedotlol/500.html\",\"scheme\":\"file\"},\"encoding\":\"utf8\"}"},{"id":"workbench.editors.files.fileEditorInput","value":"{\"resourceJSON\":{\"$mid\":1,\"fsPath\":\"/home/josie/development/josiedotlol/403.html\",\"external\":\"file:///home/josie/development/josiedotlol/403.html\",\"path\":\"/home/josie/development/josiedotlol/403.html\",\"scheme\":\"file\"}}"},{"id":"workbench.editors.files.fileEditorInput","value":"{\"resourceJSON\":{\"$mid\":1,\"fsPath\":\"/home/josie/development/josiedotlol/404.html\",\"external\":\"file:///home/josie/development/josiedotlol/404.html\",\"path\":\"/home/josie/development/josiedotlol/404.html\",\"scheme\":\"file\"},\"encoding\":\"utf8\"}"},{"id":"workbench.editors.files.fileEditorInput","value":"{\"resourceJSON\":{\"$mid\":1,\"fsPath\":\"/home/josie/development/josiedotlol/blog/hello-world.html\",\"external\":\"file:///home/josie/development/josiedotlol/blog/hello-world.html\",\"path\":\"/home/josie/development/josiedotlol/blog/hello-world.html\",\"scheme\":\"file\"},\"encoding\":\"utf8\"}"},{"id":"workbench.editors.files.fileEditorInput","value":"{\"resourceJSON\":{\"$mid\":1,\"fsPath\":\"/home/josie/development/josiedotlol/sw.js\",\"external\":\"file:///home/josie/development/josiedotlol/sw.js\",\"path\":\"/home/josie/development/josiedotlol/sw.js\",\"scheme\":\"file\"}}"},{"id":"workbench.editors.files.fileEditorInput","value":"{\"resourceJSON\":{\"$mid\":1,\"fsPath\":\"/home/josie/development/josiedotlol/site.webmanifest\",\"external\":\"file:///home/josie/development/josiedotlol/site.webmanifest\",\"path\":\"/home/josie/development/josiedotlol/site.webmanifest\",\"scheme\":\"file\"},\"encoding\":\"utf8\"}"}],"mru":[6,0,1,22,23,10,9,2,3,4,15,11,25,5,19,7,8,18,24,13,21,20,17,16,14,26,12,27]},"size":643}],"size":994},"orientation":0,"width":994,"height":643},"activeGroup":0,"mostRecentActiveGroups":[0]}}


key: history.entries
value:
  [{"editor":{"resource":"file:///home/josie/development/josiedotlol/blog/hello-world.md","forceFile":true,"options":{"override":"default"}}},{"editor":{"resource":"file:///home/josie/development/josiedotlol/robots.txt","forceFile":true,"options":{"override":"default"}}},{"editor":{"resource":"file:///home/josie/development/josiedotlol/scripts/blog-build.sh","forceFile":true,"options":{"override":"default"}}},{"editor":{"resource":"file:///home/josie/development/josiedotlol/500.html","forceFile":true,"options":{"override":"default"}}},{"editor":{"resource":"file:///home/josie/development/josiedotlol/httpd-custom.conf","forceFile":true,"options":{"override":"default"}}},{"editor":{"resource":"file:///home/josie/development/josiedotlol/Containerfile","forceFile":true,"options":{"override":"default"}}},{"editor":{"resource":"file:///home/josie/development/josiedotlol/talks/backstage-ai.md","forceFile":true,"options":{"override":"default"}}},{"editor":{"resource":"file:///home/josie/development/josiedotlol/talks/example-talk.md","forceFile":true,"options":{"override":"default"}}},{"editor":{"resource":"file:///home/josie/development/josiedotlol/talks/template.html","forceFile":true,"options":{"override":"default"}}},{"editor":{"resource":"file:///home/josie/development/josiedotlol/index.html","forceFile":true,"options":{"override":"default"}}},{"editor":{"resource":"file:///home/josie/development/josiedotlol/talks/index.html","forceFile":true,"options":{"override":"default"}}},{"editor":{"resource":"file:///home/josie/development/josiedotlol/blog/hello-world.html","forceFile":true,"options":{"override":"default"}}},{"editor":{"resource":"file:///home/josie/development/josiedotlol/blog/template.html","forceFile":true,"options":{"override":"default"}}},{"editor":{"resource":"file:///home/josie/development/josiedotlol/README.md","forceFile":true,"options":{"override":"default"}}},{"editor":{"resource":"file:///home/josie/development/josiedotlol/blog/aws.md","forceFile":true,"options":{"override":"default"}}},{"editor":{"resource":"file:///home/josie/development/josiedotlol/blog/t-rex.md","forceFile":true,"options":{"override":"default"}}},{"editor":{"resource":"file:///home/josie/development/josiedotlol/blog/index.html","forceFile":true,"options":{"override":"default"}}},{"editor":{"resource":"file:///home/josie/development/josiedotlol/404.html","forceFile":true,"options":{"override":"default"}}},{"editor":{"resource":"file:///home/josie/development/josiedotlol/rss.xml","forceFile":true,"options":{"override":"default"}}},{"editor":{"resource":"file:///home/josie/development/josiedotlol/.gitignore","forceFile":true,"options":{"override":"default"}}},{"editor":{"resource":"file:///home/josie/development/josiedotlol/.dockerignore","forceFile":true,"options":{"override":"default"}}},{"editor":{"resource":"file:///home/josie/development/josiedotlol/blog/images/example.jpg","options":{"override":"imagePreview.previewEditor"}}},{"editor":{"resource":"file:///home/josie/development/josiedotlol/.git/hooks/pre-commit","forceFile":true,"options":{"override":"default"}}},{"editor":{"resource":"file:///home/josie/development/josiedotlol/styles.css","forceFile":true,"options":{"override":"default"}}},{"editor":{"resource":"file:///home/josie/development/josiedotlol/sw.js","forceFile":true,"options":{"override":"default"}}},{"editor":{"resource":"file:///home/josie/development/josiedotlol/offline.html","forceFile":true,"options":{"override":"default"}}},{"editor":{"resource":"file:///home/josie/development/josiedotlol/site.webmanifest","forceFile":true,"options":{"override":"default"}}},{"editor":{"resource":"file:///home/josie/development/josiedotlol/blog/images/container-host-separation.png","options":{"override":"imagePreview.previewEditor"}}}]


key: workbench.explorer.treeViewState
value:
  {"focus":["file:///home/josie/development/josiedotlol::file:///home/josie/development/josiedotlol/blog/hello-world.md"],"selection":["file:///home/josie/development/josiedotlol::file:///home/josie/development/josiedotlol/blog/hello-world.md"],"expanded":["file:///home/josie/development/josiedotlol::file:///home/josie/development/josiedotlol/blog"],"scrollTop":0}


key: memento/workbench.editors.files.textFileEditor
value:
  {"textEditorViewState":[["file:///home/josie/development/josiedotlol/site.webmanifest",{"0":{"cursorState":[{"inSelectionMode":false,"selectionStart":{"lineNumber":2,"column":1},"position":{"lineNumber":2,"column":1}}],"viewState":{"scrollLeft":0,"firstPosition":{"lineNumber":1,"column":1},"firstPositionDeltaTop":0},"contributionsState":{"editor.contrib.folding":{"lineCount":17,"provider":"syntax","foldedImports":false},"editor.contrib.wordHighlighter":false}}}],["file:///home/josie/development/josiedotlol/offline.html",{"0":{"cursorState":[{"inSelectionMode":false,"selectionStart":{"lineNumber":1,"column":1},"position":{"lineNumber":1,"column":1}}],"viewState":{"scrollLeft":0,"firstPosition":{"lineNumber":1,"column":1},"firstPositionDeltaTop":0},"contributionsState":{"editor.contrib.folding":{"lineCount":82,"provider":"syntax","foldedImports":false},"editor.contrib.wordHighlighter":false}}}],["file:///home/josie/development/josiedotlol/styles.css",{"0":{"cursorState":[{"inSelectionMode":false,"selectionStart":{"lineNumber":1,"column":1},"position":{"lineNumber":1,"column":1}}],"viewState":{"scrollLeft":0,"firstPosition":{"lineNumber":45,"column":1},"firstPositionDeltaTop":-14},"contributionsState":{"editor.contrib.folding":{"lineCount":178,"provider":"syntax","foldedImports":false},"editor.contrib.wordHighlighter":false}}}],["file:///home/josie/development/josiedotlol/.dockerignore",{"0":{"cursorState":[{"inSelectionMode":false,"selectionStart":{"lineNumber":3,"column":10},"position":{"lineNumber":3,"column":10}}],"viewState":{"scrollLeft":0,"firstPosition":{"lineNumber":1,"column":1},"firstPositionDeltaTop":0},"contributionsState":{"editor.contrib.folding":{"lineCount":16,"provider":"indent","foldedImports":false},"editor.contrib.wordHighlighter":false}}}],["file:///home/josie/development/josiedotlol/.gitignore",{"0":{"cursorState":[{"inSelectionMode":false,"selectionStart":{"lineNumber":47,"column":1},"position":{"lineNumber":47,"column":1}}],"viewState":{"scrollLeft":0,"firstPosition":{"lineNumber":4,"column":1},"firstPositionDeltaTop":-9},"contributionsState":{"editor.contrib.folding":{"lineCount":53,"provider":"indent","foldedImports":false},"editor.contrib.wordHighlighter":false}}}],["file:///home/josie/development/josiedotlol/rss.xml",{"0":{"cursorState":[{"inSelectionMode":false,"selectionStart":{"lineNumber":20,"column":121},"position":{"lineNumber":20,"column":121}}],"viewState":{"scrollLeft":0,"firstPosition":{"lineNumber":1,"column":1},"firstPositionDeltaTop":0},"contributionsState":{"editor.contrib.folding":{"lineCount":43,"provider":"indent","foldedImports":false},"editor.contrib.wordHighlighter":false}}}],["file:///home/josie/development/josiedotlol/404.html",{"0":{"cursorState":[{"inSelectionMode":false,"selectionStart":{"lineNumber":7,"column":21},"position":{"lineNumber":7,"column":21}}],"viewState":{"scrollLeft":0,"firstPosition":{"lineNumber":58,"column":1},"firstPositionDeltaTop":-17},"contributionsState":{"editor.contrib.folding":{"lineCount":99,"provider":"syntax","foldedImports":false},"editor.contrib.wordHighlighter":false}}}],["file:///home/josie/development/josiedotlol/blog/index.html",{"0":{"cursorState":[{"inSelectionMode":false,"selectionStart":{"lineNumber":45,"column":11},"position":{"lineNumber":45,"column":11}}],"viewState":{"scrollLeft":0,"firstPosition":{"lineNumber":10,"column":1},"firstPositionDeltaTop":-13},"contributionsState":{"editor.contrib.folding":{"lineCount":72,"provider":"syntax","foldedImports":false},"editor.contrib.wordHighlighter":false}}}],["file:///home/josie/development/josiedotlol/blog/t-rex.md",{"0":{"cursorState":[{"inSelectionMode":false,"selectionStart":{"lineNumber":126,"column":7},"position":{"lineNumber":126,"column":7}}],"viewState":{"scrollLeft":0,"firstPosition":{"lineNumber":100,"column":1},"firstPositionDeltaTop":-12},"contributionsState":{"editor.contrib.folding":{"lineCount":166,"provider":"syntax","foldedImports":false},"editor.contrib.wordHighlighter":false}}}],["file:///home/josie/development/josiedotlol/blog/aws.md",{"0":{"cursorState":[{"inSelectionMode":false,"selectionStart":{"lineNumber":4,"column":26},"position":{"lineNumber":4,"column":26}}],"viewState":{"scrollLeft":0,"firstPosition":{"lineNumber":1,"column":1},"firstPositionDeltaTop":0},"contributionsState":{"editor.contrib.folding":{"lineCount":75,"provider":"syntax","foldedImports":false},"editor.contrib.wordHighlighter":false}}}],["file:///home/josie/development/josiedotlol/README.md",{"0":{"cursorState":[{"inSelectionMode":false,"selectionStart":{"lineNumber":2,"column":1},"position":{"lineNumber":2,"column":1}}],"viewState":{"scrollLeft":0,"firstPosition":{"lineNumber":1,"column":1},"firstPositionDeltaTop":0},"contributionsState":{"editor.contrib.folding":{"lineCount":2,"provider":"syntax","foldedImports":false},"editor.contrib.wordHighlighter":false}}}],["file:///home/josie/development/josiedotlol/blog/template.html",{"0":{"cursorState":[{"inSelectionMode":false,"selectionStart":{"lineNumber":312,"column":31},"position":{"lineNumber":312,"column":31}}],"viewState":{"scrollLeft":0,"firstPosition":{"lineNumber":121,"column":1},"firstPositionDeltaTop":-15},"contributionsState":{"editor.contrib.folding":{"lineCount":324,"provider":"syntax","foldedImports":false},"editor.contrib.wordHighlighter":false}}}],["file:///home/josie/development/josiedotlol/blog/hello-world.html",{"0":{"cursorState":[{"inSelectionMode":false,"selectionStart":{"lineNumber":310,"column":53},"position":{"lineNumber":310,"column":53}}],"viewState":{"scrollLeft":0,"firstPosition":{"lineNumber":284,"column":1},"firstPositionDeltaTop":-13},"contributionsState":{"editor.contrib.folding":{"lineCount":502,"provider":"syntax","foldedImports":false},"editor.contrib.wordHighlighter":false}}}],["file:///home/josie/development/josiedotlol/talks/index.html",{"0":{"cursorState":[{"inSelectionMode":false,"selectionStart":{"lineNumber":61,"column":9},"position":{"lineNumber":61,"column":9}}],"viewState":{"scrollLeft":0,"firstPosition":{"lineNumber":1,"column":1},"firstPositionDeltaTop":0},"contributionsState":{"editor.contrib.folding":{"lineCount":61,"provider":"syntax","foldedImports":false},"editor.contrib.wordHighlighter":false}}}],["file:///home/josie/development/josiedotlol/index.html",{"0":{"cursorState":[{"inSelectionMode":false,"selectionStart":{"lineNumber":369,"column":1},"position":{"lineNumber":369,"column":1}}],"viewState":{"scrollLeft":6728,"firstPosition":{"lineNumber":349,"column":1},"firstPositionDeltaTop":-16},"contributionsState":{"editor.contrib.folding":{"lineCount":973,"provider":"syntax","foldedImports":false},"editor.contrib.wordHighlighter":false}}}],["file:///home/josie/development/josiedotlol/talks/template.html",{"0":{"cursorState":[{"inSelectionMode":false,"selectionStart":{"lineNumber":55,"column":35},"position":{"lineNumber":55,"column":35}}],"viewState":{"scrollLeft":0,"firstPosition":{"lineNumber":32,"column":1},"firstPositionDeltaTop":-11},"contributionsState":{"editor.contrib.folding":{"lineCount":61,"provider":"syntax","foldedImports":false},"editor.contrib.wordHighlighter":false}}}],["file:///home/josie/development/josiedotlol/talks/example-talk.md",{"0":{"cursorState":[{"inSelectionMode":false,"selectionStart":{"lineNumber":5,"column":14},"position":{"lineNumber":5,"column":14}}],"viewState":{"scrollLeft":0,"firstPosition":{"lineNumber":1,"column":1},"firstPositionDeltaTop":0},"contributionsState":{"editor.contrib.folding":{"lineCount":16,"provider":"syntax","foldedImports":false},"editor.contrib.wordHighlighter":false}}}],["file:///home/josie/development/josiedotlol/talks/backstage-ai.md",{"0":{"cursorState":[{"inSelectionMode":false,"selectionStart":{"lineNumber":10,"column":20},"position":{"lineNumber":10,"column":20}}],"viewState":{"scrollLeft":0,"firstPosition":{"lineNumber":1,"column":1},"firstPositionDeltaTop":0},"contributionsState":{"editor.contrib.folding":{"lineCount":13,"provider":"syntax","foldedImports":false},"editor.contrib.wordHighlighter":false}}}],["file:///home/josie/development/josiedotlol/Containerfile",{"0":{"cursorState":[{"inSelectionMode":false,"selectionStart":{"lineNumber":15,"column":21},"position":{"lineNumber":15,"column":21}}],"viewState":{"scrollLeft":0,"firstPosition":{"lineNumber":1,"column":1},"firstPositionDeltaTop":0},"contributionsState":{"editor.contrib.folding":{"lineCount":26,"provider":"syntax","foldedImports":false},"editor.contrib.wordHighlighter":false}}}],["file:///home/josie/development/josiedotlol/httpd-custom.conf",{"0":{"cursorState":[{"inSelectionMode":false,"selectionStart":{"lineNumber":57,"column":1},"position":{"lineNumber":57,"column":1}}],"viewState":{"scrollLeft":0,"firstPosition":{"lineNumber":40,"column":1},"firstPositionDeltaTop":-11},"contributionsState":{"editor.contrib.folding":{"lineCount":57,"provider":"indent","foldedImports":false},"editor.contrib.wordHighlighter":false}}}],["file:///home/josie/development/josiedotlol/500.html",{"0":{"cursorState":[{"inSelectionMode":false,"selectionStart":{"lineNumber":26,"column":15},"position":{"lineNumber":26,"column":15}}],"viewState":{"scrollLeft":0,"firstPosition":{"lineNumber":1,"column":1},"firstPositionDeltaTop":0},"contributionsState":{"editor.contrib.folding":{"lineCount":126,"provider":"syntax","foldedImports":false},"editor.contrib.wordHighlighter":false}}}],["file:///home/josie/development/josiedotlol/scripts/blog-build.sh",{"0":{"cursorState":[{"inSelectionMode":false,"selectionStart":{"lineNumber":266,"column":3},"position":{"lineNumber":266,"column":3}}],"viewState":{"scrollLeft":0,"firstPosition":{"lineNumber":517,"column":1},"firstPositionDeltaTop":-1},"contributionsState":{"editor.contrib.folding":{"lineCount":534,"provider":"indent","foldedImports":false},"editor.contrib.wordHighlighter":false}}}],["file:///home/josie/development/josiedotlol/robots.txt",{"0":{"cursorState":[{"inSelectionMode":false,"selectionStart":{"lineNumber":34,"column":38},"position":{"lineNumber":34,"column":38}}],"viewState":{"scrollLeft":0,"firstPosition":{"lineNumber":1,"column":1},"firstPositionDeltaTop":0},"contributionsState":{"editor.contrib.folding":{"lineCount":34,"provider":"indent","foldedImports":false},"editor.contrib.wordHighlighter":false}}}],["file:///home/josie/development/josiedotlol/blog/hello-world.md",{"0":{"cursorState":[{"inSelectionMode":false,"selectionStart":{"lineNumber":50,"column":5},"position":{"lineNumber":50,"column":5}}],"viewState":{"scrollLeft":0,"firstPosition":{"lineNumber":115,"column":1},"firstPositionDeltaTop":0},"contributionsState":{"editor.contrib.folding":{"lineCount":178,"provider":"syntax","foldedImports":false},"editor.contrib.wordHighlighter":true}}}]]}


key: __$__targetStorageMarker
value:
  {"workbench.panel.composerViewPane2":1,"workbench.panel.composerChatViewPane":1,"workbench.explorer.views.state":1,"workbench.view.search.state":1,"workbench.scm.views.state":1,"workbench.panel.markers":1,"workbench.panel.output":1,"terminal":1,"workbench.view.bugbot":1,"workbench.panel.viewContainersWorkspaceState":1,"workbench.auxiliarybar.viewContainersWorkspaceState":1,"workbench.explorer.treeViewState":1,"workbench.view.extension.github-actions.state":1,"workbench.view.extension.dockerView.state":1,"debug.selectedroot":1,"workbench.view.debug.state":1,"output.activechannel":1,"~remote.forwardedPortsContainer":1,"workbench.view.extension.makefile__viewContainer.state":1,"workbench.panel.repl":1,"debug.uxstate":1,"terminal.integrated.environmentVariableCollectionsV2":1,"workbench.auxiliarybar.activepanelid":1,"vscode.git":1,"anysphere.cursor-retrieval":1,"history.entries":1,"src.vs.platform.reactivestorage.browser.reactiveStorageServiceImpl.persistentStorage.workspaceUser":0,"workbench.bugbot.data":1,"composer.composerData":1,"workbench.view.explorer.numberOfVisibleViews":1,"workbench.editor.centered":1,"workbench.zenMode.active":1,"workbench.zenMode.exitInfo":1,"workbench.panel.wasLastMaximized":1,"workbench.sideBar.position":1,"workbench.panel.position":1,"workbench.activityBar.hidden":1,"workbench.sideBar.hidden":1,"workbench.editor.hidden":1,"workbench.panel.hidden":1,"workbench.auxiliaryBar.hidden":1,"workbench.statusBar.hidden":1,"notepad.reactiveStorageId":1,"aiService.generations":1,"aiService.prompts":1,"interactive.sessions":1,"notepadData":1,"scm:view:visibleRepositories":1,"comments.continueOnComments":0,"workbench.panel.aichat.numberOfVisibleViews":1,"workbench.editor.languageDetectionOpenedLanguages.workspace":1,"memento/workbench.parts.editor":0,"memento/workbench.editors.files.textFileEditor":1,"terminal.numberOfVisibleViews":1,"chat.editing.autosaveDisabled":1,"codelens/cache2":1,"terminal.integrated.layoutInfo":1,"terminal.integrated.bufferState":1,"lifecyle.lastShutdownReason":1}


key: terminal.integrated.bufferState
value:
  {"version":1,"state":[{"id":1,"shellLaunchConfig":{"icon":{"id":"terminal","defaults":{"fontCharacter":"\\ea85"}},"executable":"/usr/bin/zsh","useShellEnvironment":true,"cwd":"/home/josie/development/josiedotlol","initialText":"🎉 Blog build completed successfully!\r\n--> 9fd33680663f\r\n[2/2] STEP 1/5: FROM quay.io/fedora/httpd-24\r\n[2/2] STEP 2/5: COPY --from=builder --chown=1001:0 /build /var/www/html/\r\n--> 887843830a9c\r\n[2/2] STEP 3/5: COPY <<EOF /etc/httpd/conf.d/custom.conf (# Custom URL routing configuration...)\r\n--> e8266faab09f\r\n[2/2] STEP 4/5: EXPOSE 8080\r\n--> aa3faf819ac4\r\n[2/2] STEP 5/5: CMD run-httpd\r\n[2/2] COMMIT josiedotlol\r\n--> 59b2d931e785\r\nSuccessfully tagged localhost/josiedotlol:latest\r\n59b2d931e785c984b07e641d65e6f3d5ef3975082d6bdb98333d630aff410eb3\r\n\u001b[38;5;76m❯\u001b[0m \u001b[32msudo\u001b[0m \u001b[32mpodman\u001b[0m run \u001b[36m--replace\u001b[0m \u001b[36m-d\u001b[0m \u001b[36m-p\u001b[0m 8080:8080 \u001b[36m--name\u001b[0m josiedotlol-web localhost/josiedotlol && \u001b[32msudo\u001b[0m \u001b[32mpodman\u001b[0m build \u001b[36m-t\u001b[0m josiedotlol \u001b[35;4m.\r\n\u001b[0m4b124ec524aa3c30ab38e8d813b501bdf3e75bf76888b1b115bf1bb1be23de4f\r\n[1/2] STEP 1/5: FROM fedora:latest AS builder\r\n[1/2] STEP 2/5: RUN dnf install -y pandoc && dnf clean all\r\n--> Using cache 1ca9c34f543a9a3977197912535d56def60ea6de5d806a22c788ebdd2f10df5d\r\n--> 1ca9c34f543a\r\n[1/2] STEP 3/5: WORKDIR /build\r\n--> Using cache cffa8e4d1f0c05f860d85b8b8ddc8b426db4c8a78f1addfcdfba347b6b756151\r\n--> cffa8e4d1f0c\r\n[1/2] STEP 4/5: COPY . .\r\n--> Using cache 96db79a387653dcf54037d0d29ab1d303fa07102fd0bf54631cc702846843f0e\r\n--> 96db79a38765\r\n[1/2] STEP 5/5: RUN ./scripts/blog-build.sh\r\n--> Using cache 9fd33680663f5816077946dedbaffce3b69bc5e522a6abbd71eff24061b90d7c\r\n--> 9fd33680663f\r\n[2/2] STEP 1/5: FROM quay.io/fedora/httpd-24\r\n[2/2] STEP 2/5: COPY --from=builder --chown=1001:0 /build /var/www/html/\r\n--> Using cache 887843830a9c666521aeae5dccfe6627d0b7d7c08bbb9920780c79a5d368b15b\r\n--> 887843830a9c\r\n[2/2] STEP 3/5: COPY <<EOF /etc/httpd/conf.d/custom.conf (# Custom URL routing configuration...)\r\n--> Using cache e8266faab09fb04aae3f5140bc12d25ff9fa726523220eee312b265d01b546f6\r\n--> e8266faab09f\r\n[2/2] STEP 4/5: EXPOSE 8080\r\n--> Using cache aa3faf819ac446fd57bac297156d11f1b88e8a4d1ba609193e06bb1a89694a3a\r\n--> aa3faf819ac4\r\n[2/2] STEP 5/5: CMD run-httpd\r\n--> Using cache 59b2d931e785c984b07e641d65e6f3d5ef3975082d6bdb98333d630aff410eb3\r\n[2/2] COMMIT josiedotlol\r\n--> 59b2d931e785\r\nSuccessfully tagged localhost/josiedotlol:latest\r\n59b2d931e785c984b07e641d65e6f3d5ef3975082d6bdb98333d630aff410eb3\r\n\u001b[38;5;76m❯\u001b[0m \u001b[32msudo\u001b[0m \u001b[32mpodman\u001b[0m build \u001b[36m-t\u001b[0m josiedotlol \u001b[35;4m.\r\n\u001b[0m[1/2] STEP 1/5: FROM fedora:latest AS builder\r\n[1/2] STEP 2/5: RUN dnf install -y pandoc && dnf clean all\r\n--> Using cache 1ca9c34f543a9a3977197912535d56def60ea6de5d806a22c788ebdd2f10df5d\r\n--> 1ca9c34f543a\r\n[1/2] STEP 3/5: WORKDIR /build\r\n--> Using cache cffa8e4d1f0c05f860d85b8b8ddc8b426db4c8a78f1addfcdfba347b6b756151\r\n--> cffa8e4d1f0c\r\n[1/2] STEP 4/5: COPY . .\r\n--> 1281d4ac68b1\r\n[1/2] STEP 5/5: RUN ./scripts/blog-build.sh\r\n🔄 Building blog posts from Markdown...\r\n🔨 Processing: t-rex.md\r\n✅ Generated: blog/t-rex.html\r\n🔨 Processing: hello-world.md\r\n✅ Generated: blog/hello-world.html\r\n🔨 Processing: aws.md\r\n✅ Generated: blog/aws.html\r\n🔄 Updating blog index...\r\n✅ Updated blog index page\r\n🔄 Updating RSS feed...\r\n✅ Updated RSS feed\r\n🎉 Blog build completed successfully!\r\n--> 65127079c918\r\n[2/2] STEP 1/5: FROM quay.io/fedora/httpd-24\r\n[2/2] STEP 2/5: COPY --from=builder --chown=1001:0 /build /var/www/html/\r\n--> 257db404979f\r\n[2/2] STEP 3/5: COPY <<EOF /etc/httpd/conf.d/custom.conf (# Custom URL routing configuration...)\r\n--> 282e10ff8fd7\r\n[2/2] STEP 4/5: EXPOSE 8080\r\n--> 321e08ebbd90\r\n[2/2] STEP 5/5: CMD run-httpd\r\n[2/2] COMMIT josiedotlol\r\n--> fb5b78bdd798\r\nSuccessfully tagged localhost/josiedotlol:latest\r\nfb5b78bdd7987e3c25ea650bae63bdb12b3062c0858d1268778f71fd3ab04b92\r\n\u001b[38;5;76m❯\u001b[0m \u001b[32msudo\u001b[0m \u001b[32mpodman\u001b[0m run \u001b[36m--replace\u001b[0m \u001b[36m-d\u001b[0m \u001b[36m-p\u001b[0m 8080:8080 \u001b[36m--name\u001b[0m josiedotlol-web localhost/josiedotlol && \u001b[32msudo\u001b[0m \u001b[32mpodman\u001b[0m build \u001b[36m-t\u001b[0m josiedotlol \u001b[35;4m.\r\n\u001b[0m190c75ad661495600f451e28354e747d565f2f6cd9c71dfb766a330d4194c4f2\r\n[1/2] STEP 1/5: FROM fedora:latest AS builder\r\n[1/2] STEP 2/5: RUN dnf install -y pandoc && dnf clean all\r\n--> Using cache 1ca9c34f543a9a3977197912535d56def60ea6de5d806a22c788ebdd2f10df5d\r\n--> 1ca9c34f543a\r\n[1/2] STEP 3/5: WORKDIR /build\r\n--> Using cache cffa8e4d1f0c05f860d85b8b8ddc8b426db4c8a78f1addfcdfba347b6b756151\r\n--> cffa8e4d1f0c\r\n[1/2] STEP 4/5: COPY . .\r\n--> Using cache 1281d4ac68b1e9ad401a6b477e08665f9a1568fd2df2f00d6c111a5df14e0e3f\r\n--> 1281d4ac68b1\r\n[1/2] STEP 5/5: RUN ./scripts/blog-build.sh\r\n--> Using cache 65127079c918506ffe9ab4ecb12693d69c91fa3c7b801b1bce42a23fc7383879\r\n--> 65127079c918\r\n[2/2] STEP 1/5: FROM quay.io/fedora/httpd-24\r\n[2/2] STEP 2/5: COPY --from=builder --chown=1001:0 /build /var/www/html/\r\n--> Using cache 257db404979ffdea8850050559d210f72563a889d73808f986c892269faae4fe\r\n--> 257db404979f\r\n[2/2] STEP 3/5: COPY <<EOF /etc/httpd/conf.d/custom.conf (# Custom URL routing configuration...)\r\n--> Using cache 282e10ff8fd7be63a13a0cff3e5576fc47647414908b60f10c02085fffb72796\r\n--> 282e10ff8fd7\r\n[2/2] STEP 4/5: EXPOSE 8080\r\n--> Using cache 321e08ebbd90af8eb0ae9bdc9d3574d885523139cefc43b2d3a164b35fce95e0\r\n--> 321e08ebbd90\r\n[2/2] STEP 5/5: CMD run-httpd\r\n--> Using cache fb5b78bdd7987e3c25ea650bae63bdb12b3062c0858d1268778f71fd3ab04b92\r\n[2/2] COMMIT josiedotlol\r\n--> fb5b78bdd798\r\nSuccessfully tagged localhost/josiedotlol:latest\r\nfb5b78bdd7987e3c25ea650bae63bdb12b3062c0858d1268778f71fd3ab04b92\r\n\u001b[38;5;254;44m \u001b[38;5;255;1m~\u001b[38;5;254;22m/\u001b[38;5;250md\u001b[38;5;254m/\u001b[38;5;255;1mjosiedotlol\u001b[38;5;254;22m \u001b[30;43m main !3 ?7 \u001b[0m \u001b[76C\u001b[32;40m ✔ \u001b[30;47m 11:15:12 PM \u001b[0m\u001b[92D\r\n\u001b[0m\u001b[7m * \u001b[0;104m History restored \u001b[0m\n\r"},"processDetails":{"id":1,"title":"/usr/bin/zsh","titleSource":1,"pid":254411,"workspaceId":"64f51f4fce698869b27b3fa94f111ccd","workspaceName":"josiedotlol","cwd":"/home/josie/development/josiedotlol","isOrphan":false,"icon":{"id":"terminal","defaults":{"fontCharacter":"\\ea85"}},"environmentVariableCollections":[["vscode.git",[["GIT_ASKPASS",{"variable":"GIT_ASKPASS","value":"/tmp/.mount_CursorxDwmgu/usr/share/cursor/resources/app/extensions/git/dist/askpass.sh","type":1,"options":{"applyAtProcessCreation":true,"applyAtShellIntegration":false}}],["VSCODE_GIT_ASKPASS_NODE",{"variable":"VSCODE_GIT_ASKPASS_NODE","value":"/tmp/.mount_CursorxDwmgu/usr/share/cursor/cursor","type":1,"options":{"applyAtProcessCreation":true,"applyAtShellIntegration":false}}],["VSCODE_GIT_ASKPASS_EXTRA_ARGS",{"variable":"VSCODE_GIT_ASKPASS_EXTRA_ARGS","value":"","type":1,"options":{"applyAtProcessCreation":true,"applyAtShellIntegration":false}}],["VSCODE_GIT_ASKPASS_MAIN",{"variable":"VSCODE_GIT_ASKPASS_MAIN","value":"/tmp/.mount_CursorxDwmgu/usr/share/cursor/resources/app/extensions/git/dist/askpass-main.js","type":1,"options":{"applyAtProcessCreation":true,"applyAtShellIntegration":false}}],["VSCODE_GIT_IPC_HANDLE",{"variable":"VSCODE_GIT_IPC_HANDLE","value":"/run/user/1000/vscode-git-d8fdab8a5e.sock","type":1,"options":{"applyAtProcessCreation":true,"applyAtShellIntegration":false}}]],[["",{"description":"Enables the following features: git auth provider"}]]]],"hasChildProcesses":false,"shellIntegrationNonce":"7872f4a6-8ac8-4caa-80a1-946cd23d2dae"},"processLaunchConfig":{"env":{"SHELL":"/bin/zsh","LSCOLORS":"Gxfxcxdxbxegedabagacad","WINDOWID":"79691782","LESS":"R","ANSIBLE_CONFIG":"/home/josie/.config/ansible/ansible.cfg","NVM_INC":"/home/josie/.config/nvm/versions/node/v14.19.1/include/node","CONDA_EXE":"/home/josie/anaconda3/bin/conda","_CE_M":"","PERLLIB":"/tmp/.mount_CursorDDNoVB/usr/share/perl5/:/tmp/.mount_CursorDDNoVB/usr/lib/perl5/:","_P9K_TTY":"/dev/pts/4","NOTMUCH_CONFIG":"/home/josie/.config/notmuch-config","LESS_TERMCAP_se":"\u001b[0m","LESS_TERMCAP_so":"\u001b[01;44;33m","SSH_AUTH_SOCK":"/tmp/ssh-XXXXXX1VAchD/agent.793","XDG_DATA_HOME":"/home/josie/.local/share","ARGV0":"/home/josie/Downloads/Cursor-0.46.11-ae378be9dc2f5f1a6a1a220c6e25f9f03c8d4e19.deb.glibc2.25-x86_64.AppImage","P9K_TTY":"old","XDG_CONFIG_HOME":"/home/josie/.config","ANDROID_SDK_HOME":"/home/josie/.config/android","KODI_DATA":"/home/josie/.local/share/kodi","RBENV_SHELL":"zsh","SSH_AGENT_PID":"805","GPG_TTY":"$(tty)","CLOUDSDK_PYTHON_ARGS":"-S -W ignore","EDITOR":"nvim","XDG_SEAT":"seat0","PWD":"/home/josie","UNISON":"/home/josie/.local/share/unison","GSETTINGS_SCHEMA_DIR":"/tmp/.mount_CursorDDNoVB/usr/share/glib-2.0/schemas/:","LOGNAME":"josie","QT_QPA_PLATFORMTHEME":"gtk2","XDG_SESSION_TYPE":"tty","AWT_TOOLKIT":"MToolkit wmname LG3D","XAUTHORITY":"/home/josie/.Xauthority","TERMINAL":"st","WINDOWPATH":"1","MOTD_SHOWN":"pam","GTK2_RC_FILES":"/home/josie/.config/gtk-2.0/gtkrc-2.0","HOME":"/home/josie","LANG":"en_US.UTF-8","TMUX_TMPDIR":"/run/user/1000","WINEPREFIX":"/home/josie/.local/share/wineprefixes/default","HISTFILE":"/home/josie/.zsh_history","LS_COLORS":"rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=00:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.7z=01;31:*.ace=01;31:*.alz=01;31:*.apk=01;31:*.arc=01;31:*.arj=01;31:*.bz=01;31:*.bz2=01;31:*.cab=01;31:*.cpio=01;31:*.crate=01;31:*.deb=01;31:*.drpm=01;31:*.dwm=01;31:*.dz=01;31:*.ear=01;31:*.egg=01;31:*.esd=01;31:*.gz=01;31:*.jar=01;31:*.lha=01;31:*.lrz=01;31:*.lz=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.lzo=01;31:*.pyz=01;31:*.rar=01;31:*.rpm=01;31:*.rz=01;31:*.sar=01;31:*.swm=01;31:*.t7z=01;31:*.tar=01;31:*.taz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tgz=01;31:*.tlz=01;31:*.txz=01;31:*.tz=01;31:*.tzo=01;31:*.tzst=01;31:*.udeb=01;31:*.war=01;31:*.whl=01;31:*.wim=01;31:*.xz=01;31:*.z=01;31:*.zip=01;31:*.zoo=01;31:*.zst=01;31:*.avif=01;35:*.jpg=01;35:*.jpeg=01;35:*.jxl=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.webp=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:*~=00;90:*#=00;90:*.bak=00;90:*.crdownload=00;90:*.dpkg-dist=00;90:*.dpkg-new=00;90:*.dpkg-old=00;90:*.dpkg-tmp=00;90:*.old=00;90:*.orig=00;90:*.part=00;90:*.rej=00;90:*.rpmnew=00;90:*.rpmorig=00;90:*.rpmsave=00;90:*.swp=00;90:*.tmp=00;90:*.ucf-dist=00;90:*.ucf-new=00;90:*.ucf-old=00;90:","_JAVA_AWT_WM_NONREPARENTING":"1","CARGO_HOME":"/home/josie/.local/share/cargo","PYTHONSTARTUP":"/home/josie/.config/python/pythonrc","KEYTIMEOUT":"1","CLOUDSDK_ROOT_DIR":"/opt/google-cloud-cli","MBSYNCRC":"/home/josie/.config/mbsync/config","WGETRC":"/home/josie/.config/wget/wgetrc","GOMODCACHE":"/home/josie/.cache/go/mod","APPDIR":"/tmp/.mount_CursorDDNoVB","XDG_CACHE_HOME":"/home/josie/.cache","CLOUDSDK_PYTHON":"/usr/bin/python","NVM_DIR":"/home/josie/.config/nvm","ELECTRUMDIR":"/home/josie/.local/share/electrum","XDG_SESSION_CLASS":"user","TERM":"st-256color","LESS_TERMCAP_mb":"\u001b[1;31m","ZSH":"/home/josie/.oh-my-zsh","LESS_TERMCAP_me":"\u001b[0m","LESS_TERMCAP_md":"\u001b[1;36m","_CE_CONDA":"","ZDOTDIR":"/tmp/josie-cursor-zsh","LESSOPEN":"| /usr/bin/highlight -O ansi %s 2>/dev/null","GOOGLE_CLOUD_SDK_HOME":"/opt/google-cloud-cli","USER":"josie","DICS":"/usr/share/stardict/dic/","OWD":"/home/josie","CONDA_SHLVL":"0","XINITRC":"/home/josie/.config/x11/xinitrc","SUDO_ASKPASS":"/home/josie/.local/bin/dmenupass","DISPLAY":":0","LESS_TERMCAP_ue":"\u001b[0m","SHLVL":"3","NVM_CD_FLAGS":"-q","INPUTRC":"/home/josie/.config/shell/inputrc","LESS_TERMCAP_us":"\u001b[1;32m","PAGER":"less","MOZ_USE_XINPUT2":"1","_P9K_SSH_TTY":"","XDG_VTNR":"1","XDG_SESSION_ID":"1","CONDA_PYTHON_EXE":"/home/josie/anaconda3/bin/python","LD_LIBRARY_PATH":"/tmp/.mount_CursorDDNoVB/usr/lib/:/tmp/.mount_CursorDDNoVB/usr/lib32/:/tmp/.mount_CursorDDNoVB/usr/lib64/:/tmp/.mount_CursorDDNoVB/lib/:/tmp/.mount_CursorDDNoVB/lib/i386-linux-gnu/:/tmp/.mount_CursorDDNoVB/lib/x86_64-linux-gnu/:/tmp/.mount_CursorDDNoVB/lib/aarch64-linux-gnu/:/tmp/.mount_CursorDDNoVB/lib32/:/tmp/.mount_CursorDDNoVB/lib64/:","APPIMAGE":"/home/josie/Downloads/Cursor-0.46.11-ae378be9dc2f5f1a6a1a220c6e25f9f03c8d4e19.deb.glibc2.25-x86_64.AppImage","XDG_RUNTIME_DIR":"/run/user/1000","TERMINAL_PROG":"st","DEBUGINFOD_URLS":"https://debuginfod.archlinux.org ","P9K_SSH":"0","XDG_DATA_DIRS":"/tmp/.mount_CursorDDNoVB/usr/share/:/usr/share:/usr/local/","SQLITE_HISTORY":"/home/josie/.local/share/sqlite_history","BROWSER":"librewolf","PATH":"/home/josie/.krew/bin:/home/josie/.rbenv/shims:/opt/google-cloud-cli/bin:/tmp/.mount_CursorDDNoVB/usr/bin/:/tmp/.mount_CursorDDNoVB/usr/sbin/:/tmp/.mount_CursorDDNoVB/usr/games/:/tmp/.mount_CursorDDNoVB/bin/:/tmp/.mount_CursorDDNoVB/sbin/:/home/josie/anaconda3/condabin:/home/josie/.config/nvm/versions/node/v14.19.1/bin:/home/josie/.krew/bin:/home/josie/.rbenv/shims:/opt/google-cloud-cli/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl:/home/josie/.local/bin:/home/josie/.local/bin/cron:/home/josie/.local/bin/statusbar:/home/josie/bin:/home/josie/.local/bin:/home/josie/.local/bin/statusbar:/bin:/home/josie/.local/share/go/bin:/home/josie/bin:/home/josie/.local/bin:/home/josie/.local/bin/statusbar:/bin:/home/josie/.local/share/go/bin","DBUS_SESSION_BUS_ADDRESS":"unix:path=/tmp/dbus-BOpgQsEPFi,guid=512d21d0f0f255eb320dfc2f681200ee","FZF_DEFAULT_OPTS":"--layout=reverse --height 40%","PASSWORD_STORE_DIR":"/home/josie/.local/share/password-store","HG":"/usr/bin/hg","NVM_BIN":"/home/josie/.config/nvm/versions/node/v14.19.1/bin","MAIL":"/var/spool/mail/josie","QT_PLUGIN_PATH":"/tmp/.mount_CursorDDNoVB/usr/lib/qt4/plugins/:/tmp/.mount_CursorDDNoVB/usr/lib/i386-linux-gnu/qt4/plugins/:/tmp/.mount_CursorDDNoVB/usr/lib/x86_64-linux-gnu/qt4/plugins/:/tmp/.mount_CursorDDNoVB/usr/lib/aarch64-linux-gnu/qt4/plugins/:/tmp/.mount_CursorDDNoVB/usr/lib32/qt4/plugins/:/tmp/.mount_CursorDDNoVB/usr/lib64/qt4/plugins/:/tmp/.mount_CursorDDNoVB/usr/lib/qt5/plugins/:/tmp/.mount_CursorDDNoVB/usr/lib/i386-linux-gnu/qt5/plugins/:/tmp/.mount_CursorDDNoVB/usr/lib/x86_64-linux-gnu/qt5/plugins/:/tmp/.mount_CursorDDNoVB/usr/lib/aarch64-linux-gnu/qt5/plugins/:/tmp/.mount_CursorDDNoVB/usr/lib32/qt5/plugins/:/tmp/.mount_CursorDDNoVB/usr/lib64/qt5/plugins/:","OLDPWD":"/home/josie","GOPATH":"/home/josie/.local/share/go","CHROME_DESKTOP":"cursor.desktop","ORIGINAL_XDG_CURRENT_DESKTOP":"undefined","CURSOR_TRACE_ID":"bd17ab963c114bfcaa9ffc31f9cab434","GDK_BACKEND":"x11","NO_AT_BRIDGE":"1","_":"/tmp/.mount_CursorDDNoVB/usr/share/cursor/cursor","TERM_PROGRAM":"vscode","TERM_PROGRAM_VERSION":"0.46.11","COLORTERM":"truecolor","GIT_ASKPASS":"/tmp/.mount_CursorHE0Dsa/usr/share/cursor/resources/app/extensions/git/dist/askpass.sh","VSCODE_GIT_ASKPASS_NODE":"/tmp/.mount_CursorHE0Dsa/usr/share/cursor/cursor","VSCODE_GIT_ASKPASS_EXTRA_ARGS":"","VSCODE_GIT_ASKPASS_MAIN":"/tmp/.mount_CursorHE0Dsa/usr/share/cursor/resources/app/extensions/git/dist/askpass-main.js","VSCODE_GIT_IPC_HANDLE":"/run/user/1000/vscode-git-d8fdab8a5e.sock","VSCODE_INJECTION":"1","VSCODE_NONCE":"7872f4a6-8ac8-4caa-80a1-946cd23d2dae","USER_ZDOTDIR":"/home/josie/.config/zsh"},"executableEnv":{"SHELL":"/bin/zsh","LSCOLORS":"Gxfxcxdxbxegedabagacad","WINDOWID":"14680070","LESS":"R","ANSIBLE_CONFIG":"/home/josie/.config/ansible/ansible.cfg","NVM_INC":"/home/josie/.config/nvm/versions/node/v14.19.1/include/node","CONDA_EXE":"/home/josie/anaconda3/bin/conda","_CE_M":"","PERLLIB":"/tmp/.mount_CursorxDwmgu/usr/share/perl5/:/tmp/.mount_CursorxDwmgu/usr/lib/perl5/:","_P9K_TTY":"/dev/pts/0","NOTMUCH_CONFIG":"/home/josie/.config/notmuch-config","LESS_TERMCAP_se":"\u001b[0m","LESS_TERMCAP_so":"\u001b[01;44;33m","SSH_AUTH_SOCK":"/tmp/ssh-XXXXXXOiYOMC/agent.2321105","XDG_DATA_HOME":"/home/josie/.local/share","ARGV0":"/home/josie/Downloads/Cursor-0.46.11-ae378be9dc2f5f1a6a1a220c6e25f9f03c8d4e19.deb.glibc2.25-x86_64.AppImage","P9K_TTY":"old","XDG_CONFIG_HOME":"/home/josie/.config","ANDROID_SDK_HOME":"/home/josie/.config/android","KODI_DATA":"/home/josie/.local/share/kodi","RBENV_SHELL":"zsh","SSH_AGENT_PID":"2321116","GPG_TTY":"$(tty)","CLOUDSDK_PYTHON_ARGS":"-S -W ignore","EDITOR":"nvim","XDG_SEAT":"seat0","PWD":"/home/josie","UNISON":"/home/josie/.local/share/unison","GSETTINGS_SCHEMA_DIR":"/tmp/.mount_CursorxDwmgu/usr/share/glib-2.0/schemas/:","LOGNAME":"josie","QT_QPA_PLATFORMTHEME":"gtk2","XDG_SESSION_TYPE":"tty","AWT_TOOLKIT":"MToolkit wmname LG3D","XAUTHORITY":"/home/josie/.Xauthority","TERMINAL":"st","WINDOWPATH":"1","MOTD_SHOWN":"pam","GTK2_RC_FILES":"/home/josie/.config/gtk-2.0/gtkrc-2.0","HOME":"/home/josie","LANG":"en_US.UTF-8","TMUX_TMPDIR":"/run/user/1000","WINEPREFIX":"/home/josie/.local/share/wineprefixes/default","HISTFILE":"/home/josie/.zsh_history","LS_COLORS":"rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=00:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.7z=01;31:*.ace=01;31:*.alz=01;31:*.apk=01;31:*.arc=01;31:*.arj=01;31:*.bz=01;31:*.bz2=01;31:*.cab=01;31:*.cpio=01;31:*.crate=01;31:*.deb=01;31:*.drpm=01;31:*.dwm=01;31:*.dz=01;31:*.ear=01;31:*.egg=01;31:*.esd=01;31:*.gz=01;31:*.jar=01;31:*.lha=01;31:*.lrz=01;31:*.lz=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.lzo=01;31:*.pyz=01;31:*.rar=01;31:*.rpm=01;31:*.rz=01;31:*.sar=01;31:*.swm=01;31:*.t7z=01;31:*.tar=01;31:*.taz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tgz=01;31:*.tlz=01;31:*.txz=01;31:*.tz=01;31:*.tzo=01;31:*.tzst=01;31:*.udeb=01;31:*.war=01;31:*.whl=01;31:*.wim=01;31:*.xz=01;31:*.z=01;31:*.zip=01;31:*.zoo=01;31:*.zst=01;31:*.avif=01;35:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.webp=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:*~=00;90:*#=00;90:*.bak=00;90:*.crdownload=00;90:*.dpkg-dist=00;90:*.dpkg-new=00;90:*.dpkg-old=00;90:*.dpkg-tmp=00;90:*.old=00;90:*.orig=00;90:*.part=00;90:*.rej=00;90:*.rpmnew=00;90:*.rpmorig=00;90:*.rpmsave=00;90:*.swp=00;90:*.tmp=00;90:*.ucf-dist=00;90:*.ucf-new=00;90:*.ucf-old=00;90:","_JAVA_AWT_WM_NONREPARENTING":"1","CARGO_HOME":"/home/josie/.local/share/cargo","PYTHONSTARTUP":"/home/josie/.config/python/pythonrc","KEYTIMEOUT":"1","CLOUDSDK_ROOT_DIR":"/opt/google-cloud-cli","MBSYNCRC":"/home/josie/.config/mbsync/config","WGETRC":"/home/josie/.config/wget/wgetrc","GOMODCACHE":"/home/josie/.cache/go/mod","APPDIR":"/tmp/.mount_CursorxDwmgu","XDG_CACHE_HOME":"/home/josie/.cache","CLOUDSDK_PYTHON":"/usr/bin/python","NVM_DIR":"/home/josie/.config/nvm","ELECTRUMDIR":"/home/josie/.local/share/electrum","XDG_SESSION_CLASS":"user","TERM":"st-256color","LESS_TERMCAP_mb":"\u001b[1;31m","ZSH":"/home/josie/.oh-my-zsh","LESS_TERMCAP_me":"\u001b[0m","LESS_TERMCAP_md":"\u001b[1;36m","_CE_CONDA":"","ZDOTDIR":"/home/josie/.config/zsh","LESSOPEN":"| /usr/bin/highlight -O ansi %s 2>/dev/null","GOOGLE_CLOUD_SDK_HOME":"/opt/google-cloud-cli","USER":"josie","DICS":"/usr/share/stardict/dic/","OWD":"/home/josie","CONDA_SHLVL":"0","XINITRC":"/home/josie/.config/x11/xinitrc","SUDO_ASKPASS":"/home/josie/.local/bin/dmenupass","DISPLAY":":0","LESS_TERMCAP_ue":"\u001b[0m","SHLVL":"3","NVM_CD_FLAGS":"-q","INPUTRC":"/home/josie/.config/shell/inputrc","LESS_TERMCAP_us":"\u001b[1;32m","PAGER":"less","MOZ_USE_XINPUT2":"1","_P9K_SSH_TTY":"","XDG_VTNR":"1","XDG_SESSION_ID":"3","CONDA_PYTHON_EXE":"/home/josie/anaconda3/bin/python","LD_LIBRARY_PATH":"/tmp/.mount_CursorxDwmgu/usr/lib/:/tmp/.mount_CursorxDwmgu/usr/lib32/:/tmp/.mount_CursorxDwmgu/usr/lib64/:/tmp/.mount_CursorxDwmgu/lib/:/tmp/.mount_CursorxDwmgu/lib/i386-linux-gnu/:/tmp/.mount_CursorxDwmgu/lib/x86_64-linux-gnu/:/tmp/.mount_CursorxDwmgu/lib/aarch64-linux-gnu/:/tmp/.mount_CursorxDwmgu/lib32/:/tmp/.mount_CursorxDwmgu/lib64/:","APPIMAGE":"/home/josie/Downloads/Cursor-0.46.11-ae378be9dc2f5f1a6a1a220c6e25f9f03c8d4e19.deb.glibc2.25-x86_64.AppImage","XDG_RUNTIME_DIR":"/run/user/1000","TERMINAL_PROG":"st","DEBUGINFOD_URLS":"https://debuginfod.archlinux.org ","P9K_SSH":"0","XDG_DATA_DIRS":"/tmp/.mount_CursorxDwmgu/usr/share/:/usr/share:/usr/local/","SQLITE_HISTORY":"/home/josie/.local/share/sqlite_history","BROWSER":"librewolf","PATH":"/home/josie/.krew/bin:/home/josie/.rbenv/shims:/opt/google-cloud-cli/bin:/tmp/.mount_CursorxDwmgu/usr/bin/:/tmp/.mount_CursorxDwmgu/usr/sbin/:/tmp/.mount_CursorxDwmgu/usr/games/:/tmp/.mount_CursorxDwmgu/bin/:/tmp/.mount_CursorxDwmgu/sbin/:/home/josie/anaconda3/condabin:/home/josie/.config/nvm/versions/node/v14.19.1/bin:/home/josie/.krew/bin:/home/josie/.rbenv/shims:/opt/google-cloud-cli/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl:/home/josie/.local/bin:/home/josie/.local/bin/cron:/home/josie/.local/bin/statusbar:/home/josie/bin:/home/josie/.local/bin:/home/josie/.local/bin/statusbar:/bin:/home/josie/.local/share/go/bin:/home/josie/bin:/home/josie/.local/bin:/home/josie/.local/bin/statusbar:/bin:/home/josie/.local/share/go/bin","DBUS_SESSION_BUS_ADDRESS":"unix:path=/tmp/dbus-OCYNH2YbUK,guid=7693aee96c1f416f72eaab6067f383ab","FZF_DEFAULT_OPTS":"--layout=reverse --height 40%","PASSWORD_STORE_DIR":"/home/josie/.local/share/password-store","HG":"/usr/bin/hg","NVM_BIN":"/home/josie/.config/nvm/versions/node/v14.19.1/bin","MAIL":"/var/spool/mail/josie","QT_PLUGIN_PATH":"/tmp/.mount_CursorxDwmgu/usr/lib/qt4/plugins/:/tmp/.mount_CursorxDwmgu/usr/lib/i386-linux-gnu/qt4/plugins/:/tmp/.mount_CursorxDwmgu/usr/lib/x86_64-linux-gnu/qt4/plugins/:/tmp/.mount_CursorxDwmgu/usr/lib/aarch64-linux-gnu/qt4/plugins/:/tmp/.mount_CursorxDwmgu/usr/lib32/qt4/plugins/:/tmp/.mount_CursorxDwmgu/usr/lib64/qt4/plugins/:/tmp/.mount_CursorxDwmgu/usr/lib/qt5/plugins/:/tmp/.mount_CursorxDwmgu/usr/lib/i386-linux-gnu/qt5/plugins/:/tmp/.mount_CursorxDwmgu/usr/lib/x86_64-linux-gnu/qt5/plugins/:/tmp/.mount_CursorxDwmgu/usr/lib/aarch64-linux-gnu/qt5/plugins/:/tmp/.mount_CursorxDwmgu/usr/lib32/qt5/plugins/:/tmp/.mount_CursorxDwmgu/usr/lib64/qt5/plugins/:","OLDPWD":"/home/josie","GOPATH":"/home/josie/.local/share/go","CHROME_DESKTOP":"cursor.desktop","ORIGINAL_XDG_CURRENT_DESKTOP":"undefined","VSCODE_CWD":"/home/josie","CURSOR_TRACE_ID":"d768df8bc4ed4d43bd6bcdd513b4002a","GDK_BACKEND":"x11","NO_AT_BRIDGE":"1","VSCODE_NLS_CONFIG":"{\"userLocale\":\"en-us\",\"osLocale\":\"en-us\",\"resolvedLanguage\":\"en\",\"defaultMessagesFile\":\"/tmp/.mount_CursorxDwmgu/usr/share/cursor/resources/app/out/nls.messages.json\",\"locale\":\"en-us\",\"availableLanguages\":{}}","VSCODE_CODE_CACHE_PATH":"/home/josie/.config/Cursor/CachedData/ae378be9dc2f5f1a6a1a220c6e25f9f03c8d4e10","VSCODE_IPC_HOOK":"/run/user/1000/vscode-8ea89bb1-0.46-main.sock","VSCODE_PID":"2546882","_":"/tmp/.mount_CursorxDwmgu/usr/share/cursor/cursor"},"options":{"shellIntegration":{"enabled":true,"suggestEnabled":false,"nonce":"7872f4a6-8ac8-4caa-80a1-946cd23d2dae"},"windowsEnableConpty":true,"windowsUseConptyDll":false,"environmentVariableCollections":[["vscode.git",[["GIT_ASKPASS",{"variable":"GIT_ASKPASS","value":"/tmp/.mount_CursorxDwmgu/usr/share/cursor/resources/app/extensions/git/dist/askpass.sh","type":1,"options":{"applyAtProcessCreation":true,"applyAtShellIntegration":false}}],["VSCODE_GIT_ASKPASS_NODE",{"variable":"VSCODE_GIT_ASKPASS_NODE","value":"/tmp/.mount_CursorxDwmgu/usr/share/cursor/cursor","type":1,"options":{"applyAtProcessCreation":true,"applyAtShellIntegration":false}}],["VSCODE_GIT_ASKPASS_EXTRA_ARGS",{"variable":"VSCODE_GIT_ASKPASS_EXTRA_ARGS","value":"","type":1,"options":{"applyAtProcessCreation":true,"applyAtShellIntegration":false}}],["VSCODE_GIT_ASKPASS_MAIN",{"variable":"VSCODE_GIT_ASKPASS_MAIN","value":"/tmp/.mount_CursorxDwmgu/usr/share/cursor/resources/app/extensions/git/dist/askpass-main.js","type":1,"options":{"applyAtProcessCreation":true,"applyAtShellIntegration":false}}],["VSCODE_GIT_IPC_HANDLE",{"variable":"VSCODE_GIT_IPC_HANDLE","value":"/run/user/1000/vscode-git-d8fdab8a5e.sock","type":1,"options":{"applyAtProcessCreation":true,"applyAtShellIntegration":false}}]],[["",{"description":"Enables the following features: git auth provider"}]]]],"workspaceFolder":{"uri":{"$mid":1,"fsPath":"/home/josie/development/josiedotlol","external":"file:///home/josie/development/josiedotlol","path":"/home/josie/development/josiedotlol","scheme":"file"},"name":"josiedotlol","index":0}}},"unicodeVersion":"11","replayEvent":{"events":[{"cols":105,"rows":19,"data":"🎉 Blog build completed successfully!\r\n--> 9fd33680663f\r\n[2/2] STEP 1/5: FROM quay.io/fedora/httpd-24\r\n[2/2] STEP 2/5: COPY --from=builder --chown=1001:0 /build /var/www/html/\r\n--> 887843830a9c\r\n[2/2] STEP 3/5: COPY <<EOF /etc/httpd/conf.d/custom.conf (# Custom URL routing configuration...)\r\n--> e8266faab09f\r\n[2/2] STEP 4/5: EXPOSE 8080\r\n--> aa3faf819ac4\r\n[2/2] STEP 5/5: CMD run-httpd\r\n[2/2] COMMIT josiedotlol\r\n--> 59b2d931e785\r\nSuccessfully tagged localhost/josiedotlol:latest\r\n59b2d931e785c984b07e641d65e6f3d5ef3975082d6bdb98333d630aff410eb3\r\n\u001b[38;5;76m❯\u001b[0m \u001b[32msudo\u001b[0m \u001b[32mpodman\u001b[0m run \u001b[36m--replace\u001b[0m \u001b[36m-d\u001b[0m \u001b[36m-p\u001b[0m 8080:8080 \u001b[36m--name\u001b[0m josiedotlol-web localhost/josiedotlol && \u001b[32msudo\u001b[0m \u001b[32mpodman\u001b[0m build \u001b[36m-t\u001b[0m josiedotlol \u001b[35;4m.\r\n\u001b[0m4b124ec524aa3c30ab38e8d813b501bdf3e75bf76888b1b115bf1bb1be23de4f\r\n[1/2] STEP 1/5: FROM fedora:latest AS builder\r\n[1/2] STEP 2/5: RUN dnf install -y pandoc && dnf clean all\r\n--> Using cache 1ca9c34f543a9a3977197912535d56def60ea6de5d806a22c788ebdd2f10df5d\r\n--> 1ca9c34f543a\r\n[1/2] STEP 3/5: WORKDIR /build\r\n--> Using cache cffa8e4d1f0c05f860d85b8b8ddc8b426db4c8a78f1addfcdfba347b6b756151\r\n--> cffa8e4d1f0c\r\n[1/2] STEP 4/5: COPY . .\r\n--> Using cache 96db79a387653dcf54037d0d29ab1d303fa07102fd0bf54631cc702846843f0e\r\n--> 96db79a38765\r\n[1/2] STEP 5/5: RUN ./scripts/blog-build.sh\r\n--> Using cache 9fd33680663f5816077946dedbaffce3b69bc5e522a6abbd71eff24061b90d7c\r\n--> 9fd33680663f\r\n[2/2] STEP 1/5: FROM quay.io/fedora/httpd-24\r\n[2/2] STEP 2/5: COPY --from=builder --chown=1001:0 /build /var/www/html/\r\n--> Using cache 887843830a9c666521aeae5dccfe6627d0b7d7c08bbb9920780c79a5d368b15b\r\n--> 887843830a9c\r\n[2/2] STEP 3/5: COPY <<EOF /etc/httpd/conf.d/custom.conf (# Custom URL routing configuration...)\r\n--> Using cache e8266faab09fb04aae3f5140bc12d25ff9fa726523220eee312b265d01b546f6\r\n--> e8266faab09f\r\n[2/2] STEP 4/5: EXPOSE 8080\r\n--> Using cache aa3faf819ac446fd57bac297156d11f1b88e8a4d1ba609193e06bb1a89694a3a\r\n--> aa3faf819ac4\r\n[2/2] STEP 5/5: CMD run-httpd\r\n--> Using cache 59b2d931e785c984b07e641d65e6f3d5ef3975082d6bdb98333d630aff410eb3\r\n[2/2] COMMIT josiedotlol\r\n--> 59b2d931e785\r\nSuccessfully tagged localhost/josiedotlol:latest\r\n59b2d931e785c984b07e641d65e6f3d5ef3975082d6bdb98333d630aff410eb3\r\n\u001b[38;5;76m❯\u001b[0m \u001b[32msudo\u001b[0m \u001b[32mpodman\u001b[0m build \u001b[36m-t\u001b[0m josiedotlol \u001b[35;4m.\r\n\u001b[0m[1/2] STEP 1/5: FROM fedora:latest AS builder\r\n[1/2] STEP 2/5: RUN dnf install -y pandoc && dnf clean all\r\n--> Using cache 1ca9c34f543a9a3977197912535d56def60ea6de5d806a22c788ebdd2f10df5d\r\n--> 1ca9c34f543a\r\n[1/2] STEP 3/5: WORKDIR /build\r\n--> Using cache cffa8e4d1f0c05f860d85b8b8ddc8b426db4c8a78f1addfcdfba347b6b756151\r\n--> cffa8e4d1f0c\r\n[1/2] STEP 4/5: COPY . .\r\n--> 1281d4ac68b1\r\n[1/2] STEP 5/5: RUN ./scripts/blog-build.sh\r\n🔄 Building blog posts from Markdown...\r\n🔨 Processing: t-rex.md\r\n✅ Generated: blog/t-rex.html\r\n🔨 Processing: hello-world.md\r\n✅ Generated: blog/hello-world.html\r\n🔨 Processing: aws.md\r\n✅ Generated: blog/aws.html\r\n🔄 Updating blog index...\r\n✅ Updated blog index page\r\n🔄 Updating RSS feed...\r\n✅ Updated RSS feed\r\n🎉 Blog build completed successfully!\r\n--> 65127079c918\r\n[2/2] STEP 1/5: FROM quay.io/fedora/httpd-24\r\n[2/2] STEP 2/5: COPY --from=builder --chown=1001:0 /build /var/www/html/\r\n--> 257db404979f\r\n[2/2] STEP 3/5: COPY <<EOF /etc/httpd/conf.d/custom.conf (# Custom URL routing configuration...)\r\n--> 282e10ff8fd7\r\n[2/2] STEP 4/5: EXPOSE 8080\r\n--> 321e08ebbd90\r\n[2/2] STEP 5/5: CMD run-httpd\r\n[2/2] COMMIT josiedotlol\r\n--> fb5b78bdd798\r\nSuccessfully tagged localhost/josiedotlol:latest\r\nfb5b78bdd7987e3c25ea650bae63bdb12b3062c0858d1268778f71fd3ab04b92\r\n\u001b[38;5;76m❯\u001b[0m \u001b[32msudo\u001b[0m \u001b[32mpodman\u001b[0m run \u001b[36m--replace\u001b[0m \u001b[36m-d\u001b[0m \u001b[36m-p\u001b[0m 8080:8080 \u001b[36m--name\u001b[0m josiedotlol-web localhost/josiedotlol && \u001b[32msudo\u001b[0m \u001b[32mpodman\u001b[0m build \u001b[36m-t\u001b[0m josiedotlol \u001b[35;4m.\r\n\u001b[0m190c75ad661495600f451e28354e747d565f2f6cd9c71dfb766a330d4194c4f2\r\n[1/2] STEP 1/5: FROM fedora:latest AS builder\r\n[1/2] STEP 2/5: RUN dnf install -y pandoc && dnf clean all\r\n--> Using cache 1ca9c34f543a9a3977197912535d56def60ea6de5d806a22c788ebdd2f10df5d\r\n--> 1ca9c34f543a\r\n[1/2] STEP 3/5: WORKDIR /build\r\n--> Using cache cffa8e4d1f0c05f860d85b8b8ddc8b426db4c8a78f1addfcdfba347b6b756151\r\n--> cffa8e4d1f0c\r\n[1/2] STEP 4/5: COPY . .\r\n--> Using cache 1281d4ac68b1e9ad401a6b477e08665f9a1568fd2df2f00d6c111a5df14e0e3f\r\n--> 1281d4ac68b1\r\n[1/2] STEP 5/5: RUN ./scripts/blog-build.sh\r\n--> Using cache 65127079c918506ffe9ab4ecb12693d69c91fa3c7b801b1bce42a23fc7383879\r\n--> 65127079c918\r\n[2/2] STEP 1/5: FROM quay.io/fedora/httpd-24\r\n[2/2] STEP 2/5: COPY --from=builder --chown=1001:0 /build /var/www/html/\r\n--> Using cache 257db404979ffdea8850050559d210f72563a889d73808f986c892269faae4fe\r\n--> 257db404979f\r\n[2/2] STEP 3/5: COPY <<EOF /etc/httpd/conf.d/custom.conf (# Custom URL routing configuration...)\r\n--> Using cache 282e10ff8fd7be63a13a0cff3e5576fc47647414908b60f10c02085fffb72796\r\n--> 282e10ff8fd7\r\n[2/2] STEP 4/5: EXPOSE 8080\r\n--> Using cache 321e08ebbd90af8eb0ae9bdc9d3574d885523139cefc43b2d3a164b35fce95e0\r\n--> 321e08ebbd90\r\n[2/2] STEP 5/5: CMD run-httpd\r\n--> Using cache fb5b78bdd7987e3c25ea650bae63bdb12b3062c0858d1268778f71fd3ab04b92\r\n[2/2] COMMIT josiedotlol\r\n--> fb5b78bdd798\r\nSuccessfully tagged localhost/josiedotlol:latest\r\nfb5b78bdd7987e3c25ea650bae63bdb12b3062c0858d1268778f71fd3ab04b92\r\n\u001b[38;5;254;44m \u001b[38;5;255;1m~\u001b[38;5;254;22m/\u001b[38;5;250md\u001b[38;5;254m/\u001b[38;5;255;1mjosiedotlol\u001b[38;5;254;22m \u001b[30;43m main !3 ?7 \u001b[0m ----------------------------------------------------------------------------\u001b[1D\u001b[1X\u001b[A\u001b[30C\u001b[75X\u001b[30D\u001b[B\u001b[1C\u001b[32;40m ✔ \u001b[30;47m 11:15:12 PM \u001b[0m\r\n\u001b[7m * \u001b[104;27m History restored \u001b[0m\r\n\r\n\u001b[38;5;254;44m \u001b[38;5;255;1m~\u001b[38;5;254;22m/development/\u001b[38;5;255;1mjosiedotlol\u001b[38;5;254;22m \u001b[30;43m main !3 ?8 \u001b[0m \u001b[48C\u001b[32;40m ✔ \u001b[30;47m 11:21:04 AM \u001b[0m\u001b[64D"}],"commands":{"isWindowsPty":false,"commands":[]}},"timestamp":1746092315974},{"id":2,"shellLaunchConfig":{"icon":{"id":"terminal","defaults":{"fontCharacter":"\\ea85"}},"executable":"/usr/bin/zsh","useShellEnvironment":true,"cwd":"/home/josie/development/josiedotlol","initialText":"🔨 Processing: hello-world.md\r\n✅ Generated: blog/hello-world.html\r\n🔨 Processing: aws.md\r\n✅ Generated: blog/aws.html\r\n🔄 Updating blog index...\r\n✅ Updated blog index page\r\n🔄 Updating RSS feed...\r\n✅ Updated RSS feed\r\n🎉 Blog build completed successfully!\r\n🔄 Building talks index...\r\n🔨 Processing talk: example-talk.md\r\n./scripts/blog-build.sh: line 345: example-talk.md: syntax error: invalid arithmetic operator (error token is \".md\")\r\n🔄 Updating talks index...\r\n✅ Updated talks index page\r\n--> 5b77ab8c9337\r\n[2/2] STEP 1/5: FROM quay.io/fedora/httpd-24\r\n[2/2] STEP 2/5: COPY --from=builder --chown=1001:0 /build /var/www/html/\r\n--> 6252e1ce617f\r\n[2/2] STEP 3/5: COPY <<EOF /etc/httpd/conf.d/custom.conf (# Custom URL routing configuration...)\r\n--> 5382cf75378f\r\n[2/2] STEP 4/5: EXPOSE 8080\r\n--> f26e060dbc5f\r\n[2/2] STEP 5/5: CMD run-httpd\r\n[2/2] COMMIT josiedotlol\r\n--> 5ae4e6c4aa79\r\nSuccessfully tagged localhost/josiedotlol:latest\r\n5ae4e6c4aa799c7d299499860a2080fe0a52dc50ee68bbcbe81421a178f3a6f0\r\n\u001b[38;5;76m❯\u001b[0m \u001b[32msudo\u001b[0m \u001b[32mpodman\u001b[0m run \u001b[36m--replace\u001b[0m \u001b[36m-d\u001b[0m \u001b[36m-p\u001b[0m 8080:8080 \u001b[36m--name\u001b[0m josiedotlol-web localhost/josiedotlol\r\nae9cd8a6d8c934b5d3e59ac954535b85d9244e93b92c6e00b4251b47c473742c\r\n\u001b[38;5;76m❯\u001b[0m \u001b[32msudo\u001b[0m \u001b[32mpodman\u001b[0m build \u001b[36m-t\u001b[0m josiedotlol \u001b[35;4m.\r\n\u001b[0m[1/2] STEP 1/5: FROM fedora:latest AS builder\r\n[1/2] STEP 2/5: RUN dnf install -y pandoc && dnf clean all\r\n--> Using cache 1ca9c34f543a9a3977197912535d56def60ea6de5d806a22c788ebdd2f10df5d\r\n--> 1ca9c34f543a\r\n[1/2] STEP 3/5: WORKDIR /build\r\n--> Using cache cffa8e4d1f0c05f860d85b8b8ddc8b426db4c8a78f1addfcdfba347b6b756151\r\n--> cffa8e4d1f0c\r\n[1/2] STEP 4/5: COPY . .\r\n--> 23adc819fb6d\r\n[1/2] STEP 5/5: RUN ./scripts/blog-build.sh\r\n🔄 Building blog posts from Markdown...\r\n🔨 Processing: t-rex.md\r\n✅ Generated: blog/t-rex.html\r\n🔨 Processing: hello-world.md\r\n✅ Generated: blog/hello-world.html\r\n🔨 Processing: aws.md\r\n✅ Generated: blog/aws.html\r\n🔄 Updating blog index...\r\n✅ Updated blog index page\r\n🔄 Updating RSS feed...\r\n✅ Updated RSS feed\r\n🎉 Blog build completed successfully!\r\n🔄 Building talks index...\r\n📊 Found 2 talk markdown files\r\n🔨 Processing talk: example-talk.md\r\n  Title: Building AI-powered Developer Tools with Backstage\r\n  Date: 2023-11-15\r\n  Abstract: A deep dive into how to integrate AI capabilities into Backstage plugins to enhance developer productivity.\r\n  Slides: /talks/slides/kcd-zrh-backstage-ai.pdf\r\n  Recording: https://www.youtube.com/watch?v=example\r\n  Extracting conferences section:\r\nconferences:\r\n  - name: KubeCon + CloudNativeCon Europe\r\n    location: Zürich\r\n    date: 2023-11-15\r\n  - name: FOSDEM\r\n    location: Brussels\r\n    date: 2023-02-05\r\n---\r\n  Found conferences section at line 7\r\n    New conference entry:   - name: KubeCon + CloudNativeCon Europe\r\n    Name: KubeCon + CloudNativeCon Europe\r\n    Location: Zürich\r\n    Date: 2023-11-15\r\n    Added conference: KubeCon + CloudNativeCon Europe, Zürich (2023-11-15)\r\n    New conference entry:   - name: FOSDEM\r\n    Name: FOSDEM\r\n    Location: Brussels\r\n    Date: 2023-02-05\r\n    Added conference: FOSDEM, Brussels (2023-02-05)\r\n  Conferences HTML: <div class=\"mb-1\">KubeCon + CloudNativeCon Europe, Zürich (2023-11-15)</div><div class=\"mb-1\">FOSDEM, Brussels (2023-02-05)</div>\r\n✅ Added Building AI-powered Developer Tools with Backstage to index\r\n🔨 Processing talk: backstage-ai.md\r\n  Title: Building AI-powered Developer Tools with Backstage\r\n  Date: 2023-11-15\r\n  Abstract: This talk explores how to integrate AI capabilities into Backstage plugins to enhance developer productivity and improve internal developer platforms.\r\n  Slides: /talks/slides/kcd-zrh-backstage-ai.pdf\r\n  Recording: https://www.youtube.com/watch?v=example\r\n  Extracting conferences section:\r\nconferences:\r\n  - name: KubeCon + CloudNativeCon Europe\r\n    location: Zürich\r\n    date: 2023-11-15\r\n---\r\n  Found conferences section at line 7\r\n    New conference entry:   - name: KubeCon + CloudNativeCon Europe\r\n    Name: KubeCon + CloudNativeCon Europe\r\n    Location: Zürich\r\n    Date: 2023-11-15\r\n    Added conference: KubeCon + CloudNativeCon Europe, Zürich (2023-11-15)\r\n  Conferences HTML: <div class=\"mb-1\">KubeCon + CloudNativeCon Europe, Zürich (2023-11-15)</div>\r\n✅ Added Building AI-powered Developer Tools with Backstage to index\r\n✅ Updated talks index page at talks/index.html\r\n--> b0141b0cf4ab\r\n[2/2] STEP 1/5: FROM quay.io/fedora/httpd-24\r\n[2/2] STEP 2/5: COPY --from=builder --chown=1001:0 /build /var/www/html/\r\n--> dd9cb2d677d2\r\n[2/2] STEP 3/5: COPY <<EOF /etc/httpd/conf.d/custom.conf (# Custom URL routing configuration...)\r\n--> 82ea8feab311\r\n[2/2] STEP 4/5: EXPOSE 8080\r\n--> 2f306e32fe18\r\n[2/2] STEP 5/5: CMD run-httpd\r\n[2/2] COMMIT josiedotlol\r\n--> 4f7f5a0434a0\r\nSuccessfully tagged localhost/josiedotlol:latest\r\n4f7f5a0434a056a0a6e315df5ee373f20ba5222e32b90c78e63cdc782caddcc7\r\n\u001b[38;5;76m❯\u001b[0m \u001b[32msudo\u001b[0m \u001b[32mpodman\u001b[0m run \u001b[36m--replace\u001b[0m \u001b[36m-d\u001b[0m \u001b[36m-p\u001b[0m 8080:8080 \u001b[36m--name\u001b[0m josiedotlol-web localhost/josiedotlol\r\n38bbaa02a75e7b08cb622b8286d25aac6a1fb69f519b519d23cb9c1dcbe23dee\r\n\u001b[38;5;254;44m \u001b[38;5;255;1m~\u001b[38;5;254;22m/development/\u001b[38;5;255;1mjosiedotlol\u001b[38;5;254;22m \u001b[30;43m main !3 ?8 \u001b[0m \u001b[241C\u001b[32;40m ✔ \u001b[30;47m 07:02:11 PM \u001b[0m\u001b[257D\r\n\u001b[0m\u001b[7m * \u001b[0;104m History restored \u001b[0m\n\r"},"processDetails":{"id":2,"title":"zsh","titleSource":1,"pid":254409,"workspaceId":"64f51f4fce698869b27b3fa94f111ccd","workspaceName":"josiedotlol","cwd":"/home/josie/development/josiedotlol","isOrphan":false,"icon":{"id":"terminal","defaults":{"fontCharacter":"\\ea85"}},"environmentVariableCollections":[["vscode.git",[["GIT_ASKPASS",{"variable":"GIT_ASKPASS","value":"/tmp/.mount_CursoroBPNp5/usr/share/cursor/resources/app/extensions/git/dist/askpass.sh","type":1,"options":{"applyAtProcessCreation":true,"applyAtShellIntegration":false}}],["VSCODE_GIT_ASKPASS_NODE",{"variable":"VSCODE_GIT_ASKPASS_NODE","value":"/tmp/.mount_CursoroBPNp5/usr/share/cursor/cursor","type":1,"options":{"applyAtProcessCreation":true,"applyAtShellIntegration":false}}],["VSCODE_GIT_ASKPASS_EXTRA_ARGS",{"variable":"VSCODE_GIT_ASKPASS_EXTRA_ARGS","value":"","type":1,"options":{"applyAtProcessCreation":true,"applyAtShellIntegration":false}}],["VSCODE_GIT_ASKPASS_MAIN",{"variable":"VSCODE_GIT_ASKPASS_MAIN","value":"/tmp/.mount_CursoroBPNp5/usr/share/cursor/resources/app/extensions/git/dist/askpass-main.js","type":1,"options":{"applyAtProcessCreation":true,"applyAtShellIntegration":false}}],["VSCODE_GIT_IPC_HANDLE",{"variable":"VSCODE_GIT_IPC_HANDLE","value":"/run/user/1000/vscode-git-d8fdab8a5e.sock","type":1,"options":{"applyAtProcessCreation":true,"applyAtShellIntegration":false}}]],[["",{"description":"Enables the following features: git auth provider"}]]]],"hasChildProcesses":false,"shellIntegrationNonce":"e7c7694a-a506-494e-8b36-ffba2ec3c72f"},"processLaunchConfig":{"env":{"SHELL":"/bin/zsh","LSCOLORS":"Gxfxcxdxbxegedabagacad","WINDOWID":"79691782","LESS":"R","ANSIBLE_CONFIG":"/home/josie/.config/ansible/ansible.cfg","NVM_INC":"/home/josie/.config/nvm/versions/node/v14.19.1/include/node","CONDA_EXE":"/home/josie/anaconda3/bin/conda","_CE_M":"","PERLLIB":"/tmp/.mount_CursorDDNoVB/usr/share/perl5/:/tmp/.mount_CursorDDNoVB/usr/lib/perl5/:","_P9K_TTY":"/dev/pts/4","NOTMUCH_CONFIG":"/home/josie/.config/notmuch-config","LESS_TERMCAP_se":"\u001b[0m","LESS_TERMCAP_so":"\u001b[01;44;33m","SSH_AUTH_SOCK":"/tmp/ssh-XXXXXX1VAchD/agent.793","XDG_DATA_HOME":"/home/josie/.local/share","ARGV0":"/home/josie/Downloads/Cursor-0.46.11-ae378be9dc2f5f1a6a1a220c6e25f9f03c8d4e19.deb.glibc2.25-x86_64.AppImage","P9K_TTY":"old","XDG_CONFIG_HOME":"/home/josie/.config","ANDROID_SDK_HOME":"/home/josie/.config/android","KODI_DATA":"/home/josie/.local/share/kodi","RBENV_SHELL":"zsh","SSH_AGENT_PID":"805","GPG_TTY":"$(tty)","CLOUDSDK_PYTHON_ARGS":"-S -W ignore","EDITOR":"nvim","XDG_SEAT":"seat0","PWD":"/home/josie","UNISON":"/home/josie/.local/share/unison","GSETTINGS_SCHEMA_DIR":"/tmp/.mount_CursorDDNoVB/usr/share/glib-2.0/schemas/:","LOGNAME":"josie","QT_QPA_PLATFORMTHEME":"gtk2","XDG_SESSION_TYPE":"tty","AWT_TOOLKIT":"MToolkit wmname LG3D","XAUTHORITY":"/home/josie/.Xauthority","TERMINAL":"st","WINDOWPATH":"1","MOTD_SHOWN":"pam","GTK2_RC_FILES":"/home/josie/.config/gtk-2.0/gtkrc-2.0","HOME":"/home/josie","LANG":"en_US.UTF-8","TMUX_TMPDIR":"/run/user/1000","WINEPREFIX":"/home/josie/.local/share/wineprefixes/default","HISTFILE":"/home/josie/.zsh_history","LS_COLORS":"rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=00:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.7z=01;31:*.ace=01;31:*.alz=01;31:*.apk=01;31:*.arc=01;31:*.arj=01;31:*.bz=01;31:*.bz2=01;31:*.cab=01;31:*.cpio=01;31:*.crate=01;31:*.deb=01;31:*.drpm=01;31:*.dwm=01;31:*.dz=01;31:*.ear=01;31:*.egg=01;31:*.esd=01;31:*.gz=01;31:*.jar=01;31:*.lha=01;31:*.lrz=01;31:*.lz=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.lzo=01;31:*.pyz=01;31:*.rar=01;31:*.rpm=01;31:*.rz=01;31:*.sar=01;31:*.swm=01;31:*.t7z=01;31:*.tar=01;31:*.taz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tgz=01;31:*.tlz=01;31:*.txz=01;31:*.tz=01;31:*.tzo=01;31:*.tzst=01;31:*.udeb=01;31:*.war=01;31:*.whl=01;31:*.wim=01;31:*.xz=01;31:*.z=01;31:*.zip=01;31:*.zoo=01;31:*.zst=01;31:*.avif=01;35:*.jpg=01;35:*.jpeg=01;35:*.jxl=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.webp=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:*~=00;90:*#=00;90:*.bak=00;90:*.crdownload=00;90:*.dpkg-dist=00;90:*.dpkg-new=00;90:*.dpkg-old=00;90:*.dpkg-tmp=00;90:*.old=00;90:*.orig=00;90:*.part=00;90:*.rej=00;90:*.rpmnew=00;90:*.rpmorig=00;90:*.rpmsave=00;90:*.swp=00;90:*.tmp=00;90:*.ucf-dist=00;90:*.ucf-new=00;90:*.ucf-old=00;90:","_JAVA_AWT_WM_NONREPARENTING":"1","CARGO_HOME":"/home/josie/.local/share/cargo","PYTHONSTARTUP":"/home/josie/.config/python/pythonrc","KEYTIMEOUT":"1","CLOUDSDK_ROOT_DIR":"/opt/google-cloud-cli","MBSYNCRC":"/home/josie/.config/mbsync/config","WGETRC":"/home/josie/.config/wget/wgetrc","GOMODCACHE":"/home/josie/.cache/go/mod","APPDIR":"/tmp/.mount_CursorDDNoVB","XDG_CACHE_HOME":"/home/josie/.cache","CLOUDSDK_PYTHON":"/usr/bin/python","NVM_DIR":"/home/josie/.config/nvm","ELECTRUMDIR":"/home/josie/.local/share/electrum","XDG_SESSION_CLASS":"user","TERM":"st-256color","LESS_TERMCAP_mb":"\u001b[1;31m","ZSH":"/home/josie/.oh-my-zsh","LESS_TERMCAP_me":"\u001b[0m","LESS_TERMCAP_md":"\u001b[1;36m","_CE_CONDA":"","ZDOTDIR":"/tmp/josie-cursor-zsh","LESSOPEN":"| /usr/bin/highlight -O ansi %s 2>/dev/null","GOOGLE_CLOUD_SDK_HOME":"/opt/google-cloud-cli","USER":"josie","DICS":"/usr/share/stardict/dic/","OWD":"/home/josie","CONDA_SHLVL":"0","XINITRC":"/home/josie/.config/x11/xinitrc","SUDO_ASKPASS":"/home/josie/.local/bin/dmenupass","DISPLAY":":0","LESS_TERMCAP_ue":"\u001b[0m","SHLVL":"3","NVM_CD_FLAGS":"-q","INPUTRC":"/home/josie/.config/shell/inputrc","LESS_TERMCAP_us":"\u001b[1;32m","PAGER":"less","MOZ_USE_XINPUT2":"1","_P9K_SSH_TTY":"","XDG_VTNR":"1","XDG_SESSION_ID":"1","CONDA_PYTHON_EXE":"/home/josie/anaconda3/bin/python","LD_LIBRARY_PATH":"/tmp/.mount_CursorDDNoVB/usr/lib/:/tmp/.mount_CursorDDNoVB/usr/lib32/:/tmp/.mount_CursorDDNoVB/usr/lib64/:/tmp/.mount_CursorDDNoVB/lib/:/tmp/.mount_CursorDDNoVB/lib/i386-linux-gnu/:/tmp/.mount_CursorDDNoVB/lib/x86_64-linux-gnu/:/tmp/.mount_CursorDDNoVB/lib/aarch64-linux-gnu/:/tmp/.mount_CursorDDNoVB/lib32/:/tmp/.mount_CursorDDNoVB/lib64/:","APPIMAGE":"/home/josie/Downloads/Cursor-0.46.11-ae378be9dc2f5f1a6a1a220c6e25f9f03c8d4e19.deb.glibc2.25-x86_64.AppImage","XDG_RUNTIME_DIR":"/run/user/1000","TERMINAL_PROG":"st","DEBUGINFOD_URLS":"https://debuginfod.archlinux.org ","P9K_SSH":"0","XDG_DATA_DIRS":"/tmp/.mount_CursorDDNoVB/usr/share/:/usr/share:/usr/local/","SQLITE_HISTORY":"/home/josie/.local/share/sqlite_history","BROWSER":"librewolf","PATH":"/home/josie/.krew/bin:/home/josie/.rbenv/shims:/opt/google-cloud-cli/bin:/tmp/.mount_CursorDDNoVB/usr/bin/:/tmp/.mount_CursorDDNoVB/usr/sbin/:/tmp/.mount_CursorDDNoVB/usr/games/:/tmp/.mount_CursorDDNoVB/bin/:/tmp/.mount_CursorDDNoVB/sbin/:/home/josie/anaconda3/condabin:/home/josie/.config/nvm/versions/node/v14.19.1/bin:/home/josie/.krew/bin:/home/josie/.rbenv/shims:/opt/google-cloud-cli/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl:/home/josie/.local/bin:/home/josie/.local/bin/cron:/home/josie/.local/bin/statusbar:/home/josie/bin:/home/josie/.local/bin:/home/josie/.local/bin/statusbar:/bin:/home/josie/.local/share/go/bin:/home/josie/bin:/home/josie/.local/bin:/home/josie/.local/bin/statusbar:/bin:/home/josie/.local/share/go/bin","DBUS_SESSION_BUS_ADDRESS":"unix:path=/tmp/dbus-BOpgQsEPFi,guid=512d21d0f0f255eb320dfc2f681200ee","FZF_DEFAULT_OPTS":"--layout=reverse --height 40%","PASSWORD_STORE_DIR":"/home/josie/.local/share/password-store","HG":"/usr/bin/hg","NVM_BIN":"/home/josie/.config/nvm/versions/node/v14.19.1/bin","MAIL":"/var/spool/mail/josie","QT_PLUGIN_PATH":"/tmp/.mount_CursorDDNoVB/usr/lib/qt4/plugins/:/tmp/.mount_CursorDDNoVB/usr/lib/i386-linux-gnu/qt4/plugins/:/tmp/.mount_CursorDDNoVB/usr/lib/x86_64-linux-gnu/qt4/plugins/:/tmp/.mount_CursorDDNoVB/usr/lib/aarch64-linux-gnu/qt4/plugins/:/tmp/.mount_CursorDDNoVB/usr/lib32/qt4/plugins/:/tmp/.mount_CursorDDNoVB/usr/lib64/qt4/plugins/:/tmp/.mount_CursorDDNoVB/usr/lib/qt5/plugins/:/tmp/.mount_CursorDDNoVB/usr/lib/i386-linux-gnu/qt5/plugins/:/tmp/.mount_CursorDDNoVB/usr/lib/x86_64-linux-gnu/qt5/plugins/:/tmp/.mount_CursorDDNoVB/usr/lib/aarch64-linux-gnu/qt5/plugins/:/tmp/.mount_CursorDDNoVB/usr/lib32/qt5/plugins/:/tmp/.mount_CursorDDNoVB/usr/lib64/qt5/plugins/:","OLDPWD":"/home/josie","GOPATH":"/home/josie/.local/share/go","CHROME_DESKTOP":"cursor.desktop","ORIGINAL_XDG_CURRENT_DESKTOP":"undefined","CURSOR_TRACE_ID":"bd17ab963c114bfcaa9ffc31f9cab434","GDK_BACKEND":"x11","NO_AT_BRIDGE":"1","_":"/tmp/.mount_CursorDDNoVB/usr/share/cursor/cursor","TERM_PROGRAM":"vscode","TERM_PROGRAM_VERSION":"0.46.11","COLORTERM":"truecolor","GIT_ASKPASS":"/tmp/.mount_CursorHE0Dsa/usr/share/cursor/resources/app/extensions/git/dist/askpass.sh","VSCODE_GIT_ASKPASS_NODE":"/tmp/.mount_CursorHE0Dsa/usr/share/cursor/cursor","VSCODE_GIT_ASKPASS_EXTRA_ARGS":"","VSCODE_GIT_ASKPASS_MAIN":"/tmp/.mount_CursorHE0Dsa/usr/share/cursor/resources/app/extensions/git/dist/askpass-main.js","VSCODE_GIT_IPC_HANDLE":"/run/user/1000/vscode-git-d8fdab8a5e.sock","VSCODE_INJECTION":"1","VSCODE_NONCE":"e7c7694a-a506-494e-8b36-ffba2ec3c72f","USER_ZDOTDIR":"/home/josie/.config/zsh"},"executableEnv":{"SHELL":"/bin/zsh","LSCOLORS":"Gxfxcxdxbxegedabagacad","WINDOWID":"46137350","LESS":"R","ANSIBLE_CONFIG":"/home/josie/.config/ansible/ansible.cfg","NVM_INC":"/home/josie/.config/nvm/versions/node/v14.19.1/include/node","CONDA_EXE":"/home/josie/anaconda3/bin/conda","_CE_M":"","PERLLIB":"/tmp/.mount_CursoroBPNp5/usr/share/perl5/:/tmp/.mount_CursoroBPNp5/usr/lib/perl5/:","_P9K_TTY":"/dev/pts/0","NOTMUCH_CONFIG":"/home/josie/.config/notmuch-config","LESS_TERMCAP_se":"\u001b[0m","LESS_TERMCAP_so":"\u001b[01;44;33m","SSH_AUTH_SOCK":"/tmp/ssh-XXXXXXrFkrKk/agent.52821","XDG_DATA_HOME":"/home/josie/.local/share","ARGV0":"/home/josie/Downloads/Cursor-0.46.11-ae378be9dc2f5f1a6a1a220c6e25f9f03c8d4e19.deb.glibc2.25-x86_64.AppImage","P9K_TTY":"old","XDG_CONFIG_HOME":"/home/josie/.config","ANDROID_SDK_HOME":"/home/josie/.config/android","KODI_DATA":"/home/josie/.local/share/kodi","RBENV_SHELL":"zsh","SSH_AGENT_PID":"52830","GPG_TTY":"$(tty)","CLOUDSDK_PYTHON_ARGS":"-S -W ignore","EDITOR":"nvim","XDG_SEAT":"seat0","PWD":"/home/josie","UNISON":"/home/josie/.local/share/unison","GSETTINGS_SCHEMA_DIR":"/tmp/.mount_CursoroBPNp5/usr/share/glib-2.0/schemas/:","LOGNAME":"josie","QT_QPA_PLATFORMTHEME":"gtk2","XDG_SESSION_TYPE":"tty","AWT_TOOLKIT":"MToolkit wmname LG3D","XAUTHORITY":"/home/josie/.Xauthority","TERMINAL":"st","WINDOWPATH":"1","MOTD_SHOWN":"pam","GTK2_RC_FILES":"/home/josie/.config/gtk-2.0/gtkrc-2.0","HOME":"/home/josie","LANG":"en_US.UTF-8","TMUX_TMPDIR":"/run/user/1000","WINEPREFIX":"/home/josie/.local/share/wineprefixes/default","HISTFILE":"/home/josie/.zsh_history","LS_COLORS":"rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=00:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.7z=01;31:*.ace=01;31:*.alz=01;31:*.apk=01;31:*.arc=01;31:*.arj=01;31:*.bz=01;31:*.bz2=01;31:*.cab=01;31:*.cpio=01;31:*.crate=01;31:*.deb=01;31:*.drpm=01;31:*.dwm=01;31:*.dz=01;31:*.ear=01;31:*.egg=01;31:*.esd=01;31:*.gz=01;31:*.jar=01;31:*.lha=01;31:*.lrz=01;31:*.lz=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.lzo=01;31:*.pyz=01;31:*.rar=01;31:*.rpm=01;31:*.rz=01;31:*.sar=01;31:*.swm=01;31:*.t7z=01;31:*.tar=01;31:*.taz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tgz=01;31:*.tlz=01;31:*.txz=01;31:*.tz=01;31:*.tzo=01;31:*.tzst=01;31:*.udeb=01;31:*.war=01;31:*.whl=01;31:*.wim=01;31:*.xz=01;31:*.z=01;31:*.zip=01;31:*.zoo=01;31:*.zst=01;31:*.avif=01;35:*.jpg=01;35:*.jpeg=01;35:*.jxl=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.webp=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:*~=00;90:*#=00;90:*.bak=00;90:*.crdownload=00;90:*.dpkg-dist=00;90:*.dpkg-new=00;90:*.dpkg-old=00;90:*.dpkg-tmp=00;90:*.old=00;90:*.orig=00;90:*.part=00;90:*.rej=00;90:*.rpmnew=00;90:*.rpmorig=00;90:*.rpmsave=00;90:*.swp=00;90:*.tmp=00;90:*.ucf-dist=00;90:*.ucf-new=00;90:*.ucf-old=00;90:","_JAVA_AWT_WM_NONREPARENTING":"1","CARGO_HOME":"/home/josie/.local/share/cargo","PYTHONSTARTUP":"/home/josie/.config/python/pythonrc","KEYTIMEOUT":"1","CLOUDSDK_ROOT_DIR":"/opt/google-cloud-cli","MBSYNCRC":"/home/josie/.config/mbsync/config","WGETRC":"/home/josie/.config/wget/wgetrc","GOMODCACHE":"/home/josie/.cache/go/mod","APPDIR":"/tmp/.mount_CursoroBPNp5","XDG_CACHE_HOME":"/home/josie/.cache","CLOUDSDK_PYTHON":"/usr/bin/python","NVM_DIR":"/home/josie/.config/nvm","ELECTRUMDIR":"/home/josie/.local/share/electrum","XDG_SESSION_CLASS":"user","TERM":"st-256color","LESS_TERMCAP_mb":"\u001b[1;31m","ZSH":"/home/josie/.oh-my-zsh","LESS_TERMCAP_me":"\u001b[0m","LESS_TERMCAP_md":"\u001b[1;36m","_CE_CONDA":"","ZDOTDIR":"/home/josie/.config/zsh","LESSOPEN":"| /usr/bin/highlight -O ansi %s 2>/dev/null","GOOGLE_CLOUD_SDK_HOME":"/opt/google-cloud-cli","USER":"josie","DICS":"/usr/share/stardict/dic/","OWD":"/home/josie","CONDA_SHLVL":"0","XINITRC":"/home/josie/.config/x11/xinitrc","SUDO_ASKPASS":"/home/josie/.local/bin/dmenupass","DISPLAY":":0","LESS_TERMCAP_ue":"\u001b[0m","SHLVL":"3","NVM_CD_FLAGS":"-q","INPUTRC":"/home/josie/.config/shell/inputrc","LESS_TERMCAP_us":"\u001b[1;32m","PAGER":"less","MOZ_USE_XINPUT2":"1","_P9K_SSH_TTY":"","XDG_VTNR":"1","XDG_SESSION_ID":"3","CONDA_PYTHON_EXE":"/home/josie/anaconda3/bin/python","LD_LIBRARY_PATH":"/tmp/.mount_CursoroBPNp5/usr/lib/:/tmp/.mount_CursoroBPNp5/usr/lib32/:/tmp/.mount_CursoroBPNp5/usr/lib64/:/tmp/.mount_CursoroBPNp5/lib/:/tmp/.mount_CursoroBPNp5/lib/i386-linux-gnu/:/tmp/.mount_CursoroBPNp5/lib/x86_64-linux-gnu/:/tmp/.mount_CursoroBPNp5/lib/aarch64-linux-gnu/:/tmp/.mount_CursoroBPNp5/lib32/:/tmp/.mount_CursoroBPNp5/lib64/:","APPIMAGE":"/home/josie/Downloads/Cursor-0.46.11-ae378be9dc2f5f1a6a1a220c6e25f9f03c8d4e19.deb.glibc2.25-x86_64.AppImage","XDG_RUNTIME_DIR":"/run/user/1000","TERMINAL_PROG":"st","DEBUGINFOD_URLS":"https://debuginfod.archlinux.org ","P9K_SSH":"0","XDG_DATA_DIRS":"/tmp/.mount_CursoroBPNp5/usr/share/:/usr/share:/usr/local/","SQLITE_HISTORY":"/home/josie/.local/share/sqlite_history","BROWSER":"librewolf","PATH":"/home/josie/.krew/bin:/home/josie/.rbenv/shims:/opt/google-cloud-cli/bin:/tmp/.mount_CursoroBPNp5/usr/bin/:/tmp/.mount_CursoroBPNp5/usr/sbin/:/tmp/.mount_CursoroBPNp5/usr/games/:/tmp/.mount_CursoroBPNp5/bin/:/tmp/.mount_CursoroBPNp5/sbin/:/home/josie/anaconda3/condabin:/home/josie/.config/nvm/versions/node/v14.19.1/bin:/home/josie/.krew/bin:/home/josie/.rbenv/shims:/opt/google-cloud-cli/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl:/home/josie/.local/bin:/home/josie/.local/bin/cron:/home/josie/.local/bin/statusbar:/home/josie/bin:/home/josie/.local/bin:/home/josie/.local/bin/statusbar:/bin:/home/josie/.local/share/go/bin:/home/josie/bin:/home/josie/.local/bin:/home/josie/.local/bin/statusbar:/bin:/home/josie/.local/share/go/bin","DBUS_SESSION_BUS_ADDRESS":"unix:path=/tmp/dbus-we71xv54jW,guid=3b0991213f5c8e1a2c9d7e7268106bee","FZF_DEFAULT_OPTS":"--layout=reverse --height 40%","PASSWORD_STORE_DIR":"/home/josie/.local/share/password-store","HG":"/usr/bin/hg","NVM_BIN":"/home/josie/.config/nvm/versions/node/v14.19.1/bin","MAIL":"/var/spool/mail/josie","QT_PLUGIN_PATH":"/tmp/.mount_CursoroBPNp5/usr/lib/qt4/plugins/:/tmp/.mount_CursoroBPNp5/usr/lib/i386-linux-gnu/qt4/plugins/:/tmp/.mount_CursoroBPNp5/usr/lib/x86_64-linux-gnu/qt4/plugins/:/tmp/.mount_CursoroBPNp5/usr/lib/aarch64-linux-gnu/qt4/plugins/:/tmp/.mount_CursoroBPNp5/usr/lib32/qt4/plugins/:/tmp/.mount_CursoroBPNp5/usr/lib64/qt4/plugins/:/tmp/.mount_CursoroBPNp5/usr/lib/qt5/plugins/:/tmp/.mount_CursoroBPNp5/usr/lib/i386-linux-gnu/qt5/plugins/:/tmp/.mount_CursoroBPNp5/usr/lib/x86_64-linux-gnu/qt5/plugins/:/tmp/.mount_CursoroBPNp5/usr/lib/aarch64-linux-gnu/qt5/plugins/:/tmp/.mount_CursoroBPNp5/usr/lib32/qt5/plugins/:/tmp/.mount_CursoroBPNp5/usr/lib64/qt5/plugins/:","OLDPWD":"/home/josie","GOPATH":"/home/josie/.local/share/go","CHROME_DESKTOP":"cursor.desktop","ORIGINAL_XDG_CURRENT_DESKTOP":"undefined","VSCODE_CWD":"/home/josie","CURSOR_TRACE_ID":"e490135eb20446ba8030921fecdfbf9f","GDK_BACKEND":"x11","NO_AT_BRIDGE":"1","VSCODE_NLS_CONFIG":"{\"userLocale\":\"en-us\",\"osLocale\":\"en-us\",\"resolvedLanguage\":\"en\",\"defaultMessagesFile\":\"/tmp/.mount_CursoroBPNp5/usr/share/cursor/resources/app/out/nls.messages.json\",\"locale\":\"en-us\",\"availableLanguages\":{}}","VSCODE_CODE_CACHE_PATH":"/home/josie/.config/Cursor/CachedData/ae378be9dc2f5f1a6a1a220c6e25f9f03c8d4e10","VSCODE_IPC_HOOK":"/run/user/1000/vscode-8ea89bb1-0.46-main.sock","VSCODE_PID":"125527","_":"/tmp/.mount_CursoroBPNp5/usr/share/cursor/cursor"},"options":{"shellIntegration":{"enabled":true,"suggestEnabled":false,"nonce":"e7c7694a-a506-494e-8b36-ffba2ec3c72f"},"windowsEnableConpty":true,"windowsUseConptyDll":false,"environmentVariableCollections":[["vscode.git",[["GIT_ASKPASS",{"variable":"GIT_ASKPASS","value":"/tmp/.mount_CursoroBPNp5/usr/share/cursor/resources/app/extensions/git/dist/askpass.sh","type":1,"options":{"applyAtProcessCreation":true,"applyAtShellIntegration":false}}],["VSCODE_GIT_ASKPASS_NODE",{"variable":"VSCODE_GIT_ASKPASS_NODE","value":"/tmp/.mount_CursoroBPNp5/usr/share/cursor/cursor","type":1,"options":{"applyAtProcessCreation":true,"applyAtShellIntegration":false}}],["VSCODE_GIT_ASKPASS_EXTRA_ARGS",{"variable":"VSCODE_GIT_ASKPASS_EXTRA_ARGS","value":"","type":1,"options":{"applyAtProcessCreation":true,"applyAtShellIntegration":false}}],["VSCODE_GIT_ASKPASS_MAIN",{"variable":"VSCODE_GIT_ASKPASS_MAIN","value":"/tmp/.mount_CursoroBPNp5/usr/share/cursor/resources/app/extensions/git/dist/askpass-main.js","type":1,"options":{"applyAtProcessCreation":true,"applyAtShellIntegration":false}}],["VSCODE_GIT_IPC_HANDLE",{"variable":"VSCODE_GIT_IPC_HANDLE","value":"/run/user/1000/vscode-git-d8fdab8a5e.sock","type":1,"options":{"applyAtProcessCreation":true,"applyAtShellIntegration":false}}]],[["",{"description":"Enables the following features: git auth provider"}]]]],"workspaceFolder":{"uri":{"$mid":1,"fsPath":"/home/josie/development/josiedotlol","external":"file:///home/josie/development/josiedotlol","path":"/home/josie/development/josiedotlol","scheme":"file"},"name":"josiedotlol","index":0}}},"unicodeVersion":"11","replayEvent":{"events":[{"cols":105,"rows":32,"data":"    Date: 2023-11-15\r\n    Added conference: KubeCon + CloudNativeCon Europe, Zürich (2023-11-15)\r\n    New conference entry:   - name: FOSDEM\r\n    Name: FOSDEM\r\n    Location: Brussels\r\n    Date: 2023-02-05\r\n    Added conference: FOSDEM, Brussels (2023-02-05)\r\n  Conferences HTML: <div class=\"mb-1\">KubeCon + CloudNativeCon Europe, Zürich (2023-11-15)</div><div class=\"mb-1\">FOSDEM, Brussels (2023-02-05)</div>\r\n✅ Added Building AI-powered Developer Tools with Backstage to index\r\n🔨 Processing talk: backstage-ai.md\r\n  Title: Building AI-powered Developer Tools with Backstage\r\n  Date: 2023-11-15\r\n  Abstract: This talk explores how to integrate AI capabilities into Backstage plugins to enhance developer productivity and improve internal developer platforms.\r\n  Slides: /talks/slides/kcd-zrh-backstage-ai.pdf\r\n  Recording: https://www.youtube.com/watch?v=example\r\n  Extracting conferences section:\r\nconferences:\r\n  - name: KubeCon + CloudNativeCon Europe\r\n    location: Zürich\r\n    date: 2023-11-15\r\n---\r\n  Found conferences section at line 7\r\n    New conference entry:   - name: KubeCon + CloudNativeCon Europe\r\n    Name: KubeCon + CloudNativeCon Europe\r\n    Location: Zürich\r\n    Date: 2023-11-15\r\n    Added conference: KubeCon + CloudNativeCon Europe, Zürich (2023-11-15)\r\n  Conferences HTML: <div class=\"mb-1\">KubeCon + CloudNativeCon Europe, Zürich (2023-11-15)</div>\r\n✅ Added Building AI-powered Developer Tools with Backstage to index\r\n✅ Updated talks index page at talks/index.html\r\n🔄 Generating sitemap...\r\n✅ Generated sitemap at sitemap.xml\r\n🎉 All build operations completed successfully!\r\n\u001b[38;5;76m❯\u001b[0m \u001b[32msudo\u001b[0m \u001b[32mpodman\u001b[0m build \u001b[36m-t\u001b[0m josiedotlol \u001b[35;4m.\r\n\u001b[0m[sudo] password for josie: \r\n[1/2] STEP 1/5: FROM fedora:latest AS builder\r\n[1/2] STEP 2/5: RUN dnf install -y pandoc && dnf clean all\r\n--> Using cache 1ca9c34f543a9a3977197912535d56def60ea6de5d806a22c788ebdd2f10df5d\r\n--> 1ca9c34f543a\r\n[1/2] STEP 3/5: WORKDIR /build\r\n--> Using cache cffa8e4d1f0c05f860d85b8b8ddc8b426db4c8a78f1addfcdfba347b6b756151\r\n--> cffa8e4d1f0c\r\n[1/2] STEP 4/5: COPY . .\r\n--> 1b95a721161d\r\n[1/2] STEP 5/5: RUN ./scripts/blog-build.sh\r\n🔄 Building blog posts from Markdown...\r\n🔨 Processing: t-rex.md\r\n✅ Generated: blog/t-rex.html\r\n🔨 Processing: hello-world.md\r\n✅ Generated: blog/hello-world.html\r\n🔨 Processing: aws.md\r\n✅ Generated: blog/aws.html\r\n🔄 Updating blog index...\r\n✅ Updated blog index page\r\n🔄 Updating RSS feed...\r\n✅ Updated RSS feed\r\n🎉 Blog build completed successfully!\r\n🔄 Building talks index...\r\n📊 Found 2 talk markdown files\r\n🔨 Processing talk: example-talk.md\r\n  Title: Building AI-powered Developer Tools with Backstage\r\n  Date: 2023-11-15\r\n  Abstract: A deep dive into how to integrate AI capabilities into Backstage plugins to enhance developer productivity.\r\n  Slides: /talks/slides/kcd-zrh-backstage-ai.pdf\r\n  Recording: https://www.youtube.com/watch?v=example\r\n  Extracting conferences section:\r\nconferences:\r\n  - name: KubeCon + CloudNativeCon Europe\r\n    location: Zürich\r\n    date: 2023-11-15\r\n  - name: FOSDEM\r\n    location: Brussels\r\n    date: 2023-02-05\r\n---\r\n  Found conferences section at line 7\r\n    New conference entry:   - name: KubeCon + CloudNativeCon Europe\r\n    Name: KubeCon + CloudNativeCon Europe\r\n    Location: Zürich\r\n    Date: 2023-11-15\r\n    Added conference: KubeCon + CloudNativeCon Europe, Zürich (2023-11-15)\r\n    New conference entry:   - name: FOSDEM\r\n    Name: FOSDEM\r\n    Location: Brussels\r\n    Date: 2023-02-05\r\n    Added conference: FOSDEM, Brussels (2023-02-05)\r\n  Conferences HTML: <div class=\"mb-1\">KubeCon + CloudNativeCon Europe, Zürich (2023-11-15)</div><div class=\"mb-1\">FOSDEM, Brussels (2023-02-05)</div>\r\n✅ Added Building AI-powered Developer Tools with Backstage to index\r\n🔨 Processing talk: backstage-ai.md\r\n  Title: Building AI-powered Developer Tools with Backstage\r\n  Date: 2023-11-15\r\n  Abstract: This talk explores how to integrate AI capabilities into Backstage plugins to enhance developer productivity and improve internal developer platforms.\r\n  Slides: /talks/slides/kcd-zrh-backstage-ai.pdf\r\n  Recording: https://www.youtube.com/watch?v=example\r\n  Extracting conferences section:\r\nconferences:\r\n  - name: KubeCon + CloudNativeCon Europe\r\n    location: Zürich\r\n    date: 2023-11-15\r\n---\r\n  Found conferences section at line 7\r\n    New conference entry:   - name: KubeCon + CloudNativeCon Europe\r\n    Name: KubeCon + CloudNativeCon Europe\r\n    Location: Zürich\r\n    Date: 2023-11-15\r\n    Added conference: KubeCon + CloudNativeCon Europe, Zürich (2023-11-15)\r\n  Conferences HTML: <div class=\"mb-1\">KubeCon + CloudNativeCon Europe, Zürich (2023-11-15)</div>\r\n✅ Added Building AI-powered Developer Tools with Backstage to index\r\n✅ Updated talks index page at talks/index.html\r\n🔄 Generating sitemap...\r\n✅ Generated sitemap at sitemap.xml\r\n🎉 All build operations completed successfully!\r\n--> 23119a692e42\r\n[2/2] STEP 1/5: FROM quay.io/fedora/httpd-24\r\n[2/2] STEP 2/5: COPY --from=builder --chown=1001:0 /build /var/www/html/\r\n--> 173196293f92\r\n[2/2] STEP 3/5: COPY httpd-custom.conf /etc/httpd/conf.d/custom.conf\r\n--> c24237e10b75\r\n[2/2] STEP 4/5: EXPOSE 8080\r\n--> f1a58d3a2040\r\n[2/2] STEP 5/5: CMD run-httpd\r\n[2/2] COMMIT josiedotlol\r\n--> bba2f5d283ff\r\nSuccessfully tagged localhost/josiedotlol:latest\r\nbba2f5d283ffd846d28e875050f2987e155635214c58677a07dda18317a8b806\r\n\u001b[38;5;76m❯\u001b[0m \u001b[32msudo\u001b[0m \u001b[32mpodman\u001b[0m run \u001b[36m--replace\u001b[0m \u001b[36m-d\u001b[0m \u001b[36m-p\u001b[0m 8080:8080 \u001b[36m--name\u001b[0m josiedotlol-web localhost/josiedotlol\r\nbf223328144cd4b3b382f7cbbc68c02bc680829e57666827839f9726b46bfe67\r\n\u001b[38;5;254;44m \u001b[38;5;255;1m~\u001b[38;5;254;22m/\u001b[38;5;250md\u001b[38;5;254m/\u001b[38;5;255;1mjosiedotlol\u001b[38;5;254;22m \u001b[30;43m main !3 ?12 \u001b[0m \u001b[57C\u001b[32;40m ✔ \u001b[30;47m 11:37:12 AM \u001b[0m\u001b[73D"}],"commands":{"isWindowsPty":false,"commands":[]}},"timestamp":1746092315976}]}


key: src.vs.platform.reactivestorage.browser.reactiveStorageServiceImpl.persistentStorage.workspaceUser
value:
  {"tasksData":{"tasksDataSchemaVersion":1,"tasks":[{"type":"draft","taskId":"d49d692c-b987-41da-875e-abc909f57fbc","instruction":""}],"displayedTaskId":"d49d692c-b987-41da-875e-abc909f57fbc","showTabs":false,"activeServerTaskUuids":[]},"onboardingMetadata":{"shouldAskToIndex":true,"shouldHideWarning":false},"persistentChatMetadata":[],"aiPanePosition":"sidebar","shouldRerankByDefault":false,"indexingData":{"preferredEmbeddingModel":0},"composerState":{"position":{"x":0,"y":0},"horizontalBarSize":0,"tabHeight":0,"selectedView":"suggested","devToolsPosition":{"x":0,"y":0},"memories":[],"isComposerBarChatCollapsed":false,"composerBarPosition":null},"isCursorPredictionOutOfRangeIndicatorMinimized2":true,"needsComposerInitialOpening":false,"approvedProjectMcpServers":[],"disabledMcpServers":[],"exampleCodebaseQuestions":[],"uniqueCppWorkspaceId":"qjppx4m413c9ewkyy9n74","SPECIAL_KEY_id":"3fbda54a-6b5a-42d1-8ad5-3e0b1da12145"}


key: codelens/cache2
value:
  {"file:///home/josie/development/josiedotlol/blog/index.html":{"lineCount":72,"lines":[]},"file:///home/josie/development/josiedotlol/blog/t-rex.md":{"lineCount":166,"lines":[]},"file:///home/josie/development/josiedotlol/blog/aws.md":{"lineCount":75,"lines":[]},"file:///home/josie/development/josiedotlol/README.md":{"lineCount":2,"lines":[]},"file:///home/josie/development/josiedotlol/highlight-template.html":{"lineCount":2,"lines":[]},"file:///home/josie/development/josiedotlol/blog/template.html":{"lineCount":324,"lines":[]},"file:///home/josie/development/josiedotlol/blog/hello-world.html":{"lineCount":502,"lines":[]},"file:///home/josie/development/josiedotlol/talks/index.html":{"lineCount":61,"lines":[]},"file:///home/josie/development/josiedotlol/index.html":{"lineCount":973,"lines":[]},"file:///home/josie/development/josiedotlol/talks/template.html":{"lineCount":61,"lines":[]},"file:///home/josie/development/josiedotlol/talks/example-talk.md":{"lineCount":16,"lines":[]},"file:///home/josie/development/josiedotlol/talks/backstage-ai.md":{"lineCount":13,"lines":[]},"file:///home/josie/development/josiedotlol/Containerfile":{"lineCount":26,"lines":[]},"file:///home/josie/development/josiedotlol/httpd-custom.conf":{"lineCount":57,"lines":[]},"file:///home/josie/development/josiedotlol/500.html":{"lineCount":126,"lines":[]},"file:///home/josie/development/josiedotlol/scripts/blog-build.sh":{"lineCount":534,"lines":[]},"file:///home/josie/development/josiedotlol/robots.txt":{"lineCount":34,"lines":[]},"file:///home/josie/development/josiedotlol/blog/hello-world.md":{"lineCount":178,"lines":[]}}


