Education The Role of Customer Service in Education Earlier this week, I witnessed a college-level class argue with the professor about the due date of an assignment. Does it help the students to push the assignment back a week, or is it antithetical to good education?
Editorial The Driving Force After nearly half of dropouts didn't find school interesting or relevant, 27 states enacted "No Pass No Drive" laws, banning dropouts from driving. Were these laws a wrong turn?
Editorial The Parabolic Parking Problem Some time ago I was wondering how, in the event that I became overlord of an evil parking meter company, I could make a parking meter with a somewhat skewed sense of fair. My goal was simple: order 1 hour, get one hour; order 2 hours, get 1 hour and
Editorial Hacking the Election With Online Voting Online voting is sometimes hailed as the future of democratic life. Is online voting feasible now, or does it present yet another way to rig the election?
Programming Remote Methods: Introduction Say you're writing a multiplayer game, for example, and you would like to express your remote calls as something readable and succinct like string nickname = await Server.AuthenticateAsync("Requested_Nickname") instead of as string nickname = null; stream.WritePacketId(PacketId.AuthenticateName); stream.WriteInt(myClientId); stream.WriteInt(client.
Building GlassScript Implementing a Language in C# - Part 6: Runtime Intorduction This post is part of a series entitled Implementing a Language in C#. Click here to view the first post which covers some of the preliminary information on creating a language. Click here to view the last post in the series, which covers edge cases of the parser. You can
Building GlassScript Implementing a Language in C# - Part 5: Parsing This post is part of a series entitled Implementing a Language in C#. Click here to view the first post which covers some of the preliminary information on creating a language. Click here to view the last post in the series, which covers the Abstract Syntax Tree and error recovery
Building GlassScript Implementing a Language in C# - Part 4: Parser Setup This post is part of a series entitled Implementing a Language in C#. Click here to view the first post which covers some of the preliminary information on creating a language. Click here to view the last post in the series, which covers some of the fundamentals of building a
Building GlassScript Implementing a Language in C# - Part 3: Parser Introduction This post is part of a series entitled Implementing a Language in C#. Click here to view the first post which covers some of the preliminary information on creating a language. Click here to view the last post in the series, which covers building the Lexer. You can also view
Building GlassScript Implementing a Language in C# - Part 2.5: Source Code This post is a supplemental in the Implementing a Language in C# series. Click here to view the first post which covers some of the preliminary information on creating a language. You can also view all of the posts in the series by clicking here. As I began implementing the
Building GlassScript Implementing a Language in C# - Part 2: The Lexer The lexer, also known as a Tokenizer or Scanner, is the first step of the compilation process. This post demonstrates the most important considerations to take into account when building a lexer.
Building GlassScript Implementing a Language in C# - Part 1: Introduction Creating a new programming language is never a task that should be undertaken lightly. Before even starting work on your new language, imagine how it will be used. Will you use it for a new game? For processing data? As a general-purpose language? Next, consider alternative options. Lua is an
Editorial Just How Bad is the Passive Voice? It is often said that the passive voice weakens an argument. It often uses extra words, reduces readability, and can even remove the reader from the text. The passive voice creates a sentence that is cold and often lacking a clear, specific subject. It is for these reasons that many