Skip to content

Instantly share code, notes, and snippets.

View heymarkreeves's full-sized avatar

Mark Reeves heymarkreeves

View GitHub Profile
{
"name": "craftcms/craft",
"description": "Craft CMS",
"keywords": [
"craft",
"cms",
"craftcms",
"project"
],
"license": "MIT",

Installation Steps

  • type.xml location is ambiguous. (it's in ./usr/local/etc/ImageMagick-7/type.xml, which updates a bunch of other instances)
  • There's no documented step to run yarn install before running the database migrations, which throw errors without some JS files in place in app/assets.
  • Imagick now installs version 7; docs contain a reference to 6.

Installation Notes

I had homebrew, RVM, and Ruby 2.7.0 installed already. Postgres server, Redis server, Mailhog were all new installs. I updated Ruby to 3.0.0. All of those went fine.

// feSource/modules/services/inputUtils.js
export default class inputUtils {
// if we need any other params, add them to the constructor
constructor(el) {
this.el = el;
// if we need anything to fire at the document level, do it here:
document.addEventListener('keyup', function (e) {
const keyName = e.key;
<?php
/**
* @link https://clearbold.com
*/
namespace temp\temp\fields;
use Craft;
use craft\base\ElementInterface;
use craft\base\Field;

systemd @ Arcustech

User level systemd setup - for things like laravel queue workers.

systemd is mainly used to manage services on modern linux distributions, but it also allows non-root users to manage services running under their own account. This makes systemd a great alternative to services like supervisord as it is able to detect crashes and automatically restarts the service.

Configuring a user unit

(1) The directory structure that holds unit files is similar to the systemwide configuration, but is located in a user's home directory:

Web Technology for Progressive Candidates

Securing Your Campaign and Personal Life Online

The more aware of privacy and security concerns you are, and the more active you are in protecting your privacy and security online, the better prepared you'll be to look out for your constituents' privacy and data rights.

Read What I Learned Trying To Secure Congressional Campaigns, by Maciej Cegłowski.

Take security seriously, whether it's your own personal data, your campaign's data, or data belonging to your team or constituents.

<svg class="visually-hidden" width="100%" height="100%" viewBox="0 0 100 100" preserveAspectRatio="none">
<defs>
<clipPath id="clip-path-header-hero" width="100%" height="100%" clipPathUnits="objectBoundingBox">
<path d="M.9406,.4412C1.0264,.7808,.778,.9934,.5232,.9856,.2524,.977-.172,.6024,.172,.3844,.38,.25,.243,.0264,.4716,.0158,.6314,.0084,.8736,.1766,.9406,.4412Z" />
</clipPath>
</defs>
</svg>
@charset "UTF-8";
@import "fonts";
@import "mixins";
@import "vars";
/*
* g- prefix: Global elements
* m- prefix: Modular elements
* s- prefix: Sitewide rules/styles
<!DOCTYPE html>
<html lang="{{ craft.app.language }}">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="description" content="">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="referrer" content="origin-when-cross-origin" />
<title>{% if entry is defined %}{{ entry.title }} &bull; {% endif %}{{ siteName }}</title>
background: linear-gradient(270deg, #ff0000, #ff8800, #ffff00, #00ff00, #0000ff, #8888ff, #8800ff);
background-size: 1400% 1400%;
-webkit-animation: AnimationName 30s ease infinite;
-moz-animation: AnimationName 30s ease infinite;
-o-animation: AnimationName 30s ease infinite;
animation: AnimationName 30s ease infinite;
@-webkit-keyframes AnimationName {
0%{background-position:0% 50%}
50%{background-position:100% 50%}
100%{background-position:0% 50%}