Blog / Howto

Display a message to your users while waiting for a file download with jQuery File Download

November 6, 2016

jQuery Filedownload EZ Exporter Shopify App

Our Shopify app, EZ Exporter, provides an option for users to download reports on demand from the app's main page. Since it could take some time to generate the report in the background depending on the data, we needed a way to let the user know that the task is currently in progress so they don't reload the page or do something else thinking that nothing is happening. We also wanted to block ...

How to delete files older than x hours in Ubuntu

November 5, 2016

One of my apps, YouTube Audio Downloader, has been gaining quite a bit of traffic lately. It's a website that lets you convert YouTube videos to MP3/M4A audio. The conversion happens completely on my server and a download link is provided to the user when finished. The files need to be stored temporarily on my server so the users can download them.

Initially, I just had a daily cron job that runs at ...

Setting up an FTP server on Ubuntu using vsftpd and connecting to it using Python's ftplib module

October 13, 2016

I know what you're thinking, "Who in the world still uses FTP these days?". If you were born after year 2000, you may not even have heard of FTP before.

FTP (File Transfer Protocol) was a popular way to share files back in the AOL days. People will set up these FTP servers where you can upload and download files. I remember spending so much time in chat rooms during my teenage years asking ...

Automatically generating and renewing Let's Encrypt SSL certificates with the certbot client and Ansible

August 11, 2016

I just finished updating my ansible-django-stack project and added tasks to automatically issue a Let's Encrypt SSL certificate and set up a cron job to auto-renew the certificate.

We're now using it for all our Shopify apps which are built in Django. Let's Encrypt certificates are only valid for 90 days, so if you have a bunch of web apps like we do and have more planned in the future, automating this ...

Generating free trusted SSL certificates with Let's Encrypt

July 19, 2016

I've always hated the idea of having to pay for SSL certificates. You could always generate them yourself for free with OpenSSL and they're just as secure as the paid ones. But if you're running a public-facing website, you're pretty much stuck and have to pay for one if you don't want your visitors seeing security warnings in their browser. At least that was the case until Let's Encrypt ...

SSH tunneling and dealing with webhooks that require a trusted SSL certificate when developing locally with Django

July 15, 2016

I'm currently working on version 2 of our Shopify app where we'll be adding custom Slack slash commands. When adding slash commands to a custom app, Slack requires the receiving server to have a trusted (not self-signed) SSL certificate.

Normally, what we do is simply create a reverse SSH tunnel to our stage server which is publicly accessible to receive webhooks, for example:

ssh root@stage.example.com -R 8000:localhost:80

The ...

Older