Skip to content

Instantly share code, notes, and snippets.

Avatar
😀

Blake Niemyjski niemyjski

😀
View GitHub Profile
@niemyjski
niemyjski / CancelErrorByMessageAndType.cs
Created Dec 3, 2019
Exceptionless.Net Cancel Error By Message And Type
View CancelErrorByMessageAndType.cs
[Priority(21)]
public class CancelErrorByMessageAndType : IEventPlugin {
public void Run(EventPluginContext context) {
// Only check error events.
if (context.Event.Type != Event.KnownTypes.Error)
return;
var error = context.Event.GetError();
if (error == null)
return;
@niemyjski
niemyjski / clean_code.md
Created Aug 26, 2019 — forked from wojteklu/clean_code.md
Summary of 'Clean code' by Robert C. Martin
View clean_code.md

Code is clean if it can be understood easily – by everyone on the team. Clean code can be read and enhanced by a developer other than its original author. With understandability comes readability, changeability, extensibility and maintainability.


General rules

  1. Follow standard conventions.
  2. Keep it simple stupid. Simpler is always better. Reduce complexity as much as possible.
  3. Boy scout rule. Leave the campground cleaner than you found it.
  4. Always find root cause. Always look for the root cause of a problem.

Design rules

@niemyjski
niemyjski / CodeSmith Tools CLA
Last active Jun 26, 2019
CodeSmith Tools CLA
View CodeSmith Tools CLA
**CodeSmith Tools, LLC Contributor License Agreement**
The document below clarifies the terms under which You (the copyright owner or legal entity authorized by the copyright owner), may make “The Contributions” (software, bug fixes, configuration changes, documentation, or any other materials) to “The Work” (codesmithtools/templates or codesmithtools/schemahelper). This license protects You, “The Company” (CodeSmith Tools, LLC) and licensees; it does not change your rights to use your own contributions for any other purpose.
Please complete the following information about You and The Contributions. If you have questions about these terms, please contact us at team@codesmithtools.com.
**You and “The Company” (CodeSmith Tools, LLC) agree:**
1. **You grant to “The Company” (CodeSmith Tools, LLC) a non-exclusive, irrevocable, worldwide, royalty-free, sublicenseable, relicenseable, transferable license** under all of Your relevant intellectual property rights, to use, copy, prepare derivative works of, distri
@niemyjski
niemyjski / satoshistreasure.md
Created Apr 18, 2019 — forked from johncantrell97/satoshistreasure.md
How I Obtained Satoshi's Treasure Keys 1, 2, and 3 in Minutes
View satoshistreasure.md

Today (April 16th 2019 at noon) the first major clues to discover key #1 was set to be released in a few cities. A QR code with the words 'orbital' were found at these locations and looked like this: (https://imgur.com/a/6rNmz7T). If you read the QR code with your phone you will be directed to this url: https://satoshistreasure.xyz/k1

At this URL you are prompted to input a passphrase to decrypt the first shard. An obvious first guess was to try the word 'orbital' from the QR code. Not suprisingly this worked! This reveals a congratulations page and presents the first key shard:

ST-0001-a36e904f9431ff6b18079881a20af2b3403b86b4a6bace5f3a6a47e945b95cce937c415bedaad6c86bb86b59f0b1d137442537a8.

Now, we were supposed to wait until April 17th to get clues from the other cities for keys #2 and #3 but that wouldn't stop me from digging around with all the new information we had. All that time "playing" notpron (http://notpron.org/notpron/) years ago was going to help me here.

The first thing I noticed was

@niemyjski
niemyjski / app.js
Created Feb 19, 2019 — forked from rfletcher/app.js
A simple bridge between iMessage and Home Assistant's conversation component
View app.js
const HomeAssistant = require( 'homeassistant' );
const Pino = require( 'pino' );
const config = require( 'config' );
const hass = new HomeAssistant( config.get( 'home_assistant' ) );
const imessage = require( 'osa-imessage' );
const logger = Pino();
// TODO package this better
const bridge = {
@niemyjski
niemyjski / dotnetlayout.md
Created Feb 21, 2018 — forked from davidfowl/dotnetlayout.md
.NET project structure
View dotnetlayout.md
$/
  artifacts/
  build/
  docs/
  lib/
  packages/
  samples/
  src/
  tests/
View minio-gateway-azure.bat
rem This program starts the minio batch.
@echo off
setlocal
path=C:\programs\minio;%path%
set MINIO_ACCESS_KEY=accountname1
set MINIO_SECRET_KEY=secretForAccountName
call minio gateway azure --address=:9001 >c:\test\c1.out
endlocal
View what-i-wish-id-known-about-equity-before-joining-a-unicorn.md

What I Wish I'd Known About Equity Before Joining A Unicorn

Disclaimer: This piece is written anonymously. The names of a few particular companies are mentioned, but as common examples only.

This is a short write-up on things that I wish I'd known and considered before joining a private company (aka startup, aka unicorn in some cases). I'm not trying to make the case that you should never join a private company, but the power imbalance between founder and employee is extreme, and that potential candidates would

@niemyjski
niemyjski / RemoveSensitivePostDataPlugin.cs
Last active Aug 9, 2016
Exceptionless Plugin to remove sensitive string post data
View RemoveSensitivePostDataPlugin.cs
// Sometimes post data cannot be converted (non form data) so we serialize it to a stirng.
// This plugin adds some overhead as you are checking post data (really large string)
[Priority(100)]
internal class RemoveSensitivePostDataPlugin : IEventPlugin {
public void Run(EventPluginContext context) {
var serializer = context.Client.Configuration.Resolver.GetJsonSerializer();
var ri = context.Event.GetRequestInfo(serializer);
string data = ri != null ? ri.PostData as string : null;
if (data == null)
@niemyjski
niemyjski / DiagnoseRedisErrors-ClientSide.md
Created Jul 19, 2016 — forked from JonCole/DiagnoseRedisErrors-ClientSide.md
Diagnosing Redis errors caused by issues on the client side
View DiagnoseRedisErrors-ClientSide.md

Diagnosing Redis errors on the client side

Customers periodically ask "Why am I getting errors when talking to Redis". The answer is complicated - it could be a client or server side problem. In this article, I am going to talk about client side issues. For server side issues, see here

Clients can see connectivity issues or timeouts for several reason, here are some of the common ones I see:


###Memory pressure