Skip to content

Instantly share code, notes, and snippets.

View c0achmcguirk's full-sized avatar

Paul M Oliver c0achmcguirk

View GitHub Profile
c0achmcguirk /
Last active June 11, 2023 19:42 — forked from yorickdowne/
Great and less great SSDs for Ethereum nodes


Syncing an Ethereum node is largely reliant on IOPS, I/O Per Second. Budget SSDs will struggle to an extent, and some won't be able to sync at all.

This document aims to snapshot some known good and known bad models.

For size, 2TB come recommended as of mid-2022. 1TB can work for now but is getting tight.

High-level, QLC and DRAMless are far slower than "mainstream" SSDs.

c0achmcguirk / Function.cs
Last active March 13, 2017 02:44
Alexa developer portal settings for talk 2017-04-28
View Function.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.Http;
using System.Threading.Tasks;
using Alexa.NET.Request;
using Alexa.NET.Request.Type;
using Alexa.NET.Response;
using Amazon.Lambda.Core;
using Newtonsoft.Json;
View controllers.application.js
import Ember from 'ember';
export default Ember.Controller.extend({
appName: 'Observe and Chain Demo',
clicks: 0,
someProp: 'undefined',
bindOnInitAndPropChange: Ember.on('init', function() {
this.set('someProp', `Initialized. I see ${ this.get('clicks') } clicks.`);
Ember.addObserver(this, 'clicks', null, function() {
View components.x-option.js
import Ember from 'ember';
import XSelectComponent from './x-select';
var isArray = Ember.isArray;
* Used to wrap a native `<option>` tag and associate an object with
* it that can be bound. It can only be used in conjuction with a
* containing `x-select` component
View controllers.application.js
import Ember from 'ember';
export default Ember.Controller.extend({
appName: 'Ember Twiddle'
View rate_limit.js
/* Extend the Underscore object with the following methods */
// Rate limit ensures a function is never called more than every [rate]ms
// Unlike underscore's _.throttle function, function calls are queued so that
// requests are never lost and simply deferred until some other time
// Parameters
// * func - function to rate limit
// * rate - minimum time to wait between function calls
// * async - if async is true, we won't wait (rate) for the function to complete before queueing the next request

Keybase proof

I hereby claim:

  • I am c0achmcguirk on github.
  • I am pauloliver ( on keybase.
  • I have a public key whose fingerprint is D1BD 86F5 8AE2 90AE 1F62 C50D 6BD9 F0C1 2412 E03B

To claim this, I am signing this object: