Casus:
如何从多个距离较远的位置和计算机尽可能轻松地使用相同的代码进行编辑和推进?
我有这个想法已经有一段时间了。 当我必须在不同的计算机上处理一个项目时,我经常会遇到问题,因为我没有采取任何措施或任何措施来缓解这种情况。 部分原因是我很少做自由项目,而且它们通常都是小型网站。
想象一下,您需要在家处理一个项目,其中设置了数据库、网络服务器、phpmyadmin 以及运行应用程序所需的一切。 然后你去女朋友家度周末,但你需要推进项目,在那段时间你想做一些编码。
我目前正在做的是,我正在归档整个项目以及通常的数据库转储,并将其放置在 ftp 主机上,以便我以后需要时可以访问它。 我可能不需要解释这可能是多么乏味,特别是如果您需要在当前所在的 PC 上设置整个环境。
注意事项:
-
将我的家用电脑变成启用了远程桌面的开发服务器 - 这样做的问题是远程连接并不总是像人们所需要的那样快速和敏捷雷达。 这也意味着家里的电脑必须始终打开,尽管我可能根本不需要它,如果说,周末有更好的事情要做。 我可能需要购买 UPS,因为这里时不时会发生停电。我已经不喜欢这个解决方案了。
-
在公共托管服务和结账代码中创建数据库和 SVN 存储库。 这仍然存在一些问题,因为您可能需要安装软件、SVN 客户端,并最终在每次更换计算机时编辑一些配置。 哦,与之前的“解决方案”一样 - 您完全依赖于 Internet 访问。
-
购买一台 Eee PC 并随身携带 - 这样您就可以随身携带所有环境。 也不需要网络。 你必须拖着这个该死的东西到处走,即使它很小,它也不是你可以放进口袋里的东西。 我还认为这些 EEE PC 不太适合正常编码(小键盘、屏幕等)。
-
最后,我一直在考虑一个理想的场景,我有一个 Linux 发行版,它附带一张 CD,甚至是 闪存驱动器。 最近,您可以让所有环境以及所有项目始终伴随您。 您可以将其放入口袋中。 Nova时代所有的电脑都有内置的USB端口,相反并不是每台电脑都有CD ROM。
想了想,我认为最后的解决方案是最优的,完全令人满意。 问题是,我对 Linux 不太了解,也没有太多地搞乱它。 尤其是闪存驱动器操作系统。
底线问题:
- 您是否同意闪存驱动器是最佳解决方案? 有没有更好的实践可以运用到工作中? 也许我应该重新考虑这种工作方式?:)
- 你认为闪存驱动器操作系统是否像 http://www.pendrivelinux.com/" rel="nofollow noreferrer">http://www. pendrivelinux.com/ 完全适合这样的Web开发环境; 有更好的操作系统候选者吗?
- 一般情况下从USB启动有什么问题吗? 当然,我想这在大多数 PC 上应该不是问题?
- 您在同一项目的多个地点工作的个人经历如何?
Casus:
How to edit and advance with the same code, from several distanced locations and computers as easily as possible?
I have this thought for some time now. I am regularly having problems when I have to work on one project from different computers, as I have not taken any measures or whatsoever to ease myself in this situation. That is partially due to the fact that I rarely do freelance projects and they are normally small web sites.
Imagine that you need to work on a project at home, where you have setup database, webserver, phpmyadmin and everything you'll need to get your app running. Then you go to your girlfriend's house for the weekend but you need to advance with the project and during that time you want to do some coding.
What I am currently doing is that I am archiving my whole project, along with a DB dump usually and place it on a ftp host, so that I may access it later when I need it. I probably don't have to explain how tedious this might be, especially if you need to setup the whole environment on the PC you are currently being at.
Considerations:
-
Turn my home PC into a dev server with Remote Desktop enabled - the problem with this is that remote connection is not always fast and snippy as one would need it to be in order to do RAD. Also that implies the PC must be always be turned on at home, regardless that I might not even need it, If say, there are better things to do during the weekend. I might need to buy an UPS, as power outages happen from time to time around here.. I already don't like this solution.
-
Create database and SVN repositories at public hosting service and checkout code. This still has some of the problems, as you might need to install software, SVN client and eventually edit some configuration each time you change the computer. Oh, and as with the previous 'solution' - you are totally dependent on Internet access.
-
Buy an Eee PC and carry it around - that way you can have all of your environment with you. No network required as well. You have to drag the darn thing around tho, and even it is small, it is not something you might fit in your pocket. I also consider that these EEE PC's aren't very suitable for normal coding (small keyboard, screen, etc).
-
And finally, I have been thinking of an ideal scenario, where I have one of those linux distributions which go along a single CD or even a flashdrive. On the latest you can have all your environment always with you along with all the projects. You can fit it in your pocket. Nova days all computers have built-in USB ports, contrary not every computer has a CD ROM in place.
Thinking about it, I consider the last solution to be optimal and completely satisfying. Problem is, I am not very linux savvy and I haven't been messing with it so much. Especially with flashdrive OS.
Bottom line questions:
- Do you agree that a flashdrive is an optimal solution? Is there a better practice I can put into work? Perhaps I should reconsider this way of working at all?:)
- Do you think a flashdrive OS as say http://www.pendrivelinux.com/ is suitable for such web development environment at all; Are there better candidates for an OS?
- Are there any problems with booting from USB generally? Naturally I guess this shouldn't be a problem on most PC's?
- What is your personal experience in working from several locations on the same project?
发布评论
评论(8)
这里有一个替代解决方案:携带一个便携式硬盘驱动器,其中便携式安装了虚拟机播放器和带有您需要的所有开发工具的虚拟机。 只需将其插入任何可用的计算机,启动虚拟机,将其置于全屏模式,然后就可以开始了。 优点是不必搞乱 live-cd 或 live-usb Linux 设置,特别是因为您说过您对 Linux 不太熟悉。
编辑:您也可以在闪存驱动器上运行虚拟机,但性能会很糟糕。
Here's an alternate solution: carry a portable hard drive that has a portable installation of a virtual machine player and a virtual machine with all the dev tools you need. Just plug this into whatever computers are available, fire up the VM, put it in fullscreen mode and you're good to go. Carries the advantage of not having to mess with live-cd or live-usb Linux setup, especially since you stated you're not very familiar with Linux.
EDIT: you could also run your VM off a flash drive, though performance would be abysmal.
你真的应该买一台笔记本电脑并在该机器上完成所有编码。 摆弄上网本和/或拇指驱动器并不是一个长期的解决方案。 我有一台 MacBook,用来完成所有编码工作。 当我在家时,它会连接一个 21 英寸显示器以及一个完整的键盘和鼠标。 当我需要旅行时,我会拔掉所有电源线并将其放入包中。 由于我使用同一台机器,因此我不必担心来回迁移文件或设置,虽然屏幕有点小,但在旅途中完成一些工作也不错。
如果我不能随身携带笔记本电脑,我会在 Linux 服务器上搭建一个开发环境。 但是,该解决方案高度依赖于您正在进行的开发类型以及您对 Linux 和命令行的熟悉程度。 我绝对不推荐那些刚刚开始的人。 然而,使用 Screen 和 Emacs(或者 vim,如果你这样做的话),你可以在任何有互联网接入的地方拥有一个成熟的开发环境。
You really should just get a laptop and do all your coding on that machine. Messing around with netbooks and/or thumbdrives is not a long-term solution. I have a MacBook that I use to do all my coding. When I'm home, it's attached to a 21-inch monitor and a full keyboard and mouse. When I need to travel I unplug all the cords and put it in my bag. Since I use the same machine, I don't have to worry about migrating files or settings back and forth, and while the screen is somewhat small, it's not bad to get a bit of work done on the go.
If I couldn't carry my laptop around, I'd set up a development environment on a Linux server. However, this solution is highly dependent on the type of development you're doing and how familiar you are with Linux and the command line. I definitely don't recommend it for those that are starting out. However, with Screen and Emacs (or vim if you swing that way) you can have a fully-fledged development environment anywhere with internet access.
笔记本电脑:太贵,键盘太小,编码很烦人。
远程桌面:您会感觉到延迟,甚至是几分之一秒,一天后您就会发疯。
SVN:总是需要到处安装相同的软件(存储库客户端、FTP、文本编辑器、mysql 等),太麻烦了。
我的解决方案是我个人使用的...USB闪存驱动器!
安装所有软件的便携式版本。 我设法找到了我需要的所有东西的便携式版本:
Kitty(SSH)
Filezilla(SFTP)
USBWebserver(Apache 2,PHP 5,Mysql 5,PHPMyAdmin)
Notepad ++ 5,Eclipse PDT(PHP IDE)
SNES9X(snes模拟器); )
Keepass(密码加密器数据库的东西)
HeidiSQL(类似于PHPMyAdmin)
菜单(一个小的系统托盘菜单东西)
我所有项目/音乐/笔记的目录
这是一个很好的链接,我在其中找到了我的大部分软件。
PS 适用于 Windows 和 Linux(通过 wine)。 我还在上面放了一个 autorun ini 文件,所以当我插入它时,我的系统托盘菜单程序就会运行,并且 apache/mysql 也会启动。
Laptop: Too expensive, keyboard too small, annoying to code on.
Remoting a desktop: You'll feel the lag, even fraction of seconds, and you'll go nuts after a day.
SVN: Too much trouble always needing to install the same softwares (repository client, FTP, text editor, mysql, etc) everywhere.
My solution is one that I use personally...USB Flash drive!
Install the portable version of all your softwares. I've managed to find a portable version of everything I needed:
Kitty (SSH)
Filezilla (SFTP)
USBWebserver (Apache 2, PHP 5, Mysql 5, PHPMyAdmin)
Notepad++ 5, Eclipse PDT (PHP IDE)
SNES9X (snes emulator) ;)
Keepass (password encryptor database thing)
HeidiSQL (similar to PHPMyAdmin)
Menu (a little system tray menu thing)
Directory of all my projects/music/notes
Here's a good link where I've found most of my softwares.
P.S. Works on windows and Linux (via wine). I've also put a autorun ini file on it, so when I plug it in, my System tray menu program runs and apache/mysql starts.
我认为 SSH 是一切问题的答案。 它使我能够完全控制我的服务器,无论我身在何处,它不仅允许我访问 shell,还允许我上传和下载文件,以及使用端口转发。
如果我只需要做一些快速调整,我通常只需通过 SSH 连接到服务器并使用 nano 或类似的东西来进行编辑。 与屏幕相结合,它实际上可以成为一个令人惊讶的高效环境。
当我需要做更严肃的工作时,我会下载 notepad++(免费)和 Expandrive(相当于 sshfs 的 Windows,提供 30 天演示)。 这允许我远程编辑文件,就像它们存在于本地硬盘上一样(尽管它需要良好的连接)。 非常有成效。 :)
I think SSH is the answer to everything. It gives me total control of my server regardless of my location, and it allows me to not only access a shell, but also upload and download files, as well as use port forwarding.
If I only need to do a few quick adjustments, I generally just SSH to the server and use nano or something similar to do the editing. Combined with screen it can actually be a surprisingly productive environment.
When I need to do more serious work I'll download notepad++ (free) and expandrive (windows equivalent for sshfs, 30day demo available). This allows me to remotely edit the files like they existed on my local harddrive (although it requires a good connection). Very productive. :)
上网本怎么样? 我听说 Scott Hanselman 等人使用一款运行 Visual Studio 和 SQL Server 进行 ASP.NET 开发效果良好的软件,所以我相信它们的功能足以满足您的需求。
屏幕尺寸可能是一个限制,但更小、更轻的设备具有巨大的优势。 Asus Eee 901 是我的同事推荐的。
How about a netbook? I heard the likes of Scott Hanselman using one with good effect to run Visual Studio and SQL Server for ASP.NET development so I am sure they would be powerful enough for your demands.
The screen size might be a limitation but at the great advantage of a smaller, lighter unit. The Asus Eee 901 has been recommended by a couple of people I work with.
我使用 Dropbox 来处理不依赖安全性的代码项目。
至于开发环境,我的需求很少,所以一份 Notepad++ 通常就足够了。 目前,它已本地安装在我使用的每台计算机上,但我曾考虑过在 USB 驱动器上使用便携式安装的想法。
然而,您的需求比我的更复杂,在我看来,建议的笔记本电脑可能是您的最佳选择
I use Dropbox for code projects which are not security-dependant.
As for a development environment, my needs are minimal, so a copy of Notepad++ usually suffices. Currently this is installed locally on each machine I use, but I have toyed with the idea ofusing a portable installation on a USB drive.
Your needs are rather more complex than mine, however, and it seems to me that a laptop as suggested may be your best option
我认为开发人员的计算机就像泳衣。 当您使用的不是您的时,您会非常清楚。 此外,众所周知,我们发现的任何计算机都很有可能存在一千个问题之一,这些问题将影响我们的假设以及 USB/VM 选项的持续成功。 我认为大多数人都会同意,这将取决于我们项目的优先级以及我们对特定时刻无法运行的可能性的容忍度。
I think a developers computer is like a bathing suit. You are very aware when the one you are using is not yours. Additionally, as we all know, there is a high degree of probability that any computer we find will have one of a thousand issues that will impact our assumptions and the consistent success of our USB/VM options. I think most would agree that it will depend on the priority of our projects and our tolerance for the possibility of failure to operate at a given moment.
简单的答案:笔记本电脑。 是的,它不像手机那么小……但它使您的编码变得更加容易。
Simple answer: a laptop. Yeah, it's not tiny like a cellphone... but it makes your coding like so much easier.