Articles

Defining Django Practices


Defining Django Practices With any language or framework you want to follow the best practices established in that community to save yourself trouble down the road. When you do have flexibility you have to make decisions and take responsibility for the opinions you express. Over time you will refine the particulars of your work based on the nuances in the type of projects you work on. In this context, we want to generally use best practices, but also simply define our practices so they can be gradually improved and adapted over time.

READ MORE


Developing an Embedded Job Queue With Golang - Part 2


Building a Factory In the article, Developing an Embedded Job Queue With Golang - Part 1, we briefly reviewed the excellent concurrency primitives Go offers, then prototyped an example job queue. We’re going to create a package for reel and other applications to use, such that they can queue work to be done by workers and eventually specify when the work should be done, check on the status of a job, and send commands to workers through the dispatcher.

READ MORE


Developing an Embedded Job Queue With Golang - Part 1


Task Queues In the article, Using a Job Queue with Golang and Reel, we added a channel for handling rewind requests through a simple job package. We’d like to create a general library for other programs to use which supports the following features: 1. Enqueue jobs to be executed. 2. Specify an arbitrary number of workers. 3. Handle processing functions by workers. 4. Communicate status of jobs through the dispatcher.

READ MORE


Using a Job Queue with Golang and Reel


In the article, Restoring App State for Demos and Development with Reel, we introduced reel, which among other features allows us to: Restore an application’s database state to a configurable default. Provide a web interface for interactive resets for use with vagrant. In the further work section, we noted the next steps included: Refactoring reel to use ls-governor Make sure API requests to rewind an app state are sent into a job queue, so we get a 200 OK response right away.

READ MORE


Restoring App State for Demos and Development with Reel


If you provide a demo site for an application, you might have a cron job setup to periodically restore the application’s state to some default. This allows prospects to try out your service by making changes that are periodically reset to a default state. You may also find yourself with a similar workflow to us on some projects, where we have a feature branch that requires us to periodically load a version of the database, so we can test migrations and our feature before the feature is merged into production.

READ MORE


Organizing Projects with Lakespace


When researching, designing and developing software, our goal is to organize and reduce complexity. When you’re working on more than one project, it’s nice to be able to save the state of your workflow when you need to switch context to another project. Lakespace was designed for this purpose, but can be utilized for broader workspace goals (running certain commands in terminal windows, resizing your browser and terminal windows, moving them to the appropriate desktop - for example.

READ MORE


Building an API Framework in Go


In the article Building a Form Validation and Processing API in Go, we defined how a microservice API can be created to handle validating and processing form data. In the further work section we noted: “We can generalize our manager service and have it handle the boiler plate work…” The goal being that we want to simplify the code in zefram around some conventions. As we continue to express our opinion in code, we’re making decisions that lead toward a framework and set of conventions we’ll use in other projects.

READ MORE


Building a Form Validation and Processing API in Go


At Lakesite.Net, we love using JAMStack (Javascript APIs and Markup) because it simplifies the developer experience, allows for a performant and scalable site, at an overall lower cost. Business web sites typically require marketing “who we are,” “what we do,” “why should you pay us to do it?” style information. This doesn’t require any programming, but does require markup, style and content. Removing complexity is desirable. However, you’ll likely want to process contact forms.

READ MORE


Create a Golang Web Service


If you use Golang to create performant web APIs, you will find yourself adding the same handlers for your new projects. Don’t forget to handle requests for favicon.ico. You’ll probably want to handle generic requests for templated page content, so you don’t wind up with a lot of routes. Most developers create health checks for their service, for monitoring and metrics. You may even needed advanced handlers in services like proxying requests and accepting API keys.

READ MORE


Revamp


The focus for 2019 is to ensure that we’re not only using open source software in all our solutions, but we’re deeply committed to ensuring all our products are fully open source. In some cases this means using the GNU GPL license, where we provide a service that you pay for instead of the software. In this case the risk of the service or business failing is managed by ensuring your data and the software you use is free.

READ MORE