![]() |
|
Using Linux/Unix as my development environment - Printable Version +- kanji koohii FORUM (http://forum.koohii.com) +-- Forum: Learning Japanese (http://forum.koohii.com/forum-4.html) +--- Forum: Off topic (http://forum.koohii.com/forum-13.html) +--- Thread: Using Linux/Unix as my development environment (/thread-9807.html) |
Using Linux/Unix as my development environment - ファブリス - 2012-08-23 Hey guys, I'm really on the fence right now between upgrading to the new iMac or building a PC. I'll wait to see what the new iMac looks like, but in the meantime I've been wondering how my development environment would work out if I built a PC. Going back to developing in Windows is pretty much not an option. I need a really good terminal like OS X's Terminal with Bash that has all the standard commands like ssh, make, curl, rsync etc. For example I have a script that creates an archive, connects to a "jail shell" with SSH, and runs more commands on the remote server, unzips the files, etc. The final straw that made me buy a Mac 2.5 years ago is when I started learning Git and version control. Git came with Cygwin on Windows but it was such a mess, and the command line looked so bad, that I just couldn't take it anymore and switched to OS X. So now I'm thinking.. wait a minute... actually the most crucial part for me in OS X is that Terminal. If I built a PC, perhaps I could use a Unix partition. After all OS X is running on top of some kind of unix isn't it? So please forgive me if I confuse unix/linux, I'm completely new to that OS. I have only some basic knowledge of unix through OS X's Terminal. Usually when I find examples of code to run in Bash they just work straightaway in the Terminal, even complex things like recompiling php with different options. Is there a "distro" that has a really good looking Terminal with Bash like this: ![]() - that supports UTF8 characters? (Terminal does show kanji and hanzi in the mysql console!) - that has a good font smoothing? - that has tabs? Also do you find a standalone, windowed VIM in a typical unix or linux distro? Can you get a really nice looking one? I'm currently using MacVim: ![]() Are there any other options? (?_?) I don't want to build a "hackintosh" it just seems like wayyy too much trouble than it's worth plus stability issues. Running OS X in an emulator is an option..after all I have my own legit discs of Snow Leopard but I don't know if that's a reliable option? That would probably be the best for me though as I doubt I will find anything as nice as Terminal and MacVim >_> Thoughts? Using Linux/Unix as my development environment - partner55083777 - 2012-08-23 ファブリス Wrote:Is there a "distro" that has a really good looking Terminal with Bash like this:Yes. Just about any distro you choose with come with a way to install gnome or kde, both of which have terminals that have all the things you are looking for, plus much, much more. To be honest, it's almost painful when I have to use the terminal on OSX. It's either because the terminal itself doesn't have shortcut keys I need, or because OSX is using an older version of bash that doesn't have the builtins I need. The only thing I haven't played around with is font smoothing, but I would bet real money that you can do this with linux. ファブリス Wrote:Also do you find a standalone, windowed VIM in a typical unix or linux distro? Can you get a really nice looking one?I don't know about a "really nice looking" one, but gVim is the typical standalone VIM used on Linux. You can use this on practically any distro. As far as what distro to use, I would suggest starting out with Ubuntu and then trying Debian or Arch Linux (my favorite). Using Linux/Unix as my development environment - ファブリス - 2012-08-23 Thanks! I was thinking perhaps I should experiment first in a virtual environment. Would you know per chance of an easy package that would run a distro in a VM, just to learn the basics? (I'm on iMac atm, so I'd rather avoid messing up my current Bootcamp/OS X partitions). Something I could run in Windows? Using Linux/Unix as my development environment - onafarm - 2012-08-23 When it comes to experimenting, how about the host that koohii is on (ThePlanet?) Even though you're on shared hosting, do they not give you SSH access? Then use putty as your console. I can use Japanese characters and files and databases without any problem on Linux. At home I use Zenwalk. Code: mysql> select Kanji, Frame, Keyword from JIS_Kanji where Frame > 1000 limit 3;Using Linux/Unix as my development environment - ファブリス - 2012-08-23 I'm already familiar with Bash, I'm using it in OS X. I meant a way to experiment with installing and configuring a distro, to see what apps are installed by default, what Vim looks like and so on. Using Linux/Unix as my development environment - onafarm - 2012-08-23 Understand. In that case, I wouldn't build a PC. I would just buy the cheapest old PC you can, perhaps from a pawn shop. Or a friend who just upgraded. Then try a few distros and see how you go. One of my Linux PCs serves as my test webserver, and mailserver. And runs my wiki. It's so many years old I can't remember, has very little RAM, no terminal and no keyboard. But it does the job. Using Linux/Unix as my development environment - cb4960 - 2012-08-23 Virtual Box + distro of your choice is the best option for experimenting. Using Linux/Unix as my development environment - shadysaint - 2012-08-23 Give Linux Mint a try. You get the Ubuntu repositories without the horrible Unity desktop. And they added some nice little details like right click menus have an option to 'open in terminal' which will open a terminal and cd to the directory for you. Very convenient at times. The terminal is ugly by default (white background, black type) but that can be easily customized. As far as all your scripts go... anything you do in an OSX terminal should work the same in a Linux terminal with the exception of system directory structure. Vim is standard issue, but you'll have to grab the 'gnome-vim' package for a windowed version. You'll also need to add the SCIM and Anthy packages and then go into System Settings -> Language Support to enable Japanese. I believe this also requires restarting X, i.e. log out and log back in. (I think UTF8 will display just fine without that, but you won't have an input method.) Good luck! Using Linux/Unix as my development environment - astendra - 2012-08-24 shadysaint Wrote:You'll also need to add the SCIM and Anthy packages and then go into System Settings -> Language Support to enable Japanese.As far as IMEs go, mozc > anthy TBH. Anthy tends to be a bit funky, I find it often gets common conversions wrong. Works with uim and scim and whathaveyou. Using Linux/Unix as my development environment - chamcham - 2012-08-24 Run a linux vm in OS X. http://www.maclife.com/article/howtos/how_run_linux_applications_your_mac Using Linux/Unix as my development environment - partner55083777 - 2012-08-24 cb4960 Wrote:Virtual Box + distro of your choice is the best option for experimenting.I second this. You could also try vmware. (But, to the best of my knowledge, virtualbox is more liked in the Linux community because it is mostly open source.) Oh yeah, there's one more thing I forgot to point out in my previous post. When building a Linux computer, you need to make sure all your hardware is supported by Linux. These days, most things will work out of the box on any modern distro, but there are still some things that might not be supported. Your biggest concern will be video cards, wireless cards, and raid controllers (although I don't have enough experience with RAID setups to say whether this is really true or not anymore). Before you actually buy the parts for a new computer, you should at least make sure your video card and wireless card is supported under Linux. Using Linux/Unix as my development environment - Blahah - 2012-08-24 cb4960 Wrote:Virtual Box + distro of your choice is the best option for experimenting.Agree with this - I use an iMac for development and Virtualbox for any time I need to run a different OS. It's easy to set up and use. Since you like the OS X Terminal, have you tried iTerm2? It's a replacement for Terminal with a load of nice added features like multiple panes, and much more customisable. What's your reasoning behind wanting a PC? Personally I find the trackpad to be one of the finest features of the Mac setup, and of all the OSes I've used, OS X is by far my favourite. I've never seen a PC that I'd rather use than my iMac. That being said, I'm developing using Xcode so I might be more tied to OS X than you. Using Linux/Unix as my development environment - shadysaint - 2012-08-24 astendra Wrote:As far as IMEs go, mozc > anthy TBH. Anthy tends to be a bit funky, I find it often gets common conversions wrong. Works with uim and scim and whathaveyou.Currently installing. I'll give it a try. Thanks! Using Linux/Unix as my development environment - netsplitter - 2012-08-24 KDE's Konsole can do everything you want, and probably a little more. Here is a screenshot of some stuff, just for you. It's very customizable. As for a good KDE distro, someone else can recommend one for you. I haven't gone distro-hopping in long while. Using Linux/Unix as my development environment - partner55083777 - 2012-08-24 netsplitter Wrote:KDE's Konsole can do everything you want, and probably a little more.Two other good terminals would be gnome-terminal and roxterm. (In Linux, your choice of terminal usually depends on your desktop environment. For instance, if you are using KDE, then you usually use KDE's terminal, Konsole. If you are using GNOME, then you usually use gnome's terminal. If you are using some other desktop environment but want a "heavy" terminal, then you use roxterm. If you want a really "light" terminal, then you use aterm, Eterm, xterm, etc.) Using Linux/Unix as my development environment - ファブリス - 2012-08-24 Thanks for all the pointers so far! I think I'll be experimenting later today with a VM. chamcham Wrote:Run a linux vm in OS X.I can do that but if I end up upgrading to a new iMac there's no use to me. I love the power that comes with the bash/shell, and I use that as my development environment, but I also use Photoshop and all sorts of non open-source software. I guess I could use a VM in OSX right now for testing, however here's the interesting bit: I'm wondering if I could actually use a Linux/Unix distro in a VM within Windows 7, permanently as my environment development? How stable would this be? The reason is: - I absolutely need to use Photoshop. It's a resource hog and it would run natively, and I think I would be able to setup some "bridges" so I can save images into the Git repo, ie. sharing a folder between the VM and the host. - I don't need this thing to run games. It's my development environment. Pretty much the only things I will run are web browsers, a good shell/bash terminal, an explorer/finder for a user friendly way to browse my repo, and a windowed version of VIM. - I would be able to backup the whole virtual machine, and it would also boot quite fast I suppose since a VM can be "suspended". I'm wondering if this is a very reliable option though? I would also love to run Linux natively. I hope to get a SSD and I don't mind the reboots since that's what I do on the iMac (Windows > gaming, OS X > development)... however this doesn't solve my requirement for Photoshop. Using Linux/Unix as my development environment - ファブリス - 2012-08-24 partner55083777 Wrote:Your biggest concern will be video cards, wireless cards, and raid controllers (although I don't have enough experience with RAID setups to say whether this is really true or not anymore).Ok that's definitely a problem. The only reason I'm considering building a PC rather than upgrading to the rumoured late 2012 iMac model, is to get the max bangs for my bucks this time around, and last me for another three years. That's another point in favor of running my environment development in a VM. I won't be running any games on this OS, nor do any multi media with it. That's why I'm hoping that a VM would work out ok in the long run. Using Linux/Unix as my development environment - netsplitter - 2012-08-24 There's nothing wrong with running a Linux development environment in a VM. Many people do it, in fact, since they prefer Linux for development and another OS for everything else (typically this is because certain laptop hardware only works natively for certain OSs, or work better, like power saving features). There's a slight performance hit, but you probably won't notice much unless you compile all day. There are many advantages to this approach as well. You can easily make snapshots for backups/rollbacks, clone and/or transfer the environment accross machines, or confidently make unsafe changes to the environment (e.g., trial major package upgrades without having to safely isolate your core development environment, which isn't always trivial). Using Linux/Unix as my development environment - partner55083777 - 2012-08-24 ファブリス Wrote:While it would be your biggest concern, it's not actually a big concern. With a little research, it's usually easy to find hardward that will work with Linux. If you stick with stuff made by a company like Intel who has all open source drivers, then really you don't have to worry about anything.partner55083777 Wrote:Your biggest concern will be video cards, wireless cards, and raid controllers (although I don't have enough experience with RAID setups to say whether this is really true or not anymore).Ok that's definitely a problem. The only reason I'm considering building a PC rather than upgrading to the rumoured late 2012 iMac model, is to get the max bangs for my bucks this time around, and last me for another three years. Also, like netsplitter said, running a Linux development vm on a Windows host is really common. Linux works really well in this setup. I can't think of any major drawbacks to this method, other than the fact that you'd have to use Windows. Also, it would be slightly slower than doing everything on Linux. Using Linux/Unix as my development environment - ファブリス - 2012-08-24 netsplitter Wrote:There are many advantages to this approach as well. You can easily make snapshots for backups/rollbacks, clone and/or transfer the environment accross machinesThat's what I'm thinking about, plus the ability to suspend and resume. There is a feature really awesome in Parrallels virtualization on Mac: it will hide the desktop and make applications appear natively in the host desktop. For example, on a Mac I would have a window open with the Explorer, or say, Internet Explorer. Does Virtual Box do anything like that? Using Linux/Unix as my development environment - netsplitter - 2012-08-24 Sure does. Using Linux/Unix as my development environment - ファブリス - 2012-08-24 partner55083777 Wrote:If you stick with stuff made by a company like Intel who has all open source drivers, then really you don't have to worry about anything.Even bleeding edge stuff? I'm thinking perhaps of getting a Thunderbolt motherboard and the Apple Thunderbolt Display, like this. If I was going to buy a new 27 inch iMac after reselling this old one, I may as well get a kick ass GPU and a gorgeous display, which will last me at least three years, that's my line of thinking ![]() Basically I don't want to save money. I'm looking at the money I would have spent on a new iMac, plus another 400-500 € for additional memory and an external SSD on Thunderbolt because of the ridiculous Apple fees for the upgrades... >_>. So it would be close to 2500 € I think. So I'm looking at what kind of PC I could build for that money with a gorgeous screen and a good GPU for games. And I would use Linux/Unix for development. The other option is the old Apple Cinema Display and a (Mini-)DisplayPort graphics card. There is a long thread on HardForum discussing this setup. But that's less future-proof without the Thunderbolt connectivity. I'm thinking the Apple TB Display will last me a long long time, possibly through another two PC upgrades. With that said I would love to run a distro natively at some point, and get to learn more about Linux. @netsplitter: that's awesome
Using Linux/Unix as my development environment - netsplitter - 2012-08-24 A little too bleeding edge at the moment
Using Linux/Unix as my development environment - ファブリス - 2012-08-24 Blahah Wrote:What's your reasoning behind wanting a PC? Personally I find the trackpad to be one of the finest features of the Mac setup, and of all the OSes I've used, OS X is by far my favourite. I've never seen a PC that I'd rather use than my iMac. That being said, I'm developing using Xcode so I might be more tied to OS X than you.I've become a little bit jaded with Apple lately. It's hard to put the finger on it. The main reason is the long wait for the newer iMac models. I've been wanting to upgrade since April. I'm still waiting for the new models to come out. There is nothing coming from Apple due to their secrecy. Some rumors even pointed as far as early 2013 for new iMacs. I'm looking forward to play more Path of Exile, and Guild Wars 2 perhaps... and I'm still on a late 2009 model with a ATI 4850M. It's very frustrating to have to wait like that, without the slightest idea of what the next configuration will be. A 680M or a 7970M are the logical upgrades for the next high end iMac. Those are decent cards that would last me a couple years, but in addition to that, the high end model that has the only really decent GPU for gaming on the 27 inch, is now 1900 € instead of 1800 € when I bought mine. That's really pushing the limit... and it doesn't even have a SSD :/ On further thought, while I loved using the iMac for the last 2.5 years, I don't really get any benefits from the "all in one" form factor. And while quality of life is important for me and I believe compromises in customization are worth it, the development environement is really the main source of my frustration in Windows. For entertainment, I don't really care. So if I can develop in Linux/Unix, I can't really think of someting essential I use in OS X. I suppose I'm not a complete Apple convert as I don't use Time Machine, I've never really built my own scripts with Automator, I don't build iOS apps. I'm a fairly advanced user so for me the App Store is not a big deal. iTunes is in Windows. I think I'll survive if I can develop in Linux/Unix :p Using Linux/Unix as my development environment - chamcham - 2012-08-24 iTerm2 for OSX is also pretty nice. http://www.iterm2.com/#/section/features Also, Linux runs on old desktops/laptops just fine. No need to buy new hardware just to put Linux on it. |