Now, just hold on a minute. I’m not trying to say that SXSW is broken or somehow inefficient. Stop yelling at me. Look: SXSW has been around for about 30 years at this point. And it’s grown exponentially in that time. I started going to peripheral music events around...read more
We attended the SXSW Interactive Conference last week and it was just as busy, exciting, and informative as one would expect. We went to sessions covering everything from art and technology to medical software, hearables, wearables, IoT, audio software, software...read more
Sometimes, old buildings have really interesting stories to tell if you have just a few additional bits of knowledge about them. Not that long ago, I found myself in an old church in Pasadena, California. It had been built in the style of European Renaissance...read more
No, really. In fact, when you go live, your software shouldn’t be “done.” If it is, you’ve done something wrong. You see, in the history of software, there’s never been such a thing as a piece of software that launched without bugs. Think of your favorite, most used platforms. Gmail. Facebook. Salesforce. All are brimming with bugs. Every day a user writes into their contact forms about a bug they discovered, and while a lot of them are PEBKAC errors, a lot of them are legitimate bugs. And the ticket tracker logs them, someone triages them, and, eventually, most of them will be corrected.read more
Are you going to CES? We’ll be there. We expect to see some exciting breakthroughs in virtual reality (VR), augmented reality (AR) and mixed reality (MR) as well as new innovations in pro-audio equipment, Internet of Things (IoT) devices, and much more. It looks like...read more
As we reach the end of 2016, let’s take a look at some of the stuff we wrote about over the course of the year. We shared our thoughts on custom software development, looking at the such things as: the differences between composing and improvising; the value of refactoring; the nuances of following a lean-startup model; the conflict between Apple and the FBI; what happens when bad projects happen to good people; and a top ten list of the ways in which software development is like parenting.read more
Paul I resolve to brighten the lives and businesses of our clients and partners at every touch point. I resolve to be more creative and persistent in uncovering the deepest and most meaningful ways in which we can impact our clients' and partners' success. I resolve...read more
In the world of software consulting, it can be virtually impossible to determine what the fair market value for software development is. Nobody estimates work according to the same parameters: some firms have differing rates for differing services, some have offshore development services, some won’t provide a meaningful estimate at all (and for good reason).read more
I was recently given the opportunity to present myself as a “thought leader for my industry.” I’ve been pondering this. What do I know? What do I know so deeply and fully that others might want to hear my opinions on? Not much, it seems. Actually, I don’t have nearly as many answers as I have questions. But more than this, it’s the questions that really keep me interested. Here’s an example.read more
The goal Upgrade home-office security and take the opportunity to join the Star Trek generation of smart-home IoT. Exec summary Describe my experience installing and configuring a couple of Schlage Sense smart-locks and configuring them to connect to a couple of Apple...read more
I love my smartphone. Like many of us today, I couldn’t live without my phone. I don’t do anything these days until my phone tells me I need to do it. Ok. Maybe slightly hyperbolic, but I can certainly say without exaggeration that I’m a more organized and productive person because of my phone.
But, the idea of a smart, wearable device? I didn’t get the point of it. Why would I want to take the functionality of my phone and compress it into an even smaller screen? It’s already tough enough to navigate my 4.7-inch smartphone. The idea of navigating an interface only slightly larger than a postage stamp was laughable.read more
In the early years of Art & Logic, my wife and I liked to visit a small inn in Palm Springs called Villa Royale. It was lovely. Each room was decorated in a different European country theme. The proprietors traveled frequently and brought back regional artifacts...read more
One of our developers was recently talking about a personal milestone that happened to mark both his 20th year at Art & Logic as well as his son’s 20th birthday. That got me thinking about how much parenting and software actually have in common. For instance......read more
In 2006, Wired Magazine published an article entitled “What Kind of Genius Are you?” The article highlights the work of economist David Galenson (currently a professor at the University of Chicago). Galenson is famous for postulating that artists fall into two classes: Conceptualists and Experimentalists. Conceptualists innovate radically, rapidly, and usually at early ages. The Wired article calls Picasso the archetype of Conceptual Innovation. Picasso upended modern art by inventing Cubism in his early 20’s.read more
Refactoring is necessary. Especially on, though not limited to, large or complex projects developed over an extended period of time (say, more than 4 months). To understand refactoring, you must understand a few core concepts about software development:
It is a collaborative endeavor involving many technical roles (developers, testers, designers, database architects) and multiple business roles (the users, the project managers, client stakeholders, product managers, etc). A software project does not come from a single “pen” but from multiple authors, all writing the same book.read more
Why would developers or other technology-driven companies hire a development firm? It happens more often than you think, and maybe not for the reasons you would expect. Sometimes developers (by which we also mean in-house teams at technology companies) always use outside software developers because they do not actually build stuff in-house. More often than not, however, we find that companies with in-house software engineers find themselves in need of outside help for a variety of reasons, five of which we’ll address here.read more
In my last post I took a look at using the Apollo iOS GraphQL client framework to access a GraphQL backend running on the Graphcool GraphQL mBaaS. Shortly afterwards Brandur Leach, an API engineer at Stripe posted "Is GraphQL the Next Frontier for Web APIs?". In...
Don’t ask me why you find yourself working in ASP.NET. I know there are more effective ways to build a site.
Don’t ask me what reason could possibly explain needing to change some passwords. Why isn’t this functionality built in to the app? I know, I know…
But you’re there. Your app is using the MembershipProvider system, which saves the passwords in the database in some kind of encrypted form. And now you have to change some passwords quickly, probably for multiple embarrassing reasons, yet the app doesn’t offer you the functionality to do so, and you don’t have the time to add that functionality and re-build and re-deploy the app.
If only it were possible to go into SSMS and change the passwords using only T-SQL.
Now you can.
GraphQL is a “query language for your API” developed by Facebook back in 2012 for use in its mobile apps, which in 2015 became a published open source specification and framework. Its development was driven by frustration with the state of REST-like endpoints and development of mobile and web apps to consume them.
I hadn’t worked with GraphQL before, but it looked interesting and wanted to see if we could put it to use in the mobile or web apps we build.
Python is a powerful programming language with extensive library support. But what does one do when needing to integrate with a platform-specific C or C++ component that has no native Python support? There are two options: completely rewrite the functionality in Python, or create a Python extension. Either option can be painful and prone to errors. Enter Cython. It’s like the peanut butter and the jelly to the extension sandwich.
Like a PBJ sandwich, Cython code is easy to construct, satisfying to use, does not require exotic ingredients, and can be prepared by almost anyone.