Follow Slashdot stories on Twitter


Forgot your password?
DEAL: For $25 - Add A Second Phone Number To Your Smartphone for life! Use promo code SLASHDOT25. Also, Slashdot's Facebook page has a chat bot now. Message it for stories and more. Check out the new SourceForge HTML5 Internet speed test! ×

Comment All those little changes add up... (Score 4, Insightful) 385

...and they usually add up to a giant, steaming pile of crap.

I worked on a project once that did its best to implement all user requests in its product. By the time I started working on it, there were at least seven different ways to do any basic function, because different users thought it would be great if they each had their own way of doing the same damn thing.

The result? The software was bloated, and damned near impossible to adequately test. The permutations possible to do the exact same task were staggering. This resulted in a lot of weird bugs that weren't found during testing. It made the software brittle, and in the end the same users that wanted all these different ways of doing the same task (multiplied by a few dozen different tasks I might add) weren't happy with the resulting complexity. All that stuff that users thought would be simple and a good idea, in combination, sucked.

Sometimes it's a developers job to say no. It can be very difficult to decide when that time is, but projects that never say no are doomed to failure. Sometimes an over-arching vision as to how the product should work needs to win out over every single good idea some random user has.

I sometimes work with physical tools. And there are times when I'm using a wrench, but need to put it down and start using a hammer. I don't think it's unreasonable of the tool manufacturer to reject it when I suggest to them it would be great if they welded a hammer to all of their wrenches so I didn't have to put one tool down to use the other.


Comment Re:Nice job . . . (Score 1) 421

The problem with that is: what's your house's IP address? Thanks to DHCP, no one knows. It can change at any time. So you'd have to use some kind of dynamic DNS service to get around that, and now you're talking about it being too difficult for the average idiot^Wuser to set up and use.

Or you need IPv6. The way the devices would have a real address, and your phone/mobile device could easily interrogate and store the addresses of every device on your local network using ZeroConf. As the resulting addresses would be fully routable on the public internet (assuming your home gateway is firewall setup to passthrough to those addresses on whatever port they use for command and control, which can be done automatically via NAT-PMP or UPNP). You wouldn't even need a server.

Of course, this is a very simplified view -- you'd need security beyond just the home firewall, of course -- the command and control should be 100% encrypted via a per-device key to keep out hackers -- but this is really the model IoT devices need to eventually get to. You wouldn't need any sort of centralized cloud service (although this model also wouldn't prevent one for people who wanted, say, remote web access to their devices from having one. It could be run as a third-party service, or even integrated into something like Facebook, for example); just documentation on the communications command and control protocol(s), and it would be easy for end-users to setup. IPv6 will be a very significant enabling technology for IoT to really take off -- once every device can have its own stable, globally routable address, you won't need to worry about centralized cloud services anymore.


Comment Re:VMWARE is the future? (Score 1) 360

What's easier to backup and restore? Hint a virtual machine image.

Run your tooling inside a Docker container instead. Processes run as local processes without the overhead of virtualization, and the container images can be backed up by pushing them to a repository in a single command. On top of that, Docker container images are way smaller than comparable VM images, as they don't need to store an entire OS as part of the image. In fact, as Docker images are created in layers, two images that share the same base OS layers don't need to store that base OS image layer twice -- in effect, your images are just the diffs from whatever image they are generated from. Way smaller, easier, and faster to backup than a giant VM image.


Comment The absolute best. (Score 1) 360

The absolute best environment? Sitting on my couch, in my pyjamas, with easy access to my refrigerator and tunes.

However, if I catch one of your developers on my couch wearing my pyjamas and helping themselves to my 'fridge while listening to my tunes, there's going to be trouble.

Ultimately, as a developer my preference is to a) have the entire power of the system in my hands, b) not be tied down by local system restrictions, and c) not being tied to specific developer tools, especially an IDE.

Breaking those down:

  • Entire power of the system: I require my own system that doesn't share any resources with anyone else. It has to be a real desktop or laptop. No thin client of any sort. If I'm out in the woods and away from any form of networking and need to build the product (or some subset), I should be able to do so. If the product relies on or is expected to be used in any sort of cloud technologies, then the ability to generate and use cloud instances is certainly a must, however they should be available alongside and via a real machine, and not be the sole development environment.
  • Not be tied down by local system restrictions: if IT wants to provide a system so tied down that my local user doesn't have sufficient privileges to install device drivers, tools, or anything else I may need to work, you need to verbally smack them around. That may work for Sales and Marketing, but your most technical people need to have full access to their systems.
  • Not being tied to specific developer tools: All of the most pain-in-the-butt projects I've ever worked on are those that rely on a specific IDE to build. And this has always wound up being a bad idea. Projects should be buildable without any sort of IDE whatsoever. Use Gradle or Maven or Ant or a Makefile to build your projects. Pretty much every modern IDE can work with these systems. Your developers can pick and choose what IDE and tools they want to use this way -- they should just be able to just 'git clone' or 'svn checkout' and build from the command line. This also tends to mean that your Continuous Integration system will build the product in exactly the same way as developer systems -- which is a good thing. Anytime I've joined a project that is so highly tied to a specific IDE, the instructions and time needed to on-board new developers is always way too high (I've seen documents with over 20 pages just on how to setup your IDE properly to build a specific project! I've also seen bugs in the code that wound up being due to differences in the way code was built in the IDE vs. how it was built on the nightly build server). Decouple how the code is built from what tools are used to write the code whenever and wherever possible, and then I'll pick the local tools that work best for me to write that code.

TL;DR version: give me a lot of computing power I can carry around with me, don't tie me down to specific coding tools, and then get out of my way. And keep your developers off my couch, and out of my pyjamas and 'fridge.


Comment Re:Wait a minute... (Score 1) 265

God forbid your daughter consumes paid content without you having to pay a dime for it, paps, while people already paid over Patreon say things you disagree with "for free".

My daughter has zero buying power. She doesn't understand the ads. And what's worse, the ads that typically come up aren't even close to age appropriate. This isn't a case of Youtube showing her ads for toys she might ask me for -- they're ads for inappropriate things. They will never generate a sale for the advertiser.

Yet, at the same time, groups that Google (not I) determines to be disagreeable will now have an ad-free experience. I'd actually rather that if they insist on showing my daughter an ad for haemorrhoid cream when she wants to watch "Wheels on the Bus", that people watching "disagreeable" videos should have to watch them too.


Comment Re:Wait a minute... (Score 2) 265

You use bandwidth without paying for it.

I'm not complaining about the need for ads; it's that they're effectively going to be exempting you from seeing advertising if you're watching terrorist propaganda, or racist rants, or two girls one cup, or whatever else gets deemed "inappropriate", while at the same time happily showing my 6 year old daughter ads for erectile dysfunction medication when see wants to watch "Wheels on the Bus".

If you had google music or youtube red there wouldn't be ads.

Which would be fine if Youtube Red were available in my country. But it isn't. I'm not sure about Google Music -- it's not a service I have need of anyway.

I do agree that it's messed up. Even the dumbest Americans should be capable of realizing that running ads during a youtube video doesn't equal approving of the content. But we didn't have so many idiots, we wouldn't have the problems we do today.

Believe it or not, advertisers are human beings too. And while they don't want to be seen endorsing or being associated with the types of videos the article discusses (bad optics), at the same time they also don't want the people who make these videos to benefit from their advertising dollars either, just as (I presume) you or I wouldn't donate money to a Jihadist group, or NAMBLA, or the KKK, etc. So I'm happy to give the advertisers some slack on this -- most decent people, advertisers or not, don't want to see their money going to such groups, even if everyone else were fine with it.


Comment Wait a minute... (Score 5, Interesting) 265

American companies swiftly followed, even after Google promised Tuesday to work harder to block ads on "hateful, offensive and derogatory" videos.

So let me get this straight -- racists, misogynists, and terrorists are going to benefit from an ad-free experience, and yet my 6 year old daughter has to put up with ads for mortgages and makeup and other adult stuff when she wants to watch kids videos? WTF did we ever do to you Google that dirtbags get an out from Youtube ads, but the rest of us have to suffer?


Comment Well, you could be _that_ guy... (Score 4, Insightful) 456

You could be that guy. You know the one: the one who tells all his friends "This is what I use. Use that to contact me, or e-mail me instead."

For the most part, I'm that guy. I use one IM program for personal use, and another for professional use (due to corporate mandate), and that's it. The only exception to this is as I do have a Facebook account, if someone wants to message me there I'll accept these messages as well -- when I'm at my computer and logged into the web interface. I have no intention of installing their Messenger client on my mobile devices.

Then again, I don't feel the need to have people messaging me all day. My messaging contacts list consists of about four immediate family members, and that's it. Guess I'm just not social enough for "social media" and IM (for that matter, I don't own a cell phone either. I go out not to be disturbed by IM and phone calls -- why would I take the annoyance with me?)


Comment Re:Really? To lower pollution? (Score 1) 119 the fact that electricity to charge the cars likely comes from burning fossil fuels anyway...

That depends entirely on there you live. In the jurisdiction I live in, 87% of all electricity is hydroelectric, with most of the rest being biomass, wind, and a very small amount of natural gas. We have no coal or oil generation whatsoever. In such an environment, an electric vehicle makes a lot of sense.

If where you live the majority of your electricity is produced by coal, driving an electric vehicle isn't necessarily going to add to emissions at the plant level. Coal plants are typically run as base-load plants; that is they run at 100% all the time to supply the minimum needed power load for your area, regardless of what's plugged in. Plugging in your electric vehicle isn't going to increase emissions; they're already as bad as they're going to get. The only way electric vehicles are going to cause more plant-level air pollution from base-load coal is if enough of them are added to the roads that there is a need to increase the base load, and your local utility is stupid/evil and builds out more fossil fuel capacity to meet the demand. And if that's the case, you should be getting on the case of your local political representatives to ensure local utilities are forced to build out more renewable infrastructure as demand increases.


Comment The problem... (Score 5, Insightful) 383

The problem with something like this always comes down to the fact that applications have to be coded to the lowest-common denominator of functionality of all platforms. That's the situation both Java and Web apps tend to find themselves in.

Does your OS have some cool notifications subsystem that other platforms don't have? The universal app can't use it (or if it does only for those platforms that support it, it's hardly running identically on every platform anymore). Or how about if your hardware has something fancy like Apple's new Touch Bar? Can't use that either.

This is the problem we always see with desktop Java applications. They can typically do well with the basics, but if you want to tie-in to some stand-out feature that isn't available on every platform, you're generally SOL (unless you want to rely on JNI, and perhaps filling in missing functionality on other platforms with custom native libraries I suppose -- but again, that's not exactly cross-platform code, and requires a ton more work.). With web apps we see a similar issue; you're constrained by what the various standards allow, and can only escape that with plug-ins.

We also see this in the video game console world. Sony did some really cool things with the PlayStation 4, like adding the touchpad to the controller, the programmable-colour LED array on the back of each controller, and the second screen functionality that allows you to use a tablet or phone as a wireless secondary information display. Unfortunately, most cross-platform games tend to ignore these features (to varying degrees), as they're simply not available on the PC or Xbox One.

In the world you describe, there really wouldn't be any ability for anyone to stand above the crowd with new special OS or even hardware features (beyond maybe some low-level performance tweaks), because as soon as you did so, you would be incompatible, and either nobody would use it, or you'd have to permit all of your competitors to also implement your new feature.

This reminds me somewhat of the following example: OS/2 ran Windows 3.x programs better than Windows 3.x did. It could pre-emptively multitask Windows 3.1 applications at a time when Windows itself couldn't, and a single errant Windows application could bring down the whole system, or fail to yield() and simply take up all the processing time for itself. Because of this, too many big development companies simply targeted the lowest-common denominator and wrote Windows 3.1 code for use on OS/2 (WordPerfect is a great example -- they went out of their way to tout OS/2 compatibility, but in reality their OS/2 version was the Windows 3.1 version with some OS/2 templates and WPS integration tools slapped on top of it). And we all know what happened to OS/2 (or I suppose I presume we all know -- I guess you could be 16 or 17 years old and not know what happened back then. When did I start getting so damned old???)


Comment Re:I could not agree more (Score 1) 1001

And if you spend even a minute thinking about whether you application fits one of those cases, the odds are good you've just wasted a minute, because the standard sort routine you have available is bound to perform well enough even if it's not "preferable". Premature optimization, you know?

It's hardly premature optimization if you're working in a memory-constrained embedded environment. Libraries are often not practical in such environments.

And you know, that code has *subroutine calls* to a "Swap" routine. That tosses aside any hypothetical performance advantage-- which you were crazy to worry about in the first place.

"swap" could be a macro, such as a C function-like macro which gets converted to inline code. Or the swap procedure could be flagged as "inline". I'd hardly be making criticisms if you don't know this.


Comment Re:TANSTAAFL (Score 3, Insightful) 207

The point is, the actors and actresses feel the need to make way too much and anyone in economics would tell you they are trying to optimize their profit. The problem with that is it inherently creates people who are not willing to pay the market rate for the content and since it is "free" to copy it - they do.

This is one area I feel the entertainment industry just doesn't get it. The general attitude often seems to be "I cost us X to make this thing, therefore it is worth X".

Unfortunately, that's not how any other markets work. Things are only worth what people are willing to pay for them. This goes for virtually anything that is bought and sold -- toys, comic books, computers, cars, stocks, collector coins, individual pieces of art, gold -- the price is based completely off what people are willing to pay for an item, and has little or nothing to do with how much it cost to produce. This is actually a good thing -- items with a high perceived value can command higher prices and reap more profits, while at the same time there is a push to find ways to lower prices to enhance the perceived value vs. price ratio.

I view media piracy along these lines. It's part of the markets way of telling the media companies that the perceived value of what they produce is lower for many people than what they charge.

Now admittedly in the last few years better pricing models with (legal) streaming services like Netflix have helped to improve the situation for many consumers. TV in particular seems to have done a really good job of coming up with ways of putting content online for free (TV shows are highly advertising supported anyway). But other parts of the industry seem to be fixated upon fixed pricing, especially for new media, that is above the value much of the population would put on it. People willing pay for things when they perceive the value as being more than the price; but when you price things above that perceived value line, you just drive piracy. It doesn't matter how much something cost to make -- if you want to charge more than the market is willing to pay, people simply aren't going to pay.


Comment Re:How can this possibly work? (Score 1) 301

If these mice have all male offspring, why won't they be out-bred by the mice that have females too? Why would a non-advantageous mouse gene be passed down and take over? Wouldn't natural selection kill off the genetically modified mice?

The answer to your first question answers your entire set of questions.

The basic driving force of evolution is reproduction. Fitter animals should produce more and fitter offspring, whereas less fit animals will either produce no offspring, or will produce less-fit offspring. That is one of the most basic premises of evolution.

The issue here then is "fitness"[0], and whether or not the modified mice will have sufficient fitness to a) reproduce, and b) introduce their genes into the next generation.

The modification only changes the outcome of birth -- all mice fathered by the modified mice will exhibit the same modification, and will be born male. It doesn't impact their ability to reproduce, or their ability to fill their ecological niche. The mice will be at no reproductive disadvantage when compared to non-modified male mice, in that they will be just as likely to survive to reproduce, and will not have a shortened lifespan that causes them to reproduce any less than a non-modified male. Thus they won't be out-bred; a female mouse isn't going to have any way to distinguish (at an evolutionary level) between a modified and non-modified male. Now if the modified males also glowed bright green and failed to attract female mates, then you'd have a situation where the modified males would be at a disadvantage, however, that isn't the case here.

Not only will there will be no evolutionary disadvantage to the modified males in terms of reproduction, over time they'll actually have the advantage. Assuming litter sizes average out the same, ALL the offspring of modified males will also be modified males. Let's call that average M. The offspring of unmodified males will be mixed male and female; the average number of unmodified male mice offspring will be M/2 (as half will be male, half female). The modified mouse will have double the male offspring of the unmodified mouse. The population of modified male mice will increase linearly, whereas the population of unmodified mice will (at least initially) be relatively stable.

Over a longer time period, female mice will be more and more likely to mate with modified male mice, as they will be more available. I essence, this gene modification hacks evolution by making the modified mice MORE fit than the unmodified mice, in that their offspring will be more competitive in terms of mating with females, due to sheer numbers. As females die and are replaced with fewer and fewer females, and as the modified male population continues to soar, you're eventually going to get to a point where the only available males in a community to mate with the few remaining females is going to be modified males, who will only produce male offspring. Those last remaining females will eventually die off, and with no new females within a given local population, no further reproduction can occur, at which point the population of remaining males eventually dies off.

(I do note a "local population", as this only works within populations that reproduce together. Geographic or other divisions in reproductive populations may cause certain islands of mice to continue unaffected if there isn't a critical mass of modified males. So if the country mice and city mice don't reproduce together, one or the other may be unaffected if the modified mice aren't artificially introduced).

All of which would make for an interesting computer simulation. I may have to get on that this weekend.

All that said, it will be interesting to see what behavioural changes may be introduced in newer generations as the number of males begins to strongly outnumber the females, and opportunities for the males to reproduce decreases. Will male mice become more territorial? Mouse combat to the death for access to females? If they go ahead with this plan, I hope there is funding somewhere to study the behavioural changes as time progresses.



[0] - In popular culture, the idea of "Darwinian fitness" is often confused with strength, physical fitness, or lifespan; the concept is really about the ability of an individual to pass on its genes to as many individuals as possible by fitting best into a suitable ecological niche.

Slashdot Top Deals

When it is incorrect, it is, at least *authoritatively* incorrect. -- Hitchiker's Guide To The Galaxy