Notice: fwrite(): Write of 1126 bytes failed with errno=28 No space left on device in /var/www/news.numlock.ch/public_html/wp-content/plugins/wordfence/vendor/wordfence/wf-waf/src/lib/storage/file.php on line 42

WordPress database error: [Disk full (/tmp/#sql-temptable-20e-3fe55-6e.MAI); waiting for someone to free some space... (errno: 28 "No space left on device")]
SHOW FULL COLUMNS FROM `wp_options`


Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the math-captcha domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /var/www/news.numlock.ch/public_html/wp-includes/functions.php on line 6114

WordPress database error: [Disk full (/tmp/#sql-temptable-20e-3fe55-6f.MAI); waiting for someone to free some space... (errno: 28 "No space left on device")]
SHOW FULL COLUMNS FROM `wp_wfLiveTrafficHuman`

WordPress database error: [Disk full (/tmp/#sql-temptable-20e-3fe55-70.MAI); waiting for someone to free some space... (errno: 28 "No space left on device")]
SHOW FULL COLUMNS FROM `wp_wfLiveTrafficHuman`

WordPress database error: [Disk full (/tmp/#sql-temptable-20e-3fe55-71.MAI); waiting for someone to free some space... (errno: 28 "No space left on device")]
SHOW FULL COLUMNS FROM `wp_options`

Various – A changelog by Daniel Mettler

Fix HP 48G, 48GX, 48SX power on failure

After switching the 3 AAA batteries of my beloved HP 48G calculator, it didn’t turn anymore when hitting the “ON” button in the bottom left corner. I first thought it’s because of poor electrical contact due to poor QA batteries (I noticed the new ones were a fraction of a mm shorter than the previous ones). This might have played a rule in the sudden failure to power on my HP 48G, but it probably wasn’t the only reason.

Here are some “tricks” to try, if your HP 48 won’t turn on:

  1. Double-check that you inserted the AAA batteries pointing with their (+) poles in the right direction (left, right, left)
  2. If the AAA batteries have poor electric contact (particularly the middle one is susceptible to this), cut out and fold some aluminium foil (also called “aluminum foil”; historically “tin foil” was used), and put it where better electric contact to the batteries is needed.
  3. Press the “ON” button in the bottom left corner
  4. If that doesn’t work: press and hold “ON”, press and release the “C” button, release the “ON” button
  5. If that doesn’t work (it didn’t for me): Press the area between the “B” and “C” buttons/keys, then press and release “ON”
  6. If that still doesn’t work (it didn’t for me): Flip the HP 48 over and remove the upper right rubber foot. You can basically just wiggle it a bit and pop it off, there’s no need for special instruments. Underneath, there’s a little hole to reset the calculator. Use e.g. a paperclip, insert one end into the hole until you hear or feel a subtle “click” sound to reset the calculator (please bear in mind that this could also clear the memory).
    Then press the “ON” button and you’ll be prompted to try recovering the memory, which you should confirm.
  7. At this point, unless it’s a severe error of the board, your HP 48 should turn on again.
    It might display “Warning: Invalid Card Data” at every start though. You can get rid of this warning message by typing “PINIT” (without double quotes) and pressing the ENTER button (source: https://www.hpmuseum.org/cgi-sys/cgiwrap/hpmuseum/archv013.cgi?read=43990)

If none of the above tips help, your HP 48 probably needs repairing.

It seems to be quite a nightmare to service the HP 48, but there are a couple of videos out there of people repairing a HP 48 SX (disclaimer: know what you’re doing, follow at your own risk):

Nomad Network – Communicate Freely

Off-grid, resilient mesh communication with strong encryption, forward secrecy and extreme privacy.

Nomad Network allows you to build private and resilient communications platforms that are in complete control and ownership of the people that use them. No signups, no agreements, no handover of any data, no permissions and gatekeepers.

https://github.com/markqvist/NomadNet

Information is the basis of society in the digital world.
Freedom of expression/speech and free access to information are indispensable prerequisites for democracy.

Sadly, there are misleading and dubious organisations, lobbyists, parties, secret services, legislative and executive bodies that work against these liberal, enlightened and humanitarian values and demand or advocate censorship, online and offline.
This is a big threat for civil society – you and me, all of us.

And this is what makes projects like NomadNet important and valuable.

Stand up for freedom of expression/free speech and fight censorship!

(And as always, please note the disclaimer: All software and hardware can have security bugs).

Browser add-ons to skip sponsor segments and prevent clickbait on YouTube

Two pretty interesting browser add-ons/plugins to improve the UX on YouTube:

SponsorBlock is an open-source crowdsourced browser extension and open API for skipping sponsor segments in YouTube videos. Users submit when a sponsor happens from the extension, and the extension automatically skips sponsors it knows about using a privacy preserving query system. It also supports skipping other categories, such as intros, outros and reminders to subscribe, and skipping to the point with highlight.

DeArrow is an open source browser extension for crowdsourcing better titles and thumbnails on YouTube. The goal is to make titles accurate and reduce sensationalism. No more arrows, ridiculous faces, and no more clickbait.

(/ht https://news.ycombinator.com/item?id=41222577)

The best video and recipe how to make Pizza Napoli?

This is the best video and recipe I have discovered so far, showing and describing how to bake a perfect Pizza Napoli. It is probably no coincidence that the presenter, Francesco Ialazzo from Ingelheim, is apparently a world champion pizza maker. But it is all the more astonishing that he gives such a detailed insight into the recipe (using international (SI) units of measurement) and the production. He must be very sure that making a perfect pizza also requires a lot of experience, good starting products and a lot of craftsmanship.

One viewer (Julian Aponte) took the trouble to transcribe the recipe (the original comment is in German, like the video, I’ve added it, slightly corrected, at the end of this post [1]):

1kg flour type 405 or Typo 00
650 ml water
5 g fresh yeast or 2.5 g dry yeast
32 g sea salt

  1. put some water aside
  2. put most of the water into the bowl
  3. dissolve the yeast in the water in the bowl
  4. add flour to the bowl
  5. knead the dough (machine for 5 minutes)
  6. add salt to the bowl
  7. gradually add the water that has been set aside.
  8. rub hands with olive oil and take dough out of the bowl
  9. turn the dough over and knead until the dough is no longer sticky
  10. cover the dough with a damp cloth and let it rest at room temperature for 30-35 minutes
  11. portion the dough into balls of 280 g each
  12. cover the dough and let it rise for 6-8 hours
    Shape the dough into round pizzas. 14.
  13. put the strained San Marzano tomatoes on the pizza
  14. sprinkle some Pecorino on pizza
  15. put basil on pizza
  16. put olive oil on pizza
  17. put small pieces of buffalo mozzarella on pizza
  18. put the pizza in the oven at as high a temperature as possible and keep a constant eye on it (ideally on a pizza stone)
  19. garnish with mozzarella, basil and olive oil.

My transcription of the baking temperature information:

In a stone oven:

  1. Temperature of the stone on top: 450-460 °C
  2. Temperature of the stone at the bottom: 360-370 °C
  3. On average, bake the pizza 1.5 to 2 minutes at approx. 390 °C

In a normal oven at home (the pizza will be a bit crispier and drier):

  1. preheat the oven for 40 minutes with a firebrick.
  2. place the pizza on the fireclay stone
  3. bake at 250 °C for about 15-20 minutes.

I am very much looking forward to trying out this recipe!

[1] Transcribed (by Julian Aponte) recipe in German:

1 kg Mehl Typ 405 oder Typo 00
650 ml Wasser
5 g frische Hefe oder 2.5 g Trockenhefe
32 g Meersalz

  1. Etwas Wasser bei Seite stellen
  2. Großteil des Wassers in die Schüssel geben
  3. Hefe in Wasser in der Schüssel auflösen
  4. Mehl in die Schüssel geben
  5. Teig kneten (Maschine 5 Minuten)
  6. Salz in die Schüssel geben
  7. Bei Seite gestelltes Wasser nach und nach hinzugeben
  8. Hände mit Olivenöl einreiben und Teig aus der Schüssel holen
  9. Teig solange umschlagen und kneten, bis der Teig nicht mehr klebt
  10. Teig mit feuchtem Tuch abgedeckt bei Raumtemperatur 30-35 Minuten ruhen lassen
  11. Teig in Bällchen à 280 g portionieren
  12. Teig abdecken und 6-8 Stunden gehen lassen
  13. Teig so runden Pizzen formen
  14. Passierte San Marzano Tomaten auf Pizza geben
  15. Etwas Pecorino auf Pizza verteilen
  16. Basilikum auf Pizza geben
  17. Oliven Öl auf Pizza geben
  18. Büffelmozzarella in kleine Stücken auf Pizza geben
  19. Pizza in Ofen bei möglichst hoher Temperatur geben und stetig beobachten (Ideal auf Pizzastein)
  20. Mit Mozzarella, Basilikum und Oliven Öl garnieren

Fixing so-called “dishwasher safe” products

Got a “dishwasher safe” product whose shape is actually not suitable for a dishwasher at all? You’re not alone.

In fact, it’s shocking how many allegedly dishwasher friendly products out there obviously weren’t optimised for dishwashers, shape-wise.

Considering that in a free market, supply would ultimately be driven by demand, i.e. our purchases, one can “guesstimate” how little time and thought most people (yours truly too) apparently spend for purchasing decisions related to such everyday products! Then again, at least the engineers designing those products must have spent a couple of days thinking through their designs, one would hope. How could they end up with such inadequate designs, and how could those even pass internal product testing and quality assurance assessments? It’s probably due to market imperfections indeed.

E.g. look at this inconspicuous, allegedly officially “dishwasher safe” plastic mug:

As you can see: Its designer DID think of making a drainage hole at the bottom of the hollow handle. Dishwater would thus drain from it and not collect.

But what’s the point of that hole anyway, if water can’t and isn’t supposed to drain from the mug? As a mug, by design, is not supposed to leak liquids.
In other words: Who on earth would place this mug in the dishwasher in upright position, for dishwater to collect in the mug itself?
So, the only reasonable way to put this mug into the dishwasher would be upside-down. Which voids the whole point for that drainage hole in the hollow handle, except maybe to release hot steam, lowering the maximum heat the plastic handle would have to withstand (but what about the ascending hot steam that will be collected in the mug itself? Heat-deforming the bottom of the mug would be even worse than heat-deforming the bottom of the handle)

If we placed this mug correctly, i.e. upside-down in the dishwasher, dishwater would instead collect in the now concave, open part where the handle is attached to the mug. As strangely, the designer apparently didn’t think of designing holes there (or of sealing off the whole handle, making all surfaces convex), so that water could drain between the fins.

What can you do?

  1. Make it a habit: Before purchasing any such item, think twice about how you would place it in the dishwasher and whether dishwater could fully drain from the product like that. Don’t simply rely on the “dishwasher safe” symbol on the packaging, as that (sadly) doesn’t cover the shape of the product, only its materials (all products shown in this blog post ironically have an embossed “dishwasher safe” logo)
  2. For those faulty “dishwasher-friendly” products you already own, take a drill and drill some holes in appropriate places yourself (keep in mind structural stability too though). Or, probably better for most plastics, use a heated awl to create clean holes without splinters.
  3. If you are a product designer, please think more thoroughly when designing your next product. Obviously, the free market isn’t as perfect as consumers would wish for, and thus likely wouldn’t punish you as hard for releasing a suboptimal or faulty product as you’d deserve. Please think through the designs of your products nonetheless, before considering them ready for production release.
    IOW: Minimalism isn’t a bad principle per se (actually beneficial in many situations), but always know when to apply it and when not to apply it (i.e. invest a bit more in thinking -> your brain will automatically protect you from overthinking anyway, e.g. in “fight or flight” situations).
    In the long run, both the selling market and the job market should reward your superior work and work ethics.
  4. If you’re specifying requirements for certification labels: Please think thoroughly, and particularly also think from an end-user’s perspective. In the end, a label/certification should help purchasers to make better purchasing decisions and sellers of good, certified products to differentiate more visibly from their inferior competitors.
    A disclaimer regarding the above example: The “dishwasher safe” logo might not actually be an official, certified label, despite its pretty uniform look. It nonetheless raises the question: What’s the value of a “dishwasher safe” logo if that only covers the materials, but not also the shape of the product? From a purchaser’s perspective, an allegedly “dishwasher safe” product that doesn’t allow all dishwater to drain at least in one viable, stable position in the dishwasher is just as useless as a product that severely deforms, shrinks or melts in the dishwasher. That logo should thus cover both materials and shape (i.e. form and function).

The actual fix, if you already have faulty products

Example of two quick-fixed “dishwasher safe” products, the above mug and the lid of a shaker (both before final cleaning of splinters). Also note that these fixes have no significant negative impacts on the structural stability, reliability and durability of the products:

Other faulty “dishwasher friendly” products

Unfortunately, there are countless other examples!
Check the bases of your coffee cups: Are they fully flat? Or rather slightly concave, as so often? If the later, are there any slits/gaps in the base so that dishwater can nicely drain when placing the cups in the dishwasher upside-down?
Similar: Bowls, glasses, plates
I haven’t tried fixing those myself yet, but milling slits/gaps with a multifunction rotary tool (e.g. Dremel) might be worth trying.

New Apple Magic Keyboard with Numeric Keypad is surprisingly good, even excellent!

Recently, I’ve managed to render my beloved old Apple Keyboard (full-size, with numeric keypad) useless – accidentally pouring half a glass of tap water over it was sufficient, unfortunately (due to the mineral ions in the tap water; distilled water wouldn’t have conducted electricity and thus wouldn’t have shorted circuits; on the other hand, drinking distilled water would probably shorten your life, so please don’t consider doing this).

Luckily, I could temporarily use a similarly old, compact Apple Bluetooth keyboard instead. As I really wouldn’t recommend that keyboard for everyday work though (poor, bubbly typing experience, odd placement of keys requiring weird function key combinations, no numeric keypad), I had to order a full-size keyboard as a replacement again, so I ordered one of the new Apple Magic Keyboards with a Numeric Keypad (in Space Gray and I really like that, but the colour doesn’t matter in regard to the typing experience):

https://www.apple.com/ch-de/shop/product/MRMH2SM/A/magic-keyboard-mit-ziffernblock-schweiz-space-grau

(above is the Swiss German version, US version: https://www.apple.com/shop/product/MRMH2LL/A/magic-keyboard-with-numeric-keypad-us-english-space-gray)

I first thought that the even smaller lift of the keys (luckily with scissor and not butterfly switches) of this new keyboard would be very disturbing and that I’d have a hard time getting accustomed to it.

To my big surprise however I got accustomed to this new typing experience within a couple of hours already and now, after about 3 weeks of using it, I can confidently say: I love this new Apple Magic Keyboard with Numeric Keypad even much more than my previous, old Apple Keyboard with Numeric Keypad and wouldn’t want to switch back anymore.

Typing with it feels so immediate, so quick and so “raw” and “crunchy”, it’s literally almost addictive. I can type considerably faster with it than with the previous keyboard, let alone any regular IBM-type keyboards (although I like those too, for their build-quality, for the interesting history and stories behind them, for their customizability and standardization, for the bustling keyboard enthusiast scene around it). Further, typing for a prolonged time feels much less tiring for the fingers, hands and forearms.

It feels as if you had to work with a wobbly tool for quite some time, then all of a sudden, get a very precise and exact instrument, like e.g. skiing with racing skis vs. with allround skis. It’s pure joy!

The difference is difficult to describe, so I would recommend you rather go experience it yourself and judge for yourself. For me, it’s my most favourite keyboard so far.

I’m even thinking of getting one for the Windows workstation at work too, it’s that good.

Got a recent Mac and Boot Camp? You’ll need unofficial drivers.

(Or: The sad state of Apple’s Boot Camp support)

If you use Boot Camp with the official AMD GPU drivers the Boot Camp assistant installs, you’ll notice that many recent games in Windows 10 will issue warnings about outdated AMD GPU drivers and/or will simply crash (e.g. after a couple of minutes, like Forza Horizon 4).

Apparently, the only remedy is installing unofficial AMD drivers from https://www.bootcampdrivers.com (kudos!). It worked fine for me ( Adrenalin 19.1.2 V3 on a 15 inch MBP late 2018 with an AMD Radeon Pro 560X) – the games stopped crashing – BUT apparently, installing unofficial drivers from the above web site happens to void your Apple Care warranty (read: You do it at your own risk).

This means that one has the choice to either void the warranty or stick with an unacceptably buggy Boot Camp installation. Really, Apple?

Using multiple Skype accounts on macOS

With the recent changes in Skype, the “traditional” method of running several Skype instances using different system users doesn’t work anymore (as the the new authentication dialog strangely doesn’t get the focus anymore).

So, in order to use several Skype accounts on macOS (formerly known as Mac OS X), do the following:

  1. Open the Script Editor (in the ‘Utilities’ folder in the ‘Applications’ folder)
  2. Create a new script with the following content:
    do shell script "open -na /Applications/Skype.app/Contents/MacOS/Skype --args -DataPath '/Users/your_system_user/Library/Application Support/Skype_any_identifier'"

    Replace your_system_user by your regular macOS user account (see ‘whoami’ in Terminal)
    Replace _any_identifier by the according Skype account name, e.g. _myskypename (doesn’t really matter what, just don’t use an empty string)
    Please mind the double quotes and single quotes (important!)

  3. Save the script as an application: File.. Save.., choose “Application” as file format, give it a name and store it e.g. in your home directory or in the Applications folder

Repeat these steps for any of your Skype accounts, giving each Skype account a different Skype_any_identifier. You can then start the according Skype instances by double clicking on the according app.

Explanation:

The above script starts a new instance of Skype (which would otherwise be prevented), using the -n argument. Each instance of Skype gets its own directory to store the according account data, using the -DataPath argument.

Guaranteeing memory safety in Rust | Air Mozilla

Nicholas Matsakis of Mozilla on how Rust guarantees type soundness, memory safety, and data-race freedom while still offering control similar to C/C++:

(via Guaranteeing memory safety in Rust | Air Mozilla.)

Rust, with its funny name, reminds more of a mutt than an academic programming language. It’s that pragmatism however, that has a lot of potential to help solving well-known “real world” reliability problems in software engineering. It would definitely make a worthwhile addition to other programming languages taught in CS classes.

Mozilla has already started building Servo, a web browser engine based on Rust. While still far from usable (Disclaimer: I’ve just compiled and quickly tested the current master branch sources on Mac OS X Mavericks), it’s the right strategic move and I wonder when other browser projects, like Chromium, will start shifting to safer programming languages too.

Modern web browsers are very complex and accordingly vulnerable pieces of software and yet, with the rise of the browser as an app platform, we depend more and more on their reliability, safety and security.

Ironically, my Chrome browser irrecoverably froze while I was drafting this blog post. Although chrome doesn’t rust, some Rust would actually be a good thing for Chrome, in the long term.


Notice: fwrite(): Write of 1126 bytes failed with errno=28 No space left on device in /var/www/news.numlock.ch/public_html/wp-content/plugins/wordfence/vendor/wordfence/wf-waf/src/lib/storage/file.php on line 42

Fatal error: Uncaught wfWAFStorageFileException: Unable to verify temporary file contents for atomic writing. in /var/www/news.numlock.ch/public_html/wp-content/plugins/wordfence/vendor/wordfence/wf-waf/src/lib/storage/file.php:51 Stack trace: #0 /var/www/news.numlock.ch/public_html/wp-content/plugins/wordfence/vendor/wordfence/wf-waf/src/lib/storage/file.php(658): wfWAFStorageFile::atomicFilePutContents() #1 [internal function]: wfWAFStorageFile->saveConfig() #2 {main} thrown in /var/www/news.numlock.ch/public_html/wp-content/plugins/wordfence/vendor/wordfence/wf-waf/src/lib/storage/file.php on line 51