Become a fan of Slashdot on Facebook


Forgot your password?

Comment: Re:C++ Template Syntax (Score 1) 414

by rdnetto (#49788063) Attached to: The Reason For Java's Staying Power: It's Easy To Read

The syntax isn't what makes C++ templates hard. They're hard because they're templates.

However, they're powerful because of it. There's no "generics meta programming" because generics don't offer any sort of comparable power. That said, the reason template meta programming is so useful is because C++ lacks reflection.

I disagree. Take a look at D templates (and compile-time function evaluation) - that syntax will be easily readable to anyone familiar with a C family language, because it's the same syntax (just with 'static' or 'pure' peppered everywhere).

C++ template meta-programming is hard for two reasons. The first is that templates use a syntax of their own, which is one more thing to learn. The second is that the template language is functional, which is quite alien to most C++ programmers. D uses native D syntax to do the same thing (with the requirement that functions be pure), and that's much easier to read.

Comment: Re: Do most of the work? (Score 1) 441

by rdnetto (#49766405) Attached to: Choosing the Right IDE

Seriously IDEs are great! I don't understand people on Slashdot who think if its not hard, its not worthy!

That's a bit of a strawman. IMO, the real issue is that people see it as a false dichotomy between a good text editor (Vim, Emacs, etc.) and a kitchen sink of tools attached to something little better than Notepad with syntax highlighting + autocompletion (e.g. Visual Studio). In that comparison, the text editors win because the vast majority of programming comes down to text editing (and possibly thinking, but you don't need a computer for that), and typical IDEs are pretty mediocre at that.

Note that it's a false dichotomy - you can get the benefits of both, either by integrating a proper text editor into your IDE (e.g. Eclim adds Vim to Eclipse) or by adding many plugins to your text editor - I use Vim with 53 plugins, and I have every feature on your list (although hovering over a variable is replaced with typing a shortcut while the cursor is over it). You only need about 10 to get most of the benefits though, especially if you only work with one or two languages.

Comment: Re:Let's hope that Plasma 4 is kept as an alternat (Score 1) 60

by rdnetto (#49761993) Attached to: KDE Plasma 5 Becomes the Default Desktop of OpenSUSE Tumbleweed

- Plasma 4 had the best systray in all the linux ecosystem, allowing KDE native, "new" Unity-style indicators, and old tray icons. Now neither of those work in Plasma 5, leaving empty space or not showing at all. Even Unity has ways to show old tray icons such as Pidgin. When asking about it, was instructed to install stuff like stalonetray...are we in FVWM now?

I've got a pretty good idea why this is happening. The old API for tray icons didn't handle the case where you had multiple systrays correctly (e.g. dual monitors) - the icon would only appear on one of them. The new API fixes this, but as you have noticed not everything supports it. The best solution is probably for someone to go around submitting patches to all the projects using the old API, but that's obviously going to take some time...

Comment: Re: SystemD added? (Score 1) 494

by rdnetto (#49588047) Attached to: Ubuntu 15.04 Released, First Version To Feature systemd

The overarching problem is that systemd can decide to rearrange the boot sequence at any moment.

If a admin has set a sequence to be XYZ they have a very good reason for doing so. So why should the init suddenly decide that YZX is the way to go?

Because parallelism is good for performance, or so the argument goes.

The real issue is that there's no way to reproduce that partial-ordering. IMO, there should be some kind of debug facility to restrict it to sequential startup, then try all possible orders. (Yes, factorial complexity is never fun, but at least it would provide a means to debug this kind of problem. Making open source software easy to debug (or at least capture logs for) is hugely important, because that's where most of your drive-by patches come from.)

Comment: Re:Time to start masculanism movement (Score 1) 599

Time to start masculanism movement, because anti-male gender discrimination hit mainstream.

It exists, but isn't particularly well known.

IMO, feminism and masculinism are both inherently flawed, in that they only focus on one set of symptoms and don't try to fix the underlying issues. Both genders have issues, but the moment you try to draw attention to this people tend to take it as a competition / zero sum game. The real solution is something like egalitarianism, where the focus is on not discriminating against people regardless of their gender, etc.

Comment: Re:Here we go again (Score 1) 64

by rdnetto (#49517033) Attached to: KDE Plasma 5.3 Beta Brings Lot of Improvements

KDE 4 broke a lot of the functions I used on 3 (like, for instance, email. KMail was great, now I'm stuck with the inferior but functional Thunderbird). And they never did fix them. Still broken and worse with every revision.

So I'm dreading the day when the only supported KDE will be the still-not-fully-functional version 5. What have they broken now, never to fix?

Speaking as someone who only started using KDE after 4 had stabilized, what did they break in Kmail?

Comment: Re:HTTP.SYS? (Score 1) 119

by rdnetto (#49509093) Attached to: Remote Code Execution Vulnerability Found In Windows HTTP Stack

The reasons are clearly described here

I read through that and didn't see anything about "We're all idiots".

Their reasons involve context switching and interprocess communications. Context switching has got to happen (unless they run IE in kernel space) so just get it over with. Interproces communication has always been a weakness in Microsoft systems. Since day one. Multitasking OSs are here, folks. Get over DOS.

If your context switches are too slow, the correct solution is to fix the kernel or add syscalls to reduce the overhead (see sibling post). Moving parts of your application into kernel-space is bad design no matter how you look at it. (Besides, wasn't it only a few years ago they had a vulnerability in their kernel-mode font driver?)

Comment: Re:Never consumer ready (Score 1) 229

by rdnetto (#49483453) Attached to: 220TB Tapes Show Tape Storage Still Has a Long Future

It's usually cheaper to use consumer drives and some better software to manage the inevitable failure than to use enterprise drives.

There is NO difference in reliability between "consumer" and "enterprise" drives. The only reason to buy enterprise drives is because you have excess money that you are too stupid to keep. All the big storage companies use consumer grade drives, and several of them, including Google and Backblaze, have published data that clearly show there is no reliability or performance reason to buy "enterprise" drives. They are a scam.

IIRC, there is one difference: how they respond to read errors. Consumer drives will keep trying to maximise the likelihood of a successful read, while the enterprise ones will just fail immediately since they're expected to be RAID, so there's another copy of the data and taking longer to reply just kills the throughput.

Comment: Re:What the hell is going on a the USPTO? (Score 1) 58

by rdnetto (#49483429) Attached to: After EFF Effort, Infamous "Podcasting Patent" Invalidated

Serious question: how does one meaningfully distinguish between hardware and software patents? As I understand it, software is supposed to be unpatentable because it is just math, but the same could also be said of Widlar's negative feedback amplifier, since the mathemathical models by which transistors function were well established at that point.

The best argument I've heard against software patents is that they inhibit interoperability (e.g. the MPEG patents), but that's not specific to software - the same is true of Apple's magsafe connector.

Comment: Re:Way too many problems (Score 1) 74

by rdnetto (#49481783) Attached to: 1+ Year Running Arch Linux On a Lenovo Yoga 2 Chronicled

OK, so let's see. Other than the network card, mouse, 2D graphics, sound, CPU, 3D graphics, battery and the fact that normal usage melted it, it works awesome. I think I'll stick with Windows 10 TP on my laptop, where I've only had minor network issues requiring a reboot to get it back sometimes.

To be fair, Arch is a distro for people who are fine with things breaking all the time, which is what you'd expect of a bleeding edge rolling release distro. A review of someone who spent a year running Ubuntu on their laptop would be far more realistic in terms of what a casual user would experience.

Comment: Re:Sounds good to me. (Score 1) 892

If they offer average pay, they'll get average employees. If they offer above average pay, they miss out on exceptional employees. And if they offer exceptional pay, they'll likely go bankrupt as most of their employees will not be exceptional.

Negotiation exists because there's no objective way to evaluate the value of the employee to a company before they've been hired. If someone can get twice the work done (and can demonstrate this), they can justifiably demand twice the pay. Of course, the subjectivity is a double-edged sword, because it means that individual prejudices can affect the hiring process.

One way to solve this problem is to handle all negotiation through a well-defined algorithm. The would-be employee shouldn't even interact with a person for this part of the process, just with a webpage. Strong AI is obviously impractical, but you could probably do a pretty good job of predicting performance if you managed to trawl a big enough dataset for some key statistics.

Another approach is what this poster suggested, where pay (above a base salary) is determined by one's peers. In that case, the individual prejudices are averaged (which ideally negates them), and the valuation of the employee is done by their peers. You'd have to be very careful about how you implemented it though, as you run the risk of creating some major social/political problems with that approach.

Comment: Re:Like Coca Cola, git is the real thing (Score 1) 203

by rdnetto (#49461561) Attached to: 10 Years of Git: An Interview With Linus Torvalds

git pull --rebase origin master

There might possibly be no other command in the history of software development that has saved more man-hours than this gem.

Except when you forget the --rebase and now have hours of work fixing your tree.

You could avoid that by setting master.rebase for that repo, or setting branch.autosetuprebase=always globally. But even if you did accidentally merge instead of rebasing, the merge commit will contain the hashes of both parents, so it's simple enough to reset the branch.

Comment: Re:Mono practically useless (Score 1) 223

by rdnetto (#49455135) Attached to: Mono 4 Released, First Version To Adopt Microsoft Code

So use a different GUI library. WPF is pretty bad even when compared to WinForms. The Qt libraries are cross-platform, have existing bindings for C#, and are an absolute pleasure to work with. IMO, they blow the pants of WPF.

The value in Microsoft open sourcing .NET isn't in running existing Windows programs under Linux - they probably wouldn't work without WINE anyway, due to P/Invoke calls or lazy programming like concatenating backslashes instead of using Path.Combine(). The value is in being able to use C# to write new, cross-platform programs. And while Mono did have implementations of them, they didn't necessarily work the same way. I gave up on it completely after a particularly annoying bug prevented .NET binaries from running as a less privileged user.

C# is an excellent language, and arguably the best-positioned language in its niche - C++ has too much cruft, Java is struggling to catch up (and seems to lack a decent GUI library), D's userbase and funding is close to non-existent, and Objective-C/Swift aren't used outside of Macs. All the other languages are too immature, or lack the requisite feature set, to be competitors.

The solution of this problem is trivial and is left as an exercise for the reader.