views:

196

answers:

10

Everyone once in a while, I'm in a coffee shop without a network connection. I like having all the code and tools local on my laptop for these occasions. I checkout the code locally, run mysql locally, and pull down all the API documentation. What are some tools and tricks you use when you have no network?

A: 

Tip and tools to do what? If you running locally what type of things are you trying to do? Is this window forms or web apps?

Dedrick
+7  A: 
  1. GIT.
  2. Some Cheatsheets (formerly www.ILoveJackDaniels.com)
  3. ...
  4. Profit?
Luis Melgratti
A: 

Not really sure what you're getting at... I'm assuming you've got an installation of Rails already set up on your machine?

I like to use MAMP Pro when I'm developing locally but if you're just working with a Rails app even that is a bit extraneous.

Mark Hurd
A: 

Why would I need a network connection? On this laptop, which is my main develpment machine, I've got:

  • three C++ compilers & IDEs
  • one pascal compiler and IDE
  • two smalltalk implementations
  • java
  • php
  • perl
  • python
  • ruby
  • tcl/tk
  • three different web servers
  • four different SQL database servers
  • subversion, git and CVS clients
  • subversion server (also CVS server, but I don't use it)
  • open office
  • various OpenDoc tools
  • cygwin
  • emacs
  • vim

plus documentation for all the above. What more do I need?

Edit: This is all on a 9-year old Sony notebook 900Mhz CPU, running W2K in 256Mb of RAM. Obviously, I don't run everything at once, but I can run Apache with PHP, SQL Server and a couple of C++ IDEs together with no probs.

anon
More RAM, likely!
overslacked
A: 

My best offline resource is a smart co-worker.

Sarah Mei
A: 

I suppose I would recommend trying to keep track of what tools (VMs, Source control, bug tracking) and resources (documentation, websites, blogs) you use on a regular basis that possibly require a network.

Then, automate retrieving what you need from those resources (using RSS feeds comes to mind) such that they can seamlessly be used offline. As for source control, a distributed system (such as Git or Mercurial) may be of use.

Simply knowing what one uses on a regular basis is a good idea in any case.

Daniel Gill
+1  A: 

I'm a big fan of SVK for offline development. It is essentially a wrapper around svn that allows you to create local branches that you can work out of without a connection. You can commit to that local branch as often as you like and when you're back in connection range, it's a simple matter to get everything in sync again.

There are some introductory tutorials here.

dominic hamon
A: 
  • Dependency Control: Knowing in advance what things in the network and the environment in general your application depends on. Minimise those dependencies, have them documented. This should be the case already, it's good design and good development practice; being able to work in a coffee shop is just a side-effect.
  • Caching: Caching of reads - ensuring in advance that the the subset of the internet (documentation, tools, data, etc) you need is on your laptop. Caching of writes - is provided for by things like Git, I suppose.
  • Virtualisation: These are approaches where you present the application with a simulation of the environment it depends on. I'm not sure yet how useful a generalisation it is or whether "virtualisation" is the best word. I suppose stubs and simulators and mock objects would fall into this category. A trick that falls into the category is the use of /etc/hosts entries to work around the app stalling because someone's hardcoded an external server name in it.
d__
A: 

I'll turn the question around: What are some tips and tricks for developing when a network connection is available? The one big answer that comes to my mind is - Google.

I'm serious. OK, maybe that's not everything (more frequent integration might be another thing I do when I'm online). But at least as far as I'm concerned, my system of work doesn't really change very much when I go off the internet. All the things I need and use are on my laptop (with git being one of the most important).

And my tip?

Try to embrace the fact that you have no connection. Without internet there is no Twitter, no Facebook, no feed readers and all those distracting things, which means - you can actually DO your work. :)

Milan Novota
I know what you mean :) Sometimes I have to get out of my apartment and work in a quiet, connection-less place to cut out the distractions.
Jerry Cheung
+1  A: 

DNS tricks for testing servers and virtual servers (without actually having a network path to DNS up)

popcnt