Click here to Skip to main content
15,171,851 members

Articles by Qwertie (Articles: 33, Project: 1, Technical Blogs: 9, Tip/Tricks: 5)

Articles: 33, Project: 1, Technical Blogs: 9, Tip/Tricks: 5

RSS Feed

Average article rating: 4.79

All Topics
Posted: 20 Aug 2014   Updated: 21 Aug 2014   Views: 14,353   Rating: 5.00/5    Votes: 3   Popularity: 2.39
Licence: The GNU Lesser General Public License (LGPLv3)      Bookmarked: 4   Downloaded: 0
Please Sign up or sign in to vote.
GitHub has a "built-in" simple content management system called Jekyll. It's unobtrusive; you can put ordinary HTML files in your webspace and they will be served unchanged, or you can create Jekyll files, which are text files that start with a header block that the Jekyll documentation calls "front
Desktop Programming
Windows Forms
Posted: 12 Nov 2008   Updated: 12 Nov 2008   Views: 355,134   Rating: 4.81/5    Votes: 58   Popularity: 8.41
Licence: The MIT License      Bookmarked: 193   Downloaded: 22,502
Please Sign up or sign in to vote.
Use TextEditorControl to put a syntax-highlighting editor in your application.
General Programming
Parser
Posted: 14 Jun 2013   Updated: 27 Jun 2013   Views: 19,340   Rating: 5.00/5    Votes: 6   Popularity: 3.89
Licence: The Code Project Open License (CPOL)      Bookmarked: 14   Downloaded: 0
Please Sign up or sign in to vote.
LLLPG is a recursive-decent parser generator, with a feature set (and syntax) comparable to ANTLR version 2.
Programming Languages
C#
Posted: 25 Mar 2008   Updated: 25 Mar 2008   Views: 951,263   Rating: 4.99/5    Votes: 143   Popularity: 10.70
Licence: The MIT License      Bookmarked: 478   Downloaded: 14,031
Please Sign up or sign in to vote.
Demonstrates a variety of Windows Forms data binding features through several simple examples.
Posted: 1 Apr 2009   Updated: 25 Feb 2014   Views: 89,852   Rating: 4.43/5    Votes: 9   Popularity: 4.23
Licence: The MIT License      Bookmarked: 29   Downloaded: 296
Please Sign up or sign in to vote.
Use the Symbol class for enum-like values that can be extended by other classes.
Posted: 1 Mar 2016   Updated: 1 Mar 2016   Views: 13,520   Rating: 4.72/5    Votes: 7   Popularity: 3.99
Licence: The GNU Lesser General Public License (LGPLv3)      Bookmarked: 11   Downloaded: 0
Please Sign up or sign in to vote.
How to write a program to generate C# code
Posted: 8 Mar 2016   Updated: 8 Mar 2016   Views: 20,771   Rating: 5.00/5    Votes: 9   Popularity: 4.77
Licence: The GNU Lesser General Public License (LGPLv3)      Bookmarked: 7   Downloaded: 0
Please Sign up or sign in to vote.
Well, not literally. Enhanced C# supports pattern matching, ADTs, and tuples, so Plain C# gets all that by transitivity.
Posted: 15 Jun 2010   Updated: 13 Aug 2010   Views: 56,382   Rating: 4.31/5    Votes: 11   Popularity: 4.49
Licence: The GNU Lesser General Public License (LGPLv3)      Bookmarked: 34   Downloaded: 368
Please Sign up or sign in to vote.
A library inspired by the Go language that lets you adapt any object to an interface if it has the methods of that interface.
Posted: 24 Aug 2013   Updated: 25 Aug 2013   Views: 154,650   Rating: 4.85/5    Votes: 29   Popularity: 7.02
Licence: The Creative Commons Attribution-Share Alike 3.0 Unported License      Bookmarked: 56   Downloaded: 0
Please Sign up or sign in to vote.
Protobuf-net is a fast and complete .NET library for serialization based on Google's Protocol Buffers. And this is a really short manual.
Posted: 10 Jan 2017   Updated: 14 Jan 2017   Views: 14,760   Rating: 3.46/5    Votes: 7   Popularity: 2.93
Licence: The Code Project Open License (CPOL)      Bookmarked: 4   Downloaded: 0
Please Sign up or sign in to vote.
With this library,"from x in list select x.Property" returns another list.
Posted: 15 Jan 2017   Updated: 15 Jan 2017   Views: 10,900   Rating: 4.95/5    Votes: 8   Popularity: 4.47
Licence: The Code Project Open License (CPOL)      Bookmarked: 7   Downloaded: 0
Please Sign up or sign in to vote.
A very small logging library
Posted: 13 Jan 2017   Updated: 2 Feb 2019   Views: 19,631   Rating: 4.74/5    Votes: 9   Popularity: 4.53
Licence: The Code Project Open License (CPOL)      Bookmarked: 23   Downloaded: 0
Please Sign up or sign in to vote.
No matter how lazy you are
Posted: 10 Jan 2017   Updated: 10 Jan 2017   Views: 9,151   Rating: 4.56/5    Votes: 5   Popularity: 3.18
Licence: The Code Project Open License (CPOL)      Bookmarked: 3   Downloaded: 0
Please Sign up or sign in to vote.
Want to square-root an arbitrary type T in your generic code and multiply it by its natural logarithm? No problem.
Posted: 19 May 2008   Updated: 29 Oct 2010   Views: 75,263   Rating: 4.53/5    Votes: 18   Popularity: 5.58
Licence: The MIT License      Bookmarked: 34   Downloaded: 616
Please Sign up or sign in to vote.
A way to use LINQ to Objects in C# 2.0 with .NET Framework 2.0
Posted: 24 Feb 2010   Updated: 31 Mar 2010   Views: 59,215   Rating: 4.98/5    Votes: 54   Popularity: 8.58
Licence: The GNU Lesser General Public License (LGPLv3)      Bookmarked: 67   Downloaded: 785
Please Sign up or sign in to vote.
A memory-efficient Patricia trie that implements IDictionary and supports the "find nearest key" operation.
Posted: 7 Dec 2016   Updated: 7 Dec 2016   Views: 8,531   Rating: 4.76/5    Votes: 7   Popularity: 4.02
Licence: The Code Project Open License (CPOL)      Bookmarked: 6   Downloaded: 0
Please Sign up or sign in to vote.
Using dependency injection with frequently-used background services can be a hassle. The Ambient Service Pattern is an easier alternative.
Posted: 20 Jun 2015   Updated: 24 Aug 2015   Views: 20,001   Rating: 4.96/5    Votes: 16   Popularity: 5.83
Licence: The GNU Lesser General Public License (LGPLv3)      Bookmarked: 11   Downloaded: 979
Please Sign up or sign in to vote.
Concerned about regular expressions being unintelligible, repetitive, hard to get right and non-recursive? Read part 5, possibly the most useful part yet!
Posted: 26 Mar 2013   Updated: 20 May 2016   Views: 33,991   Rating: 4.97/5    Votes: 21   Popularity: 6.58
Licence: The GNU Lesser General Public License (LGPLv3)      Bookmarked: 40   Downloaded: 160
Please Sign up or sign in to vote.
The A-list is an all-purpose list, a data structure that can support most standard list operation in O(log n) time and does lots of other stuff, too
Posted: 22 Nov 2013   Updated: 22 Nov 2013   Views: 39,764   Rating: 4.95/5    Votes: 10   Popularity: 4.95
Licence: The GNU Lesser General Public License (LGPLv3)      Bookmarked: 16   Downloaded: 815
Please Sign up or sign in to vote.
A technique for installing "Custom Tools" in all VS versions from 2008 to 2013
Posted: 6 Aug 2008   Updated: 6 Aug 2008   Views: 41,094   Rating: 4.67/5    Votes: 15   Popularity: 5.49
Licence: The MIT License      Bookmarked: 27   Downloaded: 0
Please Sign up or sign in to vote.
How to make the debugger give the same special treatment to your custom IList as it gives to List.
Posted: 15 Jun 2013   Updated: 15 Jun 2013   Views: 8,500   Rating: 5.00/5    Votes: 5   Popularity: 3.49
Licence: The Code Project Open License (CPOL)      Bookmarked: 5   Downloaded: 0
Please Sign up or sign in to vote.
The root of all evil is optimization... or apathy
C# 4.0
Posted: 26 May 2015   Updated: 10 Dec 2016   Views: 24,434   Rating: 4.95/5    Votes: 22   Popularity: 6.65
Licence: The GNU Lesser General Public License (LGPLv3)      Bookmarked: 21   Downloaded: 205
Please Sign up or sign in to vote.
The Lexical Macro Processor transforms your C# code with a LISP-inspired macro system. Nice substitute for T4 templates, with Visual Studio integration and a Linux-compatible editor.
Posted: 25 Feb 2014   Updated: 25 Feb 2014   Views: 12,920   Rating: 4.92/5    Votes: 4   Popularity: 2.96
Licence: The GNU Lesser General Public License (LGPLv3)      Bookmarked: 5   Downloaded: 0
Please Sign up or sign in to vote.
The ambivalent world of ambiguity, the slash, greedy and nongreedy. At the end, in lieu of refreshments, there will be an API reference.
Posted: 23 Feb 2014   Updated: 25 Feb 2014   Views: 22,940   Rating: 4.84/5    Votes: 6   Popularity: 3.77
Licence: The GNU Lesser General Public License (LGPLv3)      Bookmarked: 9   Downloaded: 1,181
Please Sign up or sign in to vote.
Lots of new stuff this time, including an (almost) complete C# parser demo
Posted: 26 Nov 2013   Updated: 14 Jan 2016   Views: 47,062   Rating: 4.98/5    Votes: 20   Popularity: 6.37
Licence: The GNU Lesser General Public License (LGPLv3)      Bookmarked: 35   Downloaded: 306
Please Sign up or sign in to vote.
The new parser generator for C#: now with syntax highlighting.
Posted: 7 Oct 2013   Updated: 6 Mar 2016   Views: 289,658   Rating: 4.96/5    Votes: 68   Popularity: 9.08
Licence: The GNU Lesser General Public License (LGPLv3)      Bookmarked: 166   Downloaded: 1,360
Please Sign up or sign in to vote.
LLLPG, the Loyc LL(k) Parser Generator: now parsing C# itself!
Posted: 7 Sep 2013   Updated: 7 Sep 2013   Views: 25,073   Rating: 5.00/5    Votes: 3   Popularity: 2.39
Licence: The GNU Lesser General Public License (LGPLv3)      Bookmarked: 11   Downloaded: 302
Please Sign up or sign in to vote.
The BDictionary is like a Dictionary mashed up with List. BList and BMultiMap also say hello.
Posted: 12 Aug 2014   Updated: 12 Aug 2014   Views: 10,062   Rating: 5.00/5    Votes: 7   Popularity: 4.23
Licence: The GNU Lesser General Public License (LGPLv3)      Bookmarked: 14   Downloaded: 0
Please Sign up or sign in to vote.
SparseAList and some AList benchmarks
Posted: 13 Aug 2014   Updated: 13 Aug 2014   Views: 11,241   Rating: 5.00/5    Votes: 4   Popularity: 3.01
Licence: The Code Project Open License (CPOL)      Bookmarked: 8   Downloaded: 0
Please Sign up or sign in to vote.
In the netherworld between T[] and List
Posted: 13 Aug 2014   Updated: 13 Aug 2014   Views: 19,453   Rating: 4.85/5    Votes: 14   Popularity: 5.56
Licence: The GNU Lesser General Public License (LGPLv3)      Bookmarked: 14   Downloaded: 0
Please Sign up or sign in to vote.
Creating the AList data structures for my "list trifecta" series must have taken hundreds of hours. The DList is a vastly simpler beast, but in certain cases will boost your insert/remove speed a lot.
Security
Blockchain
Posted: 2 Apr 2009   Updated: 14 Dec 2009   Views: 63,272   Rating: 4.85/5    Votes: 13   Popularity: 5.24
Licence: The GNU Lesser General Public License (LGPLv3)      Bookmarked: 28   Downloaded: 327
Please Sign up or sign in to vote.
A family of array-like list structures that let you take fast snapshots at any instant in time.
Web Development
HTML
Posted: 17 Jun 2011   Updated: 4 Jul 2011   Views: 916,362   Rating: 4.64/5    Votes: 338   Popularity: 11.73
Licence: The GNU Lesser General Public License (LGPLv3)      Bookmarked: 202   Downloaded: 2,299
Please Sign up or sign in to vote.
How fast is C++ compared to C#? Let's compare code ported directly between the two languages.
HTML5
Posted: 18 Aug 2014   Updated: 25 Aug 2014   Views: 16,172   Rating: 4.58/5    Votes: 5   Popularity: 3.20
Licence: The GNU Lesser General Public License (LGPLv3)      Bookmarked: 5   Downloaded: 0
Please Sign up or sign in to vote.
A LINQ-to-XML example

Average blogs rating: 4.61

Posted: 23 Nov 2013   Updated: 23 Nov 2013   Views: 6,371   Rating: 4.83/5    Votes: 3   Popularity: 2.31
Licence: The Code Project Open License (CPOL)      Bookmarked: 3   Downloaded: 0
Please Sign up or sign in to vote.
I decided to write this post to help people understand the theoretical representation of grammars.
All Topics
Posted: 9 Jun 2013   Updated: 9 Jun 2013   Views: 10,560   Rating: 5.00/5    Votes: 2   Popularity: 1.51
Licence: The Code Project Open License (CPOL)      Bookmarked: 2   Downloaded: 0
Please Sign up or sign in to vote.
Ranges are the most important concept in the design of modern D collection code, and I want them to be included under the Loyc umbrella (but for now, don't worry what Loyc is.) As I wrote in an as-yet unpublished article on about the design of my new language, Enhanced C#:
Posted: 18 Aug 2014   Updated: 12 Sep 2014   Views: 17,582   Rating: 4.62/5    Votes: 10   Popularity: 4.41
Licence: The GNU Lesser General Public License (LGPLv3)      Bookmarked: 8   Downloaded: 0
Please Sign up or sign in to vote.
.NET just keeps getting more annoying
Posted: 23 Apr 2014   Updated: 23 Apr 2014   Views: 6,120   Rating: 5.00/5    Votes: 1   Popularity: 0.00
Licence: The Code Project Open License (CPOL)      Bookmarked: 1   Downloaded: 0
Please Sign up or sign in to vote.
This is a letter that I would like to send to relevant leaders at Google and Mozilla, but I'm not sure to whom I should send it.
Desktop Programming
Windows Forms
Posted: 6 Apr 2011   Updated: 9 Apr 2011   Views: 14,600   Rating: 3.00/5    Votes: 2   Popularity: 0.90
Licence: The Code Project Open License (CPOL)      Bookmarked: 8   Downloaded: 0
Please Sign up or sign in to vote.
UpdateControls not only keeps your GUI up-to-date, but it also separates the GUI from the rest of the code better than any framework I have seen before.
Programming Languages
C#
Posted: 12 Aug 2010   Updated: 12 Aug 2010   Views: 9,410   Rating: 5.00/5    Votes: 2   Popularity: 1.51
Licence: The Code Project Open License (CPOL)      Bookmarked: 7   Downloaded: 0
Please Sign up or sign in to vote.
Dependency Injection aids loose coupling. But there are some services that are pervasive, services that you would have to pass to a hundred different constructors if you want to use DI "properly". Is there an alternative?
Posted: 28 Jul 2011   Updated: 28 Jul 2011   Views: 16,650   Rating: 5.00/5    Votes: 2   Popularity: 1.51
Licence: The Code Project Open License (CPOL)      Bookmarked: 1   Downloaded: 0
Please Sign up or sign in to vote.
I want a conditional dot operator
Go
Posted: 25 May 2010   Updated: 25 May 2010   Views: 9,850   Rating: 4.00/5    Votes: 4   Popularity: 2.41
Licence: The Code Project Open License (CPOL)      Bookmarked: 2   Downloaded: 0
Please Sign up or sign in to vote.
I recently wrote a class called CPTrie that stores a sorted collection of strings or integers in less space than a Dictionary or SortedDictionary. It took a long time to develop this data structure in .NET while minimizing memory and CPU usage. I am fairly convinced that without some of .NET's restr
Javascript
Posted: 18 Aug 2014   Updated: 14 Jan 2016   Views: 12,890   Rating: 5.00/5    Votes: 2   Popularity: 1.51
Licence: The GNU Lesser General Public License (LGPLv3)      Bookmarked: 1   Downloaded: 0
Please Sign up or sign in to vote.
Building a table of contents in JavaScript

Average tips rating: 4.44

C#
Posted: 9 Nov 2016   Updated: 9 Nov 2016   Views: 15,552   Rating: 4.71/5    Votes: 13   Popularity: 4.90
Licence: The Code Project Open License (CPOL)      Bookmarked: 13   Downloaded: 0
Please Sign up or sign in to vote.
An alternative set of StringBuilder Extension methods that is closer to the methods of System.String.
Posted: 15 Mar 2017   Updated: 15 Mar 2017   Views: 22,621   Rating: 4.19/5    Votes: 9   Popularity: 3.99
Licence: A Public Domain dedication      Bookmarked: 10   Downloaded: 0
Please Sign up or sign in to vote.
A trick you can do with enhanced C#
Posted: 12 Oct 2011   Updated: 12 Oct 2011   Views: 8,620   Rating: 0.00/5    Votes: 0   Popularity: 0.00
Licence: The Code Project Open License (CPOL)      Bookmarked: 1   Downloaded: 0
Please Sign up or sign in to vote.
Shuffle in O(N) time, vastly faster than the original version that calls RemoveAt().static Random r = new Random();public static IEnumerable Randomize(this IEnumerable source){ var list = source.ToList(); for (int i = 0; i < list.Count; i++) Swap(list, i,...
Posted: 1 Jun 2013   Updated: 4 Jun 2013   Views: 28,952   Rating: 4.43/5    Votes: 3   Popularity: 2.11
Licence: The Code Project Open License (CPOL)      Bookmarked: 8   Downloaded: 0
Please Sign up or sign in to vote.
A fast and simple algorithm.
Posted: 12 Oct 2011   Updated: 12 Oct 2011   Views: 9,380   Rating: 0.00/5    Votes: 0   Popularity: 0.00
Licence: The Code Project Open License (CPOL)      Bookmarked: 0   Downloaded: 0
Please Sign up or sign in to vote.
Assuming you are writing a class (not a struct), you can basically get a fixed random hashcode simply by NOT overriding GetHashCode() but inheriting the implementation from System.Object. Unfortunately the System.Object implementation is not documented in the standard .NET documentation[^] but I...

Average reference rating:

No reference articles have been posted.

Average project rating: 5.00

C# 6.0
Posted: 11 Jun 2017   Updated: 12 Jun 2017   Views: 20,796   Rating: 5.00/5    Votes: 25   Popularity: 6.99
Licence: The Code Project Open License (CPOL)      Bookmarked: 36   Downloaded: 0
Please Sign up or sign in to vote.
It has 41 features in about 1000 lines of code* - but only 3 lines are needed to parse the expressions you type in. Uses WinForms, BackgroundWorker, GDI+ and LES.

Qwertie
Software Developer None
Canada Canada
Since I started programming when I was 11, I wrote the SNES emulator "SNEqr", the FastNav mapping component, the Enhanced C# programming language (in progress), the parser generator LLLPG, and LES, a syntax to help you start building programming languages, DSLs or build systems.

My overall focus is on the Language of your choice (Loyc) initiative, which is about investigating ways to improve interoperability between programming languages and putting more power in the hands of developers. I'm also seeking employment.