There’s a good chance you’ve heard of Linux. Recently there has been a whole lot of buzz going around the Internet about a particular distribution of Linux dubbed Ubuntu. There are a ridiculous amount of articles floating around regarding the operating system itself and all sorts of introductory pieces surrounding it. I’ll leave it to you and Google to read about that if this is the first time you’ve heard of Linux. This article isn’t going to focus particularly on Ubuntu, but Linux in general, as the subject matter will be surrounding Linux as an operating system for Web development, not Ubuntu as a distribution of choice. Software mentioned here is not specific to the Ubuntu distribution, but specific to Linux itself.
I’m generally not a fan of Apple/Mac/Jobs and I’ve grown to dislike Microsoft/Windows/Gates. I don’t say that to offend anyone, so please don’t take it the wrong way. We all have our reasons for the setups on our desks. This article is going to reflect my opinions of using Linux for Web development, not knock or support anything else.
Why I Choose Linux
I’ve always had an interest in Linux, and over the past few years I’ve become increasingly frustrated with Windows. My first Linux installations weren’t an absolute disaster but at the same time I had no idea what I was doing and found myself back on Windows in a matter of hours. Regardless, my interest was there.
Some months ago, I decided to give it another shot. I use both a laptop and a desktop at home and thought that since I only really used my laptop for minimal tasks, it would make a good test bed for Linux. My venture began with Fedora Core and to make a long story short, a bad update rendered my display useless and I had no idea how to fix it.
Enter Ubuntu. I don’t remember where I first read about Ubuntu Linux, but what struck me was all the ranting and raving about its out of the box compatibility with a wide range of hardware — especially laptops. I thought I’d give it a shot with the 5.04 release and I was delighted with the results. All of my hardware worked just fine, including my WiFi, which was a feat in itself using Fedora Core. I now run Ubuntu 6.06 on that same laptop, my main home machine, and most recently my setup at work. After working out all of the customizing issues at home over the course of eight months or so, I finally feel comfortable enough to be using Linux both personally and professionally. Using it for work will be my true test, and I’d like to record my findings here.
Getting Set Up
The only issue I was faced with using this particular distribution of Linux was setting up and managing dual monitors. I have grown to know and love a dual monitor setup and I’m not sure I would want to cope without.
nVidia Makes Life Easy
Luckily all of my video cards are nVidia based, which is a great thing because nVidia has taken the time and effort to publish video card drivers for their chipsets under Linux. Following the proper documentation you can have their drivers installed in minutes, which is a blessing compared to setups with other chipsets from what I’ve read.
Getting two displays up and running isn’t as easy as checking “Extend my Desktop to this monitor” in Linux. I had to manually edit a configuration file, but using the nVidia provided options, setup was painless and I now run a dual monitor system as I was in Windows.
What About Your Wacom?
I didn’t have to do a thing to get my Wacom tablet up and running in Linux. It was working out of the box for me using Ubuntu 6.06 so there really isn’t much to write about the setup. Support in applications is another issue I will touch upon in a bit.
Software for Web Development
The abundance of equivalent software for Linux for general tasks are heavily discussed in other areas of the net. I’m going to focus on the applications that I find essential for Web development.
Email and Web
I was already using Firefox and Thunderbird on other platforms, so using them required absolutely no change. All of my choice extensions work under Linux and I had no issues with the migration.
As a Web developer, I needed to have other browsers at my disposal for testing. I was able to install Opera with ease and my only real hurdle was Internet Explorer. Luckily after a bit of searching I came across IEs 4 Linux. This beautiful script will install a version of Internet Explorer 6 on top of WINE to allow me to test for IE6/Win.
Have you Heard of Beagle?
Something I’m really excited to write about after a few months of typical use on a Linux setup is using Beagle. For you Mac users, Beagle is most closely compared to Spotlight in OS X in that it keeps an archive of all files on your disks for easy searching. I think it’s going to be great to be able to search all files, Emails, even Gaim logs on the fly and instantly. If you haven’t heard of Beagle, check out these videos of Beagle in action — I’m very impressed with it so far.
Actual Development in Linux
Finding a good application for writing, editing, and managing your code is essential for anyone who develops. Whether it be on the Web or otherwise, if you aren’t using a proper application your life can become much more difficult than it should be. I’m not talking WYSIWYG here, because any serious developer would laugh at its mention.
Bluefish is King for Development
I fell in love with Bluefish the instant I ran it for the first time. It is by far my favorite editor and being able to use it daily at work is a great thing for me. Why do I like it so much? Apart from the things that most of the other editors do such as highlighting and auto line indent, it has the ability to create Projects, which some of the other editors I was using never had. I am a fan of this feature because I’m working on different projects throughout the day and it is an easy way to switch. The GUI is effective, nice looking, and everything seems to be in just the right spot. I’d like to devote an entire article to its benefits in the future, but for the sake of time I’ll leave it at that.
Aren’t Fonts an Issue?
I think it’s great not to have the Windows default fonts at my disposal. It really opened my eyes to taking more time in selecting a font family due to the fact that I didn’t have many of the typical fonts used on the Web. It is possible to install TrueType fonts using Linux and if that’s something you’re interested in, it can be done. I have since installed many of the fonts I was using under windows and don’t really notice any problems using the TrueType fonts.
Creating Site Mocks
More often than not a site design begins with a mock. A static image that’s shown to the client to see if it meets approval. From time to time I’ll be able to work on a mock, but they’re usually taken care of by the designers. This brings up two situations that need to be handled by a developer using Linux. First, which application is comprehensive enough to make the design? Secondly, how are you going to work with that PSD the designer sent over?
Pixel and GIMP
GIMP is an extremely powerful image editing application. It is very feature rich, but often confusing to use. Scott Moschella’s GIMPshop and editing the keyboard shortcuts can make GIMP a very Photoshop-like experience, and given some time and effort can be effective. After some time using it, I still found GIMP to be awkward to use exclusively.
That is, until I came across Pixel. Pixel has a much more Photoshop-like interface and can do many of the things Photoshop can, and in the way Photoshop does them. It has been in development for many years and is not OSS nor is it free to use (save the demo version). There are still a few bugs in the application as it is still in the beta stage, but Pixel has some definite promise and I was more than happy to pay the nominal fee to use it.
You Can’t Forget About Flash
Personally, I don’t develop in Flash at this time. There is a very talented coworker of mine that handles the Flash projects we get so developing in Flash isn’t an issue for me. Had it been, I probably wouldn’t be able to make the shift to Linux being that I wouldn’t have a way to work in Flash.
Viewing Flash documents is another issue entirely. While Adobe provides a download for a Linux Flash player, but it’s obvious that effort was lacking in it’s development. Flash video is a bit choppy and more often than not will lag over time and the audio will desync. When it isn’t video, a Flash movie will behave more or less normally which is a good thing, I suppose. After a bit of reading I’ve found that version 9 will be releasing for Linux in the coming months and it should behave much better than the current version.
File Transfers
FTP is nothing but essential when developing for the Web. This is where my first and one of my only issues with Linux arises. The application I’m currently using for file transfers is gFTP. gFTP is great in that it works and has a GUI interface, but from a usability standpoint I’m not a big fan. The interface closely resembles the WS_FTP of 1998 and you have to use the right and left arrow buttons to make transfers. There’s no dragging from your local view to your remote view to make the transfer. That’s really irritating to me. Another problem I have with the application is that it doesn’t remember your site logins. Security risk or not, I liked it when FileZilla remembered my past few logins so I didn’t have to enter them every day. Lastly, gFTP won’t keep your connection alive, so if you’re editing code for more than about a minute, you’ll have to reconnect to the server to upload your changes. If there’s a way to change any of that, I haven’t found it and would love to hear what I’m doing wrong. Luckily, FileZilla 3 is on the way and with it being cross platform, I’ll be able to return to my old habits.
Audio is Essential
If you’re anything like me, you have music playing the majority of the time you’re working. There were many audio solutions for Linux, but my favorite by far has to be Amarok. It will organize your entire collection into a searchable database as many other audio players will do, but what I like about Amarok is that it takes things to the next level. If you’re a member of last.fm, you’re able to enter your account information from the start which is great. Other features I like are integrated lyric lookup and incorporating the MusicBrainz service to provide you a list of recommended songs based on what you’re listening to. I just really like the way it functions and if you get the chance, take a second to check it out. As a side note, you don’t need to be running KDE for it to work, I’m using it in Gnome.
So Can it Work?
After a week of using Linux at work I have to say that I’m very pleased so far. I’m mostly ecstatic about using Bluefish exclusively for writing code and I can’t wait to make more use of its features now that I’ll have the time and place to really give it a go. So far working with Web mocks has been the biggest obstacle, and I think the only solution for that will be a Linux port of Photoshop. Unfortunately I don’t see that happening any time soon as it is not in the best interest of Adobe to put any resources into such a thing.
Browser testing is completely transparent as to which operating system I’m using. With IEs 4 Linux I’m able to see the faults of Internet Explorer in all their glory, and also able to test in Opera. Not being on a Mac I’m still forced to use a coworkers machine to check out Safari and the associated Mac browsers, but that is nothing new.
Using Beagle has already become useful. It’s great to be able to type in the name of a client and have all of their associated files, emails, Gaim logs, and anything else related to them put on display right in front of me.
I think completely migrating to Linux will be a positive move for me. I mainly develop at work so I will be able to deal with the image editing shortcomings I’ve discovered. I may find that it will only take some time to learn the ins and outs of Pixel and GIMP and Photoshop can be a temporary memory until ported to Linux. I haven’t received a complicated PSD from the designers yet but I’m sure that will provide an interesting morning or afternoon. The only drawback I’ve found is that Wacom pressure sensitivity works only in GIMP, not Pixel. The Pixel developer has indicated, however, that he is working on including Wacom support in a future build which is great. I’ll be sure to include my findings in a future article.
I’m going to enjoy not having to worry about hard drive fragmentation, WGA and the garbage it brings, Vista, spyware, viruses, and the other problems I came across from using Windows. Linux is becoming better by the day and I’ll be excited to see how much further it reaches by the time Vista hits the shelves.
The next few months will be really interesting as I’ll be able to find out whether or not Linux is the solution for me when it comes to my work environment. I’d like to write again giving updates as to my findings specifically having to do with Web Development as opposed to average use.
Comments
It seems that you’re writing about linux from a very windowsy point of view. You don’t even mention the sweetest stuff like it’s security, that you never need to reboot, good filesystems, extremly stable, being able to update the kernel etc. Nor do you mention anything about the console or SSH.
Nice writeup though, but I know I won’t be making the switch until photoshop is actually ported (which i guess never will happen 🙁 ).
@Fredrik: Oh, absolutely. This article was meant to speak about Linux and Web development exclusively. The abundance of articles floating around the net regarding general use and the security benefits can vouch for those things. I could have written an entire book on the topics you had mentioned, but I wanted to stay on topic and talk about something that really hasn’t been brought up in detail, you know?
I can’t wait for a Photoshop port; I can hope that it will happen some day, but until Adobe can see a profit from putting in the time and effort — we aren’t going to see anything.
Great write up. I’ve been considering switching to Ubuntu myself and this helped.
It’s nice to hear about the stability and security stuff, but it’s nice to read about the more practical stuff too.
One step closer to switching!
NIce article, as well as Your writing style, thanks.
I am switched to Linux from MS Win 2000 and feel absolutely happy. No crashes, no permanent painfull integration with Apache and database settings. I dont even speak about viruses and security. Linux, Apache, PostgreSQL (MySQL), PHP is a brilliant (and Open Source) web development platform.
As for Adobe applications – dual boot (XP/Mandriva 2006) or Virtual Machine with Windows installation inside Linux. Its really cool. Web development work from “localhost” Apache installation and web design work from Photoshop from VM, and as bonus, MS IE testing. If your PC fast, ist scheme really work.
Once more, thanks for the article.
You might try running Photoshop under Wine or inside of a QEMU (or VMware) virtual machine.
“You Can’t Forget About Flash”
???
I hate Flash w/a passion, but it (ver. 4 anyway) installed and ran just fine via Wine.
Hi, I have been using Ubuntu as my “Web Development” platform for more than a year 🙂
Most web projects I develop are LAMP projects, and I am using:
Bluefish, although not as “feature rich” as PHPEclipse, but its performance beats PHPEclipse.
gFTP, on the other hand is not quite stable,especially sometime it just terminate when transferring files (like more than 500 files)…. but the new version is better.
What I would like to say is:
Editplus is a good tool under Windows, but we have BF in Linux and I starting to forgetting the taste of Widow$ 🙂
As someone said, you might get Photoshop running under Wine. I couldn’t get CS2 to run, but at least I know 7.0 works.
But if you need CS2, install Windows in qemu. There are quite a few guides for it in the ubuntu forums.
On the topic of FTP clients, I tend to just use Gnome VFS. Nautilus, and most Gnome apps, have built-in support for VFS. That means you can directly edit a file that is saved on FTP (or more usefully, SSH). You can find that in Places -> Connect to Server…
Amazing post, I had a similar experience when I switched to Linux (finally settled on Ubuntu) about 6 months back.
The FTP problem is the biggest issue for me too. I have searched high and low but am still stuck using GFTP with all of the problems you mentioned.
For graphics I agree that you might should have mentioned Photoshop. I have been running 7.0 fine using Wine, and it’s definitely easier than having to retrain yourself to use Gimp or Pixel.
Finally I have found Flock to be an invaluable resource for publishing to my blog (though obviously this isn’t Linux specific). Now if they could just get Greasemonkey to run correctly I would be in heaven.
I’ve been using Linux for web development exclusively for the last 5 years, and have to say I now experience frustration when I’m forced to use Windows for Development.
One thing that might be of use to you is the knowledge that safari’s redering engine is based on Konquerors, so testing for safari locally in konqueror can help insure your designs will work well on the mac.
Also, I find inkscape to be an excellent tool for creating design comps. I often design in inkscape and then tweak it in the gimp. I only wish the gimp had a plugin for firefox pdf’s.
Also, bluefish’s Gnome vfs integration is invaluble. I often work directly on the dev server using this tool. While it’s still a bit buggy, it’s very usable and i am definately quite fond of it.
Thanks for the great article!
forgot to mention.. as far as your ftp problems go, nautilus has built in ftp capabilities, just add your server and you can darg and drop files natively.
I have been using Linux exclusively (apart from testing in IE on another machine) for developing the visual side of my companies J2EE app for the last 2 1/4 years.
I use a concotion of Vim for editing. (you cant get better once you get over the learning curve), Eclipse as a CVS client and little else, GIMP for graphics, a command line to SSH into the servers and little else apart from that.
As for FTP clients.. with KDE you can set up Konqueror to log into a FTP site as just another drive (sort of). The same thing is possible in windows if you use Novells NetDrive IIRC.
How can you write a post about using linux for webdevelopement and not once talk about any setup that enables you to test your stuff in different browsers?
How is your setup to test in windows browsers?
Peter-
IE runs fine under wine, and firefox/mozilla and Opera are both native to linux.
Safari can be tested initially using konqueror’s engine with final testing done on a mac.
Anyway here is the quote from the article, i guess you missed it.. ;^)
“Browser testing is completely transparent as to which operating system I’m using. With IEs 4 Linux I’m able to see the faults of Internet Explorer in all their glory, and also able to test in Opera. Not being on a Mac I’m still forced to use a coworkers machine to check out Safari and the associated Mac browsers, but that is nothing new.”
For file transfer you can use kde’s konqueror, even from gnome.
suport almost every protocol:
smb:// for windows shares
(s)ftp://
fish:// like ftp but over ssh
…
and good luck with your linux journy
Change the entire FTP section to SCP. No one should use FTP for anything other than anonymous transfers. It’s a very bad security practice to send your passwords in plaintext. Instead, just request shell access on any machine you don’t control.
Otherwise, thanks for the writeup – even though I’ve been using Linux for years, I think I might try Bluefish, Pixel, and Beagle.
Hi, I like your article! I’m using Linux for web dev, too!
I really want to emphasize (as has been said before) that you should use Places -> Connect to server for ftp or ssh connenctions from the GNOME menu. It couldn’t be easier … Give it a try, maybe you even update your article to mention this!
There is no reason at all to use gFTP
Like many have said use Nautilus to do your FTP stuff and update this article when you discover how easy it is. Just go file > connect to server. Once you’ve go your site open bookmark it using the book marks menu. It can even connect to SFTP if you use “sftp://” in the location bar. And you’re forgetting Ubuntu has a bulit in rsync ablity.
Read this for more…
http://forum.textdrive.com/viewtopic.php?id=6142
I have switched to linux some time ago – the biggest problem I face is testing in IE. This is a huge problem when you dabble in any non-trivial JavaScript. Or even if you design using CSS. See my post on this subject for more details…
http://binnyva.blogspot.com/2006/06/problems-in-web-developing-using-linux.html
One other thing – I prefer Quanta Plus over Blue Fish(maybe because I prefer KDE over Gnome).
Re native binaries for Adobe software – Creative Suite runs fine on Mac OS-X, which is based on BSD, which is a ‘nix. Surely it’s just a hop and a skip from OS-X/Darwin to Linux? And once CS3 comes out for the new Intel chips, it should be even closer. I seem to recall seeing something about Macromedia employing a Linux guru shortly before Adobe’s takeover, so maybe Studio is close to a port.
No mention of Nvu and GIMPShop here?
This will serve as a great resource! Thanks a lot
For FTP, give Krusader a try. It’s really the best out there for FTP and general file management.
Hello. I like your thoughts.
So, I switched myself. I have installed and configured about every distro out there. I use many live onse as well for .. other purposes.
So here’s the deal. People (most pros) use a WYSIWYG – Dreamweaver. I too am trying to get my “photoshop”, “dreamweaver” experiance in Ubuntu. Ya GIMP is cool but I may just need more practice. FileZilla has been saying “linux version comming” forever now. So I use gFTP and live with the buggyness. So, HTML. I am trying to use NVU. It is a wysi, and seems nice.
What do you think of NVU?
Killa artical, keep it up to date.
Burke
Ramsinks.com
Kate for developing (mainly doing PHP), Krusader for filetransfer needs.
When you first start using Krusader, you will be hard pressed to switch to anything else. It is that great. CTRL+Y, ALT+O and you’re flying!
Connects to practically everything, and it’s stable as a rock.
I also like Bluefish, but find it a bit on the “slow” side when highlighting large documents. Kate just blasts right through ’em.
Only “problem” with Kate is it’s KDE, so if you’re a Gnome guy it might not be the best choice.
Anything for web development, Linux is surely an excellent machine to handle these projects or development work. In terms of networking, it is also a superb operating system to use. However, it is only in wireless networking whereas the kernel for some manufacturer’s driver aren’t really concrete. Some users may just experience problem while trying to use wireless networking when detecting or hosting any kind of wireless device in their system.
Thanks for the article. I have been testing Ubuntu with a view for changing from Windows. I have set up Bluefish and like many of the features…it still can’t quite match HTMLKit from what I have seen but after reading this I really want to give web dev under Linux a go.
I tested Pixel the other day….looks very promising…I’m looking forward to see how it all comes together.
Now I just have to decide how I can run Ubuntu and Windows…not quite ready to let MS go yet…but who knows what tomorrow will bring.
Thanks again!
No need to test your site on a Mac to find out how it looks like in Safari! Simply install KDE’s Konqueror (the default webbrowser and filemanager of KDE). Safari shares Konquerors HTML-Engine code-base (KHTML). So what’s working in Konqueror works in Safari too.
PS: I’ve been doing webdevelopement on Linux for years now, and it just works. If you’re looking for a more integrated solution of developement than Bluefish is try Quanta+ – it simply rocks! 🙂
Two small notes.
First, Photoshop works just fine under Wine, even the latest CS2 as I’ve heard. You should try it out in case you don’t mind a small amount of hackery.
Secondly, I’ve also noticed the lack of decent (S)FTP clients for Linux. But then I came across the perfect solution – it’s very simple to mount an FTP share as a standard directory in your filesystem and copy/move/edit/delete/whatever files with your file manager of choice, just like with a normal local directory.
Google will help if you’re interested in those solutions.
Nice article. Thanks.
Regarding gFTP remembering logins, you can try what I do: I use the Boomark feature. Once you’re logged into your FTP site, add a bookmark (Bookmarks->Add bookmark) and tick the “Remember Password” box. Next time you want to access your sites, simply use your bookmark(s) to go straight in. Works!
(Note: I use gFTP 2.0.18 under the Puppy Linux LiveCD)
Cheers.
Wow — thanks to everyone for all of the responses. It didn’t even occur to me to try to use Natuilus for FTP — I’m going to do that today.
Reading so much about Kate has peaked my interest — I’m going to have to give it a try.
Regarding using a virtual machine to run Photoshop, IE, etc. I wanted to try and avoid resorting to such a thing as it isn’t completely essential to me. There are very talented designers where I work and I’m only working on site designs sporadically. Should the need arise, I’m glad to read about the virtual machine possibilities.
I’m glad to read about Konqueror’s rendering engine — I knew it was close but didn’t know it was the same thing. That’s really great to know and makes life way easier.
Again — thanks to everyone for the great replies and I’m psyched to read about the other Linux Web developers out there.
I don’t think anyone mentioned this setup for testing: get an Intel-based mac and using Parallels, you can run virtual machines with Linux, Windows 2000 and Windows XP simultaneously with Mac OS X. To me this is the ultimate web developer setup.
Great review , but that’s WEB DESIGN not WEB DEVELOPMENT ,i was expecting talking about Python’s django ,PHP ….etc
I’d like to see a good site developped in a free operating system such as ubuntu or PC-BSD.
Here’s how you can have the same fonts in your OS as in Windows: http://www.ubuntuforums.org/showthread.php?t=208396
Linux for web development? I use Linux exclusively for web development. It’s the easiest and the best thing.
What is sometimes very important too is the fact that a lot of web developers need to get their hands dirty with web server setups. It takes 5 minutes to get my development environment set up, while my friends who use Windows spend days tweaking Apache settings.
I also think there should be a distinction between web developers and web designers. While web designers probably prefer things like Windows and Mac, many web developers use Linux because of it’s stability, ease of use, configuration and customization.
If you want to have an easier life as a web developer using Linux, choose Fedora Core over Ubuntu.
It’s the easiest path to productivity as a web programmer/web server admin/database manager (which a lot of web developers have to be).
Patrick J. Anderson, what do you mean by “it takes 5 minutes to get my development enviroment set up, while my friends…spend days tweaking Apache settings”? I’m one of those Windows developers who dropped dev’ing on Linux because of all those bloody Apache settings and config files. Any clarification or reference would be appreciated.
Well it’s nice to have a change I guess, but to be honest I would rather spend the time developing then trying to set this up or getting used to new tools that do the same thing. Without Flash, 3D Studio Max or After Effects support there’s little reason for me to make the switch.
I think Linux needs to get to a Windows level before being accepted by the majority, and by the time it does get to that stage I’m sure it will inherit a wealth of bugs and issues that Windows is well known for.
I’m buying the Macbook this week. I will use paralels to go from ubuntu to OSX. OSX for photoshop/dreamweaver probably. And to watch video. It seems VLC in ubuntu to “looks weird” .. idk..
Don’t know if you already know this, but I suggest you also check out Xara LX. The opensource version of Xara, a very impressive vector drawing program. http://www.xaralx.org.
Nice article.
You might want to do a search for web site tools in Synaptic – you’ll find some good utilities in there.
One which I like is weex.
It synchronizes your website with a folder on your machine.
Any changes you make on your folder can be uploaded to the wesite automatically with no need to log into a UI based FTP Client.
EHolman, setting up LAMP is generally a quick and painless task on Ubuntu. I never need to tweak more than a few settings however you might find XAMPP even easier (http://www.apachefriends.org/en/xampp-linux.html) as it provides an instantly working LAMP setup.
I have to say, I am about a half a step away from moving to a Mac. I’ve had it up to my eyeballs with Windows at this point and Linux doesn’t have the sorts of tools I need.
Still, Linux definitely is moving forward – great read.
@Jon oh that’s true, my bad. Sorry.
And speaking of editors – have you learend “the best editor” (vim) yet? 😉 No-one has truly mastered linux until they have! 😛
Good stuff.
I use KATE as an editor. It supports projects somwhat and has indentation and color coding for source code of many languages. It even has a sheel window for those that want to run vi inside Kate!
For WYSIWYG design, I use the Mozilla HTML editor or NVU, which is based on Mozilla, and is just as good(!) as dreamweaver.
Maybe I’m the only wacko here, but I’ve found Emacs with mainly html-helper-mode, css-mode and tidy integration very very effective, it cuts my coding time a lot after I learned the keyboard commands. No more typing of tags. I’ve used bluefish for a while and its great too, specially for quick browsing and editing of files, but code completion and/or insertion is a key efficiency feature for me on a develompent platform.
Can anyone post a good bluefish tutorial? Maybe I’m missing some features to make it my preferred tool over Emacs.
For FTP i use gFTP and sometimes FireFTP plugin for Firefox. Still I cant believe the FTP GUI need hasn’t been solved by no one yet.
I have used linux to do Web Development, as opposed to Web Design, for 2 years. Benefits from the programming side are huge.
I use gvim for coding, fantastic because when I’m working on a server vim is available through the shell. So I can be just as productive on the local machine as the server.
Konqueror has great file access protocol. You can use fish://useraname@server/ to login via ssh and do filemanagement.
You have access to the local shell which I find fantastic. How much php have I written?
wc `find . | grep .php$`
Job done. And where are all the references to CONST_VALUE?
grep -R CONST_VALUE .
Job done
What does it look like in IE?
http://www.tatanka.com.br/ies4linux/index-en.html
Cool.
Developing on the local machine is also a blessing.
It’s great to get an insight on what other developers are using. I’m already checking out some of the tools listed.
I’ve been reading some remarks about the article incorrectly using the term ‘development’ as opposed to ‘design’. I suppose my situation is unique in that I spend the majority of my time at my job turning static designs into Web sites as opposed to actually writing Web apps or large amounts of code. I also don’t spend a very large amount of time actually designing the sites either. So deciding on one term or the other wasn’t so easy. I’m more likely to refer to the transformation of a static design into a Web site as Web development as opposed to design. Perhaps some feel that’s wrong?
In regards to vim. Yes, I’ve tried it and it’s quite an amazing editor — I should really take the time to learn the shortcuts as it seems like it just might be the most productive application once you get the hang of it.
@Richard: I really like your point about the usefulness of the command line when it comes to finding such specific things related to work. I’ve never seen a tool that is so — customizable on the spot. Sure, there’s a learning curve, but when isn’t there?
I would LOVE to get dual-head monitor setup working in Ubuntu. Can you please tell me in more detail what you did to make it work? What guide you followed for configuring the xorg.conf file? Please email me. Thanks!
I’ve been messing around with Ubuntu for a couple months now, but haven’t been able to make a full switch. This Bluefish app looks like it might do the trick, though. Thanks, brother.
And a big thanks to the guys who commented about using Gnome VFS features. Another very useful tool that will help me feel comfortable in Linux.
ies4linux rocks! Use it and then donate if you found it useful.
Can I recommend FireFTP, an extension for firefox? I didn’t write it or anything, but I use it exclusively, since when I’m doing web work, I always have Firefox open to test layouts etc anyway, aside from it being my browser of choice.
I’m really happy there are guys, who are blogging to encourage users to get Linux on their boxes, bravo!
thanks to this guide, i’ve got what i need to try it out. i think the biggest obstacle is making useful slices for the web pages… anyone know of a good slicing tool?
@Brian: Sorry for taking so long to respond — I’ll write up a quick email with some links that should get you going.
@James: I’ve tried FireFTP a few times but can’t seem to get used to it. While I, like you, usually find myself using FTP while developing and it’s nice to have both in the same window — it still seems a bit odd to be using the extension.
@glenmo: I haven’t been doing much “slicing” since the days when tables were accepted for layout. So I can’t realy help you with finding a good tool for “slicing”. On the other hand if you are still using tables for layouts, I would recommend you look into using CSS for layout.
Why the hostility towards WYSIWYG? Perssonally, I really like NVU for web development in Ubuntu. It’s not as good as Dreamweaver, but one of the better (if only?) WYSIWYG editors for Linux.
Nice read. Thanks for noting that Ubuntu has great support for laptops. I immeditely switched to Ubuntu on my laptop and everything is working out of the box.
Jon, I am in a similar position as you are. Kind of stuck between being a designer and a developer. At my old job, no one really knew what to call me until about a month before I left it. It turns out the common term for such a position is “web production artist”.
I still do slicing with CSS layouts. I often make or receieve designs in photoshop, and then slice up the different components within it. (Like rounded corners, drop shadows, individual graphics) I guess that’s not technically slicing, because it doesn’t involve cutting up a single image into multiple pieces, but it is slicing the mockup.
Here’s a few things not many people are aware of. Open up Konqueror and try these out in the address bar:
Everyone expects this to work:
http://domain_name
But people are sometimes surprised to see these work too:
smb://windows_machine_name
ftp://ftp_server_name
sftp://user@ssh_server_name
now _while_ that SFTP session is open, use a local editor of your choice to edit a file, then close the editor window….and you’ll be prompted to upload the changed file back to the server!
I’ve been using Linux for 11 years, professionally for 9 years, and exclusively for 6 years. I’m a software developer (mostly complicated server side stuff written in C++, but still plenty of PHP, Ruby/Rails, Bash, Perl, Python, etc to go along with it).
I forgot to mention, drop everything you’re doing right now, get to a shell prompt, and type ‘vimtutor’. After that do a search for a few more tutorials and howto articles. Once you’re hooked, you’ll never look back.
My last 6 years worth of coding have all been done exclusively with vim.
@Jerry: Thanks a lot for explaining that process out — I hadn’t read about vimtutor before. I’ve tried using vim from time to time but I’m afraid a GUI has suckered me right in. Unfortunately I have yet to see an editor such as vim with so many producting saving features right at your fingertips — I’ll have to give it a weeks use and see what I think.
This is the best motivation for switching to Linux I’ve found so far! You’re focusing on exactly the right thing. Damn 🙂 This is going in my bookmarks.
That’s great Emil! One thing I’m noticing is the longer I stick with Linux both at work and at home, the more comfortable I feel with it. At first it seemed out of place and strange, but so is everything when it’s brand new. You must allow yourself sufficient time to get used to your new environment.
Hey Jon – nice article there 🙂
I completely switched to Linux too for almost 2 years now – and now the same feeling i had when using Linux in the beginning i’m getting now with Windows – it is getting really strange and just generally feeling “alien”…
About your editor of choice – Bluefish – i use and like it too but just as others also have posted – it’s laggy behaviour once you hit around 1000 lines / file is disturbing 🙁
I’ve also installed Quanta+ for quite a while now but didn’t use it too much yet so i can’t comment on it’s performance but it also “feels” good, usability-wise.
FTP-clients – yup, this still seems like some kind of achilles heel on Linux. gFTP is buggy and just not productive to use. I’ve also tried quite a few of others but seemingly am stuck with FireFTP… One other cient you could try is “wlFxp” which is a FlashFXP-clone done in JAVA – then again, i’m pretty used to FireFTP 😉
have fun & be productive =)
@Chris: Thanks for the great response. Your comment tipped the scale to get me to try and use FireFTP regularly. I’m going to give it a whirl over the next week and see if it fits the bill.
I hear you about Bluefish bogging down… I’ve had a few bouts with it taking a second or two to highlight a larger file. Luckily in my day to day development I’m working on XHTML markup and CSS so reaching 1000 lines isn’t very common. When the day comes when I’m writing a large Web based app, however, I might be forced to look elsewhere.
Again, thanks for stopping by.
Great article!
As for me, Im a vim purist. If your coding first and designing second, vim is the sure way to go.
Also, for large project development, Ive found nothing is better than an SVN/Trac setup. Give it a try. I switched from CVS about a year ago and it really is quite awesome how organized, standardized and functional you can make your development and release cycle. Used in conjunction with Smarty, large and complex PHP web development becomes a snap, especially when many designers/coders are involved.
Just a note on FTP within Ubuntu. I use the FTP capabilities that are integrated within the Nautilus file manager. It’s installed by default with Ubuntu. Just go the “Places” menu at the top left of your screen, and select “Connect to Server”. When the configuration window pops up, select the type of session from the dropdown list (select “FTP with login” if your ftp site requires a username and password). For the “Server” field, just enter the URL to the site. Enter your user name, and a name for the connection (when you click “Connect” it will place an icon on your desktop using this name)
Then you just click on that icon, enter your password when asked, and you will be connected to you files using nautilus. You can drag and drop to other folders on your computer, or vice-versa. It’s easy. And you can just leave that icon on your desktop for easy connection later.
@Ian: Yeah, we’re definitely looking into setting up either a CVS or SVN but still learning the ins and outs of each.
@phil: I tried that method for a while and while it’s conveinent, given the specific setup of our development and production servers it became cumbersome. We’re reworking our process and hopefully it won’t be an issue for much longer. I do agree in that the integration is really quite nice.
It’s 2 years since i switched to linux completely both at office and home. Doing web development, db administration. No problems at all. Cheers.
Excellent article, migrating all of my web development work to Linux is something I’ve been contemplating for a long time. Bluefish looks cool, as does Eclipse with PHPeclipse installed. The one thing that’s stopping me is that there doesn’t seem to be a good substitute for Fireworks on the platform which is a pity.
@ Matt
Have you looked at Inkscape ( http://www.inkscape.org ) or Xara ( http://www.xaraxtreme.org/ ).
Both very good vector graphics packages!
Nice article! About the gFTP, you can use the bookmarks feature to save where you were working and even have it save the password.
On the other hand, you really should look into PHPEclipse and the FTP/WebDAV plugin for Eclipse. I’ve been using those for php dev for years. They work great!
Tony
Nice article, anything to make people aware of the LAMP stack is a “good thing” ™.
If you fancy ajax, try OpenThought (php version coming soon!). http://www.openthought.net/?rm=downloads
@glenmo: Slicing: right in the Gimp! (as shipped with Ubuntu)
Just setup guides along your slice lines (click and drag from the rulers) and go into Filters->Web->Py-Slice also check out Filters->Web->ImageMap
About FTP, I find the command line with WPUT much more powerful here:
wput -N -u -nc * ‘ftp://user:pwd@server/dir/’
to upload everything from current directory in one go.
Save it as a script and you got your own rapid site updater, you can even make a desktop icon for it if you really want it “pointy and clickty”
I’ve been using gentoo linux for all my computers, home and work, for about 2 years now and I must say that if I had been using windows I’m sure I had to format and reinstall atleast 6 times.
I truly recommend everyone that do more that 50% of their work at a computer to use linux. It’s more stable, more secure, alot cheaper and you can do 95% of what you can do in windows.
And those 95% you do, you do alot better 🙂
@Gabriel, I use (GNU|X)Emacs for everything. Why learn a new tool for every _type_ of file to edit? Pick an editor that can do them all and has the flexibility to add/change new modes.
I read a (G)Vim article where the new version had spell check, paren highlighting, etc… So (G)Vim requires a _release_ to add features? Very alien in the Emacs world where you just download a lisp file and boom glorius new features!
I’d like to give another cheer for emacs. I too am a web developer who works only on linux, and the thing that I enjoy most about emacs is that I have the same software on my production server as I have on my in house server and my desktop. I work in a collaborative environment and it’s far easier to deal with file management on a linux system.
I use gedit to edit html, css, php, javascript and ordinary text-files.
if you use it withteh python plugin naed ‘eddt’ i then gives you the filebrowser like on bluefish….
Now bluefish doesnt look so good coz gedit support a larger amount of features…like snippets that can be inserted by typing a chosen keyword then pressing tab….and tab again to go through the defined regions…
ubunt is the easiest…all others a re bloatware and take too long to setup and are too risky to even considre.
Most webdesigners dont actually need photoshop…they just like to carry it round like a captialist badge of ownership. ‘see i too am part of the elitist wanker club.’
get rid of your consumersit notions and start thinking realistic.
gedit + nautilus + gimp + inkscape + xaraXtreme are the only way to go…
anyone who suggests anything other than vim is just a lame arse fishing for an excuse to play with their stupid toys.
@airtonix: I hadn’t heard of the eddt plugin for gedit, but installed it after reading your comment. So far it seems nice, I’ll have to play around with it. Perhaps you could give a bit of a tutorial on inserting snippets based on a keyword and hitting tab? That was a feature of TextMate that I’ve always been jealous of. Ubuntu may be the easiest for many people to install, but saying all other distributions are bloatware is a bit over the top I think. I agree with you in that you can get a lot done using GIMP, Inkscape and XaraXtreme, but lots of people feel that if it isn’t Photoshop, it’s nothing. As far as you comment on vim is concerned, I’ll have to disagree. While vim may be a very powerful editor, and the editor of choice for many, I prefer a GUI app any day. It comes down to personal preference really. Thanks for the tips you provided and I hope you come back to let everyone know how to use gedit to insert code based on a keyword and hitting tab.
You can get «auto complete» in vim, just type :ab [keyword] [what_you_want_it_automatically_replaced_with], pretty useful for snippets et.al. Of course you can also make more advanced snippets like setting up an HTML 4 strict-page and placing the cursor right where you want it (in the header/body) – but thats more advanced.
@Odin Omdal Hørthe: Thanks for the nice tip — I’m sure many people will find that helpful should they decide to go with vim.
Nathan Smith pointed me over here when I told him that I had recently switched my home desktop from Windows to Ubuntu. Being a freelance designer myself I found this article to be extremely helpful! Thanks so much for writing it!
@Ben: I’m really glad the article was useful to you — I was actually following your blog posts about switching to Ubuntu and commented on the first one. Unfortunately it looks like it was filtered somehow and never made it to the page. Essentially what I wrote was that if you really want to make the switch, it’s really important to dedicate yourself to it and give it the time it deserves. It wasn’t until after the first month of getting used to the new environment when I could say I was truly happy I switched. It’s totally uncomfortable to not have everything in the same spot, and I too switched back and forth a few times before making a complete move.
Great chronical! I too am an avid lover of all things linux (especialy in the Ubuntu flavor). I am also a web developer, but I find myself constrained to Windoze because I use Flash so much. I am considering abandoning Flash in favor of AJAX, in hopes that Adobe will one day port Flash to Unix/Linux machines.
Any way, thanks for the research, I will definatly be looking into beagal!
@Pete Sn33kyP3t3: It’s great to hear that you’re a Linux fan. While it’s not for everyone, it definitely deserves some consideration, especially with all the improvements that have been made over the past few years — it’s amazing.
Linux isn’t ready for Flash development, simply because there are no means to do it. Sure there are ways to hackney things and get Flash to run over WINE, but people need to be realistic.
Both Flash and JavaScript have their own places, and it’s important to think about which is applicable where and use each appropriately.
Just wanted to say thanks for the writing. I’ve been tempted to switch to Linux for some time now. Over the last 6 years or so, I’ve tried different distro’s on desktop machines. Since moving, not having an internet connection and traveling for work, then getting this laptop and a wireless broadband card, I don’t really use my desktop or server anymore. Occasionally for audio recording. I’m just now getting into web development as a mere hobby. It seems there’s so much to learn even to make a simple page, just so all the browsers can display it right. I’ve thought about getting Dreamweaver. I’m now thinking that maybe getting Linux working on this laptop might be a better option. I’ve tried Nvu on windows, but keep having problems with it creating errors and shutting down. I’m familiar with the concept that WYSIWYG editors suck and no professional would use them. Well, I’m not a professional. I need something to start with, and then I can go through the code and check it/modify it.
Thanks again. I have downloaded the Ubuntu image since reading this (and getting other reviews). It’ll take a bit to get everything on the laptop working, but the fact that Ubuntu can read my USB harddrive will make it easy to save all the webpages with the how-to’s for my hardware and drivers.
Great article! I have Ubuntu installing on my laptop as we speak. I have experimented with Linux in the past but have never quite managed to master it. You have given me inspiration to give it another shot. I plan to switch some of my development work to Linux as I have had enough of windows breaking all the time. Thanks for the handy information!
well written article.
And my own experience is so similar – after years of half attempts to ditch windows, if you stick with the learning process for a few months you REALLY will be suprised at the ease, stability and wonderful community that is Linux.
After decades of stagnation, it feels like the wonderful world of computing is alive with oppurtunity.
As for me, I have just installed Bluefish, Inkscape and about to draw and code my very first website!
Great article. I did the same switch a month ago and I’m glad that i did it.
About FTP. Use KFTP Grabber (also on Gnome). It’s much better then GFTP and it’s more like smartFTP on windows (which in my opinion is the best FTP out there).
Cheers,
Rok
… and about PHP, use Zend, it’s really the best when you get used to it.
forgot to mention.. as far as your ftp problems go, nautilus has built in ftp capabilities, just add your server and you can darg and drop files natively.
@ygolohcysp: I’m glad you’re willing to give Linux a shot! It definitely takes some getting used to, but what do you have to lose? To me it’s worth a shot at least.
@Menu Sam: That’s a very good idea if you have the resources, I first started out using Linux on a spare machine, just tinkering around when I had a little extra time.
@gordon: You’re absolutely right, in my opinion you definitely need to give the switch a couple months at least to determine if it’s for you.
@Rok: Thanks for the tips!
@mp3ler: I used that route for a short while, but it was a bit irritating that I had to have two windows open all the time.
I’ve been speaking Windows for much too long, always with the intent to delve into Linux.
I’ve had some experience with it, but with the fact that I do graphics / web design / flash and a host of other programming, windows neatly brings it all together without much fuss.
Still, I’m ready to delve into the new world where Microsoft doesn’t rule the roost. This was encouraging, and I may just convert my laptop to give it a shot.
The only thing that will always keep me on Windows is the fact that I’m an avid gamer… and most of my games will always and forever run in a windows environment.
Thanks for the article!
@Tim: It’s a great idea if you’ve got an extra machine lying around. Choosing to use Linux as a primary operating system should be taken into consideration only if it will make your life easier, not more difficult. It can be fun to play around with, but if you’re going to use it as a primary operating system it’s got to do what you need and do it well.
If you’re stuck on using dreamweaver / flash, why not install a virtual machine on your linux distribution, you can install windowsWHATEVER on the virtual machine. After it is set up you can run it inside a window inside linux without rebooting. You can set up a folder in linux to use as a share folder, and map it as a network drive on your windows virtual machine. While this isn’t a pure linux solution to the problem you can get the stability of running linux as your mainOS and still use the programs that you need for web design until a linux solution becomes available, after which you’ll be a lot more use to linux and it will be easier to switch completely over.
I switched this week (4 days ago).
Sooooo happy I did so.
I use:
KATE for PHP/XHTML/{inesert scripting language…} Will open a remote FTP location using a URL like: ftp://user:pass@server.com/remote/dir
Looking for a good FTP replacement – FileZilla. KFTPGrabber hangs & closes. Don’t like that one. MOUNT works great though.
For SSH connection, I use:
ssh username@server.com
(replaces Putty on Windows)
For a SFTP conneciton, I use:
sudo sshfs user@server.com:/remote/dir /local/dir -o uid=###,gid=###
…. don’t look back — move forward.
Ubuntu 7 (Feisty) + Beryl
CHECK OUT BERYL — IT BLOWS VISTA AND OSX GUI’s INTO (even smaller) PIECES OF POO.
Take it in. Enjoy.
Web developers building RIAs wanting an alternative to Flash should consider OpenLaszlo which generates swf files or DHTML, and runs on Windows/Mac and Linux.
[…] I’ve been a Linux user for some time now, and Linux is my platform of choice both at work and at home. My distribution of choice is Ubuntu not because it’s the most popular, but because I’ve tried a wide variety of Linux versions, and Ubuntu works the best for me. I say this because I’m going to focus on the fonts that ship by default with Ubuntu, so there may be some discrepancy among distributions. […]
I am glad that you like your ubuntu installation. I’ve been using Linux since Mandrake (I’m dating myself) and Ubuntu is quite simply the easiest, most beginner friendly, and reliable Linux I have ever used. Fedora is a beast that is a series of beta’s that call themselves final release versions. the last Fedora that was usable in my humble opinion, was Fedora 3. Four was a trainwreck, five was terrible, and 6, the last one I used, was absolutely an abortion. A horrifying, nightmarish stillbirth. There was so little that worked at all, and it required so many hours to get the simplest things done, like – god forbid – sound, it was simply an embarrasment to the Linux community. It still is. Enter Ubuntu. It runs from a live disk that dosen’t install itself and uses the cdrom drive exclusively for a full working Linux installation. If you decide you like it, tell the live disk to install it. you tell it what country and time zone you are in and a few other simple things, and it sets up all your hardware and installs itself from disk and internet. Get a cup of coffee, watch general hospital, and come back. Done. The beauty is that you get all the benefits of Linux like hundreds of thousands of free programs provided by the open source community, and builtin airtight security without even knowning what root is. And no reboots. Ever. You can leave Linux running 24/7 for as long as you have electricity and it wont lock, crash or BSOD on you. No reboots. Ever. This is worth the price of admission hands down. No registry to corrupt, no periodic reinstalls just to get your operating system to run, and no deframentation of your hard drive to keep it going. All techie stuff, but worth having even if you don’t know you have it. Finally, You made a reference to Gftp. I use it and for the most part like it. There are others, lots, I just haven’t bothered with them. About the only thing I don’t like is what you noted about not rembering log in information. This is a security feature, and an example of the way people who use linux tend to think in terms of safety and security in computing, such as the simple habit of logging in and out of your account. Having your own account means that the worst that can happen is that you hose your user area. Keep a backup of the local files you use, and remove the old account, creating a new one. No harm to the system. People hate the command line as a side note, when they are used to windows Interface. In Linux, it offers some pretty neat stuff. You have had some problems ftp’ing. Try wget. It’s a command line utility that has many features and options, and can run in the background, downloading huge files or whole web sites even when you are logged off. It can do it in FTP, HTTP and other formats. I love it. Keep on using Linux. I don’t bash windows. It has it’s place. But Ubuntu is fast making that place less relevant and exclusive.
Regards, Mateus
a solution to your photoshop troubles:
install vmware on your ubuntu box, make a virtual machine, install xp, install the vmware tools, install photshop, use photoshop for the editing, easily drag and drop saved jpg/gif/png imagery to your actual ubuntu system.
I use it the other way around as I have to many other things that I need windows for, I’m running ubuntu in a vm machine under windows. but the drag and drop functionality should be just as easy the other way around
this way you have access to source psd’s and can stil easily drop any exported images from this into your ubuntu environment.
You can install Wine, get Wine-doors, its downloadable as a “deb” install.. It offers a number of windows installs as wine replaces windows (its not a emulator, it doesn’t require windows, its not illegal, it just implements Windows API, so you don’t need Windows to run windows programs, just WINE).. Also the way Wine installs programs, you can have a separate install of Windows applications for each user as the Windows installs sit in the users home directory. IF you partition your drive into a root and home partition, you can update Ubuntu without writing over your user directory, thus leaving your wine installs intact.. Wine-doors claims it can install dreamweaver, if you need it, and I’ve heard Photoshop will install on wine too.. Use Firefox on Wine to preview flash content (I use Windows firefox with flash because it doesn’t stall like flash does on Ubuntu).. And yes I do have Gutsy, on two machines, and I use gnome, on my laptop (a made for vista Toshiba A135-S2276) I put Ubuntu Gutsy, and on a Dell Dimension 9150 with a NVidia 6800, I put Ubuntu Gutsy.. I also have XP dual booted on both, but the laptop I almost never use XP on.. It’s my Miro media station, and Ubuntu experiment station..
[…] of the more popular articles I’ve ever posted to this site are Linux and Web Development Intro and Linux and Web Development Part 2. In each piece, I documented my transition from using Windows […]
[…] always been a huge fan of Linux. I was a Linux user for nearly two years both at home and at work. Although I had a few reasons to […]
I switched to Linux about 3 years ago and just started doing web dev again. I use lftp from the command line; it’s the quickest and easiest way for ftp IMO. One thing I love is that I can completely sync or mirror entire directories with one command.
For newcomers already comfortable with Linux and the command line under Ubuntu, I’d suggest Gentoo as another distro – package management and speed are the best I’ve used.
One obstacle I’ve hit is developing flash. I found a great site, http://osflash.org/. There are several compilers there, but I haven’t found any very good tutorials on how to use them yet. I’ve managed to get ActionScript 3 to compile with the free flash SDK from Adobe.
@Doug La Rocca: I’m glad you’ve found Linux to be a solution! Thanks very much for the comment and helpful links.
[…] user for more years than I can accurately estimate, and it has never let me down. Through my switch from Windows to Linux, and then from Linux to OS X, Firefox was always an application I didn’t have to worry about […]
[…] has been over two months since my initial writeup of using Linux for Web Development. I had no idea that article would be received as it was, but I couldn’t be happier about it. […]
[…] quite public about my choice of operating system. Originally I was a Windows user, from there I switched to Linux and finally made my way to OS X. I haven’t looked back, and I’m consistently impressed […]
[…] with a preference for WYSIWYG editors you should check out the related articles here, here and here. No comments for this entry […]