I am not very much of an audiophile, nor do I do podcasting to make any money. As such, all of the hardware I use is hobbyist at best, and completely amateur otherwise. But, I’ll give a quick rundown of what I have.
Continue reading “How I Podcast – Hardware”How I Podcast: Editing
As promised, I’ve recorded myself editing a podcast (published at 2X speed), which you can find in the middle of this post. Beyond that, this post will just be an overview of my editing workflow.
Continue reading “How I Podcast: Editing”How I Podcast: Software
After nobody asked me to, I’ve decided to write a few posts about how I podcast. There might be an additional post where I talk about some other software I use on my computer in general, but we’ll start with podcasting because it really is the heaviest use of my computer.
In this post, I’ll focus on the software I use to record. In the next post, I’ll share some of the hardware I use. And finally, I’ll explain how I edit podcasts with the aim of having a screen recording of myself editing either OHAC or Comical Start.
Some New Code
After playing around with Project Euler for a while, I determined I wanted to challenge my coding skills even more, but stay firmly planted in the mathematical realm in which I’m familiar. So, I’ve begun writing some code that can be used for certain mathematical objects. In particular, I’ve written a fraction class, a 2D vector class, and a complex number class. You can find the code on GitHub.
Continue reading “Some New Code”Project Euler
As part of my year of focus, I’ve been trying to spend more consistent chunks of time working on programming. In particular, right now I’m focusing on doubling down on my Python knowledge, and exploring some other aspects of computer science that interest me. After checking out a few books and tutorials, I’ve made my way back to a website that I found a number of years ago, which is the most intriguing to me: Project Euler.
The gist of Project Euler is to give a wide range of mathematically-oriented programming puzzles for people to solve. You can always just go on there for ideas of small programs to write, whether it’s to learn some math or to try out a new computer language. In my case, I’m trying to write the most efficient programs possible, making use both of clever algorithms I spend time figuring out or researching, and making use of Python syntax to make particularly elegant solutions. If you make a simple account, you can keep track of your progress and access message boards about each problem.
It has been very engaging so far. They are more bite-sized, but give ideas for more complex programs that can be written which are more general purpose. Rather than writing a script that solves a problem, I can focus on writing broad functions that may be helpful.
A fun problem I worked on today involved triangular numbers. These are just numbers you get from adding together all the positive integers before it. So, the seventh triangular number is just 1+2+3+4+5+6+7=28.
The goal was to find the smallest triangular number with more than 500 divisors. Here’s the Python code I wrote for it. (I apologize, I can’t figure out how to make syntax highlighting work right now.
import math
def getTriangular(n): ## Generates a list of triangular numbers up to n
triangularList = [sum(i for i in range(1,k+1)) for k in range(1, n+1)]
return triangularList
def getNumberDivisors(n): ## Generates number of divisors
numDivisors = 2 ## We don't care about n=1, so assume it has 1 and n
for divisor in range(2,int(math.sqrt(n))+1): ## Only check to sqrt(n)
if n % divisor == 0: ## Needs to be a divisor
if divisor * divisor == n: ## If square root
numDivisors += 1
else:
numDivisors += 2 ## Otherwise, divisor has a factor
## pair larger than n//2
return numDivisors
def main():
triangleList = getTriangular(25000) ## Hopefully big enough
is500 = False
triangleIndex = 7 ## It's certainly larger than seventh number
while not is500:
triangleIndex += 1
#print(triangleIndex)
if getNumberDivisors(triangleList[triangleIndex]) > 500:
is500 = True
print(triangleList[triangleIndex]) ## Tell me the number
main()
The code runs reasonably quickly, which is always the goal. The standard view on Project Euler problems (and I believe it is their official stance) is that well-optimized solutions should run for no longer than a minute on nearly any computer. The first few problems should take substantially less time than that.
I recommend giving them a try if you have an itch for some challenges, and either want to work on optimizing your code in a certain language, or try out the functions in a new language. For example, the fact that Python supports arbitrarily large integer addition (compared to C or Java) makes some problems pretty trivial. Thinking about how to deal with other languages becomes rather interesting.
No Keyboard for Old Men
As I come to the realization that a significant part of both my work and personal hobbies involve sitting at a computer, I have become increasingly wary of the stories I hear about things such as repetitive stress injuries (RSI), and what will likely be the impending damage to my eyes. In an effort to avoid, or at least delay, the former issue I have tentatively purchased an ergonomic keyboard. Specifically, the Surface Ergonomic Keyboard from Microsoft. I say tentatively because it’s not cheap. I may return it, but so far I’ve put a few thousand keystrokes on it and it’s feeling pretty good. This review is meant to get as in-depth as a keyboard review can be when written by someone who has never written a keyboard review. I’ll briefly explain my rough, but sufficient, testing procedure and what I found out. Then I’ll get into some details and comparisons I noted to other keyboards I’ve used.
Continue reading “No Keyboard for Old Men”New WordPress Editor
WordPress (both the .org and .com versions) is rolling out a new native editor. It is a “block” system, and I am entirely unsure how I feel about it. I figured I would give them the benefit of the doubt and try to write a somewhat complete post using the WordPress.org back-end, with this new block system, and see how it goes.
Continue reading “New WordPress Editor”Why Linux? Part 1: Free As In…
During sophomore year of college, I embarked on a project to put a Linux operating system on my laptop. I had been interested ever since using a computer in one of the engineering labs which ran Ubuntu, one of the most mainstream, user-friendly distributions out there. I was intrigued both by the visual design, and the ease with which complex programs could be run. There was also the intrigue of feeling like a cool hacker, using a terminal and typing commands to get around a file system. I was hooked, and since then I’ve had a Linux distribution running on every computer I’ve owned over the past three years.
I want to spend a good chunk of time explaining my growing passion for Linux, and why I think more people should seriously consider it as an option for the computers in their lives. This first post will focus on two of the oft-repeated phrases in the Linux community, and its main inspiration: Linux is free.
Continue reading “Why Linux? Part 1: Free As In…”