Eric J. Bruno - December 2017
Eric J. Bruno - November 2017
In a the article, I introduced a scrollable HTML multi-column table with selectable rows. In effect, the HTML table becomes a scrollable, multi-column list that you can use in forms where the user can make a selection. In this blog, we’ll add a search box to provide searching and filtering to the list to quickly find entries without scrolling and hunting.
Eric J. Bruno - October 2017
We’ve all seen what a standard–and boring–HTML table looks like (see Figure 1). Sure, you can adjust the border size and style, and even use cascading style sheets (CSS) to spiff it up, but its utility is limited. For a web application I recently built, I needed a multi-column scrollable list, within which I could select an entry as part of an input form. I knew a basic HTML table wouldn’t fit the bill, so I changed it.
Eric J. Bruno - September 2017
Recently, after part of my hard drive crashed and I restored my Java development environment, I had trouble debugging one of my projects. This particular project was large, spread across multiple JAR files, and everything compiled just fine. However, when I went to run or debug it within my IDE, I consistently got a java.lang.NoSuchField Exception for a class member variable that was certainly there. When I ran the code from the command line via a script, it ran fine. I was perplexed.
Eric J. Bruno - August 2017
I recently needed to create a C/C++ API for some existing Java code. The first thing that came to mind was to use the Java Native Interface (JNI). However, that can get ugly, mainly because JNI was designed to do the reverse (call C code from Java) and because it adds additional compilation steps. For example, you need to generate the JNI layer using the JDK’s javah tool, implement and compile the native C/C++ side of things, and then keep it all in sync as the Java code changes. Fortunately, there is an alternative: Java Native Access.
Eric J. Bruno - May 2017
Breaking a large project into more maintainable modules is more than splitting code across files. It involves componentization, distribution, developer considerations, ease of debugging, the effectiveness of testing, performance concerns, scripts, tools, and more. Then, after all that, you can consider the structure of the code itself. Let’s take a look at the forces you need to consider when modularizing your system.
Let’s begin with an important point in large-scale software development: good object-oriented design doesn’t equate to ideal code modularization. In a nutshell, this means it’s okay to break down a single C++ class into multiple source files. You can even break classes out across directories (or packages in other languages). In fact, this is one advantage of C++ over Java; it allows you to have different logical and physical class representations when it comes to the filesystem. Let’s look at some strategies to achieve this.
Eric J. Bruno - September 2016
What Are Server-Sent Events?
You’ve probably heard of HTML5 WebSockets , which is a powerful method to support full duplex, reliable messaging over HTTP/S. But have you explored HTML5’s Server-Sent Events (SSE), which is a simpler (albeit not as full featured) method of sending dynamic updates from an HTTP server to code in a browser? It works outside the browser as well, between applications written in any language. I like SSE because it doesn’t require a separate WebSockets server, it works over HTTP and HTTPS, it’s firewall friendly, and it’s simple.
Eric J. Bruno - April 2016
How serious are you with your digital strategy and initiatives? Be careful not to let your customers be more digitally transformed than you are. Instead, make sure you’re ahead of your competition, your customers, and even the traditional business models of your very own company. Shoot for the impossible with what Google calls moon shots and set goals for digital transformation and enablement that may seem impossible. Let’s explore six principals that will help you create the digital enterprise of the future, today.
1. Think beyond cost savings and efficiencies.
If your goal is a multi-billion dollar valuation, you need to stop using technology just to cut costs and begin thinking about how it will truly grow your business. For example, technology can help you:
Define new pricing models to compete globally
Reduce time and effort it takes to complete a sale
Bundle goods and services
Create digital partnerships (i.e. offering a car rental when booking a hotel)
Improve user experience (by making it fast and easy, or even fun via gamification).