Skip to content

Instantly share code, notes, and snippets.

View jongio's full-sized avatar

Jon Gallant jongio

View GitHub Profile
// Originally from: https://community.powerbi.com/t5/Community-Blog/Aggregating-Duration-Time/ba-p/22486
Duration =
// Duration formatting
// * @konstatinos 1/25/2016
// * Given a number of seconds, returns a format of "hh:mm:ss"
//
// We start with a duration in number of seconds
VAR Duration = [Change this value to the name of your column that contains your seconds value]
// There are 3,600 seconds in an hour
VAR Hours =
@jongio
jongio / PhotoOrganizer.ps1
Created March 3, 2021 15:34
A PowerShell script to organize photos by date taken
Param(
[string]$source,
[string]$dest,
[string]$format = "yyyy/yyyy_MM/yyyy_MM_dd"
)
$shell = New-Object -ComObject Shell.Application
function Get-File-Date {
[CmdletBinding()]
@jongio
jongio / azure-rest-apis-with-postman-pre-request-script.js
Created February 28, 2021 22:43
Postman Collection Bearer Token Pre-Request Script
if (!pm.collectionVariables.get("bearerToken") || Date.now() > new Date(pm.collectionVariables.get("bearerTokenExpiresOn") * 1000)) {
pm.sendRequest({
url: 'https://login.microsoftonline.com/' + pm.collectionVariables.get("tenantId") + '/oauth2/token',
method: 'POST',
header: 'Content-Type: application/x-www-form-urlencoded',
body: {
mode: 'urlencoded',
urlencoded: [
{ key: "grant_type", value: "client_credentials", disabled: false },
{ key: "client_id", value: pm.collectionVariables.get("clientId"), disabled: false },
pm.sendRequest({
url: 'https://login.microsoftonline.com/' + pm.environment.get("tenantId") + '/oauth2/token',
method: 'POST',
header: 'Content-Type: application/x-www-form-urlencoded',
body: {
mode: 'urlencoded',
urlencoded: [
{key: "grant_type", value: "client_credentials", disabled: false},
{key: "client_id", value: pm.environment.get("clientId"), disabled: false},
{key: "client_secret", value: pm.environment.get("clientSecret"), disabled: false},
@jongio
jongio / delete-yelp-reviews.js
Created April 2, 2022 02:08
How to delete yelp reviews with JavaScript in Browser Tools
// 1. Go to https://www.yelp.com/user_details_reviews_self
// 2. Open dev tools F12
// 3. Copy and paste this code into Console and hit enter.
// 4. This will delete the first review. You'll need to repeat #3 for every review.
$('.icon--18-trash').each(function(){$( this ).click();setTimeout(function(){$('input[value=reason_other]').click();setTimeout(function(){$('#js-delete-button').click();},500);},500);});
@jongio
jongio / azure-iot-hub-device-twin-rest-apis-postman-newman.js
Last active November 5, 2021 08:50
Azure IoT Hub SAS Token JavaScript CryptoJS
// See this doc for details: https://docs.microsoft.com/en-us/azure/iot-hub/iot-hub-devguide-security
var resourceUri = encodeURIComponent(postman.getGlobalVariable("hubName") + '.azure-devices.net'); // The resource uri
var expiry = Math.ceil((Date.now() / 1000) + postman.getGlobalVariable("expiresInMins") * 60); // Expire the token 60 minutes from now
var uriExpiry = resourceUri + '\n' + expiry; // this is the string format to gen signature from
var decodedKey = CryptoJS.enc.Base64.parse(postman.getGlobalVariable("signingKey")); // The SHA256 key is the Base64 decoded version of the IoT Hub key
var signature = CryptoJS.HmacSHA256(uriExpiry, decodedKey); // The signature generated from the decodedKey
var encodedUri = encodeURIComponent(CryptoJS.enc.Base64.stringify(signature)); // The url encoded version of the Base64 signature
// Construct authorization string (shared access signature)
var token = "SharedAccessSignature sr=" + resourceUri + "&sig=" + encodedUri + "&se=" + expiry;
@jongio
jongio / ssh-info-docker-vm-windows.sh
Last active November 3, 2021 07:36
It's not technically SSH, but here's how you can get root access to the VM that runs Docker on your Windows host.
docker run --privileged -it -v /var/run/docker.sock:/var/run/docker.sock jongallant/ubuntu-docker-client
docker run --net=host --ipc=host --uts=host --pid=host -it --security-opt=seccomp=unconfined --privileged --rm -v /:/host alpine /bin/sh
chroot /host
@jongio
jongio / azure-rest-apis-with-insomnia-workspace.json
Last active February 26, 2021 15:55
Azure REST APIs with Insomnia Workspace
{
"_type":"export",
"__export_format":4,
"__export_date":"2021-02-26T15:46:44.984Z",
"__export_source":"insomnia.desktop.app:v2020.5.2",
"resources":[
{
"_id":"req_7bbaa70817c34e55bf70f64a26c0eff2",
"parentId":"fld_e3ddc403c123493a9bdd56aa59192655",
"modified":1614354317200,
class MyTokenCredential implements coreHttp.TokenCredential {
public token: string;
public expiresOn: number;
constructor(token: string, expiresOn?: Date) {
this.token = token;
this.expiresOn = expiresOn
? expiresOn.getTime()
@jongio
jongio / PowerBIGitHubRESTAPI.pq
Last active July 15, 2020 22:17
Power BI Query - GitHub REST API
let
BaseUrl = "https://api.github.com/search/issues",
Query = "q=azsdke2e",
Token = "enter your token here",
ItemsPerPage = 100,
Delay = 2,
GetItems = (PageNumber, ItemsPerPage) =>
let Page = "&page=" & Text.From(PageNumber),
PerPage = "&per_page=" & Text.From(ItemsPerPage),
Url = BaseUrl & "?" & Query & Page & PerPage,