.NET Conf, and yet more on AI

.Net Conf was this week. I caught a few sessions here and there, but not much. Maybe I can check the playlist and catch up on anything good that I missed over the weekend. The main point of the conference was to push .NET 8. From what I’ve seen so far, it’s… fine. But there’s nothing there that makes me want to jump on it and start moving older projects over to it.

Meanwhile, I’m continuing to try to learn more about ChatGPT and other generative AI / LLM topics. I finished a LinkedIn course called ChatGPT for Web Developers this week, and that was kind of useful. I’d reached the point where I was ready to sign up for ChatGPT Plus, so I could play around with GPT 4 and other advanced stuff, but now there’s a waitlist. I guess there was so much interest from the DevDay stuff, that they couldn’t keep up. (I wonder how much money/hardware/etc. it takes to keep ChatGPT running. I know it’s a lot, but…)

So, since I couldn’t give OpenAI any of my money, I threw some at Poe instead. I gave them $200 for a year’s subscription. I’m not sure if Poe is worth that much, but at least I can now use GPT 4, albeit only through Poe’s interface. Maybe I’ll experiment with Poe’s bot creation tools, though I don’t know if I have any compelling bot ideas. Oh, and of course, as soon as I paid for Poe, I noticed that work started blocking it. So I guess work is committed to blocking all AI chatbots except our internal one, and the Bing/Copilot one. (Which is fine… Bing/Copilot chat works well enough, I guess.)

I actually used the Bing/Copilot chatbot a lot over the last few days, as I was trying to figure out how to solve a specific problem with a project I’m working on. It was useful, but I could probably have gotten just as far with old-fashioned internet searches. It might have taken a little longer though.

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.

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.

 

first week back

Well, it’s the end of my first week back in the office on the new schedule. Short version: I survived working in the office for three days in a row. Longer version: I don’t like the “everyone is in the office at the same time” deal. It’s too crowded and too loud. If you go back to before the pandemic, the norm was to have meetings in person, in meeting rooms. Now, they’re all on Teams. So everyone is at their desk all day, and a lot of people are in a lot of meetings. So it makes it hard for a programmer to concentrate when I’m hearing bits and pieces of other people’s meetings all day. My AirPods Pro are a necessary tool at this point. I’ve been listening to The Pretenders a lot this week.

Going back to the football part of my previous post: Ugh. The Giants lost to the Cowboys, 40-0. That’s about the worst start they’ve ever had, at least in my memory. The Jets won, but Aaron Rodgers is done for the season. The Eagles won last night, and are now 2-0, so maybe I switch my allegiance to Philly!

And some notes on some tech stuff I’ve been working on: I started trying to learn Jenkins this week. I haven’t gotten too far yet. I keep getting interrupted. Reading up on installing Jenkins send me down a side trip to also consider installing WSL 2 and maybe Docker Desktop for Windows. I got as far as installing WSL 2 on my work desktop, and on my personal Windows 10 desktop and Windows 11 laptop. (I’d been meaning to do that anyway.) But no further. I got caught up in a support issue this afternoon, and never got back to any of my other work.

Next week could be interesting. In addition to having to go into the office Tuesday through Thursday, I might have jury duty starting Friday. I won’t know for sure on that until Thursday night. I could actually use a break from work, so I wouldn’t mind it if I get put on a jury and can miss a few days of work…

back to the office (more often) and other autumn stuff

Next week, we go from two days a week in the office to three days. The old way was that half the employees came in on Mon/Wed and the other half on Tue/Thu. (I was in the Tue/Thu group.) The new plan is for everyone to come in Tue/Wed/Thu, with Monday and Friday being work from home days for everyone.

I’m not looking forward to it. I think I get a lot more work done from home, and I’m a lot more comfortable. In the office, even with only half the folks there, it can get pretty noisy, since almost all of our meetings are on Teams now. I generally need to keep my AirPods in with some music playing to drown out everyone else’s Teams calls and concentrate on my own work. And I’m not a big fan of driving 20 minutes each way just to sit in a cubicle for eight hours. I’ve probably made these complaints on this blog already at some point, but it always makes me feel a little better to vent about it.

I’m also a little worried about my own stamina. I’ve been finding that my in-office days are kinda exhausting, sometimes. Maybe I have some kind of medical problem, or maybe I’m just getting too old for this stuff. I don’t know. I guess we’ll see if I can manage three days in a row or not.

NFL

On a different subject, today is the first Sunday of the NFL season. So that’s cool. The Giants are on the Sunday night game and the Jets are on Monday night, so there are no local afternoon games. I’m pretty sure I’ll turn on whatever games are on, and just let them play in the background today. It’s a rainy day and I don’t have much else to do.

I spent a little time this morning trying to figure out what NFL-related content I can watch on my streaming services this season. I can still watch NFL Matchup on ESPN+, it seems. And NFL Primetime too. Apparently, Inside the NFL has moved from Paramount+ to the CW, which is a bit weird. I guess I can watch that on my TiVo then, if I can figure out when it airs. And I guess I can watch PFT Live on Peacock, if I need more football news.

I’ve been getting into sports enough recently that I’ve been flirting with the idea of signing up for cable again, or one of the cable-like streaming services that includes ESPN. But any of those would cost me way too much money, and the prices are going up on some of them soon too. So I’m trying to stick with just what I have now. That means I can’t watch stuff like the US Open men’s final today, which is only on ESPN, but I guess I can live with that.

another position change

I don’t think I wrote a post specifically about my last position change at work, from back in October 2022, but I guess I hinted at it in this post. At that time, I went from being a “Senior Application Developer” to an “IT Solutions Manager,” with three direct reports. And those folks were CRM developers, so I had to start learning CRM.

That all went reasonably well, I think, but there have been a lot of changes recently, and one of those is that they don’t want managers with only a few direct reports. So they’re taking all the programmers reporting to me, and those reporting to a couple of other senior folks, and putting them all under one manager, who will now have about a dozen direct reports. So now I’m back to not being a manager, and I have a new title: “Sr. Advanced Applications Developer – Lead”. Kind of a weird title, but it’s fine, I guess.

I updated my LinkedIn profile. I’m wondering if the nine-month stint as a manager looks bad. The change was only done because of a desire to have fewer managers with more reports per person, not because I did anything wrong. But I could see a potential employer wondering why the position only lasted eight months. Oh well. I’m not looking for a new job right now, so there’s no need to worry about it yet.

Meanwhile, I see that back in that October post, I was talking about new stuff I was learning for work. I talked about Razor Pages a bit. I had planned on doing some other stuff with Razor Pages, but that didn’t get very far. I had a specific project I wanted to do that way, but it was decided that we should use Angular for it, since that’s our standard for front-end stuff, apparently. I started learning about it (and mentioned it here), but I haven’t gotten far, and the project I was going to need it for has been put on indefinite hold.

Today, I spent some time trying to learn about Sumo Logic, which is going to replace Splunk for us. I’m a little annoyed about that, since I’ve managed to learn a good bit about Splunk, and I have a bunch of saved queries in it and notes on how to extract stuff I need. So now I need to relearn all of that, in a new system. Sumo Logic looks like a pretty good system, honestly, but learning new stuff all the time gets tiring as I get older. Sometimes, I just want the world to slow down a bit and let me catch up.

And one more semi-related subject: I noticed today that, in Outlook, the old interface for managing tasks is gone, and the Microsoft To Do interface is the only way to access tasks now. I’m not fond of that interface, but I guess I’m stuck with it now. (It might be possible to turn the old tasks stuff back on, but I’m guessing that it’ll eventually go away completely, so I might as well get used to To Do.) I’ve blogged about my many troubles with task management at work several times, most recently here, I think. My current system is to use Planner for long-term reminders (since Outlook items get deleted after a year) and now, I guess, To Do for short term stuff. That’s not great, but it’s the best I can do in our environment.

I’m going end this post with a link to a comic strip I included back in that October post. Still true.

A.I.

From AI Is a Lot of Work:

Put another way, ChatGPT seems so human because it was trained by an AI that was mimicking humans who were rating an AI that was mimicking humans who were pretending to be a better version of an AI that was trained on human writing.

There’s been a lot written about AI lately. And a lot of hype around it. A lot of articles I’ve read (OK, skimmed) aren’t saying much of value. This one is pretty interesting though.

And here’s a link to a podcast that might be interesting: The Culture Creating A.I. Is Weird. Here’s Why That Matters. (I haven’t listened to it yet, but it was recommended to me.)

Personally, I was hoping to sit the whole thing out, but I guess it’s too late for that. I remember taking an “Intro to AI” class in college that was basically an intro to LISP and Prolog programming. It’s come a long way since then, but it hasn’t come as far as a lot of people would like to convince you it has.

General learning stuff

First, a little follow-up from my last post: The Credly thing was a little weird. There’s a working LinkedIn integration that will add the credential to your profile and let you post about it. So that’s good. There are options to share to Twitter and Facebook too, but neither worked. I manually posted the credential link to Facebook, Twitter, and Mastodon, just for yuks. So maybe I’ll get some “likes” out of that. Not that it matters, but I crave attention and validation, like most 21st-century humans.

On the broader topic of education: I’ve been working on figuring out some of the newer .NET Web API stuff lately. My existing .NET Web APIs are all .NET 4.x. Until recently, I hadn’t tried to create one under ASP.NET Core. I’ve been working my way through this course on Pluralsight.

I still get access to Pluralsight through work, which is great. My company recently discontinued access to Percipio though. I wasn’t really using Percipio that much, and I still have access to it through ACM, so it’s no big deal that work has stopped paying for it. That got me thinking about O’Reilly Learning again. When I got the email telling me that we were dropping Percipio, I responded with a suggestion that they look into O’Reilly. I don’t have much hope that our L&D folks will want to spend the money on O’Reilly, but I thought I’d suggest it. You never know.

Our L&D folks (and I guess someone influential in management) have been pushing a lot of leadership stuff lately in a couple of areas that I wasn’t previously familiar with. First is John C. Maxwell’s 5 levels of leadership. I guess that Maxwell is actually a pretty big name in the “leadership” area, though I’d never heard of him. He’s written a bunch of books. I’m considering picking up the 5 Levels of Leadership book, either in Kindle or Audible format. I’ve got mixed feelings though. On the one hand, I want to learn stuff that might be important and help make me a better manager. On the other hand, I’m about halfway through the third Wheel of Time book, and I don’t want to get off track on that.

The other big thing they’re starting to push at work is something called Emergenetics, which sounds pretty fishy to me, but is apparently not a weird pseudo-religion or anything like that. I don’t have much to say about it, since i haven’t really started looking into it yet.

I’m not really sure where these two initiatives came from. It might be somebody in L&D, or somebody in management. We do have a bunch of new high-level managers that have been hired from outside recently. We used to get most of our high-level managers from internal promotions, but I guess our president wanted to bring in some fresh blood. Overall, there’s a good bit of uncertainty in the company, due to all of the new managers coming in, and various changes going on. I’m trying to take a “wait and see” attitude, and keep an open mind.

I do have three direct reports now, so I should probably try to keep up on the management philosophy stuff. I haven’t really been an active manager in a long time. And, since they made me a manager about six months ago, I’ve actually done very little management. I’m mostly just letting my direct reports do their work, and leaving them alone. But I should probably try to more actively engage with them. At some point, I’ll probably have to do performance reviews, so I guess I should at least engage enough to be able to do that properly.

It’s hard to juggle all of this. I want to keep up on all the technical stuff, like ASP.NET and Power Platform, and so on, but I also need to work on the “soft skills” stuff.