Workaday Reading

Regexes vs Combinatorial Parsing

“Recently, I’ve been working on a music app that needs to get a musical sequence (like a melody) from the server to the client. To do this, we use a format called ABC. (You can read about how ABC music notation works here.”


read »

Workaday Reading

In defense of the modern web

“I expect I’ll annoy everyone with this post: the anti-JavaScript crusaders, justly aghast at how much of the stuff we slather onto modern websites; the people arguing the web is a broken platform for interactive applications anyway and we should start over; React users; the old guard with their arti”


read »

Workaday Reading

Second-guessing the modern web

“The emerging norm for web development is to build a React single-page application, with server rendering. The two key elements of this architecture are something like: This idea has really swept the internet.”


read »

Workaday Reading

CSS for internationalisation

“I’ve come across people who do not think that CSS is related to internationalisation at all, but if you think about it, internationalisation is more than translating the content on your site into multiple languages and calling it a day.”


read »

Workaday Reading

env()

“The env() CSS function can be used to insert the value of a user agent-defined environment variable into your CSS, in a similar fashion to the var() function and custom properties.”


read »

Workaday Reading

Cloud Design Patterns

“These design patterns are useful for building reliable, scalable, secure applications in the cloud. Each pattern describes the problem that the pattern addresses, considerations for applying the pattern, and an example based on Microsoft Azure.”


read »

Git – suboptimal pack – out of memory – How to fix

Screenshot of "suboptimal pack - out of memory" warning

I was cloning a remote repo to set up a local install and got a suboptimal pack - out of memory notice quickly followed by the fatal failure of the clone. Man the ramparts! To the google! This was helpful: https://stackoverflow.com/a/4829883/9661226 By default pack.windowMemory and pack.packSizeLimit are set to 0 (which means unlimited). Apparently, and … Continued

Enabling mod_headers and CORS with Apache2

I’ve been working on a project and wanted to test out accessing media from a different domain using CORS. There’s two steps to this. Make sure you have Apache mod_headers enabled. Use apachectl -M on the command line interface and review the results. It should include something like this: headers_module (shared). If not then run … Continued

Workaday Reading

Same-origin policy

“The same-origin policy is a critical security mechanism that restricts how a document or script loaded from one origin can interact with a resource from another origin. It helps to isolate potentially malicious documents, reducing possible attack vectors.”


read »

AWS volume resizing

AWS volume resizing

I recently resized our dev and production environment AWS EC2 volumes and these are some notes I made while doing it. It's specific to a LAMP stack but the process could be generally useful too. Posting here for posterities sake and if it's helpful for anyone else. Certainly this is not a full and exhaustive list of todo's and possibilities but it should give you a good idea of the process.

Workaday Reading

Please stop recommending Git Flow!

“Git-flow is a branching and merging methodology popularized by this blog post, entitled “A Successful Git branching model”. In the last ten years, countless teams have been snookered by the headline and dare I say lied to.”


read »

Workaday Reading

Paging

“In computer operating systems, paging is a memory management scheme by which a computer stores and retrieves data from secondary storage[a] for use in main memory.[1] In this scheme, the operating system retrieves data from secondary storage in same-size blocks called pages.”


read »

Workaday Reading

How to Protect Against Slow HTTP Attacks

“Slow HTTP attacks are denial-of-service (DoS) attacks in which the attacker sends HTTP requests in pieces slowly, one at a time to a Web server. If an HTTP request is not complete, or if the transfer rate is very low, the server keeps its resources busy waiting for the rest of the data.”


read »