I work for a respectable company and all our code is Apache licensed (open source) and publicly available. Anyone can see my code.
Let's not jump to conclusions and assume that OP is breaking the law.
That said, my advice to OP is to contribute code constantly to open source and free software projects. This is very impressive to employers for various reasons: 1) it displays your passion-driven, good quality code, in projects that you yourself chose, 2) it shows your delight in code itself, rather than profit, 3) it proves you're ambitious enough to work after hours to further your career.
I hire people, and let me tell you that people listing several open source contributions (including their own independent open source projecs) always jump to the top of the stack.
Despite its name the Linux Foundation has no direct relationship to Linux. It's yet another open source foundation, like Apache and Eclipse, and is very business-friendly and business-oriented. Indeed most of its projects have open source licenses other than GPL.
Which isn't to say that using a Mac in this case isn't ironic. But what's more ironic is the Linux Foundation's name.
Google is not obstructing the Nazis from speaking. However, Google refuses to help Nazis speak by providing easy access via Google Play to that speech.
Nazis can continue to speak. The Gab app can continue to exist. But the First Amendment doesn't require anyone to assist them (and the First Amendment doesn't require anyone to listen to that speech). A Nazi can ask for a permit to rally, and the First Amendment ensures that it can't be denied for any political reason. But the First Amendment doesn't say that anyone has to advertise the rally, attend the rally, provide food and water, etc.
It seems that you are suggesting that because of Google's important role as a gatekeeper of mobile apps it would be in its best interest to provide easy access to all platforms. That has nothing to do with the First Amendment, though. It has to do with whether we should trust Google to be such a gatekeeper, or such a monopolistic one, etc. (I'll point out that Android allows you to side-load apps that are not on Play, while iOS does not.) Can we keep this argument rational and these issues separate, please?
Wow, people commenting seem to have so little information about what this actually is. (Canonical is partly to blame for, as usual, doing a poor job at messaging.)
This is not replacing the Debian build system or Debian packages. Ubuntu will continue to be based on Debian.
This is an additional packaging system that makes it exceptionally easy to more reliably distribute Linux applications and services. Underneath it uses LXC (also originally developed at Canonical), the same jail-like technology that powers Docker and LXD. It basically lets the application get its own "view" of the operating system's filesystem (using AuFS) so that you can distribute required dependencies with the application. Of course it can't override the Linux kernel or other important system services, but it actually solves a major hurdle in distributing software across various OS library baselines. Until now, we've been using PPAs or other external Debian repositories to distribute software -- you can still use them if you prefer, but these are tied to the baseline and need constant tweaking to the packagers. A Snappy package made now should be able to run years from now without a problem. The Snapcraft packaging tool is very easy to use and does so much of the hard work for you: you can even just give it a git repository URL, and it will pull and build and package. I see it being very useful for something like Steam.
Also, like Docker, Snappy uses SHA-signed diffs, so package updates will be very fast. It also makes it trivial to switch between versions.
The announcement is that Ubuntu 16.04 will come with Snappy built in, so you can immediately install Snappy packages if you want. You don't have to.
There is also a new flavor of Ubuntu called "Snappy Ubuntu Core" in which the base OS itself is a Snappy image, so that it gets updates the same way as the other packages, and in the same way you can switch between versions. It is useful for various special use cases. For example, a phone OS will have an easier and safer job upgrading while letting the user trivially revert back if things break. It is not the official Ubuntu recommended for all users, but rather a building block for developers to create specialized Ubuntu-and-Snappy-based distributions.
How can you be so wrong?! It tells you exactly what it is on the page you linked: an alternative to Java that runs on the JVM. Why "assume" things when you can just spend two minutes reading about it/
I feel your pain. But: I run the complete Office 2010 suite using CrossOver without a hitch. It doesn't quite feel "native," but it works well enough for all my needs. CrossOver even creates links so that, for example, when you double-click on.docx documents, they will open up with Word 2010.
It actually works so well that I have a terminal-server-based office (based on LTSP) running Word 2010 over CrossOver.
This is not a great solution (you will have to buy a license from Microsoft), but it is a solution to allow my setup to stay in Linux and still collaborate with others.
Check out APISpark (made by the Restlet team). It lets you publish and manage the API on the web, supports a lot of standards, and also has tools to actually help you create clients and server implementations.
If "mainstream productivity" refers to word processing and web browsing, you are fine. But if you're doing photo, video, audio editing, heavy software compilation, scientific simulation or other work, fast boot times are not what you're after. Gaming, too, why not CPU-heavy usually, demands GPUs that only high-end, very expensive laptops can deliver.
Yes, laptops keep getting better, but so do workstations. For the same money, you get much more bang from a desktop as compared to a laptop.
The real story is how well the bottom has reached decent levels for "mainstream productivity." 5 years ago, a $200 netbook was really disappointing in terms of everyday performance: web browsing was slow, video playback was choppy at higher resolutions, and even word processing could get laggy. These days, machines at that price range are totally acceptable. Entry-level laptops like the Acer E3 or the HP Stream 11 are surprisingly good. Unless you're doing "workstation" work, they won't feel any slower than a laptop that costs 10 times as much.
I think that might actually be what this article is clumsily trying to say.
Right: OpenGL on AMD/Linux is catching up with OpenGL on AMD/Windows.
But both suck relative to NVIDIA's implementation of OpenGL. AMD and NVIDIA are competitive on D3D, but that's no comfort to Linux users, where they simply cannot use their GPUs to their fullest potential.
There is a confusion of two aspects of "monolithic" here, and unfortunately Poettering did not clarify it well:
1) "Monolithic" in terms of a single repository for all code. The systemd project is monolithic in this respect, and Poettering is absolutely correct that this is the classic Unix way. All the *BSDs are maintained this way. Linux is thus, as he correctly points out, the anomoly.
2) "Monolithic" in terms of tools that depend on each other. The systemd system is not monolithic in this respect. The only two required components are journald and udev. Everything else is entirely optional and replaceable, but "recommended" in the sense that the people working on the project really think that these components, written from scratch, are of better quality and consistency than the existing components they replace. But some hysterical people hear this recommendation as "forcing it down our throats". Distro makers will decide which components to use, whether those in the systemd project or the existing ones. Obviously, the existing ones have the benefit of maturity.
Also, he doesn't point this out in this interview, but these new components are also better at reporting errors in a way that the whole init would be more robust when certain components have partial failures (and systemd knows how to deal with them). This is especially crucial for servers with complicated, layered network stacks. People say that systemd is for desktops, but really it is just as important for servers to have a robust initialization of services.
OK, my fellow gamergaters, it's time to dox Sweden!
She lives just east of Norway and west of Finland. Make sure to visit that feminazi every day and teach her the consequences of trying to censor all games and force us to play Depression Quest!
Together we will fight to guarantee better ethics in game journalism.
Ubuntu changed everything we've come to expect about free, general-purpose operating systems.
People don't give Launchpad enough credit: for the first time, we have an integrated build/test/deploy process for the whole operating system. It takes the solid Debian root and adds a layer of modern quality assurance that we've never seen before. There's still a ways to go, and I'm sure people will complain about one or other package being broken, but the fact is that Ubuntu raised the bar of what we've come to expect.
Slashdotters and others also love to complain about one particular package or another. Obviously, the desktop environment (or just the shell) is the first thing that most people see. But it's also a small project in the larger scope of Ubuntu. Don't like Unity or GNOME 3 or KDE or Xfce or LXDE or Enlightenment? You have lots of options. Don't like systemd? Well, Ubuntu devoted a lot of time and effort to Upstart, but made the mature decision to abide by Debian's decision to go with systemd (for now). Don't like either? Yeah, well, life these days must be truly hell for poor little you.
And now, Ubuntu may do for mobile what it did for the desktop. In 10 years, I hope we can celebrate the existence of truly free devices, onto which we can install any package we want -- including alternative UIs for those who will undoubtedly not like Unity.
Having been on the fence about this for a while, my experiences convinced me that C++ is wrong for the kernel.
The problem is not the extra features. The problem is that the programmer has little control over exactly how they are implemented: the compiler decides how to handle virtual method tables, destructors, multiple inheritence, etc. In the recent past, C compiler bugs have caused serious problems with Linux development. C++ compilation is an order of magnitude more complex, and you can bet it would be less reliable. This also means that C++ compiles much slower: doesn't sound like a big deal, but it is a cost to take into account.
The lack of a standard, clear ABI for C++ is also problematic. While it's true that Linux is monolithic, it still supports modules that interact with each other dynamically. Debugging C++ can be quite painful because of this. But it also means that it would be that much harder to contribute a module if it's not written exactly for the same compiler as the one used to build the kernel. Of course, it would have to be written in C++, too. This lack of flexibility can be quite painful in environments where you are limited to very specialized compilers (embedded). C has the most standard ABI of any language (well, C and Pascal). You can guarantee that *anything* would be able to interface with it.
So if you put the technical cons (losing control, flexibility and debugabbility) vs. the pros (cleaner syntax) then it's right to pick C, on technical grounds. As others have stated here, anything you can do in C++ you can do in plain C. It's a bit clumsier, but then you have complete control over the implementation. I do OOP in C all the time, it's perfectly OK. If anything, a bit more powerful than C++, because I tailor the OOP features to exactly my needs and tastes.
Beyond that, there is the more controversial issue of programmer culture. C++ hides away implementation details, but for kernel development you want programmers who think about every tiny issue of implementation: exactly what is going on with the call stack, what is a pointer and what isn't? The more explicit nature of C encourages a more hard-nosed stickler for technical correctness, which is more important than pretty code for kernel work.
By the way, I'm writing this as a former C++ zealot. I even created something like this in the past, a C++ wrapper for Windows NT networking services. I found out the hard way that C++ takes more than it gives. I write all my code in C these days, and don't feel like I'm missing anything.
Windows 8 unified tablets and desktops. You can buy a 7" Atom-based tablet right now that you can connect to a dock and get a full desktop experience.
But Windows phones are still different. With Windows 10, you will be able to the above with your phone.
That might not seem like a big deal to you, but it can radically change the computing market. For many people, owning a single computing device (a phone) will be enough. They will just get a dock for a tablet (BlackBerry has this) or for a laptop or for the living room and that's it. Enterprises, too, can invest in fewer gadgets per employee.
Today's phones are powerful enough to run most everyday computing tasks. Obviously not all, but for those people who need the power, workstations and gaming PCs will still be around.
It's the "Unix way" to make one tool do one thing well. The "systemctl" tool is not meant to show status.
The point in Unix is that tools are building blocks. You can create a higher-level tool (using a simple shell script) that uses these tools together to do cool things that the devs have not thought of.
This has nothing to do with the "tag" itself, which does not specify codecs. Yes, this is still a compromise, but many of us have been compromising for years on various aspects of freedom and openness. Choose your battles carefully and you can win the war: Mozilla has already achieved so much for the open web, and I'm confident the upward slope will continue.
I agree: indeed Genymotion fills in this gap perfectly, and I recommend it strongly for any Android dev. I also found Genymotion devs to be amazingly prompt in responding to bug reports. (I have no connection the company, am just a fan of their work.)
But it's still surprising the that official Google toolkit doesn't have anything like it. Google, get on board! Just buy up Genymotion or license their tech.
By the way, emulation still has its uses in some cases... it's of course best to have both.
Chu is using the opportunity that mysogyny is in the spotlight to discuss the problem of mysogyny in his own community, through his own personal experience.
I agree, entirely. Even more interesting are the recent "noSQL" features added to Postgres. The fervor of the "noSQL" is too often "anti-SQL," in a ridiculously technically uninformed way.
It's a mistake to think that "NoSQL" is a silver bullet for scalability. You can scale just fine using MySQL (FlockDB) or Postresgl if you know what you're doing. On the other, if you don't know what you're doing, NoSQL may create problems where you didn't have them.
An important advantage of NoSQL (which has its costs) is that it's schema-free. This can allow for more rapid iteration in your development cycle. It pays off to plan document structures carefully, but if you need to make changes at some point (or just want to experiment), you can handle it at the code level. You can also support older "schemas" if you plan accordingly: for example, adding a version tag or something similar that can tell your code how to handle it. So, even ignoring the dubious potential of better scalability, NoSQL can still be beneficial for your project.
More so than SQL, NoSQL database are designed for different kinds of applications, and have different strengths:
MongoDB is a really good backend engine that gives programmers lot of control over performance and its costs: if you need faster writes, you can allow for eventual integrity, or if you need faster reads, you can allow for data not being the absolute freshest. For many massive multiuser applications, not having immediately up-to-date data is a reasonable compromise. It also offers an excellent set of atomic operations, which from my experience compensate well for the lack of transactions. Furthermore, MongoDB is by far the most feature-rich of these, supporting aggregate queries and map-reduce, which again can make up for the lack of joins. It also offers good sharding tools, so if you do need to scale, you can. Again, I'll emphasize that you need a good understanding of how MongoDB works in order to properly scale. For example, map-reduce locks the database, so you don't want to rely on it too much. The bottom line is that MongoDB can offer similar features to SQL databases (though they work very differently), so it's good for first-timers.
Couchbase is very good at dispersed synchronization. For example, if parts of your database live in your clients (mobile applications come to mind), it does a terrific job at resynching itself and handling divergences. This is also "scalable," but in a quite different meaning of the term than in MongoDB.
I would also take a look at OrientDB: it's not quite as feature rich as MongoDB (and has no atomic operations), but it can work in schema-mode, and generally offers a great set of tools that can make it easy to migrate from SQL. It's query language, for example, looks a lot like SQL.
The above are all "document-oriented" databases, where you data is not opaque: the database actually does understand how your data is structured, and can allow for deep indexing and updating of your documents. Cassandra and REDIS (and Tokyo Cabinet, and BerkeleyDB) are key-value stores: much simpler databases offering fewer querying features: your data is simply a blob as far the engine is concerned. I would be less inclined to recommend them unless your use case is very specific. Where appropriate, of course simpler is better. With these kinds of databases, there are actually very few ways in which you can create an obstacle for scalability: simply because they don't do very much, from a programming perspective.
There are also in-between databases that are sometimes called "column-oriented": Google and Amazon's hosted big data services are both of this type. Your data is structured, but the structure is flat. Generally, I would prefer full-blown "document-oriented" databases, such as MongoDB and OrientDB. However, if you're using a hosted service, you might not have a choice.
It's also entirely possible to mix different kinds of databases. For example, use MongoDB for your complex data and use REDIS for a simple data store. I've even seen sophisticated deployments that very smartly archive data from one DB to another, and migrate it back again when necessary.
I want to point out that Unity is a very keyboard-friendly UI. The team has gone to extra lengths to make sure keyboard shortcuts exist for just about everything.
And I'm saying this a Xubuntu user! I've decided against using Unity for now (I feel it's still "beta" quality), but I appreciate the efforts of the Unity team. Perhaps one day in the future it will match my needs. Until then, Xfce is a "good enough" daily driver for me.
And Xubuntu = Ubuntu. I'm exceedingly grateful to the Ubuntu community for the extremely high quality repository of software they maintain.
Everytime I see "doomed" in Slashdot these days, I expect a big hit around the corner...
Actually, it seems, many home users don't need full-blown MS Office and Photoshop, and are very happy with modest apps and casual games. If not more happy, because the full-blown desktop OSes give them headaches. An antivirus? System update that takes 45 minutes? My mom doesn't see how that helps her. These people love their iPads and the ChromeBooks are selling like hotcakes.
And MS is scared of ChromeBooks, enough that they've released a series of anti-ChromeBook ads.
Selling a laptop dual-booting Ubuntu is pointless (and I say that as a 100% Ubuntu supporter): but dual-booting Android indeed gives the laptop a different experience, with superfast boot and simple use, that many users will enjoy. If the laptop does touch, too, then you get a nice Android tablet, too, which is far more functional than a Win8 tablet: indeed, PC+.
Also, let me educate you: Android *is* a Linux distro.
The MS Office requirement used to be a big deal for me, until I recently gave CrossOver a whirl. It supports "only" Office 2010, not 2013, but I found that it works perfectly well, no bugs yet (and I use it a lot). So, for me, CrossOver solved the last hurdle requiring Windows.
I got my parents each an iPad as a gift, and it was life transforming, especially for my mom. She never got a hang of computers, even though she even tried to take some computer classes. The mouse, the overlapping windowing interface, dialogs that pop up... a constant source of frustration. Desktop OSes require so much knowledge to just do basic things: we who were raised with them take it for granted. But the iPad somehow made sense to her. She never stops thanking me for it! She emails every day, looks up things in Google, and has recently started to use Facebook (although she is very confused by the interface... heck, I'm a programmer and I can barely understand FB's interface...). We also use Skype a lot, and it works great! Though she often forgets that she needs to "see my name in green" to know that I'm actually have Skype open. She thinks of the whole device as "also a telephone" and still doesn't quite understand that an "app" has to be open.
Related: my mom had a Galaxy phone at the time, and of course couldn't make heads or tails of it. But, once she "understood" the iPad, she also understood that the iPhone is just a "small iPad", and got one for herself. I'm so proud of her.:) It's also really interesting for me to see how she is exploring this new world in pretty much the opposite direction of what I expected: tablet first, smartphone later. Also interesting, I thought she might find the iPad Mini better, because she carries her iPad around all the time. But she told me she saw one that a friend of hers had, and thought it was ridiculously small and pointless!
For the record, I'm the... opposite of an Apple fanboi. I have a Nexus 10 tablet myself, rooted with CynaogenMod. I use Ubuntu exclusively for my desktop and traveling netbook. For my needs, those are definitely the better choices. But for my mom, I must concede that iOS is simply easier to use. Fewer menus, fewer options, and that's all good for someone who is confused by even one option. I've learned that my mom not only has different needs, but also views these technologies from an entirely different, and I would say fresher perspective than mine.
Trust me: get you dad an old iPad, it may change his life. You definitely don't need an iPad 2 in terms of power, although consider the iPad Air. I'm thinking of upgrading my mom to it, I think she might appreciate the lighter weight.
Also: I don't know how old your dad is and how his vision is, but also look into increasing the font sizes, and show him how to use the click-zoom feature. It's built into the iPad, and can definitely help older folks.
I work for a respectable company and all our code is Apache licensed (open source) and publicly available. Anyone can see my code.
Let's not jump to conclusions and assume that OP is breaking the law.
That said, my advice to OP is to contribute code constantly to open source and free software projects. This is very impressive to employers for various reasons: 1) it displays your passion-driven, good quality code, in projects that you yourself chose, 2) it shows your delight in code itself, rather than profit, 3) it proves you're ambitious enough to work after hours to further your career.
I hire people, and let me tell you that people listing several open source contributions (including their own independent open source projecs) always jump to the top of the stack.
Despite its name the Linux Foundation has no direct relationship to Linux. It's yet another open source foundation, like Apache and Eclipse, and is very business-friendly and business-oriented. Indeed most of its projects have open source licenses other than GPL.
Which isn't to say that using a Mac in this case isn't ironic. But what's more ironic is the Linux Foundation's name.
This not a free speech issue.
Google is not obstructing the Nazis from speaking. However, Google refuses to help Nazis speak by providing easy access via Google Play to that speech.
Nazis can continue to speak. The Gab app can continue to exist. But the First Amendment doesn't require anyone to assist them (and the First Amendment doesn't require anyone to listen to that speech). A Nazi can ask for a permit to rally, and the First Amendment ensures that it can't be denied for any political reason. But the First Amendment doesn't say that anyone has to advertise the rally, attend the rally, provide food and water, etc.
It seems that you are suggesting that because of Google's important role as a gatekeeper of mobile apps it would be in its best interest to provide easy access to all platforms. That has nothing to do with the First Amendment, though. It has to do with whether we should trust Google to be such a gatekeeper, or such a monopolistic one, etc. (I'll point out that Android allows you to side-load apps that are not on Play, while iOS does not.) Can we keep this argument rational and these issues separate, please?
Wow, people commenting seem to have so little information about what this actually is. (Canonical is partly to blame for, as usual, doing a poor job at messaging.)
This is not replacing the Debian build system or Debian packages. Ubuntu will continue to be based on Debian.
This is an additional packaging system that makes it exceptionally easy to more reliably distribute Linux applications and services. Underneath it uses LXC (also originally developed at Canonical), the same jail-like technology that powers Docker and LXD. It basically lets the application get its own "view" of the operating system's filesystem (using AuFS) so that you can distribute required dependencies with the application. Of course it can't override the Linux kernel or other important system services, but it actually solves a major hurdle in distributing software across various OS library baselines. Until now, we've been using PPAs or other external Debian repositories to distribute software -- you can still use them if you prefer, but these are tied to the baseline and need constant tweaking to the packagers. A Snappy package made now should be able to run years from now without a problem. The Snapcraft packaging tool is very easy to use and does so much of the hard work for you: you can even just give it a git repository URL, and it will pull and build and package. I see it being very useful for something like Steam.
Also, like Docker, Snappy uses SHA-signed diffs, so package updates will be very fast. It also makes it trivial to switch between versions.
The announcement is that Ubuntu 16.04 will come with Snappy built in, so you can immediately install Snappy packages if you want. You don't have to.
There is also a new flavor of Ubuntu called "Snappy Ubuntu Core" in which the base OS itself is a Snappy image, so that it gets updates the same way as the other packages, and in the same way you can switch between versions. It is useful for various special use cases. For example, a phone OS will have an easier and safer job upgrading while letting the user trivially revert back if things break. It is not the official Ubuntu recommended for all users, but rather a building block for developers to create specialized Ubuntu-and-Snappy-based distributions.
How can you be so wrong?! It tells you exactly what it is on the page you linked: an alternative to Java that runs on the JVM. Why "assume" things when you can just spend two minutes reading about it/
I feel your pain. But: I run the complete Office 2010 suite using CrossOver without a hitch. It doesn't quite feel "native," but it works well enough for all my needs. CrossOver even creates links so that, for example, when you double-click on .docx documents, they will open up with Word 2010.
It actually works so well that I have a terminal-server-based office (based on LTSP) running Word 2010 over CrossOver.
This is not a great solution (you will have to buy a license from Microsoft), but it is a solution to allow my setup to stay in Linux and still collaborate with others.
Cheers!
There are a few services that can help you.
Check out APISpark (made by the Restlet team). It lets you publish and manage the API on the web, supports a lot of standards, and also has tools to actually help you create clients and server implementations.
"Nimble" does not mean that it performs well.
If "mainstream productivity" refers to word processing and web browsing, you are fine. But if you're doing photo, video, audio editing, heavy software compilation, scientific simulation or other work, fast boot times are not what you're after. Gaming, too, why not CPU-heavy usually, demands GPUs that only high-end, very expensive laptops can deliver.
Yes, laptops keep getting better, but so do workstations. For the same money, you get much more bang from a desktop as compared to a laptop.
The real story is how well the bottom has reached decent levels for "mainstream productivity." 5 years ago, a $200 netbook was really disappointing in terms of everyday performance: web browsing was slow, video playback was choppy at higher resolutions, and even word processing could get laggy. These days, machines at that price range are totally acceptable. Entry-level laptops like the Acer E3 or the HP Stream 11 are surprisingly good. Unless you're doing "workstation" work, they won't feel any slower than a laptop that costs 10 times as much.
I think that might actually be what this article is clumsily trying to say.
Right: OpenGL on AMD/Linux is catching up with OpenGL on AMD/Windows.
But both suck relative to NVIDIA's implementation of OpenGL. AMD and NVIDIA are competitive on D3D, but that's no comfort to Linux users, where they simply cannot use their GPUs to their fullest potential.
There is a confusion of two aspects of "monolithic" here, and unfortunately Poettering did not clarify it well:
1) "Monolithic" in terms of a single repository for all code. The systemd project is monolithic in this respect, and Poettering is absolutely correct that this is the classic Unix way. All the *BSDs are maintained this way. Linux is thus, as he correctly points out, the anomoly.
2) "Monolithic" in terms of tools that depend on each other. The systemd system is not monolithic in this respect. The only two required components are journald and udev. Everything else is entirely optional and replaceable, but "recommended" in the sense that the people working on the project really think that these components, written from scratch, are of better quality and consistency than the existing components they replace. But some hysterical people hear this recommendation as "forcing it down our throats". Distro makers will decide which components to use, whether those in the systemd project or the existing ones. Obviously, the existing ones have the benefit of maturity.
Also, he doesn't point this out in this interview, but these new components are also better at reporting errors in a way that the whole init would be more robust when certain components have partial failures (and systemd knows how to deal with them). This is especially crucial for servers with complicated, layered network stacks. People say that systemd is for desktops, but really it is just as important for servers to have a robust initialization of services.
OK, my fellow gamergaters, it's time to dox Sweden!
She lives just east of Norway and west of Finland. Make sure to visit that feminazi every day and teach her the consequences of trying to censor all games and force us to play Depression Quest!
Together we will fight to guarantee better ethics in game journalism.
Ubuntu changed everything we've come to expect about free, general-purpose operating systems.
People don't give Launchpad enough credit: for the first time, we have an integrated build/test/deploy process for the whole operating system. It takes the solid Debian root and adds a layer of modern quality assurance that we've never seen before. There's still a ways to go, and I'm sure people will complain about one or other package being broken, but the fact is that Ubuntu raised the bar of what we've come to expect.
Slashdotters and others also love to complain about one particular package or another. Obviously, the desktop environment (or just the shell) is the first thing that most people see. But it's also a small project in the larger scope of Ubuntu. Don't like Unity or GNOME 3 or KDE or Xfce or LXDE or Enlightenment? You have lots of options. Don't like systemd? Well, Ubuntu devoted a lot of time and effort to Upstart, but made the mature decision to abide by Debian's decision to go with systemd (for now). Don't like either? Yeah, well, life these days must be truly hell for poor little you.
And now, Ubuntu may do for mobile what it did for the desktop. In 10 years, I hope we can celebrate the existence of truly free devices, onto which we can install any package we want -- including alternative UIs for those who will undoubtedly not like Unity.
Having been on the fence about this for a while, my experiences convinced me that C++ is wrong for the kernel.
The problem is not the extra features. The problem is that the programmer has little control over exactly how they are implemented: the compiler decides how to handle virtual method tables, destructors, multiple inheritence, etc. In the recent past, C compiler bugs have caused serious problems with Linux development. C++ compilation is an order of magnitude more complex, and you can bet it would be less reliable. This also means that C++ compiles much slower: doesn't sound like a big deal, but it is a cost to take into account.
The lack of a standard, clear ABI for C++ is also problematic. While it's true that Linux is monolithic, it still supports modules that interact with each other dynamically. Debugging C++ can be quite painful because of this. But it also means that it would be that much harder to contribute a module if it's not written exactly for the same compiler as the one used to build the kernel. Of course, it would have to be written in C++, too. This lack of flexibility can be quite painful in environments where you are limited to very specialized compilers (embedded). C has the most standard ABI of any language (well, C and Pascal). You can guarantee that *anything* would be able to interface with it.
So if you put the technical cons (losing control, flexibility and debugabbility) vs. the pros (cleaner syntax) then it's right to pick C, on technical grounds. As others have stated here, anything you can do in C++ you can do in plain C. It's a bit clumsier, but then you have complete control over the implementation. I do OOP in C all the time, it's perfectly OK. If anything, a bit more powerful than C++, because I tailor the OOP features to exactly my needs and tastes.
Beyond that, there is the more controversial issue of programmer culture. C++ hides away implementation details, but for kernel development you want programmers who think about every tiny issue of implementation: exactly what is going on with the call stack, what is a pointer and what isn't? The more explicit nature of C encourages a more hard-nosed stickler for technical correctness, which is more important than pretty code for kernel work.
By the way, I'm writing this as a former C++ zealot. I even created something like this in the past, a C++ wrapper for Windows NT networking services. I found out the hard way that C++ takes more than it gives. I write all my code in C these days, and don't feel like I'm missing anything.
Windows 8 unified tablets and desktops. You can buy a 7" Atom-based tablet right now that you can connect to a dock and get a full desktop experience.
But Windows phones are still different. With Windows 10, you will be able to the above with your phone.
That might not seem like a big deal to you, but it can radically change the computing market. For many people, owning a single computing device (a phone) will be enough. They will just get a dock for a tablet (BlackBerry has this) or for a laptop or for the living room and that's it. Enterprises, too, can invest in fewer gadgets per employee.
Today's phones are powerful enough to run most everyday computing tasks. Obviously not all, but for those people who need the power, workstations and gaming PCs will still be around.
It's the "Unix way" to make one tool do one thing well. The "systemctl" tool is not meant to show status.
The point in Unix is that tools are building blocks. You can create a higher-level tool (using a simple shell script) that uses these tools together to do cool things that the devs have not thought of.
This has nothing to do with the "tag" itself, which does not specify codecs. Yes, this is still a compromise, but many of us have been compromising for years on various aspects of freedom and openness. Choose your battles carefully and you can win the war: Mozilla has already achieved so much for the open web, and I'm confident the upward slope will continue.
No software downloads, and apparently not open source nor free software. And also their hardware is not yet available.
Who tagged this "Ubuntu"? No relation.
I agree: indeed Genymotion fills in this gap perfectly, and I recommend it strongly for any Android dev. I also found Genymotion devs to be amazingly prompt in responding to bug reports. (I have no connection the company, am just a fan of their work.)
But it's still surprising the that official Google toolkit doesn't have anything like it. Google, get on board! Just buy up Genymotion or license their tech.
By the way, emulation still has its uses in some cases... it's of course best to have both.
Why not read TFA?
Chu is using the opportunity that mysogyny is in the spotlight to discuss the problem of mysogyny in his own community, through his own personal experience.
He is not saying that Rodger is a nerd.
Seriously, read TFA, it's a thoughftul piece.
I agree, entirely. Even more interesting are the recent "noSQL" features added to Postgres. The fervor of the "noSQL" is too often "anti-SQL," in a ridiculously technically uninformed way.
It's a mistake to think that "NoSQL" is a silver bullet for scalability. You can scale just fine using MySQL (FlockDB) or Postresgl if you know what you're doing. On the other, if you don't know what you're doing, NoSQL may create problems where you didn't have them.
An important advantage of NoSQL (which has its costs) is that it's schema-free. This can allow for more rapid iteration in your development cycle. It pays off to plan document structures carefully, but if you need to make changes at some point (or just want to experiment), you can handle it at the code level. You can also support older "schemas" if you plan accordingly: for example, adding a version tag or something similar that can tell your code how to handle it. So, even ignoring the dubious potential of better scalability, NoSQL can still be beneficial for your project.
More so than SQL, NoSQL database are designed for different kinds of applications, and have different strengths:
MongoDB is a really good backend engine that gives programmers lot of control over performance and its costs: if you need faster writes, you can allow for eventual integrity, or if you need faster reads, you can allow for data not being the absolute freshest. For many massive multiuser applications, not having immediately up-to-date data is a reasonable compromise. It also offers an excellent set of atomic operations, which from my experience compensate well for the lack of transactions. Furthermore, MongoDB is by far the most feature-rich of these, supporting aggregate queries and map-reduce, which again can make up for the lack of joins. It also offers good sharding tools, so if you do need to scale, you can. Again, I'll emphasize that you need a good understanding of how MongoDB works in order to properly scale. For example, map-reduce locks the database, so you don't want to rely on it too much. The bottom line is that MongoDB can offer similar features to SQL databases (though they work very differently), so it's good for first-timers.
Couchbase is very good at dispersed synchronization. For example, if parts of your database live in your clients (mobile applications come to mind), it does a terrific job at resynching itself and handling divergences. This is also "scalable," but in a quite different meaning of the term than in MongoDB.
I would also take a look at OrientDB: it's not quite as feature rich as MongoDB (and has no atomic operations), but it can work in schema-mode, and generally offers a great set of tools that can make it easy to migrate from SQL. It's query language, for example, looks a lot like SQL.
The above are all "document-oriented" databases, where you data is not opaque: the database actually does understand how your data is structured, and can allow for deep indexing and updating of your documents. Cassandra and REDIS (and Tokyo Cabinet, and BerkeleyDB) are key-value stores: much simpler databases offering fewer querying features: your data is simply a blob as far the engine is concerned. I would be less inclined to recommend them unless your use case is very specific. Where appropriate, of course simpler is better. With these kinds of databases, there are actually very few ways in which you can create an obstacle for scalability: simply because they don't do very much, from a programming perspective.
There are also in-between databases that are sometimes called "column-oriented": Google and Amazon's hosted big data services are both of this type. Your data is structured, but the structure is flat. Generally, I would prefer full-blown "document-oriented" databases, such as MongoDB and OrientDB. However, if you're using a hosted service, you might not have a choice.
It's also entirely possible to mix different kinds of databases. For example, use MongoDB for your complex data and use REDIS for a simple data store. I've even seen sophisticated deployments that very smartly archive data from one DB to another, and migrate it back again when necessary.
I want to point out that Unity is a very keyboard-friendly UI. The team has gone to extra lengths to make sure keyboard shortcuts exist for just about everything.
And I'm saying this a Xubuntu user! I've decided against using Unity for now (I feel it's still "beta" quality), but I appreciate the efforts of the Unity team. Perhaps one day in the future it will match my needs. Until then, Xfce is a "good enough" daily driver for me.
And Xubuntu = Ubuntu. I'm exceedingly grateful to the Ubuntu community for the extremely high quality repository of software they maintain.
Everytime I see "doomed" in Slashdot these days, I expect a big hit around the corner...
Actually, it seems, many home users don't need full-blown MS Office and Photoshop, and are very happy with modest apps and casual games. If not more happy, because the full-blown desktop OSes give them headaches. An antivirus? System update that takes 45 minutes? My mom doesn't see how that helps her. These people love their iPads and the ChromeBooks are selling like hotcakes.
And MS is scared of ChromeBooks, enough that they've released a series of anti-ChromeBook ads.
Selling a laptop dual-booting Ubuntu is pointless (and I say that as a 100% Ubuntu supporter): but dual-booting Android indeed gives the laptop a different experience, with superfast boot and simple use, that many users will enjoy. If the laptop does touch, too, then you get a nice Android tablet, too, which is far more functional than a Win8 tablet: indeed, PC+.
Also, let me educate you: Android *is* a Linux distro.
The MS Office requirement used to be a big deal for me, until I recently gave CrossOver a whirl. It supports "only" Office 2010, not 2013, but I found that it works perfectly well, no bugs yet (and I use it a lot). So, for me, CrossOver solved the last hurdle requiring Windows.
I guess YMMV. I suggest the iPad, strongly.
I got my parents each an iPad as a gift, and it was life transforming, especially for my mom. She never got a hang of computers, even though she even tried to take some computer classes. The mouse, the overlapping windowing interface, dialogs that pop up... a constant source of frustration. Desktop OSes require so much knowledge to just do basic things: we who were raised with them take it for granted. But the iPad somehow made sense to her. She never stops thanking me for it! She emails every day, looks up things in Google, and has recently started to use Facebook (although she is very confused by the interface... heck, I'm a programmer and I can barely understand FB's interface...). We also use Skype a lot, and it works great! Though she often forgets that she needs to "see my name in green" to know that I'm actually have Skype open. She thinks of the whole device as "also a telephone" and still doesn't quite understand that an "app" has to be open.
Related: my mom had a Galaxy phone at the time, and of course couldn't make heads or tails of it. But, once she "understood" the iPad, she also understood that the iPhone is just a "small iPad", and got one for herself. I'm so proud of her. :) It's also really interesting for me to see how she is exploring this new world in pretty much the opposite direction of what I expected: tablet first, smartphone later. Also interesting, I thought she might find the iPad Mini better, because she carries her iPad around all the time. But she told me she saw one that a friend of hers had, and thought it was ridiculously small and pointless!
For the record, I'm the ... opposite of an Apple fanboi. I have a Nexus 10 tablet myself, rooted with CynaogenMod. I use Ubuntu exclusively for my desktop and traveling netbook. For my needs, those are definitely the better choices. But for my mom, I must concede that iOS is simply easier to use. Fewer menus, fewer options, and that's all good for someone who is confused by even one option. I've learned that my mom not only has different needs, but also views these technologies from an entirely different, and I would say fresher perspective than mine.
Trust me: get you dad an old iPad, it may change his life. You definitely don't need an iPad 2 in terms of power, although consider the iPad Air. I'm thinking of upgrading my mom to it, I think she might appreciate the lighter weight.
Also: I don't know how old your dad is and how his vision is, but also look into increasing the font sizes, and show him how to use the click-zoom feature. It's built into the iPad, and can definitely help older folks.