Discretionary non-defense spending is exactly the category for NASA expenditure. Its something that you get to CHOOSE to spend on. In case of NASA, a rough guess is that at least half of their budget is just simply wasted.
So instead of tossing that $8B a year that they piss away on things like Constellation, Ares-I, SLS or any number of previous cancelled manned spaceflight projects, or stupendously expensive toys like MLS or JWST that will never justify their cost - i'd rather see this money go to NSF, education, frigging EPA, or whatever else.
I am a space nut, i am spending quite a bit of my own money on related hobbies and interests, hoping to eventually fly to space myself as well. And yet, i am completely against the model of government welfare for aerospace workers prevalent right now in NASA.
The problem is no "two party system". What you have is a voting system, with the stalemate of the two parties one of its inevitable emergent properties. Range voting or any other less insane methods than the current FPTP.
Solar film goes on the clothes/backpacks/hats. You can get a lot of hiking/camping gear with solar film on it these days.
Useless in a city, perfect for that grand canyon crossing.
The problem you have is the voting system itself. The single-winner first-past-the-post voting system has several properties that tilts the system into the current stalemate with no real options.
DSP is generally meant to be a programmable array. Most video compression and decompression accelerators in such systems are in large part fixed function ASICs, and not programmable down to macroblock processing level. Even some audio codecs are fixed function.
Fixed function ASIC will always beat DSPs and CPUs in MIPS/watt domain, and often in $/MIPS as well.
>>The thing about robotics is there's a great divide between really cool stuff and really lame stuff in terms of price.
This is just flat out wrong. You can do really really cool stuff relatively inexpensive, you just have to plan and think about what you are trying to do. Arduino and its shields have endless possibilities, and if you pair it with a powerful embedded CPU like any of the Android phones ( Arduino has specific support , ADK ) you can do amazing things.
Or if an android phone feels too locked down, get a real embedded computer like Beagleboard ( to pair with Arduino, some cheap USB webcams, and again you are free to do amazing stuff. Or use XBee or Bluetooth for wireless connection to the MCU, the modules are dirt cheap, and you can do a lot of heavy lifting algorithms on PC.
Again, you have to think and plan for flexibility. There are some basic types of feedback sensors you want to get running early, like wheel encoders and some sort of inertial measurement, gyro and accelerometers. Both can be had very cheap these days, from single axis up to 9DOF fully integrated modules.
Yes, if you think that a $1000 Bioloid kits or $10000 NAO kits are the only cool thing in town, you will have to shell out for them, but then whats the fun in that ? Oh, i have a humanoid. That can do backflips. BFD.
Cant really recommend one in particular, as it depends on what you want to do. There are several categories : 2wheel differential drive bases, legged hexapods, 4wd bases, even bipeds and robotic arms.
If you get one that is designed to be Arduino-compatible, and can take any number of Arduino expansion shields, you will have endless possibilities. I'd say easiest starting point is a complete 2WD kit with some accessory sensors. This is a nice one http://www.makershed.com/product_p/mkseeed7.htm , comes with motors and all. Just pick a "mainboard" and motor driver shield and you are good to go.
Even further. Which iPhone is it that outsells every other phone ? Because if you take any individual model, ( 3GS, 4S etc ) they are not ORDERS of MAGNITUDE ahead of best selling android handsets. two iPhone 4 variants in 2011 go toe to toe with best android handsets, Galaxy II, Evo and Thunderbolt. Nowhere even close to an order of magnitude difference.
And yeah, ofc Nokia 11xx, 5230 and the like just kill everything else in sales figures.
I also have Apple, Linux and Solaris machines and none of them give me the "WTF were they thinking?!" headaches that Windows does.
Seriously ? You must not be doing much with any of these machines then. The entire Unix heritage is just one big "wtf were they thinking?!". For an introductory course, and as a homage to the late mr. Ritchie himself, read unix haters handbook once, and try to understand what it is saying.
I'm not here to praise Microsoft. I have used and programmed for probably more than 30 different operating systems in my life ( ever heard of V+ my friend ? ) . They all suck, when you get down to it. All the great OSes are the ones that never leave the labs - if they did, they would start to suck.
Standard batteries in use today (say in laptops or smartphones) typically don't last longer than 300-500, .. these would be lithium cobalt oxide batteries. As mentioned everywhere in this thread, other cathode materials last much longer, and are in use in other applications.
. If you have a sufficiently high quality original, even if it technically is not lossless, the differences are minimal.
I know what you mean, but in practice it does not work quite as well as that. Problem is, most common video compression algorithms struggle with previously quantized data.
A simple test, your high-res webcam probably outputs both VGA and/or MJPEG. Try compressing either with AVC at the same resolution and quality settings, and look at the results.
KDE 3.x didnt suck, KDE 4 does. Gnome 2 didnt suck, Unity and G3 just don't work at all. Windows ? I do not honestly care as long as cygwin window looks the same and i can still run older versions of Visual Studio and have Firefox.
I do use a macbook as well, which is OK and mostly works, but icant make myself use an IOS interface on anything. Too much pain.
I think the best user interface on my desktop has to be my Rigol DS1502E.
The problem with that is, you have all the forks around, and there are great time intervals where there isn't anything moderately stable and up to date to use.
My main working laptop is still on Ubuntu 10.04 LTS and it's getting quite long in the tooth with the lack of up to date software features, even at base libraries level. For the time being, i practically have no upgrade path either, so if i want a particular up to date software package i am often forced dget -x/dpkg-buildpackage it from either Debian/sid or Ubuntu newer versions, and pray that they have not pulled in any further dependencies, sometimes just locally modifying the control files or debian/rules to work around these OR resorting to locally build some newer dependency packages too. It's far from productive and convenient.
IMO, this current brownian motion around "new" desktop paradigms is just a waste of everyones time. Neither Unity or Gnome 3 or KDE 4 should have never become the main choice of any desktop distros until all the regressions from their predecessors have been addressed.
This here isn't complaining about "too much choice", its about having A DEPENDABLE choice. Nothing wrong with experimenting with new tech and new ideas, but to use a sorry car analogy : Corolla has always been a no frills sedan.
Pretty much exactly agree with everything you say.
Massive inline comments almost always serve as excuses for not refactoring the code when some aspect of code quality is going down. Could be either cyclomatic complexity, type cohesion, efferent coupling, number of lines per function, nesting depth, variables per function etc. etc.
Most of these can be objectively measured, and well scoring code rarely needs additional comments, and its usually this 1% where something incredibly clever or efficient is being done, and should actually be commented
One thing that code quality metrics cannot measure is the logical naming of the classes, functions, parameters and variables, and that is most frequent offense calling for extra comments. People somehow seem to still think that keeping identifier names short somehow improves the readability of the code, which is bunk.
Thanks, i've written each of assembler, C and C++ in embedded systems for years. One of my favorite reads that i keep coming back to is Joint Strike Fighter coding guidelines for C++. I also had a decent career in industrial robotics years ago.
I am a big fan of static code checkers, continuous integration and continuous deployment, selective application of unit testing and designing your systems to be testable at system level as well.
I also design my APIs and interfaces very carefully, and if there was a degree in applied software modularity i'd probably get it.
You sir, have completely missed the point.
A documented system architecture is way, way more important than comments in the code. Class and module level documentation is absolutely necessary, some at function level as well.
I stand by my statement that 99% of the _INLINE_ comments in the code are useless, or often even harmful. I invariably turn down job applicants who send me test task code with comments like // initialization part here // multiply by two // this function approximates square root
There absolutely is such a thing as self documenting code.
Comments are supposed to tell you what's going on.
I certainly hope not. Whenever i see comments in C++ or Java code i'm thinking "why did you not write this to be more ovious way in the first place, wtf needs explanations here".
There a few cases where code needs comments IMO, and class-level and function-level docs are perfectly OK. But comments within source are a sign of
a) something incredibly clever being done
b) sloppy design or poorly written code that needs explanation on whats going on
In 99% of the cases, its the second option
Good code is self documenting in everything that it does, at least in sane languages
Discretionary non-defense spending is exactly the category for NASA expenditure. Its something that you get to CHOOSE to spend on. In case of NASA, a rough guess is that at least half of their budget is just simply wasted.
So instead of tossing that $8B a year that they piss away on things like Constellation, Ares-I, SLS or any number of previous cancelled manned spaceflight projects, or stupendously expensive toys like MLS or JWST that will never justify their cost - i'd rather see this money go to NSF, education, frigging EPA, or whatever else.
I am a space nut, i am spending quite a bit of my own money on related hobbies and interests, hoping to eventually fly to space myself as well. And yet, i am completely against the model of government welfare for aerospace workers prevalent right now in NASA.
And this is a bogus argument. Within discretionary non-military spending, it has a huge, disproportionally large slice.
National Science Foundation gets more than two times less than NASA.
The problem is no "two party system". What you have is a voting system, with the stalemate of the two parties one of its inevitable emergent properties. Range voting or any other less insane methods than the current FPTP.
Solar film goes on the clothes/backpacks/hats. You can get a lot of hiking/camping gear with solar film on it these days. Useless in a city, perfect for that grand canyon crossing.
The problem you have is the voting system itself. The single-winner first-past-the-post voting system has several properties that tilts the system into the current stalemate with no real options.
DSP is generally meant to be a programmable array. Most video compression and decompression accelerators in such systems are in large part fixed function ASICs, and not programmable down to macroblock processing level. Even some audio codecs are fixed function.
Fixed function ASIC will always beat DSPs and CPUs in MIPS/watt domain, and often in $/MIPS as well.
I can tell that you have never used any of the Arduino kits, a lot of them solderless. Or Basic STAMPs even ?
>>The thing about robotics is there's a great divide between really cool stuff and really lame stuff in terms of price.
This is just flat out wrong. You can do really really cool stuff relatively inexpensive, you just have to plan and think about what you are trying to do. Arduino and its shields have endless possibilities, and if you pair it with a powerful embedded CPU like any of the Android phones ( Arduino has specific support , ADK ) you can do amazing things.
Or if an android phone feels too locked down, get a real embedded computer like Beagleboard ( to pair with Arduino, some cheap USB webcams, and again you are free to do amazing stuff. Or use XBee or Bluetooth for wireless connection to the MCU, the modules are dirt cheap, and you can do a lot of heavy lifting algorithms on PC.
Again, you have to think and plan for flexibility. There are some basic types of feedback sensors you want to get running early, like wheel encoders and some sort of inertial measurement, gyro and accelerometers. Both can be had very cheap these days, from single axis up to 9DOF fully integrated modules.
Yes, if you think that a $1000 Bioloid kits or $10000 NAO kits are the only cool thing in town, you will have to shell out for them, but then whats the fun in that ? Oh, i have a humanoid. That can do backflips. BFD.
There are numerous kits available, best sources for choosing one would be http://www.pololu.com/ , http://www.trossenrobotics.com/ , http://www.robotshop.com/ , http://www.lynxmotion.com/ , http://www.makershed.com/ and a bunch of others. http://sparkfun.com/ and http://adafruit.com/ for more general electronics components
Cant really recommend one in particular, as it depends on what you want to do. There are several categories : 2wheel differential drive bases, legged hexapods, 4wd bases, even bipeds and robotic arms.
If you get one that is designed to be Arduino-compatible, and can take any number of Arduino expansion shields, you will have endless possibilities. I'd say easiest starting point is a complete 2WD kit with some accessory sensors. This is a nice one http://www.makershed.com/product_p/mkseeed7.htm , comes with motors and all. Just pick a "mainboard" and motor driver shield and you are good to go.
I don't think I've ever met someone who wasn't a hacker/tweaker sort who didn't like their iPhones
It's hard to find people complaining about their Lexus or Saab purchases too. Regardless if the cars are any actual value for the money.
Even further. Which iPhone is it that outsells every other phone ? Because if you take any individual model, ( 3GS, 4S etc ) they are not ORDERS of MAGNITUDE ahead of best selling android handsets. two iPhone 4 variants in 2011 go toe to toe with best android handsets, Galaxy II, Evo and Thunderbolt. Nowhere even close to an order of magnitude difference. And yeah, ofc Nokia 11xx, 5230 and the like just kill everything else in sales figures.
I also have Apple, Linux and Solaris machines and none of them give me the "WTF were they thinking?!" headaches that Windows does.
Seriously ? You must not be doing much with any of these machines then. The entire Unix heritage is just one big "wtf were they thinking?!". For an introductory course, and as a homage to the late mr. Ritchie himself, read unix haters handbook once, and try to understand what it is saying.
I'm not here to praise Microsoft. I have used and programmed for probably more than 30 different operating systems in my life ( ever heard of V+ my friend ? ) . They all suck, when you get down to it. All the great OSes are the ones that never leave the labs - if they did, they would start to suck.
Mod parent up, i'm telling ya.
If you want to keep it private, upload it to a company that guarantees your privacy...
If you actually want privacy, i'm not sure why would you use either the word of "upload" or "a company".
I always thought the first movie was bullshit, and way overhyped. The second two were just inexcusable.
Most. Basic. Sci-Fi concept. Ever.
It's been done to death in modern sci-fi ages before Keanu had this glint in his eye, and much, much, much better.
Standard batteries in use today (say in laptops or smartphones) typically don't last longer than 300-500, .. these would be lithium cobalt oxide batteries. As mentioned everywhere in this thread, other cathode materials last much longer, and are in use in other applications.
. If you have a sufficiently high quality original, even if it technically is not lossless, the differences are minimal.
I know what you mean, but in practice it does not work quite as well as that. Problem is, most common video compression algorithms struggle with previously quantized data.
A simple test, your high-res webcam probably outputs both VGA and/or MJPEG. Try compressing either with AVC at the same resolution and quality settings, and look at the results.
http://www.theonion.com/articles/mars-rover-beginning-to-hate-mars,2072/
This will inevitably happen to MSL as well.
Dude. Get this one
..
http://www.youtube.com/watch?v=YvbAqw0sk6M
And you will know IMMEDIATELY what you'd do with it.
Eyes on the hips as she walks
+1
The same happened to Reader interface.
KDE 3.x didnt suck, KDE 4 does. Gnome 2 didnt suck, Unity and G3 just don't work at all. Windows ? I do not honestly care as long as cygwin window looks the same and i can still run older versions of Visual Studio and have Firefox.
I do use a macbook as well, which is OK and mostly works, but icant make myself use an IOS interface on anything. Too much pain.
I think the best user interface on my desktop has to be my Rigol DS1502E.
The problem with that is, you have all the forks around, and there are great time intervals where there isn't anything moderately stable and up to date to use.
My main working laptop is still on Ubuntu 10.04 LTS and it's getting quite long in the tooth with the lack of up to date software features, even at base libraries level. For the time being, i practically have no upgrade path either, so if i want a particular up to date software package i am often forced dget -x/dpkg-buildpackage it from either Debian/sid or Ubuntu newer versions, and pray that they have not pulled in any further dependencies, sometimes just locally modifying the control files or debian/rules to work around these OR resorting to locally build some newer dependency packages too. It's far from productive and convenient.
IMO, this current brownian motion around "new" desktop paradigms is just a waste of everyones time. Neither Unity or Gnome 3 or KDE 4 should have never become the main choice of any desktop distros until all the regressions from their predecessors have been addressed.
This here isn't complaining about "too much choice", its about having A DEPENDABLE choice. Nothing wrong with experimenting with new tech and new ideas, but to use a sorry car analogy : Corolla has always been a no frills sedan.
In pseudo-democratic Russia, Putin tells jokes when to fail or when not to fail. All surviving jokes invariably obey !
Pretty much exactly agree with everything you say.
Massive inline comments almost always serve as excuses for not refactoring the code when some aspect of code quality is going down. Could be either cyclomatic complexity, type cohesion, efferent coupling, number of lines per function, nesting depth, variables per function etc. etc.
Most of these can be objectively measured, and well scoring code rarely needs additional comments, and its usually this 1% where something incredibly clever or efficient is being done, and should actually be commented
One thing that code quality metrics cannot measure is the logical naming of the classes, functions, parameters and variables, and that is most frequent offense calling for extra comments. People somehow seem to still think that keeping identifier names short somehow improves the readability of the code, which is bunk.
Thanks, i've written each of assembler, C and C++ in embedded systems for years. One of my favorite reads that i keep coming back to is Joint Strike Fighter coding guidelines for C++. I also had a decent career in industrial robotics years ago.
// initialization part here
// multiply by two
// this function approximates square root
I am a big fan of static code checkers, continuous integration and continuous deployment, selective application of unit testing and designing your systems to be testable at system level as well.
I also design my APIs and interfaces very carefully, and if there was a degree in applied software modularity i'd probably get it.
You sir, have completely missed the point.
A documented system architecture is way, way more important than comments in the code. Class and module level documentation is absolutely necessary, some at function level as well.
I stand by my statement that 99% of the _INLINE_ comments in the code are useless, or often even harmful. I invariably turn down job applicants who send me test task code with comments like
There absolutely is such a thing as self documenting code.
Comments are supposed to tell you what's going on.
I certainly hope not. Whenever i see comments in C++ or Java code i'm thinking "why did you not write this to be more ovious way in the first place, wtf needs explanations here".
There a few cases where code needs comments IMO, and class-level and function-level docs are perfectly OK. But comments within source are a sign of
a) something incredibly clever being done
b) sloppy design or poorly written code that needs explanation on whats going on
In 99% of the cases, its the second option
Good code is self documenting in everything that it does, at least in sane languages