Recent Posts

More Posts

The following one-shot campaign was created after the party inadvertently fell into a portal, as this presented an opportunity for a guest DM to run a quick and distinct session. My intention for the adventure was to target specific party weaknesses, specifically: Casters spending all their spell slots too quickly Tanks always rushing in Bear barbarian not being resistant to psychic damage As such, the adventure is designed to troll melee attackers and tempt casters to waste their slots on low-level creatures before facing the final battles.

CONTINUE READING

Spelling and grammar are very important. However, when in a rush, we tend to neglect these important aspects. Search engines and humans readers usually don’t appreciate content that includes spelling or grammatical errors. This notion also applies to your code repository… As such, let’s automatically spell check and fix our codebase with misspell! Spell Check cd my-code-repository/ ~/bin/misspell -w . git commit -am "fixed spelling" -w: Overwrite file with corrections Note: Be careful with overzealous fixes!

CONTINUE READING

Documentation doesn’t always have to be boring. Admonition blocks draw the reader’s attention to important notes and warnings that may not directly fit as part of the flow of the text.

As I often prefer to write long-form reports and documentation in LaTeX, awesomebox and alertmessage are my go-to packages for admonition blocks. Several simple examples may be found below.

% !TEX program = xelatex
\documentclass{article}

% dummy text for examples
\usepackage{lipsum}

% admonition blocks around text to inform/alert readers
\usepackage{awesomebox}
% or without using xelatex
\usepackage{alertmessage}

\begin{document}

% awesomebox
\tipbox{\lipsum[2]}
\notebox{\lipsum[3]}
\warningbox{\lipsum[4]}
\cautionbox{\lipsum[5]}
\importantbox{\lipsum[5]}

% alertmessage
\alertinfo{\lipsum[2]}
\alertsuccess{\lipsum[2]}
\alertwarning{\lipsum[2]}
\alerterror{\lipsum[2]}

\end{document}

Tip Box

Tip Box

CONTINUE READING

There are many methods to communicating between processes. Many methods work best when only using a single programming language, while others require custom packets and parsing. Simplicity is key and Redis is an efficient solution. Redis is an open-source in-memory database project implementing a distributed, in-memory key-value store. Start Redis Server We will be using a Docker Redis container to run the Redis server. docker run -d --rm --name my_redis -p 6379:6379 redis -d, --detach: Run container in background and print container ID --rm: Automatically remove the container when it exits --name string: Assign a name to the container -p, --publish list: Publish a container’s port(s) to the host Client Installation This quick tutorial will focus on Python, so let’s install the recommended package.

CONTINUE READING

Microsoft Word has great spelling and grammar checking. Use pandoc to convert the LaTeX document to docx and double check your work.

pandoc INPUT.tex -o OUTPUT.docx

CONTINUE READING

Recent Publications

. An Extrinsic Dexterity Approach to the IROS 2018 Fan Robotic Challenge Modality B. IROS, 2018.

. Evolutionary Motion Control Optimization in Physical Human-Robot Interaction. IROS, 2018.

. Characterization of a robotic micro-surgical system for small-animal neurosurgery. SfN, 2017.

Recent & Upcoming Talks

Evolutionary Motion Control Optimization in Physical Human-Robot Interaction
Tue, Oct 2, 2018 2:30 PM
Domo arigato, Mr. Roboto: Calibrating Robots with Python
Sun, Oct 1, 2017 6:00 AM
Let's Talk About Neurosurgical Veterinary Robotics
Tue, Nov 1, 2016 9:00 AM

Contact