LWN: Comments on "The end of the accounting search" https://lwn.net/Articles/925782/ This is a special feed containing comments posted to the individual LWN article titled "The end of the accounting search". en-us Fri, 19 Sep 2025 16:44:47 +0000 Fri, 19 Sep 2025 16:44:47 +0000 https://www.rssboard.org/rss-specification lwn@lwn.net Scratch https://lwn.net/Articles/932754/ https://lwn.net/Articles/932754/ ArneBab <div class="FormattedComment"> I think that Scratch is great to explore an API, so it’s quite expected that it was easy to get going with it. And it uses the concepts of programming without introducing the "why doesn’t it compile?!" madness :-)<br> </div> Tue, 23 May 2023 19:53:34 +0000 Scheme https://lwn.net/Articles/932753/ https://lwn.net/Articles/932753/ ArneBab <div class="FormattedComment"> It’s great to see that link here!<br> <p> Did you know that a derivative of readable (wisp¹) is now used for the Guix Workflow language for reproducible science in HPC? Ricardo Wurmus who realized that showed it to people who were uneasy with the regular Scheme look of the code and the experience was very positive:<br> <p> <span class="QuotedText">&gt; »Wisp allows people to see code how Lispers perceive it. Its structure becomes apparent.« — Ricardo Wurmus</span><br> <p> I built wisp 10 years ago with the thought at the back of my mind to use it in teaching one day, and now I use it to show error correction codes in a networking lecture and to represent concurrent algorithms for distributed systems.<br> <p> ¹: for more information on wisp and the source of the quote see <a rel="nofollow" href="https://www.draketo.de/software/wisp">https://www.draketo.de/software/wisp</a><br> </div> Tue, 23 May 2023 19:50:45 +0000 The end of the accounting search https://lwn.net/Articles/932745/ https://lwn.net/Articles/932745/ fraggle <div class="FormattedComment"> <span class="QuotedText">&gt; Scheme looks like Lisp but isn't really Lisp</span><br> <p> What a very silly thing to say.<br> </div> Tue, 23 May 2023 18:28:40 +0000 The end of the accounting search https://lwn.net/Articles/932560/ https://lwn.net/Articles/932560/ ProsaicHacker <div class="FormattedComment"> I did a contract that had me creating cost value Journal Entries for buildings owned by the organization over the previous 100 years.<br> <p> Due to IT's bizarro restictions on installing tools I used a lot of portable apps including a screen control language<br> the directly use the UI of the accounting app to insert and delete records from the pre-production DB.<br> In a important demo of the system,the director of account noticed a flaw in the form of a internal tracking number.<br> It was a dash in the wrong place. <br> While they were discussing plans to hire a data entry person to do Journal Entries back out the transaction and reenter a new one,<br> I unload the database, fixed the mistake with Perl, and reloaded it. They watched me do it and were in horror that it could be done even in pre-prod. They thought all system were immutable. <br> <p> I never did that kind of thing in front of accountants again.<br> </div> Sun, 21 May 2023 22:55:12 +0000 The end of the accounting search https://lwn.net/Articles/932543/ https://lwn.net/Articles/932543/ j0057 <div class="FormattedComment"> Two work-arounds come to mind: use the bank's web application to make the transfer from your desktop/laptop, or go to a physical shop and pay with your banking card.<br> </div> Sun, 21 May 2023 17:46:52 +0000 The end of the accounting search https://lwn.net/Articles/932539/ https://lwn.net/Articles/932539/ vivekgani <div class="FormattedComment"> I recently (spring 2023) made updates and added documentation to the scripts Jonathan Corbet (and contributors) here: <a rel="nofollow" href="https://github.com/erikmack/qb-escape">https://github.com/erikmack/qb-escape</a><br> <p> Would love to see someone package this into a standalone migrater tool so non-technical folks could use it!<br> </div> Sun, 21 May 2023 16:07:06 +0000 The end of the accounting search https://lwn.net/Articles/932512/ https://lwn.net/Articles/932512/ ghane <div class="FormattedComment"> I am in Singapore, which has quite good instant transfers, Net banking, and 99% broadband penetration at home. Yet companies still issue cheques, and accept them.<br> <p> <span class="QuotedText">&gt; In English law, and this has been true for a very long time (and is still true today), the fact that you've paid with a cheque is an acknowledgement that you owe money. Once I have a cheque from you, I do not need to get into whether or not you owed me money, just into whether or not the cheque bounced; if it bounced, you owe me the full value of the cheque, simply on the basis that the cheque bounced. </span><br> <p> This is important.<br> <p> Also important is the cheque issuance process. In small owner-operated firms, the cheque book is with the Accountant, who checks invoices, prepares the Payment Voucher, and then the cheque. This is presented to the Owner (the Sole Signatory), who glances at the Payment Voucher, mutters: "what? So much?", and signs. Despatch is left to the Accountant.<br> <p> If the Internet Access is given to the Accountant, the Owner believes it will be misused. If the Internet Access is with the Owner, then he is too important and busy to type in stuff (the typical owner here has a $1000 iPhone but is proud that he does not have a PC, his secretary does).<br> <p> On the other side, the Payee gets a piece of paper (and the cheque has space to write the Invoice number it is for), so it is easy to reconcile in your ledger. No need to wait for an end-of-month statement, to see who paid you.<br> <p> tl;dr: People use QR Codes, mobile payments, credit cards, stored wallets, etc all day. But businesses still prefer cheques. Because their workflow is set up that way.<br> <p> <p> </div> Sat, 20 May 2023 13:34:11 +0000 The end of the accounting search https://lwn.net/Articles/932472/ https://lwn.net/Articles/932472/ nijhof <div class="FormattedComment"> The real corner case is trying to buy a new phone after breaking the old one, where you need the old phone to confirm any payment.<br> </div> Fri, 19 May 2023 16:01:16 +0000 The end of the accounting search https://lwn.net/Articles/932465/ https://lwn.net/Articles/932465/ kleptog <div class="FormattedComment"> <span class="QuotedText">&gt; There's a feature that the cheque has: the person being paid doesn't have to share his/her banking details with the payer, and has the option of caching it on any account that he/she sees fits.</span><br> <p> That feature is covered by using other payment services. For example Tikkie allows the user to make payment links for free which they send to the other person who pays it using by instructing their own bank. The underlying transfers are done by SEPA-Instant so for the users it's instant and the users only see the account number of Tikkie. There are many such services. If you're wondering who pays: it's not free for business users (&gt;€2500/day).<br> <p> As for the out of juice scenario, that's really a corner case. Then again, I live in a country with one the of the most reliable power networks in the world (&gt;99.99%). Almost all the time you can just pay later when stuff comes online again. Such a narrow use case is not enough to sustain cheques.<br> </div> Fri, 19 May 2023 14:28:30 +0000 The end of the accounting search https://lwn.net/Articles/932401/ https://lwn.net/Articles/932401/ irvingleonard <div class="FormattedComment"> There's a feature that the cheque has: the person being paid doesn't have to share his/her banking details with the payer, and has the option of caching it on any account that he/she sees fits. Also, it works without electricity (ran out of juice? got the phone broken/stolen? got your account locked because reasons? etc).<br> </div> Thu, 18 May 2023 19:39:09 +0000 The end of the accounting search https://lwn.net/Articles/931956/ https://lwn.net/Articles/931956/ Cyberax <div class="FormattedComment"> <span class="QuotedText">&gt; While ACH seems generally to be a working day. ???</span><br> <p> For transactions less than $5000 it's 1 working day. For anything else, it's _three_ business days.<br> <p> There are plans to move to instant ACH transactions, but banks are dragging their feet because they like being able to charge fees for "instant" wire transfers (the largest banks in the US settle wire transfers within minutes).<br> </div> Tue, 16 May 2023 01:42:04 +0000 The end of the accounting search https://lwn.net/Articles/931952/ https://lwn.net/Articles/931952/ farnz <p>Because bouncing the cheque is the only option the bank has to move risk around - by bouncing a cheque, all the risk is moved to the payee, who can either chase the payer for new payment (using the bounced cheque as evidence that you owe them money), or discover that the payer is no longer in reach of English law, and that they've lost their money. <p>In contrast, with a system where the payer engages in a dialogue with their bank to ask them to issue a payment, the bank can move risk around to the payer, not just to the payee, by asking the payer steadily more probing questions until the bank is convinced that the total risk to the bank is low enough. <p>And remember that there's not just fraud risk involved - there's also the risk of someone writing more cheques than they have money to cover, leaving the bank with a bad debt, and there's the risk of having to actually offer some form of customer service to a customer who's been upset by the experience. By having the payer engage in a dialogue with their bank, which ends with either payment made, or payer terminating the dialogue, the bank only ever has to handle the risk its own customer represents; with a cheque written by the payer, the payer's bank also has to handle the risk the payee represents if the cheque is bounced, and has additional risk from the payer being upset because they thought the payment had cleared out of their account, and now cannot afford to pay the money they owe. <p>Fundamentally, the bank's goal is to reduce fraud risk to a level where it will eat the cost of fraud, and to reduce the other risks to zero because the bank would prefer to not spend any money at all on customer service (as is reflected in the quality of CS you get from a UK bank nowadays). Cheques are not compatible with this, since when things go wrong, the payer's bank has to supply CS to both the payer and payee, and has to handle fraud by the payee, while the payee's bank has to supply CS to the payee, and has to handle fraud by the payer. Internet banking works well for this, since when things go wrong, the payee is not dealing with the banks at all, and all the risk is borne by the payer's bank, who has to provide CS to the payer, and who can reduce the fraud risk to whatever level it's happy to accept. Mon, 15 May 2023 23:15:16 +0000 The end of the accounting search https://lwn.net/Articles/931950/ https://lwn.net/Articles/931950/ Wol <div class="FormattedComment"> <span class="QuotedText">&gt; This means that if the cheque isn't a forgery, the payer's bank has no option but to honour it, even if it suspects fraud is involved, and then to deal with the resulting upset customer who wants the bank's help dealing with the fraud. With online payments, the bank can intervene earlier, and reduce its exposure to fraud by being very clear to its customer that the fraud checks are failing, and you need to take extra action to make the payment happen. </span><br> <p> So how come my bank bounced my cheque, when it had no real reason to be suspicious?<br> <p> Cheers,<br> Wol<br> </div> Mon, 15 May 2023 22:24:23 +0000 The end of the accounting search https://lwn.net/Articles/931919/ https://lwn.net/Articles/931919/ farnz <p>In English law, and this has been true for a very long time (and is still true today), the fact that you've paid with a cheque is an acknowledgement that you owe money. Once I have a cheque from you, I do not need to get into whether or not you owed me money, just into whether or not the cheque bounced; if it bounced, you owe me the full value of the cheque, simply on the basis that the cheque bounced. <p>This means that if the cheque isn't a forgery, the payer's bank has no option but to honour it, even if it suspects fraud is involved, and then to deal with the resulting upset customer who wants the bank's help dealing with the fraud. With online payments, the bank can intervene earlier, and reduce its exposure to fraud by being very clear to its customer that the fraud checks are failing, and you need to take extra action to make the payment happen. <p>Now, the bank is well aware that not all customers will pay attention to the failed fraud checks, but I've encountered them twice in the wild; once paying someone who went (legitimately) by multiple names, where confirmation of payee raised an issue because I'd used his stage name, and the account I had for him didn't have his stage name attached (easily fixed), and once paying for goods I had ordered online, where the bank warned me of its fraud suspicion and I cancelled the order instead - which turned out to be the right thing, because I later saw other people complaining that they'd bought the same item with same serial number from the seller as I was trying to buy, but months before I did, and it hadn't been delivered. <p>Had I wanted to, I could have overriden the bank's fraud checks in both cases, and told it that I did know what I was doing. I chose to follow the bank's advice, but I didn't have to. With a cheque, in the second case, however, I'd have been stuffed - he'd have the cheque, and would be able to claim that by sending him a cheque, I had agreed to pay him. Mon, 15 May 2023 17:17:27 +0000 The end of the accounting search https://lwn.net/Articles/931918/ https://lwn.net/Articles/931918/ Wol <div class="FormattedComment"> <span class="QuotedText">&gt; Remember, also, that in English law, you've made the payment by giving the payee the cheque; it's too late for the bank to run its checks at this point, since in law the payment has been made unless the cheque is proven to be fraudulent - but what the bank wants is to stop the payment unless it's proven to be legitimate within the bank's tolerance for risk. So, for your scheme to work in English law, the recipient's bank needs to forward a scan of the cheque and the paying-in slip before the cheque is written - I hope the problem with this is obvious. </span><br> <p> Has the law changed, then? That WAS the case with a cheque guarantee card. And how come my bank bounced my cheque because it failed fraud checks? Are you telling me my bank acted illegally?<br> <p> Cheers,<br> Wol<br> </div> Mon, 15 May 2023 17:01:49 +0000 The end of the accounting search https://lwn.net/Articles/931855/ https://lwn.net/Articles/931855/ farnz <p>The difference between quarterly statements and monthly is entirely regulatory - you get 30 days after the statement date to challenge line items, in which the bank must prove that the line item is legitimate, after which the burden of proof shifts to you as the account holder to prove that it's not. If you increased that time to 90 days, then monthly statements would be just fine for these people (whose specific brain injuries stop them reading or writing; they're capable of getting people to read and write for them, but not doing it themselves). <p>And there's no need to align the statement with the payment quarter or whatever - you need a carer who comes in every 3 months and who's financially literate enough to help you reconcile your accounts and ensure that all line items are either legitimate, or have been challenged, in that 30 day period. <p>Remember, also, that in English law, you've <em>made</em> the payment by giving the payee the cheque; it's too late for the bank to run its checks at this point, since in law the payment has been made unless the cheque is proven to be fraudulent - but what the bank wants is to stop the payment unless it's proven to be legitimate within the bank's tolerance for risk. So, for your scheme to work in English law, the recipient's bank needs to forward a scan of the cheque and the paying-in slip <em>before</em> the cheque is written - I hope the problem with this is obvious. <p>Fundamentally, it all comes down to risk management - the bank is very happy to accept some level of fraud in order to permit normal transactions to go through; cheques prevent the bank from choosing what level of fraud it's happy to accept, since it cannot vary its checks based on the total amount at risk if it later turns out that fraud took place. The old cheque guarantee card was a way to limit the risk to the bank; the card said what the maximum transaction amount it guaranteed was, and if you exceeded that limit, the entire cheque was not guaranteed. So, when my card said £20, any transaction over £20 where I used a cheque for part or all of the amount was not guaranteed by the scheme; my last guarantee card said £500, which meant the bank was at risk for up to £500 each time I used a cheque covered by the scheme. Mon, 15 May 2023 14:12:06 +0000 The end of the accounting search https://lwn.net/Articles/931852/ https://lwn.net/Articles/931852/ Wol <div class="FormattedComment"> As a carer myself, I've never come across your quarterly scenario... and seriously, how does the person being cared for align the quarterly statement with the payment quarter or whatever ... what's the difference between three monthly statements and one quarterly statement, apart from the fact that monthly means you've got the statements when you need them, not when the bank deigns to send them.<br> <p> SMS banking service? What's that? As for automated telephone banking service, I really can't imagine the elderly / disabled people I look after being able to cope with it ...<br> <p> And while things may have changed, what you describe does not sound like my experience of banking fraud checks. (Your description of bank incompetence seems pretty good, though.) You say the banks want time to do fraud checks? Then why can't the recipient's bank just forward a scan of the cheque and the paying in slip to the drawer's bank, which runs said fraud checks before it sends the money. Simples. Might catch a lot of scams, seeing as they'd be able to run "does the recipient's bank account look dodgy?" checks!<br> <p> Cheers,<br> Wol<br> </div> Mon, 15 May 2023 13:59:12 +0000 The end of the accounting search https://lwn.net/Articles/931849/ https://lwn.net/Articles/931849/ farnz <p>Quarterly statements are commonly used by the disabled as a way to align statement arrivals with the time their carers have to help them reconcile their accounts. Insisting that you must take monthly statements if you want to use cheques is a way to disenfranchise this group, which doesn't seem like a good trade-off. <p>And if you <em>have</em> a mobile phone, why not use the bank's automated telephone or SMS banking service to make the payment instead? This is better from the bank's point of view, because it means that the bank can do as many checks as it wants up-front, before payment is presented the to payee's bank, rather than having to do its checks after the payee has apparently "received" the money. <p>This is why the banks don't care to reduce this timescale - fundamentally, they want the payer to get in touch with them and arrange payment, so that they can control their exposure to risk up-front. A cheque inherently involves the payee getting in touch to demand payment, and thus by the time the bank is handling a cheque, it's too late to do anything to reduce the risk; all the bank can do is move the risk around between the payer, the payer's bank, the payee and the payee's bank. Mon, 15 May 2023 13:29:34 +0000 The end of the accounting search https://lwn.net/Articles/931848/ https://lwn.net/Articles/931848/ Wol <div class="FormattedComment"> <span class="QuotedText">&gt; Of these, the only one that could reasonably be reduced is the final one - where there's a delay notifying the payee's bank of the allegation of fraud, but that only gets you down to 150 days instead of 180.</span><br> <p> Let's knock off another 60 days ... Pretty much EVERY current account I've had is monthly statements (with "no transaction? no statement!"). I think banks may have tried to move to quarterly statements 20 years ago, but for current accounts that doesn't seem to have stuck.<br> <p> And given the propensity for banks to demand mobile numbers and spew texts, surely "cheque no N has been presented for payment, please contact us if you didn't write it" isn't hard?<br> <p> At the end of the day, pretty much all of your timescales could be massively reduced, if the banks cared.<br> <p> Cheers,<br> Wol<br> </div> Mon, 15 May 2023 12:10:19 +0000 The end of the accounting search https://lwn.net/Articles/931847/ https://lwn.net/Articles/931847/ paulj <div class="FormattedComment"> SEPA Instant is not universal. In some countries it seems like all the banks are SEPA Instant enabled (e.g. Germany and Nederland, perhaps?). In other countries, with stagnant and stultified banking markets, very few are - e.g. Ireland (I don't know of any retail banks in Ireland that have SEPA Instant!).<br> <p> Even plain old SEPA still seems better than the US situation. SEPA is at least meant to clear within one working day. <br> <p> The US seems to vary a lot. Wire transfers in the USA can be anything between instant to days. While ACH seems generally to be a working day. ???<br> </div> Mon, 15 May 2023 10:17:10 +0000 The end of the accounting search https://lwn.net/Articles/931843/ https://lwn.net/Articles/931843/ kleptog <div class="FormattedComment"> <span class="QuotedText">&gt; But the Eurocheque (or rather its rationale) disappeared with the Single European Currency. Surely national cheques carried on? They were talking about scrapping UK cheques, but the concern about people outside the digital system meant they soldier on. However, cheque guarantee cards disappeared a long while ago.</span><br> <p> Cheques were already dying/nearly dead, the rise of electronic transactions (credit/debit cards) in the 90's did that. With the transition to the Euro everything needed to be redesigned anyway so it was a good moment to stop with Eurocheques. You could cash international cheques for a while, but that's stopped too (which is annoying when some UK/US company decides to send you a cheque for some reason e.g. dividends, there's literally no way to cash it).<br> <p> There was an alternative in NL: the acceptgiro. Which is essentially a paper transaction request. The difference with cheques is that you send the acceptgiro to your own bank rather than send it to the receiver who sends it to their bank who sends it to your bank. The clearance time of acceptgiros is much shorter and the risk for the bank is zero.<br> <p> Since 2020/2021 banks have stopped accepting acceptgiros as well, basically due to lack of usage. However, because it's just a transaction request, older users can just scan them with their bank app and approve the transaction that way. This is mostly used by organisations who are looking for donations.<br> <p> My understanding is that cheques are still popular in the US because electronic transfers between banks are difficult and not standardised, whereas the Federal Reserve offers cheap cheque handling. In SEPA transactions are few seconds anywhere and once you're used to it it feels positively ancient to wait for money. When you're at a restaurant with friends you've already got their part of the bill on your account before you've paid the restaurant.<br> </div> Mon, 15 May 2023 09:18:40 +0000 The end of the accounting search https://lwn.net/Articles/931844/ https://lwn.net/Articles/931844/ farnz <p>Because of a whole bunch of things adding up: <ul> <li>Cheques are asynchronous and have no "good standing" requirements for acceptance (unlike cards or direct debits), so the first sign that there's payee fraud is the payer checking their statements and disputing a cheque payment. With quarterly statements, up to 90 days can elapse before the payer even has a statement to check, and they have a further 30 days to raise issues, getting us to 120 days from date of fraud to detection. <li>Once the payer's bank is aware that the payer alleges that a cheque was fraudulent, they have 30 days to find a suitably verifiable image of the cheque, and validate it against their records for the payer's signature etc - this time is needed because the verifiable image may not be stored online, but can be in an offsite vault and hard to recover, as can the records for payer's signature etc. This gets us to 150 days. <li>Finally, if the payer's bank agrees with the payer that the cheque was fraudulent, they have 30 days to notify the payee's bank of the allegation of fraud; this gets us to 180 days. </ul> <p>Of these, the only one that could reasonably be reduced is the final one - where there's a delay notifying the payee's bank of the allegation of fraud, but that only gets you down to 150 days instead of 180. The 90 days to the next statement is unavoidable, since I cannot tell that a fraudulent cheque has been written against my account until I see a statement; the 30 days to notify the bank is a standard thing to allow for postal delays, holidays etc preventing me from checking the statement as soon as it's printed. 30 days for the payer's bank to verify the allegation of fraud is also normal - this gives time for the bank to get the appropriate backup tape from deep storage, verify signatures etc, and otherwise do their due diligence to confirm that an allegation of fraud has merit. <p>The critical difference is that with cheques, the whole process is asynchronous to the payer's bank - it gives you a chequebook, and some arbitrary time later, you write a cheque, exposing your bank to one set of fraud risk. An indeterminate time later, the payee pays the cheque into their bank (if this cheque is a forgery, this exposes the payer's bank to another set of fraud risk); and then a further delay happens before the payer's bank is notified of the payment. When the payer's bank is notified of the payment, it can take action to handle fraud - but this has happened <em>after</em> it's been exposed to the fraud risk, and is thus too late for any action to be taken to reduce risk. With bank transfers, the payer's bank is in the loop as the payer asks for the transfer to happen - the payer's bank can thus do whatever it wants to do to reduce the fraud risk to a level it deems acceptable. Mon, 15 May 2023 09:15:45 +0000 The end of the accounting search https://lwn.net/Articles/931784/ https://lwn.net/Articles/931784/ Wol <div class="FormattedComment"> But why does a bank require six months for fraud checks on cheques ... ?<br> <p> Cheers,<br> Wol<br> </div> Fri, 12 May 2023 19:41:45 +0000 The end of the accounting search https://lwn.net/Articles/931710/ https://lwn.net/Articles/931710/ farnz <p>The thing that basically killed the cheque in the UK was a regulatory mandate that all payments into personal accounts were final (from the point of view of the recipient) 5 working days after the payment was posted to the account by the bank. The only exceptions to this are if a court orders the banks to reverse the payment; this is the process used in cases of fraud, for example, where a court can make such an order. <p>Effectively, this meant that banks had two choices, neither of them great for the bank: <ol> <li>Delay posting a cheque payment for 6 months after it was received - but this annoys customers, who want to use that money, and don't get why a cheque from a trusted family member isn't accepted as money for 6 months. <li>Take the risk themselves of a cheque bouncing after the 5 day period is up. </ol> <p>Neither of these are great options for the banks, and so they've made huge efforts to get a third option going - one where nobody uses cheques because electronic payments are simply easier and faster. We're now trying to address the social problem this causes for people who have aged to the point of not being able to learn a new system (electronic payments via Internet banking) to replace the one they learnt as a young adult in the 1970s or earlier (cheques) - it'll be interesting to see if a solution to this problem is found other than the trivial one (of waiting for that group to die out). Fri, 12 May 2023 10:37:29 +0000 The end of the accounting search https://lwn.net/Articles/931702/ https://lwn.net/Articles/931702/ jem <div class="FormattedComment"> <span class="QuotedText">&gt;Here in a different part of Northern Europe, even if you can find a bank branch the cashiers have all been replaced with ATMs :-)</span><br> <p> The ATMs are going next. Here we have, on average, one ATM per 200 square kilometer – 300 ATMs per 1 million inhabitants.<br> <p> </div> Fri, 12 May 2023 08:03:35 +0000 Scheme https://lwn.net/Articles/931694/ https://lwn.net/Articles/931694/ jschrod <div class="FormattedComment"> Ah, story telling time, I'll take it up -- from the other side of the teaching fence.<br> <p> I'm from Germany and had the opportunity to get a full-paid position in my university for my PhD time. In US terms, this position is a mixture of teaching and research assistant position, available for those with a Master degree and working towards a PhD. (This was in 1990, btw.)<br> <p> My professor (PhD advisor) had an annual lecture called "principles of programming languages". I was supposed to develop and supervise the practical exercises accompanying that lecture. Well, the main point the lecture wanted to drive home: Specific programming languages are irrelevant. If you, as a CS master student, have learned to program any imperative, functional, object-oriented, or logical language (like Prolog), then you should be able to learn a new language of the same paradigm quickly, if you understood the principles behind it.<br> <p> So, when I started to design the practical exercises for this lecture, I decided that my students would have to learn a new programming language every 2 weeks as far as to produce a program for a sensible requirement. The learning exercise was: It doesn't matter if you indent your program structure (Python) or if you have lots of parenthesis (the Lisp family) -- what matters are, what data and control structures are available to you in your program design.<br> <p> Anectodical note: Don't do this after a thorough analysis of the technical means you have to provide to the students. I remember especially two issues:<br> <p> 1) Exceptions, which were not well supported in many languages in 1991. So I had to make available a CLU compiler for the exercises, within 2 weeks, since this was -- at this time -- the best practical example what it means to have exceptions as a fully-fledged 1st-order part of the language. (Still, I think that Liskov is way underrated for her contributions to the development of programming languages. Besides her work on exceptions, her SIGPLAN paper "Programming with Abstract Data Types" in 1974 actually coined the term `abstract data types'!)<br> <p> 2) My professor insisted to cover class-instance vs. prototype-instance models in the part of the OO language introduction. So I had to devise an excercise for a problem that's suitable to prototype-instance concepts. Nowadays, we could just use Javascript -- but this was 1991. The work to set up a working Self system for my students (for a 2 weeks assignment!!) was outrageous. But I have bought into it, and I got through it.<br> <p> The interesting part of this story is: There were quite some students who shied away from the demands of the lecture and (mandatory) practical excercises. But for those, who did it together with us, it was a great experience. Many of my master students that supported my PhD came off from that course. In fact, some of them were helping me to set up the excercise environments during the course, while actually taking the course -- and those were the ones who later took off and have now excellent positions, both in companies and universities.<br> <p> I'm still proud to have been a part of their journey towards the understanding that expression doesn't matter prinicipally. (We can discuss, where it matters.) Models and understanding the principles are the gains you get from a thorough university education. There is a "everything changes so fast" attitude I'm experiencing today from others in my field (mainly software and business process architect, with a lasting footage in the open-source development community in my spare time). Well, from a CS point of view, no. The principles remain the same.<br> </div> Fri, 12 May 2023 01:39:45 +0000 Lisp https://lwn.net/Articles/931692/ https://lwn.net/Articles/931692/ jschrod <div class="FormattedComment"> Please -- I don't think this type of comment is appropriate for LWN.net.<br> <p> Thank you for considering this for your next post.<br> </div> Fri, 12 May 2023 00:53:00 +0000 The end of the accounting search https://lwn.net/Articles/931678/ https://lwn.net/Articles/931678/ anselm <blockquote><em>But the Eurocheque (or rather its rationale) disappeared with the Single European Currency. Surely national cheques carried on?</em></blockquote> <p> Here in Germany I haven't seen a cheque in 20 years. According to statistics, nowadays less than 0.1% of transactions between non-bank entities involve cheques. </p> <p> The problem with cheques is that if Alice gives Bob a cheque, Bob has to trust that Alice has enough money in her bank account for the cheque not to bounce when Bob's bank asks Alice's bank to honour the cheque. Cheques can take considerable time to clear between banks and therefore even if Bob's bank has credited him with Alice's money quickly just to be nice, they might want it back if it turns out that Alice's bank says that Alice isn't good for it after all. The big advantage of Eurocheques was that they were each guaranteed up to a certain amount (400 DM in Germany, IIRC) and therefore represented a much safer way to be paid. <p> </p> (This delayed-bounce effect is at the heart of the popular scam where someone overpays you for something with a cheque and then asks you to send the excess money back using Western Union or some other payment scheme that is hard to undo. If you do that, what will happen is that, later on, the cheque bounces and (a) you're out the money that your bank wants back, plus the money that you sent to the scammers, and (b) you may get a friendly visit from the money-laundering police.) </p> Thu, 11 May 2023 22:10:12 +0000 The end of the accounting search https://lwn.net/Articles/931663/ https://lwn.net/Articles/931663/ cwitty <div class="FormattedComment"> That's scary. Representing money with (binary) floating point is pretty bad, but using single-precision floating point is amazingly bad. That can't even represent £16,777,217; you'd have to use a value that was off by one GBP (either up or down). And if you don't want to gain or lose as much as £0.01 in accounting error, you'd need to restrict yourself to numbers much less than a million.<br> </div> Thu, 11 May 2023 17:07:52 +0000 The end of the accounting search https://lwn.net/Articles/931655/ https://lwn.net/Articles/931655/ Wol <div class="FormattedComment"> Interesting ...<br> <p> But the Eurocheque (or rather its rationale) disappeared with the Single European Currency. Surely national cheques carried on? They were talking about scrapping UK cheques, but the concern about people outside the digital system meant they soldier on. However, cheque guarantee cards disappeared a long while ago.<br> <p> Cheques are now used mostly between individuals, or for paying deposits or sending money safely through the post. I'm not sure of the rules, but I think they changed them recently, a bank MUST bounce a cheque in the first two days or so, otherwise they can't reclaim the money unless the recipient is accused of fraud or knowing dishonesty. It wasn't unknown for a bank to clear a cheque and release funds, then maybe weeks later decide to bounce it and reclaim the money, long after the recipient had used it.<br> <p> Cheers,<br> Wol<br> </div> Thu, 11 May 2023 16:04:39 +0000 Checks https://lwn.net/Articles/931583/ https://lwn.net/Articles/931583/ corbet The US, that great leader in global financial innovation (or so I'm told) can be awfully slow sometimes. <p> We don't write a lot of checks anymore, but it does happen, and we still get payments that way too. The easy "send money to an IBAN" mechanism doesn't really exist here; we can do ACH transfers, but that requires a bit of setup and isn't often done for one-off or infrequent payments. Besides, in the wrong hands, a US rounting/account number pair can be used to do withdrawals as well, so naturally there are people who use them that way. So it is better to minimize the distribution of those numbers. <p> End result: we still have to deal in checks sometimes. <hr> (Related story. Some years ago, when setting up the automated transfers to pay LWN's health insurance premium, I fat-fingered the account number. No checksum digit either on US account numbers. I realized the error soon after the first transfer had happened, but there was nothing I could do to reverse it, despite my attempts. It simply had to wait until the owner of the account I had mistakenly typed in noticed the significant chunk of money I had caused to be taken out of that account and protested.) Thu, 11 May 2023 13:26:37 +0000 The end of the accounting search https://lwn.net/Articles/931582/ https://lwn.net/Articles/931582/ geert <div class="FormattedComment"> <span class="QuotedText">&gt; - Bob hands the cheque to his bank for processing</span><br> <span class="QuotedText">&gt; - Bob sees the money in his bank account</span><br> <p> There used to be a second option: Bob receives the money in cash. Banks stopped doing that because of the high risk of fraud[1].<br> Perhaps this option is still available in some countries for people without a bank account?<br> <p> <span class="QuotedText">&gt; - Alice hands the form to her bank for processing</span><br> <span class="QuotedText">&gt; Note: the above two steps are almost always done via a website or an app and combined in one easy operation</span><br> <p> You can still hand it out manually, if you're willing to pay a fee.<br> <p> [1] A memorable case from 40y ago, involving ca. 2M€, unfortunately only in Dutch: <a href="https://nl.wikipedia.org/wiki/William_Vandergucht">https://nl.wikipedia.org/wiki/William_Vandergucht</a><br> </div> Thu, 11 May 2023 13:24:44 +0000 The end of the accounting search https://lwn.net/Articles/931580/ https://lwn.net/Articles/931580/ Wol <div class="FormattedComment"> You're lucky :-) <br> <p> Here in a different part of Northern Europe, even if you can find a bank branch the cashiers have all been replaced with ATMs :-)<br> <p> (Actually, the ATMs outnumber the cashiers, usually just one roving person asking "can I help you?")<br> <p> The one gain from this is the coin counting machines, although I'd rather have fewer coins, with real value, rather than the current worthless crop ... I remember when 1d was actually worth something - "four chews for a penny" - now they're about 20p each!<br> <p> Cheers,<br> Wol<br> </div> Thu, 11 May 2023 13:15:32 +0000 The end of the accounting search https://lwn.net/Articles/931581/ https://lwn.net/Articles/931581/ geert <div class="FormattedComment"> Apparently in 2002<br> <a href="https://en.wikipedia.org/wiki/Eurocheque">https://en.wikipedia.org/wiki/Eurocheque</a><br> </div> Thu, 11 May 2023 13:12:30 +0000 The end of the accounting search https://lwn.net/Articles/931579/ https://lwn.net/Articles/931579/ Wol <div class="FormattedComment"> They've abolished your personal checks? I got given a cheque just yesterday ...<br> <p> Mind you, I think we've stopped using Bankers Drafts ...<br> <p> Cheers,<br> Wol<br> </div> Thu, 11 May 2023 13:09:05 +0000 The end of the accounting search https://lwn.net/Articles/931574/ https://lwn.net/Articles/931574/ joib <div class="FormattedComment"> Over here in northern Europe it's only the old people who use the few remaining physical bank offices anymore, making them unusable for anybody else (pensioners have the time to spend the day queuing in the bank, people with kids and careers don't).<br> <p> (If you need to negotiate a loan or something, you book an appointment, which works, the above refers to the basic bank teller functions.)<br> </div> Thu, 11 May 2023 12:57:38 +0000 The end of the accounting search https://lwn.net/Articles/931570/ https://lwn.net/Articles/931570/ nowster <div class="FormattedComment"> In the big UK VAT change of 2008 (from 17.5% to 15%), we had a lot of recurring (stored) invoices in Sage Line 50. You could change the default VAT rate for newly created invoices, but not for stored ones. Sage themselves were no help. I had to reverse engineer the binary file format to patch the values.<br> <p> It was then that I found they were storing money amounts using 32 bit (single precision) floats, with the base unit being a whole GBP, contrary to decades of good accounting practice in avoiding rounding errors. (You can't represent £0.01 exactly in binary IEEE 754 formats.)<br> </div> Thu, 11 May 2023 10:49:21 +0000 The end of the accounting search https://lwn.net/Articles/931569/ https://lwn.net/Articles/931569/ rschroev <div class="FormattedComment"> There is still the option to do things the old fashion way (at least I think so; I haven't tried in 20+ years).<br> </div> Thu, 11 May 2023 10:33:57 +0000 The end of the accounting search https://lwn.net/Articles/931568/ https://lwn.net/Articles/931568/ Wol <div class="FormattedComment"> <span class="QuotedText">&gt; Note: the above two steps are almost always done via a website or an app and combined in one easy operation</span><br> <p> You clearly don't know any elderly people ...<br> <p> My parents-in-law have a (dumb) mobile which sees minimal use. They have a smartphone which they don't even know how to turn on.<br> <p> My father-in-law has a laptop. Whenever ANYTHING changes it is a support call to the family. Given that things like bank websites change regularly, the "time to learn" is roughly DOUBLE the "time between changes". Cue considerable unending frustration or a scream of "just write a cheque !!!"<br> <p> I agree. Online banking is MUCH better in oh so many ways. But when dealing with people 70+, internet banking is just TORTURE!<br> <p> Cheers,<br> Wol<br> </div> Thu, 11 May 2023 10:26:42 +0000 The end of the accounting search https://lwn.net/Articles/931566/ https://lwn.net/Articles/931566/ rschroev <div class="FormattedComment"> Suppose Alice wants to pay Bob.<br> <p> Cheque:<br> - Alice fills out the cheque<br> - Alice gives or sends the cheque to Bob<br> - Bob hands the cheque to his bank for processing<br> - Bob sees the money in his bank account<br> <p> Bank transfer:<br> - Alice fills out the form<br> - Alice hands the form to her bank for processing<br> Note: the above two steps are almost always done via a website or an app and combined in one easy operation<br> - Bob sees the money in his bank account<br> <p> </div> Thu, 11 May 2023 09:50:12 +0000