Skip to content

Instantly share code, notes, and snippets.

View gander's full-sized avatar
🏠
It’s Not a Bug, It’s a Feature.

Adam Gąsowski gander

🏠
It’s Not a Bug, It’s a Feature.
  • Warsaw, Poland
  • 16:35 (UTC +02:00)
View GitHub Profile
@gander
gander / TerribleDateFixer.php
Last active December 3, 2020 11:59
Scary code showing how not to code. Found in production
<?php
class DateFixer {
public function fix(string $date): string {
$time = new DateTime($date);
$time->modify('+3 days');
return $time->format('Y-m-d');
}
}
@gander
gander / AutoLinkerForGistCSV.js
Last active December 2, 2020 07:33
convert text into links in table cells
jQuery(() =>
jQuery('td').filter(function() {
return jQuery(this).text().match(/^https?:\/\/.+/);
}).each(function() {
const $this = jQuery(this);
$this.html(jQuery('<a>', {
href: $this.text(),
rel: 'noopener noreferrer',
target: '_blank'
}).text($this.text()));
@gander
gander / shortcuts.md
Last active July 30, 2020 16:33
JetBrains Tips and Tricks
C:\Windows\System32\DisplaySwitch.exe /internal
C:\Windows\System32\DisplaySwitch.exe /external
@gander
gander / github-watch-releases.ts
Created December 2, 2020 23:33
Use playwright to enable release notifications in all starred repositories
import {chromium as browser, ElementHandle, Page} from "playwright";
import {default as PQueue} from "p-queue"
const username: string = 'gander'
const links = new Set;
let nextPage: string = '';
(async () => {
const pages = new PQueue({concurrency: 7})
@gander
gander / query-collection-snippet.php
Last active November 5, 2021 09:58
Laravel when Closure $callback snippets
<?php
$callback = function () {
};
collect()->when($callback, static function (\Illuminate\Support\Collection $collection, \Closure $callback) {
return \Illuminate\Support\Collection::wrap($callback($collection));
}); // Same as \DB::query()->get(), Model::query()->get()
\DB::query()->when($callback, static function (\Illuminate\Database\Query\Builder $query, \Closure $callback) {
@gander
gander / logger.php
Created February 3, 2022 12:23
google-cloud-ops-agent logging
<?php
$formatter = new \Monolog\Formatter\JsonFormatter();
$handler = new \Monolog\Handler\StreamHandler('/www/logs/agent.log');
$handler->setFormatter($formatter);
$logger = new \Monolog\Logger('agent', [$handler]);
$handler->pushProcessor(function (array $record) {
return [
'timestamp' => ['seconds' => time(), 'nanos' => 0],
'logging.googleapis.com/severity' => 'ALERT',
'logging.googleapis.com/labels' => ['foo' => 'bar'],
// ==UserScript==
// @name falloutcheats.com - Vue Petite - Init
// @namespace Violentmonkey Scripts
// @match https://falloutcheats.com/perks
// @grant none
// @version 1.0
// ==/UserScript==
;((script, target) => {
script.setAttribute('src', 'https://unpkg.com/petite-vue');
@gander
gander / hlcomic.js
Last active December 8, 2022 13:04
const axios = require("axios");
const fs = require("fs");
async function main() {
const positions = [...Array(206).keys()].map(k => k.toString().padStart(3, '0'));
for (const position of positions) {
await download(position).catch(console.error);
}
// ==UserScript==
// @name Redmine: Safe Time Entry
// @include https://*/issues/*
// @include https://*/time_entries/*
// ==/UserScript==
jQuery(document).on(
"input change click focus blur",
"#time_entry_hours",
function () {