Yes, the "pure" Unix tools are awful, GNU improved on their usability a lot. But they're still a simple command that does something.
Except Autotools. Those should burn in eternal damnation.
Yes, the "pure" Unix tools are awful, GNU improved on their usability a lot. But they're still a simple command that does something.
Except Autotools. Those should burn in eternal damnation.
In all seriousness, what's your preferred alternative? Seems like Autotools is a pain, but it gets the job done and is widely available. I haven't found a build system for C projects that is:
- Less complicated
- Available from default package repos so others who clone don't have to track down some esoteric package themselves
- Free software that runs standalone on a shell, not in an IDE or whatever
It also has better Windows support than autotools.
;) cmake is actually exactly what I had in mind when I wrote that. Maybe I haven't used it enough, but I find it basically just trades Makefile.am everywhere for CMakeLists.txt everywhere.
Autotools sucks. But everything else sucks more. There's a life lesson there, somewhere.
The script takes into account differences in operating systems, without including thousands of lines of weird little leftovers from 30 years ago when you needed to check if you were actually running on a 16-bit Data General machine or whatever (I'm looking at you, autoconf)
Autotools sucks big time, and what it does has been largely unnecessary since around the turn of the millenium [1]; but since it's used almost everywhere in infrastructure (often decades-old) software you have to deal with it.
If you pull a 927 and make a grand unified build system, you get something like CMake which sucks even more (its own build process takes longer than that of the software it's supposed to build, need to deal with C++, have fun with CMakeLists build errors and customizations, etc.).
I believe git's build system is just a bunch of (or a single) Makefile. That's what an optimal build (but not mine, unfortunately) looks like. Though, pure (POSIX) make is insufficient for anything non-trivial IMHO.
phk's famous rant on libtool:
Windows is OK for non-techies (being generous but there aren't that many real choices if you're e.g. Buying a computer from a store and don't know how to install an OS) but you really need a VM to do some types of work (though the Ubuntu subsystem is pretty awesome and now we have mobaxterm instead of just cmd.exe and putty).
Linux is fine for techies / power users but requires customization to get to the productivity levels that Mac gets to (IMO). Non-techies wouldn't be able to achieve the same thing or probably even install it in the first place.
You can buy a Mac in a box from a store and pay someone at the store to help you if it breaks or you don't understand how to do something. You can develop iOS apps on it. It also looks cool to people who don't know any better and people who do. Daft Punk and almost every other musician who works with computers on a stage uses Mac.
They all have their place and I run all 3 at home (Win desktop for gaming and some browsing, Linux laptop for personal programming and browsing + travel, Linux desktop for my home electronics lab bench mostly for embedded development, Mac laptop for work, FreeBSD for a NAS, MIPS Debian for router)
Yes, but it also has a slow, not customizable animation when changing desktops, uses arbitrary keybindings you can't remap easily and generally imposes lots of choices on its users without any way to opt out from them.
I was forced to switch from a very personalized Fedora/StumpWM setup to Mac OS and it was a disaster. For the first time in decades(!) I had to pay for external programs to customize things. And even with these, there are features I simply can't disable. It's been seriously harsh. It looks like the entire platform has lost all interest in customizability but, for me, customizability is one of the basic requirements for any tool.
Sorry but OH MY GOD. After 4 years of obsessive, hours-a-day usage of this macbook, I never realised I could do any of this. Literally just ctrl-K'd in Chrome's address bar. This is just next level. THANK YOU.
I worked in a Solaris shop that had gnu coreutils and packages installed everywhere with a <g> prefix, and another place running openbsd which had the same.
gecho, gcat, gln etc;
I'm pretty sure gnu coreutils can be built on any Unix-like OS.
- base64encode it
- paste the encoded text over ssh to a file
- base64decode it
- chmod +x the decoded file
- …
- profit
- Disable execution bit for all directories for home
- If the UNIX variant allows it, jail/contain home for each user session
- Punish users or their employer if a consulting firm severely that bypass IT regulations
/usr/bin/env $your_binary
So I wanted to ask: where such a level of security would be required? And also, what attacks does it defend from?
You'll probably go insane doing it
(Linux x86 compiling to Linux ARM/PPC/etc is doable and done quite frequently)
And the last time I came across one of those I compiled and used modern tools.
Because even 20 year old Linux versions had tab complete and a vi that worked with directional keys
I do occasionally ssh into boxes were I am a lame user without compilers installed.
(At least they have ssh and not telnet)
What you can sometimes do is pick an alternate shell or find some other editor someone 'left lying around' (even typing vim instead of vi can give you something different)
And sometimes "tab completion" works with \ or ESC or something similar, I don't remember exactly
Well I recently went into ones that only had ssh, but then files were also copied over plain FTP or NFS.
What was more amazing was people using X for accessing a terminal. You know, because that's how someone told to use it, so they just went with the flow.
This isn't windows, after all.
1 - You can put them there;
2 - You have enough quota;
3- $HOME isn't mounted as noexec;
4 - IT don't have scripts that purge $HOME from executables, which the corresponding penalties for the respective user when found.
I am not a UNIX newbie, although I favor Windows.
I know UNIX since Xenix, and used DG/UX, Aix, HP-UX, Solaris, OS X, FreeBSD and lots of GNU/Linux distributions starting with Slackware 2.0.
After a decade of using UNIX like systems, and Windows as well, while researching everything that came out of Xerox PARC, and being an Oberon user for a short while, I came to realize that Apple and Microsoft developer cultures are closer to Xerox dreams of how computing should look like, than UNIX where X Windows is just a manager of xterms.
Also I never was a big fan of C, even back on MS-DOS days, where I would rather use Turbo Pascal or Turbo C++.