I make words
in place of thoughts
in place of feelings
in place of truth
I make words
in place of
in place of
in place of
all of us
VirtualCoffee had a great Brownbag talk this morning called How to Promote Yourself to Potential Employers by Abbey Perini. I suspect it will be posted at some point because it was recorded, but there were a number of stellar quotes and I decided to quickly mock up a few of them in Inkscape (initially) and then eventually put one into Blender as well (for fun).
Rejected 2021 !!CON Talk Accepted PyOhio Application
Everyone knows that
writing code making art is easy! There are so many free resources available on the internet that becoming a programmer an artist has never been easier! In this talk I’ll demo several ways to make a todo list draw a circle! We’ll go through a variety of mediums to get you up-to-speed with new languages and frameworks mediums and methods in no time like:
- Types of paper and surfaces
- Overview of mediums (graphite, inks, acrylics, oils, and more!)
- Performance Art (Dance, Theater, and Song!)
- Digital Applications with live demo circles including:
- Gnu Image Manipulation Program
- HTML & CSS
- and whatever came out between this blurb and the event!
By the end of this talk you’ll be more confident than ever (and not at all overwhelmed!) by the prospect of how easy it is to become
a programmer an artist in 2021!
- (1-2 Minute mark): The first 1-2 minutes will be spent parodying the language/syntax/and visual style of several landing pages/blogs/paid courses etc. of non-free and free “learn to code” resources. This should be light and funny – the parody will be obvious – but we’re going to take this more seriously than mere parody (i.e. how hard can it be to draw a circle? We’ll take this seriously, though still in a playful/in-character way.)
- (3-7 Minute mark): The bulk of the presentation will literally be demonstrating a multitude of ways to “simply” draw a circle.
- I will actually have relevant asides about perfect circles (using a drafting compass) vs. sufficient circles (freehand strategies)
- We’ll talk about these strategies in a variety of mediums (pen, paper, ink, etc.)
- We’ll discuss the actual effect that different physical papers may have on the resulting shape (printer paper, canvas, etc.).
- I’ll live demo the creation of a “simple” circle in a variety of free-software tools including Inkscape, Gimp, Krita, and Blender (and more as in the abstract). I will note that I will not be showing how to install these applications on your machines.
- I’ll also discuss how to make these actually perfect circles created by software less perfect for artistic reasons (and show how to do that in each application).
- (8-9 Minute mark): I’ll conclude with the same platitudes about how drawing a circle is easy and how the learning resources available to you today pale in comparison to what I had when I was learning to draw a circle decades ago.
- (9-10 Minute mark): Break the fourth wall / drop character: I have a PhD in Fine Arts and I’m working on learning coding. I’ll close by noting that coding (like drawing a circle) can both be “easy” and “hopelessly confusing” based on previous knowledge and experience, and it’s important to regularly remind ourselves of this fact when working with, encouraging, and speaking to others. I hope this will help everyone consider this more strongly moving forward.
- Learning to Code: If someone is learning to code (i.e. starting out) they’ve likely come across enough material to both understand and be painfully aware of the parody I’m doing and recognize the specific challenge can exist outside of the tech space too.
- Actively Coding / Coding Mentors / Tech Bloggers, etc.: This group will, I hope, laugh at the title, laugh at the intro, and in the middle demo section realize that what they thought was easy (drawing a circle) has much more complexity too it then they thought, and have the parody hit home in a different way that changes their approach to new learners (and also themselves as tech is always changing).
- Others: I think this is a balanced talk for everyone of all knowledge levels. At absolute worst, people will have a primer on how to draw a circle in a multitude of ways. That’s a pretty good worst outcome.
Kyle R. Conway has a PhD in Fine Arts, an MA in Theater, and experience at successful startup/incubators. He is a 10+ year Linux Desktop user (by choice) and Fedora Linux contributor. He likes tea.
I’m a long-term ncdu user, but I recently discovered gdu which is much faster. This isn’t to say ncdu is bad or undesirable anymore, but for most cases I’ll be replacing ncdu with gdu moving forward for the speed advances alone.
If you haven’t seen either of these tools I suggest you check them out. They’re fantastic for quickly identifying directories and files that are taking up the most space on your hard disks via the command line in a more visual way that makes it easy to both find and delete unneeded files and directories.
You can navigate into and out of sub-directories that are also calculated and use keyboard shortcuts for all relevant actions.
I’ve shown gdu here because I’m newly enamored by it, but ncdu still has more features even though it is truly slower.
At any rate, these are both highly recommended applications. I’ve used them on local computers, remote computers via ssh, mounted drives locally (nfs, smb, etc) and on Linux and BSD. I’m currently using this on TrueNAS Core (FreeBSD) and TrueNAS SCALE (Linux) to generally sort out some erroneous backup strategies I tried over the years.
Bottom line: highly recommended.
What happens when you just get frustrated and buy an old server on ebay? Well… I don’t know yet because at the moment I’m checking the RAM with memtester on a System Rescue CD running off of a bootable USB drive. What I do know is that this computer has 64G of ECC RAM, 2 Intel xeon processors with a combined 24 cores, and 8 3.5″ drive bays.
My general plan here is to consolidate other computers that were providing FreeNAS (now TrueNAS), XCP-ng, and other functions into a single unit using the now alpha―should I be scared?―TrueNAS Scale. I’m not switching because TrueNAS is lacking in general as a NAS because it’s been great. It’s just that the VM solution, bhyve, is both not what I’m familiar with and seems generally less good for the virtualization I do. Additionally, TrueNAS is based on BSD, and while BSD is great, I’m far more experienced with Linux having used it for 10 years, and Scale is:
- Built on Debian Linux
- Maintains ZFS for file system
- Integrates the more familiar KVM for virtual machines
- Adds Docker for containers
Basically, it should allow me to consolidate:
- My virtual machines
- Currently running on a mix of desktop computers with KVM and a hobbled together machine running XCP-ng.
- My NAS
- Currently a dedicated old desktop computer with the sides off.
- My Docker Containers
- Maybe PFSense (dare I virtualize this?)
I’m have some trepidation about using the alpha TrueNAS Scale on this system that I actually intend to use for real, but I’ve also been very very interested in using this particular iteration of the Free and Open Source project TrueNAS since I heard about it sometime last year (or was it 2019?―what actually is time?).
End of post update
Since I started writing this post I’ve:
- generally validated the hardware is working
- added an internal SSD to directly to the SATA ports
- installed a fresh copy of TrueNAS Scale alpha
- Setup a single-disk pool (pool?) to test things
- installed a docker version of Nextcloud that works well
- created a working VM of Debian 10 Linux and accessed via included VNC
- happily played in the shell with my known panoply of Linux terminal commands (so much less context switching!)
- and generally explored the new web-based GUI (I’m liking it).
I’m not sure exactly when I’m going to fully fully commit to moving all of my day-to-day data over to the new machine (need to add non-test disks for non-test pools), but I suspect in the coming weeks I’ll gain an amount of trust to do so. The release notes indicate a certain stability in many of the elements independently (though when you bring things together who knows), but it looks good.
I’ll likely update here as I encounter problems or move additional items to the server.
Ubuntu server has a nice installation up-front that allows you to pre-select some tools and services at install you might want to have running on your new server.
If you happen to select Wekan it will default to port 8080.
If you then happen to want to install Jenkins via their Debian/Ubuntu method it will fail to fully install at the `sudo apt-get install jenkins` section due to the port 8080 already being occupied.
After running the above command you can edit port in the following file:
sudo nano /etc/default/jenkins
Edit the numbers of the identified port to something other than “8080”
# port for HTTP connector (default 8080; disable with -1) HTTP_PORT=8090
You can see a video here: https://youtu.be/XVei-AeXLLo
pip install --user pipenv
Create and enter project folder:
Install software for your project (while in project folder):
pipenv install django
Enter pipenv shell:
sudo dnf install direnv
Automate entering the pipenv environment (while in project folder):
echo layout pipenv >> .envrc
Now every time you enter or exit the folder you enter the pipenv environment seamlessly. 🙂
Check out https://kellner.io/direnv.html for advice on how to setup the environment to display in the bash prompt.
I’m a fairly good marketer because of three things:
- I seek the truth like a good journalist.
- I have a doctorate in Fine Arts (emphasis essentially in storytelling).
- and from an ethical perspective I want to ensure that the story I tell is true (not just technically, but perceptually).
I think it matters that the impression you create in a story actually rings true in reality, and not just in some small, narrow, legal-definitional sense. I strive for that in all the work I do because the story isn’t worth telling if it’s a lie or someone will feel had post-transaction. I’m in it for the truth and the long-term.
But the thing I hate most is marketing myself. It’s not that I’m incapable, but any reduction of a human person is inherently untrue. All human beings contain multitudes―so too do I.
However, the below tweet has reminded me of the importance of at least sharing things I’ve done more publicly.
It’s not that I’ve tried to hide things, but spending the past nearly decade at startup/incubators in the healthcare space and more recently a non-profit have been situations where the work I’ve done has been huge in scope, fast by necessity, and in most cases private by default.
That’s a far cry from the work I did as an artist/educator which was able to be vibrantly public (see #2510s project, for example, and the accompanying exercises). I’ve since done much other work, but I’ve neglected to organize it in a single location and in some fashion as to make it digestible for others. You’d be forgiven for not knowing about my visual art/graphic design showings at some coffee shops (because I mostly didn’t mention them), and my 3×5 project (which is probably somewhere online), and my photo manipulation project of soft squares (which I just found yesterday while cleaning up some photo files).
You probably didn’t know about a brief series I did on the negative space between bicycle frames.
Or my flat, cartoonish, object series (some below).
None of this includes the work I’ve done writing code, parsing data, researching, or any other number of things. It’s missing the work I’ve put in learning blender and creating new and interesting things there, often for the Fedora Linux project as a designer.
You can’t know if I don’t tell you.
So I’m going to try to take some time to arrange these things in a singular location in categories that make sense. And, honestly, not just for you―but for me. I honestly forget most things I work on, because I work on so many things.
The trick, as always, with art is to know when something is finished.
A number of years ago I was trying to learn python. Random numbers have always amused me (as I was recently reminded by a twitter nod to the weird usage of spreadsheets).
A user named @context_ing tweeted: “I love finding the ways in which people use spreadsheets. Personally, I use them for mostly budgeting, workout tracking and travel planning. Here’s a few in the wild I’ve found. Would love to see more! Please share if you’ve come across any or have any yourself.”
I felt compelled to reply with my own little story. “Reminds me of a decade old excel project. A playwriting book said something like “I guess it would be a play if you cut up words from a dictionary and pulled them out one-by-one, arranging them into lines of 10 words under character names, but it wouldn’t be a very good one.” So I took the entire public domain text of Oscar Wilde’s classic and had Excel recreate the play on every reopen of the file by randomly selecting words and character names I think using a vlookup and random. The result was interesting (and likely bad theatre).”
The text in question (blasted tweet limits!) was Oscar Wilde’s The Importance of Being Earnest. The resulting play was garbage, but that random interger generation was magical. When combined with other functions it really could do wonderful things for art.
Fast forward some (10?) years and I had a different problem to deal with: I needed to seamlessly transition all staff and clients from one grouping of technology services at one company to a different group of technology services at a new and different non-profit that was going to just continue doing basically the same work for basically the same people.
To remove almost all complexity from this story: I needed passwords; lots of random, unique, and strong passwords.
I once again turned to my friend the random number generator, but this time in python rather than excel. I coded up a script that would allow me to specify the number of words I wanted, unique separator I desired, and―importantly―how many of these unique passwords I wanted to be generated in one go.
I had the program roll digital dice and lookup words from the EFF’s Diceware password list and then spit them out. People would get their passwords and privately think I was just very adept at coming up with wacky sounding passwords, but I did not deserve this misconception as random integers were to blame for everything.
Eventually I thought it would be a good idea to create a sort of Public Service Announcement on the web about the odd truth that a list of words obtained by rolling dice really can be unique.
The end result is a Twitter bot and a Mastodon bot that very frequently tweet out unique passwords they’ve generated (though you probably shouldn’t use them). More people follow on Mastodon than Twitter, and Twitter relatively frequently blocks my bot’s tweets makes me unnecessarily prove that there’s a human behind the bot to get things going again (anyone at Twitter can explain this?).
At any rate, here’s some examples embedded below. Note that I also added the Harry Potter wordlist as well. There are others for your enjoyment on EFF’s site.
Lastly, there are infinitely better versions of this if you’re looking to generate a password. I’d recommend the much more easily installed passphraseme by Micah Lee.
At any rate, I hope you enjoyed my PSA.
#letsroll #muggles #d20— dicewarebot (@dicewarebot) August 21, 2020
18-18-14 → #england
20-4-1 → #representative
3-9-13 → #greeted
14-16-17 → #disappeared
14-7-6 → #transported
3-4-2 → #strong
Roll your own @ https://t.co/q1skhcu0sG
This time around I was a late adopter (very late) and only recently upgraded my laptop to Fedora 32. It’s great to install a free and open OS and see a wallpaper you worked on greeting you (as I did with Fedora 32). I was involved in creating the Fedora 26 wallpaper as well which featured a treeline that followed a sound wave of my voice saying the word “Fedora.”
I was recently able to attend the Nest with Fedora event (an online, from home, mid-pandemic version of Flock that was wonderful as I was able to “meet” many of the screen names I’d seen in forum posts and email lists for years.
Fedora’s design process is open but not many find their way to the ticket thread to follow along (here’s a link the above wallpaper’s thread). I figured I’d share some of the other angles and shades of the above that I had been using as my background until my recent upgrade―initially for testing but then they just kind of stuck. They’re much too dark for a default Fedora release, but I figured I’d share them here. My favorite is the lone object, floating in the void.
I’ve been cleaning up some items and came across a series of index cards I was using for note-taking during my doctoral dissertation. This one is on the subject of creativity, freedom, attention, and rules.
While this was a preferred method of mine years ago I’ve since migrated to Emacs’ org-mode. I happily typed these in and can say goodbye to the cards themselves and more formally the process.
At any rate, I have some older quotes in a more quickly parsable medium now. I may revisit some of the great ideas in that book in the future here or elsewhere. Mostly I am writing this to say: once I took notes like this. Future self, do you remember this?
The Poster Elements
This poster is comprised of the following primary elements:
- Partial phrase: “constant pressure, constant activism” uttered by Noam Chomsky in a recent interview.
- Two Works Progress Administration (WPA) posters:
- Font: Blackout by The League of Movable Type
- Grit: Manipulated grittiness (me) from a photo by Yeon Li on Unsplash.
The Creation of Fire
The WPA has long been a source of inspiration, awe, and and envy for me. With an extensive background in the arts and theater, the very concept of the government directly investing in the arts in a profound way that leaves a deep impact not only at the time but nearly a century later is something akin to the creation of fire―and the arts was only a part of that wonderful project.
The recent centrality of the Green New Deal―with it’s framing firmly and clearly recalling the New Deal, from which the WPA emerged―has allowed that previous envy to turn to a weird nostalgic hope that my own lifetime might have such a force of art unleashed on the nation.
And if you haven’t read the Green New Deal take the below, easily accessible links, as me encouraging you to read it. I highly recommend the attractively formatted 14-page PDF version, but here are both: [html] [pdf]
So entwined is this national history of art (even the stylistic components) that as the Green New Deal has continued to grasp the imagination of climate activists it was even promoted by commissioned artwork recalling that distant past.
I’ve long been musing and meandering internally about somehow contributing artistically to this Green New Deal reality that I would like to exist. Sanders’ movement was and is a part of that reality and seemed the most obvious conduit through which to achieve it.
It still is.
Noam Chomsky’s musing on the Sanders campaign―notably distinct from the movement―was instructive for me:
It’s common to say now that the Sanders campaign failed. I think that’s a mistake. I think it was an extraordinary success, completely shifted the arena of debate and discussion. Issues that were unthinkable a couple years ago are now right in the middle of attention.
The worst crime he committed, in the eyes of the establishment, is not the policy he’s proposing; it’s the fact that he was able to inspire popular movements, which had already been developing — Occupy, Black Lives Matter, many others — and turn them into an activist movement, which doesn’t just show up every couple years to push a leader and then go home, but applies constant pressure, constant activism and so on. That could affect a Biden administration.– Noam Chomsky on Democracy Now
So in addition to the nice quote and concept of “constant pressure, constant activism,” this comment helped me to contemplate what Sanders’ Not me. Us. movement might look like without the Not me part―just Us, graphically.
Yes, it is extremely basic, and no, I can’t say I thought about everything fully here from a design and/or marketing perspective as I was just making a poster with a nice quote, but the simplicity of US being on the bottom center of an otherwise empty sign for many reasons felt right.
- Underdog: Us isn’t on the top… yet.
- True Center: Us isn’t even really on the left―Us is center.
- Young/Small: Us isn’t big enough… yet.
- Acronym: Us is also the U.S.
- Sans Sanders: Us doesn’t have a Me that it’s not anymore―it’s just Us.
On the last bullet point: I did briefly contemplate having a
Not me on top of the Us, but it’s not needed and it’s not the point. There’s a beautiful simplicity and solidarity in the lone US on a sign, especially when it’s held by characters drawn between 1936 and 1940 as part of the WPA, which was part of the original New Deal, originally to promote books (and presumably the scary socialist libraries that house them). You can see artist Arlington Gregg’s other WPA poster work at the Library of Congress.
Let me know what you think of this thing. And, as the Sanders yard sign was recently stolen from my font yard I’m thinking of replacing it with an “US” yard sign. It might look nice for a minute before it disappears, but it’s meaning would live on.
By Kyle R. Conway on 2020-04-15 in GNU Emacs
Note: This was written with the purpose of being less detectable as a structured poem if the line breaks are removed. I’ve placed that version immediately above the formatted sonnet.
(Secret) Sonnet #011
In quarantine I have been writing thoughts down in my org-mode notebook to preserve the things I’m thinking as the world’s distraught with stay-at-home’s and flattening the curve. I realize I have been trying to hide the simple joys of language from myself with self-imposed busyness I tried ignoring simple keys to mental health.
So once again I’m writing like I did before I found myself sheltering in place and now I’m so embarrassed that I hid the writing I should otherwise showcase. At any rate, I thought I’d write and share this secret sonnet of which you’re now aware.
In quarantine I have been writing thoughts
down in my org-mode notebook to preserve
the things I’m thinking as the world’s distraught
with stay-at-home’s and flattening the curve.
I realize I have been trying to hide
the simple joys of language from myself
with self-imposed busyness I tried
ignoring simple keys to mental health.
So once again I’m writing like I did
before I found myself sheltering in place
and now I’m so embarrassed that I hid
the writing I should otherwise showcase
At any rate, I thought I’d write and share
This secret sonnet of which you’re now aware.
By Kyle R. Conway on 2020-03-22 Sunday in GNU Emacs
When stuck in time between a tunnel’s light
and each escape obscured by mortal dread
from whence shall solace torch a flame so bright
alleviating anxiousness in head?
Must nothing happen as all sit and watch
such silent and invisible true foes
encroach so quietly and cut each notch
by stealing life breath underneath each nose
Uncertainty―uncertain though it seems―
may be a sort of blessing so disguised
to see beyond collective, fevered dreams
and poems composed in fear soliloquized.
By writing I will quell my anxious mind:
immortalized anxiety enshrined!
# Import Libraries import pandas as pd import matplotlib # Magic Code for Inline Display # in Jupyter Notebook (if you're using that) %matplotlib inline # Create Dataframe from tables at URL for Iowa COVID-19 Testing url = 'https://covidtracking.com/data/state/iowa/#history' df = pd.read_html(url) # There are multiple tables on the page, # and they are saved in a list. # Choose the 2nd table and rename to 'df' df = df # Set the type for the column 'Date' as a datetime type. df['Date'] = pd.to_datetime(df['Date']) # Set the newly typed "Date" column as the index. df.index = df['Date'] # Create a new dataframe from the original with only # the 'Pending','Negative', and 'Positive' columns iowa_testing = df[['Pending','Negative','Positive']] # Plot this new dataframe as a stacked bar graph # Invert the axis so time moves forward. iowa_testing.plot.bar(stacked=True).invert_xaxis()
It outputs something that looks like this.
This is the original playscript I wrote for The Art of Python that took place at PyCon U.S. in 2019. I additionally performed the piece at PyCon with the directorial help of Sumana Harihareswara and the stage management work and acting performance as the Figure by Mel Chua.
There were some changes to this script for the live performance. I created slides for the event and they were displayed behind me during the performance and are presented throughout the script below as images.
(slide reads: “THE VOID”)
(the stage is empty. We can make out one person, a figure, front and center.)
(staring, wide-eyed, excited, past the audience – beat * 3)
(slide reads: “This is Kyle –”)
(beat * 3)
(slide reads: “he’s learning the new skill of –”)
(Terrified / heavy breathing / beat * 1)
(slide reads: “computer programming –”)
(Covers his eyes with one hand, twists away from the audience as if what he is about to do might blind him, and clicks a single finger down on an imaginary ENTER key. Bright lights up full. Beat * 3 – he peaks through his fingers.)
It worked? It worked! Ha ha! Yes! Look at that. There it is: “Hello, World!” (Hand on hips – power pose) And you thought this programming thing would be hard.
(slide reads: “but Kyle was in for – “)
(Red lights, loud, blaring sirens)
(Kyle freezes in a macabre, horrific expression and body position)
(slide reads: “– a rude awakening.”)
Not a Programmer
(slide reads: “on not being a programmer”)
No, I’m not a programmer, I’m just better than you are at excel spreadsheets.
(click sound. beat.)
No, I’m not a programmer, I just figured out how to use this query-like syntax with your data in Google’s spreadsheets.
(click sound. beat.)
No, I’m not a programmer. It’s just a little bash script I wrote that helps me journal better from my phone, laptop, and desktop.
(click sound. beat.)
Ha! I wouldn’t say I’m a programmer, I just needed to batch download a really big list of files from a service we were using and python seemed easiest after a google search.
I’m sorry, what?
No, yeah―it did work―ran for about 80 hours straight before finishing. Lots of files.
(click sound. beat.)
Okay―fine―I’m doing some programming: but I’m not really a programmer…
Picking a Language
(slide reads: “on picking a programming language”)
Hi. My name is Kyle and I’ve decided to become a programmer. Several blog posts, books, and twitter surveys have lead me to believe that it is of the utmost importance that I:
(the next sequence is rapid-fire)
(between each beat are quick head, body, and vocal tone adjustments)
(very short beat. matter-of-fact:)
Learn Visual Basic, because my high school teacher gave me a book one time and I can probably find that in my basement if I look hard enough.
(very short beat. sarcastic:)
Learn Bash, because it’s already installed on the self-inflicted torture device known as my Linux Desktop.
(very short beat. in jest:)
Learn emacs lisp, because you’ve already invested the time into memorizing emacs keybindings and you’ve heard it could use a good text editor.
(very short beat. whatever:)
Learn Go because people talk about it on twitter a lot and it was created by Google.
(very short beat. haughty:)
Learn COBOL because it’ll always need maintaining, and it pays the best in my geographic location.
(very short beat. overheard/whisper:)
Learn Python because it’s the “second best language at everything.”
(very short beat. honest:)
(very short beat. snooty:)
Learn R, because it’s the best language at data analysis and graphical representation.
(very short beat. authoritative:)
Learn HTML and CSS because you can make things on the internet―oh, wait―nevermind―there’s disagreement as to whether or not these are programming languages?
(beat. drop all pretense. speak directly to audience―with pure, sincere, exasperation:)
Am I really learning programming if I just know something like “hello, world!” in 10 programming languages!?
… and HTML and CSS?
(slide reads: “submitting a question to stack overflow”)
(Kyle appears frustrated, staring straight ahead and typing in furious bursts.)
Python. Sort. Array. Count. Items. … Search.
No. No. No way! What? No.
(loud sigh. lowered head. stretch neck. he tries again:)
Python. Array. Group-by-count.
(beat. tilts head:)
Oh. No. No, no, no. Not that, kind of…
(beat. types again)
SQL group by with python?
Hey! That’s kind of it…
Oh! Rude! That’s not a helpful or kind response. Do I even want to submit the question here?―mean!―I already don’t know what to ask or how to ask it and apparently that’s a reason to say that you shouldn’t even ask the question.
Maybe I’ll just figure it out myself…>
(a transition. Kyle is holding a rubber duck.)
I’ve heard talking to you helps…
(slide reads: “Kyle works.”)
(duck is gone. cracking knuckles and stretching:)
Done―well, an example anyway, explaining exactly what I want to do and suffers the same problem as my actual work. But I still don’t know how to solve it.
Submit to stack overflow? Submit?
(resolve. clicks enter confidently:)
An answer!―that does basically what I need―and they think I asked a good question―and I got fake internet points!
Okay then. Maybe I can do this.
(slide reads: “on going to a meetup”)
(hands in pockets. kicking dirt. retelling:)
So, I was sick of trying to learn things on my own―by myself, in my basement―and I found a meetup online. It was at a chain soup and sandwich place on a Saturday.
I clicked “attending” and went.
(miming what’s described.)
I got my laptop charged up, threw it in my laptop bag along with a notebook, a pen, and my charger, and slung it over my shoulder and headed in.
I guess I didn’t know what I was expecting? When I walked in and scanned the room looking for more than like four college students with their laptops open over coffee. There they were―I think. Play it cool!
I headed to the counter and ordered a coffee―maybe I’d get thirsty―and walked up: “Is this the python group?”
(uncomfortable smile, holding breath and upright―more uncomfortable long beat…)
It was. That’s what it felt like―forever. They were nice. Young. Old. Macs, Linuxes, and Windows. Qwerty, Colemak, and Dvorak. Gnome and i3. Emacs and Vim and VSCode and Sublime. Working in finance, consulting, healthcare, insurance, startups, and going to college.
They were just people.
I didn’t learn much about programming that day―I did learn that there are real people in real life who care about some of the things I do.
I needed to reach out to more of them.
(break fourth wall. wink.)
Sending an email to a stranger in tech.
(slide reads: “on sending an email to a stranger in tech”)
(straight to audience. single light.)
(like an awkward introduction at a job interview. exasperated:)
Hi. I’m Kyle. I’m new here. I want to get better at this technology thing. Can you help me? You seem like you could help me.
’cause I need a lot of help.
(ding sound. beat. overly formal:)
Hello. My name is Kyle R. Conway. I have a PhD … in Fine Arts … and you do art … and so do I … but you also do tech things … tech things with art. I would like to do what you do. May I join you?
(extends hand for handshake. beat. wide eyes. beat. more intense.)
(ding sound. beat. casual:)
Hey, tech blogger. I really liked your post about unpackaged fonts with permissive licenses. I think that’s really cool.
(ding sound. beat. rapid-fire round. cheeky:)
(ding sound. beat. Irish:)
(ding sound. beat. concerned:)
I promise I’m not a creepy stranger.
(ding sound. beat. intense:)
I. Am. Your. Biggest. Fan.
(gong sound. rubbing eyes. honest:)
This is never going to work.
(quick fade. slide reads: “Kyle’s actual first email to a stranger in tech.”)
Thu, Mar 17, 2011 at 11:36 PM>
Would the “Nina” font meet the criteria for inclusion?
(slide reads: “Thanks for writing back, Máirín”)
The Figure and the Void.
(A figure stands alone in the darkness.)
(The figure shouts with naive confidence into the void a single word:)
(The figure finishes the phrase―now a question:)
(figure stands awkwardly, concerned, awaitang a response with growing insecurity.)
(slide reads, slowly, word-by-word: “what. can. you. do. to. make. this. journey. easier. for. others?)
(slide reads: “end”. )
If you’ve not messed about with Blender 2.8 yet you’re truly missing out. I’d previously taken some cracks at getting into this 3D software before and quickly found myself returning to the more familiar world of pen and ink or the 2D Inkscape for my artistic needs. But, just look at this procedural marble that I built that changes colors with ease―and also changes perspective (i.e. 3D).
It’s kind of incredible.
Below is a screenshot of the node setup I used for the marble. I’m not entirely sure that all of those connections are necessary, but the leftmost node is a texture, then I color it, and have the color connect to both the color of the Principled BSDF shader and to the roughness (which more or less affects how much it reflects the light; or how shiny it is).
I definitely do not understand what I’m doing well enough at this point to be said to have any idea at all of what’s going on, but I’m having a great deal of fun with it. More, certainly, to come.
I’m asking you to submit a single sentence that tells your own One True Thing about working in tech for a unique performance at this year’s PyCon conference. Please click here to submit (takes less than a minute!).
Or, if you’re up for something more involved, to submit a longer proposal for the larger event.
At last year’s PyCon I was one of several writers and performers at a Hatchery event called The Art of Python, which sought to encourage and showcase novel performance art that aimed to help technologists share their emotionally charged experiences of programming. I wrote and performed an original show titled Hello!!! … World? which outlined my own trials and tribulations in a series of vignettes on trying to get into programming without being around or knowing anyone personally who was a part of those communities. As a small taste, one vignette was titled on submitting a question to stack overflow.
This year I’m part of the team that’s organizing the event again. We are aiming to create a dramatic narrative around programming and programming culture that shapes so much of all of our daily lives (from our smart phone interactions to surfing the web to banking and even reading this post). We are interested in how fictional narrative, visual and performance art, and different presentation formats can lead to a new sort of self-consciousness and reflection on culture. All society is permeated by technology, whether or not someone is a programmer, and most people have had positive, neutral, and adverse interactions with technology (whether building, consuming, or indirectly being impacted). In short, technology is not a black or white issue, but instead a collection of frustratingly similar shades of gray.
The Zeitgeist is teeming with moral and ethical issues both in and brought about by computer technology―be it developers challenging companies’ practices that conflict with personal values, software licenses trying to append morality clauses, the increasing omnipresence of technology that enables controversial surveillance, or the seemingly endless push toward dark patterns in design.
Technologists face many ethical and moral decisions in computer science and software development. What was the situation? What was the ethical and/or moral discord? What decision was made? How did you come to that decision? What was the outcome for all stakeholders? How do you feel about it now? What might you do differently in the future? Why?
These questions take time to answer and are difficult to dramatize successfully to honor their truth.
An Old Technology
Storytelling is an old technology―a powerful medium―through which we gain empathetic understanding.
All culture is now technological culture to some extent. We believe it is important to integrate the stories of those making this technology to broaden their lexicon and ours. We must highlight their ethical struggles to bring greater transparency and self-consciousness to both technology industry professionals and the public at large. Hopefully this also inspires empathy for all people, and urgency for any obvious changes that result from our workshops and the resulting art.
From Audience to Creator
While our event this year will have unique and pre-rehearsed performances as we did last year, we will also have a workshop following the scheduled performances. During our workshop we will discuss collaboratively how a variety of issues have cropped up in the lives of the programmers participating, as well as the end-users who experienced the technologies. Everyone will have a chance to work with the other directors and playwrights in order to take these insights and begin to turn these stories into dramatic narratives highlighting the personal struggles of these developers that are building the technology that ends up on the front pages of our papers and the billions of tiny-screened pocket computers.
One True Thing
As a part of the planned performances we want to transition into our workshop with a series of real issues crowdsourced from the broader tech community. To that end, we’re asking you to share One True Thing with us so that we can share your truth at PyCon this year (and elsewhere) in a collaborative performance that we hope will inspire more art from technologists.
One True Thing is a performance comprised of single-sentence statements of truth crowd-sourced and eventually read out loud by members of a live audience as statements of someone else’s truth to be publicly shared and communally experienced.
Note: At the moment I’ve sourced these from technologists on Twitter. Obviously every group would provide their own unique takes, so these should serve only as an example.
Here are some example statements:
- “Racism struggle does not belong to one race.” – @LambyTech
- “Mentors are incredibly important for succeeding in tech” – @js_tut
- “I always joke that someday I will quit the tech industry so I can code all day” – @sarah_edo
- “Moral and political issues of tech aren’t moral and political issues because they are tech.” – @dingstweets
- “A women in tech recently asked me if I had any advice & all I could think of was: have the patience to prove people wrong the rest of your career.” – @jessfraz
- “When you ask a Deaf person if they can read lips, you are asking if you can put the burden of communication solely on them.” – @csano
- “you tech people need to hang out with artists and creative folks more, seriously.” – @noopkat
- “algorithms reflect the biases of the people who make them.” – @evacide
- “So many of the concerns raised about tech today seem to conflate societal issues with the technology that makes those societal issues more visible.” – @mmasnick
Share your One True Thing
Please click here to submit your One True Thing (it takes less than a minute!).
Thanks for reading and for sharing your truth.
# MagPi Issue Downloader ## Import import urllib.request import shutil import requests import os from bs4 import BeautifulSoup # Identify URL to parse url = 'https://www.raspberrypi.org/magpi-issues/' # soup it Link = requests.get(url) soup = BeautifulSoup(Link.content,"html5lib") # get all link tags tags = soup('a') # loop tags for hlink in tags: # create variable for full url issue = hlink.get('href', None) # only follow hlinks with PDF in the url if 'pdf' in issue: # download files with wget to current directory print("Downloading: " + issue) issue_link = url + issue os.system('wget %s'%issue_link)
I’ve been playing around with other blogging platforms for a while now… Ghost, Hugo, Django, and others. Is WordPress what I continue to use? Something else? I wish this wasn’t such a struggle, but I’m keenly aware of what drives this indecision.
I am, first and foremost, driven by a nostalgia for a time I remember more than participated in, where websites were closer to https://motherfuckingwebsite.com/, devoid of most types of styling and thus:
- easily understood (from a technical perspective)
- and thus… hackable.
It’s not particularly mysterious why these things appeal. However, they’re simultaneously conflicting with the following.
I’m a sucker for good design. You’ll note that this is mostly in direct opposition to the simple, text-based, monospaced font aesthetic in #1. Yes, I have a couple advanced degrees in art. Yes, I’ve worked in marketing and design for a number of years. Yes, I care about how things look and my eyes are drawn toward minimalistic, but chic, so-called content.
I actually find it great fun to play around with other platforms and I find myself doing this frequently. It’s honestly one of the reasons I ended up finally getting a domain and a shared hosting server. I like messing about with things to learn new things.
A selection of some of the many site platforms I’ve setup and used to write on in the interest of good-old-fashioned curiosity and general interest.
And so, wordpress just updated it’s blogging platform and this somewhat older site got upgraded is well. It’s substantially more pleasant to write in than the previous iteration―but it lacks the simplicity of something like Hugo (especially if I were to set it up to use emacs’ org-mode as the base as I’ve been planning). We’re not there yet.
For the moment I’m going to ignore this inner conflict about what to use as a platform. Perhaps that will allow me to focus on the projects themselves. At any rate, if you’re interested in checking out what I’ve written at those other projects do click the images above to visit wholly different pages.
In in 1993, when Mike Goodwin originally wrote this essay, I was a very young boy and I find it startling how similar the arguments are for encryption with respect to constitutional considerations 25 years later. My thanks to the people who fought the first crypto Wars.
I’ve added some complexities this time around. There’s a new shape (the triangle) and a strong implication that this is a multiplayer game. There’s also the concept of overshooting the target (i.e. the goal―square|box). This results in immediate loss for the player.
In the first version of the game the player was rewarded for rolling a 1, in this game, the player is rewarded for rolling a 2 (or two 1’s in a row). There is no concept of restarting the game by implication in the rules (i.e. roll until you roll a 1), so we’ve created a sense of failure that the other game didn’t have.
It’s still purely a game of chance (no skill), but the game has changed.
Sidenote: I find it odd that I’m most fascinated by the philosophical changes the game. The idea that the game went from one of self-determination and meaningful effort in the face of loss, to one where loss means losing decisively and failing forever. Not only that, undershooting has a penalty (i.e. skip one turn), while overshooting is an immediate loss. This game requires perfection via luck.
I hesitate to say this game is designed yet, but there are clearly elements emerging. The key being the most interesting. Also, the quick use of unicode for the shapes in the rulebook is quite lovely. I’ve added version numbering (per the first post) to keep track of progress as we move along. I also sort of like the void―the space outside the gameboard―that results in automatic death. Stripes, in this game, are evil. Players must stay inside the lines.
Perhaps in the next version they’ll find a way to break out…
I spent about five minutes playing around with this thing. Kind of fun. Very colorful. No apparent export tool 🙁
This is the start of a new game.
Applying game constraints in collaborative activities often generates more creative ideas―breaking people outside of the pre-confined boxes. This different context and ruleset allows for an exploration of why the walls of the box were there in the first place, whether or not they still serve a purpose, or even if a box is appropriate at all.
I’ve been growing in my certainty that games are an appropriate medium for telling certain types of narratives. I’ve been on-and-off working on a boardgame about the healthcare system for the past two years. Having never produced a boardgame before it’s a process of fits and starts, uncertainties, whiteboarding, planning, complexification, distraction, and not enough real-world testing. Who knew healthcare was so complicated?
Earlier this week my son showed me a mass-produced book that he was excited about. It contained a great number of very basic, simplistic, and heavily-branded single-page board games. None of these, it seemed to me, would win awards or capture attention for too long, but there was at least one virtue: they existed. Someone, somewhere, had played them.
Later I had a thought that stuck with me: what if I make a game out of creating games? What if I start by creating a very simple game and then add complexity and modify it in different ways until it grows to become something much more interesting than it started? Is that a good way to create good games?
Well, I don’t know if that’s a good way to create good games―but it is a good way to make creating games a game itself. I’ve gamified game creation for myself. I couldn’t be prouder of this theoretical process. The actual product may leave something to be desired though (feedback welcome).
I must admit that it gives me joy to allow the player to choose the di they use for the game. All sorts of fascinating thoughts arise from this one point of amusement:
- What if the player piece is actually the di itself (and the value of the player’s di actually directly influences gameplay)?
- What if the di is a choice on each turn (and increases or decreases the odds on each roll depending on desired outcome)?
- What if chosen dice can be combined somehow to choose paths, or branches, or even directions?
- Does the color of the di matter?
- Would the game come with dice (if sold) or would users always supply their own?
These thoughts make me confident I can produce version 0.1.1 (or whatever odd version numbering I choose for tracking this odd journey). I kind of like the idea of the eventual game being called “Roll One” (as in Roll 1.0). That the version numbers (let’s pretend this is 0.0.1) increase over time, always moving toward 1.0.
One last thought: what if the actual 1.0 game doesn’t just allow for the selection of dice, but also for the selection of the version of the gameboard (or ruleset) you play upon/under? What if you roll dice to determine what version of the rulesets and gamebard you use?
Perhaps I’ve been overly influenced by Merce Cunningham. Perhaps it’s for the best that I stop blathering on about what I might do and start doing. Perhaps that’s the point of releasing something simple. Perhaps this really is the start of a fun game (for me, at least). Wanna play?