Skip to content

Instantly share code, notes, and snippets.

Daniel Lo Nigro Daniel15

Block or report user

Report or block Daniel15

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
Daniel15 / ProcessExtensions.cs
Created Oct 26, 2019
C# WaitForExitAsync implementation
View ProcessExtensions.cs
using System;
using System.Diagnostics;
using System.Threading;
using System.Threading.Tasks;
namespace Daniel15.Extensions
/// <summary>
/// Extensions for <see cref="Process"/>
/// </summary>
Daniel15 /
Last active Oct 1, 2019
Complete Google Drive File Picker example

Google Drive File Picker Example

This is an example of how to use the Google Drive file picker and Google Drive API to retrieve files from Google Drive using pure JavaScript. At the time of writing (14th July 2013), Google have good examples for using these two APIs separately, but no documentation on using them together.

Note that this is just sample code, designed to be concise to demonstrate the API. In a production environment, you should include more error handling.

See a demo at

Daniel15 / gist:397b1a0374a4bc78c84d
Created Jun 1, 2014
List of "feelings" on Facebook
View gist:397b1a0374a4bc78c84d
View 1_Twitter autoresponder

Twitter autoresponder bot

By Daniel15 ( This is a very simple Twitter autoresponder bot. It requires PECL OAuth extension to be installed (run "pecl install oauth", or if on Windows, grab php-oauth.dll. If using cPanel you can install it via WHM). The authentication is designed for command-line usage, it won't work too well via a web browser. You'll have to sign up for an application on Twitter's site to get the consumer key and secret.

Could be modified to be more advanced (match regular expressions to answer questions, etc.)

Questions? See my blog post -

Modified 2013-06-13 - Twitter API 1.0 discontinued, modified to use Twitter API 1.1

Daniel15 / npm-output.txt
Created Mar 13, 2019
npm output - segfault on install
View npm-output.txt
npm info it worked if it ends with ok
npm verb cli [ '/usr/bin/node',
npm verb cli '/usr/local/bin/npm',
npm verb cli 'install',
npm verb cli '--loglevel',
npm verb cli 'verbose' ]
npm info using npm@6.9.0
npm info using node@v10.15.2
npm verb npm-session cad68cd73009e571
npm info lifecycle sitename@0.0.0~preinstall: sitename@0.0.0
View gist:c8c31b9e46d8c2eea6385d7dd1ba6c40
Microsoft (R) Windows Debugger Version 10.0.14321.1024 AMD64
Copyright (c) Microsoft Corporation. All rights reserved.
CommandLine: "C:\Users\danlo\Dropbox (Personal)\src\gpgme-sharp\Examples\PgpEncryptDecrypt\bin\Debug\net40\PgpEncryptDecrypt.exe"
Symbol search path is: srv*
Executable search path is:
ModLoad: 00000000`00070000 00000000`00078000 PgpEncryptDecrypt.exe
ModLoad: 00007ffb`d88c0000 00007ffb`d8aad000 ntdll.dll
ModLoad: 00000000`774a0000 00000000`7763c000 ntdll.dll
Daniel15 / log.txt
Last active Feb 5, 2019
GPGME full session log
View log.txt
GPGME 2019-02-04 23:24:27 <0x48bc> gpgme_debug: level=9
GPGME 2019-02-04 23:24:27 <0x48bc> gpgme_debug: gpgme='C:\Program Files (x86)\GnuPG\bin'
GPGME 2019-02-04 23:24:27 <0x48bc> gpgme_check_version: call: 0=00000000, req_version=(null), VERSION=1.12.1-beta43
GPGME 2019-02-04 23:24:27 <0x48bc> gpgme_new: enter: r_ctx=02D7E194
GPGME 2019-02-04 23:24:27 <0x48bc> gpgme-dinfo: gpgconf='C:\Program Files (x86)\GnuPG\bin\gpgconf.exe'
GPGME 2019-02-04 23:24:27 <0x48bc> _gpgme_io_pipe: enter: filedes=02D7DB7C, inherit_idx=1 (GPGME uses it for reading)
GPGME 2019-02-04 23:24:27 <0x48bc> _gpgme_io_pipe: leave: read=0x0 (hdd=039F3740,hd=000003C0), write=0x1 (hdd=039F4AF8,hd=000003C8)
GPGME 2019-02-04 23:24:27 <0x48bc> _gpgme_io_spawn: enter: path=039F4AC0, path=C:\Program Files (x86)\GnuPG\bin\gpgconf.exe
GPGME 2019-02-04 23:24:27 <0x48bc> _gpgme_io_spawn: check: path=039F4AC0, argv[ 0] = C:\Program Files (x86)\GnuPG\bin\gpgconf.exe
GPGME 2019-02-04 23:24:27 <0x48bc> _gpgme_io_spawn: check: path=039F
Daniel15 / log.txt
Created Feb 5, 2019
GPGME decryption log before access violation
View log.txt
GPGME 2019-02-04 23:25:14 <0x5654> gpgme_op_decrypt: enter: ctx=03324A08, cipher=0332A458, plain=03329AC8
GPGME 2019-02-04 23:25:14 <0x5654> gpgme_data_release: call: dh=00000000
GPGME 2019-02-04 23:25:14 <0x5654> gpgme_data_release: call: dh=03328978
GPGME 2019-02-04 23:25:14 <0x5654> _gpgme_io_pipe: enter: filedes=033204C8, inherit_idx=1 (GPGME uses it for reading)
GPGME 2019-02-04 23:25:14 <0x5654> _gpgme_io_pipe: leave: read=0x0 (hdd=03329E40,hd=0000041C), write=0x1 (hdd=03329DF8,hd=00000424)
GPGME 2019-02-04 23:25:14 <0x5654> _gpgme_io_set_close_notify: enter: fd=00000000, close_handler=6E901373/033204B0
GPGME 2019-02-04 23:25:14 <0x5654> _gpgme_io_set_close_notify: leave: result=0
GPGME 2019-02-04 23:25:14 <0x5654> _gpgme_io_set_close_notify: enter: fd=00000001, close_handler=6E901373/033204B0
GPGME 2019-02-04 23:25:14 <0x5654> _gpgme_io_set_close_notify: leave: result=0
GPGME 2019-02-04 23:25:14 <0x5654> gpgme_data_new: enter: r_dh=03320580
Daniel15 /
Last active Dec 6, 2018
Routing scripts for Tinc

This Gist contains some scripts for Tinc, in order to configure the routing tables for a remote subnet on Windows (ie. if a remote system wants to expose an entire subnet over the VPN). Tinc does not configure the routing tables by default, which is why these scripts are needed. See the mailing list thread here:

Place the files in the Tinc network directory (eg. C:\Program Files\Tinc\netname\) and change $interface in functions.ps1 to match the name of the Tinc interface configured in tinc.conf

Daniel15 /
Created Oct 3, 2011
ASP.NET Server Info page

Simple ASP.NET server info page. Shows uptime, hard drive space, and RAM.

Add this to Web.config system.web -> configuration -> assemblies:

You can’t perform that action at this time.