Steve Jobs hired a career juggler to teach programming to developers
cake.co
cake.co
> 1. You want to find people with mastery, true depth.
> 2. The problem is, that isn’t enough. You need people who had failed and recovered. The core skill of innovators is error recovery, not failure avoidance.
> 3. Breadth, meaning curiosity about things beyond what you’re deep in.
> 4. Collaboration. Not a synonym for cooperation, but the ability to magnify others.
As a separate aside, I didn’t realize Apple invested that much in training.
Though that literally seems to be the point of the article...
Hire smart people with a spark. Give clear directions without micromanaging. Make sure people are getting enough sleep to think clearly, and enough time to do upfront planning so they don't write those bugs they would get demoralized on in the first place. Be an inspiration to others, then hand them the reins and let them inspire everyone else.
Otherwise, it's just crazy risky to put failures on your resume kind of thing.
Corporations are full of people competing on a political level, failure is just a stain, so risk taking is minimal. In a regular corporation you could get looked at very oddly for suggesting anything outside of normative.
In business politics, perception is the only thing that matters, so it's really hard to spin failure as success.
That is not more confidence. And likely, she does not want "difficult environment" job either - could have stayed for that. What you learn in such environment is to spot red flags sooner.
Such positions are not rewarded, she did not enjoyed that, she will likely seek different position next.
The problems is #4. 1,2,3 are 'easy' given time and someone who's dedicated and actually LOVES that job.
#4 requites two (at least). In my 35y career I can count on the fingers of one hands the time where I really, REALLY "clicked" with someone and we both ran away with it. Needless to say, in all the cases, we still are on each other xmas card list, regardless of time/space.
But that's the scary bit, to really, REALLY "collaborate" you need someone who's already pretty much 'there' on the 1,2,3 listed there, and the chance of meeting someone like that is low. I don't say it's 'rare', I say it's 'low' and if you factor other things like personality, lifestyle and so on, it makes it actually 'rare'...
I treasure the people I can collaborate with, because it's magic. It's like, as a musician, when you jam and the band just 'gels' and stuff starts happening, it gives you a little shiver in the spine area that is unique.
But hell, it's rare.
In my personal growth path I think I'm this close to reach that — but my ego is practically sabotaging it from the inside. I still can't let myself go in background-mode. And I'll pay for this sooner or later.
</personal-emotional-burst>
What's interesting is that in each case I can say it didn't feel like #4 was happening until I looked at the experience in retrospect. It's almost like had we of been mindful or trying to achieve that, we would have been too self-conscious of ourselves to have actually succeeded. It was also a more broad cultural trait, it was a team that collaborated together well (sometimes kinda large teams, too). And most of the time there was a key leader or two that seemed to be key in bringing out that quality in the team.
I can also say that many of those teams still keep in touch, even if loosely, in some cases (now) decades later.
That makes me extremely uncomfortable because I feel like in my career I've been a master in the reverse order, 4-1.
This could explain the unusual paths that I've taken, but I still feel like I'm a long way from reaching my full potential while still in my mid-30s.
Having kids helps underscore this. Let your kids fall. Just don't take them to the Grand canyon right away.
In my experience, the right leadership, converging on the right vision makes it happen. But you absolutely need the shared vision.
I have been incredibly fortunate in my career to have either been a part of, or leading groups that truly jelled. In every case, it doesn’t last forever, But while it lasts it is incredible.
For those that never experienced it, there are two parts to achieve it: 1. Find people who put the “mission” first. The only way true collaboration happens is when the people collaborating stop thinking about “what is in it for them” 2. Find something “worthy” of you to work on. It can be as grandiose as the company mission, or it can be as pedestrian as improving your tiny bit of the world. But whatever it is, it has to resonate with you at a deep emotional level.
What I have found is that #4 of the article is almost a natural outcome of you can manage my two items (Assuming the team has 1-3).
But yes, it is not something that “just happens”.
I can say this in all fairness as somebody who writes in that language fulltime for more than a decade.
since choosing such a language requires extra learning, that pretty much leaves all "want it easy right now" people behind.
Why? I don't see the correlation between the technology and the rampant immaturity or unrealistic expectations of people developing in it. I have also experienced this immature temperance from people with a long history of developing in other languages coming into JavaScript and deliberately sacrificing common sense for insecurity resolution, which suggests the immaturity isn't simply due to a low barrier of entry.
I suspect they are seen together when people make work their complete social circle so their emotional needs are not met unless collegues fill them too.
it doesn't take more than one thing of common interest to become friends (and that trust and support)
sometimes that common thing is a hobby, a lifestyle or a worldview. but sometimes it is work.
having friends at work doesn't mean that i hang out with those friends in my free time.
we have multiple social circles. at work, family, different groups of friends (eg different hobbies, each is another social circle), and in each of those circles we may have friends. some closer than others.
It was funny at the time, because other people in the office thought we hated each other in both cases. The arguments that came out from the whiteboard were known around the company, yet we hung out every weekend and knew almost everything about each other. The 'arguments' were really just us hashing out ideas and trying to find the best solution. Last I heard, some of the software we developed then is still in use today. For me at least, that feels like a success that we made some decent architectural decisions given the constraints at the time.
Luckily, one of the times for me the other person was 10 years older. He was able to give me perspective that the team dynamics we had were very rare and to cherish them. I knew he was right, but didn't expect them to be as rare as it turned out.
I just wanted to mention #4 is exactly what makes Apple Apple. Or the old Apple. Steve made it so a group of people working together could have the results more than hundreds working in other company combined. Apple did it in a era when they had much lower resources compared to all of its competitor. The collaboration was real, or as Steve would put it, hey balanced each other, and the total was greater than the sum of the parts.
Today Apple seems more like cooperation under Tim Cook. They have 100x more resources, but bend gate on iPad Pro, XS Modem reception, MacBook Staingate, lots of horrid logic board design choices. Keyboard. The list goes on and on.
What you what is someone with a strong knowledge of fundamentals, everything else follows from that.
Not too far away from your advice regarding fundamentals.
But that was a long time ago. Hopefully he has worked with real Trainers since then, and figured out how to get beyond the pure showmanship.
That was the lesson.
Put on a show, and people will spend money.
Real life example- Cousin got a Macbook Air for Christmas, was shocked to see it had 0 USB ports.
She was uninformed and bought a product she didnt want. This is Apple's target demographic.
This old joke still has it's place:
https://www.boredpanda.com/car-computer-support-humor-jon-pa...
A juggler has to often fail thousands of times before he is capable of learning a trick. While some people can pick up the three ball cascade easily, it's rare to find one that can do a 9 ball cascade, because of the years of practice it takes to build up to just being able to attempt it.
We don't want people to experience failure, but the sad fact is that we need it to grow. 5 years ago I was a typical software engineer who was fired because my boss didn't like me. Now I fly across the country and work with companies helping them with their SaaS issues.
I'm glad that you have found independence, bosses who pick on employees over personal traits aren't worth it :) Hoping I can do something similar one day.
The major benefit out of that debacle, is that I used to live in fear about being fired. Now I don't. And there's a tremendous amount of freedom that brings.
As my wife says, I have this uncanny ability to always land on my feet.
Not everyday is rainbows and butterflies. Not everyday is a perfect flow day. You learn to say so what, and push forward. This is what experiencing failure does to people who get up and go again.
The trick to successfully managing a lot of projects at the same time, as well as spinning plates, is to only try to spin one up at a time. Once it's up and spinning, you can hop back and forth between spinning projects as needed to give them a little more energy and balance. But it's much more difficult to start several of them spinning at once!
Erich Brenn "Plate Spinning" on The Ed Sullivan Show:
https://www.youtube.com/watch?v=Zhoos1oY404
It also helps to show how you can recover from errors gracefully:
Charlie Callas Spinning Plates:
Can anyone expand on this? So far my biggest failure has been unmaintainable spaghetti code.)
The code equivalent would be refactoring as you go to keep your code maintainable at all times.
Citation? This seems like an unbelievable claim. At the very least, PARC must have had an artist on the payroll.
Because PARC was an intentionally multi-disciplinary group working on the earliest incarnations of visual computing.
Also, no one is disputing that Susan Kare is highly accomplished and hugely influential.
Alvy Ray Smith never got a fine arts degree, but he's definitely done art for most of his career, including exhibitions. "True artist" almost sounds like a way to exclude these types :).
https://en.wikipedia.org/wiki/Kaleida_Labs
https://en.wikipedia.org/wiki/ScriptX
https://www.donhopkins.com/home/catalog/lang/scriptx/scriptx...
This old poorly compressed ScriptX propaganda video is embarrassingly cheesy, but it shows John Wainwright (who went on to wrote MaxScript for 3D Studio Max) and Randy Nelson explaining dynamic composition by juggling objects, at 6:28! I love his lucid explanation and delightful motivation of object oriented programming.
https://www.youtube.com/watch?v=9fbWCHXl5W8&t=6m28s
Here's an article "ScriptX and the World Wide Web" that I wrote around 1995 describing the possibilities of integrating ScriptX with the World Wide Web -- kinda like what kids these days call "AJAX":
>"Link Globally, Interact Locally"
https://www.donhopkins.com/home/catalog/lang/scriptx/scriptx...
My job was writing code, documentation and white papers to demonstrate ScriptX programming and capabilities for developers, which Randy would explain in class. Dynamic composition of interactive downloadable multimedia objects was something that Java just couldn't do at the time, so I develop some demos to illustrate what the point of all that was, and to prove the possibilities of distributing interactive multimedia objects via the web in 1995.
One demo of dynamic plug-together composition of downloadable objects that I developed was the "ScriptX Pizza Demo". It distributed separate pizza crusts and topping objects in ScriptX Bento "title containers" that you could download and plug together into an interactive pizza. To demonstrate interactive behavior, you could drag the individual toppings around on the crust, and it featured spinning "eyeball" pizza toppings (inspired by Jeremy Huxtable's "NeWS Big Brother", which was also the inspiration of xeyes, of course.)
>ScriptX Pizza Demo
>The ScriptX Pizza Demo, at "http://www.kaleida.com/official/pizza", lets you construct a pizza by plugging together ScriptX objects from several title containers delivered via the World Wide Web. First you select a pizza crust in one title container, then you can select any number of pizza toppings in separate title containers. They're dynamically loaded into the KMP and locally composed in a window, that you can interact with by dragging the toppings around on the crust. There's even a "big brother" spinning eyeball topping, that animates as you move your cursor around the screen!
>This demonstrates network distribution of cross platform code and media, with local interactivity, direct manipulation, animation, dynamic binding, and plugging together objects from different containers.
>There is an extension to ScriptX on the Mac that enables it to ask NetScape to open any URL, so ScriptX can cause NetScape to display a web page, load another title container, and even send messages to interactive web services (like submitting an order for a pizza).
>ScriptX Web developers will go far beyond mere pizza toppings, publishing innovative interactive experiences on the network, no longer limited to the static text, graphics, and forms of HTML.
>Benefits of ScriptX to Web Developers
>As a general purpose object-oriented multimedia scripting language, ScriptX has many uses for web developers. It can import and export various file formats, index, search and manipulate multimedia databases, automatically generate HTML from macros and templates, draw and composite images and produce corresponding image maps, and serve as an open ended programmable hypermedia synthesizer.
You could think of it as a simpler but network distributed componentized version of PizzaTool, which I developed earlier at Sun:
https://medium.com/@donhopkins/the-story-of-sun-microsystems...
Here's the documentation for the ScriptX web module, which let you use ScriptX as a server-side scripting engine via WebStar, in conjunction with a client-side scripting engine as a Netscape helper app, to dynamically (and pre-) generate html and title containers for users to download, plug together, and play with in the ScriptX Kaleida Media Player helper app.
Having the same scripting language on both the client and server (like JavaScript in the browser + node on the server), and dynamically generating and downloading interactive persistent objects and HTML, are all pretty common and boring clichés now, but it was exciting and needed to be explained and demonstrated with a working proof-of-concept in 1995:
https://www.donhopkins.com/home/catalog/lang/scriptx/web.htm...
>This is the documentation for the ScriptX Web module. The Web module is a toolkit for integrating ScriptX with World Wide Web browsers, generating HTML, and implementing interactive services and distributed multimedia authoring tools.
Here's an illustrated transcript and video of a live improvisational ScriptX demo that I gave at the 1995 Apple World Wide Developers Conference -- you can see how Randy inspired me to improvise crazy live performance art by the seat of my pants!
https://medium.com/@donhopkins/1995-apple-world-wide-develop...
>To make any sense of this, you should realize that it’s live improvisational performance programming art. The graphical and audio artwork are just ugly placeholder “programmer art”. The references to “great content” are laughably ironic!
ScriptX may have failed in the market and lost out to Python, Java and JavaScript, and Steve Jobs finally said "No" to it, but I sure learned a lot and recovered from the mistakes, I continue applying the lessons to later work, and I had great fun working with Randy Nelson!
https://medium.com/@donhopkins/focusing-is-about-saying-no-s...
>“Focusing is about saying no.” -Steve Jobs, WWDC ‘97. As sad as it was, Steve Jobs was right to “put a bullet in OpenDoc’s head”. Jobs explained (and performed) his side of the story in this fascinating and classic WWDC’97 video: “Focusing is about saying no.”
But it included Apple's "crown jewels", the QuickTime player source code, and they were't going to give that away in 1995. Apple were even trepidatious about IBM having access to that source code.
Besides having proprietary decoders, it could also do some things you can't even do well with the Flash player or html video component today: like smoothly playing videos and music backwards!
Ever since the music industry switched from vinyl to CD, listening to demonic backmasking in Devil Music like the Beatles and Led Zeppelin's promotion of Satanism became much less convenient. ScriptX solved that important problem elegantly with its synchronized clock system, but today's HTML video player still hasn't, alas.
https://en.wikipedia.org/wiki/Backmasking
https://www.youtube.com/watch?v=5BDh_j5qAJ4
Here's a description of ScriptX's clock system:
https://news.ycombinator.com/item?id=18350511
>Kaleida Lab's ScriptX (a multimedia programing language kinda like Dylan with classes) had built-in support for hierarchal clocks within the container (in the sense of "window" not "vm") hierarchy. The same way every window or node has a 2D or 3D transformation matrix, each clock has a time scale and offset relative to its parent, so anything that consumes time (like a QuickTime player, or a simulation) runs at the scaled and offset time that it inherits from through its parent containers. And you can move and scale each container around in time as necessary, to pause movies or simulations.) You could even set the scale to a negative number, and it played QuickTime movies backwards! (That was pretty cool in 1995 -- try playing a movie backwards in the web browser today!)
Is it possible to play HTML5 video in reverse?
https://stackoverflow.com/questions/5277293/is-it-possible-t...
Kinda, but it's not smooth enough to sing along while dancing backwards and worshiping Satan to:
I think there's a lot of space for experimentation here, generating video as an arbitrary three-dimensional slice of a potentially higher-dimensional space — like how horse-race photo-finish cameras map one vertical spatial dimension and one temporal dimension into two spatial dimensions for the photo, or how Julia-set animations map two of the dimensions of the four-dimensional Julibrot onto screen space while mapping a smooth path through the other two dimensions onto time. I've gotten some stunning still images by taking even fixed horizontal or vertical slices through video, but you could also do things like delay one side of the picture more than the other, or foreshadow future action by curving part of the frame into a timelike angle through the source material. It might be difficult to record a source video with more than one temporal dimension with a camera, but you can certainly do it with ray-tracing or other rendering techniques.
Presumably if you want to play a video backward with a modern codec, you need to buffer up decoded P-frames in memory from at least the previous I-frame — much like iterating backwards over the lines in a file, except that each "character" is a megabyte or two of YUV pixels. Should be totally feasible on a modern cellphone, even for aggressive modern formats that only have I-frames every few seconds… but it would be nothing short of a miracle in 1995! I guess MPEG-2 didn't exist yet, so maybe MPEG-1 with N=18, M=2 was the worst case you'd need to handle at that point? That should only require a 10-P-and-I-frame buffer.
(Firefox 64 on Fedora from India)
I assume you wouldn't post about it if the 301 didn't have a location, but you don't mention it.
A more relavent criticism perhaps is that he recruited Scully. Also, did he hire other jugglers or similar individuals later in his career? I dont think the stunt should be praises without measuring its outcome.
Their software and hardware are not better than their competitors. At best, they are on-par with the best.
Not surprising given the enormous cost. Easy-Cheap-Good. Pick 2. Easy and Good.
Should anyone praise Apple for anything outside their marketing department?
Yes, a lot of these were inspired by prior work but iPhone still brought critical (often 10x) advances to each one—lowering the cost of the Apple II, designing a touch screen interface that worked, etc.