Welcome to Atalasoft Community Sign in | Help

Browse by Tags

The Best Use of Augmented Reality I’ve Seen

Short and sweet – Dan Kaminsky created an app for iPhone and Android devices that allows someone who is color blind to see the world and distinguish color. This is important to me, not because I am color blind, but because one of the engineers at Adobe
Posted by Steve Hawley | 0 Comments

Running a Meeting Agenda with DotImage

One thing that we do at Atalasoft is a biweekly staff meeting where we cover what’s going on.  The responsibility for running the meeting bounces around and it is encouraged to pick a format that works best for you.  At the last meeting, I decided
Posted by Steve Hawley | 1 Comments

When Is It OK for a Unit Test to be More Comprehensive?

I have a habit in our unit tests which is to write tests which are less granular than one might expect of a typical unit test. My problem with granular tests is that I want the tests to be as useful as possible and I hate to repeat myself.  So I
Posted by Steve Hawley | 0 Comments

C# Porting Strategies

This is going to be a quick guide for porting a C# codebase to different platforms. Wait, what? Isn’t C# portable on its own? No – there are two aspects to C# – the language itself and the target platform.  Even though .NET is ostensibly the target,
Posted by Steve Hawley | 1 Comments

Solving the Expression Problem with OOP

Yesterday I watched a presentation by Dr. Ralf Lämmel about The Expression Problem.  The problem is, in a nutshell, how do you build an extensible data model and an extensible operation model that meets three goals: Code-level modularization Separate
Posted by Steve Hawley | 1 Comments

Using a Proxy Class to Fix F# Protected Access Limitation

In this previous entry , I presented a workaround to F# not having support for protected members.  Upon thinking on it further, I decided that this could nearly be fixed with an adapter class.  The adapter class would be implemented in C# and
Posted by Steve Hawley | 1 Comments

Protect Yourself

I’ve been looking at F# to assess how well it plays with the .NET ecosystem and I’ve found a number of blemishes.  Most recently, I found that F# has no equivalent to the C# protected access on members/classes.  Why should we care about protected?
Posted by Steve Hawley | 3 Comments

Limit Your Memoization, Please

Memoization is a great pattern. We’ve known about it for years outside of functional programming. It is essentially a combination of a cache and a function pointer. For some input, x, you look up x in the cache and if it’s there, you return the found
Posted by Steve Hawley | 2 Comments

The Good Old Days Weren’t That Good

The Computer History Museum has published the source code to MacPaint and Quickdraw .  This is pretty cool – I spent a lot of time hacking the Mac around that time, so it was interesting to me to see how this code was put together.  I haven’t
Posted by Steve Hawley | 1 Comments

Why Software Has Bugs

I’ve been thinking about the causes of bugs in software in the past week.  I reflect on this a lot and as I get older, I try to put habits into place that eliminate bugs before they happen.  As an example, in doing string manipulation in C,
Posted by Steve Hawley | 1 Comments

F# Range Specification Mistake

I’ve already mentioned how much I dislike F# for loops .  I ran into an issue in the spec that affects loops as well any language construct that uses the range syntax expr 1 .. expr 2 .  The spec for ranges is this: The default definition of
Posted by Steve Hawley | 1 Comments

Applied F# Symposium Session 2

How to Define Consumable Classes Fine Points 1. F# is F ree, C# is C losed – members in F# are public by default, members in C# are private by default. When in doubt, spell it out. 2. F# wants you to use lots of little static functions. Our customers
Posted by Steve Hawley | 0 Comments

F# Symposium Session 1

I’ve been running an F# symposium internally at Atalasoft. Here is the first session’s notes and the “answers”. 1. Define simple polynomial: type polynomial = { A : double; B : double; C : double; } How do we evaluate some polynomial p at position x?
Posted by Steve Hawley | 0 Comments

See Ya, AT&T

About a year ago I wrote this blog about how AT&T and HTC teamed up to hate their customers with regards to the Cingular 8525 phone I had. I had been looking around for a smart phone to replace that one and had decided that I would get a phone running
Posted by Steve Hawley | 1 Comments

Chasing Your Tail in F#

I don’t like the looping constructs in F#.  They don’t feel as thought out as the rest of the language and they feel more like Pascal looping constructs, which have their own issues. In C-like languages, a loop looks like this: for (start-exp; condition;
Posted by Steve Hawley | 2 Comments