HN Theater @HNTheaterMonth

The best talks and videos of Hacker News.

Hacker News Comments on
Lecture 1A: Overview and Introduction to Lisp

MIT OpenCourseWare · Youtube · 4 HN points · 18 HN comments
HN Theater has aggregated all Hacker News stories and comments that mention MIT OpenCourseWare's video "Lecture 1A: Overview and Introduction to Lisp".
Youtube Summary
MIT 6.001 Structure and Interpretation of Computer Programs, Spring 2005
Instructor: Harold Abelson, Gerald Jay Sussman, Julie Sussman
View the complete course: https://ocw.mit.edu/6-001S05
YouTube Playlist: https://www.youtube.com/playlist?list=PLE18841CABEA24090

Overview and Introduction to Lisp

Despite the copyright notice on the screen, this course is now offered under a Creative Commons license: BY-NC-SA. Details at http://ocw.mit.edu/terms

Subtitles for this course are provided through the generous assistance of Henry Baker, Hoofar Pourzand, Heather Wood, Aleksejs Truhans, Steven Edwards, George Menhorn, and Mahendra Kumar.
More courses at https://ocw.mit.edu
HN Theater Rankings

Hacker News Stories and Comments

All the comments and stories posted to Hacker News that reference this video.
There's a similar sentiment in the first SICP lecture <https://youtu.be/-J_xL4IGhJA?t=48>, when Harold Abelson brings up the examples of computers and computer science, physics and particle accelerators, biology and microscopes and Petri dishes, and geometry and surveying instruments. All those tools definitely help, and indeed one would struggle at this stage to research without them, but the tools aren't the goals of the sciences.

I'm not sure what Dijkstra would have thought the "goal" of computer science was, but in the lecture Abelson seemed to think it was about describing procedures and processes in a formal manner.

bmitc
That’s a good link to share and one I thought about earlier, as I have watched that series before. However, as usual, Abelson and Sussman put together a much more coherent and thoughtful argument.

I know what Dijkstra was going for, but I do think the astronomy analogy, though while pithy in his usual attention grabbing style, is not accurate because telescopes practically define astronomy.

What you linked is what anyone wanting to think about this line of thinking more should watch. I almost feel I should watch those lectures once a year.

Nov 02, 2022 · thrown_22 on Racketscript
>Maintaining tree on text editors requires careful editing and strict practices, which human brains aren't good at. The "tree" will get broken at some point, but, in this school of thought, the recovery strategy is unclear and inconsistent at best.

We've had editors that automatically do that since the 70s. Here's a live demo hot from 1986: https://youtu.be/-J_xL4IGhJA?t=2416

>The real tree, at the end of the day, is formed by line breaks and indents, not parenthesis.

It isn't. You're not the type of person who lisp is for, which is fine. There are lots of languages suited for people like you.

But I'd be curious to know what language you think uses nothing but line breaks and indents to describe its AST.

esjeon
> Here's a live demo hot from 1986: https://youtu.be/-J_xL4IGhJA?t=2416

The process in the video still perfectly aligns with my description. Actually, I reached that conclusion by observing people writing Lisp code. That is, when you're writing Lisp code, that's exactly what people next you would see, no matter what you think.

Also, trailing ")"s are clearly a burden, as people do spend their brain cycles to properly match them.

> It isn't. You're not the type of person who lisp is for

You sound like you're right in the middle of Lisp fever, which is fine. Everyone goes through that.

> But I'd be curious to know what language you think uses nothing but line breaks and indents to describe its AST.

You simply didn't get what I was saying. Even when all the parens were stripped off from a Lisp code, you can easily reinsert parens based on line breaks and indents. So people rely more on indentations for correctly putting parens, rather than being cautions w/ every single editing operation.

thrown_22
>That is, when you're writing Lisp code, that's exactly what people next you would see, no matter what you think.

People don't match them. The editor does. Computers are very good at this. Code editing isn't a spectator sport where you can judge how easy something is by watching someone else do it. Try par-edit-mode from emacs, it's a tree editor in a text editor. You'd have your mind blown from this piece of technology from the 90s that uses nothing but plain text to edit a tree using parens.

>You simply didn't get what I was saying. Even when all the parens were stripped off from a Lisp code, you can easily reinsert parens based on line breaks and indents. So people rely more on indentations for correctly putting parens, rather than being cautions w/ every single editing operation.

Really?

So given

   f a b
which of

    (f a b)
    (f (a b))
    ((f a) b)
did I strip the parens from?
esjeon
I think I get picture here that you're probably taking my comment as some old-school Lisp-parenthesis-meme stuff. That's not it. I'm just freaking annoy by that we're using the same shit after decades. Nothing looks cool to me anymore.

> People don't match them. The editor does. Computers are very good at this.

Fixing parenthesis is a semi-automatic operation, performed by people aided by machine. People spend brain cycles on it, still in 2022.

The tree-editing stuffs are in the same line. It's whole purpose is avoid dealing with parens and nested structures, but using it requires in-brain abstraction and getting used to a different set of operations. Extra costs to cognition and operation of the editor. Nothing difficult, but you have other dozens of "nothing difficult" to stack on top of it. Welcome to the world of complexity.

> Try par-edit-mode from emacs

ParEdit is an addition to text editor, and it doesn't block you from introducing mismatched parenthesis. It's actually an important feature, because an editor that forbids this will be more painful to use than manually fixing parens. So we still fix parens in 2022.

Maybe I should compare this to ";" in C-like languages. There are editors, extensions, and formatters that can automatically insert semicolons, but, for whatever reason, semicolons go missing, so people fix it manually, still in 2022. Worse, in Javascript, missing semicolons often causes unintended behaviors, which makes it difficult to debug. Such a nice bug to have in 2022 on a language from 1990s.

Holy Jesus, is this really what we should be dealing with until the last day in our lives? Including all the ancient craps that predates myself? I don't think so.

> did I strip the parens from?

Your example doesn't have any visual structure, and, in practice, we can just refer to the definition of `f` to solve that. Not an actual problem.

What I was talking about is something like this:

    defun find-frame-class name
      cond
        and char= char name 0 #\T
              not member name '"TXX" "TXXX" :test #'string=
         ecase length name
           3 'text-info-frame-v2.2
           4 'text-info-frame-v2.3
        string= name "COM"  'comment-frame-v2.2
        string= name "COMM" 'comment-frame-v2.3
        t
         ecase length name
           3 'generic-frame-v2.2
           4 'generic-frame-v2.3

(The original code is from https://gigamonkeys.com/book/practical-an-id3-parser.html )

The tree structure is visually represented in the indented code, which is far much easier for human brain to process. You almost immediately notice where parens should go.

To recover parens without lines breaks, you should go over each symbol one by one, tracking their contexts. You know, state is evil.

So the information embedded in code format is redundant to parens. IIRC, there were people who tried to abuse this to eliminate parens. Not really sure how that went.

thrown_22
>ParEdit is an addition to text editor, and it doesn't block you from introducing mismatched parenthesis. It's actually an important feature, because an editor that forbids this will be more painful to use than manually fixing parens. So we still fix parens in 2022.

_It does._ This is like trying to explain red to a very obstinate man wearing a blind fold their whole life.

>What I was talking about is something like this:

I have no idea which of:

    (ecase length name)
    (ecase (length name))
    ((ecase length) name)
you want.

What you're complaining about is that operators of arbitrary arity need a termination symbol. That is a feature, not a bug. Basically your code is very simple and you're not using higher order functions. At which point you might as well go back to python.

To actually encode the information you're talking using nothing but white space you'd need to do the following:

find-frame-class

  name
  
  cond
   and
    char=
     char name 0
    #\T
     not
    member
     name
     quote
      "TXX"
       "TXXX"
     :test #'string=
   ecase
    length
     name
     3
      'text-info-frame-v2.2
     4
      'text-info-frame-v2.3
   t
    ecase
     length
      name
     3
      'generic-frame-v2.2
     4
      'generic-frame-v2.3
or some such. I lost interest in getting it correct since I wasted a rather long time trying to fit a tree in a 2d page at university. The key point is that a tree can be infinite dimensional and a page isn't. When you know that you rather quickly realize that all syntactic sugar is doomed and you spend your life doing more productive things with it.
Oct 31, 2022 · 3 points, 0 comments · submitted by agomez314
Actual PDF from MIT: (I assume they’re happy to let anyone use it)

https://web.mit.edu/6.001/6.037/sicp.pdf

There’s the set of the 1986 lectures on MIT’s Open CourseWare:

https://www.youtube.com/watch?v=-J_xL4IGhJA&list=PLE18841CAB...

> Written for freshman at MIT, it is ostensibly an entry-level text. But it requires such a level of competence in math and physics, and the prose itself is so dense and archaic, that I couldn't imagine suggesting it to anyone.

It’s also a complement to a course, the implications here being that chapters and examples are to be discussed in class and that a certain amount of lab-work has to be performed as well for the concepts to sink-in. But It’s not for everyone. I couldn’t see a bootcamp based on this book for instance.

It does assume a fair bit of math and physics knowledge (or a curiosity for such) because it was written with engineering students in mind who, for some of them, were encountering a computer for the first time of their lives. [0]

> One guess is intelligence signalling. That it is human nature for a person to suggest a book in an attempt make herself look smart rather than to best assist the person asking for a suggestion.

This is clickbait. SICP has been used for decades and is extremely well regarded as an introductory book. Maybe the OP lacked the fundamentals required for approaching it. If the authos has a CS degree, that reflects poorly on the program he completed.

> If you love challenging books, you are neither the norm nor the audience of this post.

But the MIT freshman this book was written for definitely are.

[0] https://youtu.be/-J_xL4IGhJA

Sep 15, 2021 · SquishyPanda23 on Turing Oversold?
> Turing Machines, on the other hand, were instantly obviously mechanizable. It was clear that one could build a physical machine to run any Turing program without human input.

Harold Abelson points out in one of his lectures [0] that computer science isn't about computers any more than biology is about microscopes.

From that perspective, it is clear that Turing found an existing discipline of computer science and made major contributions to it. But it doesn't really seem right to say that he invented or founded computer science.

[0] https://www.youtube.com/watch?v=-J_xL4IGhJA&list=PLE18841CAB...

Ar-Curunir
Computer Science is about what computers can do. To decide the latter, you have to first decide what a computer is. Turing Machines were the first abstractions that intuitively captured what it means to compute something
dnautics
that's not the case, according to the article. If anything the article implies the opposite. Turing machines were a re-abstraction of Godel's computational model that provided a path to mechanical realization.

Also if you ever work with the turing machine (NFA hooked up to an infinite recording tape) it is not at all "intuitive" that this construction comprehensively captures the world of computation.

Ar-Curunir
Godel's computational model does not intuitively capture what it means to compute. Godel himself was unconvinced that his model was universal, and it took Turing's paper to convince him that his model, lambda calculus, and Turing machines were equivalent and universal.
SquishyPanda23
Sure, if you take "computer" to mean "something that computes". In that case it would include humans. There was a great deal of research into things that can be effectively computed that goes back even before the focus of this article. And of course "computer" used to refer to humans who computed before the invention of mechanical computers.

But it's certainly not the study of what mechanical computers can do. Among other things, mechanical computers all have bounded resources unlike Turing machines.

Ar-Curunir
Mechanical computers approximate Turing Machines, just like NP approximates RE: instead of asking “does this program halt?”, we ask “does this program halt in N steps?”.

If N is sufficiently (polynomially) large, the two are approximately equal.

SquishyPanda23
> Mechanical computers approximate Turing Machines

Yup, so do humans with paper and pencil.

tialaramex
A whole bunch of Computer Science is only relevant for actual computers not Turing Machines. When I was (a student) at University they didn't teach Wait-Free versus Lock-Free concurrent algorithms, but that's an important 21st century topic because actual computers today are capable of many simultaneous operations, and it's totally possible to write a program that isn't even Lock-free and may literally make no progress despite spinning its wheels.
SquishyPanda23
Yes that is true. There are applied sub-disciplines for all of the science. Typically you would call that something like "applied computer science" or "computer engineering", but CS is new enough that it hasn't split like that yet.

Nobody is saying that's not important. But the field as a whole began before mechanical computers were invented or practical, and there are several subfields that are basically indistinguishable from mathematics.

tialaramex
I mean, my university still has separate Chemistry and Astronomy departments, but at yours following your preferred nomenclature, how do they distinguish among all the resulting departments called stuff like "Applied Philosophy", "Applied Philosophy" and "Applied Philosophy" ? Or is it that for some reason you think only Computer Science should be singled out in this way?
SquishyPanda23
I sense that you're trying to make a joke.

In any university, Chemistry is not the study of beakers nor is astronomy the study of telescopes.

tialaramex
But Chemistry cares about actual chemicals and Astronomy cares about our actual universe. Likewise, Computer Science is overwhelmingly concerned with actual computation. You aren't identifying a distinction here.

Both Software Engineering and Computer Engineering exist, as sub-disciplines, but it doesn't make sense to argue that somehow studying Graphene (a chemical which exists) is Chemistry while studying non-blocking algorithms is only Applied Computer Science somehow just because such algorithms could be used on an actual computer.

Ar-Curunir
I mean, if you want to relegate CS to only mean theoretical CS, then you’d be in a small population: most theorists don’t want that, even. One of the cool things about CS is the rich interplay between applications and theory, and separating the two would only harm both.
SquishyPanda23
Nobody is trying to relegate CS to a theoretical discipline. But theoretical CS exists, so it doesn't make sense to claim CS is the study of mechanical computers. Since it started as a theoretical discipline, it makes even less sense to say that the field was founded when we first figured out how to practically mechanize the ideas in CS.
Here is Harold Abelson discussing the topic in ~1986. His introduction to “Computer Science” has stuck with me for years. Interesting to see the lineage of the statement, it must have stuck with him as it has for me, when he first heard it.

https://youtu.be/-J_xL4IGhJA?list=PLE18841CABEA24090

I suggest a combination of theory (videos/books/papers) and practice.

For practice; I highly recommend learning Haskell. If you are new to functional programming then learning Haskell is challenging and frustrating but as with any new topic the key is to not give up but keep probing. A good recent development is lot of mainstream languages are beginning to include functional paradigms such as lambda, closures etc., For example Java introduced lambda expressions, Javascript has had them for a while now. But from a first-principles stand point Haskell is as good as it gets so please do learn and code in Haskell if not at work then at least side projects.

For theory I've found following material super useful.

0. This[0] is an incredibly awesome lecture where Phil Wadler takes us on a whirlwind tour of computer science. He talks us through different foundational structures on which almost everything (hardware and software) about computer science is built. I watch this lecture once every few months :-). It helps you build up context and ground various topics.

1. The one and only SICP. Book[1] and lectures[2].

2. Automata theory[3]. This isn't an easy course but gets to the heart of the matter i.e., the meaning of "function" and what how can it be mechanically "computed".

3. Category Theory is where lot of active research is happening in CS theory. This is a very good lecture series[4]. The pace may seem a bit meandering but don't be put off. Bartosz is a gifted teacher and works incredibly hard to disseminate knowledge. For evidence just look at a recent post on HN[5] about an article he published.

[0] https://www.youtube.com/watch?v=aeRVdYN6fE8

[1] https://mitpress.mit.edu/sites/default/files/sicp/full-text/...

[2] https://www.youtube.com/watch?v=-J_xL4IGhJA&list=PLE18841CAB...

[3] http://ce.sharif.edu/courses/94-95/1/ce414-2/resources/root/...

[4] https://www.youtube.com/watch?v=I8LbkfSSR58&list=PLbgaMIhjbm...

[5] https://news.ycombinator.com/item?id=26991300

bidirectional
That post is by a completely different Bartosz.
vishnugupta
Darn! All these days I thought they were the same! Thanks for correcting me!
vishnugupta
> For evidence just look at a recent post on HN[5] about an article he published. > [5] https://news.ycombinator.com/item?id=26991300

Ignore this part because the one I referred to is a different person! Though they are both terrific :-)

The beginning of this lecture (30 seconds in) by Harold Abelson (author of SICP - Structure and Interpretation of Computer Programs) explains why Computer Science is a terrible name here.

https://www.youtube.com/watch?v=-J_xL4IGhJA&list=PLE18841CAB...

Not sure about the year.

yesenadam
At the top of the playlist on the right it says 1986.
ldjb
That lecture (from 2005) is how I first came across this idea of computer science not being about computers. It was interesting (though not massively surprising) to discover that similar arguments have been made for several decades earlier.
creamytaco
That video lecture is from 1986.
ldjb
Thanks, I stand corrected. Part of me did think 2005 would have been a bit too recent.
The class mentioned in the article was actually made available under Creative Commons by the MIT OpenCourseWare[1], you can see the entirely of the course in Youtube. I watched and cannot recommend it enough, even for seasoned programmers

[1]: https://www.youtube.com/watch?v=-J_xL4IGhJA&list=PLE18841CAB...

canjobear
Great video series, and here is the best part:

https://youtu.be/aAlR3cezPJg?t=2088

andredz
My favorite part as well :)
caslon
It's also a freely-available book from MIT:

https://mitpress.mit.edu/sites/default/files/sicp/full-text/...

Texinfo version (recommended) and pretty PDF version:

https://github.com/sarabander/sicp-pdf

xxyzz
You can run all the code from the book and do all the exercises in Racket(https://racket-lang.org) with minimal modification.
caslon
Or, ideally, use mit-scheme, and have zero modification.
None
None
konjin
MIT scheme does not have the picture language.
koalahedron
It really seems like it should.
rekado
Speaking of which: Guile also has a picture language: https://elephly.net/guile-picture-language/
xxyzz
But drracket is more easier to use.
xxyzz
Racket can also be used in terminal. But I think it's harder to debug in terminal compared to debug in DrRacket especially in the later chapter. Besides, racket also has a sicp package for the book(https://docs.racket-lang.org/sicp-manual).
caslon
No, not really.

    $ mit-scheme
    MIT/GNU Scheme running under GNU/Linux
    
    Type `^C' (control-C) followed by `H' to obtain information about interrupts.
    
    Copyright (C) 2014 Massachusetts Institute of Technology
    This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
    
    Image saved on Friday January 4, 2019 at 11:17:34 PM
      Release 9.2 || Microcode 15.3 || Runtime 15.7 || SF 4.41 || LIAR/C 4.118 || Edwin 3.116
    
    1 ]=>
bmitc
Windows is not even supported by MIT Scheme anymore.

There is also the #lang sicp for Racket that needs no modification from the code in the book, to my knowledge.

vats
SICP language in racket lacks 1+ and -1+ (increment and decrement), last I checked. So it does still need some modification.
soegaard
Are those actually used in the book?

But if needed, the user can write:

    (define (1+ x) (+ x 1))
    (define (1- x) (- x 1))
Although, I think, add1 and sub1 are more common nowadays.
jgwil2
Pretty sure that example comes from the first edition. #lang sicp is made to work with the second edition I assume.
koalahedron
Furthermore, to get an Emacs-like REPL (Edwin)

  1 ]=> (edit)

  ;Loading "/usr/lib/x86_64-linux-gnu/mit- 
  scheme/lib/prx11.so"... done
vitus
I usually just open up a *scratch* buffer in emacs, and use ctrl-J to evaluate expressions.

I think my most common use case is for math (e.g. adding values that I extracted via some emacs keyboard macros).

harry8
https://www.mail-archive.com/[email protected]/msg015...

vs

https://docs.racket-lang.org/guide/scripts.html

MIT scheme does not love us as users. That's fine. That's entirely their decision of which this is one example. This aspect of the mit-scheme culture is a pretty significant hurdle to it gaining popularity. Probably one that was simply too big. I believe it has been replaced with python for 6.001 nowadays too.

Another example of the same mentality can be seen in the really great SICP video lectures. Jerry Sussman treats the audience like a compiler. He takes the view if he says it once correctly, successful communication of the idea is no longer his problem. That's a lot easier for the audience now we can rewind videos and listen to some small number of sentences again, and again until we get it. It's not exactly a fun way to learn things. It is also a massive contrast to the way say Larry Wall or Guido Van Rossum went about things. I've noticed since Perl ever single new language trumpets how friendly and /helpful/ the community is. I think that's probably pretty significant. This is not a criticism of Jerry, I don't know what his objectives with the language and SICP course were. Hard to get into is hard to get into whatever the reasons.

Abelson makes this point in the opening seconds of his 1986 Structure and Interpretation of Computer Programs course.

Lecture 1 https://www.youtube.com/watch?v=-J_xL4IGhJA

He explains that Computer Science is a terrible name – it's not a science, and "not about computers in the same sense that physics is not really about particle accelerators, and biology is not really about microscopes and petri dishes".

The real beauty is in how few operators you need to achieve maximal expressiveness in a programming language. It makes other programming languages seem extra. Highly recommend the SICP lectures https://youtu.be/-J_xL4IGhJA
Oct 08, 2020 · 1 points, 1 comments · submitted by rohithkp
rohithkp
The book for this course - https://amzn.to/3nt95kW
Learn LISP/Scheme and lots of fundamental concepts you probably have a feel for, but in a far more profound way:

1. First watch the SICP series (https://www.youtube.com/watch?v=-J_xL4IGhJA&list=PLE18841CAB...)

2. Then work through the book (https://mitpress.mit.edu/sites/default/files/sicp/full-text/...)

If you really do the exercises (an hour here and an hour there), you can feel you brain getting wrapped around many core notions in very illuminating ways.

schemescape
If you’re interested in the Structure and Interpretation of Computer Programs book, I ported the first portion to HTML (with a built-in Scheme interpreter) here: http://jaredkrinke.github.io/learn-scheme/
diehunde
First time watching those videos! What year is that? They looked way older than 2005
mtreis86
https://ocw.mit.edu/courses/electrical-engineering-and-compu... "These twenty video lectures by Hal Abelson and Gerald Jay Sussman are a complete presentation of the course, given in July 1986 for Hewlett-Packard employees"
Err_Eek
I've been going through SICP for a year and a half now on and off. At this point I don't feel I've been getting back all the effort I put in it.

I think it's mostly recommended by people who didn't do all the exercises, or casually browsed through it and all they were left with was the fact that you can write a programming book without mentioning assignments until halfway through or that it's more easy to write a scheme interpreter in scheme than other languages.

But the book is really dense, and you won't be left with much after trying to debug your hundreds line script meant to solve one problem.

floathub
Of course everyone comes at these things with different histories and different intrinsic interests. But I really enjoyed fundamental stuff like:

* the concept of assignment implying _time_ and messing with the substitution model.

* recursive functions that are iterative

* iterative structures that are recursive

* At the base of the base of the data abstraction in LISP is, well, nothing.

* Code as data, data as code, really strongly underlined.

* The whole LISP written in itself (as a sort of fixed point of a language that defines a language). That is really something.

* The idea of using a language to write a language that lets you express your problem.

That last one is probably obvious to most, but it was really novel to me (despite years of writing functions to compute answers).

Maybe more of the hype comes from the fact that its a Lisp. To get a feeling for the "magic" of lisp, I would suggest either watching SICP video lecs[0] or reading the book. I started learning lisp, almost the same time I've started learning programming with Java (college). Honestly I was thinking why they don't just teach us that, instead of Java at that time.

Also Clojure is created by a fairly respected dude (afaik) Rich Hickey. His talks and Clojure design decision articles on the site are really insightful.

Also this talk[1] also pretty good overview of different paradigms and `Clojure way`, imo.

[0]https://youtu.be/-J_xL4IGhJA?list=PLE18841CABEA24090 [1]https://www.youtube.com/watch?v=vK1DazRK_a0

It’s funny you should ask that as I was just watching a lecture by Harold Abelson in which he addresses this exact question.

https://youtu.be/-J_xL4IGhJA

In case you don’t have the time or inclination to watch the video it can basically be summarized by saying the following. When the Egyptians first discovered geometry it was considered crop science as it’s primary application was for determining crop yields and when to plant and harvest. In the same way now that computers science is applied to computers today. But just like Geometry is really about farming, computer science is not really about computers. Professor Abelson goes on to explain that computer science provides a means to determine proofs for abstract mathematics a reasoning, so that we can understand with definitive proof things that until now were only theoretical.

rajesh-s
Thank you for sharing this!
I’ve included the halting problem, but omitted the Turing machine, because while ingenious, the latter is simply a hack to make proofs work and not a very good way to think about computation. Similarly, I’ve included distributed representations, but omitted backpropagation since while backprop works very well for a number of problems that are otherwise unsolvable today, it is not a particularly enlightening way to write programs.

Also, the first 10 minutes of the introductory SICP lecture contains a livelier presentation of the idea in the quote: https://www.youtube.com/watch?v=-J_xL4IGhJA&list=PLE18841CAB...

The original course videos are on youtube too! I found them a bit easier to watch than reading the book:

https://www.youtube.com/watch?v=-J_xL4IGhJA&list=PLE18841CAB...

dmitryminkovsky
Had no idea these were online. Thank you!!
globnomulous
I just started the first video. This guy is a phenomenal lecturer. Thank you for posting the link!
HN Theater is an independent project and is not operated by Y Combinator or any of the video hosting platforms linked to on this site.
~ yaj@
;laksdfhjdhksalkfj more things
yahnd.com ~ Privacy Policy ~
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.