This is my personal collection of modern PHP Tooling that I setup for all of my Laravel projects.
- Pint - Formatting
- Install Laravel Pint
- Setup strict config pint.json
- Setup PHPStorm File Watcher for Pint
- PeckPHP - Fix Typos
- Install PeckPHP
add forwarding interface: | |
netsh interface portproxy add v4tov4 listenport={srcPort} listenaddress={srcIp} connectport={DesPort} connectaddress={DesIp} | |
show interface: | |
netsh interface portproxy show v4tov4 | |
delete interface: | |
netsh interface portproxy delete v4tov4 listenport={srcPort} listenaddress={srcIp} | |
----------------------------- |
This is my personal collection of modern PHP Tooling that I setup for all of my Laravel projects.
[[+Home]] %% tags:: #MOC %% | |
# Meetings MOC | |
Meetings are timestamped events with other people, where information is exchanged and collected. Meeting notes are intrinsically ephemeral. They're stored in a separate Space than other Umami notes (`Timestamps/Meetings`) and rarely reviewed. If there's information in a meeting that needs to be accessed later, it should be moved into a more evergreen note in the Umami folder. | |
**Template:** [[Template, Meeting]] | |
```meta-bind-button | |
label: New Meeting | |
hidden: false |
--- | |
created: <% tp.file.creation_date() %> | |
--- | |
tags:: [[+Daily Notes]] | |
# <% moment(tp.file.title,'YYYY-MM-DD').format("dddd, MMMM DD, YYYY") %> | |
<< [[Timestamps/<% tp.date.now("YYYY", -1) %>/<% tp.date.now("MM-MMMM", -1) %>/<% tp.date.now("YYYY-MM-DD-dddd", -1) %>|Yesterday]] | [[Timestamps/<% tp.date.now("YYYY", 1) %>/<% tp.date.now("MM-MMMM", 1) %>/<% tp.date.now("YYYY-MM-DD-dddd", 1) %>|Tomorrow]] >> | |
--- |
#!/bin/bash | |
# Assume the role using locally configured AWS credentials, then pass the assumed role to the container via environment | |
# variables! | |
ASSUMED_ROLE=$(aws sts assume-role \ | |
--role-arn "arn:aws:iam::000000000000:role/our-role-to-assume" \ | |
--role-session-name "session_name" \ | |
--output text) |
People
![]() :bowtie: |
π :smile: |
π :laughing: |
---|---|---|
π :blush: |
π :smiley: |
:relaxed: |
π :smirk: |
π :heart_eyes: |
π :kissing_heart: |
π :kissing_closed_eyes: |
π³ :flushed: |
π :relieved: |
π :satisfied: |
π :grin: |
π :wink: |
π :stuck_out_tongue_winking_eye: |
π :stuck_out_tongue_closed_eyes: |
π :grinning: |
π :kissing: |
π :kissing_smiling_eyes: |
π :stuck_out_tongue: |
These are NOT product / license keys that are valid for Windows activation.
These keys only select the edition of Windows to install during setup, but they do not activate or license the installation.
{ | |
"description": "Maps button 5 and 4 as modifiers for button 1 and 2 to switch spaces and desktops", | |
"manipulators": [ | |
{ | |
"type": "basic", | |
"from": { | |
"pointing_button": "button4", | |
"modifiers": { | |
"mandatory": [], | |
"optional": [ |
// Inspired in http://www.johneday.com/422/time-based-gmail-filters-with-google-apps-script | |
// Deletes old marked conversations | |
function cleanUp() { | |
var delayDays = 5; // # of days before messages are moved to trash | |
var label = "Delete me"; // label to identify the messages | |
var maxDate = new Date(Date.now() - delayDays * 24 * 60 * 60 * 1000); | |
var userLabel = GmailApp.getUserLabelByName(label); | |
if (!userLabel) { | |
return; |