I worked at a government contractor and they were deploying a custom Java app on tomcat in windows. Entire team was into manual deployment and I was the DevOps engineer hired to automate. I worked for a year fighting all kinds of pushbacks and ultimately got it done. When I was leaving, the you who was going to run it, said “ansible is too complicated, we don’t need it after you leave.”
And that ladies and gentlemen, is the most useless project I’ve worked on. Hey atleast I got paid I guess.
It is actually not like you peering through his window to see and note down what you rib one out.
It's more like when I have a massive orgy with lots of drugs at my place and I invited a bouncer, who is really good at statistics, to keep track of who is coming in and who are leaving immediately. The bouncer is also keeping track of what each person is doing, and letting me know periodically. And you both are invited for a night of drug fueled insane sex.
From my perspective, I am doing this to make sure everyone is having fun at my party. From the bouncer's perspective, he is there just to collect stats and let me know. He is not there to invade my privacy. I want to do that. I hired the bouncer.
The story is only outrage-inducing because you hired a well-known bouncer whose dayjob - of which everyone is aware - is being a security guard at a mall, observing everyone as they do their groceries and banking.
You are the site owner. The bouncer works for you.
Your users didn't hire the bouncer and don't want to be tracked. Secretly, the bouncer may use this data for nefarious purposes. You can't control how the bouncer will use the data.
Exactly, especially if the bouncer comes to work for you for free. Which is what Google and Facebook analytics platforms do: they are free because they benefit from the collected information in ways beyond your control.
My dads mantra used to be, “if it seems too good to be true, it probably is”. Now, I find I must consistently remind him- if it’s “free” (as in beer, not speech) you’re almost definitely paying for it.
Related, when consuming news, if the story seems to involve ridiculous levels of stupidity or malice, the truth is most likely much more mundane and much more reasonable.
I think that's the broader problem that the article is trying to get at. Pornography is just an example that makes it clearer to people that they should care about it.
I evaluated Qt for one of my personal side projects and ended up going to electron for the reasons you mentioned. Electron, while simple to use, feels slow to launch and run on someone with hardware that is a few years older.
Sultan is open for contribution. Feel free to put your thoughts in the Issues for features you'd like, and submit any Pull Requests for any issues that already exist.
Since I was creating a tool that works with Commands, I thought of the tag line "Command and Rule Your Shell", and I thought of different types of rulers (Kings, Shahs, Czars, Sultans, etc.). The Sultan name seemed to fit the best.
I was also trying to grow a Handlebar mustache at the time, and I wanted my logo to have a Handlebar Mustache, so that's why the logo has a Handlebar Mustache :-)
Representing each row as an object works, but it ends up having us write custom objects for different result types. When you run Sultan().ls('-l'), you will get back a list of Strings, which you can freely use in Python for your specific needs (like use a Regex to fetch date/times or file size). I felt like this offers developers the best flexibility, rather than trying to customize each output (which will definitely make the codebase very confusing)
You make a very good point. Sultan, at the end of the day, is a syntactic sugar for Subprocess. It has a couple of doo-dads for remote SSH execution, and things like that.
I originally wanted to have Sultan to do exactly what you're saying, but when I started diving into it, it seemed like a task that was very tough to solve. For example, grep's syntax remains similar between OS, but it has some API changes between versions. Trying to figure out what version has what syntax seems a bit daunting, and perhaps impossible to do with all commands.
The usecase that Sultan really caters to is the developer who writes their code on one OS, and keeps that code in the same OS across different environments. Not everyone wants their code to run across different OS and Distributions. I felt like it was a special case to do this, and decided to keep Sultan as generic as possible and let developers build the logic for different OS and Distributions on top of it.
The problem Sultan does solve is code maintainability, reusability within their own project (which assumes the project runs on 1 OS), and testability (unit and integration tests can be written, while you can't do that in Bash easily).
Yes it is. I looked at SH before writing Sultan. I was not very crazy about the syntax. I wanted the code to be easy to read, because one of my primary goals was the code maintainability, and that requires the code to be as readable as possible.
And that ladies and gentlemen, is the most useless project I’ve worked on. Hey atleast I got paid I guess.