Command Objects or Interfaces?
Every distributed system eventually requires messages to be written on the wire to be transmitted from one machine to another. In many cases these messages are hidden magic. Using WCF web services, or Thrift RPC, code-generated proxies make remote calls look like function calls.
Fitting the Data: How NOT to do a Graph Database in SQL
We talk about data, and how several data concepts such as “Big Data” and “NoSQL” are currently in the vogue. But just as all politics is local, all data is ultimately specific to its own subject domain. Data is not all the same, and so we shouldn’t expect that the general data tools will be the best tools when working with any particular set of data. Choose the right tools with the best fit for your data and you’ll spend more time in analysis and realizing the value of your data, and less time working around the restrictions of your tools.
Your App Is Slow: Boiling the Frog
How many times has a customer come and told you your product was “slow”? In this multi-part series, we will discuss how “slow” happens, and how you can fix it.
It's a Map You're Missing
We were working with a potential client a few weeks ago, trying to figure out if we could help them improve some seismic processing software. The software had excellent science under the covers, but the visual interface was old and tired. Could Palladium help rejuvenate their user experience? Old looking software can imply old or out of date capabilities. Could we make it, well, better?
Declarative Logic with Knockout
Implementing this new logic “the declarative way” is an interesting and typical example of how we use Knockout and Rx to capture the logic and business rules in declarative statements that just work and avoid the complex logic you’d need to implement this functionality imperatively.
Where Do Unit Conversions Go?
Unit of measure conversions are a constant concern in scientific code. Most well written scientific domain kernels should be unit un-aware because the equations of nature are generally unit invariant: momentum is mass times velocity whether velocity is in meters per second or furlongs per fortnight. But there are always important places where the actual values matter: water boils at 100 degrees Celsius. Therefore one typically assumes a set of canonical units in the computational domain to make the programming more straightforward. It’s also more efficient and numerically stable to only translate units on the boundaries of the computation domain, rather than littering them throughout.
Reactive UI Programming Part 2 – Trail By
Recently I was working on a GUI that walked the user through a series of 5 steps in a Workflow. The user would spend most of their time on the 3rd step. As the user made edits, those edits would immediately be sent to the server for processing, and results from the server would show up in a different part of the GUI. There was a requirement that whenever the user left the 3rd step, we needed to send a message to the server to commit the changes they’d made.
Reactive UI Programming Part 1 – Converting Between KO and RxJs
When working with RxJs and Knockout, there will be times when you have an Rx Observable and need a Knockout observable so you can bind it to a view. And there will be times when you have a Knockout observable and need an Rx Observable so you can merge several event sources or some other type of logic that is more easily solved by the RxJs linq operators.
Reactive UI Programming with KnockoutJs and RxJs
When writing a complex single page web application, you find yourself dealing with A LOT of asynchronous activities. The user is busy clicking on UI elements and typing in text boxes. Asynchronous requests and responses are flitting back and forth between the server and client. Perhaps you’ve even got asynchronous messages coming from web workers.
Chrome Adds Experimental Support For Desktop Multitouch
Up until recently, Firefox was the only Windows 7 browser which had support for multitouch. In a recent build, Chrome has also added experimental support. Unsurprisingly, they’ve used the same touch model used by mobile safari.
User Experience Is Not Graphic Design
Q: I have a new job as a UI designer, and my company just doesn’t understand User Experience. Development runs the show, and they think my job is to design icons and color palettes. What’s the best way to explain UX so that everybody gets it?
Integrating UX and Agile
Producing great user experiences in an Agile environment can be a challenge. As a designer who has been working in the User Experience (UX) field for over 20 years and as part of Agile teams since 2006, I have truly come to embrace Agile. Dare I say, often I prefer it. As the product releases move ever faster, Agile, Kanban and other Lean methods are here to stay. It’s time for the UX field to get better educated on these topics and embrace change. Many aspects of Agile and Lean methodologies are good for UX. Here are a few tenets of going Agile-Lean that we should be using to our advantage:
High-Performance Chemistry
There’s an old standby which tells us that A supercomputer is a device for turning compute-bound problems into I/O-bound problems.
Testing When the Network Is Down
Today I had the lovely experience of being told “the network to the cluster is down” while I was writing some code that was supposed to use the cluster. Was I stalled? How could I test my logic? It turns out we’re rather obsessive about separating interface from implementation, usually via C# interface definitions. In this case, I just went down the road I was going down anyway: making some simple mock objects to model the cluster dependencies. (We use Moq.) Now I don’t really care that the network is down.
Can you hide the units?
In the kind of programming we do — scientific simulations and decision support — modeling is usually the first task, and often the hardest. Structuring your problem the right way can make all the difference in determining whether future code is graceful or spaghetti-like.
User Interface Requirements != Domain Requirements
I had an interesting discussion with a coworker while planning a new feature for our current project. We are practicing Domain Driven Design and maintain a strict separation between the GUI and the domain logic. We actually treat them as separate applications.
When confronted with a problem...
Back in the 1990s, if you wanted to interview a C++ programmer, you’d ask him to write a string class. My programming homework counted words or wrote versions of grep(1). Perl made one form of regular expressions popular with the masses.That’s what you cut your teeth on. Now most every language you learn to program in has a Unicode-compliant standard string library which most people don’t think much about anymore. For most of us, it’s a solved problem. (Though there are fun exceptions.)
Stakeholder Alignment
Q: I’m designing the UI for an application, and people here have different ideas about what this product should do. How am I supposed to design when I don’t know what I’m designing?
Competitive Usability Testing
We’re redesigning our site, but there’s internal debate about whether the new design is any better than the current site. What’s the best way to determine which one is better?
Hard Data from Think-Aloud Tests
Q: We run think-aloud usability tests at my company, but some people here don’t pay attention to the results because we don’t get much “hard” data. Do we need to run different tests?
Displaying the Site Map on Every Page
Q: Someone on our website redesign team wants to include a list of 100+ links at the bottom of every page (to mirror Salesforce.com’s approach). Are a lot of companies including essentially their site map on every page?
User Data Sources
Q: We get feedback from users when we’re able to do usability tests, which is not often enough. What other sources are good for user data?
“Click Here” Links
My company’s site has links that say “click here” or “click here for more info”. I think our links should be more specific, but other people here say it’s OK because they see it on other websites. What do you think?
Wizards for Setup Pages
Q: For setup pages which are generally only used for getting started, do you recommend wizards to guide the user through the steps?
“Rabbit Hole” Hierarchies
Q: When is a hierarchy too deep, and what are the alternatives to using a deep hierarchy to access and organize information?
The 3-Click Rule
Q: Is it important that users be able to get to any content in a website within 3 clicks?
Horizontal Scrolling
Q: How do you design a transactional page that requires horizontal scrolling? Do you freeze the left frame like Excel, or use tabs?
Drag-and-Drop Controls
Q: Are there any usability issues with using drag-and-drop controls in a web application?
“Back to Top” Links (Anchor Links)
Q: I am looking for some clarification on best practice for “back to top” links: When should they be used and how? Jakob Nielsen is against them, but this is not a universally held view. They can be very useful for FAQs. What do you think?
Maximum Number of Hyperlinks on a Page
Q: Are there any usability guidelines with respect to hyperlinks? In particular, the number of them on any given screen (for example, a page with 50 hyperlinks).
Introducing User-Centered Design
Q: I am the only Information Architect + Designer in an IT Solutions company. I am also fresh out of college. How can I introduce some processes to work with the programmers / coders who are working on Enterprise Solutions?
Using Breadcrumbs as a Navigational Aid
Q: Breadcrumb trails seem to be common navigation aids. But in which ways and how often are they really used? Is it enough to rely only on the breadcrumb trail to tell the user where she is in the site hierarchy (for example when she arrives via a deep link), or do you still need to do that with headings, etc.?
Multiple Logins
Q: Our web-based application currently requires two logins to use: one for the application and one for each module under the application. I’m having trouble convincing others on the team that we should just have one login. What do you think?
Navigation Sub-Levels
Q: The web team at our company wants me to figure out the best way to add a 6th level of navigation to our website. Is the best way to do this to add this level of navigation sub-nested under the 5th level on the left-hand side of the page?
Improving the Documentation vs. Improving the UI
Ideally, conduct usability studies on both the user interface and the documentation to help you define and prioritize problems with both. The data you gather will help you to measure the benefits in terms of business metrics for both the UI and the documentation.
Creating Consistent & Professional Content
A Content Style Guide provides rules and examples for how content should be crafted and presented to users, and will ensure that your messaging is consistent and effective.
ML Ops
This post explores ML Ops
GroundMetrics
How has the storage reservoir of CO2 changed over time?
Iconixx
Iconixx legacy code base and user experience once cutting edge had become dated. They were concerned that the dated look and lack of mobile options could make them vulnerable.
OpenDoor
OpenDoor Trading was creating a brand new product that needed to be innovative. However the trading community had long held expectations about how trading interfaces behave and low tolerance for traditional user studies and adopting new usability paradigms.
Predictive Analytics for Kinsa Health
Can you predict and plan for the flu? Expero built a data product including a long term forecast for modeling the spread of influenza-like illness across the United States using a cutting edge deep learning model.
Predictive Drilling
Drilling through narrow beds of hydrocarbons isn’t easy. Expero designed the user experience for a complex data-driven analytics package in just three months, enabling implementation for a time-sensitive customer.
Tasktop
Tasktop legacy client-server platform had a steep learning curve for deploying integrations. In addition to moving to the web, Tasktop wanted to enable a broader, less skilled user audience to configure and deploy integrations. Expero created a novel user experience for the new web-based platform that has far exceeded Tasktop’s user adoption goals!
myHouseby
myHouseby’s goal is to give their customers the ability to design their dream house from scratch in a matter of minutes. Expero delivered a streamlined design and user friendly application to make new home construction easier than it has ever been.
Entity Matching & Analysis Module Demo
Gain a complete 360-degree customer view with our advanced integration solution. Utilize cutting-edge graph and fuzzy matching algorithms to seamlessly connect, enrich, and reveal valuable customer connections from any data source.
Explorer Module Demo
Create a unified customer view with drag-and-drop alerts and ML/AI analytics. Perform onboarding, remediation, due diligence, and monitoring.
Alerts Module Demo
Create and view alerts easily with drag-and-drop ML, AI, and Graph algorithms. Aggregate alerts from 3rd party and internal solutions.
Dashboard Module Demo
Visualize insights effortlessly with customizable dashboards. Empower data-driven decisions. Compatible with Power BI, Tableau, and more.
Case Management Module Demo
Tailored anomaly detection with customizable workflows and unified event view. Seamlessly integrates with major financial crime tools.