The Utu protocol is encrypted, and as people communicate, they can apply cryptographic hate as a hash cache. The server will make you do this hash cache calculation before you talk to anyone else. So if you don't like someone, or you are getting spam, you can do an implicit "sender pays" system. Cryptographic hate is a natural throttle, a social network aspect.
I've been a programmer and IT manager for ten or twelve years. For the past year I've been working on Mongrel and consulting in Ruby. I have a degree in MIS, and am pretty much self-taught as a programmer. MIS was the only track I found that would let me study people, business, and economics in computers. The programming stuff I had no problem with. I wanted to learn about human interaction in this environment.
My overall interest is in how technology changes society and how people do things. Some people say you can't find an engineering solution to a social problem. You know what? Society is totally different Before Car and After Car, or Before Planes and After Planes.
Technology is always changing society, the way humans operate. There's a connection between the introduction of mass transportation and the incidence of obesity.
Computers are just such a new technology. I was born with computers, using them and programming them since I was twelve. I see how society has changed. Cars, planes, computers ... at first it's fascinating to people, then it becomes second nature, "We've always had highways." No, you haven't always had highways!
Computers change the way people think. There are kids who have no concept of life without computers, text messaging, email and chat. How does that change the way they think about things? They understand the Internet, the security problems, in a way older people don't really get. But they don't know why, or what was beforehand.
I started writing games in Basic and kept up. When things went to C++, I was doing that. Windowing systems, I was doing that. I've seen this progression, businesses coming and going. There are a lot of guys my same age here who started at web apps. They have no understanding of why certain things are the way they are.
Computer science is a unique discipline in that it has no concept of history. You talk to computer scientists, and whatever they learned, that's the way the universe is.
For me, computing is a way to articulate my ideas and change how people interact. Most of my projects are oriented around making things fun for others, but also kind of weird. What happens if I introduce a chat system where you can hate on other people? Will the whole network shut down because everyone hates each other? Will you be able to go in and say, "Hey, if you like these guys, you also like those guys, too, and if you hate this guy, you might like that guy"?
You'll build reputations. "Don't even let people with an average hate of 25 talk to me." This is something you can't do in current Internet communication. You just have to accept everything and then reject based on Bayesian filters.
I'm also really interested in the psychology of programmers and those strange beliefs they have. Beliefs which they don't understand where they came from. There were folks like that in business school, who had never read Adam Smith. Where do these ideas of capitalist economics come from. They don't really get it. They don't understand counter movements like Marx and socialism. For them, it's just how you make cash. There's no interest in why things are as they are.
Computer scientists, it's the same deal. There are just things they believe. Most computer programmers seem to break things down into Boolean logic. It's either THIS or THAT. There's always US vs. THEM, Windows vs. Linux, Vi vs. Emacs. They're famous for this, but they are scientists, they're supposed to be logical, but there are religions. My programming language vs. that programming language. GOOD or BAD, BETTER or WORSE, TRUE or FALSE.
They don't even know there are alternate logic systems that have "True", "False" and "I don't know". What if we just make logic fuzzy? They know nothing about statistics. It's like they're on another planet. No other human being thinks like a programmer.
My theory is that this is from working with code all day. The person they talk to most of the time, eight hours a day, is this computer that only understands Boolean logic. That influences their thought, how they think about problems in the world.
When quantum computers become viable, when you finally see the Altair of quantum computing come out, I think programmers now aren't going to be able to hack it. It's going to be new people who roll into it. They can do the math, but quantum computing is more about statistics, more about a lot of things that programmers today have no clue about.
]]>I was one of the first in Portland to adopt Rails, but that's not saying much, because almost all of us adopted it at the same time and got working on it. I started as an independent consultant with a prepress company that was building an application in Rails and needed someone more expert than their programmers to help out.
I'm not good at marketing my services, so when a fulltime job in Rails opened up, I jumped at it. Clients come to us who need a specialised content management website.
Over time, I've wanted to do less Rails and more Ruby. RubyConf is a good way to get exposed to what's going on beyond Rails, and to be exposed to programmers who are doing stuff that isn't Rails.
I really like web development. When I build an application, I can do it in a browser faster than I can do it in GUI code. But web application programming is not what I want to spend my life doing. Writing applications to support system administration is for me the ideal thing. There's a lot of interesting glue code you have to write to bridge between the content-based model that most Web development is and the system-level things you need to do. It's fascinating to me! I've written Harmonize, a Ruby wrapper around the Mac Cocoa Sync Services.
Most of the serious programmers I know who have started out writing Ruby on Rails get to the point I'm at, where the want to start writing Ruby instead of Rails.
Thomas Werner (San Diego): Ruby is a very seductive language. Coming at it from Rails, from a PHP background, or even from Java. You've seen Rails on the Web, you say, "This might be a fast, agile way to develop applications." So you start using it.
At first you're not interested in Ruby so much as how Rails uses Ruby. But once you talk to people who have been using Ruby, you start writing more advanced controller code, putting more Ruby code into your models, you realize how great a language Ruby itself is, and how easy it is to write really interesting libraries. You start writing libraries. I wrote Chronic, a Gem for natural language date-time parsing.
Suddenly, you want to learn everything you can about Ruby.
]]>Matz: We have many programmers in Japan. Some are very smart. In general, Japanese are not good at English. They want to work on influential software for international distribution, but they have had to learn English before that.
Ruby is used worldwide. So, using Ruby, they can join the developer community without learning English, as Takahashi-san said in his presentation. Ruby allows Japanese developers to show their ability to people outside Japan.
I just wanted to create a language people would use in and out of Japan.
I work fulltime in Ruby. I work in Open Source integration. The systems we design for our clients include Ruby. We offer our clients a cheaper solution using Open Source software. Some of our geeky clients feel trust in the company that owns Ruby and has the creator of the language on-staff.
Of course we like to do Linux, but most people in Japan are using Windows. Linux works well in Japanese. However, the big companies are very conservative and feel resistant to relatively new operating systems.
I have kept control of the core Ruby language, the syntax, the interpreter itself. I'm not going to lose control over design of the language. I've asked others here to work on the new Ruby virtual machine, take an implementation role, but I'm not going to pass the design on to others.
I have learned from Perl and avoided some of the mistakes of Perl. I made a mistake in borrowing weird variables from Perl. In implementation, Ruby's interpreter core is too complicated. Even I cannot understand it! When something goes wrong in the interpreter core, I sometimes have a hard time reading and understanding the structure.
I could not have imagined the current state of things with companies around the world using Ruby when I released the first version in 1997. It doesn't really matter how many people use Ruby all over the world. But since Ruby is my masterpiece, when people use Ruby with satisfaction, it makes me feel better.
]]>Mike Howard: I've been looking for 8-10 years for a way to build web applications that is efficient. The first thing I tried was a bunch of m4 macros and C macros that translated stuff. Every time I see a web framework I try it. That got me into Ruby. I've become really interested.
For these past ten years, I've been a consultant, doing a broad range of things, device drivers, applications, system administration ...
I'm trying to narrow my focus to something I can manage a little bit better, to stay the lone wolf, to keep from going insane. The breadth of what you have to know and the speed at which you have to learn new information pretty much follows Moore's Law. It's impossible to keep up, especially if you cover too broad a spectrum.
I think of it in terms of efficiency. I started out programming in Fortran. I eventually found C and Pascal. About 5 or 6 years ago I discovered Python and started doing everything I could in Python and PHP.
Ruby is a step above that. I've come to appreciate just how efficient and concise the Ruby syntax is and how much easier it is to solve problems in Ruby than it is in other languages. Just as a guess, there are probably two orders of magnitude of ease in Ruby compared to C, in terms of the code you have to write. I haven't measured it.
Ruby is readable. I don't write in languages that aren't readable. I have code that I wrote close to 20 years ago that's still running and the people that I wrote it for still know where I am. I may have to fix it someday.
]]>We are treated to one very funny "History of Ruby" by Masayoshi Takahashi in the opening session.
Funny? Well, yes, his mordant self-deprecating humor flavored by the concious satirical delivery of his rudimentary English is funny. But it's poignant and fraught with meaning for our transnational community of computer programming as he tells us:
The development community in Japan is the Ruby community. Imagine a world where everyone speaks Japanese, all the programming languages are taught in Japanese, all the books and the Internet are in Japanese, and you only speak English. For us, the choice is often, 'Learn Ruby or learn English'.
More later. I'm actually a working developer and have to put in some hours today. I'm scheduled to chat with Matz later today. I also am going to try to round me up one more Ruby programmer.
]]>Jack will be reporting from RubyConf 2006 in Denver, October 20-22.
]]>