Posted by Kevin
Mon, 26 Jun 2006 08:44:00 GMT
- I went about integrating a GPS and a Digital Camera to create a new kind of website. It would combines pictures, GPS tracks and user notes. The result was walkingboss.
- Mashup definition from wikipedia: A mashup is a website or web application that uses content from more than one source to create a completely new web application.
- Maps are mad hot. People are enchanted by them. That’s why every second web developer has written a mashup involving the google maps api.
- The impetus for the site was that I was going to run an ultra-marathon, and since I was pretty sure I wasn’t going to run a fricking ultra-marathon again, I wanted to preserve the memory somehow.
Mad simple steps to use the site
- Go on a trek with your GPS
- Snap some photos
- Upload your GPS log and timestamped photos to the site and you’ve got an integrated track.
Lessons Learned
- This web 2.0 isn’t all that bad after all
- There’s mad free api’s out there: search, maps, photos, movies, music
- Rails is a great glue for these things (and he claims to have written about glue before the linux journal article).
- On an unrelated note: when dude arrived at the conference, he realized that the railsconf facebook didn’t have an api. He then informed us that apparently now it does. It’s pretty unreasonable to be able to throw that together in about a day. Rock on man.
- Called out Paul Graham and nasty little problems, which are the ones that you don’t learn anything from. Luckily rails helps you avoid the nasty little problems and keep the momentum going.
Dude seems mad genuine. Much love.
Posted in Railsconf | no comments | no trackbacks
Posted by Kevin
Mon, 26 Jun 2006 08:32:00 GMT
I was sort of getting access to the internet for the first time of the conference during this talk, so I didn’t get much listening done.
- A pseudo-standard has been established for the Spanish Latin American locale: es-419 (whereas usually locales look like: en-US)
That’s all I got. He was actually very knowledgeable, and when he ended his talk 20 minutes early with an awkward “err, thank you,” it was quite funny.
Posted in Railsconf | 1 comment | no trackbacks
Posted by Kevin
Mon, 26 Jun 2006 08:05:00 GMT
- “The Power of the Marginal”
- It’s cool if people have never heard of your programming language.
- Many of the best companies started in garages.
- Don’t major in what you like unless the thing you like happens to have a great teacher (and business classes typically don’t have good teachers, because most good businesspeople are too busy being good businesspeople to teach).
- Big companies make bad people filter up to the top, since thoughtful people wouldn’t manage to play the politics as much as is necessary.
- Outsiders have a big advantage in the extent to which they can take risks; if they fail, who cares.
- Stupid ideas don’t make you stupid. Not risking enough to have stupid ideas probably means you’re not taking enough risks.
- Eminent people just don’t have enough time to come up with earth-shattering ideas.
- One way to make sure things are done right is to not delegate. Do everything yourself.
- Since outsiders haven’t specialized and become known for one thing, they have the opportunity to work on a wider variety of things.
- Eminent people refer to things they’re scared of as “not ready yet.” If someone refers to a programming language as “not ready yet,” jump on it.
- Small projects have the potential to be perfect. They can have a personality. They can be done tonight!
- Most people care more about the opinions of the ten people they care about most more than the rest put together.
- If you end up being eminent, you may find that the best part is having an audience. (At this point he glances at the audience and smirks).
- Since the marginal do have so much potential, people will try to dismiss you before you can get your act together: You’re on the right track if people say you’re 1. “Unqualified” or 2. “Inappropriate.” These are just other ways of saying, “we don’t like your type around here.” So if they say 1 or 2, keep rolling and they’re busted.
I definitely don’t like this guy less after having heard him speak. Check him out – his essays are all chilling.
Posted in Railsconf | no comments | no trackbacks
Posted by Kevin
Sun, 25 Jun 2006 19:16:00 GMT
“The conference people must have thought I would be interesting. I don’t know where to begin to talk about what’s wrong with that.”
“I think rails has legs to carry it into the future. I actually thought smalltalk had legs, but hell, hopefully I can’t be wrong twice about the same thing.”
- I’m really interested in enterprise design, even though enterprise is a pretty bad word in these circles.
- I’ve never actually used rails. I would, but I just haven’t needed to build a database-backed web application.
But rails is certainly interesting. Why is that…
Opinionated
- This is not software for everyone; it’s made for certain kinds of applications.
- One object to one table. I never really thought it would work as well as it has. ActiveRecord is the best implementation of the active record pattern I’ve seen.
- There isn’t one architecture that can be used to solve all problems.
Drive Towards Simplicity
- Enterprise Javabeans (EJB’s) was a framework with enormous power that was difficult to use for practically any purpose.
- There were backlashes against EJB’s in java (hibernate), and they went still further in ActiveRecord.
- Ruby and Rails challenge the notion that to do something quickly, it must be a dirty, hackish, unmaintainable mess. Like smalltalk (nice plug), things can be quick and clean. And they can even have testing built in. Awesome! He had the ill English accent and would probably never actually say the world ‘awesome’.
- Agile dude Kent Beck liked to talk of “Conversational Software Development”: get a feature request, do it in two hours, and talk about it with the customer again.
- Is it good to fire first and aim later? Perhaps so, depending on how many bullets and how much time you have. If you release software and see how people use it, it’s a great way to gather requirements (despite the fact that the order seems totally backwards).
- Rails keeps you out of the plumbing and allows you to work on the interesting business aspects of the software.
Ruby
- My progression in terms of scripting languages I used was: Shell -> Perl -> Python -> Ruby.
- A lot of what makes rails great is ruby.
- Railsconf was a bit of a failure since it was necessary to have a conference at all. The best thing would have been if rails was so simple that it didn’t needed a conference at all.
- He likes throwing stuff together, as long as it’s designed well, and ruby is a great glue language.
- Smalltalk likes to put everything in a nice neat package, while ruby goes ahead and recognizes the complexities and works at dealing with them.
People in the Community
- Interesting stuff tends to pop out of an interesting community of people. In fact, that’s why I got into ruby in the first place – Dave and Andy were so passionate about it.
Posted in Railsconf | no comments | no trackbacks
Posted by Kevin
Sun, 25 Jun 2006 19:05:00 GMT
- The nubyonrails.com guy
- This session is about therapy. If you have had problems with shared hosting in the past, it’s not your fault.
So why do people choose to use shared hosting? It’s cheap and it’s easy.
And why is it such a big struggle? There are many pigs sucking at the same teet.
Recommendations
Troubleshooting
- The same stuff always goes wrong
- Check you shebang line (the top line of any ruby script, especially in dispatch.fcgi)
- ./script/server to see if the app can even load in webrick
- ./script/console to see if you can even hit your database
- tail -f your logs
- And if none of that works…just wait, someone else may be screwing with something
Buy my book: Rails Deployment from the pragmatic programmers.
This Geoffrey, representing properly.
Posted in Railsconf | no comments | no trackbacks
Posted by Kevin
Sun, 25 Jun 2006 18:30:00 GMT
- Red Sox Fan, PhD from MIT, works for Verisign, country music fan, from India, not an alcoholic
- In the real world, people see me in different ways depending on the context: family, friends, business, hobby.
- On the web, I’m put into a box. Each site requires me to enter my personal info in the way they want, and I must remember each of my usernames and passwords.
- This is site-centric, not user-centric
- When traveling, an airline asks for and accepts any state driver’s license as identification. The driver’s license is interoperable, multi-purpose and portable.
- GET ME ONE OF THOSE FOR THE WWW!
An Open Identity system should be…
- Extensible
- User managed
- Open
- Perpetual (not just used once)
Sites already on board:
- Livejournal, wikimedia, zoomr, schtuff, railsweenie
It’s about you
- The general idea is that when you go to a site, you are redirected back to your site, where you log in. The site that you intended to go to communicates to your site and confirms your identity, allowing you into the site you wanted to go to in the first place. And best of all, once you do login once, you’re on: Single Sign On!
- There are attributes that you control. You can specify the attributes that you want to share with each site.
- Some attributes (such as age, like if you are on a site selling alcoholic beverages) need to be verified. Certain companies would then be in the business of verifying OpenID attributes.
Other Technical Presenter Guy
- The CTO of verisign went through a setup of an OpenID client in rails. Pretty hot.
- Some sites may require certain attributes, so there may be opt-in/opt-out. A lot of the parts of the implementation are still under discussion.
- There is a serious question about how sites will know which OpenID servers to trust. It is neat to think that you could have your information hosted on your own website, but who are you anyway, that you would be trusted? There has been talk of servers being trusted if they are a “friend of a friend.”
Awesome stuff, if it ever works out in practice. Jeffmo is skeptical. Matt Pelletier from eastmedia has been working on this as well, and he gave a talk on the topic Sunday morning.
Posted in Railsconf | no comments | no trackbacks
Posted by Kevin
Sun, 25 Jun 2006 17:10:00 GMT
“Hello, I’m David. I’m here to tell you what you’re doing wrong.” (Yeah, good solid shock value there)
He has looked at websites since ‘95. Used to work in tech support, so he’s heard lots of customers talk about what’s not so good about various interfaces.
What goes wrong?
- While we (web 2.0 developers) are all excited about the “new” web, much of our potential audience is still discovering the old web.
- We assume that our users control their environment: if they have and windows machine with internet explorer, that’s because they chose it.
- In the real world, people are not aware of the “new hotness”, they don’t think they need it, and it has not been properly explained.
- User requests (for features, etc) are often “aspirational”; which is to say that they are something the user would like (a million dollars) rather than something they need
What can be done?
- Find out about your customers; talk to them.
- Don’t work towards a comprehensive feature list. Too many features can do more harm than good.
- Think about Usability through your site’s audience: Who’s going to use it? How are they going to use it? How often will they use it?
Syndication and Tagging
- 12% of internet users are aware RSS exists
- 4% have knowingly used it
- Folks usually just have tiny RSS icons and not much explanation, but these kinds of stats make it seem reasonable to expect web authors to explain how to use RSS (Or hot new technology X) on their sites.
- We know and love tags, but we can’t assume that people will know how they are used (or how they are used in our app).
- Think different – he called out one site that uses tags to review wines.
Fair enough, rock on.
Posted in Railsconf | no comments | no trackbacks
Posted by Kevin
Sat, 24 Jun 2006 22:01:00 GMT
The presentation started off with renditions of “You Shook Me All Night Long” and “Enter Sandman” on the accordion, which was, obviously, the hottest thing ever
“How the hell am I going to pull off a comparison of AC/DC Stravinsky, and Rails?”
AC/DC
- Adams Law of AC/DC: You know the title, you know the chorus. This works well with the rails concept of rails routes, whereby knowing the URL tells you a lot about where to the find the code for that page.
- AC/DC doesn’t add unnecessary notes (no really, there are very few notes), and rails doesn’t make you add unnecessary code.
- AC/DC is consistent. It’s strait up rock, and it’s always about sex or drugs or rock and roll. All rails primary keys are called id. ‘nuff said.
- Bus Factor (when AC/DC lost their lead singer and got a new frontman, they proceeded to release one of their best albums – Back in Black). Rails also makes it easy to spread the knowledge around a programming team (by limiting complexity).
Igor Stravinsky – The Rite of Spring
- Takes 110 peope to perform (and we know how big a pain in the ass it can be to coordinate communication with two people).
- It isn’t necessary or desirable to emulate the complexity of The Rite of Spring when building your rails app.
- Part of the piece is in 11/4 time, which is a bit nonconformist, as rails has historically been as well.
- A New York Taxi driver joke goes, “How do you get to Carnegie Hall?” (Answer: practice) It takes about 1000 years of total training time to get people equipped to perform The Rite of Spring. Yeah, again, don’t build software like that.
All of these things (AC/DC, The Rite of Spring, and Rails) have a tendency to cause problems. The dancing in The Rite of Spring caused chairs to be thrown, and rails leads to flame wars. This is because all of these things incite passion. While Microsoft may say, “we need people who are non-threateningly dressed to build great solutions,” the rails community understands that value comes from the margins. AC/DC has created, Stravinsky created, and rails allows us to create. We’d like to think that, like AC/DC and Stravinsky, our work is not a discipline, but a craft.
Big Balls was then played on the accordion. I take it back, that was the hottest thing ever
Posted in Railsconf | no comments | no trackbacks
Posted by Kevin
Sat, 24 Jun 2006 21:28:00 GMT
Dave Thomas is the hot pragmatic programming guy apparently. His points follow:
Good news everybody!
- People are using rails to actually do business!
- The trendline for rails is going in the right direction
- Matz in the man
- Core is the man (or something)
But…There are still things to do. Unsolved problems according to Dave:
Data Integration
- It would be neat if validations were added to models automatically from the schema
- Foreign key support should be better (good point)
- Primary keys are always integers? Is that cool?
- Can we have composite primary keys please
- Can we get better support for non-database-backed models
Real World Crud
Scaffolding brings people to rails. Why not improve it a bit? Rails is supposed to be the poster child of rails 2.0, but the current scaffolding is the worst of web 1.0.
- Make it configurable (allow radio button, check boxes, etc)
- Show off – use Ajax
- Allow skinning.
Deployment
“Who has deployed a rails app,” he asks. (everyone raises their hand) “Who enjoyed it?” (like three people raise their hands)
So suggesting these kinds of things for inclusion in rails core raises the question, why? Well, people use rails because it makes their lives easier. The rails community places a high premium on writing code that others can use. If we can help to lower the bar in terms of barrier to entry for rails, we can make other peoples’ lives easier. “All developers deserve to be happy.”
Good talk man – solid beginning for Railsconf.
Posted in Railsconf | no comments | no trackbacks
Posted by Kevin
Sat, 24 Jun 2006 21:14:00 GMT
Right, so I’m at the First International Rails Conference in Chicago from June 23-25. I’ll probably be dropping a good number of notes about the same in the next couple of days, mostly in case anyone at work asks about what I was doing at 1:30pm on Friday (I don’t plan to remember otherwise).
Posted in Railsconf | no comments | no trackbacks