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

 



Forgot your password?
typodupeerror

Slashdot videos: Now with more Slashdot!

  • View

  • Discuss

  • Share

We've improved Slashdot's video section; now you can view our video interviews, product close-ups and site visits with all the usual Slashdot options to comment, share, etc. No more walled garden! It's a work in progress -- we hope you'll check it out (Learn more about the recent updates).

×

Comment: Re:This should not be on the front page (Score 1) 201

by lgw (#49180279) Attached to: Study: Refactoring Doesn't Improve Code Quality

Tech debt is like credit card debt: the interest is a bitch. I worded for a while at one company that nearly folded because the time required for emergency bug fixes grew to, then past 100% of development time for the team. Horrible code doesn't just require more bug fixes in the first place, each change grows progressively more expensive and unsafe.

10k lines of shipped, production code is only of value if it's working bug free and without complaint. 10k lines of buggy code, that you have to add a week to any project that modifies in any way, that has negative value.

That being said, if the code is "cleaned up" by the same team that wrote it in the first place, you likely don't come out ahead. The only reason that company "nearly" folded was monuments willingness to hire about 10 senior guys like me to rescue what we could - 6 of them quite within a few weeks, but the 4 of us who stayed managed a few core fixes that kept it limping along for enough time to find a buyer for the company before it went under.

Comment: Re:Refactoring done right happens as you go (Score 1) 201

by TheRaven64 (#49179067) Attached to: Study: Refactoring Doesn't Improve Code Quality

Newton looked at the spectrum and saw that it contained six distinct colours to the human eye: red, orange, yellow, green, blue, purple. But his alchemist beliefs considered 7 to be a magic number and so wanted the spectrum to have seven colours. He decided that purple should be split into indigo and violet to reflect this, but didn't split any of the others (even where the difference is at least as pronounced) because it contradicted his mystical thinking.

If even Newton 'One of the smartest men to ever live' couldn't manage to keep his science separate from his mysticism, what hope do you think other religious people have?

Comment: Re:Uh, what? (Score 1) 83

by TheRaven64 (#49179029) Attached to: Khronos Group Announces Vulkan To Compete Against DirectX 12

This is a confusion in terms. Personally I blame Sun. An interpreter IS a form of compiler, it is the term used to refer compilation at run time

No, sorry. A compiler is, in theoretical terms, a partial application of an interpreter to a program. In practical terms, a compiler transforms the input into some other form, which is then executed, whereas an interpreter executes the input directly. JIT compilation is still compilation. A just-in-time compiler is the term given to compilers that produce their output just before it is executed, as opposed to ahead-of-time (AoT) compilers, which produce it all up front, even if some paths are never executed.

There's some complication, because most environments that do JIT compilation also include interpreters that gather profiling information to incorporate into the JIT compiled code and to improve startup times. JavaScript implementations, in particular, often spend a reasonable amount of time in the interpreter because most web pages contain a load of JavaScript that's only run one or two times and the time taken to compile it is more than the time saved to execute it. Some have multiple compilers - JavaScriptCore from the WebKit project has an interpreter and three different JIT compilers that have different points in the space between compilation time and execution time - they'll recompile hot paths multiple times as they're executed more, with more optimisation each time. The key difference between the interpreter and compilers here is that the compilers are each invoked once on a segment of code and it's then executed without involving the compiler. The interpreter is involved every time the bytecode is run. It reads a bytecode and then jumps to the segment of interpreter code that executes it and then returns. The compiler takes a sequence of bytecodes, generates a fragment of native code to execute them, and then this fragment is combined with other fragments to produce a running program.

The shader compilers in drivers, however, are not JIT compilers. They are AoT compilers that are invoked at load time - often at install time. They don't compile the code just before it's run, they typically compile it once and cache the result for multiple invocations of the program. Some drivers (Windows and Android come to mind) have a mechanism that allows you to do the compilation at install time. Unlike most JIT environments, graphics drivers don't tend to use run-time profiling for optimisation, the bytecode exists solely for the purpose of providing an ISA-neutral distribution format.

Comment: Re:File extensions? (Score 1) 493

by TheRaven64 (#49178979) Attached to: Why We Should Stop Hiding File-Name Extensions

Ugh, trust MS to fuck up a reasonable UI choice. On OS X, by default, it only happens for programs and requires you to close the dialog and then bring up the context menu for the program while holding a modifier key. You don't know how to do it unless you've actually read all of the way to the end of the dialog, so it generally protects people.

There are some interesting corner cases though, such as shell scripts. The file manager doesn't know if the thing that you tell it to open a shell script with is a text editor or a script interpreter, so may warn spuriously.

Comment: Re:This should not be on the front page (Score 3, Interesting) 201

by lgw (#49178047) Attached to: Study: Refactoring Doesn't Improve Code Quality

10,000 line functions are shockingly common in industry. Shit grows over time, and is so poorly written that you can't safely refactor it, and management lacks the balls to let you clean it up, so it just festers and festers.

I hear PayPal had 90% of their processing business logic in a single, multi-million-line class! Thankfully, I don't know that one first hand.

Comment: Re:Yeah.... (Score 1) 100

Government will fuck you sideways for a laugh, then shoot your dog and seize your house. I'll take Google's arbitrary of government's malice any day.

Whatever your perspective on that, someone, somewhere has to rank search results. If Google becomes capricious, people will stop using them (I haven't used them to search in 5+ years). If some government controls search results, it will get worse every year, and never ever get fixed.

Movies

Gritty 'Power Rangers' Short Is Not Fair Use 234

Posted by timothy
from the wait-til-you-see-how-scully-revives-walter-white dept.
Bennett Haselton writes: Vimeo and Youtube are pressured to remove a dark, fan-made "Power Rangers" short film; Vimeo capitulated, while Youtube has so far left it up. I'm generally against the overreach of copyright law, but in this case, how could anyone argue the short film doesn't violate the rights of the franchise creator? And should Vimeo and Youtube clarify their policies on the unauthorized use of copyrighted characters? Read on for the rest.

Comment: Re:File extensions? (Score 2) 493

by TheRaven64 (#49172059) Attached to: Why We Should Stop Hiding File-Name Extensions

There are two problems. The first is that the OS allows you to run porn.jpg.exe having downloaded it from some random place on the 'net. I don't think that either OS X or Windows do: they'll both pop up a thing saying 'You are trying to run a program downloaded from the Internet, do you really want to?', which isn't normally something that happens when people try to open a file so ought to trigger them to avoid it (if it doesn't, then seeing the .exe extension probably won't either).

The second is that the OS allows programs and other file types to set icons at all before their first run. This also leads to confused deputy-like attacks where you think you're opening a file with one program but are actually opening it with something that will interpret it as code. The solution to this is probably to have programs keep their generic program icon until after their first run. If you double click on something that has a generic program icon, then you probably intend to run it...

Comment: Uh, what? (Score 2) 83

by TheRaven64 (#49171381) Attached to: Khronos Group Announces Vulkan To Compete Against DirectX 12

an LLVM-based bytecode for its shading language to remove the need for a compiler from the graphics drivers

This removes the need for a shader language parser in the graphics driver. It still needs a compiler, unless you think the GPU is going to natively execute the bytecode. If you remove the compiler from a modern GPU driver, then there's very little left...

One can't proceed from the informal to the formal by formal means.

Working...