Idempotency is something you might not see every day, but it is an important concept, especially when you are taking payments.

Heads up, we’ve moved! If you’d like to continue keeping up with the latest technical content from Square please visit us at our new home https://developer.squareup.com/blog

As a developer, you are always wanting things to go smoothly, but in the world of REST APIs, that isn’t always the case. Client failures, networking errors, or just poorly written code can all spell trouble for an API call (and your end user experience). Luckily, idempotency is here to help! …


Learn about some of the new tools that can make end-to-end testing easier & more accurate, as well as automate anything you can do in a web browser!

Heads up, we’ve moved! If you’d like to continue keeping up with the latest technical content from Square please visit us at our new home https://developer.squareup.com/blog

Websites have become more complicated than ever. Instead of a single html page, modern sites are often composed of multiple component files that are packaged together and then optimized. When a site loads these files, it makes dozens of different asynchronous requests to complete the page with more information, in addition to all of the ads and analytics scripts that are loaded and running as well. We want all of these different moving parts…


Learn how you can leverage some new API features when syncing your customers with Square’s APIs.

Heads up, we’ve moved! If you’d like to continue keeping up with the latest technical content from Square please visit us at our new home https://developer.squareup.com/blog

Square customer management can usually meet all your needs, but at times you might need to keep your customer directory in sync with another customer database or order management system. Luckily some new changes to our APIs make that easier than ever.

Overview

In this post we will cover the use case of nightly syncs between a customer directory in Square and a different database. We’ll use a local SQLite database as the other database…


I take my first steps with TensorFlow.js and solve one of the most basic of problems.

Fresh off of the OpenAI Retro contest, I wanted to keep exploring more AI topics. Somebody told me that the best way to learn was reproducing other people’s papers, but not wanting to learn any more Python than I had to, I decided to try to tackle some existing work with TensorFlow.js.

I first tried to run with a GAN, but I realized it might be better to crawl first since I am coming from a pretty fresh background. I was able to find a series of basic TensorFlow examples that I felt would let me ladder up my TensorFlow.js…


All the improvements I was able to make, and the best AI agent team Bobcats 🐯 submitted at the OpenAI Retro Contest end.

With my limited schedule, I focused in trying to get the most from the jerk agent to see if I could get a decent score. I was able to make some meaningful code changes, and do some fine tuning to get a ~15% improvement my submission of the original baseline JERK agent. (although in all reality that might be well with in the variance of learning with a randomization based agent 😉)

Here is a list of changes with the associated scores from submitting them.

  • v11: Some of the first changes I made was experimenting with the “when to exploit”…


Learn how to use Vue with the Square payment form!

Heads up, we’ve moved! If you’d like to continue keeping up with the latest technical content from Square please visit us at our new home https://developer.squareup.com/blog

Vue.js is a popular choice when it comes to front-end JavaScript frameworks. It has handy features like data binding and easy rendering control out of the box, all while having the performance and extensibility you need. But what if you want to take some payments? In this post we’ll walk through the highlights of converting an existing e-commerce website to use Vue.js and adding payment capabilities with a new component wrapping Square’s Payment Form.


My first foray into “real” machine learning didn’t go so well. Days 38 - 53 of the OpenAI Retro Contest.

I got pretty hung up on the idea of looking at the level like a maze, and exploring it as a means of getting the best score. Without being able to easily locate sonic in the map, I had to think of something else a little more robust.

The basic idea was to associate the reward from a move to the screen that the move was made on. That way it should be possible to have a mapping of the best move at any one point in the game based on the last step’s screen data. To do that my…


Learn how to create a bot to talk to your customers and help make sales!

Heads up, we’ve moved! If you’d like to continue keeping up with the latest technical content from Square please visit us at our new home https://developer.squareup.com/blog

Try it out! Text (479)-888–5188 to talk to the bot 📲

From voice commands to chatbots, consumers are engaging with (and buying) things in totally new ways. But this isn’t something only for multi-billion dollar tech companies. New tools make chatbots achievable for even the smallest developer, so anyone can leverage this to provide unique buying and ordering experiences. Let’s create a basic conversation-based purchasing experience over SMS that you can use as a template for your own message based buying experience.

💡 The idea 💡

Our initial goal…


Days 26–29 of the OpenAI Retro Contest

With my new deep understanding of the jerk agent, I had a ton of ideas of new agents to try out, but making small code changes and testing them was getting tiring with all the little steps and room for errors, so I decided to spend some time focusing on my tooling.

How did sonic get so high up?

Where Does Sonic spend his time?

I was playing around agents that mapped out the level using Sonic’s position and the pixel data for the observer, when my hopes were destroyed when I remembered that your agents do not get the info variable in the contest environment. I decided that my work could still…


Days 22–25 of the OpenAI Retro Contest

Without a great idea of where to go next, I took a stab at tuning some of the hyper parameters for the PPO2 baseline agent. It didn’t go so well:

So I decided to go back to where I last had a good grip of what was going on, the jerk agent, and restart my learning journey there.

When I walked through the PPO code I felt like I learned quite a bit, so I wanted to do a similar exercise with the jerk agent. …

Tristan Sokol

Software Lead at NorthPoint Development. When I’m not helping automate a real estate company, I’m growing succulents in my back yard. https://tristansokol.com/

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store