some follow up on grammar checking and AI

First, a bit of follow-up on my post about Grammarly and other grammar checkers: I missed one obvious alternative, Microsoft Editor. It’s a little confusing. It seems to be available as a free browser extension, but only for Edge and Chrome, not Firefox or Safari. And the “premium” features are part of Microsoft 365, which I do subscribe to. I guess it also works in MS Word, so I could theoretically copy my blog posts into Word, check the grammar there, then paste them back into WordPress, but I know that won’t work well. Or I could switch to Edge, but that’s only on Windows. Or I could switch to Chrome, which will work on Windows and Mac, but I’m really trying to avoid that. So… I guess I’ll think about it. Probably not my best option.

And, in general AI news, I liked this snarky article from Gizmodo. Sam Altman and OpenAI are certainly fascinating. I’m not sure if the company is going to change the world, or if it’s a load of B.S. and it’s going to fall apart a year from now. There are a few good lines in the article, like this one: “So far, ChatGPT is very good at writing limericks and telling lies.” Which is basically true. I’m pretty sure that we’re still a long way from AGI, if such a thing is even possible. (Though it’s pretty hard to even nail down what would count as AGI, at this point.)

I’m not sure about the whole “effective altruism” thing. It’s been getting a lot of negative press lately. The article says “Effective Altruism posits that the solution to humanity’s problems is for people with good intentions to get extremely rich and then donate the money to good causes,” which is… not exactly correct, but probably close enough, in practice. I’m not sure if I trust folks like Sam Altman to effectively redistribute his wealth once he decides he has enough to do that. Or for other effective altruists to make all the right decisions for the rest of us…

Something else I saw recently reminded me of the concept of fully automated luxury communism, which I remember some folks talking about on Twitter a few years ago, in a generally jokey way. My naive understanding of that, at the time, was that it was basically describing a post-scarcity future, like Gene Roddenberry‘s conception of what Earth would be like in the future, as envisioned in Star Trek.

And of course I just asked ChatGPT to compare and contrast Effective Altruism and Fully Automated Luxury Communism, and it came back with a pretty good summary. And then I asked it what Gene Roddenberry would have thought of FALC, and it came back with, again, a pretty reasonable answer. So maybe this ChatGPT thing isn’t just good for limericks and telling lies.

A rambling Sunday post

OK, so having gotten the previous Grammarly post out of my system, and having gone for a walk, I’m now watching the early-morning Frankfurt game on NFL+, and ready to write the long, rambling post I mentioned in the Grammarly post. (Side note: I like this short ESPN article about Belichick’s experience in Germany. I almost feel bad for Belichick this season, but not really. I mean, well, he’s still Belichick.)

Ever since I got COVID, things have been a little shaky for me. I keep getting a little sick, then a little better, then a little sick. I don’t think I’ve gotten COVID again (since that first rebound), so that’s good. I was fighting these low-level cold symptoms this past week, culminating with enough nasal congestion on Friday that I risked taking pseudoephedrine. I say “risked” because I often get some side effects from that. It definitely helped me get through the day Friday, but then I had some trouble sleeping. I was OK on Saturday morning, and got through my usual Saturday morning tasks: laundry and grocery shopping. But, after that was done, I sat down at my computer to pay some bills, and started getting a migraine aura.

I haven’t had serious migraine problems since 2016, but I’ve gotten a couple of mild ones this year. Looking at my notes in Day One, I see that I had one on June 1, and might have had one in May too.  (Day One is great for logging this kind of stuff so you can identify patterns.) This one was bad enough that I had to give up on the computer and lie down. I had planned to spend some time Saturday finishing up a LinkedIn course on more AI stuff, and to maybe finish watching season five of Dragon Prince, but that all went out the window. Instead, I listened to some podcasts and audiobooks. I listened to a bit more of the Locke & Key audio drama that I’ve been listening to on & off for about a year now. (I can never get myself to stick with it and finish it. Maybe I’ll get it done before the end of this year…) And I started listening to Neil Gaiman’s Warning: Contains Language, which I got as part of a Humble Bundle about ten years ago.

Eventually, I got to the point where I could sit up and watch TV. But I didn’t feel like I could deal with anything too challenging, so I settled on college football, which I haven’t watched at all in the last several years. I watched most of the Florida State vs Miami U game. That was the kind of game that could have been a blowout, but was actually a pretty close game and kind of fun to watch. (I’m still a little iffy on the whole Seminoles thing, but apparently the actual Seminole tribe is OK with it, so who am I to argue?) I don’t know that I’m going to get back into watching a lot of college football now, but maybe it’s an option for Saturdays when my brain isn’t working well enough for anything else.

Anyway, I managed to get a good night’s sleep last night, and feel like I could handle something more challenging than football today if I had to. But I’ve gotten used to spending Sundays watching NFL football this year, and I’m enjoying that, so I think that’s what I’m going to be doing today. I probably won’t be paying a lot of attention though. The Giants are playing at 4, and the Jets are on the Sunday night game. The Giants are terrible right now and they’re playing Dallas, so that game should be a blowout. The Jets are playing the Raiders, and both of those teams are mediocre, so that game might be competitive, but not that interesting. So I’ll probably go with having football on in the background all day while I do other things that don’t require too much concentration. So: writing rambling blog posts, catching up on email newsletters, and that kind of stuff. Maybe I’ll mute one of the games and finish that LinkedIn course I mentioned above.

Grammar checking – Grammarly and alternatives

I have a bunch of stuff to blog about today, and I sat down expecting to write a long rambling post, but then I got sidetracked into some grammar checking stuff, so now I’m writing a post about grammar checking.

As part of my general mucking around with AI stuff, I decided to finally give in and sign up for a Grammarly account. I’ve always avoided Grammarly, mostly because I’d heard very bad things about their privacy policy and practices, back in their early days. I guess that’s gotten better, and they have a page on their site with many assurances about how they don’t sell your data, and so on, so maybe they’re not so bad now. We recently acquired some kind of site license for Grammarly at work, but that’s only available to salespeople, I think. But the fact that we’re paying for it at work indicates that they are likely taking privacy pretty seriously, otherwise they wouldn’t have gotten past our InfoSec folks.

I briefly installed the Grammarly app on my Mac, but that quickly got to be more of a pain than a help. Most of my writing on my Mac is in Evernote, and Grammarly works there, but I’m not generally writing in complete sentences in Evernote, so most of Grammarly’s advice there is more of a hindrance than a help. So I removed that. It occurred to me that the only place where I really need Grammarly, in my personal life, is on these blog posts. This is really the only long-form writing I do where I’m trying to write in complete, grammatically correct, sentences. So, for now, I’m experimenting with copying & pasting my posts into the editor on the Grammarly web site, making any corrections there, then copying back into WordPress. Overall, that’s helped me catch a few minor errors, but nothing worth paying a lot of money for. And I’ve found that I can’t copy the whole text from Grammarly back into WordPress, since it’ll muck up the HTML, so I have to see what Grammarly wants me to fix, then fix it myself in WordPress, which is time-consuming. There’s probably a way around that, but I’m not sure what it is.

So I can keep using the free version of Grammarly, I guess, but I don’t know if I will. It’s a little aggressive about trying to get you to upgrade to the paid version, and it’s not that much help, really.

I’ve started to look around at alternatives to Grammarly too. There seem to be two primary ones: Ginger and Hemingway. Ginger is much like Grammarly: similar tools, similar pricing. I didn’t spend too much time on it. Hemingway is a bit different. It does an analysis of your writing style, focusing on several things, but it doesn’t seem to do the simpler checks that you get from Grammarly and Ginger. For instance, it doesn’t seem to catch simple homonym errors, which is honestly the most frequent error I make that isn’t caught by spellcheck.

I was curious about comparing the privacy policies of these three products, so I asked Bing Chat to compare them. It came back and told me that all three products had similar policies, but the sources it cited all came from Grammarly’s policy, so it was obviously hallucinating the info for Ginger and Hemingway. (And, as is normal with these things, you’d never know that without checking sources.) I asked the same question of the web search assistant in Poe, and that did a little better, though I suspect that it was also bullshitting somewhat (which is probably a better word for it than “hallucinating”). In short, Hemingway seems to have a slightly better privacy policy than Grammarly or Ginger.

The Poe results referenced a couple of useful comparison articles that I checked out. One of them was WordPress-specific, so I read that one. It mentioned a Jetpack grammar module, which sounded like exactly what I need, so that was exciting, but it turns out it was discontinued in 2019, so that’s not an option, unfortunately.

So I guess the end result here is that I still don’t know what to do. I don’t really want to pay $100+ per year for Grammarly or Ginger, so I’ll stick with the free Grammarly account for now and see how it goes. Maybe I’ll just keep proofreading my posts myself.

 

no more Firefox (at work)

I got a little surprise this morning, when I logged into my work PC and launched Firefox. The program still worked, but I got a popup from Windows telling me that access to the Mozilla update site was blocked.

Firefox has always been on our approved software list, so that surprised me. There hadn’t been an email about banning it, or anything like that. I checked the list, and it was still on there, so that got me wondering if the block was a mistake or something. I also considered that maybe they’d switched to a managed install, with updates pushed out from Software Center. But that didn’t seem to be the case either.

So I gave up and opened a support ticket to ask about it. (I’m always hesitant to do that for stuff like this, because I get paranoid that maybe I was never supposed to be using Firefox, and asking about it is going get me sent before the Spanish Inquisition or something.) I got a response back that, yep, InfoSec had decided to block Firefox. So, oh well, I had to switch to Edge today.

Edge actually isn’t that bad. And it has one advantage over Firefox (at least in our org). We’ve always blocked syncing Firefox user profiles, so I can’t easily keep my bookmarks or preferences in sync between my laptop and desktop with Firefox. But we do allow sync in Edge. So that’ll be nice.

The thing I’ll miss most about Firefox (and the main reason why I’ve stuck with it at work) is the Multi-Account Containers add-on. I have to juggle a bunch of different Microsoft accounts, and it’s nice to be able to have a container for the oddball ones, so they don’t confuse things for my everyday work under my normal AAD account. In Edge, I guess I’ll have to just use private windows for that, which kind of sucks, since I’ll then have to log in every single time. But I can deal with that.

I managed to import my Firefox bookmarks into Edge, then spent a bunch of time cleaning them up and organizing them. All said, I probably spent about two hours today figuring out why I couldn’t use Firefox, switching to Edge, cleaning up bookmarks, logging in to sites, poking around in preferences, and so on.

As part of this switch, I’m also going to try to switch from DuckDuckGo to Bing. Microsoft really wants you to use Bing, and there are some advantages to it, so I’m going to give it a try.

We’re also planning a mass Windows 11 upgrade at work. I’m not sure how they’re going to do that, but I’m a little worried about it. If I have to upgrade both my desktop and laptop, that could take a bit of time and involve a bit of risk. I guess that maybe I’m better off there than a lot of people, since i have two machines, and I can keep using one while the other is getting upgraded. (Most people now only have a laptop.)

Oh well, I guess it’s time to embrace the all-Microsoft future, and get used to Windows 11, Edge, Bing, and whatever else they throw at us.

Sandman and ChatGPT

I was watching a video on YouTube yesterday, with Neil Gaiman and a few other folks talking about Sandman, and reminiscing about the early days of the comic. It was fun, and it got me thinking about doing a Sandman reread. There’s a podcast about Sandman called Endless, and they’re going through a reread of the book right now, so I could follow along with that while I’m reading.

And that got me looking for a list of the original Sandman issues, with story titles and artist names. The Wikipedia entry has a lot of info, but no complete list of issues. The DC Universe Infinite page shows all the covers, and has all the art teams, so that’s probably good enough. But I thought it would be fun to ask ChatGPT, and some related chatbots, to give me an issue list and see what I got.

Here’s the prompt I used: “Can you give me a list of all 75 original issues of Neil Gaiman’s Sandman comic, with creator credits and story titles? Format as a table or list.”

And here’s the results:

  • Bing – gave me a table. On my first try, it gave up at issue 8, and told me “and so on up to issue 75.” (So it knew it was giving up!) On my second try, it got up to issue 31, and then just gave up. (And it took a long time to get that far.) Interesting feature: you can open a table from Bing in Excel.
  • Poe, “web search” bot – gave me a numbered list, but lost track of what it was doing after issue 25 and started repeating itself. Then gave up at list item 50. Definitely the worst result I got.
  • Poe, “assistant” bot – gave me a numbered list. Stopped at issue 72.
  • Poe, Claude-instant-100k – gave me a table. Gave up after issue 66.
  • ChatGPT 3.5 – Returned a table. Got all the way to issue 75, but, double-checking it, I see that a lot of it is wrong.

So I guess my conclusion is that this isn’t a great task for ChatGPT or similar chatbots. ChatGPT was the only one that returned all 75 issues, but it got a bunch of stuff wrong. I didn’t check the other results too closely; they looked right, as far as they went. But I just went back and looked again, and they’re all not quite right.

I like the Bing feature that lets you open a table in Excel. None of the other chat interfaces make it easy to do anything useful with the table. I managed to copy & paste the table out of ChatGPT, but it was a bit of a hassle. I’m really surprised that, with all the fancy tech behind ChatGPT, they don’t just have a simple “export to text / Markdown / PDF” button for chats. (Maybe there’s a way to do that, and I just haven’t stumbled across it yet.)

So, anyway, that was all probably a waste of time. I should spend less time screwing around with chatbots and more time reading comics.

Learning

I renewed my ACM membership over the weekend, and I noticed that they now have an add-on called the Skills Bundle. I’ve blogged before about ACM learning options. I was a little annoyed when they dropped O’Reilly some time ago. Now, you can pay $75 extra and get limited access to O’Reilly, Skillsoft Percipio, and Pluralsight. It’s not all of O’Reilly, but it seems to be a good subset. So I paid the $75 and got that.

I still get Pluralsight through work, but I, stupidly, decided to try logging in through ACM, just to see what I’d get from ACM. Well, that was a bad idea, since it linked my account to ACM and un-linked it from work, so now I only have access to the ACM subset of the Pluralsight library. I may try to straighten that out tomorrow.

I’m still doing a little bit of learning around ChatGPT and other AI stuff. OpenAI had their “DevDay” conference today. You can watch the keynote here and read about it on their blog here. And here’s a news wrap-up from The Verge. There’s some interesting stuff going on, though I don’t know if I’ll have the time or inclination to dig into it too deeply.

I’d meant to do some ChatGPT learning over the weekend, but I started feeling a little sick again, so I spent a bunch of time in front of the TV binge-watching The Dragon Prince season 4 on Netflix.

Meanwhile, I’m thinking about trying to get back into learning Angular, which I started reading about a year ago, but put aside at some point for various reasons. I see that there was some kind of Angular event today too. I guess I should watch that video, and/or read this blog post.

And I may try learning MongoDB soon too, though maybe I’m biting off more than I can chew again.

Sometimes, I wish I’d picked a career that didn’t require me to learn a bunch of new stuff every year. But I probably wouldn’t be happy with that. I just get tired sometimes.

The Beatles

I was poking around on my iPhone after lunch today, looking for something to listen to, and noticed that Apple Music Radio was running a Beatles “top 100” show from 2 PM to 7:15 PM today. And it was just a little past 2, so I got in at #97 or thereabouts. I listened to an hour or two of it at my desk, and really enjoyed it. It was cool to just discover this randomly, but it would have been cool if there’d been a way to know about it beforehand. Maybe there’s an Apple Music newsletter or something, and I’m just not subscribed to it. I get weekly emails about Apple Arcade, Apple TV+, and other random Apple stuff, but I never seem to get any emails about Apple Music. Oh well.

I guess this Beatles thing is related to the release of the new Now and Then single that’s coming out tomorrow. I’m looking forward to hearing it, though I don’t want to get my hopes up too much. (Tying in with my recent obsession with ChatGPT, AI was apparently used to help clean up and finish the song.)

By the way, I’m still listening to the top 100, and they just got to #1, which is… “Here Comes the Sun”.  Not what I’d expect, but I’m not going to argue with Apple’s metrics.

Project Euler and various distractions

Since I started messing with Project Euler again yesterday, I’ve finished up my work on problem 73, and almost started problem 74. I got as far as creating an Evernote note to keep track of my work on it, but that’s about it. Instead, I did a bunch of messing around with my existing code and poking around on the internet to see what’s going on with Euler these days.

I discovered that one of my favorite resources for Euler info, MathBlog.dk, has disappeared from the internet. I’m not sure what happened to it, but it’s unfortunate. I can still find it via archive.org, which I appreciate. The posts there helped me understand what was going on with the problems, and included C# code solving the problem. I always try to figure out the problems on my own, but it’s nice to see how other people solve them and see if I can figure out what’s going on with the more advanced solutions.

And I found another interesting blog with Euler discussions and solutions. His posts are really good, with a lot of detail, C++ source code, and links to other resources.

Meanwhile, I got interested in experimenting with GitHub Codespaces, to see if I could edit and run my code right from GitHub. The first issue I hit is that my current project was using .NET 4.8, which is pretty old. I was surprised by that, but then remembered that I’d last done any real work on it in 2015, so I guess that makes sense. After a fair bit of mucking around, I got it moved to .NET 6, pushed it back to GitHub, and tried again. Long story short, it still doesn’t work in Codespaces. I could probably get it working, eventually, but I’ve got better stuff to do right now. So that pretty much killed the available time I had today to mess around with Project Euler.

using ChatGPT to help solve Project Euler problems

Since I started playing with (and learning about) ChatGPT recently, I’ve been thinking about possible use cases where this kind of thing could actually help me out. I’ve watched the episodes of The AI Bot Show where they show how it can be used with D&D and with board game design, and that’s fun, but not directly relevant to me right now.

I realized today that trying to use ChatGPT to help me solve Project Euler problems might be an interesting exercise, and a bit more relevant for me. My intention wouldn’t be to get ChatGPT to just spit out the answers, but to use it as an assistant to help me figure out the problem. So I started playing around with that.

First, I realized that I haven’t touched Project Euler since 2022, and haven’t actually solved a problem since 2015! I’d solved problem 72 on April 9, 2015, apparently. And I started work on problem 73 in May 2022, but didn’t get very far with it. So I had to spend some time just spinning things up and refreshing my memory on where everything was and how it all worked.

Having done that, I found that I’d already written a working “brute force” solution for the problem, and used it to solve the simple case (where the limit value is 8), but not the actual problem (where the limit is 12,000). Well, it turns out that the brute force solution worked fine with the actual value, and ran in just a second, so there was no need to do anything more complicated.

Plugging in the correct answer for this problem unlocks a PDF that explains some better solutions to the problem. But I had trouble following it, so I did ask ChatGPT to help me figure some stuff out there. But then I hit a wall, since I didn’t understand a particular mathematical notation used in the PDF, and I can’t easily paste it into ChatGPT and ask it to explain it. (I think I might need to figure out LaTeX or something…) It’s got to do with Farey sequences and Stern-Brocot trees, and I don’t understand any of that. Oh well. I do want to sit down and work on this some more, but it’s 5 PM now, and I should really take a break for dinner some time soon.

One thing I tried with ChatGPT was pasting in a pseudo-code solution to the problem (the simplest one from the PDF) and asking it to convert it to C#. It did a good job of that, and surprisingly even filled in a method that was called in the pseudo-code but not defined (a GCD method). And it even explained that GCD was short for “greatest common divisor,” and explained what that means. So that was kind of cool.

I was curious to see if other people have played around with using ChatGPT for help with Euler problems, so I did some web searching on that. I found a thread on the Euler forums, from late 2022, where there was a bit of talk about it. And here’s a GitHub repo where somebody just fed a bunch of Euler problems to ChatGPT to see how good it would be at solving them correctly. The results are interesting.

Back on the subject of ChatGPT and similar AI tools in general, I’m still listening to podcasts, reading articles, and playing around with stuff. I guess I’m convinced now that it’s not all snake oil, at least. But I haven’t talked myself into paying for ChatGPT Plus or a paid Poe subscription yet.

digging in to ChatGPT and similar AI stuff

I’ve successfully been ignoring all the hype around ChatGPT and similar AI stuff all through this year.

I was initially amused by some of the stuff folks were posting to Twitter when ChatGPT and DALL-E and other tools were made publicly available. There was a lot of funny stuff out there, with folks getting oddball results out of the chatbots, and using the image generators to make some really crazy images. Initially, it seemed pretty harmless, but also fairly useless.

Then came the op-eds and think pieces from people worried about the impact that these things could have on the world. Everything from worry about AI causing human extinction, to ChatGPT replacing writers and programmers, to the environmental cost of running all this stuff. A lot of that was overblown, I think.

But recently, something pushed me over the edge and I decided I had to start learning some of this stuff. I’m not even sure what did it, exactly. Either way, I’ve been digging into this stuff, and I thought I’d write up some notes.

First, I’ve been looking at two primary categories of “AI” here: the LLM chatbots, and the image generators. I like playing around with the image generators, but I haven’t found much practical use for them, and they’re not that interesting to me, so I’m going to skip talking about those. I’ll just say that the Bing image creator is pretty fun to play with.

As to the LLM chatbots, I’ve started playing around with ChatGPT and a few others. I registered for a free account with ChatGPT, which gets me access to GPT-3.5.  Upgrading to ChatGPT Plus for $20/month would get me access to GPT-4, which is supposed to be much better. I don’t think I’ll be doing that, but a number of people seem to think it’s worth it.

At work, we have our own chatbot called “Mindspark”, which is powered by Azure OpenAI, which in turn uses GPT-4 and/or GPT-3.5, if I’m understanding it correctly. It’s internal-facing, and at this point, really just an experiment, I think. I’m not sure if there are any long-term plans for it. Anyway, it’s reasonably good, and also one of the only options, from my work computer. For some reason, we block access to ChatGPT’s web interface, so I can’t use that directly at work. (Which is one of the reasons why I probably wouldn’t pay $20/month for ChatGPT Plus. If I was paying for it, I’d want to have access to it at work and not just at home.) I’ve also noticed that we block Perplexity, and I expect some of the other popular tools. (I’m not sure why, though I’d guess it has something to do with distrust of the privacy policies for those tools and worry that proprietary corporate info will get into them and then maybe leak back out?)

I’ve also played around with Poe, which is a tool that gives you access to a bunch of different AI tools, including ChatGPT. They also have a $20/month plan that gets you access to more advanced models, and lets you use it more. I’m not sure how worthwhile that is, vs. using ChatGPT directly. I guess there’s some utility in having access to multiple sources through a single interface. I definitely want to play around with it some more.

And I’ve tried out the new Bing chat. It’s also powered by GPT under the hood, I think. The nice thing about Bing chat is that, unlike the free version of ChatGPT, it combines web search with GPT, so that it can return more recent information than using ChatGPT alone. (And my company doesn’t block Bing chat, so I can use it at work.)

So that’s my brief overview of the front-end interfaces for LLM back-ends that I’ve tried out. I haven’t found one that is noticeably better than the others, at this point, but I haven’t done much with them yet.

I should also mention that all of these things, for a lot of the use cases I’ve tried, are spectacularly bad at returning correct and/or useful data. In general, I’m not sure if they’re super useful as general research assistants. If you can find an answer to a question with a regular web search or a simple Wikipedia check, that’s way better than asking ChatGPT.

Aside from just playing around with these things, I’ve also been reading some articles and listening to some podcasts. I thought I’d include some podcast links here, for reference.

  • Here’s an episode of the New Yorker Radio Hour from a few months ago, where they did an interview with Sam Altman, CEO of OpenAI. It’s somewhat interesting, at a high level.
  • Ezra Klein has done a few shows talking about AI and LLMs and stuff. Some of it is pretty interesting to me, but it’s mostly high-level philosophical stuff, and I’m not sure what I think about some of it.
  • On the more practical side, Scott Hanselman did an episode of his podcast recently where he interviewed a guy who wrote a book on “prompt engineering”. That’s the kind of thing that made me roll my eyes, until I started digging into it a bit. I still think the whole prompt engineering thing is a bit overblown, and I don’t want to read a whole book about it, but I’ll admit that some of it is useful, and I have now watched a couple of LinkedIn Learning videos on the subject.
  • Also on the practical side of things, I’ve queued up a few episodes of .NET Rocks related to AI. This one, from August, looks interesting.
  • And there’s a recent episode of RunAs Radio that got into some good no-nonsense explanations for how LLMs work. I think that episode has a better explanation of the tech involved than anything else I’ve read or listened to. (I’m sure there are other good explanations out there, of course, but this is the best one I’ve stumbled across so far.)
  • And, finally, related to .NET Rocks, I see that Carl has a video series called The AI Bot Show that covers this stuff. I guess I’m going to have to watch some of those.

So, in conclusion, I guess I’m doing a little less eye-rolling at this stuff now. I see some utility in it, and I’m getting a better idea of what it’s good for and what it’s not good for.