skysight-inc/HackerNews huggingface dataset:
Cucumber is part of our workflow and, although I don't have a control for this comparison, I think it makes us more efficient. Our product owners write in Gherkin (non-technical != illiterate btw) and can essentially throw the feature files over the wall and any dev can pick it up and get to work. Now, there is conversation around every feature but sometimes only at estimation time.

Our POs also use git (non-technical != vcs illiterate) so we have a history of who wrote/modified what spec when.

Also, we have an additional simple layer of abstraction between feature steps and the actual tests. Most of our step definitions are three line methods that make calls to a ui driver that knows the details of our ui; or to a "given" driver that knows the details of our database/models. This ensures that there is only one place where anyone will implement, say, a user logging in.

Given(/^I am a logged in user$/) do
given.a_logged_in_user
end

while elsewhere there might be

Given(/^I have signed in$/) do
given.a_logged_in_user
end

If the log in process changes, we just edit the given driver.

We generally only write golden path features. Edge cases are handled with lower level testing.

Our feature files stick to specifying business value rather than ui implementation. For example, we don't do this:

Given I visit the homepage
When I enter "children's bikes" in the search field
And I hit the submit button
Then I am on the results page
And I see a fieldset with a legend "Children's Bikes"
And I see a table containing "Huffy Sprite"

We would write it like:

Given I search for a specific product category
Then I see the search term I used
And the results of the search

When a dev needs to work on an app they haven't touched in 6 months, it's nice for them to read feature files like this to get up to speed on what the app is actually supposed to do. Then can then dig into the ui and given drivers to see how it does it.

There is additional infrastructure and PO training involved, but overall, I'd say cucumber improves clarity and communication on our team.
I think they are doing a pretty good job of that currently and not only that but they offer a huge amount financial incentives through grants and scholarships for women. Anything related to STEM will require a huge amount of alone time in order to learn the required skills. The idea of sitting in front of a computer writing code or solving math problems all day is probably about as appealing to them as any type of customer service or child care would be to me.
When I got my Oculus dev kit I was most excited about the potential for designing interactive experiences driven by unity / 3d graphics.

Then I checked out a "wingsuit" video shot in 360 degrees and realized I had completely missed the potential of the platform:

http://www.makingview.com/makingview.com/?page_id=1691

The resolution is mediocre but for a first-gen experience in VR I was literally floored. I showed these demos to some unwitting subjects and where riftcoaster was "WOW" the 360 video had their mouths hanging open.

And this isn't speculative or crazy expensive - 360 riggings + cameras can be had for <$2k and here are lots of interesting experiences already popping up.

Rigging:

http://www.360heros.com/ or http://freedom360.us/

Demos:

http://immersivemedia.com/demos/

http://www.airpano.com/360-videos.php
Not a fan of cucumber. I started it, but the extra layer of abstraction was too much complexity for too little benefit. Instead, I think you can make almost as easy to read and understand acceptance tests with plain old rspec.

I just TDD'ly implemented a "user signs up for Direct Deposit" feature, and the acceptance tests look like this:

describe 'Direct Deposit' do
before do
@workflow = DirectDepositWorkflow.new(create(:user))
end

describe 'User sets up direct deposit with correct info.', :js do
it 'user sees confirmation page - individual' do
@workflow.sign_in_and_visit_direct_deposit_form
@workflow.submit_correct_form

expect(@workflow).to have_confirmation_message
end

...
end
end

Then you can make the workflow spec helper class:

class DirectDepositWorkflow < Struct.new(:user)
include Capybara::DSL
include UtilitiesHelper
include Rails.application.routes.url_helpers

def sign_in_and_visit_direct_deposit_form
...
end

def submit_correct_form
fill_in 'name', with: 'John'
click_button 'Submit'
end

def has_confirmation_message?
page.has_css? '.success_alert', I18n.t(...)
end
end

To me, this is the perfect blend of easy to read, high level specs (serving the rule of cucumber/gherkin), with easy to understand, rspec syntax and ordinary method definitions.
Ahhh yes, I think this is in the Lion's commentary on UNIX source book. I remember our professor pointing out this comment and then telling us that we are indeed expected to understand it. The code that followed I believe implemented some behavior that made fork() work.
Good to hear. I'm working as a Jr. Software Engineer now, and I don't consider mathematics one of my strong points. Do many positions actually expect people to know these kinds of questions? I'd crash and burn here.
I'm amused by the user being more offended by the choice of search engine than the crapware itself.
Commodore went bankrupt unrelated to a low margin strategy, they were actually bankrupted by a patent troll during a risky attempt at entering the console market. The CEO and other executives mismanaged the company, but the story of Commodore's bankruptcy because a patent on the XOR Cursor (!) is one of the reasons I've had a lifelong hatred of software patents.

I tell this tale often, but the Amiga was in every way, a better machine than the Mac, so much better it's not even funny. The Amiga 1000 was half the price of the Mac it competed against went it sold, it had higher resolution, color, more RAM, multitasking operating system, expansion slot, hardware accelerated co-processing for display lists, blitting, and a good sound chip. In fact, the Amiga custom chips were better than every other consume PC graphics display at it's time, and it was that way for several years. The Mac128k was a ridiculously overpriced and gimped machine, and for someone who was a kid or teen, migrating from something like a Commodore 64, totally boring. If you were a young kid learning to do graphics or sound programming, the Amiga was inspiring. I probably would not have gotten into computers the way I did had I not be influenced to learn 6502/68000 assembly programming to write demos on the C64 and Amiga due to the multimedia capabilities of those machines, not to mention the excellent games.

BTW, while it is true that most productivity software originated on the Mac, most games originated on the PC, very very few games originated on the Mac and ported to the PC. iD games developed on NeXTs and SGI workstations were the exception, but again, still not a Mac, because until recently, Macs sucked for gaming, and have so since the era of the Amiga.

I don't think Android is going to kill Apple, but I think the writing is on the wall for it to become a niche. Most of the advantages Apple had have now been commoditized as the market matured. If you look at how open source Linux has devastated the server-side market as well as the embedded market, there's no reason the same thing isn't going to happen in mobile in the long term. It was a nice run, but I don't think Apple's dominance is going to last forever. And the BMW analogy is apt, because while BMW survives, they are just one brand out of many, and do not control or dominate the market unduly.
Having the will to train?
The "problem" is they're trying to sync 300,000 nodes from client to server and do this constantly - not fun.
I believe this is because people don't properly consider who cucumber is for (business analyst), it was developed with a specific use case in mind. Aside from that, writing steps is ugly.

I've only suggest cucumber is extreme cases, and even then with caution, and not before mentioning Spinach as an alternative. https://github.com/codegram/spinach

Spinach operates with plain old ruby objects. They fix the two weakness of cucumber: Step maintainability & Step reusability.

That said, I seldomly use either, because I can easily write the same under one house with RSpec.
Linus doesn't have to put government collusion in the source. Look how he strong-armed using the hardware Intel RNG recently. That's microcode you'll never see. Is this collusion? Who knows, but trusting hardware makes code reviews useless.
> It may not be the worst, but i don't think its the best either. There's a world of difference in thought and language between an integration test and an acceptance test—IT's are about code. AT's are about concepts.

I agree that there is a big difference (I'd describe it differently because I don't think of ITs as being about code, I think of UT as being about code, ITs as being about architecture, and ATs as being about domain concepts, but that's, arguably, quibbling); I just think its a difference that often manifests more in terms of the organization of the who-does-what-and-how outside of the tool but which, between ITs and ATs, doesn't necessarily make a huge difference in desirable tool features. (Particularly, I think than non-code language for tests can have value for ITs, though the style of the language and its audience is different than for ATs.)
Filter your commit logs through this pirate-speak filter for Pirate Day
The authors argument is "You can do this with another tool so tool X is a bad idea." I disagree. The language behind testing is important. When you test code, the language is code; when you test domain, the language is natural language. My advice to teams who can't use cucumber for doing domain testing is to approximate the same thing in rspec, even though its not the best/optimal tool for it. Gherkin (not just cucumber) is NOT just about wrapping rspec tests with a non-technical syntax.

Also, as contrived as his examples are, he still managed to illustrate exactly the problem inherent in most of the cukes i've ever seen: they're about clicking buttons and navigating a browser. That's not domain. (To be fair, the cucumber team didn't do themselves any favors there by adding the web_steps.rb to their installation process way back when—its long gone now but the legacy lives on.)
I see there is a market for a power bulshitting app which for every time you spew some, I get a dime so you can keep an eye on yourself.

Cramming your life between fleeting moments during work is not healthy however you quantify it. 7/24 working mentality is not a virtue. Only reason I see for advocating such bullshit is if you have a vested interest for hiring lifeless worker drones or in business of giving unwarranted life advice, incidentially which I excel at too.

Please, please, please, don't kill yourself before you had a chance to live. The junk in your pocket neither should decide how you will live your life nor could reward you. What can it give you? XP points so you level up?
Really, I'm not a Ruby guy, so I thought it's some vegetable story... cause I love cucumbers (& tomatoes)... Ah...
That's a nice collection of tools you have there. I'll add it to the post.
To be fair, some Apple fans have constantly considered Touchwiz (or sometimes just Android) both an iOS ripoff and terrible.
No, you are alone.
The value is when you have non-technical members reading tests.
I Am An Object Of Internet Ridicule, Ask Me Anything
Actually, it's Jeff Bezos's talking point from the Kindle launch. He was basically saying, Amazon only benefits when people use their devices, so Amazon doesn't care about margins on hardware. This was a dig at Apple, for whom, once the device is sold, the majority of revenue is made (App Store doesn't really contribute hugely)
Thanks, great summary but Apple doesn't determine the price of apps on the App Store. On the other hand Amazon does do that on their Android app store.
Interesting technique—I'm still a fan of Gherkin in concept (though I don't use it right now) but I do the same kind of testing in Rspec. My variation isn't quite as refined as your workflow though; i'm just defining methods in the describe block. It has (what i perceive as) an advantage in that the scenarios don't hit any instance variables so they're a bit more readable, but i like the way you're doing that.
From what I hear nothing has helped improve Apple's autocorrect more than http://www.damnyouautocorrect.com/

I must imagine that this tumblr is already being poured over in Cupertino and radar's are being filed in right now. This tumblr is a good thing.
Windows is not quite there yet but... who knows :)

- Process isolation: http://msdn.microsoft.com/en-us/library/2bh4z9hs.aspx

- Network isolation: http://msdn.microsoft.com/en-us/library/windows/apps/hh77053...

- Disks:

-- Mounting volumes: http://msdn.microsoft.com/en-us/library/windows/desktop/aa36...

-- NTFS provides something like copy-on-write (part of a union file system) via "Single Instance Storage" http://en.wikipedia.org/wiki/NTFS , http://www.neowin.net/news/microsoft-details-how-windows-8-w...

-- VHD "differencing disks": http://msdn.microsoft.com/en-us/magazine/dd569754.aspx, http://technet.microsoft.com/en-us/library/cc720381(v=ws.10)...

...or just use colinux: http://www.colinux.org/ "that allows it to run cooperatively alongside another operating system on a single machine. For instance, it allows one to freely run Linux on Windows 2000/XP/Vista/7, without using a commercial PC virtualization software such as VMware, in a way which is much more optimal than using any general purpose PC virtualization software. In its current condition, it allows us to run the KNOPPIX Japanese Edition on Windows."
Great Resource
Or attempt to remedy the symptoms. e.g. mummification
This may not be reddit. But you got a point: It is really irritating that this post with this title is seemingly written with a straight face.

On the one hand, there is the burnout discussion regarding managers, and on here of course especially also regarding IT-people and founders. On the other hand, there is a semi-corporate culture treating things like tiredness, exercise and food as something one has to conquer with willpower and buzzwords from quantified self and power everything. Something one has to put a lot of energy into to do properly, all with the aim to be even more productive.

As if it was impossible to simply take the time to eat properly, at least once a day, with your colleagues. Or get home early enough to be able to exercise twice a week. Or don't work night and day so one gets enough sleep.
Going out on a limb here but are both your parents high-achievers? http://www.dailymail.co.uk/health/article-2064478/Autism-lin...
Introduction to Information Retrieval Book
Twilio.org launches for non-profits
> except with a script, its savable and much easier to type.

That's an odd thing to say as Python scripts are no more savable than shell scripts. Nor are Python scripts any easier to type than shell scripts. Also, as shell scripts tend to pipe commands together, it's multiple process and thus multiple core by default, unlike Python.
All the talk of jargon while a paradigm has shifted... No doubt, you are all very smart (and literate) but the point was to notice how f^@k1ng big this is.
In defense of the RSpec book, it is trying to teach a testing methodology. It should err on the side of over-testing.
How can this be used for an in-person merchant transaction without NFC? Does the merchant also use a smartphone application to receive money?
this is partly why I advocate a slow code movement similar to the slow food movement. instead of sprinting I would like to walk to the destination, avoid the pains of broken ankles and repairing shoes whilst running in them.

I would like to explore to find a sane and reasonable approach and not be driven by artificial deadlines guessed at three months ago but by todays business need.

i would like to actually be measured on business value generated, not lines of code written.

I would like to improve and simplify, deliver real value and savour the joy of actually creating.

this may of course explain why I feel totally unproductive at times
I've had this type of request for certain online things before. I've always assumed it was for the company's security, not mine. While it might be unreasonable for a purchase, if you want secure shell or something on a hosted server, I can see where verifying you are who you say you are would be valuable. I certainly wouldn't hand out shells to random people on my own servers.

Of course, you might use a different method than email to deliver the required documents a little more securely.
I don't agree. Most of Apple's accessories are extremely stylish and complement their hardware: iPad smart cover, keyboards, mouses, chargers, ear buds, and monitors. I think the iPad smart cover alone demonstrates that Apple has the capability to make cases/covers for their mobile devices that are both functional and stylish. What accessories, besides the iPhone case discussed here, do you think Apple has made that are sloppy?
There's not a good term for a female peer. Lady or woman tend to imply someone older. Girl or gal are insulting. What's the equivalent for "guy" that means "just this female dude, you know?"
First Teardown of iPhone 5s and iPhone 5c
Show HN: My attempt at a piano version of Guitar Hero
So I've been working on this for quite a while and it's time I made a serious push. Besides being fun I think it could have a serious impact on how people learn to play the piano. I just launchedd a kickstarter project for it here:

http://www.kickstarter.com/projects/733181147/crescendo-playing-the-piano-was-never-so-fun

Any feedback would be appreciated but especially helpful at this point would be comments on the kickstarter presentation; ambiguities, missing information, odd use of semicolons, etc.
Unless you can make 200k all included, don't do it. It'll be a step backwards.

(Unless you make 50k in Texas, in which case, do move, you can always move back, and cling on to the new salary bar)
Because it's very likely that anything that would be seen as a "bug" will be fixed in updates; whereas things that are the result of intentional (bad) design, like lack of information hierarchy, probably won't be fixed, because they won't be seen as incorrect. (Which is, nominally, what this tumblr would be for pointing out.)
I guess I regard nearly all cable news as brainwashing. Maybe even all news. Fox is the worst example (IMHO), but I don't like any of it.

Turn off all news for a year or two. Then watch for a few minutes. With fresh eyes, the news looks like a clown show - all emotion and advocacy.
I can't quite figure out why a HIPAA compliant data storage service is a big deal...

Isn't this just a thin encryption layer on top of Mongo? I feel like I could replicate this in ~100 lines of Node.
I hope this includes the HIPAA NSA backdoor.
Perfect Software and Other Illusions About Testing by Jerry Weinberg might be a nice start. Or anything by Weinberg

http://www.geraldmweinberg.com/Site/Perfect_Software.html
Now we just need pg to come in and post "ಠ_ಠ", and we'll have an HN shark-jumping trifecta.
I think he means the deeper in the comments you go, the closer it becomes an 'e-peen' measuring contest. But the first post is the only thing you should dive into.
Native Apps & Cross-Platform Consistency
Really? Recent news suggests otherwise...
I can't seem to get this down to a single command with ImageMagick, but this should produce the desired result:

compare key.png messageXORkey.png -compose src -highlight-color black message.png

convert diff.png -negate message.png

Though this solution will only really work for black and white images.
> Getting up, walking down the hall, knocking on someone's door, seeing if they're even in the office, and then talking to them is a pretty huge barrier to fast easy collaboration.

What? Why can't you collaborate in their office? This sounds like you don't get immediate fulfillment when you want to ask someone a question, but there isn't anything stopping you from collaborating when needed.
It's like the Java argument. It's less likely for founders and managers setting the culture to screw up private offices or small group offices than open offices.
Scientists Discover the Origins of Genomic "Dark Matter"
the sooner you stop caring about the up/downvotes of strangers on the Internet, the happier you will be.
It's actually beyond low, it's more like a tech sweatshop especially if the company is located in SF.
I did a restore using recovery mode to iOS 7 - nothing got better. Then I did a DFU restore to 6.1.3 and boy I am happy. The thing works admirably well. This seals it for me - at least in its current state iOS7 isn't something that is usable on older hardware. (People with iPhone 4 also seem to have similar experiences.)
The service itself is not a big deal. The contracts that they're willing to sign are a very big deal. I've never had to do it before but my understanding is that getting vendors to sign those BAA contracts and get the indemnity insurance they offer is not trivial.
Hint: As with PCI compliance (for credit card data), the hard thing with HIPAA compliance isn't the code but all the non-technical stuff. Legal stuff with regulations, validations, insurance, audits...
looks kinda like what you can do in gmail now, send money right from your email account to another email address?
you are right. Rails be are very very cautious.
I wasn't thinking of making them a shell script, I was thinking of using them directly from the prompt- that makes sense. Come to think of it, I should be writing more shell scripts instead of retyping stuff into the prompt.
// debugger;
"15 minutes of physical activity"

Sounds about right.
MPlayerX is also a great alternative on OSX.
BTW, restoring fresh to iOS7 did not fix it for me. Text kept appearing slowly in the text input areas - long after keypresses. So I restored back to 6.1.3 and all is well again.
Even if more money can't produce "better" content, it can produce MORE of it. There's no question if they changed the split to 75% dedicated to development they could have hired MORE artists and MORE level designers and ended up with even more content in the world. That's simple logic.

I'm not singling out Rockstar here, ALL huge companies have this kind of ridiculous split between development and marketing in today's world. It's just the sad reality of how business is done.
Thank you - you're quite right. I should have written, "copying isn't theft".
I've probably shoveled more fuel on HN's NSA fire than most, but how do you think health records are related to anyone's NSA threat model? Are there health conditions that will prompt a visit from the black-bag squad?
This glass concept lets you drink two separate beers at the same time
Self-healing plastic spontaneously and independently repairs itself - UPI.com
There are two reasons I prefer command line tools over python/R scripts:
1) Most of the time, I don't need to save anything at all, as they are one-off data manipulations
2) IO and control flow are already taken care of. No specifying that you want to read from stdin, no looping, no specifying how you want to print out. For a one-liner action, that is a ton of boilerplate.
Romney campaign got its IT from Best Buy, Staples, and friends (2012)
Writing (0 == a) instead of (a == 0) to check a's equality with 0.

It sacrifices readability. I'm sure there are tools (if not one can easily write one) that warn you for accidental assignment when comparison was meant instead.

Moreover, the (0 == a) trick only works for constants (which you can't assign values to, hence the compiler will complain), but not for variables. I.e. you can still do if (a = b) accidentally, when comparison was intended.