EDIT: Added the word "fringe". As in, a conspiracy theory that doesn't get media coverage.
796 karma · joined July 22, 2010
EDIT: Added the word "fringe". As in, a conspiracy theory that doesn't get media coverage.
Awesome, sounds great.
> And in addition it has a beautiful GUI (based upon SWT).
Hm, I had a bad experience with SWT (which was over 10 years ago, so probably irrelevant). But what annoyed me is that if Windows could do X and Y, and Linux could do Y and Z, then SWT could only do Y. I found its lack of features a problem. I felt like I had to create my own components by hand a lot of the time. Swing, on the other hand, would let me do X, Y and Z and make sure they look decent on both OSes.
> The main feature of the library is that it makes a thin wrapper on SWT and basic system libraries that makes it possible to make an app which has a native look-and-feel under different platforms. For example, the "Exit" item is in system menu on OS X, but in "File" menu under Windows; about box has "OK" button in Windows, but doesn't have any on OS X and so on...
Mind, it's been over 10 years, but how is this different from plain SWT? Is it just that it can run without a JRE?
I think you left out the main complaint: It's impossible to cover a majority of code paths.
They can line up, but I'm not sure there's a causation. There are many different ways to write tests the wrong way. It's taken a lot of trail and error for me to get better at it (I can't even say I'm "great" yet). I'd have given up long ago if I wasn't a passionate developer. A less passionate developer would think the whole concept is BS and give up long ago if he took my path.
One of the first mistakes I made was using a mocking framework to test my implementation. The test read like, "first call this method, then call this, then call this". Needless to say it was worthless. I was just writing my code twice.
Then you can use mocks inside-out and end up writing code you don't even need to call, etc.
I'm sure there's many ways to do TDD right, but from in my personal experience, there's more ways to do it wrong.
If you want a talk that preaches to the/our choir, check out this one: http://vimeo.com/68375232
It's interesting how different they are. Mutually exclusive in fact. But is one wrong, both or neither?
This way, any company can use the software and report the same thing to their customers. Lower the barrier to entry for Amazon/Google/Hulu/your startup to join the fight and inform the people.
> * You need or want data to be human readable
When things "don't work" don't you always want this feature? Over a long lifetime, this could really reduce your debugging costs. Perhaps protocol buffers has a "human readable mode". If not, it seems like a risk to use it.
Here's the details of my complaint: http://stackoverflow.com/questions/19365175/with-html5-audio... and http://stackoverflow.com/questions/19365931/does-phonegap-co...
1. I am already using set -e
2. That `err` function has an `exit 1` as its last step,
which forces the program to stop running when combined with the first point.
> Now, on to your shell script example: in practice you'll never see an error because both grep and sed return true even when no matching or substitution is done.That's not what I'm seeing:
> echo "hi" | grep "bye"
> echo $?
1
I'm typing that into my shell.Thanks for the reply, it was very helpful.
adapter_properties_home_community_id=$(cat ${EXTERNAL_VARIABLE}/adapter.properties \
| grep -P '^HomeCommunityId=' | sed 's/HomeCommunityId=//g' \
|| err "line $LINENO: Could not find HomeCommunityId in the adaper.properties")
If I "set -o pipefail", won't any failure in this chain of pipes halt the program? That will prevent the user from seeing the useful error message that says "Could not find HomeCommunityId in the adaper.properties"I'm also concerned about "set -u". That EXTERNAL_VARIABLE is set external to my validator script and available to the shell. Any appliance with the app should have that variable set. I have a check to make sure it's set and it's valid, but if I had "set -u", wouldn't that prevent me from checking its value because it hasn't been defined in the script? What's the work around to this, because I see how "set -u" would be very useful in most other situations.
I've documented the details of my complaint here: https://news.ycombinator.com/item?id=5615516
As long as you're developing on linux. IME, trying to use haskell libraries on another OS is hell.
This is still the case depending on the genre. If you go to a fighting game tournament (street fighter, tekken, soul calibur, etc.) you fight in person because at a high level the lag over the internet is not acceptable for competitive play. In that situation, you have people looking at you over your shoulder and thousands of people watching you on twitch at the same time.
Bonus Justin Wong vs Diago Clip: https://www.youtube.com/watch?v=XeM0rH_4ung&feature=kp
> console.error, console.exception, and console.assert logs in the console now include the full stack from where the call was made
But what about if I use `new Error("something");` ? That's how I let errors bubble up in my app. Am I doing it wrong? According to this, that won't show a stack trace.
Eh... The Haskell community is amazing and always willing to help. They get an A for effort, but they often have the curse of knowledge[0].
> The curse of knowledge is a cognitive bias that leads better-informed parties to find it extremely difficult to think about problems from the perspective of lesser-informed parties.