<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>choffee</title>
    <link>https://write.as/choffee/</link>
    <description>They say he is not held back by knowledge</description>
    <pubDate>Tue, 25 Aug 2026 13:07:46 +0000</pubDate>
    <item>
      <title>Baking bread in a pressure cooker</title>
      <link>https://write.as/choffee/baking-bread-in-a-pressure-cooker?pk_campaign=rss-feed</link>
      <description>&lt;![CDATA[I like to make my own bread.  I like a tasty sourdough loaf that has some rye in it. A while ago I found a book called 10 minute sourdough and this changed how I make bread. I got rid of my bread maker and my commercial yeast and started to make myself some sourdough starter. A later discovery that you could just keep the starter in the fridge and don&#39;t need to keep feeding it every day also helped.&#xA;&#xA;This was all well after the pandemic in case you where wondering. &#xA;&#xA;Recently I saw an Instant pot pressure cooker for 50% off and as I had wanted one for ages for beetroot and beans cooking (for which its doing really well but thats for another day. Now as they say when all you have is a hammer; everything is a nail and so now I want to cook everything in the pressure cooker. My first attemps where using the &#34;bake&#34; mode which my pressure cooker has with its grill lid thing. This was okay but it only really cooked the top of the loaf so I would do the first half of the loaf the right way up and then turn it over for the second half which worked okay for a while. Then I got to thinking could I pressure cook the bread? A bit of a web search later and I think you can do it.&#xA;&#xA;My first loaf was completed today and I think it came out okay. A slight pudding texture but that might be my mix. I made my usual mix that I will cover elsewhere and stood the loaf tin on the trivet over a cup of water. Let that boil for 40 minutes and the removed the foil lid that I had protected it from the worst of the steam with. It came out with a sort of pudding type feel to it but it looked almost cooked. I then removed the water and the pressure lid and set the bake cycle for 15 minutes and at the end had a pretty passable loaf. as I said at the top I don&#39;t go for big fluffy instagram loves and as Charles Dowding says there is no flavour in the air!&#xA;&#xA;There is still a bit more refinement to get it just so but I think I now have a pretty low effort and tasty loaf recipe. Now if I could just not eat it all in one day that would be great!]]&gt;</description>
      <content:encoded><![CDATA[<p>I like to make my own bread.  I like a tasty sourdough loaf that has some rye in it. A while ago I found a book called <a href="https://hodmedods.co.uk/collections/books/products/10-minute-sourdough" rel="nofollow">10 minute sourdough</a> and this changed how I make bread. I got rid of my bread maker and my commercial yeast and started to make myself some sourdough starter. A later discovery that you could just keep the starter in the fridge and don&#39;t need to keep feeding it every day also helped.</p>

<p>This was all well after the pandemic in case you where wondering.</p>

<p>Recently I saw an Instant pot pressure cooker for 50% off and as I had wanted one for ages for beetroot and beans cooking (for which its doing really well but thats for another day. Now as they say when all you have is a hammer; everything is a nail and so now I want to cook everything in the pressure cooker. My first attemps where using the “bake” mode which my pressure cooker has with its grill lid thing. This was okay but it only really cooked the top of the loaf so I would do the first half of the loaf the right way up and then turn it over for the second half which worked okay for a while. Then I got to thinking could I pressure cook the bread? A bit of a web search later and I think you can do it.</p>

<p>My first loaf was completed today and I think it came out okay. A slight pudding texture but that might be my mix. I made my usual mix that I will cover elsewhere and stood the loaf tin on the trivet over a cup of water. Let that boil for 40 minutes and the removed the foil lid that I had protected it from the worst of the steam with. It came out with a sort of pudding type feel to it but it looked almost cooked. I then removed the water and the pressure lid and set the bake cycle for 15 minutes and at the end had a pretty passable loaf. as I said at the top I don&#39;t go for big fluffy instagram loves and as Charles Dowding says there is no flavour in the air!</p>

<p>There is still a bit more refinement to get it just so but I think I now have a pretty low effort and tasty loaf recipe. Now if I could just not eat it all in one day that would be great!</p>
]]></content:encoded>
      <guid>https://write.as/choffee/baking-bread-in-a-pressure-cooker</guid>
      <pubDate>Tue, 11 Feb 2025 22:30:04 +0000</pubDate>
    </item>
    <item>
      <title>Solar power at the allotment</title>
      <link>https://write.as/choffee/solar-power-at-the-allotment?pk_campaign=rss-feed</link>
      <description>&lt;![CDATA[I have a couple of electrical powered devices at the allotment. A small water pump and a mole scarer. They are both pretty basic. The pump is just to water things when I don&#39;t get down there every day. It sort of works but the pump itself seem quite weak so I need to balance the pipes quite well. The mole scarer is battery powered and seems to eat them pretty quickly and I&#39;m not sure the moles are that scared of it now. I&#39;ve also been thinking about monitoring things like ground temp and shipping that data via lora.&#xA;&#xA;So more for my own entertainment than anything I have been thinking about adding a sort of solar battery to the allotment. I keep looking at what might work but have never really got to the point of calculating anything. It looks like a decent MPTT charger and battery and panel would not be that expensive (relatively, of course this is a hobby not really a cheap food replacement :) So I think I still have some questions about the winter. First how will the batteries survive the cold weather? Second is there any real solar in the winter? I suppose it would be a fun experiment to see how this works. Set up a small system and the monitor what is going on. So maybe a charger/batter manager with an output would be good. Then I can log things like the solar output each day over the winter. On the plus side there should be less demand over the winter as I don&#39;t need to water things and the moles are less active.&#xA;&#xA;So next steps would be looking at monitoring and then deciding on capacity. Look at some solar energy reports for my area? Maybe setup a really small solar panel that I can just power a lora sensor with?]]&gt;</description>
      <content:encoded><![CDATA[<p>I have a couple of electrical powered devices at the allotment. A small water pump and a mole scarer. They are both pretty basic. The pump is just to water things when I don&#39;t get down there every day. It sort of works but the pump itself seem quite weak so I need to balance the pipes quite well. The mole scarer is battery powered and seems to eat them pretty quickly and I&#39;m not sure the moles are that scared of it now. I&#39;ve also been thinking about monitoring things like ground temp and shipping that data via lora.</p>

<p>So more for my own entertainment than anything I have been thinking about adding a sort of solar battery to the allotment. I keep looking at what might work but have never really got to the point of calculating anything. It looks like a decent MPTT charger and battery and panel would not be that expensive (relatively, of course this is a hobby not really a cheap food replacement :) So I think I still have some questions about the winter. First how will the batteries survive the cold weather? Second is there any real solar in the winter? I suppose it would be a fun experiment to see how this works. Set up a small system and the monitor what is going on. So maybe a charger/batter manager with an output would be good. Then I can log things like the solar output each day over the winter. On the plus side there should be less demand over the winter as I don&#39;t need to water things and the moles are less active.</p>

<p>So next steps would be looking at monitoring and then deciding on capacity. Look at some solar energy reports for my area? Maybe setup a really small solar panel that I can just power a lora sensor with?</p>
]]></content:encoded>
      <guid>https://write.as/choffee/solar-power-at-the-allotment</guid>
      <pubDate>Tue, 11 Feb 2025 11:31:20 +0000</pubDate>
    </item>
    <item>
      <title>New screen / tablet thing - Artist 16 Pen Display (2nd Gen) and using it on Linux</title>
      <link>https://write.as/choffee/new-screen-tablet-thing-artist-16-pen-display-2nd-gen-and-using-it-on?pk_campaign=rss-feed</link>
      <description>&lt;![CDATA[For reasons I still don&#39;t really understand I brought a second hand drawing tablet from CEX. I have always coverted one of the larger drawing tablets and finally this was just staring at me so I thought I would try it.&#xA;&#xA;Many years ago as I was starting my first job a friend and I designed a full screen desk interface. It had a high res full color screen in the middle of the desk and the rest of the desk was low res b&amp;w monitor. The whole desk space was touch screen. You could take the document you where working on and slide it out of the main screen while you worked on something else, you could use a pen or our hand for drawing and typing. If you wanted to send a document to the person opposite you could just slide it off the top of your screen and it would arrive on the top of theirs. It was a great invention but we never got past the idea stage and the idea of that much CRT in one box never quite felt right.&#xA;&#xA;I like to doodle, write, think on paper. I have always had a pad on my desk and now I am lucky to have a Remarkable e-ink tablet that I have beside me on the desk. It&#39;s a space to think, to quickly jot a note or just to play with the lines on.&#xA;&#xA;My excuse for this extra tablet was two fold. First off I quite often have a video playing on my laptop and want to get sort of put it in the backgroud and do some other things but the screen is not really big enough. (This is my &#34;home&#34; laptop which I mostly use on the sofa) so I thought a second screen would let me push that video over there. And secondly I would really like have a larger drawing surface. So I could doodle and take notes.&#xA;&#xA;For a lot of devices now on Linux you just plug them in and they work. Not quite so simple here. The screen worked fine plugged in the cables and off it went. The pen did work but it was more in mouse mode. So I needed something to make this work. I tried to find something in the package repos of my OS but no real joy. It&#39;s not a wacom tablet so it seems the support it a bit out of the ordinary. Next up was the XP-Pen drivers. They offer some Linux support which is great but it felt a bit clunky and I sort of got it working but no pressure support that I could see. It was also a binary install which always feels flaky. So I searched around and found the Open Tablet Driver Project which offered packages but also has a flatpak so I thought I would give that a go. It worked! There was a little bit of an issue with the old drivers still running but once I had clear that up and set the tablet to not use the entire virtual screen but only the tablet screen it seems to be working. And quite nicely. I&#39;ve only had it a couple of days but it&#39;s already serving the &#34;video offload monitor&#34; use case fine. I&#39;ve played around with the drawing but not had a real play. Yet.&#xA;&#xA;So in conclusion it&#39;s pretty neat. It&#39;s yet another gadget in my overcrowded house but I think it&#39;s something I will use regularly but we will see. It works with Linux after a bit of tweaking.&#xA;&#xA;Side note about flatpak: The Open Tablet Drive has a background process that runs on boot. I was surprised to see that the flatpak just ran that without issue. Looks like there is support for adding services from the the flatpak. I&#39;m always suprised how flatpak is moving on and solving these little side issues. I know it still has a lot of issues but as a way to distribute software to all linux and not have to package to every distro it works in most cases.]]&gt;</description>
      <content:encoded><![CDATA[<p>For reasons I still don&#39;t really understand I brought a second hand drawing tablet from <a href="https://uk.webuy.com/" rel="nofollow">CEX</a>. I have always coverted one of the larger drawing tablets and finally this was just staring at me so I thought I would try it.</p>

<p>Many years ago as I was starting my first job a friend and I designed a full screen desk interface. It had a high res full color screen in the middle of the desk and the rest of the desk was low res b&amp;w monitor. The whole desk space was touch screen. You could take the document you where working on and slide it out of the main screen while you worked on something else, you could use a pen or our hand for drawing and typing. If you wanted to send a document to the person opposite you could just slide it off the top of your screen and it would arrive on the top of theirs. It was a great invention but we never got past the idea stage and the idea of that much CRT in one box never quite felt right.</p>

<p>I like to doodle, write, think on paper. I have always had a pad on my desk and now I am lucky to have a <a href="https://remarkable.com/store/remarkable-2" rel="nofollow">Remarkable e-ink tablet</a> that I have beside me on the desk. It&#39;s a space to think, to quickly jot a note or just to play with the lines on.</p>

<p>My excuse for this extra tablet was two fold. First off I quite often have a video playing on my laptop and want to get sort of put it in the backgroud and do some other things but the screen is not really big enough. (This is my “home” laptop which I mostly use on the sofa) so I thought a second screen would let me push that video over there. And secondly I would really like have a larger drawing surface. So I could doodle and take notes.</p>

<p>For a lot of devices now on Linux you just plug them in and they work. Not quite so simple here. The screen worked fine plugged in the cables and off it went. The pen did work but it was more in mouse mode. So I needed something to make this work. I tried to find something in the package repos of my OS but no real joy. It&#39;s not a wacom tablet so it seems the support it a bit out of the ordinary. Next up was the XP-Pen drivers. They offer some Linux support which is great but it felt a bit clunky and I sort of got it working but no pressure support that I could see. It was also a binary install which always feels flaky. So I searched around and found the <a href="https://opentabletdriver.net/" rel="nofollow">Open Tablet Driver Project</a> which offered packages but also has a <a href="https://flatpak.org/" rel="nofollow">flatpak</a> so I thought I would give that a go. It worked! There was a little bit of an issue with the old drivers still running but once I had clear that up and set the tablet to not use the entire virtual screen but only the tablet screen it seems to be working. And quite nicely. I&#39;ve only had it a couple of days but it&#39;s already serving the “video offload monitor” use case fine. I&#39;ve played around with the drawing but not had a real play. Yet.</p>

<p>So in conclusion it&#39;s pretty neat. It&#39;s yet another gadget in my overcrowded house but I think it&#39;s something I will use regularly but we will see. It works with Linux after a bit of tweaking.</p>

<p>Side note about flatpak: The Open Tablet Drive has a background process that runs on boot. I was surprised to see that the flatpak just ran that without issue. Looks like there is support for adding services from the the flatpak. I&#39;m always suprised how flatpak is moving on and solving these little side issues. I know it still has a lot of issues but as a way to distribute software to all linux and not have to package to every distro it works in most cases.</p>
]]></content:encoded>
      <guid>https://write.as/choffee/new-screen-tablet-thing-artist-16-pen-display-2nd-gen-and-using-it-on</guid>
      <pubDate>Sat, 08 Feb 2025 07:50:31 +0000</pubDate>
    </item>
    <item>
      <title>Sharing things I have found on the internet.</title>
      <link>https://write.as/choffee/sharing-things-i-have-found-on-the-internet?pk_campaign=rss-feed</link>
      <description>&lt;![CDATA[Simon Wilson has a blog post about how he has been sharing things that he has found on the internet since 2003. I&#39;ve had some sort of site since then but have always found it tricky to share stuff that I have found as there is always more new stuff to read!&#xA;Simons post goes into some of the detail and he has some simple rules to follow about adding context that adds some value to the reader but also some value to the writer.&#xA;I have read a number of times how writing in public can be a good way to focus your thoughts. You have to think a bit about what is happening and what is going into the link and what your thoughts on it are.&#xA;I ramble around the internet a bit and sometimes find things that are interesting or entertaining but they are all trasient and seem to flow out of life before they have really settled. I have thousands of bookmarks and loads of read articles in pocket ( even more unread!) but I don&#39;t think about then once they have been stored.]]&gt;</description>
      <content:encoded><![CDATA[<p><a href="https://simonwillison.net/2024/Dec/22/link-blog/" rel="nofollow">Simon Wilson has a blog post about how he has been sharing things that he has found on the internet since 2003</a>. I&#39;ve had some sort of site since then but have always found it tricky to share stuff that I have found as there is always more new stuff to read!
Simons post goes into some of the detail and he has some simple rules to follow about adding context that adds some value to the reader but also some value to the writer.
I have read a number of times how writing in public can be a good way to focus your thoughts. You have to think a bit about what is happening and what is going into the link and what your thoughts on it are.
I ramble around the internet a bit and sometimes find things that are interesting or entertaining but they are all trasient and seem to flow out of life before they have really settled. I have thousands of bookmarks and loads of read articles in <a href="https://getpocket.com/" rel="nofollow">pocket</a> ( even more unread!) but I don&#39;t think about then once they have been stored.</p>
]]></content:encoded>
      <guid>https://write.as/choffee/sharing-things-i-have-found-on-the-internet</guid>
      <pubDate>Mon, 06 Jan 2025 10:27:16 +0000</pubDate>
    </item>
    <item>
      <title>Mapping the home row to ctrl-alt-del</title>
      <link>https://write.as/choffee/mapping-the-home-row-to-ctrl-alt-del?pk_campaign=rss-feed</link>
      <description>&lt;![CDATA[Using kmonad I have managed to map my home row keys eg asdf jkl; to be such that when I type normally they just work but when I hold them down they become as modifier key. So if I hold down the &#34;j&#34; for instance then it will be like I am holding down the control key. &#xA;&#xA;I&#39;m not sure that I will get used to this but I seem to be using the C-c, C-h shortcuts in emacs a lot more recently and I thought that this might lower the reaching about. I have not used it yet for this typing for all the shift chars so we will see how it goes...&#xA;&#xA;But I am already liking the fact that k-1 or k-2 (holding down the k key and tapping the number row) uses the gnome shortcuts to move from my terminal to my browser with only one hand just moving up the numbers.&#xA;&#xA;(defcfg&#xA;  input  (device-file &#34;/dev/input/by-id/usb-KINESISFREESTYLEKB800KB800Kinesis_Freestyle-event-kbd&#34;)&#xA;  output (uinput-sink &#34;My KMonad kenisis frestyle2&#34;)&#xA;&#xA;  ;; Comment this if you want unhandled events not to be emitted&#xA;  fallthrough true&#xA;&#xA;  ;; Set this to false to disable any command-execution in KMonad&#xA;  allow-cmd true&#xA;  )&#xA;&#xA;(defsrc a s d f  j k l ; )&#xA;&#xA;(deflayer mine&#xA;  (tap-next-release a lsft)&#xA;  (tap-next-release s lmet)&#xA;  (tap-next-release d lalt)&#xA;  (tap-next-release f lctl)&#xA;&#xA;  (tap-next-release j lctl)&#xA;  (tap-next-release k lalt)&#xA;  (tap-next-release l lmet)&#xA;  (tap-next-release ; lsft)&#xA;)&#xA;`]]&gt;</description>
      <content:encoded><![CDATA[<p>Using kmonad I have managed to map my home row keys eg asdf jkl; to be such that when I type normally they just work but when I hold them down they become as modifier key. So if I hold down the “j” for instance then it will be like I am holding down the control key.</p>

<p>I&#39;m not sure that I will get used to this but I seem to be using the C-c, C-h shortcuts in emacs a lot more recently and I thought that this might lower the reaching about. I have not used it yet for this typing for all the shift chars so we will see how it goes...</p>

<p>But I am already liking the fact that k-1 or k-2 (holding down the k key and tapping the number row) uses the gnome shortcuts to move from my terminal to my browser with only one hand just moving up the numbers.</p>

<pre><code>(defcfg
  input  (device-file &#34;/dev/input/by-id/usb-KINESIS_FREESTYLE_KB800_KB800_Kinesis_Freestyle-event-kbd&#34;)
  output (uinput-sink &#34;My KMonad kenisis frestyle2&#34;)

  ;; Comment this if you want unhandled events not to be emitted
  fallthrough true

  ;; Set this to false to disable any command-execution in KMonad
  allow-cmd true
  )

(defsrc a s d f  j k l ; )

(deflayer mine
  (tap-next-release a lsft)
  (tap-next-release s lmet)
  (tap-next-release d lalt)
  (tap-next-release f lctl)

  (tap-next-release j lctl)
  (tap-next-release k lalt)
  (tap-next-release l lmet)
  (tap-next-release ; lsft)
)
</code></pre>
]]></content:encoded>
      <guid>https://write.as/choffee/mapping-the-home-row-to-ctrl-alt-del</guid>
      <pubDate>Fri, 03 Jan 2025 19:31:41 +0000</pubDate>
    </item>
    <item>
      <title>Silly shrug emoji for emacs abbreviations</title>
      <link>https://write.as/choffee/silly-shrug-emoji-for-emacs-abbreviations?pk_campaign=rss-feed</link>
      <description>&lt;![CDATA[Emacs has abbrev mode (see the help in emacs Ctrl-h r and the Abbrevs section) that allows you to set abbrevations that replace words you type. You might, for instance, what to correct teh to the as that&#39;s a typo that you always make so you can tell abbrev to do that.&#xA;&#xA;tehCtrl-x a gtheCR&#xA;&#xA;That would tell abbrev add-global-abbrev for teh to the. You can also use Ctrl-x a l for local, which just does it for the mode you are in.&#xA;&#xA;For me I wanted to insert the shrug emoji ascii art - &#34;¯\\(ツ)/¯&#34; when I type shrug so I did the following.&#xA;&#xA;¯\\(ツ)/¯Ctrl-x a  gshrug&#xA;&#xA;You can also add an extra i in there. Ctrl-x a i g That&#39;s inverse so you can do the definition backward. I just cut and pasted the string in a buffer.&#xA;&#xA;Now when I type shrug in emacs it creates an emoji every time. I don&#39;t know how annoying that will become but I might add an 8 before the def so I need to add 8shurg to get it as per more examples below.&#xA;&#xA;Anyway here is my ~/.emacs.d/abbrevdefs.el config file with a few other gems that I forgot where there... &#xA;&#xA;It&#39;s quite interesting how much of this stuff just works out the box. The keyboard shortcuts can seem cryptic though the which-key package can help there.&#xA;&#xA;Also note that there is the command unexpand-abbrev that can just undo the last abbreviation.&#xA;&#xA;;;--coding: utf-8;--&#xA;(define-abbrev-table &#39;global-abbrev-table&#xA;  &#39;(&#xA;    (&#34;8Delta&#34; &#34;Δ&#34; nil :count 0)&#xA;    (&#34;8Omega&#34; &#34;Ω&#34; nil :count 0)&#xA;    (&#34;8Sigma&#34; &#34;Σ&#34; nil :count 0)&#xA;    (&#34;8accent&#34; &#34;´&#34; nil :count 0)&#xA;    (&#34;8almost&#34; &#34;≈&#34; nil :count 0)&#xA;    (&#34;8alpha&#34; &#34;α&#34; nil :count 0)&#xA;    (&#34;8beta&#34; &#34;β&#34; nil :count 0)&#xA;    (&#34;8bull&#34; &#34;∙&#34; nil :count 0)&#xA;    (&#34;8cels&#34; &#34;℃&#34; nil :count 0)&#xA;    (&#34;8copy&#34; &#34;©&#34; nil :count 0)&#xA;    (&#34;8deg&#34; &#34;°&#34; nil :count 0)&#xA;    (&#34;8delta&#34; &#34;δ&#34; nil :count 0)&#xA;    (&#34;8down&#34; &#34;↓&#34; nil :count 0)&#xA;    (&#34;8eur&#34; &#34;€&#34; nil :count 0)&#xA;    (&#34;8gamma&#34; &#34;γ&#34; nil :count 0)&#xA;    (&#34;8in&#34; &#34;∈&#34; nil :count 0)&#xA;    (&#34;8inf&#34; &#34;∞&#34; nil :count 0)&#xA;    (&#34;8ksi&#34; &#34;ξ&#34; nil :count 0)&#xA;    (&#34;8lambda&#34; &#34;λ&#34; nil :count 0)&#xA;    (&#34;8ldquo&#34; &#34;«&#34; nil :count 0)&#xA;    (&#34;8left&#34; &#34;←&#34; nil :count 0)&#xA;    (&#34;8mdash&#34; &#34;—&#34; nil :count 0)&#xA;    (&#34;8mdot&#34; &#34;·&#34; nil :count 0)&#xA;    (&#34;8mu&#34; &#34;µ&#34; nil :count 0)&#xA;    (&#34;8ndash&#34; &#34;–&#34; nil :count 0)&#xA;    (&#34;8nin&#34; &#34;∉&#34; nil :count 0)&#xA;    (&#34;8not&#34; &#34;¬&#34; nil :count 0)&#xA;    (&#34;8nu&#34; &#34;ν&#34; nil :count 0)&#xA;    (&#34;8omega&#34; &#34;ω&#34; nil :count 0)&#xA;    (&#34;8para&#34; &#34;§&#34; nil :count 0)&#xA;    (&#34;8phi&#34; &#34;φ&#34; nil :count 0)&#xA;    (&#34;8pi&#34; &#34;π&#34; nil :count 0)&#xA;    (&#34;8plusmin&#34; &#34;±&#34; nil :count 0)&#xA;    (&#34;8pound&#34; &#34;£&#34; nil :count 0)&#xA;    (&#34;8psi&#34; &#34;ψ&#34; nil :count 0)&#xA;    (&#34;8range&#34; &#34;÷&#34; nil :count 0)&#xA;    (&#34;8rdquo&#34; &#34;»&#34; nil :count 0)&#xA;    (&#34;8reg&#34; &#34;®&#34; nil :count 0)&#xA;    (&#34;8right&#34; &#34;→&#34; nil :count 0)&#xA;    (&#34;8sigma&#34; &#34;σ&#34; nil :count 0)&#xA;    (&#34;8sup1&#34; &#34;¹&#34; nil :count 0)&#xA;    (&#34;8sup2&#34; &#34;²&#34; nil :count 0)&#xA;    (&#34;8sup3&#34; &#34;³&#34; nil :count 0)&#xA;    (&#34;8tau&#34; &#34;τ&#34; nil :count 0)&#xA;    (&#34;8theta&#34; &#34;θ&#34; nil :count 0)&#xA;    (&#34;8tm&#34; &#34;™&#34; nil :count 0)&#xA;    (&#34;8up&#34; &#34;↑&#34; nil :count 0)&#xA;    (&#34;shrug&#34; &#34;¯\\(ツ)_/¯&#34; nil :count 1)&#xA;   ))&#xA;&#xA;`]]&gt;</description>
      <content:encoded><![CDATA[<p>Emacs has abbrev mode (see the help in emacs  and the Abbrevs section) that allows you to set abbrevations that replace words you type. You might, for instance, what to correct teh to the as that&#39;s a typo that you always make so you can tell abbrev to do that.</p>

<p><code>teh&lt;Ctrl-x a g&gt;the&lt;CR&gt;</code></p>

<p>That would tell abbrev add-global-abbrev for teh to the. You can also use <code>&lt;Ctrl-x a l&gt;</code> for local, which just does it for the mode you are in.</p>

<p>For me I wanted to insert the shrug emoji ascii art – “¯\<em>(ツ)</em>/¯” when I type shrug so I did the following.</p>

<p><code>¯\\_(ツ)_/¯&lt;Ctrl-x a  g&gt;shrug</code></p>

<p>You can also add an extra i in there. <code>&lt;Ctrl-x a i g&gt;</code> That&#39;s inverse so you can do the definition backward. I just cut and pasted the string in a buffer.</p>

<p>Now when I type shrug in emacs it creates an emoji every time. I don&#39;t know how annoying that will become but I might add an 8 before the def so I need to add 8shurg to get it as per more examples below.</p>

<p>Anyway here is my ~/.emacs.d/abbrev_defs.el config file with a few other gems that I forgot where there...</p>

<p>It&#39;s quite interesting how much of this stuff just works out the box. The keyboard shortcuts can seem cryptic though the which-key package can help there.</p>

<p>Also note that there is the command <code>unexpand-abbrev</code> that can just undo the last abbreviation.</p>

<pre><code class="language-elisp">;;-*-coding: utf-8;-*-
(define-abbrev-table &#39;global-abbrev-table
  &#39;(
    (&#34;8Delta&#34; &#34;Δ&#34; nil :count 0)
    (&#34;8Omega&#34; &#34;Ω&#34; nil :count 0)
    (&#34;8Sigma&#34; &#34;Σ&#34; nil :count 0)
    (&#34;8accent&#34; &#34;´&#34; nil :count 0)
    (&#34;8almost&#34; &#34;≈&#34; nil :count 0)
    (&#34;8alpha&#34; &#34;α&#34; nil :count 0)
    (&#34;8beta&#34; &#34;β&#34; nil :count 0)
    (&#34;8bull&#34; &#34;∙&#34; nil :count 0)
    (&#34;8cels&#34; &#34;℃&#34; nil :count 0)
    (&#34;8copy&#34; &#34;©&#34; nil :count 0)
    (&#34;8deg&#34; &#34;°&#34; nil :count 0)
    (&#34;8delta&#34; &#34;δ&#34; nil :count 0)
    (&#34;8down&#34; &#34;↓&#34; nil :count 0)
    (&#34;8eur&#34; &#34;€&#34; nil :count 0)
    (&#34;8gamma&#34; &#34;γ&#34; nil :count 0)
    (&#34;8in&#34; &#34;∈&#34; nil :count 0)
    (&#34;8inf&#34; &#34;∞&#34; nil :count 0)
    (&#34;8ksi&#34; &#34;ξ&#34; nil :count 0)
    (&#34;8lambda&#34; &#34;λ&#34; nil :count 0)
    (&#34;8ldquo&#34; &#34;«&#34; nil :count 0)
    (&#34;8left&#34; &#34;←&#34; nil :count 0)
    (&#34;8mdash&#34; &#34;—&#34; nil :count 0)
    (&#34;8mdot&#34; &#34;·&#34; nil :count 0)
    (&#34;8mu&#34; &#34;µ&#34; nil :count 0)
    (&#34;8ndash&#34; &#34;–&#34; nil :count 0)
    (&#34;8nin&#34; &#34;∉&#34; nil :count 0)
    (&#34;8not&#34; &#34;¬&#34; nil :count 0)
    (&#34;8nu&#34; &#34;ν&#34; nil :count 0)
    (&#34;8omega&#34; &#34;ω&#34; nil :count 0)
    (&#34;8para&#34; &#34;§&#34; nil :count 0)
    (&#34;8phi&#34; &#34;φ&#34; nil :count 0)
    (&#34;8pi&#34; &#34;π&#34; nil :count 0)
    (&#34;8plusmin&#34; &#34;±&#34; nil :count 0)
    (&#34;8pound&#34; &#34;£&#34; nil :count 0)
    (&#34;8psi&#34; &#34;ψ&#34; nil :count 0)
    (&#34;8range&#34; &#34;÷&#34; nil :count 0)
    (&#34;8rdquo&#34; &#34;»&#34; nil :count 0)
    (&#34;8reg&#34; &#34;®&#34; nil :count 0)
    (&#34;8right&#34; &#34;→&#34; nil :count 0)
    (&#34;8sigma&#34; &#34;σ&#34; nil :count 0)
    (&#34;8sup1&#34; &#34;¹&#34; nil :count 0)
    (&#34;8sup2&#34; &#34;²&#34; nil :count 0)
    (&#34;8sup3&#34; &#34;³&#34; nil :count 0)
    (&#34;8tau&#34; &#34;τ&#34; nil :count 0)
    (&#34;8theta&#34; &#34;θ&#34; nil :count 0)
    (&#34;8tm&#34; &#34;™&#34; nil :count 0)
    (&#34;8up&#34; &#34;↑&#34; nil :count 0)
    (&#34;shrug&#34; &#34;¯\\_(ツ)_/¯&#34; nil :count 1)
   ))

</code></pre>
]]></content:encoded>
      <guid>https://write.as/choffee/silly-shrug-emoji-for-emacs-abbreviations</guid>
      <pubDate>Sun, 01 Dec 2024 22:56:40 +0000</pubDate>
    </item>
    <item>
      <title>The farmers are protesting but at the wrong thing.</title>
      <link>https://write.as/choffee/the-farmers-are-protesting-but-at-the-wrong-thing?pk_campaign=rss-feed</link>
      <description>&lt;![CDATA[Or at least that seems how it is to me from the outside. I&#39;ll accept I don&#39;t really know the first thing about farming so you can take this all with a pinch of salt.&#xA;&#xA;Farmers should be protesting but not because of the tax change.&#xA;&#xA;Labour are closing the tax loophole that allows the wealthy to put their money into farm land and then avoid paying inheritance tax on it. When this law was introduced let us believe that it was intended to let farming families pass on their farms but what has changed is that farm land, that was once worth a small amount for the product it could produce, is now worth more for the tax it can avoid. So farm land has become yet another financial instrument and not a productive item. Small farmers won&#39;t be hit by this as for the most part the tax relief levels still allowed directly and from things like business assets relief will mean they are okay.&#xA;&#xA;Should farmers get to avoid inheritance tax any more than a shoe maker or a bakery? These are all skilled jobs that can be handed down between the generations why should farmers get a free pass? It feels like there should be some point where it makes sense but how do we make it fair across the board and stop businesses being yet another place to avoid tax.&#xA;&#xA;What should farmers be protesting then? Well the fact the the large manufacturing and supermarket chains have an effective cartel driving down the amount they pay for crops and the quality and diversity of the farming. If we want to help farmers then we need to change from a race to the bottom where we will end up with the dust bowls of the 1930&#39;s US and take care of our land. We should be putting protections in place that make it fairer across the board for the farmers to do the right thing, to preserve the land, to produce varied crops and to protect our countryside for the next generation. While subsidies are on way of help the farmers we have to be careful that, like parts of the benefit system which top up low wages for employers, that we don&#39;t end up subsidising the huge corporates like food manufactures and supermarkets. Putting in place protections for contracts and purchase agreements that mean that farmers can get paid on time, can get some protection for bad crops and can run a sustainable business all feel reasonable. If this requires subsidies then we can add tax to the processed food that is making people sick. &#xA;&#xA;On a more positive note the Apricot Centre is proving that we an farm in a more sustainable way that strengthens the countryside and does not treat is as an infinite resource to be exploited for maximum profit. Creating robust ecosystems that encourage nature and biodiversity and a healthy soil.]]&gt;</description>
      <content:encoded><![CDATA[<p>Or at least that seems how it is to me from the outside. I&#39;ll accept I don&#39;t really know the first thing about farming so you can take this all with a pinch of salt.</p>

<p>Farmers should be protesting but not because of the tax change.</p>

<p>Labour are closing the tax loophole that allows the wealthy to put their money into farm land and then avoid paying inheritance tax on it. When this law was introduced let us believe that it was intended to let farming families pass on their farms but what has changed is that farm land, that was once worth a small amount for the product it could produce, is now worth more for the tax it can avoid. So farm land has become yet another financial instrument and not a productive item. Small farmers won&#39;t be hit by this as for the most part the tax relief levels still allowed directly and from things like business assets relief will mean they are okay.</p>

<p>Should farmers get to avoid inheritance tax any more than a shoe maker or a bakery? These are all skilled jobs that can be handed down between the generations why should farmers get a free pass? It feels like there should be some point where it makes sense but how do we make it fair across the board and stop businesses being yet another place to avoid tax.</p>

<p>What should farmers be protesting then? Well the fact the the large manufacturing and supermarket chains have an effective cartel driving down the amount they pay for crops and the quality and diversity of the farming. If we want to help farmers then we need to change from a race to the bottom where we will end up with the dust bowls of the 1930&#39;s US and take care of our land. We should be putting protections in place that make it fairer across the board for the farmers to do the right thing, to preserve the land, to produce varied crops and to protect our countryside for the next generation. While subsidies are on way of help the farmers we have to be careful that, like parts of the benefit system which top up low wages for employers, that we don&#39;t end up subsidising the huge corporates like food manufactures and supermarkets. Putting in place protections for contracts and purchase agreements that mean that farmers can get paid on time, can get some protection for bad crops and can run a sustainable business all feel reasonable. If this requires subsidies then we can add tax to the processed food that is making people sick.</p>

<p>On a more positive note the <a href="https://apricotcentre.co.uk/" rel="nofollow">Apricot Centre</a> is proving that we an farm in a more sustainable way that strengthens the countryside and does not treat is as an infinite resource to be exploited for maximum profit. Creating robust ecosystems that encourage nature and biodiversity and a healthy soil.</p>
]]></content:encoded>
      <guid>https://write.as/choffee/the-farmers-are-protesting-but-at-the-wrong-thing</guid>
      <pubDate>Wed, 27 Nov 2024 17:33:07 +0000</pubDate>
    </item>
    <item>
      <title>RepRap is still going and building new tools.</title>
      <link>https://write.as/choffee/reprap-is-still-going-and-building-new-tools?pk_campaign=rss-feed</link>
      <description>&lt;![CDATA[In a recent post from Vik Oliver of RepRap fame he talks about the progress in his latest super accurate printer work. It looks like they are using 3D printed parts to make a kit for building smaller printers and more accurate printing. This will be a cool tool for building all sorts of small accurate things from medical, small cogs and wheels, and many other things not yet thought of.&#xA;&#xA;Fun to see the project moving on again to develop new tools and new thoughts. With the release of the new Prusa Core One 3D printer this week it seems like things are moving along nicely. My first 3D printer was a Prusa Mendal and I always looked at the newer Prusa printers with envy. The new Core One does seems like it ticks a lot of boxes. With the usual Prusa quality and the long lifespan and upgrade path but above all the open nature of the printers.&#xA;&#xA;]]&gt;</description>
      <content:encoded><![CDATA[<p>In a recent post from Vik Oliver of RepRap fame he talks about the <a href="http://blog.reprap.org/2024/11/introducing-maus-prototype.html" rel="nofollow">progress in his latest super accurate printer work</a>. It looks like they are using 3D printed parts to make a kit for building smaller printers and more accurate printing. This will be a cool tool for building all sorts of small accurate things from medical, small cogs and wheels, and many other things not yet thought of.</p>

<p>Fun to see the project moving on again to develop new tools and new thoughts. With the release of the new <a href="https://blog.prusa3d.com/introducing-prusa-core-one-fully-enclosed-corexy-3d-printer-with-active-temperature-control_105477/" rel="nofollow">Prusa Core One 3D printer</a> this week it seems like things are moving along nicely. My first 3D printer was a Prusa Mendal and I always looked at the newer Prusa printers with envy. The new Core One does seems like it ticks a lot of boxes. With the usual Prusa quality and the long lifespan and upgrade path but above all the open nature of the printers.</p>
]]></content:encoded>
      <guid>https://write.as/choffee/reprap-is-still-going-and-building-new-tools</guid>
      <pubDate>Thu, 21 Nov 2024 16:03:47 +0000</pubDate>
    </item>
    <item>
      <title>What benifit do you get from a Web Application Firewall (WAF) and is it worth the effort.</title>
      <link>https://write.as/choffee/what-benifit-do-you-get-from-a-web-application-firewall-waf-and-is-it-worth?pk_campaign=rss-feed</link>
      <description>&lt;![CDATA[For some time there have been offering from many suppliers and opensource groups for WAFs. These are OSI Layer 7 firewalls essentially. They seem to fall into two categories. The first of which is a generic set of rules that block bad request in may formats and has as starndard pattern. The second type is one where you define exactly what you app is expecting and the firewall blocks everything else.&#xA;&#xA;The Generic rule set based ones do offer some benefit for some web apps but unless your application is trivial you will find them blocking and having to add many exceptions and fix a whole new raft of bugs caused by blocked request. They are worth a try and you can run most of these in reporting mode which might give you a scope for how much work it&#39;s going to be to fix up the rules. They do provide some quite good protection for things like odd characters and weird paths that might break your app.&#xA;&#xA;The second type where you specify the types of request you are expecting in your application and the WAF limits all incoming communication to those requests seem to be of little benifit. If you have written your application with a decent framework and followed best practice with security for that framework then it should already be filling that role. All it means is that you now have to copy your changes from one application into the WAF as part of your deployment. I think your time would be much better spent on a review of the security of your application and the change involved. If you can be sure of the requirements of you application to define a WAF rule then the same should be definable in the application itself.]]&gt;</description>
      <content:encoded><![CDATA[<p>For some time there have been offering from many suppliers and opensource groups for WAFs. These are OSI Layer 7 firewalls essentially. They seem to fall into two categories. The first of which is a generic set of rules that block bad request in may formats and has as starndard pattern. The second type is one where you define exactly what you app is expecting and the firewall blocks everything else.</p>

<p>The Generic rule set based ones do offer some benefit for some web apps but unless your application is trivial you will find them blocking and having to add many exceptions and fix a whole new raft of bugs caused by blocked request. They are worth a try and you can run most of these in reporting mode which might give you a scope for how much work it&#39;s going to be to fix up the rules. They do provide some quite good protection for things like odd characters and weird paths that might break your app.</p>

<p>The second type where you specify the types of request you are expecting in your application and the WAF limits all incoming communication to those requests seem to be of little benifit. If you have written your application with a decent framework and followed best practice with security for that framework then it should already be filling that role. All it means is that you now have to copy your changes from one application into the WAF as part of your deployment. I think your time would be much better spent on a review of the security of your application and the change involved. If you can be sure of the requirements of you application to define a WAF rule then the same should be definable in the application itself.</p>
]]></content:encoded>
      <guid>https://write.as/choffee/what-benifit-do-you-get-from-a-web-application-firewall-waf-and-is-it-worth</guid>
      <pubDate>Wed, 23 Oct 2024 09:31:55 +0000</pubDate>
    </item>
    <item>
      <title>Building a bandsaw at the Hackspace</title>
      <link>https://write.as/choffee/building-a-bandsaw-at-the-hackspace?pk_campaign=rss-feed</link>
      <description>&lt;![CDATA[We have many tools at the local hackspace including some small bandsaws but right now we don&#39;t have a decent large bandsaw. So we are building a bandsaw at the #hackspace. It&#39;s using the big bandsaw plans from Matthias Wandel as a guide and just working our way through them. We have just started to gather some parts and have cut the first circles for the wheels from some scrap 18mm plywood we have at the space. So far so good :)&#xA;I think the bandsaw is one of the #woodworking tools that I have always thought would be useful. I do most of my woodwork with hand tools and I enjoy the process but every so often when I have to do a really long rip or get some pre-cut wood I think it would be really useful to be able to do this using a bandsaw. I&#39;m not that fussed about it&#39;s cross cutting or turning corners for me it will be mostly for ripping boards to side, making veneers and generally getting stock down to size.&#xA;It good to have a project to work on with other people as well. I think one of the things I really enjoy about the hackspace is the support and interest that everybody shows in other peoples projects. I&#39;m sure it must be common in all groups brought together with similar interest but it&#39;s nice to have found my group.&#xA;]]&gt;</description>
      <content:encoded><![CDATA[<p>We have many tools at the local hackspace including some small bandsaws but right now we don&#39;t have a decent large bandsaw. So we are building a bandsaw at the <a href="https://write.as/choffee/tag:hackspace" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">hackspace</span></a>. It&#39;s using the <a href="https://woodgears.ca/big_bandsaw/26in.html" rel="nofollow">big bandsaw plans from Matthias Wandel</a> as a guide and just working our way through them. We have just started to gather some parts and have cut the first circles for the wheels from some scrap 18mm plywood we have at the space. So far so good :)
I think the bandsaw is one of the <a href="https://write.as/choffee/tag:woodworking" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">woodworking</span></a> tools that I have always thought would be useful. I do most of my woodwork with hand tools and I enjoy the process but every so often when I have to do a really long rip or get some pre-cut wood I think it would be really useful to be able to do this using a bandsaw. I&#39;m not that fussed about it&#39;s cross cutting or turning corners for me it will be mostly for ripping boards to side, making veneers and generally getting stock down to size.
It good to have a project to work on with other people as well. I think one of the things I really enjoy about the hackspace is the support and interest that everybody shows in other peoples projects. I&#39;m sure it must be common in all groups brought together with similar interest but it&#39;s nice to have found my group.</p>
]]></content:encoded>
      <guid>https://write.as/choffee/building-a-bandsaw-at-the-hackspace</guid>
      <pubDate>Wed, 16 Oct 2024 21:58:54 +0000</pubDate>
    </item>
  </channel>
</rss>