I'm going to be going to the middle of nowhere for a couple of weeks, and there's going to be no internet there.<p>I design with Figma and I code in React Native/ReactJS. How can I build something or learn a skill with no internet to make sure I'm productive over this time?
I don't know the circumstance of your tech exile, but I'd encourage you to take advantage of it to do something other than code! If you're going to be in nature, be in nature. If you're going to be with people, be with people. Those are the sorts of experiences you'll treasure, later in life, far more than a few more days of "productivity".<p>If none of that applies, and you still want to learn something to do with tech? Well, you know this won't be an ideal situation to engage directly with a system. How about zooming out a bit? Read some books. Some of Stallman's essays. Clifford Stoll. Or anything else more recent that you think is big-picture significant to your field. Your situation will be ideal for contemplation, which will in the long-term make you a better contributor to whatever projects you take on.
I tend to agree with the other commenters suggesting you just step away from the keyboard for a while. I've been programming for 40 years... it can be addictive, fun, and useful... but there are other and more important things in life. Focus on those.<p>If that advice falls on deaf ears, and you really do want to write code on your time off, then here are some suggestions. I was about to say 'welcome to how we used to code'... but there are differences, both positive and negative.<p>* Tools like `git` are invaluable to the extent they let you manage source code control offline. Use them if you don't already.<p>* Settle on your dependencies and frameworks while you have network access. Download all the source you can for future reading.<p>* Focus on algorithmic work.... places where it's more about thinking through the code you're writing rather than interfacing with something else. (Hard these days.)<p>* Buy and bring some books. There are still good programming books that can be useful. You won't be totally at the cutting edge with these, but you probably don't need to be either.
Not quite as long as a week but here are some tips when I want to code from a long haul flight or some other offline situation.<p>- The replacement for Figma is straightforward - pen and paper. Make sure you take some.<p>- devdocs.io for offline docs or if what you're using isn't in there, a lot of packages offer a PDF of their docs.<p>- I keep a pyproject file that has basically any mainstream package I am likely to want at any point while writing Python, then when I leave for a trip I make sure everything is installed locally. Docker can also be helpful for this.<p>- Sometimes I write tests when I have internet then when I'm offline I just spend the time making the tests go green.<p>- Other times I will forget about writing new code and learn something new by working through the PDF of a book. Most technical books set up the dev environment in the first few pages, do that when you have internet then you're good to go.<p>Other people have raised good points about getting away from your computer. I don't want to preach but I do like a 'holiday' day where I do some light coding in the morning then spend the afternoon doing something else entirely.
Family: "We're going to an area where there's no WiFi, no distractions, no internet, just quiet solitude!"<p>Me: "Awesome! I'll get my laptop so I can work on some personal projects without distraction."<p>The only part of the puzzle I cannot solve is the Figma issue, which is an online tool. If your designs are already done, you can generate PDFs or PSDs to take with you.<p>For documentation, if you're anything like me, I refer to it constantly, there are tools that you can use to clone entire readthedocs areas, along with many others documentation projects. Simply keep them local.<p>You can create a local clone of an entire npmregistry, there are tools to do this for build systems.<p>Alternatively, pick up a tutorial style programming book that is outside of your regular knowledge area, download whatever tools you need, and work your way through the book.<p>You know your workflow better than anyone else, so try working your workflow without internet for a day and see where it falls short. Again, you can work around most of the problems, except for those "I need a back-end server to work" tools, e.g. Figma.
There’s stuff like <a href="https://zealdocs.org/" rel="nofollow noreferrer">https://zealdocs.org/</a> that allow you to take all relevant documentation with you so offline coding will work.<p>If you just want to be productive, you could also bring a lot of books or downloaded tutorials on a drive.<p>Btw, make sure your drive is encrypted and you think of a way to backup your data so you don’t lose the offline progress.
Assuming you're fixed on not disconnecting:<p>I would recommend using ollama (or install llamacpp if you're on Windows) to bring along a modestly capable LLM you can run locally such a CodeLlama or Minstrel. They won't be as capable as ChatGPT, but a lot of knowledge gets compressed into these relatively small models.
The only way to know what works for you is to try coding without internet, see what problem arises first and solve it as best you can.<p>Then see what problems arises next and solve that as best you can.<p>And so on.<p>Which means it will probably be a bit frustrating, involve a lot of small failures, and maybe even large failures.<p>But you will learn if you like to code without the internet and will try it again with better preparation or just liked the idea of being a person who codes without the internet but are not (which is ok).<p>Some people like to camp and some don’t.<p>Good luck.
Try another language for the time you’re away. I spent 2 weeks in hospital and spent it offline playing with PICO-8 by downloading the PDF references and just experimenting.<p>Doesn’t need to be PICO-8 but there’s plenty of languages that can be done entirely offline.<p>Still keeps your brain active and lets you learn something new that might help you in parallel ways.
If I were you, I'd make sure I have a local instance of f.ex Llama 2 and Code lama up and running.<p>Even though it's not as good as GPT-4, and might even be slower, the value you might get from a local modal in such a case will probably beat most other things. It will allow you to both look stuff up, and even learn new things without needing to copy large parts of potentially irrelevant information beforehand.
I would suggest setting up a 'forward proxy' on localhost with a piece of software such as nginx. With a sufficiently large hard disk or SSD, you can set the cache lifetime to be something very long like a month or two. Ideally, you'll be able to have your most frequented Web pages available offline. In practice, I've found DNS to be the biggest challenge, as browsers like to check the domain name too frequently; you'll probably need to cache that as well. I can share a prototype nginx configuration that I have been trying, if you like.<p>More immediately, Kiwix is fantastic for this. I have the entirety of Wiktionary downloaded - the complete "English to X dictionary" where X is about 50 languages - and it only takes up 8GiB. Install at least two different Kiwix client applications; there are occasionally glitches that make one unable to show a certain page. Wikipedia and Stack Overflow might be good Kiwix libraries for your use-case.
I lived aboard a boat for a week this spring with no internet access. We spent most of our waking time doing Galapagos things, but many of the multi-hour transits between islands there wasn't much to do.<p>I had downloaded a bunch of older Advent of Code exercises and spent some time on the transits solving them in a language that was relatively new to me (Clojure).<p>That might be better suited to a casual/low-stakes "15-20 total hours" rather than 100 hours where you want to be sure you can be productive, but all I did was just made sure I could do a couple of hours worth of work on my laptop at home with the wifi disconnected.
Ignore all the know-it-alls here telling you that you shouldn't write code while you're on vacation. If any of them knew anything about being in nature they'd know that the morning and evening are the times with most wildlife activity, and hence there are plenty of hours for coding. And they'd also know that even those of us who actually spend time in nature regularly don't spend the entire day staring at the fucking trees! I'm with you, I write code because I love it, and I do it in nature. It's possible to code in nature and appreciate nature!
A colleague of mine had to do this regularly when working on certain projects for the gov. It was an air-gapped environment. So no access to the internet.<p>This basically meant loading up a thumb drive of all the possible documentation he could get. You can use site archive tools to download an entire website's documentation. Depending on the complexity of what you want to build - you would also probably need to mirror a subset of your package manager i.e. npm mirror. Probably lots of eBooks, courses, tutorials. Nowadays maybe even a LLM might be a useful reference.
With offline material!
If you can afford to take with you some hundreds GB of data and a laptop you're set. For example, let's say you want to learn Erlang: install the VM, keep an offline cache for dependencies (with their respective docs), Erlang docs and mirror devdocs.io. If the skill in question is not tech-related you can carry a lot less data probably too (find some manuals).
Cloud-cutting is an interesting journey, even if temporarily done.<p>Some offline alts:<p>1. Penpot for ui design
2. Llama for stackoverflow (from this thread, yet to try myself)
3. Python had devpi to cache packages. You might find something similar for npm.<p>I also found vscode plugins are mostly offline. A nuc-style box with docker + glinet router may help if you are not alone on this journey.<p>It might not align with current trend, but I would like to make cloud-cutting a norm, instead of exception.
I don't work with React directly but I'm aware with JS apps that a lot of package repos are needed to build so can all that work without internet (i.e. npm install, etc.)?<p>The good thing is you can practice this ahead of your retreat by turning off your wifi and trying to do work that you might do on your retreat. Then when you encounter something you need, figure out how to download it and run/install it locally. Then repeat until your local setup allows you to do work. The downside is you'll be limited to what you prepare ahead of time so there won't be any exploring available packages, downloading one to see if it works, etc.<p>Another approach is to try and learn something new with a book, that amount of time with a new language/framework and being new to it means you probably only need some basics to get going. You might want to download api/language docs in addition to the book as well in case you explore things outside of the scope of the book. Maybe try something adjacent to what you work on.
>to make sure I'm productive over this time?<p>Is the purpose of the retreat to the middle of nowhere to be productive ?<p>Why do you think you need to make sure you're productive ?<p>If the purpose of your retreat is to be productive, maybe chose something that you can do without Internet, like programming in a language/framework you feel comfortable with, and just bring their documentation with you ?
I think the answer is fairly simple: you've got to bring a project with you that you know won't require downloading dependencies or online research. That's either because you've advanced the project to a sufficient state that you've got the dependencies downloaded, or because it's a project without 3rd party dependencies.<p>If nothing comes to mind, take a bunch of screenshots of leetcodes and try to implement them. It's good for programming skills, and good for your career. There's nothing boring or "work-like" about leetcodes; they are often touching upon academic computer science. It's a perfectly respectable intellectual activity and a good thing to be doing in the woods.
Being without internet can be a great opportunity to focus on skill-building offline. For your design work in Figma, you can sketch ideas on paper and refine them digitally later. For coding, download relevant documentation and tutorials beforehand.<p>Books on React Native/ReactJS can also be handy. Consider working on personal projects or code challenges to sharpen your skills. Plus, offline time can foster creativity and problem-solving. Embrace the break from distractions, and you'll likely return with fresh insights and improved skills.<p>Enjoy your time in the middle of nowhere!
i would say dont.<p>unplug instead and consider it as a break.<p>youll just get disappointed once you encounter edge cases where you need more than the official documentation. i mean things that are hidden in github issues and stackoverflow posts.<p>it's okay to take a break anon, everythings gonna be okay.
Ensure you have offline copies of books and documentation you might need and perhaps some cloned repos that might be helpful.<p>You didn't provide any details about this excursion, so I'm not going to assume anything and tell you to do something else.
So many tool chains and the like depend on being connected. That said, some books (for instance) have the code in place / examples you can downlaod.<p>If you are up for a new language and since you are front end focused, making sure your system is setup for it, maybe look at learning Rust and the book - <a href="https://pragprog.com/titles/hwrust/hands-on-rust/" rel="nofollow noreferrer">https://pragprog.com/titles/hwrust/hands-on-rust/</a><p>It builds a game through the process. I found it a fun way to learn the language. But again, I'm not sure how possible it is to do offline.
I got "allergic" to computers but I still like algorithms and playing with mathematical/logical structures.
I spent some time in the Australian outback with nothing but a pencil and a block of paper.
I had heard of topology in science fiction books so I decided to study that from scratch.
Soon I had discovered a family of hyperdimensional geometries that led me to an efficient algorithm for the complete resolution of a traveling salesman problem and a non-Boolean logic.
Therefore I think that creativity (work!) in preparation for coding doesn't need anything but a curious mind.
Starlink?<p>Not meant to be snarky, sorry I just don't have any idea how you'd get local setups and then have the relevant developer docs in an accessible manner. Maybe
a locally running Llama model?
I write a lot of my best code in a notebook.<p>You can go a long way with concepts, instead of explicit code.<p>Figure out what the parts look like. Write the code when you're done.
If I were in your position, I would do the following:
- Plan out what I wish to achieve during this time.
- Prepare all the relevant material that I would need for referencing - docs, manpages, articles, books, etc.
- Set a goal that I think I can achieve and document the journey to learn from the experience.
Time to git clone the docs to all your tools. Mozilla MDN etc would be worth downloading. Make sure you have all your local infra like DBs running on your machine.<p>I did an hour of coding today disconnected from the internet and it was nice. Some things have to be put off but there is a surprising amount you can do!
If you're not familiar with Vim, I'd encourage you to download a few Vim cheatsheets, the VimBeGood extension[1] and practice navigating code in Vim.<p>[1] <a href="https://github.com/ThePrimeagen/vim-be-good">https://github.com/ThePrimeagen/vim-be-good</a>
Large sketchbook from a local art supplies store, blank pages, and several nice pens at .05 because .01 archival quality will bend and be not-useful readily.
I was actually in this situation recently. Download everything you need, dependencies, editors, programming books, docs. Enjoy the distraction free time!
Can you elaborate what does “no internet” mean in this context?<p>Is there no way to go online for all duration of the trip?<p>Or is there some device that you can use occasionally to browse or perhaps even download something to an usb drive?
I would suggest just one aspect, whether designing (find an offline tool), building (take offline React reference docs), or something else and go deep into that. Typically I take a toy project and build it with a different language/style and framework (or without a framework).<p>If I were in a circumstance like that I might take Ruby & Rails docs. I use it, but don't know to the point of memorization so many things that are uncommon but frequent enough that I have to take time to look them up each time they come up. Like how does Ruby symbol resolution work, exactly.