In practice it was used far more for type.
2,516 karma · joined April 15, 2009
In practice it was used far more for type.
users.map {|u| "(" + u.first_name + ")" }
'u' would be a very bad variable name in a broader context. Here, we can easily see it's a user.
We might be at the point where this is an acceptable simplification for very fine grained processes and services. Has anyone explored this model?
The problem with exceptions is that they allow you to put arbitrary distance between the point of detection and the point of handling.
This is a good starting place: http://www.amazon.com/Garbage-Collection-Algorithms-Automati...
Realistically, they have options in both spheres, but they only feel one oppressively and they tend to assume that everyone else does too. Where power is exercised at work they are okay with it - they recognize it as part of the system and don't feel like cogs.
I wish you the best in finding new glasses to see the world of work through, just as I wish the same for people I know who are fighting governmental oversteps. The key thing is - it's not all bad. There is badness out there but structure is not determinative. Look for happy people in any system. You'll find them. What we look for in life does affect what we see, and what we create. Best of luck to you.
Ever worked in a chain restaurant? Camaraderie among coworkers at a site under a manager (so hierarchy) and not as much peer connection across sites.
I'd argue that you are using a narrow definition of hierarchy that is centered on ideas about power rather than dynamics in emergent systems. The arterial structure of a leaf is hierarchical. So are airport connection patterns. Whenever you have preferential attachment or costs associated with material or information transfer there's a force toward hierarchy, designed or not. Systemic effect. No primates needed.
The interesting bit to me is that if we considered something non-sentient, like a network router that controls flow over a set of nodes, it would be easy to anthropomorphize it purely based on its behavior and see it as exerting dominance when it makes its routing decisions if they don't align with what we want at that moment. Although there can be abusive hierarchy, there's something deep to be considered in that scenario. We might be inclined to see all hierarchy as bad because that sort of conflict of interest can happen, willed or not. That's why, where there are power relationships in employment or even representative democracy, systemic integrity and human values depend upon gaining and maintaining consent.
I think that the big challenge is to recognize that hierarchical structure isn't good or bad, it's something that most natural systems do in response to scaling. If we understand it as a design parameter we can make it humane.
https://itunes.apple.com/us/album/snippets-programming-episo...
find . -name "*.rb" |xargs -n1 -I file sh -c 'echo `git log --oneline file | wc -l`: file'|sort -nr
Applying a time period window is good too as some parts of code churn for a while and them reach stability.
All the things that he writes about are normal - they happen. People (myself included) with an engineering background are surprised when things don't "make sense" or people don't do things the "right way." The trick is to get to the point where these things are not surprising, where you see them as part of the systems you are trying to understand and consequences of forces that aren't mysterious, they are just part of human social dynamics. From that vantage point you can get a better sense of what you can change to influence outcomes and whether you can or can't in a particular context.
I think that we arrived here specifically because we don't have a term for the effect of careless code change. 'Technical Debt' ended up being appropriated as a term for it.
The real win is to go horizontal. The same people do market analysis, design coding, testing, and prod support. We can't all be experts, but most of us can develop enough skill to do this. The elimination of hand-offs removes delay and miscommunication.
I'm not saying that the security field had a 'Hilbert's Program' before then, but it certainly couldn't have one afterward.
In my code, I'm only dealing with null if a API gives me one. At that point, I take some sort of action to make absolutely sure I'm not passing it along to anyone else. This means using exceptions, the null object pattern, or Optional without a need to dereference. The goal is to prevent a proliferation of references that could be null and therefore have to be checked.
https://www.psychologytoday.com/articles/201305/confessions-...
20KSLOC programs just don't appear out of thin air. They start as small programs that, if you apply good programming practices, can scale beyond 2KSLOC. And if you apply good program design practices can scale up to 20KSLOC. But all along the way you'd better be thinking about whether you really need a particular feature and how coupled it will be with the other ones. That should happen in every program. The problem is that we are not used to challenging the features that are selected for our systems and recognizing their price as the system grows.
Nothing is secure, really. I'm continually amazed that people want to see security as a binary thing.
I first felt this way when I saw "addiction" applied as a label to kids who prefered playing video games to going outside. My response was "did they call it addiction before video games when kids played with blocks and action figures indoors?" They didn't. It's easy for people to reach for the term "addiction" when they want to pathologize behavior they don't like.
Fact is, the dopamine cycle is a natural part of life. The problem isn't whether something is addictive or not, it's whether the side effects of that pleasure cycle are harmful. I've had periods in my life where I've spent weeks and months at a time "heads down" in programming. It was always as controllable as it was pleasurable.
Hard to believe it takes so long in the 21st century. Is that bureaucracy or science?