recentpopularlog in

mcherm : via:ericlippert   33

Wizards and warriors, part five | Fabulous adventures in coding
This is the final episode in a lengthy series, but it contains the key insight: certain complex rules should not be implemented directly in code, but abstracted into policy objects which can then be applied as needed. *This is insightful!!*
programming  via:EricLippert  EricLippert  architecture 
may 2015 by mcherm
C# and VB are open sourced | Fabulous Adventures In Coding
Hmm... Maybe Microsoft truly IS adopting the open source ethos.
opensource  microsoft  via:EricLippert 
april 2014 by mcherm
Find a simpler problem | Fabulous Adventures In Coding
A discussion for beginning programmers of how to tackle a programming problem that seems too difficult.
mypostings  EricLippert  via:EricLippert 
march 2014 by mcherm
How We Learned to Cheat at Online Poker: A Study in Software Security
In 1999 they looked at the algorithm used to shuffle online poker decks and demonstrated that they could "break" it trivially.
security  cryptography  via:EricLippert 
may 2013 by mcherm
Digital pain (rerun) | Fabulous Adventures In Coding
Astounding... I never knew this. Nerves transmit DIGITAL data, not analog: it's number-of-bursts-per-unit-of-time.
science  medicine  philosophy  via:EricLippert  EricLippert 
february 2013 by mcherm
Which is faster? | Fabulous Adventures In Coding
If you're asking whether method1() or method2() is faster then you're probably doing it wrong. Here's why.
performance  programming  EricLippert  via:EricLippert 
december 2012 by mcherm
Is C# a strongly typed or a weakly typed language?
His answer is that it has escape hatches so "strong" or "weak" depends on whether you count escape hatches. Also, those terms don't really mean anything consistent.
via:EricLippert  EricLippert  languagedesign  types 
october 2012 by mcherm
Persistence, Facades and Roslyn's Red-Green Trees - Fabulous Adventures In Coding - Site Home - MSDN Blogs
You want an immutable tree structure, with log-n sized replacement on edits. But you ALSO want up-links in the tree. How? One immutable tree (links go top->bottom) and another that's not immutable and is built on-demand while walking down the tree. Clever.
datastructures  programming  immutable  EricLippert  via:EricLippert 
june 2012 by mcherm
When Good Data Structures are Not the Right Choice
Strings in .Net have a length prefix and a \0 suffix. This means substring() can’t re-use sections and concatenation can’t build a rope. They COULD build a second implementation make these two things efficient. But performance tests show it’s not worth it because most of the time developers use short strings. Big-O analysis doesn’t matter if most of your use cases are small!
via:EricLippert  EricLippert  optimization  programming  datastructures 
july 2011 by mcherm
A C# compiler bug - and the response
Now THIS is how the maintainers of ANY compiler, language, or ANY other tool ought to behave. Eric Lippert responds to a valid report of a bug in the C# compiler.
programming  c#  EricLippert  via:EricLippert  compiler 
april 2011 by mcherm
Asynchrony in C# 5 Part Six: Whither async? - Fabulous Adventures In Coding - Site Home - MSDN Blogs
A wonderfully detailed review of a language designer's thought process and the tradeoffs involved in a language design choice.
via:EricLippert  EricLippert  languagedesign 
december 2010 by mcherm
Murky Research - Fabulous Adventures In Coding - Site Home - MSDN Blogs
A CarTalk puzzle about filling cars, and analysis of false negatives.
math  statistics  via:EricLippert 
july 2010 by mcherm
Shawn Hargreaves Blog : Bug or feature?
An example of a programming bug in a computer game which, quite by accident, created really interesting gameplay.
via:EricLippert  bug  programming 
april 2010 by mcherm
Fabulous Adventures In Coding : Queueing Theory In Action, plus, frogs
Here's why you should have one long lines for all cashiers not separate lines for each.
computerscience  queuing  via:EricLippert  EricLippert  customerservice 
august 2009 by mcherm
Why Doesn't C# Implement "Top Level" Methods? : Fabulous Adventures In Coding
Why doesn't C# have functions that aren't associated with some class? An answer to this question, along with a discussion of the pros and cons of such a feature in a language.
languagedesign  via:EricLippert  EricLippert 
june 2009 by mcherm
Making it easier : Fabulous Adventures In Coding
A cogent illustration of why "proposed programming language features start out with -100 points". Although nearly ANY proposed feature makes a specific task simpler and easier, it makes understanding the entire language MORE difficult -- also it makes it more difficult for people to read each other's code and things like that.
via:EricLippert  languagedesign  philosophy 
june 2009 by mcherm
Fabulous Adventures In Coding : “Out Of Memory” Does Not Refer to Physical Memory
Memory is best thought of as being a large chunk of file space. RAM is just an intelligent caching mechanism. "Out of memory errors" are not due to running out of memory, just running out of contiguous pointers to refer to that memory.
memory  windows  via:EricLippert  EricLippert 
june 2009 by mcherm
Restating the problem : Fabulous Adventures In Coding
Eric answers the question "how do you do something different for the last item in a loop? But even better, he explains why that was the wrong question to be asking, and how it can be done much better.
programming  EricLippert  via:EricLippert 
april 2009 by mcherm
Double Your Dispatch, Double Your Fun : Fabulous Adventures In Coding
A review of the decisions in the design of C# about how the == and .equals() methods should be handled. Symmetry and single vs. multiple dispatch were issues. And curiously, the two had DIFFERENT answers; Eric explains why.
languagedesign  programming  c#  via:EricLippert  EricLippert 
april 2009 by mcherm
Fabulous Adventures In Coding : Locks and exceptions do not mix
An excellent explanation of some gory details of handling locks and exceptions. Illustrates a time when deadlock might be what you WANT!
programming  threading  concurrency  exceptions  via:EricLippert  EricLippert 
march 2009 by mcherm
Fabulous Adventures In Coding : Santalic tailfans, part two
A *great* illustration of how to improve performance. Start with good, readable code. If it's fast enough, STOP! If not, you must PROFILE it. You may fix a piece of low-hanging fruit. Then take a breath... is it fast enough now? If so, STOP!
programming  performance  profiling  via:EricLippert  EricLippert 
february 2009 by mcherm
Fabulous Adventures In Coding : Properties vs. Attributes
"use attributes to describe your mechanisms, use properties to model the domain"
programming  via:EricLippert  EricLippert 
february 2009 by mcherm
Fabulous Adventures In Coding : Long division
int / long always fits in an int. But in Java and C# the type of the expression is long, and for good reason.
programming  languagedesign  mypostings  via:EricLippert  EricLippert 
february 2009 by mcherm

Copy this bookmark:

to read