Follow Slashdot blog updates by subscribing to our blog RSS feed


Forgot your password?

Comment: Re:No, you really havent avenged anything. (Score 5, Insightful) 1350

by BZ (#48754721) Attached to: Gunmen Kill 12, Wound 7 At French Magazine HQ

Unfortunately, Stephane Charbonnier is one of the people who were killed in this latest attack. I really hope you're right that Charlie Hebdo will keep going, but it's a lot easier to recover from physical damage to offices than it is from having the staff that make the magazine what it is killed. :(

Comment: Re:What do they spend the money on? (Score 1) 161

by BZ (#48438847) Attached to: Mozilla's 2013 Report: Revenue Up 1% To $314M; 90% From Google

Browsers are pretty complicated, yes. Things like low-latency high-performance VMs, hardware-accelerated video pipelines, plus the details, like actual HTML parsing, CSS layout, a network stack, and so forth. Also, what matters is not just the complication but how fast you're trying to change things, and people are adding new things (flexbox, more complicated CSS layout modes, mode DOM APIs, etc) faster than ever before.

But also, in addition to a browser Mozilla is working on FirefoxOS, which involves a whole separate bunch of developers, since it's not like the browser developers are writing things like the dialer app for FirefoxOS. Also, you need QA, not just developers.

And yes, Mozilla has 1000-ish employees, for what it's worth.

It's not just Mozilla. If I look at I see on the order of 600 committers with commits in the last month. And that's not even counting whoever is working on the non-open-source parts of Chrome. And not counting, again, QA and so forth.

And the worst part is, this is not a new development. Microsoft had over 1000 people working on IE6 in 1999, according to

So yes, browsers, complicated.

Comment: Re:Chrome Soon? FireFox on the other-hand... (Score 1) 67

by BZ (#48415035) Attached to: Chrome 39 Launches With 64-bit Version For Mac OS X and New Developer Features

The "let" keyword is not the same thing as "let blocks" and "let expressions".

The keyword looks like this:

    let x = 5;

and is in ES6. A let block or let expression (neither of which is in ES6) looks like this:

    let (x = 5) alert(x);

so that "x" is only in scope for the duration of the let block. It's syntactic sugar for:

    let x = 5;

Comment: Re:Chrome for Android and Safari for iOS? (Score 4, Informative) 74

by BZ (#48350785) Attached to: Mozilla Launches Browser Built For Developers

> So, they're running Android and iOS on your
> computer to run the same binaries as those
> platforms?

No. "They" are allowing you to connect your Android or iOS device to your computer (likely via USB), then debugging the on-device browser using the Firefox debugger running on your computer. That way you're debugging the thing you actually want to debug, but using the same developer tools you're using for your other debugging, and which therefore you're already familiar with.

Comment: Re:Nice Thing: systemctl status shows you log entr (Score 1) 928

by db48x (#48278887) Attached to: Ask Slashdot: Can You Say Something Nice About Systemd?

cgroups just enable systemd to collect all of the log entries from all of the processes belonging to a service without missing any*. When a sysvinit service daemonizes itself, the pid of the daemon isn't the same as the pid of the process that init actually created. This means that every service has to keep track of its own pid (in a pidfile), and that every service would have to report this information to syslog somehow.

Or you could add this capability to init, but then your new init is no longer doing just one thing and this is exactly the complaint most people have about systemd. Also, be careful not to change the existing interface with syslog, because then you're imposing your own views on everyone else, just like folks are saying about systemd.

Oh, and if your service logs to syslog, and it's being run under systemd, then systemd intercepts those and attaches all of the extra metadata before adding the log entry to the journal. You don't need to rewrite anything to be compatible with systemd. In fact, if you also have syslog installed then systemd will automatically send everything that gets logged to syslog as well; you get both at the same time and neither steps on the other.

I don't like systemd because it is systemd, I like it because it gives me a great way to query my logs and find out what my systems have been up to. If you give a sysvinit system the same capabilities then I will use those capabilities just as often.

* Well, cgroups also let systemd do a few other things not related to logging, such as setting resource limits on individual services, but I don't use them much myself.

Comment: Nice Thing: systemctl status shows you log entries (Score 5, Informative) 928

by db48x (#48277113) Attached to: Ask Slashdot: Can You Say Something Nice About Systemd?

If you have a service called 'foo', then 'systemctl status foo' not only shows you whether the service is running, it also shows you the last 10 log entries created by that service. This is great when the service failed; usually the error message will be right there.

How does it do this? Well, because all processes created by the service are in the same cgroup, all of the log messages (and even anything they print to stdout, which would have been lost otherwise) can easily be tagged with the service name (and a bunch of other metadata). You can use journalctl to query the journal for the logs from a specific service, and systemctl status does this for you.

Comment: What is the point? (Score 4, Insightful) 88

by asa (#48247381) Attached to: Firefox OS Coming To Raspberry Pi

What was the point of Firefox? IE was free and was a proven and already well-established browser. By your logic, we never should have built Firefox and the Web should have stalled with IE6 in 2002.

The world needs a truly open mobile OS as much as it needed a truly open browser a decade ago. Android is open in name only and Google is hurriedly moving its most lucrative components into closed proprietary services and apps that aren't a part of open source Android. iOS is as closed as everything Apple does. Windows is getting some nice HTML5 support for apps, but not nearly enough. There's clearly an opportunity for HTML5 apps to compete on mobile if someone can build a solid alternative platform to the monopolies and silos we're all stuck with today.

Comment: Re:Rockets suck (Score 2) 211

by db48x (#47795507) Attached to: Battle of the Heavy Lift Rockets

A rocket is a mass driver, and all of the "scifi" types of propulsion break the laws of physics one way or another. Space elevators would be pretty nice, but we still haven't found a material strong enough. Carbon nanotubes are the current hope, but we can't make them long enough yet; they'd have to be very long indeed to make a strong enough elevator. Short nanotubes have to be glued together and then you're down to the strength of the glue.

Comment: Re:Why does it take so long? (Score 5, Informative) 211

by db48x (#47795361) Attached to: Battle of the Heavy Lift Rockets

For the most part it's a difference in magnitude. The speeds the rockets achieve are much higher than any airplane, let alone car, ever manages. The thrust of the engines is stupendous, the liquid H2 and O2 fuels are cryogenic, the flame temperatures in the engine are extreme. In fact, they're so extreme that the engines use precise control over the flow fuel and oxidizer entering the engine to create a layer of cooler gasses around the inside of the engine nozzle, so that it doesn't melt or ablate entirely away. Everything has to work in vacuum and at ambient air pressure and at max Q during flight.

All of this and more adds up to a much harder design problem, much more stringent test requirements, much tighter manufacturing tolerances, etc. The principle is the same, however; any change to one component of a system may require changes to every other component.

The one thing that all forms of engineering from (whether software, civil, aerospace, or other) have in common is the management of complexity. The automotive engineer designs the engine mounts in your car to accept a wide range of engines, so that they can manufacture several variants of the same car with different engines without having to redesign every component. Similarly, SpaceX has greatly reduced their cost and risk by reducing the complexity of their rockets; one way they did this was to use the same engine for both the first and second stages of their rockets (the first stage simply uses more of them). Another way was to avoid cryogenic fuels; they have a lower specific impulse (fuel efficiency), but a much greater space efficiency (liquid H2 is very light; that orange tank is huge, and 80% of it is for the H2 tank) plus you avoid having to deal with cryogenic fuels, and the complicated materials engineering that goes into designing the tanks to hold them.

If you want to know more, MIT has some great lectures on the subject, even ones suitable for non-engineers. A good one is An Electrical Engineering View of a Mechanical Watch . The description of this lecture only touches on superficial matters; Sussman's real point is that the means of abstraction present in an engineered system can be applied to any other engineered system, and that it's only by designing the right abstractions that engineers make continual progress in designing newer and better systems. He states this directly in the first two minutes, which is quite handy. You might also check out the video lectures for the Structure and Interpretation of Computer Programs , the first lecture of which goes into much the same topics in the realm of software engineering.