When a friend of mine was in grad school, he helped a classmate prepare for her Test of English as a Foreign Language exam. They were going over some fine point about past tenses when, attempting to explain a mistake she had made, he said: If you had had "had" here, you would have had to have had "have" there. She screamed.
> One of the great things about accessibility is that it often doesn't just benefit people with disabilities.
I really love how Microsoft's design team has pushed this with their “Inclusive Design” concept[1] and highlighting how any sort of disability can be situational (holding a baby), temporary (broken arm), or permanent (missing arm) but we often only think of those in the last context despite there being orders of magnitude more people in the first two categories. Parenting is really good for showing this out since you get the need to be quiet, be able to do something using only one hand (or none), navigate sidewalks with a stroller, trying to do anything while sleep deprived, etc.
There's a great chart on page 42 (“Persona Spectrum”) of this PDF which I try to get every team I work on to go through which really gets people to think about what this means:
I have a 55" commercial LG "Wallpaper" OLED and it is "dumb" and gorgeous – and mounts flat to the wall at only 4mm thick! No 4K, no HDR, don't miss them a bit. No apps, no ads, no features at all really; one HDMI in, which I have connected to an Apple TV via a Denon HEOS AVR.
That is, the complex number exp(ix), which lies on the unit circle in the complex plane, has real component cos(x) and imaginary component sin(x). Consequently, the line from 0 to exp(ix) in the complex plane makes an angle of x radians with the real axis.
Any complex number can be written as an exponent like rexp(ix), where x is the angle and r is the distance from the origin in the complex plane. Using this understanding, we can interpret complex number multiplication as a rotation in the complex plane:
(a * exp(ix)) * (b * exp(iy)) = ab * exp(i (x+y))
Ok, the above was a digression, let's get to the trig identities. Let's derive the double angle formula. We can start with the point on the unit circle representing an angle of 2x, and use Euler's formula to simplify it one way:
exp(i*2x) = cos(2x) + i * sin(2x)
Ok, we can also use the fact that a^(bc) = (a^b)^c to write the same expression a different way, then FOIL it:
This works for most identities you want to derive, and there is a variation for things like cosh and sinh. This trick came in handy on calc 3 exams whenever I couldn't remember the silly trig identities that were required to perform integrals.
I can't agree more with stallman. It pisses me off to no end that I was forced to learn autodesk in school, only to graduate and realizing nobody uses it in the real world. So why did my school pay to teach software nobody uses? Might as well used FreeCAD to teach the concepts.
I read this article a while ago, and made the decision to ban chromebooks in my house. I scored a couple cheap laptops, threw Ubuntu MATE on them, and told my kids to have fun, break it, fix it, do anything they want. I'm gonna raise admins, while the school raises ignorant complacent users
I had no idea LLC's were so expensive elsewhere, here in Florida it's roughly $150 last I remember and you can do it online, I think most people I've met just do it all online.
During quarantine I designed a paper-based system for making QR codes by hand. Everything is very papery and bureaucratic, but also fun. Tables to look up bytes, long forms for calculating Reed-Solomon, and even transparent sheets of paper for comparing different masking patterns.
My goal is to film a video of generating a QR code without any computers or even calculators. It's possible, just might take two hours or so.
> Greetings. This is Alex Diacre here from G Suite Support. This has been flagged for my team and we’re looking into it. If any G Suite customer has trouble accessing their account they can always contact Google Cloud Support here: https://support.google.com/a/contact/admin_no_access (this is a special form to use when you cannot access any admin account)
Since everyone is taking about their experiences seeing workmates torrent, and no one is posting how this works -
Torrents are peer to peer. Bit torrent is a type of application. Bittorrent are not inclusive to torrents anymore.
Since everything is public, you can load several torrents, and watch for the handshake to occur and record the time/date and ip address.
Do it on a large enough scale and there you go.
There are many ways to secure against this, usually USA IP holders use USA cloud services or USA IP addresses. Some are public, but even if not, you can block the entire USA , so geoblocking by a simple tool such as: https://www.countryipblocks.net/acl.php
And you're pretty much in the clear. Not perfect, but pretty much.
A trailing "." represents the root of the DNS namespace like a leading "/" represents the root of the Linux (or Unix, etc.) filesystem.
The root has children like "com", "net", "uk", etc.
There are DNS records at the root level. Try this command:
host -t ANY .
Also, just as Linux searches PATH (in order) when you run a command, the DNS resolver searches a path when you look up a host. (Usually the resolver path is specified by directives in /etc/resolv.conf.) Just as Linux will skip this process if you specify a leading "/", the DNS resolver will skip that process if you specify a trailing ".".
It used to be pretty common to put your organization's domain in /etc/resolv.conf so that you can use the short version of a hostname. If your company is example.com and you have example.com in the DNS search path, you can type a command like "ping www", and it will do the same thing as "ping www.example.com". Most software still supports this, but it isn't used by that many people. (Some organizations don't put their domain in /etc/resolv.conf, and many users don't know they can abbreviate hostnames in this way.)
You would typically use the trailing dot if you want to be sure the DNS lookup doesn't use the search path and checks only against the root of the DNS namespace. You also use the trailing dot in some data files for DNS servers.
In many cases the trailing dot is not necessary, practically speaking, because the DNS resolver has special logic where if you give it a string that contains any dots (not just trailing), the search order is rearranged to try the root first instead of last. (In /etc/resolv.conf, this is controlled by the "ndots" option.)
So if you look up "www.example.com", it will check for the existence of "www.example.com." before it checks for "www.example.com.example.com." instead of the other way around. Which is good because only the first is likely to exist. If you look up "www", it will check for "www.example.com." before it checks for "www.", which again is a good heuristic because again the first is the one that likely exists.
“I do get a sense sometimes now among certain young people, and this is accelerated by social media, there is this sense sometimes of: ‘The way of me making change is to be as judgmental as possible about other people, and that’s enough.”
“Like, if I tweet or hashtag about how you didn’t do something right or used the wrong verb, then I can sit back and feel pretty good about myself, cause, ‘Man, you see how woke I was, I called you out.’”
“That’s not activism. That’s not bringing about change. If all you’re doing is casting stones, you’re probably not going to get that far. That’s easy to do.”
“Thanks for letting me know how you feel about this, I consider this a valuable opinion and think deeply on it”.
Then go ahead and do whatever you were going to do anyway, but at least let them know you’ve heard and acknowledged what they had to say. Sometimes folks just want to be acknowledged, that doesn’t seem like too much of a burden.
> Apparently, nothing was catching that exception, so the whole process was terminated.
Apposite moment perhaps to refer to the mind-boggling finding in "Simple Testing Can Prevent Most Critical Failures: An Analysis of Production Failures in Distributed Data-Intensive Systems" (Yuan et al, Usenix 2014 https://www.usenix.org/conference/osdi14/technical-sessions/...):
"almost all (92%) of the catastrophic system failures [in the real-world study] are the result of incorrect handling of non-fatal errors explicitly signaled in software"
I've always liked the idea of a language that combined syntax level support for functional reactive programming and symbolic programming. So you define z as x + y. Then you change the value of x and that change cascades across your program, like a spreadsheet almost.
From the description it's probably a Bacon cycle collector. The basic idea is that it checks to see whether reference counts for all objects in a subgraph of the heap are fully accounted for by other objects in that subgraph. If so, then it's a cycle, and you can delete one of the edges to destroy the cycle. Otherwise, one of the references must be coming from "outside" (typically, the stack) and so the objects cannot be safely destroyed. It's a neat algorithm because you don't have to write a stack scanner, which is one of the most annoying parts of a tracing GC to write.