Aug 112023

Howard Hughes was a great example. A captain of industry, a tycoon, whose life ended in mysery, ruined by mental illness no doubt, but wealth and success must have played their part, along with nearly limitless hubris.

There are others, both real-life folks and characters in fiction who fell into this trap. The tycoon Andrew Ryan of the Bioshock computer game franchise. Elon Musk with his increasingly erratic decisions that led, among other things, to the on-going corporate value destruction at Twitter.

We all know the expression, tragedy of the commons. But what to call it when wealth and power destroys a person, one who gave so much real value to the world, one who started off as a visionary, a revolutionary “captain of industry”? I asked our AI friend Claude and Claude offered a perfect answer: call it the tragedy of the tycoons.

I even have the perfect illustration, courtesy of our other AI friend, Midjourney.

 Posted by at 4:03 pm
Aug 082023

Sticking to the cat theme (in case anyone has any doubt, yes, I am quite fond of cats) here’s Midjourney’s take on some gentlecats and ladycats celebrating this momentous occasion.

 Posted by at 3:24 pm
Aug 082023

For the longest time as developers, we were taught not to reinvent the wheel. “There is a library for that,” we were told, so instead of implementing our own solutions for common, recurring tasks, we just imported and linked the library in question.

And sure, it made a lot of sense. Countless hours of development time were saved. Projects were completed on time, within budget. And once the system worked, it, well, worked. So long as there was a need to maintain the software, we just kept the old development tools around for the occasional bug fix and recompile. I remember keeping a Visual Studio 6.0 configuration alive well into the 2010s, to make sure that I could offer support to a long-time customer.

But then… then came the Internet. Which implied several monumental paradigm shifts. One of the most fundamental among them is that a lot of software development no longer targeted cooperating users in a closed environment. Rather, the software was exposed to the public and, well, let’s face it, not all members of the public have the best intentions in mind when they interact with our systems.

Which means that third-party code turned from an asset into a substantial liability. Why? Because of potential security issues. Using old versions of third-party libraries in public-facing systems is an invitation for disaster. Those third-party components must be kept up-to-date. Except…

  • Updating a component may break other things. There is a need for extensive regression testing, especially in complex systems, to ensure that an upgrade does not result in unintended consequences.
  • Updates are not always available. The third-party code may no longer be supported. Source code availability can mitigate this to some extent, but it can still result in a disproportionate level of effort to keep the code secure and functional.
  • Long-term reliance on third-party code implies long-term reliance on the integrity and reliability of the vendor. Code ownership can change, and the new owners may have different objectives. In extreme cases, once reliable third-party code can end up being used as Trojan code in planned cyberattacks.

For a while, there was a great need for third-party code in Web development. HTML4 had limitations, and browser implementations varied wildly. Widely used third-party libraries like jQuery made it possible to prepare code that ran well on all major platforms. But this really is not the case anymore. “Out of the box” HTML5, CSS3 and modern JavaScript are tremendously capable tools and the implementation across major browsers is quite consistent these days, with only minor idiosyncrasies that can be easily dealt with after a modest amount of testing.

So really, my advice these days to anyone developing a new Web application is to avoid third-party libraries when possible. Especially if the application is intended to have a long life-cycle. Third-party code may cut down development time slightly, but the long-term costs may far exceed those savings. And there will still be more than enough to do just to keep up with other changes: witness the changes over time that occurred in browser security models, breaking once functioning Web applications, or the changes between, say, PHP5 and PHP7.

And of course there are still valid, legitimate use cases for specialized third-party libraries. For instance, in a recent project I used both MathJax (for rendering mathematical formulas) and markdown (for rendering displayed code). Developing something like that from scratch is just not an option.

Why am I harping on all this? I am currently facing a minor crisis of sorts (OK, that may be too strong a word) as I am trying to upgrade my Web sites from Joomla 3 to Joomla 4. Serves me right, using a third-party content management system instead of writing my own HTML! Worse yet, I used some once popular extensions with Joomla, extensions that are no longer supported, and which are wholly incompatible with Joomla 4. Dealing with this is difficult and time-consuming.

It would be a lot more time-consuming were it not for the help I get from our LLM AI friends. Thankfully, these tools, GPT-4 in particular, are immensely helpful. E.g., one third-party Joomla extension I used offered a nice way to present images as clickable thumbnails. This extension is now badly broken. However, GPT-4 already helped me write a clean, functional alterative that I’ll be able to use, and thus avoid having to redesign some important pages on my site.

 Posted by at 2:16 am
Aug 072023

The game’s Web site may be dated (hey, it’s a nearly 20 year old template… yes, we’ve been around that long, a lot longer in fact) but it now has a new feature: it is again possible to play MUD1/British Legends from the browser.

The feature is experimental and may still need to be disabled if it glitches but here’s to hoping that it doesn’t.

 Posted by at 2:57 pm
Aug 062023

I don’t usually like climate panicmongering but this chart that I came across today is… Well, see for yourself.

These are ocean temperatures, by the way. Oceans are supposed to be large, stable reservoirs of heat. Which they probably are, except that surface temperatures also reflect changing patterns like changing ocean currents.

This massive deviation from the 20+ year average (more than four sigmas!) is difficult to comprehend. What it says about the changing climate, I have no idea, but it is unlikely to be good news.

If only we stopped making this political. OK, well, it is of course political in the sense that we need to make collective, i.e., political decisions on how we manage Spaceship Earth. But it should not be political in the sense that the facts are not political, and the proposed solutions should be weighed by their feasibility, efficacy and social impact, not political palatability.

And for heaven’s sake, stop the dumbed down oversimplifications. Next time I hear about someone emitting “carbon”, I’ll scream. Carbon is solid at room temperature. Carbon is not carbon dioxide, just as hydrogen is not dihydrogen oxide. I have yet to see anyone drinking liquid hydrogen… or emitting carbon. Perhaps the first step to take is to give people a more decent education in the sciences so that they actually understand what carbon dioxide is, what it does in the atmosphere, what “four sigma” means, and what things like heat reservoirs are in a climate system? Is that really too much to ask? Am I being a silly elitist or something?

 Posted by at 7:59 pm
Jul 312023

My high school classmate György (Gyuri) Matavovszky spent the last almost 17 months volunteering for the Red Cross, helping Ukrainian refugees. Without further ado, with his permission, here is an English translation of his latest Facebook post, which sums up his experiences and his personal journey, while also revealing a lot about the sociopolitical environment in which he lives in present-day Hungary.

I shall now take off the Red Cross vest that I first put on 503 days ago and have worn for about 50 night shifts since then. The Hungarian government is closing down the aid point set up at the BOK Hall due to the war, where newly arrived and other homeless refugees from Ukraine could come until now and receive very modest care, minimal food and drinks, hygiene facilities, camp beds with bedding in a communal sleeping area for one, in some exceptional cases two-three nights (since life in Hungary is so good that everyone’s situation surely gets resolved in one-two days, so no one needs to stay longer).

The hall opened for this purpose at the end of March last year. Back then, aid organizations and representatives of various other bodies were moved here from the train station. There was a children’s corner, doctor, pet care, child welfare services, ticket office, mental health support, shuttle buses ran hourly between the train stations and the hall, 1000-2000 people came through here daily back then, who were very easy to provide for initially, as we received huge amounts of donations. The number decreased exponentially, but willingness to donate even faster, so we soon reached the point where rather than abundance, it was need that made things difficult for us. Then everything slowly shifted to a lower gear, for example in November the medical care was also terminated, which I know because I had to accompany a sick person to the Military Hospital, and wait with them from 11pm to 3am for the four hours the Hungarian healthcare system needs to carry out a routine examination. In February, I was a hair’s breadth away from someone dying in front of me. I failed to recognize the signs of a heart attack in a refugee who arrived across the green, or rather blue, border (the Tisza River) – luckily a colleague of mine was more alert and called an ambulance just in time. In the end he survived, now he lives with his family in Győr, has a job too, we know about him.

But this is just one example, because there were many other very difficult situations, too. It wasn’t just the arrivals from Ukraine that were problematic, we Hungarians often didn’t get along easily either, there was tension even among the volunteers at times. Is it okay to give coffee in the middle of the night—this remained an eternally returning question that still has no consensus answer. Because if we give it, they get more lively and won’t let the others sleep, or make more demands of us, too. But if we don’t, we deny them the one joy they may have that day. We too often lost patience, but I won’t focus further on the downsides of our performance. On the very first night I decided that I’m not here to help the refugees, but they are helping me, and I stuck to that pretty much. I accompanied some of them to trains, planes, airport buses, when that was the simplest or most humane way to give directions. In the process, I always developed a connection with them that could no longer be let go of without tears—the worst is when you stand on the platform, hugging them and they hug you too, and you both know you will never see each other again. These moments were always unbearably painful.

The nights had their own arcs—the shift started at 8pm, by midnight we only felt like we were getting into it, by then we were usually tired enough to start feeling a bit numb from it. Somewhere between 2 and 2:30am was the low point, from when the mental state tips over, you start to feel the dawn coming, and this generally calms you down too. The second half of the night was always much easier, and in the morning not only does the sun rise outside, your heart is flooded with light inside too – I always left tired but with great peace in my heart – I will miss this feeling a lot.

Let no one think the BOK Hall is closing because the war is over and there is no more need for it. The war is not over, the BOK Hall would be needed, but the community is poor, I mean there is very little good intention in the budget, we are completely exhausted morally, in character, currently at rock bottom, though I’ve written a lot about this before. There will be something, somewhere instead, but it will be operated by the pro-government Maltese Charity Service, and for sure it won’t be worth even this much. I won’t participate because I’m not Catholic enough and anyway I’m sick of the whole thing. I was sick of it before too, but the Red Cross supervisor kept my spirit up, his name is Gyuri too, we could never decide whether I’m one and he’s the other, or vice versa, I think it’s the latter actually, in my phone he’s saved as Egyik Gyuri (Gyuri One).

I don’t want to be without social work long term, I hope one day I’ll wear a Red Cross vest again, I hope not too long from now. Now I need to pull myself together for mural painting, but if I can get that going maybe I’ll have time for something similar again. I don’t want to be a social worker, but from now on I want something like this always to be part of my life, because meeting unfortunate people results in a fantastically intense wake-up call, and I think in the long run it really helps staying awake. For example, you understand that they often live a much more real, much more honest, much more self-consistent life than us, who collect a pile of assured money every month, which we then spend floating in a beautiful bubble.

There is a lot of cognitive dissonance in the Red Cross too, but still it’s far from the worst organization in the world, its past shines through its present a bit, in my work I managed to meet exemplary people, including some much younger than me who can behave very consciously, very maturely in trying human situations, and in whom I see a lot of potential still. As I look at it, this hidden potential will be needed sooner or later, or rather is needed now, it’s just very hard for the penny to drop, it’s very hard for us to notice this spiritual need.

I won’t beat around the bush, before the war I too spent my days in deep slumber, and I still don’t feel fully awake. However, I very much hope enough bridges have burned behind me that I won’t be able to flee back to where I was living before. In this service ending now, I feel the next personal message from life: Gyuri – one or the other, doesn’t matter – You are mature enough now, You don’t need to do this anymore, because with what you’ve done so far, you’ve detached yourself enough from your previous mode of existence, you’ve gotten from A to B, and even if you don’t see filthy, dirty refugees around you for a couple months, you won’t slide back to where you were before. Yes, I feel this whole thing was an initiation, a tangible step on the path to becoming human, which I desperately needed, and by some miracle this time I didn’t brush it off with some stupid response, as I’ve done countless times before, but this time not. This is what war does!

 Posted by at 3:07 pm
Jul 272023

Don’t look a gift horse in the mouth, they say, so I will not question how, or why, just express my happiness that my frustration is over: Redmine, the software package that I use internally for project management, works again.

It all began with an unpleasant but unavoidable upgrade of the MariaDB database from the ancient version that is part of the CentOS distribution to a more recent one. (Which, in turn, is needed to upgrade my content management software on some of my Web sites.)

Everything worked after this (planned, reasonably well pre-tested) upgrade except for Redmine.

Redmine is beautiful, very useful, but also very frustrating to install and manage. It uses Ruby on Rails, a software environment that… OK, let me not go there. I’ll keep my opinion to myself.

I spent countless hours yesterday, to no avail. The Redmine system refused to start. I installed, reinstalled, configured, reconfigured, uninstalled, reinstalled… Redmine, Ruby, its various management tools, you name it. Nothing did the trick. I gave up long after midnight.

I dreaded the moment today when I’d be resuming that thankless, frustrating exercise with no assured outcome. But I need Redmine. I have too much information in that system that I cannot afford to lose. So eventually I rolled up my sleeves (literally) opened the browser tab that had the link, and hit F5 to refresh the page, expecting the same error message that I’ve seen before to reappear.

Instead… Redmine came up in all its glory, with all my existing project data intact. Everything works.

I was so shocked by surprise I almost felt physically ill. A bit like this Midjourney cat, upon receiving an unexpected, very welcome gift.

Don’t look a gift horse in the mouth they say, so I am not complaining. But I’d still like to know what exactly happened. Why things started to work all of a sudden. I told my beautiful wife to imagine leaving a half-finished knitted sweater in her room one night, only to come back the next morning and finding a beautifully finished sweater there.

My mind, for now, is in a deeply boggled state. I honestly don’t know how or why it happened. But I am a very happy cat tonight.

A footnote: After I wrote the above, late, late, late at night, all of a sudden Redmine failed again, with a different error. I was ready to tear my hair out. But I was able to fix the problem. The likeliest cause as far as I could determine is that although the Redmine site had the correct Ruby version identified, a default setting specified an older, incompatible version of Ruby. It was fortunate that I was able to fix it, otherwise chances are I’d have spent a sleepless night trying.

 Posted by at 7:06 pm
Jul 212023

I admit that for the longest time, I didn’t even like Tony Bennett. But that changed in recent years. Acquired taste, perhaps?

Anyhow, the legendary Tony Bennett is no longer with us. I asked MidJourney to imagine him in the afterworld, performing his most favorite song.

While there doesn’t appear to be anything particularly afterworldly in this picture, I think it’s a fitting tribute nonetheless.

 Posted by at 2:31 pm
Jul 202023

The new tonight is that notorious murderer Paul Bernardo was lawfully transferred to a medium security prison and shall remain there.

And that’s the way it should be.

No, I am not a friend of Bernardo. He deserves to remain behind bars for the rest of his life and then some.

But he also deserves to be treated exactly like any other criminal in Canada’s justice system. We don’t do mob justice in this country.

Keeping him in a maximum security establishment just to satisfy the public’s demands, just to further the political interests of those in charge would be an appalling thing to do, and I am very glad that Canada has not chosen this path.

 Posted by at 9:01 pm
Jul 142023

So here is the difference between a normal and a polarized society.

Suppose your country has a blue party and a yellow party. One day, a prominent blue politician gets caught. Doesn’t matter what, corruption, sexual abuse, whatever. A common, but serious, crime.

In a normal society, the reactions are like this: The blue party expels the person and expresses its regret that such a person held a prominent position within the party. The yellow party condemns the politician, but refrains from generalizing; they express recognition that such a “bad apple” does not represent their opponent.

End result: the political status quo remains, the perpetrator lands in prison, the rule of law is upheld and the respect and trust in the system of institutions remains strong.

In a polarized society, however, something else happens: The blue party defends the person, calls the accusations politically motivated lies, and accuses the yellow party of abusing the system of institutions in a “witch hunt”. The yellow party will point at the perpetrator, using him in propaganda that suggests that his behavior is characteristic of the blue party, which is full of corrupt abusers who think that they are above the law and would twist institutions just to protect the guilty.

End result: political polarization deepens; the perpetrator may go free or, if punished, celebrated as a victim of politically motivated false charges and persecution, the rule of law is undermined, and respect and trust in the system of institutions plummets.

A town square with citizens divided into two opposing groups spewing hate at each other — MidJourney

This, of course, benefits the most those activists and political opportunists who thrive on conflict and corruption. They exist everywhere: their presence is not restricted to any particular political party or ideology.

So take your pick. I much prefer not to live in a politically polarized society.

 Posted by at 2:02 am
Jul 042023

It appears that common sense prevailed over politically correct virtue signaling at The Weather Network (or maybe Environment Canada). Pregnant members of the species homo sapiens are again designated by the appropriate word from the vocabulary of the English language: they’re women.

Or is it that heat affects only pregnant women, whereas smoke affects pregnant non-women, too? I wonder.

In any case, I am firmly of the opinion that if we truly strive to build a society in which folks can enjoy life and live to their full potential without fear of discrimination or worse, theatrical excesses like the expression “pregnant people” are not helping. Quite the opposite, while they appease a vocal, exhibitionist minority of activists, they are far more likely to bring tangible harm to others through the backlash they induce. I shall refrain from speculating how much of it is intentional (this is a big world out there, I’m sure some activists are cynically self-serving, intentionally contributing to a problem that they pretend to try to solve, in order to secure their own future, but others are just as likely to be genuine believers in a cause that’s important to them) but I have no doubt that it is harmful.

 Posted by at 3:15 pm
Jun 302023

I am looking at images of nearly 4000 year old clay tablets.

Clay tablets like Si.427, depicting a survey of land. And incidentally, also demonstrating the use of the theorem of Pythagoras well over a thousand years before Pythagoras was born.

If only I had a time machine… To witness how these people lived. How they laughed, how they cried. They studied, the learned, they applied what they knew. They built a magnificent civilization. They loved and they hated, they offered sacrifices and committed betrayals. They had fun, they enjoyed a good meal, they entertained. They lived.

And we know so little about them. What did they do for fun? What were they talking about at the dinner table? What were their hopes for their children? What did they know about the world? What were their trades? How did they pass on their knowledge to others? Did they travel? Did they enjoy a day of rest at the beach?

All gone. An entire civilization, that was routinely using artifacts with precision diagrams like this tablet. All gone and almost completely forgotten, other than these bits and pieces, these fragments.

It’s humbling.

 Posted by at 11:40 pm
Jun 262023

The next time (it happens often) I hear someone complain about scientific ‘orthodoxy’ that is used to ‘stop innovation’ and prevent ‘new entrants from entering’ the field (or equivalent words), I’ll remind them that these were exactly the words used by Stockton Rush, defending the design of his ill-fated submersible Titan.

Of course the consequences are far less deadly when the subject is purely theoretical, like fundamental particle physics or general relativity. But that does not validate nonsensical arguments.

Orthodoxy is adherence to tradition or faith. Science and engineering are about testable and tested knowledge, which is the exact opposite. What folks like Stockton describe as orthodoxy is simply knowledge that they do not possess (maybe because it takes too much of an effort to learn) or knowledge they purposefully ignore because it contradicts their preconceptions or expectations.

My condolences to the families of Rush and his passengers on Titan. But foolishness has its consequences. Sometimes deadly ones.

 Posted by at 10:33 am
Jun 252023

Here is a bit of history of which I was not aware: The window tax.

Back in the 18th, 19th century in many jurisdictions around the world, buildings, especially rental properties, were taxed by the number of windows that they sported.

The advantage of this tax was that it was easy to assess: the assessor just had to walk around the building and count.

The unfortunate reality, namely that the tax most disproportionately affected the poorest of the poor? Well, eventually these taxes were repealed but I wonder how many generations grew up in windowless rooms.

 Posted by at 2:26 am
Jun 082023

Glad I am not a politician or public personality as I am about to commit what would amount to political suicide, a’la J. K. Rowling.

The reason? This health warning by The Weather Network, that truly blew my fuse:

Middle line of the red warning at the bottom. That list of folks at high risk:

“[…] older adults, children, pregnant people, and people who work outdoors […]”

Pregnant “people”??? Seriously, why not pregnant primates? Pregnant mammals? Pregnant vertebrates?

Let me not mince words. This is virtue signaling at its worst, pandering to a loud, obnoxious group of “alphabet soup activists”, claiming to, but not really representing gays, lesbians and others who simply just want to live a life in dignity, respected as human beings, enjoying what should really be the inalienable right of every human being on this planet, to be left alone, to be allowed to live a life to the fullest in the company of those they love.

The biggest irony of all? Even as conservatives in many corners of the world, especially here in North America, are busy turning the fictitious country of Gilead from The Handmaid’s Tale into actual reality, what these activists do is no less harmful to women. Their agenda amounts to little more than the idea that “men are better than women at everything, including being women,” as someone recently put it on Quora.

Dear Weather Network, dear Environment Canada (if that’s where the text of the warning came from): Let this serve as a friendly reminder that the English language has a perfectly serviceable word to describe those members of the species homo sapiens who are biologically capable of becoming pregnant: they are called women. Check your dictionaries, it’s there.

 Posted by at 3:09 pm
Jun 052023

I have written before about my fascinating experiments probing the limits of what our AI friends like GPT and Claude can do. I also wrote about my concerns about their impact on society. And, of course, I wrote about how they can serve as invaluable assistants in software development.

But I am becoming dependent on them (there’s no other way to describe it) in so many other ways.

Take just the last half hour or so. I was responding to some e-mails.

  • Reacting to an e-mail in which someone inquired about the physics of supersymmetry, I double-checked with the AI to make sure that I do not grossly misrepresent the basic principles behind a supersymmetric field theory;
  • Responding to a German-language e-mail, after I composed a reply I asked the AI to help clean it up, as my German is rusty, my grammar is atrocious (or maybe not that atrocious, the AI actually complimented me, but then again, the AI can be excessively polite);
  • In a discussion about our condominium’s budget, I quickly asked the AI for Canada’s current year-on-year inflation; with my extension that allows it to access Google, the AI was able to find the answer faster than I would have with a manually executed Google search.

All this took place in the past 30 minutes. And sure, I could have done all of the above without the AI. I have textbooks on supersymmetry. I could have asked Google Translate for a German translation or take my German text, translate it back to English and then back to German again. And I could have done a Google search for the inflation rate myself.

But all of that would have taken longer, and would have been significantly more frustrating than doing what I actually did: ask my somewhat dumb, often naive, but almost all-knowing AI assistant.

The image below is DALL-E’s response to the prompt, “welcome to tomorrow”.

 Posted by at 8:20 pm
May 312023

I just finished uploading the latest release, 5.47.0, of our beautiful Maxima project.

It was a harder battle than I anticipated, lots of little build issues I had to fix before it was ready to go.

Maxima remains one of the three major computer algebra systems. Perhaps a bit (but only a bit!) less elegant-looking than Mathematica, and perhaps a bit (but only a bit!) less capable on some friends (exotic integrals, differential equations) than Maple, yet significantly more capable on other fronts (especially I believe abstract index tensor algebra and calculus), it also has a unique property: it’s free and open source.

It is also one of the oldest pieces of major software that remains in continuous use. Its roots go back to the 1960s. I occasionally edit 50-year old code in its LISP code base.

And it works. I use it every day. It is “finger memory”, my “go to” calculator, and of course there’s that tensor algebra bit.

Maxima also has a beautiful graphical interface, which I admit I don’t use much though. You might say that I am “old school” given my preference for the text UI, but that’s really not it: the main reason is that once you know what you’re doing, the text UI is simply more efficient.

I hope folks will welcome this latest release.

 Posted by at 8:54 pm
May 282023

Homelessness bugs me.

New York. San Francisco. Ottawa. Ottawa!

What on Earth is going on? Seriously, when did we turn the dystopian vision of a crumbling society in Infocom’s classic 40-year old text adventure game, A Mind Forever Voyaging, into a reference manual on social governance?

The fact that in wealthy societies there are thousands living on the street, not by choice but out of necessity, is beyond shameful. And it’s not like we don’t understand the causes: the rising wealth and income gap, rapidly increasing real estate prices, the lack of affordable housing.

Especially that last one. The lack of affordable housing.

Because, you know, it is so hard to solve. I mean, maybe we need divine assistance, the help of space aliens, artificial intelligence or perhaps good old magic?

Oh wait. It *is* a solvable problem. And you don’t even have to turn into a full blown Marxist to find it. A proven solution can be found in decidedly capitalist Vienna. A solution that, apparently, has worked well for over 100 years.

Though I lived in Vienna in the 1980s, I never knew the nature and extent of its public housing program. Just the other day though I read about it in a Hungarian-language Facebook post that I decided to fact-check. Sure enough, it’s true. Vienna’s solution is real. It works and it works surprisingly well.

I barely finished reading this undated article (on a US government Web site no less) when a friend of mine also sent a link to another. This one was published in the The New York Times just a few days ago. They, too, praise Vienna’s ability to maintain high quality public housing for hundreds of thousands of their residents, with principles that were originally established all the way back in 1919.

So yes, it can be done. Maybe it is time for cities like our very own shiny Ottawa to wake up and get real. Instead talking about it, instead of using it as a political platform or a platform for pointless virtue signaling, instead of building shelters, instead of moaning about the homeless, instead of building subsidized housing from which you are rapidly booted (so that the project remains slum-like, with only low-income residents) perhaps it is time to learn from those damn Austrians.

I, for one, as an Ottawa taxpayer, would happily contribute more of my taxes if our fine city were to adopt a program like Vienna’s, aiming for a stable, long-term solution.

 Posted by at 8:33 pm