GitHub Copilot TANKS Code Quality

Really? Really!

If you read my evaluation of copilot, you’re not surprised. Now there’s this from Visual Studio Magazine:

New GitHub Copilot Research Finds ‘Downward Pressure on Code Quality’ — Visual Studio Magazine

Here’s a paragraph from the whitepaper’s abstract:

We find disconcerting trends for maintainability. Code churn — the percentage of lines that are reverted or updated less than two weeks after being authored — is projected to double in 2024 compared to its 2021, pre-AI baseline. We further find that the percentage of ‘added code’ and ‘copy/pasted code’ is increasing in proportion to ‘updated,’ ‘deleted,’ and ‘moved ‘code. In this regard, AI-generated code resembles an itinerant contributor, prone to violate the DRY-ness [don’t repeat yourself] of the repos visited.

The ability to maintain code that you write is important–perhaps more important than the speed at which you write the code.

If you’re thinking AI has a way to go, you’d be right. But that won’t stop every software company in the market from touting the AI in their software.

I could not care less about the engine in my care, as long as it gets me where I want to go.

If you have good software, say so. Don’t tell me about the innards. Saying, “We have AI in our code!” is identical to saying “We use WHILE loops and SQL.” Who cares? Does the stuff work?

Business Central Artificial Intelligence: Already Ready to Use

Most ERP systems will soon–if they haven’t already–begin to integrate AI. Business Central began to introduce it several versions ago; releases this fall will integrate AI into the bank reconciliation process of matching documents. Here are some other places in Business Central you can find AI or implement integration:

 

Streamline Cash Flow Forecasts with Azure AI

Cash flow forecasting can be enhanced in Business Central with AI-enhanced precision. There is a setup process, that allows Azure AI to factor in future due dates, offering you more accurate insights for better financial planning.

Elevate Inventory and Sales Predictions

Business Central’s Sales and Inventory Forecast extension leverages historical data. AI-driven predictions can optimize inventory management and identify potential stockouts, empowering you to make informed decisions.

Revolutionize Payment Predictions

The Late Payment Prediction extension uses AI to refine collections strategies by forecasting whether sales invoices will be paid on time. Users can set up and even create custom models to suit your business needs.

Microsoft’s mesage, “Embrace the future by integrating AI seamlessly into your Dynamics 365 Business Central operations.”

If you’re interested in exploring how this functionality could improve your return on your Dynamics 365 investment, contact us.

 

AI On the Rise: Evaluating a Popular AI Tool (Git Copilot)

A flurry of news is popping up about AI (Artificial Intelligence)! One of the tools getting a good bit of attention is GitHub Copilot. It is an AI tool that–among other things–can help programmers write code. Before going any further, I know that most readers of this blog aren’t programmers. That’s fine. We’re looking at this specific technical tool because it provides an example that we can use to make a key observation about AI.

Github Copilot

Copilot was released earlier this year. About six weeks ago, a beta of Copilot chat was released. It costs $10/mo/user for a personal user after the trial period, and I thought it interesting enough to justify paying for it.

I recorded a video to illustrate the concept of this blog article. Here it is.

The Demo

This demo illustrates creating a simple console application in c# using Visual Studio, then adding a function to return the larger of two integers. Pretty simple for a person to do just by inspection. 10 is larger than 5; 20 is larger than 10. In the video, you’ll observe that once I type “int largerOfAorB(int a”, Copilot figures out what I’m trying to do and suggests an answer. The answer is basic logic: if a > b, a is the answer, otherwise b is the answer. It doesn’t deal with the case where a and b are the same, it just returns b.

And that’s Copilot. If you type like 10 characters a minute, it saved you a couple of minutes.

Great!

But…what if you need the greater of 30.5 and 40. This won’t work. 30.5 isn’t an integer (it has a decimal or fraction). So you’ll have to re-write your code. Copilot will do that for you. You might even want to develop it as an overloaded (sorry for the technical jargon) function which will work for both decimals and fractions. And what if you have other types of numbers? Well, you could just write even more code to handle those.

In college, I had a programming instructor who said this one day, “Just because it works doesn’t mean it is right!” Good quote. It applies to this situation. Here’s the answer: don’t write a function because there is already a function in C# to do this: Math.Max(a,b). And Math.Max is already wired to work with integers, decimals, etc.

The Point

Sometimes the answer you get from an AI is a correct answer, it’s just not the best correct answer. AI can be a great tool, but it’s just that, at least for now. Be sure you know enough to check the answer at least for reasonableness. Otherwise, you might drive off a cliff because the AI answer didn’t take all the facts into account.

AI on the Rise: What does this mean for ERP and Business?

If you’re a technolgy user, you might have noticed that everything is AI these days. I got an email from Microsoft today that shows the new name of one of their partner programs: Microsoft AI Cloud… The financial press is calling this the “shot in the arm” the IT industry needed. Some analysts are crediting AI for averting a recession. But what’s real and what isn’t?

Current AI Models Are Based on Probability

I asked ChatGPT (chat.openai.com) the following: “Is this statement true: current AI models are based on probability?” Here’s the response (after I asked ChatGPT to reduce it to 3 sentences):

Yes, the statement “Current AI models are based on probability” is true. Many contemporary AI models, including language models like GPT-3.5, rely on probabilistic methods to estimate the likelihood of different outcomes and generate contextually relevant responses. These models use large-scale datasets to infer probabilities and produce human-like text.

Actually, I could have written those sentences, but the entire interaction with ChatGPT took about 10 seconds. The sentences are basically well-structured (at least they would pass Mrs. Crawford’s red pencil basically unscathed). The longer, four paragraph version included some repetition.

So at least I would say that the current AI models are useful for generating text describing relatively widely known information.

Limited by their Training

The last paragraph of the “long version” read as follows

However, it’s essential to note that the field of AI is continually evolving, and new techniques and models might have emerged since my last update. Therefore, it’s always a good idea to verify the latest information from more up-to-date sources.

ChatGPT wasn’t always so forthcoming. It’s training ended in September 2021; that just means that it was fed data until that date. It can’t possibly (in this version) know about anything that happend after that date.

To show you the difference, take a look at this conversation about the maximum contribution to a retirement plan from February of 2023:

And from today

You can see the evolution, or as one author put it, the ChatGPT “lobotomy.” In the first example, ChatGPT asserts (for example) that the 2023 IRA limit is $6000. The problem is that Congress raised the IRA limit to $6500 and the 401(k) limit to $22,500.

The Current State For Business

A spate of AI applications is coming online. These include AI apps to generate photos and video from prompts. Asking DALL-E to generate a picture of someone fly fishing in a river gives the following:

Blow those up a little and have a look, particularly at the face of the 2nd fisherman. Or is it a woman? Android? Hard to tell, really.

Other applications listen to Zoom, Teams, etc., meetings and provide summaries. I haven’t tried them yet; I wonder if they work better than Siri? Those will be useful if the accuracy is good enough.

You can build Power BI scripts with ChatGPT, have it write Excel macros, use Git Copilot to help you write programming code, and a host of other items. But (as I’ll demonstrate in later posts) you need to know at least enough to give the answer a proofing. Otherwise, you may accept something that just doesn’t work quite right.

People Make Mistakes Too

This is one item that most writers that are pro-AI, but just a bit skeptical finally get around to. If I ask my doctor to look at a rash, what are the chances that I get a correct diagnosis? Suppose he glances at it and says, “That’s poison ivy.” What are the chances he is wrong? Let’s suppose he gives me some steroid cream and an antibiotic just for good measure. If the rash goes away, was he right?

Or what if you ask your attorney a question and get the wrong answer? Lawsuits against professionals (attorneys, doctors, CPAs, etc.) are filed every day.

AI may not always be right, but at some point it will likely be good enough. You will be able to give an AI a copy of your financial statement and ask, “What could we do to increase sales?” The AI will have the ability to reply.

But how will you validate the answer? That’s the real question for business.

Business Central 21 Launches

By now, you’ve seen the new version of Business Central, 2022 Fall Wave. One of the changes almost everyone in finance will notice is the replacement of Account Schedules, Business Central’s legacy term for financial statments with Financial Statements. The new list screen looks like the one below.

Business Central New Financial Statement List View

An account schedule was actually a definition of the Rows (Row Definition) above. For one row definition, one or more column definitions could be created. It is common to have, for example, an income statement with the columns month, prior month, year to date, and prior year to date. Another column definition might be created for month, budget, variance, % of budget, and year to date, year-to-date budget, variance, and %.

The new Financial Statement allows creation of the same options, but permits them to be saved as separate reports. Part of this is simply convenience, but another benefit is the ability to schedule reports to run at approprate times without having to run the account schedule multiple times with different column definitions.

The Schedule option is on the “Send to…” button on the report print screen:

Send To... options screen

Selecting this option gives you the ability to schedule the report, control the repetition, and control the start and stop dates of the report.

Schedule options for reports

Also, if you missed it, you might want to look at our previous post on exporting the data behind the report. You might find this a better way to get data to Excel or other tools for more processing. Exporting reports tends to export formatting as well that needs to be deleted before the data is usable.

Give us a ring with questions!

Get Paid Quicker: Business Central Payments Features

Collections is challenging, particularly in the midst of a business downturn. When interest rates rise, some businesses turn to an alternative lending source: their vendors. Stretching payments from 10 days to 45 days provides additional cashflow and reduces the need to borrow. Since most vendors (in our experience) don’t enforce interest charges against customers, other methods of payment reduce collections time.

Business Central: SEPA Direct Debit

Let’s assume for the time being that your bank supports SEPA Direct Debit (most large banks do). With an agreement from your customer and a bit of configuration in Business Central, you can create a SEPA file to send to your bank. Once you upload the file, it transfers funds from your customer’s account to yours as if the customer paid you by ACH. ACH is also supported in Business Central.

Direct Debit setup in Business Central.

 

 

 

 

 

 

As you can see from the setup above, Business Central supports valid dates and single (as well as recurring) payments. When invoicing, you can select the invoices you want to collect with Direct Debit.

Business Central Payments

Direct Debit isn’t for every customer situation. So if you accept credit cards, you can automate collection with a payment service. PayPal is a common payment service used by many individuals and small businesses. After you enable the Paypal Payment Service, you select a payment service on the invoice. You could have several Payment Services, depending on the availability of extensions to Business Central PaymentsChoosing a Payment Service on a Posted Sales Invoice in Business Central..

The Invoice Details section of the Posted Sales Invoice is below with PayPal selected as the payment service. When you email an invoice to a customer, Business Central generates a link to collect payment. As you see below, the email also contains a PDF copy of the invoice as an attachment.

If you are using Exchange Online (Office 365 email), you can configure the email sending program to use either a single email account for this type of email, or use the email account of the user sending the email from Business Central.An email showing PayPal Payment Services enabled in Business Central.

 

If you’d like more information about Business Central Payments or need support for Business Central, give us a shout at Data Guidance Group here.

Shopify Connector Included in Dynamics 365 Business Central

If you’ve been watching your Business Central toolbar, you know by now that the May upgrade brought a new option.

 

 

 

Shopify is an eCommerce package designed to be simple to implement, but with a variety of features. If you probe the settings a bit, you’ll find that this is a fairly robust connector allowing you to integrate Business Central with one or more Shopify stores. Multiple stores might be the way to go for diverse products, or to allow you to feature specific product sets in the design of the store.

Business Central Shopify Connector

 If you already have a Shopify store and are using Business Central, a look at the connector makes sense. After all, it is included in the Business Central subscription. If you’re thinking about adding eCommerce, Shopify is certainly worth a look since it’s a popular package. Here is the documentation on the Shopify connector from Microsoft.

Notes on Shopify

We won’t do a deep dive into Shopify, but a few points may be in order. Shopify has a wizard that helps you get started fresh or import from a variety of other store types. More on this in a later post.

Shopify will also handle your credit card processing. You can find the rates here. The monthly or annual fees for Shopify and credit card processing are comparable to other services, and the fact that you don’t have to deal with hosting a website or setting up credit card processing is a plus.

Shopify also has connectors to several Sales Channels including TikTok, Facebook, Instagram, eBay, Google and Walmart. A notable omission is Amazon, but there is a third-party connector if you want to sell on Amazon.

A Few Items to Consider When Evaluating eCommerce Systems

Some of the items we’ve run into with other eCommerce implementations deserve a look before you plunge headlong into Shopify:

  • Make sure your pricing model will work with Shopify
  • If you sell B2B as well as B2C, make sure the order entry process for your B2B customers is acceptable. In some cases where customers order a long list of items (common in B2B distribution), traditional shopping carts and searching for one item at a time are cumbersome.
  • Make sure your shop is fully integrated with inventory quantities, particularly if you plan to sell products on several Sales Channels. eBay and Amazon in particular will penalize sellers that cancel too many orders because they are out of stock, and customers get very hostile if you offer a product for sale but do not have it in stock.
  • Look at the integration and fulfillment models, particularly if you are selling high value products like electronics or jewelry. Make sure there are ample protections to identify orders that might be fraudulent. Order fulfillment tools may also be important.

We’ll try to post a deeper dive into the Shopify system in the next few weeks as well as the integration of Business Central with Shopify. Until then, if you need more information drop us a line at https://www.dgginc.com.

 

Business Central Pages (Toggles) Broken by Chrome Update

A few days ago, Google announced a Chrome security update. Today I got an email from a client that the Customer, Vendor, and Item screens looked odd. A screenshot like the one below was attached.

Toggle (yes/no) buttons broken by Chrome Security Update.

 

Notice the toggle (yes/no) buttons in the top left corner of each column.

When we first got the screenprint, we could not reproduce it. I remembered the Chrome update and the client had mentioned that it did not happen on Edge. I checked my version of Chrome like this:

Check your version of Chrome by choosing three dot menu, help, about Chrome.

That is, (a) three dot menu, Help, About Google Chrome. If your Chrome is out of date, you will see a message unless your Chrome Updates are managed by your organization. Mine are, and are controlled by our Antivirus. So I noted the version (102.x.x.x) and went to the Chrome download site to get (103.x.x.x). After the update, the toggles appear as above.

By the time you read this, hopefully it will be fixed. But if it’s not, at least you’ll understand why your UI looks bizarre.

More and More Phishing Sophistication

I got the email below today. I suppose it could be legitimate. While I’m a CPA, I don’t generally do individual returns. You can find me in a few CPA directories, and I’m a member of both the AICPA and the TN Society of CPAs. There are a couple of interesting things. First, the 2021 tax return is overdue. So is the extension. Second, the from address and the reply to were not only different, but at different domains. I wondered about the domain NAVER.COM, so I went to Google and typed “What is Naver.com” It’s a South Korean search engine company, so say the Google Gods. A 1099R is for the distribution of retirement benefits. That, a W-2 and a Schedule C might seem a little odd. The grammer isn’t particularly good, but I’ve seen worse from my kids’ texts.

All in all, I’m suspicious. Phishing? Maybe. Probably. Worth a reply, when a reply would likely have several files attached which I would need to open? Not on your life.

 

 

 

 

Terry, if you are really looking for a tax return preparer, I hope you find someone. I didn’t reply.

Be careful out there. The phishing attacks are getting better day by day.