Previous discussion on ORMs: https://lobste.rs/s/fsx3dq/orm_is_an_anti-pattern
Ahaha, and I used almost the exact same examples.
I don’t like Google Glass but that does not give people free reign to terrorise someone who may have had made a misjudgement in purchasing a Google Glass. Instead of labelling them “glassholes” or kicking them off the network shouldn’t we throw our over exaggerated anger and try to have a reasonable discussion with them as to why society may not like them wearing Glasses to exhibitions?
This is extreme bullying and it’s not going to solve anything, other than drive a wedge between those with Glass and those do not.
You make it sound like being on my network is a right.
If it’s a public network it seems somewhat unfair to ban someone because they’re using a specific device. If it’s your personal network, or a home network, that’s different. And, even if it’s your personal network it still seems unnecessarily mean spirited.
As explained in other comments, you don’t need a script like this if it’s your network; every brand of wireless router comes with MAC filtering by now. This script is for when you want to kick Google Glass users off a network you don’t own.
You make it sound like you were appointed God over your network as opposed to being granted admin right over your network to ensure those that needed internet access got it.
Uh, if it’s my network, then yes, I am God over it. That’s how it works. It’s my network. I own the company or the house that it resides in.
I think callumj is distinguishing between networks you admin and networks you literally own.
So owning your network gives you the right to be a jerk?
So owning a private good obligates you to provide it to everyone?
I ask you to reconsider the idea that this is what extreme bullying looks like.
Are you saying that wearing Google Glass is bullying? Or that being prejudiced against someone simply for owning something, and acting on that prejudice isn’t bullying? Or that just banning a type of device on your network isn’t “extreme”?
If it’s the last one, perhaps it’s not the same as walking up to someone and punching them in the face, but I would argue that implementing such a blocker is going a little extreme.
As steveklabnik mentioned ActiveRecord has made it easier to execute trivial SQL queries and immediately have them returned as objects. I agree an ORM can get a little frustrating when you want to start performing complex SQL queries but for the most part an ORM is highlight beneficial.
I find ORMs still overly useful in basic web requests, if I need to show a single User or multiple Posts the gains over a simple User.find(params[:id]) and Post.top_ten outweigh the supposed burden of an ORM. I didn’t have to worry about constructing a maintainable SQL query and converting the DB response into a maintainable struct; all I had to worry about was moving the model down as a view model into the view.
There should not be such hate around ORMs, instead there should be better education of when an ORM is awesome and when it’s time to take matters into your own hands.
While I understand why people describe ORMs a failed abstraction, I strongly agree with you. ActiveRecord provides a usable solution out of the box, that fits common requirements for web apps.
ActiveRecord and probably most of others ORMs are clearly leaky abstractions. SQL concepts are everywhere, just hidden from plain sight, waiting to bite. Imho the majority of serious Rails developpers are at least able to read and write plain SQL from time to time. If it gets complex, most of those I’ve met and myself included just dive in the docs, trying to refresh memories about what is needed.
This leads me to think that AR was designed with that fact in mind, to use it efficiently people still need SQL notions as AR don’t even try to hide that stuff. It just provides a convenient way to handle common queries. I can’t speak for the others big ORMs like hibernate since I haven’t used them in a long time but I doubt they were designed in that way.
AR in that case, still is a leaky abstraction, but it works wonderfully in most situations. From what I’ve seen, the biggest issue is usually the developer not knowing AR’s limits and keeps using in a case it brings more harm than good.
I started tests on my first Golang tool, weave, which is a packaging tool for different configuration sets. In combination with Buildbox CI I have it distributing and updating Docker configurations across my hosts.
So the reason we have so many languages on the backend is because as developers we have 100% control over the backend. We own the server-side so we have luxury of doing what ever we want on that domain.
We wouldn’t have different interpretations of languages if we had a common VM. Browser vendors wouldn’t interpret the different languages; only the intermediate format. Similar to the JVM and CLR; these seem to work well.
(Though I don’t underestimate the effort involved in this, even before you consider having multiple companies involved!)
So we’d have to standardise on the intermediate language for the VMs? I think you’d see the similar situation that currently plagues Mono, it’s playing catch up to Microsoft’s CLR. Imagine if we had Microsoft/Apple/Google on different levels of the VM implementation?
Having a VM would improve a lot of things, while making existing things not worse than they are.
Excellent point, I think I got carried away. I agree a VM approach would be an excellent solution, I’m just concerned with a cross platform VM that isn’t controlled by one company.
Where caching is applicable.
The caching is performed on the SQL statements generated (.find for a model is usually called with the same scope) so I think people will see some sort of boost.
At it makes sense anyway, why should AR have to re-generate SQL it just just generated micro-seconds ago just because the ID changed from 2 to 3.
I’m learning Go. I’m looking to build small command line utilities or single purpose services and Go with its cross compilation and lightness (well compared to having the Ruby interpreter running) looks like a real winner.
I’m currently building a small tool for merging directories together to emit distributable packages.
I think what I’d rather see is less of companies releasing fake products as an April Fool and more of neat hacks involving April Fools.
I’m really confused why even a modern version of Windows with Powershell still has the appalling terminal experience from Windows 9x days. I constantly find it annoying that a default Windows installation lacks a decent scrollback buffer, the ability to size the terminal to any size and better text manipulation?
I thought the PS push was going to introduce a complete new prompt, but instead they repurposed the existing one?
Exactly. Sometimes copying good qualities from competitors (*nix) can go a long way in building a trust relationship with developers who love command prompt.