Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!


Forgot your password?

Comment: Re:Why the FBI thinks it's North Korea (Score 1) 266

There's a difference between trusting in the government not to snoop on it's citizens and trusting in the FBI's competence in tracking down crimes of this matter. Question their methods, but I'd advise you not to question their competence. I don't think they'd risk undermining their credibility as one of the world's leading forensic and criminal investigation units to place blame where it doesn't belong. What's their motivation to lie and damage their credibility? North Korea doesn't exactly pose a major threat to us, nor are they constantly in the news here in the US.

Comment: Re:polish != Polish (Score 3, Insightful) 140

by Dutch Gun (#48631553) Attached to: Critical Git Security Vulnerability Announced

You know, one could argue that case sensitivity in file systems actually demonstrates the difference between the *nix vs. Windows philosophies pretty well. Disclaimer: I'm a Windows guy, so let me know if I'm making unfair characterizations.


*nix is about power, flexibility, and user control. It favors command-line interaction through discrete commands, applications, and scripts. This makes it extremely suitable for power-users and administrators who are willing to invest the time to become proficient in using these tools. Visual interfaces are often built on top of these command-line actions, which can create a slightly disjointed experience for more casual users who don't understand what's happening under the hood or can't easily fall back to command-line use when needed.

File system design: A file system should give back exactly what was put into. We should provide maximum flexibility and utility, even if it comes at the expensive of user-friendliness. The entire system should not be dumbed down to protect users who can't even figure out how to properly name their files, because there may be legitimate use cases for case sensitivity in file naming.


Windows is about user-friendliness. Visual tasks and interactions are emphasized over command-line actions. Applications are often extended through proprietary extensions or internal scripting rather than through command-line input and output. Because the system is build with visual interaction in mind first and foremost, users never have to interact with a command-line. This makes it easier for casual users to achieve faster results with less training, but can come at the cost of a more shallow understanding of their computers (e.g. if the visuals change significantly, users may become confused).

Filesystem design: We can't really think of a reasonable use case in which a user would actually want to create two different files in the same directory that only differ by case. In reality, it would probably be the result of an mistake, and this may cause confusion for users. Therefore, we'll just restrict the functionality to eliminate that potential error. We're willing to write a bit of extra code to preserve case but to discard it when disambiguating files.

Comment: Re:I blame Microsoft (Score 4, Insightful) 140

by Dutch Gun (#48630445) Attached to: Critical Git Security Vulnerability Announced

Karma be damned...

One could alternately argue: do you feel it's a good thing for something.dat and Something.dat to reference two different files? Because that would never confuse users, right? Shall we next talk about forward slash versus backslash in path separators, and how one is obviously much more logical and intuitive than the other? Or maybe we should get into line endings, or perhaps how there really shouldn't be any distinction between text and binary files? UTF-8 vs UTF-16?

Newsflash: different operating systems have different conventions and different quirks. I'm going to take a wild-ass guess and predict that you believe the choices of your preferred OS are obviously the correct choices.

Comment: Re:503 (Score 3, Interesting) 389

by Dutch Gun (#48622643) Attached to: Google Proposes To Warn People About Non-SSL Web Sites

Yep, same here.

On topic, Google, I appreciate the focus on security, but stop deciding to simply implement however YOU THINK the web should be working. Ok, technically, it's just a change in the browser, but the semantics are obviously meant to "encourage" everyone to switch to HTTPS. However a good idea some of us think that is, it's not up to you.

This is why people are getting freaked out about the power you hold. You're starting to demonstrate that you're not afraid to *use* that influence to simply push things to work however you want them to. You've already done that once already by pushing forward an SSL-related change far ahead of when it really needed to be, and now it looks like you're floating a trial balloon to go one step further.

Am I overreacting here? Or is Google going too far, too fast with this?

Comment: Re:Embrace (Score 1) 215

by Dutch Gun (#48622277) Attached to: What Will Microsoft's "Embrace" of Open Source Actually Achieve?

You're aware that, right now, you can build cross-platform apps entirely in Microsoft Visual Studio, right? And porting .NET is part of that interoperability I was talking about. The next version of Visual Studio is going even further with it's cross-platform support.

Oh, make no mistake, they're trying to get Windows mobile kickstarted as well. I think at the moment they're just looking at the cold, hard facts. iOS and Android are absolutely dominant in that market, and if Microsoft understands one thing, it's how difficult it is to unseat a dominant market position. After all, Linux has had excellent and *completely free* offerings on the PC for years, yet it's hovering around 1%, even with the backlash by many users against Windows 8.

So, I think the strategy is to deal with the certainty that iOS and Android on mobile and Linux on servers are not going to be disappearing anytime soon. That doesn't mean that they're not going to work hard to make a viable Windows mobile platform - I think they could potentially crack into the market with some moderate success at least, but I don't think anyone, either inside or outside MS, realistically thinks that they have a prayer of dominating mobile like they did the desktop.

So, now we see them making tools and porting frameworks for easier cross-platform development. As a Windows developer, this actually makes me really happy at the prospect of using Microsoft's development tools I already own and know how to use were I to target other platforms, and I think this is exactly the reason they're doing this. Essentially, since I'm using Microsoft tools, it will probably be a no-brainer for me to also target, say, Windows mobile platforms as well. If I were using other development tools, I may not be as inclined to do so.

Comment: Re:Embrace (Score 0) 215

by Dutch Gun (#48621069) Attached to: What Will Microsoft's "Embrace" of Open Source Actually Achieve?

Nah, I don't buy it. I'm pretty sure they hold no illusions of being able to extinguish open source, as I don't believe they're quite that foolishly optimistic.

This is nothing more than Microsoft acknowledging the realities of today's market in which they're no longer the sole dominating platform. They're turning their aircraft-carrier-sized ship in a new direction in an attempt to stay relevant in this more diverse ecosystem. Frankly, I think moving to open source is less important than Microsoft turning into a true multi-platform company, in which it's actually developing for platforms other than Microsoft Windows with first-line applications.

Going open-source is just a means to an end. I don't think you should read much more than that, either positively or negatively in regards to their stance on open source. They're just moving their technologies (like server-side .NET APIs) to other platforms, which will allow current MS developers to easily develop multi-platform code without having to move away from their familiar development environments - meaning Windows + Visual Studio. Visual Studio will soon be able to target Android / iOS and use the LLVM compiler, which would be unthinkable for Microsoft of just a few years ago. This is critical for their own future internal development strategy. They want their own development teams as well as other Windows developers to be able to quickly and easily create applications for different targets using a common set of tools and technologies.

In short, they're broadening their focus from an exclusive Windows stack into more generalized software development and hosting that includes multiple platforms. Linux servers, Android, and iOS are not going away, so why not make money selling software for them? This keeps their business clients happy, as it means their mobile apps don't need to run on Windows phones, which no one really wants, while they can keep using the same Windows OS and software on the PC that they're already familiar with and currently using.

If you want to look at it more cynically, you could say that Microsoft is attempting to keep Windows relevant in a post-PC world by ensuring it can more easily interop with other platforms like Linux, Android, and iOS. The best way for them to do this is to allow Windows PC developers to use their existing tools and technologies to target those platforms.

Comment: Re:Pretty sad (Score 5, Interesting) 155

by Dutch Gun (#48614943) Attached to: Dr. Dobb's 38-Year Run Comes To an End

Or the modern trend of obsolescence of old media formats.

The simple fact of the matter is that Dr. Dobbs and similar magazines really aren't as relevant in the modern world, and that's why they're being mothballed. They've been replaced by a number of things. Online technical resources are increasingly abundant, and are often more than sufficient to learn about any topic you desire. Nearly every question I have as a professional programmer has likely already been asked and answered, often in considerable detail, on sites such as stack overflow. Various how-to topics are explored on both personal and professional blogs or other programmer-focused sites, and everything is nicely indexed and immediately accessible through the magic of Google search.

The simple fact that Google rarely points to Dr Dobbs' site about things I search for (maybe your searches are different) tends to highlight its increasing irrelevance. As much as I enjoyed reading it a few decades ago, it's time to move on. The world has changed, and some things inevitably get left behind.

Comment: Re:Oh yeah, he was a orthodontist (Score 2) 155

by Dutch Gun (#48614859) Attached to: Dr. Dobb's 38-Year Run Comes To an End

I rarely max out my AMD quad-core processor and/or 4GB memory. I don't have any software that can smoother the hardware.


A professional videogame programmer


Kidding aside... For most types of applications on the desktop (e.g. business apps that spend most of their time querying a remote database), you can get away with suboptimal code, because programmer efficiency and maintainable code is more important than code efficiency. That's not necessarily a sign of shoddy engineering, although poorly optimized code for no good reason certainly might be. Over-optimizing code where you don't need it can also be highly problematic as well. Even as a C++ programmer, I still prefer to write my game tools in C# whenever possible.

That being said, there are still plenty of specialized applications that demand top performance. Videogames, scientific computing, highly scalable server applications (efficiency = cost savings), and so on. We're also scaling down our computers as well, where you don't have the crazy power you have on the desktop. Examples include smart phones and even smart watches, where run-time efficiency translates directly to improved battery life.

So, sometimes efficiency matters a great deal, and sometimes it doesn't. A good programmer knows when each is appropriate and their tradeoffs, and uses the correct tools for the job at hand.

Comment: Re:Pretty sad (Score 5, Interesting) 155

by Dutch Gun (#48613037) Attached to: Dr. Dobb's 38-Year Run Comes To an End

I was a subscriber back in the day. Sad to see it going, but it's not too surprising, given modern trends.

I have to admit, though, the content was a bit on the broad side to be really useful to me, since my focus was mostly on client-side application programming in C++ (I wanted to become a videogame programmer). I was still a student then, so about 90% of the content flew right over my head. As such, I found the C/C++ User's Journal more relevant. Even so, I enjoyed reading it and trying to figure out what they were talking about. Eventually, only about 75% went over my head, so I think I learned a few things, although I still couldn't write a database query to save my life.

Comment: Re:Software doesn't really matter (Score 1) 259

by Dutch Gun (#48606779) Attached to: Ask Slashdot: Best Software For Image Organization?

I think I see where we're going wrong here. I agree you don't want to edit the original picture data, but you're conflating that with the notion of editing the image *file*, which occurs when you edit the embedded metadata. That's what I was referring to. Those are two totally different things.

Anyhow, of course, you can do what you feel works best for you, so long as you're happy with the results.

Comment: Re:please keep closed! (Score 1) 50

by Dutch Gun (#48601557) Attached to: Microsoft To Open Source Cloud Framework Behind Halo 4 Services

I'm guessing that's where I originally picked this information up, but I couldn't remember the exact source, so I didn't cite it. Thank you for the reminder and the links to those sources. I also recall one of Bjarne's talks discussing another reason why C++ performs better than managed languages, and that's because of better cache coherency, which is a pretty crucial for modern processors.

Anyhow, as someone who relies on both C++ and C#, I'm glad to see them both moving forward with solid support from MS.

Comment: Re:please keep closed! (Score 1) 50

by Dutch Gun (#48599389) Attached to: Microsoft To Open Source Cloud Framework Behind Halo 4 Services

From someone who uses both C++ and C# on a regular basis, my experience has been that the difference is fairly significant, not just 4%. That aside... you ask who cares? Examples:

Demanding Applications
If your app is extremely large, complex, or graphically intensive, you can probably benefit from a native performance boost. There's a reason office suites and graphics programs are written in C or C++. Games, of course, fall into this category as well.

In scientific simulations, there's no such thing as "fast enough". These guys still require supercomputers on occasion, and you can bet they're concerned with the efficiency of their code, since they typically have to rent time on them.

Small-form Devices
For more computationally constrained platforms, such as in tablets, phones, and now even watches or other in-home smart devices benefit from improved speed and tighter control of memory. Also, keep in mind that lower CPU usage means more efficient battery use, which is critical for many small devices.

Large-scale Server Applications
For server-side applications, run-time efficiency can actually trump programmer productivity in importance when scaling up to very large numbers of users, like Google, Facebook, Microsoft, or Amazon has to do. A 10% increase in efficiency leads directly to a non-trivial savings in power costs of your server farm, so in these scenarios, efficiency can be very important. Of course, when Microsoft is renting you it's servers, it's more than happy to have you use C#, since you're the one paying for the servers. My bet is that their own command and control code is completely native.

Today's programming world is especially diverse - much more so than it used to be. Not everyone is writing business apps for desktop PCs.

Comment: Re:Software doesn't really matter (Score 2) 259

by Dutch Gun (#48598501) Attached to: Ask Slashdot: Best Software For Image Organization?

Personally, I definitely want metadata to be stored in the image file itself, because if you do it any other way, there's always a risk of losing that association. I feel you're setting yourself up for a disaster if you use a hash, because the moment anything touches that file for *any reason*, poof, that metadata is now gone. You're highlighted the huge weakness in your system, but then created a tautology by saying "but modifying the original files is a bad idea anyway". It's only a bad idea if you've got a fragile system that depends on the exact file hash to reference critical metadata.

I think there's a reason that the XMP standard goes through great pains to embed metadata inside the image files themselves rather than resorting to external sidecar files, which is typically considered a last resort and a very poor alternative solution. If you use the image's own embedded metadata as the original and authoritative source, then you can rebuild your database from scratch automatically, no matter what you've done with your image files, or how you've folded, spindled, or mutilated them.

De-duplication is trivial if you use proper tools which compare visual features and don't rely on exact matches. Also, I don't consider the backup issue to be significant, because if you make a change to the file's metadata, then I want that file re-backed up, because I consider it to have been changed. However, since you're not changing the actual image data when you change metadata, any decent diff program should only store a small delta to represent the change.

Real Programmers think better when playing Adventure or Rogue.