I swapped my MacBook for an iPad+Linode
yieldthought.com
yieldthought.com
One fateful day, VMWare and OS/X conspired to trash my
shared filesystem, losing several days of uncommitted
code in the process.
Several days of uncommitted code? We need to have a heart to heart talk about your process.Now we're on Mercurial and life is better.
Edit: A nice win with the Linode is that they back it up for me for $5 a month. Sure, there are solutions for the desktop too, but somehow I never got around to using one of those.
There’s zero shame in being the first kind :-)
Personally I have a mirrored drive set that I use as my primary storage, and a third disk that I rsync to nightly and use for backups of other stuff, because I don't trust that I won't have filesystem errors or controller problems that might render both disks in the mirror unusable. Then on top of that I use Crashplan to ensure I have an offsite copy.
For most of my code I also push to github or private external repositories regularly and/or pull to my laptop.
Maybe a bit paranoid, but I've had to recover from enough scary hardware and software failures over the years to not want to take risks.
One of the first thing I did when I got the new computer was to put a symlink to my projects directory in my Dropbox folder, so that all of my projects now get backed up to Dropbox automatically.
git push origin develop
for this reason, but some environments probably don't allow you to do this easily? I work alone. (EDIT: be nice to people)When you do this, much less important data is stored locally, on developer's actual machines.
Your post has got me wondering about Vim again.. :) Making the switch to Sublime Text has got me appreciating a more shell-like interface for some things.
Have you ever found yourself wanting to code and not have an internet connection? I think that's a pretty rare scenario, I'm rarely offline.
The few times I have wanted to code offline, I've also wanted to look something up >.<
Between having tethering and generally ubiquitous tethering, we should be good.
I think I want to try getting into VIM again. Is there a good resource site you like, where I can find a decent guide and some pointers on where to find some language dictionaries? Totally off topic but I'd appreciate it.
Once I got the basics down (15 minutes in vimtutor), I noticed enough productivity gains to use it immediately for note taking and scripting. Then I just decided to jump in and use it for a real project. I learn new hotkeys, plugins, and config tricks every week and I just feel my productivity inch its way up and up.
http://www.amazon.co.uk/Apple-MB167B-A-Wireless-Keyboard/dp/...
Making the Macbook Air 11" the lighter option.
I have the wireless keyboard (the older three-AA revision) and it's comparatively lighter than my 7" Tab, which is 380 g.
edit: Charlie Stross says 325 g for a four-AA revision in http://www.antipope.org/charlie/blog-static/2010/05/ipad-wri.... Macworld says 323 g in http://www.macworld.com/article/150600/2010/04/ipadwhichkeyb...
My keyboard, bought in November 2008, part number MB167LL/A, definitely takes three.
Current revision available on Apple's website is MC184LL/B and that one is well known to only require two.
I'm using time machine for backups, so i don't think i'll lose much ... but i'm sorta hazy about how i should be using svn for all these little incremental steps. I'm uncomfortable with committing code that's going to break the whole system.
Should i be creating a branch for projects longer than an afternoon, and just committing that fairly often? I feel like eclipse's history is working okay but i have a vague paranoia i'm doing something dumb when i see comments like this.
It's also not just about avoiding data loss. If your feature starts going off-course or has a bug, you can look at previous revisions to get fixed up.
Having used git for four years, I now feel absolutely filthy if I'm not coding on a branch. If I start coding anything, I make a branch first, because the overhead is nearly zero, if I screw something up I can easily revert, and the downside of being scared to push code is too great.
Example: Yesterday I started a new feature. Step 1 was to branch from our develop branch. A bit into the coding I realized that this feature was going to take longer than expected. I committed what I had on my branch and pushed it to the remote repository (github in this case). This affects no one else, because the code is on a branch.
What really makes this possible is that merging is so easy. Branching and merging in svn was scary. I was never sure if something horrible was about to happen. With git (and hg) branching and merging is the expected behavior, and it's easy.
Always being on a branch also makes it easier to deal with interruptions. "Hey, there's an emergency, can you fix Foo?" No problem, commit what you have on your branch (or use `git stash` which is amazing) and jump back to the branch that has the code you need to fix. Need that fix in your branch as well? You can merge or simply `git cherry-pick` a single commit across branches. You no longer have to worry about the dreaded "Did I already merge this? What if I merge it again, what will happen?"
I use perforce for my daily work, and all too often I'll get to a stopping point and think to myself that my approach isn't working - usually I'll wrap my stuff up in a changelist and save the diff off to a file. Then I need to revert to latest and start my work from there.
It's not hard, but it's slightly painful, because if I wanted to try different approaches I end up having dpks lying around on my disk which have no easy relation to what they contain.
I've been tempted to install Hg and use it's branching mechanisms on top of perforce, but I'm not so sure my workplace would condone that (plus, Hg + perforce may not play well - I'm not sure).
Time Machine is great, but as others have mentioned that may not help if the building catches on fire. It's good to also have your stuff backed up at a different location, preferably in a different time zone. :-)
Edit: Like others, I use DropBox for stuff that doesn't really warrant a full-blown source control system. It's very easy to just right-click, compress, then copy the zip to the DropBox folder.
Here's an attempt:
Mac lost my data
Many days of work gone
Cloud to the rescueMany day of work gone
Learn to commit more
It's the poor craftsman
Who points the blame at his tools
Y U NO COMMIT? There once was some data I lost:
Days worth of work just got tossed!
So I decided to write code
On an iPad plus Linode
Getting backups for minimal cost. you say its haiku
but you missed a syllable
in your second line crafting great software
takes many small commitments
like playing JengaCannot get to my work
Twiddling thumbs feeling dumb
The cloud went down
Cannot get to my work
Throwing birds at pigs
Three things are certain:
Death, taxes, and lost data.
Guess which has occurred.(I'm also not terribly worried about my Air or my Hackintosh giving up the ghost, so...)
CVS? I think I've forgotten how I used that, thankfully.
One day his VMWare went wack
So he picked up his code, went to Linode
Which now handles all of his stack
Apparently lots of people make this mistake.
Is it stupid? Maybe. Probably.
Do we need to have a lengthy discussion about it every time it is a minor part of a story or article? I'd rather not.
I've worked almost exclusively on remote servers, using the command line and vim, for about eight years now. It's only been in the past year that I started using Screen, and I feel stupid for not using it sooner.
Both screen and tmux offer multiple persistent sessions, the difference is the command syntax.
Back when I was deciding on a terminal multiplexer I picked tmux over screen because session sharing seemed to be done in a more sane way. But then again, had I used screen for any length of time I'm sure I'd have gotten used to it.
1/ Configs for status prompt were easier to grok
2/ Actively maintained. I used to use vertical split all the time and tmux had that where as gnu screen required hack patches.
If you only want persistence, screen, tmux, dtach do pretty much the same thing.
Main reasons for my move were
* Tmux handles split screens better (had horrible lag in screen, its a known bug)
* Panel and window navigation is easier in Tmux
Not wanting to leave it is why I've not spent much time with tmux. Is there something similar for it?
11:12:52 up 44 days, 54 min, 63 users
The machines I connect to are restarted rarely. I expect this particular machine to be up until Christmass time, at which point there will probably be some scheduled maintenance.Screen/tmux/dtach are so trivial to implement and use and make the connection much more bulletproof that if you foresee there ever being a possibility that you might disconnect and lose work, then you should probably be using one of them.
%uptime
11:49AM up 143 days, 17:08, 1 user, load averages: 0.00, 0.00, 0.00
My internet connection has been up for the last 65 days (yay for actually logging data). I don't keep remote connections to servers as I do all my work on my workstation and push when needed at which point my servers automatically pick up the changes and put them into {testing,staging,production} depending on where I push.In other words, I use Screen when I connect to remote machines. Those machines go down rarely.
My point though, which I'm sure you'll agree with, was to preempt the idea that "my machines don't crash, so I don't need it."
I've got a little bash script for my VM that launches tmux, and starts a development web server in one of the windows, and tailing logs in another, and then dumps me into my project directory.
I also found tmux much, MUCH easier to script than screen.
So... maybe someday, but not yet.
In other words, it seems like I've been working in 'the cloud' for the past 16 years and it can appear to me that everyone else is slowly catching up to this nifty idea.
The reality is that trends swing between thin and thick clients, centralization and decentralization. They are competing forces.
Things have improved for me a lot since. It does help that I live in the UK now. I believe nowadays within Europe something must be wrong to notice the difference (especially with SSH compression and screen), and the latency between the UK and the US has improved so much recently that I've forgotten that most of the servers I've been working on the past year is on the other side of the Atlantic.
http://en.wikipedia.org/wiki/NX_technology
Looks pretty good. Bookmarked for whenever I need a good remote desktop.
I also cannot fathom how to work with < 2 big monitors (> 21" at least). And a tiling window manager. And a decent mechanical keyboard... ok ok..
Interesting setup. I'd be interested in knowing how it works out in the long term.
If I ever go back to my MacBook, I'll take the keyboard with me.
I have a tiling window manager. It has one tile.
I'm sure it's a consequence of thermodynamics, but I can't explain it.
The appeal of a mechanical keyboard stems from the switches under the keys that offer varied pressure curves, pressure thresholds, and physical feedback (depending on the switch type).
Both the apple wireless keyboard and MBP laptop keyboard use scissor switches which are the typical laptop keyboard switch type. Some people like this switch type, some people do not.
But if you're to say something like "it's easily better than a laptop keyboard" you can only make such a claim based on size or number/position of keys, since both use the same switch type. I'd wager a guess that the nature of the key switches is probably what your parent is interested in.
I've even started working comfortably using just one display now that I've changed to using a tiling WM. With a floating wm, I needed at least two large displays to work comfortably. Lots of that screen area was wasted just by showing a little desktop in between of poorly arranged windows. I'll never go back to floating windows with frames and decorations.
And which can also be a way to decrease productivity, with distractions etc. I am more productive on a smaller screen laptop than I am on a 2 screen set or even one larger (21, 27") screen. Mainly because it helps to focus on the task at hand.
We also didn't have 2 large monitors to each workstation back in the day, and somehow we did fine. Spoiled much?
As a programmer, you must know about diminishing returns, right?
It's great for keeping API docs open while I'm working without leaving my editor.
Having the center monitor on an arm just lets me adjust it's height when I move between leaning forward, slouching, or sitting straight, standing, etc.
A single monitor is limiting as it requires more context switches as I swap out windows in my viewing area. It's much nicer to just leave all the important windows open in a nice grid that spans multiple displays.
I just have found that if you want to read something, I prefer it to be on the center monitor anyways, so what's the point in having multiple monitors?
Plus, I prefer to work on my laptop screen, because it's more flexible - I can put my feet up, move around, change positions easier.
Just my own personal preference
The only time I use the side monitors for anything else is if I'm following along with a screencast.
Certainly not "in vogue" and I don't know if it's feasible today. Still an interesting thought.
This is actually the first time i've seen a downvoted comment that i just, really can't understand why it was downvoted. Anyone care to explain?
For example, suppose I posted a comment irrefutably proving that Ruby was the worst programming language ever written. A year or two ago, I would have been upvoted for making useful observations. I suspect today I would be downvoted, because people like Ruby.
Note: I have nothing against Ruby. It is an example.
Just because most people disagree with a post does not necessarily mean it is not worth reading..
Pherhaps there should be a seperate disagree button but I don't see what purposes it would serve , when I read a comment I decide whether or not I agree with it , whether other people do or not does not matter unless they are pointing out factual errors.
For example, if I made an unsubstantiated statement that "Water is composed of Hydrogen and Nitrogen", that would be worthy of downvotes.
Where that gets tricky is when someone asserts something couter to common wisdom, but attempts to substantiate it. You then need to evaluate their defense first.
What really depresses is that they have a similar system on the comments for various UK newspaper websites (Daily Mail I'm looking at you) and you often find that the most uprated comments (which are then displayed at the top of the comments section) are arguments that allot of people may agree with but the arguments (and often the spelling) presented are just terrible and usually consist only of an Ad hominem attack on some person or organisation.
I generally find a thoughtful defense of an unpopular viewpoint a much more interesting read than somebody who thinks they are clever by posting some content free attack on something that is trendy to hate.
Ok, this rant is way off topic now and thankfully this sort of thing seems to be mostly absent from HN :)
That said, decent ergonomics are almost always a good thing. Even if you're not typing a lot, you'll probably still spend a lot of time looking at the screen. Having a bad setup maybe doesn't matter for your wrists in this case but it can still be detrimental to your eyesight and of course your back.
Maybe that's why sliverstorm got downvoted: there are good reasons to care about ergonomics even if you're not typing a lot.
(For what it's worth, my excuse is convenience: I'm working in lots of different places and I can't be bothered to lug around a huge notebook or an external keyboard. Before the age of notebooks I used to have a fairly ergonomic setup with a big screen and the awesome 1st gen Microsoft Natural Keyboard, and I often do miss it: maybe I'll return to such an "immobile" setup next time I have a job with a desk.)
YMMV.
I'm 33 and a year and a half ago I was diagnosed with degenerative disc disease in my neck from spending many years hunched over looking at things. I am extremely near-sighted (legally blind, actually) and that's the only way I can see to do... well, pretty much anything.
I do a lot of stretching exercises now and have a ridiculously expensive pillow, which both help a great deal. I'd recommend them to people who do a lot of desk work.
http://www.spine-health.com/conditions/neck-pain/neck-stretc...
Occasionally an unintended downvote happens when someone on a touchscreen tries to scroll or upvote.
The screen is just the right size to fit two 80x25 text editor windows side-by-side when full-screened. Swiping back and forth with Mission Control is almost as quick as switching your glance from one big monitor to another. Having your "mouse" right below your keyboard makes clicking something only marginally more time consuming than contorting your hands to hit an Emacs command sequence.
Probably still faster with the big setup, but I get a lot of mileage out of my little setup and I get a huge productivity/creativity boost from being able to wander around the house, head to a Starbucks, etc.
Mission Control is pretty fricking awesome.
I find that when I have 3 Chrome windows open in one 'desktop', when I swipe to the other one and click Chrome it sends me back to the main 'desktop' where the other 3 windows are.
I don't want to have to use Firefox or some other browser in my other space.
How do I use Chrome in both, or is that not possible?
All the technology in the world doesn't make me think faster. The most I can ask from it is that it gets out of my way and lets me search, explore and express myself efficiently.
Not as sexy as a new cinema display though.
I very rarely feel slowed down by my environment. It's possible for it to happen, but most of my time is spent thinking about a problem, not typing.
I'm not sure how much a small screen would or wouldn't actually slow me down, but it feels more tiresome to work on a smaller screen.
I used to exclusively work at two 24" monitors. Then I switched to a tiling WM and from many years on OS X back to Fedora. I found that the WM/OS switch improved my productivity to the point that I was better off on a 15" laptop with those two changes than before them on two monitors. And the setup was around $2,000 cheaper.
Now my ideal setup is a single large monitor along with familiar peripherals (Kinesis, trackball), xmonad, and Linux. If you'd told me a year ago that I'd be happier with one monitor than two--or nearly as happy on a laptop as a desktop--I'd have said you were nuts. But, here we are.
I agree that the difference in productivity between the worst-case (Mac laptop) and best-case (Large monitor; peripherals; xmonad) is not orders of magnitude. But I would say that over time it has come to approach 2x, which is not at all insignificant.
And I think "expense" matters little compared to "comfort". If a keyboard that didn't cost $250 was just as comfortable for me, I'd buy it. In the case of this particular switch (laptop -> linode), the comfort level would be close for most tasks as I already live in Vim and things with Vim-like bindings. But the totally new window/peripheral interface would definitely slow me down. I've spent enough years comparing environments over long periods of time to know that.
Most of my coding is done in an ssh terminal using screen/vim. For this task I find myself most productive in a laptop. If you can get used to a laptop's touchpad you can be very productive because I find the time to switch between touchpad/keyboard is much less than the time to switch between a standard mouse/keyboard. The small movement of the touchpad isn't a big deal because the viewing space is small enough.
When using a full blown IDE I find myself most productive on a large, high resolution monitor, mainly because of all the surrounding stuff IDEs add - small displays just can't display enough code for me. However, touchpads are no longer efficient because it takes too many swipes to move across the screen, so I have to use a standard mouse+keyboard, losing some efficiency.
Usually, I find myself wearing two hats - monitoring production systems while coding. Multiple monitors are invaluable here, allowing you to delegate monitoring to 1 or 2 screens fulltime, while you use the other for coding. This way you don't have to mess with alt tabs, you can just take a quick glance when you want to.
One thing I've found invaluable with a multiple monitor setup (I'm currently at 4, laptop not included) is being able to move from monitor to monitor quickly. I use global hotkeys for this - ctrl-1 moves my mouse to the first monitor, ctrl-2 moves my mouse to the second, and so on. Without this I found myself spending far too much time moving my mouse around the screen to truly find them useful.
Systems debugging is where you really want the space. I often have 4 terminal windows open at once - you need screen real estate for that.
I've even swapped the default search engine to bing because it provides a better layout, especially so for image searching which in my view is broken on iOS.
This from the company that just released tools to aid the transition to mobile web.
(and yes, I'm aware that they hate each other, but why should I be punished? reminds me of the MS from yesteryear.)
Also: there is general feedback that google's optional services are generally quite good, which makes it curious that the originally very good google search/image search was replaced with versions that aren't up to scratch.
Also, outside of Google Docs, Google has first rate support for iOS on the web. Gmail, Voice, Reader, everything runs brilliantly on iOS. In fact, usually better than Android, as they clearly see web as their primary in to iOS compared to Android (example: Voice is the snazzy HTML5 newness on iOS, while Android has the spartan 1995 grad student webpage styling).
You <recipient of person who seems to be against my loyalist brand> are so <random ad hominem attack>.
Tell me this, <ignorant contrasting scenario with seemingly no knowledge that IT is more than just writing code for platforms> ?
I could sit here and list all sorts of analogous scenarios to the one you've questioned above, but I'd be wasting my time because you're not interested in that, if you were you could search for that information.
Now I ask you a question: Do you think your thoughts make a meaningful contribution to these forums? Perhaps you should consider somewhere with a one-sided bias if you're not comfortable hearing contrasting ideas and opinions from different minds. Perhaps you could gain maturity by being able to cope with the view points of others (which you're not going to change with such transparent arguments.)
And if you still don't get it: You aren't going to change my view point, the view point of others or any of these companies by acting like a troll, you're wasting your time and undermining the credibility of other comments you make on this forum.
You don't have to wait: it's called the MacBook Air.
Combined with that, bumping up the size in every single app lowers the value proposition for me, especially given the expense of the laptop itself.
I practically live inside my laptop, use it far too much of the day, and anything that makes my eyes hurt more or requires more effort to use instead of less, I consider less than ideal.
Full screen (which I quite enjoy by the way) helps neither or those things.
> Ctrl-X is my screen’s ‘hotkey’; it defaults to Ctrl-A but on a wireless keyboard that leaves unicode characters in the terminal - I assume this is related to Apple’s support for some common Emacs key bindings in iOS.
Is the situation any better now? Any workarounds to make this work better (e.g. configure the shell on the remote end)? How is this on Android?
I was trying this on an iPhone, but I'd imagine it handles bluetooth keyboards the same as the iPad.
Another issue I had was latency of the cellular connection (AT&T 3G); there was a very noticeable delay between keystrokes and the server receiving them and transmitting back. I imagine if you're on wifi most of the time this isn't as much of a problem, though. Or maybe you just get used to the latency.
Ctrl-a and friends still don't work properly. However, iSSH has an option that lets you use the option key instead, and for me that did work just fine, but escape didn't.
Now in version 5.x escape and ctrl work for everything except the most common emacs key bindings, and option-A doesn't any more.
I just tried the latest versions of both Prompt and iSSH on iOS 5 on an iPhone 3GS. Prompt is at least a big improvement over iSSH in this area, but, unless I can figure out how to get it to work better, it is definitely not something I'd be comfortably using for Emacs.
102x768 isn't for everyone, but in text-mode it's all the same. I've no idea how many hours I've spent on a huge high-res monitor staring at a relatively tiny terminal window surrounded by a pretty desktop picture.
I didn't buy the 3G version, but I do use bluetooth for the keyboard all day and still get around 9 hours out of it.
On a different note, an iPad also makes for a decent external display for a cramped 11" MBA.
The psychological effect of this is surprisingly powerful.
So it's more like a cook who prefers an oven with a temperature knob over the flexibility and control of lighting and tending his own fire.*
* I say this a someone who definitely is glad not to have to kindle a fire to cook even the most elaborate meals, but who loves a good wood-fired pizza.
A 11" laptop, particularly the new MBAs, is less cumbersome than an iPad + keyboard and far, far more useful as a real development tool. Other than battery life I just don't see the point of doing this other than the "hipster" factor.
Just the ability to spin up a Rails instance on my own machine or run XCode alone keeps my iPad on the shelf when I'm working.
Sometimes people are surprised that the reason I buy macs is not because they're metal and shiny.
You can pry my dual 24" monitors + high performance desktop from cold dead body.
I plug the iPad into large monitors sometimes. When an iPad with double the resolution comes out, this won't seem nearly so silly.
It seems like a MacBook Air accomplishes this better than iPad, stand and keyboard.
The only difference I can grok from the article is that the MacBook Air is somehow more fragile. But is it?
When I keep my files locally, the only person I have to blame for losing them is myself. Out in "the cloud", there's quite literally nothing that can be done to recover my data.
I'm pretty confident the data will be ok this time.
By the way, Moconnor, have you given Panic's Prompt a try?
Got any links to all of these mythical, amazing $800 notebooks?
But that's just my two cents.
The really nice thing, imo, is the fact that you can pay a couple bucks per month piecemeal to increase any one stat of the machine as you need it.
I typically work with a single external monitor connected to my Macbook and use the Macbook for holding my mail client, chat and a browser while my Terminal's and IDE are on the external monitor. This works best for me.
Now that spaces and expose are so tied together, working with even just one screen is much nicer. I have toyed with the idea of just using a single external monitor and use spaces extensively. Just a swipe and I'm at a new space. This is much faster and nicer than changing apps on iOS.
I think it's a neat trial idea, but for long term productivity, it certainly is more of a "hipster factor" than useful.
First, I tried to create a simple mobile website with vim. I'm not a hardcore vim user so the frustration I felt using it on the iPad were mostly due to my level of inexperience with vim. Additionally, I didn't have an external keyboard. Using the software keyboard with my neck hunched forward gave me some serious cramps.
The second activity was writing a document. I used markdown and pandoc to create an rtf. googlecl for uploading to the google cloud.
Small screens bug some people but after using a 15" macbook pro and a 10" netbook, it normally doesn't bother me. In this case, using a software keyboard meant I had even less screen real estate which did bother me.
Overall, it was workable. If I ever took vacations, I could see myself taking an iPad (with keyboard) instead of a regular laptop and doing some emergency bug fixing but I wouldn't choose it over my netbook.
You could formalize this with related models and write a paper on it if you wanted.
As you say, its a first step towards the the pc-free, cloud-enabled, dev environment. The 'cringe' factor will always be there with new things!
I've thought about this kind of setup, but I think I'd need vim to be running locally (but working on files from a remote filesystem - vim can do this).
vim scp://konimi@vim.org//var/www/html/rtc_functions.php
i.e. you just start vim with the address preceded by the protocol name (here it's scp, but also works for ftp and rcp). The "konimi@" is the syntax for username. You might need to set up SSH passwords for scp on the remote (that's a whole other thing to research)It was not fast, and I wouldn't want to do it all the time, but it worked, and iSSH made it about as painless as I can imagine that process being.
I'd be happier if I knew iSSH made enough to support a small company.
I'd be happiest with an open source version I could contribute to.
Also, I personally like Prompt better in terms of UX. Its quick access menu is always available right above the keyboard, you know, near your fingers when you are typing. Have you ever tried to move the cursor position in iSSH on an iPhone?
Combination of tiny screen , having to reach out and touch the screen rather than just put a hand on the mouse and the latency involved in using a remote machine would make this a nightmare for me!
Judging by the photo of the setup on the desk I would assume you have to lean quite far forward in order to see the screen (unless you have very good eyesight) and I have enough backpain as it is.
Using any graphical tools at all (unless there is an ipad version) must be a major pain on this setup!
I find working on a laptop bad enough but when I really need to be portable and can't take my dual monitors with me the combination of internet hosted source control + IMAP email + dropbox means that I can grab my laptop and just walk out the door without worrying about where my files are so I'm not really sure what advantages you get from this setup.
Of course if your happy with your setup then that's totally cool, what worries me more is if the desktop market dissapears and it becomes necessary for everyone to use a setup like this, it would feel like a massive step backwards to me. I'm just too used to being able to lie back on my chair, have my keyboard within easy reach and clearly see everything I need to see right in front of me in big readable text.
As an aside I also don't really like widescreen monitors for doing work , especially programming as vertical screen estate is much more useful than horizontal when trying to look at allot of code and figure out where the bug is. But it seems almost impossible now to get a large square monitor that doesn't cost an arm and a leg.
I don't see how releasing a full Android version would be anti-competitive in any meaningful sense.
Especially since the Android app and webapp support for Google Docs is unbelievably horrible. It amazes me that something as simple as editing a document (or simple spreadsheet) is almost completely impractical on Android tablets.
There's always firefox-in-vnc, but that's a pretty awful solution.
Still.. even plain HTML is a lot more visual than code. so much switching can suck.
.. now, two or three iPads, that's the ticket.
- Most editors suck in one way or another
- You have to work on a terminal if you want version control, builds or setup local servers
- Mobile Safari is not fast enough. You spend a lot of time reloading pages
- No inspector for the DOM, javascript, debugging, profiling
- Zero ability to handle graphics
My guess is that (1) any function I'm writing is generally entirely within view anyway, and (2) with Vim I never scroll around looking for something, I jump directly to it with a search command.
Still, I'd really like just a smidge more space, especially in the vertical. At least 168 pixels, to be specific.
That's one advantage he has with the iPad - he can easily switch between portrait and landscape, depending upon his needs.
I'd love to be able to occasionally turn my netbook screen to portrait!
When I switched to a new smartphone, the resolution was the most important change - with 854x480 pixels I can read forums and sites easily, as opposed to a 320x480 display...
Kudos for thinking of it. I think that it's a very viable solution for those who don't have a great need for a graphical IDE. But as a web developer I have to test across all major browsers, so I can't switch everything to an iPad. (Not that I wouldn't be interested in trying it.)
http://news.ycombinator.com/item?id=3186237
I haven't attempted anything for my normal Objective-C XCode work yet on an iPad.
Anyone out there have any hacks to do iPhone/iPad dev from the iPad?
2. Edit your code with one of the many Dropbox-enabled text editors. (Or use Textastic with its sftp support.)
3. Use Hudson's web interface to kick off an Xcode build. Configure Hudson to send built IPAs back to you via email or TestFlight.
4. Download and test your new build on the same device.
It sort of works, even! As long as you don't need to edit your XIB files, and you avoid typos. I'm not switching over to it, but it wasn't as bad as I thought it would be.
Imagine being able to work remotely, being able to "rent" a couple of more virtual processor when you need to compile something bigger, having as much RAM available as you need and paying only for what you use, and most of all, having the security that all your data is safely backed up with a 1-second delay at most. Virtually unlimited bandwidth (again, pay for what you use), as all the other resources. Just imagine ...
Interesting experiment, I don't think I could ever move to doing something like that permanently.
If you're using vim and think you're developing as well and as fast as you can, you're probably wrong.
* 17 years of screen and I've finally switched over to tmux. None of the features were sufficiently compelling for me to change, but it's so much faster
I used Delphi for years, then Visual Studio for years, then Eclipse for a while, then QtCreator for years. I've haven't found anything in any graphical IDE that can't be succinctly reproduced in a text-only environment like vim.
I can imagine a whole load of awesome features that would require a truly graphical output. They just haven't been written yet.
I've been developing software in Vim, Netbeans, and Visual Studio (with about a year or so of Eclipse thrown in for good measure).
I've worked on projects in all three ranging from tiny 1kloc one-offs to several million line systems, using C, C++, Java, Bash, and a smattering of Perl and Python.
For Java and C++ code bases beyond a few thousand lines, I certainly agree that language aware tools are invaluable. It's sad that C++'s nature makes such tools so difficult to build. Going from Netbeans/Java to Netbeans or VS C++ is like going back in time - not quite laser scalpel to flint knife, but sometimes it feels like it!
Fortunately, I spend the bulk of my time in C, where I find myself at least as effective in Vim as in either Netbeans or VS. Granted, I obviously do use a few additional tools - primarily ctags and make.
If vim only had fully language aware navigation and search, I think I'd be just as effective in it as in any IDE. Exuberant ctags comes close, but just isn't quite there, and cscope is just too clumsy and slow.
Though there's something that feels ... wrong with eclim in particular. Not that it'll stop me from using it if it works well!
I certainly wouldn't say no to a more responsive terminal.
To make the switch-over even easier, rebind to C-a instead of the (sensible) tmux default of C-b. Put this into your ~/.tmux.conf:
set -g prefix C-a unbind C-b bind C-a send-prefix bind-key C-a last-window
Unlearning typing it twice for when you're not in screen is the hard part.
After spending a little under a year learning vim, I've found that while I make the occasional error in command mode, nothing has helped me "think in code" quite as well.
I'd say most of my time is spent thinking while programming anyway, but when I am typing, nothing has made me faster than vim. "Small" things like "hmm, I don't like what's in this block" can be as slow as reaching over to the mouse and selecting a bunch of code by hand, trying very hard to be precise, or typing "ci{". Which is easier?
Perhaps I've been missing out on all these years on the true power of IDEs and not using them to their full potential, but when it comes to programming, I like to be the one typing, not some fool machine. Do I occasionally make mistakes? Of course. Is my overall output better because I have fewer distractions? Absolutely.
Of course, that's just me. I know plenty of people who are a lot faster with autocomplete and auto-quote closing and everything else.
I might look into tmux, screen is kind of buggy under cygwin.
There are plenty of code-completion plugins, and I used to have tab-completion enabled, but I never got around to adding it on my latest environment and don't miss it.
Of course, cscope is mostly useful for c/c++/java, but I've used the ruby vim map just fine. I operate on a codebase that's probably past a million lines of code. Maybe not all useful lines, I haven't seen them all ;)
Either way, this setup would be significantly less painful using a MBP to connect to linode instead of an ipad.
I'm really close to moving to remote work for almost everything development related, but I photoshop enough to worry about the Air being underpowered. Any good cloud answers for that?
Maybe Android could give a little more of the "local productivity" option?
Screen is for the most part "good enough" that any replacement that aims to supplant it completely needs to either be vastly and obviously superior or enough of a drop in replacement that it doesn't require any effort to switch (I'm most definitively not investing time updating config files or changing key presses unless the improvements are dramatic).
As far as I can see, while tmux might be "better" in some nebulous way, the value proposition is way to weak to invest time in switching for me.
And I never type anything to connect to my screen sessions. How primitive ;)
I have shortcuts for the main machines I use that opens a terminal window, ssh's to it using my key, and attaches to my running screen or starts a fresh one if none is running (rarely - most of my screen sessions are 1+ years old)
My sessions on less important machines run in screen windows.
I switched to tmux because it is better maintained and it has better screen splitting functionality. I also mapped screens commands over to tmux, so the switch was basically painless. Took all of 15 minutes.
If you're cool with screen, you're cool with screen. No worries.
And I don't use the screen splitting at all - I use splitting a lot in emacs, but never in the terminal, so that's basically a non-feature for me.
I want to create, remove and switch between windows, and have a status bar showing their names. That is all.
I guess these are the reasons I've never seen the point in switching.
I REALLY like that the hardstatus line equivalent shows the command that's currently executing (think: bash, make, ./configure etc). That said, if you don't use the hardstatus line, I don't think there's much of a reason to switch unless you want multiple different size panes which screen doesn't really support.
It should be interesting when there are versatile graphical programming languages for touch devices (LabVIEW, etc.).
Is it just me, or does the thought of typing rm -rf on an iPhone keyboard sound a little... dangerous?
I'd really like to know what editor he was using.
I don't recall exactly what was inconsistent with what, but the overall effect was to make me unhappy.
But moot point, now :)
Prompt lets you use the control key for control, but the alt key is borked on apple's wireless keyboard.
Is there a set up with both these keys working at the same time, preferably on the keys labeled as such?
Natch.
I went through a phase of using multiple monitors all the time. After a year or so I came to the conclusion that alt-tab is quicker and easier than looking at another physical screen.
Swiping isn't; I wish alt-tab worked in iOS. Still, it's close and it stops me checking my mail too often.
Looking over at a different monitor is significantly faster.
As an example, I developed MultiplayerChess.com is on my Linode server. I don't have an IPhone or IPad yet but I see that it's great to access a full utilized development environment from anywhere...
Let's turn this topic to a usesthis.com for CLI lovers.
CLI apps that I use are tmux (In addition to the previous comments not recommending Screen, I highly recommend Tmux), Emacs, VIM (I use Emacs as an IRC and Twitter client, an IDE and a self-organizer, VIM as a file editor), newsbeuter for RSS and links for browsing. My choice of distribution is Arch Linux.
if you wonder about my Emacs configuration, it's in my Github; github.com/azer/emacsfiles