skysight-inc/HackerNews huggingface dataset:
NS Basic App Studio is not fit for purpose
I have been working with NS Basic App Studio for two years, since launch.<p>My thoughts are this:-<p>If you plan to do any kind of development which you want to look professional then forget App Studio. NS Basic App Studio has some major failings, number one on the list being documentation. The documentation supplied with App Studio is truly appalling, covering basic commands and functions only, and even then, not fully. The moment you want to dig deeper there is no help for you and even the writers of App Studio say "Search the Internet for answers". This makes App Studio a 'development' system for amateurs.<p>If your intention is to develop anything that remotely resembles a professional application then I am very sorry to say you will have to use something else.<p>I speak as a professional developer of 30 years experience, having developed on all sorts of platforms. We recently completed a project (not the way we wanted to due to the limitations) using NS Basic App Studio and it took a whole year to make. The equivalent in almost any other environment would have taken a matter of weeks. There were times when my team and I wanted to blow our brains out in frustration, mainly with the woeful documentation and zero support offered by NS Basic.<p>NS Basic bill App Studio as a Visual Basic-like environment. Do you remember the days when IBM clone-makers were saying that their machines were compatible to the IBM PC and it turned out they meant they both use a 5amp fuse in the plug? Well that is how App Studio is to Visual Basic. Whilst App Studio uses the BASIC language, it is so far removed from VB when you start wanting to do anything interesting that it makes the comment "Visua Basic-like" a mockery at best and misleading at worst.
I think you misunderstand the purpose of the two courses. The overwhelming majority of students taking CS50 on campus will never take another CS course. Harvard undergraduates are required to take a quantitative reasoning course regardless of major, which CS50 fulfils.

Both Harvard's CS50 and MIT's 6.00 are intended to introduce people with little or no experience to programming. However, the former has far more students with humanities and arts backgrounds. This requires a different approach to teaching. Neither course is 'better' than the other, and the student evaluations bear this out. The feedback I hear from contacts at edX is that both courses are being very well received.

The assumption you seem to be making is that the majority of people taking CS50 care about working in the industry, whereas they just want to find out more about programming. And that's not a bad thing.
Any information as to how this was done, and how we can make our own like this? Presumably it's not going to happen without a talented artist, but still :)
So you'd say that this code is better:

post.publish Date.now

than

post.publish

When the publishing will only happen now?

I'm a Ruby developer who disagrees with DHH strongly on this issue, as well as his stance on SOLID and testing. I also have years of experience in C#, using TDD and using dependency injection and IoC containers everywhere. However, I think there's a point to be pulled from DHH's post about unnecessary ceremony around dependency inversion (the more important thing) and static languages.

If I were to write this "publish" method in C#, I couldn't even put it in the Post object. It all looks fine and dandy now, but what happens when the first wave of change comes in? Say, if we were to have to stamp an "updated_by" field? Then we get to this:

def publish(time, updated_by)
self.update publish_at: time, updated_by: updated_by
end

And so on, and so on. The dependencies have to be passed to the object, so every dependency flows up to become dependency on any object that uses it. And since having method calls like ".publish(Date.now, CurrentUser.name)" everywhere really stinks for readability and DRY, and since I can't make Date.now a constructor requirement to create a Post, I always found myself having to do this (in C#):

public class PostPublisher
private IDate date;
private ICurrentUser;
public PostPublisher(IDate date, ICurrentUser){
this.date = date;
this.currentUser = currentUser;
}

public void Publish(post){
post.updated_by = currentUser.name;
post.published_on = date.now();
// save????
}
}

... and let the IoC container wire this sort of stuff up. Dependencies tied to this operation are isolated (as well as every other operation). But UGH, is this any better? So many classes and LOC just to do simple things.

I just don't see a good solution to this, and I'm not satisfied writing "good" code that handling is a pain. I decided to try Ruby as it seemed to have answers for this, and it does.

You can call the ability to use the Date object and still change it a "global variable" or "linguistic flexibility," but the truth is: In the applications we write, published_at is only going to be set to Date.now and updated_by to the currently logged in user. And as soon as we write the application and deploy, it will serve the business needs wonderfully. As a C# developer, I justified the costs of doing these end-arounds as necessary to maintain a TDD'd codebase that could easily be changed later. As a programmer, though, I can't justify the costs of writing dozens of lines of code when I can TDD one line of code. And I sure as heck don't want to eat the costs myself. So today, I just do it with one line of code really fast and make the client happy.
"I hope he takes some time to clear up what it is he actually does, and what statistics are and aren't capable of."

He wrote a whole book about it.

http://www.amazon.com/dp/159420411X
According to Steve Jobs' biography, this was a deliberate decision on their part, to better control the user experience.

They didn't need to become a retail company, but they understood that the customer would be better served that way.
I wish they had more details on this "design engineering" pack: http://www.legoeducation.us/eng/product/ev3_design_engineeri...

It seems pretty cool.
Equally, if you think of extra time in a cup match then TV schedules for the rest of the evening are definitely effected. It happens a lot.
DI is still relevant for dynamic languages, for two reasons:

- it lets you put your dependencies all at the same place

- it lets you define clearly what the dependencies of a piece of code are, without having to look at internals which may change tomorrow without warning

One thing I find aggravating with dynamic languages is that metaprogramming is a crutch people tend to rely on because they can't be bothered to write clean APIs. In my experience, it's particularly prevalent in Ruby.

Of course, the lack of dynamism can be a problem in statically typed languages, giving Spring's or Hibernate's stacktraces of hell with piles of proxy objects.
This is due to localisation. Standard dialogues with limited and clearly defined text options can be automatically localised by the system, but if you put arbitrary text on your buttons and you want localisation, you have to provide translations yourself.
And then EastEnders changes the tune ever-so-slightly (without notifying National Grid operators, of course), and the program breaks. Or the soap gets moved, or cancelled, and the program breaks.
Do you pass Random in? Or how about new file streams? Hell why should we even bother with local variables, lets just promote everything up the chain? Sure our method signatures would get longer and longer. We'd have to keep declaring variables again and again even though they're all used in one place.

There's a line where it gets absurd as it makes the code more complex. There's no good reason to be adding a date variable to your method signature just to make everything functional. Because you then have to declare and initialize that variable extra times.

That's the opposite of code reuse, that's bad programming. What happens when you need to refactor the method? What if the method call is in a different site to the date declaration? Why do that to yourself?

This hasn't got anything to do with functional programming. It's just simply about DRY and pointing out dogmatic coding approaches like DI being applied without actually understanding why you're doing it.
This raise the question if the best entrepreneurs should be psychopaths. Investors seam to favor the psychopath personality characteristics (taking risks, focus, bent rules to reach goal = hack the system, etc.).

It also seam that people with moderated psychopathy might be socially and professionally advantaged and might thus, in the long term, become the dominant humans and the future product or our on going evolution process.
Even as a fully healthy user, I often find the "mobile" versions of sites are much easier to use. They tend to have a lot less junk on them and make the actual content much more prominent.
I've been meaning to build something like this using CEF or something, and i'm glad someone else beat me to it. And it has TCP sockets! That seemed like such a glaring omission in cordova/phonegap.

I also think it's good to provide a platform.getOSType() in a cross-platform environment as long as things don't get out of hand. You could switch on this to load the platform's default fonts.
The kilogram has gained weight
I cannot look at it from a freshman's point of view, so I'm biased, but I definitely don't want it to be my only CS course.

This is because I just know, that to understand, say, SQL (and NoSQL) there is excellent Database course from Stanford and it worth taking because it will pay back later. To understand programming you need CS61A (because it teach you whys) and then Data Structures and Algorithms. Then you can pick up everything you need from books.

So, let's say that this is an Introduction To Coding (without deep understanding).
This is anecdotal evidence, but this hasn't happened in over 2 years of having this thing[1] at Twisted[2]. People understand it's fun and games, and it is not the true measure of success. Real success, including bringing in old/hard tickets, doing release management... etc is very much celebrated, even if it's not visible on the board.

Another comment that has been made here is that you shouldn't have giant monstro-tickets: they should be split up wherever possible. Clearly that's not possible in every case, but the point is that monstro-tickets aught to be the rare case.

[1]: https://twistedmatrix.com/highscores/

[2]: https://twistedmatrix.com/trac/
here's a really good blog post on the topic http://19lights.com/wp/2011/11/14/will-hdr-displays-really-w...
I think most of you are missing the point. I think the example DHH used should be interpreted as calling

post.publish!

is easier than

post.publish! Time.now

Since when you publish, the time of publication is the only value that make sense. Now, you can argue that you can set a default argument to Time.now, but that's weird code that only make sense if you need to supply a value other than Time.now, which you will only do in testing, so the code in DHH's example is optimal.

The point of DHH's blog post is, in a flexible enough language like JS, Ruby and Python, you can still test pretty much anything without DI. I honestly don't know any other reason why one would want to use DI other than making Java testable. In fact, you don't even need that in Java anymore because you can use Mockito these days and it can mock private stuff.

The stupidest reason I keep hearing over and over again is DI makes it possible to change an implementation at runtime. Wait what? Don't you have to change the application.xml file in Spring and restart the app? AFAIK there's nothing in Javaland that lets you listen to config file changes and then magically reconfigure the app context and make a copy of said context as a thread local in every new thread. Correct me if I'm wrong please. Even if there was, what magical alien land would require such a "feature", and such feature is so important that requiring your entire code base to be littered with all these indirect abstractions acceptable?
Match of the day causes a similar surge - I don't know about corrie :)
Why Double Taxation Must Cease
There's huge amounts of rank jealousy directed at classmates who took a look at the (readily available) evidence of what a PhD's career track looked like and decided against it.

The problem being that in most of the natural or social sciences, there are few job-options for researchers, or even for applied scientists, outside of the Academic-Governmental scientific complex.

Yes, yes, yes, everyone is about to point out their favorite example of a profitable industrial firm doing Real Science. Very nice for you at Microsoft Research or your chosen pharmaceutical company.

Problem is, those companies can only afford to do a small piece of the total research load every year, and only in subjects where research can translate into profits in the next 10 years or so.

So it becomes a decision of society's values: should scientific research be done without a prospect of profits in the next 10 years? And at the moment, most people hate being so much as confronted with a question like that, let alone actually paying taxes and engaging in the political-budgeting process to make sure allocations to science happen so that scientists can do their/our jobs.
http://theautomaticearth.com/Energy/india-power-outage-the-s...

700 million people blackout! Long article, but not very technical, contains some excellent quotes and sound like free anarchy at individual, corporate and government levels - corruption, politics, theft, fraud, overload, fatalaties.

I liked this quote: "No one is taking care of the grid — the network of transmission lines, interconnectors and transformers that is essential to life as we know it; two, supply cannot keep up with demand; and three, rate-setting is a political rather than an economic process. It should not come as a shock, so to speak, that neglect, failure to prepare and playing politics with essentials should lead to disaster ... No less than the American Society of Civil Engineers said in a report released in April that the [US] grid could break down by 2020 unless investment in it is increased immediately by about one billion dollars a year. Why so much? Because, according to the report, more than two-thirds of the system’s transmission lines and power transformers are at least 25 years old, and 60 percent of the circuit breakers have been in use for more than 30 years."
It almost sounds as if she wants to be killed (stuff like that has happened before, prisoners taking their therapists hostage, for example). What a silly idea, sorry.
Could you make it keep the original titles for stories? The thing that makes it hardest for me to follow conversations is when a mod changes the name of the story.
Odd sort of rant. There is an old proverb about workmen blaming their tools.

You don't say what your target platform is/was and why you did not pick the relevant "mainstream" tool to do your "professional" development task.

NS Basic was a brilliant tool for writing Palm apps back in the day - very productive. The version targeting early Windows CE devices was a bit "me to" and failed to match the standard of the free tools supplied by Microsoft. I lost touch after that but still give all credit to the developer for the original.

Edit: OK - I have now checked out the web site for NS Basic. Looks like a process that (sort of) generates an HTML/ CSS/ JavaScript (read standard) web app that is then wrapped as a "native" app using PhoneGap.

Given that, why get NS Basic involved at all - just write the app in HTML and add the JavaScript required for functionality. jQuery Mobile would help if the screens are pretty steady. As far as I can see you ended up adding a huge layer of complication to no net advantage. I suppose the lesson is (as always) use the simplest tool set that gets the job done.
LuvRhino? Where people go to get the horn? :-)
Ruby on Rails security updates address SQL injection flaw
Rapporti interpersonali: degenerazione moderna
Jeff Atwood's tweet sounds to me like: "Who cares whether black people are prevented from playing hockey due to racism?"
Er. Obviously, not every function can be a pure function, otherwise your program will not work. However:

- controllers should not touch the data layer directly (and therefore follow SRP)

- controllers should have their business layer services injected from somewhere else

This does not make them pure in the sense they remain (indirectly) functions with side-effects, by virtue on relying on business services, which themselves interact with data access services which do IO. However, it does make them testable without resorting to hacks and offers a clean interface.
How to assist TCP in processing .NET and Android applications simultaneously
If humans end up creating an army of robots that genuinely are better than humans in every conceivable way, why /should/ we continue to exist? (Other than how humans currently allow animals "lower" than ourselves to exist, ie for food and entertainment)
In Italy, very few people would own an electric kettle, or even a classic one.

I've travelled a fair bit and I've never, ever seen as many kettles as in Britain.
Airline lost your luggage? Track it with cellular device
High Risk Factors That Scare Investors
People are more likely to try something out if they know they can easily go back to what they're used to.
Cool domains.
First rigid airship since the Hindenburg enters trials
Nvidia, Out Of Nowhere, Announces A New Gaming Handheld
I agree ... I won't even complain about Java's DI implementation. I've used both Weld and Guice and will admit that both have edge cases that aren't ideal, but it's better than the alternative.

In general, I think I'll choose MF over DHH anytime both have an opinion:

http://martinfowler.com/articles/injection.html
>Take away excel and the impact would be about as bad as taking away google would be (or maybe even worse).

I work for one of the largest companies in the world and this is absolutely true. If Google went offline it would be a minor inconvenience. Taking away Excel would grind the company to a halt. I tried converting a few of our hefty xls files to Google Spreadsheets but its not yet robust enough for the task. And thats just the worksheets themselves - VBA and macros are another level entirely.

That said, I cant help but see trouble on the horizon for Microsoft's enterprise offerings. We recently transitioned to a MS hosted Sharepoint 2010 and its absolutely woeful. Office 365 is ok but not a killer app.

MS can afford to make some fuckups in this area but if they lose traction in the enterprise then I think its the beginning of the end. I guess the xbox division can keep them alive for a while.
In NYC go to B&H. Not sure if it's directly equivalent, but it's kind of like a mad, orthodox Jewish cross between Best Buy and Santa's workshop.

http://en.wikipedia.org/wiki/B%26H_Photo_Video
No touch support

Heads up.
It hasn't happened in the past 30-40 years that this system has been running, about the only thing you can count on in those parts of the UK where the hydro is based is rain...! I think the investment needed for such a remote possibility isn't warranted, especially as water supplies dry up fairly slowly so there is at least some warning to start rationing the tea-bags. Coronation street is ITV by the way, the BBC will be staggering EastEnders. The best way forward is probably to axe such shows....(dreams of more room for better programmes on TV..)
I have read that electric cars will be the new "smart grid" connected appliances. Once say 50% of people have an electric car, which is probably usually left plugged in on the driveway, that's a huge amount of battery power available nationally, ready to be fed back into the grid as needed.
> "Pervasive modern firewalls" is an anecdote. Even at cafes and such, mosh works, anecdotally, for me.

We have a firewall rule set up to allow inbound ssh on port 443 to one of our office servers because several of our clients have networks that are so locked down that whenever one of us needs to work from their offices from time to time, it's the easiest way of ensuring they'll have ssh access...

Cafe's are not a good example. Cafe-run public wifi tends to be some of the least secured internet access you can find.
"Make their employees do that"

Who else is going to respond to a Home Depot customer service issue but the employees?

It seems the company is damned if they do and damned if they don't. Damned if they don't respond to her tweet. Damned if they do, because then they'd be slave drivers pushing themselves or their employees to provide great service without taking into account work-life balance, etc.

Do you agree those two things are opposed? Why can't she just be grateful these people (in this case unnecessarily) pushed to go the extra mile for her, rather than encouraging her to attack them again for doing so?

She should get their names and encourage people to buy Home Depot if she really felt bad for them.
I've seen a better one, with 2 cancel buttons, following "action"/cancel model.
Is Medium the future of book publishing?
This looks like it's based on Titanium, which I've used before and they basically stopped supporting the product for Desktop applications... weary of starting another project using this. Last time I had to convert everything over to an Adobe AIR wrapper with a HTML control.

http://developer.appcelerator.com/blog/2012/01/the-future-of...
... except where gas is cheaper than electricity.

I suspect one of the reasons for the popularity of small electrical appliances in Britain is that electricity is traditionally cheaper than gas, which is the opposite of what you'll find on mainland Europe.
Thanks so much for sharing this.

I think treatment of immigrants by border controls is shocking, and the biggest problem is how little attention / voice the problem gets.

Please continue to write about your experiences.
Agreed. 2/3 words on a button allows those who know what they're doing (or think they know) to make the decision quickly, and leaves the dialog text to give a bit more explanation for those that need it and would choose to read it.
Alongside the other major problems with publish-or-perish mentioned in other responses, most people's ability to fulfill their job requirements is not decided by a program committee of 30 colleagues from other workplaces looking-over the reviews given by 3-5 anonymous colleagues, but actually written by their grad-students, based on a bare-minimal reading of your actual work.

A software engineer can commit his code when it compiles and/or when the unit-tests pass. An academic might spend months writing and revising a paper, only to be successively told, "Too many examples", "not enough examples", "there's a bug in your proof", "I can't understand this so it must be brilliant", and finally "too long, didn't read". The paper is then not published, and at minimum the academic must revise the paper and resubmit, taking several more months.

After maybe 6 months, the academic might have succeeded in getting one publication out of one project, and he has to be running multiple papers' worth of projects concurrently throughout the whole year to make sure he produces enough papers each year.
I'm still seeing malware on Vista and 7 on home machines where the users are STILL all local admins and click "OK"/"Yes" to every "should this be allowed to run?" prompt because years of popup messages have conditioned the average user to just say "whatever" and click the continue button.
Introduction to Adobe Fireworks
I just want to point out the features that make using Adobe Fireworks over Photoshop more sense for web design.