Skip to content

Instantly share code, notes, and snippets.

View jkeiser's full-sized avatar

John Keiser jkeiser

View GitHub Profile
@jkeiser
jkeiser / utf8lookuparm.cpp
Created December 10, 2019 06:38
UTF-8 lookup ARM
#include <stdio.h>
#include <stdint.h>
#include <arm_neon.h>
//
// Detect Unicode errors.
//
// UTF-8 is designed to allow multiple bytes and be compatible with ASCII. It's a fairly basic
// encoding that uses the first few bits on each byte to denote a "byte type", and all other bits
// are straight up concatenated into the final value. The first byte of a multibyte character is a
property :environment_name, String, name_property: true
property :num_databases, Integer, default: 1
property :num_webservers, Integer, default: 1
action :create do
1.upto(num_databases) do |i|
machine "#{environment_name}.db.#{i}" do
recipe "postgresql"
end
end
~/s/bundle-repro   bundler-4690  ./repro.sh
# Uninstall all bundle-test-foos and bundle-test-bars
gem uninstall bundle-test-bar bundle-test-foo --force
+ gem uninstall bundle-test-bar bundle-test-foo --force
Successfully uninstalled bundle-test-bar-2.0.0
Successfully uninstalled bundle-test-bar-2.0.1
# Install bundle-test-bar 2.0.0
pushd bar
---
version: 12.10.47
result:
timestamp: '2016-05-12T14:56:53-07:00'
duration: 8151.036
git_commit: 4b9d5f70ba46eeb0445de1d0fbb11d05d2614cca
stages:
chef-trigger-release:
result: SUCCESS
timestamp: '2016-05-12T14:56:53-07:00'
@jkeiser
jkeiser / chef-trigger-release
Last active May 11, 2016 23:35
Chef Build Summary
[chef-trigger-release 101 05/11/2016] Failed (chef-test aix-7.1-powerpc)
[chef-trigger-release 100 05/11/2016] Failed (chef-test acceptance)
[chef-trigger-release 99 05/10/2016] Failed (chef-test acceptance)
[chef-trigger-release 98 05/10/2016] Failed (chef-test acceptance)
[chef-trigger-release 97 05/10/2016] Failed (chef-test acceptance)
[chef-trigger-release 96 05/09/2016] Succeeded
[chef-trigger-release 95 05/09/2016] Failed (chef-test acceptance)
@jkeiser
jkeiser / gemfile.lock.md
Last active September 8, 2017 02:34
Chef Gemfile.lock FAQ

Gemfile.lock FAQ

  1. What's the Gemfile.lock in chef for?

    chef uses a Gemfile and gemspec to control the ruby components we bring into Chef and the ChefDK. These files specify constraints such as "chef MUST have test-kitchen version 1.7 or greater!" but do not specify exact versions, so when new copies of dependencies (like test-kitchen) come out, we can pick them up without changing the Gemfile. The Gemfile.lock is a set of explicit versions ("Use version 1.7.1 of test-kitchen") generated by running the Gemfile one day.

    This is important because it locks down the set of dependencies we tested at, so that we have a "last known good" build. More importantly, it means that we can update our dependencies deliberately and safely through a Pull Request that goes through all testing. This means that master only ever gets a Gemfile.lock that has actually passed the tests.

  2. Why put a Gemfile.lock in chef?

From http://manhattan.ci.chef.co/view/Chefdk/job/chefdk-build/70/architecture=i386,platform=windows-2008r2,project=chefdk,role=builder/console
[Builder: berkshelf] I | bundle `install --jobs 10 --without guard': 2151.2407s
[Builder: berkshelf] I | Build berkshelf: 2151.3188s
The following shell command exited with status 5:
$ CFLAGS=-IC:/opscode/chefdk/embedded/include -m32 -O3 -mfpmath=sse -msse2 -march=i686 CPPFLAGS=-IC:/opscode/chefdk/embedded/include -m32 -O3 -mfpmath=sse -msse2 -march=i686 CXXFLAGS=-IC:/opscode/chefdk/embedded/include -m32 -O3 -mfpmath=sse -msse2 -march=i686 LDFLAGS=-LC:/opscode/chefdk/embedded/lib -m32 LD_RUN_PATH=C:/opscode/chefdk/embedded/lib PKG_CONFIG_PATH=C:/opscode/chefdk/embedded/lib/pkgconfig Path=C:/opscode/chefdk/bin;C:/opscode/chefdk/embedded/bin;C:/languages/ruby/2.1.5/lib/ruby/gems/2.1.0/bin;C:\msys\bin;C:\msys\mingw\bin;C:\Program Files (x86)\Git\Cmd;C:\Program Files (x86)\Git\libexec\git-core;C:\languages\ruby\2.1.5\bin;C:\wix;C:\7-zip;C:\Program File
@jkeiser
jkeiser / .kitchen.yml
Created March 2, 2016 17:26
Getting started
driver:
name: vagrant
forward_agent: yes
customize:
cpus: 2
memory: 1024
platforms:
- name: el-7
driver:
# nil values and validation
`nil` setters and property defaults are a big snarl with our system because of
this conflict:
1. People who don't specify a default value for their property expect the
default to be `nil`.
2. Some people want `nil` to be an invalid value for their property so that they
can simplify their code by not having to handle it.
3. Copying a property from one resource to another is a common thing, and the
@jkeiser
jkeiser / empty-run.csv
Last active December 17, 2015 18:26
chef-client memory usage count
Filename Type Total Contribution Local Contribution Used Slots When Finished
chef-client binary 48337 578 101357
> chef/application/client require 927 398 100783
> > chef/workstation_config_loader require 92 1 102533
> > > chef-config/workstation_config_loader require 91 91 102559
> > chef/handler/error_report require 14 14 102442
> > chef/application require 423 169 102429
> > > mixlib/cli require 95 95 103440
> > > chef/local_mode require 51 51 103346
> > > chef/config_fetcher require 108 52 103296