NotesThe first company to get this will own the next phase of AI development tools. They’ll build tools for real software instead of toys. They’ll make everything available today look like primitive experiments.FeedUnfurl
NotesTo me, all signs point towards software engineering changing radically as a profession to be much more oriented around the what and why of software, and much less around the how. This will cause disruption at a massive scale in the long run. But in the short run, it's just a lot of fun to play with these tools and see what they can do.Unfurl
NotesIt's been a few years since I wrote about my challenges with async/await-based systems and how they just seem to not support back pressure well. A few years later, I do not think that this problem has subsided much, but my thinking and understanding have perhaps evolved a bit. I'm now convinced that async/await is, in fact, a bad abstraction for most languages, and we should be aiming for something better instead and that I believe to be thread.FeedUnfurl
NotesThe title of this blog post is at least a little sarcastic, but I think is an honest to goodness truth: If you want to build a future that involves beautiful systems like Smalltalk, you must first rebuild the economic environment wherein it could be built. Wherein it could succeed! These systems idealized in lamentations at SPLASH all seem to me to be products of economic surplus combined with the right people. We need an economy that has surpluses around for people to do explorations. FeedUnfurl
NotesI'd like to think that my understanding of "async Rust" has increased over the past year or so. I'm 100% onboard with the basic principle: I would like to handle thousands of concurrent tasks using a handful of threads. That sounds great!FeedUnfurl
NotesRust lets us represent State Machines in a fairly good way. In an ideal situation we'd be able to make enums with restricted transitions between variants, but that's not the case. Instead, we can harness the power of generics and the ownership system to create something expressive, safe, and understandable.FeedUnfurl
NotesNew Hampshire has installed what appears to be the first historical highway marker honoring computer programming, according to the Concord Monitor. The new sign honors BASIC, Beginner’s All-purpose Symbolic Instruction Code, a programming language that was invented at Dartmouth College in 1964.FeedUnfurl
NotesBASIC wasn’t designed to change the world. “We were thinking only of Dartmouth,” says Kurtz, its surviving co-creator. (Kemeny died in 1992.) “We needed a language that could be ‘taught’ to virtually all students (and faculty) without their having to take a course.”Unfurl
NotesAre we just trying to solve a problem quickly, or are we trying to build a robust solution? I got into programming at least in part because it seemed like the closest thing to magic that really exists. So I’m going to call these two distinct styles wizarding and engineering.FeedUnfurl
Notes const Storage = Sup => class extends Sup {
save(database) { ··· }
};
const Validation = Sup => class extends Sup {
validate(schema) { ··· }
};
You can use them to compose a class Employee as follows.
class Person { ··· }
class Employee extends Storage(Validation(Person)) { ··· }FeedUnfurl
NotesI remember playing around with Markov chains back in the day, and thought that it would be fun to see what that looked like when fed all 15,000 of my Tweets.FeedEmbedUnfurl
NotesSqueakJS executes Squeak in a web page without a plugin. It is a fully capable virtual machine implemented in pure JavaScript running unmodified Squeak images. Squeak is a modern implementation of Smalltalk, the original dynamic object-oriented programming environment. It runs bit-identically on virtually any platform, and now in the web browser, too.
Unfurl
NotesI desperately needed to extract the complete (and very lengthy) command line I had written 6 months ago in a bash shell - which was still running under screen. Read on to see how I eventually made it... FeedUnfurl
Notes Its original purpose was to provide a simple means of getting basic sound effects into a game for those people who were working hard to get their entries done within the 48 hours and didn't have time to spend looking for suitable ways of doing this. Unfurl
NotesBecause FriendNet serialized all of its communication into chat messages, it sent corrupted data whenever the broadcasting player was drunk.Unfurl
NotesYou had to bang your ideas around, twist them, turn them, searching for something, anything that would help you squeeze them into the machine. Sometimes you found it, and you got one step closer to realizing your ideas. Sometimes you didn’t.FeedUnfurl
NotesAs a systems hacker, you must be prepared to do savage things, unspeakable things, to kill runaway threads with your bare hands, to write directly to network ports using telnet and an old copy of an RFC that you found in the Vatican. FeedEmbedUnfurl
NotesHe says that we tend to think of programming as something that’s only practiced by the young: you spend your 20s working 80 hours a week, and then you give it up and go into management. But that may not be the best way to play it.Unfurl
NotesHexagonal grids are used in some games but aren’t quite as straightforward or common as square grids. I’ve been collecting hex grid resources for nearly 20 years, and wrote this guide to the most elegant approaches that lead to the simplest code, largely based on the guides by Charles Fu and Clark Verbrugge. I’ll describe the various ways to make hex grids (I’ve counted 74 so far!), the relationships between them, as well as some common algorithms. Many parts of this page are interactive; choosing a type of grid will update diagrams, code, and text to match.FeedUnfurl
NotesAfter Yahoo! acquired Summly and Google acquired Wavii, there is no doubt that auto summarization technologies are a hot topic in the industry. So as a NLP freak, I decided to give a quick overview and hands-on experience on how these technologies actually work.FeedEmbedUnfurl
NotesSubstitutability is a principle in object-oriented programming. It states that, in a computer program, if S is a subtype of T, then objects of type T may be replaced with objects of type S (i.e., objects of type S may be substituted for objects of type T) without altering any of the desirable properties of that program (correctness, task performed, etc.).FeedUnfurl
NotesThe IPython Notebook is a web-based interactive computational environment where you can combine code execution, text, mathematics, plots and rich media into a single documentUnfurl
NotesFor me there was a time that can only be described as adolescence in the field of programming and more specifically JavaScript. This period was characterised by a certain laziness and hubris. I thought I was right. I thought others were wrong. I could see no path but the very strict one that I had boxed myself into through a process in which I longed for certainty and the expulsion of realistic doubt.FeedUnfurl
NotesZen19 is beating extremely strong amateurs, but it hasn't beaten professionals in games with no handicap yet. That said, now that we know that Zen19 is using Monte Carlo strategies, the reason why it seems to be getting stronger as it's fed more CPU time is revealed: these strategies are the most obviously parallelizable algorithms out there, and for all we know this exact version of Zen19 could end up becoming World Champion if a few more orders of magnitude of CPU time were made available to it.
Which would feel like a shame, because I was really looking forward to seeing us figure out how brains work. FeedEmbedUnfurl
NotesI’ve recently caught myself, like some horrific solo re-write of the Monty Python Four Yorkshiremen sketch, waxing lyrical to my two iPod-wielding young ‘uns about the good old days; when men were men, computers were effectively clockwork, and computer games… well, come to think about it, they still cost about 69p. But you didn’t download them from an app store. Oh no. They came bound into computer magazines and had to be typed in by hand. And oh yes, they were in an arcane language called Basic.Unfurl
NotesThis is an article on the module pattern for Javascript, and some of its neat properties. I’ve been using it recently for projects like Wax and mmg, and think it’s a neat way to structure code and avoid some of the less likable parts of the language.FeedUnfurl
Notes"Old farts" are often excluded from that culture, not because we're lousy coders but because we won't put up with that shit. We have lives, we have families, we have other things that are important to us. We're not about to sleep at our desks and trade watching our kids grow up for the promise of striking it rich. Especially when the people who really strike it rich aren't the ones writing code.Unfurl
NotesWriting appears more forgiving because there is no compiler or interpreter catching your its and it’s issues or reminding you of the rules regarding that or which. Here’s the rub: there is a compiler and it’s fucking brutal. It’s your readers. Your readers are far more critical than the Python interpreter. Not only do they care about syntax, but they also want to learn something, and, perhaps, be entertained while all this learning is going down. Success means they keep coming back - failure is a lonely silence. Python is looking pretty sweet now, right?FeedEmbedUnfurl
NotesStarting with Node's built in REPL, add in a completely redone inspect formatter, actual functioning separate V8 contexts, keybindings to create, switch, and delete between them, combine it with a bunch of color. ULTRA REPL Unfurl
NotesVendetta Online has a Lisp environment (using SBCL) which controls much of its NPC behavior and will soon be in charge of generating player and NPC missions. Partly in order to get around some thread-safety issues, and partly for convenience we built an REPL into a secret chat channel. (it only responds to developer accounts)Unfurl
NotesThe problem is that this person’s problem-solving technique is to ask for the solution. Not to seek advice on how to approach the task, or ask for the names of likely classes to look into, or a link to an example - but to just ask for the code, fully formed and ready to go. This is not problem solving, and software engineering is entirely about problem solving.FeedUnfurl
Notes I would like to document an emerging set of programming conventions, philosophies, and values that I see evolving in the node.js community. I call this the node aesthetic. Unfurl