Profile

Cover photo
Michael Kennedy
Works at DevelopMentor
Attended Blue Valley High School
Lives in Portland, OR
360 followers|60,925 views
AboutPostsPhotosYouTube+1's

Stream

Michael Kennedy

Shared publicly  - 
 
Just blogged: Python Podcast Episode #3 - Pyramid Web Framework #python #podcast

Just a quick note that there is another episode of Talk Python To Me. This time I’m speaking with Chris McDonough about the Pyramid Web Framework. Listen in now, hope you enjoy the show!
Just a quick note that there is another episode of Talk Python To Me. This time I'm speaking with Chris McDonough about the Pyramid Web Framework. Listen in now, hope you enjoy the show!
1
1
SDD Conference's profile photo
Add a comment...

Michael Kennedy

Shared publicly  - 
 
Video promo for my @TalkPython @Patreon campaign.
1
1
Michael Kennedy's profile photoSDD Conference's profile photo
 
Check out the podcast at http://talkpythontome.com/
And the campaign at https://www.patreon.com/mkennedy
Add a comment...

Michael Kennedy

Shared publicly  - 
 
Just blogged: #Python Cheat Sheet

In collaboration with DevelopMentor to get the word out about our Python curriculum, I built a simple but fairly comprehensive Python cheat sheet. It’s pretty thorough at 16 pages in length and covers a diverse set of topics including Language, Types,…
1
1
SDD Conference's profile photo
Add a comment...

Michael Kennedy

Shared publicly  - 
 
Just blogged: Announcing the 2015 MongoDB Masters (and I'm on this list!) cc @MongoDB

NEW YORK, NY and PALO ALTO, CA – March 10, 2015 – MongoDB today announced the 2015 members of the MongoDB Masters, an annual program run by MongoDB to recognize and empower leaders in the MongoDB community. Comprised of core contributors and community…
1
1
SDD Conference's profile photo
Add a comment...

Michael Kennedy

Shared publicly  - 
 
Just blogged: New course - Announcing The Swift Programming Language from DevelopMentor #swift #ios

I’m really happy to announce the latest course I’ve co-authored at DevelopMentor: The Swift Programming Language. https://www.develop.com/training-course/the-swift-programming-language This course is specifically build to help teams of existing…
2
1
SDD Conference's profile photo
Add a comment...
Have him in circles
360 people
Meghan Gill's profile photo
brian vagnini's profile photo
Cecile Dimapilis's profile photo
Alejandro Villamarin's profile photo
Parul Sharma's profile photo
Aaron Johnson's profile photo
K. Scott Allen's profile photo
Ryan Riley's profile photo
Adam Anderly's profile photo

Michael Kennedy

Shared publicly  - 
 
New Podcast Episode: Python and MongoDB

I recorded a session with Jesse Davis from MongoDB on Talk Python To Me. I think the show came out great. You should check it out! In this show we speak with Jesse Davis from MongoDB. Jesse is the maintainer for a number of popular open-source projects…
I recorded a session with Jesse Davis from MongoDB on Talk Python To Me. I think the show came out great. You should check it out! In this show we speak with Jesse Davis from MongoDB. Jesse is the ...
1
1
SDD Conference's profile photo
Add a comment...

Michael Kennedy

Shared publicly  - 
 
Just blogged: Announcing my new podcast, Talk Python To Me, a #python podcast for enthusiastic developers.

I’m super excited to announce that I just launched a brand new podcast for Python developers called Talk Python To Me. This weekly podcast already has the first episode published and some amazing guests lined up. Visit the website to learn more:      Talk…
1
1
SDD Conference's profile photo
Add a comment...

Michael Kennedy

Shared publicly  - 
 
New video: Python XML Jumpstart in only 5 minutes
1
1
SDD Conference's profile photo
Add a comment...

Michael Kennedy

Shared publicly  - 
 
Just blogged: Initialization in Modern C++ vs Apple's Swift

Time for another great guest blog post from Bradley Needham to follow up on his very popular Swift vs. C++ post. Enjoy! Initialization in Modern C++ vs Apple’s Swift A little while ago I wrote a short post comparing some of the basic features of Modern…
1
1
SDD Conference's profile photo
Add a comment...

Michael Kennedy

Shared publicly  - 
 
Amazing. I've known the technical world is a fractal but this really brings it home.
 
Dizzying but invisible depth

You just went to the Google home page.

Simple, isn't it?

What just actually happened?

Well, when you know a bit of about how browsers work, it's not quite that simple. You've just put into play HTTP, HTML, CSS, ECMAscript, and more. Those are actually such incredibly complex technologies that they'll make any engineer dizzy if they think about them too much, and such that no single company can deal with that entire complexity.

Let's simplify.

You just connected your computer to www.google.com.

Simple, isn't it?

What just actually happened?

Well, when you know a bit about how networks work, it's not quite that simple. You've just put into play DNS, TCP, UDP, IP, Wifi, Ethernet, DOCSIS, OC, SONET, and more. Those are actually such incredibly complex technologies that they'll make any engineer dizzy if they think about them too much, and such that no single company can deal with that entire complexity.

Let's simplify.

You just typed www.google.com in the location bar of your browser.

Simple, isn't it?

What just actually happened?

Well, when you know a bit about how operating systems work, it's not quite that simple. You've just put into play a kernel, a USB host stack, an input dispatcher, an event handler, a font hinter, a sub-pixel rasterizer, a windowing system, a graphics driver, and more, all of those written in high-level languages that get processed by compilers, linkers, optimizers, interpreters, and more. Those are actually such incredibly complex technologies that they'll make any engineer dizzy if they think about them too much, and such that no single company can deal with that entire complexity.

Let's simplify.

You just pressed a key on your keyboard.

Simple, isn't it?

What just actually happened?

Well, when you know about bit about how input peripherals work, it's not quite that simple. You've just put into play a power regulator, a debouncer, an input multiplexer, a USB device stack, a USB hub stack, all of that implemented in a single chip. That chip is built around thinly sliced wafers of highly purified single-crystal silicon ingot, doped with minute quantities of other atoms that are blasted into the crystal structure, interconnected with multiple layers of aluminum or copper, that are deposited according to patterns of high-energy ultraviolet light that are focused to a precision of a fraction of a micron, connected to the outside world via thin gold wires, all inside a packaging made of a dimensionally and thermally stable resin. The doping patterns and the interconnects implement transistors, which are grouped together to create logic gates. In some parts of the chip, logic gates are combined to create arithmetic and bitwise functions, which are combined to create an ALU. In another part of the chip, logic gates are combined into bistable loops, which are lined up into rows, which are combined with selectors to create a register bank. In another part of the chip, logic gates are combined into bus controllers and instruction decoders and microcode to create an execution scheduler. In another part of the chip, they're combined into address and data multiplexers and timing circuitry to create a memory controller. There's even more. Those are actually such incredibly complex technologies that they'll make any engineer dizzy if they think about them too much, and such that no single company can deal with that entire complexity.

Can we simplify further?

In fact, very scarily, no, we can't. We can barely comprehend the complexity of a single chip in a computer keyboard, and yet there's no simpler level. The next step takes us to the software that is used to design the chip's logic, and that software itself has a level of complexity that requires to go back to the top of the loop.

Today's computers are so complex that they can only be designed and manufactured with slightly less complex computers. In turn the computers used for the design and manufacture are so complex that they themselves can only be designed and manufactured with slightly less complex computers. You'd have to go through many such loops to get back to a level that could possibly be re-built from scratch.

Once you start to understand how our modern devices work and how they're created, it's impossible to not be dizzy about the depth of everything that's involved, and to not be in awe about the fact that they work at all, when Murphy's law says that they simply shouldn't possibly work.

For non-technologists, this is all a black box. That is a great success of technology: all those layers of complexity are entirely hidden and people can use them without even knowing that they exist at all. That is the reason why many people can find computers so frustrating to use: there are so many things that can possibly go wrong that some of them inevitably will, but the complexity goes so deep that it's impossible for most users to be able to do anything about any error.

That is also why it's so hard for technologists and non-technologists to communicate together: technologists know too much about too many layers and non-technologists know too little about too few layers to be able to establish effective direct communication. The gap is so large that it's not even possible any more to have a single person be an intermediate between those two groups, and that's why e.g. we end up with those convoluted technical support call centers and their multiple tiers. Without such deep support structures, you end up with the frustrating situation that we see when end users have access to a bug database that is directly used by engineers: neither the end users nor the engineers get the information that they need to accomplish their goals.

That is why the mainstream press and the general population has talked so much about Steve Jobs' death and comparatively so little about Dennis Ritchie's: Steve's influence was at a layer that most people could see, while Dennis' was much deeper. On the one hand, I can imagine where the computing world would be without the work that Jobs did and the people he inspired: probably a bit less shiny, a bit more beige, a bit more square. Deep inside, though, our devices would still work the same way and do the same things. On the other hand, I literally can't imagine where the computing world would be without the work that Ritchie did and the people he inspired. By the mid 80s, Ritchie's influence had taken over, and even back then very little remained of the pre-Ritchie world.

Finally, last but not least, that is why our patent system is broken: technology has done such an amazing job at hiding its complexity that the people regulating and running the patent system are barely even aware of the complexity of what they're regulating and running. That's the ultimate bikeshedding: just like the proverbial discussions in the town hall about a nuclear power plant end up being about the paint color for the plant's bike shed, the patent discussions about modern computing systems end up being about screen sizes and icon ordering, because in both cases those are the only aspect that the people involved in the discussion are capable of discussing, even though they are irrelevant to the actual function of the overall system being discussed.

CC:BY 3.0
1
Add a comment...

Michael Kennedy

Shared publicly  - 
 
Just blogged: 10 Myths of Enterprise Python from PayPal #Python thx @mhashemi

Yesterday I stumbled across an excellent article by Mahmoud Hashemi from the PayPal engineering team entitled 10 Myths of Enterprise Python. No. Seriously. It’s really good. Make sure you save it to your reading list: 10 Myths of Enterprise Python…
2
2
SDD Conference's profile photoCarsten Habicht's profile photo
Add a comment...
People
Have him in circles
360 people
Meghan Gill's profile photo
brian vagnini's profile photo
Cecile Dimapilis's profile photo
Alejandro Villamarin's profile photo
Parul Sharma's profile photo
Aaron Johnson's profile photo
K. Scott Allen's profile photo
Ryan Riley's profile photo
Adam Anderly's profile photo
Work
Occupation
Software Developer and Trainer
Skills
.NET, Python, MongoDB, ASP.NET MVC, JavaScript, Web Design
Employment
  • DevelopMentor
    Author, Instructor, Technical Curriculum Director, 2011 - present
  • PDX Web Properties, LLC
    Founder, 2010 - present
  • DevelopMentor
    Instructor, 2006 - present
  • United Binary, LLC
    Cofounder, 2001 - 2012
  • EyeTracking, Inc
    Software Developer, 1998 - 2006
Places
Map of the places this user has livedMap of the places this user has livedMap of the places this user has lived
Currently
Portland, OR
Previously
Stilwell, KS - Lawrence, KS - West Lafayette, IN - San Diego, CA - Highland Park, NJ
Story
Introduction
I'm an instructor for DevelopMentor, a .NET enthusiast, an agile pioneer, an entrepreneur, a father of three girls, a husband, a student, and a teacher.
Education
  • Blue Valley High School
    1986 - 1991
  • University of Kansas
    Mathematics, 1994 - 1997
  • Purdue University
    Mathematics, 1997 - 1998
  • San Diego State University
    Mathematics, 1998 - 1999
  • University of California, San Diego
    Mathematics, 1999 - 2001
Basic Information
Gender
Male
Relationship
Married
Michael Kennedy's +1's are the things they like, agree with, or want to recommend.
Windowed Mail for GMail
chrome.google.com

Windowed Mail for GMail is a stand-alone application for accessing gmail.com.

SDD Conference
plus.google.com

Software Design & Development (SDD) - annual conference for developers in London

C# - 20 - Constructors
thenewboston.org

Tweet · Previous Video: Overview of Namespaces and Classes · Next Video: Access Modifiers and Static. Feel free to donate to help support th

jquery-watermark - jQuery plugin adds watermark capability to HTML ...
code.google.com

Project Information. Activity Medium; Project feeds; Code license; MIT License; Labels jQuery, plugin, watermark, JavaScript, placeholder, i

LearningLine
plus.google.com

Instructor-supported, online learning platform

Expression Web SuperPreview
expression.microsoft.com

Learn how Expression Web SuperPreview simplifies the process of testing and debugging layout issues across different web browsers and platfo

LearningLine courses - Self-paced and instructor-led online courses from...
learninglineapp.com

LearningLine is an online, collaborative learning platform built from the ground up to be a superior learning experience on the web. It is s

Michael Kennedy on Technology
blog.michaelckennedy.net

Cutting-Edge Developer and Technology Writing with a .NET Accent

Twtpoll :: From Simple Twitter Polls to Powerful Web Surveys. Social Med...
twtpoll.com

Get the Share with Twtpoll Bookmarklet. Engage Your Customers. Ask Questions. Get Feedback. From Simple Twitter Polls to Powerful Surveys! (

JetBrains :: World's Leading Vendor of Professional Development Tools
www.jetbrains.com

JetBrains, creator of the best Java IDE - IntelliJ IDEA - is a technology-leading software development firm specializing in the creation of

Join Me at Guerrilla .NET in November
blog.michaelckennedy.net

Just a quick announcement for an developer upcoming event I’ll be participating in… Early November I’ll be co-teaching DevelopMentor’s bigge

LiveFyre Raises More Funding To Take Conversations Beyond Just Facebook
techcocktail.com

LiveFyre, the San Francisco-based software platform that enables anyone to add a commenting system to a website, has secured an additional $

Technical Staff
www.develop.com

Our rigorous selection and training process ensures that DevelopMentor instructors, mentors, and consultants excel in these critical attribu

Welcome - ChatPast | Search, History, and Pro Features for Chat
chatpast.com

Synchronize chat history from multiple chat clients across multiple computers and push important IM conversations into business apps seamles

elmah
code.google.com

Error Logging Modules and Handlers for ASP.NET

Synergy
synergy-foss.org

Synergy lets you share your keyboard and mouse between multiple computers on your desk.

jQuery Mobile | jQuery Mobile
jquerymobile.com

jQuery Mobile: Touch-Optimized Web Framework for Smartphones & Tablets. A unified user interface system across all popular mobile device

jQuery UI - Home
jqueryui.com

jQuery UI is the official jQuery user interface library. It provides interactions, widgets, effects, and theming for creating Rich Internet

Google asks businesses to stay out of Google+ -- for now
latimesblogs.latimes.com

Google is asking businesses, non-profit groups, universities and other organizations and groups to stay out of Google+ -- for now. Some b