diff --git a/content/About.md b/content/About.md new file mode 100644 index 000000000..4e4e65670 --- /dev/null +++ b/content/About.md @@ -0,0 +1,31 @@ +--- +title: About me +compartir: true +--- + +Hello, my name is Miguel Pimentel. I am a self-taught hobby developer with too many ideas and not enough time. I was born in the Dominican Republic, and I currently live in Minnesota, US. + +I suffer from a chronic case of curiosity, which leads me to learn and do many interesting things like: + +- …designing bike trails and residential roads in AutoCAD Civil 3D. +- …creating my own [browser extensions](https://addons.mozilla.org/en-US/firefox/user/17772574/). +- …teaching [ESL](https://en.wikipedia.org/wiki/English_as_a_second_or_foreign_language). +- …learning web development and computer programming. +- …getting licensed as a Firefighter. +- …getting certified as Emergency Medical Technician. +- …inspecting public road construction projects. +- …working in a construction materials laboratory. + +## Work Experience + +As an Assist. Contract Administrator for [Metro Transit](https://www.metrotransit.org/), I oversee projects through their installation, construction, and commissioning phases. On a day-to-day basis, I manage multiple projects that tie in one way or another to the public transportation system of the Twins Cities' Metro Area in Minnesota. + +With a little over 10 years of experience in public construction, I have amassed a number of unique projects that cover many different fields. It all started when I got my first job as a Civil Engineering Technician for a contracting company near my university. I was at the time attending [INTEC](https://www.intec.edu.do/) while pursuing a Bachelor's in Civil Engineering. Unfortunately, I was unable to finish my college education due to personal problems. + +Nevertheless, today I thrive having experience in not only public infrastructure, but technology, electrical, rail, and bus related projects as well. + +## Reaching Out + +Here are some places you can find me on the web. You'll probably be able to find me in other places too, provided you look hard enough. + +[GitHub](https://github.com/semanticdata/) • [Instagram](https://instagram.com/miguelapv) • [LinkedIn](https://www.linkedin.com/in/miguelpimentel29/) diff --git a/content/Bookmarklets.md b/content/Bookmarklets.md new file mode 100644 index 000000000..5edf1c8fd --- /dev/null +++ b/content/Bookmarklets.md @@ -0,0 +1,562 @@ +--- +title: Bookmarklet Collection +compartir: true +--- + +You may drag the links underneath each heading to your bookmarks bar. This will create a new bookmark with the correct name and URL. + +Alternatively, you may copy the code for a bookmarklet and create your own. If you find it easier, you may use this [Bookmarklet Maker](https://caiorss.github.io/bookmarklet-maker/). + +## Utilities + +### Calculator + +Calculator + +```js +javascript: var evl, + em, + expr = prompt('Formula... (eg: 2*3 + 7/8)', ''); +with (Math) + try { + evl = parseFloat(eval(expr)); + if (isNaN(evl)) { + throw Error('Not a number!'); + } + void prompt('Result:', evl); + } catch (em) { + alert(em); + } +``` + +### Find Text and Highlight It + +Find Text and Highlight It + +```js +javascript: (function () { + var count = 0, + text, + dv; + text = prompt('Search phrase:', ''); + if (text == null || text.length == 0) return; + hlColor = prompt('Color:', 'yellow'); + dv = document.defaultView; + function searchWithinNode(node, te, len) { + var pos, skip, spannode, middlebit, endbit, middleclone; + skip = 0; + if (node.nodeType == 3) { + pos = node.data.toUpperCase().indexOf(te); + if (pos >= 0) { + spannode = document.createElement('SPAN'); + spannode.style.backgroundColor = hlColor; + middlebit = node.splitText(pos); + endbit = middlebit.splitText(len); + middleclone = middlebit.cloneNode(true); + spannode.appendChild(middleclone); + middlebit.parentNode.replaceChild(spannode, middlebit); + ++count; + skip = 1; + } + } else if ( + node.nodeType == 1 && + node.childNodes && + node.tagName.toUpperCase() != 'SCRIPT' && + node.tagName.toUpperCase != 'STYLE' + ) { + for (var child = 0; child < node.childNodes.length; ++child) { + child = child + searchWithinNode(node.childNodes[child], te, len); + } + } + return skip; + } + window.status = "Searching for '" + text + "'..."; + searchWithinNode(document.body, text.toUpperCase(), text.length); + window.status = + 'Found ' + + count + + ' occurrence' + + (count == 1 ? '' : 's') + + ' of %27' + + text + + '%27.'; +})(); +``` + +### First Commit of Repository + +First Commit of Repository + +```js +javascript: ((b) => + fetch('https://api.github.com/repos/' + b[1] + '/commits?sha=' + (b[2] || '')) + .then((c) => Promise.all([c.headers.get('link'), c.json()])) + .then((c) => { + if (c[0]) { + var d = c[0].split(',')[1].split(';')[0].slice(2, -1); + return fetch(d).then((e) => e.json()); + } + return c[1]; + }) + .then((c) => c.pop().html_url) + .then((c) => (window.location = c)))( + window.location.pathname.match(/\/([^\/]+\/[^\/]+)(?:\/tree\/([^\/]+))?/), +); +``` + +### Tab Title Editor + +Tab Title Editor + +```js +javascript: void (document.title = + prompt('Enter page title') ?? document.title); +``` + +### Tab Title and Icon Editor + +Tab Title and Icon Editor + +```js +javascript:document.title=prompt('Welcome to the Tab Cloak setup!\n\nEnter the title you want to set for this tab::');var icon=document.querySelector(`link[rel='icon']`);if (!icon) {icon = document.createElement('link');icon.rel='icon';};switch(prompt('What icon would you like to use?\n\n[1] Google Search\n[2] Google Drive\n[3] Custom URL\n\nPlease only enter a number!%27)){case%271%27:icon.setAttribute(%27href%27,%27https://www.google.com/favicon.ico%27);break;case%272%27:icon.setAttribute(%27href%27,%27https://ssl.gstatic.com/images/branding/product/1x/drive_2020q4_32dp.png%27);break;case%273%27:icon.setAttribute(%27href%27,prompt(%27Please enter the URL for the icon you want:%27));} document.head.appendChild(icon); +``` + +### URL to QR Code + +URL to QR Code + +```js +javascript: void(() => { open('https://chart.apis.google.com/chart?cht=qr&chs=300x300&chld=L|2&chl=%27 + (prompt(%27Enter text for QR code:%27) ?? (function() { throw null; }())), null, %27location=no,status=yes,menubar=no,scrollbars=no,resizable=yes,width=500,height=500,modal=yes,dependent=yes%27)})(); +``` + +### Open in Archive.is + +Open in Archive.is + +```js +javascript: (() => { + var url = + 'https://archive.is/' + + encodeURI( + window.location.protocol + + '//' + + window.location.hostname + + window.location.pathname, + ); + window.open(url, '_blank'); +})(); +``` + +### Post to Hacker News + +Post to Hacker News + +```js +javascript:void%20function(){var%20a=document.querySelector(%22meta[property='og:title']%22)%3Fdocument.querySelector(%22meta[property='og:title']%22).getAttribute(%22content%22):document.title,b=window.getSelection%26%262%3Cwindow.getSelection().toString().length%3Fwindow.getSelection().toString():a,c=encodeURIComponent,d=%22u=%22+c(document.location.href)+%22%26t=%22+c(b);setTimeout(function(){window.location.assign(%22https://news.ycombinator.com/submitlink%3F%22+d)},0)}(); +``` + +### Add to Raindrop + +Add to Raindrop + +```js +javascript:(function()%7Bvar rspW%3D450%2CrspH%3D600%2CrspL%3DparseInt((screen.width%2F2)-(rspW%2F2))%2CrspT%3DparseInt((screen.height%2F2)-(rspH%2F2))%3Bwindow.open( +``` + +### Waterize Page + +Waterize Page + +```js +javascript:(function()%7B%2F%2F%20Water.css%20Bookmarklet%0A%2F%2F%20---------------------%0A%0Aconst%20%24%24%20%3D%20(selector)%20%3D%3E%20document.querySelectorAll(selector)%0Aconst%20createElement%20%3D%20(tagName%2C%20properties)%20%3D%3E%20Object.assign(document.createElement(tagName)%2C%20properties)%0A%0A%2F%2F%20Remove%20all%20CSS%20stylesheets%2C%20external%20and%20internal%0A%24%24('link%5Brel%3D%22stylesheet%22%5D%2Cstyle').forEach((el)%20%3D%3E%20el.remove())%0A%0A%2F%2F%20Remove%20all%20inline%20styles%0A%24%24('*').forEach((el)%20%3D%3E%20(el.style%20%3D%20''))%0A%0Aconst%20linkElm%20%3D%20createElement('link'%2C%20%7B%0A%20%20rel%3A%20'stylesheet'%2C%0A%20%20href%3A%20'https%3A%2F%2Fcdn.jsdelivr.net%2Fnpm%2Fwater.css%402%2Fout%2Flight.css'%0A%7D)%0A%0A%2F%2F%20Add%20water.css%20and%20responsive%20viewport%20(if%20necessary)%0Adocument.head.append(%0A%20%20linkElm%2C%0A%20%20!%24%24('meta%5Bname%3D%22viewport%22%5D').length%20%26%26%20createElement('meta'%2C%20%7B%0A%20%20%20%20name%3A%20'viewport'%2C%0A%20%20%20%20content%3A%20'width%3Ddevice-width%2Cinitial-scale%3D1.0'%0A%20%20%7D)%0A)%0A%0A%2F%2F%20Theme%20switching%20icons%0Aconst%20moonSVG%20%3D%20'%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22currentColor%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20class%3D%22feather%20feather-moon%22%3E%3Cpath%20d%3D%22M21%2012.79A9%209%200%201%201%2011.21%203%207%207%200%200%200%2021%2012.79z%22%3E%3C%2Fpath%3E%3C%2Fsvg%3E'%0Aconst%20sunSVG%20%3D%20'%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22currentColor%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20class%3D%22feather%20feather-sun%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%225%22%3E%3C%2Fcircle%3E%3Cline%20x1%3D%2212%22%20y1%3D%221%22%20x2%3D%2212%22%20y2%3D%223%22%3E%3C%2Fline%3E%3Cline%20x1%3D%2212%22%20y1%3D%2221%22%20x2%3D%2212%22%20y2%3D%2223%22%3E%3C%2Fline%3E%3Cline%20x1%3D%224.22%22%20y1%3D%224.22%22%20x2%3D%225.64%22%20y2%3D%225.64%22%3E%3C%2Fline%3E%3Cline%20x1%3D%2218.36%22%20y1%3D%2218.36%22%20x2%3D%2219.78%22%20y2%3D%2219.78%22%3E%3C%2Fline%3E%3Cline%20x1%3D%221%22%20y1%3D%2212%22%20x2%3D%223%22%20y2%3D%2212%22%3E%3C%2Fline%3E%3Cline%20x1%3D%2221%22%20y1%3D%2212%22%20x2%3D%2223%22%20y2%3D%2212%22%3E%3C%2Fline%3E%3Cline%20x1%3D%224.22%22%20y1%3D%2219.78%22%20x2%3D%225.64%22%20y2%3D%2218.36%22%3E%3C%2Fline%3E%3Cline%20x1%3D%2218.36%22%20y1%3D%225.64%22%20x2%3D%2219.78%22%20y2%3D%224.22%22%3E%3C%2Fline%3E%3C%2Fsvg%3E'%0A%0A%2F%2F%20Theme%20toggling%20logic%0Aconst%20toggleBtn%20%3D%20createElement('button'%2C%20%7B%0A%20%20innerHTML%3A%20sunSVG%2C%0A%20%20ariaLabel%3A%20'Switch%20theme'%2C%0A%20%20style%3A%20%60%0A%20%20%20%20position%3A%20fixed%3B%0A%20%20%20%20top%3A%2050px%3B%0A%20%20%20%20right%3A%2050px%3B%0A%20%20%20%20margin%3A%200%3B%0A%20%20%20%20padding%3A%2010px%3B%0A%20%20%20%20line-height%3A%201%3B%0A%20%20%60%0A%7D)%0A%0Alet%20theme%20%3D%20'light'%0Aconst%20toggleTheme%20%3D%20()%20%3D%3E%20%7B%0A%20%20if%20(theme%20%3D%3D%3D%20'light')%20%7B%0A%20%20%20%20theme%20%3D%20'dark'%0A%20%20%20%20toggleBtn.innerHTML%20%3D%20moonSVG%0A%20%20%20%20linkElm.href%20%3D%20'https%3A%2F%2Fcdn.jsdelivr.net%2Fnpm%2Fwater.css%402%2Fout%2Fdark.css'%0A%20%20%7D%20else%20%7B%0A%20%20%20%20theme%20%3D%20'light'%0A%20%20%20%20linkElm.href%20%3D%20'https%3A%2F%2Fcdn.jsdelivr.net%2Fnpm%2Fwater.css%402%2Fout%2Flight.css'%0A%20%20%20%20toggleBtn.innerHTML%20%3D%20sunSVG%0A%20%20%7D%0A%7D%0A%0AtoggleBtn.addEventListener('click'%2C%20toggleTheme)%0Adocument.body.append(toggleBtn)%7D)()%3B +``` + +## Web Development + +### New CSS Goggles + +```js +javascript: (function () { + let domStyle = document.getElementById('domStylee'); + if (domStyle) { + document.body.removeChild(domStyle); + return; + } + domStyle = document.createElement('style'); + domStyle.setAttribute('id', 'domStylee'); + domStyle.append( + [ + '* { color:#0f0!important;outline:solid #f00 1px!important; background-color: rgba(255,0,0,.2) !important; }', + ], + ['* * { background-color: rgba(0,255,0,.2) !important; }'], + ['* * * { background-color: rgba(0,0,255,.2) !important; }'], + ['* * * * { background-color: rgba(255,0,255,.2) !important; }'], + ['* * * * * { background-color: rgba(0,255,255,.2) !important; }'], + ['* * * * * * { background-color: rgba(255,255,0,.2) !important; }'], + ['* * * * * * * { background-color: rgba(255,0,0,.2) !important; }'], + ['* * * * * * * * { background-color: rgba(0,255,0,.2) !important; }'], + [ + '* * * * * * * * * { background-color: rgba(0,0,255,.2) !important; }', + ].join(), + ); + document.body.appendChild(domStyle); +})(); +``` + +```js +javascript:(function()%7Bjavascript%3A%20(function%20()%20%7B%0A%20%20let%20domStyle%20%3D%20document.getElementById(%22domStylee%22)%3B%0A%20%20if%20(domStyle)%20%7B%0A%20%20%20%20document.body.removeChild(domStyle)%3B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%20%20domStyle%20%3D%20document.createElement(%22style%22)%3B%0A%20%20domStyle.setAttribute(%22id%22%2C%20%22domStylee%22)%3B%0A%20%20domStyle.append(%0A%20%20%20%20%5B%0A%20%20%20%20%20%20%22*%20%7B%20color%3A%230f0!important%3Boutline%3Asolid%20%23f00%201px!important%3B%20background-color%3A%20rgba(255%2C0%2C0%2C.2)%20!important%3B%20%7D%22%2C%0A%20%20%20%20%5D%2C%0A%20%20%20%20%5B%22*%20*%20%7B%20background-color%3A%20rgba(0%2C255%2C0%2C.2)%20!important%3B%20%7D%22%5D%2C%0A%20%20%20%20%5B%22*%20*%20*%20%7B%20background-color%3A%20rgba(0%2C0%2C255%2C.2)%20!important%3B%20%7D%22%5D%2C%0A%20%20%20%20%5B%22*%20*%20*%20*%20%7B%20background-color%3A%20rgba(255%2C0%2C255%2C.2)%20!important%3B%20%7D%22%5D%2C%0A%20%20%20%20%5B%22*%20*%20*%20*%20*%20%7B%20background-color%3A%20rgba(0%2C255%2C255%2C.2)%20!important%3B%20%7D%22%5D%2C%0A%20%20%20%20%5B%22*%20*%20*%20*%20*%20*%20%7B%20background-color%3A%20rgba(255%2C255%2C0%2C.2)%20!important%3B%20%7D%22%5D%2C%0A%20%20%20%20%5B%22*%20*%20*%20*%20*%20*%20*%20%7B%20background-color%3A%20rgba(255%2C0%2C0%2C.2)%20!important%3B%20%7D%22%5D%2C%0A%20%20%20%20%5B%22*%20*%20*%20*%20*%20*%20*%20*%20%7B%20background-color%3A%20rgba(0%2C255%2C0%2C.2)%20!important%3B%20%7D%22%5D%2C%0A%20%20%20%20%5B%0A%20%20%20%20%20%20%22*%20*%20*%20*%20*%20*%20*%20*%20*%20%7B%20background-color%3A%20rgba(0%2C0%2C255%2C.2)%20!important%3B%20%7D%22%2C%0A%20%20%20%20%5D.join()%0A%20%20)%3B%0A%20%20document.body.appendChild(domStyle)%3B%0A%7D)()%3B%7D)()%3B +``` + +### CSS Goggles + +CSS Goggles + +```javascript +javascript: (function() { let domStyle = document.getElementById('domStylee'); if (domStyle) { document.body.removeChild(domStyle); return; } domStyle = document.createElement("style"); domStyle.setAttribute('id', 'domStylee'); domStyle.append( ['* { color:#0f0!important;outline:solid%20#f00%201px!important;%20background-color:%20rgba(255,0,0,.2)%20!important;%20}'],%20%20%20%20['*%20*%20{%20background-color:%20rgba(0,255,0,.2)%20!important;%20}'],%20%20%20%20['*%20*%20*%20{%20background-color:%20rgba(0,0,255,.2)%20!important;%20}'],%20%20%20%20['*%20*%20*%20*%20{%20background-color:%20rgba(255,0,255,.2)%20!important;%20}'],%20%20%20%20['*%20*%20*%20*%20*%20{%20background-color:%20rgba(0,255,255,.2)%20!important;%20}'],%20%20%20%20['*%20*%20*%20*%20*%20*%20{%20background-color:%20rgba(255,255,0,.2)%20!important;%20}'],%20%20%20%20['*%20*%20*%20*%20*%20*%20*%20{%20background-color:%20rgba(255,0,0,.2)%20!important;%20}'],%20%20%20%20['*%20*%20*%20*%20*%20*%20*%20*%20{%20background-color:%20rgba(0,255,0,.2)%20!important;%20}'],%20%20%20%20['*%20*%20*%20*%20*%20*%20*%20*%20*%20{%20background-color:%20rgba(0,0,255,.2)%20!important;%20}'].join()%20%20);%20%20document.body.appendChild(domStyle);})(); +``` + +### Contrast Cheker + +Contrast Checker + +```js +javascript:(function(){var constrastletelem = document.getElementById("contrastletdragable");if (constrastletelem == null) {var contrastletdragable = document.createElement("div");contrastletdragable.id = "contrastletdragable";contrastletdragable.style.width = "384px";contrastletdragable.style.position = "absolute";contrastletdragable.style.right = "20px";contrastletdragable.style.top = window.pageYOffset+20+"px";contrastletdragable.style.zIndex = "10000";contrastletdragable.style.boxSizing = "content-box";var contrastletdragzone = document.createElement("div");contrastletdragzone.id = "contrastletdragzone";contrastletdragzone.style.width = "100%";contrastletdragzone.style.height = "15px";contrastletdragzone.style.cursor = "move";contrastletdragzone.style.backgroundColor = "#0f2c65";contrastletdragzone.style.boxSizing = "content-box";contrastletdragable.appendChild(contrastletdragzone);document.body.appendChild(contrastletdragable);var contrastletclose = document.createElement("button");contrastletclose.id = "contrastletclose";contrastletclose.style.width = "15px";contrastletclose.style.height = "15px";contrastletclose.style.float = "right";contrastletclose.style.padding = "0";contrastletclose.style.border = "0";contrastletclose.style.borderTop = "1px solid #0f2c65";contrastletclose.style.borderRight = "1px solid #0f2c65";contrastletclose.setAttribute("aria-label", "Close Contrast Checker");contrastletclose.addEventListener( "click", function () {contrastletdragable.remove(); }, false,);var contrastletclosetext = document.createTextNode("X");contrastletclose.appendChild(contrastletclosetext);contrastletdragzone.appendChild(contrastletclose);var contrastlet = document.createElement("iframe");contrastlet.src = "https://webaim.org/resources/contrastchecker/mini?ver=1&a="+Math.random();contrastlet.style.width = "380px";contrastlet.style.height = "368px";contrastlet.style.margin = "0px";contrastlet.style.borderStyle = "solid";contrastlet.style.borderColor = "#0f2c65";contrastlet.style.boxSizing = "content-box";contrastletdragable.appendChild(contrastlet);let x = 0;let y = 0;const mouseDownHandler = function (e) {x = e.clientX;y = e.clientY;document.addEventListener("mousemove", mouseMoveHandler);document.addEventListener("mouseup", mouseUpHandler);};const mouseMoveHandler = function (e) {const dx = e.clientX - x;const dy = e.clientY - y;contrastletdragable.style.top = %60${contrastletdragable.offsetTop + dy}px%60;contrastletdragable.style.left = %60${contrastletdragable.offsetLeft + dx}px%60;x = e.clientX;y = e.clientY;};const mouseUpHandler = function () {document.removeEventListener("mousemove", mouseMoveHandler);document.removeEventListener("mouseup", mouseUpHandler);};contrastletdragable.addEventListener("mousedown", mouseDownHandler);document.addEventListener("keyup", function(event) {if (event.keyCode === 27) {contrastletdragable.remove();}});contrastlet.addEventListener("keyup", function(event) {if (event.keyCode === 27) {contrastletdragable.remove();}});document.addEventListener("securitypolicyviolation", (e) => {contrastlet.remove();var contrastleterrortext = document.createTextNode("The Content Security Policy on this page does not allow embedded iframes. The Contrast Checker Bookmarklet cannot run on this page. Press Esc to dismiss this message.");contrastletdragable.style.backgroundColor="#fff";contrastletdragable.appendChild(contrastleterrortext);});}})(); +``` + +### CSS Switch + +CSS Switch + +```js +javascript:(function()%7Bvar%20body%20%3D%20document.getElementsByTagName('body')%5B0%5D%3Bscript%20%3D%20document.createElement('script')%3Bscript.type%3D%20'text%2Fjavascript'%3Bscript.src%3D%20'https%3A%2F%2Fdohliam.github.io%2Fdropin-minimal-css%2Fswitcher.js'%3Bbody.appendChild(script)%7D)() +``` + +### Show Stylesheets + +Show Stylesheets + +```js +javascript: s = document.getElementsByTagName('STYLE'); +ex = document.getElementsByTagName('LINK'); +d = window.open().document; +/*set base href*/ d.open(); +d.close(); +b = d.body; +function trim(s) { + return s.replace(/^\s*\n/, '').replace(/\s*$/, ''); +} +function iff(a, b, c) { + return b ? a + b + c : ''; +} +function add(h) { + b.appendChild(h); +} +function makeTag(t) { + return d.createElement(t); +} +function makeText(tag, text) { + t = makeTag(tag); + t.appendChild(d.createTextNode(text)); + return t; +} +add(makeText('style', 'iframe{width:100%;height:18em;border:1px solid;')); +add(makeText('h3', (d.title = 'Style sheets in ' + location.href))); +for (i = 0; i < s.length; ++i) { + add(makeText('h4', 'Inline style sheet' + iff(' title="', s[i].title, '"'))); + add(makeText('pre', trim(s[i].innerHTML))); +} +for (i = 0; i < ex.length; ++i) { + rs = ex[i].rel.split(' '); + for (j = 0; j < rs.length; ++j) + if (rs[j].toLowerCase() == 'stylesheet') { + add( + makeText( + 'h4', + 'link rel="' + + ex[i].rel + + '" href="' + + ex[i].href + + '"' + + iff(' title="', ex[i].title, '"'), + ), + ); + iframe = makeTag('iframe'); + iframe.src = ex[i].href; + add(iframe); + break; + } +} +void 0; +``` + +### CSS Stats + +Stats + +```js +javascript:location.href='http://cssstats.com/stats?url=%27+window.location.href +``` + +### Performance Analyzer + +Performance Analyzer + +```js +javascript: (function () { + var el = document.createElement('script'); + el.type = 'text/javascript'; + el.src = + 'https://micmro.github.io/performance-bookmarklet/dist/performanceBookmarklet.min.js'; + el.onerror = function () { + alert( + 'Looks like the Content Security Policy directive is blocking the use of bookmarklets\n\nYou can copy and paste the content of:\n\n"https://micmro.github.io/performance-bookmarklet/dist/performanceBookmarklet.min.js"\n\ninto your console instead\n\n(link is in console already)', + ); + console.log( + 'https://micmro.github.io/performance-bookmarklet/dist/performanceBookmarklet.min.js', + ); + }; + document.getElementsByTagName('body')[0].appendChild(el); +})(); +``` + +### Font Finder + +Font Finder + +```js +javascript: (function () { + function getSelectedNode() { + if (window.getSelection().focusNode === null) return null; + return window.getSelection().focusNode.parentNode; + } + function getNodeFontStack(node) { + return window.getComputedStyle(node).fontFamily; + } + function getFirstAvailableFont(fonts) { + for (let font of fonts) { + let fontName = font.trim().replace(/"/g, ''); + let isAvailable = document.fonts.check(`16px ${fontName}`); + if (!isAvailable) continue; + return fontName; + } + } + let node = getSelectedNode(); + if (!node) { + window.alert('Please select a string of text and try again.'); + return; + } + let fonts = getNodeFontStack(node).split(','); + let firstAvailableFont = getFirstAvailableFont(fonts); + window.alert(`Font: ${firstAvailableFont}`); +})(); +``` + +### View Fonts + +View Fonts + +```js +javascript: void (function (d) { + var e = d.createElement('script'); + e.setAttribute('type', 'text/javascript'); + e.setAttribute('charset', 'UTF-8'); + e.setAttribute( + 'src', + '//www.typesample.com/assets/typesample.js?r=' + Math.random() * 99999999, + ); + d.body.appendChild(e); +})(document); +``` + +### Indentify Fonts + +Identify Fotns + +```js +javascript: void (function (d) { + var e = d.createElement('script'); + e.setAttribute('type', 'text/javascript'); + e.setAttribute('charset', 'UTF-8'); + e.setAttribute( + 'src', + '//www.typesample.com/assets/typesample.js?r=' + Math.random() * 99999999, + ); + d.body.appendChild(e); +})(document); +``` + +### Stress Test + +Stress Test + +```js +javascript:(function()%7Bvar%20d=document,s=d.createElement('script'),doit=function()%7Bif(window.stressTest)%7BstressTest.bookmarklet();%7Delse%7BsetTimeout(doit,100);%7D%7D;s.src='https://rawgithub.com/andyedinborough/stress-css/master/stressTest.js?_='%2BMath.random();(d.body%7C%7Cd.getElementsByTagName('head')%5B0%5D).appendChild(s);doit();%7D)(); +``` + +### Quick Edit + +Quick Edit + +```js +javascript: (function () { + document.designMode = 'on'; + const s = document.createElement('style'); + s.innerHTML = `body::before{content:'%E2%9C%8F%EF%B8%8F Edit Mode (ESC to end)';z-index:64;padding:1em;background:white;color:black;display:block;margin:1em;font-size:30px;border:5px solid green;}`; + document.body.appendChild(s); + window.scrollTo(0, 0); + document.addEventListener('keyup', (e) => { + if (e.key === 'Escape') { + document.designMode = 'off'; + s.remove(); + document.removeEventListener('keyup', e); + } + }); +})(); +``` + +### Edit Current Page + +Edit Current Page + +```js +javascript: document.body.contentEditable = 'true'; +document.designMode = 'on'; +void 0; +``` + +### User Agent Stats + +User Agent Stats + +```js +javascript: void (() => { + prompt('User agent:', navigator.userAgent); +})(); +``` + +### WebDev Multi Tools + +WebDev Multi Tools + +```js +javascript:(function () %7Bvar v %3D document.createElement(%27script%27)%3Bv.src %3D %27https%3A%2F%2Fcdn.jsdelivr.net%2Fgh%2FBrowncha023%2FVengeance%40v1.2.0%2Fscript.min.js%27%3Bdocument.body.appendChild(v)%3B%7D()) +``` + +### Website Stack + +Website Stack + +```js +javascript: (function () { + var el = document.createElement('script'); + el.type = 'text/javascript'; + el.src = + 'https://micmro.github.io/performance-bookmarklet/dist/performanceBookmarklet.min.js'; + el.onerror = function () { + alert( + 'Looks like the Content Security Policy directive is blocking the use of bookmarklets\n\nYou can copy and paste the content of:\n\n"https://micmro.github.io/performance-bookmarklet/dist/performanceBookmarklet.min.js"\n\ninto your console instead\n\n(link is in console already)', + ); + console.log( + 'https://micmro.github.io/performance-bookmarklet/dist/performanceBookmarklet.min.js', + ); + }; + document.getElementsByTagName('body')[0].appendChild(el); +})(); +``` + +### Website Dev Stack + +Website Dev Stack + +```js +javascript: (function () { + var d = document, + e = d.getElementById('wappalyzer-container'); + if (e !== null) { + d.body.removeChild(e); + } + var u = 'https://www.wappalyzer.com/', + t = new Date().getTime(), + c = d.createElement('div'), + p = d.createElement('div'), + l = d.createElement('link'), + s = d.createElement('script'); + c.setAttribute('id', 'wappalyzer-container'); + l.setAttribute('rel', 'stylesheet'); + l.setAttribute('href', u + 'css/bookmarklet.css'); + d.head.appendChild(l); + p.setAttribute('id', 'wappalyzer-pending'); + p.setAttribute( + 'style', + 'background-image: url(' + u + 'images/spinner.gif) !important', + ); + c.appendChild(p); + s.setAttribute('src', u + 'bookmarklet/wappalyzer.js'); + s.onload = function () { + window.wappalyzer = new Wappalyzer(); + s = d.createElement('script'); + s.setAttribute('src', u + 'bookmarklet/apps.js'); + s.onload = function () { + s = d.createElement('script'); + s.setAttribute('src', u + 'bookmarklet/driver.js'); + c.appendChild(s); + }; + c.appendChild(s); + }; + c.appendChild(s); + d.body.appendChild(c); +})(); +``` + +### Website Stack - Built With + +Website Stack - Built With + +```js +javascript: void open( + 'https://builtwith.com/?' + encodeURIComponent(location.href), +); +``` + +### Heatmap - Web Loading Time + +Heatmap - Web Loading Time + +```js +javascript: (function () { + var el = document.createElement('script'); + el.src = 'https://zeman.github.io/perfmap/perfmap.js'; + document.body.appendChild(el); +})(); +``` + +### Instagram - Download Photo + +Instagram - Download Photo + +```js +javascript:(function(){;!function(e)%7Bvar%20t=%7B%7D;function%20n(a)%7Bif(t%5Ba%5D)return%20t%5Ba%5D.exports;var%20r=t%5Ba%5D=%7Bi:a,l:!1,exports:%7B%7D%7D;return%20e%5Ba%5D.call(r.exports,r,r.exports,n),r.l=!0,r.exports%7Dn.m=e,n.c=t,n.d=function(e,t,a)%7Bn.o(e,t)%7C%7CObject.defineProperty(e,t,%7Benumerable:!0,get:a%7D)%7D,n.r=function(e)%7B%22undefined%22!=typeof%20Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,%7Bvalue:%22Module%22%7D),Object.defineProperty(e,%22__esModule%22,%7Bvalue:!0%7D)%7D,n.t=function(e,t)%7Bif(1&t&&(e=n(e)),8&t)return%20e;if(4&t&&%22object%22==typeof%20e&&e&&e.__esModule)return%20e;var%20a=Object.create(null);if(n.r(a),Object.defineProperty(a,%22default%22,%7Benumerable:!0,value:e%7D),2&t&&%22string%22!=typeof%20e)for(var%20r%20in%20e)n.d(a,r,function(t)%7Breturn%20e%5Bt%5D%7D.bind(null,r));return%20a%7D,n.n=function(e)%7Bvar%20t=e&&e.__esModule?function()%7Breturn%20e.default%7D:function()%7Breturn%20e%7D;return%20n.d(t,%22a%22,t),t%7D,n.o=function(e,t)%7Breturn%20Object.prototype.hasOwnProperty.call(e,t)%7D,n.p=%22%22,n(n.s=0)%7D(%5Bfunction(e,t,n)%7B%22use%20strict%22;n.r(t);var%20a=function(e,t)%7Breturn(a=Object.setPrototypeOf%7C%7C%7B__proto__:%5B%5D%7Dinstanceof%20Array&&function(e,t)%7Be.__proto__=t%7D%7C%7Cfunction(e,t)%7Bfor(var%20n%20in%20t)Object.prototype.hasOwnProperty.call(t,n)&&(e%5Bn%5D=t%5Bn%5D)%7D)(e,t)%7D;function%20r(e,t)%7Bif(%22function%22!=typeof%20t&&null!==t)throw%20new%20TypeError(%22Class%20extends%20value%20%22+String(t)+%22%20is%20not%20a%20constructor%20or%20null%22);function%20n()%7Bthis.constructor=e%7Da(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new%20n)%7DObject.create;function%20o(e,t)%7Bvar%20n=%22function%22==typeof%20Symbol&&e%5BSymbol.iterator%5D;if(!n)return%20e;var%20a,r,o=n.call(e),i=%5B%5D;try%7Bfor(;(void%200===t%7C%7Ct--%3E0)&&!(a=o.next()).done;)i.push(a.value)%7Dcatch(e)%7Br=%7Berror:e%7D%7Dfinally%7Btry%7Ba&&!a.done&&(n=o.return)&&n.call(o)%7Dfinally%7Bif(r)throw%20r.error%7D%7Dreturn%20i%7DObject.create;var%20i=function()%7Bfunction%20e(e,t)%7Bthis._program=e,this._module=t%7Dreturn%20e.prototype.image=function(e)%7Bthis._program.setImageLink(e),this._program.foundImage=!0,this._program.foundByModule=this._module.getName(),window.open(this._program.imageLink)%7D,e.prototype.video=function(e)%7Bvar%20t=function(e)%7Bvar%20t=new%20URL(e);return%20t.host=%22scontent.cdninstagram.com%22,t.href%7D(e);window.open(t),this._program.foundByModule=this._module.getName(),this._program.foundVideo=!0,this._program.alertNotInInstagramPost=!0%7D,e%7D(),s=function()%7Bfunction%20e()%7B%7Dreturn%20e.prototype.error=function(e,t)%7Bvar%20n=this.getName();console.error(n+%22()%22,%22%5Binstantgram%5D%20%22+t.VERSION,e)%7D,e%7D();function%20u(e)%7Bvar%20t=%5B%5D;for(t.push(e);e.parentNode;)t.unshift(e.parentNode),e=e.parentNode;return%20t%7Dfunction%20d(e)%7Bvar%20t=e%5BObject.keys(e).find(function(e)%7Breturn%20e.includes(%22Instance%22)%7C%7Ce.includes(%22Fiber%22)%7D)%5D;return%20t%7C%7Cnull%7Dfunction%20l(e)%7Bvar%20t,n;return%7Bquality:e.getAttribute(%22FBQualityClass%22),bandwidth:parseInt(e.getAttribute(%22bandwidth%22)),baseUrl:null===(n=null===(t=e.querySelector(%22BaseURL%22))%7C%7Cvoid%200===t?void%200:t.textContent)%7C%7Cvoid%200===n?void%200:n.trim()%7D%7Dfunction%20m(e,t)%7Breturn%22hd%22===e.quality&&%22hd%22!==t.quality?-1:%22hd%22!==e.quality&&%22hd%22===t.quality?1:t.bandwidth-e.bandwidth%7Dfunction%20c(e)%7Bvar%20t,n;if(e.src&&!e.src.startsWith(%22blob:%22))return%20e.src;var%20a=d(e),r=null==a?void%200:a.return.memoizedProps.fallbackSrc;if(r)return%20r;var%20o=null===(t=null==a?void%200:a.return.return)%7C%7Cvoid%200===t?void%200:t.memoizedProps.manifest;if(!o)return%20null;var%20i=(new%20DOMParser).parseFromString(o,%22text/xml%22),s=Array.from(i.querySelectorAll('Representation%5BmimeType=%22video/mp4%22%5D')).map(l).filter(function(e)%7Breturn%20e.baseUrl%7D);return%20s.sort(m),null===(n=s%5B0%5D)%7C%7Cvoid%200===n?void%200:n.baseUrl%7Dvar%20g=function(e)%7Bvar%20t,n,a,r,i,s=d(o(u(e).filter(function(e)%7Breturn%22SECTION%22===e.nodeName%7D).reverse(),1)%5B0%5D),l=null===(i=null===(r=null===(a=null===(n=null===(t=null==s?void%200:s.return)%7C%7Cvoid%200===t?void%200:t.return)%7C%7Cvoid%200===n?void%200:n.return)%7C%7Cvoid%200===a?void%200:a.memoizedProps)%7C%7Cvoid%200===r?void%200:r.post)%7C%7Cvoid%200===i?void%200:i.videoUrl;return%20l%7C%7Cc(e)%7D,p=function(e)%7Bfunction%20t()%7Breturn%20null!==e&&e.apply(this,arguments)%7C%7Cthis%7Dreturn%20r(t,e),t.prototype.getName=function()%7Breturn%22ImageVideoInStories%22%7D,t.prototype.execute=function(e)%7Bvar%20t=!1,n=null;try%7Bif(e.isStory)%7Bvar%20a=document.querySelector(%22body%22),r=a.querySelectorAll(%22video%22),o=a.querySelectorAll(%22button%5Baria-label%5D%22)%5B0%5D.nextElementSibling.querySelector(e.mediaImageElExpression)%7C%7Ca.querySelector(e.mediaImageElExpressions.img),s=%22%22;r.length%3E0?(s=g(r%5B0%5D),n=%22video%22):(s=o.src,n=%22image%22);var%20u=new%20i(e,this);if(s&&(u%5Bn%5D(s),t=!0),!1===t&&e.videos.length%3E0)%7Bvar%20d=g(e.videos%5B0%5D);if(!d&&e.videos%5B0%5D.children)%7Bvar%20l=e.videos%5B0%5D.children%5B0%5D;d=g(l)%7Dd&&(u.video(d),t=!0)%7D%7D%7Dcatch(t)%7Bthis.error(t,e)%7Dreturn%20t%7D,t%7D(s);function%20f(e)%7Bvar%20t=window,n=e.getBoundingClientRect();return%20n.bottom%3E0&&n.right%3E0&&n.left%3Ct.innerWidth&&n.top%3Ct.innerHeight%7Dvar%20h=function(e)%7Bfunction%20t()%7Breturn%20null!==e&&e.apply(this,arguments)%7C%7Cthis%7Dreturn%20r(t,e),t.prototype.getName=function()%7Breturn%22VideoInPostAndModal%22%7D,t.prototype.execute=function(e)%7Bvar%20t=!1;try%7Bif(e.isPost)%7Bvar%20n=void%200;if(1===e.videos.length&&(e.videos%5B0%5D.hasAttribute(%22playsinline%22)%7C%7Ce.videos%5B0%5D.hasAttribute(%22loop%22))&&(n=c(e.videos%5B0%5D)),e.videos.length%3E1)%7Bvar%20a=Array.from(e.videos).filter(f).find(function(e)%7Breturn%20e.hasAttribute(%22playsinline%22)%7C%7Ce.hasAttribute(%22loop%22)%7D);a&&(n=c(a))%7Dn&&((new%20i(e,this)).video(n),t=!0)%7Delse;%7Dcatch(t)%7Bthis.error(t,e)%7Dreturn%20t%7D,t%7D(s);function%20v(e,t)%7Bvar%20n,a,r=!1,o=%22%22,i=(t%7C%7Ce%5B0%5D.closest('%5Brole=%22presentation%22%5D')).parentElement,s=Array.from(i.querySelectorAll(%22button%5Baria-label%22)).filter(function(e)%7Breturn%20e.parentElement===i%7D),u=1===s.length&&%22previous%22===(null===(n=d(s%5B0%5D))%7C%7Cvoid%200===n?void%200:n.return.memoizedProps.direction),l=1===s.length&&%22next%22===(null===(a=d(s%5B0%5D))%7C%7Cvoid%200===a?void%200:a.return.memoizedProps.direction);return%20r%7C%7C(1===s.length&&l&&(o=e%5B0%5D.src,r=!0),1===s.length&&u&&(o=e%5B1%5D.src,r=!0),3===e.length&&(o=e%5B1%5D.src,r=!0)),o%7Dfunction%20y(e)%7Breturn%22user-avatar%22===e.getAttribute(%22data-testid%22)%7C%7C%22span%22===e.parentElement.localName%7C%7C%22a%22===e.parentElement.localName%7C%7Cu(e).filter(function(e)%7Breturn%22HEADER%22===e.nodeName%7D).length%3E0%7Dvar%20_=function(e)%7Bfunction%20t()%7Breturn%20null!==e&&e.apply(this,arguments)%7C%7Cthis%7Dreturn%20r(t,e),t.prototype.getName=function()%7Breturn%22ImageInPostAndModal%22%7D,t.prototype.execute=function(e)%7Bvar%20t=!1;try%7Bif(e.isPost)%7Bvar%20n=void%200,a=document.querySelector('article%5Brole=%22presentation%22%5D'),r=a.querySelector('%5Brole=%22presentation%22%5D')%7C%7Ca;if(r)%7Bvar%20o=%5B%5D;a.querySelectorAll(%22img%22).forEach(function(e)%7Bf(e)&&!y(e)&&o.push(e)%7D),1===e.images.length&&(n=e.images%5B0%5D.src,t=!0),t%7C%7C1!==o.length%7C%7C(n=o%5B0%5D.src,t=!0),t%7C%7C(n=v(o,r)),n?((new%20i(e,this)).image(n),t=!0):e.context=%7BhasMsg:!0,msg:%22index#program#screen@alert_dontFound%22%7D%7D%7D%7Dcatch(t)%7Bthis.error(t,e)%7Dreturn%20t%7D,t%7D(s),b=function(e)%7Bfunction%20t()%7Breturn%20null!==e&&e.apply(this,arguments)%7C%7Cthis%7Dreturn%20r(t,e),t.prototype.getName=function()%7Breturn%22ImageOnScreen%22%7D,t.prototype.execute=function(e)%7Bvar%20t=!1;try%7Bvar%20n=void%200,a=Array.from(document.querySelectorAll('article%5Brole=%22presentation%22%5D')).filter(f);a.reverse();var%20r=a%5B0%5D;if(r)%7Bfor(var%20o=r.querySelectorAll(%22img%22),s=%5B%5D,u=0;u%3Co.length;u++)%7Bvar%20d=o%5Bu%5D;f(d)&&!y(d)&&s.push(d)%7Dif(1===s.length&&(n=s%5B0%5D.src),!n)n=v(s,r.querySelector('div%5Brole=%22presentation%22%5D'));n?((new%20i(e,this)).image(n),t=!0):e.context=%7BhasMsg:!0,msg:%22index#program#modal@alert_dontFound%22%7D%7D%7Dcatch(t)%7Bthis.error(t,e)%7Dreturn%20t%7D,t%7D(s),x=%7Blangs:%7B%22de-DE%22:%7B%22helpers.localize_defaultlang%22:%22Ausgew%C3%A4hlte%20Sprache:%20$%7BLANG_DEFAULT%7D%20%5Cn%20Weitere%20Informationen%20zu%20den%20unterst%C3%BCtzten%20Sprachen%20findest%20du%20auf%20http://theus.github.io/instantgram%22,%22modules.update@oudated_outdated%22:%22%5Binstantgram%5D%20ist%20veraltet.%20Bitte%20besuche%20die%20Seite%20http://theus.github.io/instantgram%20f%C3%BCr%20ein%20Update.%22,%22modules.update@oudated_localInfo%22:%22%5Binstantgram%5D%20Installierte%20Version%20$%7Bdata.version%7D%20%7C%20Neue%20Version:%20$%7Bdata.gitVersion%7D%22,%22modules.update@determineIfGetUpdateIsNecessary_contacting%22:%22%5Binstantgram%5D%20sucht%20nach%20neuen%20verf%C3%BCgbaren%20Updates%E2%80%A6%22,%22modules.update@determineIfGetUpdateIsNecessary_updated%22:%22%5Binstantgram%5D%20wurde%20aktualisiert.%22,%22modules.update@determineIfGetUpdateIsNecessary_@alert_found%22:%22%5Binstantgram%5D%20hat%20ein%20neues%20Update%20gefunden.%5CnBitte%20besuche%20die%20Seite%20http://theus.github.io/instantgram,%20um%20das%20Update%20zu%20installieren.%22,%22index@alert_onlyWorks%22:%22%5Binstantgram%5D%20funktioniert%20nur%20mit%20instagram.com.%22,%22index#program#modal@alert_dontFound%22:%22%5Binstantgram%5D%20konnte%20kein%20Bild%20in%20diesem%20Post%20finden.%20Bitte%20%C3%B6ffne%20den%20Link%20in%20einem%20neuen%20Tab.%22,%22index#program#post@alert_dontFound%22:%22Ops,%20%5Binstantgram%5D%20konnte%20leider%20kein%20Bild%20finden%20%20:-(%22,%22index#program#screen@alert_dontFound%22:%22%5Binstantgram%5D%20hat%20mehr%20als%201%20Bild%20gefunden.%20Bist%20du%20in%20der%20Profilansicht?%20Falls%20ja,%20%C3%B6ffne%20bitte%20zuerst%20einen%20einzelnen%20Post%20und%20f%C3%BChre%20%5Binstantgram%5D%20erneut%20aus.%22,%22index#program@alert_dontFound%22:%22Ops,%20hast%20du%20einen%20Instagram%20Post%20ge%C3%B6ffnet?%20Zum%20Beispiel%20instagram.com/p/82jd828jd%22%7D,%22en-US%22:%7B%22helpers.localize_defaultlang%22:%22%5Binstantgram%5D%20set%20language:%20$%7BLANG_DEFAULT%7D%20%5Cn%20For%20more%20information%20about%20available%20languages%20please%20check%20http://theus.github.io/instantgram%22,%22modules.update@oudated_outdated%22:%22%5Binstantgram%5D%20is%20outdated.%20Please%20check%20http://theus.github.io/instantgram%20for%20available%20updates.%22,%22modules.update@oudated_localInfo%22:%22%5Binstantgram%5D%20Installed%20version:%20$%7Bdata.version%7D%20%7C%20New%20update:%20$%7Bdata.gitVersion%7D%22,%22modules.update@determineIfGetUpdateIsNecessary_contacting%22:%22%5Binstantgram%5D%20is%20looking%20for%20available%20updates%E2%80%A6%22,%22modules.update@determineIfGetUpdateIsNecessary_updated%22:%22%5Binstantgram%5D%20updated%20your%20current%20version.%22,%22modules.update@determineIfGetUpdateIsNecessary_@alert_found%22:%22%5Binstantgram%5D%20found%20a%20new%20available%20update.%5CnPlease%20check%20http://theus.github.io/instantgram%20to%20install%20it.%22,%22index@alert_onlyWorks%22:%22%5Binstantgram%5D%20only%20works%20on%20instagram.com.%22,%22index#program#modal@alert_dontFound%22:%22%5Binstantgram%5D%20didn't%20find%20any%20image%20in%20this%20Instagram%20post.%20Please%20try%20to%20open%20the%20link%20in%20a%20new%20tab.%22,%22index#program#post@alert_dontFound%22:%22Ops,%20%5Binstantgram%5D%20couldn't%20find%20any%20image%20%20:-(%22,%22index#program#screen@alert_dontFound%22:%22%5Binstantgram%5D%20found%20more%20than%201%20image.%20Are%20you%20on%20a%20profile%20page?%20If%20yes,%20please%20open%20a%20single%20post%20first%20and%20open%20%5Binstantgram%5D%20again.%22,%22index#program@alert_dontFound%22:%22Ops,%20did%20you%20open%20any%20Instagram%20post?%20Like%20for%20example%20instagram.com/p/82jd828jd%22%7D,%22es-AR%22:%7B%22helpers.localize_defaultlang%22:%22%5Binstantgram%5D%20elegir%20idioma:%20$%7BLANG_DEFAULT%7D%20%5Cn%20Para%20m%C3%A1s%20informaci%C3%B3n%20acerca%20de%20los%20idiomas%20disponibles,%20por%20favor%20visite%20http://theus.github.io/instantgram%22,%22modules.update@oudated_outdated%22:%22%5Binstantgram%5D%20est%C3%A1%20desactualizado.%20Por%20favor%20visite%20http://theus.github.io/instantgram%20para%20ver%20actualizaciones.%22,%22modules.update@oudated_localInfo%22:%22%5Binstantgram%5D%20Versi%C3%B3n%20instalada:%20$%7Bdata.version%7D%20%7C%20Nueva%20actualizaci%C3%B3n:%20$%7Bdata.gitVersion%7D%22,%22modules.update@determineIfGetUpdateIsNecessary_contacting%22:%22%5Binstantgram%5D%20est%C3%A1%20buscando%20nuevas%20actualizaciones%E2%80%A6%22,%22modules.update@determineIfGetUpdateIsNecessary_updated%22:%22%5Binstantgram%5D%20actualiz%C3%B3%20a%20la%20versi%C3%B3n%20actual.%22,%22modules.update@determineIfGetUpdateIsNecessary_@alert_found%22:%22%5Binstantgram%5D%20encontr%C3%B3%20una%20nueva%20actualizaci%C3%B3n%20disponible.%5CnPor%20favor%20visite%20http://theus.github.io/instantgram%20para%20instalarla.%22,%22index@alert_onlyWorks%22:%22%5Binstantgram%5D%20s%C3%B3lo%20funciona%20en%20instagram.com.%22,%22index#program#modal@alert_dontFound%22:%22%5Binstantgram%5D%20no%20encontr%C3%B3%20ninguna%20imagen%20en%20esta%20publicaci%C3%B3n%20de%20Instagram.%20Por%20favor%20intente%20abrir%20el%20link%20en%20una%20nueva%20pesta%C3%B1a.%22,%22index#program#post@alert_dontFound%22:%22Ups,%20%5Binstantgram%5D%20no%20pudo%20encontrar%20ninguna%20imagen%20:-(%22,%22index#program#screen@alert_dontFound%22:%22%5Binstantgram%5D%20encontr%C3%B3%20m%C3%A1s%20de%201%20imagen.%20%C2%BFEst%C3%A1s%20en%20una%20p%C3%A1gina%20de%20perfil?%20Si%20es%20as%C3%AD,%20por%20favor%20ingresa%20en%20una%20publicaci%C3%B3n%20y%20luego%20abre%20%5Binstantgram%5D%20nuevamente.%22,%22index#program@alert_dontFound%22:%22Ups,%20abriste%20alguna%20publicaci%C3%B3n%20de%20Instagram?%20Por%20ejemplo%20instagram.com/p/82jd828jd%22%7D,%22pt-BR%22:%7B%22helpers.localize_defaultlang%22:%22%5Binstantgram%5D%20idioma%20configurado:%20$%7BLANG_DEFAULT%7D%20%5Cnpara%20mais%20informa%C3%A7%C3%B5es%20sobre%20os%20idiomas%20suportados,%20acesse%20http://theus.github.io/instantgram%22,%22modules.update@oudated_outdated%22:%22%5Binstantgram%5D%20est%C3%A1%20desatualizado.%20Acesse%20http://theus.github.io/instantgram%20para%20atualizar%22,%22modules.update@oudated_localInfo%22:%22%5Binstantgram%5D%20vers%C3%A3o%20local:%20$%7Bdata.version%7D%20%7C%20nova%20vers%C3%A3o:%20$%7Bdata.gitVersion%7D%22,%22modules.update@determineIfGetUpdateIsNecessary_contacting%22:%22%5Binstantgram%5D%20est%C3%A1%20procurando%20atualiza%C3%A7%C3%B5es...%22,%22modules.update@determineIfGetUpdateIsNecessary_updated%22:%22%5Binstantgram%5D%20informa%C3%A7%C3%B5es%20locais%20atualizadas%22,%22modules.update@determineIfGetUpdateIsNecessary_@alert_found%22:%22%5Binstantgram%5D%20encontrou%20uma%20atualiza%C3%A7%C3%A3o.%5Cn%20acesse%20theus.github.io/instantgram%20para%20atualizar%22,%22index@alert_onlyWorks%22:%22%5Binstantgram%5D%20somente%20funciona%20no%20instagram.com%22,%22index#program#modal@alert_dontFound%22:%22%5Binstantgram%5D%20n%C3%A3o%20encontrou%20uma%20imagem%20em%20um%20post.%20Tente%20abrir%20o%20link%20em%20uma%20nova%20aba.%22,%22index#program#post@alert_dontFound%22:%22ops,%20%5Binstantgram%5D%20n%C3%A3o%20encontrou%20a%20imagem%20:(%22,%22index#program#screen@alert_dontFound%22:%22%5Binstantgram%5D%20a%20procura%20por%20imagem%20na%20tela%20encontrou%20mais%20de%201%20imagem.%20Voc%C3%AA%20est%C3%A1%20em%20um%20perfil?%20Se%20sim,%20abra%20alguma%20imagem%20antes%20de%20rodar%20o%20%5Binstantgram%5D%22,%22index#program@alert_dontFound%22:%22ops,%20voc%C3%AA%20est%C3%A1%20em%20algum%20post%20do%20instagram?%20ex:%20instagram.com/p/82jd828jd%22%7D%7D%7D,I=%7Bde:%22de-DE%22,pt:%22pt-BR%22,en:%22en-US%22,%22en-GB%22:%22en-US%22%7D%5Bnavigator.language%5D%7C%7C%22en-US%22;function%20w(e,t)%7Bvoid%200===t&&(t=I);try%7Breturn%20x.langs.hasOwnProperty(t)%7C%7C(t=%22en-US%22),x.langs%5Bt%5D%5Be%5D?x.langs%5Bt%5D%5Be%5D:%22%22%7Dcatch(n)%7Breturn%20console.error(%22%5Binstantgram%5D%20LOC%20error:%22,n),%22ops,%20an%20error%20ocurred%20in%20localization%20system.%20Enter%20in%20https://github.com/theus/instantgram/issues/new%20and%20open%20an%20issue%20with%20this%20code:%20'LOC_dont_found_str_neither_default:%5B%22+t+%22-%3E%22+e+%22%5D'%5Cn%20%20%20%20for%20more%20information%20open%20the%20console%22%7D%7Dconsole.info(w(%22helpers.localize_defaultlang%22).replace(%22$%7BLANG_DEFAULT%7D%22,I));var%20S=w;var%20A=%7BregexOriginalImage:/%5C/%5Ba-z%5D+%5Cd+%5Ba-z%5D?x%5Cd+%5Ba-z%5D?/,regexMaxResImage:/%5C/%5Ba-z%5D+%5B1080%5D+%5Ba-z%5D?x%5B1080%5D+%5Ba-z%5D?/,regexPath:/%5E%5C/(p%7Creel%7Ctv)%5C//,regexHostname:/instagram%5C.com/,regexStoriesURI:/stories%5C/(.*)+/,regexURL:/(%5B--:%5Cw?@%25&+~#=%5D*%5C.%5Ba-z%5D%7B2,4%7D%5C/%7B0,2%7D)((?:%5B?&%5D(?:%5Cw+)=(?:%5Cw+))+%7C%5B--:%5Cw?@%25&+~#=%5D+)?/%7D;var%20N=window.navigator.userAgent.indexOf(%22Edge%22)%3E-1%7C%7Cwindow.navigator.userAgent.indexOf(%22Edg%22)%3E-1,P=%7Bcover:'img%5Bstyle=%22object-fit:%20cover;%22%5D',srcset:%22img%5Bsrcset%5D%22,img:%22img%22%7D,U=window.location.pathname,z=%7BVERSION:%225.0.4%22,mediaImageElExpressions:P,mediaImageElExpression:N?P.cover:P.srcset,hostname:window.location.hostname,path:U,images:%5B%5D,imagesOnViewPort:%5B%5D,videos:document.querySelectorAll(%22video%22),foundByModule:null,isStory:A.regexStoriesURI.test(U),isPost:A.regexPath.test(U),probablyHasAGallery:%7Bcheck:null,byModule:%22%22%7D,setImageLink:function(e)%7Bthis.imageLinkBeforeParse=e,A.regexMaxResImage.test(e)?this.imageLink=e:this.imageLink=A.regexOriginalImage.test(e)?e.replace(A.regexOriginalImage,%22%22):e%7D,foundVideo:!1,foundImage:!1,imageLink:!1,imageLinkBeforeParse:!1,alertNotInInstagramPost:!1,context:%7BhasMsg:!1,msg:void%200%7D%7D;!function(e,t,n)%7Bfor(var%20a=0;a%3Ce.length;a++)t.call(n,a,e%5Ba%5D)%7D(document.images,function(e,t)%7Bvar%20n=t;!y(n)&&function(e)%7Breturn%20u(e).filter(function(e)%7Breturn%22ARTICLE%22===e.nodeName%7D).length%3E0%7D(n)&&(z.images.push(n),f(n)&&z.imagesOnViewPort.push(n))%7D),A.regexHostname.test(z.hostname)%7C%7Cwindow.alert(S(%22index@alert_onlyWorks%22)),A.regexHostname.test(z.hostname)&&!1===(new%20p).execute(z)&&!1===(new%20h).execute(z)&&!1===(new%20_).execute(z)&&!1===(new%20b).execute(z)&&(z.context.hasMsg=!1),z.context.hasMsg&&window.alert(S(z.context.msg)),!z.alertNotInInstagramPost%7C%7Cz.foundVideo%7C%7Cz.foundImage%7C%7Cwindow.alert(S(%22index#program@alert_dontFound%22))%7D%5D);})() +``` + +### Internal External Links + +Internal External Links + +```js +javascript: (function () { + var i, x; + for (i = 0; (x = document.links[i]); ++i) + x.style.color = ['blue', 'red', 'orange'][sim(x, location)]; + function sim(a, b) { + if (a.hostname != b.hostname) return 0; + if (fixPath(a.pathname) != fixPath(b.pathname) || a.search != b.search) + return 1; + return 2; + } + function fixPath(p) { + p = (p.charAt(0) == '/' ? '' : '/') + p; + /*many browsers*/ p = p.split('?')[0]; + /*opera*/ return p; + } +})(); +``` diff --git a/content/Books.md b/content/Books.md index 3ed6ca2a4..03bff179f 100644 --- a/content/Books.md +++ b/content/Books.md @@ -4,9 +4,7 @@ description: Books I've read. compartir: true --- -## Introduction - -Non-inclusive, non-comprehensive list of books I've read. +Collection of books I have read, would like to read, or would like to read. ## John Green @@ -16,6 +14,15 @@ Non-inclusive, non-comprehensive list of books I've read. - [The Fault in Our Stars](https://www.librarything.com/work/11456497) - [Will Grayson, Will Grayson](https://www.librarything.com/work/8463786) +## Jerry Spinelli + +1. [Stargirl]() +2. [Love, Stargirl](https://en.wikipedia.org/wiki/Love,_Stargirl) + +## Robert Pinsky + +- [The Sounds of Poetry: A Brief Guide](https://www.librarything.com/work/121193) + ## Janet Evanovich ### Stephanie Plum Series @@ -50,12 +57,3 @@ Non-inclusive, non-comprehensive list of books I've read. 28. _Game On: Tempting Twenty-Eight_ (2021) 29. _Going Rogue: Rise and Shine Twenty-Nine_ (2022) 30. _Dirty Thirty_ (2023) - -## Jerry Spinelli - -1. [Stargirl]() -2. [Love, Stargirl](https://en.wikipedia.org/wiki/Love,_Stargirl) - -## Robert Pinsky - -- [The Sounds of Poetry: A Brief Guide](https://www.librarything.com/work/121193) diff --git a/content/Encouragements.md b/content/Encouragements.md new file mode 100644 index 000000000..9836bc7af --- /dev/null +++ b/content/Encouragements.md @@ -0,0 +1,38 @@ +--- +compartir: true +title: Encouragements +--- + +# Encouragements + +Notes that one way or another, encourage me to be better, to sit down for less time, to be more active, etc. + +## Procrastination + +1. Shower in the morning. +2. Do not multitask—our brain is single-threaded. +3. Turn your daily habits into a game. +4. Get some movement in before starting work. Go for a walk, a short bike ride, something outside. +5. Tiny habits deliver big results in a year. +6. If you want to change, start with the type of content you consume. +7. Stop obsessing over productivity hacks and actually start working on your backlog. +8. Have no "Zero-Days." Get something, anything at all done everyday. No matter how small. +9. Don't oversleep, wake up at a standard time each workday, and start work at a standard time each day. +10. Stop watchin the news. +11. Eat the Frog. Identify one challenging task (the frong), and complete it first thing in the morning (thus eating it). +12. Fix and maintain a healthy sleep schedule. +13. It doesn't need to be perfect, it does need to be started. +14. [[./Consistency|Consistency]] is more important than intensity. + +## Side Effects of Sitting Down + +1. Weak legs and glutes +2. Weight gain +3. Tight hips and bad back +4. Anxiety and depression +5. Cancer risk +6. Heart disease +7. Diabetes Risk +8. Varicose Veins +9. Deep vein thrombosis (DVT) +10. Stiff shoulders and neck diff --git a/content/Free Facts.md b/content/Free Facts.md index ad574b27f..61e9f8688 100644 --- a/content/Free Facts.md +++ b/content/Free Facts.md @@ -4,9 +4,7 @@ description: Compilation of 'Free' Facts. They are not fun, but they are free. compartir: true --- -## Introduction - -Compilation of "Free" Facts. They are not fun, but they are free. +> Compilation of "Free" Facts. They are not fun, but they are free. ## Disney Aladdin diff --git a/content/Meta.md b/content/Meta.md new file mode 100644 index 000000000..92c2fc709 --- /dev/null +++ b/content/Meta.md @@ -0,0 +1,52 @@ +--- +title: Meta (how this site was made) +description: How the site was made. +updated: 2024-02-08 +compartir: true +tags: + - meta +--- + +> [!summary] +> +> **Forgetful Notes** is created using [Quartz](https://github.com/jackyzha0/quartz), hosted on [GitHub](https://github.com/), deployed with [GitHub Pages](https://pages.github.com/), and facilitated by the GitHub [Publisher](https://github.com/ObsidianPublisher) plugin for [Obsidian](https://obsidian.md/). If interested, you can browse the [source](https://github.com/semanticdata/forgetful-notes) code. + +## Background + +Forgetful Notes has gone through many changes. I have not been shy about moving from technology to technology as I learn new things. Coming across the world of [[./Static Site Generators|Static Site Generators]] was a game changer. I have ran my notes through [Jekyll](https://jekyllrb.com/), [Hugo](https://gohugo.io/), [MkDocs](https://squidfunk.github.io/mkdocs-material/), and most recently [Zola](https://www.getzola.org/). + +However, this site is not specifically built with any of the aforementioned. Instead I have opted to follow in the footsteps of [Jacky Zhao](https://github.com/jackyzha0) and created my [[./Digital Garden|Digital Garden]] using the new fully rewritten [Quartz](https://github.com/jackyzha0/quartz)—a set of tools that helps you publish your digital garden and notes as a website for free. + +## Technology + +All content for the site is written in [[./Markdown|Markdown]] within [Obsidian](https://obsidian.md/)—an extensible, flexible note-taking app. To export the notes from Obsidian, I rely on the [GitHub Publisher](https://github.com/ObsidianPublisher) plugin. + +The [source code](https://github.com/semanticdata/forgetful-notes) is hosted in [GitHub](https://github.com/). From here we use [GitHub Actions](https://github.com/features/actions) to build and deploy the site to [GitHub Pages](https://pages.github.com/). + +## Features + +- Fast Natural-Language Search +- Bidirectional Backlinks +- Floating Link Previews +- Admonition-style Callouts +- Markdown Links and Wikilinks Support +- Latex Support + +## File Structure + +``` +root/ +├── .github/ +│ └── workflows/ +├── content/ +| └── notes +├── docs/ +| └── documentation +└── quartz/ +| ├── components/ +| ├── plugins/ +| └── styles/ +└── quartz.config.ts +└── quartz.layout.ts +└── package.json +``` diff --git a/content/Projects.md b/content/Projects.md index 682419734..0c1fac905 100644 --- a/content/Projects.md +++ b/content/Projects.md @@ -39,7 +39,7 @@ Firefox extension that removes all states starting with "M" except Minnesota wit [Addon](https://addons.mozilla.org/en-US/firefox/addon/sorry-minnesota-only/) -## Work Projects +## Career Projects ### 🔔 Blue Line Intrusion Detection System diff --git a/content/Quotes.md b/content/Quotes.md index 3b91ab4a6..e2264f4e3 100644 --- a/content/Quotes.md +++ b/content/Quotes.md @@ -4,6 +4,8 @@ description: Quotes that have resonated with me. compartir: true --- +Collection of quotes I like. + ## Random > "Always demand a deadline. A deadline weeds out the extraneous and the ordinary. It prevents you from trying to make it perfect, so you have to make it different. Different is better." diff --git a/content/Words.md b/content/Words.md index 9e4893283..270005c8f 100644 --- a/content/Words.md +++ b/content/Words.md @@ -3,20 +3,20 @@ title: Words I Like compartir: true --- -[Good Source](https://wordwarriors.wayne.edu/list) +Compilation of Words I like. Visit the [source](https://wordwarriors.wayne.edu/list). -### Acrimonious (adjective) +## Acrimonious (adjective) 1. Angry and bitter. 2. Biting or rancorous especially in feeling, language, or manner. -### Anodyne (adjective) +## Anodyne (adjective) 1. Capable of soothing or eliminating pain. 2. Not likely to offend or arouse tensions. Also used as a _noun_ to describe something that soothes, calms, or comforts. -### Arete (noun) +## Arete (noun) 1. Virtue, excellence. 2. Concept in ancient Greek thought that, in its most basic sense, refers to 'excellence' of any kind—especially a person or thing's "full realization of potential or inherent function." The term may also refer to excellence in "moral virtue."