1991-2016—25 years of Art & Logic

GraphQL Requests – Behind the Scenes with the Apollo iOS Client

GraphQL Requests – Behind the Scenes with the Apollo iOS Client

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 his post Brandur gives a good overview of the current API development space, compares GraphQL to other technologies, and ultimately puts his support behind GraphQL. The follow-on discussion on Hacker News is a bit mixed, with some comments in support of GraphQL along with a few dismissing it. Some advocate support for both REST-like and GraphQL APIs, given that with a sensibly designed backend, support for both is possible with too much additional work. Stripe has a popular REST API that is used by a lot of developers, given Brandur’s opinions, it will be interesting to see if they take this hybrid approach and start offering a GraphQL interface as well.

Regardless of whether GraphQL will gain more traction compared to other approaches or not, I wanted to dive a bit deeper into the client side of things and get a better understanding of how the Apollo iOS framework and apollo-codegen tool work. (more…)

How To Manually Change ASP.NET MembershipProvider Passwords

How To Manually Change ASP.NET MembershipProvider Passwords

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 why you’re maintaining an app written in the style of 2005. I know, but it happens occasionally frequently.

Don’t ask me why your ASP.NET app is using the MembershipProvider system. I know it’s a poor match for the needs of almost all apps and encourages security holes by design.

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.

(more…)

Rebuilding SXSW

Rebuilding SXSW

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 2010 and began attending the Interactive portion in an official capacity for Art & Logic in 2013. As a company, we’ve attended, exhibited at the trade show, and organized panel discussions on technology topics. And every single year since we’ve had a presence, the conference has expanded. More people, more crowds, more lines, more presenters, more panels, more sponsors, and more chaos. (more…)

Exploring GraphQL on iOS

Exploring GraphQL on iOS

While researching mobile backend as a service (mBaaS) offerings for a client project, I came across Graphcool which provides a GraphQL backend for mobile or web apps. 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. To get a better feel for the tech and tools involved, I decided to update the ALAirports sample project that I’ve used in a few blog posts to use Graphcool as a backend for the airport data. (more…)

What We Saw at SXSW 2017

What We Saw at SXSW 2017

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 development, AR/VR, and how technology companies can give back to the community.

Medical software and wearables both covered issues relating to the use of data, with several discussions focusing on making the best use of the vast amounts of data that are now collected. Over at the wearables sessions, makers concentrated more on the accuracy of the limited types of data collected and shared their concerns about keeping users engaged with their wearable devices for more than three months. (more…)

Cython Extension PBJ

Cython Extension PBJ

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. (more…)

Mentoring Future Engineers

Mentoring Future Engineers

I am privileged to say that over the last four years, I mentored a group of high school students wanting to experience STEM in a hands on way. The mission: create a robot in six weeks. The challenge: complete on time, under budget, and with a team who may not know one another. Sound familiar? (more…)

Art & Logic at SXSW Interactive 2017

Art & Logic at SXSW Interactive 2017

Once again, Art & Logic will have representatives from our development, recruiting, and sales/marketing groups attending the South by Southwest Interactive Festival in Austin, Texas from March 10th – 14th. We’d love to meet with anyone there who’s interested in talking about a software development project or opportunities for software developers & designers at A&L.

Please send me an email at bgporter@artandlogic.com so we can coordinate a meeting amidst the madness of SXSW.

(Also, please keep me in your thoughts, as my airline keeps sending me text messages warning that a winter storm arriving overnight threatens massive delays and cancellations of flights tomorrow, hopefully not including my flight to Austin).

 

Architectural History and the Value of Maintaining a Clear, Consistent Database

Architectural History and the Value of Maintaining a Clear, Consistent Database

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 cathedrals with lots of pointed arches, a high-vaulted ceiling, and lots of lovely stained glass windows. Those on the south side of the building would take on a beautiful luminescence whenever the late-morning sun would break through the usual LA gray haze.

Interesting bit about those stained glass windows, though; as they march from the front of the building to the back, suddenly, near the end of the structure, they suddenly stop being effervescent, glowing yellows, blues, reds, and greens, and become dull, uninteresting gray concrete. It’s hard to see why the builders would suddenly give up on one of the most interesting and beautiful features of the architecture. Until, that is, you learn one of those interesting bits of knowledge. It seems that the building was constructed in the 1920s, the roaring era of prosperity – albeit ever so shallow – when money flowed freely and everything was possible. In this climate, nothing seemed too good to adorn this building with. And then, 1929 happened. In that new climate, suddenly concrete seemed just fine. The story of the stained glass windows doesn’t make sense unless you know the story of what was going on in the broader economic life of the nation and the world. (more…)

A Quick Core Data Stack with NSPersistentContainer

A Quick Core Data Stack with NSPersistentContainer

One of the longstanding criticisms of Core Data is how much code it takes to setup the infamous Core Data stack in your iOS or macOS app just so that you can create some instances of entities and save them to a persistent store. The frustration has spawned a number of blog posts outlining the latest, greatest way to setup your stack. Not long after the blog posts came the open source projects aimed at reducing the amount of boilerplate you’ve got to write and helping you avoid common mistakes.

With the release of iOS 10 and macOS 10.12 in many cases you can now forget about the blog posts and third party dependencies thanks to NSPersistentContainer. This one is a no-brainer and it would have been nice if Apple had included it back in the days of iOS 3.0 when they introduced Core Data.

(more…)

Contact Us