Skip to main content

Posts

Accessibility Is For Everyone

  Years ago, I attended a virtual conference sponsored by Microsoft where accessibility was the topic.  The idea was that we will all require some level of enhanced accessibility at some point in our lives, so we should design and build things for our future selves. Prior to this I had only thought of ADA compliant designs as a "ToDo" for others, though still a priority. I keep this new perspective with me and welcome opportunities to evangelize.  I recently found a website that stood out to me as real champion for accessibility. This site allows the visitor to dial in whichever option(s) they need and to variable degrees. Typically we'd have to rely on the browser or perhaps the operating system itself to specify, or in better scenarios search the page for accessibility options. Kudos to nc.gov  for making this easy to find and easy to use.

Why Do I Code?

I've been a paid technology professional for half a decade and this is not my first career. Why do I bother to learn new tech and torture myself with daunting task after daunting task? Well, the brain exercise is great and so is the ultimate sweet satisfaction of writing and deploying a thing that works. I love the alchemy of it all, to forge interactive material FROM NOTHING that can change how we behave is the closest thing to magic we have... other than real magic of course. The overwhelming truth here, is that I code to bring my ideas to life. I wanted to be able to communicate my "million dollar ideas" effectively and drive innovation. Here's an idea, what if we could harness the power of traffic, like wind or water? There may not be a pure software solution for that, but I feel like I need to put that one out there. The idea that motivated me to get into tech, though, is about connecting crowdfunding and publishing/royalty distribution. I called it SoundStock, n...

I Used ChatGPT At Work Today

AI has been fun, interesting, a little bit scary and today, useful. I was having trouble constructing the perfect regex involving a variable number of commas. After spinning my wheels for about 15 minutes and spending another 10 sifting though stack overflow posts, I thought to give ChatGPT a try. It worked like a charm, complete with examples and a detailed explanation.  The possibilities are endless. Does this mean we can (or will soon be able to) create anything we can think of? These are exciting times. Here's how I plan to dive in (courtesy of ChatGPT): Understand the basics: Start by familiarizing yourself with the basics of AI, including what it is, how it works, and its applications in various industries. Learn programming: AI is based on programming, so it's essential to learn programming languages like Python, R, Java, or C++. It's also crucial to understand data structures, algorithms, and software engineering principles. Explore machine learning: Machine learnin...

What does TDD really mean?

Test Driven Development is... everything. Before we get into specifics, let's consider some advantages of TDD. One major pro is that TDD allows us to easily update software to include new business rules. This directly impacts scalability. Additionally, debugging becomes less painful; we are forced to think critically about what we want our code to actually do; TDD makes us simplify our code, resulting in a quality, clean, maintainable code base. So how is TDD done? There is an idea called Red Green Refactor . "Red" means that we create our test to fail. I like to go ahead and set up my dependencies, implementation method signatures returning null and any method level documentation. Now we write the tests. I'm a fan of JUnit and Mockito for Java and Mocha for Javascript. When you write tests, consider carefully what you want the code to do and account for negative scenarios like bad user input and empty data sets. Naturally, the tests will fail because we r...

Hot Java

In an effort to understand object oriented programming more deeply and learn a new programming language, I've decided to learn JAVA!!! Thank you to Congnizant for sponsoring a Java bootcamp with UNC Charlotte's continuing education program. Java helped me solidify a few concepts that were previously lost on me. Let's get into it, here are the four major Java OOP principles .  Abstraction is about hiding implementation details from the user while only sharing the functionality. For instance, we can mark a method as abstract and each child class that extends the  parent will have to provide it's own implementation. We also have the option to use interfaces with or without default methods. Next up is Encapsulation ,   or data hiding. When we create a class, we should make variables private from other classes and public getters and setters. Think of an ATM. There is a public interface that we interact with but private implementation behind the scenes that does all ...

Micro-Delights

Some weeks ago, I had the pleasure of attending a Skookum Tech Talk with topic "Micro Delights and the Rise of Craft".  Until that day, I had never heard the phrase micro-delight used in that context. Chris Paul, from LPL Financial (not the NBA), enlightened us. Micro delights are those little things that make our experience, online or otherwise, more pleasant and keep us returning for more. Have you ever begun to fill out a form on a website and all your data appears when you type the first letter of your name? Micro-delight! You know when you get a new iPhone and all you have to do is hold it next to your old one for the data to transfer? Yep, micro-delight! These little nuggets of convenience, have become the norm. If your app doesn't let me login with my google account, I don't trust it! What does this mean for tech professionals? Details. Collectively, its the minor features of an application that set the tone for a user's overall experience. The CEO...

Unauthorized access

Today was all about creating an administrator login to my React.js  soundstock.io project.  This page will show me any messages left to the developer as well as a visitor counter. Seems simple enough right? I could have taken a few different paths. The more elegant method would be to update the models to allow for an "admin" option in addition to the existing artist and investor options. However, since I'm the only one developing the site I decided to use local storage and state to determine if admin criteria has been met. My If statement check for a match in local, all that's left to do is query the database and render the page. Using "this.state.message.map()" I'm able to iterate over the array built from the loadMessages() function to render the desired content.