From dd38d6b9fafd0c90f21383a69abc8397d5e8d65a Mon Sep 17 00:00:00 2001 From: JP Hastings-Spital Date: Tue, 23 May 2023 08:21:26 +0100 Subject: [PATCH] More tumblr posts Also updated accurate timestamps of tumblr posts --- .../facebook-rounded-profile.png | Bin 0 -> 32943 bytes .../bad-rounded-profile-pics/index.md | 28 +++++++++++++++ .../tumblr-musings/bygone-cy-dendsham.md | 17 +++++++++ content/posts/tumblr-musings/campus-bot.md | 16 +++++++++ .../how-developers-brains-work.md | 15 ++++++++ .../low-cost-sensing-with-leds.md | 2 +- .../native-ruby-rar-archive-extractor.md | 2 +- content/posts/tumblr-musings/poi.md | 2 +- .../posts/tumblr-musings/porting-to-ruby.md | 17 +++++++++ .../tumblr-musings/processing-and-ruby.md | 2 +- .../tumblr-musings/ruby-dlc-on-github.md | 27 ++++++++++++++ .../posts/tumblr-musings/short-projects.md | 11 ++++++ .../tumblr-musings/slypis-out-in-the-wild.md | 34 ++++++++++++++++++ content/posts/tumblr-musings/timelapse.md | 2 +- .../tumblr-musings/trash-files-in-ruby.md | 2 +- .../tumblr-musings/twitter-links-in-tumblr.md | 32 +++++++++++++++++ .../tumblr-musings/video-snippet-ideas.md | 3 +- .../where-on-the-web-opengl/index.md | 18 ++++++++++ .../where-on-the-web-opengl/screencap.jpg | Bin 0 -> 62076 bytes .../where-on-the-web-screencast.md | 17 +++++++++ .../tumblr-musings/where-on-the-web/index.md | 4 +-- themes/hello-friend-ng/assets/scss/_main.scss | 25 +++++++++++++ 22 files changed, 266 insertions(+), 10 deletions(-) create mode 100644 content/posts/tumblr-musings/bad-rounded-profile-pics/facebook-rounded-profile.png create mode 100644 content/posts/tumblr-musings/bad-rounded-profile-pics/index.md create mode 100644 content/posts/tumblr-musings/bygone-cy-dendsham.md create mode 100644 content/posts/tumblr-musings/campus-bot.md create mode 100644 content/posts/tumblr-musings/how-developers-brains-work.md create mode 100644 content/posts/tumblr-musings/porting-to-ruby.md create mode 100644 content/posts/tumblr-musings/ruby-dlc-on-github.md create mode 100644 content/posts/tumblr-musings/short-projects.md create mode 100644 content/posts/tumblr-musings/slypis-out-in-the-wild.md create mode 100644 content/posts/tumblr-musings/twitter-links-in-tumblr.md create mode 100644 content/posts/tumblr-musings/where-on-the-web-opengl/index.md create mode 100644 content/posts/tumblr-musings/where-on-the-web-opengl/screencap.jpg create mode 100644 content/posts/tumblr-musings/where-on-the-web-screencast.md diff --git a/content/posts/tumblr-musings/bad-rounded-profile-pics/facebook-rounded-profile.png b/content/posts/tumblr-musings/bad-rounded-profile-pics/facebook-rounded-profile.png new file mode 100644 index 0000000000000000000000000000000000000000..24ce8eccaff1051feebf66d159ed868b8372b277 GIT binary patch literal 32943 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 literal 0 HcmV?d00001 diff --git a/content/posts/tumblr-musings/bad-rounded-profile-pics/index.md b/content/posts/tumblr-musings/bad-rounded-profile-pics/index.md new file mode 100644 index 00000000..99f01c92 --- /dev/null +++ b/content/posts/tumblr-musings/bad-rounded-profile-pics/index.md @@ -0,0 +1,28 @@ +--- +title: Bad Rounded Profile Pics! +date: 2009-05-25T22:23:00+01:00 +draft: false +emoji: 🐤 +images: +tags: + - mac + - glimmerblocker + - facebook + - filter + - from-tumblr +--- + +![A screenshot of a Facebook wall-post with JP "really hates the roundy-edged square profile pics. Feck off!". Comment 1 from Bayan says "Mark is clearly trying to be more twitter- like :/". Comment 2 from JP says "I fixed it! I made a thingie for macs that prevents the roundy corner bits :P will post how-to soon"](facebook-rounded-profile.png) + +Are you pissed off with the rounded profile pics that Facebook has decided to use? If so, just install this glimmer blocker filter and they'll be gone the next time you force-refresh your pages - forever! + +## The catches: + +* **You need a [Mac](http://apple.com/getamac/ads/).** I might build a firefox greasemonkey script sometime soon tho. +* **You need [GlimmerBlocker](http://glimmerblocker.org/).** I'd highly recommend it, its essentially a proxy that removes all the irritating ads on websites for you automatically :) It'll work with every application you use, and you can even make your own rules as to what gets blocked (like this...) + +## How to install: + +All you need to do is go into the GlimmerBlocker Preference pane, go into filters, hit the little cog next to + and - under _filters_ and subscribe to my filter using the following address: http://dropbox.kedakai.co.uk/GlimmerBlocker/Facebook.xml + +Let me know if there are any other annoyances I could add to this filter! diff --git a/content/posts/tumblr-musings/bygone-cy-dendsham.md b/content/posts/tumblr-musings/bygone-cy-dendsham.md new file mode 100644 index 00000000..3cb3f32d --- /dev/null +++ b/content/posts/tumblr-musings/bygone-cy-dendsham.md @@ -0,0 +1,17 @@ +--- +title: bygone [Cy Densham] +date: 2009-05-08T09:05:00+01:00 +draft: false +emoji: 📝 +tags: + - poetry + - cy densham + - language + - from-tumblr +--- + +[kedakai.co.uk](https://poetry.kedakai.co.uk/poem:bygone/)[^1] + +I continue to write small chunks of poetry, under my pen name _Cyrus Densham_. I’ve not really had any literary training (wooh, English GCSE) so they really are just what I think sounds nice. Still, feel free to deconstruct and criticise, but they’re genuinely not written to impress anyone (isn’t that the point?). + +[^1]: Import note: I'm working on recovering my old poetry site from backups. This isn't Shakespeare, but I do hope I find it (and that I'm not too embarassed by what I find!) diff --git a/content/posts/tumblr-musings/campus-bot.md b/content/posts/tumblr-musings/campus-bot.md new file mode 100644 index 00000000..25799538 --- /dev/null +++ b/content/posts/tumblr-musings/campus-bot.md @@ -0,0 +1,16 @@ +--- +title: CampusBot +date: 2009-04-29T23:58:00+01:00 +draft: false +emoji: 🏫 +tags: + - ruby + - code + - Twitter + - campusbot + - from-tumblr +--- + +I’m building a twitterbot to answer questions about things happening on my university campus. Should be fun, I’ve decided to use Ruby and Active Record as a foundation :) + +Might be a few days before anything appears on github, I’ve got a few exams in the near future! diff --git a/content/posts/tumblr-musings/how-developers-brains-work.md b/content/posts/tumblr-musings/how-developers-brains-work.md new file mode 100644 index 00000000..70abc7a4 --- /dev/null +++ b/content/posts/tumblr-musings/how-developers-brains-work.md @@ -0,0 +1,15 @@ +--- +title: How Developers' Minds Work +date: 2009-05-18T23:05:00+01:00 +draft: false +emoji: 🧠 +images: +tags: + - from-tumblr +--- + +_@threedaymonk_: Got home to find both UKIP and BNP leaflets on my doorstep. Feeling nauseous. + +_@threedaymonk_: "British Jobs for British Workers - Because We've Earned the Right!" No, you don't "earn" anything just by being born white to UK parents. + +_@threedaymonk_: Also, the BNP suck at typography. diff --git a/content/posts/tumblr-musings/low-cost-sensing-with-leds.md b/content/posts/tumblr-musings/low-cost-sensing-with-leds.md index de5d44ff..b7842d6f 100644 --- a/content/posts/tumblr-musings/low-cost-sensing-with-leds.md +++ b/content/posts/tumblr-musings/low-cost-sensing-with-leds.md @@ -1,6 +1,6 @@ --- title: Low-cost sensing with LEDs -date: 2009-04-15 +date: 2009-04-15T09:44:00+01:00 draft: false emoji: 💡 tags: diff --git a/content/posts/tumblr-musings/native-ruby-rar-archive-extractor.md b/content/posts/tumblr-musings/native-ruby-rar-archive-extractor.md index 8dffca44..7178403b 100644 --- a/content/posts/tumblr-musings/native-ruby-rar-archive-extractor.md +++ b/content/posts/tumblr-musings/native-ruby-rar-archive-extractor.md @@ -1,6 +1,6 @@ --- title: Native ruby RAR -date: 2009-03-29 +date: 2009-03-29T22:06:00+00:00 draft: false emoji: 🗜️ images: diff --git a/content/posts/tumblr-musings/poi.md b/content/posts/tumblr-musings/poi.md index c2b19201..45232ff6 100644 --- a/content/posts/tumblr-musings/poi.md +++ b/content/posts/tumblr-musings/poi.md @@ -1,6 +1,6 @@ --- title: Fire poi -date: 2009-04-19 +date: 2009-04-19T14:45:00+01:00 draft: false emoji: 🔥 tags: diff --git a/content/posts/tumblr-musings/porting-to-ruby.md b/content/posts/tumblr-musings/porting-to-ruby.md new file mode 100644 index 00000000..092a8d13 --- /dev/null +++ b/content/posts/tumblr-musings/porting-to-ruby.md @@ -0,0 +1,17 @@ +--- +title: Porting to Ruby +date: 2009-05-05T04:08:00+01:00 +draft: false +emoji: ⬇️ +tags: + - ruby + - code + - dlc + - from-tumblr +--- + +I had some time to kill today, so I rewrote the [DLC api](https://www.jdownloader.org/news/blog/x20090501-002-dlcapi-oop) in Ruby. + +If you use [JDownloader](https://jdownloader.org) you’ll know how useful the DLCs are, essentially they allow you to contain all the links from a variety of online hosting sources in one place with any passwords that might be needed. All this data is also kept encrypted to prevent people from poking around inside and stealing the links! + +Now, should you wish to create one of these DLCs there’s a [handy ruby API](https://github.com/jphastings/ruby-DLC) I’ve built thats so simple you can even use it from `irb`! Enjoy. diff --git a/content/posts/tumblr-musings/processing-and-ruby.md b/content/posts/tumblr-musings/processing-and-ruby.md index 660f0eb0..701865fd 100644 --- a/content/posts/tumblr-musings/processing-and-ruby.md +++ b/content/posts/tumblr-musings/processing-and-ruby.md @@ -1,6 +1,6 @@ --- title: Processing and Ruby -date: 2009-04-20 +date: 2009-04-20T23:19:00+01:00 draft: false emoji: 💎 tags: diff --git a/content/posts/tumblr-musings/ruby-dlc-on-github.md b/content/posts/tumblr-musings/ruby-dlc-on-github.md new file mode 100644 index 00000000..67e72d3e --- /dev/null +++ b/content/posts/tumblr-musings/ruby-dlc-on-github.md @@ -0,0 +1,27 @@ +--- +title: Ruby-DLC on Github +date: 2009-05-05T15:20:00+01:00 +draft: false +emoji: 🐙 +tags: + - ruby + - code + - gem + - github + - ruby-dlc + - dlc + - from-tumblr +--- + +[github.com](https://github.com/jphastings/ruby-DLC) + +Ruby-DLC is now available on github, and consequently as a gem! You can install with[^1]: + +```sh +gem sources -a http://gems.github.com +sudo gem install jphastings-dlc +``` + +There’s a [gist](https://gist.github.com/jphastings/106978) explaining how to use the library and the rdoc documentation is still available on my [project page](https://github.com/jphastings/ruby-DLC). Please file an [issue](https://github.com/jphastings/ruby-DLC/issues) if you have any problems with the code, I haven’t checked it thoroughly! + +[^1]: Import note: This syntax is incorrect today, and the code only supports Ruby 1.x, so you'll have to make your own way if you're interested in using this! diff --git a/content/posts/tumblr-musings/short-projects.md b/content/posts/tumblr-musings/short-projects.md new file mode 100644 index 00000000..72fa365a --- /dev/null +++ b/content/posts/tumblr-musings/short-projects.md @@ -0,0 +1,11 @@ +--- +date: 2009-05-17T13:02:00+01:00 +draft: false +emoji: 🫥 +tags: + - code + - life + - from-tumblr +--- + +Browsing through my github projects I’ve noticed I appear to have an idea, work on it for at most a week and then consign it to the ‘uninteresting’ pile… some projects get completed, some don’t. Wish I had more time to complete them, as well as someone to code with! diff --git a/content/posts/tumblr-musings/slypis-out-in-the-wild.md b/content/posts/tumblr-musings/slypis-out-in-the-wild.md new file mode 100644 index 00000000..4eae39ed --- /dev/null +++ b/content/posts/tumblr-musings/slypis-out-in-the-wild.md @@ -0,0 +1,34 @@ +--- +title: Twitter links in Tumblr +date: 2009-05-24T20:52:00+01:00 +draft: false +emoji: 🕵️ +images: +tags: + - ruby + - code + - slypi + - gem + - screen scraping + - from-tumblr +--- + +I get really frustrated when websites don't have APIs. I know its kinda mean to screen scrape, and potentially prevented by ToCs etc, but I built this anyway. I have finals exams to revise for and not enough to procrastinate with! + +So, what is all this SlyPI nonsense about then? + +A SlyPI is a small ([YAML](https://en.wikipedia.org/wiki/YAML) based) settings file that describes how to mechanically traverse a website in order to get a variety of different bits of information. For example, my [tv.com example](https://github.com/jphastings/SlyPI-examples/blob/d6513b87c08b356c2877f546477bdd11b2df5362/slypis/tv.com.slypi) will allow you to search their database for shows by name, then use their 'showid' to find out about that show's episodes, its air times, genre and so on. + +These settings files on their own aren't particularly helpful. Lucky for you I built a [ruby gem](https://github.com/jphastings/SlyPI) that interprets them and creates a class with methods pertaining to that slypi, so you just do: + +```ruby +require 'slypi' +s = SlyPI.new("tv.com.slypi") +s.SearchShows(:q => "Terminator") +``` + +And you'll get a list of shows that have the word _Terminator_ in them. Cool ne? + +So if a SlyPI exists for the site you want to use this is simplicity itself, but why bother making one for a new site? When you screen scrape you run the risk that the site layout will change and everything will be broken. With SlyPI even if it doesyou only need to edit the SlyPI settings file and order is restored. You could feasibly write an application that depended on screen scraping that auto-updated when a newer version of the slypi was available. + +Naturally, people get frustrated at screen scraping, so please remember that you use this at your own risk, and definitely don't attempt to download the entire of a website though it... diff --git a/content/posts/tumblr-musings/timelapse.md b/content/posts/tumblr-musings/timelapse.md index 6c1b4616..872b7ea4 100644 --- a/content/posts/tumblr-musings/timelapse.md +++ b/content/posts/tumblr-musings/timelapse.md @@ -1,6 +1,6 @@ --- title: Timelapse video -date: 2009-03-31T23:00:00+00:00 +date: 2009-03-31T02:10:00+01:00 draft: false emoji: 📼 tags: diff --git a/content/posts/tumblr-musings/trash-files-in-ruby.md b/content/posts/tumblr-musings/trash-files-in-ruby.md index d2b22a39..018ee677 100644 --- a/content/posts/tumblr-musings/trash-files-in-ruby.md +++ b/content/posts/tumblr-musings/trash-files-in-ruby.md @@ -1,6 +1,6 @@ --- title: Trash files in Ruby -date: 2009-03-25 +date: 2009-03-25T22:42:00+00:00 draft: false emoji: 🗑️ images: diff --git a/content/posts/tumblr-musings/twitter-links-in-tumblr.md b/content/posts/tumblr-musings/twitter-links-in-tumblr.md new file mode 100644 index 00000000..c78b49e1 --- /dev/null +++ b/content/posts/tumblr-musings/twitter-links-in-tumblr.md @@ -0,0 +1,32 @@ +--- +title: Twitter links in Tumblr +date: 2009-05-20T21:43:00+01:00 +draft: false +emoji: 🐤 +images: +tags: + - javascript + - code + - tumblr + - twitter + - from-tumblr +--- + +When writing [a post](../how-developers-brains-work) the other day[^1], I wanted to be able to use the tumblr chat where the participants were twitter users. Tumblr doesn’t support HTML in chat usernames, so I wrote a tiny javascript chunk to automatically troll any elements you give it and replace `@twitter-username` with a link to their account. (You can see it in action on the aforementioned post[^2]) You can find the code in [this github gist](https://gist.github.com/jphastings/115054), all you need to do is link in [mootools](https://mootools.net) (you only need to have the selectors part available, for now) and this script in the head of your template like this: + +```html + + +``` + +Then add a small javascript section at the end of your template (inside the **body**): + +```html + +``` + +Where `span.label` is the [CSS Selector](https://css.maxdesign.com.au/selectutorial/) for the elements you wish to scan. You can link to these files from my web server if you like[^3] (check the source of any of these pages), but if you have your own hosting _please_ use that instead, I only have limited bandwidth! + +[^1]: Import note: this post was originally written on Tumblr, which feels like a pretty crucial piece of information for this post to make sense! +[^2]: Sadly you can't! See the footnote above. +[^3]: I doubt that you'd still want to, but that server doesn't exist any more. You can always load directly from the [raw gist](https://gist.githubusercontent.com/jphastings/115054/raw/3a20eb86caf64ae5101d0447bed4ed04f2da0e57/tumblrtweet.js) on Github. diff --git a/content/posts/tumblr-musings/video-snippet-ideas.md b/content/posts/tumblr-musings/video-snippet-ideas.md index 28196df7..877269ec 100644 --- a/content/posts/tumblr-musings/video-snippet-ideas.md +++ b/content/posts/tumblr-musings/video-snippet-ideas.md @@ -1,6 +1,5 @@ --- -title: Video snippet ideas -date: 2009-03-31T22:00:00+00:00 +date: 2009-03-31T00:32:00+01:00 draft: false emoji: 🎥 tags: diff --git a/content/posts/tumblr-musings/where-on-the-web-opengl/index.md b/content/posts/tumblr-musings/where-on-the-web-opengl/index.md new file mode 100644 index 00000000..e196ad96 --- /dev/null +++ b/content/posts/tumblr-musings/where-on-the-web-opengl/index.md @@ -0,0 +1,18 @@ +--- +date: 2009-04-21T22:47:00+01:00 +draft: false +emoji: 🌐 +tags: + - whereontheweb + - ruby + - processing + - map + - geo + - from-tumblr +--- + +![A terrain map of the earth over the Atlantic, showing different sized red dots moving between the UK and other places on earth](./screencap.jpg) + +I improved Where On The Web? with an OpenGL twist (making it a lot faster - tho antialiasing is broken) and by varying the size of the ‘packets’ as they travel around the globe, you can now see roughly how much data is winging its way around the web. + +The [gist containing the sketch](https://gist.github.com/jphastings/98878) has been updated to reflect these changes, have a play! diff --git a/content/posts/tumblr-musings/where-on-the-web-opengl/screencap.jpg b/content/posts/tumblr-musings/where-on-the-web-opengl/screencap.jpg new file mode 100644 index 0000000000000000000000000000000000000000..72d0413243ffe291527d5a2a78488180d7e29f88 GIT binary patch literal 62076 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 literal 0 HcmV?d00001 diff --git a/content/posts/tumblr-musings/where-on-the-web-screencast.md b/content/posts/tumblr-musings/where-on-the-web-screencast.md new file mode 100644 index 00000000..4bff50b6 --- /dev/null +++ b/content/posts/tumblr-musings/where-on-the-web-screencast.md @@ -0,0 +1,17 @@ +--- +date: 2009-04-21T03:16:00+01:00 +draft: false +emoji: 📺 +tags: + - whereontheweb + - ruby + - processing + - code + - map + - geo + - from-tumblr +--- + +{{< vimeo 4252126 >}} + +Oooooh, a screencast? About my latest app? How exciting! diff --git a/content/posts/tumblr-musings/where-on-the-web/index.md b/content/posts/tumblr-musings/where-on-the-web/index.md index 16c00e03..a0fe3d37 100644 --- a/content/posts/tumblr-musings/where-on-the-web/index.md +++ b/content/posts/tumblr-musings/where-on-the-web/index.md @@ -1,6 +1,6 @@ --- title: Where on the Web -date: 2009-04-21 +date: 2009-04-21T02:55:00+01:00 draft: false emoji: 🌍 tags: @@ -19,7 +19,7 @@ tags: Where On The Web is aliiiiive! -I built it, and it appears to work averagely well. You can see the code in [the gist on github](https://gist.github.com/98878) and soon there will be a mini-video online showing you how it all works. In the meanwhile, just enjoy the pretty colours :D +I built it, and it appears to work averagely well. You can see the code in [the gist on github](https://gist.github.com/jphastings/98878) and soon there will be a mini-video online showing you how it all works. In the meanwhile, just enjoy the pretty colours :D I’ve uploaded a snapshot[^1] of the whole window for you to ogle at too. diff --git a/themes/hello-friend-ng/assets/scss/_main.scss b/themes/hello-friend-ng/assets/scss/_main.scss index 49967b99..b5a6ae48 100644 --- a/themes/hello-friend-ng/assets/scss/_main.scss +++ b/themes/hello-friend-ng/assets/scss/_main.scss @@ -539,4 +539,29 @@ hr { sup[id^="fnref:"] a { text-decoration: none; + color: var(--accent); +} + +.footnotes { + font-size: small; + + ol { + list-style: none; + counter-reset: li; + + li::before { + content: counter(li) '.'; + color: var(--accent); + width: 1em; + margin-left: -2em; + margin-right: 0.5em; + text-align: right; + position: absolute; + } + + li { + position: relative; + counter-increment: li; + } + } } \ No newline at end of file