7 ms·
Free your technical aesthetic from the 2010s
- gfodor 15y agorelevant talk by Alan Kay: http://tele-task.de/archive/video/flash/14029/ http://tele-task.de/archive/video/flash/14029/
- wseymour 15y agoI love the content of that presentation as well as the fact that the presenter was clearly as high as a kite.
- sp332 15y agoWhy do you say that? The content or the style?
- webnrrd2k 15y agoI've had a lot of the same thoughts, although in a much simpler form. So, of course, I think the talk is brilliant. Thanks for posting it. I found it especially relevant how he illustrated thinking in terms of imprinting and erosion. I've been thinking about my personality, and how I think about things, in different, but oddly similar terms. I also agree that personal computing is, to a large extent, re-inventing the past. The best quote I heard on that, as best I can recall, is "The PC recapitulates the mainframe", which is borrowed from Biology's "Ontogeny Recapitulates Phylogeny".
- shadowsun7 15y ago"Those who don't understand UNIX are doomed to reinvent it, poorly." --Henry Spencer Which can then be turned into: "Programmers who do not understand history are doomed to reimplement it - poorly" - http://enfranchisedmind.com/blog/posts/what-good-is-a-cs-degree/ http://enfranchisedmind.com/blog/posts/what-good-is-a-cs-deg... I thought both of them were good sayings to keep in mind, while reading the above post.
- batista 15y agoOn the other hand, those that understand UNIX all too well, are doomed to recreate and use it ad infinitum, in lieu of creating something better. At least the ACTUAL developers of UNIX created Plan 9, they didn't put their hands up and said "this is how you do things, no improvements can be made". For example, when I see the lame "it's how it was always done", arguments against a sane FS hierarchy like the one gobolinux attempts at, I want to tear my hair off.
- stralep 15y agoWhat I like about UNIX: Everything is a file. Except of processes. And sockets. And XWindows.
- gaius 15y ago/proc and /dev/tcp http://tldp.org/LDP/Linux-Filesystem-Hierarchy/html/proc.html http://tldp.org/LDP/Linux-Filesystem-Hierarchy/html/proc.htm... http://www.linuxjournal.com/content/more-using-bashs-built-devtcp-file-tcpip http://www.linuxjournal.com/content/more-using-bashs-built-d... X is just a protocol, you can happily think about X apps in terms of processes and sockets.
- nitrogen 15y agoThat does suggest the idea of implementing a FUSE filesystem that represents all clients connected to the X server (or Wayland). That could be interesting.
- stralep 15y agoI agree, but this should have been from the start, or at least from UNIX-Internet marriage. My point was little tongue-in-cheek, but I believe that during the years UNIX has got things that are not truly with their initial idea. Or little more interfaces than necessary.
- silentbicycle 15y ago/proc is an attempt to retrofit plan9 ideas back on Linux. Plan9's is far more powerful, because you can control the visibility of filesystem mounts per-process.
- bergie 15y agoAs far as I can understand, this was exactly the problem that Plan9 tried to fix. UNIX had started from the concept of "everything is a file", but then as new things got added, those didn't follow the philosophy. Plan9 was an attempt at a fresh start where such non-UNIXisms could be moved back to files.
- etrain 15y ago
- taybenlor 15y ago"instead of reading an exception trace, you get to load the actual moment the exception was triggered into your local debugger and pick up from there as if it just happened locally!" I want this.
- nitrogen 15y agoYou could do it with C++ by enabling core dumps and wrapping any "throw" statements (or altering the constructor for the exception classes you want to monitor) with an operation that dumps the core. There's also the "gcore" utility I discovered while researching this comment.
- Negitivefrags 15y agoYou already have it! This is what our good old friend the core dump is for. Load the core dump in GDB and there you are. I'd argue that on windows it's even easier. You can create a symbol server to store all the debugging info (the PDB files) and the debugger can download the correct symbols for that particular compiled version. The PDB format supports having an arbitrary commands added to procure each source file. You can connect this up to your version control system so that not only do you have the stack and symbols, you can actually browse around the source code of whatever version of the code actually crashed just as if it had crashed locally. On linux you have to work out a system for archiving your symbols and getting them for the correct version of your software yourself, but the effort is certainly worth it. We have a system to generate HTML reports each day by grouping crash dumps by the functions near the top of the stack (if the top 5 functions are the same, it's considered the same crash), so each day we can see what the most important crash is.
- drothlis 15y agoExcept for the article's steps 3 & 4: 3. You enter some code and hit proceed 4. The app continues like nothing happened A short (<3min) video demoing the same: http://vimeo.com/27850933 http://vimeo.com/27850933
- pnathan 15y agoYeah, when a native app crashes, it just dies. Whereas, generally with Common Lisp, I can trap the condition, fix the problem, and keep running. I know what languages I'd consider starting grounds for 100% uptime systems (not 5 9s), and languages that segfault and die as part of their usual crash hangling are not among them. (Erlang, Lisp, and Smalltalk would be my shortlist)
- danieldk 15y agoIt's true that most natural languages cannot be parsed with a CFG, but he gives the wrong example. In fact, the language of the grammar that he describes can perfectly be generated by a CFG. E.g. for a rule such as: sentence --> noun_phrase(Num), verb_phrase(Num). You could create the CFG equivalent: sentence --> noun_phrase_sg, verb_phrase_sg. sentence --> noun_phrase_pl, verb_phrase_pl. It sure is a drag, but this is how many CFG grammars/parsers work. Of course, it's generally agreed upon that DCGs generalize better even when used with grammars that can be described with a CFG. Most natural languages are not context-free, but he gives the wrong example. To provide a more convincing example - in Dutch you can construct phrases like: dat ik Marie Jan de dozen zie helpen inpakken (lit: that I Marie Jan the boxes see helping packing) The NPs and the verbs correspond in the following manner: ik - zie, Marie - helpen, Jan - Inpakken. Or, more formally, the structure is: np_a np_b np_c np_x v_a v_b v_c. Of course, this highly resembles a COPY language, which cannot be expressed using a CFG, but (obviously!) can be expressed using a DCG: s(L) --> w(L), w(L) w([a|Rst]) --> [a], w(Rst). w([b|Rst]) --> [b], w(Rst). w([]) --> [] (This grammar parses/generates a string of zero or more a's and b's, followed by exactly the same string.)
- gurkendoktor 15y agoOne reinvention of remote debugging at the source of an exception is this, in Ruby: https://github.com/Mon-Ouie/pry-remote https://github.com/Mon-Ouie/pry-remote Now, if I only had the same thing for Cocoa Touch - after all, both languages are supposed to inherit from Smalltalk.
- deleted 15y ago[deleted]
- wazoox 15y agoAaaah, SHRDLU, fond memories. When I was 7 around 1977 I had a wonderful magazine on robots (I still have it somewhere), and it had a long chapter on SHRDLU, and an interview with its programmer Terry Winograd. This was the first time I was captivated by computers, programming and pure unadulterated geekery.
- msutherl 15y agoAfter SHRDLU, Winograd denounce AI as hogwash and was instrumental in starting what we now know of as interface design/HCI.
- jamieb 15y agoAnd then, 30 years later, came Siri and IBM's Watson... Winograd talks about three different metaphors for HCI: conversation, manipulation and locomotion. In the 70's he gave up on conversation for manipulation, and was right do to so, but with modern computing power and databases, conversation is coming back as a relevant model.
- TeMPOraL 15y ago"Cocoa doesn't have this. C# doesn't have this. Nothing else has this." Lisp has this. It has probably invented this.
- arethuza 15y agoSounds like Lisp image files and .Net dump files: http://stackoverflow.com/questions/480083/lisp-image http://stackoverflow.com/questions/480083/lisp-image http://msdn.microsoft.com/en-us/library/d5zhxt22.aspx http://msdn.microsoft.com/en-us/library/d5zhxt22.aspx
- stevencorona 15y agoYou had me until the NoSQL rant. I see what you're saying, but modern data stores such as Cassandra, Riak, Mongo, Redis etc. are solving different problems and, IMO, it's ignorant to say that they are simply reinventing the wheel. There is life beyond RDBMS and ACID.
- etrain 15y agoI have serious problems with the relational data model, but I do think he raises a good point. This relational stuff has REALLY strong fundamentals and is battle tested. There are a lot of people out there shouting 'scalability!' without understanding the roots of their problems. Is a fully distributed persistent k/v store what's needed for many applications? Certainly. But that doesn't mean we should throw out the relational model for every application.
- rbanffy 15y agoIndeed, there is, but it feels oddly familiar, for those raised in the ancient era of ISAM, IMS and Total, to once again need to worry about consistency. NoSQL databases (and not all of them are hierarchical) solve problems Codd wouldn't dream of having, but that doesn't mean they solve every current problem. I've seen people abusing them in horrible ways.
- weavejester 15y agoThe author seems to have the attitude of "I don't understand why people do X, therefore people who do X are morons."
- agentultra 15y agoWell if you are referring to the one instance where he uses the word, "morons," you might have missed the implied context. 1. Informal . a person who is notably stupid or lacking in good judgment. And the entire passage in which he uses the term to give us some context: An even bigger letdown for me is the whole NoSQL situation. The proponents of NoSQL aren't even aware of how they are repeating history by recreating the hierarchical databases of yore. E.F. Codd was explicitly trying to rectify these mistakes when he formulated relational database theory 40 years ago, and now we've come so far along that we've wrapped around and apparently must re-learn these mistakes a second time. The morons promoting this technology have no clue, they see themselves as the new sheriffs in town, putting their scalability law above all else. His argument is strong and he provides his reason so I don't think it's for a lack of understanding. If you have issue with his argument address it! Don't use passive ad-hominem attacks. Are the creators of data stores that identify as "NoSQL" repeating mistakes made in history? Are they a different class of technology than those that were invented 30, 40 years ago?
- dkarl 15y agoIt's strange that we live in such a bifurcated world, that on the one hand we have astronomical demands for a certain class of program, but for the kinds of programs we use day-to-day, they're shockingly procedural. Programmers, by virtue of being a little bit understanding and forgiving of computers' nature, can enjoy software that frustrates the hell out of normal people. It gets pounded into us over and over again that normal people are the right standard to build software to, but once in a while we should allow ourselves to enjoy something like the blocks program, even if it would never pass an A/B test against a blank screen.
- SonicSoul 15y agospeaking of aesthetic, this post has huge fonts, and a horizontal scroll. luckily there's readibility: http://rdd.me/ycoese07 http://rdd.me/ycoese07
- angersock 15y agoI'm not sure if you noticed, but readability here seemed to drop some headers and also render the special font sections (code snippets, etc.) in skinnier and less legible text. The scrollbar seems due to the conversation with the computer about the blocks--barring that, nothing else is offpage. Really?