Felix Kohlgrüber
05/08/2019, 12:48 PMhttps://youtu.be/lyRPyRKHO8M?t=4604▾
Scott Anderson
05/10/2019, 8:12 PMScott Anderson
05/15/2019, 5:03 PMDaniel Hines
05/17/2019, 6:29 PMEdward de Jong / Beads Project
05/17/2019, 8:41 PMibdknox
05/20/2019, 7:20 PMpbiggar
05/20/2019, 8:43 PMpbiggar
05/20/2019, 8:44 PMif (x % 5 == 0)
easy to read, understand, and edit”pbiggar
05/20/2019, 8:45 PMEdward de Jong / Beads Project
05/21/2019, 6:36 AMEdward de Jong / Beads Project
05/23/2019, 7:45 AMStefan
05/23/2019, 3:56 PMshalabh
05/23/2019, 4:40 PMshalabh
05/30/2019, 4:24 AMstevekrouse
05/30/2019, 3:33 PMshalabh
06/02/2019, 4:56 PMrobenkleene
06/03/2019, 8:32 PMyoz
06/03/2019, 11:33 PMGarth Goldwater
06/06/2019, 5:43 PMDaniel Garcia
06/10/2019, 7:02 AMrobenkleene
06/11/2019, 6:36 PMQuietly living inside file managers built by operating-system companies “served us well,” says Dropbox CEO and cofounder Drew Houston.
yoz
06/11/2019, 6:54 PMDan Stocker
06/11/2019, 10:05 PMGarth Goldwater
06/13/2019, 10:14 PMGarth Goldwater
06/13/2019, 10:18 PMGarth Goldwater
06/18/2019, 7:14 AM>> Enter TurboEditor. Because of this one simple little thing (not so little actually) that my friend found, we were able to decompile the entire CanDo program and figure out how it worked. Remember that important thing? Yes, that’s right, CanDo is actually written in itself and it could actually modify pieces that are currently executing. Let me clarify this just a little. One card could modify another card, then pull that card into focus. The actual card wasn’t currently executing, but the deck was. In fact, we came to find that CanDo was merely a facade. We also found that there was a very powerful object oriented, fully reentrant, self-modifying, programming language under that facade of a UI. In fact, this is how CanDo’s UI worked. Internally, it could take an element, decompile it, modify it and then recompile it right away and make it go live, immediately adding the updated functionality to a button or slider.
While CanDo could modify itself, it never did this. Instead, it utilized a parent-child relationship. It always created a child sandbox for user-created decks. This sandbox area is where the user built new CanDo Decks. Using this sandbox approach, this is how CanDo built and displayed a preview of your deck’s window. The sandbox would then be saved to a deck file and then executed as necessary.
wtaysom
06/19/2019, 5:17 AMhttps://www.youtube.com/watch?v=McnKrV0aDjo▾
Dan Cook
06/22/2019, 3:43 PMStefan
06/28/2019, 12:27 PM"I want to understand the most important programming paradigms and learn about the broadest set of language features out there. What is the minimal set of programming languages I should look at? Popularity and how widely used these languages are doesn't matter, I just want the highest 🤯:🤓 ratio to maximize my learning."Here's what I think: • C — for a simple, pragmatic, influential, and still widely used procedural language and to understand memory management • Smalltalk — for a highly dynamic language and environment, message passing and the origins of OOP • Lisp — because you wouldn't take me seriously if I left it off such a list • Haskell — for a pure functional, strongly typed language with laziness and strong compiler support (error checking, synthesis, etc.) • Forth — for an even simpler, but still highly expressive, extensible, and dynamic language • Datalog — for logic programming and constraint solvers (or maybe Prolog instead?) • Erlang — for actor model and concurrent programming What would you respond?
shalabh
07/01/2019, 7:40 PMshalabh
07/01/2019, 7:40 PMKartik Agaram
07/01/2019, 7:42 PMshalabh
07/01/2019, 8:09 PMclass Person:
name: string
Now as soon as you deference person.name
you've lost all context - you just have a string. Would be nice to have more meaning attached to the values themselves. You can kind of solve this by newtype/aliasing but it's very clunky and may require defining both a new type and the field with the same name.Miles Sabin
07/01/2019, 8:28 PMname: SomeType
as an element of an HList
with the type Tagged[SomeType, "name"]
where the "name" is a literal type, ie. the singleton type of the String precisely equal to "name".Scott Anderson
07/01/2019, 10:10 PMKartik Agaram
07/02/2019, 4:07 AMValue types in structures would need to be nominal, not structural. I really don't care if I get a tuple ofThe article is using nominal vs structural in a way that I can sympathize with but haven't seen before. Is, I very rarely care what the machine level types are, what I really want is[Int32, String]
, what the underlying types are doesn't really matter to me.[ProductID, ProductName]
int32
a nominal type because you (often) can't cast it to a boolean? Or is it a structural type because you can use the same operations on it as int64
? Our categories seem to break down at the event horizon of primitive types.
Between this and Rich Hickey's recent critique [1], I feel like I'm seeing the word 'types' with new eyes in 2019.
[1] https://www.youtube.com/watch?v=YR5WdGrpoug▾
shalabh
07/03/2019, 4:43 PMStefan
07/03/2019, 5:01 PMKartik Agaram
07/03/2019, 7:25 PMshalabh
07/08/2019, 3:32 PMWhat if we required types within interfaces to only be other interfaces?This is somwhat the thing I'm looking for. Maybe it's possible as a design pattern. I feel this idea needs to be provided by the system. One key aspect would be the definition of the 'mapping' between the domain types and the machine types. If this was powerful there's no reason to always clump domain structs together in memory. Perhaps it's also possible have multiple possible underlying representations used in different scenarios for the same domain types and have the system be aware of this mapping. Higher level logic could be written against the domain data model only and optimizations would be defined only in the mappings/hints to machine types.