Most programmers are not writers and will never write truly great documentation, but something they or someone at their level of familiarity can get. Most OSS is written by programmers who actually have a day job doing non OSS work. In closed source world (unless your product ofcourse is an api), documentation is often sacrificed in the name of "time to market". Those habits carry over to the open source projects too.
Unless there are more volunteers who want to write documentation for OSS, good documentation will not be written.
IMHO, if Anonymous creates a big enough network of compromised routers, they could create a meshed voip service or something like firechat where they can communicate using the mesh, without being monitored. If they are "cracking" home routers, it wouldn't be to use the wifi router's measly 1G port and cpu for DDOS attacks, it'd be for something more ambitious.
This is a horribly inflated piece of marketing. A lot of urban households in India have power inverters in their homes to be used during the all too common rolling blackouts/load shedding, and draw power from grid when there is electricity. These are locally assembled devices made from two or more commercial truck batteries. The whole assembly is highly serviceable and customizable according to the budget. These are fairly inexpensive and have low cost of maintenance, and much smaller than 3ft*2.5ft*2.5ft.
It isn't that hard to make one yourself, just google for the schematics.
I don't know why Mr Musk is getting into the battery peddling business when even a village in India/China can get you a similar product (may be less efficient and not really great to look at). I guess people pay money to have a "Tesla" or "Apple" brand on their hardware, be it batteries or cars or music players or phones. He might need the money to funnel into battery research, that seems to be the centerpiece of a lot of his undertakings.
Along with coverity as one of the commenters suggested, you can compile the code with stricter compilation options (like -Werror in gcc, which will error out if variables/functions are not used etc), you would then need to go through each of these files manually and resolve all the issues.
Tools like bcpp can help you make sure your complete code base follows a common coding standard.
Apart from that, if the name of the function is not indicative of what the function actually does, there are no tools smart enough to help you with that. You'd need to do a lot of cleanup manually by hand.
To be a great software developer, you need to write great software. Any great software requires a lot more forethought than just coding.
Upfront design is the key to flexible and maintainable software. Peer reviewed, simplified, unoptimized design gives you a great base to start writing great code. It is akin to listening to a shakespeare play before writing one (as opposed to just winging it as you move along) .
C is an abstraction of hardware concepts, and newer languages (even C++) tend to be abstraction of concepts from Comp Sci (object, function curries, comprehensions, templates etc etc). Someone has to bridge the two concepts. C++ succeeds as a language that supports both, but never been that big because most people either use it as C (and not use any features), use it poorly (because they don't understand how the various constructs work) on the hardware end. C has lesser concepts to worry about, but gives more rope to shoot you on the foot.
E.g. simple statement like "if (string == "hello")" in C++ could mean that == is overloaded and if it accepts an object string, "hello" invokes the copy constructor for string object and passes it to the string object's == operator, which might do a char by char comparison, and then the unnamed object "hello" is destructed.
You generally don't care about this for business logic or if your website is getting one hit every few seconds, but if you are getting a million hits per second, you need to start optimizing the way you do things, you'd need to know which of L1/L2/L3 caches you'll miss, what'll be the real impact of your code. C, without the fluff, gives you lesser things to worry about.
C will be relevant because no other new language is trying to replace it.
Actually it makes sense from Cisco's perspective (leaving aside its morality for a moment). Normally the people laid offs are either the bottom performers or the product that they were working on is no longer seen as a cog in the wheel. People are never laid off from units for which growth is projected. And the business units where the people are being added would most definitely have a completely different set of core competency than other folks at Cisco. Most people would not willingly accept a work in some random domain either.
Seems like a no brainer to me.
People just got to XYZ's job portal to apply for job, they don't rate or complain about the product. The job portal doesn't generate any revenue. Nobody says that they are not going to join/interview for a job at XYZ because their online job portal sucks. There is no competition in the space at all. Why would the portals be any better?
"must" is a strong word. I've worked on several large projects(c/c++) and almost every one I know who are involved in the project used vi/emacs+cscope + the regular gnu toolset.
The abstract seemed to mention only the effect on short-run wages! In the short run, the nominal wage rate is taken as fixed. Thus, rising P implies higher profits that justify expansion of output. In the neoclassical long run, on the other hand, the nominal wage rate varies with economic conditions.[From wikipedia]
So H1B's effect on long run wages would be better study. The causality of non-normalized reduction in fixed-wage is too chaotic to be attributed to H1b only. Note the year of study. It is 2009-2010, which was height of the depression.
I've been seeing the opposite data. Wages have increased in areas with high H1B demand:
http://www.brookings.edu/~/med...
Could you please quote sources to justify your position, in case I've been drinking the wrong koolaid.
This is not the case. If you think there are more jobs than people willing to do it, then think again.
http://moneymorning.com/2013/0...
There is a shortage of skilled labor in US. If you go to 10 job interviews, get selected in 5 of those, and end up choosing one, that still means that 90% of the vacancies are still unfilled. Introducing more people to the mix increases the competition and improves US's capability to compete in global arena.
Please get your facts right. There are government mandated "prevailing wage" standards for people on H1B. One can't get snap a low paying job from a citizen/alien because H1B doesn't allow it. This is the reason why most companies don't even hire H1B candidates.
No.. a bigger monitor doesn't make you productive.. nor does the number of monitor (well directly). Productivity increase comes from the fact that you can separate multiple tasks on multiple monitors and your context switches are as long as moving your eyeball/turning your head.
None of the windowing managers/OS do tiling very well IMO(well except wmii). Now if I can "see" the one long monitor as X logical monitors (which still depends on the widowing manager), then I'll use it.
I got introduced to Linux at a university when no one even cared about Linux. PCQ with its stream of different distros, blug meets and FOSS.in (was called linux-bangalore when I attended it), and the various people I met, including Atul Chitnis, t3rmin4t0r(Gopal V), LaForge (Herald Welte), Brian Behlendorf.. all helped me mature as a linux user and eventually paved way for a career in Linux dev. Atul, with his team, was responsible for getting all the great geeks under one roof, even if they didn't agree with him.
He wasn't a software developer, he wasn't a distro maintainer.. he hacked people! He was responsible for a generation of linux enthusiasts and made sure that they didn't turn into fanatics.
Atul.. you'll be missed.
1.Have enough supply of food and drinks(non-alcoholic) to last one whole 24 hour cycle.
2.Have a structure to it. E.g. Would start at 8 am on Saturday, finish on 8 am on Sunday, upload demos by 10 am, and do anything using X library in python.
Then just let the participants do whatever they want, don't unnecessarily linger or ask too many questions. Remember, people are there to enjoy themselves, and code whatever they think is a good project. Don't judge.
Am I alone in thinking that development and testing should go hand in hand? A developer needs to write his own test cases for unit testing, write stub code to test them out, work with the team to get the integration test cases ironed out.. with someone from the automation team just providing support for writing test vectors.
Of course, this is just wishful thinking. In real environment, the developers barely get time to do some real UT, IT testing consists mostly of test cases that the a separate team of testers thought about and tests to check the bugs reported by the users in the last release. This decoupling of development and testing introduces a chasm where the bugs slip through.. and thanks to the crazy deadlines, it is not going anywhere.
Let us not further widen this gap by teaching testers differently. Testing is an extension of development and should be handled as such.
Since gun control is not happening and misguided individuals are hell bent of printing out a gun anyway.. control the ammo. Let's see how they print out 3D bullets.
An average user doesn't use photoshop and most people in the world using the operating systems don't have access to Netflix (or hulu for that matter)... the only learning curve is trying to find out how to open a browser.
I've used Windows, OSX and ubuntu with just wmii at some point of time in my life as primary machines (for more than 2-3 years). The UI changes will be yelled at, regardless of the implementation or the OS. I remember people finding gnome1 and windows fancy and useless when it first came.
Most of the UI these days don't get in the way of "actual" work.. which is good (apart from Adobe asking me to upgrade the reader:P).. and it definitely doesn't get in the way of any slashdotter.
Mr Kurzweil, could you please give a brief insight into your daily work schedule and family life. I'm not being nosy, just wanted to know how you can accomplish so much when even 24 hours seems less for a lot of us while working perfectly normal/average jobs.
On a similar vien, this is why you see more hardworking asian students (or first generation students who are forced to work hard by their parents)!? Once you are privy to poverty (even if you are not poor yourself) and have seen a better life out there.. you'll give your life to hang on to it.
Given that Republicans don't have clear front runner, chances that Obama will continue as a president is highly probable.. By inviting Sarah Palin we can at least get some LOLs.. (and may be some material for SNL skits)
no.. you misunderstand me. My point was that you can invoke whatever program you want from the terminal itself or have keyboard shortcuts for them in any of the desktop environment. Applications and DE are two different things.
Whatever work you are doing, you tend to have a fixed workflow and after a while the DE is completely transparent. But because all the OSes are going to be extended to the mobile, all the vendors are making changes to the DE at the expense of some discomfort of the users.
Most programmers are not writers and will never write truly great documentation, but something they or someone at their level of familiarity can get. Most OSS is written by programmers who actually have a day job doing non OSS work. In closed source world (unless your product ofcourse is an api), documentation is often sacrificed in the name of "time to market". Those habits carry over to the open source projects too.
Unless there are more volunteers who want to write documentation for OSS, good documentation will not be written.
IMHO, if Anonymous creates a big enough network of compromised routers, they could create a meshed voip service or something like firechat where they can communicate using the mesh, without being monitored. If they are "cracking" home routers, it wouldn't be to use the wifi router's measly 1G port and cpu for DDOS attacks, it'd be for something more ambitious.
This is a horribly inflated piece of marketing. A lot of urban households in India have power inverters in their homes to be used during the all too common rolling blackouts/load shedding, and draw power from grid when there is electricity. These are locally assembled devices made from two or more commercial truck batteries. The whole assembly is highly serviceable and customizable according to the budget. These are fairly inexpensive and have low cost of maintenance, and much smaller than 3ft*2.5ft*2.5ft.
It isn't that hard to make one yourself, just google for the schematics.
I don't know why Mr Musk is getting into the battery peddling business when even a village in India/China can get you a similar product (may be less efficient and not really great to look at). I guess people pay money to have a "Tesla" or "Apple" brand on their hardware, be it batteries or cars or music players or phones. He might need the money to funnel into battery research, that seems to be the centerpiece of a lot of his undertakings.
Along with coverity as one of the commenters suggested, you can compile the code with stricter compilation options (like -Werror in gcc, which will error out if variables/functions are not used etc), you would then need to go through each of these files manually and resolve all the issues. Tools like bcpp can help you make sure your complete code base follows a common coding standard. Apart from that, if the name of the function is not indicative of what the function actually does, there are no tools smart enough to help you with that. You'd need to do a lot of cleanup manually by hand.
To be a great software developer, you need to write great software. Any great software requires a lot more forethought than just coding.
Upfront design is the key to flexible and maintainable software. Peer reviewed, simplified, unoptimized design gives you a great base to start writing great code. It is akin to listening to a shakespeare play before writing one (as opposed to just winging it as you move along) .
C is an abstraction of hardware concepts, and newer languages (even C++) tend to be abstraction of concepts from Comp Sci (object, function curries, comprehensions, templates etc etc). Someone has to bridge the two concepts. C++ succeeds as a language that supports both, but never been that big because most people either use it as C (and not use any features), use it poorly (because they don't understand how the various constructs work) on the hardware end. C has lesser concepts to worry about, but gives more rope to shoot you on the foot.
E.g. simple statement like "if (string == "hello")" in C++ could mean that == is overloaded and if it accepts an object string, "hello" invokes the copy constructor for string object and passes it to the string object's == operator, which might do a char by char comparison, and then the unnamed object "hello" is destructed.
You generally don't care about this for business logic or if your website is getting one hit every few seconds, but if you are getting a million hits per second, you need to start optimizing the way you do things, you'd need to know which of L1/L2/L3 caches you'll miss, what'll be the real impact of your code. C, without the fluff, gives you lesser things to worry about.
C will be relevant because no other new language is trying to replace it.
We are the same species that invented the atomic bomb. If we can think of a technology, someone is already probably working on it.
Actually it makes sense from Cisco's perspective (leaving aside its morality for a moment). Normally the people laid offs are either the bottom performers or the product that they were working on is no longer seen as a cog in the wheel. People are never laid off from units for which growth is projected. And the business units where the people are being added would most definitely have a completely different set of core competency than other folks at Cisco. Most people would not willingly accept a work in some random domain either. Seems like a no brainer to me.
People just got to XYZ's job portal to apply for job, they don't rate or complain about the product. The job portal doesn't generate any revenue. Nobody says that they are not going to join/interview for a job at XYZ because their online job portal sucks. There is no competition in the space at all. Why would the portals be any better?
"must" is a strong word. I've worked on several large projects(c/c++) and almost every one I know who are involved in the project used vi/emacs+cscope + the regular gnu toolset.
The abstract seemed to mention only the effect on short-run wages! In the short run, the nominal wage rate is taken as fixed. Thus, rising P implies higher profits that justify expansion of output. In the neoclassical long run, on the other hand, the nominal wage rate varies with economic conditions.[From wikipedia]
So H1B's effect on long run wages would be better study. The causality of non-normalized reduction in fixed-wage is too chaotic to be attributed to H1b only. Note the year of study. It is 2009-2010, which was height of the depression.
I've been seeing the opposite data. Wages have increased in areas with high H1B demand: http://www.brookings.edu/~/med... Could you please quote sources to justify your position, in case I've been drinking the wrong koolaid.
This is not the case. If you think there are more jobs than people willing to do it, then think again. http://moneymorning.com/2013/0... There is a shortage of skilled labor in US. If you go to 10 job interviews, get selected in 5 of those, and end up choosing one, that still means that 90% of the vacancies are still unfilled. Introducing more people to the mix increases the competition and improves US's capability to compete in global arena.
Please get your facts right. There are government mandated "prevailing wage" standards for people on H1B. One can't get snap a low paying job from a citizen/alien because H1B doesn't allow it. This is the reason why most companies don't even hire H1B candidates.
No.. a bigger monitor doesn't make you productive.. nor does the number of monitor (well directly). Productivity increase comes from the fact that you can separate multiple tasks on multiple monitors and your context switches are as long as moving your eyeball/turning your head. None of the windowing managers/OS do tiling very well IMO(well except wmii). Now if I can "see" the one long monitor as X logical monitors (which still depends on the widowing manager), then I'll use it.
I got introduced to Linux at a university when no one even cared about Linux. PCQ with its stream of different distros, blug meets and FOSS.in (was called linux-bangalore when I attended it), and the various people I met, including Atul Chitnis, t3rmin4t0r(Gopal V), LaForge (Herald Welte), Brian Behlendorf.. all helped me mature as a linux user and eventually paved way for a career in Linux dev. Atul, with his team, was responsible for getting all the great geeks under one roof, even if they didn't agree with him. He wasn't a software developer, he wasn't a distro maintainer.. he hacked people! He was responsible for a generation of linux enthusiasts and made sure that they didn't turn into fanatics. Atul.. you'll be missed.
2.Have a structure to it. E.g. Would start at 8 am on Saturday, finish on 8 am on Sunday, upload demos by 10 am, and do anything using X library in python.
Then just let the participants do whatever they want, don't unnecessarily linger or ask too many questions. Remember, people are there to enjoy themselves, and code whatever they think is a good project. Don't judge.
Am I alone in thinking that development and testing should go hand in hand? A developer needs to write his own test cases for unit testing, write stub code to test them out, work with the team to get the integration test cases ironed out.. with someone from the automation team just providing support for writing test vectors. Of course, this is just wishful thinking. In real environment, the developers barely get time to do some real UT, IT testing consists mostly of test cases that the a separate team of testers thought about and tests to check the bugs reported by the users in the last release. This decoupling of development and testing introduces a chasm where the bugs slip through.. and thanks to the crazy deadlines, it is not going anywhere. Let us not further widen this gap by teaching testers differently. Testing is an extension of development and should be handled as such.
Since gun control is not happening and misguided individuals are hell bent of printing out a gun anyway.. control the ammo. Let's see how they print out 3D bullets.
An average user doesn't use photoshop and most people in the world using the operating systems don't have access to Netflix (or hulu for that matter)... the only learning curve is trying to find out how to open a browser. I've used Windows, OSX and ubuntu with just wmii at some point of time in my life as primary machines (for more than 2-3 years). The UI changes will be yelled at, regardless of the implementation or the OS. I remember people finding gnome1 and windows fancy and useless when it first came. Most of the UI these days don't get in the way of "actual" work.. which is good (apart from Adobe asking me to upgrade the reader :P).. and it definitely doesn't get in the way of any slashdotter.
Mr Kurzweil, could you please give a brief insight into your daily work schedule and family life. I'm not being nosy, just wanted to know how you can accomplish so much when even 24 hours seems less for a lot of us while working perfectly normal/average jobs.
If the ceo feels that "anyone" can do a particular job, it is time to leave that job (talking from experience here).
On a similar vien, this is why you see more hardworking asian students (or first generation students who are forced to work hard by their parents)!? Once you are privy to poverty (even if you are not poor yourself) and have seen a better life out there.. you'll give your life to hang on to it.
Given that Republicans don't have clear front runner, chances that Obama will continue as a president is highly probable.. By inviting Sarah Palin we can at least get some LOLs.. (and may be some material for SNL skits)
no.. you misunderstand me. My point was that you can invoke whatever program you want from the terminal itself or have keyboard shortcuts for them in any of the desktop environment. Applications and DE are two different things. Whatever work you are doing, you tend to have a fixed workflow and after a while the DE is completely transparent. But because all the OSes are going to be extended to the mobile, all the vendors are making changes to the DE at the expense of some discomfort of the users.