It’s a simple mechanic to decompose emails into valuable parts, like some markup (to push emails directly into internal systems), create file attachments and extract inline images.
Flow is pretty simple, but we have a couple of components.
We need something to “receive” emails. The easiest way is to use Amazon SES or mailgun or… something else. There are a couple of SASS solutions for that. Next step is to be notified when the email arrives, so we don’t have overhead with checking email every couple of minutes We have to “decompose” – decode email from it’s raw format to text, and attachments.
We are using a bug tracking system, like most software development companies. Creating an issue is quite simple. Open bug tracking system, fill some inputs, upload attachments – done. The issue is created. Sometimes an issue is described with multiple attachments (screenshots). A bug tracking system allows us to embed images into a description. All issues come from users in the form of an email.
In the ancient times, when I was coding mostly in Pascal – size did matter. People were using RAR to shave couple kilobytes from archives, and having 2mb executable was better then having 4mb executable file. In that beautiful time we used UPX – I wasn’t aware that this project is still alive, and works nicely with binaries create bo go lang.
Ultimate Packer for eXecutables Copyright (C) 1996 - 2017 UPX 3.
The goal was to read image dimensions from an image file. Pretty easy task with standard “
” library and DecodeConfig. The tricky part was – the file wasn’t completed – I had only the beginning of the file. I tried to decode headers by myself. I didn’t find an exact recipe in GO and found many people looking for correct answers in many languages.
If you are looking for simple way to upgrade yourt golang installation on EC2, you can experience error like that:
Error: Package: golang-bin-1.5.1-0.el6.x86_64 (epel) Requires: go = 1.5.1-0.el6 Installing: golang-1.4.2-3.19.amzn1.x86_64 (amzn-main) Because on amzn-main repo, there is an older version of golang – on epel, there is a newer. Nothing simplier just disable for a momement amzn-main repo, and install golang compeltly from epel.
sudo yum --disablerepo=amzn-main --enablerepo=epel install golang-bin