The author is missing two HUGE points in favor of MBPs: battery life and assistance.
Just today I went out at around 12 PM, worked non-stop in a nice cafe' until around 4:30 PM, went to buy some stuff, worked for 2 more hours, came back and realized I still had 30% left. That's insane (I'm using multiple VMs, IDEs, Chrome etc.). Especially considering that I feel the upgrade to Sierra has decreased battery life considerably.
Now, THAT's what you want from a laptop. Good performance, great materials and not having to panic if you forget the charger at home.
Apple's customer care and global warranty are universally known. They will even replace your battery for free (under warranty or Apple care) if its capacity goes below 80% (http://www.apple.com/batteries/service-and-recycling/).
(MBP early 2015 with 16 GB RAM, 512 GB SSD)
Note: I'm not an Apple fanboy (my phone is Android, never owned an iPhone) but when a product is great you just have to admit it.
Windows laptops' battery life have improved considerably as of late. I've been able to do cross-country (6-ish hours) flights with my Thinkpad and still come out with about 40-50% of my battery remaining. That's doing Python development with PyCharm and running HyperV VM instances. Neither of those things are especially known for positively impacting power usage.
> Apple's customer care and global warranty are universally known.
My iPhone's lightning cable failed on my, and they needed SEVEN DAYS to check it before I could get a replacement.
I the meantime, I had no choice but to buy a second one to use during that week (I'm now stuck with two cables). If you consider how expensive they are (and I've no use for two!), it can't really get much worse than that.
I'm not sure what the deal was with Apple checking the cable. 7 days does sound out of line. Did you bring it into an Apple Store? Was shipping involved? Did they replace the cable or fix it?
Lightning to USB-[AC] 1 m for $19? Granted, it's $20. It can't really get much worse than that sounds like hyperbole though, if the phone was in your budget.
This post should be titled "I made a game with ImpactJS and packaged it for iOS with phone gap" because any of the tools you used might be at fault. You said it yourself the same phone is capable of running high-end 3d games smoothly so, maybe, there is something wrong with GPU acceleration in either Impact or canvas with WKWebView. That might be the reason why Unity uses WebGL. Saying "I won't do it again" after not knowing precisely the cause of the performance issues, and just blame hybrid apps in general, is not very scientific.
Nice article but there is a fundamental thing missing: how to deploy and manage the fleet of containers to avoid downtime (e.g. having a systemd service that stops the container(s) and starts them with the new image is not optimal) and centralize logging.
From my experience "deploying" containers is pretty easy: build the image, push the image, pull the image, start container. The hard parts are: how to deal with persistency (I decided to let RDS manage my database), how to centralize logging and monitoring (just Cloudwatch? Swarm? Kubernetes?), how to make sure the cluster is healthy at all times (e.g. a container crashes, is it being replaced? How long does it take?) and how to make sure you have the correct number of containers running (e.g. I want 2 containers for the app server, 3 as workers, 1 as load-balancer).
If you really think about it, once you remove these advantages (from using containers, that is) the difference between running a container and having a script that provisions a virtualenv and adds a supervisor/systemd/initd service is negligible.
The post is about deploying a Django app on what would normally be a single server. What you describe can be done with various tools like Kubernetes, but it's outside the scope of the post. The difference is, indeed, not as big when you only have a single server, but it's still nice to not need to run a dozen commands to go from "blank server" to "running app".
If only it were easier to have seamless upgrades, it would be perfect.
Assuming sleep works for everyone the same way is not very scientific. And such drugs help transition between an unhealthy lifestyle and a healthy one without having to give up productivity, focus and whatnot.
Getting to "Fuck this noise, I give up." is a very clear indication that you aren't competent enough and you should take a GOOD course about git as soon as humanly possible.
> Getting to "Fuck this noise, I give up." is a very clear indication that you aren't competent enough
I think that's a tad judgemental for two reasons:
1- because git is legitimately hard to learn. Personally I suspect git is unnecessarily hard to learn, that command names and the concepts and workflows I need are possible to learn and use with less effort. For many years people around me have been asking for git help because I know how to recover from lost stashes and use the reflog, etc., and yet I still have to google the magic incantations for commands I use regularly because they're impossible to remember.
2- There is actually a lot of value in being able to spin up a new repo instantly, in knowing that you can, and in practicing it often. Not unlike the move to VMs for development environments. Plus, there are definitely bad situations where a fresh git clone is the simpler way to go -- just not in this article. ;)
Anyway, I also agree with you because this blog post doesn't describe any truly bad situations, and because for years I've seen people blowing away their repos and starting over, and always thought to myself it was funny. It's a drastic action that takes more work than a rebase or reflog or whatever the problem was, and doesn't work well if you've made changes.
1- That's certainly true, git is really hard to learn. But if you're a developer it's worth getting comfortable with it, which means not going for the "nuclear option" every time something weird happens. Someone on StackOverflow has had your problem, and has the perfect fix, look that up instead.
2- Yes, absolutely, it's good to remember that it's a fairly painless and easy process to spin up fresh clones. Though, if all you want is a fresh copy, in 99% of cases a "git clean -xfd" will do that for you (read the man page to find out what the options mean! man pages are your friend!). Though that one is generally a "pull ripcord in case of emergency" type of command, "git stash" generally suffices and avoids risk of losing data.
I don't recommend git stash, it frequently causes bad situations. Just branch instead, branching is safer and just as easy as stashing. Stash is not as safe as other git commands. From the man page: "If you mistakenly drop or clear stashes, they cannot be recovered through the normal safety mechanisms."
If the "right" solution is more difficult, and no more effective than fucking this noise, then in what sense is it even desirable or good to use the "right" solution? How is it more right?
I think the nuclear option is pretty nice, since it solves every git problem I've ever heard of. All the "right" solutions only solve some particular slice of cases. Why should I be bothered to care?
Totally depends on the situation, but it's uncommon for nuke to be easier and more effective than fixing things using a rebase. Specifically, all of the examples in the blog post are easier to solve with the right git command than they are with a nuke & re-clone.
There's a class of bad situations that nuke will make worse and not better. Any time you have un-pushed work, you're better off figuring out how to restore it with proper git commands than by nuking your repo. Dropped stashes or screwed up merges or rebase mistakes are all things that take some unavoidable time to learn how to fix.
If we had to take a GOOD course in every tool that can be used when writing software then we'd have no time to, you know, write software.
Not all people who write software are full-time developers. Not all people who use git are developers at all, come to mention it. Not all people who use git for one thing use it for everything. Not everyone can justify the time required for a course for something that might be a tiny part of their work.
Most of the problems can be solved easily if this is understood - Quote from that article - "Absorb that, internalise it, make it your mantra for the rest of your life or career: a git repository is a tree. "
TL; DR: buying a Macbook tricked me into going through a "dark" phase. It was worth all the money.
This isn't necessarily true all the time, although it is in many contexts. For example millions of people are eagerly awaiting the new, shiny, same-as-before-but-slightly-more-expensive-and-with-a-couple-new-features, iPhone 7 but the number of people who get excited when there's a breakthrough in a particular scientific or technological field can be counted on one hand (and multiplied by 10^[2-4]). The explanation is pretty simple: I can get the iPhone 7 when it comes out but it's hard to get excited knowing I might go to Mars in 2060.
I had a similar experience myself. As a human being I'm naturally inclined to, sometimes, consider short-term rewards more valuable than long-term rewards. They say the quickest way to change your lifestyle is to change the environment around you. In the case of software developers that environment is often their gear/tools. In my case it was my laptop. When I was still a student I was using the not-so-crappy-but-still-kind-of-crappy laptop provided by my university. The problem was not the laptop, of course, but the fact that I was doing something I didn't enjoy.
One day, frustrated by the fact that a few Chrome tabs and PyCharm would literally devour RAM and swap alike, I started considering buying a laptop of my own. Fast forward to a couple of months later, and on the edge of a serious depression, I bought a shiny Macbook Pro with 16 GB of RAM. I started getting more into web development (I was doing research in a very specific field of cybersecurity), studied machine learning (and used it for my thesis project), found a very good job (where EVERYBODY was using Apple hardware) and slowly transitioned to doing web development full time.
The Macbook acted as a trigger. I might have gotten the same results by moving to another country, changing house, changing friends, maybe by dropping college altogether, but that shallow, nonetheless very useful, purchase (I'd go as far as to call it an "investment") did the trick. I got my degree, I'm still working, and enjoying what I do, I even moved to another country eventually. Could I have experienced the same thing doing something else? Probably. But it's easy to say so afterwards. :)
There has been a scientific study about what makes people "happy" [1]. It's even something we can easily test personally: relationships. No matter what, relationships create that emotional swing that makes our lives interesting (assuming a psychologically "healthy" person, by today's standards).
That said, how many people actively pursue relationships? To me a person who has tons of friends (the kind you spend time with on trips etc. not the kind you text every once in a while to see how they are doing) but works a frustrating 9-5 job at a bank is definitely not someone I'd look up to. On the other hand a person who is extremely successful in his field, wins the most prestigious award in that field, but does not (again, by today's standards) live a healthy life does not set a good example either [2]. So what's the optimal situation?
And appearances don't help. I have no idea whether Elon Musk (since he was mentioned in another comment) is happy. I just know he looks successful. In my mind he's the kind of guy that enters a room and automatically and instantly gets the respect and admiration of the "smart" people in there. Does he even care about that? Am I being tricked into seeing Elon Musk as a status symbol like I'm tricked into seeing the iPhone as one of the best smartphones out there?
Happiness is definitely more complex than accepting what you do as "special". Accepting your current situation is a great way to start clearing up the cloud of things you consider important but if that was really the way to be happy why would we even bother improving ourselves or society? I hate to say this but I almost feel like this is the classic story of the fox and the grapes. When the fox can't reach the grapes says they are not ripe.
What if happiness was about pursuing something, regardless of the end result?
In the ted talk, he doesn't explain why this is not just a correlation. Maybe there is something else that makes you happy and makes one better at having relationships. For exemple, someone who has anxiety disorder will not be good with relationships and most probably will be unhappy. But the root cause of unhappines is anxiety.
1) Small teams (~1-5 people) trying to seem "big" by working at Google's scale.
2) Heroku's prices. We are currently (successfully so far) migrating a small Django project from bare Amazon EC2 instances to ECS with Docker. Even using 3 EC2 micro instances (1 vCPU, 1 GB RAM) for the Docker cluster we would spend ~8 USD/month/instance. With Heroku the minimum would be 25 USD/month/dyno. That's a 3x increase in expenses.
It's very possible to take advantage of technologies like containers without getting too caught in the hype.
wait. you're comparing $25 with $75. it is 3x but it's still accounting noise by any standard imaginable unless you're running a charity server for an open source project.
What about the standard of "I'm young and this is a side project I'm doing in a couple of hours at the weekends"? Of course once you have a real company with more than two customers $75 is nothing. But version 0.1 is often a tool that's only useful to you.
Heroku has free dynos for side projects, and hobby dynos ($7/dyno/month) for slightly-less-side projects. So that original $75/m quote isn't quite right for that situation.
> What about the standard of "I'm young and this is a side project I'm doing in a couple of hours at the weekends"?
Well, even someone who's young (for values of 'young' older than high-school age) is probably spending more than that every month on beer, food & entertainment each …
To answer the concerns raised in the comments: we are a real company and it took 2 weeks (while working on other features and bugfixes) to migrate to Docker. The plus is that now we have experience with the platform and we can streamline the process. Again: we are not using microservices or anything like that, simply Docker containers instead of EC2 instances, which makes life pretty damn easier (and cheaper).
And 25 and 75 are bogus numbers, what if we start running 10 instances?
A few hours a week dedicated to re-building our deployment process (which was a pain since everything had to be provisioned manually for each new project). Not saying it was the best approach, it sure was an improvement and worth the (relatively little) time.
Once again keep in mind that for new projects the process is so streamlined it will take a fraction of the time to set them up.
Indeed, the goal is to solve your business problem with technology, not use Docker for everything that you can find in your infra. Many people are mixing up the two. Docker can be replaced with anything that is hyped at this level.
Exactly. Docker provides a set of features that are nice to standardized development environments and deployments across projects. Anything else that accomplishes that works as well.