Chris X Edwards =============== Welcome to the _real_ internet! This is a web site. It is entirely owned by me, a human person, without censorship or contractual obligations to third parties. It is produced and hosted using only free, publicly licensed software -- mostly that I personally wrote. == About Me I am *Chris X Edwards*. image:./xedski.jpg[I like skiing up hills!] I am a computer nerd, athlete, engineer, adventurer, data scientist, designer, roboticist, artist, and computer nerd. Did I mention computer nerd twice? Ya, that's probably appropriate. In my last job I was actually paid to convert a dumb speedboat into one that was considerably less dumb. I'm extremely proud of how that turned out. Here is a photo of me letting my autonomous boat drive itself out of a complex marina area in a fast moving river. https://xed.ch/b/2019/1104.html[image:https://xed.ch/blog/2019/i/1104-2a0d-20191102_093751.jpg[Driving a boat is fun but not as fun as not driving it!]] And if you thought your engineering failures ever seemed ominous, the units for my factor of safety was "minutes after a failure until I go over Niagara Falls". == Resume If you're interested in hiring a heavy duty multi-disciplinary technology expert, you should definitely let me know. I have a proper engineering degree and background, but I am unusually good at solving hard problems with computers. I especially like writing high-performance software (in C, C++ ) that actually uses computation to solve real problems. I also like Python and Bash. I am very experienced in modern machine learning practices from data collection and labeling to model creation to training, tuning, and debugging. I am a decent electrical engineer and am very good at writing efficient software ideally suited to microcontrollers. I very much enjoy working with OpenCV and computer vision projects. I also am an expert in 3d modeling and simulation. I am a serious unix expert; I have used only Linux since 1997 which is why I can gratuitously show off by typesetting my resume with https://www.gnu.org/software/groff/[groff] -- just like a man page. Check it out here. https://xed.ch/resume[] == Blog Cursed by literacy, I write a lot -- more than anyone could possibly care to read. Mostly it's https://xed.ch/b/2021/0404.html[stuff I like] that you will definitely not care about. Sometimes though I write about very cool technical things that other nerds may find interesting. * https://xed.ch/b/2017/0402.html[Emphatic camera calibration with OpenCV]. * https://xed.ch/b/2018/0527.html[My programming language embedded into Blender]. * https://xed.ch/b/2018/0128.html[I synthesize street sign training data from nothing]. * https://xed.ch/b/2017/1120.html[Impressive stuff I did in my first career]. * https://xed.ch/b/2015/0901.html[I write some C code that radically improves all C code]. * https://xed.ch/b/2018/0514.html[A list of interesting thoughts related to the microbiome]. * https://xed.ch/b/2016/1217.html[How to make pie charts using Awk]. * https://xed.ch/b/2016/1227.html[Beginners guide to underwater drones]. * https://xed.ch/b/2017/0901.html[Simple OpenCV tool for creating training image sets]. * https://xed.ch/b/2017/0513.html[How to safely embiggen a shortened URL]. * https://xed.ch/b/2020/1020.html[Serious consequences and dumb data cleaning problems]. * https://xed.ch/b/2018/0304.html[A novel way to put things in orbit]. * https://xed.ch/b/2017/1119.html[I explain neural networks using a different metaphor than "neurons"]. Here's the link to the whole collection: https://xed.ch/blog[] Here are https://xed.ch/blog/sitemain.html[the most recent posts]. == My Projects You know what's harder than writing high quality software? If you said "making it available over the internet", perhaps I can help you because that is certainly not true for me. Which is why I just wouldn't feel right about saying my software is good if I couldn't host it myself. I think it is good. Here are some of my projects -- you can decide for yourself! * https://xed.ch/p/nerdtext[Nerdtext] - A high performance AsciiDoc processor written in C++ . The HTML document you are looking at was generated by Nerdtext. Have a look at https://xed.ch/about.txt[this document's source] to get a good understanding of what exactly that means. image:https://xed.ch/p/nerdtext/ntlogo80.png[Nerdtext Logo] * https://xed.ch/p/gg[GeoGad] - A programming language based on HP RPL (i.e. a Lisp) designed for interactive use as a mathematical computation system and as the scripting engine for my geometry modeling system. I believe the most trenchant software engineering interview question is, "What is your favorite piece of software that you happily use every day -- that you wrote yourself?" Geogad is my answer to that question. image:https://xed.ch/i/gglogo2-80.png[GeoGad Logo] * https://xed.ch/b/2020/1014.html[Unicon] - A units conversion tool that's less baroque and ambitious than the Bell Labs or GNU `units` program, but still able to handle complex compound engineering units problems with a clean simple syntax. image:https://xed.ch/i/unicon_logo80.png[Unicon Logo] * https://xed.ch/p/snakeoil/videos.html[SnakeOil] - A Python interface to the Simulated Car Racing Championships, a contest in the early 2010s to encourage autonomous car AI development. Using my interface library I created a competitive racing bot. To highlight my car's quality driving, I made a series of videos of it racing head to head against the dominant series champion. image:https://xed.ch/i/snakeoil_logo80.png[SnakeOil Logo] All of my projects can be found here. https://xed.ch/project[] == My Technical Notes Are you trying to find my technical notes? Or maybe you're interested in hiring me but aren't sure if I'm one of those fake computer nerds. Well, my technical notes should make your eyes glaze over in a hurry and demonstrate that I've been at this computer nerd stuff for a while. These are just my personal notes, but they can give you an idea of how I solve hard problems with computers and how https://xed.ch/project/nerdtext[seriously I take documentation]. Here are some highlighted examples. * https://xed.ch/h/unix[Unix] * https://xed.ch/h/python[Python] * https://xed.ch/h/bash[Bash] * https://xed.ch/h/cxx[C++] * https://xed.ch/h/c[C] * https://xed.ch/h/blender[Blender] * https://xed.ch/h/ssh[SSH] * https://xed.ch/h/opencv[OpenCV] * https://xed.ch/h/imagemagick[ImageMagick] The full collection is here: https://xed.ch/help[] == Links Some people believe that the internet is dying. It is being killed by walled gardens and a lack of decentralized content. When search engines become gatekeepers, the searches are subverted by rational actors trying to game the system. I do not know what the big picture answer is, but putting all your trust in one company to safeguard the integrity of the internet has not proven very effective. One painful and difficult thing that does sort of work is grassroots linking to sites real people admire and endorse. To make that less painful, I encourage people to make a page of links that is incredibly _useful_ to themselves. I have such a page. It is a huge messy mess. But it is incredibly useful _to me_. I use it hundreds of times a day. If you'd like to see what that looks like check out *The Page* here. https://xed.ch/thepage[] Note that if you reload it, it will default to a new random search engine -- spread the love! == Contact Me The best way for polite and literate people to communicate is with email and, for the past 30 years, that is how I have preferred to communicate with random internet strangers. Send me an email and I probably will send you one back! I get all email addressed to my domain (which is *xed.ch*). For example, maybe try my first name "at" that domain. === Questionable Surveillance Capitalism Discord:: `cxed#5242` I don't mind Discord. They seem ok. But if our live communication ever becomes really important, we can use my IRC server which is actually secure. For voice and video chatting, it's probably fine. Microsoft GitHub:: https://github.com/cxed[] Note that all of https://xed.ch/project[my software] is primarily hosted by _me_. Publicity backups to GitHub may lag the latest versions _because_ I do not depend on a https://xed.ch/b/2015/0312.html[single-point-of-failure] platform at the mercy of MSFT shareholders to host simple files on the internet. Or to do basic version control. Twitter:: https://nitter.net/chrisxed[@chrisxed] Twitter is a vulgar disgrace! I don't mind the concept behind it, but with https://nitter.net/ID_AA_Carmack[rare exceptions] it is properly practiced by nobody. I actually https://xed.ch/blog/status[host my own short form message publishing] created with my own custom software. As a courtesy, my software sends these off to Twitter for those who are thereto addicted. More discussion https://xed.ch/b/2017/0129.html[here]. Google:: I am one of the last humans whose intimate secrets Google does not know. Nonetheless I am happy to play along if you like Google video conferencing and calendars and stuff like that. Send invites to such events to: `chrisxed` at gmail.com Microsoft LinkedIn:: https://www.linkedin.com/in/chrisxed/[] == FAQ === Warum hast du eine .ch domain? Bist du Schweizer? Sadly no. I registered the domain while living in Switzerland. Unlike https://en.wikipedia.org/wiki/.cx[other TLDs] this one seems historically pretty stable. I learned enough Schweizerdeutsch while living on a farm in Switzerland to be hilarious to the Swiss and horrifying to Germans. Du kanst mir schicken zufaellige Fragen ueber Englisch und Leben in der USA. === What does your middle initial stand for? It stands for -- like a variable -- my middle name. In my personal orthography a period is strictly optional and can be used or not at your whim. Fun fact: Mathematician https://en.wikipedia.org/wiki/Benoit_Mandelbrot[B. B Mandelbrot] also has a middle initial which can correctly be abbreviated by omitting the period. The https://www.trumanlibrary.gov/education/trivia/use-of-period-after-s-truman-name[Harry S. Truman Library] insists on a period in its orthography but apparently https://en.wikipedia.org/wiki/Harry_S._Truman[H. S Truman] was, like me, more flexible. Also interesting is https://en.wikipedia.org/wiki/Ulysses_S._Grant[U. S Grant]. Also https://en.wikipedia.org/wiki/Rocky_the_Flying_Squirrel[R. J Squirrel] and https://en.wikipedia.org/wiki/Bullwinkle_J._Moose[B. J Moose], better known as Rocky & Bullwinkle. === Where do I live? I have lived all over the world. I learned English where it was invented. I lived for many years in San Diego, California but moved to western New York for a job. A job that has run its course. The next time I move my job will no longer need to be such a tedious constraint. Although the Niagara River region is nice, it is quite likely I will be moving somewhere nicer yet. I'd love to return to Alaska or some other place with a proper winter while the concept still exists on this planet. image:https://xed.ch/blog/2019/i/0511-2aa4-cxe-ship-lidar.jpg[Installing a lidar]