Skip to content

Instantly share code, notes, and snippets.

.data_start
__refl_const_intnl_udonTypeID: %SystemInt64, null
__refl_const_intnl_udonTypeName: %SystemString, null
__0_i_Int32: %SystemInt32, null
__0_y_UInt32: %SystemUInt32, null
__0_z_UInt32: %SystemUInt32, null
__0_x_UInt32Array: %SystemUInt32Array, null
__0_const_intnl_SystemInt32: %SystemInt32, null
.data_start
__refl_const_intnl_udonTypeID: %SystemInt64, null
__refl_const_intnl_udonTypeName: %SystemString, null
__0_a_Int32: %SystemInt32, null
__0_b_Int32: %SystemInt32, null
__0_c_Int32: %SystemInt32, null
__0_d_Int32: %SystemInt32, null
__1_c_Int32: %SystemInt32, null
@bdonlan
bdonlan / rdrand_test.c
Created February 12, 2018 20:02
Standalone test for OPENSSL_ia32_rdrand_bytes bug
/*
* Copyright 2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License").
* You may not use this file except in compliance with the License.
* A copy of the License is located at
*
* http://aws.amazon.com/apache2.0
*
* or in the "license" file accompanying this file. This file is distributed

Keybase proof

I hereby claim:

  • I am bdonlan on github.
  • I am bdonlan (https://keybase.io/bdonlan) on keybase.
  • I have a public key whose fingerprint is 1EAE 806E 1B99 A08E 81C5 5CAF 080F C766 3A99 F636

To claim this, I am signing this object:

newtype BlockingLazyGenerator a = BLG (MVar (a, BlockingLazyGenerator a))
pushBLG :: BlockingLazyGenerator a -> a -> IO (BlockingLazyGenerator a)
pushBLG (BLG blg) val = do
newBLG <- fmap BLG newEmptyMVar
res <- tryPutMVar blg (val, newBLG)
when (not res) $ error "tried to put a BLG more than once"
return newBLG
unsafeTailBLG :: BlockingLazyGenerator a -> [a]
/* Google Reader CSS Fix */
#entries.list .entry .collapsed {
padding: 0 ;
}
#entries.list .collapsed .entry-icons {
top: 0 ;
}
{-# LANGUAGE GADTs, Rank2Types #-}
import Data.Maybe (fromJust)
data SymbolicNumber s where
SymbolicNumber :: (Eq s) => (forall n. Num n => (s -> n) -> n ) -> SymbolicNumber s
evaluateSN :: (Eq s, Num n)
=> SymbolicNumber s
-> (s -> n)
// Simple approach. Requires that you invoke as gen_array<int>(generator_func) for example
// Requires C++0x for std::function; boost's boost::function will also work on all compilers
template<typename ArrayElement>
std::vector<ArrayElement> gen_array(std::function<ArrayElement()> gen)
{
int len = gen_int() % 100;
std::vector<ArrayElement> vec;
vec.reserve(len);
@bdonlan
bdonlan / bitcoin api proposal.txt
Created February 26, 2011 14:59
A proposal for bitcoin daemon boundraries and API calls.
Daemons:
* bitcoin-netd
Communicates with the bitcoin P2P network, and maintains a copy of the block chain and pending txns.
Has functions for querying the block and txn chain.
No private data whatsoever.
API:
* GetStatus() - Returns current latest block ID and generation number
* GetPendingTransactions() - Returns transactions not yet in a block [may have filter fields of some sort]
---------------------------------------------------
-----
----- util.vhd
-----
library IEEE;
use IEEE.STD_LOGIC_1164.all;
use IEEE.NUMERIC_STD.ALL;
package util is