I know there are people developing Ruby and Rails on Linux and probably a good number. I am a newbie to programming and while learning Ruby and Rails, besides being what I’m interested in, has become a good way for me to build real usable applications and not get bogged down in “hello world” land forever. Can anyone out there relate?
Anyway since I started using Linux about a year and a half ago I always hoped to eventually become a very active commiter to an opensource project(s). I just haven’t been able to get myself to a comfortable level to be helpful in the programming side of things and at times I get somewhat discouraged. Rails and Ruby has brought wind to my sails!
As I said I know there are Rails developers using Linux or more specifically Ubuntu. I also notice that at the very least the Mac is the primary platform being used by Rails and probably Ruby developers and I will admit I probably would do the same if I could afford it but that’s another story. I would like to find like minded people out there who are passionate to make Ubuntu a first class platform in the Rails community. To the point that when new developers or even wanna be developers come along that may be testing opensource or Linux they find that Ruby/Rails is Linux friendly to the point that the tutorials or blogs don’t have to always end with “I’m using Mac but there is probably some help on the web for Linux users”.
Let’s make a landing point for Ubuntu Rails developers and work together to keep packaging, tutorials, and overall community attention fresh and focused on making Ubuntu second to none when it comes to being used with other open source projects. I’ve said it myself before I know that the Mac has answered to alot of users concerns on the Linux desktop or can I say has become the best of both worlds for developers who want the Unix tools they would have with Linux but coupled it with a pleasing stable graphical desktop experience. Heck even Linux/Gnome developers are using Macs to develop free software. Now I don’t want this to be misunderstood as a Apple hater story it is far from that. I just believe that as an opensource platform what better scenario would there be to be able to develop in a first class setting, the software you know and love, and is also open source software. I know in a perfect world being able to use an open desktop with other open source software has got to be better for open source at large then open source software on a proprietary operating system.
Please don’t hesitate to contact me if you catch the vision. Let’s make Ubuntu the best answer to the Unix that so many are using the Mac for.(not to ignore some of the visual design things that I believe the Ubuntu community is working on as well.) Let’s keep open up and down the stack from the programming languages to the browsers to the desktop OS itself. We can do it with the same charisma that the Ruby community uses to make programmers happy using Ruby. Let’s make Ubuntu and Ruby/Rails the number one answer to the developers looking for the best answer to the questions they have. There are quite a few .Net and Windows developers all over the net talking about trying to get Ruby and Rails working on Windows let’s give them a reason why they don’t need to.
Thanks for listening
I’ve been following the awesome Rails 3 tutorial by Michael Hartl at http://railstutorial.org/book. I highly recommend anyone wanting to learn Ruby or Rails (even some other languages thrown in as well) to go to this site and you will learn from a thoroughly professional free online gem of a book. I also recommend anyone who can, to purchase the PDF or hardcover that is being offered to show the appreciation for all the hard work put in to this by the author.
Anyway as I was working through Chapter 3 when setting up the initial gem file for bundler to install all the project’s dependencies I kept getting a screen full of errors. After reading the errors I noticed that the gem install was failing while installing the nokogiri package. After Googling as we all do I noticed on the Nokogiri web site that Ubuntu/Debian required two packages to install the nokogiri package. I was hesitant to install them through the normal apt-get packaging tool because I didn’t want the Ruby Version Manager setup to not be able to find the dependencies since the rubies I use through RVM are installed in my /home/me/.rvm directory. Well after installing the two dendencies the classic Debian/Ubuntu way I was pleasantly surprised that all was well and my gem installs were able to finish without a hitch allowing me to continue with the awesome tutorial.
The two packages needed on Ubuntu/Debian can be installed as follows:
sudo apt-get install libxslt-dev libxml2-dev
*the Nokogiri site has details for a fix without running the RVM setup, be careful not to follow as is on the site if you are using the tutorial as directed on the rails tutorial web site.
And as a reminder make sure RVM is setup as Michael instructs in the tutorial.
Just a few words of caution, when following the instructions for the setup at the beginning of the Rails tutorial be very careful to follow them word for word and with this dependency exception on Linux, everything else works as expected.
Update: As the Ruby Inside blog points out maybe Microsoft thinks they need to revert back to their old ideas
Lately as I’ve been learning Ruby I’ve noticed some frustrating hurdles that are becoming all too familiar.
Now I know Microsoft has taken steps to embrace the “other” world of web programmers but as I’ll show, I believe the wrong steps.
As the Ruby and Python web frameworks grew and also the community that insisted on developing web applications in a way that kept them in control of the HTML,CSS etc. Microsoft noticed and responded with the ASP.Net MVC releases. Their also were Windows programmers working on Iron Ruby, Iron Python etc.
This strategy while seemingly plugging the whole in the boat in my opinion is only delaying the inevitable shift developers are making to the “dark side”. Whether Microsoft or anyone else wants to admit it the threat from Mac OS X, Linux, Ruby, Python etc has much more in common then is admitted from the Microsoft camp.
For starters as I’ve said in other blog posts, a great deal of the Mac OS X shift by Windows developers and to be fair even Linux developers has more to do with the tools then it does to do with the pretty beach ball spinny thing ( ie. the pretty things). The Linux shift has more to do with instability at times on the Linux platform but that may be worked out if Ubuntu stays focused on the important things.
Not only do I believe Windows could slow the shift by their current developers but they could also possibly gain some of them back. Rather then try to force everything through the .Net filter they need to do the obvious. Give them what they are looking for.
1.How about a native Bash or Zsh environment. Environment being the key word. There are some applications running natively but far from a complete environment. An even so much of this has to be scraped together from evry corner of the web.
Developers now hanging on by a thread to the Windows platform have to jump through all kinds of hoops to use Windows. There is the Cygwin setup that breaks every time Windows upgrades. Although I must say the Cygwin developers have done a good job keeping things in order. I know Microsoft hates to admit it but .Net and C# isn’t for everyone. Stop thinking everyone wants a .Net implementation of every tool or language there is.
2.Embrace what the developers want to use rather then what Microsoft thinks they should use.
This doesn’t mean Microsoft is giving up on what they see as the future of programming. There are plenty of developers that still use those tools and will continue to stay the .Net path.
3.Embrace the commandline, the classic commandline. There are many developers and sysadmins who have tried to wrap their heads around Poweshell. The object oriented shell isn’t what some want to use. Again there are some who think that way but there are also those who wonder what the hell was Microsoft thinking. When the sysadmins and developers were begging for a better commandline story on Windows I’ll be willing to bet Powershell isn’t what they were thinking. The problem with Microsoft and these technologies is that they spend so much money and time on these technologies before the users get to see them that is more or less stuck with where they’ve gone.
If none of this strikes a note with Microsoft people then maybe we need to just admit that there are droves of developers who just need to keep switching.
There are developers that are holding on by a thread, believing that they can possibly stay on Windows but that thread is getting thin. Try setting up a native Django, or Rails development environment on Windows and see how long before your installing Cygwin, creating symlinks and such to make their environment “feel” native.
I would venture to say with all the free and opensource software that already exists having this happen would be more of pulling these tools together then remaking everything from scratch.
This would give Microsoft a much better story in their competition with Google and web applications in general. How much better off would they be covering much broader of a base of developers then they currently do. Who knows Microsoft could even innovate in this space and shock everyone. I know the resources are there but the will is at this time.
How would they like to see all the old school hackers that even work for Microsoft to stop buying Macs and using Macs to program for Microsoft. When the .Net Emacs project starting getting leaked to the world I truly believed that someone at least got part of the problem. But developers don’t want .Net everything. Microsoft could embrace what developers want even more then Apple and in my opinion shift the tide
P.S. Maybe you’ll listen, maybe you won’t, but at least I tried to articulate a few things that would make Windows seem like a platform I could even think of continuing to use.
As always just my two cents.
Update: I wanted to mention that I have thoroughly overstated the situation as far as Rails apps seemingly being used more by “real sites”. I noticed a Django developer doing some awesome work on some Discovery websites and a few others. I guess it’s just me hoping that it was Python and not me. Well I guess it is me. I ‘ll keep leaning on my noob status until I can hopefully no longer use that crutch. Thanks to Derek the Python/Django guy who made me take a second look.
It amazes me that the most english-like programming language in the world was built by someone who is not a native english speaker. Maybe the simplicity comes from his inability at the time to be overly verbose, using only statements and such that best communicated an idea to someone with a very basic english vocabulary. I think since Matz has become pretty fluent in the english language though.
One other thing I would like to note. I remember a talk that DHH the creator of Rails gave along with Adrian Holavity, one of the Django creators. DHH ekpt saying that he felt some of the architectural decisions behind Django were better suited to we sites where in his mind Rails ‘ architecure was better suited to web apps. At the time I took as a somewhat snide remark, thinking listen to this saying that Django was for building simple web pages and Rails was for building “real” web apps. Well if you take a look on the web now I think the statement rings true, there seems to be many more complicated, detailed Rails apps compared to Django’s hundreds of sites that seem rather simplistic in the app side of the functionality. Just an observation. What do you think?
This is to me what Ubuntu or a Linux desktop should look like. Notice the love given to the upstreams, Gnome on the wallpaper, the penguin for the start menu etc. I really liked the older OpenSuse I believe it was 10.2 if I’m not mistaken. It came with the Tux icon for the My “Computer” icon.
So badly that I am offering any hacker out there my volunteer time in helping with any programming related task. Just comment to me if you are interested. No matter how tedious the task let me help and possibly become a part of the project involved if it works out.
I have free time, but unfortunately because I have been diagnosed with Scleroderma. Which seems to make my dream of being a hacking Ninja a bit more urgent.
I figured I would throw this out there although I haven’t got much traffic to my blog yet. Hopefully the Google picks it up (ha ha).
I was commenting earlier today on a blog concerning Ubuntu and Mono and mentioned that I thought we were still trying to squeeze performance out of our processors and memory and that C#/Mono was not THE answer to getting the strong apps needed on the Linux platform (desktop that is). After considering things for a while I’m not sure, with the present computing architecture that we will ever get but so close to the metal with the higher level languages like the C#s Javas etc. I know we do system programming in those languages presently but the higher the abstraction gets from the hardware the less crisp our expressiveness gets as to where we want the hardware to go. We will continue to whip the hardware and drivers around for the far foreseeable future because human-beings are wired that way not to mention it will remain the right tool for the right job. I know some would like to think that we will be writing operating systems in C# in the next 5-10 years but as long as we know we can squeeze seconds and even milliseconds off an algorithm we will continue to do so, it only makes sense. I don’t see us ever giving in to the inefficiencies that managed code brings with it at too deep a level in the stack. When it comes to controlling the things that make our hardware hum along we will not relinquish control any time soon.
I was watching a webcast from the Berkeley CS 61a course with Brian Harvey. While he was wrapping up the final lecture he made the point to the students about not being a functional, object-oriented, or procedural programming bigot. My paraphrase of course, but the point being that these abstractions and languages have their place and great hackers will continue to wield them correctly, knowing where to make the transition from one to the other, without being religious or idealistic but pragmatic. I only hope my learning brings me to a place where I’m able to wield these tools rightly and not only write about them..
After reading the article concerning Mozilla’s support for the client side storage in Firefox 4, it made me consider probably my biggest problem with the cloud and web apps as a complete desktop replacement. That being the storage of all documents and such as an answer to say the now Microsoft Office/Windows scenario. I guess not only the actual storage now that I think about it further. The fact that the apps are server side the maker of the app in Google’s case is “listening” to everything you are doing. How would anyone have reacted to Microsoft downloading your text as it is typed in your Word or Excel documents as a way of backing up your work. As much as it can be framed as a utilitarian use their is the flip side of the coin. The Google’s of the world using the interaction for what I would consider unknown purposes. Most average people, not power users or geeks are not aware of the level of snooping that goes on when they are surfing the net. Most users computers that I fix are littered with their interactions that I know most are oblivious to because when I ask them are they visiting such and such sites and contracting viruses they believe that deleted their history from the address bar in their browser gives them privacy. Imagine the level of surprise when most of the general public becomes aware of how unprivate their private life has become.
My blog has become my unrestricted Twitter ha ha!
Many users even Linux developers have switched to the Mac. The obvious negative fact for the Linux desktop is that if even the very developers building the platform find it inadequate how will the world ever be convinced Linux is a viable solution with future prospects in the consumer market. I believe many users have enjoyed the polished environment the Mac offers but for many especially developers the main reason is the fact that the Mac offers the Unix tools many have come to love. Apple, has really played the right hand in this case, whether intentional or out of necessity.The fact that the Unix environment had been added to the core of the Mac eliminating the need to create a new tool-set from scratch. This is something Microsoft should have taken note of before spending the millions they have spent on the clunky cmd.exe shell with half-baked utilities (IMHO). Although Microsoft would like to have seen the command-line go the way of the punch card system formally used to program computers and the only means of using the found power of the microprocessor and machine computing. Many developers continue to switch to the Mac for reasons other then the fact that it “is beautiful”. They simply enjoy having the tool-set that has proven valuable and dependable over time. Some claim the Mac is Unix but the architecture is far from a classic Unix system. The Mac architecture is more of a system with the Unix environment “bolted on”, although I will admit done well.
It is unfortunate that the Free Software/Opensource world has yet to come up with an answer to Windows and now the Mac. We seem to continue taking two steps forward and three steps back every release, yes even Ubuntu. The regressions in the desktop world are not as forgiving as they may have been in the server or academic world. The many applications, utilities, and cosmetic software brought together to make a usable consumer desktop has not yet been tamed. Maybe someone will find that sweet spot and still be acceptable to the community as a whole because it seems Ubuntu is even finding resistance when it comes to the Free Software/Opensource world’s understanding the need for the polish and refinement needed to make a consumer friendly Linux operating system a reality. Much of the development community (outside of the Ubuntu and some Debian developers) accuses Ubuntu of not contributing back to upstream when much of the work done by Ubuntu developers seems to only benefit Ubuntu. I believe they have good reason in some cases because some of the work seeming to help Ubuntu only further separates the usability of the work upstream. This is a problem that needs to find a creative solution.