One is a gigantic, uncontrollable anarchy of heterogeneous systems with varying quality that evolve independently and constantly get connected in new and unexpected ways.
The other is a worldwide, publicly accessible series of interconnected computer networks that transmit data by packet switching using the standard Internet Protocol (IP).
--Stefan Tilkov from A Pragmatic Introduction to the Web's Architecture
I'm trying to force myself to use qri instead of searching google for 'ruby array' when I need to lookup documentation on a class. qri is much faster than ri and provides colored output. The unfortunate part about qri is that, as far as I can tell, you need to rebuild the fastri index each time you add RI documentation(i.e., install a new gem). So here's a function you can throw in your .bashrc
The next step would be to provide a bash completion file for qri. I am so used to typing to letters then tabbing my to success. Tab and Esc are my WIN buttons.# $ sudo gem install fastri# $ fastri-server --rebuild-index# $ qri Arrayfunction gemri() { sudo gem install "$@"; fastri-server --rebuild-index; }
Twitter has always seemed to resemble IRC to me, at least in the way I want to use it. So since I signed up I've wanted twitter to be in my terminal on a screen. Here's how I didwant to do it:
$ sudo gem install twitterInside of a screen session:
$ screen -t twitterSo the problem is this doesn't work. The highline gem seems have problems with the output stream that watch creates.
$ watch --differences --interval=300 twitter timeline --force
or
$ watch -d -n 300 twitter timeline -f
UPDATE: Works on Terminal.app with macports' watch.
In support of my post on delaying repayment of student loans (emphasis mine):
Myth # 5: "Excess consumption is a feature of the free-market capitalist system."
False. Excess consumption is mostly caused by central bank's artificially low interest rates, which promote lower savings and higher consumption than would naturally occur. Currently, the real interest rates of savings accounts are negative. Thus it makes no economic sense to save. Since these same policies cause price increases, it makes sense to consume as much as you can immediately, before prices rise. Therefore we see that excess consumption is being caused by government policies and not by the capitalist free-market system.
I cannot say enough good things about the C2 Anti-Patterns Wiki. I am so impressed by the long list of anti-patterns that I suspect that my awe is somehow an anti-pattern in and of itself. I know that any worthwhile developer is guilty of a few if not quite a few of these anti-patterns. I think it would be a great idea to get anyone you're working with to compile an anti-pattern confessional. So here's my initial anti-pattern confessional:
I'm sure this list will grow as I read more entries on the wiki. Hopefully it will also shrink as I analyze the list. Essentially an anti-pattern confessional should be in a constant state of flux. What is the name of that pattern?I had a great time at erubycon this year. The speakers were great and the Columbus Ruby Brigade had an awesome group of Ruby enthusiasts.
The most compelling talks were what I would consider the talking-head talks given by Stuart Halloway and Neal Ford. Both of these speakers had a way of identifying with the audience and bringing out things we probably already knew but maybe didn't know how to express. What I took away from one of Neal Ford's talks was that we already know we are doing it the right way. We know that agile with a little 'a' is the right thing to do, but we don't always practice it and worse yet we refuse to use and/or accept historical evidence proving us wrong. We all know about "the bad things" like NNPPs, adding resources, commoditization of software developers, etc., but somehow all of these persist in our (agile) enterprise organizations.
Stuart Halloway talked about blub and how Ruby isn't blub just yet but is on its way. While talking with a few people back at the hotel Randall from Engine Yard mentioned the Bathtub Curve which, when applied to developers, can give one an idea of when something has become blub. It all boils down to supply and demand, which brings the essential problem of commodization of developers back to the forefront of bad software.
Stuart's second talk on How to Fail with 100% Code Coverage was good. My reactions to his points ranged from "Yeah, duh..." to "Yikes! I know I am doing that currently." I really enjoy talks like his that don't dance around issues. He did an excellent job of encouraging the audience to be better developers through introspection and critical analysis. Though I know some who disagree, I don't want to waste time to pat myself on the back. I'd rather spend my time figuring out how to be better. Praise isn't supposed to come from oneself.
Here's the list of talks I found interesting from a mostly technical standpoint:
- What the Enterprise Could Learn from your Mom - Jim Weirich
- Code Generation, Metaprogramming, and Enterprise Integration - Giles Bowkett
- Extract Transform and Load - Randall Thomas
- Dialogue Concerning the Two Chief Modeling Systems - Chris Nelson, Joe O'Brien, and Jim Weirich
- There's Ruby in My Browser - Josh Holmes
Giles always has interesting things to say. He was a good way of presenting, as well. I told him I appreciated his ranting nature, though I'm not sure if he thought that was a good thing. So it only makes sense that I horribly misunderstood his talk's message as well. What I took away from his presentation was that you can write something really leet and everyone will hate you for it.
Randall's talk was great. He has had a lot more experience with a lot more systems than I can even name. The only reason I bring up his talk is because he mentioned doing things right the first time. I think this message is a bit of a conundrum for me. I heard the same thing at the Silicon Valley Ruby Conference in San Jose back in April from Alex Le who works on Friends For Sale. The reason this is confusing is because that isn't exactly agile and DHH gave a somewhat conflicting viewpoint when he mentioned doing something now and worrying about scaling when you actually have customers. Wanstrath mentions something similar in his keynote at Ruby Hoedown. I understand both viewpoints, but I think there is more credence for doing something now because doing it right, in my experience, usually means never really doing much of anything.
The Dialogue presentation was great simply because of the format. Essentially it was a play... about programming... it was great! I would love to see more presentations done in this format. We do live-coding, but it is always just one guy making the same assumptions that he is solving the problem the right way and that everyone agrees with him. The dialogue let the audience sympathize with more than viewpoint, but still had an obvious message about the right way.
And finally, Josh Holmes's talk on Silverlight was interesting because we got to see some really interesting Silverlight apps. He is also an excellent speaker. I am not really excited about Silverlight, but I do believe HTML is waaaaay dead. We have it on life support with all the crazy things we're making Javascript do. The only real way forward is through service based websites and presentation layer clients that can truly take advantage of image and animation libraries. Two examples of what I mean are GitNub and Lighthouse Keeper.
Henry Hazlitt's classic, Economics in One Lesson, is an easy-to-read introduction to the concepts of economic liberty. So let's cut through the fluff and praise. Here's the lesson:
"The art of economics consists in looking not merely at the immediate but at the longer effects of any act or policy; it consists in tracing the consequences of that policy not merely for one group but for all groups."Mr. Hazlitt's book attempts to apply this lesson to a concise set of topics, such as war, public works, advances in machinery, protectionism, rent control, minimum wage, and inflation. These were just a few of my favorite. My local library had the 50th anniversary edition which includes a chapter entitled The Lesson After Thirty Years.
One example I enjoyed greatly was his description of how bridge-building at the expense of a citizenry simply diverts resources toward something more seen. That is, a finished bridge is seen and everyone understands where their money has gone if it were coercively taken from them. However, what we fail to see is all the production that did not occur. It is harder to see what didn't happen as a result of that diversion.
"Here again the government spenders have the better of the argument with all those who cannot see beyond the immediate range of their eyes. They can see the bridge. But if they have taught themselves to look for indirect as well as direct consequences they can once more see in the eye of imagination the possibilities that have never been allowed to come into existence. They can see the unbuilt homes, the unmade cars and washing machines, the unmade dresses and coats, perhaps the ungrown and unsold foodstuffs. To see these uncreated things requires a kind of imagination that not many people have. We can think of these nonexistent objects once, perhaps, but we cannot keep them before our minds as we can the bridge that we pass every working day. What has happened is merely that one thing has been created instead of others."Needless to say, I am a fan of this book. I cannot say that Mr. Hazlitt's disection of Western economic policies was an eye opener; I already believe that "economic policy" is, in fact, a bankrupt premise on which to base human action. I will only say that his examples and simple reasoning have further entrenched my thoughts on the state.
I would highly recommend that anyone interested in finding a simple, yet compelling explanation as to why war and theft are always bad ideas pick up a copy of this book from their local library.