Chris Padilla/Blog
My passion project! Posts spanning music, art, software, books, and more. Equal parts journal, sketchbook, mixtape, dev diary, and commonplace book.
- Go to school, learn how to hold a pencil properly
- Before I nailed that, I had to learn to write accurately - hitting the tops of my letters on the dotted lines
- Strain a bit to get it right, trading good form for accuracy
- The bad habit solidifies once accuracy became more important than technique
- Perfectionism goes out the window quickly when something just needs to get done
- When you can't lean on perfectionism and design, there's only room to follow intuition. A big plus in cultivating that!
- The rhythm helps with any creative process. Routine gets the gears turning for what to make next
- At the start, simply making it to the finish line is its own reward, regardless of how the music / blog / drawing turned out
- You could be finding the canonical source for documentation in a language.
- You could go down any number of small rabbit holes learning about the intricacies of a language. Say, for example, when to use the
thiskeyword in C#. - Maybe you're like me and you're also getting used to another IDE / Text Editor. In my case, I'm using Visual Studio to learn C# instead of VS Code.
- I grew up with an artist in the family
- My favorite>) stories are told through pictures
- Drawing as a medium has one of the widest spectrums for style
- Drawing, as a whole, has personal creativity baked in more so than music
- Leading with Curiosity
- Creation driving learning
- Expanding dreams
- It's a compiled language. SO there are some errors that are caught at compile time, like undeclared variables.
- Intelisense is strong here. Typing values right out the gate makes that all the easier.
- Self documentation is pretty wicked in Visual Studio. Opening up the Assembly Browser gives you access to ALL the properties and methods for objects and classes that are used in your project.
- Enums! From the TypeScript docs: "Enums are one of the few features TypeScript has which is not a type-level extension of JavaScript."
- Interfaces and Generic Types also are a borrowed C# concept!
- If you need a method that can access the data directly on an instance? Store the method with the instance.
- If need something that converts data from an instance, or is largely utilitarian in function, a static method could be a good option.
Holding With a Loose Grip
I have a nasty habit of holding my pencil with a mean pinch. I can't write for too long because my palm will get sore.
It's something I'm being mindful of now that I'm drawing regularly.
How it probably happened:
It's easy to imagine that in other disciplines, and on a much more serious scale. On sax, I knew folks that developed tendonitis. I've heard of artists with Focal Dystonia. Even when I taught marching band, I saw students push themselves to overexertion.
So I'm stopping to ask myself: What if it were flipped? What if the way I did things was more important than the end result?
Here's how it's going so far with drawing: comically!
My lines were already pretty inaccurate, now they're hilariously so! It's both frustrating and...fun!?
It's been a weird cheat for another benefit. Focusing more on how I'm holding the pencil has made it so I can let go of the result. In other words, drawing is even more playful than it was before!
I'm already translating this to guitar and piano to pretty great effect. Things are moving more slowly, but I don't leave either instrument with any cramps. Since the physical process was more pleasurably, lo and behold, I'm feeling even more bouncy and light after leaving a session.
W.A. Mathieu has a great essay in The Listening Book that advocates for practicing slowly. The message is different: practice slowly to learn quickly. But the sentiment is similar:
Lentus Celer Est
This is bogus Latin for Slow (lentus) Is Fast (celery). Write it large somewhere. It means you cannot achieve speed by speedy practice. The only way to get fast is to be deep, wide awake, and slow. When you habitually zip through your music, your ears are crystallizing in sloppiness.
Yet almost everyone practices too fast, their own music as well as others'. We want to be the person who is brilliant. This desire is compelling, and it can become what our music is about.
Pray to Saint Lentus for release from zealous celerity. Pray for the patience of a stonecutter. Pray to understand that speed is one of those things you have to give up—like love—before it comes flying to you through the back window.
Does it have to stop there? There's a big life metaphor here, I bet! Say: setting up your days where you actually enjoy them, have energy to do the most important things, and in a way that sustains relationships.
I'm going to keep trying: Holding days and practices with a loose grip.
Childhood Home Sketch
Beethoven - German Dance
🕺
When I started lessons last year, this was my first assignment. It took aaaaalll week to get to a point where I could make my way through it. Now, I'm able to brush it up and play it through in a couple of sessions. A proud moment!
Iterators in C#
In JavaScript, there's a bit of magic in arrays and objects. They have methods themselves like myArray.toString(), and they also have a special way of accessing entries through iterator selectors myArray[2].
C# actually exposes this method of class design through iterators!
To get that functionality, we need a method on the class that uses the this keyword:
public string this[string key]
{
get
{
return _dict[key];
}
set
{
_dict[key] = value;
}
}Above, we'll assume _dict is of type Dictionary, a built in Class that functions just like a Python dictionary or JavaScript object.
I've typed the above iterator value with a string, but you could set is as an int and use a List just as well.
Here's what it looks like if we were to reproduce some of the functionality of a JavaScript object:
using System;
using System.Collections.Generic;
namespace HelloWorld7
public class Object
{
private Dictionary<string, string> _dict = new Dictionary<string, string>();
public Dictionary<string, string>.KeyCollection Keys()
{
return _dict.Keys;
}
public string this[string key]
{
get
{
return _dict[key];
}
set
{
_dict[key] = value;
}
}
}An exception: we can't really expose keys as a static method like we would in JavaScript here. If Keys() is made static, we would also have to make the internal _dict public, which defeats the purpose of encapsulating it.
Once that's set, you can create an object instance and return keys like so:
class Program
{
static void Main(string[] args)
{
var myObj = new Object();
myObj["name"] = "Chris";
myObj["city"] = "Dallas";
myObj["pets"] = "Lucy";
Dictionary<string, string>.KeyCollection keyColl = myObj.Keys();
foreach (string key in keyColl)
{
Console.WriteLine(key);
}
// name
// city
// pets
}
}Rob Ingles Singing Lord of the Rings
I've been listening to Rob Ingles's narration of the Lord of the Rings audiobook. What a treat!
The books are full of songs and rhyme. Ingles actually puts these to his own singing interpretation. A friend told me that Ingles actually got Tolkien's approval for his compositions!
There's such a sense for mood, style, and melody. Really delightful! He really captures the folk feeling to Sam's Rhyme of the Troll:
Tom Bombadil's is probably my favorite. So bouncy, like a woodland Santa Clause. Rob even contrasts the sections with timbre, range, and articulation!! WOW!!
Deadlines as a Creative Tool
A friend of mine was admiring the honesty of a mutual composer friend in saying "I work by deadline. It's the only way I get things done."
After nearly a year of blogging and over a year of putting music out regularly, I tend to agree!
Listening to Intuition
What's worked for me is the regular interval that's expected of anyone putting things out online. Monthly newsletters, weekly podcasts, daily blogs. Except for me, it's been music, words, and art.
Especially in the beginning, arbitrary deadlines are a great way to kickstart a new practice. Some of the benefits:
Building Identity
Regularly sharing online at an interval is also great for identity. James Clear writes nicely on this in Atomic Habits. The gist being that we are what we regularly do. So to be a musician, you have to music regularly.
Doing it in public helps others recognize that as well. I've been so flattered by the folks that have said that they've really enjoyed my writing or that they bopped to an album during work. Cultural validation is part of that identity.
The Balance
There's a spot to find between two points on a spectrum. On one end, there's the rigidity of creating just to reach a finish line at one end. On the other, there's so much play and exploration and purely following whatever idea comes that nothing ever gets finished.
Personally, my challenge at the moment is being on the rigid side! I'm used to life-long commitments here, I played the sax for 20 years. So a new part of the process for me is taking time to reevaluate what intervals are still serving me and which ones need to change.
In other words, keeping quiet deadlines also means knowing when to let some go.
An example for me: In 2022, I wanted to release an album a month. Great fun! Very proud! So far, I've done that for 17 months.
I've kept that going while also picking up other practices, though. And the excitement for learning, say, to draw, has outpaced wanting to put an album out just because I said I would. And, of course, there are only so many hours in the day. So I'm at a spot where that needs negotiating.
No wrong answers, but taking the time to be intentional is what matters.
Like anything else in the actual creative practice — the structure around it requires both the lightness of play and a bit of detail orientation. When enthusiasm and play drives the decision, then the supporting choices can match effortlessly.
Finishing Sketchbook No. 4
The stack is growing!
This one was filled with more studies as part of the Proko courses I'm taking.
Lots of bean studies as part of the figure drawing course:
On to the next one!
Folkin' in G
I already broke a string and learned how to restring this guitar. What an adventure!
Learning Syntax the Fun Way with Toy Problems
Yes, you could go through tutorials and just type along with the video. Yes you could read documentation.
Most of us get into programming, though, because we like solving puzzles. It's not the only reason, but programmers are just those sort of folks that have an itch that's only scratched by seeing a destination and writing their way to it.
Say I'm prompted to write a method that converts a string into Pascal Case. Sure, I know how to do that in JavaScript! Heck, I can even do it in one line like a COOL PERSON:
string.split(' ').map(x => x.charAt(0).toUpperCase() + x.slice(1).toLowerCase())The fun part is knowing how to get that solution and discovering the C# way to do it.
static void ConvertToPascalCase()
{
Console.WriteLine("Enter a few words seaerated by spaces:");
string inputValue = Console.ReadLine();
string[] inputWords = inputValue.Split(' ');
string[] processedWords = new string[inputWords.Count()];
for (int i = 0; i < inputWords.Count(); i++)
{
string word = inputWords[i];
string res1 = word.Substring(0, 1).ToUpper();
string res2 = word.Substring(1).ToLower();
processedWords[i] = res1 + res2;
}
string pascalCaseRes = String.Join("", processedWords);
Console.WriteLine(pascalCaseRes);
}There's a double whammy here: You get to practice programatic thinking, and you get to learn the nuances of syntactical differences in another language.
Plenty of ways to make it a triple whammy, too!
If it's been a while for you, I'd recommend diving in and giving it a try! I think you'll be surprised by how much you enjoy it.
Apples
Faber - Energico!
Faaaaast fingers ⚡️
We're All Just Making Folk Music
My training is primarily in Classical Music, a high and sophisticated art form. 🎩
There's immeasurable value in it, just like classical literature and the impressionist paintings of Cézanne. It's art that transcends the dizzying pace of change.
These days, though, I love folk music.
I think a lot of what's being made today falls into that category, even beyond music: Blog posts, podcasts, videos, illustrations, games...
It's not really the latest and greatest, or the most sophisticated that's exciting. Most nights, I just want to lay back and hear someone preach the truth to me.
Rebecca Solnit, by way of discovery for me by Austin Kleon:
Adults, like children, love hearing the great stories more than once, and most religions have prayers and narratives, hymns and songs that are seen as wells of meaning that never run dry. You can go lay down your sword and shield by the riverside one more time; there are always more ways to say how once you were blind and now can see.
High art typically has an emphasis on correctness, style, and form. Precision and training are required.
What makes folk music really good is that the bar for entry is lower. It doesn't take much to start a blog. Nowadays, you can grab your computer mic or camera and start talking on your opinions, sharing your own twist on something you read today, or a conversation you had.
On top of that, it's much more communal in that way. There's more room for personal expression when the form is simple. But a shared story or theme ties the choir together. No need to chose between joining in or expressing authentically, there's space for both.
If you have a way of sharing online, you have a way of making your own folk music. If you have a guitar and know three chords, you can start singing along.
Nurturing Curiosity
There are a few why's behind my recent drawing habit. Here are a few:
Each of those points deserve a post for another day!
One of my biggest drivers, though:
I draw for my kids
I don't have any yet! Miranda and I haven't even tied the knot yet. But that is what's in mind as I'm exploring a new medium.
I'm aiming to embody a few things:
A tall order for just messing around with a pencil. It's goofy, it's silly, I don't have chops, and it's one of the most important things I do everyday - along with music, software, and even blogging!
While I love arts and music education, it can fall short in these areas. Teaching to a curriculum squashes curiosity. Personal creation is an afterthought in band classrooms. And, by trading personal creativity and curiosity for curriculum, personal dreams are tossed.
That's not the case with all programs. But, as a parent, there's no one better to model the things that I believe are most important in art and music than, well, the parents.
Leading with Curiosity
We're hard wired to be curious about the world we live in. There's wonder and awe around every corner.
How often, though, are we limited by identity, fear of wasting time, or are simply too distracted?
Drawing was one of those things for me. "I can never do that!," "I'm a musician, not an artist," and "I won't ever be any good" were all limiting stories. But I loved it all the same and wanted to explore that love.
Maybe my kids won't feel the same about drawing. (Kids, generally, don't have that baggage.) As they continue to grow, though, I want to be someone who can firmly model following a thread of curiosity, even at the risk of looking amateur.
Creation Driving Learning
We're also all naturally creative. If you've ever uttered the phrase "I don't have a creative bone in my body," you're probably only thinking of a limited spectrum of creativity. Sure, drawing a picture is creative. But so is software. And so is marketing. And so is teaching. And so are spreadsheets. So is cooking.
We've all got it! It can be easy to shy away from it in new territory, though! The same limiting stories from above come in and can discourage.
One of the biggest lessons I've learned through drawing, piano, guitar, and writing music is this: You don't have to be good for it to be enjoyable. Being some level of competent helps with flow. But, before that, the process of gaining new skills easily replaces the pleasure of being in flow! My favorite sessions playing piano have been those where I'm absolutely stumbling through a new tune, but I'm getting to explore new chords, melodies, and the configuration of my hands at the keys. I'm reminding myself that every time I draw, and want that to be a driver in what ever my kids get hooked on.
Maybe you're worried about friends and colleagues seeing what you make and embarrassing yourself. Wonderful news - the people that actually matter, typically, are more concerned with the spirit rather than the form. A loose drawing of a friend is probably more endearing than a commissioned oil painting, because it captures the spirit of the maker.
With my kiddos, I want them to feel confident in their ability to bring something new into the world, even if it's with tools they're not as familiar with.
Expanding Dreams
Like I said — maybe my kids will think drawing is for lame Dads. But that's not the point in the long term.
At some point as we grow up, dreams of becoming astronauts evaporate into realistic plans of becoming an english teacher. In some ways, that's all fine and well. Rubber has to meet the road at some point.
Art, music, storytelling, acting - pretty much any creative craft, though, brings dreams to reality right away at a young age. My 7 year old son may not be able to practice being an astronaut at that age, but if he loves drawing, he can practice art and grow up learning to be a real artist with real craft.
That early seed of making a dream real sets the stage for a lifetime of confidence in their own ability to do just that with even more vision.
Once a given dream is realized, then there's what's next. Probably you've been fortunate enough to experience that - "I finally got my dream job!! ...now what? Is this it?"
No, I may not raise the next Aaron Blaise, but that's not at all the point. What ever it is, if I can be a model and help my children pursue and realize their dreams at a young age, that's a gift that will compound over their lives. Because their dreams will grow. "Being a cartoonist" evolves into "being an art teacher" evolves into "working in fundraising" evolves into "creating an arts education non-profit that serves their local community" - or any number of alternate paths.
By modeling that in my own life - by allowing even my tiniest seeds of my personal dreams to draw, to play instruments, make music, develop software, write essays, and serve people - I stand in a good position to help nurture what ever that looks like in the lives of my children.
TypeScript is Secretly Just C#
TypeScript is MOSTLY just a way of bringing C# methodology to building applications in JavaScript.
Call me Captain Obvious! They are both Microsoft products.
But I've been learning C# and the similarities have been interesting!
Here are the things that are really nice about working in C# so far:
The only exception might be that C# is a classic object oriented programming language where JavaScript and TypeScript mostly fake that part, being much more dynamic. Arguably, though, some of the tooling already gets you pretty close — component based frameworks, for example.
The "TypeScript is just JavaScript" sentiment has strangely made TypeScript difficult to learn for me. Similar to Node vs ES6 — the fact that they're so similar makes it difficult to remember that your brain needs to work in a different paradigm. It helps when I'm learning about Types in a language that is strongly typed from the get-go.
So I'll say this much: learning C# has been a really fun way to also learn TypeScript.
Static Methods
In class driven languages like, say, C# — a way of storing utility methods is through a Static Method.
Say you're working in JavaScript. A great ol' example of this is the Object.keys() method.
Objects is the constructor. keys the static method.
(technically not a class since JavaScript only mimics classes. More details on that in You Don't Know JS by Kyle Simpson and contributors.)
In JavaScript, you can access the method on the constructor through dot notation. But when creating an object, that object doesn't have a keys method.
const pizzaData = new Object();
Object.keys(pizzaData) // √
pizzaData.keys // XThe benefits?
Largely memory and data size. Not every object needs to recreate the method for each instance. We really only need one source of truth for a utility method like this.
Not all that different from abstracting a handler in React components. Does each input component need to have its own onChange method instantiated with the component? Or can the same method be passed down from a parent prop.
So a pattern for working with static methods could be:





