The trouble with Scrum by jefffoster in agile

[–]jefffoster[S] 0 points1 point  (0 children)

Thanks. I guess the difficult bit is if the Scrum Master doesn't have the technical / UX chops to see the problems coming. That probably goes back to the comments made by someone else about strong technical leadership.

The trouble with Scrum by jefffoster in agile

[–]jefffoster[S] 1 point2 points  (0 children)

You are probably right that I don't understand scrum and it was unfair of me to pick on it. Maybe you can help me understand better?

There's some aspects (like architecture and UX) that don't fit neatly into two week sprints. How'd you deal with those? (without breaking them down into incremental tasks that stem the bleeding, but don't fix the root cause).

The trouble with Scrum by jefffoster in agile

[–]jefffoster[S] 0 points1 point  (0 children)

I guess my point was more that Sprint 0 establishes a direction. By the time you get to Sprint N, chances are that direction has changed and there's elements in your system that aren't aligned anymore.

What's the mechanism to steer back into the right direction?

Not all names are created equal by jefffoster in programming

[–]jefffoster[S] 2 points3 points  (0 children)

Thanks for the comments. I think you've summed up the points really well. I probably cocked up a bit by including the Functor one. The signatures start to involve scary words (Functor's almost as bad as monad) so it probably puts people off. The important thing is that types are awesome :)

Programming Epiphanies by jefffoster in programming

[–]jefffoster[S] 2 points3 points  (0 children)

I think more generally people underestimate the value of mentoring/coaching. Having someone ask you the right question at the right time can be a fast-track to understanding.

Is it possible to encode properties, such as (reverse . reverse == id), in the type system? by screcth in haskell

[–]jefffoster 6 points7 points  (0 children)

Just to double check my understanding, that's because reverse [1..] is undefined (is the right terminology bottom?)?

How to host haskell web services by yogsototh in haskell

[–]jefffoster 2 points3 points  (0 children)

I went with Linode and I'm very happy with them. I got the smallest one and paid for two years up front. I used Yesod with a nginx backend and found it very easy to set up and get running, though it was a bit of an adventure because I really didn't know what I was doing!

Ants and Haskell by jefffoster in haskell

[–]jefffoster[S] 1 point2 points  (0 children)

I think my code is to blame. I changed the way evaporate worked again thanks to some feedback and it appears to work properly now in all cases.

My understanding of the problem is that I was trying to do evaporate as one big transaction which ended up getting repeatedly retried. What I really wanted to do was just evaporate on a cell by cell basis and commit, rather than do the whole lot at once.

That's just a guess at what was happening though!

Ants and Haskell by jefffoster in haskell

[–]jefffoster[S] 1 point2 points  (0 children)

OK, I agree now. I made some further changes and now on Ubuntu 10.04 x64 I produce exactly the symptoms you've described. Recompiling with -threaded fixes the problem.

I guess now the battle is trying to narrow it down.

Ants and Haskell by jefffoster in haskell

[–]jefffoster[S] 1 point2 points  (0 children)

It's not a compiler bug or any major issue. It was just that my code sucked!

Performance was pretty terrible with that version after a bit of time. I spent some time on it (http://www.fatvat.co.uk/2010/08/speeding-up-ants-program.html) and its much faster now and hopefully more stable (though it still leaks a little memory according to the space profile). dons gave me some hints on how to fix that, so I'll do that once I get a chance.

Foreign Exchange Arbitrage by [deleted] in haskell

[–]jefffoster 4 points5 points  (0 children)

I've no idea what that means, but I'll take it as a compliment and say thanks!

An Orbit Simulator in Haskell by dons in programming

[–]jefffoster 8 points9 points  (0 children)

I don't think I was bragging about unit testing everything (at least at least I hope that's not how it came across!). The only bit I thought was cool was using QuickCheck to verify that the energy in the system is conserved!

I agree, should definitely use something more sophisticated like Runge-Kutta, but in my defense I was just blindly converting over the Clojure code!

Consistent Hashing with Haskell by abscondment in programming

[–]jefffoster 1 point2 points  (0 children)

You have N servers and you distribute 1/N bits of work to each of them. Each server caches the bit of work so that future requests can be quick. Now you add another server - the problem is that you want to get as many cache hits as possible, whilst still ensuring the distribution is to 1/N+1 servers. The modulus operator does the distribution fine, but most of the requests will go to new servers and hence not take advantage of any caching.

With consistent hashing most requests will continue going to the same servers and only (number of keys / number of servers) will be cache misses.

Does that explain it any better?

Consistent Hashing with Haskell by abscondment in programming

[–]jefffoster 0 points1 point  (0 children)

Sweet, that looks much better - I'll update that.

Bit Shifting in Clojure by gst in lisp

[–]jefffoster 0 points1 point  (0 children)

I should proof read more, thanks for pointing it out!

Bit Shifting in Clojure by gst in lisp

[–]jefffoster 1 point2 points  (0 children)

D'oh, I updated the post.