//ruario.flounder.online/gemlog

<name>ruario</name>

<title>Reading a binary watch, tips &amp; tricks</title>

<updated>2023-11-06T00:00:00Z</updated>

<id>tag:ruario.flounder.online,2023-11-06:/gemlog/2023-11-06_Binary_reading_tricks.gmi</id>

<content type="text/plain"># Reading a binary watch, tips &amp; tricks&#xA;&#xA;[7 minute read]&#xA;&#xA;I first learnt binary as a kid at school and on a few (admittedly rare) occasions it has been useful to know it for my day job (I work in IT). However these days, it is primarily just something I use to read my binary watch. 😉&#xA;&#xA;=&gt; 2021-11-23_Binary_wrist_watch.gmi Binary wrist watch&#xA;&#xA;What I have found after wearing that watch on and off over a couple of years is that it rapidly got easier to read, at least for the range of numbers found on clocks (&#39;1-59&#39;).&#xA;&#xA;## How to read a binary watch&#xA;&#xA;On my watch, the top row shows the current hour. The LEDs here represent &#39;8&#39;, &#39;4&#39;, &#39;2&#39; and &#39;1&#39; (read from left to right). The bottom row displays the current minute and the LEDs represent &#39;32&#39;, &#39;16&#39;, &#39;8&#39;, &#39;4&#39;, &#39;2&#39; and &#39;1&#39;. In short, you just need to add up all the lit LEDs, to find the decimal numbers representing the hour and minute.&#xA;&#xA;Once you have the basics down, here are a handful of tricks and shortcuts that are useful for quickly reading a binary watch. &#xA;&#xA;ℹ [In this guide I will represent lit LEDs as 1 and unlit LEDs as 0. For the most part I will just list the right-most positions (assume the rest are unlit).]&#xA;&#xA;## Numbers that end with 0 are even&#xA;&#xA;Or put another way, numbers that end with 1 are odd.&#xA;&#xA;```&#xA;  1 = 1&#xA; 10 = 2&#xA; 11 = 3&#xA;100 = 4&#xA;```&#xA;&#xA;Most people will see this immediately but it is worth keeping this in mind as it is handy as a quick check that there might be something wrong with your calculation, i.e. if the number you calculate is even but what you see ends with 1… you did it wrong! 😉&#xA;&#xA;## Doubling patterns&#xA;&#xA;This is also obvious when you really think about it but something that I had not noticed until I started using the watch. The point here is that all patterns of smaller numbers double when moving one step to the left. &#xA;&#xA;Consider a number like 11. That is fairly easy to read as &#39;3&#39;. Once you understand this any number containing that pattern is also pretty obvious.&#xA;&#xA;```&#xA;   110 = 6&#xA;  1100 = 12&#xA; 11000 = 24&#xA;110000 = 48&#xA;```&#xA;&#xA;Similarly 101 is &#39;5&#39; and so&#xA;&#xA;```&#xA;  1010 = 10&#xA; 10100 = 20&#xA;101000 = 40&#xA;```&#xA;&#xA;111 is &#39;7&#39; and thus&#xA;&#xA;```&#xA;  1110 = 14&#xA; 11100 = 28&#xA;111000 = 56&#xA;```&#xA;&#xA;Since 1001 is &#39;9&#39;&#xA;&#xA;```&#xA; 10010 = 18&#xA;100100 = 36&#xA;```&#xA;&#xA;ℹ [If you recall the shortest version of a pattern, you can just double it as it moves left by each position.]&#xA;&#xA;## Memorise frequently used patterns/numbers&#xA;&#xA;In addition to quickly memorising many of the small patterns from use (and their multiples), you might want to remember commonly used times, e.g 1111 [15], 11110 [30] and 101101 [45] (for the half and quarters of the hour). That last one is also interesting looking, so easy to recall.&#xA;&#xA;## Always work out the minutes first&#xA;&#xA;ℹ [More often than not you know the hour already, additionally it is usually a smaller number.]&#xA;&#xA;Many LED based binary watches give you a few seconds (after a keypress) to calculate the time before all the LEDs dim. If you work out the minute first, that will often be enough. And with the more limited number of possible times for the hour, you may read it at a glance anyway (as you will soon have all those positions memorised).&#xA;&#xA;## One less&#xA;&#xA;Numbers such &#39;3&#39;, &#39;7&#39;, &#39;15&#39;, &#39;31&#39; are really easy to spot because they just solid blocks of &#39;1s&#39;.&#xA;&#xA;```&#xA;   11 = 3&#xA;  111 = 7&#xA; 1111 = 15&#xA;11111 = 31&#xA;```&#xA;&#xA;Compare those to the next number in sequence to see what is going on.&#xA;&#xA;```&#xA;100 = 4&#xA;011 = 3&#xA;```&#xA;&#xA;```&#xA;1000 = 8&#xA;0111 = 7&#xA;```&#xA;&#xA;```&#xA;10000 = 16&#xA;01111 = 15&#xA;```&#xA;&#xA;```&#xA;100000 = 32&#xA;011111 = 31&#xA;```&#xA;&#xA;The number immediately proceeding a major number like &#39;2&#39;, &#39;4&#39;, &#39;8&#39;, etc. will have a stack of 1s to the right. &#xA;&#xA;Another way to think of that is that you just invert the numbers from the right-most 1 to decrease the number by &#39;1&#39;.&#xA;&#xA;```&#xA;101100 = 44&#xA;101011 = 43&#xA;```&#xA;&#xA;## Calculate unknown numbers using ones you already know&#xA;&#xA;Take a number like 110111. Initially one might work that out with lots of small additions.&#xA;&#xA;```&#xA;1    1    0    1    1    1&#xA;32 + 16 + 0  + 4  + 2  + 1 = 55&#xA;```&#xA;&#xA;Not hard but it takes a little time to do in your head. I would tend to look at this other ways. There are two overlapping patterns I instantly recognise here, 110000 is &#39;48&#39; and 000111 is &#39;7&#39;, so &#39;48+7&#39; = &#39;55&#39;. Or perhaps, I would just count back from a higher number I recognise. I know 111000 is &#39;56&#39;. 110111 is one less (if you invert the numbers from the right-most 1). &#xA;&#xA;If you look at binary numbers frequently and already know 111000 (I mentioned it above), you can spot that last one in an instant.&#xA;&#xA;## Final thoughts&#xA;&#xA;These are just a few of the tricks I have picked up to show how you can interpret binary in decimal terms more easily (without calculating every number). For the most part I can now read my binary watch pretty quickly. Often at a glance and in the worst case, usually within a couple of seconds. No that is not as fast as a normal digital or analog but quick enough to make it useable and useful. I also suspect that if I used it more (I rotate through a bunch of odd watches) I could reliably match the speed of (accurately) reading an analog clock. You do after all find yourself just memorising a bunch of positions (through regular use), so the amount of calculation you have to do, rapidly drops.&#xA;&#xA;I will add however that there is one problem that occasionally catches me out with binary watches that use LEDs specifically. In pitch black it can sometimes be hard to pick out the positions of the off state LEDs. Thus a number like 11 can look similar to 110 (they both just look like two lit LEDs that are next to each other). And that my friends is how I once woke at 06:00 in the morning and started to make coffee and prepare for the day, only to later realise it was actually 03:00! 😆&#xA;&#xA;⁂&#xA;&#xA;[✍ 2023-11-06 @14:06 +0100]&#xA;&#xA;## Bonus trick for approximation&#xA;&#xA;Here is another small trick that was quite handy when I first started using the watch (and was much slower at calculation). &#xA;&#xA;You can sort of use a binary watch for glancing approximation (similar to how many use analog watches) if you only need to know roughly where you are in the hour, rather than the absolute minute. This is usually &#34;good enough&#34; for upcoming meetings or events, which tend to fall on the hour or half hour. &#xA;&#xA;The minute line is 6 LEDs long but you only need look at the left-most two to do this. As an added bonus, if you have an event up coming you will often already know the current hour anyway. In that case you can ignore the hour line entirely and just focus on these first two LEDs on the minute line.&#xA;&#xA;If neither are lit you are within the first quarter of the hour.&#xA;&#xA;```&#xA;00[…] = &#39;0-15&#39; mins&#xA;```&#xA;&#xA;If only the right one is lit you are over the first quarter but most likely not half way through the hour.&#xA;&#xA;```&#xA;01[…] = &#39;16-31&#39; mins&#xA;```&#xA;&#xA;If only the left one is lit you are over half way through the hour but probably not into the last quarter (or only just!).&#xA;&#xA;```&#xA;10[…] = &#39;32-47&#39; mins&#xA;```&#xA;&#xA;If both are lit you are over the final quarter and most likely within the last 10 minutes of the hour.&#xA;&#xA;```&#xA;11[…] = &#39;48-59&#39; mins&#xA;```&#xA;&#xA;[✍ 2023-11-07 @09:04 +0100]&#xA;&#xA;ℹ [In the real world you will not see these two LEDs in isolation. You will still have a vague awareness of the others, even if you do not attempt to properly calculate them. More lights (particularly those close to the two right-most LEDs) will give you a rough feeling for how close you are to the crossover times.]&#xA;&#xA;⁂&#xA;&#xA;=&gt; ../contact.gmi 📝 Comment&#xA;=&gt; . 🔙 Gemlog index&#xA;=&gt; .. 🔝 Capsule index&#xA;&#xA;</content>

<link href="//ruario.flounder.online/gemlog/2023-11-06_Binary_reading_tricks.gmi" rel="alternate"></link>

<summary type="text/plain"></summary>

<title>How to use the AM/PM notation when talking about time</title>

<updated>2023-10-31T00:00:00Z</updated>

<id>tag:ruario.flounder.online,2023-10-31:/gemlog/2023-10-31_How_to_use_AMPM.gmi</id>

<content type="text/plain"># How to use the AM/PM notation when talking about time&#xA;&#xA;[5 min read]&#xA;&#xA;In the US (and a few other places) the 24 hour clock is not commonly used or understood by the average person. When context cannot distinguish between two similarly numbered hours from different parts of the day, AM or PM is typically appended. However, if you find AM/PM confusing, then the following might help when communicating with others who are not familiar with the 24 hour clock. It is also handy for reading any times written this way (e.g. plane, train or bus times).&#xA;&#xA;## The short version&#xA;&#xA;* Consider the day divided into two, equal, twelve hour chunks, the first called ‘AM’ and the second ‘PM’.&#xA;* It might help to think ‘A is before P’ (alphabetically), if you struggle to recall the order.&#xA;* These sections start with ‘12’ as the zero hour, thus: 12AM, 1AM, 2AM … 10AM, 11AM; followed by 12PM, 1PM, 2PM … 10PM, 11PM&#xA;* When talking about the ‘12:00’ hours themselves, it is preferable to avoid the AM/PM labels altogether and just say ’12 midnight’ or ’12 noon’ (midday).&#xA;&#xA;To expand on that last point, if you need to say 12 noon plus some arbitrary amount of minutes, say something like, ‘12:30 in the afternoon’. For times immediately following midnight, things like ’20 minutes past midnight’ (00:20) or ‘quarter to 1 in the morning’ (00:45) also work well and should be clearly understood by the majority of people.&#xA;&#xA;## Why AM/PM is difficult&#xA;&#xA;AM/PM is confusing for a couple of reasons. Firstly while common in the English speaking world, the acronym is not in English but rather in Latin, thus making it hard for people to recall. Secondly the actual meaning makes no logical sense in relation to the ’12’ hours.&#xA;&#xA;AM = Ante Meridiem (before noon [midday])&#xA;PM = Post Meridiem (after noon [midday])&#xA;&#xA;So here is the problem in a nutshell. At exactly 12:00 midnight you could arguably be both AM or PM depending on which noon you refer to (the previous or the forthcoming), since they are equidistant from a time perspective. While at exactly 12:00 midday, you are definitively neither AM nor PM because it is precisely ‘noon’.&#xA;&#xA;The most common way to write these is with midnight as 12AM and noon/midday as 12PM¹. The reason for this is that while 12:00 midday is neither before or after noon, the rest of the minute and second subdivisions of that hour are clearly PM (after noon) and thus you might as well give 12:00 midday the PM label as well, to keep it in same group. It’s not logically, 100% correct but it is the least bad choice between AM and PM when neither really work. Similarly 12 midnight cannot be categorised cleanly but 12:11 is obviously AM (before noon) in relation to the closest noon (the one happening on the same day). So again midnight as 12AM is arguably the least bad option.&#xA;&#xA;I think it is worth knowing the AM/PM time notation if you interact with people from the US (or others that use this system) or if you are planning a holiday there. It helps to be able to read things like timetables or digital clocks that use the AM/PM notation. However I would strongly suggest you avoid saying AM/PM alongside ’12’ when talking to other people. The point here after all is to be more precise, not more ambiguous, yet you will occasionally find people who have grown up with AM/PM notation who have a different interpretation of the correct label for the ’12’ hours. That might be because they learnt the meaning and found another argument to favour the other option, or maybe because it just ‘feels weird’ to think of 12 as the starting hour. No matter, if you simply say ’12 noon’ or ’12 midnight’ you should be understood.&#xA;&#xA;## AM/PM versus the 24 hour clock&#xA;&#xA;I just wanted to end this stating, this is not a promotional piece trying to encourage the use of AM/PM. I personally prefer the 24 hour clock. The post is just to give tips on how to read and express time with AM/PM in case you ever needed to. That is all, don’t read into it more than that or accuse me of promoting some AM/PM agenda! 😜&#xA;&#xA;⁂&#xA;&#xA;¹ Some people will state I am wrong and indeed you can easily find references to midnight being labelled as 12PM online 😆. I am just stating the ‘most common’ way to interpret these two times, so you can have some level of confidence when reading a railway timetable. And in all honesty it does not matter if you actually agree with me. This just re-emphasises the point that you should avoid using AM/PM at all when talking about ’12’, if you can. 😉&#xA;&#xA;⁂&#xA;&#xA;=&gt; ../contact.gmi 📝 Comment&#xA;=&gt; . 🔙 Gemlog index&#xA;=&gt; .. 🔝 Capsule index&#xA;</content>

<link href="//ruario.flounder.online/gemlog/2023-10-31_How_to_use_AMPM.gmi" rel="alternate"></link>

<summary type="text/plain"></summary>

<title>Sbanken/DNB a.k.a. ApplePay support workaround</title>

<updated>2023-05-29T00:00:00Z</updated>

<id>tag:ruario.flounder.online,2023-05-29:/gemlog/2023-05-29_ApplePay_on_accounts_that_dont_support_it.gmi</id>

<content type="text/plain"># Sbanken/DNB a.k.a. ApplePay support workaround&#xA;&#xA;I started thinking about all this due to recent changes in the banking market here in Norway. However, if that is of no interest to you, skip straight to § &#34;The workaround&#34;.&#xA;&#xA;## Sbanken and DNB&#xA;&#xA;Recently in Norway one of most interesting banks, Sbanken (formerly Skandiabanken) was bought by their largest competitor, DNB. This worried a lot of Sbanken customers as DNB is generally seen as dinosaur in the Norwegian banking world. The perception (right or wrong) is that only old people would select DNB and anyone else who uses it is either a fool or joined a different bank initially, only for DNB to later buy it. 😆&#xA;&#xA;Sbanken on the other hand has been innovative and really shaken up the market (indeed it was the first online-only bank in Norway back in 2000) and for the 20+ years of their existence they have won numerous (mostly back-to-back) awards for customer satisfaction.&#xA;&#xA;When DNB bought Sbanken it was promised they would not alter it for the worse and that it would continue to run &#34;semi&#34; independent. It could still innovate but would also have the backing of a banking behemoth. So the best of both worlds, right… right? However the first major change that many customers noticed was dropping of support for ApplePay. This is a truly massive deal in rich Norway because iOS has a gigantic 65% marketshare for mobile operating systems, as I write this. [Yes… you read that right!]&#xA;&#xA;=&gt; https://gs.statcounter.com/os-market-share/mobile/norway Mobile Operating System Market Share Norway [Statcounter]&#xA;&#xA;### Politics and competition&#xA;&#xA;Why would they do this? Well DNB has never supported ApplePay via their own bank. If you look on their page explaining why, the key bit for me is this (roughly translated) comment,&#xA;&#xA;&gt; Apple is the only provider to deny other mobile wallets access to the NFC chip in their devices. &#xA;&#xA;=&gt; https://www.dnb.no/dnbnyheter/no/din-okonomi/dnb-apple-pay Derfor tilbyr vi ikke Apple Pay til våre kunder [DNB, in Norwegian]&#xA;&#xA;Clearly DNB believes this to be anti-competitive. Indeed DNB, along with a bunch more big European banks have raised this very issue with the EU competition authorities. &#xA;&#xA;And if you know anything about DNB you can also see why this would be close to DNB&#39;s heart. While their detractors might mock them for lack of innovation, DNB founded a mobile payment solution themselves, called &#34;Vipps&#34;. Now Vipps is not a complete rival and replacement to ApplePay in the way say Google Pay is. How and where you use it is not identical to ApplePay. It is not (currently) great for very fast, in-store payments (where Apple Pay and Google Pay excel) but it works nicely for online (Nordic based) services, public transport payment, restaurants that use web based menu ordering (which was particularly popular during the pandemic), and it really shines when used for person to person transactions and donations, or with small market stalls and the like (that do not have full payment terminals). So whilst not identical, there is some overlap and Vipps is also very widely used in the Nordics (75% of Norway&#39;s population has the app installed). In addition if Vipps had access to the NFC chip during payments they might evolve to be more of a direct competitor.&#xA;&#xA;=&gt; https://www.dnb.no/dagligbank/betaling/vipps Vipps - Norges mest populære betalingsapp [DNB, in Norwegian]&#xA;=&gt; https://vipps.no/om-oss/vipps-i-tall/ Vipps i tall [Vipps, in Norwegian]&#xA;=&gt; https://www.dnb.no/en/business/daily-banking/payments/vipps Vipps payment solutions [DNB, in English]&#xA;&#xA;So is this only about Vipps? Yes and no. No doubt that is a very large part of the reason but it is worth noting that DNB is not blocking all Vipps rivals. They do support Google Pay, Samsung Pay, Garmin Pay and Fitbit Pay. In addition Vipps was made an independent company in 2017 and later merged with similar companies in Denmark and Finland, such that it is now jointly owned by multitude of banks. However… DNB still owns just over 50%. 😉&#xA;&#xA;=&gt; https://www.dnb.no/dnbnyheter/no/din-okonomi/over-100-banker-satser-sammen-pa-vipps Over 100 banker satser sammen på Vipps [DNB, in Norwegian]&#xA;&#xA;So you can see DNB&#39;s gripe and maybe… just maybe… they have something of a point. And given their size DNB has been able afford to refuse to work with Apple&#39;s closed solution. Yes they obviously lost some customers to those that did support ApplePay but as the biggest banking player in Norway, they clearly have been able to continue to turn a profit.&#xA;&#xA;As this stage if you were a DNB customer and you stuck with them despite the lack of ApplePay, you probably fell into one of three categories:&#xA;&#xA;* You were completely oblivious to all of this&#xA;* You knew about it but don&#39;t have an Apple phone or did not care enough to switch banks over it&#xA;* You supported DNB&#39;s position&#xA;&#xA;On the other hand Sbanken customers may well have chosen their bank in part because they supported ApplePay. Indeed it is feasible that they may even have left DNB and gone to Sbanken specifically because of this feature. Thus as you can rightly imagine, many Sbanken customers are furious and feel justified in their argument that, &#34;they knew DNB would ruin it!&#34;.&#xA;&#xA;=&gt; https://www.bytt.no/erfaringer/bank/skandiabanken Comparison/Review site showing the recent change in satisfaction amongst Sbanken customers [Bytt.no, in Norwegian]&#xA;&#xA;## The workaround&#xA;&#xA;So if you use a bank that does not support ApplePay (or did and has dropped it, like Sbanken), and this is/was a key banking feature for you, what are your options? Obviously you could switch banks but… that is a hassle. The other obvious option would be to keep your main accounts where they are but use a different card, such as a credit card (from a rival bank) for all your ApplePay payments and just remember to pay off in full each month to avoid any fees. However in Norway, where in my experience the general public is credit card adverse (compared to say the UK or US), that is an outright horrifying solution. &#xA;&#xA;So no, forget those two, I have another solution. A service to proxy the payment over to your debit card, specifically the &#34;Curve App&#34;. Firstly for those not familiar, let me explain what Curve is and what it is supposed to be for.&#xA;&#xA;### What is Curve?&#xA;&#xA;Curve provides a way for people who like or need to use multiple credit and debit cards to only to carry one card (or perhaps none if they use ApplePay, Google Pay, etc.). Basically they provide a card (or just virtual card number), which you use to pay as normal. Via their app the payment is then diverted to one of your &#34;real cards&#34; from any of your financial providers. You can either switch which underlying card will get charged manually (in the app) or more interestingly setup various rules, e.g. all payments for &#34;groceries&#34;, should go to card A but everything else card B. Alternatively, any payment up to 200€ should go to card X but anything higher should go to Y. Also you can have fallbacks like, if a card fails redirect it on the fly to card Z (which they call &#34;anti embarrassment mode&#34;). They can also do fancy stuff like switch the underlying provider for a payment days after you made the payment.&#xA;&#xA;Curve operates on a freemium model. Their simplest account has no ongoing costs (other than a one off payment for the Curve card) but can only redirect through two real cards, and has limited rules. Their more fancy options have monthly costs and in addition to allowing for lots of underlying cards and rules, come with further bundled differentiators, like forms of insurance and airport lounge access.&#xA;&#xA;=&gt; https://www.curve.com/how-it-works/ Curve - How it works&#xA;&#xA;### How does this help with ApplePay?&#xA;&#xA;So here is the clincher. The Curve card itself supports ApplePay and for many people that is all they need. So you get the free account (yes you pay a one off fee for the initial card) put in your (non ApplePay) debit card in the Curve app and then add your Curve card number to ApplePay. When you pay the payment goes like this &#34;Curve -&gt; Your normal card -&gt; your bank&#34; and that is it!&#xA;&#xA;### Gotchas&#xA;&#xA;Ok, there are some complications. 😉&#xA;&#xA;Firstly Curve is a little bit &#34;tricksy&#34; (read: &#39;dark patterns&#39;). When you sign up it is intentionally non-obvious how you select the free version. They will try and place you on &#34;Curve X&#34;, the cheapest of their paid options. If this happens to you just go into the app afterwards, click on &#34;Account -&gt; Manage your plan&#34; and downgrade before the first month is up.&#xA;&#xA;=&gt; https://en.wikipedia.org/wiki/Dark_pattern Dark Patterns [Wikipedia]&#xA;&#xA;Secondly be aware that all payments that go via Curve will be marked with &#34;Crv*&#34; in front (e.g. &#34;Crv* Netflix&#34; will show on your statement if you used it to pay for Netflix) and they will all have the payment category &#34;e-commerce&#34; rather than their real category. If your online banking allows you to automatically look at spending by category this will mess it up. You can go into the Curve app and see everything labelled and categorised correctly there but of course this is one extra step. On the flip side if you actually did use Curve as intended this is potentially fine as you can see all your card spending organised correctly across different banks in one place (inside the Curve app).&#xA;&#xA;Finally there is the obvious problem of having one more app and one more thing to manage in your life. Though for the most part when used like this it is a setup once and can be (largely) forgotten about afterwards.&#xA;&#xA;One last thing. I have explained this as best I understand it and with my own limited testing. I have also avoided giving your an affiliate link, so you know I am not just trying to sell you something for my own benefit but a disclaimer, you should do more of your own research. Banking is important and I may have missed something or Curve could change their options or try and trip you up (you will notice I mentioned dark patterns above). If this does not work for you or worse causes you problems I accept no responsibility. I am just trying to help out but I fully admit I am no expert!&#xA;&#xA;Anyway, that is it for now. I hope this was useful to someone or at least mildly interesting. &#xA;&#xA;⁂&#xA;&#xA;[✍ 2023-05-30 16:20 +0200] A point was raised by one of the people who read this. If Curve is used they will have access to all transaction data that you make with via their card. You are trusting them as you would any other bank or financial institution not to share this or use it in some nefarious way. Arguably you may be trusting them more than any one bank if you were to add all your card numbers into their system, since then they would see all your spending across multiple financial institutions. They will also know all your card numbers. Consider that you are paying for some convenience with potential additional loss of privacy.&#xA;&#xA;Here are some pages and posts by Curve on this matter:&#xA;&#xA;=&gt; https://www.curve.com/en-gb/legal/privacy/ Curve UK &amp; EEA Privacy Policy&#xA;=&gt; https://help.curve.com/what-are-you-doing-with-my-data-SyhqBdhUd Curve Help - What are you doing with my data?&#xA;=&gt; https://help.curve.com/are-my-details-safe-with-curve-SJp5Hd3IO Curve Help - Are my details safe with Curve?&#xA;&#xA;⁂&#xA;&#xA;=&gt; ../contact.gmi 📝 Comment&#xA;=&gt; . 🔙 Gemlog index&#xA;=&gt; .. 🔝 Capsule index&#xA;</content>

<link href="//ruario.flounder.online/gemlog/2023-05-29_ApplePay_on_accounts_that_dont_support_it.gmi" rel="alternate"></link>

<summary type="text/plain"></summary>

<title>Decimal watch, short update</title>

<updated>2023-02-28T00:00:00Z</updated>

<id>tag:ruario.flounder.online,2023-02-28:/gemlog/2023-02-28_decimal_watch_update.gmi</id>

<content type="text/plain"># Decimal watch, short update&#xA;&#xA;=&gt; 2022-12-15_decimal_watch.gmi My previous post on getting a decimal watch&#xA;&#xA;I got my watch a couple of weeks after my previous posting and I have been wearing it pretty much ever since. I like it and for the most part both the watch and my expectations of how I would personally use it have been valid but…&#xA;&#xA;## More complexity than I had expected&#xA;&#xA;Of course it is not exactly as I would have imagined. I had meant to only work with decimal time directly when using the watch. My plan was to memorise a handful of decimal equivalents to my regularly daily events and just use the watch to compare how close I was to them throughout the day. As a secondary usage the watch gives me something to glance at and see the day pass without really caring about the specific time. &#xA;&#xA;My assumption was that the above two use cases would account for the overwhelming majority of my watch usage. The other use case I imagined was ad hoc times, like catching a bus and needing to compare against a time table that uses traditional time. Here I had already decided I would just use other time sources, like pulling out my phone (or looking at nearby clocks). I was OK with this because I suspected it would not do it often.&#xA;&#xA;I knew others would ask me the time but I had not predicted how frequently that would happen. My wife&#39;s watch for example is broken and since she is picky about the style of watch she wears (and has yet to find something she &#39;loves&#39;), she tends to just ask me the time. This means either pulling out my phone (which she could also do) or doing a quick calculation. Generally I have started to opt for the latter. So I am actually doing conversions far more often than I hoped.&#xA;&#xA;## Converting between time formats&#xA;&#xA;I should say however that I am not doing the real/full calculation¹ here but rather using some tricks to do approximations. Certain times in the day have very obvious equivalents, e.g the four daily quarters of the day at 00, 06, 12, 18 on a 24 hour clock neatly match to 0, 2:50, 5, 7:50 in decimal time (I have also memorised a bunch of additional equivalents). With those as a base I can roughly work out other times. 10 decimal minutes is 14.4 standard minutes, which I tend to round up in my head to 15. So if I look at my watch and it shows 8:00 [decimal time] that is 5 markers after 7:50, which would be roughly 1 hour and 15 normal minutes after the final quarter of the day… or 19:15 (7:15PM) in traditional time (with the proper calculation it would actually be 19:12). Using simple tricks like that I can usually guess the time to within 5 minutes or so. That is often &#34;good enough&#34;.&#xA;&#xA;I am in two minds as to if this is a good thing however. I would like to just keep things simple and use the watch for myself using only its native time format. On the other hand a bit of thinking is probably good for me. 🤷&#xA;&#xA;Anyway, this is just a small progress update. Let&#39;s see how things pan out as I wear this longer. 😉&#xA;&#xA;⁂&#xA;&#xA;### Paying with my watch [just a side note]&#xA;&#xA;I have replaced the provided strap with one that houses a micro contactless card, that I ordered from my credit card provider. Thus it is now a payment wearable and I am actually using it as my main payment device, without the need to have a smartphone/watch based on Apple or Google&#39;s ecosystem. This is super convenient as I do not have to carry a wallet all the time. In fact, even when I do have my wallet I often skip fishing it out of my pocket and just pay with my watch.&#xA;&#xA;=&gt; https://www.youtube.com/watch?v=mZ3m8LW5plw Tietoevry wearables demo video&#xA;=&gt; /journal.gmi Journal § 2023-02-06 @13:43 +0100&#xA;&#xA;⁂&#xA;&#xA;¹ Doing a proper calculation is too cumbersome to do on the fly. For example to work out the current time to the nearest decimal minute in the day you would need to convert the current traditional time to seconds passed in the day so far, i.e. multiple the number of hours (in 24hr format) by 3600 and add these to 60 times the number or minutes past the hour and finally add the seconds. After that you divide the result by 86.4. This is easy enough for a computer to do in a simple program or shell script but is way beyond the abilities of most humans, unless you happen to be Rainman. And this is the easier calculation! When someone wants to know the traditional time and your source is decimal time, good luck calculating that backwards in your head.&#xA;&#xA;⁂&#xA;&#xA;=&gt; ../contact.gmi 📝 Comment&#xA;=&gt; . 🔙 Gemlog index&#xA;=&gt; .. 🔝 Capsule index&#xA;</content>

<link href="//ruario.flounder.online/gemlog/2023-02-28_decimal_watch_update.gmi" rel="alternate"></link>

<summary type="text/plain"></summary>

<title>Balance on a Penny Farthing bicycle</title>

<updated>2023-02-11T00:00:00Z</updated>

<id>tag:ruario.flounder.online,2023-02-11:/gemlog/2023-02-11_penny-farthing-balance.gmi</id>

<content type="text/plain"># Balance on a Penny Farthing bicycle&#xA;&#xA;A couple of months back my employer wrote a blog post where they interviewed me to ask me some quick questions. It is actually part of a series of such posts, with several of my colleagues featured in their own post and the idea being to help our users get to know us better.&#xA;&#xA;=&gt; https://vivaldi.com/blog/news/take-a-spin-behindvivaldibrowser-with-ruari-odegaard/ Take a spin #behindVivaldibrowser with Ruarí Ødegaard&#xA;=&gt; gemini://gemi.dev/cgi-bin/waffle.cgi/view?https%3A%2F%2Fvivaldi.com%2Fblog%2Fnews%2Ftake-a-spin-behindvivaldibrowser-with-ruari-odegaard%2F Take a spin #behindVivaldibrowser with Ruarí Ødegaard [Gemini mirror of the above]&#xA;&#xA;## What is a Penny Farthing?&#xA;&#xA;In the article there is a picture of me standing with my penny farthing and references to my riding it around town here in Oslo (along with my unicycles). For those not familiar with the term, the penny farthing is the original &#34;bicycle&#34;—in English at least, with earlier human powered, wheeled devices using the French term &#34;velocipede&#34;. Penny farthings are distinctive in having one very large wheel at the front and a small one at the back. The large front wheel is a simple solution to greater speed without reliance on a more complex (and hence potentially less reliable) gearing systems. One revolution of a big wheel travels further and hence faster for the same pedalling speed. It also has the added benefit of providing a more comfortable ride because the large diameter wheel clears gaps in the road surface that would have a greater affect on a small wheel. Keep in mind that these bikes evolved in a time before widespread pneumatic (air-filled) tyres, on low quality roads, so this was even more important historically. The back wheel being small is due to weight saving. Since most of your weight is over the big, leading wheel, you still get the majority of the benefit of a comfortable ride without needing two big wheels.&#xA;&#xA;The nickname &#34;penny farthing&#34; is actually a reference to these vastly different wheel sizes. In older British money, the penny was pretty large compared with the tiny farthing coin, and if you placed a penny and a farthing next to each other, they do look like a silhouette of this style of bike. Other names include &#34;High wheeler&#34; or &#34;ordinary&#34; bike (more on that later).&#xA;&#xA;## How do you balance one of these bikes?&#xA;&#xA;In the few comments to the blog post, one of the responders (edwardp) asked me the question,&#xA;&#xA;&gt; I&#39;ve seen antique photos of similarly-styled bicycles (the yellow bicycle in the photo above). How does one balance themselves on such a bicycle?&#xA;&#xA;Initially I did not answer this because I felt like I had nothing really to say other than, &#34;umm… you just do?&#34;. Today however another user followed up also looking for a response, so I felt bad that I had not replied in such a long time. I sat and thought a bit more about it and suddenly realised I did have a bit to say after all. The following is a copy of my reply to the user for anyone else who might be interested.&#xA;&#xA;&gt; @edwardp, @ingolftopf: When cycling at a constant speed, balancing for the most part is like a normal bike, in fact it anecdotally feels to me like it is easier. You can balance a bike like that at a lower speed than most people could balance on a normal bike. The extra height likely helps, perhaps in much the same way that it is easier to balance a broomstick than a pencil on your finger. Though I do not know enough about the physics of inverted pendulums to be sure.&#xA;&gt;&#xA;&gt; That said, the reason I mention &#34;at a constant speed&#34; is that the obvious issue with these types of bikes is that you sit very near the balance point. Thus if you were to brake suddenly you could very easily get thrown over the handlebars. This is possible on a &#34;normal&#34; bike but is less common and requires harder braking and/or a steep downhill. Safety (or lack there of) due to this type of accident is one of the main reasons why these types of bikes have largely died out. such accidents were common in the past and from such a height you can seriously hurt yourself. Indeed modern style bikes were initially called &#34;safety bikes&#34;, while bikes like those like mine were typically referred to as &#34;ordinary&#34; bikes during the crossover period where the modern style started to become more popular. Even to this day, fans of these older style bikes often continue to refer to them as &#34;ordinary bikes&#34;. 😆&#xA;&gt;&#xA;&gt; One interesting thing about riding such a bike is that you have to learn how to handle it in situations where something unexpected happens, like hitting a bump in the road that you did not notice. The the instinctive response and the correct one are very different. Most people will tend to stop peddling, slow down or even brake. All of these are a mistake. You should actually speed up! This is because the bump will slow your wheel down but your body will be less affected and continue to travel at at much the same speed due to your greater mass (and hence momentum), causing you to potentially be tipped over the handlebars. By pedalling faster you counteract this. Obviously when something &#34;unexpected&#34; happens you do not have time to think this out. The reaction must be so quick that for an outsider it looks instinctive (in reality it is just well learned behaviour from lots of experience). As as a rider of unicycles (for years) where the same situation is even more common (you are constantly correcting for falling forwards or backwards) this does now feel normal and natural to me, so I have had very few problems but I know of others who struggled to learn this behaviour and have come off their bike lots of times before they learned to overcome their instinct to slow down.&#xA;&gt;&#xA;&gt; Anyway, I hope that answers your question and sorry for the slow reply.&#xA;&#xA;⁂&#xA;&#xA;=&gt; ../contact.gmi 📝 Comment&#xA;=&gt; . 🔙 Gemlog index&#xA;=&gt; .. 🔝 Capsule index&#xA;</content>

<link href="//ruario.flounder.online/gemlog/2023-02-11_penny-farthing-balance.gmi" rel="alternate"></link>

<summary type="text/plain"></summary>

<title>Apple, Google &amp; Samsung Pay (+ Wearables) don&#39;t store you card details</title>

<updated>2023-02-10T00:00:00Z</updated>

<id>tag:ruario.flounder.online,2023-02-10:/gemlog/2023-02-10_payments_and_tokens.gmi</id>

<content type="text/plain"># Apple, Google &amp; Samsung Pay (+ Wearables) don&#39;t store you card details&#xA;&#xA;From time to time I have heard people talk about the potential for credit/debit card details being leaked on mobile payment devices and wearables. Now I am not expert but from the little (high level) understanding I have of this process, that cannot actually happen. Common mobile payment systems and contactless wearables (like a payment ring, keychain/fob or watch) don&#39;t even have the &#34;real&#34; card details and they don&#39;t need them! This is because the entire system is based on &#34;tokens&#34;.&#xA;&#xA;Rather than your actual card number (a.k.a. &#34;Primary Account Number&#34; or &#34;PAN&#34;) they have a payment token in its place. This token is often called a &#34;Device Account Number&#34; (DAN) or &#34;Device Primary Account number&#34; (DPAN). If you were to gain access to it, it might look like a normal card number but it isn&#39;t and how it can be used is quite different compared with the PAN. You are not going to type it into a website and buy stuff online or encode it on a magnetic strip and use it in a store. Both would simply fail because it is not like a normal credit/debit card number.&#xA;&#xA;A good comparison would be physical tokens in the real world. At many fairgrounds, theme parks or arcades you can trade your real money for tokens which can be used as payment, but these tokens are limited in that you can only use them within the designated environment. This (somewhat) diminishes the value to a thief. &#xA;&#xA;The main limitation of a DAN is that it is no good on its own, it must be combined with a  single use, unique number. Sometimes these are called a dynamic cryptogram¹. In addition to being single use, the number will only be usable with the current merchant.&#xA;&#xA;These dynamic cryptograms can only be generated by your device or a Token Service Provider (TSP), who are further up the financial chain than the mere merchant you are dealing with directly. Your device and the TSP have some extra data, that is never received by the merchant (or stored by anyone else) and it is certainly never exposed over the contactless connection. It is yet another token, the payment token key. This key is also often also referred to as a cryptogram but I will call it a key here for simplicity and to avoid confusing it with the dynamic kind.&#xA;&#xA;Your device uses data about the transaction (e.g. the id of the merchant you are buying from, time stamp, price of transaction, etc.) and combines this with information the device has such as the DAN, expiry date and the payment token &#34;key&#34;. With a bit of calculation it ends up with that dynamic cryptogram. Since some of the data varies (merchant, price, timestamp, etc.) that dynamic cryptogram is always different. The unknown parts (especially your key) however make it impossible for anyone without this knowledge to calculate it.&#xA;&#xA;Once done, the DAN (along with its expiry date) and the dynamic cryptogram can be passed to the merchant. Upstream in the payment processing, the TSP will eventually receive this. The TSP has enough information to perform the calculation again, since it receives the merchant id, price, time stamp, DAN, expiry date, etc. and it already knows the the payment token key associated with your DAN. If its calculation results in the same dynamic cryptogram then it can be certain that your device authorised the transaction (since nobody else should know it). The TSP also knows something your device does not, your real card number (PAN), which it also has stored in its database and associated with your DAN. This PAN can now be used to actually charge you.&#xA;&#xA;To reiterate the DAN is useless for payment without an appropriate dynamic cryptogram, and a potential bad actor cannot work out a valid one because they do not have the payment token key needed for generation. Even if they intercepted the payment early on and tried to reuse it, it is tied to a particular merchant because the merchant id was part of the data set used for the dynamic cryptogram&#39;s generation. More importantly, the TSP would reject a reused number anyway because it is designed to be single use and it was already used!&#xA;&#xA;P.S. Now of course, if the bad actor gets access to your actual device and can authenticate, then yes they could use these details just as you can. My point here however is that copying (all) the details off the device to use them elsewhere is far from straightforward and your PAN is not even there in the first place.&#xA;&#xA;⁂&#xA;&#xA;¹ Dependent on the merchant&#39;s equipment a dynamic &#34;card verification value&#34; (CVV) might be used instead of the dynamic cryptogram. They are generated and are used in a similar way, so I just stick with the term dynamic cryptogram for the rest of the explanation.&#xA;&#xA;=&gt; https://www.advantio.com/blog/heres-how-google-pay-apple-pay-samsung-pay-protect-your-card-details Here&#39;s How Google Pay, Apple Pay &amp; Samsung Pay Protect Your Card Details&#xA;=&gt; https://www.freecodecamp.org/news/how-apple-pay-works-under-the-hood-8c3978238324/ How Apple Pay Works Under the Hood [FreeCodeCamp]&#xA;=&gt; https://codeburst.io/how-does-apple-pay-actually-work-f52f7d9348b7 How Apple Pay works under the hood [Codeburst]&#xA;&#xA;⁂&#xA;&#xA;=&gt; ../contact.gmi 📝 Comment&#xA;=&gt; . 🔙 Gemlog index&#xA;=&gt; .. 🔝 Capsule index&#xA;</content>

<link href="//ruario.flounder.online/gemlog/2023-02-10_payments_and_tokens.gmi" rel="alternate"></link>

<summary type="text/plain"></summary>

<title>Credit/Debit card poll results</title>

<updated>2023-02-06T00:00:00Z</updated>

<id>tag:ruario.flounder.online,2023-02-06:/gemlog/2023-02-06_card_poll_results.gmi</id>

<content type="text/plain"># Credit/Debit card poll results&#xA;&#xA;I got the results back from my two Mastodon polls about credit/debit cards and PANs (Primary Account Numbers)&#xA;&#xA;=&gt; https://velocipederider.com/@ruari/109800182501124400 Your most used credit/debit card has…&#xA;&#xA;&gt; 41% Embossed account number on the front&#xA;&gt; 22% Unembossed account number on the front&#xA;&gt; 28% Account number on the back&#xA;&gt; 9% No account number displayed on the card at all&#xA;&#xA;Only 32 people voted so probably not truly representative but this is still interesting as it implies that card companies are further along with the transition than I had expected. Already there are (perhaps) more cards that are no longer embossed out there, than those that are. Furthermore, given the time to replace cards (some companies take 5+ years), perhaps no company (or very few) is making embossed cards any longer? Also of those unembossed cards, the majority already have their numbers hidden from the front of the card (at the very least).&#xA;&#xA;=&gt; https://velocipederider.com/@ruari/109800895961047024 Have you memorised a debit/credit card number?&#xA; &#xA;&gt; 41% Yes&#xA;&gt; 44% No&#xA;&gt; 15% Maybe I should&#xA;&#xA;66 people replied. Here the interesting thing for me is the number of people who have memorised their details is much higher than I had expected. Though in hindsight perhaps I should have expected this. Many people still do not use password managers and other software that remembers and autofills financial details on the web, or even if they do they might have a lot of transactions where they give cards details over the phone in a call (e.g. takeaway orders from a local restaurant without an app or website ordering system). In such cases you are forced to type or speak the numbers again and again. I guess this will cause you to remember them, without even having to actively try. Also, card numbers do not usually change over time, unless they are reported lost or you change provider. Thus even those using software to autofill credentials on websites now, may have learnt these numbers years ago. Indeed one reply (from @linnefaulk@toot.bike) stated,&#xA;&#xA;&gt; I still know my Amex # but haven’t had the account in over 10 years!&#xA;&#xA;Based on these small polls I would imagine that soon, almost no card companies will list numbers on the cards. For in person transactions you do not need them and there is a clear security downside in having the numbers listed. For online transactions software will increasingly handle the remembering and exchange of numbers for you. Even if you actively avoid such software, many people could recall these numbers with a little effort and for those that cannot writing them down is no less secure than having them on the the card itself. In fact it is probably more secure, especially if you do not carry these numbers with you in your wallet. And even if you did, a thief is more likely to overlook a hand written note than those printed on cards.&#xA;&#xA;=&gt; 2023-02-03_numberless_cards.gmi The progression to numberless credit/debit cards&#xA;=&gt; gemini://freeshell.de/gemlog/2023-02-03_I_have_credit_card_nostalgia__WTF_.gmi I have credit card nostalgia. WTF? [JBanana]&#xA;=&gt; 2023-02-03_wise_and_corporate_green_washing.gmi Wise debit card and corporate green washing&#xA;&#xA;⁂&#xA;&#xA;=&gt; ../contact.gmi 📝 Comment&#xA;=&gt; . 🔙 Gemlog index&#xA;=&gt; .. 🔝 Capsule index</content>

<link href="//ruario.flounder.online/gemlog/2023-02-06_card_poll_results.gmi" rel="alternate"></link>

<summary type="text/plain"></summary>

<title>Wise debit card and corporate green washing</title>

<updated>2023-02-03T00:00:00Z</updated>

<id>tag:ruario.flounder.online,2023-02-03:/gemlog/2023-02-03_wise_and_corporate_green_washing.gmi</id>

<content type="text/plain"># Wise debit card and corporate green washing&#xA;&#xA;=&gt; /journal.gmi Originally posted on my Journal [§ 2023-02-02 @13:02 +0100]&#xA;&#xA;Recently Wise (an international payment company) started to offer a new debit card to its customers. It is called Wise Eco and is supposed to have green credentials, with the following advantages listed:&#xA;&#xA;* It is &#34;bioplastic&#34;—The bioplastic is made from Polylactic acid or polylactide (PLA), which is a polyester derived from biomass (typically corn) rather than from the oil industry&#xA;* It has &#34;Less ink&#34; because it does not include things like the primary account number (PAN) written on the card. The reduced amount of ink is because the ink used is not biodegradable&#xA;* &#34;Planet-friendly&#34; packaging using &#34;Incada Silk&#34; which is FSC-certified&#xA;&#xA;=&gt; https://wise.com/gb/blog/wise-launches-ecocards Wise page announcing the card&#xA;&#xA;This all sounds like bullshit green washing to me. Some quick thoughts off the top of my head&#xA;&#xA;* Wise also have virtual cards, which are just a set of numbers that can be used directly online or paired with Google or Apple pay, so that you can use your smartphone as a payment device. Since these &#34;cards&#34; are entirely virtual, and thus made of nothing and require no shipping, surely they are the green option?&#xA;* Wise continue to offer their original non-eco card (which ironically is green in colour, while the new eco card is white). Why? Instead shouldn&#39;t this just be the default card for new customers and the replacement card for outstanding ones that come up for expiry?&#xA;* If you are an existing customer and have the green (but not eco &#34;green&#34;) original card, you are actually offered the new eco one in addition when you view your card details online. They are linked to the same account balance and you can already have 3 virtual cards at no cost. So how does offering another physical card that still draws from they same balance help in being ecological? Wise is offering an additional physical thing when you already have multiple ways to pay from your account.&#xA;* This ink saving sounds particularly &#34;bullshitty&#34;. How much ink are they saving here and surely the environmental saving of slightly less ink pails in comparison to producing a card with a semiconductor chip and then sending it (in their &#34;eco friendly&#34; packaging) to their customers?&#xA;&#xA;I am not totally against this product. Physical cards are still needed by many consumers and perhaps some of these changes help but seriously Wise just make this your one physical card offering, and give up on your non-&#34;green&#34; (but actually green in colour) card.&#xA;&#xA;As a side note, I do sort of like the no PAN printed on the card idea. Not for the green aspect but from an improved security perspective. Why are we still printing credit card numbers on all our cards? If you need the numbers you can get them from your bank&#39;s website or app, store them in your browser and/or your password manager, or even write them down on a note you keep in a safe place at home. Or if you use Google or Apple Pay, your mobile device has the number as well.&#xA;&#xA;Having the number written on the card stems from a time where it was used as a fallback in cases where the card was non working or damaged but this is exceptionally uncommon (at least in my part of the world) these days, and in any case the consumer could likely retrieve these details from their phone using some of the methods I outlined above. Surely it would be better not to list the number on the card at all and thus make the visual skimming of these numbers impossible.&#xA;&#xA;In fact as a customer of Wise I am sort of tempted to get one of these cards. Though if I do it will be for that last aspect and certainly not because I deluded into thinking that getting yet another card is greener!&#xA;&#xA;⁂&#xA;&#xA;=&gt; ../contact.gmi 📝 Comment&#xA;=&gt; . 🔙 Gemlog index&#xA;=&gt; .. 🔝 Capsule index</content>

<link href="//ruario.flounder.online/gemlog/2023-02-03_wise_and_corporate_green_washing.gmi" rel="alternate"></link>

<summary type="text/plain"></summary>

<title>The progression to numberless credit/debit cards</title>

<updated>2023-02-03T00:00:00Z</updated>

<id>tag:ruario.flounder.online,2023-02-03:/gemlog/2023-02-03_numberless_cards.gmi</id>

<content type="text/plain"># The progression to numberless credit/debit cards&#xA;&#xA;My post the other day about Wise&#39;s Eco card got me thinking about credit and debit cards again. Not from a financial perspective but more about changes in design, both where they are coming from and where they lead.&#xA;&#xA;=&gt; 2023-02-03_wise_and_corporate_green_washing.gmi Wise debit card and corporate green washing&#xA;&#xA;I have since discovered that these cards without full account information printed on them (like Wise&#39;s Eco card) are part of a wider trend in the credit/debit card industry and are more generally called &#34;numberless cards&#34; (with the Apple Card, Curve Investor and Chase [UK] cards being other well known examples). While they clearly do have an account number associated with them it is not visible on the card itself (unlike traditional cards).&#xA;&#xA;Cards have gone through three quick phrases in recent years: removal of embossing, numbers moved to the back, no numbers. These are all sort of linked, with each step leading to the next one making more sense. In my own wallet I have cards that are embossed, not embossed with numbers on the front, and not embossed with numbers on the back. How long before I too have a numberless card and will I have all four forms at the same time?&#xA;&#xA;So how/why has this happened? My guess is the following. It starts with the removal of embossing. Embossing was required in the past before electronic banking became the norm. Embossing allowed the details of the cards to be quickly copied at the point of sale using a credit card imprinter. &#xA;&#xA;=&gt; https://en.wikipedia.org/wiki/Credit_card_imprinter Credit card imprinter [Wikipedia]&#xA;&#xA;&gt; The device works by placing the customer’s credit card into a bed in the machine, then layering carbon paper forms over the card. A bar is slid back and forth over the paper to create an impression of the embossed card data and the merchant information on the imprinter. The customer signs these paper forms, with one copy as the customer receipt and the other kept by the merchant.&#xA;&#xA;Embossing has stuck around a long time after imprinters were phased out but at some point I guess the industry realised this was now largely pointless. In fact just printing the number with ink and no embossing improves readability because previously the ink used to easily wear off embossed surfaces, making the card number harder to read over time.&#xA;&#xA;Once support for card imprinters via embossing had gone, I guess someone realised that the account number did not have to remain in the same place and indeed moving details to the back provides a few of benefits.&#xA;&#xA;* The front of the card is now a clean slate allowing for more design options. And humans being humans, an interesting or sleek design can be a huge selling point for a particular card.&#xA;* By moving the details to the back (and with no embossing) it is no longer possible for someone to read the numbers when looking at a face up card, giving a clear security benefit. This is especially helpful when people place their cards down at a restaurant and leave them there until the server returns to collect payment.&#xA;* In the past when account numbers were on the front, most Card Verification Value (CCV) numbers—3 or 4 extra digits used only with manually input payments—would remain on the back. This was done so that thieves couldn&#39;t lift all the important information just by looking at the front of the card. By moving all numbers to the back, this is no longer a problem since the front is visually secure. Plus the card owner gets the benefit of all information being in one place. Thus they do not need to flip the card to copy information when using it to manually fill out forms or providing details over the phone.&#xA;&#xA;Which brings us now to numberless cards. By taking away even more information there is even further, improved security. The card gives no secrets away (visually), no matter which side it is up. Also, even more design options are possible because of more space being available. The obvious downside being, how will the user get the account information when they need it? Luckily modern technology solves this, the bank&#39;s website (and often also a dedicated phone app) are able to display this. In addition password/account managers, and payment apps can store it and even provide autofill capability on websites that need it. Also sites one frequently visits will typically offer to store details directly, meaning you would not have to look up these numbers as often as was required historically.&#xA;&#xA;That said, this last progression (numberless cards) is probably the one the most likely to get push back from users who find numbers on the card more convenient than using software to store and look them up. So I guess it&#39;ll probably be a long time before all cards go numberless.&#xA;&#xA;And what will be the next trend after this? I suppose it will be the removal of the magnetic strip. Like embossed numbers, these strips are for a method of collecting payment that is dead in many places in the world and dying out rapidly elsewhere. Indeed here in Norway (where I live) it is not possible to use the magnetic strip anywhere that I know of. The only time I use them is on trips to the US and even then the frequency has been going down rapidly. I don&#39;t think I did this once on my last trip there. Getting rid of the strip would already be fine for many users and frees up even more space. Plus it makes copying card information with simpler tools like magnetic skimmers impossible. Indeed a quick search leads me to Mastercard announcing the planned removal of these already, from next year in Europe (2024) and from 2027 in the US. &#xA;&#xA;=&gt; https://www.mastercard.com/news/perspectives/2021/magnetic-stripe/ Swiping left on magnetic stripes [Mastercard]&#xA;&#xA;&gt; By 2029, no new Mastercard credit or debit cards will be issued with a magnetic stripe.&#xA;&#xA;Personally I am all for it. I love these simpler, design friendly and more secure cards. The only thing I worry about is the obvious final step where the cards are entirely virtual. Granted many people already have purely virtual cards and just use Apple Pay and Google Pay on their smartphones. My wife never carries any cards (or money!) and relies solely on her phone but as a non smartphone user, that option is not really a possibility for me right now. 😉&#xA;&#xA;⁂&#xA;&#xA;=&gt; ../contact.gmi 📝 Comment&#xA;=&gt; . 🔙 Gemlog index&#xA;=&gt; .. 🔝 Capsule index&#xA;</content>

<link href="//ruario.flounder.online/gemlog/2023-02-03_numberless_cards.gmi" rel="alternate"></link>

<summary type="text/plain"></summary>

<title>A decimal watch?</title>

<updated>2022-12-15T00:00:00Z</updated>

<id>tag:ruario.flounder.online,2022-12-15:/gemlog/2022-12-15_decimal_watch.gmi</id>

<content type="text/plain"># A decimal watch?&#xA;&#xA;[4 minute read or if you prefer, just under 3 decimal minutes]&#xA;&#xA;So recently I have been thinking again about time and how we use watches. I have written about this on here a couple of times and also have a fediverse account that is watch and time related.&#xA;&#xA;=&gt; 2022-10-29_what_time_is_it.gmi What time is it?&#xA;=&gt; 2021-11-23_Binary_wrist_watch.gmi Binary wrist watch&#xA;=&gt; https://wristwatch.social/@binary @binary@wristwatch.social&#xA;&#xA;## Decimal time&#xA;&#xA;My current fascination is decimal time, where the day is spilt up into &#34;hours&#34;, &#34;minutes&#34; and &#34;seconds&#34; that are all divisible by 10. The best known example of this is probably &#34;French Revolutionary Time&#34;, which was used (in France) for a short period in the early 1790s. Here the day is broken down into 10 decimal hours, each of which is 100 decimal minutes and these in turn, 100 decimal seconds. Perhaps the next best known &#34;variation&#34; would be Swatch&#39;s Internet Time, introduced in 1998, where the day is simply divided into 1000 decimal minutes, which they called &#34;.beats&#34;. The only real difference here is that Swatch really focusses only on these .beats/minutes but these actually represent exactly the same length of time as the French decimal minutes. So the systems aren&#39;t really that different and that kind of makes sense, when you think about it.&#xA;&#xA;=&gt; https://en.wikipedia.org/wiki/Decimal_time Decimal time&#xA;=&gt; https://en.wikipedia.org/wiki/Swatch_Internet_Time Swatch Internet Time&#xA;&#xA;The advantages of such a system are that people generally find base-ten easier to work with (albeit perhaps due to familiarity), plus using the same base all the way down, makes for easier calculations and conversions. Nonetheless, it never really caught on because of the difficulty of changing people&#39;s habits and perhaps—I speculate here—also because there were already large numbers of expensive clocks that would need replacing.&#xA;&#xA;## Precision is not everything&#xA;&#xA;A few years back I bought a single-handed, 24 hour watch. I don&#39;t use it all the time but I quite enjoy it when I do—indeed, I am wearing it as I write this. I love the simplicity of its interface and enjoy observing the slow passing of the day at a glance. This is especially easy on a watch like this, as one day is just one revolution of the face. The bottom of the face represents the night, left the morning, top midday and right the evening. Many have noticed the sundial like aspect of this. &#xA;&#xA;Another common observation of others is the lack of precision when reading the time. It is hard to make out the time to less than about 5 minutes but in reality, that is not nearly so problematic as one might expect. Most meetings and events tend to fall on the hour, half hours and (very occasionally) on quarter hours. All of these are clearly marked. In any case, if I am unsure, I tend to turn up early (just in case), and that is rarely a bad thing.&#xA;&#xA;By wearing this for a while, I realised that my primary use case for a watch (any watch) is a just to do a quick check to see how close I am to some regular, known point in time. Some obvious examples throughout my typical day being &#34;waking up&#34;, &#34;dropping off the kids to school&#34;, &#34;getting into the office&#34;, &#34;lunch time&#34;, &#34;the end of work&#34;, &#34;the kids bed time&#34; and &#34;my own bed time&#34;. I often find I look at my watch, and don&#39;t really take in the actual time. Indeed if you asked me the time immediately afterwards, I probably could not tell you. I just see how &#34;visually close&#34; I am and this tells me if I need to hurry up or not (or if I am actually late already).&#xA;&#xA;Yes I do occasionally need precision but with many other precise sources of time close to hand (on my phone, my computer, clocks in the office and at home …) I can always get the information, on the rare times I need it.&#xA;&#xA;## If I took this further, would it be a good idea?&#xA;&#xA;So recently it occurred to me that perhaps I could actually use a decimal watch in my daily life. Not because it is &#34;better system&#34;, but more that I &#34;could&#34; do it and the downsides would (perhaps) be minimal. Of course initially those times I mentioned &#34;waking up&#34;, … &#34;lunch time&#34;, etc. would be meaningless on a decimal watch because they would be labelled differently. Instead of &#34;lunch at 11:30&#34;, it would be &#34;just before 4:80&#34; but within a week I suspect I would just learn the new times without much effort (i.e. some event happens, you look at your watch, and make a mental note of the new time for the same occurrence in the future).&#xA;&#xA;Now of course every day is not identical. If I have a quickly arranged meeting, I would not be able to use the watch for this (since I would have to negotiate and schedule with others using &#39;traditional time&#39;) but as stated previously there are other sources of time close to hand to use for such occasions. Also if I am doing something very unusual for a while like travelling abroad, I could just use a normal watch for that. I do actually own quite a few watches! &#xA;&#xA;So yeah… this … could … work, right? 😆 Certainly it might not be a &#34;good idea&#34; but then it might still be a &#34;workable idea&#34; and… I do like odd stuff. There is a joy in doing things differently and you always learn something new along the way, that you could not have predicted beforehand.&#xA;&#xA;In summary, yes I have already ordered a single-handed, decimal watch. I don&#39;t have it yet but even if it turns out to be totally unusable for real life (because my expectations are poorly thought out), I am sure it will be fun. I will try and do a follow up post after I have used it for a while and let you know how it panned out (even if the answer is &#34;badly&#34;).&#xA;&#xA;⁂&#xA;&#xA;=&gt; ../contact.gmi 📝 Comment&#xA;=&gt; . 🔙 Gemlog index&#xA;=&gt; .. 🔝 Capsule index&#xA;</content>

<link href="//ruario.flounder.online/gemlog/2022-12-15_decimal_watch.gmi" rel="alternate"></link>

<summary type="text/plain"></summary>

<title>What time is it?</title>

<updated>2022-10-29T00:00:00Z</updated>

<id>tag:ruario.flounder.online,2022-10-29:/gemlog/2022-10-29_what_time_is_it.gmi</id>

<content type="text/plain"># What time is it?&#xA;&#xA;I recently read a poll on the Fediverse asking, &#34;Can you read an analog clock?&#34;. This struck me as odd as I just assumed that almost all adults would be able to do this. Or at least all literate enough to be participating in such an online poll.&#xA;&#xA;=&gt; https://todon.nl/@schratze/109064145936922564 Can you read an analog clock? (@schratze@todon.nl)&#xA;&#xA;The poll did not get loads of votes (only 142) but perhaps enough to still be somewhat interesting. Initially it might seem I was correct. Most people can read them… and yet, the 6% who either struggle or cannot seems a little high. Particularly when you start to think about the kinds of people on Mastodon (with its heavy tech bias).&#xA;&#xA;I turned around to my colleague at work a day or two after I saw that poll (I was still thinking about it) and asked her if she found analog clocks hard to read. She said no. In fact she went further and told me that actually she finds them easier. She wears a Fitbit smart watch, which displays the time digitally, but told me that when she is at home in the evenings and is tired (after a long day), she always looks at the analog clock on her wall (rather than the watch on her wrist).&#xA;&#xA;I then decided to do my own poll&#xA;&#xA;=&gt; https://velocipederider.com/@ruari/109143331837382359 Which watch face UI do you find to be the best?&#xA;&#xA;I got 134 results with 46% preferring analog and 52% digital—the final 2% is explained below¹. Now I started to ponder if, perhaps it was simply a case of what you learnt first and/or used the most. &#xA;&#xA;Or maybe… there are other things going on?&#xA;&#xA;Some people want precision and reading a precise time on a digital watch is likely quicker and easier for most people, when compared with looking at the minute hand on an analog clock and working out its exact position (especially so if it is lacking minute markers). &#xA;&#xA;Other people (at least some people, myself included) do not always want or need that precision. You want to know if you have arrived to a certain point in the day, like &#34;lunch time&#34; or &#34;the end of work&#34; and may not care about the exact minute. You need to know if you are &#34;close&#34; or &#34;past&#34; that point. Analog clocks are very good at visualising this, with the hands working much like a pie chart. &#xA;&#xA;Consider that something is going to happen at 2PM. If you look at a digital watch and it says 1:57 (or 13:57), you can read that at a glance but it takes a simple calculation to think, &#34;57 is 3 mins to 60, so it is almost 2&#34;. While with an analog clock you could visually note that it is &#34;almost 2&#34;, and think &#34;I need to get to that meeting now!&#34;, without actually having to ever work out the precise time. &#xA;&#xA;So which is easier? Analog or Digital? I still think exposure to the interfaces matters the most. If you have always had digital watches and hardly used an analog one, you will find the former easier. However, even when you are very familiar with both I think it depends on the person, both their distinct personality, and perhaps also the nature of how they work with time in their home life and their job. Indeed it might be that one style works better depending on the activity you are using it for.&#xA;&#xA;Plus there is also always the possibility that neurologically we are wired differently and one or other interface simply will never work for certain people. 🤷🏼&#xA;&#xA;⁂&#xA;&#xA;¹ I included a third (joke) option in my poll for a &#34;binary&#34; interface. Surprisingly this took 1% and the rest was probably lost to rounding.&#xA;&#xA;=&gt; 2021-11-23_Binary_wrist_watch.gmi Binary wrist watch&#xA;&#xA;⁂&#xA;&#xA;=&gt; ../contact.gmi 📝 Comment&#xA;=&gt; . 🔙 Gemlog index&#xA;=&gt; .. 🔝 Capsule index&#xA;</content>

<link href="//ruario.flounder.online/gemlog/2022-10-29_what_time_is_it.gmi" rel="alternate"></link>

<summary type="text/plain"></summary>

<title>Technology, Nostalgia and a nice price point is a very heady drug</title>

<updated>2022-09-26T00:00:00Z</updated>

<id>tag:ruario.flounder.online,2022-09-26:/gemlog/2022-09-26_nostalgia_and_technology.gmi</id>

<content type="text/plain"># Technology, Nostalgia and a nice price point is a very heady drug&#xA;&#xA;I was recently reading a post that Kev Quirk wrote&#xA;&#xA;=&gt; https://kevquirk.com/the-casio-f-91w-is-the-best-smartwatch/ The Casio F-91W Is the Best Smartwatch&#xA;&#xA;But let&#39;s backup a little. It actually starts with a post by @joel@fosstodon.org on the Fediverse,&#xA;&#xA;=&gt; https://fosstodon.org/@joel/109005194088466959 &#xA;&#xA;&gt; Got this watch as a gift from an uncle a few years ago, had to change a battery to bring it back to life after a while, quite cool, I think &#xA;&gt; &#xA;&gt; Do you guys still go analog, digital or you rock a smartwatch or band?&#xA;&#xA;[ Includes a picture of a nice Victorinox watch with an analog interface ]&#xA;&#xA;What follows are lots of posts about watches that various people like, quite a number of which are classic Casios including the &#34;best watch ever made&#34; (a.k.a. the Casio F-91W).&#xA;&#xA;As you can guess from the title of Kev&#39;s post, he buys one and [Spoiler alert] gives his Apple watch to his wife. The post proceeds to explain why the F-91W is better than other &#34;smart watches&#34;. Kev&#39;s post amused me greatly because it is nicely written and because I have seen this play out before. Indeed I suspect it played out a similar way for many of the F-91W owners.&#xA;&#xA;I am not going to go to great lengths to tell you why the Casio F-91W specifically is the best watch because Kev and others already have this covered. After you have read Kev&#39;s post, go to your favourite search engine and search for &#34;Casio F-91W&#34; and you will find plenty of other articles and videos along these lines.&#xA;&#xA;After Kev posted a link to his post on the Fediverse, myself and others replied. Here are selection of my interactions with Kev&#xA;&#xA;=&gt; https://fosstodon.org/@kev/109064252017612564 I don&#39;t care what anyone says, the Casio F-91W is the BEST #Smartwatch on the market. 🙃&#xA;&#xA;@ruari&#xA;&gt; @kev Yes but Casio F-84W for me. It is essentially the same though. 😉&#xA;&#xA;@kev&#xA;&gt; @ruari what&#39;s the difference? Is it slightly updated internals or something?&#xA;&#xA;@ruari&#xA;&gt;@kev The internals are identical. It is just a slightly different design of the face and a watch strap that is a narrower. They were only ever officially released for the Japanese market and AFAIK are still more popular there than the F-91W.&#xA;&#xA;@kev&#xA;&gt; @ruari I wonder if it was the 84 I had when I was a kid then...It would have been before the 91 was released, and my parents would have definitely got the cheapest they could find.&#xA;&#xA;@ruari&#xA;&gt; @kev Unless they bought it from Japan, probably not. &#xA;&gt; &#xA;&gt; It could have been a Casio F-28W though. That one looks shockingly close to the F-84W but is no longer made.&#xA;&#xA;@ruari&#xA;&gt; @kev If you want that look you recall and intend to buy something new, the F-84W is therefore still probably your best bet.&#xA;&gt; &#xA;&gt; Even as an import is still costs almost nothing! 😉&#xA;&#xA;@kev&#xA;&gt; @ruari urgggg I&#39;m soooo tempted to pick this up.&#xA;&#xA;@kev&#xA;&gt; @ruari I&#39;ve bought 2 while going through the replies to this thread!! 😂&#xA;&gt; &#xA;&gt; If I get the 84, that&#39;ll be 3!&#xA;&#xA;@kev@fosstodon.org&#xA;&gt; @ruari I bought it. 😳&#xA;&#xA;@kev@fosstodon.org&#xA;&gt; @ruari It gets worse...I just bought a display case for them too. WHAT&#39;S WRONG WITH ME???&#xA;&#xA;@ruari&#xA;&gt; @kev Nothing is wrong with you! Nothing at all!&#xA;&#xA;As you can guess from my reassuring comment, I have fallen down this rabbit hole myself. I own a bunch of Casio watches, most of which are only minor variants of the same basic theme.&#xA;&#xA;## WHY!?&#xA;&#xA;I think there are a few things going on here and they boil down to &#xA;&#xA;* Technology&#xA;* Nostalgia&#xA;* Style&#xA;* Price&#xA;&#xA;In their own right these watches are technological marvels, showcasing the great leaps made in the 1970s and 80s. They are very accurate even by today&#39;s standards. I have an F-91W sitting on my desktop that has lost one second of time over the course of several months! They are not rated to be that accurate but F-91Ws often exceed their ratings. Ask the people who regularly swim with them when they are only rated as &#34;Water Resistant&#34; (which in the real world basically means splash resistant). &#xA;&#xA;In addition to accurate time, it displays the date, includes an alarm and a stopwatch. If that wasn&#39;t enough you can (just about) read it in the dark via its tiny backlight, it is basically waterproof and the battery lasts for… well… forever? 😉 &#xA;&#xA;Which leads to the next bit, Nostalgia. I recall variants of these watches owned by my father, my older brother and my various friends. You also saw them in films. In Alien, Ellen Ripley wears two Casio A-100s (albeit with some fancy customisation), while in Back to the Future, Marty McFly sports a Casio CA-53W.&#xA;&#xA;Back in those days, the tech was cutting edge and the price (while cheap compared to &#34;classic watches&#34;) was still enough to mean something. Thus these watches were the kind of thing many geeky kids lusted after, with some lucky enough to own. If you didn&#39;t have one or perhaps even if you did, they felt special.&#xA;&#xA;And the styling of these watches was (and is) certainly interesting. They look nothing like the classic time pieces of old. In attempting to look futuristic, they now look very dated, with strange design choices like having their various features listed prominently on the watch face. Thus you get phrases like &#34;WATER RESISTANT&#34; and &#34;ALARM&#34; permanently on display. The F-84W even says &#34;Lithium&#34; because of the &#39;fancy&#39; battery technology. 😆 And yet in other ways, these watches are very understated. No diamonds or precious metals here. They have very functional designs.&#xA;&#xA;But now the real clincher… price. Technology has moved on and these basic designs were perfected in the 80s, yet costs have continued to decrease due to improvements in mass production. In today&#39;s money, compared with a typical Western salary they almost feel like they are free. I have paid more for a beer that I finished in 10 minutes than I did for the F-91W I bought a few years back. And yet the F-91W will last &#34;forever&#34;.&#xA;&#xA;And so it begins, you buy one and it is great. The only watch you ever need! … But wait, &#34;This other [slight variant] looks nice and perhaps feature X would be nice as well?&#34;. So you buy another… and another… and… well you get the idea.&#xA;&#xA;Good luck Kev, if you are anything like me, you will end up with far too many of &#34;the only watch you will ever need&#34;. 😜&#xA;&#xA;⁂&#xA;&#xA;=&gt; ../contact.gmi 📝 Comment&#xA;=&gt; . 🔙 Gemlog index&#xA;=&gt; .. 🔝 Capsule index&#xA;</content>

<link href="//ruario.flounder.online/gemlog/2022-09-26_nostalgia_and_technology.gmi" rel="alternate"></link>

<summary type="text/plain"></summary>

<title>Re: ROOPHLOCH 2022</title>

<updated>2022-09-14T00:00:00Z</updated>

<id>tag:ruario.flounder.online,2022-09-14:/gemlog/2022-09-14_Re_ROOPHLOCH_2022.gmi</id>

<content type="text/plain"># Re: ROOPHLOCH 2022&#xA;&#xA;A few days back @solderpunk (of Gemini fame) announced ROOPHLOCH (Remote Outdoor Off-grid Phlogging Challenge) 2022.&#xA;&#xA;=&gt; gopher://zaibatsu.circumlunar.space/0/~solderpunk/phlog/announcing-roophloch-2022.txt Announcing ROOPHLOCH 2022&#xA;&#xA;&gt; […] make a phlog post between September 1st and September 30th (inclusive, in your local time zone), while being outside of any permanent man-made shelter and without plugging a computing device into a wall for power or internet […]&#xA;&#xA;How you achieve this is kind of up to the individual &#xA;&#xA;&gt; […] but the spirit of ROOPHLOCH is to get active and get creative, and make your post somewhere far from where you normally would and via different technologies from what you would normally use […]&#xA;&#xA;My first (failed) attempt involved trying to compose a phlog post using a series text messages using a basic Nokia feature phone. Technology failures got the better of me however. If you want to know more, read § 2022-09-07 @21:20 +0200 of my Journal.&#xA;&#xA;=&gt; /journal.gmi Ruario&#39;s Journal&#xA;&#xA;ℹ There was also a second big issue with that doomed attempt. I was actually inside at the time. Somehow I forgot about the &#34;Outdoor&#34; aspect. I guess this is the problem with overly complex acronyms. Or at least that is my excuse! 🤪&#xA;&#xA;Anyway, on the second try I did something more successful.&#xA;&#xA;=&gt; gopher://sdf.org/0/users/r0/phlog/2022-09-14_ROOPHLOCH_2022.txt ROOPHLOCH - Grefsenkollen 20220914 09:44&#xA;&#xA;Alternatively if you want to view the original and not the transcribed version.&#xA;&#xA;=&gt; gopher://sdf.org/I/users/r0/images/IMG_0689.jpg ROOPHLOCH - Grefsenkollen 20220914 09:44 [Image]&#xA;&#xA;So… is anyone else taking part?&#xA;&#xA;[✍ 16:16 +0200] &#xA;&#xA;=&gt; https://www.strava.com/activities/7806168440 Strava entry for the ride to my chosen ROOPHLOCH location&#xA;&#xA;⁂&#xA;&#xA;=&gt; ../contact.gmi 📝 Comment&#xA;=&gt; . 🔙 Gemlog index&#xA;=&gt; .. 🔝 Capsule index&#xA;</content>

<link href="//ruario.flounder.online/gemlog/2022-09-14_Re_ROOPHLOCH_2022.gmi" rel="alternate"></link>

<summary type="text/plain"></summary>

<title>Using a unicycle to do a bicycle&#39;s job</title>

<updated>2022-09-13T00:00:00Z</updated>

<id>tag:ruario.flounder.online,2022-09-13:/gemlog/2022-09-13_unicycle_why_speed.gmi</id>

<content type="text/plain"># Using a unicycle to do a bicycle&#39;s job&#xA;&#xA;I refer to myself as a &#34;unicyclist&#34; since it is an activity I do on an almost daily basis. People who unicycle regularly will do so for various different reasons. For my own part, my interest is primarily to use it as a tool for getting around and/or keeping myself fit and active. Thus I use my unicycles pretty much as others might use a bike (or perhaps even a car). The longest I have travelled in a single ride is a little over 62km (39 miles) but I cycle distances in the 25 to 30km (15 to 19 mile) range fairly often and I cycle at least 10km (6 miles) for my daily round trip commutes (sometimes more than double that, as I love taking detours if I have the time).&#xA;&#xA;When I tell people this in &#34;real life&#34; a couple of questions are often raised, so I decided to write them up and give myself something to refer to in the future. &#xA;&#xA;ℹ If you are reading this and have more questions however, feel free to send me an email and I might just do a follow up. 😉&#xA;&#xA;## Why not just ride a bike?&#xA;&#xA;A unicycle is physically more work than riding a bike. It simply is not as efficient, nor as quick. The vast majority of unicycles (and certainly all the ones I own) have fixed hubs. This means that the cranks cannot move independently of the wheel and thus there is no straightforward way to &#34;coast&#34;. You have to pedal every stroke. Bicyclists tend to forget how often they coast. Many casual bicyclists stop pedalling on even the tiniest, most minor downhill gradients. I have seen cyclists coast on the small drop off the back of a speed bump!&#xA;&#xA;Additionally unicycles have very low gearing (one revolution of the cranks is one wheel revolution). A midrange gear on a bike is typically such that one revolution of the cranks will turn the wheel through two complete revolutions of the wheel, i.e. you go twice as far and twice as fast for the same wheel size if you assume the same peddling speed (cadence). &#xA;&#xA;If that was not enough, a wider range of muscles seems to be involved in balance and control on a unicycle, compared with a bike. &#xA;&#xA;For all these reasons, new unicyclists often find themselves completely worn out and sweating profusely after a couple hundred meters of cycling. With improvements to technique and muscle conditioning it certainly gets much easier but it will never be anything like as low effort as riding a bicycle, which is likely the most efficient form of human powered transport.&#xA;&#xA;So why bother? For much the same reason that someone might choose to run or skate instead of ride a bike. Efficiency is not the be all and end all. Many people enjoy the extra workout, for others they find the movement more interesting and hence more fun. Unicycling is much the same, while superficially it might appear to be essentially the same as bicycling, in practice the differences can be the very thing you are seeking. Certainly that is true in my case. I relish the extra effort and the feeling of balance is something quite special and not matched by a regular bike bike, as far as I am concerned.&#xA;&#xA;## How fast is it?&#xA;&#xA;Unicycling is not necessarily as slow as many might assume. The typical image of a unicycle in most people&#39;s mind is fairly small, with a 20 inch wheel. Unicycles of this size are likely the most common and it is a good size for a range of tricks but it is a little small for my use cases. My smallest unicycle has a 24 inch wheel (roughly the same size as a child&#39;s mountain bike wheel), while my largest has a massive 36 inch wheel, which is far bigger than any bicycle you are likely to encounter.&#xA;&#xA;A bigger wheel means gets you closer to bike performance as you will travel further and faster for the same cadence relative to a little wheeled unicycle. There are other tricks as well. Learning how to spin fast comfortably is a skill that can be achieved with some effort.&#xA;&#xA;Running very short cranks can also help with spin rate. It is easier spin quickly with small, tight movements, which is more natural when using shorter cranks. A bicycle will typically have cranks in the 165-170mm length range. I have been known to run cranks as small as 75mm (which look like something I stole off a small child&#39;s bike). Shortening crank length comes with a lot of compromise however. You lose control (something already in short supply on a unicycle) and by using less of your leg length, you are not making optimal use of your muscles. For this reason I tend to favour lengths in the 100 to 117mm range.&#xA;&#xA;So… how fast is it then? Well it varies of course depending on which size unicycle, which size cranks, how hilly the route is, the weather and other factors. On my commutes I tend to average 15-16km/h (9-10mph) for a typical 5km distance. Though on a good day, if I am in a hurry, I might average in the 18-19km/h (11-12mph) range. These kinds of speeds actually put me pretty close to a casual/relaxed bicycle rider. So slow… but not that slow. 😉&#xA;&#xA;P.S. Here are some of my previous articles that talk a little about unicycling.&#xA;&#xA;=&gt; 2022-09-03_Brakes-on-a-unicycle.gmi Brakes on a unicycle&#xA;=&gt; 2021-11-30_Unicycling_in_the_snow.gmi Unicycling in the snow&#xA;&#xA;⁂&#xA;&#xA;=&gt; ../contact.gmi 📝 Comment&#xA;=&gt; . 🔙 Gemlog index&#xA;=&gt; .. 🔝 Capsule index&#xA;</content>

<link href="//ruario.flounder.online/gemlog/2022-09-13_unicycle_why_speed.gmi" rel="alternate"></link>

<summary type="text/plain"></summary>

<title>What is the point of a 0.3MP camera?</title>

<updated>2022-09-04T00:00:00Z</updated>

<id>tag:ruario.flounder.online,2022-09-04:/gemlog/2022-09-04_what_is_the_point.gmi</id>

<content type="text/plain"># What is the point of a 0.3MP camera?&#xA;&#xA;I do not carry smart phone in my daily life. Most importantly because I am someone that is easily addicted to technology and it would consume too much of my free time. There is also the problem of all the tracking and telemetry going on with (most) smartphones, along with a requirement for a Google or Apple account.&#xA;&#xA;I do own a few (modern) feature phones however, from higher end Punkt (MP01 and MP02), Lightphone II and Mudita Pure, through to various cheaper Nokias. The reason for the range of phones is that I have never quite found the combination that works right for me. Indeed I have almost given up looking. The market for people like me is a pretty small niche. Thus all my phones have multiple, strong compromises. One of the things I would really like and cannot find at all on modern feature phones is a decent camera. The &#34;fancier&#34; phones like the Punkt or Lightphone¹ have no camera at all, and most of the Nokias have a paltry 2MP camera, with several of them are equipped with 0.3MP cameras! 🤪&#xA;&#xA;That said, I tend to favour a phone with an absolutely shit camera over a phone with no camera at all. Why, you might ask. Well, obviously you are unlikely to use them to capture cherished memories or create great photographic works of art. However, having almost any digital camera with you is still surprisingly useful for digital note taking. &#xA;&#xA;Some examples of things I take pictures of include:&#xA;&#xA;* Timetables (e.g. public transport)&#xA;* Maps (local area, transport, etc.)&#xA;* Hand written notes (e.g. shopping lists)&#xA;* Addresses (physical, email, phone, URLs, etc.)&#xA;* Future purchases (e.g. book covers)&#xA;* Menus (for takeaway restaurants)&#xA;* Show times (cinema, theatre, etc.)&#xA;* Sharing directions with another (I take regular &#34;bread crumb&#34; pictures of a route and send the whole set to someone else)&#xA;* Opening hours (for museums, shops, restaurants, etc.)&#xA;* QR Codes and other barcodes (either for later processing or to use instead or the paper printouts [e.g. tickets])&#xA;&#xA;All of these things would obviously be better when using a higher quality camera but can often be readable/useable with even a very basic camera, particularly if the phone has some image zoom ability. &#xA;&#xA;Now obviously I am not alone in using my phone camera like this. I see many people with higher end smartphones (with very good cameras) doing some of these things but they tend to forget that when they question why I even bother with such a terrible camera.&#xA;&#xA;So in summary, even a terrible camera is still a pretty great thing! 😉&#xA;&#xA;⁂&#xA;&#xA;¹ The Lightphone II actually does appear to have a camera on the front but it is purely used to detect ambient light conditions, so that the backlight knows when to switch on behind its e-ink display.&#xA;&#xA;⁂&#xA;&#xA;=&gt; ../contact.gmi 📝 Comment&#xA;=&gt; . 🔙 Gemlog index&#xA;=&gt; .. 🔝 Capsule index&#xA;</content>

<link href="//ruario.flounder.online/gemlog/2022-09-04_what_is_the_point.gmi" rel="alternate"></link>

<summary type="text/plain"></summary>

<title>Late Night updates</title>

<updated>2022-09-03T00:00:00Z</updated>

<id>tag:ruario.flounder.online,2022-09-03:/gemlog/2022-09-03_Late-Night-updates.gmi</id>

<content type="text/plain"># Late Night updates&#xA;&#xA;I work as the QA lead for the Vivaldi web browser. Being a small team I also have an additional role where I am responsible for much of the release process for our desktop browser, including version daily versions to a small external (volunteer) testing group, weekly public &#34;snapshots&#34; (sort of like beta releases for the upcoming version), and major and minor updates to our stable version.&#xA;&#xA;=&gt; https://vivaldi.com/ Vivaldi web browser&#xA;&#xA;For those who do not know, Vivaldi is a Chromium based browser and as such our work is highly dependent on the upstream Chrome team. That team puts out their own releases during east coast US working hours, while the Vivaldi team is largely based in Europe. That can occasionally be problematic if a critical security update is need.&#xA;&#xA;We received a bit of a heads up on Thursday that a Chrome update was likely to happen on Friday, due to a zero-day exploit (CVE-2022-3075). This meant we expected to have to release our own version, with the same fix (which we had already identified) close to midnight if we wanted to have something ready for our users in a timely fashion. &#xA;&#xA;Well… it happened and we did it! Our blog post was released within 25 minutes of the Chrome one. \o/&#xA;&#xA;🤔 I wonder if any of the other Chromium based browsers reacted as fast as us? &#xA;&#xA;=&gt; https://vivaldi.com/blog/desktop/minor-update-six-5-4/ Minor update (6) for Vivaldi Desktop Browser 5.4&#xA;=&gt; https://chromereleases.googleblog.com/2022/09/stable-channel-update-for-desktop.html Stable Channel Update for Desktop (Chrome 105.0.5195.102)&#xA;=&gt; https://vivaldi.com/blog/lets-go-under-the-browser-hood-with-vivaldis-yngve/ How a Chromium browser is maintained and updated&#xA;&#xA;P.S. Hi Pathduck 😉&#xA;&#xA;⁂&#xA;&#xA;=&gt; ../contact.gmi 📝 Comment&#xA;=&gt; . 🔙 Gemlog index&#xA;=&gt; .. 🔝 Capsule index&#xA;</content>

<link href="//ruario.flounder.online/gemlog/2022-09-03_Late-Night-updates.gmi" rel="alternate"></link>

<summary type="text/plain"></summary>

<title>Brakes on a unicycle</title>

<updated>2022-09-03T00:00:00Z</updated>

<id>tag:ruario.flounder.online,2022-09-03:/gemlog/2022-09-03_Brakes-on-a-unicycle.gmi</id>

<content type="text/plain"># Brakes on a unicycle&#xA;&#xA;About a month ago I started riding with a brake on my 36 inch wheeled unicycle. The point of the brake is not to be able to brake to a quick, hard stop. While there are some people who can pull that off, it is not my primary aim. &#xA;&#xA;## How do people use brakes?&#xA;&#xA;If you consider a brake on a bicycle it serves two purposes.&#xA;&#xA;* To bring the bike to a complete stop&#xA;* Controlling speed (especially on descents)&#xA;&#xA;It is the latter which I needed some assistance with. Before the summer holidays I was having a lot of pain in my knees. Initially I attributed it to a crash I had on my Halfbike—despite the name a Halfbike is not a unicycle. &#xA;&#xA;=&gt; https://halfbikes.com Halfbike&#xA;&#xA;## The real problem with my knees&#xA;&#xA;After a while I realised the crash was not the issue, although I am sure it did not help! I have actually had knee problems on and off for a while now, starting before this crash. The real problem here is that I ride down a lot of steep hills. To control your speed downhill on a unicycle (without a brake) you need to hold back the wheel with your legs, as (most) unicycles are &#34;fixies&#34; [the cranks and wheel always move in unison]. Trying to control speed in this way obviously puts a lot pressure on your knees. After rides involving a lot of hills I would really feel it. So the idea behind the brake is primarily to take that pressure off my knees by applying light force to the brake instead. &#xA;&#xA;It certainly works but it has taken a little getting used to. I learnt to unicycle as a kid and in the last three years I have been regularly commuting on a unicycle, and yet, I had never tried a unicycle with a brake before.&#xA;&#xA;## Why unicycling with brakes is weird (for me)&#xA;&#xA;On a unicycle the forward/backward balance is in part controlled by micro adjustments to your speed. If your body starts to fall forwards, speeding up will allow the wheel to catch up with your body. Similarly if your body starts to fall backwards slowing down the wheel will allow your body to catch up with it.&#xA;&#xA;When I started with the brake I noticed something that (to me) felt odd. When cycling down a steep hill and applying the brake too much I would lean forward and then my instinctive tendency was to try and speed up to counteract this. Thus I did not actually slow down, I went faster! In addition, I then had to work harder to overcome the brake. 😆&#xA;&#xA;I am slowly getting it however. Best of all… no more problems with my knees! 👍&#xA;&#xA;⁂&#xA;&#xA;=&gt; ../contact.gmi 📝 Comment&#xA;=&gt; . 🔙 Gemlog index&#xA;=&gt; .. 🔝 Capsule index&#xA;</content>

<link href="//ruario.flounder.online/gemlog/2022-09-03_Brakes-on-a-unicycle.gmi" rel="alternate"></link>

<summary type="text/plain"></summary>

<title>Two-Factor Authentication with One Time Passwords/Tokens (take 2)</title>

<updated>2022-03-10T00:00:00Z</updated>

<id>tag:ruario.flounder.online,2022-03-10:/gemlog/2022-03-10_MFA-involving-TOTP-simplified.gmi</id>

<content type="text/plain"># Two-Factor Authentication with One Time Passwords/Tokens (take 2)&#xA;&#xA;[7-10 minute read]&#xA;&#xA;Yesterday I wrote a post where I attempted to explain Multi-factor Authentication and by extension Two-factor Authentication (2FA) from (what I thought was) a very high level. &#xA;&#xA;=&gt; 2022-03-09_MFA-involving-TOTP.gmi Multi-Factor Authentication involving TOTP&#xA;&#xA;However since then I got feedback from a couple of people who read it and they told me it was still too complex. No names but one of my friends simply stated,&#xA;&#xA;&gt; Hey buddy I didn&#39;t understood nothing&#xA;&#xA;🤔&#xA;&#xA;To be clear, this is not a failing on their part but rather a failing on my side, if my intention was to teach people stuff. And I guess it was. I said it was a &#34;brain dump&#34; but then I did share it with others, so obviously I expected it to be understandable to more people than just myself.&#xA;&#xA;So here is my second attempt, where I will try and reduce this down further. Wish me luck, as I will probably fail… again. 😆&#xA;&#xA;## What is 2FA? &#xA;&#xA;2FA means that in addition to the normal, self-selected password (that almost all websites use), you have some other way for the website to double-check who you are. This is often done with a &#34;TOTP app&#34; or &#34;Token-Based Authenticator&#34;, which is normally installed on your smartphone. That app on your phone is the &#34;second factor&#34; (with your normal password being the first).&#xA;&#xA;TOTP is a term that gets used often when speaking about 2FA and it stands for &#34;time-based one time passwords&#34;. They are called &#34;one time passwords&#34; (OTPs) because every 30s (or so) they change. You can use them once and then you need a new one. The app on your phone tells you what the current one is. &#xA;&#xA;☞ Many sites will call &#34;one time passwords&#34;, &#34;tokens&#34; instead. This is probably to avoid confusion with (regular-style) passwords.&#xA;&#xA;Since you are getting this token from an app on your phone, if you do not have that phone (and app), you cannot login to a site that is setup to use 2FA.&#xA;&#xA;## How is 2FA setup with a TOTP app?&#xA;&#xA;The process of setting up that second &#34;factor&#34; typically works like this:&#xA;&#xA;* You login to the website as normal and request to setup 2FA, which is sometimes alternatively called Two-Step Verification (2SV).&#xA;* The website generates a bit of text that they tell you (and only you). Often called a &#34;key&#34; (or sometimes &#34;code&#34;, &#34;seed&#34; or &#34;secret&#34;). Normally they will provide this key embedded within a QR code [a form of 3D barcode].&#xA;* You install the special TOTP app (Token-Based Authenticator) on your phone and scan this barcode.&#xA;* The website will also likely offer you some &#34;backup codes&#34; (see § &#39;What if I lose or upgrade my phone?&#39; for details of what these are and what to do with them).&#xA;&#xA;## How the 2FA login process works with a TOTP app&#xA;&#xA;When you want to login to the website next time, it asks for the normal password, which you enter from memory (or if you use a password manager, you get it from there). Next it will ask for the &#34;One Time Password&#34; (or Token). You can then look at the app on your phone and copy over the current one that the software has generated. Because the website also has a copy of the same key (they gave it to you in the first place after all), they can use their own software (with that same key), to generate a matching token. If they do both match… you are in!&#xA;&#xA;## What if I lose or upgrade my phone?&#xA;&#xA;### Backup codes&#xA;&#xA;Since your copy of the key was stored in an app on your phone, if you lose the phone you cannot login. To prevent this, the site likely also gave you some &#34;backup codes&#34;. Typically they will give you between one and ten of these. They are short little pieces of text that you can use to login instead of the generated tokens, for emergency situations. Normally sites will tell you to &#34;store these securely&#34;… but without telling you how. 😆&#xA;&#xA;They often do not want to say how because there are several pitfalls, and nobody likes to get stuck in messy details! But let&#39;s discuss a few anyway:&#xA;&#xA;* If you save the backup codes on your phone and your phone is stolen, they will not help… since… you know… you don&#39;t have the phone anymore. 😆&#xA;* If you save them on your desktop/laptop in a regular (i.e. non-encrypted) file, that is generally not considered secure.&#xA;* If you email or SMS them to yourself, then you risk exposing them because these are not normally secure transfer methods.&#xA;&#xA;You could encrypt a file containing them, print them out¹ or just write them down and store them somewhere safe in their house (like… &#39;a safe&#39;). Depending on how paranoid you are, you may also want to make a copy and store them at the home of a trusted friend or family member. Then you can still access everything even if your house burnt down. I am just saying. 🤷🏼&#xA;&#xA;You need to decide what is a safe way to store them, that works for you, taking into account the various risks. It is annoying but spend some time thinking about it now and you will save yourself a lot of hassle in the future. Don&#39;t be tempted to just think, &#34;I do not need them&#34;. Depending on which TOTP app you use, you may even need them when upgrading your phone, which is something everyone does eventually. This is because many TOTP apps do not provide a way to securely transfer your keys to the new phone.&#xA;&#xA;☞ For a lost, stolen or compromised phone, reset the 2FA settings for all sites that had TOTP keys configured on that device.&#xA;&#xA;### Back up your keys&#xA;&#xA;It is also very worthwhile &#34;securely storing&#34; the original QR codes that you scanned with your phone during the setup stages, or at the very least, carefully noting down the raw keys (along with the name of the respective accounts they are associated with). This will make things a lot easier for you in the future. You can then just quickly scan (or type in) your saved keys in the TOTP app on your new phone. &#xA;&#xA;For comparison, if you wanted to use backup codes, you would need to do the following for each and every site you had previously configured: log in and find the account security settings; temporarily disable 2FA; perform the entire 2FA setup process again.&#xA;&#xA;There is an argument to be made that if you have the original keys, you do not need backup codes but I would suggest you take both to give yourself more options. For example, the backup keys can be used directly whilst you await a new phone, while the key must be added to a TOTP app first, before it is usable.&#xA;&#xA;## When selecting a TOTP app, consider the options&#xA;&#xA;While many TOTP apps will not provide any way to backup, export or sync the keys, to get them onto new (or multiple) devices, that is not universally true. Syncing your TOTP keys to a second device (so long as the method is secure) is very handy. If your phone is lost or stolen but you have another app already configured on your desktop with a recent sync of these keys, you won&#39;t need to use those backup codes to gain access when resetting your 2FA-enabled accounts (though please keep backup codes safe anyway, just in case). On the other hand syncing them to a multitude of devices increases the likelihood that someone who should not have access, gets access, if any one of these devices is compromised.&#xA;&#xA;Again, decide what is best for you. Something to keep in mind, which is worse… having accounts compromised or being permanently locked out of the accounts because you cannot access your phone or your backup codes?&#xA;&#xA;If you just want a couple of quick recommendations:&#xA;&#xA;=&gt; https://play.google.com/store/apps/details?id=com.beemdevelopment.aegis Aegis Authenticator [Android]&#xA;=&gt; https://apps.apple.com/us/app/raivo-otp/id1459042137#?platform=iphone Raivo OTP [iPhone]&#xA;&#xA;And that, my friends, is it… for now… … well at least until someone tells me this was still too confusing! 😉&#xA;&#xA;⁂&#xA;&#xA;¹ If you do not have a printer and do not know how to encrypt files, another option would be a  small, external USB disk. You could save backup codes, raw keys or screenshots of the setup QR codes to this. Keep the disk somewhere safe and secure in your home. Only connect it to your computer when you want to update the files or need to display them (e.g. if you want to re-scan QR codes into a new TOTP app on your phone).&#xA;&#xA;⁂&#xA;&#xA;=&gt; ../contact.gmi 📝 Comment&#xA;=&gt; . 🔙 Gemlog index&#xA;=&gt; .. 🔝 Capsule index&#xA;</content>

<link href="//ruario.flounder.online/gemlog/2022-03-10_MFA-involving-TOTP-simplified.gmi" rel="alternate"></link>

<summary type="text/plain"></summary>

<title>Multi-Factor Authentication involving TOTP</title>

<updated>2022-03-09T00:00:00Z</updated>

<id>tag:ruario.flounder.online,2022-03-09:/gemlog/2022-03-09_MFA-involving-TOTP.gmi</id>

<content type="text/plain"># Multi-Factor Authentication involving TOTP&#xA;&#xA;Until recently I have largely avoided MFA (Multi-Factor Authentication) for anything but my bank. In fact (for my bank) I didn&#39;t really even choose this, rather all banks in Norway require it. 😉 I was issued with a small &#34;key fob&#34; (hardware token generator) that I use as part of the login process.&#xA;&#xA;Yes I have used SMS-based one time passwords historically on some sites but such setups are problematic and not much of a security improvement. Some argue they make things worse because the false sense of security stops people using higher quality passwords. Here are just a couple of articles that scratch the surface of this topic.&#xA;&#xA;=&gt; https://arstechnica.com/information-technology/2021/10/company-that-routes-sms-for-all-major-us-carriers-was-hacked-for-five-years/ Company that routes SMS for all major US carriers was hacked for five years&#xA;=&gt; https://www.vice.com/en/article/y3g8wb/hacker-got-my-texts-16-dollars-sakari-netnumber A Hacker Got All My Texts for $16&#xA;&#xA;So over the years I have been relying on passwords (more recently with a password manager) for all my access to websites. My avoidance of extra &#34;factors&#34; for more secure logins, has primarily been down to misunderstandings on my part.&#xA;&#xA;Now that I have spent more time understanding this topic I have decided to &#34;brain dump&#34; my thoughts and discoveries below. This post is going to be a little long (20-30 mins read time) but perhaps it will be helpful to someone out there. If not, it was still helpful to me in organising my thoughts. 😉&#xA;&#xA;## Knowledge, possession, inherence and magic&#xA;&#xA;When talking about MFA (of which 2FA [Two-Factor Authentication] is a form), the most commonly mentioned factor types are:&#xA;&#xA;* Knowledge: something you know, like a password&#xA;* Possession: something you have, like a key&#xA;* Inherence: something you about you (usually biometric), like a fingerprint&#xA;&#xA;The first (knowledge) is all I have been using (in the form of passwords) until recently because the others did not appear to be viable options for me. The biggest part of my misunderstanding was that making use them would likely involve me needing to upgrade my phone or buying more (expensive) &#34;things&#34;, both of which I would like to avoid. Most people making use of inherence are using their smartphone, via a fingerprint reader or camera with technology like &#34;Face ID&#34;—interestingly in many cases these are still used in a one factor sense, replacing a password, rather than being used in addition. For the possession part, many people use apps like &#34;Google Authenticator&#34;, which is only available on smartphones.&#xA;&#xA;I don&#39;t have a smartphone and have no current intention of buying one (a story for another time), thus I figured I couldn&#39;t really do either of the last two factors easily. Yes I could get a Yubikey (possession again) but I was unsure if I wanted to commit to that both in terms of the monetary cost and the effort in terms of management of backups.&#xA;&#xA;The (recent) change was that the company I work for (Vivaldi) has being pushing towards using 2FA and I needed to look at this again. We quickly settled on TOTP (time-based one time passwords) as being the first thing we would work towards. &#xA;&#xA;&gt; Any sufficiently advanced technology is indistinguishable from magic - Arthur C. Clarke&#xA;&#xA;TOTP is the standard that Google Authenticator is using behind the scenes and once I read up on this, I quickly realised that much of the magic I imagined to be present wasn&#39;t there. 😆 That is not to say it is bad, it is just not what I thought it was. I sort of thought that this was Google tech, rather than a standard, in part because many sites specifically mention &#34;Google Authenticator&#34; as though it is the only option. I also incorrectly assumed that the reason you find apps like Google Authenticator only on phones is that they were tied to some special hardware included in the phone. They aren&#39;t and indeed, whilst the majority TOTP implementations are for mobile versions, there are certainly many desktop programs that can generate TOTP codes once you look around. Indeed there are examples of TOTP software being written in 20 lines of python code.&#xA;&#xA;=&gt; https://github.com/susam/mintotp MinTOTP: a minimal TOTP generator written in Python&#xA;&#xA;## What is TOTP?&#xA;&#xA;Let&#39;s consider how TOTP actually works. At least on a high level. &#xA;&#xA;One time passwords (also called &#34;tokens&#34;) are about creating a relatively short passcode that appears to be random. The implementations we commonly see used are based on a key (also called code, seed or secret) and a counter. These are combined together via a complex calculation (involving a &#34;cryptographic hash function&#34;). This is then truncated down to 6 digits (default). The point of this process is to get a result that is hard to reverse. If you know the result (and even the value of the counter), you cannot work out what the key is, helping to keep that key secure. You do not need the original key to login, just the generated OTP.&#xA;&#xA;The system works like this. The website generates the initial key (some alphanumeric text) that it shares with you (and only you). You store this key inside some authentication software that knows how to do the &#34;complex calculation&#34; and keeps track of the counter value. When you want to login, you use your software to calculate the OTP (it will use the key and the counter) and the website&#39;s software (which also knows the key and the counter) does the same. Since you both have the same inputs and do the same calculation you should get the same result, even though the one time password appears to be &#34;random&#34; from a human perspective.&#xA;&#xA;The older, standard implementation of this was called HOTP (HMAC [hash-based message authentication codes] one-time password). Here the counter is updated each time a OTP is used (generated). However if you (the user) view &#34;extra&#34; OTPs in your HOTP capable software without logging in to the website, the counters (yours and the website&#39;s) can get out of sync. Thus there is some re-syncing logic to deal with this. I won&#39;t go into that now because this post is already going to be very long and I really want to focus on TOTP but here is a link if you are interested.&#xA;&#xA;=&gt; https://en.wikipedia.org/wiki/HMAC-based_one-time_password HMAC-based one-time password (Wikipedia)&#xA;&#xA;While there are likely still some places using HOTP and popular authentication applications support it, most sites have moved onto a newer standard, TOTP. The counter in time-based OTP is you guessed it, time. More specifically the number of seconds since the start of the year 1970, with no timezone offsets (yes… really! 😉). So long as your authentication software and the website both have accurate sources of time, the counter will remain in sync.&#xA;&#xA;=&gt; https://en.wikipedia.org/wiki/Unix_time UNIX Epoch time&#xA;&#xA;There are a few other considerations. For TOTP, one time passwords are typically created at 30 second intervals (default). Shorter would be more secure as it would reduce the window of attack where a third party, who somehow got access to the current OTP, would be able to make use of it. However, it is also infeasible for a human to enter a password fast enough for very short intervals (e.g. every second). So we have 30 seconds as reasonable compromise. Websites using such systems will often however calculate the password for the previous and next 30 seconds and allow these to be entered a little bit early or a little bit late. This is done for two reasons. If your clock has a slight drift (i.e. it gained or lost time relative to the website) or because you might have received the code just as it was changing. &#xA;&#xA;Also if you have ever used a Token-Based Authenticator (HOTP/TOTP app) like Google Authenticator on your phone you have likely scanned a QR code. What is that all about? Well it is just the raw key and some other information, such as your username and the website that issued the key, encoded and presented in QR code format. There are also sometimes optional values, like the number of digits displayed or the time intervals (i.e. if the website wants more or less than 30 seconds). Rarely do websites change these values though as some popular TOTP apps ignore any change from the defaults anyway.&#xA;&#xA;=&gt; https://github.com/google/google-authenticator/wiki/Key-Uri-Format Key Uri Format, Google Authenticator wiki&#xA;&#xA;Scanning a QR code makes it easier to quickly transfer all this information into your phone for storage in your TOTP app. That said, normally you will also find the raw key written out on screen as well in case you want/need to enter it manually (e.g. a faulty camera on your phone). If the raw key is not written on screen there may be a link that says something like &#34;Can&#39;t read the code, click here&#34; which will then display it.&#xA;&#xA;## Is this really 2FA and why are the &#34;apps&#34; mobile based?&#xA;&#xA;So I will speculate here but I suspect I am on the right track. There are two reasons that readily occur to me.&#xA;&#xA;For TOTP to work it is exceptionally important that you have accurate time because without this your TOTP software will be creating the wrong key and thus you cannot login. Modern mobile phones are much more likely to have accurate time. They typically have access to multiple sources to accurate time keeping (internet-based time servers, cellphone towers and GPS). Modern computers are also pretty likely to have very accurate time keeping but sometimes time servers are not configured (or misconfigured) and additional accurate time sources are less likely to be available. For this reason you will still sometimes find computers that are slightly out of sync and since we are talking of relatively short timescales, that is pretty problematic.&#xA;&#xA;The other thing to consider is that you are basically using software as part of the possession factor. You do not normally know the shared key after your first receive it because that would be pretty hard for most users to remember and you are not going to use it directly anyway. You therefore &#34;possess&#34; it via the device that stores it. Anyone who wants to login to a site as you, needs to have &#34;the thing that generates codes&#34;, i.e. your mobile phone (in addition to the regular password).&#xA;&#xA;The concept of a second factor makes the most sense when the thing that generates the codes (your mobile in this case) is separate from the thing you are entering them on (your computer). If you have both your regular password (increasingly stored by people in a password manager) and the key used to generate your OTP on stored on the same computer, do you really have two factors? If you think of this another way, if your computer is comprised and you login with that computer the attacker potentially has access to both (the raw passwords and the raw TOTP key). The multiple factor concept was specifically designed to prevent this. On the other hand, if your TOTP generator is on your phone then a compromised computer potentially gives the attacker access to your password store but not your underlying TOTP code generation (because they do not have the raw key). They may get the OTP you manually input that one time (which granted might be enough for their attack) but at least they have no access to generate a future OTPs, so the attack vector is still somewhat reduced. &#xA;&#xA;Incidentally some password managers (e.g. 1Password) can store the both your passwords and your TOTP keys, and then present both to a website for you. This is still likely an improvement over just a password, as the &#34;one-timeyness&#34; makes it harder for nefarious third parties, by limiting the window or attack (and of course it is highly convenient for you) but at this stage it is clear that it is very much single factor. To be 100% fair to 1Password, they fully admit and understand this.&#xA;&#xA;=&gt; https://blog.1password.com/totp-for-1password-users/ TOTP for 1Password users (blog post)&#xA;&#xA;The fact that requiring TOTP in addition to a password is not always fully 2FA might be part of the reason that some providers prefer the terminology &#34;two-step authentication&#34; and reserve terms such as 2FA for the likes of hardware token (a Yubikey and Titan key) when used in addition to passwords. They are perhaps covering their bases in their choice or terminology. Somewhat related to this, Google doesn&#39;t even allow login via TOTP for users who have joined their &#34;Advanced Protection Program&#34;. Only a hardware token will do. It is widely agreed that such setups are more secure for this and other reasons, which I will not go into here.&#xA;&#xA;=&gt; https://landing.google.com/advancedprotection/ Advanced Protection Program&#xA;&#xA;## Backup codes and the problems with managing them&#xA;&#xA;While TOTP is a very clever system and increases security (even in scenarios where it is not fully adding a second factor), it can work against you when things go wrong. If OTPs become unavailable, you could be permanently locked out of your account even if you know the password. That this is intentional and baked into the design. &#xA;&#xA;Consider a typical scenario where your TOTP authentication software is running on your phone and you lose your phone. Like losing the keys to your house or car, you now have a serious problem. While there are exceptions, many popular TOTP applications will not sync copies your raw TOTP keys anywhere, nor provide any way to export them. This is done specifically to prevent them getting leaked or captured by those wishing to compromise you. However, if you lose your phone that can leave YOU in a very awkward situation as well.&#xA;&#xA;To deal with this, as part of the signup process, most sites will also offer you several &#34;backup codes&#34;. These can be used in the event you lose access to your TOTP app or the hardware it is running on. The advice from websites is to store these &#34;securely&#34; but what does that mean? You cannot just store these on your phone alongside your TOTP app because if you lose your phone, you would lose them too and thus they did not help you in the slightest. You can&#39;t just send them to yourself via email or some other messenger. That might expose them on route, particularly with unencrypted email or SMS. In addition if you lose access to your email or messaging accounts in the future (because they are potentially also protected by TOTP) you could not access backup codes when you needed them anyway. Maybe you would want to store them on your desktop machine but then you would need to encrypt them to keep them secure in case your computer was compromised and what if your hard drive fails one day? Perhaps you have a password manager that can store encrypted/secure notes where you can place them? But if your backup codes are stored alongside your passwords, then you have certainly lost factor. Even if you are ok with that, if you setup your password manger to use TOTP codes for login, you would not be able to login in the first place. You could write them down (or print them out) and store them in a safe place within your house (like an actual safe). And if your house burns down? 🤔&#xA;&#xA;In reality there is no perfect answer that is correct for everyone. Which is worse… having accounts compromised or being permanently locked out of the accounts because you lost something? So stop and think about how you will access them in the future if anything goes wrong, while weighing up if they are &#34;securely&#34; stored. &#xA;&#xA;You might even want to make a second copy and store them in two &#34;secure&#34; places. Yes this may increase the chances that they can fall into nefarious hands but also increases the chances they will be available to you, should you need them. The main point I am making here is that you really need to think this through carefully and work out what is right &#34;for you&#34;. But one thing you should not do is just ignore the backup codes and think you don&#39;t need them. It is actually pretty likely that you will want them at some point.&#xA;&#xA;## QR code and raw key backup&#xA;&#xA;Since you are going to have to find a way to store those backup codes &#34;securely&#34;, I suggest you use whatever method you come up with, to store something else at the same time. More specifically the original key you were given and/or the QR code itself. This information was provided to you before the backup codes. If for example you decided to print out your backup codes, why not also print the page where the QR code was provided and store it with your backup codes? Or write down the raw key. This will make things a lot easier for you in the future, not just in the worst case of a lost, stolen or broken phone but also for various more every day scenarios.&#xA;&#xA;Since many TOTP apps provides no way to export codes and no syncing, this is your best chance to get this information. Consider you just want to upgrade your phone (something we all do eventually). Without the ability to export codes to your new device, upgrading a phone can be quite involved with regards to TOTP. The process would be to login to each and every service you have setup, temporarily disable 2FA then start the setup process again, this time scanning the new QR codes with your new phone. If you have 15 or more logins expect to spend over an hour doing this. Imagine instead you have print outs of the original 15+ QR codes. Now you can just scan them in one by one on your new phone and will likely be done in less than a minute. Same thing if you phone goes missing. No need to get out those backup codes, just install a new app on your replacement phone and scan away.&#xA;&#xA;Having the QR code or raw key also helps in other scenarios. Say there is a service that more than one person in your family has access to, like a VPN. In such scenarios people in the household will often share a password (hopefully securely via a password manager that supports this). But a password alone is not much help if this is a 2FA system using TOTP. The person with the app still has to provide OTPs to anyone who wants to login. Instead of this, more than one (trusted) member of the household could scan the same QR into their own phones. Now they would then both have a source for OTPs for that service. This is actually not a hypothetical scenario or even a new idea but the suggested practice of some providers. &#xA;&#xA;=&gt; https://support.surfshark.com/hc/en-us/articles/360011448379-How-to-enable-2FA-for-multiple-users- How to enable 2FA for multiple users?&#xA;&#xA;You might argue, do you even need the backup codes in such a case, but I would suggest that you should take them anyway. Printers can play up, and a poorly printed QR code might not be scalable when you come to need it. Similarly if you don&#39;t have a printer and wrote down backup information by hand those raw TOTP keys are quite long and you could easily write them down incorrectly (or perhaps you just have bad hand writing). Backup codes on the other hand are relatively short and you are often provided with several, thus there is a better chance that at least one is useable.&#xA;&#xA;## Consider the options available from your TOTP app &#xA;&#xA;While many TOTP apps will not provide key backup, sync or export (and this is often by design), this is not universally true. Some will do one or more of these and occasionally all three. Syncing your TOTP keys to a second device (so long as the method is secure) is very handy. If your phone is lost or stolen but you have another app already configured on your desktop with a recent sync you won&#39;t even need to rescan those backup up QR codes. On the other hand syncing them to a multitude of devices increases the likelihood that someone who should not have access, gets access, if any one of these devices is compromised.&#xA;&#xA;This is another area where you will have to make a judgement call. Now that you understand how the process works, look at what the apps your are using or choosing between actually do and the features they offer. A software that does not backup, export or sync keys is not necessarily worse than one that does. It is more secure but it is putting the onus on you to handle all of that. On the other hand syncing might decrease security but it is a lot more convenient, especially when things go wrong.&#xA;&#xA;Ok, I think that about covers my brain dump on 2FA and TOTP. Let me know if I missed something or if anything was not clear. Stay safe and stay secure. 👍&#xA;&#xA;⁂&#xA;&#xA;=&gt; ../contact.gmi 📝 Comment&#xA;=&gt; . 🔙 Gemlog index&#xA;=&gt; .. 🔝 Capsule index&#xA;</content>

<link href="//ruario.flounder.online/gemlog/2022-03-09_MFA-involving-TOTP.gmi" rel="alternate"></link>

<summary type="text/plain"></summary>

<title>Re: Can you submit phlogs to Antenna?</title>

<updated>2022-01-23T00:00:00Z</updated>

<id>tag:ruario.flounder.online,2022-01-23:/gemlog/2022-01-23_Re-Can_you_sumbit_phlogs_to_Antenna.gmi</id>

<content type="text/plain"># Re: Can you submit phlogs to Antenna?&#xA;&#xA;=&gt; gopher://sdf.org/0/users/r0/phlog/2022-01-22_Can_you_sumbit_phlogs_to_Antenna.txt Can you submit phlogs to Antenna?&#xA;&#xA;Yesterday as I was walking along and I had an odd thought.&#xA;&#xA;&gt; 🤔 I wonder if you could submit non-Gemini URLs to Antenna. &#xA;&#xA;I maintain a Gopher hole (largely as a mirror of my posts here), so obviously I had to try and amazingly it actually worked. I was likely as surprised as anyone, though pleased to see that it also brought a smile to @ew0k&#39;s face.&#xA;&#xA;&gt; I laughed out loud when I saw it 😄&#xA;&#xA;To anyone who did not like it and refused to click on my link (or could not due to the lack of Gopher client¹), no offence was intended. &#xA;&#xA;I did pose some questions in further edits to my original post, which I will relay here.&#xA;&#xA;* Is this a good thing of a bad thing?&#xD;&#xA;* Should it be fixed?&#xD;&#xA;&#xD;&#xA;To answer my own questions, personally I kind of like it. After thinking about this a little my own position is that whilst it is possible that some links are not accessible to certain users, this is perhaps not any worse than when there are posts in a language other than the reader understands. So you always ignore some links anyway. For everyone else it just adds to diversity.&#xD;&#xA;&#xD;&#xA;I also had a think about who might want to do this. Realistically probably nobody but I can think of at least two use cases.&#xD;&#xA;&#xD;&#xA;* A user who has always been on Gopher but reads stuff on Gemini might want to setup a simple account on a service like gemlog.blue and edit the index to add links to their phlog, without having to convert all phlog posts now or in the future (or fully dual host).&#xD;&#xA;* A user who wants to respond to a post on Gemini—or perhaps even a reply to a post that linked to their phlog in the first place. &#xD;&#xA;&#xD;&#xA;In summary, I think it is kind of nice if @ew0k leaves Gopher links working… but on the flip side I guess (most likely) nobody will ever use this &#39;feature&#39; and so I will not miss the support (or likely even notice) if it goes. Ultimately it is @ew0k&#39;s choice. Their service and their rules. &#xA;&#xA;P.S. @ew0k did confirm that http(s) URLs are blocked… before anyone tries that!&#xA;&#xA;[✍ 12:19 +0100] As a side test, Cosmos did not handle linking my first post with this but that is not a surprise and most likely &#34;not a bug&#34;. 😉&#xA;&#xA;=&gt; gemini://skyjake.fi/~Cosmos/ Cosmos&#xA;&#xA;&#xA;¹ Assuming you are on Linux, macOS or *BSD you might have a gopher client installed after all. You can use lynx or even curl! Indeed, gopher is such a simple protocol, that if you have netcat (nc) or telnet installed, you could even hack them into fetching the content.&#xA;&#xA;```&#xA;echo /users/r0/phlog/2022-01-22_Can_you_sumbit_phlogs_to_Antenna.txt | nc sdf.org 70&#xA;```&#xA;&#xA;```&#xA;( echo /users/r0/phlog/2022-01-22_Can_you_sumbit_phlogs_to_Antenna.txt ; cat - ) | telnet sdf.org 70&#xA;```&#xA;&#xA;[I am sure a Windows wizard could likely come up with a PowerShell solution.]&#xA;&#xA;⁂&#xA;&#xA;## Comments&#xA;&#xA;### 2022-01-22 20:18 +0100&#xA;&#xA;@Szczeżuja:&#xA;&#xA;&gt; Interesting experiment […]. From the technical side, and social one - how will Geminispace react for Gopher links. :-)&#xA;&#xA;### 2022-01-23 17:01 +0100&#xA;&#xA;@nytpu:&#xA;&#xA;&gt; I personally think that Gopherspace and Geminispace could stand to do a little more mixing.  Gopher isn&#39;t *that* hard to implement, so IMO most clients should support it (although Amfora is the only major one that doesn&#39;t AFAIK).&#xA;&#xA;Indeed, I agree there is little reason not to have this in clients. Certainly the people who like and frequent Gopherspace and Geminispace (particularly those that write phlogs/gemlogs) have far more in common than differences.&#xA;&#xA;&gt; It might just be you and me who think phlogs on Gemini aggregators are good though, because my aggregator &lt;gemini://nytpu.com/feed.gmi&gt; is the only one in Geminispace that also aggregates phlogs—well, other than Antenna now :P&#xA;&#xA;I have seen your feed and regularly check it. Indeed, now I think about it perhaps subconsciously having seen you mix them is what gave me the idea. &#xA;&#xA;### 2022-01-24&#xA;&#xA;=&gt; gemini://warmedal.se/~bjorn/posts/2022-01-24-non-gemini-urls-on-antenna-re-can-you-submit-phlogs-to-antenna.gmi Non-Gemini URLs on Antenna (Re: Can you submit phlogs to Antenna?)&#xA;&#xA;ew0k:&#xA;&#xA;&gt; […] Anyway, I&#39;ve decided that I only want gemini links on Antenna. […]&#xA;&#xA;While I feel slightly differently (see above) I totally understand and respect this decision. Plus now I get the noble honour of being the only person ever to submit a Gopher entry to Antenna, so I am calling that a win! 😜&#xA;&#xA;ℹ Check out @nytpu&#39;s comitium subscriptions if you do want a good way to follow both Gemini and Gopher content.&#xA;&#xA;=&gt; gemini://nytpu.com/feed.gmi nytpu&#39;s comitium subscriptions&#xA;&#xA;⁂&#xA;&#xA;=&gt; ../contact.gmi 📝 Comment&#xA;=&gt; . 🔙 Gemlog index&#xA;=&gt; .. 🔝 Capsule index&#xA;</content>

<link href="//ruario.flounder.online/gemlog/2022-01-23_Re-Can_you_sumbit_phlogs_to_Antenna.gmi" rel="alternate"></link>

<summary type="text/plain"></summary>

<title>Suggested Gopher improvements for Lagrange</title>

<updated>2022-01-19T00:00:00Z</updated>

<id>tag:ruario.flounder.online,2022-01-19:/gemlog/2022-01-19_Some_Gopher_improvements_for_Lagrange.gmi</id>

<content type="text/plain"># Suggested Gopher improvements for Lagrange&#xA;&#xA;I am quite a fan of Lagrange. There is no doubt that @skyjake has done an amazing job. Nonetheless it is clear that Gemini is the first class citizen and Gopher support is a little less refined. Here are a few humble suggestions.&#xA;&#xA;=&gt; gemini://skyjake.fi/lagrange/ Lagrange&#xA;&#xA;## Fix the &#34;Go to Parent&#34; (up) command&#xA;&#xA;If you are reading anything on Gopher and you go up one level, you will always hit a directory listing or gophermap. These are type 1 selectors. Thus (when using the &#34;Go to Parent&#34; command) the URL should change from &#39;*/0*&#39; to &#39;*/1*&#39;. Currently in Lagrange this part of the URL is not changed, meaning this feature is essentially broken for Gopher users, since you will end up viewing the raw gophermap. Put another way, the correct behaviour is &#39;gopher://example.com/0/dir/file.txt [up] → gopher://example.com/1/dir/&#39;, not &#39;gopher://example.com/0/dir/file.txt [up] → gopher://example.com/0/dir/&#39; as we currently have. Other Gopher clients that support &#34;up&#34; (such as VF-1) handle this correctly.&#xA;&#xA;[✍ 12:23 +0100] This is also a problem for the &#34;Go to Root&#34; command.&#xA;&#xA;=&gt; https://github.com/solderpunk/VF-1 VF-1&#xA;=&gt; gemini://gemi.dev/gemlog/2022-01-12-up-buttons.gmi Up Buttons for exploring capsules [✍ 11:36 +0100: added link]&#xA;&#xA;## Fix the &#34;Copy Page Source&#34; command&#xA;&#xA;Another clue that Lagrange is primarily a Gemini client is what happens when you visit a type 1 document and use &#34;Copy Page Source&#34;. Rather than having the gophermap copied to the clipboard, you get the Gemtext equivalent of the gophermap. Clearly, internally Lagrange converts the page to Gemtext to simplify display (which is fine) but when I want &#39;the source&#39;, I want the actual source. Currently the only way to access the source of a gophermap is to hand edit the URL from &#39;/1&#39; to &#39;/0&#39;, so that it is forced to display as a text file.&#xA;&#xA;## &#39;Linkification&#39; of plain text&#xA;&#xA;Ok, this last one is not a bug at all but rather a feature request. Some Gopher clients (e.g. Geminaut and VF-1) will find links within plain text documents and make these links directly usable. For Lagrange that would mean making them clickable or being able to navigate to them using Alt/Option and a number. Given that many Gopher articles are plain text but contain reference links, this would make navigation far easier.&#xA;&#xA;=&gt; gemini://gemini.marmaladefoo.com/geminaut/ GemiNaut&#xA;=&gt; 2021-12-14_Linkification_in_gopher_clients.gmi Linkification in Gopher clients&#xA;=&gt; 2021-12-16_Linkification_in_gopher_clients_Part2_I_am_stupid.gmi Linkification in Gopher clients (Part 2)&#xA;&#xA;## Final thoughts&#xA;&#xA;These are just improvements I would personally love to see. Of course, your time is your own @skyjake and obviously you have your own priorities, so if you do not want to do these now (or ever) for any reason at all, that is of course absolutely fine (you owe me no explanations). Either way I still offer you a massive thanks for everything you have done thus far. Keep being awesome!&#xA;&#xA;⁂&#xA;&#xA;[✍ 12:38 +0100: Here are a couple more feature requests, now I think of them! 😉.]&#xA;&#xA;## Font options for plain text&#xA;&#xA;While I understand that monospace fonts generally make the most sense for plain text documents (especially if they contain code or ASCII art), non-monospace is often nicer to read.&#xA;&#xA;If I happen to be a user who primarily reads phlogs that do not make use of code or ASCII art, it would be nice if I could tell Lagrange not to use monospace fonts for plain text. If I could flip this with a keyboard shortcut or better yet, if Lagrange supported site specific preferences, so much the better.&#xA;&#xA;## Plain text reflow of &#39;paragraphs&#39; &#xA;&#xA;A command (and/or shortcut) to reflow plain text in paragraphs (up to the next double new line) would also be nice. This should not be enabled by default (obviously) but if the user could trigger it or again set as a site specific preference, that would be amazing. This could be particularly nice on mobile, where the viewport is narrow in the standard orientation and many gopher text documents have a relatively big (hard) line wrap.&#xA;&#xA;[✍ 12:52 +0100] When doing this reflow, avoiding two line &#39;paragraphs&#39; where the second line starts with characters like &#39;-&#39;, &#39;=&#39;, &#39;~&#39; would also likely protect most heading types. So long as the user can quickly and easily flip this on and off (keyboard shortcut for desktop and perhaps a button, or swipe action for mobile), I don&#39;t think this has to be perfect to have some value. This might also be interesting for Gemini users who encounter plain text files.&#xA;&#xA;⁂&#xA;&#xA;## Comments&#xA;&#xA;### 2022-01-20 06:30 +0100&#xA;&#xA;@skyjake:&#xA;&#xA;&gt; These are very good and thoughtful improvement ideas!&#xA;&gt;&#xA;&gt; * Go to Parent/Root: Yeah, I&#39;ll fix these.&#xA;&gt;&#xA;&gt; * Copy Page Source: I&#39;ll address this eventually. It&#39;s related to a larger issue: https://github.com/skyjake/lagrange/issues/359&#xA;&gt;&#xA;&gt; * Links in plain text: More difficult to solve given the current implementation, but maybe there&#39;s a way to do something with text selection and URI detection.&#xA;&gt;&#xA;&gt; * Non-monospace plain text: Not too difficult to do, let&#39;s see.&#xA;&gt;&#xA;&gt; * Text reflow: This is a getting a bit specialized, but I can see why it&#39;s needed as Gopher assumes hard-wrapped text. (A few Gemini pages could also use this as some authors inappropriately use hard wraps.)&#xA;&#xA;=&gt; https://github.com/skyjake/lagrange/issues/359&#xA;&#xA;⁂&#xA;&#xA;=&gt; ../contact.gmi 📝 Comment&#xA;=&gt; . 🔙 Gemlog index&#xA;=&gt; .. 🔝 Capsule index&#xA;</content>

<link href="//ruario.flounder.online/gemlog/2022-01-19_Some_Gopher_improvements_for_Lagrange.gmi" rel="alternate"></link>

<summary type="text/plain"></summary>

<title>&#34;One shot&#34; sftp (a step further)</title>

<updated>2022-01-16T00:00:00Z</updated>

<id>tag:ruario.flounder.online,2022-01-16:/gemlog/2022-01-16_One_shot_part2.gmi</id>

<content type="text/plain"># &#34;One shot&#34; sftp (a step further)&#xA;&#xA;Previously, I wrote about using sftp to simulate the behaviour of scp, on systems where scp could not be used.&#xA;&#xA;=&gt; 2022-01-14_One_shot_sftp.gmi &#34;One shot&#34; sftp (simulating scp)&#xA;&#xA;Since then Szczeżuja wrote a little response on his tiny log about his own troubles getting scp working when uploading files to SDF and how he used tar pipes over ssh to transfer content. This is a good idea, especially if you want to transfer whole directory trees. It also allows you use compression, to speed up transfers and/or reduce bandwidth.&#xA;&#xA;=&gt; gemini://szczezuja.space/tinylog.gmi Szczeżuja&#39;s tinylog § Fri 14 Jan 2022 04:34:56 PM CET&#xA;&#xA;However, I should perhaps better explain why I wrote my initial post. Often systems are setup to limit to just sftp. In such cases there is no shell (and hence tar pipes cannot work) and no scp, which on many ssh severs (like OpenSSH) is tied to shell access and cannot be enabled on its own—at least not without installing and configuring further software like scponly (to better contain the shell environment). &#xA;&#xA;=&gt; https://github.com/scponly/scponly scponly&#xA;&#xA;The reason why scp is limited and usually tied to shell access seems to relate to security. Consider the following from the OpenSSH 8.0 release announcement (from 2019-04-17).&#xA;&#xA;=&gt; https://www.openssh.com/txt/release-8.0 OpenSSH 8.0 release announcement § Security&#xA;&#xA;&gt; This release contains mitigation for a weakness in the scp(1) tool and protocol (CVE-2019-6111): when copying files from a remote system to a local directory, scp(1) did not verify that the filenames that the server sent matched those requested by the client. This could allow a hostile server to create or clobber unexpected local files with attacker-controlled content.&#xA;&gt;&#xA;&gt; This release adds client-side checking that the filenames sent from the server match the command-line request,&#xA;&gt;&#xA;&gt; The scp protocol is outdated, inflexible and not readily fixed. We recommend the use of more modern protocols like sftp and rsync for file transfer instead.&#xA;&#xA;Regardless of the reasons why scp is often unavailable, the fact remains that the workflow is more convenient and faster than the default behaviour of the standard sftp client. A scp transfer is a one liner, while sftp requires the connection step, one or more &#39;put&#39; commands and a disconnect step (&#39;exit&#39;, &#39;quit&#39;, &#39;bye&#39; or &#39;^D&#39;). It is just a lot of typing for a quick file transfer. To be fair you do not have to use the classic sftp client. There are plenty of others. Perhaps the nicest for me is mounting the sftp connection using sshfs and indeed that is what I do on Linux. However I also tend to flip around between systems and &#39;sftp&#39; is always present, while other options may not be. Now a little shell script wrapper is technically &#39;extra software&#39; but it is tiny and does not need to be properly &#39;installed&#39;.&#xA;&#xA;Ok, I have written a lot already, so for anyone getting bored, here is the script.&#xA;&#xA;[✍ 12:10 +0100: updated to use printf instead of echo]&#xA;[✍ 16:30 +0100: removed extra quoting again as it prevented wildcards]&#xA;[✍ 18:44 +0100: added a fix for spaces in filenames]&#xA;[✍ 2022-01-17 08:43 +0100: another fix for wildcards]&#xA;[✍ 2022-01-17 11:06 +0100: stops on errors or unset variables; compacted slightly]&#xA;[✍ 2022-01-19 18:06 +0100: removed the need for &#39;sed&#39; and fixed shebang]&#xA;&#xA;```&#xA;&#xA;#!/usr/bin/env -S bash -eu&#xA;if [ &#34;${1:-}&#34; = &#39;-P&#39; ]; then&#xA;  p=&#34;${@:1:2}&#34;&#xA;  shift 2&#xA;fi&#xA;eval l=\${$#}&#xA;if [[ &#34;$l&#34; == *:* ]]; then&#xA;  for f in &#34;${@:1:$(($#-1))}&#34;; do&#xA;    printf &#39;%s\n&#39; &#34;put ${f// /\\ }&#34;&#xA;  done | sftp ${p:-} &#34;$l&#34;&#xA;else&#xA;  f=&#34;${1#*:}&#34;&#xA;  printf &#39;%s\n&#39; &#34;get ${f// /\\ } \&#34;$2\&#34;&#34; | sftp ${p:-} &#34;${1%%:*}&#34;&#xA;fi&#xA;```&#xA;&#xA;Before you run away, if you are considering using this, read § Limitations.&#xA;&#xA;## The new additions&#xA;&#xA;For anyone sticking around, my final example from the last post had the following issues.&#xA;&#xA;* It actually failed if you tried to upload more than 10 files at once.&#xA;* It created a new connection for every uploaded file, which is especially problematic with &#39;interactive authentication&#39; (password-based).&#xA;* It only handled uploads.&#xA;* It did not handle non-standard ports.&#xA;* [✍ 18:44 +0100] There were quoting problems with spaces in filenames.&#xA;&#xA;The first one is easy, I just forgot a couple of curly brackets (braces &#39;{}&#39;). The second was also obvious once I looked at it again. I just moved the sftp command out of the loop, so that it is a single process that receives all the puts together.&#xA;&#xA;To handle uploads and have things work like scp, we have to do a couple of things. Firstly scp expects the file(s) to be listed first on upload and the server first on download. Secondly, the server name always has a colon (&#39;:&#39;) at the end, followed by the destination. The colon actually helps because we can look for it in the final argument and if present we know it is an upload, otherwise we assume it is a download. For downloads we simplify things as do not need to run through a loop but just pick the correct part (server or file), either side of the colon.&#xA;&#xA;Personally, I need to connect to servers that use non-standard ports (e.g. 🐟flounder). For this I just collect the first couple of arguments, if the initial one is &#39;-P&#39;. More options could be supported using &#39;getopts&#39; but I don&#39;t (generally) need them and it would more than double the length of the script. I&#39;ll add more if I ever need them or perhaps just use sftp directly.&#xA;&#xA;[✍ 18:28 +0100] I am now filtering filenames with &#39;printf %q&#39; to escape spaces before they are piped to sftp—I cannot hardcode quotes around all filenames or wildcards will fail.&#xA;&#xA;[✍ 2022-01-17 08:43 +0100] &#39;printf %q&#39; was problematic as it prevented wildcards, like &#39;*&#39;. Instead, I now filter filenames with sed, purely to escape &#39;spaces&#39; before they are piped to sftp but not other characters that &#39;printf %q &#39; might be able to handle. The downside for this is if you had a file that actually contained an &#39;odd&#39; character like &#39;*&#39; it would need to be double escaped.&#xA;&#xA;And that is it… for now 😉. I hope this is useful to someone. If not… 🤷🏼&#xA;&#xA;### Limitations&#xA;&#xA;* You can&#39;t download multiple files like so, &#39;server:\{file1,file2\} .&#39;—I am not sure how many people knew about that scp feature anyway. You can still grab more than one file at a time using wild cards however, e.g. &#39;server:file\?.txt .&#39;&#xA;* You can&#39;t download to a directory with colon in the name, or &#39;on-the-fly&#39; rename a download to filename that contains a colon.&#xA;* You can&#39;t rename a file on upload like so, &#39;file1 server:file2&#39;—you can still copy to an already present remote directory, e.g. &#39;file1 server:dir&#39;.&#xA;* Only the -P (port) option is supported and (if you want to use it) it must be the first argument with a space to separate it from the port number.&#xA;* [✍ 16:30 +0100] You can&#39;t do server to server copies—another feature that might not even be widely known or used.&#xA;* [✍ 2022-01-17 08:43 +0100] If certain unusual characters actually appear in filenames—and are not intended as wildcards—they would need to be double escaped (e.g. a file named &#39;file*1&#39;, would need to be uploaded as &#39;file1 server:&#34;file\*1&#34;&#39;).&#xA;&#xA;⁂&#xA;&#xA;[✍ 16:30 +0100] Here is another version using only POSIX shell (tested against dash).&#xA;[✍ 18:44 +0100: fixed an issue with quoting problems when a filename contains spaces]&#xA;[✍ 2022-01-17 11:06 +0100: stops on errors or unset variables; compacted slightly]&#xA;&#xA;```&#xA;#!/bin/sh -eu&#xA;if [ &#34;${1:-}&#34; = &#39;-P&#39; ]; then&#xA;  p=&#34;$1 ${2:-}&#34;&#xA;  shift 2&#xA;fi&#xA;eval l=\${$#}&#xA;s () { printf &#39;%s\n&#39; &#34;$1&#34; | sed &#39;s/ /\\ /g&#39;; }&#xA;case &#34;$l&#34; in&#xA;  *:*)&#xA;    c=0; t=&#34;$(($#-1))&#34;&#xA;    for f in &#34;$@&#34;; do&#xA;      if [ &#34;$c&#34; -lt &#34;$t&#34; ]; then&#xA;        printf &#39;%s\n&#39; &#34;put $(s &#34;$f&#34;)&#34;&#xA;        c=&#34;$(($c+1))&#34;&#xA;      fi&#xA;    done | sftp ${p:-} &#34;$l&#34;&#xA;    ;;&#xA;  *)&#xA;    printf &#39;%s\n&#39; &#34;get $(s &#34;${1#*:}&#34;) \&#34;$2\&#34;&#34; | sftp ${p:-} &#34;${1%%:*}&#34;&#xA;    ;;&#xA;esac&#xA;```&#xA;&#xA;⁂&#xA;&#xA;=&gt; ../contact.gmi 📝 Comment&#xA;=&gt; . 🔙 Gemlog index&#xA;=&gt; .. 🔝 Capsule index&#xA;</content>

<link href="//ruario.flounder.online/gemlog/2022-01-16_One_shot_part2.gmi" rel="alternate"></link>

<summary type="text/plain"></summary>

<title>&#34;One shot&#34; sftp (simulating scp)</title>

<updated>2022-01-14T00:00:00Z</updated>

<id>tag:ruario.flounder.online,2022-01-14:/gemlog/2022-01-14_One_shot_sftp.gmi</id>

<content type="text/plain"># &#34;One shot&#34; sftp (simulating scp)&#xA;&#xA;Normally if you want to quickly send a file to a remote directory on an ssh server (as a one liner or within a script), the following would suffice.&#xA;&#xA;```&#xA;$ scp file server:path&#xA;```&#xA;&#xA;However, you may occasionally come across a server that only has sftp enabled and not scp. For example if you tried to scp files to an OpenSSH server configured as follows.&#xA;&#xA;```&#xA;Subsystem sftp internal-sftp&#xA;&#xA;Match User yourusername&#xA;  ChrootDirectory /home/%u&#xA;  ForceCommand internal-sftp&#xA;```&#xA;&#xA;You would get the following the error message,&#xA;&#xA;&gt; This service allows sftp connections only.&#xA;&#xA;In such a case, you can still simulate basic scp behaviour as follows.&#xA;&#xA;```&#xA;$ echo put file | sftp server:path&#xA;```&#xA;&#xA;Alternatively (if your shell supports it) you could use a &#39;here-string&#39; and save yourself a couple of characters.&#xA;&#xA;```&#xA;$ sftp server:path &lt;&lt;&lt; put\ file&#xA;```&#xA;&#xA;If you needed to upload multiple files, you could use a little loop.&#xA;&#xA;```&#xA;$ for f in file1 file2 file3; do echo put &#34;$f&#34; | sftp server:path; done&#xA;```&#xA;&#xA;ℹ This makes every put request a new connection to the server. So if you do this with &#39;interactive authentication&#39; (password-based), it is going to be very annoying as you will continually have to re-enter your password for each file upload. In such cases, switch to non-interactive authentication (if possible) or just do it the classic sftp way and save yourself a bunch of hassle. You might also want to skip the rest of this post. 😉&#xA;&#xA;The above example can be further improved with escaped quoting, so that you can use wildcards and not have to worry about spaces and other unusual characters in the file names.&#xA;&#xA;```&#xA;$ for f in file* ; do echo put &#34;\&#34;$f\&#34;&#34; | sftp server:path; done&#xA;```&#xA;&#xA;At this point it is probably a good idea to combine all of the above and make a very basic upload script.&#xA;&#xA;```&#xA;#!/bin/sh&#xA;s=&#34;$1&#34;&#xA;shift 1&#xA;for f in &#34;$@&#34;; do&#xA;  echo &#34;put \&#34;$f\&#34;&#34; | sftp &#34;$s&#34; || exit 1&#xA;done&#xA;```&#xA;&#xA;Give this a suitable name (e.g. &#39;xsftp&#39;) and use it as follows.&#xA;&#xA;```&#xA;$ xsftp server:path file*&#xA;```&#xA;&#xA;Using bash instead of bourne shell would allow you to specify &#39;server:path&#39; as the last option, rather than the first (just like scp), i.e.&#xA;&#xA;```&#xA;$ xsftp file* server:path &#xA;```&#xA;&#xA;To do that, here is the script above rewritten with some &#39;bashisms&#39;.&#xA;&#xA;```&#xA;#!/bin/bash&#xA;eval s=\$$#&#xA;for f in &#34;${@:1:$(($#-1))}&#34;; do&#xA;  echo &#34;put \&#34;$f\&#34;&#34; | sftp &#34;$s&#34; || exit 1&#xA;done&#xA;```&#xA;&#xA;And that is it. I hope this is useful to someone. If not… 🤷🏼&#xA;&#xA;⁂&#xA;&#xA;[✍ 2022-01-16 12:27] Here is a follow up post with a better version.&#xA;&#xA;=&gt; 2022-01-16_One_shot_part2.gmi &#34;One shot&#34; sftp (a step further)&#xA;&#xA;⁂&#xA;&#xA;=&gt; ../contact.gmi 📝 Comment&#xA;=&gt; . 🔙 Gemlog index&#xA;=&gt; .. 🔝 Capsule index&#xA;</content>

<link href="//ruario.flounder.online/gemlog/2022-01-14_One_shot_sftp.gmi" rel="alternate"></link>

<summary type="text/plain"></summary>

<title>Szczeżuja and Gopher</title>

<updated>2022-01-11T00:00:00Z</updated>

<id>tag:ruario.flounder.online,2022-01-11:/gemlog/2022-01-11_Szczezuja_and_Gopher.gmi</id>

<content type="text/plain"># Szczeżuja and Gopher&#xA;&#xA;Szczeżuja, this one is for you. 😉&#xA;&#xA;Firstly, I am glad to see your Gopher hole is up and running. &#xA;&#xA;=&gt; gemini://szczezuja.flounder.online/tinylog.gmi Szczeżuja&#39;s tinylog § Mon 10 Jan 2022 10:12:29 PM CET&#xA;&#xA;&gt; My gopher hole is set up with success!&#xA;&#xA;I read your earlier tinylog entry [§ Sun 09 Jan 2022 09:14:19 PM CET] and had been meaning to to contact you to let you know that part of the reason for your issues might have been that you had the wrong URL listed.&#xA;&#xA;&gt; gopher://sdf.org/users/szczezuja/&#xA;&#xA;That should have read &#39;gopher://sdf.org/1/users/szczezuja/&#39; (note the &#39;1&#39; to state the correct Gopher type).&#xA;&#xA;=&gt; gopher://sdf.org/1/users/szczezuja/ Szczeżuja&#39;s Gopher hole&#xA;&#xA;## Quotes style&#xA;&#xA;I was looking over your Gopher novice section now and I have to say the formatting looks nice. Particularly those quotes. 😜 There is also some great information there about Gopher and what you have discovered thus far. Thanks for putting all of that together. Those articles were a very interesting read. I had read (all?) of these posts on your capsule previously but it feels more correct to see them served over the Gopher protocol.&#xA;&#xA;=&gt; gopher://sdf.org/1/users/szczezuja/novice Gopher novice - Szczeżuja&#xA;&#xA;You might know that I recently updated my conversion script to a more classic quote style, as I was worried about people perhaps not understanding my suggested quote display:&#xA;&#xA;=&gt; 2022-01-10_Formatting_Gemtext_for_Gopher-further_tweaks.gmi Formatting Gemtext for Gopher - further tweaks ♊&#xA;&#xA;However, having seen your posts and how nice they look, I am beginning to have second thoughts and perhaps I will switch back to that style of quoting again as well. 😆&#xA;&#xA;## Feeling inspired&#xA;&#xA;Anyway… Inspired by your progress, I decided to put up my own little &#34;test Gopher Hole&#34; on SDF as well. I am not sure if I want to host it here long term but at least it gives me a playground to try stuff out and see how things look. &#xA;&#xA;=&gt; gopher://sdf.org/1/users/r0/ My (temporary?/test) Gopher hole&#xA;&#xA;I copied over much of my content but not everything. I skipped my journal (which is basically the same concept as your tinylog), an entry about starting to use Gemini and the posts about reformatting Gemtext. I felt like these things would all be a bit confusing.&#xA;&#xA;So far I am creating the two gophermaps (on the landing page and for the phlog) by hand. Also whilst I converted all my posts via my script initially, I also hand tweaked a few things here are there (e.g. rewriting internal URLs and removing some image links). If I really do want to maintain this Gopher hole in addition to my Capsule, I will need to automate more things, so that I post once and both are updated simultaneously, with link rewrites and the phlog list automatically updated. For now doing things manually helps me learn and understand (it also allows me to [re-]consider my formatting).&#xA;&#xA;In summary, once again thanks for your posts about Gopher and for being such an inspiration. &#xA;&#xA;⁂&#xA;&#xA;[✍ 17:44] I also went back to the fancy style of quoting, in my script and for my own posts. 😉&#xA;&#xA;⁂&#xA;&#xA;=&gt; ../contact.gmi 📝 Comment&#xA;=&gt; . 🔙 Gemlog index&#xA;=&gt; .. 🔝 Capsule index&#xA;</content>

<link href="//ruario.flounder.online/gemlog/2022-01-11_Szczezuja_and_Gopher.gmi" rel="alternate"></link>

<summary type="text/plain"></summary>

<title>Re: My favourite strange clocks</title>

<updated>2022-01-11T00:00:00Z</updated>

<id>tag:ruario.flounder.online,2022-01-11:/gemlog/2022-01-11_Re-My-favourite-strange-clocks.gmi</id>

<content type="text/plain"># Re: My favourite strange clocks&#xA;&#xA;=&gt; gemini://text.eapl.mx/my-favourite-strange-clocks My favourite strange clocks ~eapl&#xA;=&gt; gemini://warmedal.se/~bjorn/posts/2022-01-11-re-my-favourite-strange-clocks.gmi Re: My favourite strange clocks ~ew0k&#xA;&#xA;I have been meaning to reply to this one because it is a subject that interests me. I have read about a variety of clocks and owned a couple of unusual watches, along with a small collection more normal stuff like a few Casio digitals, a G-Shock, a hand wound/mechanical and a high precision quartz (+/-15 seconds a year, rather than a +/-20 seconds month, like most quartz). &#xA;&#xA;Here is some more on a couple of my watches (largely quotes from my other posts) and some thoughts on an older method of tracking time and how it can still be useful in the modern world.&#xA;&#xA;## Binary wristwatch&#xA;&#xA;I am wearing a binary watch as I write this. It is also BCD but encoded slightly different than the ones that eapl linked to. &#xA;&#xA;=&gt; http://www.glassgiant.com/geek/binaryclock/graphics/binclock_sample.gif How to read the Binary-coded decimal (BCD)&#xA;&#xA;In the first linked image from eapl&#39;s post there are six columns, representing each of the 6 individual decimal digits in a time like 12:00:00 and every decimal digit of this six is encoded separately. In mine the hours are as encoded as one binary number and the minutes as another. As such my watch has two rows, rather than 6 columns. &#xA;&#xA;=&gt; 2021-11-23_Binary_wrist_watch.gmi Binary wrist watch&#xA;&#xA;&gt; A couple of weeks back I bought a binary watch (well… BCD–binary coded decimal) on on whim. It was cheap and ugly but I figured it would be kind of fun to test myself a little. A quick mental puzzle whenever I want to know the time. 😀&#xA;&#xA;=&gt; /images/binary_watch.jpg My binary wrist watch&#xA;&#xA;&gt; Interestingly, while telling the time was somewhat cumbersome at first, it is rapidly getting easier. I have realised that I am starting to simply memorise quite a few positions, so that I can often read the time at a glance. I have also begun to notice patterns I had not really thought about or considered before wearing a watch like this […]&#xA;&#xA;## &#34;Slow watch&#34;&#xA;&#xA;ew0k wrote:&#xA;&#xA;&gt; It made me remember &#34;Slow Watches&#34;; a brand that makes watches with a face numbered 1-24 and only the one hand moving one lap every 24 hours. The markings on the clock face have a precision of 15 minutes, making it a little hard to estimate the time on the minute.&#xA;&#xA;I have one of those myself and used it almost continuously for a year and then on and off for different periods since then. When I eventually get around to changing the battery I might start using it again.&#xA;&#xA;Just noticing when it is directly between two markers will get you down to roughy 7½ minute precision and in reality, unless you are long sighted, you can do a little better and get within 5 minutes. But then you are really staring at it and not just glancing at it, which perhaps goes against the point. &#xA;&#xA;I actually mentioned this watch in my post about simple things. &#xA;&#xA;=&gt; 2022-01-06_Because_its_simple.gmi Because it&#39;s simple!&#xA;&#xA;&gt; &#34;Why do you own a watch with a single hand?&#34;&#xA;&#xA;[…]&#xA;&#xA;&gt; Because it is simple!&#xA;&#xA;[…]&#xA;&#xA;&gt; The watch in question has a single hand that moves one revolution over 24 hours. Even a young child who does not understand numbers, gets it.&#xA;&#xA;Despite the lack of precision the watch is perfectly good for the main purposes of a watch: seeing where you are in a day; being on time for anything that happens on 00, 15, 30, and 45 minutes past the hour. Which if you think about it, is actually the vast majority of things. In fact the inability to see the exact minute means you tend to turn up a little early for things (just in case), which is actually kind of nice. &#xA;&#xA;When you need a different, specific time, e.g. while waiting for public transport or timing things on a short scale, it is obviously less good but for those I would just pull out my phone or look at a different clock. Another nice use is when explaining the passage of a day to a young child. Initially they are confused (because it doesn&#39;t seem to move) but you can easily explain that different positions always correspond with different parts of the day, like breakfast or lunch. That is also true with a normal, watch with an analog interface but it is much clearer on this watch because there is no repetition (e.g. the 7 position on a normal watch could be morning/breakfast or bedtime). Having only one hand also greatly helps understanding because kids can mix these up. They also do not need to be able to read the number to get the concept, just understand the position. Even as an adult seeing the passage of the day like this is nice. Giving you a nice visual, like a pie chart or perhaps more accurately a sundial. If the hand points down it is night, to the left morning, top midday, right evening.&#xA;&#xA;## Hour glasses&#xA;&#xA;An additional, nice, visual method for keeping track of time that *does* work for the shorter timescales, when you need to keep track of an hour or less, is an &#34;hour&#34; glass (though they also sell them in other intervals e.g. 30, 15, 10, 5, 3, 1 minutes). I have also written about these previously in my journal.&#xA;&#xA;=&gt; /journal.gmi My journal § 2022-01-07 - 14:58&#xA;&#xA;&gt; Another simple thing that I like are hour glasses. I own a few. They were particularly great when explaining to my kids how long something was (in terms of time). For example I would flip one exactly one hour before their bed time, and then explain that when it finished it would be time to go to sleep. This is [very] useful in Norway, where in the summer it stays bright for a long time. A ten minute one is also useful when saying how much more &#34;screen time&#34; they have left or when preparing them for how long until &#34;we leave for X&#34;.&#xA;&#xA;&gt; While the kids have largely outgrown the need for this type of visual explanation of time, my youngest often still talks about stuff in terms of how many &#34;big hour glasses&#34;, rather than just hours. 😆 Anyway, if you have small kids I recommend them. They are both simple and &#34;easy to use&#34;. Also handy for adults who want to time things (e.g. cooking) without the annoying ring. Just remember to look at them (and flip them) from time to time. Well… unless you like burnt stuff!&#xA;&#xA;&gt; If you do buy one, do not buy something overly cheap and double check that is close to the rated duration (if not your should probably return it). I do have one &#34;10 minute&#34; hour glass that is actually around 7½ minutes. A little variation is too be expected (none are super precise) but that IMHO is too much.&#xA;&#xA;⁂&#xA;&#xA;=&gt; ../contact.gmi 📝 Comment&#xA;=&gt; . 🔙 Gemlog index&#xA;=&gt; .. 🔝 Capsule index&#xA;</content>

<link href="//ruario.flounder.online/gemlog/2022-01-11_Re-My-favourite-strange-clocks.gmi" rel="alternate"></link>

<summary type="text/plain"></summary>

<title>Formatting Gemtext for Gopher - further tweaks ♊</title>

<updated>2022-01-10T00:00:00Z</updated>

<id>tag:ruario.flounder.online,2022-01-10:/gemlog/2022-01-10_Formatting_Gemtext_for_Gopher-further_tweaks.gmi</id>

<content type="text/plain"># Formatting Gemtext for Gopher - further tweaks ♊&#xA;&#xA;=&gt; 2022-01-04_Formatting_Gemtext_for_Gopher.gmi Formatting Gemtext for Gopher ♊&#xA;&#xA;I thought some more about this since my original posting and a few things began to bother me.&#xA;&#xA;* Double space indentation to URLs and preformatted text [§ Preformatted]&#xA;* Descriptions for links could extend beyond the defined line length&#xA;* The ambiguity of quote display [§ Quotes]&#xA;* [✍ 14:31] Headings could extend beyond the defined line length&#xA;&#xA;So I have tweaked the script and &#39;rectified&#39; these, as follows.&#xA;&#xA;* URLs and preformatted text no longer have any indentation, so that line length is reduced and entire lines can be copy and pasted (without extraneous spaces).&#xA;* I leave the &#39;```&#39; at the start and end of preformatted sections in place, so that it is clear that they are seperate from regular text, without the need for such indentation.&#xA;* Link descriptions are now hard wrapped as well (the URLs themselves remain unwrapped—to avoid breakage) and also end with &#39; ~&#39; to better stand out.&#xA;* URLs are no longer filtered through (sed) character replacement (which could have broken them).&#xA;* Quote lines start with &#39;&gt; &#39; on every (wrapped) new line, which is a widely understood concept from mail clients, Gemtext, Markdown, etc.&#xA;* [✍ 14:31] Added support for wrapping headings that are longer than the line length—only URLs and preformated text can now extend beyond the hard wrap boundary.&#xA;* [✍ 15:13] Dropped the default line length to 70 based on comments I saw in solderpunk&#39;s &#39;text wrapping experiment&#39;, where he noted that this will display correctly on mobile (Pocket Gopher), at least in landscape mode.&#xA;&#xA;I am a little sad about the quotes, as I thought my previously suggested display was nicer looking but styling is less important than understanding.&#xA;&#xA;=&gt; /files/gmi2txt-sample.gmi Sample Gemtext file&#xA;=&gt; /files/gmi2txt-sample.txt Sample Gemtext file - initial reformat&#xA;=&gt; /files/gmi2txt-sample-2.txt Sample Gemtext file - updated reformat&#xA;=&gt; https://gist.github.com/ruario/3bd570d265ca5a42cb039092ed4f1299 Shell script filter to reformat .gmi files&#xA;=&gt; gopher://zaibatsu.circumlunar.space:70/0/~solderpunk/files/text-wrapping-experiment.txt text wrapping experiment - solderpunk [✍ 15:13]&#xA;&#xA;⁂&#xA;&#xA;## Update [✍ 2022-01-11]&#xA;&#xA;After seeing Szczeżuja&#39;s use of an older version of my script on his new Gopher hole, I realised that I am not willing to let go of my &#34;fancy quoting&#34; just yet. I really think it looks great when looking at his &#34;Gopher novice&#34; articles.&#xA;&#xA;=&gt; 2022-01-11_Szczezuja_and_Gopher.gmi Szczeżuja and Gopher&#xA;=&gt; gopher://sdf.org:70/1/users/szczezuja/novice Gopher novice - Szczeżuja&#xA;&#xA;So… I have added &#34;fancy quoting&#34; back. 🎉&#xA;&#xA;I also removed the &#39;```&#39; before and after preformatted text.&#xA;&#xA;* This avoids it potentially being confused with the styled quotes&#xA;* After looking at more of my converted posts I realised it just isn&#39;t needed. It &#34;just works&#34; and makes sense without, since everything is preformatted in Gopher.&#xA;&#xA;The only difference between regular text and code-like text (```) now is that for the latter, line length is not limited and it is not filtered to remove any characters.&#xA;&#xA;=&gt; /files/gmi2txt-sample-3.txt Sample Gemtext file - (further) updated reformat&#xA;&#xA;⁂&#xA;&#xA;=&gt; ../contact.gmi 📝 Comment&#xA;=&gt; . 🔙 Gemlog index&#xA;=&gt; .. 🔝 Capsule index&#xA;</content>

<link href="//ruario.flounder.online/gemlog/2022-01-10_Formatting_Gemtext_for_Gopher-further_tweaks.gmi" rel="alternate"></link>

<summary type="text/plain"></summary>

<title>Because it&#39;s simple!</title>

<updated>2022-01-06T00:00:00Z</updated>

<id>tag:ruario.flounder.online,2022-01-06:/gemlog/2022-01-06_Because_its_simple.gmi</id>

<content type="text/plain"># Because it&#39;s simple!&#xA;&#xA;Something about the things I enjoy seem to attract the same kinds of comments.&#xA;&#xA;&gt; Why do you carry a basic mobile phone (and not a smartphone)?&#xA;&#xA;&gt; Why do you own a watch with a single hand?&#xA;&#xA;&gt; Why do you commute via unicycle?&#xA;&#xA;&gt; Why do you run Slackware?&#xA;&#xA;And more recently…&#xA;&#xA;&gt; Why do you have a [blog] on Gemini?&#xA;&#xA;The answer is, &#34;Because it is simple!&#34;. However this confuses people because many think of simple only in terms of easy of use. Simple can imply easy of use, and I can make a good argument why all of these are easy to use (from a certain perspective)†, but I am talking about simple from an engineering perspective. Put another way, simpler underlying technology that you can more completely understand, and even potentially fix or tweak to your own needs.&#xA;&#xA;To flip this around to the other extreme: Smart phones, smart watches, high end ebikes, Ubuntu/Windows/macOS or &#34;the modern web&#34; are anything but… simple. 😉&#xA;&#xA;† Ways the things mentioned in the opening questions are (arguably) easy to use:&#xA;&#xA;* My phone rarely runs out of batteries and is (almost) always ready to make and receive calls&#xA;* The watch in question has a single hand that moves one revolution over 24 hours. Even a young child who does not understand numbers, gets it.&#xA;* The lack of parts (no chain, brakes, etc.) makes them very low maintenance, even with heavy riding on salted roads in the winter (a cycle is only easy to use if it works).&#xA;* Slackware is put together almost entirely with shell scripts, that I can easily understand and adjust.&#xA;* If you are reading this… you likely already know the answer to this one… 😜&#xA;&#xA;⁂&#xA;&#xA;=&gt; ../contact.gmi 📝 Comment&#xA;=&gt; . 🔙 Gemlog index&#xA;=&gt; .. 🔝 Capsule index&#xA;</content>

<link href="//ruario.flounder.online/gemlog/2022-01-06_Because_its_simple.gmi" rel="alternate"></link>

<summary type="text/plain"></summary>

<title>Formatting Gemtext for Gopher ♊</title>

<updated>2022-01-04T00:00:00Z</updated>

<id>tag:ruario.flounder.online,2022-01-04:/gemlog/2022-01-04_Formatting_Gemtext_for_Gopher.gmi</id>

<content type="text/plain"># Formatting Gemtext for Gopher ♊&#xA;&#xA;Recently I have been contemplating mirroring my capsule on Gopher. To do that I would need to recreate the landing page as a Gophermap but what about the posts? Since they are plain text I initially thought that I could perhaps just present the .gmi files directly. Sadly not.&#xA;&#xA;* Gopher posts should be hard line wrapped (ideally less than 80 characters), while Gemtext is not wrapped.&#xA;* I have included a bunch of UTF-8 characters in my posts. For widespread compatibility in Gopher, &#39;pure&#39; ASCII would be better.&#xA;* While&#x9;the raw formatting of Gemtext is quite neat, I feel it could still be improved when read directly.&#xA;&#xA;In summary, I need to reformat Gemtext before serving the posts on Gopher. On the plus side, since one of big benefits of Gemtext is its simplicity, I quickly realised I could do that with just a few lines of shell script, using &#39;sed&#39; and &#39;fmt&#39;.&#xA;&#xA;TL;DR&#xA;&#xA;=&gt; /files/gmi2txt-sample.gmi Sample Gemtext file&#xA;=&gt; /files/gmi2txt-sample.txt Sample Gemtext file - reformatted&#xA;=&gt; https://gist.githubusercontent.com/ruario/3bd570d265ca5a42cb039092ed4f1299/raw/5323b3880c55d0f679eb24400b053865dfbb413c/gmi2txt.sh Shell script filter to reformat .gmi files [✍ 2022-01-05 12:27: tweaked]&#xA;&#xA;[✍ 2022-01-08] To use, make it executable, then you pipe or redirect the Gemtext in.&#xA;&#xA;```&#xA;$ ./gmi2txt.sh &lt; yourfile.gmi&#xA;```&#xA;&#xA;## Handling non-ASCII&#xA;&#xA;Some Gopher servers and clients can actually handle UTF-8 but it is by no means universal and likely fairly rare, at least on the (reader&#39;s) client side, which I cannot control. I did recently note that if I look at recent posts by Alex Schroeder on his Gopher site in either VF-1 or Lagrange, I sometimes see characters like &#34;€&#34; and even the odd emoji. Interestingly, if I browse the same site using a client like Lynx, the characters get replaced—[✍ 2022-01-05] Lynx can support UTF-8: § Comments - 2022-01-05 03:32. No doubt there is some &#39;magic&#39; going on the server side, to understand what the client is capable of and then doing automatic replacements as needed.&#xA;&#xA;=&gt; gopher://alexschroeder.ch:70/0page/2021-12-25%20Donations 2021-12-25 Donations - Alex Schroeder&#xA;=&gt; gopher://alexschroeder.ch:70/0page/2021-12-26%20The%20confusing%20world%20of%20Reddit 2021-12-26 The confusing world of Reddit - Alex Schroeder&#xA;&#xA;So there are two ways I could handle UTF-8 characters. &#xA;&#xA;* Find out more about Alex&#39;s setup&#xA;* Roll my own conversion&#xA;&#xA;The latter is perhaps not as daunting as it sounds, since I would be making this for my own personal usage and thus only need to handle the characters that I regularly use. The other nice thing with doing this myself is that I can decide exactly what characters are replaced with and I can create a uniform experience across all Gopher clients.&#xA;&#xA;Simply piping through sed would allow me to convert a bunch of characters, e.g. &#39;-e s/[😀😃😁]/:D/g&#39;. Yes some of the &#39;subtlety&#39; of those different emojis is lost but… &#39;does it matter?&#39;. I could try and think of a clever (ASCII only) emoticon for something like &#39;🤷&#39; or I could just do &#39;s/🤷/[shrug]/g&#39;. Alternatively, I may decide that my usage of emojis is largely for decoration and wipe them out altogether (s/[😀😃😁🤷]//g). If I do it myself, I can also update and tweak these replacements and deletions going forward as my usage and opinions on the matter change.&#xA;&#xA;## Handling Gemtext&#xA;&#xA;Gemtext is designed to be parsed at line level. [✍ 14:58: clarified] Seven of the eight line types (roughly equivalent to: &lt;h1&gt;, &lt;h2&gt;, &lt;h3&gt;, [&lt;ul&gt;]&lt;li&gt;, &lt;a&gt;, &lt;blockquote&gt;, &lt;pre&gt;) start with a recognisable pattern, so it is easy to detect and apply different formatting to each of them. The last one (similar to: &lt;p&gt;) can start with any character but this is detected by virtue of not being one of the others.&#xA;&#xA;### Heading: Level 1&#xA;&#xA;These lines start with a single &#39;#&#39;. &#xA;&#xA;```&#xA;# My Post&#xA;```&#xA;&#xA;I feel it looks clearer to remove this and underline them with &#39;=&#39;.&#xA;&#xA;```&#xA;My Post&#xA;=======&#xA;```&#xA;&#xA;### Heading: Level 2&#xA;&#xA;These lines start with two &#39;#&#39; characters. &#xA;&#xA;```&#xA;## Subsection&#xA;```&#xA;&#xA;Again, a simple underline with &#39;-&#39; looks very clean and is arguably more in keeping with Gopher.&#xA;&#xA;```&#xA;Subsection&#xA;----------&#xA;```&#xA;&#xA;### Heading: Level 3&#xA;&#xA;These lines start with three &#39;#&#39; characters. &#xA;&#xA;```&#xA;### Sub Subsection&#xA;```&#xA;&#xA;Starting and ending these lines with &#39;-&#39; retains the clean feel of the other two heading types, while keeping them less prominent.&#xA;&#xA;```&#xA;-Sub Subsection-&#xA;```&#xA;&#xA;### Lists&#xA;&#xA;Lists begin with &#39;* &#39; (including the space).&#xA;&#xA;```&#xA;* Item 1: Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.&#xA;* Item 2&#xA;```&#xA;&#xA;I indent any wrapping that takes place. In addition, I add newline spacing between each bullet. This makes multiline, wrapped bullet points more readable (IMHO). &#xA;&#xA;```&#xA;* Item 1: Lorem ipsum dolor sit amet, consectetur adipiscing elit,&#xA;  sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.&#xA;&#xA;* Item 2&#xA;```&#xA;&#xA;### Links&#xA;&#xA;Links start with &#39;=&gt;&#39; followed by the link and the title/description. However, this can make them long and can &#39;bury&#39; the URL slightly. &#xA;&#xA;```&#xA;=&gt; gopher://example.com This is a cool site&#xA;```&#xA;&#xA;I would like the URLs to stand out by being on their own line. This is particularly important on Gopher where most clients do not extract links embedded in pure text or make them directly &#39;clickable&#39;. By having them on their own line you get the next best thing, as you can quickly select a complete line via a triple click, thus making them far easier to copy and paste [✍ 2022-01-05: clarified the benefit].&#xA;&#xA;```&#xA;~ This is a cool site:&#xA;  gopher://example.com&#xA;```&#xA;&#xA;### Quotes&#xA;&#xA;Quotes start with &#39;&gt;&#39;.&#xA;&#xA;```&#xA; &gt; Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.&#xA;```&#xA;&#xA;Strictly speaking it would probably be &#39;most correct&#39; to keep these largely as they are, since this concept of quoting is widely understood. Then I would only need to handle adding extra &#39;&gt;&#39; characters when wrapping. However, I am rather taken with the way Lagrange (and several websites) display quotes, with a single opening quote character and intended lines. This is actually not too hard to replicate, using two grave characters &#39;``&#39; to simulate an opening &#39;curly&#39; quote character and an extra newline after the quote to give a bit of space before regular text continues.&#xA;&#xA;```&#xA; ``&#xA;  Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod&#xA;  tempor incididunt ut labore et dolore magna aliqua.&#xA;&#xA;```&#xA;&#xA;### Preformatted [✍ 14:52: mistakenly skipped initially]&#xA;&#xA;Preformatted lines are slightly different from the others in that they begin AFTER a line that starts with &#39;```&#39; and end BEFORE the next such line. Here I will remove the three grave characters and just indent the rest of lines by two, so that they do not align with regular text and thus visually stand out.&#xA;&#xA;They will then align with lists, links and quotes (which makes things look neat and tidy) but can still be differentiated because they have no leading characters (&#39;*&#39;, or &#39;~&#39;) and no &#39; ``&#39; from the proceeding line (in the case of my proposed quote display).&#xA;&#xA;I will not wrap them or even attempt to filter non ASCII characters, leaving them mostly pure. The only downside is the two leading spaces may need to be removed from the start after copy and pasting them but on the flip side this is relatively trivial to deal with in any decent editor. Additionally, for many use cases (e.g. certain code types) that could even be skipped (as they would treated as non functional indentation).&#xA;&#xA;### Regular lines&#xA;&#xA;Anything that does not match one of the above starting sequences is a regular line and needs only simple wrapping.&#xA;&#xA;## Other changes&#xA;&#xA;In addition to making the text better suited for display, I also need to rewrite all internal (capsule specific) URLs and remove the the navigation links I add to the bottom of my posts but I think it makes more sense to do that in an additional script, that I can pipe the results of the first one through. 🤔&#xA;&#xA;Am I missing anything? Thoughts and comments are welcome!&#xA;&#xA;P.S. As a bonus for those that made it this far.&#xA;&#xA;=&gt; /files/2022-01-04_Formatting_Gemtext_for_Gopher.txt This post converted—how meta is that?&#xA;&#xA;⁂&#xA;&#xA;## An extra, even more basic example&#xA;&#xA;[✍ 2022-01-05: I rewrote this whole section again with more clarity and a warning]&#xA;&#xA;Here is a more basic version of this script that does a bit of &#39;fancy&#39; wrapping to Gemtext (with indentation for links and lists, and extra &#39;&gt;&#39; characters for the additional newlines within quotes). Again the idea would be for potential display on Gopher. It does not impose any other significant formatting changes. &#xA;&#xA;It is worth noting that due to wrapping and indentation, after this conversion you no longer have valid Gemtext. Just lightly formatted plaintext that superficially looks like Gemtext. You cannot permentantly alter your files like this with the intention of then serving the exact same source over both Gemini and Gopher. Such files, served over Gemini with a .gmi extension would likely have issues with unexpected wrapping, and longer link lines and lists would display incorrectly.&#xA;&#xA;Since there are no character replacements, it is assumed that a person who might want to use something like this would avoid using large amounts of non-ASCII, expect their readers to have a UTF-8 capable client, or use some other server side character translation system like Alex&#39;s [§ Handling non-ASCII].&#xA;&#xA;=&gt; /files/gmi2txt-sample-wrapped-only.txt Sample Gemtext file - wrapped&#xA;=&gt; https://gist.github.com/ruario/4ec4bc02e820a42830e9a8dc05b042e7 Shell script filter to wrap .gmi files [✍ 2022-01-05 13:00: simplified]&#xA;&#xA;⁂&#xA;&#xA;## Comments&#xA;&#xA;### 2022-01-04 16:32 (UTC+1)&#xA;&#xA;Omar Polo (yumh):&#xA;&#xA;=&gt; gemini://it.omarpolo.com/articoli/text-gemini-a-testo-semplice/ Convertire text/gemini in testo semplice 🇮🇹&#xA;&#xA;ℹ Takes some of the concepts above and creates a new version.&#xA;&#xA;### 2022-01-05 03:32 (UTC+1)&#xA;&#xA;James Tomasino:&#xA;&#xA;=&gt; https://github.com/jamestomasino/dotfiles-minimal/blob/master/.profile#L135&#xA;&#xA;&gt; You can tell lynx to use [utf-8]. :) It works with gopher sites too.&#xA;&gt;&#xA;&gt; Nice [conversion] script, though. Good work&#xA;&#xA;### 2022-01-05 22:21 (UTC+1)&#xA;&#xA;Sandra Snan (Idiomdrottning):&#xA;&#xA;&gt; How about turning them into Gopher maps? So hyperlinks could work.&#xA;&#xA;Yes, I had considered this and I know that others, like Tomasino always do this. I also recall reading Solderpunk&#39;s &#34;The true spirit of gopher&#34; post where he talks about how according to RFC1436 this is &#34;semantic abuse of gopher&#34; and yet he also says, &#34;building type 1 only gopher holes pretty much just works, and it *does* offer a nicer user experience […]&#34; (i.e. he is not actually critical of it)&#xA;&#xA;=&gt; gopher://zaibatsu.circumlunar.space:70/0/~solderpunk/phlog/the-soul-of-gopher.txt The true spirit of gopher: ¶ 12 → 13 - Solderpunk&#xA;&#xA;In the end it is clear that this is what lead him to Gemini and I already have that in my Gemini blog. So for Gopher I think I would like it to be intentionally different, as part of the reason for even having a Gopher version. i.e. the Gemini version is true to Gemini and the Gopher one more &#34;faithful&#34; to Gopher.&#xA;&#xA;That said, whilst reading about these topics I did note that some modern Gopher clients like VF-1 and GemiNaut make links in plain text directly usable by pattern matching for obvious URLs. &#xA;&#xA;=&gt; 2021-12-14_Linkification_in_gopher_clients.gmi Linkification in Gopher clients&#xA;=&gt; 2021-12-16_Linkification_in_gopher_clients_Part2_I_am_stupid.gmi Linkification in Gopher clients (Part 2) – OK, I am just stupid&#xA;&#xA;Thus I decided that plain text for the Gopher articles works well enough. Those who are more old school get what they expect and those who are more modern are more likely to run a modern client that will handle links for them anyway.&#xA;&#xA;In addition, I did carefully think about how I would display links in posts, &#39;§ Handling Gemtext - Links&#39; includes, &#34;By having them on their own line you get the next best thing, as you can quickly select a complete line via a triple click, thus making them far easier to copy and paste.&#34;&#xA;&#xA;In summary, is this the right way? I don&#39;t know but this is how I *currently* think I want to do it. That said I did look at gophermap generation briefly, so perhaps I will change my mind. 😉&#xA;&#xA;### 2022-01-06 13:57 (UTC+1)&#xA;&#xA;Sandra Snan (Idiomdrottning):&#xA;&#xA;&gt; Please note that I did see &#34;By having them on their own line you get the next best thing, as you can quickly select a complete line via a triple click, thus making them far easier to copy and paste.&#34; I might be a sloppy reader, but not to that extent! ♥&#xA;&gt; I just didn&#39;t think this was a counterargument to the gophermaps thing (to the extent that the other stuff you bring up is). I don&#39;t have a gopherhole of my own so it&#39;s not that I have that much of a say about Gopher! ♥&#xA;&#xA;Fair enough and I hope I did not offend you. To be honest I am amazed that anyone got through my boring post! 😉&#xA;&#xA;I will add that I had some thoughts about going the &#34;Gophermaps all the way down&#34; route and I am a fickle creature, so who knows, perhaps I will change my mind and do just that. 😆&#xA;&#xA;### 2022-01-08 14:46 (UTC+1)&#xA;&#xA;Szczeżuja:&#xA;&#xA;&gt; I have one lame question for your script:&#xA;&gt; […]&#xA;&gt; How it should be used? There are no information in the source, I made some tries without success.&#xA;&#xA;Oh sorry, it is a filter […] pipe or redirect the Gemtext in:&#xA;&#xA;```&#xA;$ ./gmi2txt.sh &lt; yourfile.gmi&#xA;```&#xA;&#xA;(would print the converted text to screen)&#xA;&#xA;or to save to a file:&#xA;&#xA;```&#xA;$ ./gmi2txt.sh &lt; yourfile.gmi &gt; yourfile.txt&#xA;```&#xA;&#xA;### 2022-01-10 11:38 (UTC+1)&#xA;&#xA;=&gt; 2022-01-10_Formatting_Gemtext_for_Gopher-further_tweaks.gmi Formatting Gemtext for Gopher - further tweaks ♊&#xA;&#xA;⁂&#xA;&#xA;=&gt; ../contact.gmi 📝 Comment&#xA;=&gt; . 🔙 Gemlog index&#xA;=&gt; .. 🔝 Capsule index&#xA;</content>

<link href="//ruario.flounder.online/gemlog/2022-01-04_Formatting_Gemtext_for_Gopher.gmi" rel="alternate"></link>

<summary type="text/plain"></summary>

<title>Re: Do You Ever Feel Stuck In A Loop? 🔄</title>

<updated>2021-12-17T00:00:00Z</updated>

<id>tag:ruario.flounder.online,2021-12-17:/gemlog/2021-12-17_Re-Do_You_Ever_Feel_Stuck_In_A_Loop.gmi</id>

<content type="text/plain"># Re: Do You Ever Feel Stuck In A Loop? 🔄&#xA;&#xA;A response to Björn (ew0k).&#xA;&#xA;=&gt; gemini://warmedal.se/~bjorn/posts/2021-12-17-do-you-ever-feel-stuck-in-a-loop.gmi Do You Ever Feel Stuck in a Loop?&#xA;&#xA;I have to say, it is rare that I feel I relate to a post so completely&#xA;&#xA;&gt; What have I done for the past few weeks?&#xA;&gt; &#xA;&gt; • Running.&#xA;&gt; • Working.&#xA;&gt; • Watching series and films on Netflix and Disney+.&#xA;&gt; • Procrastinating everything on my projects list, because the first and most important item is boring.&#xA;&#xA;and later…&#xA;&#xA;&gt; This shouldn&#39;t be a problem; after all no person&#39;s value is measured in achievement and no time is better spent than the one you enjoy. It does, however, produce a certain amount of anxiety to want things done but not wanting to do them. I feel stuck, running in circles and trying to escape reality by watching almost anything Netflix recommends to me. &#xA;&#xA;Change a few of these, like so:&#xA;&#xA;* Unicycling.&#xA;* Working.&#xA;* Watching stuff on Netflix and YouTube, or endlessly scrolling on Twitter.&#xA;* Procrastinating everything I should be doing, because most of that stuff is boring.&#xA;&#xA;And that is me. 😉&#xA;&#xA;In my case, much of my procastination is work related. While I am certainly working a fair bit (often late in the evenings), I am not being efficient. There are things I need to work on that would (long term) reduce my workload but they are a hassle to do up front. It is easier to just keep doing what I always have done, rather then work to automate, delegate tasks and generally improve things.&#xA;&#xA;Unicycling on the other hand is something that I do a lot of but I would like to do even more. With young kids who want/need my attention after work, and very dark evenings, it is hard to find more free time for unicycling. It is definitely one of the highlights of my day to commute via unicycling. With increasing levels of lockdown here in Norway, I will no longer be commuting to the office (at least in the short term). This means it will be somewhat removed from the loop and I don&#39;t want that. I certainly do not want to use my new found &#34;extra time&#34; doing the work tasks I have been putting off for weeks… instead of unicycling. &#xA;&#xA;=&gt; 2021-11-30_Unicycling_in_the_snow.gmi Unicycling in the snow&#xA;&#xA;⁂&#xA;&#xA;=&gt; ../contact.gmi 📝 Comment&#xA;=&gt; . 🔙 Gemlog index&#xA;=&gt; .. 🔝 Capsule index&#xA;</content>

<link href="//ruario.flounder.online/gemlog/2021-12-17_Re-Do_You_Ever_Feel_Stuck_In_A_Loop.gmi" rel="alternate"></link>

<summary type="text/plain"></summary>

<title>Linkification in Gopher clients (Part 2) – OK, I am just stupid 🥴🔗</title>

<updated>2021-12-16T00:00:00Z</updated>

<id>tag:ruario.flounder.online,2021-12-16:/gemlog/2021-12-16_Linkification_in_gopher_clients_Part2_I_am_stupid.gmi</id>

<content type="text/plain"># Linkification in Gopher clients (Part 2) – OK, I am just stupid 🥴🔗&#xA;&#xA;So the TL;DR of my previous post was:&#xA;&#xA;* Gopher clients present content as plain text files that might contain URLs&#xA;* Gopher clients should extract these URLs and make further navigation easier&#xA;&#xA;(The rest is just about justifying why this is not a bad thing).&#xA;&#xA;=&gt; 2021-12-14_Linkification_in_gopher_clients.gmi Linkification in Gopher clients&#xA;&#xA;## The (minor) problem with my post&#xA;&#xA;I have since realised an issue with my &#39;new&#39; idea. It started with the first reply I got from Luke Emmet, the author of GemiNaut (a Gemini and Gopher client).&#xA;&#xA;&gt; My client GemiNaut does its best to link up URLs it finds within the content, particularly at the end of the file, which seems to be the convention. It will even go as far as making the square bracket citations (e.g. &#34;[1]&#34;) clickable, if these are used by the author.&#xA;&#xA;=&gt; gemini://gemini.marmaladefoo.com/geminaut/ GemiNaut homepage&#xA;&#xA;Following that I was (today) playing with Solderpunk&#39;s VF-1 Gopher client again. To remind myself of how it works, I typed &#34;help&#34;. Then… I suddenly noticed the &#34;links&#34; command.&#xA;&#xA;Let&#39;s see what that does shall we?&#xA;&#xA;```&#xA;VF-1&gt; help links&#xA;Extract URLs from most recently visited item.&#xA;```&#xA;&#xA;(I tried it out to be certain and sure enough it works precisely as I argued it should.)&#xA;&#xA;=&gt; https://github.com/solderpunk/VF-1 VF-1 (Github)&#xA;=&gt; gopher://zaibatsu.circumlunar.space:70/0/~solderpunk/files/vf1.py VF-1 (Download via Gopher)&#xA;&#xA;In short succession I have realised that at least two clients already do what I was arguing they should do. Maybe the problem is not with Gopher clients but rather with me… for not researching more thoroughly first. 😆&#xA;&#xA;### But perhaps not terrible advice&#xA;&#xA;That said, if you do use a client that doesn&#39;t provide any easy way to navigate links in plain text, I suggest you try one that does. And if you are the author of a client that doesn&#39;t do this, read my original post for why I think you should add support. &#xA;&#xA;⁂&#xA;&#xA;=&gt; ../contact.gmi 📝 Comment&#xA;=&gt; . 🔙 Gemlog index&#xA;=&gt; .. 🔝 Capsule index&#xA;</content>

<link href="//ruario.flounder.online/gemlog/2021-12-16_Linkification_in_gopher_clients_Part2_I_am_stupid.gmi" rel="alternate"></link>

<summary type="text/plain"></summary>

<title>Linkification in Gopher clients 🔗</title>

<updated>2021-12-14T00:00:00Z</updated>

<id>tag:ruario.flounder.online,2021-12-14:/gemlog/2021-12-14_Linkification_in_gopher_clients.gmi</id>

<content type="text/plain"># Linkification in Gopher clients 🔗&#xA;&#xA;[✍ 2021-21-16] There is a &#39;slight flaw&#39; † with the argument in the following post. 😉 That said, it might still be worth a read if you use (or make) a Gopher client that does not provide an easy way to follow links written in pure text documents.&#xA;&#xA;=&gt; 2021-12-16_Linkification_in_gopher_clients_Part2_I_am_stupid.gmi † I should learn to do more research&#xA;&#xA;⁂&#xA;&#xA;Every few years I have a look around Gopherspace, just to see:&#xA;&#xA;* Does it still exist?&#xA;* What is Gopherspace in modern times? (How are people using it?)&#xA;&#xA;Is was via one of these recent journeys that I discovered Gemini. 🎉&#xA;&#xA;=&gt; 2021-11-23_Trying_Gemini.gmi My history with Gopher and Gemini&#xA;&#xA;## Links in text documents&#xA;&#xA;But Gemini wasn&#39;t the only thing I noticed. Something I saw a lot in (pure) text files served via Gopher, were links done like this:&#xA;&#xA;```&#xA;You should check out this cool site[1] immediately!&#xA;&#xA;[1] gopher://example.com&#xA;```&#xA;&#xA;or like this:&#xA;&#xA;```&#xA;You should check out this cool site &lt;gopher://example.com&gt; immediately!&#xA;```&#xA;&#xA;or sometimes even just:&#xA;&#xA;```&#xA;You should check out gopher://example.com immediately!&#xA;```&#xA;&#xA;When you encounter these you need to select the URL and manually enter it into your client to navigate to the site in question (at least in the clients I have tried thus far). I can&#39;t help but wonder why I need to do this manual step. &#xA;&#xA;To be 100% clear I am not really talking about making something like &#34;[1]&#34; in the first example clickable, and I am certainly not suggesting that the client should attempt to fully render (or understand) the highly variable possiblities of free-form, text based formatting. No… I just mean finding links and making them navigable (i.e. &#34;gopher://example.com&#34; above) using the same conventions the client uses for following links in gophermaps, without the need to &#34;copy and paste&#34; the URL back into the client. This (to me) is &#34;Linkification&#34;.&#xA;&#xA;I assume that pattern matching a URL is not that difficult. Or perhaps it is… but it is also clearly a problem that others have largely solved already. Many text heavy applications, such as mail or IRC clients (even some terminals), will automatically convert URLs found within plain text to navigable links for you. There are presumably libraries to do this or at the very least some example code. So that leaves me thinking… why not Gopher clients? 🤔&#xA;&#xA;### What is wrong with copy and pasting?&#xA;&#xA;Having links in text documents that are immediately accessible via a click, tabbing, or typing a number, just makes things more fluid and easier to work with. It also does not require any change to the Gopher protocol itself. Automatic linkification is just a nicety that clients could optionally support (perhaps as a setting). Everything would still work without (as it always has). However I know that for myself, I would gladly pick a client that provided this convenience to avoid a few pointless, extra steps that add nothing to the experience of browsing gopherspace.&#xA;&#xA;The way I see it, a Gopher client making URLs discovered in the text easily navigable, is not so very different from the client tweaking the display of fonts, or adding background or foreground colours. Underneath, Gopher remains Gopher. The client can allow the user to choose what to do with the data they have received. Good clients give users control and thus enhance the browsing experience.&#xA;&#xA;### Gophermaps and Plain Text – Navigation and Content&#xA;&#xA;Now I can guess what you might be thinking because I thought about it to. 😉 However …No… I don&#39;t think this undermines gophermaps (or at least not completely). Unlike the web, Gopher has an expected structure. Gophermaps are primarily about navigation, with just a sprinkling of text to provide some context. Traditionally, they are a way to get to the content, rather than content themselves. Plain text documents on the other hand are primarly about expressing ideas, with only occasional links to help expand concepts or provide references. In essence they should largely be self-contained content.&#xA;&#xA;Gophermaps will always be important to Gopher because by its nature it expects some level of hierarchy and this is provided (and continues to make most sense) by way of gophermaps or (raw) directories. This cannot really change, not least because it is unreasonable to expect all Gopher clients to suddenly support linkified plain text.&#xA;&#xA;Put another way, linkifying plain text files does not change their primary role as content any more than having text in gophermaps stops them from being primarily navigation. &#xA;&#xA;## Feedback wanted&#xA;&#xA;If you are the author of a Gopher client, please have a think about this. If you implement it (even as an option) let me know. Alternatively if anyone knows of clients that do this already, or you just have further thoughts you would like to share, feel free to tell me. Contact details are linked beneath the comment section below.&#xA;&#xA;⁂&#xA;&#xA;## Comments&#xA;&#xA;### 2021-12-14 14:37 (UTC+1)&#xA;&#xA;Luke Emmet:&#xA;&gt; My client GemiNaut does its best to link up URLs it finds within the content, particularly at the end of the file, which seems to be the convention. It will even go as far as making the square bracket citations (e.g. &#34;[1]&#34;) clickable, if these are used by the author.&#xA;&gt;&#xA;&gt; For example the attached [below] image shows how the following URL is displayed. The blue links are clickable.&#xA;&#xA;=&gt; gopher://zaibatsu.circumlunar.space/0/~solderpunk/phlog/low-budget-p2p-content-distribution-with-git.txt solderpunk (gopher) - Low budget P2P content distribution with git&#xA;=&gt; ../images/geminaut_gopher.png geminaut_gopher.png&#xA;&#xA;&gt; Still, I much prefer Gemini to Gopher for various reasons.&#xA;&gt;&#xA;&gt; You can also use GemiNaut to view most simple (so-called &#34;small web&#34;) web pages in a similar way, which are converted to Gemtext. But mostly it is a Gemini client. For further info on GemiNaut, see&#xA;&#xA;=&gt; gemini://gemini.marmaladefoo.com/geminaut/ GemiNaut homepage&#xA;&#xA;### 2021-12-14 15:21 (UTC+1)&#xA;&#xA;Ruarí Ødegaard:&#xA;&gt; Awesome, this great. You have even gone a step further. I do use Linux, macOS and Windows but the latter by far the least. I will certainly check this out next time I am in front of a Windows machine.&#xA;&gt;&#xA;&gt; “Still, I much prefer Gemini to Gopher for various reasons.”&#xA;&gt;&#xA;&gt; Me too 😉&#xA;&#xA;⁂&#xA;&#xA;=&gt; ../contact.gmi 📝 Comment&#xA;=&gt; . 🔙 Gemlog index&#xA;=&gt; .. 🔝 Capsule index&#xA;</content>

<link href="//ruario.flounder.online/gemlog/2021-12-14_Linkification_in_gopher_clients.gmi" rel="alternate"></link>

<summary type="text/plain"></summary>

<title>Another winter bike for my wife ❄🚲</title>

<updated>2021-12-06T00:00:00Z</updated>

<id>tag:ruario.flounder.online,2021-12-06:/gemlog/2021-12-06_Another_winter_bike_for_my_wife.gmi</id>

<content type="text/plain"># Another winter bike for my wife ❄🚲&#xA;&#xA;A confession: I am terrible at looking after my bikes in the winter. With the salt on the roads my bikes tend to get trashed. In particular the gears and the chain. I should wash them. I intend to wash them and then… I just don&#39;t wash them. 🤷&#xA;&#xA;Back in 2017, I had a plan. To find a new bike with an internal hub (or perhaps single speed), with a belt drive (or at least a full chain guard) and hub brakes. I never quite found what I wanted and then one day when my derailleur started playing up again and the chain came off. I decided to try commuting via unicycle. I learnt to unicycle as a kid and I have always having one lying around (even when I have not used it for years). I meant to do it temporarily for a bit of fun. When it turned out quicker and less tiring that I expected, I kept at it a bit longer. My plan was to carry on just until I found the perfect bike, or winter arrived, whichever came sooner. When winter did arrive I found it wasn&#39;t actually that bad and I carried on unicycling through the winter and pretty much ever since. I never did get that bike! 😃&#xA;&#xA;Recently my wife encountered the same problem. When the snow arrived at the end of November, she discovered her winter bike had problems. Well one problem… rust, lots of rust. She actually has two bikes. A nice one, that she loves and she uses for most of the year, and another one she tolerates. This one is only used for the winter. She does not want to use the nice one in the winter because she knows it will likely get destroyed. &#xA;&#xA;Because of the expectation that it will not last, her winter bike is a &#34;cheap as possible&#34;, crappy, mountain bike. The cost of fixing it now likely exceeds its value. Though we won&#39;t throw it away. Either I will give it away to someone (or an organisation) that fixes up old wrecks, or I will eventually get it fixed up myself (and the sell it, likely for less than the time and money I spent on getting it working again). In the mean time she needed a new &#34;winter bike&#34; ASAP, as she commutes daily by bike. &#xA;&#xA;I started by looking for bikes that were close to my old ideal, since I cannot expect my wife to take up unicycling. This was a struggle, we did not really want to spend more than the cost of her nice bike. That ruled out things like belt drives. Her relatively short height and the fact that it is the winter, also made it pretty hard to find something second hand but eventually we found a nice basic, internally geared, 7 speed for a reasonable price, in the style of a classic &#34;city bike&#34;. It has a v-brake on the front but a coaster brake on the back.&#xA;&#xA;I just finished up putting on studded tyres and took it for a test ride. She is all ready for tomorrow. Now I just have to think about what to do with the old bike, so I don&#39;t start another collection of old, broken bikes… again!  😆&#xA;&#xA;⁂&#xA;&#xA;=&gt; ../contact.gmi 📝 Comment&#xA;=&gt; . 🔙 Gemlog index&#xA;=&gt; .. 🔝 Capsule index&#xA;</content>

<link href="//ruario.flounder.online/gemlog/2021-12-06_Another_winter_bike_for_my_wife.gmi" rel="alternate"></link>

<summary type="text/plain"></summary>

<title>Arguing with friends is not fun! 😡</title>

<updated>2021-12-02T00:00:00Z</updated>

<id>tag:ruario.flounder.online,2021-12-02:/gemlog/2021-12-02_Arguing_with_friends.gmi</id>

<content type="text/plain"># Arguing with friends is not fun! 😡&#xA;&#xA;## A little background&#xA;&#xA;Today we released an update to the Vivaldi (web) browser. I work at Vivaldi as a QA but being a small company I am also responsible for many parts of the release process for the desktop version of the browser.&#xA;&#xA;=&gt; https://vivaldi.com/blog/vivaldi-5-0-desktop-themes-translate-panel/ Vivaldi 5.0 Release Announcement&#xA;&#xA;When we do a big release, a bunch of people join a Whereby video channel at set time and everyone works on their different aspects. By being in a channel together we can coordinate the release process and ask each other for help, if we need it. This final part of the release process is the end of 8 weeks since our last major update.&#xA;&#xA;=&gt; https://whereby.com/ Whereby video conferencing&#xA;&#xA;## It was all my fault (or was it!?)&#xA;&#xA;The last part of the preparation for the release was done yesterday. Without going into details I had the responsibility to do something and I screwed it up (not that I realised that at the time). Then this morning I was late to the Whereby meeting. The meeting is early in the morning and I had family issues. Anyway…&#xA;&#xA;The others were stressed by my late arrival, and then there were some complications with the blog on the website. The blog post (above) announcing the new version had serious issues. This was directly related to my mistake from the day before. With the blog and other parts of the website not working as they should, those in the marketing team where further stressed. This is primarily because the announcements are co-ordinated with third parties, e.g. reviewers who had been given a heads up on the release. It took almost an hour before it all settled. Likely few users ever noticed but after weeks of work I could read the room. So I apologised.&#xA;&#xA;…The thing is. I do not really think it was my fault. The job I did the day before should never have been my job to do, nor should it have been possible that mistake in this area would cause the problems for the blog that it did. As for being late… life happens everyone should be able to adapt. But I apologised because I did make a mistake and I was late. Also I did not feel that now was the time to deflect blame onto others.&#xA;&#xA;## The blame game&#xA;&#xA;At this point I felt like I was jumped on (perhaps I wasn&#39;t but that was my impression/recollection), with several people pointing out the need to be &#39;on time&#39; and not make mistakes. It also felt kind of circular, i.e. those points were raised multiple times and my attempts to say &#34;OK, I get it&#34; or defend myself somewhat, only seemed to lead to further comments along the same lines.&#xA;&#xA;After the meeting, and after our blog issues had been sorted, a follow up chat with a colleague (one of my very favourite people in the company) lead to a little &#39;heated discussion&#39;. It was stupid. I was almost certainly over sensitive and they had a lot on their plate, having follow up commitments related to the release throughout the day.&#xA;&#xA;So yeah… arguing with friends sucks. In any case, tomorrow I guess I will be apologising again.&#xA;&#xA;P.S. I have really great colleagues, it was just one of those days.&#xA;&#xA;⁂&#xA;&#xA;### Ok, it WAS my fault 😳 [✍ 2021-12-02]&#xA;&#xA;I spoke with my friend this morning and we are &#39;cool&#39; again. For which I am immensely glad. I now see that the biggest issue was my lack of communication when I was late. I never sent a message about being late, rather one of the the extended team contacted me and I just said, &#34;I&#39;ll be there soon&#34;.&#xA;&#xA;This is what left my colleagues most stressed and raised the tensions. When I arrived in the meeting I am told that I seemed too casual. What I only realised today is that they were waiting for a verbal signal from me to confirm that we were going ahead. I didn&#39;t really understand this was an unanswered question (or that if it was, that they wanted to know it the second I arrived). I just started working on my own things and assumed they were doing theirs. In reality, they were only waiting for my go ahead to push buttons. They had already done everything else and had just been sitting, waiting for me to join the meeting.&#xA;&#xA;When things then eventually went wrong (because of my mistake the day before) it was I guess, &#39;the final nail in my coffin&#39;. &#xA;&#xA;I do still think that the process should be different. I should not have to do the step I messed up the day before (I fail to understand how it could fall under my job description) but I accept, that right or wrong, I had already taken responsibility to do it for this release. In addition I need to be a better communicator. Oh well, as I said above,&#xA;&#xA;&gt; I have really great colleagues&#xA;&#xA;They will probably forgive me and I will try and learn something from it. 🤔 Firstly, that yes, while improvements could be made in the process, yesterday&#39;s issues were my fault.&#xA;&#xA;⁂&#xA;&#xA;=&gt; ../contact.gmi 📝 Comment&#xA;=&gt; . 🔙 Gemlog index&#xA;=&gt; .. 🔝 Capsule index&#xA;</content>

<link href="//ruario.flounder.online/gemlog/2021-12-02_Arguing_with_friends.gmi" rel="alternate"></link>

<summary type="text/plain"></summary>

<title>Unicycling in the snow ❄</title>

<updated>2021-11-30T00:00:00Z</updated>

<id>tag:ruario.flounder.online,2021-11-30:/gemlog/2021-11-30_Unicycling_in_the_snow.gmi</id>

<content type="text/plain"># Unicycling in the snow ❄&#xA;&#xA;Today it started to snow here in Norway. I can&#39;t tell you how much I love unicycling in the snow.&#xA;&#xA;I have been commuting via unicycle for several years now and have always enjoyed it but there is something special about when it snows.&#xA;&#xA;* The extra focus and attention needed, brings me back to when I first learnt to ride.&#xA;* There are always a few less people out and everything gets more silent (especially if it is actually snowing).&#xA;* It is incredibly satisfying to make new tracks in clean snow.&#xA;* Unicycling for any distance (or at speed) can make you very warm. Cold weather is therefore a great counterbalance.&#xA;* Finally, while I would love to be able to deny it, I know that on some level I am an attention seeker (no shit… right?). Cycling in the snow doubles the amount of looks and comments you get! 😛&#xA;&#xA;=&gt; ../images/unicycling_in_the_snow.jpg A picture from one of my rides last winter&#xA;=&gt; ../images/snow_on_a_fat_unicycle.jpg My unicycle after being out in the snow&#xA;&#xA;⁂&#xA;&#xA;=&gt; ../contact.gmi 📝 Comment&#xA;=&gt; . 🔙 Gemlog index&#xA;=&gt; .. 🔝 Capsule index&#xA;</content>

<link href="//ruario.flounder.online/gemlog/2021-11-30_Unicycling_in_the_snow.gmi" rel="alternate"></link>

<summary type="text/plain"></summary>

<title>Manually creating a Strava cycling (or running) entry 🚲</title>

<updated>2021-11-29T00:00:00Z</updated>

<id>tag:ruario.flounder.online,2021-11-29:/gemlog/2021-11-29_Manually_creating_a_Strava_cycling_entry.gmi</id>

<content type="text/plain"># Manually creating a Strava cycling (or running) entry 🚲&#xA;&#xA;I record all my cycling using Strava. However doing so normally requires GPS tracking, for which I use one of my KaiOS phones. However when my phone runs out of batteries or I am carrying something simpler, like my Light Phone (II), I have an alternate way.&#xA;&#xA;=&gt; 2021-11-28_Strava_and_Motivation.gmi More about my Strava usage&#xA;=&gt; https://www.thelightphone.com Light Phone&#xA;&#xA;To create a basic, manual Strava entry you only need a little information: Start time, Duration and Distance. However, while noting the start and end times with a watch will let you calculate duration, accurate distance is likely an unknown unless you have done the _exact_ route before. Previously I have used things like Google Maps to check the distance but it is annoying to use because it picks a route for you from A to B, rather than you plotting one. Even if you tweak that route it will often complain if you try and make it go a way that it does not consider viable. &#xA;&#xA;My preferred web service for manually mapping a route is OnTheGoMap. It is much easier to plot an accurate route of your journey, rather than one that a service like Google maps recommends. There are other services that let you do this as well but OnTheGoMap is quite nice in that it does not require any signup/login and has a fairly obvious UI with &#39;just enough&#39; options. &#xA;&#xA;=&gt; https://onthegomap.com OnTheGoMap&#xA;&#xA;To use, you find your starting location and click, then you pick your mode of travel via the options along the top, middle part of the screen: walk/run, bike, car or straight lines. By clicking along your route a path is laid onto the map. OnTheGoMap will snap to the most obvious locations for your mode of travel, so that walking will prefer foot paths over major roads, biking will like smaller roads and bike paths, and car will only snap to actual roads. The final option (straight lines) allows you to break from the automatic snapping to (known) paths. This is handy for off-road or just to if you feel that the automatic methods are failing. You can also change mode types as you click. This is useful if you cycle part of your route along a shared path that OnTheGoMap thinks is only for pedestrians. Just switch to walking for that section and then click back to cycling when you are done. OnTheGoMap also supports a bunch of keyboard shortcuts as well, e.g. &#39;r&#39; to toggle between modes or &#39;z&#39; to undo the last click. &#xA;&#xA;Once complete, you should have a fairly accurate distance calculation (I have compared a manually plotted route with the same route logged via GPS), plus a nice map that you can share. There is a link option in the top right hand corner of the screen that will generate a URL to display the route you plotted (or click &#39;a&#39; on the keyboard), along with an option to shorten it (via a built in URL shortner). You can also screenshot the map, should you want a visual that you can embed in your Strava entry (I usually do both). Another great feature is the ability to display an &#39;Elevation profile&#39; by clicking on a little mountain icon on the bottom left hand corner (or use the keyboard shortcut &#39;e&#39;). This gives you a graph of the hills you encountered. Hovering it lets you check gradients. You can also see your total elevation gain in meters via a little diagonal, zig zagged arrow found on the top, right (of the &#39;Elevation profile&#39; graph) that points in the same direction (top, right). Elevation (total)  is one of the optional values that Strava accepts as in its manual entries.&#xA;&#xA;On my commute to work today, I noted my start (08:59) and end (09:22) times on my watch and with a little manual mapping on my arrival, I obtained the following basic stats.&#xA;&#xA;```&#xA;Distance: 5.59km&#xA;Duration: 00:23:00&#xA;Elevation: 47m&#xA;Time (Start): 8:59am&#xA;```&#xA;&#xA;From that, Strava will then calculate some stuff for you, like average speed, which for this activity was 14.6km/h (a little slow perhaps but I was using a 26″ wheeled unicycle and the traffic lights did not always go in my favour 😉). It will also update your stats to date for clubs and challenges you are part of, along with your yearly and all time user totals.&#xA;&#xA;=&gt; https://onthegomap.com/s/0tb064b9 Map of my morning commute today (OnTheGoMap)&#xA;=&gt; https://www.strava.com/activities/6320553680 Strava entry for my morning commute today (requires a Strava account to view)&#xA;&#xA;Punching these into Strava&#39;s form for manual entries, creating a title for the activity and attaching a screenshot of the map as an overview image probably only took me 5 mins. Not as quick as using the GPS built into many modern devices but entirely doable. 😉&#xA;&#xA;⁂&#xA;&#xA;=&gt; ../contact.gmi 📝 Comment&#xA;=&gt; . 🔙 Gemlog index&#xA;=&gt; .. 🔝 Capsule index&#xA;</content>

<link href="//ruario.flounder.online/gemlog/2021-11-29_Manually_creating_a_Strava_cycling_entry.gmi" rel="alternate"></link>

<summary type="text/plain"></summary>

<title>Strava and Motivation 🚲</title>

<updated>2021-11-28T00:00:00Z</updated>

<id>tag:ruario.flounder.online,2021-11-28:/gemlog/2021-11-28_Strava_and_Motivation.gmi</id>

<content type="text/plain"># Strava and Motivation 🚲&#xA;&#xA;## Joining Strava&#xA;&#xA;I joined Strava † back on the 12th of July 2020, after discovering that the phone I was using at the time could record GPX files and sync them with this service. That might not sound particularly surprising but I don&#39;t have an Android or a iPhone. I tend to favour very basic phones. The one I was using at the time was a &#39;reimagining&#39; of the classic Nokia 8110 &#39;Banana phone&#39; (also called the &#39;Matrix phone&#39;), albeit with 4G running KaiOS ‡.&#xA;&#xA;=&gt; https://en.wikipedia.org/wiki/GPS_Exchange_Format GPX Format (Wikipedia)&#xA;=&gt; https://www.nokia.com/phones/en_int/nokia-8110-4g Nokia 8110 4G&#xA;=&gt; https://mashable.com/article/nokia-8110-4g-matrix-phone Nokia is bringing back the Matrix phone (Mashable)&#xA;&#xA;Surprised and intrigued that this basic phone could do such a thing, I signed up for Strava and recorded a ride. I quickly discovered friends and acquaintances on Strava (and added them) and soon had a feed full of impressive amounts of activities. I duly gave Kudos to those I saw and enjoyed credit for my own activities. &#xA;&#xA;Soon I was doing lots of extra rides and it did not take long until I found myself obsessed with recording all my activities. The pandemic also helped in this regard. Since I was always working from home I would do rides before, during (lunchtime) and after work. With my limited time, a lot of my routes were repetitive. A favourite being a nearby hill, approximately 5km (3 miles) away (to the top) with 260m (853ft) of climbing.&#xA;&#xA;Quickly I was building up some good stats and with them plenty of kudos. By Christmas that year (a little over 5 months) I had gained over 50km (31 miles) of elevation, which would take me to the top of the stratosphere, or the start of the mesosphere. Put another way, I averaged 308m (1011ft) of elevation a day, which allowed me to complete five Strava monthly climbing challenges (each one is 7500m [24606ft]) in a row. I guess at this point I should add that the vast majority of this elevation gain was done on unicycles, a penny farthing or a (non-electic) kick scooter. In fact I only travelled 566km (352mi) of my 2941.2km (1827.6mi) total distance on a &#39;normal&#39; bicycle. 😆&#xA;&#xA;=&gt; https://en.wikipedia.org/wiki/Kickbike kick scooter (Wikipedia)&#xA;=&gt; https://en.wikipedia.org/wiki/Penny-farthing penny farthing (Wikipedia)&#xA;&#xA;Anyway, I continued pretty at this level of activity until a couple months ago (collecting 11 climbing challenges along the way). I still cycle very regularly (daily for the most part) but not at the level I was cycling before and nothing like the amount of hill climbing. &#xA;&#xA;## Where did my motivation go?&#xA;&#xA;Honestly… I don&#39;t know but I miss it. I love cycling and in the end I do not think it was all about the kudos or fulling the expectations of those following me. When I get out cycling I have a chance to clear my head and focus on the cycling. But somehow, something has changed and I do not really understand why.&#xA;&#xA;I feel like in the time since I joined Strava, I have been the fittest I have been in years. It is not like I am unfit now (I still cycle regularly) but don&#39;t want things to slip away.&#xA;&#xA;⁂&#xA;&#xA;=&gt; https://www.strava.com/ † Strava&#xA;&#xA;Strava is a web based service that follows a freemium model and provides a way to record and analyse your activities. It also allows you to connect with others who share your interests. As such it is basically a social network, albeit for a specific niche. Like all social networks it encourages you to post and get &#39;Kudos&#39; (Strava-speak for likes). However, you get these for all your running, cycling, walking, hiking, … activities rather than spreading the latest antivax conspiracy, and as such I would generally consider it a fairly positive thing. &#xA;&#xA;=&gt; https://en.wikipedia.org/wiki/Freemium Freemium (Wikipedia)&#xA;&#xA;&#xA;=&gt; https://www.kaiostech.com ‡ KaiOS&#xA;&#xA;KaiOS is a fork of Firefox OS, a now discontinued open source operating system for smartphones. However in reality, these days KaiOS is primarily used in very low end phones, with physical buttons that very much resemble the feature phones of the 90s. While you can install apps on them, they are pretty limited and the hardware tends to make them unusable for many of the types of things people expect from so called &#39;smartphones&#39;.&#xA;&#xA;(I might circle back in a future post and talk about the world of non Android/iPhones in the modern age).&#xA;&#xA;=&gt; https://en.wikipedia.org/wiki/Firefox_OS Firefox OS (Wikipedia)&#xA;&#xA;⁂&#xA;&#xA;=&gt; ../contact.gmi 📝 Comment&#xA;=&gt; . 🔙 Gemlog index&#xA;=&gt; .. 🔝 Capsule index&#xA;</content>

<link href="//ruario.flounder.online/gemlog/2021-11-28_Strava_and_Motivation.gmi" rel="alternate"></link>

<summary type="text/plain"></summary>

<title>&#39;make install&#39;, uninstall help (howto remove manually installed software) 🐧</title>

<updated>2021-11-24T00:00:00Z</updated>

<id>tag:ruario.flounder.online,2021-11-24:/gemlog/2021-11-24_make_install_uninstall.gmi</id>

<content type="text/plain"># &#39;make install&#39;, uninstall help (howto remove manually installed software) 🐧&#xA;&#xA;A common mistake for users who are new to Linux (and even a few seasoned users) is to install a package from source without any clear idea about how they will remove it in the future, should they want to.&#xA;&#xA;The classic instructions to install a source package are &#39;./configure &amp;&amp; make &amp;&amp; make install&#39;. This (or slight variants) can work nicely for installation but instructions for clean removal of the package are typically absent. While some source packages include a make uninstall target, there are no guarantees that it works correctly. Software developers will go to great lengths to test installation but they generally care far less about uninstall, as they never imagine a user wanting to remove their wonderful software. Worse, removal commands can be pretty high risk if they are buggy.&#xA;&#xA;## Using find&#xA;&#xA;You can use the find command to locate all files (excluding directories) associated with a package, if you know just one file provided by the package.&#xA;&#xA;ℹ While technically directories are a type of file, they are intentionally ignored: § Empty directories.&#xA;&#xA;The following is a shell script that will automate finding files that are likely to be related to your reference file, based on common install time. Just run it as root (or prefaced with sudo) providing a single argument, that being the path to the chosen reference file.&#xA;&#xA;```&#xA;#!/bin/sh -eu&#xA;c=$(stat -c%Z &#34;$1&#34;)&#xA;find /etc /opt /usr -newerct @$(($c-${2:-10})) ! -newerct @$(($c+${2:-10})) ! -type d&#xA;```&#xA;&#xA;ℹ If your system does not support &#39;-newerct&#39;, use an alternate version of this script: § Tips and tricks - Alternate versions.&#xA;&#xA;The script works by noting the ctime (the time of last inode metadata status &#39;change&#39;) since the UNIX Epoch for the reference file. It then takes 10 seconds either side of this and uses that as a range to locate files that were changed (installed), in the most common installation directories, during approximately the same period.&#xA;&#xA;=&gt; https://en.wikipedia.org/wiki/Unix_time UNIX time&#xA;=&gt; https://en.wikipedia.org/wiki/Stat_(system_call)#ctime Change time (ctime)&#xA;&#xA;If a second argument is provided, the script will interpret it as seconds before and after the reference file&#39;s ctime (instead of the default 10). You can increase the value if you think some files may have been missed or decrease it if you feel that too many files were found.&#xA;&#xA;ℹ &#39;mtime&#39; (when the file&#39;s contents—rather than inode metadata—were &#39;modified&#39;) would be less reliable, as the original mtime of files within the source archive is occasionally retained during installation. With ctime that cannot happen, since the inode metadata must be updated to write the file to the new location on disk. The &#39;birth time&#39; (when the file was first &#39;created&#39;) would theoretically be even better because by definition, birth time never changes. However, few filesystems support this, so it cannot be used in the overwhelming majority of cases.&#xA;&#xA;### Example output&#xA;&#xA;=&gt; gopher://bombadillo.colorfield.space Bombadillo (non-web) browser&#xA;&#xA;I have Bombadillo compiled and installed from source. Running the above script (named &#39;siblings.sh&#39; for this example) with &#39;/usr/local/bin/bombadillo&#39; as the only argument, produces the following result.&#xA;&#xA;```&#xA;# ./siblings.sh /usr/local/bin/bombadillo&#xA;/usr/local/share/pixmaps/bombadillo-icon.png&#xA;/usr/local/share/man/man1/bombadillo.1.gz&#xA;/usr/local/share/applications/bombadillo.desktop&#xA;/usr/local/bin/bombadillo&#xA;```&#xA;&#xA;To delete the files, pass the results though a pipe to &#39;xargs -d\\n rm -v&#39; (as root or by adding sudo before xargs). You should make sure you are 100% satisfied 🤔 that nothing extra or unexpected is listed before committing to deletion. If there is, filter that out first.&#xA;&#xA;### Are we done yet?&#xA;&#xA;Above this point is the short version of this guide. If you got what you came for and removed an unwanted package, you may well be done. However, if you had issues with the script or want to understand more, feel free to read on…&#xA;&#xA;⁂&#xA;&#xA;## Tips and tricks&#xA;&#xA;### Backing up files before deleting them&#xA;&#xA;Before removing anything, you might want to make a backup of the matched files. You can do this by piping the result to an archiver like cpio or tar (with appropriate options).&#xA;&#xA;```&#xA;./siblings.sh /usr/local/bin/bombadillo | cpio -ovHnewc &gt; bombadillo_@$(date +%s).cpio&#xA;```&#xA;&#xA;On my system, this created the archive &#39;bombadillo_@1637674620.cpio&#39;, which I can later use to restore the files, like so.&#xA;&#xA;```&#xA;cpio -imdv &lt; bombadillo_@1637674620.cpio&#xA;```&#xA;&#xA;### Alternate versions&#xA;&#xA;For a distribution that does not use GNU find and does not understand &#39;-newerct&#39; (e.g. busybox-based), you could try this exceptionally slow version.&#xA;&#xA;```&#xA;#!/bin/sh -eu&#xA;c=$(stat -c%Z &#34;$1&#34;)&#xA;find /etc /opt /usr ! -type d -print0 | xargs -P4 -0I@ sh -c &#39;t=$(stat -c%Z &#34;@&#34;);[ $t -ge &#39;$(($c-${2:-10}))&#39; ]&amp;&amp;[ $t -le &#39;$(($c+${2:-10}))&#39; ]&amp;&amp;echo &#34;@&#34;&#39;&#xA;```&#xA;&#xA;Here is another version, this time using mtime with a 3 minute resolution window around the reference file, thus making it much less accurate but massively faster! &#xA;&#xA;Oh… and I decided to use escaped, backtick command substitution here, purely to get that &#39;old school&#39; feel (though it could potentially also mean that it works in older environments). I shall leave it as an exercise to you (the reader), to convert it to a more modern style version, if you hate this arbitrary decision on my part. 😘 &#xA;&#xA;```&#xA;#!/bin/sh -eu&#xA;m=`expr \`expr \\\`date +%s\\\` - \\\`stat -c%Y &#34;$1&#34;\\\`\` / 60`&#xA;find /etc /opt /usr -mmin +`expr $m - ${2:-1} | sed &#39;s/-.*/0/&#39;` -mmin -`expr $m + 1 + ${2:-1}` ! -type d&#xA;```&#xA;&#xA;ℹ The macOS &#39;stat&#39; command (and likely *BSD-based systems more generally) does not understand &#39;-c%Y&#39;. You can tweak the above example to use &#39;-f%m&#39; on such systems.&#xA;&#xA;### Logging an install&#xA;&#xA;Rather than attempting to find files associated with a package some time in the future, you should instead make the log immediately after you first installed the software. This is safer because you will have a valid log even if ctime on some file(s) gets altered in the future (intentionally or by accident). Just run the script right after &#39;make install&#39; completes and redirect the output to a file.&#xA;&#xA;An even better way to make a log is to do it before you install. That way you can be certain that the log only contains files that you have placed onto the system. You will need a little knowledge of Linux packaging to pull this one off (if you have a lot of packaging knowledge, step up and make a real package, since that is an even better idea).&#xA;&#xA;Most software on Linux can have its install step redirected to &#39;staging&#39; directory, rather than straight onto the root filesystem. A common way to do this is via &#39;DESTDIR&#39;.&#xA;&#xA;=&gt; https://www.gnu.org/prep/standards/html_node/DESTDIR.html DESTDIR&#xA;&#xA;Rather than the typical &#39;./configure &amp;&amp; make &amp;&amp; make install&#39; combo, the following would be done.&#xA;&#xA;```&#xA;./configure&#xA;make&#xA;make install DESTDIR=/path/to/staging&#xA;```&#xA;&#xA;If we set DESTDIR to &#39;$PWD/staging&#39;, then after installation is complete, we can do the following to create our log.&#xA;&#xA;```&#xA;cd staging&#xA;find * \! -type d -printf &#39;/%p\n&#39; | tee ../program-name_files.log&#xA;```&#xA;&#xA;You now have a log that can only contain the files that form part of the package. After the command completes, step back up a directory and re-issue &#39;make install&#39;, without &#39;DESTDIR=&#39;.&#xA;&#xA;An alternative install option would be to copy the files from the staging directory to the root (/) directory yourself. i.e. from within &#39;$PWD/staging&#39; you could issue the following (place sudo in front of cpio if you are not already root).&#xA;&#xA;```&#xA;find . \! -type d -print0 | cpio -p0mdv /&#xA;````&#xA;&#xA;ℹ For permissions to be correct, the above assumes you did your earlier &#39;make install &#34;$PWD/staging&#34;&#39; as root (or with sudo). If not, either correct the permissions before installing them with a recursive chown or you could add something like &#39;-R 0:0&#39; to the cpio command to reset everything to &#39;root:root&#39; during the copy.&#xA;&#xA;### Uninstall using a pre-prepared install log&#xA;&#xA;To delete files listed in a log, just issue the following as root (or prefaced with sudo).&#xA;&#xA;```&#xA;xargs -d\\n rm -v &lt; program-name_files.log&#xA;```&#xA;&#xA;ℹ The logs created by the above methods are pretty safe but you could have problems if the package includes files with very unusual names. For example, theoretically *nix files can have new lines (line feeds) in their names and those would not be handled well. If you want to avoid this (exceptionally unlikely) scenario, use the &#39;before install&#39; method [§ Logging an install ¶ 2] but create the log with &#39;/%p\0&#39; instead to make it null-byte separated. On uninstall replace &#39;xargs -d\\n&#39; with &#39;xargs -0&#39;.&#xA;&#xA;### Empty directories&#xA;&#xA;All typical file types (including symlinks) can be removed by the above methods but NOT directories. They were intentionally omitted from output, since they may have been &#39;system directories&#39;—shared with other software already present (or that might be installed in the future). Therefore you need to be a little bit more cautious. For the most part empty directories cause no problems and generally have negligible space requirements. So you can, and probably should, just ignore them.&#xA;&#xA;If you are the type of person who can&#39;t handle having redundant directories, you can construct a find command to track down old empty directories that you might want to consider removing. The parent directories that are non-shared are usually really easy for a human to spot. Unlike the package files which can have a variety of names, non-shared directories (at least the parent ones) will generally be named after the package in some way, with the occasional variation in casing and/or the addition of the version number.&#xA;&#xA;There is no official standard for this but it happens almost universally for fairly obvious reasons. Directories are used to separate a program&#39;s commonly named files from the rest of the system, and so the directory itself needs a unique name. Given all applications try to have unique package names anyway (to avoid confusion with other packages), the obvious solution for the package maintainer is to use the package name for any non-shared (a.k.a. non-standard) directories.&#xA;&#xA;ℹ For more background, the Filesystem Hierarchy Standard (3.0) documents the standard directories you can expect to find on a Linux system.&#xA;&#xA;=&gt; http://refspecs.linuxfoundation.org/FHS_3.0/fhs-3.0.html FHS 3.0&#xA;&#xA;Imagine a hypothetical application installed from a source package called &#39;example-program-1.0.tar.gz&#39;. After removing all installed files related to it using the method outlined at the start of this guide, you could then run the following command to look for empty directories.&#xA;&#xA;```&#xA;find /etc /opt /usr -type d -empty&#xA;```&#xA;&#xA;Amongst the results, you might then notice the following:&#xA;&#xA;```&#xA;/usr/local/share/ExampleProgram_1.0/level1subdirectory1&#xA;/usr/local/share/ExampleProgram_1.0/level1subdirectory2&#xA;/usr/local/share/ExampleProgram_1.0/level1subdirectory3/level2subdirectory1&#xA;/usr/local/share/ExampleProgram_1.0/level1subdirectory3/level2subdirectory2&#xA;/usr/local/share/ExampleProgram_1.0/level1subdirectory4&#xA;```&#xA;&#xA;Here the parent, non-standard directory is obviously &#39;/usr/local/share/ExampleProgram_1.0&#39;&#xA;&#xA;ℹ You may not even need to run this extra find, as you could have spotted this directory in the output of the initial command used to locate all related files.&#xA;&#xA;It is trivial to safely remove non-standard, empty directory trees, using the noted path(s) via another find command.&#xA;&#xA;```&#xA;# find /usr/local/share/ExampleProgram_1.0 -depth -exec rmdir -v {} \;&#xA;rmdir: removing directory, &#39;/usr/local/share/ExampleProgram_1.0/level1subdirectory1&#39;&#xA;rmdir: removing directory, &#39;/usr/local/share/ExampleProgram_1.0/level1subdirectory2&#39;&#xA;rmdir: removing directory, &#39;/usr/local/share/ExampleProgram_1.0/level1subdirectory3/level2subdirectory1&#39;&#xA;rmdir: removing directory, &#39;/usr/local/share/ExampleProgram_1.0/level1subdirectory3/level2subdirectory2&#39;&#xA;rmdir: removing directory, &#39;/usr/local/share/ExampleProgram_1.0/level1subdirectory3&#39;&#xA;rmdir: removing directory, &#39;/usr/local/share/ExampleProgram_1.0/level1subdirectory4&#39;&#xA;rmdir: removing directory, &#39;/usr/local/share/ExampleProgram_1.0&#39;&#xA;```&#xA;&#xA;ℹ This above command is safe because rmdir will only remove empty directories.&#xA;&#xA;And that, my dear reader, is it. I hope it helped! 😉&#xA;&#xA;⁂&#xA;&#xA;This posting was adapted from a Github Gist that I wrote. It never really felt like a &#39;gist&#39; though, so perhaps it makes more sense here.&#xA;&#xA;=&gt; https://gist.github.com/ruario/a36052a1ae1de4edbc6ad39fe39e5385 Original &#39;Gist&#39; of the above text (Github)&#xA;&#xA;⁂&#xA;&#xA;=&gt; ../contact.gmi 📝 Comment&#xA;=&gt; . 🔙 Gemlog index&#xA;=&gt; .. 🔝 Capsule index&#xA;</content>

<link href="//ruario.flounder.online/gemlog/2021-11-24_make_install_uninstall.gmi" rel="alternate"></link>

<summary type="text/plain"></summary>

<title>Winter cycling tips and tricks ❄🚲</title>

<updated>2021-11-24T00:00:00Z</updated>

<id>tag:ruario.flounder.online,2021-11-24:/gemlog/2021-11-24_Winter_cycling_tips_and_tricks.gmi</id>

<content type="text/plain"># Winter cycling tips and tricks ❄🚲&#xA;&#xA;If you regularly cycle in snow and ice, Winter/Studded tyres are amazing and are pretty much always the best option but they are pricy and not available for all tyre sizes. As a unicyclist (yes I ride in the winter) and footbiker, I have various cycles with tyre sizes from 16” to 36” (Ok… I also have a penny farthing with a solid rubber 54” tyre 😆).&#xA;&#xA;If you cannot get tyres in your size or cannot justify the cost for very limited usage, here are a few quick tips.&#xA;&#xA;## Cycling on regular/unstudded tyres&#xA;&#xA;Riding on ice with normal tyres is entirely possible in much the same way that walking on ice is, so long as you are careful. The key is to avoid sudden movements, such as changes in direction and speed. With that in mind, here is a quick summary of some tips.&#xA;&#xA;* Cycle slower: This gives you more time to observe problems and means less harsh braking.&#xA;* Keep it consistent: Try and keep your speed as consistent as possible. When you do need to stop, slow down very gently.&#xA;* Watch the road: Keep your eyes looking ahead for issues, to give yourself the maximum time to avoid them.&#xA;* Avoid turning: Keep straight when possible or take slow, wide turns if you have to.&#xA;* Drop tyre pressure: This will make cycling more effort but vastly increases grip due to the increased contact surface area.&#xA;* Pick your position: Avoid the very edge of roads (i.e. the gutter). Water (and hence ice) collects here and the surface is generally bumpier. Sometimes cycling in car tyre tracks is better (more worn). On the flip side, cars can polish ice and hence the middle of the lane might actually be preferable. You&#39;ll need to judge that for yourself 🤔 but with some experience it gets a lot easier. &#xA;&#xA;ℹ The above is also handy if you find yourself caught off guard, with weather you did not expect. 👍&#xA;&#xA;## Studding your own types&#xA;&#xA;### Option one: Buy tyre studs&#xA;&#xA;There are products which you screw into the tyre from the outside in. Try and find ones designed for bicycles specifically. They tend to be shorter and are therefore much less likely to go completely through the tread and puncture your inner tube. You normally need a special dedicated tool to screw these in, remember to buy that at the same time.&#xA;&#xA;=&gt; https://www.best-grip.no/produkt/bestgrip-1000-pigg-for-sykkel-moped-rullestol-sko-og-stovler/ Bestgrip screw in studs (Norwegian site)&#xA;=&gt; https://www.best-grip.no/produkt/bestgrip-4000/ Tool to screw in tyre studs (Norwegian site)&#xA;=&gt; ../images/unicycle_with_bestgrip_studs.jpg Unicycle with Duro Wildlife 26”x3” tyre, studded with Bestgrip screw in studs&#xA;&#xA;PROS&#xA;* Very easy to stud (just screw them in)&#xA;* Tungsten carbide (exceptionally long lasting)&#xA;&#xA;CONS&#xA;* Pricy (it usually works out more expensive than buying a commercially studded tyre) &#xA;* You need deep tread on your tyre (otherwise the studs will screw right through to the inner tube and puncture it).&#xA;&#xA;ℹ Spend some time thinking about your pattern. The edges are better than the centre line, which would have a higher wear rate and increase your rolling resistance. Also, you do not want to overly stud because it adds weight and is simply unnecessary. Commercial winter tyres are heavily studded because a high stud count gives a &#39;selling point&#39; to the buying public.&#xA;&#xA;### Option two: Use short screws (yes… really)&#xA;&#xA;If purpose built tyre studs make no sense because your tyre does not have a suitably thick tread or you just bulk at the cost, you can self-stud tyres with screws. It sounds weird and scary but it can work well. The only downsides are the time it takes and the fact that unlike Tungsten carbide, steel wears much faster on a tarmac surface, so you may need to re-stud from time to time.&#xA;&#xA;I have self-studded a 16”x1.9” (47-305) Schwalbe &#34;Black Jack&#34; using this method (there are no commercial studded tyres for a 305mm rim) with small, steel screws. I would have preferred to use screw in studs but the tread was not deep enough. On the plus side it is very cheap. A Schwalbe &#34;Black Jack&#34; tyre only cost me ¤89🇳🇴 (€8.60, $10.30🇺🇸, £7.60) and I bought a box of 250 screws for ¤35 (€3.40, $4, £3) of which I only used a fraction. That works out at just ¤124 (€12, $14.30, £10.60) total for one tyre. Granted it would have been more if I also bought a dedicated tyre liner, which many people would need (or want) to do.&#xA;&#xA;=&gt; http://mrtuffy.com Mr. Tuffy (a popular, high performance tyre liner for bikes)&#xA;=&gt; ../images/16_inch_studded_tyre.jpg Schwalbe &#34;Black Jack&#34; 16”x1.9” tyre, manually studded with steel screws&#xA;&#xA;The basic process works like this.&#xA;&#xA;* Drill guide holes through tread at points where you want studs. Do this from the outside in so that you get the pattern you want/expect. (see also the Tip in the previous section).&#xA;* Screw in short (9.5mm, ⅜”) screws from the inside of the tyre, outwards through your guide holes (These screws will be held in place by the tread rubber and back pressure from the inner tube on the screw heads).&#xA;* Line tyre with a dedicated &#34;tyre liner&#34; or failing that a few layers of duct tape, plus an extra old (damaged) inner tube, split and wrapped around the main tube. (The linings are to minimise the chance of pinch flats, caused by the screw heads moving/flexing against the tyre and catching the main inner tube, whilst in use).&#xA;&#xA;=&gt; https://unicyclist.com/t/studding-a-muni-tire/96298 Self-studding a tyre in more detail (a longer guide)&#xA;=&gt; ../images/studded_2016_footbike.jpg Footbike with Schwalbe &#34;Marathon Winter Plus&#34; front, back self-studded &#34;Black Jack&#34;&#xA;&#xA;ℹ Ideally the &#39;studs&#39; should only stick out 2-3mm. Keep an eye on them during the course of the season. When they start to get too short, take off the tyre, and re-stud it.&#xA;&#xA;Enjoy your winter riding! ❄🚲👍&#xA;&#xA;⁂&#xA;&#xA;=&gt; ../contact.gmi 📝 Comment&#xA;=&gt; . 🔙 Gemlog index&#xA;=&gt; .. 🔝 Capsule index&#xA;</content>

<link href="//ruario.flounder.online/gemlog/2021-11-24_Winter_cycling_tips_and_tricks.gmi" rel="alternate"></link>

<summary type="text/plain"></summary>

<title>Binary wrist watch 🤓</title>

<updated>2021-11-23T00:00:00Z</updated>

<id>tag:ruario.flounder.online,2021-11-23:/gemlog/2021-11-23_Binary_wrist_watch.gmi</id>

<content type="text/plain"># Binary wrist watch 🤓&#xA;&#xA;A couple of weeks back I bought a binary watch (well… binary-coded duodecimal/sexagesimal) on a whim. It was cheap and ugly but I figured it would be kind of fun to test myself a little. A quick mental puzzle whenever I want to know the time. 😀&#xA;&#xA;=&gt; ../images/binary_watch.jpg My binary wrist watch&#xA;=&gt; https://www.amazon.de/-/en/Binary-Wrist-Watch-For-Professionals/dp/B00E63F5IE/ Binary wrist watch (Amazon.de)&#xA;&#xA;Interestingly, while telling the time was somewhat cumbersome at first, it is rapidly getting easier. I have realised that I am starting to simply memorise quite a few positions, so that I can often read the time at a glance. I have also begun to notice patterns I had not really thought about or considered before wearing a watch like this. For example, any time you have a combination and it moves one place to the left it is (obviously) doubling. Since 000011 is 3, 000110 is therefore 6 and 001100 is 12. That means that as you learn basic patterns (when combining smaller numbers), you can use them to quickly understand bigger combinations that look the same. &#xA;&#xA;A very helpful one is that anytime you have two lights with a space in between them, they will be multiples of 5/10, e.g.&#xA;&#xA;```&#xA;0  0  0  1  0  1&#xA;         4     1  =  05&#xA;&#xA;0  0  1  0  1  0&#xA;      8     2     =  10&#xA;&#xA;0  1  0  1  0  0&#xA;   16    4        =  20&#xA;&#xA;1  0  1  0  0  0&#xA;32    8           =  40&#xA;```&#xA;&#xA;Those specific combos (above) are handy as they often simplify quickly calculating stuff. It is easy to do maths with 10s (and 5). So when looking at a sequence it helps to calculate these positions first. Initially 011110 can appear to lot of work to do in your head but then you realise it is just the middle two patterns (above) overlapping (10 + 20) and thus 30.&#xA;&#xA;You could also approach understanding 011110 a different way. Another pattern that becomes rapidly obvious is that if all the numerals to the right of a position are 1 then they add up to one less than that numeral&#39;s position. Since 010000 is 16, 001111 must be 15. Move 001111 left by one position (to 011110) and again you realise that it is 30 because of the doubling I mentioned previously.&#xA;&#xA;With enough time I suspect that reading this watch might not be much more work than reading a normal digital or analog watch face. Still the process of getting there is fun!&#xA;&#xA;P.S. Whilst researching binary watches (looking for something a little less ugly), I made a couple of interesting finds:&#xA;&#xA;=&gt; https://en.wikipedia.org/wiki/Binary_clock Wikipedia article on binary clocks&#xA;=&gt; https://en.wikipedia.org/wiki/Binary_clock#/media/File:Binary_clock_Swiss_railway_station.jpg Binary clock at St. Gallen train station in Switzerland&#xA;=&gt; https://the-city-clock.com A small home binary clock that looks like a Parisian Haussmannian building&#xA;&#xA;⁂&#xA;&#xA;=&gt; ../contact.gmi 📝 Comment&#xA;=&gt; . 🔙 Gemlog index&#xA;=&gt; .. 🔝 Capsule index&#xA;</content>

<link href="//ruario.flounder.online/gemlog/2021-11-23_Binary_wrist_watch.gmi" rel="alternate"></link>

<summary type="text/plain"></summary>

<title>Trying Gemini ♊</title>

<updated>2021-11-23T00:00:00Z</updated>

<id>tag:ruario.flounder.online,2021-11-23:/gemlog/2021-11-23_Trying_Gemini.gmi</id>

<content type="text/plain"># Trying Gemini ♊&#xA;&#xA;## My history with Gopher and Gemini&#xA;&#xA;I came to Gopher late, just as it was being &#34;replaced&#34; by the web but I check back fairly often and the concept and ideals always appealed to me. I always have lynx installed on my machines anyway, so every now and then I have a little cruise around and see what is happening. &#xA;&#xA;Looking over Gopherspace in recent times I noticed increasing references to Gemini. So here I am to try it out. 😉&#xA;&#xA;There is an appeal to the low barrier to entry provided by Gemlog blue. So thanks to those responsible for maintaining it. I could have set something up myself but before committing too heavily to Gemini, it is nice to have a free service already configured to &#39;test the waters&#39; [✍ 2021-11-29: § Moving to 🐟flounder].&#xA;&#xA;=&gt; //gemlog.blue/ Gemlog blue&#xA;&#xA;### Extended history [✍ 2021-11-26]&#xA;&#xA;I had actually thought about using Gopher (or now Gemini) for (b|ph|gem)logging in the past because of the (engineering) simplicity of those kinds of setups. Both in terms of generating content and should I want to self host. The downside for me would be the limited audience, due to the unusual protocol.&#xA;&#xA;Historically, I always used to have a personal blog (firstly on My Opera and when that died I later used a paid blog hosting service that pushed Markdown for content creation). Using Markdown was nice because it meant that you could knock something up fast and easily and didn&#39;t feel pressured to spend a lot of time tweaking presentation. This kind of self imposed limitation appeals to me. You even see this to an extent in microblogging services like Twitter. The barrier to &#34;write something&#34; is small because you don&#39;t have to do much, just copy down your thoughts.&#xA;&#xA;=&gt; https://web.archive.org/web/20140301225520/http://my.opera.com/ruario/blog/ Archive.org copy of my blog on &#34;My Opera&#34;&#xA;=&gt; https://web.archive.org/web/20161109122919/http://ruario.ghost.io/ Archive.org copy of my blog on Ghost.io&#xA;&#xA;At some point though I just kind of let the last blog expire as I felt I was not using it enough, so I stopped paying. Since that time the kind of thoughts I might put into a &#39;blog&#39; have been scattered on various services, much of it Github gists or Twitter threads but sometimes other places, e.g. I have a couple of things you might consider &#34;blog posts&#34; on my Strava account.&#xA;&#xA;=&gt; https://twitter.com/ruari Twitter account (ruari): IT related&#xA;=&gt; https://twitter.com/VelocipedeRider Twitter account (VelocipedeRider): cycling focused&#xA;=&gt; https://www.strava.com/athletes/velocipederider Strava account (VelocipedeRider)&#xA;=&gt; https://gist.github.com/ruario Github &#39;gists&#39; (ruario)&#xA;&#xA;The problem with this scatter approach, is that it is very hard to locate something you wrote before because it could be in any number of places. One of the things I liked about a blog is that I could either link to them or sometimes just copy and paste snippets of them when having conversations on similar topics elsewhere online.&#xA;&#xA;So far on this Gemlog I am reposting stuff I have said on Twitter, Github and elsewhere but already I see some value. I am able to flesh out and reorganise my thoughts (Twitter threads are too limited sometimes) and now I have several &#39;articles&#39; in one place (plus this intro post). I don&#39;t really imagine many people will find and read them because of the &#39;limited audience&#39; on Gemini but there is still some value. Firstly, I started to notice that as much as anything posting them is &#39;for me&#39;, so that I can go back over my thinking, or clarify my thoughts in my head during the process of writing. I guess in much the same way people have kept diaries historically. Also it still gives me a place I can copy snippets of thoughts and ideas from and if I really wanted to link someone to an entire posting, I could always give them a link through a Gemini-to-web proxy service (since we are not at a stage where we could expect many people to have a Gemini client installed).&#xA;&#xA;I am not sure that Gemlog blue is where I would want to host long term though. It could easily disappear in much the same way &#34;My Opera&#34; did. Again another appeal of Gemini is the simplicity of self hosting but I figured I would start here as a test/trial. I can always move stuff if I decide that this is something I want to continue going forward.&#xA;&#xA;⁂&#xA;&#xA;### Moving to 🐟flounder [✍ 2021-11-29]&#xA;&#xA;=&gt; //flounder.online/ 🐟flounder&#xA;&#xA;Whilst Gemlog blue seems to be a great service (for the limited time I was there) I already realised I wanted a bit more flexibility, and yet… I am still not ready to self host. So here I am and thanks Alex for providing me a new home. I owe you a ☕ or two.&#xA;&#xA;=&gt; //alex.flounder.online/ ALEX&#39;S SPACE&#xA;&#xA;⁂&#xA;&#xA;=&gt; ../contact.gmi 📝 Comment&#xA;=&gt; . 🔙 Gemlog index&#xA;=&gt; .. 🔝 Capsule index&#xA;</content>

<link href="//ruario.flounder.online/gemlog/2021-11-23_Trying_Gemini.gmi" rel="alternate"></link>

<summary type="text/plain"></summary>

Proxy Information
Original URL
gemini://ruario.flounder.online/gemlog/atom.xml
Status Code
Success (20)
Meta
application/atom+xml
Capsule Response Time
1506.877736 milliseconds
Gemini-to-HTML Time
8.452333 milliseconds

This content has been proxied by September (ba2dc).