This has been a topic i've been curious about for a while now - if the way business performance is measured has changed, why have the standards not evolved as well?
218 karma · joined May 10, 2012
This has been a topic i've been curious about for a while now - if the way business performance is measured has changed, why have the standards not evolved as well?
You are correct - monopolies are defined to control the supply of something to manipulate prices and hurt consumers.
The problem with these platforms is not that they are anti-consumer, the problem is that they are anti-competitive because they control the entire audience that a product can be sold to. This results in the commoditization of suppliers (eg news, books, etc.) and reduces competition in the distribution space of the economy that targets consumers.
It's a different way to think about it because it's a new concept in our modern world, but the mental model that I've seen is that there are three stages of creating something and selling it to a consumer:
1. Supplier / Manufacturer 2. Distributor 3. Consumer
In the old days, monopolies controlled supply and distribution, which resulted in consumers being hurt. Now, "aggregators" control distribution and the consumer, which leads to suppliers to drive down their costs or not even participate in the consumer space.
I HIGHLY recommend reading about aggregation theory on Stratechery to get a deeper understanding of this as Ben Thompson does a great job in explaining why the FANG companies do what they do: https://stratechery.com/2015/aggregation-theory/
Thank you for the time and effort you're putting into this.
If you're trying to build something, then use Django. It'll save you time from having to learn about Ruby's community of tools and how Rails works.
If your goal is to learn Ruby, then using Rails will be fine.
Neither is better than the other and I've used both. It comes down to what you personally enjoy using better as they are both built to be generic tools to create a web application using a specific language.
Don't get lost in the marketing hype of which is better - use the tool that allows you to solve your problem more efficiently (creating something vs. learning a new language and framework).
Rails and Django are equivalent to each other from the sense of providing an MVC based framework to build a web application.
Don't worry about investment - focus on getting your first paying customer. Build a business first, then get investment when you need it to grow. You'll also have more leverage in the terms if you have a viable business when talking with investors.
Sprout Social | Chicago | ONSITE | https://sproutsocial.com/careers/open-positions
We are hiring people in all engineering and product roles. We are looking for Python engineers, React.js engineers, SREs, QA, Mobile (iOS, Android, and React Native), etc.
Also, if you would like to add our resident recruitment lead to the list on the "recruiters" tab, here is their contact info (and info for the columns in the sheet):
Amy Wolcott | amy@sproutsocial.com | Sprout Social | Talent Lead
The other companies paying attention to this are the chat companies/products (slack, hipchat, etc.) - having really simple reliable calling and videochat in their products is going to be a competitive feature going forward.
I will say that our notifications come from a different service that is separate from the service the responds to HTTP requests, which leads to the process that is described in my post.
Another pro tip w/r/t environment variables: NEVER rely on $PATH - that should be considered a global variable that any arbitrary piece of code in your process can modify at will since everyone knows about it. I know Jruby use to rely on this for their Ant integration and it was annoying as hell before it was fixed.
Here's a link to the SDK: http://developer.pointcloud.io/sdk/
Also, if you plan on continuuing with this project, I recommend improving your web page's performance: http://imgur.com/t02Hb (Although, great job at correctly ordering the CSS and JS files in your HTML - that is such an easy and great way to improve your page's speed.)
One attitude to take when using Infrastructure as a Service (IaaS) is to always expect failure - nodes can easily disappear when a problem occurs and take out your entire website.
The best backup plan you can have for this is to capture the entire configuration of your stack in some version controlled way. One of the tools I use for this falls under the domain of "configuration management", with the best products being Chef[1] or Puppet[2], or just writing a normal bash script that installs your Rails stack and checks out your code from github.
When utilizing these technologies, I usually do the following:
1. Create a virtual image that has your CM tools + dependencies installed on it. 2. Add a bootstrap script that runs at boot (usually /etc/rc.local on Linux). This script will acquire and parse user-data[3] that is provided in the provisioning request to EC2[4], an then kick off your main configuration logic. 3. Capture the image and use it as your base image that you perform deployments from.
Feel free to let me know if you have any questions with this method! It's a bit overkill at the learning phases of IaaS clouds and OS administration, but it will save you a TON of time down the road as a programmer.
[1] Chef: http://www.opscode.com/chef/ [2] Puppet: http://puppetlabs.com [3] http://docs.amazonwebservices.com/AWSEC2/2007-03-01/Develope... [4] This user-data should contain runtime arguments that your configuration scripts can use to run properly (e.g. a specific git commit version or the hostname of your database node).
==================================
You might think that puts us in an impossible position when it comes to deciding how to run teams. But consider why software development is not a regular environment, and why it is so hard to run experiments, to acquire skills, and to measure which practices and decisions lead to success, and which to failure. The root cause in all these cases – the reason the environment is not regular – is that the feedback loop between making a change and understanding the result of that change is too long. The word “change” here should be understood very generally to mean change in requirements, change in methodology, change in development practices, change in business plan, or code or configuration change.
There are many benefits to reducing cycle time – it’s one of the most important principles that emerges when we apply Lean Thinking to software development. Short cycle times are certainly essential for creating great products: as Bret Victor says in his mind-blowing video Inventing on Principle, “so much of creation is discovery, and you can’t discover anything if you can’t see what you’re doing.”
But for me this is the clincher: It’s virtually impossible for us to practice continuous improvement, to learn how to get better as teams or as individuals, and to acquire the skills that enable the successful creation of great products and services – unless we focus on getting that feedback loop as short as possible so we can actually detect correlations, and discern cause and effect.
==================================
Jez seems to believe that Development Methodologies suck when they reach the point of getting in the way of developers creating things and when you have long cycle times before you can see the fruits of your labor, wonderful ideas are potentially lost. One of the important aspects of Continuous Delivery is to reduce that feedback loop as much as possible - people start to do amazing things and create wonderful ideas with immediate results to the changes they are making.
I'm not bashing Google here - I really think AR will be the next big game changer in UI interactions the same way multi-touch was back in 2007, but there is honestly nothing new in that demo technology wise.
It's the area where Chapel Hill, Durham, and Raleigh, NC are.