If you're talking about Ruby + Rails, then I agree 100% (but the esoteric, unmalleable, broken parts are in the Rails framework/libraries).
If you're talking about the core Ruby language itself without Rails, I don't. I still have quite a few Ruby scripts that were quick and easy to write, are super-easy to read and maintain, and most didn't need any changes to run perfectly from Ruby 1.8 through 2.4 (a few needed some very minor changes). One was a multi-threaded crawler that built a SQlite database of responses (with complete headers and content) for classification. It replaced tens of thousands of lines of Java code with about 200 lines of Ruby code, and the resulting code was orders of magnitude more grokkable and maintainable. It also ran faster, but that was only because it was using SQLite (with all the safeties turned off) instead of an older DB2 server.;-)
Unfortunately, Ruby is a bad choice for a web server unless you need something very small/simple (and you already happen to be using Ruby). I still see Python and Ruby as vastly superior alternatives to older languages used to write shell/utility/configuration scripts. Perhaps the biggest problems with these languages is that they give developers a false sense of security and make them think "I can (and am determined to) do ANYTHING with this language!"
Anyway, I do plan to re-evaluate Node.js at some point in the near future. I might already be using Node for something today if my first experience with it hadn't been:
"a single Ruby script with 20-30 threads performing a speed test on a Node.js "Hello World" page brought it down in 30-60 seconds" (easily repeatable, I tested the latest stable and TLS versions about a year ago)
Do they actually say that? Wow, I visit cnn.com often and I never knew that. I mean, I know I try to keep my PC muted unless I'm specifically watching something specific on YouTube/NetFlix/etc., but I didn't realize I was that (successfully) anal about it.
Yep. Next up will be a video ad version of the old whack-a-mole game. As soon as your mouse gets close to pause/close/X button, it will vanish and pop up somewhere else on the page.
Hmm, I wonder if we could fight evil with evil here. Someone could write and patent that, create a web site no one ever visits and put it on there (so that no one can claim you're not actually using the patent), and then patent-troll any web advertisers that try to do that.
I can get an iPhone 5 with an unlimited dataplan for $20/m cheaper than a basic cell phone.
No, you cannot get a data plan $20/m cheaper than a "basic" cell phone. I pay about $3 - $5 per month for prepaid cell phone service and usage. You can't get $20 per month cheaper unless your SP pays you $15 - $17 per month to use their unlimited data plan.
I have no idea. I know Ruby was heavily influenced by smalltalk, but even after playing around with 25+ different programming languages (I even tried squirrel for a bit), somehow I never got around to looking at smalltalk.;-)
Do you really not realize how that sounds? You're basically saying web servers have nothing to do with the web at all, that because it's server-side logic, it's not "web". That's asinine. It's a client-server model. You can't have clients without servers, and those servers need controller logic. Using that logic, you would have to say that node.js web servers have even less to do with the web than rails (since it skips the view logic and primarily serves json), which is also asinine. And it doesn't matter what Rails 0.x started out as, it's what it became.
BS. ActiveRecord is about mapping the OO language's objects to a relational database. Rails is a parent project that includes ActiveRecord along with SEVERAL OTHER projects to build a very large (and bloated) MVC web application framework. The part you're referring to is just the "M" of the "MVC" framework. The "V" and the "C" have everything to do with WEB!
WikiPedia's intro paragraph for Rails:
Ruby on Rails, or simply Rails, is a server-side web application framework written in Ruby under the MIT License. Rails is a model–view–controller (MVC) framework, providing default structures for a database, a web service, and web pages. It encourages and facilitates the use of web standards such as JSON or XML for data transfer, and HTML, CSS and JavaScript for display and user interfacing. In addition to MVC, Rails emphasizes the use of other well-known software engineering patterns and paradigms, including convention over configuration (CoC), don't repeat yourself (DRY), and the active record pattern.[4]
When I first tried both Ruby and Python, to me they seemed damn close to 100% equivalent in terms of features and ease-of-use, but to me the minor differences feel more elegant in Ruby and more irksome in Python. Maybe I'm just a bit more more old-school, maybe I just like the {} more than indentation for code blocks, or maybe it's just that I tried Ruby first.
Anyway, most of the languages I've worked with in the past 25 years have used C-style curly braces for code blocks, and once you get used to the {}, I find statements like this to be extremely elegant, simple, and self-explanatory (without even needing to know much about Ruby): ['a', 'b', 'c', 'd', 'e', 'f'].sort {|a,b| b <=> a } # It's intuitive to me that this will sort the list backwards
10.times {|i| puts("Iteration #{i}") } # I love how even constant literal values are instances of classes
7.days.ago # Base classes like Integer are extendable, and while it allows devs to shoot themselves in the foot, I can't imagine a more readable way to deal with datetime values
do_something() if x # I like the option to have leading or trailing if/while/etc.
x = case y # Like a C-style switch statement on steroids
when Integer then 0
when Array then 1
when/regex/ then 2
when "fixed string" then 3 end
Would the code to implement these in Python be all that different? Not really. But I find the extra hoops you have to jump through to do these things (again and again) to be annoying. Why can't Python add a switch/case statement? Why can't you call string.length or string.size (it's supposed to be an object-oriented language after all)?
I've never had any problem with the Ruby language itself. If you look at what high-level scripting languages like Perl/Python/Ruby are good for (small-to-medium utility scripts, not large systems), I prefer Ruby over the others. The whole concept of the Rails framework was always more hype than substance. IMO Ruby's biggest problem was that most developers never considered it until the Rails hype (probably because there was a much bigger need for web development than for utility scripts).
Very true. Ruby was (and still is) an awesome language at a conceptual level. Even though Ruby's runtime engine is slower and behind more established/popular scripting language engines like Python, I still strongly prefer using Ruby over any other language for writing utility scripts. It never made much sense for web server logic though (unless it's a small internal web server intended for very light traffic). IMO Rails was the worst thing to come from Ruby, but most developers using it were too wrapped up in the hype to notice.
JavaScript+Node seems like the opposite (e.g. a crappy language with a superior runtime engine). I like the async nature of it, though it drove me nuts when I needed to chain together multiple queries to respond to a single page request. That probably means I was "doing it wrong", but I was just getting my feet wet with it.;-) It also bugged me how easy it was to make the Node.js engine lock up and crash. Maybe it's just the specific version I tried (which was about a year ago), or maybe it's only when Node.js is compiled for Windows, but a single Ruby script with 20-30 threads performing a speed test on a Node.js "Hello World" page brought it down in 30-60 seconds (though it did run impressively fast until it crashed;-).
Meh, I would just tell them 0 makes more sense than 1 at the hardware level, that the details are not important for an intro class, and that most programming languages are 0-based and it's a very minor quirk that's not hard to get used to.
IMO an intro class should assume that the vast majority of students will NEVER take another programming class while attempting to interest as many kids as possible (without attempting to punish kids who aren't that interested in it). In that light, it should lightly introduce kids to as many concepts as possible with as few syntactic hassles as possible. Start with an easy-to-read and easy-to-learn language like Ruby or Python so you can explain simple variables, arrays, conditions, loops, and a simple algorithm like bubble-sort on the first day, and walk kids through writing their own version of it in the first week. That may seem ambitious, but that first example above is less than 10 lines of code. Follow the KISS principle. In fact, I think I would explain the KISS principle to kids on the first day and ask them what the KISS principle is in the first question on every test.;-)
In class the kids would learn to write code, working on very simple programming projects with no internet (so they can't download someone else's code), with plenty of assistance. At home the kids would learn to read code, downloading someone else's code (oh, the irony;-) and adding their own comments to explain what they think it's doing or to ask about things they don't understand. Bonus points could be given for spotting bugs or suggesting ways to improve or simplify the code. Instead of being penalized, kids would be rewarded for asking questions about parts they don't understand. All questions would be answered (in class) after the homework is graded, which would double as a review for the quiz/test on that homework assignment.
Perhaps the last couple weeks of class would branch out into a history/survey of languages, how they differ while still providing the same basic building blocks. Kids wouldn't have to read/write code in these languages, and test questions on them would be fairly simple.
I agree with the sentiment but disagree with choosing BASIC. I learned it back in the 80's, completed a CS major in the first half of the 90's, and have gone through over 20 programming languages. I would choose either Ruby or Python, and I would simply avoid the more advanced topics the kids aren't ready to learn. You start by teaching them simple programs where kids don't define functions or classes. Later on you add basic functions, and show them why they're great.
Example syntax (sorry, I just really get a kick out of that 10.times syntax): array = [1, 10, 5, 7, 20, 15, 3, 18, 7, 12] 10.times {|i|
10.times {|j|
array[i], array[j] = array[j], array[i] if i < j and array[j] < array[i]
} }
Alternative syntax: array = [1, 10, 5, 7, 20, 15, 3, 18, 7, 12] for i in 0..array.size-1
for j in 0..array.size-1
if i < j and array[j] < array[i]
array[i], array[j] = array[j], array[i] # Swap elements i and j
end
end end
I agree with you in the way that I feel most kids don't need to be subjected to math beyond Algebra 1 (with Geometry being a maybe). However, while I feel it makes sense to get students through Algebra 1, IMO it makes just as much sense to teach them different methods of applied logic. An introductory programming course would show one way applied logic is useful, and an introductory law course would show another way. In high school let kids pick advanced math, basic applied logic, or both, and let them choose their college or career path from there. Mechanics will have to deal with increasingly computerized cars, real estate agents will have to deal with increasingly digital sales tactics, and both will likely have to deal with legal issues. Getting a bit more basic knowledge about each in high school will help them even if they don't want to become a programmer or a lawyer.
The only question is why the CS and IT, particularly the Silicon Valley start up culture, actively drive women away.
IMO if you're looking at the job market, you're not looking far back enough. I'm a Georgia Tech CS graduate, and all the girls I spoke to while I was at Tech who tried the intro to CS classes seemed to hate it with a passion. Obviously I didn't ask a statistically significant number of girls, but when 10 out of 10 girls said the same thing, it seemed pointless to keep asking (it's not like I was a psych major). When I asked what they hated about it, it was always the programming itself (not the teachers, not the other students, etc.) The only reason I heard any of them give was that it was so boring that it was mind-numbing and drove them nuts. One even went so far as to say she couldn't imagine anyone actually wanting to do it unless they were autistic or something like that. After the intro to CS classes, exactly 2 of the CS classes I took had 1 girl in them. All the rest had 0. The guys to girls ratio in the CS classes was probably higher than 100:1.
Anyway, I'm not saying they couldn't handle it (they were smart enough to get into tech, and CS was one of the easier majors there), and I don't believe there's any biological reason for the girls I asked to give those answers. I met a lot of guys who hated CS for the exact same reasons. When most guys seem to hate it too, the question isn't why so many girls hate it. IMO the real question is what's different about the people who love it (regardless of gender). Maybe we really are at least slightly autistic.
As cool as it is, I quickly get tired of speaking to my devices. My main way to use it is "Ok Google, call John Smith on speakerphone" (which is an awesome hands-free way to call someone when driving an older car).
It's like the super-highway effect. The larger you make the highways, the more drivers it attracts, causing drivers to change their driving patterns until it gets over-congested. Expand it again? It attracts even more. If you build it, they will come.
In this case, the more storage space the average phone has, the less app developers will care about size. When it comes to games, the artists will go nuts adding more and higher-res images/video/music/sound effects. I worked with a company on a few iPhone/Android games 5-7 years ago, and roughly 80% of the app sizes was for music and sound effects. Devs like me had to argue with the artists to keep the app from being 4 times the size.
I had similar things happen with other Android phones (I've also seen it happen with older iPhones/iPods each time you apply a new iOS version), which is why I decided to go with an unlocked Nexus 5. So far everything is still working great except for certain sites on Chrome, and those sites seem to be the ones that try to cram too much crap (that no one wants) into their mobile pages.
Take weather.com as an example. Don't give me an app with alerts that drains battery life and CPU performance 24/7. Just let me bookmark two pages for hourly and 10-day (maybe a third page for the current weather radar), show me the freaking temperature, tell me when it might rain, and include some static ads if you have to. Get rid of the fancy JavaScript, options to add/save 10 locations, high-res videos and animated ads, and the rest of the crap that makes it so painful that I gave up on visiting that web site on my cell phone.
P.S. - I just pulled up weather.com on my cell for the first time in a while, and it's actually a lot better than it was 6-12 months ago. It's still got a bunch of extra crap in the web page I don't want, but it's loading a LOT faster than it used to.
You seem to be equating non-democratic with polygamous, which is ludicrous. What about Communist countries like China, Russia, North Korea, or Vietnam? Would you call them democracies? Would you call them polygamous? Would you say their birth rates follow the same trends in the polygamous countries you're referring to? In China, they chose to pass a law to prevent (primarily) poor farming families from having too many kids, which ended up in massive numbers of forced abortions, sterilization, murder of children, giving children up for adoption, etc. There's no way they would've done that if it primarily affected the wealthier ruling class. (Your login name, combined with the fact that it has the world's highest population, makes the fact that you ignored China as an example a little ironic.)
I don't have a problem with your claims that polygamous countries are that way, just your claims that all (or even most) non-democratic countries are that way. If the latter is false, then so are your claims that it has anything to do with the fact that democracies keep voting themselves "bread and circuses".
When it comes to polygamous countries, the statistics aren't backwards because poorer men choose to have less children. It's because the poorest men literally cannot get themselves a wife. All those 0's can skew the statistics very heavily. From what I've read, the men who can manage to get their first wife try to have as many kids as they can. Lack of benefits doesn't slow them down, only lack of wives. More kids -> more child labor -> more family wealth -> more wives -> more kids.
Well, its a general failing of most xxxxxxxxxx countries that the less educated and lower earning groups reproduce more...
(HTML strikethrough doesn't seem to work in a slashdot post.)
There, fixed that for you. It doesn't matter what kind of government they live under, the less educated reproduce more all over the world.
I disagree on the self-driving cars. While it's an extremely difficult (and expensive) technical challenge at this point, it seems to be getting closer to a tipping point. Google is a lot farther a lot faster than I thought they would.
At some point I believe that it will make driving safer overall, that it will both come down in cost and reduce auto insurance rates enough to pay for itself, and that it will provide better mobility options to handicapped or elderly drivers that have difficulty driving (or drivers who make a mistake and get their license suspended). It may even provide health and/or productivity benefits for commuters as well. A number of us suffer from stress-related health issues, and commutes can add a lot of stress to a work day. A number of us have times when we feel the need to work too many hours and not sleep enough, and being able to nap or even just rest our eyes during the commute would be a big help.
I get what you're saying, but the fault still lies with the mail client. It's not like the server noticed the email stuck in the client's Outbox and said: "Oh, please let me send that for you!" The client had to go out of its way to try sending that email through the GSU server. I get the whole "Neither snow nor rain nor..." concept the Apple devs were probably aiming for, but it can literally get people fired, so it needs to be a feature you have to consciously enable (not a feature that's automatic and there seems no way to disable).
OTOH, since it has such a big impact on lawyers and judges, they could probably bring a great class action suit against Apple for this. I'm not going to suggest that to my wife though (just in case). I don't particularly like Apple, but I don't hate anyone enough to wish a lawsuit on them.;-)
I've seen it happen with test emails I've tried to send from her Mac. I'm a software developer, so I'm really anal when testing things like this. I made absolutely certain her "@bellsouth.net" account was selected, I double-checked the "From" address in the Outbox after attempting to send it, and when I checked the next morning (with no one touching the Mac overnight), the Sent Items folder showed the "From" address under her "@gsu.edu" account. It doesn't just try a different server, it actually changes the email to another account automatically it if the retries fail for too long a period of time.
I've had two developers who write code on Macs every day confirm that this had happened to them as well, so it's not just my wife's Mac. I suspect most people don't notice this because it's unusual to lose access to your mail server for that long. If it happens to you once in a blue moon, you will assume you made the mistake yourself (which is only natural). It's only when it happens to you consistently that you dig until you find the culprit.
If you're talking about Ruby + Rails, then I agree 100% (but the esoteric, unmalleable, broken parts are in the Rails framework/libraries).
If you're talking about the core Ruby language itself without Rails, I don't. I still have quite a few Ruby scripts that were quick and easy to write, are super-easy to read and maintain, and most didn't need any changes to run perfectly from Ruby 1.8 through 2.4 (a few needed some very minor changes). One was a multi-threaded crawler that built a SQlite database of responses (with complete headers and content) for classification. It replaced tens of thousands of lines of Java code with about 200 lines of Ruby code, and the resulting code was orders of magnitude more grokkable and maintainable. It also ran faster, but that was only because it was using SQLite (with all the safeties turned off) instead of an older DB2 server. ;-)
Unfortunately, Ruby is a bad choice for a web server unless you need something very small/simple (and you already happen to be using Ruby). I still see Python and Ruby as vastly superior alternatives to older languages used to write shell/utility/configuration scripts. Perhaps the biggest problems with these languages is that they give developers a false sense of security and make them think "I can (and am determined to) do ANYTHING with this language!"
Anyway, I do plan to re-evaluate Node.js at some point in the near future. I might already be using Node for something today if my first experience with it hadn't been:
"a single Ruby script with 20-30 threads performing a speed test on a Node.js "Hello World" page brought it down in 30-60 seconds" (easily repeatable, I tested the latest stable and TLS versions about a year ago)
Do they actually say that? Wow, I visit cnn.com often and I never knew that. I mean, I know I try to keep my PC muted unless I'm specifically watching something specific on YouTube/NetFlix/etc., but I didn't realize I was that (successfully) anal about it.
Yep. Next up will be a video ad version of the old whack-a-mole game. As soon as your mouse gets close to pause/close/X button, it will vanish and pop up somewhere else on the page.
Hmm, I wonder if we could fight evil with evil here. Someone could write and patent that, create a web site no one ever visits and put it on there (so that no one can claim you're not actually using the patent), and then patent-troll any web advertisers that try to do that.
I can get an iPhone 5 with an unlimited dataplan for $20/m cheaper than a basic cell phone.
No, you cannot get a data plan $20/m cheaper than a "basic" cell phone. I pay about $3 - $5 per month for prepaid cell phone service and usage. You can't get $20 per month cheaper unless your SP pays you $15 - $17 per month to use their unlimited data plan.
I have no idea. I know Ruby was heavily influenced by smalltalk, but even after playing around with 25+ different programming languages (I even tried squirrel for a bit), somehow I never got around to looking at smalltalk. ;-)
Do you really not realize how that sounds? You're basically saying web servers have nothing to do with the web at all, that because it's server-side logic, it's not "web". That's asinine. It's a client-server model. You can't have clients without servers, and those servers need controller logic. Using that logic, you would have to say that node.js web servers have even less to do with the web than rails (since it skips the view logic and primarily serves json), which is also asinine. And it doesn't matter what Rails 0.x started out as, it's what it became.
BS. ActiveRecord is about mapping the OO language's objects to a relational database. Rails is a parent project that includes ActiveRecord along with SEVERAL OTHER projects to build a very large (and bloated) MVC web application framework. The part you're referring to is just the "M" of the "MVC" framework. The "V" and the "C" have everything to do with WEB!
WikiPedia's intro paragraph for Rails:
Ruby on Rails, or simply Rails, is a server-side web application framework written in Ruby under the MIT License. Rails is a model–view–controller (MVC) framework, providing default structures for a database, a web service, and web pages. It encourages and facilitates the use of web standards such as JSON or XML for data transfer, and HTML, CSS and JavaScript for display and user interfacing. In addition to MVC, Rails emphasizes the use of other well-known software engineering patterns and paradigms, including convention over configuration (CoC), don't repeat yourself (DRY), and the active record pattern.[4]
When I first tried both Ruby and Python, to me they seemed damn close to 100% equivalent in terms of features and ease-of-use, but to me the minor differences feel more elegant in Ruby and more irksome in Python. Maybe I'm just a bit more more old-school, maybe I just like the {} more than indentation for code blocks, or maybe it's just that I tried Ruby first.
Anyway, most of the languages I've worked with in the past 25 years have used C-style curly braces for code blocks, and once you get used to the {}, I find statements like this to be extremely elegant, simple, and self-explanatory (without even needing to know much about Ruby):
['a', 'b', 'c', 'd', 'e', 'f'].sort {|a,b| b <=> a } # It's intuitive to me that this will sort the list backwards
10.times {|i| puts("Iteration #{i}") } # I love how even constant literal values are instances of classes
7.days.ago # Base classes like Integer are extendable, and while it allows devs to shoot themselves in the foot, I can't imagine a more readable way to deal with datetime values
do_something() if x # I like the option to have leading or trailing if/while/etc.
x = case y # Like a C-style switch statement on steroids /regex/ then 2
when Integer then 0
when Array then 1
when
when "fixed string" then 3
end
Would the code to implement these in Python be all that different? Not really. But I find the extra hoops you have to jump through to do these things (again and again) to be annoying. Why can't Python add a switch/case statement? Why can't you call string.length or string.size (it's supposed to be an object-oriented language after all)?
I've never had any problem with the Ruby language itself. If you look at what high-level scripting languages like Perl/Python/Ruby are good for (small-to-medium utility scripts, not large systems), I prefer Ruby over the others. The whole concept of the Rails framework was always more hype than substance. IMO Ruby's biggest problem was that most developers never considered it until the Rails hype (probably because there was a much bigger need for web development than for utility scripts).
Very true. Ruby was (and still is) an awesome language at a conceptual level. Even though Ruby's runtime engine is slower and behind more established/popular scripting language engines like Python, I still strongly prefer using Ruby over any other language for writing utility scripts. It never made much sense for web server logic though (unless it's a small internal web server intended for very light traffic). IMO Rails was the worst thing to come from Ruby, but most developers using it were too wrapped up in the hype to notice.
JavaScript+Node seems like the opposite (e.g. a crappy language with a superior runtime engine). I like the async nature of it, though it drove me nuts when I needed to chain together multiple queries to respond to a single page request. That probably means I was "doing it wrong", but I was just getting my feet wet with it. ;-) It also bugged me how easy it was to make the Node.js engine lock up and crash. Maybe it's just the specific version I tried (which was about a year ago), or maybe it's only when Node.js is compiled for Windows, but a single Ruby script with 20-30 threads performing a speed test on a Node.js "Hello World" page brought it down in 30-60 seconds (though it did run impressively fast until it crashed ;-).
Meh, I would just tell them 0 makes more sense than 1 at the hardware level, that the details are not important for an intro class, and that most programming languages are 0-based and it's a very minor quirk that's not hard to get used to.
IMO an intro class should assume that the vast majority of students will NEVER take another programming class while attempting to interest as many kids as possible (without attempting to punish kids who aren't that interested in it). In that light, it should lightly introduce kids to as many concepts as possible with as few syntactic hassles as possible. Start with an easy-to-read and easy-to-learn language like Ruby or Python so you can explain simple variables, arrays, conditions, loops, and a simple algorithm like bubble-sort on the first day, and walk kids through writing their own version of it in the first week. That may seem ambitious, but that first example above is less than 10 lines of code. Follow the KISS principle. In fact, I think I would explain the KISS principle to kids on the first day and ask them what the KISS principle is in the first question on every test. ;-)
In class the kids would learn to write code, working on very simple programming projects with no internet (so they can't download someone else's code), with plenty of assistance. At home the kids would learn to read code, downloading someone else's code (oh, the irony ;-) and adding their own comments to explain what they think it's doing or to ask about things they don't understand. Bonus points could be given for spotting bugs or suggesting ways to improve or simplify the code. Instead of being penalized, kids would be rewarded for asking questions about parts they don't understand. All questions would be answered (in class) after the homework is graded, which would double as a review for the quiz/test on that homework assignment.
Perhaps the last couple weeks of class would branch out into a history/survey of languages, how they differ while still providing the same basic building blocks. Kids wouldn't have to read/write code in these languages, and test questions on them would be fairly simple.
*steps down off his soap box*
I agree with the sentiment but disagree with choosing BASIC. I learned it back in the 80's, completed a CS major in the first half of the 90's, and have gone through over 20 programming languages. I would choose either Ruby or Python, and I would simply avoid the more advanced topics the kids aren't ready to learn. You start by teaching them simple programs where kids don't define functions or classes. Later on you add basic functions, and show them why they're great.
Example syntax (sorry, I just really get a kick out of that 10.times syntax):
array = [1, 10, 5, 7, 20, 15, 3, 18, 7, 12]
10.times {|i|
10.times {|j|
array[i], array[j] = array[j], array[i] if i < j and array[j] < array[i]
}
}
Alternative syntax:
array = [1, 10, 5, 7, 20, 15, 3, 18, 7, 12]
for i in 0..array.size-1
for j in 0..array.size-1
if i < j and array[j] < array[i]
array[i], array[j] = array[j], array[i] # Swap elements i and j
end
end
end
Output:
=> [1, 3, 5, 7, 7, 10, 12, 15, 18, 20]
I agree with you in the way that I feel most kids don't need to be subjected to math beyond Algebra 1 (with Geometry being a maybe). However, while I feel it makes sense to get students through Algebra 1, IMO it makes just as much sense to teach them different methods of applied logic. An introductory programming course would show one way applied logic is useful, and an introductory law course would show another way. In high school let kids pick advanced math, basic applied logic, or both, and let them choose their college or career path from there. Mechanics will have to deal with increasingly computerized cars, real estate agents will have to deal with increasingly digital sales tactics, and both will likely have to deal with legal issues. Getting a bit more basic knowledge about each in high school will help them even if they don't want to become a programmer or a lawyer.
You should've logged in. Assuming English is your primary language, that should've been modded Funny +5.
The only question is why the CS and IT, particularly the Silicon Valley start up culture, actively drive women away.
IMO if you're looking at the job market, you're not looking far back enough. I'm a Georgia Tech CS graduate, and all the girls I spoke to while I was at Tech who tried the intro to CS classes seemed to hate it with a passion. Obviously I didn't ask a statistically significant number of girls, but when 10 out of 10 girls said the same thing, it seemed pointless to keep asking (it's not like I was a psych major). When I asked what they hated about it, it was always the programming itself (not the teachers, not the other students, etc.) The only reason I heard any of them give was that it was so boring that it was mind-numbing and drove them nuts. One even went so far as to say she couldn't imagine anyone actually wanting to do it unless they were autistic or something like that. After the intro to CS classes, exactly 2 of the CS classes I took had 1 girl in them. All the rest had 0. The guys to girls ratio in the CS classes was probably higher than 100:1.
Anyway, I'm not saying they couldn't handle it (they were smart enough to get into tech, and CS was one of the easier majors there), and I don't believe there's any biological reason for the girls I asked to give those answers. I met a lot of guys who hated CS for the exact same reasons. When most guys seem to hate it too, the question isn't why so many girls hate it. IMO the real question is what's different about the people who love it (regardless of gender). Maybe we really are at least slightly autistic.
As cool as it is, I quickly get tired of speaking to my devices. My main way to use it is "Ok Google, call John Smith on speakerphone" (which is an awesome hands-free way to call someone when driving an older car).
It's like the super-highway effect. The larger you make the highways, the more drivers it attracts, causing drivers to change their driving patterns until it gets over-congested. Expand it again? It attracts even more. If you build it, they will come.
In this case, the more storage space the average phone has, the less app developers will care about size. When it comes to games, the artists will go nuts adding more and higher-res images/video/music/sound effects. I worked with a company on a few iPhone/Android games 5-7 years ago, and roughly 80% of the app sizes was for music and sound effects. Devs like me had to argue with the artists to keep the app from being 4 times the size.
I had similar things happen with other Android phones (I've also seen it happen with older iPhones/iPods each time you apply a new iOS version), which is why I decided to go with an unlocked Nexus 5. So far everything is still working great except for certain sites on Chrome, and those sites seem to be the ones that try to cram too much crap (that no one wants) into their mobile pages.
Take weather.com as an example. Don't give me an app with alerts that drains battery life and CPU performance 24/7. Just let me bookmark two pages for hourly and 10-day (maybe a third page for the current weather radar), show me the freaking temperature, tell me when it might rain, and include some static ads if you have to. Get rid of the fancy JavaScript, options to add/save 10 locations, high-res videos and animated ads, and the rest of the crap that makes it so painful that I gave up on visiting that web site on my cell phone.
P.S. - I just pulled up weather.com on my cell for the first time in a while, and it's actually a lot better than it was 6-12 months ago. It's still got a bunch of extra crap in the web page I don't want, but it's loading a LOT faster than it used to.
You seem to be equating non-democratic with polygamous, which is ludicrous. What about Communist countries like China, Russia, North Korea, or Vietnam? Would you call them democracies? Would you call them polygamous? Would you say their birth rates follow the same trends in the polygamous countries you're referring to? In China, they chose to pass a law to prevent (primarily) poor farming families from having too many kids, which ended up in massive numbers of forced abortions, sterilization, murder of children, giving children up for adoption, etc. There's no way they would've done that if it primarily affected the wealthier ruling class. (Your login name, combined with the fact that it has the world's highest population, makes the fact that you ignored China as an example a little ironic.)
I don't have a problem with your claims that polygamous countries are that way, just your claims that all (or even most) non-democratic countries are that way. If the latter is false, then so are your claims that it has anything to do with the fact that democracies keep voting themselves "bread and circuses".
When it comes to polygamous countries, the statistics aren't backwards because poorer men choose to have less children. It's because the poorest men literally cannot get themselves a wife. All those 0's can skew the statistics very heavily. From what I've read, the men who can manage to get their first wife try to have as many kids as they can. Lack of benefits doesn't slow them down, only lack of wives. More kids -> more child labor -> more family wealth -> more wives -> more kids.
Well, its a general failing of most xxxxxxxxxx countries that the less educated and lower earning groups reproduce more...
(HTML strikethrough doesn't seem to work in a slashdot post.) There, fixed that for you. It doesn't matter what kind of government they live under, the less educated reproduce more all over the world.
I disagree on the self-driving cars. While it's an extremely difficult (and expensive) technical challenge at this point, it seems to be getting closer to a tipping point. Google is a lot farther a lot faster than I thought they would.
At some point I believe that it will make driving safer overall, that it will both come down in cost and reduce auto insurance rates enough to pay for itself, and that it will provide better mobility options to handicapped or elderly drivers that have difficulty driving (or drivers who make a mistake and get their license suspended). It may even provide health and/or productivity benefits for commuters as well. A number of us suffer from stress-related health issues, and commutes can add a lot of stress to a work day. A number of us have times when we feel the need to work too many hours and not sleep enough, and being able to nap or even just rest our eyes during the commute would be a big help.
Try darkweb.honeypot.com
I think I see the problem...
"with some of the school's own alumni going on to found their own successful programs, like App Academy"
Dev Bootcamp failed primarily because its own students graduated and then decided to cannibalize its business.
I get what you're saying, but the fault still lies with the mail client. It's not like the server noticed the email stuck in the client's Outbox and said: "Oh, please let me send that for you!" The client had to go out of its way to try sending that email through the GSU server. I get the whole "Neither snow nor rain nor ..." concept the Apple devs were probably aiming for, but it can literally get people fired, so it needs to be a feature you have to consciously enable (not a feature that's automatic and there seems no way to disable).
OTOH, since it has such a big impact on lawyers and judges, they could probably bring a great class action suit against Apple for this. I'm not going to suggest that to my wife though (just in case). I don't particularly like Apple, but I don't hate anyone enough to wish a lawsuit on them. ;-)
I've seen it happen with test emails I've tried to send from her Mac. I'm a software developer, so I'm really anal when testing things like this. I made absolutely certain her "@bellsouth.net" account was selected, I double-checked the "From" address in the Outbox after attempting to send it, and when I checked the next morning (with no one touching the Mac overnight), the Sent Items folder showed the "From" address under her "@gsu.edu" account. It doesn't just try a different server, it actually changes the email to another account automatically it if the retries fail for too long a period of time.
I've had two developers who write code on Macs every day confirm that this had happened to them as well, so it's not just my wife's Mac. I suspect most people don't notice this because it's unusual to lose access to your mail server for that long. If it happens to you once in a blue moon, you will assume you made the mistake yourself (which is only natural). It's only when it happens to you consistently that you dig until you find the culprit.