I've seen dozens of articles regarding setting up a Ruby on Rails development environment for Windows, probably so have you. But none of those were lightweight, were they? There hides the difference.
I still remember those web 1.0 folks who swore that Notepad is the killer app for web development. Well, back then, being a beginner who didn't know why is needed, I mainly understood them. You know how to code a 200 line "personal website" (ohmy, where are personal websites these days?), you're good. You did it in Notepad? Oh my god, you're the master of web development. These days, though, things have changed. The web, as it is, is a lot more accessible, almost anyone can start developing intelligent applications, you just need a good idea and, well, Ruby on Rails. Resources are unlimited, so if you have the idea you'll probably have some success too. But you need a workshop to forge that idea.
The Editor
I could have written "Integrated Development Environment" as a title for this section, but I think that those built for Rails aren't really the way they should be. They offer too much features, so you don't know where you really are. They offer exactly the bloat which Rails doesn't have. I don't know what your opinions are, but I rather type in a line into a console to generate a controller instead of proceeding through dozens of menus, input boxes, drop down lists, radio buttons, and so on. Rails is simple, let's keep it simple (, stupid). So, the Aptana-RadRails pair is shot down. No more fairy tales, I'll tell you what I have: Notepad++ with the Explorer plugin.
Notepad++ offers very good syntax highlighting, (and can easily be set up to support .rhtml, .rjs and .rxml files too), and the explorer plugin makes it fairly easy to navigate between the files of your app.
The Browser
You type it, then you check it out. Does it work? Maybe it does, maybe not. This simple question can be answered with a simple browser. No plugins, no extensions. Just your eyes and your browser. However, if you feel responsible for the experience your users go through, you should dive in deeper: Does it work the way I wanted it to work? Well, this isn't a too complex question either, but in order to ensure that your application delivers the same result anything the user might use, you have to give the details increased attention. You should use valid markup, valid styling, JavaScript which doesn't scream (unless you've written a scream_as_loud_as_possible.js script). Also, let's admit that we're human beings too. We need some luxury. Here, I mean that I don't want to create a screenshot of a website to determine what color is used in a particular area. Also I don't want to create five screenshots and then cut them together if I want a picture which shows the whole site. To keep lightweight, I use only what I strictly need. Four simple extensions:
Firebug
I dig this little bug. It tells you if you have errors, you can easily analyze the structure of your site with it, dive into AJAX requests, see DOM properties. It has a gold from me.
Web Developer
After those nightmares with Internet Explorer toolbars at a first glance I didn't want to install this. I though it steals me valorous browsing space. And hell, I was right! But I couldn't even dream about how much it offers in change. I'm using it for almost a month now, and It's like an orgasm (for a month, yea :D). I don't think that a month is enough to explore all its features. It offers easy cookie management, disabling of JavaScript (which is sometimes needed when you're going to create accessible sites) is just one click away, you can visually analyze your site's structure. It's the way to go.
ColorZilla
Just as I said two paragraphs before. It makes everything simpler. You get the color you want in two clicks instead of the long process which consists of creating a screenshot, opening it with an image editor, and finally getting the color.
Screengrab
Oh, I admit. This one doesn't have anything to do with Rails, and this is the one I use the least. But those few times when I need it, it's ace. Really. It kicks ass. It rocks. It grabs you the whole site you want in a single click, from top to bottom, not just the area you see (actually, it can also get that one, too - wonderful, isn't it?)
The Terminal
Still stuck with the Windows' command line? Go, get Console! If you've done at least the demo app from the beginning of Agile Web Development with Rails (great book, great book), you know the console is one of the few things you'll need during Rails development. Usually, you need one for the server. Another one for the generators. During development, you generate new stuff quite often. It's best practice to keep a window (or a tab, if you get Console) open for that. That's two. But you might need one for script\console and one for the database shell. So, the number can go up to four. And that's just Rails. What if you need another tab for something else? Oh, 'nuff said! Just get Console. Trust me.
The Fairy Tailer
Also missing good old tail -f from UNIX? In the beginning you will surely do lots of errors, and the syntax might look Greek.. Also, the community won't help you if you don't have appropriate traces - tail for win32 is what you need. Open development.log with it, and you'll always see the end of the file. No need to open the file any time you make a new request. It does the thing automatically.
That's it for now. Hope you'll make some use of what I've scrapped down here. Feel free to comment if you disagree, or you'd propose something else.
P.S.: I tried to insert screenshots of the mentioned software, but it just screwed up the text. After trying twice, I gave up. So the screenshots are posted to my Flickr profile. Check them out here: http://www.flickr.com/photos/75522731@N00/sets/72157601475742386/
Thursday, August 16, 2007
Ahoy!
Time for another "hello-i-am-back-again" post. :-) I've had my exams (success), I've gone to a physics-biology-chemistry competition (another reason I couldn't post for a while), but I'm back again, with another plan in my mind regarding "more mature" posts. We'll see. If anybody is still reading this little crap, well, thank you. If I were you, I'd have possibly deleted it from my feed reader, bookmarks, etc. If this blog was something larger than what it actually was, probably Arrington would have put it into his now infamous dead pool. Even though, I think I can be proud of what I achieved. And now, putting that pride in the mentioned dead pool, I'm going to start it again.. Aha, I'm doing exactly what I shouldn't. I'm going to reinvent the wheel. I know in most cases proceeding so is considered incorrect, but in mine it isn't. My wheel wasn't rotund. It was an irregular, random shape, using which you just can't travel. My new challenge is not to strengthen that irregular wheel, but leave it maybe weak, but at least make it round.
Monday, May 21, 2007
Interview with MPlayer's dev's

I requested an interview from the MPlayer team, and today I got a reply mail: "We're ready!", and few hours later I was talking about their award-winning software with
- Alex Beregszaszi - Project Maintainer
- Diego Biurrun - Project Maintainer, Server Admin
- Oded Shimon - General MPlayer Developer, mainly MEncoder
Me: How was MPlayer born? In case of many programs there are serious things (in most cases the lack of something) which inspire the developers. What was that for MPlayer?
Alex: As none of us was who started it, we can only share our viewpoints of this. First Arpi just hacked xmmp (x multimedia player), but later decided to write his own, based on some libraries. The real shot was FFmpeg, however. The project was started in 2000.
Diego: It was the lack of a good multimedia player for Linux, Arpi found the players at the time to be buggy, feature-lacking, or all of the above.
Oded: I'm a general developer. I have little bits in most major components
in MPlayer and MEncoder. I don't maintain many parts.
Me: What's your post at the MPlayer team?
Alex: I'm just a developer, trying to maintain it, but unfortunately I don't have enough time resources to do it fine. In the past MPlayer was maintained by Arpi, but nowadays it's just a bunch of people looking over certain areas.
Diego: I'm the server admin, and another maintainer as well.
Me: Is it hard to get all those awards? I mean, does it require hard-core marketing, or it just comes, thanks to the amazing quality of MPlayer?
Alex: It just comes with reputation and quality.
Diego: We don't do much marketing at all. We just put out releases every now and then. The rest is word of mouth, I guess. Nowadays we have a booth at LinuxTag every year, and some of us can be found at conferences. Marketing is not something we focus energy on.
Me: What do you think, how much percent of the users use the Windows, FreeBSD and other ports? As I understood, Arpi just wanted a quality video player for Linux, though today you have several ports.
Diego: Measuring the popularity of an open source program is quite hard - I have no idea which of the big three multimedia players is the most popular. We do seem to win all the awards, though ;)
Oded: I think in a very obvious way MPlayer is most popular in GNU/Linux, while VLC is most popular (of the 3) in Windows.
Alex: Yes, as I see all the awards come from Linux sites, and not from "Windows PC magazine". Long time ago Arpi "measured" popularity using the Freshmeat TOP100 page.
Oded: All I remember is when I asked about video in Linux I was told purely MPlayer.. maybe that's changed or I am wrong, that was 2 years ago.
Diego: I expect MPlayer to be more popular on the BSD derivatives than the other players because it's more command line oriented and BSD nerds tend to be more command line oriented.
Diego: The Windows port will probably get popular once we commit the Windows GUI, which should happen soon; already some people seem to use the command line version on Windows. MPlayer OS X is popular as well.
Me: What do you think about the small multimedia distros using MPlayer as their engine, like GeexBox, which is 6.3 mb?
Diego: I think it's the natural choice; MPlayer is still the smallest player. You don't need to install all the GUI overhead. I don't know if they modify the build, but if you leave out the fringe codecs I expect you can shrink the size considerably. It's been some time since I experimented with creating a minimal build. My stripped binary is 5.8MB, I think I managed to push that down to 2-4MB!
Oded: I actually played with creating a maximal build; got upto 73mb for single MPlayer binary, it was just debugging stuff, after strip it was back to 6mb.
Me: Are you in any ways affiliated with projects like GeexBox? So do they ask for exclusive supports sometimes, for example?
Diego: No. We're only affiliated with FFmpeg, since many developers are shared.
Oded: However, GeexBox did send us some patches.
Me: How about the backend? Users see just comedy, horror, and all kinds of movies.. How many developers do you have? Do you organise coding meetings, or such? What systems do you use for coding?
Oded: Mostly mailing lists. As for developers, it's extremely hard to count.
Alex: "Coding meetings" happen on LinuxTags.
Diego: We have a small group of active maintainers and many outside contributors that send in a few patches. Some of them continue contributing and after some time we make them developers with write access to the repository.
Me: Do you get money prizes with the awards? How do you pay for the hosting, etc.? Do you have sponsors?
Diego: No money with the awards. We get the hosting donated, so we have sponsors. (http://www.init7.net)
Me: About versions.. You are working on 1.0pre* releases since 2003. Is it going to be something like wine, where the alpha stadium took around 10 years?
Diego: It's not alpha, what we put out are releases. And CVS is stable as well.
Alex: We have flames about the naming schemes. Some propose 1.0.9 instead of 1.0pre9, though I'm in favor of 2006.04 or 6.4.
Me: So when will 1.0 final come out (will it)?
Diego: To clarify this: our releases are not even beta, they are perfectly stable. But I suppose we will have to give in eventually and change the naming scheme to be more in line with people's expectations.
Alex: The problem is that a version of 1.0 can't be reached as new and new formats come every now and then. But the silly number still matters for users!
Me: How about version*pre*try*? Are the "try" releases stable too?
Diego: Yes, the tryX versions are the releases with just security fixes applied.
Oded: If a (serious) security exploit is found, we patch only it to the last release and re-release as 'try'.
Me: Do you offer any kinds of support? Or you let more experienced users to do that if they want?
Oded: There's an extensive man page and HTML docs which Diego insist we update with every single new feature.
Diego: We have user support mailing lists and IRC channels. We keep these separate from the development lists and channels, to keep the noise down. I personally don't follow the user lists/channel - I don't have time, so I don't know who gives support nowadays. I assume it's users helping out users.
Me: Do you support bundled editions? So those which are bundled into a distro, and might have edited code by the developers of that distro?
Diego: No. We only support self-compiled releases from latest CVS. We just don't have the manpower for anything else.
Oded: We prefer all edited code to be sent back to us.
Me: What should users expect in the upcoming releases? What'd be the most serious upgrade?
Diego: What we have in the pipe is a Windows GUI and DVD menus.
Me: What would you like to transmit to the readers of this interview?
Alex: Meet us at LinuxTag.
Diego: Try out MPlayer. Trust me, it's great! If you like it, contribute back, we always welcome more people on the team and have use for helping hands.
Me: What other projects do your developers work for?
Diego: It depends :) I think most devs have contributed odd bits of code all over the map. Probably Alex has the most diverse collection in his "portfolio". Many MPlayer developers - like we three - also work on FFmpeg.
Me: What do you think most important for the MPlayer developers coder community to remain integral?
Diego: Hmm, tricky question. More maintainers, I think.
Alex: Or just get someone to who employs one or more MPlayer devs in full time, even for just like 3 months, or so.
Me: Wouldn't you want better publicity, so more people would start using MPlayer? That inspires the developers well.
Diego: Users are great; they give you that warm and fuzzy feeling. But it really is developers that move projects forward and keep them alive. Or more maintainers to be precise.
Me: Thanks for the interview.
Diego: Thank you.
Alex: Thanks.
Oded: Thank you!
Subscribe to:
Posts (Atom)