8 ms·
It's kind of amusing to me how the pendulum has swung, and we're now producing OS X-only developer software. But then, I'm an oddball who works on Windows as m
by cheald 11y ago
It's kind of amusing to me how the pendulum has swung, and we're now producing OS X-only developer software.
But then, I'm an oddball who works on Windows as my shell with the real work happening on a headless Linux box via SSH and Samba for 99% of my development.
- alexchamberlain 11y ago+1 I was going to make a rather sarcastic comment that this is for "professional engineers", but is OS X only. Ubuntu on a VirtualBox on Windows for me.
- hatsix 11y agoHow do you resolve 'executable' files in your VM? I've not been able to run node apps because executables end up getting stored in /node_modules/, but if that is on a windows share, no executable flag is stored. Resolving the FS differences has always been the biggest pain for me using windows as the core OS.
- dikaiosune 11y agoI for one do all sharing of files between guest and host using Dropbox and git. I've found that shared volumes have many problems like the one you cite, and treating them like two separate machines is usually the easiest way for me. If I had two physical machines with the same configuration as my guest/host, I would use network-based sync, so that's what I do on my Windows host (gaming pc at home, laptop that needs to be work friendly) with my Arch guest VM.
- tokenizerrr 11y agoJust put a samba server on the virtual machine.
- cheald 11y agoThis would be my vote, too. Let the VM be the self-contained dev environment, with your desktop just being a thin client to get to it.
- alexchamberlain 11y agoIt seriously concerns me how many enterprises have this problem; clearly, devs want (need?) *nix boxes - why are we still being given Windows boxes?
- cheald 11y agoA fleet of appropriately-powered OS X boxes is substantially more expensive, and a fleet of Linux machines can't be operated efficiently by the rank-and-file.
- tracker1 11y agoI'm not sure where your disconnect is... - SSH to linux box with node on it - Edit files via Samba/CIFS from windows box - Run node/iojs via nvm for the project on linux - ??? - PROFIT! Don't execute programs on a network drive... especially across platforms, you're asking for pain.
- simoncion 11y agoEh? NFS-mounted /home is an age-old staple of corporate system configuration.
- hatsix 11y agoDisconnect is the management/config of VMs. We use vagrant, which means I have to check out the repo onto the drive to get the config... Sounds like if either have to nest VMs (is that even possible?), check out the repo twice. Or have a config that is very different on windows vs everyone else. Oh well... Maybe win 10 will support a Linux compatible FS.
- dalore 11y agobut yeah the VMs should be checking out their own repo. So they can run and test different versions.
- alexchamberlain 11y agoI spend a lot of time editing files via sshfs, and running builds on remote servers.
- copsarebastards 11y agoThe node ecosystem in general is a mess; I don't think you can blame that on the OS. I did a node project recently and I've still not been able to get it to run on two seemingly identical systems in the same way.
- framp 11y agoI disagree. It's pretty much the opposite from my experience. Are you using npm shrinkwrap?
- copsarebastards 11y agoI tried npm shrinkwrap, but that only procrastinates on the problem: now instead of having to unravel a mess of dependencies on installation, you have to unravel a mess of dependencies whenever you want to upgrade a package. But now instead of having to solve a dependency problem that a bunch of other people have head to solve, you've created your own unique dependency problem. Not to mention that this completely bloats your installations. npm shrinkwrap isn't a solution, it's a temporary hack and it makes things worse in the long run. Maybe you're only working on new projects, but I work on things that will have to be maintained.
- garthk 11y ago'npm ls' might give you a clue. Most mysteries come down to loose dependency declarations and semver stuffups, sometimes in combination. One of your deps' deps takes a ~ on one of its deps, that dep makes a breaking change and changes its version from 0.3.2 to 0.4.0… boom. Your fresh npm install on workstation #2 inhales the breaking change and doesn't work, but workstation #1 still works fine. Fix: temporarily shrinkwrap from workstation #1 while you wait for the maintainer of the package with the ~ dep on the 0.* package to change to a ^ dep. It's a machine. It's a lot more predictable than you think.
- copsarebastards 11y agoI understand how such things occur, but that's not an ecosystem I want to be involved in. If ~ frequently lets in breaking changes (and it does) then nobody should be using it--the entire point of having versioned dependencies is to prevent breaking changes from entering your system. And tracking down these versions by hand is not a reasonable solution: some of these libraries pull down dozens of dependencies, each with their own dependencies, and it's not feasible to read the docs for every single package to find breaking changes. > Fix: temporarily shrinkwrap from workstation #1 while you wait for the maintainer of the package with the ~ dep on the 0.* package to change to a ^ dep. If I have to rewrite my entire install script to pull from a specific machine, the package system is useless, and I'll switch to a package system which is competently managed. What you're describing isn't a fix, it's a workaround. In a larger sense, one of the main motivations for using other people's libraries is that libraries should "just work" and not need to be debugged and tested. That's not an assumption you can make in the node ecosystem. There are reasons you might want to test libraries, such as if you're writing crypto, or critical code on which people's lives depend. But the issues in node's ecosystem aren't that, they're just developers not following very basic development practices. I stand by what I said: the node ecosystem is a mess. You've told me how to fix the node ecosystem's mess (which I already new) but the fact is, I have better things to do than constantly trying to fix other people's messes.
- Touche 11y agoThere's no market for this sort of thing on Windows. The vast majority of development that happens on Windows takes place in either Visual Studio or Eclipse, and those developers prefer tools that integrate with their IDE rather than be standalone.
- stinos 11y agoMaybe I'm odd but apart from working in VS, none of your statements hold true for me. I saw this and was like 'gimme gimme' only to find out it is OSX only. Quite a disappointment, especially given the recent stall (afaik) in SourceTree for Windows development, making me go back to the command line more and more again. I vastly prefer standalone tools for things like git because else I have to learn the builtin tools for each environment seperately. (I do use Git Diff Margin for VS [1] though - in fact it's becoming more and more indispensable to me which actually shows what a great tool it is) [1] https://visualstudiogallery.msdn.microsoft.com/cf49cf30-2ca6-4ea0-b7cc-6a8e0dadc1a8 https://visualstudiogallery.msdn.microsoft.com/cf49cf30-2ca6...
- friendzis 11y agoAt my previous workplace I tried to introduce something better for code versioning than tarballs or (more often than not) date suffixed folders. We used windows. CLI was just a total no no. Long story short, I tried bunch of GUI tools/plugins. Most tools were either too simple for anything beyond personal repo or graphical git command/switch selector. Out of everything I tried SmartGit [1] stood out for its power (never had to use shell for about half a year) and still graspable simplicity. IIRC supports custom providers OOB. [1]: http://www.syntevo.com/smartgit/ http://www.syntevo.com/smartgit/
- antihero 11y agoWhy exactly do you stick with Windows? Hardware?
- LocalPCGuy 11y agoNot the person you asked the question of, but I have a few reasons: 1) Hardware - cost is 1/2 Mac hardware, and I can upgrade cheaper as well. For example, my ultralight notebook came with 4GB Ram and a 128GB SSD. For ~$1000 - Mac equivalent was ~$1400 at the time, with no option to match the screen (1080p). Since then, I've upgraded but the SSD and Ram for another $300 - would have cost almost $700 to do the equivalent upgrade on the Mac and it would have been at the time of purchase. 2) I've grown up using Windows, CMD, batch files, etc. I know my way (a little) around the registry, services, etc. I'd have to relearn all of that on the Mac. 3) I hate all the program menus being at the top of the screen. I have a Mac on my desk at work...and it just drives me nuts. I'm sure I'd adapt, but it bugs me. I could find more, but I've come to admit that I'm just a Windows user. If I need Linux or something, I just install a VM and go to town.
- SomeCallMeTim 11y agoYou're not the only oddball. Some of us work on Windows software and NEED the Windows box -- I also use too many Windows-only tools to make the jump to Mac. And what they do with Cmd-vs-Alt drives my fingers crazy, so I can't configure a Mac to be sane no matter what I try. And I use keyboard navigation to peruse menus, which OS X still hasn't implemented...the list goes on, and I stick with Windows.
- cheald 11y agoYup. I love that OS X is an actual POSIX environment with easy access to the standard GNU toolchain, but the UX drives me absolutely up the wall. I think that Windows 10 is actually a much nicer desktop than OS X.
- gelatocar 11y agoOSX has had the ability to navigate menus with the keyboard for more than 10 years - Ctrl + F2
- exogen 11y agoAdditionally, you can open the Help menu for any app by pressing Cmd-?, and the search box there will find any menu item for you.
- SomeCallMeTim 11y agoI'll have a new Mac box soon. I'll try it. Last time I checked there was no keyboard menu navigation, and you're the first person to tell me that there is, so it must not be widely known. And Ctrl-F2 isn't exactly as discoverable as "hit Alt," so I'm not surprised.
- harperlee 11y agoCould someone comment on the main complications on developing something like this for both Mac and Linux? From my point of view, they is so much common ground, comparing to a Mac/Windows support, that I'd strive for an application to cover both! And that's not something that you could always decide after launching the first time, you need to have it in consideration during design...
- gecko 11y agoThe GUI systems are utterly different, so, for a GUI tool like this, you'd have to write the front-end twice. I don't think OS X and Linux are especially closer to each other than either with Windows when you're in that department.
- tracker1 11y agoAbsolutely true... not to mention, that cross-platform gui toolkits look alien somewhere/everywhere ... IT's never/rarely a great experience. That said.
- swisspol 11y agoThe non-UI layer can be made 100% portable for sure (although in the GitUp case it's not really since I chose to write it in Obj-C for productivity reasons). The UI layer is absolutely not portable: it's all low-level CoreGraphics code for the rendering, some CoreAnimation, and a ton of AppKit of course. You could have a version written in a cross-platform UI toolkit or Java or what have you, but you could not possibly get close to the level or polish and native performance required for an app like this IMO.
- fleetfox 11y agoHave you tried any flavor of linux? If you spend most of the time in terminal or IDE anyway it may be more productive to get rid of media gap.
- cheald 11y agoI have tried many flavors of Linux (I presume you mean desktops - I've run GNOME, KDE, Xfce, and a bunch of others), and I run Fedora (dev) and Ubuntu (HTPC) boxes at home. I've tinkered with switching fulltime to Linux desktops a number of times, and they're great 99% solutions, but the big showstoppers for me have been DRM'd video (Netflix, Amazon) and Steam (I'm a gamer, and 95% of my library doesn't run on Linux). With my setup, literally everything I care about runs without any real effort, and I don't sacrifice any dev power. The really nice thing about my setup is that because all I need is an SSH client, I can work from my Chromebook, Macbook, or even my phone if I have to, and I have full access to my whole dev environment from anywhere. The biggest thing I've lost is the ability to attach to processes directly to debug them, but I just end up using terminal-level debugging or remote debugging facilities when they're available, and it works fine.
- coned88 11y agojust stop playing games and don't stream media from those services.
- jhnphm 11y agoNetflix now works on Chrome for Linux, Amazon AFAIK has always worked.
- cheald 11y agoNetflix now works under Chrome (not Chromium) as of...October? But Amazon has broken as of a few months before that - they switched the DRM they use and the old solutions are no longer valid. As far as I know, there is no workable solution for Amazon video on Linux anymore. DRM-protected video in general is a giant pain in the ass that you don't really notice on the "blessed" platforms.
- vectorpush 11y agoI use this setup at work and I love it, the only thing I miss from my at-home linux setup is that I can't yank and paste directly to system clipboard with Windows. It's pretty sweet being able to yank in one buffer, flip over to another tmux window or pane and be able to paste seamlessly.
- cheald 11y agoYeah, I've just learned to use the Windows clipboard rather than buffers when I want to move stuff. Takes a bit of self-training, but it's not too bad now.
- iconjack 11y agoCan we please change the title to GitUp makes Git painless for OS X Users?