Skip to content

Instantly share code, notes, and snippets.

View mikepurvis's full-sized avatar

Mike Purvis mikepurvis

View GitHub Profile
$ nix path-info --recursive github:clearpathrobotics/nix-ros#noetic.roscpp
/nix/store/8z45az8hxpb2rd8jr2as23z8k4sykzxk-libunistring-1.0
/nix/store/r9h32hpf3v47xx1gn9papl2lqdw9amyh-libidn2-2.3.2
/nix/store/g8d5bnh9mh1364x17mjyc731fsi9a61m-glibc-2.35-163
/nix/store/0dziwhyyxm45dbgssh4fwmpkb7j54xij-keyutils-1.6.3-lib
/nix/store/91cri48yw4ca4bq46i1p5fa440nv0hyr-zlib-1.2.12
/nix/store/dd3713mm8wql4r2d5jxx0f58g16nfm4h-bash-5.1-p16
/nix/store/rqfwpn7r8zcwvl2xh7klipp526ifgd0a-gcc-11.3.0-lib
/nix/store/dn4ki7lrmf8978pblwgsjmag5i647h9s-icu4c-71.1
/nix/store/ldzvidpjfli6mwpb0kp3ykk1rna8njss-bzip2-1.0.8
@mikepurvis
mikepurvis / 00-README.md
Created September 22, 2026 19:28
Layering measurement harness for nix2container#113: 583 image-revisions of nixpkgs closure graphs, pull-bytes metric, and an ablation of hint-file layering vs nixpkgs#355189

Layering measurement harness for nix2container#113

Corpus and measurement harness built to answer a question from nlewo/nix2container#113: would an externally collected, checked-in hint file improve automatic layer generation enough to be worth its cost?

Short answer: no, on any data that can be constructed from nixpkgs — but measuring it turned up a 6–12% improvement that needs no hint file at all.

@mikepurvis
mikepurvis / gdb.txt
Created October 24, 2019 14:37
librealsense crash during ROS nodelet publish
#0 std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count (__r=..., this=<optimized out>) at /usr/include/c++/5/bits/shared_ptr_base.h:824
No locals.
#1 std::__shared_ptr<librealsense::stream_interface const, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<librealsense::stream_interface> (__r=..., this=<optimized out>)
at /usr/include/c++/5/bits/shared_ptr_base.h:949
No locals.
#2 std::shared_ptr<librealsense::stream_interface const>::shared_ptr<librealsense::stream_interface> (__r=..., this=<optimized out>) at /usr/include/c++/5/bits/shared_ptr.h:251
No locals.
#3 std::enable_shared_from_this<librealsense::stream_interface>::shared_from_this (this=<optimized out>) at /usr/include/c++/5/bits/shared_ptr.h:577
No locals.
#4 librealsense::extrinsics_graph::find_stream_profile (this=this@entry=0x7fc6fbf4dec0 <librealsense::environment::get_instance()::env>, p=...) at ../../../src/librealsense2/src/environment.cpp:90
DEBUG: ./tmp/netboot/tree/bin/update-dev is no ELF
DEBUG: ./tmp/netboot/tree/bin/anna-install is no ELF
DEBUG: ./tmp/netboot/tree/bin/lowmem_debconf is no ELF
DEBUG: ./tmp/netboot/tree/bin/debconf-get is no ELF
DEBUG: ./tmp/netboot/tree/bin/hw-detect is no ELF
DEBUG: ./tmp/netboot/tree/bin/check-missing-firmware is no ELF
DEBUG: ./tmp/netboot/tree/bin/env2debconf is no ELF
DEBUG: ./tmp/netboot/tree/bin/kill-all-dhcp is no ELF
DEBUG: ./tmp/netboot/tree/bin/sysfs-update-devnames is no ELF
DEBUG: ./tmp/netboot/tree/bin/in-target is no ELF
@mikepurvis
mikepurvis / extensible_controllers.cpp
Created November 24, 2017 19:58
Example of extending a controller and changing the interface _without_ needing multiple inheritance.
///////////////////////////////////////////////////////////////////////////////
// Copyright (C) 2017, Clearpath Robotics Inc.
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are met:
// * Redistributions of source code must retain the above copyright notice,
// this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above copyright
// notice, this list of conditions and the following disclaimer in the
// documentation and/or other materials provided with the distribution.
@mikepurvis
mikepurvis / keybase.md
Created October 12, 2017 17:30
keybase.md

Keybase proof

I hereby claim:

  • I am mikepurvis on github.
  • I am mikepurvis (https://keybase.io/mikepurvis) on keybase.
  • I have a public key ASAwNzY7ez5KMpC_oLLZGrsmpIEHPEnk89DZ1k3B9Ccmggo

To claim this, I am signing this object:

- tar:
local-name: python-argparse
uri: https://pypi.python.org/packages/18/dd/e617cfc3f6210ae183374cd9f6a26b20514bbb5a792af97949c5aacddf0f/argparse-1.4.0.tar.gz
version: argparse-1.4.0
- tar:
local-name: python-catkin-pkg
uri: https://pypi.python.org/packages/47/4e/937929960341e3c7b6b84c78a412bba2fed3546ea970874cca78c6458004/catkin_pkg-0.3.1.tar.gz
version: catkin_pkg-0.3.1
- tar:
local-name: python-coverage
This file has been truncated, but you can view the full file.
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<tagfile>
<compound kind="file">
<name>cstdlib</name>
<filename>cpp/header/cstdlib</filename>
<namespace>std</namespace>
</compound>
<compound kind="file">
<name>csignal</name>
<filename>cpp/header/csignal</filename>
@mikepurvis
mikepurvis / kinetic-cache.yaml
Created August 31, 2016 17:32
rosdistro_build_cache output
This file has been truncated, but you can view the full file.
distribution_file:
- release_platforms:
debian: [jessie]
fedora: ['23', '24']
ubuntu: [wily, xenial]
repositories:
ackermann_msgs: {doc: {type: git, url: 'https://github.com/ros-drivers/ackermann_msgs.git', version: master}, release: {tags: {release: 'release/kinetic/{package}/{version}'}, url: 'https://github.com/ros-drivers-gbp/ackermann_msgs-release.git', version: 1.0.1-0}, source: {type: git, url: 'https://github.com/ros-drivers/ackermann_msgs.git', version: master}, status: maintained}
actionlib: {doc: {type: git, url: 'https://github.com/ros/actionlib.git', version: indigo-devel}, release: {tags: {release: 'release/kinetic/{package}/{version}'}, url: 'https://github.com/ros-gbp/actionlib-release.git', version: 1.11.6-0}, source: {test_pull_requests: true, type: git, url: 'https://github.com/ros/actionlib.git', version: indigo-devel}, status: maintained}
agvs_common: {doc: {type: git, url: 'https://github.com/RobotnikAutomation/agvs_common.git', version: kinetic-devel}, release:
#!/usr/bin/env python
#
# Issue some random commands to your ROS robot, yay!
import rospy, random
from geometry_msgs.msg import Twist
rospy.init_node("huskytest")
pub = rospy.Publisher("cmd_vel", Twist, queue_size=1)