I agree with you but I have this nagging feeling that it's more complicated than that. I wouldn't be surprised if Valve was nearing dangerous antitrust territory with the dominance of the steam platform.
It's much less dominant than the Apple store (which really is a monopoly on the iOS platform). If there is an anti-monopoly case it will be there first.
Where is antitrust? There's Origin and anyone (i.e. any publisher or indie gamer) is free to make their own store online anytime. There's monopoly where the cost of entry is high, but in that case, the cost of making an online store to sell your own games is close to nothing. There's also Desura, Humble Bundle (they don't only sell Steam keys), and lets' not forget the plethora of online and retail distributors which sell physical games still.
Anyone is free to make their own operating system, browser, and bundle them too, yet Microsoft got pummeled by both the DoJ and EU. AFAIK (IANAL), the market dominance of a product has a strong effect on whether something can be brought under the jurisdiction of antitrust law. You're right though, as the cases I've seen mostly revolved around anti-competitive tactics, like Microsoft above and Intel for their OEM deals (both of which I think relied on their market dominance).
Unfortunately that's not how antitrust laws work. How a company establishes a large market share is not a necessary concern in historical court cases. Merely that a company has a large market share seems to be the primary consideration.
I was searching for the same thing myself recently, and it seems that DHH is against having any sort of logic in the database - he believes that all validations and constraints should be in the application instead of being in both (which I believe is the correct way).
I probably phrased that incorrectly. I definitely think that you should have validation logic at the database level. I've had a couple of major issues in the past (while still learning web dev) where lack of indexes/constraints has pretty much ruined my database when I tried use them in production
You also want to implement foreign keys in the database since you do not want to have to remember to lock referenced rows when inserting new referring rows. The database helps you out with concurrency issues.
I started out doing HTML/CSS and very little PHP (enough to slightly customise wordpress themes) back in high school. In grade 12 I got on to a national competition sort of thing that taught you python as you went and ended placing really well. I really enjoyed the challenges, so I decided to try and teach myself a bit more, but schoolwork got in the way, so I shelved that idea for a year or so.
I later decided after doing a fair amount of front end design work for friends and family that I'd try and learn back end development, so I tried python again, using the flask microframework. I did a few small projects with that, then I found sinatra on ruby and ended up really enjoying ruby more than python. I ended up working pretty much entirely in ruby for any back end dev stuff (although it wasn't very much), and slowly improved my javascript skills.
During Uni, I have also learned enough C# to make my way around. In my second year, I got a job doing front and back end dev, and made my first big project using sinatra and I loved it.
Later on we needed to write some software that interfaced with a label printer, and the best library we could find was for java, which none of us knew (nor did we want to learn). I had been reading about clojure and liked the look of it (and heard that it had great java interop) and I made my first (very dodgy) clojure app to interface with the printer.
I got hooked on functional programming then, and in the past year and a half, I've learned up on a few different languages. I have vastly improved my Javascript skills after using Backbone.js and then Angular.js. I also improved my Clojure skills, by re-writing my first work sinatra app using compojure, as well as a few side projects. I also took an interest in Erlang and Elixir after hearing about both on HN, and I learned the basics by reading 'Learn you an Erlang', and trying to make a few small project in both. I'd love to use Elixir some more, but I don't have a good project idea that suits it's use-case. Just recently I also learned C in a uni subject.
I'm always looking to expand my programming knowledge, I just have trouble coming up with ideas of what to program!
Elixir is a fantastic language and it's a lot of fun to code with, but you need to know at least the basics of erlang to use it well, because although it has an excellent standard library, it's not as comprehensive as erlang's.
I would definitely recommend anyone that wants to try Elixir, to at least try learn some erlang first. The learn you some erlang book is pretty fantastic.
You and me both. I miss it whenever I use a phone that isn't my N9. It just seems so natural. The actual shape of the phone helped a lot though - I don't think it would work as well if the front was completely flat.
Yes, that's how you use them on a laptop or Apple bluetooth keyboard.
But the point is, on Windows or Linux, they move the cursor, but on the Mac, they scroll the view but don't move the cursor. Home scrolls to the beginning and End scrolls to the end.
On the Mac, to move the cursor by larger amounts, you combine command or option with an arrow key.