In this post, we share predictions of the ChatGPT paradigm shift’s effects on software developers, its current benefits for development process, and introduce a custom ChatGPT GUI application developed with Go and Fyne.
People that know me, know that I love to fly fish and tie flies. I made up the saying “Time flies when you’re tying flies.” It is true, just like when you are trying to solve a programming problem, time flies.
Over the past few years, we at Keyhole have utilized Docker (with assorted technologies) and have gotten up to speed on the Hyperledger blockchain framework. Something that all of these technologies have in common is the Go language. Go is the language used to implement Docker, Hyperledger, OpenShift, and many other system-level applications.
Personally, I like to peek under the hood to better understand the tools I’m using. That led me to learning about the Go language. And in my opinion, the best way to learn a language is to build something.
So, I built an application for fly tying videos. There are numerous fly tying tutorials on YouTube, so I built an application that allows them to be organized into virtual fly boxes and types.
In this blog, I will introduce you to the Go language. We’ll go over some of the key language concepts by walking through how the https://flytyerworld.com server-side API is implemented using Go.
Machine Learning enables a system to automatically learn and progress from experience without being explicitly programmed. It’s a subset of the artificial intelligence (AI) technology space being applied and used throughout your everyday life. Think Siri, Alexa, toll booth scanners, text transcription of voicemails – these types of tools are used by just about everyone.
Image recognition and computer vision are also widely being used in production; recently just heard that Los Angeles, CA has made it illegal for law enforcement to use face recognition technology in its numerous public video cameras. The current state of the art allows real-time identification.
Interestingly, the algorithms and know-how for Machine Learning have been around for a long time. Artificial Intelligence was coined and researched as far back as the late 1950s, the advent of the digital computer, and expert systems and neural networks, that theoretically mimics how our brain learns.
The increase in Machine Learning production-ready applications started around 2012, with increased processing, bandwidth, and internet throughput power. This is important as deep learning algorithms like Neural Networks require lots of data and FPUs/GPUs to train.
In this blog, we introduce a conceptual overview of Neural Networks with a simple Neural Net code example implementation using Go. We will interact with it by building a ReactJS interface and train the Neural Network to recognize hand-drawn images of the numbers 0-9. Let’s dive in….
I’ve been in the software development business for a long time and I can’t tell you how many login screens with authentication logic I have implemented. You might say that one of the most prevalent user stories is the need to log in and securely authenticate a user’s access to an application.
Here at Keyhole Software, we have implemented countless login and authentication approaches for applications, along with simple to sophisticated authorization schemes enforcing access control of applications. Of course, you can utilize the single sign-on type of technologies such as OAuth or OpenID, which offload the development of a login UI and the logic for authentication/authorization. However, these standards are not always utilized in enterprise environments. Many enterprises will have a single authentication mechanism that exploits a federated operating system network such as LDAP. A login UI still has to be created and authorization rules still have to be applied to each application.
Over the last few years, we have helped organizations transition away from monolithic-based applications to isolated microservice-based architectures. With Microservices, authentication and authorization logic is now spread across many decoupled distributed processes. It was a bit simpler with monolithic architectures as only a single process is authenticated and contains access control rules defined.
In this blog, we discuss a design pattern for authorization and authentication for use in a distributed microservices environment.
As Keyhole consultants, we are exposed to a plethora of technology stacks and implementations from client project to client project. Particularly with our enterprise clients, great care must go into selecting the best technologies for the company’s technical needs and current landscape. After all, they don’t want to be re-writing the same application in just a couple of years due to lackluster choices and shortage of developers to add functionality.
In this post, we present an open source reference application developed three times using three different frameworks, React, Vue & Angular.