A keynote by Jared Polis – and some other reasons I’m attending DISCON

Well, I’m back in beautiful Boulder, Colorado. Since completing my computer science degree in June, I have devoted a good deal of time to cultivating my understanding and my skills around cryptocurrencies and blockchain. I completed a 2-day “Programming Blockchain” seminar put on by Jimmy Song in Denver. And I’ve been dipping into meetups related to cryptocurrencies and decentralized apps, where energy is always high and I always learn something. (I’m on the waitlist to see Zooko, of z-cash, speak tomorrow.)

This August 3rd-4th I’m looking forward to attending DISCON, a conference all about digital currencies and the distributed web. Hosted at the Boulder Theater, DISCON (for “DIStributed CONsensus) looks like it will feature a whole range of interesting presenters. I’m excited to hear from them and spend some time discussing with others the latest ideas in this space. Continue reading “A keynote by Jared Polis – and some other reasons I’m attending DISCON”

A phew phun phrisbee phrases phor nerds

Throughout my time at Carleton I have dabbled in the world of intramural (IM) Ultimate Frisbee. I played on a few different teams early in college, but became loyal to the computer science IM team (the Floppy Discs) later in my college career.

One of the most delightful things about that team is the CS-Frisbee jokes. For instance, a popular chant went:

– “What do we want??”

– “Score++ !”

– “When do we want it??”

– “time.now() !”

Being something of a nerdy pun aficionado (I sometimes tell people “everything I learn, I learn it for the jokes!”) I found myself sometimes getting distracted during games, struggling to piece together elaborate wordplay at the intersection of CS & Ultimate.ven diagram: cs, frisbee, these jokes

Anyway: here a few of my concoctions:

  • Whenever you call playerName.huck(), they return a long (with a whole lot of precision!)
  • I think instead of a stack, we should try implementing a heap. That way, it’ll be easy for us to go to the max.
  • I think playerName is a recursive Fibonacci function with memoization implemented, because they go really deep and still run really fast.
  • The other team says the disk was out of bounds so the point was null, but I think it was totally boolean!
  • Come on people, focus! We’re playing like a neural network right now— no one understands what we’re doing.
  • If we’re gonna win this thing, we’re gonna have to refactor some of our loops into higher order functions, so we run faster.
  • We had a pretty bad merge conflict out there when two players committed at the same time: nothing a little force push couldn’t resolve.

To any fellow CS loving Ultimate players out there… please use these, and tell me if you come up with some more!

Taking a stab at data mining Dylan

UPDATE (June 3, 2018): About a year after initially attempting this project, I decided to take another stab at data mining Dylan. With more programming experience, especially in the world of “data science”, I wanted to try to do things in a cleaner and more sophisticated way, and produce a more interesting end product. You can view the result at data-mining-dylan.dustinmichels.com.

My goal was the same: count references to cities throughout Bob Dylan’s lyrics and make an interactive bubble map of the results. However I made a few interesting changes. The second time around:

  1. Scraping: I did the web scraping with Scrapy instead of Beautiful Soup.
  2. Data formats: I saved the web scraped data in a structured way (JSON) instead of plain .txt files
  3. Data processing: I did the data processing using Pandas within Jupyter Notebooks, rather than using pure Python. So much nicer!! (See code here.)
  4. Identifying cities in lyrics: I identified cities by using a simple regex to search for one or more capitalized words and then cross-referencing those words against a csv file listing world cities. This was much faster, simpler, and more effective than my original approach of using the nltk package to do named entity recognition, and then cross referencing that against my list of cities.
  5. Making an interactive map: Finally, for the end product, I created a custom mapping widget using Javascrpt, leaflet.js, and vue.js. Previously I just uploaded a csv of mapping data to CARTO. My tool is much better custom-tailored to this project: it let’s you click on a city on the map and easily see exactly which lyrics mention that city.
Summary of different techniques for data mining Dylan project, the first time vs. the second time.

I got to present my project to digital humanities scholars at Carleton College’s “Day of Digital Humanities 2018,” which was a gratifying conclusion to this independent project. (See slides here). The current version of my map is live at: data-mining-dylan.dustinmichels.com.


We know that the freewheelin’ Bob Dylan rambled and roamed all across the United States. He grew up bored and cold in the mining town of Hibbing, Minnesota. When he learned that his musical idol, Woody Guthrie, was on his death bed, he made a pilgrimage to NYC in hopes of seeing Guthrie in the hospital. Once he was in New York, Dylan hung around Greenwich Village for a while, soaking up new musical and lyrical styles from that 1960’s creative hub. He recorded an album, got himself famous, and went on to travel all over the US and the world.

We know he went lots of places. But which places did he sing about? To answer that question, I made a tentative foray into text mining with Python and its web scraping/ natural language processing modules, then mapped the results with Carto.com. Here’s the result, so far:

Continue reading “Taking a stab at data mining Dylan”

Make New Humans (A Meiosis Song)

For my genetics class, we were tasked with reviewing meiosis and then producing evidence of our review. To that end, I give you: “Make New Humans (A Meiosis Song).”

Lyrics:

Double-stranded DNA
Gets undone by helicase
But you don’t really care about interphase, now do you?
The subject here is meiosis
The first prophase the cytokinesis
The process by which we make new humans

Make new humans [x4]

Well mitosis works pretty well
For cloning autosomal cells
But if you want real evolution, baby, it just won’t do you.
But imagine if during anaphase
Cohesin kept the chromatids in place,
So homologous chromosomes were the ones split by microtubules

Microtubules [x4]

Now when you’re making up haploid cells
Independent assortment is swell
If you wanna guarantee your progeny don’t look just like you
But why not pick up even more variation?
Through interchromosomal recombination
“Crossing over” helps us make new humans

Make new humans [x4]

[For lyrics with chords, click here].

Pooping with Java

I’m currently living in a 17-person, sustainability focused community on Carleton College’s campus, called “Farm House.” When it comes to toilets, we tend to adhere to the classic environmentalist manta “if it’s yellow, let it mellow; if it’s brown, flush it down.”

Here is a java implementation of this central dogma, which I recently taped up in several bathrooms.

An image of a java version of "if it's yellow let it mellow, if it's brown flush it down."

 

The Poop Map I Made

I discovered CartoDB— a free and open source web mapping tool– through a class I’m currently taking titled “Hacking the Humanities.” Upon learning about ol’ Carto and other tools for visualizing/analyzing spatial data I developed a strong (and unfamiliar) desire to make digital maps.

My ambitions were momentarily thwarted when I realized I had no location data to map. But then came a surreal moment of total clarity, and I knew what had to be done.

Since October 16, I have painstakingly logged the GPS coordinates of my every poop using an app called GPS Logger for Android. I transmitted these time-stamped coordinates to Google Drive, and then uploaded them to CartoDB. Now, as fall term at Carleton comes to an end, it is my honor and privilege to present to you the results of my labor: a gorgeous and interactive poop map!

Continue reading “The Poop Map I Made”

To the Daily Camera: Stop propagating climate change denial

*Originally published in the opinion section of Boulder’s “The Daily Camera,” April 6, 2014*

Greetings. I’m a senior at Fairview High and I’m writing to urge the Daily Camera to follow the example of the Los Angeles Times and commit to no longer publishing letters to the editor that deny human-caused climate change. The claims made by climate change deniers are not only inaccurate, but also damaging, and newspapers have no obligation to propagate their misinformation. In fact, they have an obligation not to.

From pixabay.com.

Let me begin my argument with few words about science. There exists a faction of citizens, pundits, and politicians that like to remind us that climate change is “just a theory” and therefore any attempts to mitigate it would be thoroughly premature. Per the diligent conditioning of my biology teacher, I would like to state that the term “theory” bears a different significance in the sciences than it does in casual conversation.

To a scientist, a theory is a well-substantiated explanation of some aspect of the natural world repeatedly confirmed through observation and experimentation. Gravity is a theory. The idea that some diseases are caused by microorganisms is a theory. The idea that an object heavier than air can achieve flight when lift balances weight and thrust exceeds drag, which makes air travel possible, is a theory. And the theory of special relativity that makes your GPS function is, in fact, a theory. To oppose one of these concepts and not another would be hypocritical, for each is subjected to the same degree of rigorous review.

Continue reading “To the Daily Camera: Stop propagating climate change denial”