Catch up on stories from the past week (and beyond) at the Slashdot story archive


Forgot your password?
For the out-of-band Slashdot experience (mostly headlines), follow us on Twitter, or Facebook. ×

Comment: It's all about the environment... (Score 1) 125 125

Seriously, I'm still waiting from a company that realizes having private offices plus collaborative spaces (you know, a old school office) is the best way to go.

You need quiet to concentrate on a tricky problem. You have it. You need to get together as a team and work on something, you have it too. You have rooms with actual doors, you train people to use a proper conversational (not cell phone loud) tone and boom, productivity. Not chaos that mimics the appearance of creative work, but actual work.

Seriously, hire a developer for six figures and give him a few hundred bucks in desk space that doesn't even have four cube walls? That makes all the sense in the world, right. Argh.

+ - Interview: Ask Linus Torvalds a Question

samzenpus writes: Linus Torvalds, the man behind the development of the Linux kernel, needs no introduction to Slashdot readers. Recently, we talked about his opinion on C++, and he talked about the future of Linux when he's gone. It's been a while since we sat down with Linus to ask him questions, so he's agreed to do it again and answer any you may have. Ask as many questions as you'd like, but please keep them to one per post.

+ - Tech company finds stolen government log-ins all over Web ->

schwit1 writes: A CIA-backed technology company has found logins and passwords for 47 government agencies strewn across the Web — available for hackers, spies and thieves.

Recorded Future, a social media data mining firm backed by the CIA's venture capital arm, says in a report that login credentials for nearly every federal agency have been posted on open Internet sites for those who know where to look.

According to the company, at least 12 agencies don't require authentication beyond passwords to access their networks, so those agencies are vulnerable to espionage and cyberattacks.

Link to Original Source

Comment: Makes sense... (Score 2) 124 124

The R/D department for this lives in Portland (Perceptive Pixel, acquired by MS). Plenty of room in Wilsonville. Power is still fairly cheap here (hydro power from the Columbia dams). So, yea, makes sense. Sure, milk it for media points, but in the end, it's just a business decision.

Comment: Hope it pans out... (Score 4, Insightful) 82 82

Seriously, severe migraine sufferers and those who suffer from cluster headaches need all the tools we can give them. As noted, if you really read about cluster headaches, it is truly shocking. It is noted sufferers are at a high risk for suicide; after I read what they go through, I was surprised that it is not even higher.

I suffered from migraines, but on the mild to moderate scale. I was lucky, I found a preventative regimen that works very, very well for me. For those with more severe cases, I do hope this is a successful treatment option.

Comment: Re:Java vs. C# amuses me (Score 1) 414 414

Well, there's some differences that do make C# seem easier and less clunky. They are similar, but not identical, and their differences do matter.

Properties. Yes, Java has getters and setters, but those are methods. C# makes the distinction between a property and method. To be fair, this doesn't really come up until you deal with reflection and more advanced cases, but it is a useful distinction to make.

Generics. Java has type erasure, which has it's issues (you can't do T newThing = default(T) in Java). If look at the lambdas, there's a lot of stuff they have to do around typing to handle primitives versus objects, etc. C# just has a Func and Action types. For APIs that use higher-order functions, this makes things a bit clearer (I want a function that takes a string and returns a bool, for example). Compare this to things like mapToInt in the streams API, and C# is just more consistent and natural in this area.

LINQ. True, Java 8 streams add a lot of this, but they don't expression tree support, which makes things like LINQ to Entities and LINQ to XML, etc. possible. Granted, LINQ has it's own issues (LINQ to Entities code can fire runtime exceptions that LINQ to Objects won't), but this power is really useful. And it requires language and compiler support to transform a lambda to a expression tree versus a closure.

Async/Await. Now, this is newer, but this is a huge difference between C# and Java. Non-blocking code is great, but it can quickly turn into a nest of callback functions. Sure, promises help, but that's a chain of objects. Async/Await provides a much easier to use model that provides many of the benefits of asynchronous programming, but keeping a more synchronous like code base. Scala, JavaScript are all adopting this model because it works well.

In practice, it can be very useful. I was working on ASP .Net MVC 4 project. I bumped it up to five and some improvements. I then just used the asynchronous APIs in MVC, etc. It was a fairly simple change, but boom, less CPU usage and more overhead for concurrent connections. A noticeable gain for little price.

Finally, the libraries do diverge beyond the core. Entity Framework and Hibernate are different. WPF couldn't be more different than Swing, etc, really. Java doesn't have a standard library like Windows Workflow Foundation. And there are Java libraries that C# doesn't really have, of course.

While I agree that Java can get too bad of a reputation, it does show it's age. Also, the JSR process has grind to almost a complete standstill. When C++ gets lambdas before Java, it shows just how slow the process has become.

I think C# embraces newer features much more readily, and that's why some really advocate for it.

Comment: As long as you consider one... (Score 5, Insightful) 443 443

Moving past a text editor is a big help. Sure, it's good to understand the command line and all that, but having a tool that understands code and allows you to manipulate it is really useful. Refactoring support matters. A lot, actually. Safe delete, rename, extract method/parameter/etc. are all basic tools that can make a code base better. Code completion (intellsense, etc) support matters too. What does this thing do. Does it do what I think it should? Why or why not. Add in things like smart templates, etc. and even the most code aware text editors just look like nothing more than keyword colorers.

Personally, I can't recommend Visual Studio/Resharper or the IntelliJ product line enough. Worth every single penny and then some. JetBrains has a laser like focus on just getting things done. High DPI support was a problem for their IDEs, so instead of waiting on Java 8/2D to catch up, they forked it just to get it work, and they admitted it was not a great solution, but a workaround.

Comment: There's an easy fix... (Score 1) 429 429

For all the worry about age discrimination, H1B abuses, labor violations I've seen here and in other places. There is only one known solution to these issues. Unionization. Until software engineers gain collective bargaining rights, this is all just theory.

It's funny that a group of people that are more than comfortable with changing how people do their work and creating new products. don't think they can make a union work. Sure, they have flaws, but they have advantages as well.

The reason we talk about the 40 hour work week being ignored is because of unions demanding a reasonable amount of time off. Not because some companies that realized it was a good idea. The list goes on. Sure, there's been some really good attempts at rewrite history, but the truth is still there. Unions are an important counterbalance to corporate overreach and abuse.

Comment: Re:Developers, Developer, Developers (Score 1) 125 125

Not really. Sure, many languages have things like LINQ Select/Where (map/filter), but that's just for objects. It's the expression trees where things get interesting. Expression trees allow a provider to generate a different artifact than a map call over objects. LINQ to Entities creates calls which the Entity Framework turns into SQL.

You can make a custom provider against any data source, really. There is an example of LINQ to Twitter that turns LINQ queries into Twitter API calls (

This feature requires language support, because when an Expression is needed, the compiler needs to turn a lambda (and so on) into a expression tree, not into compiled CLR code in a closure.

To be fair, something similar could be done in other languages with proper support. And writing a LINQ provider is non trivial, but it is possible and in certain cases, it can greatly simplify programming.

Comment: It's Microsoft vs. Google... (Score 4, Interesting) 83 83

Well, to be fair, it's Microsoft vs. Motorola which was acquired by Google, which still holds the patents. Apple filed a brief in support of Microsoft. The ruling that Apple is support of upholding is that Microsoft only owed a couple of million a year for it's use of those standards in its products.

Motorola sought an amount of four billion a year plus 20 billion in back fees. Google and Qualcomm is arguing the latest ruling was over-reaching, and that they need the ability to charge more. But, given the initial demand, it is clear they want to charge orders of magnitude more for these patents and to seek relief from previous sales. It's pennies versus dollars and that adds up.

And frankly, Google should know better. It's benefited enormously from these technologies being available at a low cost. I know this goes against the Slashdot mindset, but Microsoft is on the right side of the argument here.

"Silent gratitude isn't very much use to anyone." -- G. B. Stearn