Replaced tweet images while still possible

Signed-off-by: Marcus Noble <github@marcusnoble.co.uk>
This commit is contained in:
Marcus Noble 2023-02-03 14:47:58 +00:00
parent 0f90c7c0d0
commit 03aadb59fe
Signed by: AverageMarcus
GPG Key ID: B8F2DB8A7AEBAF78
46 changed files with 1662 additions and 45 deletions

View File

@ -38,8 +38,8 @@ docker-publish:
@docker push $(IMAGE)
.PHONY: run # Run the application
run:
@npm start
run: docker-build
@docker run -p 8000:8000 $(IMAGE)
.PHONY: ci # Perform CI specific tasks to perform on a pull request
ci:

View File

@ -0,0 +1,42 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="499px" height="348px">
<foreignObject x="0" y="0" width="499px" height="100%" fill="#eade52">
<style>
.tweetsvg{clear:none;font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;}
.tweetsvg.text{font-size: 23px;}
a.tweetsvg{color: rgb(27, 149, 224); text-decoration:none;}
.tweetsvg a { color: #1da1f2; }
blockquote.tweetsvg{margin:1px; background-color:#fefefe; border-radius:2%; border-style:solid; border-width:.1em; border-color:#ddd; padding:1em; font-family:sans; width:29rem}
blockquote.subtweet{width:26rem; padding:0.8em;}
.avatar-tweetsvg{float:left; width:4rem; height:4rem; border-radius:50%;margin-right:.5rem;;margin-bottom:.5rem;border-style: solid; border-width:.1em; border-color:#ddd;}
h1.tweetsvg{margin:0;font-size:15px;text-decoration:none;color:#000;}
h2.tweetsvg{margin:0;font-size:15px;font-weight:normal;text-decoration:none;color:rgb(101, 119, 134);}
p.tweetsvg{font-size:1rem; clear:both;}
hr.tweetsvg{color:#ddd;}
.media-tweetsvg{border-radius:2%; max-width:100%;border-radius: 2%; border-style: solid; border-width: .1em; border-color: #ddd;}
time.tweetsvg{font-size:15px;margin:0;margin-left: 2px;padding-bottom:1rem;color:rgb(101, 119, 134);text-decoration:none;}
.tweetsvg.reply{font-size:15px;color:rgb(110, 118, 125);}
.tweetsvg.footer{display:block;}
</style>
<blockquote class="tweetsvg" xmlns="http://www.w3.org/1999/xhtml">
<a rel="noopener" target="_blank" class="tweetsvg" href="https://twitter.com/QuinnyPig/"><img class="avatar-tweetsvg" alt="" src="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/4gKgSUNDX1BST0ZJTEUAAQEAAAKQbGNtcwQwAABtbnRyUkdCIFhZWiAAAAAAAAAAAAAAAABhY3NwQVBQTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9tYAAQAAAADTLWxjbXMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtkZXNjAAABCAAAADhjcHJ0AAABQAAAAE53dHB0AAABkAAAABRjaGFkAAABpAAAACxyWFlaAAAB0AAAABRiWFlaAAAB5AAAABRnWFlaAAAB&#43;AAAABRyVFJDAAACDAAAACBnVFJDAAACLAAAACBiVFJDAAACTAAAACBjaHJtAAACbAAAACRtbHVjAAAAAAAAAAEAAAAMZW5VUwAAABwAAAAcAHMAUgBHAEIAIABiAHUAaQBsAHQALQBpAG4AAG1sdWMAAAAAAAAAAQAAAAxlblVTAAAAMgAAABwATgBvACAAYwBvAHAAeQByAGkAZwBoAHQALAAgAHUAcwBlACAAZgByAGUAZQBsAHkAAAAAWFlaIAAAAAAAAPbWAAEAAAAA0y1zZjMyAAAAAAABDEoAAAXj///zKgAAB5sAAP2H///7ov///aMAAAPYAADAlFhZWiAAAAAAAABvlAAAOO4AAAOQWFlaIAAAAAAAACSdAAAPgwAAtr5YWVogAAAAAAAAYqUAALeQAAAY3nBhcmEAAAAAAAMAAAACZmYAAPKnAAANWQAAE9AAAApbcGFyYQAAAAAAAwAAAAJmZgAA8qcAAA1ZAAAT0AAACltwYXJhAAAAAAADAAAAAmZmAADypwAADVkAABPQAAAKW2Nocm0AAAAAAAMAAAAAo9cAAFR7AABMzQAAmZoAACZmAAAPXP/bAEMABQMEBAQDBQQEBAUFBQYHDAgHBwcHDwsLCQwRDxISEQ8RERMWHBcTFBoVEREYIRgaHR0fHx8TFyIkIh4kHB4fHv/bAEMBBQUFBwYHDggIDh4UERQeHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHv/CABEIADAAMAMBIgACEQEDEQH/xAAaAAADAQADAAAAAAAAAAAAAAAEBgcFAAED/8QAGQEBAAMBAQAAAAAAAAAAAAAABAEDBQAC/9oADAMBAAIQAxAAAAGyhmTCOWzPN1M1rLn9AQTkmrM/j0uM89aBabvv5ukzMHiix1ZU2tK9pkbRD4BvrJ//xAAeEAACAgIDAQEAAAAAAAAAAAADBAECAAUGEBIHFP/aAAgBAQABBQLHWQprPctbKdDkT1CqMDaB19CJMJahZfJELzxgNl3uub2mz1ReVoqW&#43;a2nljrmS4/zMFgYda8JmER2rTGDhXFtdvfbMpeS0XCIGKtrs9PttNWQmKN0XEa8khTC&#43;q2T3L1I/8QAHxEAAQMDBQAAAAAAAAAAAAAAAQAREgIDIQQQFCIx/9oACAEDAQE/AUNMGyqhEsrTSyuviutPCJNIcLlUmzIbf//EAB8RAAIBAwUBAAAAAAAAAAAAAAABEQIDEhATITEyUf/aAAgBAgEBPwEd4pcqSvof0t&#43;SJ4Nt546f/8QAKhAAAgECBAQFBQAAAAAAAAAAAQIDABEEEiFBEBMiMSMyUmGBJEJRcaH/2gAIAQEABj8Cp8RiHyxp3NEYS0EW3Tdq&#43;pfmqdioFLLEbg/zjhYdnl1&#43;KHhLc/laytGlv1WMhBJj0I44OO/SvVb3rnc1tPLbakdXsLaipj6rcUxevMVgnxUQcyZW9HessTy5k8&#43;cWrM33cDLPIsaDuTTxxXGGTyr6velQ2zJsaMmUEnqa29eDIrW7jccA&#43;KmaY37E6Ck2B0q6MVcVHzScl&#43;smgY2s69iDQvJn9nr/8QAJBABAAICAQQCAgMAAAAAAAAAAQARIUExEFFhgXGxocHR4fD/2gAIAQEAAT8hgxCXB2rnIMeVx6hd8Cb7CdqK9rs9QhvjvT&#43;4bXP8MSEONInq8EN/x14s9xbNfUTGACFmFtyQuYrKDvydbvxRTizuXdOp3CXT8OU4x9TEewV8dOZ4bomMz1ilbf6JRS/f7JkUFPOhCkc4v0dOLJVT4Dglh7a9XGGsBh814gdCqCtRMfmNrYmkNTCjNF375n//2gAMAwEAAgADAAAAEP8APT7v90P7/8QAHBEAAgICAwAAAAAAAAAAAAAAAAERITFBUXGh/9oACAEDAQE/EEpcGYE6KItR2OzDcJWTbsL3jsg//8QAGREBAQEBAQEAAAAAAAAAAAAAAQARIUFR/9oACAECAQE/EFw2TeFnTW8ghxFDtjp7JBfYL//EACAQAQEAAgEFAQEBAAAAAAAAAAERACExEEFRYZFxgcH/2gAIAQEAAT8QyhBOK&#43;AA2q6DCSaZCXdgvga8uTlIEx7Ao/tMEoLdHkF2TqlqrH7ofcXQJUg31RjJgcOSSGsHAVKqUQ/an4HV9bbA7grzwMdCSoIPD58YY1xyZTn7jBNMNQESfHrpMhhalRKpNb&#43;4taYGhO3kOd&#43;clngTiKoOP4/3EwBIi05b99DYjYZqz264NuPSaHBLDzfgVcCgVkiCsF/o/uKoBwAJTWtFw/bFEBCVbm&#43;eOnZqAB9fcjxj5bbdwafuI95DYoFRz7YfIFgwAm3kXtDNz1sComxyaw27pJI7dj7n/9kgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA=" /></a>
<a rel="noopener" target="_blank" class="tweetsvg" href="https://twitter.com/QuinnyPig/"><h1 class="tweetsvg">Corey Quinn / @quinnypig@awscommunity.social</h1></a>
<a rel="noopener" target="_blank" class="tweetsvg" href="https://twitter.com/QuinnyPig/"><h2 class="tweetsvg">@QuinnyPig</h2></a>
<p class="tweetsvg text">So @docker has a new monetization strategy that's definitely innovative. "Docker Desktop requires you pay them if you're at a large company," which they define as over $10 million in revenue or 250 employees.<br /><br /><a rel="noopener" target="_blank" href="https://www.docker.com/blog/updating-product-subscriptions/">docker.com/blog/updating-…</a></p>
<a rel="noopener" target="_blank" class="tweetsvg footer" href="https://twitter.com/QuinnyPig/status/1432720164169076755">
<time class="tweetsvg" datetime="2021-08-31T15:01:20Z">3:01 PM · Aug 31, 2021</time>
</a>
</blockquote>
</foreignObject>
</svg>

After

Width:  |  Height:  |  Size: 5.4 KiB

View File

@ -0,0 +1,42 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="499px" height="320px">
<foreignObject x="0" y="0" width="499px" height="100%" fill="#eade52">
<style>
.tweetsvg{clear:none;font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;}
.tweetsvg.text{font-size: 23px;}
a.tweetsvg{color: rgb(27, 149, 224); text-decoration:none;}
.tweetsvg a { color: #1da1f2; }
blockquote.tweetsvg{margin:1px; background-color:#fefefe; border-radius:2%; border-style:solid; border-width:.1em; border-color:#ddd; padding:1em; font-family:sans; width:29rem}
blockquote.subtweet{width:26rem; padding:0.8em;}
.avatar-tweetsvg{float:left; width:4rem; height:4rem; border-radius:50%;margin-right:.5rem;;margin-bottom:.5rem;border-style: solid; border-width:.1em; border-color:#ddd;}
h1.tweetsvg{margin:0;font-size:15px;text-decoration:none;color:#000;}
h2.tweetsvg{margin:0;font-size:15px;font-weight:normal;text-decoration:none;color:rgb(101, 119, 134);}
p.tweetsvg{font-size:1rem; clear:both;}
hr.tweetsvg{color:#ddd;}
.media-tweetsvg{border-radius:2%; max-width:100%;border-radius: 2%; border-style: solid; border-width: .1em; border-color: #ddd;}
time.tweetsvg{font-size:15px;margin:0;margin-left: 2px;padding-bottom:1rem;color:rgb(101, 119, 134);text-decoration:none;}
.tweetsvg.reply{font-size:15px;color:rgb(110, 118, 125);}
.tweetsvg.footer{display:block;}
</style>
<blockquote class="tweetsvg" xmlns="http://www.w3.org/1999/xhtml">
<a rel="noopener" target="_blank" class="tweetsvg" href="https://twitter.com/Podman_io/"><img class="avatar-tweetsvg" alt="" src="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/4gKgSUNDX1BST0ZJTEUAAQEAAAKQbGNtcwQwAABtbnRyUkdCIFhZWiAAAAAAAAAAAAAAAABhY3NwQVBQTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9tYAAQAAAADTLWxjbXMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtkZXNjAAABCAAAADhjcHJ0AAABQAAAAE53dHB0AAABkAAAABRjaGFkAAABpAAAACxyWFlaAAAB0AAAABRiWFlaAAAB5AAAABRnWFlaAAAB&#43;AAAABRyVFJDAAACDAAAACBnVFJDAAACLAAAACBiVFJDAAACTAAAACBjaHJtAAACbAAAACRtbHVjAAAAAAAAAAEAAAAMZW5VUwAAABwAAAAcAHMAUgBHAEIAIABiAHUAaQBsAHQALQBpAG4AAG1sdWMAAAAAAAAAAQAAAAxlblVTAAAAMgAAABwATgBvACAAYwBvAHAAeQByAGkAZwBoAHQALAAgAHUAcwBlACAAZgByAGUAZQBsAHkAAAAAWFlaIAAAAAAAAPbWAAEAAAAA0y1zZjMyAAAAAAABDEoAAAXj///zKgAAB5sAAP2H///7ov///aMAAAPYAADAlFhZWiAAAAAAAABvlAAAOO4AAAOQWFlaIAAAAAAAACSdAAAPgwAAtr5YWVogAAAAAAAAYqUAALeQAAAY3nBhcmEAAAAAAAMAAAACZmYAAPKnAAANWQAAE9AAAApbcGFyYQAAAAAAAwAAAAJmZgAA8qcAAA1ZAAAT0AAACltwYXJhAAAAAAADAAAAAmZmAADypwAADVkAABPQAAAKW2Nocm0AAAAAAAMAAAAAo9cAAFR7AABMzQAAmZoAACZmAAAPXP/bAEMABQMEBAQDBQQEBAUFBQYHDAgHBwcHDwsLCQwRDxISEQ8RERMWHBcTFBoVEREYIRgaHR0fHx8TFyIkIh4kHB4fHv/bAEMBBQUFBwYHDggIDh4UERQeHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHv/CABEIADAAMAMBIgACEQEDEQH/xAAbAAADAQEAAwAAAAAAAAAAAAAEBQYDAQACB//EABYBAQEBAAAAAAAAAAAAAAAAAAECAP/aAAwDAQACEAMQAAAB&#43;yq9cKobifx1E2U&#43;5uDkxTjhc9MUpcTYqUtoRwTpqblzPvDS4r//xAAfEAEAAwEAAgIDAAAAAAAAAAADAQIEAAURExQSIiT/2gAIAQEAAQUC5roqvJhIWFrxZMydqW0S8xiwZ1ItGxwt2K/2cma9iTPHrd5m9KhcK31WzmVvEpS674980/Huh4&#43;cHXMtFM9jNSdJ/vq20tYyHI19OKblvBlsOb65eNK9I5hJo/HSPf0vw5yKe//EABsRAAMAAwEBAAAAAAAAAAAAAAABIQIRMRNR/9oACAEDAQE/AVKbyOjpTHaZH08/jIj/xAAaEQACAwEBAAAAAAAAAAAAAAAAAQIRITFR/9oACAECAQE/AVmlyOjV6UxKtIzrC/RyXEf/xAA0EAACAAQCBQoFBQAAAAAAAAABAgADERIEMRMhIkFhEEJRUmKBkaGx0QUUMjPwI1NxweH/2gAIAQEABj8CjQyGKhfuOPSAJvxGeGOS7NfCkWJ8Qn39U0B8KQBNdnlPzmzU8gkyfuvl2R0w2iFW5td7GHks630uLnN&#43;JiVLuRrjUGutabxBSfRiCZb8eMfLTTX9tjzh7xiRvNrd1P8ADEq51Ws5Mz2oM2RJlXONbjfEhcSkoqn0aXOMXYykaQZHsiJK7zNWnr6AxLc5OjKfX3g4nEyr0mD6ztAa9QHdDzFQSke/ZbI0y9odcXtTLLmdlyPRFcJskS79haB&#43;H5wiQLrgksv45f3Csi3MjhqdPT5RSu0M0mKLvOGlS5ctVbq6jBEycqm2h/g98AtjE2lsFFqSMoZnDZBVuztH4eT9RK0yO8RsNp06r6m8YyGHTjQv7DziqrVjmx1k8n//xAAjEAEAAQMEAgMBAQAAAAAAAAABEQAhMUFRgZFhoRBxsfDB/9oACAEBAAE/IaV3qwJHQzrvsfdHEaZU&#43;E6lXQmeP9p01sgIPDYCz&#43;/EEyVzc1H/AF2rSXaS7MvlWpVtLG2w8mmlSJMhM3mFkpj9nG0bdi9SCqJ6y&#43;HvNSQ3pHfAO&#43;yhS0OM0TRPyY8piJncocOXQxZnOTxUCSbMXSrXeekMnoc0D6GLyW&#43;it5rkM0AXj&#43;a1Jp0aLlAYoCBElZsJLGwU0LLoCSqizY7abxwRGk9axSiBkYHZqNp3Y06TzTmIzGLkf8pLzU0fgqwOORELAlloyks8ItpDF34GAM2BNxyV79EP1g890ndQV&#43;0HWsT5S/H/2gAMAwEAAgADAAAAEN/14ddKlTv/xAAeEQACAgICAwAAAAAAAAAAAAABEQAxIUFh8KHR4f/aAAgBAwEBPxAFa9e5kS8Q4sXBwPHyXKORAYI04QMAah2QO6uBBAy&#43;1P/EACIRAAIBAwIHAAAAAAAAAAAAAAERACExQdHwUWFxobHB8f/aAAgBAgEBPxAFa&#43;NZUXoQ0sXG9/YZOTxSEJbtHAXWIQAOBHHOvaKEE//EACEQAQACAgICAgMAAAAAAAAAAAERIQAxQVFhgRCxcZGh/9oACAEBAAE/EMieCGoUrCTpUNHIyH9oB&#43;xC9GOh2XzChQ8xjo1PaqHA8bFUWz4nQMgg6H0TAcgdwzQmKaGC8yS/WNMJkqBRIgUAWEARiyjFBAVBeGVOrFM0Gbw70cEQ6nApumrLbc1j0jsFoRMJW5eAeHn3jbrfCColKC3rIqGxp0pwpq4nbhClDLrVLAwMq6jILGaRV8j5yLACoLWM7H0C7wprLIDGquo/YxgpyAqu0FGAslXROcJ7xTrrYIN0t44p28qJILoZEF24014soxwMhKkIJvE8Z/7qkVoMdq5ogsCUJQkoS4A2sEHMlHwUeHNSQkCQwp9gyYAX7CaFkR3BYfeEiSI5Qr0VIPbjONL0sqqXRuIm1&#43;FfS2OicJ5EwtmPBD4T0kXnKFMb/AYP6PTG3bX&#43;8n1o&#43;P/ZICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg" /></a>
<a rel="noopener" target="_blank" class="tweetsvg" href="https://twitter.com/Podman_io/"><h1 class="tweetsvg">Podman</h1></a>
<a rel="noopener" target="_blank" class="tweetsvg" href="https://twitter.com/Podman_io/"><h2 class="tweetsvg">@Podman_io</h2></a>
<p class="tweetsvg text">Happy to announce Podman v3.3.0! Support for non-Linux machines, restarting containers now supported, checkpoint/restore, and more! Check out the Release Announcement for details! <a rel="noopener" target="_blank" href="https://podman.io/releases/2021/08/31/podman-release-v3.3.0.html">podman.io/releases/2021/…</a> <a rel="noopener" target="_blank" href="https://twitter.com/hashtag/podman">#podman</a> <a rel="noopener" target="_blank" href="https://twitter.com/hashtag/Opensource">#Opensource</a></p>
<a rel="noopener" target="_blank" class="tweetsvg footer" href="https://twitter.com/Podman_io/status/1432800271873323010">
<time class="tweetsvg" datetime="2021-08-31T20:19:39Z">8:19 PM · Aug 31, 2021</time>
</a>
</blockquote>
</foreignObject>
</svg>

After

Width:  |  Height:  |  Size: 5.9 KiB

View File

@ -0,0 +1,42 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="499px" height="348px">
<foreignObject x="0" y="0" width="499px" height="100%" fill="#eade52">
<style>
.tweetsvg{clear:none;font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;}
.tweetsvg.text{font-size: 23px;}
a.tweetsvg{color: rgb(27, 149, 224); text-decoration:none;}
.tweetsvg a { color: #1da1f2; }
blockquote.tweetsvg{margin:1px; background-color:#fefefe; border-radius:2%; border-style:solid; border-width:.1em; border-color:#ddd; padding:1em; font-family:sans; width:29rem}
blockquote.subtweet{width:26rem; padding:0.8em;}
.avatar-tweetsvg{float:left; width:4rem; height:4rem; border-radius:50%;margin-right:.5rem;;margin-bottom:.5rem;border-style: solid; border-width:.1em; border-color:#ddd;}
h1.tweetsvg{margin:0;font-size:15px;text-decoration:none;color:#000;}
h2.tweetsvg{margin:0;font-size:15px;font-weight:normal;text-decoration:none;color:rgb(101, 119, 134);}
p.tweetsvg{font-size:1rem; clear:both;}
hr.tweetsvg{color:#ddd;}
.media-tweetsvg{border-radius:2%; max-width:100%;border-radius: 2%; border-style: solid; border-width: .1em; border-color: #ddd;}
time.tweetsvg{font-size:15px;margin:0;margin-left: 2px;padding-bottom:1rem;color:rgb(101, 119, 134);text-decoration:none;}
.tweetsvg.reply{font-size:15px;color:rgb(110, 118, 125);}
.tweetsvg.footer{display:block;}
</style>
<blockquote class="tweetsvg" xmlns="http://www.w3.org/1999/xhtml">
<a rel="noopener" target="_blank" class="tweetsvg" href="https://twitter.com/manuel_zapf/"><img class="avatar-tweetsvg" alt="" src="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/4gKgSUNDX1BST0ZJTEUAAQEAAAKQbGNtcwQwAABtbnRyUkdCIFhZWiAAAAAAAAAAAAAAAABhY3NwQVBQTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9tYAAQAAAADTLWxjbXMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtkZXNjAAABCAAAADhjcHJ0AAABQAAAAE53dHB0AAABkAAAABRjaGFkAAABpAAAACxyWFlaAAAB0AAAABRiWFlaAAAB5AAAABRnWFlaAAAB&#43;AAAABRyVFJDAAACDAAAACBnVFJDAAACLAAAACBiVFJDAAACTAAAACBjaHJtAAACbAAAACRtbHVjAAAAAAAAAAEAAAAMZW5VUwAAABwAAAAcAHMAUgBHAEIAIABiAHUAaQBsAHQALQBpAG4AAG1sdWMAAAAAAAAAAQAAAAxlblVTAAAAMgAAABwATgBvACAAYwBvAHAAeQByAGkAZwBoAHQALAAgAHUAcwBlACAAZgByAGUAZQBsAHkAAAAAWFlaIAAAAAAAAPbWAAEAAAAA0y1zZjMyAAAAAAABDEoAAAXj///zKgAAB5sAAP2H///7ov///aMAAAPYAADAlFhZWiAAAAAAAABvlAAAOO4AAAOQWFlaIAAAAAAAACSdAAAPgwAAtr5YWVogAAAAAAAAYqUAALeQAAAY3nBhcmEAAAAAAAMAAAACZmYAAPKnAAANWQAAE9AAAApbcGFyYQAAAAAAAwAAAAJmZgAA8qcAAA1ZAAAT0AAACltwYXJhAAAAAAADAAAAAmZmAADypwAADVkAABPQAAAKW2Nocm0AAAAAAAMAAAAAo9cAAFR7AABMzQAAmZoAACZmAAAPXP/bAEMABQMEBAQDBQQEBAUFBQYHDAgHBwcHDwsLCQwRDxISEQ8RERMWHBcTFBoVEREYIRgaHR0fHx8TFyIkIh4kHB4fHv/bAEMBBQUFBwYHDggIDh4UERQeHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHv/CABEIADAAMAMBIgACEQEDEQH/xAAaAAACAwEBAAAAAAAAAAAAAAAEBQECBgAD/8QAGAEAAwEBAAAAAAAAAAAAAAAAAAMEAQL/2gAMAwEAAhADEAAAAXtiEWGI0&#43;qSLfq4dwxHmjGRAzPq0nuecjiiEFtZhoL6E9nUVvHXP//EACQQAAICAgIBAwUAAAAAAAAAAAIEAQMABRETFAYQEhUgIiMx/9oACAEBAAEFAi1Q27LYaxZRdjZ/s0DQN3RqB5&#43;jhkqMC76pXYBNOtMR3PVZnRGdEZZEeZuepkq1qhOpeuZ9tswdeUsH5YmXNUEUnDcWTLWMredbQpTRh18kFf5TnGJD8KP7P2f/xAAbEQACAgMBAAAAAAAAAAAAAAABEQAQAgMSIv/aAAgBAwEBPwGHShQhy8u&#43;ilX/xAAaEQACAgMAAAAAAAAAAAAAAAAAAQIQERIx/9oACAECAQE/ARTMUu0jVV//xAAqEAABBAAEBAUFAAAAAAAAAAABAAIDERIhMVEEEBQzEyIyQZIgI2Fxwf/aAAgBAQAGPwIMkkNNjsUvHknLY2&#43;okIjhGWz2L9Summc/h5X&#43;nZyvxnLuuUbOrdb2HzKNjuIdK10jbCoCG2/pQz8O4Y4ZQctV3JPku5L8lEdmldNqQMwmVnaw4bN846Js5LHm51LzRGttk2hhFqrFDk3OmM1X246O/usQy/qxacx&#43;c/q//8QAIhABAAIDAAEEAwEAAAAAAAAAAQARITFBYRBRgZFxobHB/9oACAEBAAE/IdZxLvMSJwyFE1UNL9BqeGcvwZ7CtqvghbavwS1uhhkqsS4NE47Ao4U9E76&#43;FUvkytV89FPdUX8hHbMh9n8hAcCoGaqv9mYFIydlnIMaZLFMDoijawuqt0MtzL/qu912ZUG2dmgUxa9/kbfBD2hCm9qKYFCnwiAs0MVMncr7T8fXn0EJz0Z//9oADAMBAAIAAwAAABCHDxnbrpbL/8QAGREAAgMBAAAAAAAAAAAAAAAAAREAECFB/9oACAEDAQE/EBpjguiRcBgL7GV//8QAGREAAwEBAQAAAAAAAAAAAAAAAAERIRAx/9oACAECAQE/EIkhDawgtwTwywSGlnP/xAAjEAEBAAICAgEFAQEAAAAAAAABEQAhMUFRcWGBkcHR8KGx/9oACAEBAAE/EDJEIIpmNuQHJMH1QCrxDJMFJQEedWx8uc1hALMsIE0YcPm4en46vxgW0Sbwrpxek/qDf8yJJ6wmu51vCu3Cap33jVvTZlKNCpbC8YrSU0aJ11g/9f8AmLeak3gdsc6UM2fswIjWcso27D7NZotEphSaEOd9OBaAHAGD5wXyoGIJk4dfzDYYtQgWhhE8bxY1ZAcm09XEonnZ4awZSz9sAjuiqJ/Dka2DgfK/iYj601vRfk6xLXQVsXVvqn1wNlMIvfrHlgesIKRD2L&#43;oYtQfM/PjKTwY0HrJrGCHaZ//2SAgICAgICAgICAgICAgICAgICAgICAg" /></a>
<a rel="noopener" target="_blank" class="tweetsvg" href="https://twitter.com/manuel_zapf/"><h1 class="tweetsvg">Manuel Zapf</h1></a>
<a rel="noopener" target="_blank" class="tweetsvg" href="https://twitter.com/manuel_zapf/"><h2 class="tweetsvg">@manuel_zapf</h2></a>
<p class="tweetsvg text">That whole discussion around <a rel="noopener" target="_blank" href="https://twitter.com/Docker/">@Docker</a>'s pricing change is tiring to me. We owe them a lot, it made all of our devs live much easier. Why should they *NOT* earn money with that? You only got to pay for a nicer experience on certain OS, when you can afford. I see 0 issues with that.</p>
<a rel="noopener" target="_blank" class="tweetsvg footer" href="https://twitter.com/manuel_zapf/status/1432974196632604676">
<time class="tweetsvg" datetime="2021-09-01T07:50:46Z">7:50 AM · Sep 1, 2021</time>
</a>
</blockquote>
</foreignObject>
</svg>

After

Width:  |  Height:  |  Size: 5.2 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 12 KiB

View File

@ -0,0 +1,44 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="499px" height="306px">
<foreignObject x="0" y="0" width="499px" height="100%" fill="#eade52">
<style>
.tweetsvg{clear:none;font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;}
.tweetsvg.text{font-size: 23px;}
a.tweetsvg{color: rgb(27, 149, 224); text-decoration:none;}
.tweetsvg a { color: #1da1f2; }
blockquote.tweetsvg{margin:1px; background-color:#fefefe; border-radius:2%; border-style:solid; border-width:.1em; border-color:#ddd; padding:1em; font-family:sans; width:29rem}
blockquote.subtweet{width:26rem; padding:0.8em;}
.avatar-tweetsvg{float:left; width:4rem; height:4rem; border-radius:50%;margin-right:.5rem;;margin-bottom:.5rem;border-style: solid; border-width:.1em; border-color:#ddd;}
h1.tweetsvg{margin:0;font-size:15px;text-decoration:none;color:#000;}
h2.tweetsvg{margin:0;font-size:15px;font-weight:normal;text-decoration:none;color:rgb(101, 119, 134);}
p.tweetsvg{font-size:1rem; clear:both;}
hr.tweetsvg{color:#ddd;}
.media-tweetsvg{border-radius:2%; max-width:100%;border-radius: 2%; border-style: solid; border-width: .1em; border-color: #ddd;}
time.tweetsvg{font-size:15px;margin:0;margin-left: 2px;padding-bottom:1rem;color:rgb(101, 119, 134);text-decoration:none;}
.tweetsvg.reply{font-size:15px;color:rgb(110, 118, 125);}
.tweetsvg.footer{display:block;}
</style>
<blockquote class="tweetsvg" xmlns="http://www.w3.org/1999/xhtml">
<a rel="noopener" target="_blank" class="tweetsvg" href="https://twitter.com/KaiPMDH/"><img class="avatar-tweetsvg" alt="" src="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/4gKgSUNDX1BST0ZJTEUAAQEAAAKQbGNtcwQwAABtbnRyUkdCIFhZWiAH4gALABcAEAAdAAhhY3NwQVBQTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9tYAAQAAAADTLWxjbXMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtkZXNjAAABCAAAADhjcHJ0AAABQAAAAE53dHB0AAABkAAAABRjaGFkAAABpAAAACxyWFlaAAAB0AAAABRiWFlaAAAB5AAAABRnWFlaAAAB&#43;AAAABRyVFJDAAACDAAAACBnVFJDAAACLAAAACBiVFJDAAACTAAAACBjaHJtAAACbAAAACRtbHVjAAAAAAAAAAEAAAAMZW5VUwAAABwAAAAcAHMAUgBHAEIAIABiAHUAaQBsAHQALQBpAG4AAG1sdWMAAAAAAAAAAQAAAAxlblVTAAAAMgAAABwATgBvACAAYwBvAHAAeQByAGkAZwBoAHQALAAgAHUAcwBlACAAZgByAGUAZQBsAHkAAAAAWFlaIAAAAAAAAPbWAAEAAAAA0y1zZjMyAAAAAAABDEoAAAXj///zKgAAB5sAAP2H///7ov///aMAAAPYAADAlFhZWiAAAAAAAABvlAAAOO4AAAOQWFlaIAAAAAAAACSdAAAPgwAAtr5YWVogAAAAAAAAYqUAALeQAAAY3nBhcmEAAAAAAAMAAAACZmYAAPKnAAANWQAAE9AAAApbcGFyYQAAAAAAAwAAAAJmZgAA8qcAAA1ZAAAT0AAACltwYXJhAAAAAAADAAAAAmZmAADypwAADVkAABPQAAAKW2Nocm0AAAAAAAMAAAAAo9cAAFR7AABMzQAAmZoAACZmAAAPXP/bAEMABQMEBAQDBQQEBAUFBQYHDAgHBwcHDwsLCQwRDxISEQ8RERMWHBcTFBoVEREYIRgaHR0fHx8TFyIkIh4kHB4fHv/bAEMBBQUFBwYHDggIDh4UERQeHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHv/CABEIADAAMAMBIgACEQEDEQH/xAAYAAADAQEAAAAAAAAAAAAAAAAFBgcEA//EABgBAQEBAQEAAAAAAAAAAAAAAAMEAQIF/9oADAMBAAIQAxAAAAFllmleJmZhm&#43;UqaS6LlFaGGDSYyP3Bxbg1UQdXafNXcUR1jOvSNJlfcjZMJ6mXM//EAB0QAAMBAQEBAAMAAAAAAAAAAAIDBAEFABETITH/2gAIAQEAAQUC71wSgqvPz7TE7xmMYSx29FoRNX7vPop6WfM9rt9jnCzjmzo&#43;fSKQwzcy5e/Q/lahTFwD350GD8PZxS536To5uAdXpbVysbaiiVbTDynBvoqJVMO92oqENr5ZtJnhz0sDKGdOcJKKBRtE/J1jf//EAB0RAAIDAAIDAAAAAAAAAAAAAAACAQMRBCETIjH/2gAIAQMBAT8BiWE5U1d4S2zoyr48kur6wzJFuZBbWb2F&#43;6f/xAAbEQADAAMBAQAAAAAAAAAAAAAAAQIREiEDMf/aAAgBAgEBPwHSUPwVGvCW3WUKsdK6jRMqF8LXD//EACcQAAIBBAEEAgEFAAAAAAAAAAECAAMREiETBCIxQTJRECNhYnGR/9oACAEBAAY/AmBq51GHYALW/czLqS7r9Azj4no/Tk3/ANnTMe5Uy8e4vUvTtSY2HoQLT6XQ8WYWj8wGYAFlm5ZIG5GuPEoVK7PbQCjSyn6DG05nsQRoy&#43;MOpS5KIya&#43;7SgKRYeDoaWUVDgM1/mYp6W/Efsy0Jtu0TLjFLHbHe9ziWqtP&#43;aC4iLTqCuRb5Iblv6lge0&#43;pufqpneYvaxbI61HppZND4&#43;DDRWoU4e4Nbf5o4&#43;zZtThxUo5DAW8SnknE6v368x1pmnSYr7Np//EACIQAAICAgEFAAMAAAAAAAAAAAERACExQWFRcZGhwRCx0f/aAAgBAQABPyESDJshUqcuw5VH&#43;gD2alnP8nUPjfhKBxxzAr6gmnLmUFAYAUZuiMuDikcqDAzbFqEyceUlj7CuWgVkyk4CDfQRSIo7cAFjqZzWBFQ7/IIalqiwo53BS9mpBSipomLC9vmP38wRWAt0ZSYIivUEl48R2vnbR0gvKEwwbogvcCljJrCH3AFt6Gh09w/1uVhfvMDAOpLEP7FgWtm7H8CRYgfdNqramd4JULY8wTCRGOpuMkSBIRD9z//aAAwDAQACAAMAAAAQlOpLEtVIC//EABwRAQADAQEAAwAAAAAAAAAAAAEAESExUXGRwf/aAAgBAwEBPxA1Lw&#43;pciyleVifsew6zT9xz2WgMvSnJQU2TdFl8j6GbfxP/8QAGhEAAwEBAQEAAAAAAAAAAAAAAAERIUFxYf/aAAgBAgEBPxBrNLpEViGiiYiYBbUM8drXzow370Qovnp//8QAHhABAQACAgMBAQAAAAAAAAAAAREAITFBUWGBcfD/2gAIAQEAAT8Qdy6KqSjwHQFX7jNdRVRpihznFtQg16bL9bOS7MQWBFUQCJ6bfxxH9YwdxRTpZtxbg6ZDWxHralc2YKQIER8Nv3KIXCaT5jUB/qZAD7KF&#43;OvkyaxugINAkIMTfWV/SyUAVOdcLccAKQaSaOZ5xfNkOL5xAZyQNu5iSZAws9jl4SuGzBOtcCbbkauomyaxYC60RyZB31jOABS3sejpMMAJHl04LGyQ0ScebMEs6xTwh2St0D6tfW3DNl61ok6&#43;4y7YFZ7DOSLcxXyKzs&#43;fT7ybSPrZlM8QpQN3zwJg4qUhYCsrsEoSa8AeCBFLRbrp6cIpBKTQbU4J9yVwqKsSHKprBa6WLAQaqgNUPuPAEejABXg8vWBTowWDonJrnNWXDkGavDnXef/ZICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA==" /></a>
<a rel="noopener" target="_blank" class="tweetsvg" href="https://twitter.com/KaiPMDH/"><h1 class="tweetsvg">Kai @kaipmdh@hachyderm.io</h1></a>
<a rel="noopener" target="_blank" class="tweetsvg" href="https://twitter.com/KaiPMDH/"><h2 class="tweetsvg">@KaiPMDH</h2></a>
<p class="tweetsvg reply">Replying to <a rel="noopener" target="_blank" href="https://twitter.com/Marcus_Noble_/">@Marcus_Noble_</a></p>
<p class="tweetsvg text">Can I add my "please write on this" request? I would very much like something like this with an at-a-glance view, public transport status, etc. Would be helpful as a starting point.</p>
<a rel="noopener" target="_blank" class="tweetsvg footer" href="https://twitter.com/KaiPMDH/status/1514576057537605642">
<time class="tweetsvg" datetime="2022-04-14T12:07:26Z">12:07 PM · Apr 14, 2022</time>
</a>
</blockquote>
</foreignObject>
</svg>

After

Width:  |  Height:  |  Size: 5.5 KiB

View File

@ -0,0 +1,42 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="499px" height="208px">
<foreignObject x="0" y="0" width="499px" height="100%" fill="#eade52">
<style>
.tweetsvg{clear:none;font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;}
.tweetsvg.text{font-size: 23px;}
a.tweetsvg{color: rgb(27, 149, 224); text-decoration:none;}
.tweetsvg a { color: #1da1f2; }
blockquote.tweetsvg{margin:1px; background-color:#fefefe; border-radius:2%; border-style:solid; border-width:.1em; border-color:#ddd; padding:1em; font-family:sans; width:29rem}
blockquote.subtweet{width:26rem; padding:0.8em;}
.avatar-tweetsvg{float:left; width:4rem; height:4rem; border-radius:50%;margin-right:.5rem;;margin-bottom:.5rem;border-style: solid; border-width:.1em; border-color:#ddd;}
h1.tweetsvg{margin:0;font-size:15px;text-decoration:none;color:#000;}
h2.tweetsvg{margin:0;font-size:15px;font-weight:normal;text-decoration:none;color:rgb(101, 119, 134);}
p.tweetsvg{font-size:1rem; clear:both;}
hr.tweetsvg{color:#ddd;}
.media-tweetsvg{border-radius:2%; max-width:100%;border-radius: 2%; border-style: solid; border-width: .1em; border-color: #ddd;}
time.tweetsvg{font-size:15px;margin:0;margin-left: 2px;padding-bottom:1rem;color:rgb(101, 119, 134);text-decoration:none;}
.tweetsvg.reply{font-size:15px;color:rgb(110, 118, 125);}
.tweetsvg.footer{display:block;}
</style>
<blockquote class="tweetsvg" xmlns="http://www.w3.org/1999/xhtml">
<a rel="noopener" target="_blank" class="tweetsvg" href="https://twitter.com/Marcus_Noble_/"><img class="avatar-tweetsvg" alt="" src="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/4gKgSUNDX1BST0ZJTEUAAQEAAAKQbGNtcwQwAABtbnRyUkdCIFhZWiAAAAAAAAAAAAAAAABhY3NwQVBQTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9tYAAQAAAADTLWxjbXMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtkZXNjAAABCAAAADhjcHJ0AAABQAAAAE53dHB0AAABkAAAABRjaGFkAAABpAAAACxyWFlaAAAB0AAAABRiWFlaAAAB5AAAABRnWFlaAAAB&#43;AAAABRyVFJDAAACDAAAACBnVFJDAAACLAAAACBiVFJDAAACTAAAACBjaHJtAAACbAAAACRtbHVjAAAAAAAAAAEAAAAMZW5VUwAAABwAAAAcAHMAUgBHAEIAIABiAHUAaQBsAHQALQBpAG4AAG1sdWMAAAAAAAAAAQAAAAxlblVTAAAAMgAAABwATgBvACAAYwBvAHAAeQByAGkAZwBoAHQALAAgAHUAcwBlACAAZgByAGUAZQBsAHkAAAAAWFlaIAAAAAAAAPbWAAEAAAAA0y1zZjMyAAAAAAABDEoAAAXj///zKgAAB5sAAP2H///7ov///aMAAAPYAADAlFhZWiAAAAAAAABvlAAAOO4AAAOQWFlaIAAAAAAAACSdAAAPgwAAtr5YWVogAAAAAAAAYqUAALeQAAAY3nBhcmEAAAAAAAMAAAACZmYAAPKnAAANWQAAE9AAAApbcGFyYQAAAAAAAwAAAAJmZgAA8qcAAA1ZAAAT0AAACltwYXJhAAAAAAADAAAAAmZmAADypwAADVkAABPQAAAKW2Nocm0AAAAAAAMAAAAAo9cAAFR7AABMzQAAmZoAACZmAAAPXP/bAEMABQMEBAQDBQQEBAUFBQYHDAgHBwcHDwsLCQwRDxISEQ8RERMWHBcTFBoVEREYIRgaHR0fHx8TFyIkIh4kHB4fHv/bAEMBBQUFBwYHDggIDh4UERQeHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHv/CABEIADAAMAMBIgACEQEDEQH/xAAZAAADAQEBAAAAAAAAAAAAAAADBAYFAgH/xAAZAQACAwEAAAAAAAAAAAAAAAAAAgEEBQP/2gAMAwEAAhADEAAAAffOxUdHgbUvMUy4HwdVFlujx5zc57TbUlsPUSzzdnBBm1WNqG1qBxa3/8QAIRAAAwACAgICAwAAAAAAAAAAAQIDAAQREwUSFBUhIiT/2gAIAQEAAQUCDNQpNngVojIoGS4yiPUmUfbr2BNZgOdqvZrhdhEmTlARlm/XsGa3xHa7TNJ8HKH8M6rlKO&#43;S3NVQuy/ZNzy1eUs59ifXJatbr6V7VFFnVABoTnTc2fG6lU&#43;LABdP&#43;vyiD6z/xAAfEQABBAICAwAAAAAAAAAAAAACAAEDBAURITEiQVH/2gAIAQMBAT8B2vfabSZNibIDt27V3Hy1fIulWJhlFy&#43;q/lTk4h4U98pYHjJl/8QAGREAAgMBAAAAAAAAAAAAAAAAAAECEBEh/9oACAECAQE/AcrphJiqKQ&#43;M/8QAKBAAAQQCAQMEAQUAAAAAAAAAAQACAxESIVETIjEEMkFhIzNCUmKB/9oACAEBAAY/AmtkiLW1yjlG4C705PbHE57SPOaBwky4tSZxOHzt3yml8RHHcmxmJvaK8ox4w4XyiIgwa5Rkh9Owhvk2j6jpsDjsXymtkjixQp13/VEjnxSJxI1wr/DiBTsjSkwFC9GkPaQm4huXztO0A6/5LRpCV8Fyj60ieSgW/wCdy3kO7zYRrKudIIPbI1mRpgP7l0sbe07CEjmlo&#43;2o9lb9vTQa9nZXjGkwNZhXnFRhrv0hTdfdqX1HU3IePC7jkWuFL//EACEQAQACAgICAgMAAAAAAAAAAAEAESExQVFhcYGRscHR/9oACAEBAAE/IVYyo6hAnjwbrUznGEa31LKv3iWpYjfA2dITVBNBuAIClyC2GVneh2xA41b&#43;0IqXJS4vdhNOfJLxV7w53mYIf06iWFisbpNGPQ3gvqBCwOJyvUIqN0WuZU2SwfrEqEZVbPM6IFYlRD0FMu7gWtjWSnONwcCpSNAWNqyrlxXhhYjwA2vRBE0r8UNTBpTPgiHUONLUZmeyvuMgFrLcwF8Ea/Zf5gLw3q0HUsW8XHuf/9oADAMBAAIAAwAAABC5Vu3&#43;VRF7/8QAHxEAAgEEAgMAAAAAAAAAAAAAAREAITFBUZHwYXHR/9oACAEDAQE/EEpF0&#43;QoqKEDWdBVe9RMkkUxu6NpUqAA8FwGCEc4PIMZ2tU3Yz3zP//EABsRAQEAAwADAAAAAAAAAAAAAAEAESFRQYHw/9oACAECAQE/EMrxo&#43;9sgdROBMTBOiBtmZu3/8QAIBABAQADAAMAAwEBAAAAAAAAAREAITFBUWFxgaGRsf/aAAgBAQABPxC4i&#43;GgolOLqtw/bYoJgCEn5wtowUwi19AYmbqqkSDry5wLRCs1nXbkzs0ZUw1vaGF09t&#43;yBzdxQ6n5B512Z1Zq3wOj9kxom67PNH1u/OsEacVKFJT3/uKkNi/fD73HG2LCkBbb84qGBtH339Ypx90gkKN/eIYJ8FUCOx0c/mbcXYOic/MwpxQF1fdn9fONR1WQ6aN/OMioTFS8v3ICRhBVD64UoFLImqcP6ZXMqqBWw9dwkbUnZm0RPjiUHBbMjAnjz&#43;se5RADe63vEdgFbwhju6GG4aFJcvl0YEiUCSO/ibynyjb7/ofWHYt2ZR/4av3KqXqUEmn7ZlM43qUCNr75iSZK0QCqlFSv1hoKIiDg9mj/ADPfgk20mvlz/9kgICAgICAgICAgICAg" /></a>
<a rel="noopener" target="_blank" class="tweetsvg" href="https://twitter.com/Marcus_Noble_/"><h1 class="tweetsvg">Marcus Noble</h1></a>
<a rel="noopener" target="_blank" class="tweetsvg" href="https://twitter.com/Marcus_Noble_/"><h2 class="tweetsvg">@Marcus_Noble_</h2></a>
<p class="tweetsvg text">Dammit. My train is delayed. Hope I'm not late for <a rel="noopener" target="_blank" href="https://twitter.com/JSOxford/">@JSOxford</a> code retreat. <a rel="noopener" target="_blank" href="https://twitter.com/hashtag/oxcr">#oxcr</a></p>
<a rel="noopener" target="_blank" class="tweetsvg footer" href="https://twitter.com/Marcus_Noble_/status/485697274174275584">
<time class="tweetsvg" datetime="2014-07-06T08:10:28Z">8:10 AM · Jul 6, 2014</time>
</a>
</blockquote>
</foreignObject>
</svg>

After

Width:  |  Height:  |  Size: 5.4 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 60 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 92 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 72 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 43 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 43 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 42 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 94 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 122 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 297 KiB

View File

@ -0,0 +1,42 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="499px" height="208px">
<foreignObject x="0" y="0" width="499px" height="100%" fill="#eade52">
<style>
.tweetsvg{clear:none;font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;}
.tweetsvg.text{font-size: 23px;}
a.tweetsvg{color: rgb(27, 149, 224); text-decoration:none;}
.tweetsvg a { color: #1da1f2; }
blockquote.tweetsvg{margin:1px; background-color:#fefefe; border-radius:2%; border-style:solid; border-width:.1em; border-color:#ddd; padding:1em; font-family:sans; width:29rem}
blockquote.subtweet{width:26rem; padding:0.8em;}
.avatar-tweetsvg{float:left; width:4rem; height:4rem; border-radius:50%;margin-right:.5rem;;margin-bottom:.5rem;border-style: solid; border-width:.1em; border-color:#ddd;}
h1.tweetsvg{margin:0;font-size:15px;text-decoration:none;color:#000;}
h2.tweetsvg{margin:0;font-size:15px;font-weight:normal;text-decoration:none;color:rgb(101, 119, 134);}
p.tweetsvg{font-size:1rem; clear:both;}
hr.tweetsvg{color:#ddd;}
.media-tweetsvg{border-radius:2%; max-width:100%;border-radius: 2%; border-style: solid; border-width: .1em; border-color: #ddd;}
time.tweetsvg{font-size:15px;margin:0;margin-left: 2px;padding-bottom:1rem;color:rgb(101, 119, 134);text-decoration:none;}
.tweetsvg.reply{font-size:15px;color:rgb(110, 118, 125);}
.tweetsvg.footer{display:block;}
</style>
<blockquote class="tweetsvg" xmlns="http://www.w3.org/1999/xhtml">
<a rel="noopener" target="_blank" class="tweetsvg" href="https://twitter.com/Marcus_Noble_/"><img class="avatar-tweetsvg" alt="" src="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/4gKgSUNDX1BST0ZJTEUAAQEAAAKQbGNtcwQwAABtbnRyUkdCIFhZWiAAAAAAAAAAAAAAAABhY3NwQVBQTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9tYAAQAAAADTLWxjbXMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtkZXNjAAABCAAAADhjcHJ0AAABQAAAAE53dHB0AAABkAAAABRjaGFkAAABpAAAACxyWFlaAAAB0AAAABRiWFlaAAAB5AAAABRnWFlaAAAB&#43;AAAABRyVFJDAAACDAAAACBnVFJDAAACLAAAACBiVFJDAAACTAAAACBjaHJtAAACbAAAACRtbHVjAAAAAAAAAAEAAAAMZW5VUwAAABwAAAAcAHMAUgBHAEIAIABiAHUAaQBsAHQALQBpAG4AAG1sdWMAAAAAAAAAAQAAAAxlblVTAAAAMgAAABwATgBvACAAYwBvAHAAeQByAGkAZwBoAHQALAAgAHUAcwBlACAAZgByAGUAZQBsAHkAAAAAWFlaIAAAAAAAAPbWAAEAAAAA0y1zZjMyAAAAAAABDEoAAAXj///zKgAAB5sAAP2H///7ov///aMAAAPYAADAlFhZWiAAAAAAAABvlAAAOO4AAAOQWFlaIAAAAAAAACSdAAAPgwAAtr5YWVogAAAAAAAAYqUAALeQAAAY3nBhcmEAAAAAAAMAAAACZmYAAPKnAAANWQAAE9AAAApbcGFyYQAAAAAAAwAAAAJmZgAA8qcAAA1ZAAAT0AAACltwYXJhAAAAAAADAAAAAmZmAADypwAADVkAABPQAAAKW2Nocm0AAAAAAAMAAAAAo9cAAFR7AABMzQAAmZoAACZmAAAPXP/bAEMABQMEBAQDBQQEBAUFBQYHDAgHBwcHDwsLCQwRDxISEQ8RERMWHBcTFBoVEREYIRgaHR0fHx8TFyIkIh4kHB4fHv/bAEMBBQUFBwYHDggIDh4UERQeHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHv/CABEIADAAMAMBIgACEQEDEQH/xAAZAAADAQEBAAAAAAAAAAAAAAADBAYFAgH/xAAZAQACAwEAAAAAAAAAAAAAAAAAAgEEBQP/2gAMAwEAAhADEAAAAffOxUdHgbUvMUy4HwdVFlujx5zc57TbUlsPUSzzdnBBm1WNqG1qBxa3/8QAIRAAAwACAgICAwAAAAAAAAAAAQIDAAQREwUSFBUhIiT/2gAIAQEAAQUCDNQpNngVojIoGS4yiPUmUfbr2BNZgOdqvZrhdhEmTlARlm/XsGa3xHa7TNJ8HKH8M6rlKO&#43;S3NVQuy/ZNzy1eUs59ifXJatbr6V7VFFnVABoTnTc2fG6lU&#43;LABdP&#43;vyiD6z/xAAfEQABBAICAwAAAAAAAAAAAAACAAEDBAURITEiQVH/2gAIAQMBAT8B2vfabSZNibIDt27V3Hy1fIulWJhlFy&#43;q/lTk4h4U98pYHjJl/8QAGREAAgMBAAAAAAAAAAAAAAAAAAECEBEh/9oACAECAQE/AcrphJiqKQ&#43;M/8QAKBAAAQQCAQMEAQUAAAAAAAAAAQACAxESIVETIjEEMkFhIzNCUmKB/9oACAEBAAY/AmtkiLW1yjlG4C705PbHE57SPOaBwky4tSZxOHzt3yml8RHHcmxmJvaK8ox4w4XyiIgwa5Rkh9Owhvk2j6jpsDjsXymtkjixQp13/VEjnxSJxI1wr/DiBTsjSkwFC9GkPaQm4huXztO0A6/5LRpCV8Fyj60ieSgW/wCdy3kO7zYRrKudIIPbI1mRpgP7l0sbe07CEjmlo&#43;2o9lb9vTQa9nZXjGkwNZhXnFRhrv0hTdfdqX1HU3IePC7jkWuFL//EACEQAQACAgICAgMAAAAAAAAAAAEAESExQVFhcYGRscHR/9oACAEBAAE/IVYyo6hAnjwbrUznGEa31LKv3iWpYjfA2dITVBNBuAIClyC2GVneh2xA41b&#43;0IqXJS4vdhNOfJLxV7w53mYIf06iWFisbpNGPQ3gvqBCwOJyvUIqN0WuZU2SwfrEqEZVbPM6IFYlRD0FMu7gWtjWSnONwcCpSNAWNqyrlxXhhYjwA2vRBE0r8UNTBpTPgiHUONLUZmeyvuMgFrLcwF8Ea/Zf5gLw3q0HUsW8XHuf/9oADAMBAAIAAwAAABC5Vu3&#43;VRF7/8QAHxEAAgEEAgMAAAAAAAAAAAAAAREAITFBUZHwYXHR/9oACAEDAQE/EEpF0&#43;QoqKEDWdBVe9RMkkUxu6NpUqAA8FwGCEc4PIMZ2tU3Yz3zP//EABsRAQEAAwADAAAAAAAAAAAAAAEAESFRQYHw/9oACAECAQE/EMrxo&#43;9sgdROBMTBOiBtmZu3/8QAIBABAQADAAMAAwEBAAAAAAAAAREAITFBUWFxgaGRsf/aAAgBAQABPxC4i&#43;GgolOLqtw/bYoJgCEn5wtowUwi19AYmbqqkSDry5wLRCs1nXbkzs0ZUw1vaGF09t&#43;yBzdxQ6n5B512Z1Zq3wOj9kxom67PNH1u/OsEacVKFJT3/uKkNi/fD73HG2LCkBbb84qGBtH339Ypx90gkKN/eIYJ8FUCOx0c/mbcXYOic/MwpxQF1fdn9fONR1WQ6aN/OMioTFS8v3ICRhBVD64UoFLImqcP6ZXMqqBWw9dwkbUnZm0RPjiUHBbMjAnjz&#43;se5RADe63vEdgFbwhju6GG4aFJcvl0YEiUCSO/ibynyjb7/ofWHYt2ZR/4av3KqXqUEmn7ZlM43qUCNr75iSZK0QCqlFSv1hoKIiDg9mj/ADPfgk20mvlz/9kgICAgICAgICAgICAg" /></a>
<a rel="noopener" target="_blank" class="tweetsvg" href="https://twitter.com/Marcus_Noble_/"><h1 class="tweetsvg">Marcus Noble</h1></a>
<a rel="noopener" target="_blank" class="tweetsvg" href="https://twitter.com/Marcus_Noble_/"><h2 class="tweetsvg">@Marcus_Noble_</h2></a>
<p class="tweetsvg text">Dots on a map! We have dots on a map! This is big! <a rel="noopener" target="_blank" href="https://twitter.com/hashtag/ETWOx">#ETWOx</a></p>
<a rel="noopener" target="_blank" class="tweetsvg footer" href="https://twitter.com/Marcus_Noble_/status/533979636909506560">
<time class="tweetsvg" datetime="2014-11-16T13:47:20Z">1:47 PM · Nov 16, 2014</time>
</a>
</blockquote>
</foreignObject>
</svg>

After

Width:  |  Height:  |  Size: 5.3 KiB

View File

@ -0,0 +1,42 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="499px" height="236px">
<foreignObject x="0" y="0" width="499px" height="100%" fill="#eade52">
<style>
.tweetsvg{clear:none;font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;}
.tweetsvg.text{font-size: 23px;}
a.tweetsvg{color: rgb(27, 149, 224); text-decoration:none;}
.tweetsvg a { color: #1da1f2; }
blockquote.tweetsvg{margin:1px; background-color:#fefefe; border-radius:2%; border-style:solid; border-width:.1em; border-color:#ddd; padding:1em; font-family:sans; width:29rem}
blockquote.subtweet{width:26rem; padding:0.8em;}
.avatar-tweetsvg{float:left; width:4rem; height:4rem; border-radius:50%;margin-right:.5rem;;margin-bottom:.5rem;border-style: solid; border-width:.1em; border-color:#ddd;}
h1.tweetsvg{margin:0;font-size:15px;text-decoration:none;color:#000;}
h2.tweetsvg{margin:0;font-size:15px;font-weight:normal;text-decoration:none;color:rgb(101, 119, 134);}
p.tweetsvg{font-size:1rem; clear:both;}
hr.tweetsvg{color:#ddd;}
.media-tweetsvg{border-radius:2%; max-width:100%;border-radius: 2%; border-style: solid; border-width: .1em; border-color: #ddd;}
time.tweetsvg{font-size:15px;margin:0;margin-left: 2px;padding-bottom:1rem;color:rgb(101, 119, 134);text-decoration:none;}
.tweetsvg.reply{font-size:15px;color:rgb(110, 118, 125);}
.tweetsvg.footer{display:block;}
</style>
<blockquote class="tweetsvg" xmlns="http://www.w3.org/1999/xhtml">
<a rel="noopener" target="_blank" class="tweetsvg" href="https://twitter.com/Marcus_Noble_/"><img class="avatar-tweetsvg" alt="" src="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/4gKgSUNDX1BST0ZJTEUAAQEAAAKQbGNtcwQwAABtbnRyUkdCIFhZWiAAAAAAAAAAAAAAAABhY3NwQVBQTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9tYAAQAAAADTLWxjbXMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtkZXNjAAABCAAAADhjcHJ0AAABQAAAAE53dHB0AAABkAAAABRjaGFkAAABpAAAACxyWFlaAAAB0AAAABRiWFlaAAAB5AAAABRnWFlaAAAB&#43;AAAABRyVFJDAAACDAAAACBnVFJDAAACLAAAACBiVFJDAAACTAAAACBjaHJtAAACbAAAACRtbHVjAAAAAAAAAAEAAAAMZW5VUwAAABwAAAAcAHMAUgBHAEIAIABiAHUAaQBsAHQALQBpAG4AAG1sdWMAAAAAAAAAAQAAAAxlblVTAAAAMgAAABwATgBvACAAYwBvAHAAeQByAGkAZwBoAHQALAAgAHUAcwBlACAAZgByAGUAZQBsAHkAAAAAWFlaIAAAAAAAAPbWAAEAAAAA0y1zZjMyAAAAAAABDEoAAAXj///zKgAAB5sAAP2H///7ov///aMAAAPYAADAlFhZWiAAAAAAAABvlAAAOO4AAAOQWFlaIAAAAAAAACSdAAAPgwAAtr5YWVogAAAAAAAAYqUAALeQAAAY3nBhcmEAAAAAAAMAAAACZmYAAPKnAAANWQAAE9AAAApbcGFyYQAAAAAAAwAAAAJmZgAA8qcAAA1ZAAAT0AAACltwYXJhAAAAAAADAAAAAmZmAADypwAADVkAABPQAAAKW2Nocm0AAAAAAAMAAAAAo9cAAFR7AABMzQAAmZoAACZmAAAPXP/bAEMABQMEBAQDBQQEBAUFBQYHDAgHBwcHDwsLCQwRDxISEQ8RERMWHBcTFBoVEREYIRgaHR0fHx8TFyIkIh4kHB4fHv/bAEMBBQUFBwYHDggIDh4UERQeHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHv/CABEIADAAMAMBIgACEQEDEQH/xAAZAAADAQEBAAAAAAAAAAAAAAADBAYFAgH/xAAZAQACAwEAAAAAAAAAAAAAAAAAAgEEBQP/2gAMAwEAAhADEAAAAffOxUdHgbUvMUy4HwdVFlujx5zc57TbUlsPUSzzdnBBm1WNqG1qBxa3/8QAIRAAAwACAgICAwAAAAAAAAAAAQIDAAQREwUSFBUhIiT/2gAIAQEAAQUCDNQpNngVojIoGS4yiPUmUfbr2BNZgOdqvZrhdhEmTlARlm/XsGa3xHa7TNJ8HKH8M6rlKO&#43;S3NVQuy/ZNzy1eUs59ifXJatbr6V7VFFnVABoTnTc2fG6lU&#43;LABdP&#43;vyiD6z/xAAfEQABBAICAwAAAAAAAAAAAAACAAEDBAURITEiQVH/2gAIAQMBAT8B2vfabSZNibIDt27V3Hy1fIulWJhlFy&#43;q/lTk4h4U98pYHjJl/8QAGREAAgMBAAAAAAAAAAAAAAAAAAECEBEh/9oACAECAQE/AcrphJiqKQ&#43;M/8QAKBAAAQQCAQMEAQUAAAAAAAAAAQACAxESIVETIjEEMkFhIzNCUmKB/9oACAEBAAY/AmtkiLW1yjlG4C705PbHE57SPOaBwky4tSZxOHzt3yml8RHHcmxmJvaK8ox4w4XyiIgwa5Rkh9Owhvk2j6jpsDjsXymtkjixQp13/VEjnxSJxI1wr/DiBTsjSkwFC9GkPaQm4huXztO0A6/5LRpCV8Fyj60ieSgW/wCdy3kO7zYRrKudIIPbI1mRpgP7l0sbe07CEjmlo&#43;2o9lb9vTQa9nZXjGkwNZhXnFRhrv0hTdfdqX1HU3IePC7jkWuFL//EACEQAQACAgICAgMAAAAAAAAAAAEAESExQVFhcYGRscHR/9oACAEBAAE/IVYyo6hAnjwbrUznGEa31LKv3iWpYjfA2dITVBNBuAIClyC2GVneh2xA41b&#43;0IqXJS4vdhNOfJLxV7w53mYIf06iWFisbpNGPQ3gvqBCwOJyvUIqN0WuZU2SwfrEqEZVbPM6IFYlRD0FMu7gWtjWSnONwcCpSNAWNqyrlxXhhYjwA2vRBE0r8UNTBpTPgiHUONLUZmeyvuMgFrLcwF8Ea/Zf5gLw3q0HUsW8XHuf/9oADAMBAAIAAwAAABC5Vu3&#43;VRF7/8QAHxEAAgEEAgMAAAAAAAAAAAAAAREAITFBUZHwYXHR/9oACAEDAQE/EEpF0&#43;QoqKEDWdBVe9RMkkUxu6NpUqAA8FwGCEc4PIMZ2tU3Yz3zP//EABsRAQEAAwADAAAAAAAAAAAAAAEAESFRQYHw/9oACAECAQE/EMrxo&#43;9sgdROBMTBOiBtmZu3/8QAIBABAQADAAMAAwEBAAAAAAAAAREAITFBUWFxgaGRsf/aAAgBAQABPxC4i&#43;GgolOLqtw/bYoJgCEn5wtowUwi19AYmbqqkSDry5wLRCs1nXbkzs0ZUw1vaGF09t&#43;yBzdxQ6n5B512Z1Zq3wOj9kxom67PNH1u/OsEacVKFJT3/uKkNi/fD73HG2LCkBbb84qGBtH339Ypx90gkKN/eIYJ8FUCOx0c/mbcXYOic/MwpxQF1fdn9fONR1WQ6aN/OMioTFS8v3ICRhBVD64UoFLImqcP6ZXMqqBWw9dwkbUnZm0RPjiUHBbMjAnjz&#43;se5RADe63vEdgFbwhju6GG4aFJcvl0YEiUCSO/ibynyjb7/ofWHYt2ZR/4av3KqXqUEmn7ZlM43qUCNr75iSZK0QCqlFSv1hoKIiDg9mj/ADPfgk20mvlz/9kgICAgICAgICAgICAg" /></a>
<a rel="noopener" target="_blank" class="tweetsvg" href="https://twitter.com/Marcus_Noble_/"><h1 class="tweetsvg">Marcus Noble</h1></a>
<a rel="noopener" target="_blank" class="tweetsvg" href="https://twitter.com/Marcus_Noble_/"><h2 class="tweetsvg">@Marcus_Noble_</h2></a>
<p class="tweetsvg text">So, I've just learnt the browser on @googleglass doesn't have geolocation. Talk about re-opening a solved problem. :(</p>
<a rel="noopener" target="_blank" class="tweetsvg footer" href="https://twitter.com/Marcus_Noble_/status/533995183248252929">
<time class="tweetsvg" datetime="2014-11-16T14:49:07Z">2:49 PM · Nov 16, 2014</time>
</a>
</blockquote>
</foreignObject>
</svg>

After

Width:  |  Height:  |  Size: 5.3 KiB

View File

@ -0,0 +1,42 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="499px" height="208px">
<foreignObject x="0" y="0" width="499px" height="100%" fill="#eade52">
<style>
.tweetsvg{clear:none;font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;}
.tweetsvg.text{font-size: 23px;}
a.tweetsvg{color: rgb(27, 149, 224); text-decoration:none;}
.tweetsvg a { color: #1da1f2; }
blockquote.tweetsvg{margin:1px; background-color:#fefefe; border-radius:2%; border-style:solid; border-width:.1em; border-color:#ddd; padding:1em; font-family:sans; width:29rem}
blockquote.subtweet{width:26rem; padding:0.8em;}
.avatar-tweetsvg{float:left; width:4rem; height:4rem; border-radius:50%;margin-right:.5rem;;margin-bottom:.5rem;border-style: solid; border-width:.1em; border-color:#ddd;}
h1.tweetsvg{margin:0;font-size:15px;text-decoration:none;color:#000;}
h2.tweetsvg{margin:0;font-size:15px;font-weight:normal;text-decoration:none;color:rgb(101, 119, 134);}
p.tweetsvg{font-size:1rem; clear:both;}
hr.tweetsvg{color:#ddd;}
.media-tweetsvg{border-radius:2%; max-width:100%;border-radius: 2%; border-style: solid; border-width: .1em; border-color: #ddd;}
time.tweetsvg{font-size:15px;margin:0;margin-left: 2px;padding-bottom:1rem;color:rgb(101, 119, 134);text-decoration:none;}
.tweetsvg.reply{font-size:15px;color:rgb(110, 118, 125);}
.tweetsvg.footer{display:block;}
</style>
<blockquote class="tweetsvg" xmlns="http://www.w3.org/1999/xhtml">
<a rel="noopener" target="_blank" class="tweetsvg" href="https://twitter.com/matthew_hh/"><img class="avatar-tweetsvg" alt="" src="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/4gKgSUNDX1BST0ZJTEUAAQEAAAKQbGNtcwQwAABtbnRyUkdCIFhZWiAH3wAMABYAEQANACdhY3NwQVBQTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9tYAAQAAAADTLWxjbXMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtkZXNjAAABCAAAADhjcHJ0AAABQAAAAE53dHB0AAABkAAAABRjaGFkAAABpAAAACxyWFlaAAAB0AAAABRiWFlaAAAB5AAAABRnWFlaAAAB&#43;AAAABRyVFJDAAACDAAAACBnVFJDAAACLAAAACBiVFJDAAACTAAAACBjaHJtAAACbAAAACRtbHVjAAAAAAAAAAEAAAAMZW5VUwAAABwAAAAcAHMAUgBHAEIAIABiAHUAaQBsAHQALQBpAG4AAG1sdWMAAAAAAAAAAQAAAAxlblVTAAAAMgAAABwATgBvACAAYwBvAHAAeQByAGkAZwBoAHQALAAgAHUAcwBlACAAZgByAGUAZQBsAHkAAAAAWFlaIAAAAAAAAPbWAAEAAAAA0y1zZjMyAAAAAAABDEoAAAXj///zKgAAB5sAAP2H///7ov///aMAAAPYAADAlFhZWiAAAAAAAABvlAAAOO4AAAOQWFlaIAAAAAAAACSdAAAPgwAAtr5YWVogAAAAAAAAYqUAALeQAAAY3nBhcmEAAAAAAAMAAAACZmYAAPKnAAANWQAAE9AAAApbcGFyYQAAAAAAAwAAAAJmZgAA8qcAAA1ZAAAT0AAACltwYXJhAAAAAAADAAAAAmZmAADypwAADVkAABPQAAAKW2Nocm0AAAAAAAMAAAAAo9cAAFR7AABMzQAAmZoAACZmAAAPXP/bAEMABQMEBAQDBQQEBAUFBQYHDAgHBwcHDwsLCQwRDxISEQ8RERMWHBcTFBoVEREYIRgaHR0fHx8TFyIkIh4kHB4fHv/bAEMBBQUFBwYHDggIDh4UERQeHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHv/AABEIADAAMAMBIgACEQEDEQH/xAAcAAABBAMBAAAAAAAAAAAAAAAFAwQGBwABAgj/xAA1EAABAwMCAwUFBwUAAAAAAAABAgMEBQYRABIHCCEiMUFRcRMUIzJhFnKRobHBwlKBorLx/8QAFAEBAAAAAAAAAAAAAAAAAAAAAP/EABQRAQAAAAAAAAAAAAAAAAAAAAD/2gAMAwEAAhEDEQA/APYk4ZZHrriT1Q0rSkw4aHrriR8jSdBt8YktnWYxO9R&#43;2q3v6&#43;rjpXF22LQo9DalwahsVOmLQslhJWodCDtHRJPXUvl3NR4MiqP1OW1T41McS28/JWEIOW0ryCfDtY9QdAYYGJbo89JxU9h9Hh/3QGyb6tG8JkpNtV6JUlsJ3Ooa3BSRnGSFAHGfHRxp5DftdxOVd2gEXxV5dPfpUKAiO5JnyFNIQ6vbnCdxx59NI3ZcTVJr9Hp7s2GyqYtCA26e0sqWE9n&#43;51WXOkirRLDo1x0V2QxMpNVDyXmPmZy2sb/oAQNPuK9Mp9cTY91TJUyJNQmO&#43;yps9k4W06UrSfPzz00BCuqqa&#43;YulIZUwqCmKkPBR7aew4QUj11HKaya/wAzlcoNwRYM6le4OvpiOthxCiktIQpYORuAUvHluOk&#43;J7tWo/NTZs5DbzlLqDTTCylRCG3MuoycfeT39NMKEXaTzx1OOtZLdSpq9g64ALSHP1bVoCXL/Bt2k3Ff1Qt6G5GVFBadjqQpKUqSt1QCQe4dAMDyGjticUGa/wAIa9ejzcZKaakqUhIUSnDaVHd9cq8NN&#43;FLuzinfNuFxwpc9s4kOkAn4pB2p79vbHU6q7lxjqlcFeK9sOElcZt0JHj0YWn9W9BfnHhxtqyUOLSFbZrW0E9M4V3juPoemo7xTdcNm2fuV8VaWyc9ST7NH76c8ysxxu3aVBb&#43;aTN6D7qDj81DQPjXKd&#43;3FgWlFGCtSC4cZ2oK0I/ifz0D3jU4&#43;jidY6Y7mFmWyHE570l4Z1GaiPac89PKMZbp2FdO4e6uH&#43;Q0cvx01XmXtelJUCIex9SAf6EOOEn6Ds6A2JIFa50LpkhORToq2t3lsQ02P9lfhoEuEbrsjnHv9W8qQ1GcR39AAtkY/HOhHK898Pi/nb7qHHlZwPORnr5Yx00vy1SkzOKnFq9Vq&#43;G0p0hfklTzq/yDQ0E5fJK6Zy58ULqeA3Sw6nJHj7HB/wAnToP/2SAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA==" /></a>
<a rel="noopener" target="_blank" class="tweetsvg" href="https://twitter.com/matthew_hh/"><h1 class="tweetsvg">MatthewHH Design</h1></a>
<a rel="noopener" target="_blank" class="tweetsvg" href="https://twitter.com/matthew_hh/"><h2 class="tweetsvg">@matthew_hh</h2></a>
<p class="tweetsvg text">If sencespace doesn't launch I'm going to be mad at the world as a whole. <a rel="noopener" target="_blank" href="https://twitter.com/hashtag/etwox">#etwox</a></p>
<a rel="noopener" target="_blank" class="tweetsvg footer" href="https://twitter.com/matthew_hh/status/534020893203521536">
<time class="tweetsvg" datetime="2014-11-16T16:31:17Z">4:31 PM · Nov 16, 2014</time>
</a>
</blockquote>
</foreignObject>
</svg>

After

Width:  |  Height:  |  Size: 4.8 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 77 KiB

View File

@ -0,0 +1,42 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="499px" height="208px">
<foreignObject x="0" y="0" width="499px" height="100%" fill="#eade52">
<style>
.tweetsvg{clear:none;font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;}
.tweetsvg.text{font-size: 23px;}
a.tweetsvg{color: rgb(27, 149, 224); text-decoration:none;}
.tweetsvg a { color: #1da1f2; }
blockquote.tweetsvg{margin:1px; background-color:#fefefe; border-radius:2%; border-style:solid; border-width:.1em; border-color:#ddd; padding:1em; font-family:sans; width:29rem}
blockquote.subtweet{width:26rem; padding:0.8em;}
.avatar-tweetsvg{float:left; width:4rem; height:4rem; border-radius:50%;margin-right:.5rem;;margin-bottom:.5rem;border-style: solid; border-width:.1em; border-color:#ddd;}
h1.tweetsvg{margin:0;font-size:15px;text-decoration:none;color:#000;}
h2.tweetsvg{margin:0;font-size:15px;font-weight:normal;text-decoration:none;color:rgb(101, 119, 134);}
p.tweetsvg{font-size:1rem; clear:both;}
hr.tweetsvg{color:#ddd;}
.media-tweetsvg{border-radius:2%; max-width:100%;border-radius: 2%; border-style: solid; border-width: .1em; border-color: #ddd;}
time.tweetsvg{font-size:15px;margin:0;margin-left: 2px;padding-bottom:1rem;color:rgb(101, 119, 134);text-decoration:none;}
.tweetsvg.reply{font-size:15px;color:rgb(110, 118, 125);}
.tweetsvg.footer{display:block;}
</style>
<blockquote class="tweetsvg" xmlns="http://www.w3.org/1999/xhtml">
<a rel="noopener" target="_blank" class="tweetsvg" href="https://twitter.com/Marcus_Noble_/"><img class="avatar-tweetsvg" alt="" src="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/4gKgSUNDX1BST0ZJTEUAAQEAAAKQbGNtcwQwAABtbnRyUkdCIFhZWiAAAAAAAAAAAAAAAABhY3NwQVBQTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9tYAAQAAAADTLWxjbXMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtkZXNjAAABCAAAADhjcHJ0AAABQAAAAE53dHB0AAABkAAAABRjaGFkAAABpAAAACxyWFlaAAAB0AAAABRiWFlaAAAB5AAAABRnWFlaAAAB&#43;AAAABRyVFJDAAACDAAAACBnVFJDAAACLAAAACBiVFJDAAACTAAAACBjaHJtAAACbAAAACRtbHVjAAAAAAAAAAEAAAAMZW5VUwAAABwAAAAcAHMAUgBHAEIAIABiAHUAaQBsAHQALQBpAG4AAG1sdWMAAAAAAAAAAQAAAAxlblVTAAAAMgAAABwATgBvACAAYwBvAHAAeQByAGkAZwBoAHQALAAgAHUAcwBlACAAZgByAGUAZQBsAHkAAAAAWFlaIAAAAAAAAPbWAAEAAAAA0y1zZjMyAAAAAAABDEoAAAXj///zKgAAB5sAAP2H///7ov///aMAAAPYAADAlFhZWiAAAAAAAABvlAAAOO4AAAOQWFlaIAAAAAAAACSdAAAPgwAAtr5YWVogAAAAAAAAYqUAALeQAAAY3nBhcmEAAAAAAAMAAAACZmYAAPKnAAANWQAAE9AAAApbcGFyYQAAAAAAAwAAAAJmZgAA8qcAAA1ZAAAT0AAACltwYXJhAAAAAAADAAAAAmZmAADypwAADVkAABPQAAAKW2Nocm0AAAAAAAMAAAAAo9cAAFR7AABMzQAAmZoAACZmAAAPXP/bAEMABQMEBAQDBQQEBAUFBQYHDAgHBwcHDwsLCQwRDxISEQ8RERMWHBcTFBoVEREYIRgaHR0fHx8TFyIkIh4kHB4fHv/bAEMBBQUFBwYHDggIDh4UERQeHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHv/CABEIADAAMAMBIgACEQEDEQH/xAAZAAADAQEBAAAAAAAAAAAAAAADBAYFAgH/xAAZAQACAwEAAAAAAAAAAAAAAAAAAgEEBQP/2gAMAwEAAhADEAAAAffOxUdHgbUvMUy4HwdVFlujx5zc57TbUlsPUSzzdnBBm1WNqG1qBxa3/8QAIRAAAwACAgICAwAAAAAAAAAAAQIDAAQREwUSFBUhIiT/2gAIAQEAAQUCDNQpNngVojIoGS4yiPUmUfbr2BNZgOdqvZrhdhEmTlARlm/XsGa3xHa7TNJ8HKH8M6rlKO&#43;S3NVQuy/ZNzy1eUs59ifXJatbr6V7VFFnVABoTnTc2fG6lU&#43;LABdP&#43;vyiD6z/xAAfEQABBAICAwAAAAAAAAAAAAACAAEDBAURITEiQVH/2gAIAQMBAT8B2vfabSZNibIDt27V3Hy1fIulWJhlFy&#43;q/lTk4h4U98pYHjJl/8QAGREAAgMBAAAAAAAAAAAAAAAAAAECEBEh/9oACAECAQE/AcrphJiqKQ&#43;M/8QAKBAAAQQCAQMEAQUAAAAAAAAAAQACAxESIVETIjEEMkFhIzNCUmKB/9oACAEBAAY/AmtkiLW1yjlG4C705PbHE57SPOaBwky4tSZxOHzt3yml8RHHcmxmJvaK8ox4w4XyiIgwa5Rkh9Owhvk2j6jpsDjsXymtkjixQp13/VEjnxSJxI1wr/DiBTsjSkwFC9GkPaQm4huXztO0A6/5LRpCV8Fyj60ieSgW/wCdy3kO7zYRrKudIIPbI1mRpgP7l0sbe07CEjmlo&#43;2o9lb9vTQa9nZXjGkwNZhXnFRhrv0hTdfdqX1HU3IePC7jkWuFL//EACEQAQACAgICAgMAAAAAAAAAAAEAESExQVFhcYGRscHR/9oACAEBAAE/IVYyo6hAnjwbrUznGEa31LKv3iWpYjfA2dITVBNBuAIClyC2GVneh2xA41b&#43;0IqXJS4vdhNOfJLxV7w53mYIf06iWFisbpNGPQ3gvqBCwOJyvUIqN0WuZU2SwfrEqEZVbPM6IFYlRD0FMu7gWtjWSnONwcCpSNAWNqyrlxXhhYjwA2vRBE0r8UNTBpTPgiHUONLUZmeyvuMgFrLcwF8Ea/Zf5gLw3q0HUsW8XHuf/9oADAMBAAIAAwAAABC5Vu3&#43;VRF7/8QAHxEAAgEEAgMAAAAAAAAAAAAAAREAITFBUZHwYXHR/9oACAEDAQE/EEpF0&#43;QoqKEDWdBVe9RMkkUxu6NpUqAA8FwGCEc4PIMZ2tU3Yz3zP//EABsRAQEAAwADAAAAAAAAAAAAAAEAESFRQYHw/9oACAECAQE/EMrxo&#43;9sgdROBMTBOiBtmZu3/8QAIBABAQADAAMAAwEBAAAAAAAAAREAITFBUWFxgaGRsf/aAAgBAQABPxC4i&#43;GgolOLqtw/bYoJgCEn5wtowUwi19AYmbqqkSDry5wLRCs1nXbkzs0ZUw1vaGF09t&#43;yBzdxQ6n5B512Z1Zq3wOj9kxom67PNH1u/OsEacVKFJT3/uKkNi/fD73HG2LCkBbb84qGBtH339Ypx90gkKN/eIYJ8FUCOx0c/mbcXYOic/MwpxQF1fdn9fONR1WQ6aN/OMioTFS8v3ICRhBVD64UoFLImqcP6ZXMqqBWw9dwkbUnZm0RPjiUHBbMjAnjz&#43;se5RADe63vEdgFbwhju6GG4aFJcvl0YEiUCSO/ibynyjb7/ofWHYt2ZR/4av3KqXqUEmn7ZlM43qUCNr75iSZK0QCqlFSv1hoKIiDg9mj/ADPfgk20mvlz/9kgICAgICAgICAgICAg" /></a>
<a rel="noopener" target="_blank" class="tweetsvg" href="https://twitter.com/Marcus_Noble_/"><h1 class="tweetsvg">Marcus Noble</h1></a>
<a rel="noopener" target="_blank" class="tweetsvg" href="https://twitter.com/Marcus_Noble_/"><h2 class="tweetsvg">@Marcus_Noble_</h2></a>
<p class="tweetsvg text">I'm writing in C at the <a rel="noopener" target="_blank" href="https://twitter.com/JSOxford/">@JSOxford</a> <a rel="noopener" target="_blank" href="https://twitter.com/hashtag/RTHack">#RTHack</a>. Oh the horror!</p>
<a rel="noopener" target="_blank" class="tweetsvg footer" href="https://twitter.com/Marcus_Noble_/status/586829181226524672">
<time class="tweetsvg" datetime="2015-04-11T09:52:34Z">9:52 AM · Apr 11, 2015</time>
</a>
</blockquote>
</foreignObject>
</svg>

After

Width:  |  Height:  |  Size: 5.3 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 48 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 102 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 117 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 229 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 121 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 202 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 100 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 138 KiB

View File

@ -0,0 +1,42 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="499px" height="236px">
<foreignObject x="0" y="0" width="499px" height="100%" fill="#eade52">
<style>
.tweetsvg{clear:none;font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;}
.tweetsvg.text{font-size: 23px;}
a.tweetsvg{color: rgb(27, 149, 224); text-decoration:none;}
.tweetsvg a { color: #1da1f2; }
blockquote.tweetsvg{margin:1px; background-color:#fefefe; border-radius:2%; border-style:solid; border-width:.1em; border-color:#ddd; padding:1em; font-family:sans; width:29rem}
blockquote.subtweet{width:26rem; padding:0.8em;}
.avatar-tweetsvg{float:left; width:4rem; height:4rem; border-radius:50%;margin-right:.5rem;;margin-bottom:.5rem;border-style: solid; border-width:.1em; border-color:#ddd;}
h1.tweetsvg{margin:0;font-size:15px;text-decoration:none;color:#000;}
h2.tweetsvg{margin:0;font-size:15px;font-weight:normal;text-decoration:none;color:rgb(101, 119, 134);}
p.tweetsvg{font-size:1rem; clear:both;}
hr.tweetsvg{color:#ddd;}
.media-tweetsvg{border-radius:2%; max-width:100%;border-radius: 2%; border-style: solid; border-width: .1em; border-color: #ddd;}
time.tweetsvg{font-size:15px;margin:0;margin-left: 2px;padding-bottom:1rem;color:rgb(101, 119, 134);text-decoration:none;}
.tweetsvg.reply{font-size:15px;color:rgb(110, 118, 125);}
.tweetsvg.footer{display:block;}
</style>
<blockquote class="tweetsvg" xmlns="http://www.w3.org/1999/xhtml">
<a rel="noopener" target="_blank" class="tweetsvg" href="https://twitter.com/Marcus_Noble_/"><img class="avatar-tweetsvg" alt="" src="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/4gKgSUNDX1BST0ZJTEUAAQEAAAKQbGNtcwQwAABtbnRyUkdCIFhZWiAAAAAAAAAAAAAAAABhY3NwQVBQTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9tYAAQAAAADTLWxjbXMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtkZXNjAAABCAAAADhjcHJ0AAABQAAAAE53dHB0AAABkAAAABRjaGFkAAABpAAAACxyWFlaAAAB0AAAABRiWFlaAAAB5AAAABRnWFlaAAAB&#43;AAAABRyVFJDAAACDAAAACBnVFJDAAACLAAAACBiVFJDAAACTAAAACBjaHJtAAACbAAAACRtbHVjAAAAAAAAAAEAAAAMZW5VUwAAABwAAAAcAHMAUgBHAEIAIABiAHUAaQBsAHQALQBpAG4AAG1sdWMAAAAAAAAAAQAAAAxlblVTAAAAMgAAABwATgBvACAAYwBvAHAAeQByAGkAZwBoAHQALAAgAHUAcwBlACAAZgByAGUAZQBsAHkAAAAAWFlaIAAAAAAAAPbWAAEAAAAA0y1zZjMyAAAAAAABDEoAAAXj///zKgAAB5sAAP2H///7ov///aMAAAPYAADAlFhZWiAAAAAAAABvlAAAOO4AAAOQWFlaIAAAAAAAACSdAAAPgwAAtr5YWVogAAAAAAAAYqUAALeQAAAY3nBhcmEAAAAAAAMAAAACZmYAAPKnAAANWQAAE9AAAApbcGFyYQAAAAAAAwAAAAJmZgAA8qcAAA1ZAAAT0AAACltwYXJhAAAAAAADAAAAAmZmAADypwAADVkAABPQAAAKW2Nocm0AAAAAAAMAAAAAo9cAAFR7AABMzQAAmZoAACZmAAAPXP/bAEMABQMEBAQDBQQEBAUFBQYHDAgHBwcHDwsLCQwRDxISEQ8RERMWHBcTFBoVEREYIRgaHR0fHx8TFyIkIh4kHB4fHv/bAEMBBQUFBwYHDggIDh4UERQeHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHv/CABEIADAAMAMBIgACEQEDEQH/xAAZAAADAQEBAAAAAAAAAAAAAAADBAYFAgH/xAAZAQACAwEAAAAAAAAAAAAAAAAAAgEEBQP/2gAMAwEAAhADEAAAAffOxUdHgbUvMUy4HwdVFlujx5zc57TbUlsPUSzzdnBBm1WNqG1qBxa3/8QAIRAAAwACAgICAwAAAAAAAAAAAQIDAAQREwUSFBUhIiT/2gAIAQEAAQUCDNQpNngVojIoGS4yiPUmUfbr2BNZgOdqvZrhdhEmTlARlm/XsGa3xHa7TNJ8HKH8M6rlKO&#43;S3NVQuy/ZNzy1eUs59ifXJatbr6V7VFFnVABoTnTc2fG6lU&#43;LABdP&#43;vyiD6z/xAAfEQABBAICAwAAAAAAAAAAAAACAAEDBAURITEiQVH/2gAIAQMBAT8B2vfabSZNibIDt27V3Hy1fIulWJhlFy&#43;q/lTk4h4U98pYHjJl/8QAGREAAgMBAAAAAAAAAAAAAAAAAAECEBEh/9oACAECAQE/AcrphJiqKQ&#43;M/8QAKBAAAQQCAQMEAQUAAAAAAAAAAQACAxESIVETIjEEMkFhIzNCUmKB/9oACAEBAAY/AmtkiLW1yjlG4C705PbHE57SPOaBwky4tSZxOHzt3yml8RHHcmxmJvaK8ox4w4XyiIgwa5Rkh9Owhvk2j6jpsDjsXymtkjixQp13/VEjnxSJxI1wr/DiBTsjSkwFC9GkPaQm4huXztO0A6/5LRpCV8Fyj60ieSgW/wCdy3kO7zYRrKudIIPbI1mRpgP7l0sbe07CEjmlo&#43;2o9lb9vTQa9nZXjGkwNZhXnFRhrv0hTdfdqX1HU3IePC7jkWuFL//EACEQAQACAgICAgMAAAAAAAAAAAEAESExQVFhcYGRscHR/9oACAEBAAE/IVYyo6hAnjwbrUznGEa31LKv3iWpYjfA2dITVBNBuAIClyC2GVneh2xA41b&#43;0IqXJS4vdhNOfJLxV7w53mYIf06iWFisbpNGPQ3gvqBCwOJyvUIqN0WuZU2SwfrEqEZVbPM6IFYlRD0FMu7gWtjWSnONwcCpSNAWNqyrlxXhhYjwA2vRBE0r8UNTBpTPgiHUONLUZmeyvuMgFrLcwF8Ea/Zf5gLw3q0HUsW8XHuf/9oADAMBAAIAAwAAABC5Vu3&#43;VRF7/8QAHxEAAgEEAgMAAAAAAAAAAAAAAREAITFBUZHwYXHR/9oACAEDAQE/EEpF0&#43;QoqKEDWdBVe9RMkkUxu6NpUqAA8FwGCEc4PIMZ2tU3Yz3zP//EABsRAQEAAwADAAAAAAAAAAAAAAEAESFRQYHw/9oACAECAQE/EMrxo&#43;9sgdROBMTBOiBtmZu3/8QAIBABAQADAAMAAwEBAAAAAAAAAREAITFBUWFxgaGRsf/aAAgBAQABPxC4i&#43;GgolOLqtw/bYoJgCEn5wtowUwi19AYmbqqkSDry5wLRCs1nXbkzs0ZUw1vaGF09t&#43;yBzdxQ6n5B512Z1Zq3wOj9kxom67PNH1u/OsEacVKFJT3/uKkNi/fD73HG2LCkBbb84qGBtH339Ypx90gkKN/eIYJ8FUCOx0c/mbcXYOic/MwpxQF1fdn9fONR1WQ6aN/OMioTFS8v3ICRhBVD64UoFLImqcP6ZXMqqBWw9dwkbUnZm0RPjiUHBbMjAnjz&#43;se5RADe63vEdgFbwhju6GG4aFJcvl0YEiUCSO/ibynyjb7/ofWHYt2ZR/4av3KqXqUEmn7ZlM43qUCNr75iSZK0QCqlFSv1hoKIiDg9mj/ADPfgk20mvlz/9kgICAgICAgICAgICAg" /></a>
<a rel="noopener" target="_blank" class="tweetsvg" href="https://twitter.com/Marcus_Noble_/"><h1 class="tweetsvg">Marcus Noble</h1></a>
<a rel="noopener" target="_blank" class="tweetsvg" href="https://twitter.com/Marcus_Noble_/"><h2 class="tweetsvg">@Marcus_Noble_</h2></a>
<p class="tweetsvg text">"the web is this infinite rabbit hole that you can fall down and discover wonderful things" - <a rel="noopener" target="_blank" href="https://twitter.com/rem/">@rem</a> <a rel="noopener" target="_blank" href="https://twitter.com/hashtag/hf2016">#hf2016</a></p>
<a rel="noopener" target="_blank" class="tweetsvg footer" href="https://twitter.com/Marcus_Noble_/status/789488036002271233">
<time class="tweetsvg" datetime="2016-10-21T15:26:30Z">3:26 PM · Oct 21, 2016</time>
</a>
</blockquote>
</foreignObject>
</svg>

After

Width:  |  Height:  |  Size: 5.4 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 272 KiB

View File

@ -0,0 +1,42 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="499px" height="376px">
<foreignObject x="0" y="0" width="499px" height="100%" fill="#eade52">
<style>
.tweetsvg{clear:none;font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;}
.tweetsvg.text{font-size: 23px;}
a.tweetsvg{color: rgb(27, 149, 224); text-decoration:none;}
.tweetsvg a { color: #1da1f2; }
blockquote.tweetsvg{margin:1px; background-color:#fefefe; border-radius:2%; border-style:solid; border-width:.1em; border-color:#ddd; padding:1em; font-family:sans; width:29rem}
blockquote.subtweet{width:26rem; padding:0.8em;}
.avatar-tweetsvg{float:left; width:4rem; height:4rem; border-radius:50%;margin-right:.5rem;;margin-bottom:.5rem;border-style: solid; border-width:.1em; border-color:#ddd;}
h1.tweetsvg{margin:0;font-size:15px;text-decoration:none;color:#000;}
h2.tweetsvg{margin:0;font-size:15px;font-weight:normal;text-decoration:none;color:rgb(101, 119, 134);}
p.tweetsvg{font-size:1rem; clear:both;}
hr.tweetsvg{color:#ddd;}
.media-tweetsvg{border-radius:2%; max-width:100%;border-radius: 2%; border-style: solid; border-width: .1em; border-color: #ddd;}
time.tweetsvg{font-size:15px;margin:0;margin-left: 2px;padding-bottom:1rem;color:rgb(101, 119, 134);text-decoration:none;}
.tweetsvg.reply{font-size:15px;color:rgb(110, 118, 125);}
.tweetsvg.footer{display:block;}
</style>
<blockquote class="tweetsvg" xmlns="http://www.w3.org/1999/xhtml">
<a rel="noopener" target="_blank" class="tweetsvg" href="https://twitter.com/Marcus_Noble_/"><img class="avatar-tweetsvg" alt="" src="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/4gKgSUNDX1BST0ZJTEUAAQEAAAKQbGNtcwQwAABtbnRyUkdCIFhZWiAAAAAAAAAAAAAAAABhY3NwQVBQTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9tYAAQAAAADTLWxjbXMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtkZXNjAAABCAAAADhjcHJ0AAABQAAAAE53dHB0AAABkAAAABRjaGFkAAABpAAAACxyWFlaAAAB0AAAABRiWFlaAAAB5AAAABRnWFlaAAAB&#43;AAAABRyVFJDAAACDAAAACBnVFJDAAACLAAAACBiVFJDAAACTAAAACBjaHJtAAACbAAAACRtbHVjAAAAAAAAAAEAAAAMZW5VUwAAABwAAAAcAHMAUgBHAEIAIABiAHUAaQBsAHQALQBpAG4AAG1sdWMAAAAAAAAAAQAAAAxlblVTAAAAMgAAABwATgBvACAAYwBvAHAAeQByAGkAZwBoAHQALAAgAHUAcwBlACAAZgByAGUAZQBsAHkAAAAAWFlaIAAAAAAAAPbWAAEAAAAA0y1zZjMyAAAAAAABDEoAAAXj///zKgAAB5sAAP2H///7ov///aMAAAPYAADAlFhZWiAAAAAAAABvlAAAOO4AAAOQWFlaIAAAAAAAACSdAAAPgwAAtr5YWVogAAAAAAAAYqUAALeQAAAY3nBhcmEAAAAAAAMAAAACZmYAAPKnAAANWQAAE9AAAApbcGFyYQAAAAAAAwAAAAJmZgAA8qcAAA1ZAAAT0AAACltwYXJhAAAAAAADAAAAAmZmAADypwAADVkAABPQAAAKW2Nocm0AAAAAAAMAAAAAo9cAAFR7AABMzQAAmZoAACZmAAAPXP/bAEMABQMEBAQDBQQEBAUFBQYHDAgHBwcHDwsLCQwRDxISEQ8RERMWHBcTFBoVEREYIRgaHR0fHx8TFyIkIh4kHB4fHv/bAEMBBQUFBwYHDggIDh4UERQeHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHv/CABEIADAAMAMBIgACEQEDEQH/xAAZAAADAQEBAAAAAAAAAAAAAAADBAYFAgH/xAAZAQACAwEAAAAAAAAAAAAAAAAAAgEEBQP/2gAMAwEAAhADEAAAAffOxUdHgbUvMUy4HwdVFlujx5zc57TbUlsPUSzzdnBBm1WNqG1qBxa3/8QAIRAAAwACAgICAwAAAAAAAAAAAQIDAAQREwUSFBUhIiT/2gAIAQEAAQUCDNQpNngVojIoGS4yiPUmUfbr2BNZgOdqvZrhdhEmTlARlm/XsGa3xHa7TNJ8HKH8M6rlKO&#43;S3NVQuy/ZNzy1eUs59ifXJatbr6V7VFFnVABoTnTc2fG6lU&#43;LABdP&#43;vyiD6z/xAAfEQABBAICAwAAAAAAAAAAAAACAAEDBAURITEiQVH/2gAIAQMBAT8B2vfabSZNibIDt27V3Hy1fIulWJhlFy&#43;q/lTk4h4U98pYHjJl/8QAGREAAgMBAAAAAAAAAAAAAAAAAAECEBEh/9oACAECAQE/AcrphJiqKQ&#43;M/8QAKBAAAQQCAQMEAQUAAAAAAAAAAQACAxESIVETIjEEMkFhIzNCUmKB/9oACAEBAAY/AmtkiLW1yjlG4C705PbHE57SPOaBwky4tSZxOHzt3yml8RHHcmxmJvaK8ox4w4XyiIgwa5Rkh9Owhvk2j6jpsDjsXymtkjixQp13/VEjnxSJxI1wr/DiBTsjSkwFC9GkPaQm4huXztO0A6/5LRpCV8Fyj60ieSgW/wCdy3kO7zYRrKudIIPbI1mRpgP7l0sbe07CEjmlo&#43;2o9lb9vTQa9nZXjGkwNZhXnFRhrv0hTdfdqX1HU3IePC7jkWuFL//EACEQAQACAgICAgMAAAAAAAAAAAEAESExQVFhcYGRscHR/9oACAEBAAE/IVYyo6hAnjwbrUznGEa31LKv3iWpYjfA2dITVBNBuAIClyC2GVneh2xA41b&#43;0IqXJS4vdhNOfJLxV7w53mYIf06iWFisbpNGPQ3gvqBCwOJyvUIqN0WuZU2SwfrEqEZVbPM6IFYlRD0FMu7gWtjWSnONwcCpSNAWNqyrlxXhhYjwA2vRBE0r8UNTBpTPgiHUONLUZmeyvuMgFrLcwF8Ea/Zf5gLw3q0HUsW8XHuf/9oADAMBAAIAAwAAABC5Vu3&#43;VRF7/8QAHxEAAgEEAgMAAAAAAAAAAAAAAREAITFBUZHwYXHR/9oACAEDAQE/EEpF0&#43;QoqKEDWdBVe9RMkkUxu6NpUqAA8FwGCEc4PIMZ2tU3Yz3zP//EABsRAQEAAwADAAAAAAAAAAAAAAEAESFRQYHw/9oACAECAQE/EMrxo&#43;9sgdROBMTBOiBtmZu3/8QAIBABAQADAAMAAwEBAAAAAAAAAREAITFBUWFxgaGRsf/aAAgBAQABPxC4i&#43;GgolOLqtw/bYoJgCEn5wtowUwi19AYmbqqkSDry5wLRCs1nXbkzs0ZUw1vaGF09t&#43;yBzdxQ6n5B512Z1Zq3wOj9kxom67PNH1u/OsEacVKFJT3/uKkNi/fD73HG2LCkBbb84qGBtH339Ypx90gkKN/eIYJ8FUCOx0c/mbcXYOic/MwpxQF1fdn9fONR1WQ6aN/OMioTFS8v3ICRhBVD64UoFLImqcP6ZXMqqBWw9dwkbUnZm0RPjiUHBbMjAnjz&#43;se5RADe63vEdgFbwhju6GG4aFJcvl0YEiUCSO/ibynyjb7/ofWHYt2ZR/4av3KqXqUEmn7ZlM43qUCNr75iSZK0QCqlFSv1hoKIiDg9mj/ADPfgk20mvlz/9kgICAgICAgICAgICAg" /></a>
<a rel="noopener" target="_blank" class="tweetsvg" href="https://twitter.com/Marcus_Noble_/"><h1 class="tweetsvg">Marcus Noble</h1></a>
<a rel="noopener" target="_blank" class="tweetsvg" href="https://twitter.com/Marcus_Noble_/"><h2 class="tweetsvg">@Marcus_Noble_</h2></a>
<p class="tweetsvg text">Breaking news! <a rel="noopener" target="_blank" href="https://twitter.com/ukmadlz/">@ukmadlz</a> is as happy in his tweets lately as Hillary Clinton! <a rel="noopener" target="_blank" href="http://tweetanalysis.marcusnoble.co.uk/user/ukmadlz">tweetanalysis.marcusnoble.co.uk/user/ukmadlz</a> <a rel="noopener" target="_blank" href="http://tweetanalysis.marcusnoble.co.uk/user/hillaryclinton">tweetanalysis.marcusnoble.co.uk/user/hillarycl…</a> <a rel="noopener" target="_blank" href="https://twitter.com/hashtag/hf2016">#hf2016</a></p>
<a rel="noopener" target="_blank" class="tweetsvg footer" href="https://twitter.com/Marcus_Noble_/status/790093114857971712">
<time class="tweetsvg" datetime="2016-10-23T07:30:52Z">7:30 AM · Oct 23, 2016</time>
</a>
</blockquote>
</foreignObject>
</svg>

After

Width:  |  Height:  |  Size: 5.7 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 282 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 188 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 364 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 181 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 284 KiB

View File

@ -9,7 +9,7 @@ summary: "Last Sunday I went to a Code Retreat hosted by [JSOxford](http://jsoxf
Last Sunday I went to a Code Retreat hosted by [JSOxford](http://jsoxford.com/). This was a full day event of coding, split into four sections all based around [Conway's Game of Life](http://en.wikipedia.org/wiki/Conway's_Game_of_Life).
{{> tweet id='485697274174275584' }}
[![](/images/tweets/485697274174275584.svg)](https://twitter.com/tweet/status/485697274174275584)
For those not familiar with Conway's Game Of Life I will be doing another blog post on it shortly. But simply put it is a basic computer model of life.
@ -19,7 +19,7 @@ For the whole day we focused on perfecting code rather than finishing. We didn't
The first round was aimed at getting us familiar with the task at hand. We paired up, as we did with most of the rounds, and tasked with writing out the code we thought would make up the game on pieces of paper. I had paired up with [Dan Pope](https://twitter.com/danielthepope) and we set to work on the writing out our code, *sans-highlighting*.
{{> tweet id='485722324604579840' }}
[![](/images/tweets/485722324604579840.svg)](https://twitter.com/tweet/status/485722324604579840)
Dan focused on a method that calculates the number of neighbours a given cell has while I focused on the main game loop. The absence of an <abbr title="Integrated development environment">IDE</abbr> is a terrible thing so our code was pseudo-JavaScript/pseudo-Python. We had plenty of time to write out the whole game with a bit of time left at the end to go through and fix a couple of potential bugs!
@ -53,7 +53,7 @@ As you can see, the code doesn't actually work as expected, it just does enough
## Lunch
{{> tweet id='485758298755698688' }}
[![](/images/tweets/485758298755698688.svg)](https://twitter.com/tweet/status/485758298755698688)
Not the best lunch in the world but a free lunch is a free lunch.
@ -61,7 +61,7 @@ Not the best lunch in the world but a free lunch is a free lunch.
The word 'Randori' comes from the martial art Aikido and means many people attacking the same person. In the world of programming this lends itself towards paired programming, but with more partners.
{{> tweet id='485774627139223552' }}
[![](/images/tweets/485774627139223552.svg)](https://twitter.com/tweet/status/485774627139223552)
Think one laptop, with one person on the keys, and a group of people gathered around telling them what to code. The person typing had no decision over what to write, their partner is the one "driving" with help from the others stood around. This is taken in turns, swapping every 5 minutes.

View File

@ -15,11 +15,11 @@ This included a whole bunch of Arduinos, some wifi controlled cars, some quad-co
We were given free rain over what we create. Everyone was there to help each other out, in true community spirit.
{{> tweet id='503181282353119232' }}
[![](/images/tweets/503181282353119232.svg)](https://twitter.com/tweet/status/503181282353119232)
The amount of kit made available to us was incredible. 10 Ardunio Experimentation Kits, a whole host of sensors and motors, boxes full of Lego & k'nex and plenty of varied electronics to build whatever we wanted.
{{> tweet id='502792423152836608' }}
[Tweet no longer available]
I didn't have any goal going in. I wasn't sure what I wanted to build. A full blown robot was a bit much so I decided to focus on trying my hand at building ancillary systems.
@ -65,7 +65,7 @@ setInterval(function(){
This sets up the board and the sensor and gets the appropriate value from the sensor upon detecting a change in temperature, which is pretty much constant due to how many decimal places it monitors to. I have set up a function that is called every second and outputs current values recorded from the sensor.
{{> tweet id='503494610464047104' }}
[![](/images/tweets/503494610464047104.svg)](https://twitter.com/tweet/status/503494610464047104)
As you can see, a nice 21°c at the White October offices.
@ -79,7 +79,7 @@ This was good, but it needed something more, something cute. How about an Octoca
So, with a little help of a stepper motor, some k'nex and a GitHub sticker, I had a cute l'il Octocat that greeted people as they passed by my station.
{{> tweet id='503501014792953856' }}
[![](/images/tweets/503501014792953856.svg)](https://twitter.com/tweet/status/503501014792953856)
My final code can be found below, don't just it wasn't meant to be pretty. You may also notice that I also had a light sensor that turned on a super bright LED when it got too dark. I did have to make sure to move the LED away from the sensor on the breadboard though...

View File

@ -12,19 +12,19 @@ Their latest event offering was hackathon going by the name of [Emerging Tech We
The weekend kicked off on Friday with something of a surprise to me...
{{> tweet id='533329134232289281' }}
[![](/images/tweets/533329134232289281.svg)](https://twitter.com/tweet/status/533329134232289281)
[STFC](http://www.stfc.ac.uk) helped sponsor the event. Who knew? (I know I sure didn't).
After the tech mentors gave their presentation & demos we began mingling over drinks and coming up with ideas for teams to work on. When we all came back together we had a large number of good ideas suggested.
{{> tweet id='533355898086129664' }}
[![](/images/tweets/533355898086129664.svg)](https://twitter.com/tweet/status/533355898086129664)
We each had two votes we could give to an idea and then teams were formed out of the top voted. I joined the "Dude, where's my cat?" team. The idea was, we never have any idea where our cats are, wouldn't it be great if we could track them somehow?
{{> picture alt="Dude, where's my cat?" caption="Dude, where's my cat?" url="/images/DudeWheresMyCat.jpg" }}
{{> tweet id='533380993265438720' }}
[![](/images/tweets/533380993265438720.svg)](https://twitter.com/tweet/status/533380993265438720)
So... we discovered pretty quickly that the idea has been done, repeatedly. :disappointed:
@ -32,19 +32,19 @@ So I joined SenseSpace! The ideas was pretty simple, create a gaming platform th
Our final project didn't quite make it that far but we did get enough to convey the basic idea to people.
{{> tweet id='533979636909506560' }}
[![](/images/tweets/533979636909506560.svg)](https://twitter.com/tweet/status/533979636909506560)
As part of our pitch we did a short example video of us playing tag with our devices. I was even able to make use of a pair of Google Glasses to get some pretty cool point-of-view footage.
I thought Google Glass would be a cool platform to be able to actually play our game on (if you ignore the cost for a moment). Unfortunately...
{{> tweet id='533995183248252929' }}
[![](/images/tweets/533995183248252929.svg)](https://twitter.com/tweet/status/533995183248252929)
When it came to Sunday evening it was time for the pitching and judging. There was a lot of goo pitches and a lot of impressive work done in just a couple days.
SenseSpace was getting some very positive feedback.
{{> tweet id='534020893203521536' }}
[![](/images/tweets/534020893203521536.svg)](https://twitter.com/tweet/status/534020893203521536)
There was a lot of good ideas from Queue controlling...
@ -56,7 +56,7 @@ There was a lot of good ideas from Queue controlling...
But my personal favourite, and the one that got my vote during the audience voting, was Team Brush!
{{> tweet id='534030183129702401' }}
[![](/images/tweets/534030183129702401.svg)](https://twitter.com/tweet/status/534030183129702401)
So... the results are.........

View File

@ -12,7 +12,7 @@ When we arrived there were many [examples](https://github.com/jsoxford/RTHackPac
After a brief intro a few pitched some ideas they had for the day and we joined into groups. I joined with [Max](https://twitter.com/omgmog) to work on some real time, web connected hardware using Arduino's etc. I had brought along my awesome [Spark Core](https://store.spark.io/?product=spark-core) which is a mini, cloud connected device. I hooked up a [DHT11](http://www.adafruit.com/products/386) temperature/humidity sensor which had a handy Spark Core library available.
{{> tweet id='586829181226524672' }}
[![](/images/tweets/586829181226524672.svg)](https://twitter.com/tweet/status/586829181226524672)
The data from this sensor was then made available by registering events using the Spark cloud's `publish` function which I then listened for on a server and forwarded all messages to Pusher for use by others. I hooked up a simple web page that would display each of the messages as they came in and cobbled together a [D3](http://d3js.org/) graph that plotted the temperature in real time.
@ -22,26 +22,26 @@ I switched to using a TMP36 temperature sensor, one lacking a handy library. It
But in the end I prevailed!!!
{{> tweet id='586913832121008129' }}
[![](/images/tweets/586913832121008129.svg)](https://twitter.com/tweet/status/586913832121008129)
We gave demos at the end of the day. Mine was short and sweet but some of the others were pretty cool.
[Dan](https://twitter.com/danielthepope) made a cool game where you fight to set the background colour.
{{> tweet id='586901707285725185' }}
[![](/images/tweets/586901707285725185.svg)](https://twitter.com/tweet/status/586901707285725185)
[Ben](https://twitter.com/benjaminbenben) and [Gil](https://twitter.com/LuRsT) made a cool way of displaying what people are tweeting about.
{{> tweet id='586926991020003328' }}
[![](/images/tweets/586926991020003328.svg)](https://twitter.com/tweet/status/586926991020003328)
We also had a Countdown clone, modern minesweep, twitter walls with flamingos, various chat rooms and an interactive [Ben's mind palace](http://www.bensmindpalace.co.uk/rt/).
When all was done and we had wrapped up a few of us headed over to Joe Perks for some well deserved (custom) cocktails.
{{> tweet id='586955640024788992' }}
[![](/images/tweets/586955640024788992.svg)](https://twitter.com/tweet/status/586955640024788992)
This did end up turning into a Ruby hack...
{{> tweet id='586994376812933121' }}
[![](/images/tweets/586994376812933121.svg)](https://twitter.com/tweet/status/586994376812933121)
All-in-all it was a great day! I learned not to muck around with hardware at a JS hack day (although that may change now I've received my [Espruino Pico](http://www.espruino.com/Pico)) and there are some pretty quick and powerful things you can do with technologies like Pusher.

View File

@ -8,11 +8,11 @@ summary: "Last Saturday was [International NodeBots Day](https://github.com/node
Last Saturday was [International NodeBots Day](https://github.com/nodebots/nodebotsday) and [JS Oxford](http://JSOxford.com) was yet again hosting a hack day. We had a really good turn out with about 30 very enthusiastic people showing up. I belive this was, in no small part, due to the fact we had [Gordon Williams](https://twitter.com/espruino), the man behind the [Espruino](http://www.espruino.com/), on hand to help us build some awesome little robot cars made possible by the Expruino Pico and a PCB made especially for the day.
{{> tweet id='624872341206642688' }}
[Tweet no longer available]
I have been looking forward to this event for a long time now. [Last year's NodeBot event](https://blog.marcusnoble.co.uk/2014-08-24-nodebots/) was one of the main reasons I fell in love with JS Oxford. It was lots of fun and really spurred my interest in microcontrollers (Arduinos, Espruinos, etc.). I may have been a little too keen...
{{> tweet id='624607801277427712' }}
[![](/images/tweets/624607801277427712.svg)](https://twitter.com/tweet/status/624607801277427712)
The day started out with an intro from Ryan and Gordon talking about the pre-designed project that was available (or we could make whatever we wanted) and a brief overview of the many components laid out in front of us.
@ -20,7 +20,7 @@ The day started out with an intro from Ryan and Gordon talking about the pre-des
I started off working with [Tom](https://twitter.com/neverontarget) and [Katy](https://twitter.com/katyemoe) following the [instructions](https://github.com/espruino/EspruinoDocs/blob/master/devices/RobotPCB.md) to build a small Espruino Pico car that can be built upon. After shorting out our first board we eventually had something that worked...
{{> tweet id='624913165864857600' }}
[Tweet no longer available]
At this point I decided I wanted to have a go with some of the kit I had brought, specifically one of [these](http://www.ebay.co.uk/itm/Hot-sale-Motor-Smart-Robot-Car-Chassis-Speed-Encoder-Battery-Box-For-Arduino-DDS/391198705451) I got off eBay. The main difference between this and the small cars we'd been building was the motors on this were considerably hungrier, requiring ~5v to work rather than 3.3v. This posed a problem as the pins on the controllable Espruino Pico all output at 3.3v with the only way to get 5v is the use the constant 5v out pin. After some (repeated) chatting with Gordon I was advised to make use of a transistor to have a controllable switch for the 5v power. I used two of these to have individually controllable wheels and threw together some code that would have the car randomly drive around.
@ -58,12 +58,12 @@ function go(){
The end result is quite entertaining...
{{> tweet id='624950235509456896' }}
[Tweet no longer available]
All in all it was a very successfull event with many [awesome](https://twitter.com/danielthepope/status/624969982934392832) [robots](https://twitter.com/roylinesuk/status/625029819550564352) being built.
{{> tweet id='624964081691324416' }}
[![](/images/tweets/624964081691324416.svg)](https://twitter.com/tweet/status/624964081691324416)
With the day over, a robot uprising in effect and a lot of tired people it was time for some celebratory food and drinks at [Joe Perks](http://joeperksandco.co.uk/).
{{> picture url="/images/NodebotsJoePerks.jpg" }}
{{> picture url="/images/NodebotsJoePerks.jpg" }}

View File

@ -8,15 +8,15 @@ summary: "This past weekend I have attended [Hackference](https://twitter.com/ha
This past weekend I have attended [Hackference](https://twitter.com/hackferencebrum) for the second year running. Just like [last year](/2015-10-06-hackathonarama/) it was a 1 day conference followed by a 24 hour hackathon, and just like last year I've learnt a lot I'd like to share.
{{> tweet id='789372106907717632' }}
[![](/images/tweets/789372106907717632.svg)](https://twitter.com/tweet/status/789372106907717632)
The conference was an amazing mix of topics with [plenty of fun](https://twitter.com/Marcus_Noble_/status/789448940966010880) added in. There was a lot of great speakers talking about [bluetooth in the browser](https://twitter.com/Marcus_Noble_/status/789405754318987264), a [new browser](http://servo.org/), [how everything is pretty much going to blow up in our faces](https://twitter.com/JFKingsley/status/790229550076661761) and [something that looks very complex](https://twitter.com/CalEuanHopkins/status/789415734313033728). The day was finished off with an increadible talk from [Remy](https://twitter.com/rem) talking about working on the web, why you don't need to get JavaScript fatigue and lots of inspiring stuff.
{{> tweet id='789488036002271233' }}
[![](/images/tweets/789488036002271233.svg)](https://twitter.com/tweet/status/789488036002271233)
The afterparty, Chillference, was a really good way to chat with lots of people and just relax after a long day. There was drinks, food and boardgames to keep everyone in high spirits as well as a [DJ set done on two GBAs](https://twitter.com/hackferencebrum/status/789540149839400960)!!!
{{> tweet id='789565552662548482' }}
[![](/images/tweets/789565552662548482.svg)](https://twitter.com/tweet/status/789565552662548482)
Last year I [posted some tips](/2015-10-06-hackathonarama/) on surviving an all-night hackathon. I still stand by these tips and encourage people to read them if they plan to attend such an event. This year I went in to it much more prepared. I knew what to expect this time, I had an idea of what my limits would be, I actually had some ideas and I wasn't alone. Going along with someone ([Dan](https://twitter.com/danielthepope) :wave:) made things _much_ less daunting than last year.
@ -24,20 +24,21 @@ Last year I [posted some tips](/2015-10-06-hackathonarama/) on surviving an all-
Even though I had some idea of what I wanted to do I started out hacking at something else to start with. Initially I planned to create an app that would be able to determine the reading age of a user's tweets. This turned out to not be so feasible, mainly due to the brevity of tweets. Instead I made use of the [sentiment analysis API](https://westus.dev.cognitive.microsoft.com/docs/services/TextAnalytics.V2.0/operations/56f30ceeeda5650db055a3c9), part of Microsoft's [Cognitive Services](https://www.microsoft.com/cognitive-services). This ended up being pretty fun and surprisingly simple. All you need to do is send it some text and it'll return a value between 0 and 1 indicating what it belives the sentiment of the text is. I used this to take a look at the current political hopefuls in the US, [Donald](http://tweetanalysis.marcusnoble.co.uk/user/realDonaldTrump) and [Hillary](http://tweetanalysis.marcusnoble.co.uk/user/hillaryclinton), both who (at time of writing) see pretty positive. It'll be interesting to see how that changes after the election. Take a look for yourself: [Tweet Analysis](http://tweetanalysis.marcusnoble.co.uk/) ([Code](https://github.com/AverageMarcus/TweetAnalysis))
{{> tweet id='790093114857971712' }}
[![](/images/tweets/790093114857971712.svg)](https://twitter.com/tweet/status/790093114857971712)
My next two hacks involved using the [emotion API](https://www.microsoft.com/cognitive-services/en-us/emotion-api) from Microsoft's [Cognitive Services](https://www.microsoft.com/cognitive-services) to analyse photos taken by the webcam. The first hack, [CommitEmotion](https://github.com/AverageMarcus/CommitEmotion), is a Git hook that will take a photo with the webcam upon creating a commit. It will then send it to the emotion API for analysis and determine the main emotion being shown. This will then be prepended to the commit message in the form of an emoji. I had hoped to see this be more colourful and random but it seems [I have a pretty neutral face when writing commit messages](https://github.com/AverageMarcus/CommitEmotion/commits/master). I also remixed this hack into another hack, [CheerUp](https://github.com/AverageMarcus/CheerUp), that runs in the background and snaps a webcam photo every five minutes. If it detects that you are sad or angry it'll open up a random [/r/aww](https://www.reddit.com/r/aww/) page to cheer you up.
Finally I went back to my original idea of creating a [crowd sourced tech support](https://github.com/AverageMarcus/CrowdSupport) line using [Nexmo](https://www.nexmo.com/). The idea behind this was that people could ring up a number to register themselves as an expert in a perticular topic then later other people could ring up to ask a question and get put through to one of these experts. This used Nexmo's [Voice API](https://www.nexmo.com/products/voice/) to respond to calls and then perform the connection between two numbers. I didn't end up taking this idea too far as there was a few features I needed that are not yet available from Nexmo (such as having to wait until the robot has finished taking before being able to press a digit or the ability to connect a call after first playing a message to the joining party). All this was fed back to [Phil](https://twitter.com/leggetter) so hopefully these will come in the future.
{{> tweet id='790186086672822272' }}
[![](/images/tweets/790186086672822272.svg)](https://twitter.com/tweet/status/790186086672822272)
When it came to everyone demoing their hacks, and there was a lot, I was blown away by some of the cool things people were able to make. Everything from [calling up to find your next train](https://twitter.com/hackferencebrum/status/790176783987576833) to the ability to [lookup actors in a Netflix video by clicking them](https://twitter.com/hackferencebrum/status/790166819059462145) to [programmable DJing](https://twitter.com/hackferencebrum/status/790175003555815424) and even a [hackable dress](https://twitter.com/hackferencebrum/status/790196227702947840)!!!
All in all it was such an amazing event with so much praise going out to [Mike](https://twitter.com/ukmadlz) and everyone involved in making it happen. I even managed to win a prize from Nexmo for all the feedback I gave them! :grin:
{{> tweet id='790208141497602048'}}
[![](/images/tweets/790208141497602048.svg)](https://twitter.com/tweet/status/790208141497602048)
If you missed out or want to re-live the event then you're in luck. I also threw together a small site where you can jump in to some moments from the weekend. Enjoy! [http://hackference360.marcusnoble.co.uk](http://hackference360.marcusnoble.co.uk)
See you all at the next last Hackference!
See you all at the next last Hackference!

View File

@ -7,20 +7,18 @@ summary: "For the third year running I attended [Hackference](https://2017.hackf
---
For the third year running I attended [Hackference](https://2017.hackference.co.uk/) again. Once again, a 1 day conference followed by a 24 hour hackathon and as always a really great weekend.
{{> tweet id='921291636486885377' }}
[![](/images/tweets/921291636486885377.svg)](https://twitter.com/tweet/status/921291636486885377)
The conference was opened by [Jon Kingsley](https://twitter.com/JFKingsley) talking about device hacking in a fetching cape.
{{> tweet id='921294945125847040' }}
[![](/images/tweets/921294945125847040.svg)](https://twitter.com/tweet/status/921294945125847040)
The day included a wide range of great talks including [an integer that you can't use in JS](https://twitter.com/Lily_2point0/status/921305171338125312), [calls to Ben's mother](https://twitter.com/edent/status/921311892919943169), [a promise of cake](https://twitter.com/jna_sh/status/921313320254222336), [live coding a slide clicker](https://twitter.com/JamieTanna/status/921330784841228288), [tips for releasing your website on Mars](https://twitter.com/cbetta/status/921342143393910789) and [a sobering look at privacy](https://twitter.com/bevishalperry/status/921400192447983617).
{{> tweet id='921403371860439041' }}
[![](/images/tweets/921403371860439041.svg)](https://twitter.com/tweet/status/921403371860439041)
As always, the hackathon was great fun. While I didn't crank out my usual 4+ hacks this year (tiredness hit me hard) I did manage to tinker on a couple things. I managed to put together a fun little "Virtual Stickers" app that let you scan QR codes to unlock stickers that you could place on your screen and create a collage from. This could then be downloaded or shared with others. I also managed to put together a crude Alexa Flash Briefing to tell you what [Digital Oxford](http://digitaloxford.com/) meetups were happening in the next week.
Many great hacks came out of the weekend such as [Tinder for GitHub](https://twitter.com/bevishalperry/status/922094521789435904), [GitHub contributions graph as music](https://twitter.com/bevishalperry/status/922083878889803776), [Kudeliscope](https://twitter.com/danielthepope/status/922097304999522310) and the ever useful [Is It a Bench?](https://twitter.com/danielthepope/status/922095102230753281).
{{> tweet id='921326871056453632' }}
Every year I find more and more friends at Hackference, new and old, many whom I only see at these events. I have so much love for [Mike](https://twitter.com/ukmadlz) for putting on this event and providing me with the chance to connect with so many amazing people.

View File

@ -32,14 +32,14 @@ There has been quite a bit of reaction to this news:
<figure class="center" markdown="1">
[![](https://tweet.cluster.fun/1432720164169076755)](https://twitter.com/QuinnyPig/status/1432720164169076755)
[![](/images/tweets/1432720164169076755.svg)](https://twitter.com/QuinnyPig/status/1432720164169076755)
<figcaption>Corey isn't too impressed with the news</figcaption>
</figure>
<figure class="center" markdown="1">
[![](https://tweet.cluster.fun/1432974196632604676)](https://twitter.com/manuel_zapf/status/1432974196632604676)
[![](/images/tweets/1432974196632604676.svg)](https://twitter.com/manuel_zapf/status/1432974196632604676)
<figcaption>Manuel makes a good point about paying for what we rely on</figcaption>
</figure>
@ -48,7 +48,7 @@ Depending on which side your opinions lie, you might be looking for alternatives
<figure class="center" markdown="1">
[![](https://tweet.cluster.fun/1432800271873323010)](https://twitter.com/Podman_io/status/1432800271873323010)
[![](/images/tweets/1432800271873323010.svg)](https://twitter.com/Podman_io/status/1432800271873323010)
<figcaption>Well timed announcement</figcaption>
</figure>

View File

@ -239,9 +239,11 @@ Shortly after I posted this blog post, [Ian Coldwater](https://twitter.com/IanCo
<figure class="center" markdown="1">
![kubectl run h0nk --rm -it --image alpine --privileged --overrides '{"spec":{"hostPID": true}}' --command nsenter -- --mount=/proc/1/ns/mnt -- /bin/bash](https://tweet.cluster.fun/1545061887246745602)
```
kubectl run h0nk --rm -it --image alpine --privileged --overrides '{"spec":{"hostPID": true}}' --command nsenter -- --mount=/proc/1/ns/mnt -- /bin/bash
```
<figcaption>Timely Tweet by Ian Colwater</figcaption>
<figcaption>Timely Tweet by Ian Colwater (no longer available)</figcaption>
</figure>
## #8 - Admission Webhooks