Peter Christensen

  • Presentations
  • Contact Me

Kia-Fu Lee, AI, and Sinophilia

September 4, 2018 by Peter Leave a Comment

I’m a heavy consumer of media. I called it learning, but even if it was tech stuff or business stuff or whatever, I realized that because I wasn’t writing anything down or changing anything about my life or career, it was the equivalent of watching TV, just with a browser history. So my two content goals now are:

  1. Focus on reading/watching things worth taking notes on, and
  2. Summarizing and publishing those notes.

Like many Americans, I’ve been aware of China’s growth my whole life, from the little gold stickers on my toys, to their manufacturing rise, to crazy GDP numbers, the Great Firewall, etc. And like many Americans, I always assumed that no matter how successful China was, it wouldn’t threaten America’s pre-eminent position in the world order. But this year, China has been seeping into pop culture and technology, arguably the two industries most dominated by America. In movies, I noticed Chinese companies providing financing, movies like World of Warcraft that were made partly because of the interest of Chinese audiences, and noble, heroic Chinese characters in movies like The Martian, Pacific Rim 2, The Meg, and more. Watching Crazy Rich Asians topped it off – seeing a whole movie where every character was better looking, richer, smarter (ok, maybe not Bernard) and more successful than even American movie characters, flipped a switch in my head. China wasn’t an abstract concept – it’s a real place full of real people, as diverse and alive as America. That, overnight, flipped my interest in Chinese culture and it got me looking.

Over this same timeframe, multiple sources referenced Kai-Fu Lee, the Chinese AI researcher and venture capitalist. I briefly encountered his work years ago when I hobby-level explored speech recognition. I found his TED talk, and I find them to be a useful introduction to a person’s work. He’s unapolagetic about how hard Chinese entrepreneurs work and how in the field of AI, America retains the advantage for research and discovery, while China has the advantage in implementation and business. I’d heard bits of this sentiment, but they lacked the clarity and authority that Lee presented. He also showed the transition that work will take post-AI, from manual and repetitive to personable (social work, teacher, etc) and creative (research, marketing, arts, leadership, etc). It’s still a huge transition, but hopeful.

Since I’m super impressionable to things once I let myself be convinced, I have decided to double down on my work learning machine learning, deep learning, and AI, and to begin learning Chinese. There are so many resources, apps, courses, that this is something limited by my time effort, not availability or resources. We’ll see how it goes.

Filed Under: Education, Personal Sprints

Pedestal Tutorial Part 2 – Notes and Thoughts

February 5, 2014 by Peter Leave a Comment

I finished working through the 2nd half of the Pedestal App tutorial (see my notes on the first half) and I continue to be very impressed with it, especially when you consider that it’s at version 0.2. Rather than switch to another topic for my next personal sprint, I’m going to continue with Pedestal and write my own Pedestal App project. I’ve learned about as much as I can from following someone else’s example, but I need to dig into it myself and create my own project to get to the next level.

I posted my repos for the app and service projects. It’s the same as the official repo, with two differences:

  • It’s a working 0.2 app
  • The commits are by subsection instead of by page, so they’re a lot smaller. When I got mixed up, it was hard to use the diffs in their repo because all the changes from 2-5 sections on the page.

My repos:

  • pedestal-app-tutorial-by-section
  • pedestal-app-tutorial-by-section-service

Here’s a summary of my understanding of Pedestal App after completing the 29-part tutorial:

  • I get the architecture of the different queues and movement between them. The flow diagrams, step-by-step building up of complexity, and repetition really made this sink in.
  • I get the basic gist of how to write the dataflow definition, but I need a lot of reps to become more familiar with the full API. That looks like the core skill in mastering Pedestal App.
  • I’m still pretty unclear about which messages to use, how to nest them, when to send and capture what, etc. This is the part I expect to gain the most from doing my own project.
  • This is the first Clojure/ClojureScript project I’ve spent more than a toy amount of effort on. Due to my typos and some differences between the tutorial (written for v0.1) and the v0.2 of the library, I encountered some ugly bugs and learned a lot trying to fix them. I got do deal with things like logging in Clojure and ClojureScript, using the Chrome debugger and source maps, leiningen commands, the folder directory structure, etc. I’m still rookie and a half, but at least I have some sense of what planet I’m on for Clojure development.
  • My emacs is sort-of setup for Clojure development, but there are some things I could do to make it better. Mainly configure paredit to turn on automatically, learn how to use it better, and resolve some conflicting key chords. I deferred doing those because that’s the kind of stuff that got me distracted in the past.

Here are my notes on each section of Part 2 of the tutorial:

[Read more…]

Filed Under: Clojure, Personal Sprints

Sprint Continuation – Pedestal

January 14, 2014 by Peter Leave a Comment

I continued working on the Pedestal Tutorial this week. I’m going to continue working on it for the next 2 weeks.

I’m about halfway done with Part 1. I ran into some problems on Simulating Service Push, where it wasn’t recognizing a method in one of the namespaces I included. I dug around a ton and never figured out what was wrong – I eventually threw in the towel, reverted to a previous commit and re-did the work and the bug didn’t appear. Heisenbastards.

I did also find some helpful, big picture resources:

  • What I’ve Learned About Making ClojureScript Applications With Pedestal by Tero Parviainen. This provides the big picture whats and whys that the tutorial doens’t (or doesn’t begin with). EVERYONE thinking of going through the tutorial should read this first.
  • Web Apps in Clojure and ClojureScript with Pedestal by Brenton Ashworth. I’m halfway through this (I take good notes which I’ll share later), but it includes the tagline that I wish was at the top of Pedestal.io:

Pedestal is designed interactive, 2-way transfer of data

    • I know videos are a pain to watch, but the demo app at 6:45 is pretty spectacular.

More about Pedestal in 2 weeks!

Filed Under: Clojure, Personal Sprints

Sprint Conclusion – Clojure

December 30, 2013 by Peter Leave a Comment

I just finished my first personal sprint, spending the last 2 weeks working on learning Clojure. I’ve loved the idea of Clojure since it came out in 2008 but never spent the time to work on it. While I didn’t finish all the things I wanted to, I did spend more time programming in Clojure over the last 2 weeks than I did in the previous year. Since my goal with personal sprints was to get more done, this is a great validation of the concept.

For the next sprint, I’m going to continue working on the Pedestal Tutorial and then educate myself more about single-page web applications in general. More in 2 weeks!

My original goals for the week were to:

  • Clojurescript Koans – http://clojurescriptkoans.com/
  • Clojurescript 101: http://swannodette.github.io/2013/11/07/clojurescript-101/
  • Pedestal Tutorial: https://github.com/pedestal/app-tutorial/wiki
  • Create a simple database-backed website, so I need to learn a persistence library, ring, templating, etc

I finished the first two and about a quarter of the Pedestal Tutorial.

I found some great resources for a beginning Clojure developer:

  • Clojure Cheatsheet: http://clojure.org/cheatsheet
  • Online Clojurescript REPL: http://himera.herokuapp.com/index.html

I took notes on the parts of the Pedestal Tutorial that I worked through but I’ll put all those notes together when I finish it.

Great big thanks to David Nolen (@swannodette) for his very helpful tutorial writing!

Filed Under: Clojure, Personal Sprints

Personal Sprints

December 15, 2013 by Peter Leave a Comment

I have a problem – I have too many balls in the air, and I can’t even juggle. There are too many things to learn, too many toys to play with, too many things to make, too many books to read. I’m too good at keeping track of things so nothing ever falls off of my TODO list – it just gets punted forward. My attention is split between too many things and I never get any of them done (or even started).

This bugs me. To become technically excellent, open up career opportunities, influence the world, you need to ship, finish, produce, practice, promote, and share. I haven’t been doing any of those things, and without changing my behavior, I unsurprisingly kept getting the same results.

New plan:

  • Keep my project wish-list in a separate document rather than my active TODO list.
  • Every two weeks, choose one project that I most want to work on right now. For those two weeks, I will defer all the other projects to focus on the one I have chosen.
  • By Wednesday of the first week, I will write up and publish a rough roadmap and set of goals for the two weeks I will spend on this project.
  • At the end of the two weeks, I will write up what I accomplished, learned, etc and include code, demos, deliverables, etc.
  • I don’t have to feel guilty about the other projects I’m not working on, since they’re still on the list and when it’s their turn, they’ll get my full attention.

After one year, I will have 26 completed projects with deliverables. However, since this is a new idea, I’m committing to 3 months (7 cycles). At that point, I’ll evaluate if I’m satisfied with my output using this method.

For my first cycle, I’m going to get more comfortable writing Clojure code. Some of the things I plan to do are:

  • Clojurescript Koans – http://clojurescriptkoans.com/
  • Clojurescript 101: http://swannodette.github.io/2013/11/07/clojurescript-101/
  • Pedestal Tutorial: https://github.com/pedestal/app-tutorial/wiki
  • Create a simple database-backed website, so I need to learn a persistence library, ring, templating, etc

Here’s a small subset of other projects I hope to get to:

  • Make a directory of company dossiers and tools to generate them – kind of like Crunchbase but from the perspective of a potential employee trying to quickly evaluate the company
  • Basic computer vision and image processing
  • Sphero hacking
  • Nodecopter hacking
  • Study Peepcode videos
  • Learn Python
  • Write some meatier essays I’ve had in mind for a while

Thanks to @swizec for his 52 Academic Papers in 52 Weeks project, which sparked this idea.

Filed Under: Personal Sprints

Categories

  • Blog
  • Book Review
  • Business
  • Clojure
  • Education
  • Emacs
  • Fun
  • iOS
  • Lisp
  • Personal Sprints
  • Pictures
  • Polyphasic
  • Presentations
  • Programming
  • Rails
  • Startups
  • Uncategorized

Copyright © 2025 · Minimum Pro Theme on Genesis Framework · WordPress · Log in