From Spreadsheets to Websites

Did you know, according to the Cisco Annual Cybersecurity Report, Microsoft Office formats (.xls, .doc, .ppt) represent 38% of malicious file extensions in email? (1) And don’t think zipping your spreadsheet file will make it any more secure because Archive files (.zip, .jar, .rar) came in at 37%.

Wait. What?!

Yet, many businesses around the globe still manage, track, and analyze their business data using unencrypted (not to mention time-consuming and, often, clunky) legacy tools and workflows. They’ve become familiar with spreadsheets that are often disconnected, error-prone, and manually managed. They’ve learned to adapt to cleaning up data and double checking to ensure changes were made. They’ve accepted that “this is how we do things” because it’s just been that way for so long.

These times, they are a-changin’. . .

Businesses are now facing an ever-growing amount of data that is pushing the boundaries of what can be done with spreadsheets and macros. Transactions are expected to happen at a faster pace, involving multiple users from different departments in varying locations. More information is being tracked and reports should be dynamically generated based on what’s happening — right now. Today’s smart businesses strive for instant and accurate results.

For smaller spreadsheets, there are tools and products that convert to a simple web page. But what if your spreadsheet has dozens of tabs with interrelated cells and macros and formulas? And what if you have multiple spreadsheets with intricate, manually-managed dependencies? In that case, your business requires a custom software solution.

Call in the pros…

True, this may sound like a massive undertaking, but it’s a journey into analyzing and streamlining your business workflows, be it creating a web app based on your existing spreadsheets or re-imagining new ways to simplify complex workflows, a solid software development team will guide the process from design to launch.

Design drives the user experience

Designers are inquisitive and curious. We ask questions and interview users. We research competitors and possibilities. User roles are defined and their specific journeys mapped out, tailoring workflows to best fit their set of objectives. Through this analysis, it becomes clear what should be a widget, what should be a list view, what should the user do next? Ultimately, we design an enjoyable user experience while making tasks easy to accomplish. Together, along with the development team, these designs are implemented, tested, revised, and polished to perfection.

Imagine. . .

One custom-tailored website to replace all of your spreadsheets. One click of a button, and data is securely propagated, calculated, sorted, and shared throughout the system. Imagine, as the end user, being able to focus on the information that’s pertinent to you and your role, rather than having to sift through pages and rows and columns. Now, imagine the time saved by not having to manually format and double-check that information was entered correctly.

As they say, “time is money” and for any business that rings true. If your company is ready to move into a faster, more accurate and reliable way of managing data, Art+Logic is here to help guide you through that process.


(1) Cisco, Annual Cybersecurity Report 2018

Making Spectrograms in JUCE

Spectrogram of swelling trumpet sound

Art+Logic’s Incubator project has made a lot of progress. In a previous post I mentioned that Dr. Scott Hawley’s technique to classify audio involved converting audio to an image and using a Convolutional Neural Network (CNN) to classify the audio based on this image. That image is a spectrogram. I’m going to go into some detail about what we do to create one, and why to the best of my ability.

(more…)

Art+Logic at ADC

Next week (18-20 November) I’ll be attending the annual Audio Developer Conference in London. On Tuesday November 19th at 16:00 I’ll be part of a team providing the first public details about the forthcoming MIDI 2.0 standard.

The ADC is usually live-streamed on YouTube as it happens, an unfortunate series of events have endangered that this year — you can learn more about that and consider contributing to the fund that will pay for the recording and livestreaming of conference sessions—I frequently return to the archived videos and point other developers to them for reference.

Check the JUCE YouTube channel for the streams during the event (and come back later for archived recordings, or watch sessions from earlier years).

The full schedule for the event is here.

If you’re attending the event, please do track me down and say ‘hey’.

Discover Machine Learning

Computers have been around for less than 100 years. In that short period of time, some incredible things have happened: they’ve been universally adopted so quickly that we have them in our houses. In our cars. Even in our pockets. In the last 40 years, there have been many significant events when it comes to computers:

  • Continuous decrease in size and increase in power.
  • Access to computing at home and at work.
  • Networking, the spread of the internet, and acceptance of the web.
  • Computers in our hands (cell phones).

Similarly to those past events, an important development in computer science which has the potential to significantly impact the way we develop applications is machine learning and artificial neural networks.

(more…)

REST From the Bottom Up

The RESTful API has a funny place in the software development world: it’s widely regarded as the best general-purpose pattern for building web application APIs, and yet it’s also nebulous enough of a concept to cause endless disagreements within teams over exactly how to implement one.

Do I make my endpoint /company/123/ or /companies/123/? How about /companies/123/locations/ vs /locations/?company=123 ? How do I handle versioning the API? Why shouldn’t I send a POST request to trigger an action on the server? If a backend task can take many seconds to process, how do I represent that in the API?

(more…)

friz and the Illusion of Life

friz—a Flexible Animation Controller for JUCE

As is often the case, I found myself working on a personal project and had some UI elements that really wanted to have some life to them on the screen.

I tucked into the JUCE documentation expecting to see something that I could use to easily add some personality to the interface, and…didn’t find what I was looking for. There’s a ComponentAnimator class that supports moving a single component from one set of coordinates/bounds to another linearly, and also modify the component’s alpha value to have it fade in or out.

I was looking for something…more expressive.

(more…)

Smart Living Things

Smart garage door opener

Recently, I had to re-educate my garage door opener. Our house on a hill in San Francisco occasionally settles, and the door is experiencing different stresses than it did 5 years ago when I installed a new opener. So I had to re-teach it how to open and close the door.

(more…)

The Sunsetting of Python 2x

Sunsetting Python2

“Sunsetting.”

It sounds so pleasant — a sky of golden rays flanked by purples and reds and oranges. The end of the day.

Or, for software developers, the end of life of a technology or version of that technology that can, depending on the prevalence of the technology, invoke feelings of concern, dread, or even near-panic.

(more…)