That's assuming you don't care about giving your users a good UI experience, because if you don't, your competitors just might. You can always financially justify cutting corners if you're not considering longer-term ramifications.
I'm not saying building native apps is the right decision for all apps, but it certainly is the right decision for *some*.
Those lectures with hundreds of students were, at least in my experience, often followed by much smaller workshops or labs with the instructor's graduate student assistants. That's typically when you got your questions answered in more detail. Also, at the collegiate level, I suppose instructors figure that students should need a bit less hand-holding at that point. It's not all that dissimilar to tech conferences at the professional level. You generally only get the high points and broad brush strokes at the lectures themselves. By and large, you need to do a heck of a lot of studying on your own to stay proficient with new technologies.
If you think about it, after a disaster, there's really nothing more important to family members than finding out if a loved one is okay or not as soon as possible. I think the point of this flag is just to obviously signal to everyone "I'm OK" with minimum fuss and bother, because for those in the danger zone, they very likely have other immediate pressing needs.
Your friends and family would already know which social network you hang out on, and how to contact you. Think about it - what better way is there to use the same social network where you already are regularly in contact with each other? A completely different system used *only* during emergencies? That makes zero sense.
Anyhow, the fact that people are actually using these features to good effect sort of proves their value. Sorry, I just don't see it as anything but a good thing for social networks to have this system in place.
I hope they find the bastards who did this, but I'm not holding my breath. She seemed like a vibrant, engaging, and intelligent woman. Pakistan will need more people like her to continue the fight against their more regressive, barbaric elements. My condolences to her family and friends.
Apple's iProbe (EZ-insertion technology patent pending) and monitor kit will sold separately for the low price of $139.95. Look for a public announcement soon!
Honestly, my take is that this feature on Facebook / Google makes a lot of sense. How many people would think to first check the Red Cross website first (or specifically, the site you linked to, which I couldn't seem to find via the main site)? People are much more likely to *first* check Facebook to see if their family or friends have posted an update. These are social networks already in place, so why not use them for an important feature that's obviously "social" in nature?
The Red Cross feature is fantastic for people who aren't already hooked up with Google or Facebook. But honestly, who wants to do that when they can click a single button on their already-used social network of choice, versus the battery of personal data you have to enter at the Red Cross? Consider the Facebook or Google feature as a first-line system. If a person doesn't mark themselves safe, family members can then register them as a missing person on the Red Cross site.
I bought a 60" Vizio a couple of years ago because it was a decent looking TV at a great price. Now, having learned more about the company, I'm really glad I did. The TV looks fantastic and has worked consistently - no complaints in that department, and I love how they're standing firm against these patent trolls.
When it's eventually time to upgrade, I'll definitely look at their products again.
I think one solution I've seen that makes sense is being built on the coast of Oregon. A small city government building is being built on large reinforced concrete stilts, with parking underneath the building. There are external ramps up to the government offices on top. In the event of a tsunami, this structure is meant to hold a large portion of the town's residence as a temporary shelter.
This seems like a reasonable way to protect large numbers of people in vulnerable areas. You don't have to build them everywhere, just in enough key locations, and they can be useable as office space during normal situations. It's not going to save the town's buildings, but material goods can be rebuilt or repurchased.
I think it's a given that better warning systems are needed. We're actually extending our system in the Pacific after the latest tsunamis, and hopefully they emulate our Hawaii-based Pacific early warning center in the Indian ocean as well.
I actually saw a story a few years ago about the company that are designing these survival capsules, which, IMO, is a lot more interesting than someone pulling a stunt like this. We actually have a very tsunami-vulnerable coastline in many US states ourselves, of course, and it's difficult to know exactly how to protect people who don't have immediate access to higher ground. If the tsunami is generated by a subduction zone earthquake close to the coast, you may only have fifteen or twenty minutes warning before it hits. "Just get out of the path" is not always possible when the nearest high ground is miles away.
Unfortunately, the cost of these devices is so high ($12K to $20K each for the prototypes), and when compared to the likelihood of needing them versus the population density of the typical tsunami-prone coastline, it's unlikely that large populations would ever be completely protected by these things. It would be great if these could be mass produced cheaply, bringing the price down where they could be affordable. Unfortunately, for the Indian Ocean regions, you're talking about a population that, on average, doesn't exactly have a lot of discretionary income. Still, very few people have come forward with better solutions, aside from better early warning systems and public education (i.e. when the surf disappears, RUN!).
Japan is now talking about a seawall that will reportedly cost 7 billion dollars. For that price, they could afford to protect about 1.4 million people with these safety capsules, assuming the cost is around $5000 per person. Of course, the downside is that these capsules would do nothing to protect against massive property damage.
I can certainly tell the difference between 1080 and 720 on my 60" TV when watching from about 10 feet away or so, although it's certainly not a dramatic difference. According to charts I've seen, I'd need an 80" TV to even begin seeing any benefit to 4K, and it tops off at 160". For most people, at least for TVs, 4K just doesn't make any sense.
Here's a handy chart to see the optimal resolutions given a particular TV size and viewing distance.
Hrm, yeah, I should have put quotes around "won", because what I meant was "most major distros are using it", nothing more. Let's look at some of the top Linux distros:
systemd camp: Mint Ubuntu Debian Mageia Fedora openSUSE Arch centOS
Non systemd camp: PCLinuxOS Slackware Gentoo
How many in that list do NOT use systemd? For those folks who don't want to use it, it may be increasingly difficult to avoid it without jumping ship to BSD, because it's very possible you're going to be seeing more and more dependencies on it. That's all I was getting at.
I'm still amazed that anyone still falls for the Dice-sanctioned systemd-related trolling at this point. Everyone seems to have made up their minds, and the debates have long since ended. Systemd won, and anyone who doesn't like it has to go looking for alternatives.
Except, his "one mistake" was bragging about his find to his buddies (the exploits were found and submitted, so there was no reason to do so), and Oops! it went public, obviously in a way that Groupon happened to spot it as well*. Now it's essentially out in the wild before a fix was in, however you want to spin it. That's the exact opposite of "responsible disclosure". If you tell someone else about an exploit, even in private, you no longer have control of that information. Groupon is, I think, making a point that they take the "responsible disclosure" part of that agreement seriously.
Note in the article:
He also points out that another company, Sucuri Security, was happy to pay out even after a tweet revealed some details of a security flaw in their product.
Was this also by him, meaning this isn't the first time he's done this? Or one of his colleagues? How do you accidentally tweet about an undisclosed security disclosure? Is it too much to ask them to simply NOT blab about it to others in public forums? Either way, it learns like these guys need to learn how to keep their mouths shut about the vulnerabilities they discover until the fix is confirmed, that is, if they actually want a bounty. What the hell is so hard about NOT talking about a security exploit you've discovered? Ok, sort of a dick move by Groupon (no surprise), but it's hard for me to feel too sorry for this guy either.
* My theory is that Groupon was actually emailed that the vulnerability was made public on XSSposed.org. If a company doesn't respond, XSSposed simply publishes the vulnerability and emails a notification to the webmaster, as they seem to be all about public exposure. This site also gives "rankings" to security researches, so there seems to be an incentive to share the details of an exploit before it's fixed with others on the site in order to get "credit" for the discovery (and this guy is that the top of the list), which seems like a really bad incentive.
Ha! It's not like they don't actually want all that delicious, valuable customer data. That stuff is pure gold. They just want to be able to use it themselves, such as selling access to "interested third parties".
My summation / interpretation of the article's premise: "We don't want a huge security breach that will embarrass us, but we don't actually want to spend a lot of money on the problem."
It does not necessarily imply efficient memory management, though, since it is only guaranteed that the memory will eventually be freed, rather than as soon as it is actually unneeded.
No, it's all reference counted, meaning that as soon as the object goes out of scope, the reference count decreases, and if it hits zero, the memory is freed right then and there. It doesn't work like languages with managed memory and a garbage collector, such as Java or C#. When memory gets freed is 100% deterministic.
Of course, if you mean that you could lose track of shared pointers, that's true enough. But that's also true in *any* language that I'm aware of, so C++ is no different in that regard. No language will succeed against the wiles of a terrible programmer.
I think you misunderstand me a bit. I'm not saying to start with C++ 11 vs 14 as a language, only that you're going to get better results searching for C++ 11 on the internet when trying to find tutorials about how to use most of those new features. Most of those new articles were written when C++ 14 was not yet ratified. No one wrote new tutorials about how to use shared_ptr when C++ 14 was released because nothing really changed in terms of the basics.
Incidentally, I would never advocate the "progression" approach myself. When teaching C++, there's zero need to teach C first (I learned C++, then C), and starting with C++ 98 would be insane nowadays. Keep in mind that I'm just talking about the order one should learn the new features of the language, not a specific version of the language itself. It just happens that for someone migrating from C++ 98 to C++ 14, the features introduced in C++ 11 are far and away the most important for about 95% of your day-to-day programming needs.
I can think of only one C++ 14-specific feature that would be good to know off-hand when starting out, which is that there's now a std::make_unique() function, just like std::make_shared(). Everything else can wait until you've learned the core new features.
Nah, I didn't take you all that seriously ("Space Hippies" was a giveaway), but I thought I'd answer pragmatically, because I've seen people talk about it fairly often. So, yeah, sorry for sounding so humor-impaired. It annoys me when people don't get my jokes too.
As an apology, here's an interesting nuclear waste disposal plan. Here's a hint: Nuclear Lawn Darts.
Hmm... let's see... First off, you'll probably have better luck searching for C++ 11 than C++ 14, which were very subtle changes compared to 11, and not worth worrying about when first learning. You can read up on what changed in 14 later.
In a nutshell, I'd say that the biggest change is the notion that you should very rarely have to use raw pointers any more, meaning you generally shouldn't allocate or release memory with new or delete. By applying RAII principle and smart pointers, you can virtually eliminate all chances of accidental resource and memory leaks.
What's more, you get almost the same sense that you're using a language with managed memory, since you don't typically have to use delete, and even writing destructors becomes much more rare. So, I'd probably start by learning about the smart pointers and which versions to use when, how to properly cast them, and how to use the factory functions in place of 'new'.
Don't feel the need to rush into all the new features. Just start with the basics (nullptr, auto, smart pointers, class enum), and then move to more advanced topics (move semantics, lambas, etc).
On my last flight, a male flight attendant amused the passengers by lip syncing the entire pre-recorded message (which was voiced by a female) while making just-slightly-over-exaggerated facial expressions. It was low key humor but still entertaining. It also made me realize that however sick the passengers were of hearing the safety routine, these poor flight attendants had heard it so many times they could recite the entire recording by heart.
It's always been a complicated language. The recent C++ 11/14 are significant improvements though, and in many ways actually make things quite a bit simpler and safer for the typical programmer in many ways. A lot of the footprint of C++ as a language is the incredible dedication to backwards compatibility. Even the earliest C++ programs (as well as C libraries, of course) will still compile even in modern compilers with minimal modifications.
With the addition of standardized smart pointers, and making proper use of RAII techniques, C++ actually feels a lot more like C# than C++ 98... just with uglier-looking syntax and a few more sharp edges. And of course, it still can compete with or beat nearly every other language in terms of performance, which is still critical to some types of applications.
and the few that do exist are mostly filled by volunteers or pay absolute shit
That's when the complaints about the gender pay gap in engineering will start, of course.
That's assuming you don't care about giving your users a good UI experience, because if you don't, your competitors just might. You can always financially justify cutting corners if you're not considering longer-term ramifications.
I'm not saying building native apps is the right decision for all apps, but it certainly is the right decision for *some*.
Those lectures with hundreds of students were, at least in my experience, often followed by much smaller workshops or labs with the instructor's graduate student assistants. That's typically when you got your questions answered in more detail. Also, at the collegiate level, I suppose instructors figure that students should need a bit less hand-holding at that point. It's not all that dissimilar to tech conferences at the professional level. You generally only get the high points and broad brush strokes at the lectures themselves. By and large, you need to do a heck of a lot of studying on your own to stay proficient with new technologies.
...when they had alternatives, such as getting the fuck out of the country...
Perhaps these people are intent on trying improve their country rather than fleeing from it? Crazy, I know...
If you think about it, after a disaster, there's really nothing more important to family members than finding out if a loved one is okay or not as soon as possible. I think the point of this flag is just to obviously signal to everyone "I'm OK" with minimum fuss and bother, because for those in the danger zone, they very likely have other immediate pressing needs.
Your friends and family would already know which social network you hang out on, and how to contact you. Think about it - what better way is there to use the same social network where you already are regularly in contact with each other? A completely different system used *only* during emergencies? That makes zero sense.
Also, how do you figure real friends and family are somehow different from Facebook friends? You're suggesting that real-life friends and family don't use Facebook to keep in touch with each other? The data says otherwise.
Anyhow, the fact that people are actually using these features to good effect sort of proves their value. Sorry, I just don't see it as anything but a good thing for social networks to have this system in place.
You think the US is hostile to women in tech?
I hope they find the bastards who did this, but I'm not holding my breath. She seemed like a vibrant, engaging, and intelligent woman. Pakistan will need more people like her to continue the fight against their more regressive, barbaric elements. My condolences to her family and friends.
Apple's iProbe (EZ-insertion technology patent pending) and monitor kit will sold separately for the low price of $139.95. Look for a public announcement soon!
Honestly, my take is that this feature on Facebook / Google makes a lot of sense. How many people would think to first check the Red Cross website first (or specifically, the site you linked to, which I couldn't seem to find via the main site)? People are much more likely to *first* check Facebook to see if their family or friends have posted an update. These are social networks already in place, so why not use them for an important feature that's obviously "social" in nature?
The Red Cross feature is fantastic for people who aren't already hooked up with Google or Facebook. But honestly, who wants to do that when they can click a single button on their already-used social network of choice, versus the battery of personal data you have to enter at the Red Cross? Consider the Facebook or Google feature as a first-line system. If a person doesn't mark themselves safe, family members can then register them as a missing person on the Red Cross site.
I bought a 60" Vizio a couple of years ago because it was a decent looking TV at a great price. Now, having learned more about the company, I'm really glad I did. The TV looks fantastic and has worked consistently - no complaints in that department, and I love how they're standing firm against these patent trolls.
When it's eventually time to upgrade, I'll definitely look at their products again.
I think one solution I've seen that makes sense is being built on the coast of Oregon. A small city government building is being built on large reinforced concrete stilts, with parking underneath the building. There are external ramps up to the government offices on top. In the event of a tsunami, this structure is meant to hold a large portion of the town's residence as a temporary shelter.
This seems like a reasonable way to protect large numbers of people in vulnerable areas. You don't have to build them everywhere, just in enough key locations, and they can be useable as office space during normal situations. It's not going to save the town's buildings, but material goods can be rebuilt or repurchased.
I think it's a given that better warning systems are needed. We're actually extending our system in the Pacific after the latest tsunamis, and hopefully they emulate our Hawaii-based Pacific early warning center in the Indian ocean as well.
I actually saw a story a few years ago about the company that are designing these survival capsules, which, IMO, is a lot more interesting than someone pulling a stunt like this. We actually have a very tsunami-vulnerable coastline in many US states ourselves, of course, and it's difficult to know exactly how to protect people who don't have immediate access to higher ground. If the tsunami is generated by a subduction zone earthquake close to the coast, you may only have fifteen or twenty minutes warning before it hits. "Just get out of the path" is not always possible when the nearest high ground is miles away.
Unfortunately, the cost of these devices is so high ($12K to $20K each for the prototypes), and when compared to the likelihood of needing them versus the population density of the typical tsunami-prone coastline, it's unlikely that large populations would ever be completely protected by these things. It would be great if these could be mass produced cheaply, bringing the price down where they could be affordable. Unfortunately, for the Indian Ocean regions, you're talking about a population that, on average, doesn't exactly have a lot of discretionary income. Still, very few people have come forward with better solutions, aside from better early warning systems and public education (i.e. when the surf disappears, RUN!).
Japan is now talking about a seawall that will reportedly cost 7 billion dollars. For that price, they could afford to protect about 1.4 million people with these safety capsules, assuming the cost is around $5000 per person. Of course, the downside is that these capsules would do nothing to protect against massive property damage.
I can certainly tell the difference between 1080 and 720 on my 60" TV when watching from about 10 feet away or so, although it's certainly not a dramatic difference. According to charts I've seen, I'd need an 80" TV to even begin seeing any benefit to 4K, and it tops off at 160". For most people, at least for TVs, 4K just doesn't make any sense.
Here's a handy chart to see the optimal resolutions given a particular TV size and viewing distance.
Hrm, yeah, I should have put quotes around "won", because what I meant was "most major distros are using it", nothing more. Let's look at some of the top Linux distros:
systemd camp:
Mint
Ubuntu
Debian
Mageia
Fedora
openSUSE
Arch
centOS
Non systemd camp:
PCLinuxOS
Slackware
Gentoo
How many in that list do NOT use systemd? For those folks who don't want to use it, it may be increasingly difficult to avoid it without jumping ship to BSD, because it's very possible you're going to be seeing more and more dependencies on it. That's all I was getting at.
You say that, but why have nearly all distros moved to systemd? You're saying there's not a sound technical reason for it?
Sure, there's a good reason. It makes things a lot easier for *them*.
Whether it makes things better or worse for everyone else remains to be seen.
I'm still amazed that anyone still falls for the Dice-sanctioned systemd-related trolling at this point. Everyone seems to have made up their minds, and the debates have long since ended. Systemd won, and anyone who doesn't like it has to go looking for alternatives.
CEO Brian Roberts said:
but we structured this deal so that if the government didn't agree, we could walk away
Translation: "We knew it was sketchy as hell, but hey, might as well give it a try! If they see through the BS, no harm done."
Except, his "one mistake" was bragging about his find to his buddies (the exploits were found and submitted, so there was no reason to do so), and Oops! it went public, obviously in a way that Groupon happened to spot it as well*. Now it's essentially out in the wild before a fix was in, however you want to spin it. That's the exact opposite of "responsible disclosure". If you tell someone else about an exploit, even in private, you no longer have control of that information. Groupon is, I think, making a point that they take the "responsible disclosure" part of that agreement seriously.
Note in the article:
He also points out that another company, Sucuri Security, was happy to pay out even after a tweet revealed some details of a security flaw in their product.
Was this also by him, meaning this isn't the first time he's done this? Or one of his colleagues? How do you accidentally tweet about an undisclosed security disclosure? Is it too much to ask them to simply NOT blab about it to others in public forums? Either way, it learns like these guys need to learn how to keep their mouths shut about the vulnerabilities they discover until the fix is confirmed, that is, if they actually want a bounty. What the hell is so hard about NOT talking about a security exploit you've discovered? Ok, sort of a dick move by Groupon (no surprise), but it's hard for me to feel too sorry for this guy either.
* My theory is that Groupon was actually emailed that the vulnerability was made public on XSSposed.org. If a company doesn't respond, XSSposed simply publishes the vulnerability and emails a notification to the webmaster, as they seem to be all about public exposure. This site also gives "rankings" to security researches, so there seems to be an incentive to share the details of an exploit before it's fixed with others on the site in order to get "credit" for the discovery (and this guy is that the top of the list), which seems like a really bad incentive.
Ha! It's not like they don't actually want all that delicious, valuable customer data. That stuff is pure gold. They just want to be able to use it themselves, such as selling access to "interested third parties".
My summation / interpretation of the article's premise: "We don't want a huge security breach that will embarrass us, but we don't actually want to spend a lot of money on the problem."
It does not necessarily imply efficient memory management, though, since it is only guaranteed that the memory will eventually be freed, rather than as soon as it is actually unneeded.
No, it's all reference counted, meaning that as soon as the object goes out of scope, the reference count decreases, and if it hits zero, the memory is freed right then and there. It doesn't work like languages with managed memory and a garbage collector, such as Java or C#. When memory gets freed is 100% deterministic.
Of course, if you mean that you could lose track of shared pointers, that's true enough. But that's also true in *any* language that I'm aware of, so C++ is no different in that regard. No language will succeed against the wiles of a terrible programmer.
I think you misunderstand me a bit. I'm not saying to start with C++ 11 vs 14 as a language, only that you're going to get better results searching for C++ 11 on the internet when trying to find tutorials about how to use most of those new features. Most of those new articles were written when C++ 14 was not yet ratified. No one wrote new tutorials about how to use shared_ptr when C++ 14 was released because nothing really changed in terms of the basics.
Incidentally, I would never advocate the "progression" approach myself. When teaching C++, there's zero need to teach C first (I learned C++, then C), and starting with C++ 98 would be insane nowadays. Keep in mind that I'm just talking about the order one should learn the new features of the language, not a specific version of the language itself. It just happens that for someone migrating from C++ 98 to C++ 14, the features introduced in C++ 11 are far and away the most important for about 95% of your day-to-day programming needs.
I can think of only one C++ 14-specific feature that would be good to know off-hand when starting out, which is that there's now a std::make_unique() function, just like std::make_shared(). Everything else can wait until you've learned the core new features.
Nah, I didn't take you all that seriously ("Space Hippies" was a giveaway), but I thought I'd answer pragmatically, because I've seen people talk about it fairly often. So, yeah, sorry for sounding so humor-impaired. It annoys me when people don't get my jokes too.
As an apology, here's an interesting nuclear waste disposal plan. Here's a hint: Nuclear Lawn Darts.
Hmm... let's see... First off, you'll probably have better luck searching for C++ 11 than C++ 14, which were very subtle changes compared to 11, and not worth worrying about when first learning. You can read up on what changed in 14 later.
In a nutshell, I'd say that the biggest change is the notion that you should very rarely have to use raw pointers any more, meaning you generally shouldn't allocate or release memory with new or delete. By applying RAII principle and smart pointers, you can virtually eliminate all chances of accidental resource and memory leaks.
What's more, you get almost the same sense that you're using a language with managed memory, since you don't typically have to use delete, and even writing destructors becomes much more rare. So, I'd probably start by learning about the smart pointers and which versions to use when, how to properly cast them, and how to use the factory functions in place of 'new'.
I picked up a lot of information on the web via simple tutorial blogs about specific topics, but I also read through Stroustrup's book The C++ Programming Language (fourth edition) as a definitive reference.
Don't feel the need to rush into all the new features. Just start with the basics (nullptr, auto, smart pointers, class enum), and then move to more advanced topics (move semantics, lambas, etc).
Good luck!
On my last flight, a male flight attendant amused the passengers by lip syncing the entire pre-recorded message (which was voiced by a female) while making just-slightly-over-exaggerated facial expressions. It was low key humor but still entertaining. It also made me realize that however sick the passengers were of hearing the safety routine, these poor flight attendants had heard it so many times they could recite the entire recording by heart.
It's always been a complicated language. The recent C++ 11/14 are significant improvements though, and in many ways actually make things quite a bit simpler and safer for the typical programmer in many ways. A lot of the footprint of C++ as a language is the incredible dedication to backwards compatibility. Even the earliest C++ programs (as well as C libraries, of course) will still compile even in modern compilers with minimal modifications.
With the addition of standardized smart pointers, and making proper use of RAII techniques, C++ actually feels a lot more like C# than C++ 98... just with uglier-looking syntax and a few more sharp edges. And of course, it still can compete with or beat nearly every other language in terms of performance, which is still critical to some types of applications.