Monthly Archives: February 2011

New MicroLinq Build! Is it Release Candidate yet?

I just published another release of the MicroLinq project tonight. It contains a number of fixes, enhancements and some new stuff!

Collections:
No changes in this release.

MicroLinq:
-Modified some overloads to use less code by relying on the full version classes.
-New OrderBy implementation. Doesn’t modify source and only iterates source once to copy the values. Uses MergeSort now.

ParallelExtensions:
-Removed project dependency on MicroLinq which wasn’t needed.
-Fixed bug that could have passed the wrong object to the action delegate while enumerating.
-Removed Countdown and Countup classes and replaced with in-place ManualResetEvent.
-Added optional timeout parameter to specify how long to wait. The success/failure is still not bubbled up though.
-Library is a bit smaller now.

And…
MicroLinq.PrebuiltDelegates:
-New project. Provides commonly-used delegates for Aggregate and Compare delegates. Could be expanded if others suggest helpful versions. Inspired by comments from Corey Kosak.
-Builds to its own library to conserve program space if not wanted/used in a project.

Advertisements

First Accolade for MicroLinq

 

Awesome!

Happily,
-Erik

New MicroLinq Build Released Today

I just posted a new MicroLinq build. I’d like to call it a release candidate but I haven’t put in enough testing or gotten enough response on the project yet. I did get a thorough review from Corey Kosak on the Netduino Forums and I’ve implemented most of his recommendations.

This release features significant performance increases in the OrderBy extension by switching from bubble sort to quick sort. In addition there is an extra overload which allows a Comparer delegate to be passed. This will perform much better when the objects to be compared are not marked as IComparable. Objects which have no public way to compare can also be sorted by passing in a Comparer delegate.

The NearlyGenericArrayList and ParallelForEach remain in their own projects in the solution and build to their own libraries. These are more for my own experimentation that I don’t mind others seeing than to be seriously considered. The NGAL might disappear altogether now that the OrderBy extension is implemented and became more versatile than having a specific Sort method.

Overall this build should be the most efficient and stable version released. I use it in its current form tinkering around on my Netduino board.

Please check it out if you’re doing any .NET Micro Framework projects and let me know how it’s performing!

Proudly,
-Erik

Do you localize documentation?

I have a couple projects on CodePlex. Occasionally I check the stats to see if the projects are being used and, if so, from where the traffic comes.

On my MicroLinq project I see a good amount of traffic from a Japanese blog. The blog is purely in Japanese and doesn’t translate well enough from Google for me to understand it. The blurb about the project is very short and just mentions it but it still results in some traffic.

The CodePlex stats aren’t really clear enough to me to see if these visits are just hitting the main page and bailing out or if they are reading the English or are interested enough to have the text translated.

I’m curious how others deal with this. Translations to Asian languages are hard enough for common speech. Technical speech is much more difficult. Do authors expect others to be interested enough from a short blurb to go through the trouble of trying to translate? Do you hope for a dedicated bilingual project follower syndicate documentation?

As a first step I’m going to have basic boilerplate welcoming language and a short explanation of the project. Hopefully that will be enough to engage with people who might otherwise just pass up the project.

I’m interested in hearing opinions on this.
-Erik

Mine Prosjekter

Jeg får sjelden tid og mulighet til å annonsere mine prosjekter og informasjon på forskjellige språk. Å være en stor fan av Norge med har begrenset forståelse av språket, bestemte jeg meg for å gjøre et forsøk på å rette opp dette starter med Norsk.

Først har jeg to CodePlex prosjekter jeg startet og vedlikeholde. MicroLinq er en implementering av LINQ på .NET Micro Framework. Prosjektet er bare to dager gammel, men jeg har noen dokumentasjon på bruken. Jeg bruker et Netduino microcontroller fra Secret Labs for min utvikling og testing.

Jeg har også Media Streaming MVC. Dette prosjektet bringer Delvis Response og HTTP Byte Range forespørsel håndtering til dynamiske ressurser ved hjelp ASP.NET MVC. Dette prosjektet legger ActionResult typer som vil presentere video som kan streames på Apple iOS baserte enheter.

En av mitt arbeid elementer er å starte pa instruksjonene for bruk i forskjellige språk. Jeg vet de fleste norske høyttalere veldig dyktige i engelsk. Ville det være nyttig å ha (dårlig oversatt) norsk språk dokumentasjon?

Ha det bra,
-Erik

My Second CodePlex Project: MicroLinq

I decided to bite the bullet and just upload my source code to CodePlex. I created a new project called MicroLinq. Even if it does end up being a shell of a project, if at least 1 other person finds it useful then it was worth the effort.

The project is pretty sparse at the moment. I’ll add to the documentation as time goes on. For now you can browse the code through the web and most of the Linq extensions are commented. There’s also other code which might be interesting to browse.

I’ve created a release of the initial compiled code and put it in the downloads section. The ZIP file contains Debug and Release builds for the three projects in both Big Endian and Little Endian flavors.

The source files build against .NET Micro Framework 4.1 and the project format is Visual Studio 2010.

I would prefer comments, feedback and issues be posted directly to the CodePlex project and not in the blog. This way the information will be consolidated and easily viewable by anyone interested in the project.

I hope it’s useful!
-Erik

Netduino and .NET Micro Framework (NETMF)

Early Arduino Experimentation

I recently purchased a few things from the MakerShed which included an Arduino and a Netduio Plus. I spent a couple weekends playing around with the Arduino first because I’m mostly a Mac guy at home and the code editor was available for Mac. I was up and running in under a couple minutes.

My first impression was that it was a lot like working with the BASIC stamps I had used for years except with the tremendous benefit of there being a Mini USB port right on the chip. (I bought the Nano which is just the brains without the shield-breakout. It’s the same form factor as a stamp and can be placed on a breadboard.)

The programming was shockingly similar except it used a variation of C instead of BASIC. The rest was about the same. In under an hour I had a Parallax RFID reader connected on a mini breadboard, troubleshot my first problem (you can’t program the Nano while the RFID reader is wired into the Rx pin!) and had my first project.

My observations were that the code editor, while designed to make it easy for people to stitch together lines of code to get something working, made it too easy to just stitch together lines of code without doing proper encapsulation or object oriented programming. Stepping back this trait seems endemic in the hobby hardware and microcontroller areas. As a software guy myself I can’t help but cringe and I immediately started trying to figure out how to build my own classes.

And that’s when I remembered I haven’t used C in a long, long time. Using impending deadlines as an excuse, I broke off my endeavors with the Arduino and let everything sit for a couple days.

Picking Up the Netduino

A few days later I saw an announcement from MakerShed that SparkFun and Instructables had teamed up and were hosting a microcontroller contest. Any project using a microcontroller was eligible for entry. Just make a project, post an instructable and open source your code. It was a simple gimmick but it got me to pull out the Netduino and have a crack at it.

Continue reading