And here I thought I was the only one with a vertical side monitor. Then again, did you mean that both are vertical?
HN user
insoluble
Before the industrial revolution, almost all manufacturing of common goods, including food, was performed by human hands and feet. This limited output capacity to that of human strength and endurance; and it was exhausting for humans, preventing most humans from having time or energy for intellectual activities.
On the contrary, there were a handful of areas where humans had already begun to exploit motion and force outside of human muscle to carry out work. One long-time example is using horses, mules, and other animals to provide force for transporting goods over distances. Even humans were payloads transported upon animal backs. Another key advancement for humans was using water and wind to transport large amounts of goods from one place to another. Sailboats allowed for transporting of goods a very long distance. In today's age we may take self-driving transport for granted, but once upon a time humans actually had to transport goods by hand and foot.
Why the industrial revolution was a powerful next step in exploiting nature is because it allowed not only transport of goods, but also finer, more complex tasks to be carried out without requiring human muscle. Now sewing, grinding, cutting, molding, bending, digging, and drilling could be done by machine in large quantities with good reproducibility.
Hence, first humans exploited nature (and other animals) for transporting goods. Then humans began exploiting oil, coal, and electricity for carrying out more complex physical tasks that require large amounts of force. As machines grew finer, they were able to manufacture smaller, more precise goods.
The next stage was to allow humans to carry out not only large scale physical tasks without continuous human effort, but also to carry out intellectual tasks in mass without continuous human effort. This is where computers come in. They exploit nature to get information processed quickly and reliably.
At least a few areas remain where humans are doing the heavy lifting. One is reproduction. Humans are still required to take care of new humans while they are brought from incapacity to self sufficiency. This is still a difficult, time-consuming task, especially if the goal is having quality output. Another area where humans still do heavy lifting is learning. Unfortunately learning has not become much more efficient or quicker than it was in the past. Humans are very slow at learning, and a massive human effort is generally involved.
Imagine a search engine that not only gave you search results, it used advanced AI to tell you in brief how each result applied to the problem you are currently trying to solve. Currently, you have to waste time thinking about each result to classify the contents, as for example, entertainment, product marketing, opinions and rants, purely factual, legal, political, social networking, media, API/interface, et cetera.
It would also be useful if the search engine could verify statements made on pages and give an accuracy/honesty score for each result. This is particularly important when the author of a page has a serious conflict of interest. Perhaps the search engine could tell you what that conflict is -- to help protect you from deceptive or incomplete information.
Is this a scientifically supported assessment? I say this because I have heard it often, but in thinking about it, I cannot see this necessarily being true. WPF uses XAML, which is similar to HTML or other markup languages in structure. Sure, this is much different than the paradigm where you specify coordinates for all window elements (Win32, WinForms, et al.), but is it proven than a person having no background knowledge or experience in software would find markup-based layout more difficult than coordinate-based layout? Even if so, is the difference big enough to warrant telling all newcomers to use a coordinate-based layout, despite its inherent lack of responsiveness? Yes, XAML has many additional features, particularly in terms of effects, but these need not be used.
So they say, but that doesn't mean its support is about to end. If you look at how long MS supports technologies, you can be pretty sure it has plenty of usable life. Plus, UWP is practically the exact same thing from a design and coding perspective, so the knowledge is by no means lost.
WPF is superior to Windows Forms in many ways, particularly layout responsiveness. I would not recommend anyone entering the Windows Desktop scene to use this old paradigm of UI design springing from Win32 (or older). Moreover, since WPF uses XAML, learning it (as opposed to Windows Forms) better prepares one for other popular UI frameworks these days, including for Web and Mobile. Also, if only newer OS versions are of concern, consider using Universal Apps (UWP) instead of WPF. They are both very similar, but UWP is newer.
Indeed a product often has value, but an idea without execution is an untested gamble.
The basic idea here is that arguing with reality is counter-productive. To be effective, one should embrace those changes that cannot be avoided.
For many in the field, a bigger issue than commoditisation is probably wage gaps between higher and lower cost regions of the globe. While it should not be expected that the average person can or even could compete with top-notch developers, for most of us, we still have to compete with good developers in extremely low-cost regions. Until the globe evens out in cost-of-living, this issue should continue to exist. Until quality programming and engineering do not require substantially above-average intelligence, these professions should not become a commodity.
In theory, a larger organisation would have more communication going on, and having messages that stand out among the noise would definitely set you apart. Moreover, the more people you communicate with, the less you know each person on a personal level -- the more impersonal each correspondent is. The less you know someone, the more important proper, clear language is.
I don't really know of a defense other than ...
One way is to make sure you (a) provide real value and (b) know how to convey that knowledge effectively in tense situations. If you're not sure you provide real value, then BS talk may be your only hope. Even if you know you provide value, you need to be able to convince others of this or else you may be in trouble.
The underlying message here is very important to consider in this discussion. In many ways, the average human may already be outputting intelligent information about as fast as he or she can. If we really could think substantially faster than we can speak or type, then surely we could speak in mathematical formulae and in beautiful poetry at all times. When solving a complex mathematical problem, it seems most people have to stop and think periodically while writing steps and results. The processing is slower than the output. The main area where most humans are quick seems to be in visuospatial cognition, and this is perhaps the main area where we lack proper output capabilities. We need a parallel output system to complement the current serial output. Maybe if we had 64 mouths and ears we could convey information more quickly. Alternatively, a high resolution EEG could perhaps read all our muscle tones simultaneously. The tricky thing would be in training ourselves to output with all our muscles simultaneously, and the result might be a show in itself.
We must first consider the purpose of money and the purpose of employment. Money's purpose is to allow distribution of credit based on the amount of value that an individual or other entity has provided to society. Employment's purpose, in the broader sense of the term, is to allow an individual to provide services to society while expecting fair compensation in return. By "fair", I mean not unbalanced like slavery, where slaves indeed were compensated (with food and shelter) but not in a manner commensurate with their production.
Perhaps the biggest problem with common understanding on the topic of value is that people fail to distinguish not only how much value an entity produces but also what type of value an entity produces (or doesn't produce). If I buy a bank repo house for $50k and sell it for $250k after doing essentially nothing but posting some pictures and descriptions of the place Online, then the only value I actually created is in the pictures, descriptions, and paperwork that I did. Say I spent 30 hours doing all these tasks. Then say the average person would agree that a fair pay rate for this type of work (papers, pictures, descriptions, and some phone calls) is $50/hour. The real value that I would have created would thus be 30x50, or $1500. Yet the sale of this property would net me at least $180k, after any expenses. Note the difference between value created (<$2k) and net gain ($180k).
The problem here is the discrepancy between value created and money "earned". It seems that a large portion of society is okay with this discrepancy. For example, many people see nothing wrong with gambling or Lottery, despite both involving accumulation and distribution of money without any value being created. Until the majority of society agrees that people shouldn't be paid more than the value they personally create, we can expect extreme income inequality to exist and persist. If ever society can change its mind on this matter, we might expect the following:
1. There is an income cap, based on the realistic maximum amount of value that a human can create. The actual value is based on scientific investigation into the amount of value (not money, but actual value to society) created by the smartest and most skilled humans. The cap would be somewhere in the ball park of this maximum value (perhaps a little higher, just for good measure). For example, I am willing to bet that a human is not capable of creating more than 100x that of the average (median) human in terms of real value. Every time we look at a scientific advancement of the past, we see that although person X came up with the idea first (and hence usually got all the credit for it), there were a bunch of other people working on the same idea, many of which only a handful of years behind X. Not only that, but the person usually was in the right place and right time, with the right connections, to achieve what he or she did. If you took random other persons and put them into that exact same situation, many would have accomplished a similar feat. Certain discoveries were meant to happen around certain times.
2. All now known and future known types of exploitation are prohibited. Any accumulation of wealth where the person gaining the wealth is not producing significant real value is outlawed. Such accumulation of wealth is deemed to be in the same category as counterfeiting since it funnels money from the actual producers to someone else. Examples such as the real-estate investor described above would be eliminated by government programs whose purpose is to deal with such situations as bank repo properties in a responsible and production-centric manner.
3. There are well-funded government programs whose purpose is to facilitate relocation of individuals currently working in non-productive positions into positions that make a positive difference for society. These programs are optional for these individuals, but nevertheless any non-productive positions are phased out of society.
4. Inheritance is capped at half of one lifetime's worth of median income (based on society in general). Hence, if the average person makes $6M in his or her lifetime, then $3M would be the maximum allowed by anyone to be passed on to any heirs. Remember: The goal is to promote productive individuals, so we cannot have people born into a life that doesn't require being productive.
I'm sure a bunch more changes would be needed for the best result, but the above may serve as food for thought.
A game is not fair if the rules are not the same for everyone. At least, I would like to believe that anyone who watches sports would agree with this statement. Moreover, a game played with unfair rules is by its nature an unethical game. That's my opinion on the matter.
If in society it were made clear that copying everyone else's designs and market research were okay and to be sought when possible, then there would be little wrong with an open-source project copying the designs of a proprietary project. On the other hand, if a proprietary project is not allowed, in practice, to copy the designs of its competitors due to fears of legal problems or public backlash, then it would be unethical for an open-source project to copy other projects' designs since that would give the open-source project an unfair advantage.
At the same time, there is still an element of exploitation if in practice the only ones investing significantly in market research and R&D are the proprietary firms. After all, any time someone is reaping the benefits of someone else's work without giving back equally in one form or another, there is a type of exploitation going on.
Now, we should avoid thinking in black-and-white. We should avoid saying x is ethical while y is unethical. In the real system that is society, there are many variables involved, and these variables are floating point. You would need to plug all the values into the formula of ethics to really see the relative balance of ethics followed by any given project or company at a given time.
I can tell you from my own experience with (embedded software/hardware) R&D that coming up with a fully functional, reliable product in terms of design and approach is a very costly operation. Simply measuring and cloning someone else's product is worlds easier than designing it in the first place. After all, the people doing the R&D are filtering out all the bad ideas for you -- and most ideas are bad ideas, often for reasons not clear from the start.
Like I said, however, one of the most important factors to consider is whether everyone is playing by the same rules. Doing things your competitors are not allowed to do without getting into trouble is cheating. And cheating is unethical -- despite the inner animal in us thinking there's nothing wrong with cheating as long as we're the one benefiting. Remember: The question is not whether you can do it, but whether it's ethical. These are not the same thing.
people you'd go out of your way to cause harm to
It should also be pointed out that there are two different directions here. Is an "enemy" someone you would harm, is an enemy someone who would harm you, or must the desire go in both directions? Moreover, in what tense does the problem take place? Perhaps someone harmed you in the past but is no longer trying to harm you. Is that still an enemy? What about someone who is conspiring to harm you, but you don't yet know about the danger. Is that an enemy yet? Another detail to consider is whether a mere competitor, for example an opposing sports team, is an "enemy". The case of intense dislike also possesses some of these specifics.
Edit: Another very important consideration is those who, while not actually trying to harm you, do so indirectly by exploiting you or otherwise trying to control you for their benefit. For example, is a slave owner the enemy of his slaves? If so, then anyone trying to use you without proper concern for your well-being could be considered an enemy.
dbo.v_TheFirstTimeIMadeThisView followed by dbo.v_TheFirstTimeIMadeThisView_1
Not to mention multiple versions of stored procedures having slightly different names because they have slightly different sets of parameters -- rather than having default values on the parameters.
Official App Developer wage statistics, including both mean and percentile, in the US (for 2014) can be found here: http://www.bls.gov/oes/current/oes151132.htm
For generic Programmers, see here: http://www.bls.gov/oes/current/oes151131.htm
TL;DR: Programmers = ($44k to $128k); App Devs = ($56k to $149k);
PS: Sorry about not answering the actual question, but I thought this would provide some background to the discussion.
it will probably help more than any amount of exercise ever will.
Unless the issue is solely anxiety-based, exercise would in most cases help a considerable amount. Especially for smaller medical concerns (not sleeping well, aches, mild anxiety), doctors usually cannot really help. Medical intervention generally does not make sense until something is really wrong, and a proper exercise habit is a very good way to help prevent many types of conditions. Before I had experience with doctors, I thought they would be able to solve any medical problems, but I learned the hard way that with many problems they often cannot help a significant amount, if at all. Medicine is still a very crude science. Plus, it would be a folly to think a doctor cares as much about your health as you do. If you care about yourself, you need to do your part with diet and exercise.
LE becomes a standard service out-of-the-box.
This could happen, but I would think some of the cram-all-you-can hosting providers would not want to "waste" CPU power like that. SSL takes slightly more CPU to serve. My guess is the better half will probably do it, at least until browsers start complaining when a site fails to use SSL.
"waste" a few dollars on a streamlined process than spend hours trying to get Let's Encrypt working
This is true. It probably took me somewhere around 20 hours to get everything streamlined with Let's Encrypt (I started before public beta, so the available software was buggy, convoluted, and not well documented). Just like with open-source operating systems, the advantage is not in the initial setup but in how many units can then be deployed for minimal unit cost. If you have only a couple of domains to be encrypted, LE is not worth it currently.
Perhaps the commercial providers should focus on the small-scale users, which is exactly what they probably would rather not do.
I've thought about getting into this area myself, but I was too afraid there was not enough market for it. This was several years ago. As far as CPU power, today's average PC is easily 5x what's necessary for perfect speech. The real question is the algorithms being used. Perhaps the fear is that the algorithm would be pirated. I mean just look at the history of digital audio (or video) and encoding, with things like Xvid and Ogg. Basically every time a good algorithm even starts to gain traction, an open "alternative" is made available practically overnight. This is not to say I don't like open algorithms. In fact, I believe that any standard algorithm should be open. This fact, however, is enough to deter research in this field. Perhaps a Web service that converted text to speech would be one option, but it would have limited applicability.
Edit: Perhaps a Kickstarter or related would be a good idea since this type of feature would be useful by so many people. Nearly everyone has functioning ears. (no offence to those who don't)
One way to solve this is to create a modular super-app for which developers can write components
I am pretty sure they call this an operating system. Moreover, most operating systems do provide built-in or pre-installed functionality, such as for scheduling, messenging, and note-taking.
It can be hard to tell how much someone actually contributed just by looking at a CV.
While this is true, it can also be hard to tell how much of a person's open-source code was actually written by that person. With the abundance of code available today, it would be relatively trivial for someone to take random code fragments and functions from all around and to assemble them together into a conglomerate. All the person would have to do is basically change the variable and function names, in addition to the syntactic style, to make it all appear as coming from the same person. Sure, this would at least show an awareness of syntax and style, but it certainly would not show the level of programming skill or even necessarily of problem-solving ability. On the other hand, if the person's repo is popular, then there is at least an indication of function and utility.
It could be argued that Microsoft is trying to be more forward thinking by continually pushing the level of abstraction while at the same time trying to please everyone at once. One of the downsides to being the biggest (for an extended period of time) in one or more spheres is that you cannot focus on just one group of users. Systems that focus on just one group are almost always more efficient. Just look at HN. It focuses on one relatively small group of users who are willing to forego having a plethora of features.
In the long run, having highly abstracted, well organised frameworks like .NET is good for humanity while in the short run it makes for painfully hungry infrastructure. There will always be a general group of people trying to make the best out of what is currently available -- focusing on efficiency. When I started programming back in the 90's, I remember hearing people quite often brag about how "real programmers" use assembly, calling anyone else a lamer. I started with VB and then C (not C++). I was considered one of those lamers using such "high level" technology. I remember thinking to myself, "At least I get things done in a reasonable amount of time". These days, C is considered quite low-level compared to modern languages and frameworks. My point is that abstraction is continually pushed onward for a very good reason, yet many people who have grown accustomed to older, more CPU-efficient platforms and methodologies may view the "cutting-edge" level of abstraction as unnecessary and bloated. This phenomenon follows the age-old "back in my days we had to milk our own cows" generation-to-generation viewing of the "new kids" as lazy and spoiled. The key is in recognising that the world keeps moving, even if you are growing old. There is always room for progress, even if progress appears unnecessary to those accustomed to older ways. As machines get more powerful, the world is no longer the one that demanded those levels of efficiency seen prior.
At the same time, I agree that some software and systems are obnoxiously slow. Visual Studio takes ages, even with a fast drive. I prefer AWS over Azure. When it comes to coding these days, I choose high-level unless the application demands working with large amounts of data. The programming time needed to make simple applications run faster is usually greater than the gain in time from running more efficient applications. When you are Microsoft, being pushed to implement every feature in the book, you are going to want to choose the most efficient way of implementing new features.
Call me a skeptic, but there is no way there was an algorithm available to humans 10 years ago that reversibly compressed 6GB of unique, already-compressed media files down to 800MB. The only way this could have happened is if there were shared files or shared segments between the files. For example, if a DVD had a bunch of audio tracks but some of the tracks were basically just direct copies of the others, then the compressor could recognise the similarity and capitalise thereon. For lossless compression of general data, 7-zip set on Ultra is probably the best available right now. On the other hand, algorithms such as FLAC or PNG work well for losslessly compressing uncompressed media.
In addition to what else has been said so far, some videos are private, and making those videos interceptable would allow unauthorised access. Moreover, YouTube is not used only for entertainment. Unlike standard television, where the content is essentially chosen and pushed to you, YouTube involves pulling specifically that content on those topics which you want personally. Also unlike standard television, a greater portion of the content is controversial, biased, or sensitive. Similar to the idea of plausible deniability, making the site HTTPS-only allows people not to feel ashamed of viewing with SSL. Otherwise, we would have the classic problem of those using encryption being seen as suspicious or shady, which would prevent people from seeking the information they truly want. In a world where all your thoughts are being monitored at all times, you have no free thought.
Thanks. I have updated my response to the general case.
Edit: Discussing mistakes and how to avoid them has a very useful place in a wise person's life. I ask everyone to understand that speaking about your recent successes is well and good under an appropriate context. For this particular thread, it would be most beneficial if we focus on any big mistakes we have made in 2015. Success stories are easy to find, so let us focus on the other side of the spectrum so that we can learn from one another's experiences, hopefully gaining a little bit of wisdom in the process. The value of security and risk avoidance is often elusive, but the collective value is real nevertheless.
My biggest failure in 2015 was probably that I was too reactionary. I lacked the autonomy that I often had in the more distant past. Instead of making and following long-term plans, I found myself doing small projects and waiting for people's reactions before proceeding to do something else. What I would do next was too often based on the responses I received. There have been times in the distant past where I was the opposite -- too much autonomy for too long -- leading to building a large project that nobody really wanted. In 2015 I saw the opposite end of the spectrum. Recently recognising this phenomenon has helped to remind me that both ends -- heavy autonomy and heavy interaction -- are bad for productivity. I am now thinking that perhaps autonomous spurts of 3 to 9 weeks at a time are best in the long run. Waiting for a reaction after just a few days of work is too short a time, and building alone for 9 months without validation is too dangerous.
Personally I have never liked the idea of a middleman when it comes to charity, among other things. Similar to how micro payments can work well only with really low transaction fees, charity needs a low overhead to make proper sense. If your goal is to help small organisations that need donations, then improving on micro-payment technology would be a good start. In fact, this could better allow individual contributors of open-source projects to be compensated, which is something that has been needed for a long time now. If you think about it rationally, who is currently being compensated the least for their efforts -- individual hands or the central websites that benefit from these hands?