Same here Mark. Thanks for putting these words so nicely. I have also stopped using commercial social network like Twitter. People do not even know that their brains are being manipulated. And people who had nothing to do with Free Software and have not even read or written anything about Free Software are making slanderous comments about FSF and the movement in general. Pretty disgusting and I don't know where the west society is heading to. I am glad I don't live in the west. But left liberals are taking similar paths in this country too, so I guess it is not too long before we catch up with the rest of the world.
May be this is the easiest thing people can do?
What are some alternatives to Firefox on GNU/Linux?
Very much agree wit that sentiment to stop using social media, but you are not going to escape 'manipulation' or political views from that.
I find your remark on 'where society is heading to' very odd. You say you don't live in the west so might not have a full picture, but overall I wouldn't see any negative trend. Some things are sometimes taken to an extreme, but I would prefer excess caution around sexual harassment over, say, a culture which treats women as sub-human, as less than men, or as the property of men, as is sadly still the case in far too many countries.
Oh, he wants poor students who write free software in their free time and give it away to emulate DJB and also offer $500 for bugs others found in their software.
I have been working remotely for a while now. These are the things I learned.
- time difference matters. It is better if there is some overlap with at least some people in the team.
- "showing up" (via various communication channels) have more value at one of the places I worked than the actual work.
- I was consistently rated less compared to others because my interactions were only over video, once or twice a week and via chat channels and it could never make up for face-to-face communication. This is highly subjective. At another place, I never had such problems.
- Expect to add a lot of stress in your life (again subjective).
- Pair programming with colleagues over video/google-hangout can be extremely valuable.
- video calls mostly suck, especially if you have low upstream bandwidth (which was the case with me).
- make plans to travel and stay with your colleagues for a week or so, once in a few months.
- "everyone being remote" is better than one or two people alone being remote and the rest in a central office. That way, the company is "set up" for remote working and people take care to put everything online in a wiki etc.. Not so, with a centralized office with only a few people working remotely.
- It is also very easy to get burned out working more hours, especially if the other side is in an overlapping your day. It happened to me many times. This needs fixing at org level and should meet the expectations of everyone.
The addition of stress is under-represented when talking about working remotely. The more you have going on at home, the worse it is. You have to work out whether the "convenience" pays for the loss of clean separation from family life.
The family will claim to understand that you have to work, sometimes (often?) uninterrupted. But the perception, especially for children, is that you are there; just not participating.
This segues into to the other point I found pertinent - everyone being remote is definitely better. This is currently how I work, but I was previously a "minority" remote worker. Depending on the organisation, there is a whole political architecture that others navigate/recruit, but that you cannot access to the same degree. It doesn't matter how good you are, you can be undermined by people who resent advice/change/correction/omission/etc. This contributes its own stress.
Yes, totally agree with your observations. I am also hoping to eventually move into the "everyone is remote" model. Minority remote model just does not work for me. I consistently get rated less in performance appraisals despite doing more contributions to the project. This is also because I have to deal with a stupid manager...
I used nixos for a few weeks and then went back to Debian.
* I share the concern of the author on symlinks farm. It is scary! I would like it to be dealt with in the filesystem layer (Plan 9 had a snapshot based filesystem - fossil - years ago). Symlinks have all sorts of weird semantics on different Unix machines.
* Another of my gripe with nixos is that it makes Unix, a single user machine! Sure, packages need not be installed in a user-local way. I may be ignorant of other possibilities here.
* More care for licenses. I still use Debian because they really care for licenses. Last I looked, nixos was in no way close to Debian in terms of documenting the various copyrights and licenses of files pertaining to a package.
Otherwise, Nixos is a great idea and a huge step forward.
Regarding licenses, most (all?) packages in the official nixpkgs repo have license metadata, and you can set your configuration to forbid/allow proprietary packages (the "allowUnfree" option), or use a whitelist (e.g. forbid everything except Flash).
Guix is a GNU project, and doesn't allow proprietary packages in their collection at all.
Yes. But the amount of information in the debian/copyright file is a lot more than just one scalar flag. I think that level of detail on the licenses is extremely important.
I think I should have been clear. It does not make Unix single user machine but it is more useful for cases where a single user is the main user of a machine like the laptop user.
My reasoning was very simple. Nixos makes it easy to install packages on a per user basis. This would mean there is a lot of redundancy if another user also needs the same package. A snapshot/dedup filesystem will easily solve the problem.
Multi-user Nix systems use a "nix daemon", which user's commands send requests to ("please build this version of Firefox with this version of GCC, etc."); all of the results go in the main "nix store" (usually /nix/store).
Nix doesn't store duplicates; a hash is calculated, based on the inputs (source code, compilers, libraries, etc.) and if an output with that hash already exists, it will be used. If not, the configured binary caches will be queried, to see if a pre-built binary can be downloaded. If not, the inputs are fetched (following the same process) and the build is performed.
When a user installs a package, it goes into the system-global package store, and the user's symlinks are updated. When a second user installs the same package, they just get a symlink to the original. There isn't any duplication.
The Stanford/Coursera course on algorithms part 1 is a good resource for Big O. Knuth's "Concrete mathematics", 9th chapter (I think) has some good coverage on Big-O/Omega notation.
I have looked at Android code. It is awful. Now, I don't form opinions about Google engineers based just on that code.
I meant to say, generalizations don't always work well. They may have bad engineers. But they have great engineers too. Kent Dybvig and his team who wrote Chez Scheme works for Cisco. There are many others. Jonathan Rosenberg who wrote many Internet RFCs on fundamental protocols that run the Internet voice/video works for Cisco.
You just have to look at the API. From little details (wifiInfo.getSSID() returning either the quoted SSID, an unquoted string of hex characters the SSID consists of, the special string "<unknown ssid>" or "0x") to the overall architecture (needlessly convoluted lifecycle, 2D rendering architecture from 2000s, the whole intra-app Intent bullshit that causes people to find alternative ways of communicating between Activities within the same app ...)
For inter-app communication Intents are a pretty reasonable solution to a complex problem. But inside an app, I would just love to have constructor parameters for my activities. I make do with Intents, but I don't have type safety, I have to deal with partially constucted objects until I've read my Intent Parameters and any time I have to pass something that's not in the default types that a bundle can contain I have to build a Parcelable wrapper for it, or find some other convoluted solution. Overall I just feel like I'm working at the wrong level of abstraction.
I didn't say it is commendable work. SIP is what we have at the moment as a standard and is being used by a lot of products out there and it was written by a Cisco employee. That is all I said. I am not intimately familiar with SIP to comment on its pros and cons.
May be this is the easiest thing people can do?
What are some alternatives to Firefox on GNU/Linux?