In his short story Thin Cities 3, author Italo Calvino describes a city reduced to its plumbing — a network of pipes, stripped of the streets, walls, and floors that would ordinarily conceal them. I like to picture this “thin city” when I’m testing software; diving beneath the superficial layers to probe the essential connections that keep information and experiences flowing.
User-friendly software doesn’t happen by accident — the best products are designed intentionally, thoughtfully, and thoroughly before implementation begins. However, that doesn’t mean that developers shouldn’t play a role in the early stages of a project. In this post, I’ll talk about why you should bring your developers into design discussions and reviews, and recap a successful design-development collaboration on one of Grio’s recent client projects.
Continuous integration (CI) and continuous delivery (CD) have significantly improved both my productivity as a developer and my team’s ability to execute smoothly and efficiently on a variety of projects. In this post, I’ll explain how CI and CD work, talk a bit about the benefits of these practices, and walk through an example that illustrates how to set up your own CI/CD systems.
The word “quality” first appeared in the English language around 1300. Technically, “quality” is a neutral term, referring to the character or nature — good, bad, or otherwise — of a person, place, or thing. However, when we use this word today, we’re often implicitly pointing to high quality. Most modern definitions of “quality” indicate that the term is connected to attributes like lack of risk, ease of trust, superiority to competition, and high value.
Introduction to Part 4
In Part 1, Part 2 , and Part 3 of this series, we covered the basics of custom views, created a simple custom PieChart class, and added state handling and custom methods to expand and collapse the pie chart in response to motion events.
In this fourth and final post, we’ll improve our state transitions with a bit of property animation.
Over the past two months, I’ve been working on learning the Phoenix LiveView framework by building a complex multiplayer online game. In this post, I’ll talk a bit about the benefits of this framework, and give a quick overview of the game architecture and processes I’ve developed.
Introduction to Part 2
In Part 1 of this series, we covered the basics of custom views, including: deciding if a custom view is the best solution to your problem, the three basic methods for creating a custom view, and the required constructors you’ll need to implement when subclassing the View class.
Consumer retail banking is what most of us know simply as banking, or managing our money in a larger sense — the process by which individual consumers use bank branches or services to open accounts, take out loans, set up credit and debit cards, deposit checks, etc. The consumer retail banking industry is highly regulated and has been historically resistant to innovation, but both governments and financial technology companies have recently begun to push forward some interesting and exciting changes — several of which I’ll cover in this post.
With so much of our personal information stored online, and with security breaches frequently in the news, password security is a big concern for Internet users and developers. In this post, I’ll talk a bit about the different ways passwords can be hacked, the concept of entropy in password security, steps you can take to make your websites or accounts more secure, and how we might expect password technology to evolve over the next few years.