CenturyLink's official position (according to a phone rep I spoke to one month ago) on Outlook 2016 is "we don't support using Outlook 2016 for mail." They apparently DO support 2013 and earlier though. Sure enough, the person I moved from 2013 to 2016 couldn't receive new mail anymore with no error messages whatsoever, which is how I ended up on the phone in the first place. I think "normies" ought to be pushed to Thunderbird; the learning curve is shallow, the integration plugins for Google Calendar and Contacts are a godsend for small businesses that need calendar/contact sharing, and the price is right. (The new "Correspondents" column needs to go away though.)
For Forbes, if you get the ad blocker blocker screen, just hit "back" and then click the Forbes link you tried to follow again. It'll go straight to the article.
Not really. If someone hands me a newspaper, I am free to cut it, draw on it, tape over it, or anything else I want. The control over the content ends when the HTML with the site content is sent to me. If I want to hand the HTML to someone else to tape over the ads with different ads before I read that content, that is completely within my rights, both in the physical and the digital versions of this analogy. They can paywall the content and they're sure to get paid before I download it, but if they send it to me for no cost then they've chosen to give the content away. Remember: not retrieving advertisement images from a server somewhere is not "theft." Once the content reaches the user's private network, the user has unlimited rights to do with it as they please, excluding any restrictions under copyright law which basically just means they can't redistribute the modifications unless the fair use doctrine applies.
What Brave does is no different than if someone picked up a copy of a newspaper and taped their own ads over the existing ads before handing the paper to you for perusal. A computer user can employ software to manipulate anything the computer downloads for private consumption as they wish. The companies offer up formatted pages (good old HTML and CSS) with advertisements in the content, then send the entire package to my computer. If I wish to then use a program to automatically replace certain portions of the downloaded content with other content, that's entirely my choice and you nor the NAA nor anyone else can do anything at all about it because I own the computer. The newspapers can refuse to give me the content in the first place if that is their wish. They can paywall it if they want to require money to obtain the content. Once they send me the HTML and CSS for the page, they are no longer in control of what I do with it for my own personal purposes. After all, I had to make the choice to install and use Brave on my computer to do this in the first place.
Now if this was a scenario where the newspaper site data streams were being hijacked by an ISP and having ads replaced, all the people complaining about it being some sort of deceptive trade practice or even outright theft would be absolutely correct. That is how the NAA is viewing this situation. That is not what is happening here.
That's all: this logo is ugly as shit. It doesn't even look like HP. It looks like a part of a postal bar code got stepped on. This minimalism thing is getting really out of hand.
It hides everything with a div called "veil" and it adds "hr-pinned" to all the items on the page, preventing you from removing the "veil" in the way and then being able to use the page. Just forbid wired.com in NoScript and it'll solve that problem easily.
In all these services, there should be an option that allows you to take 100% control of your data decryption. Gmail, for example, should have a choice where you can lock Gmail sort of like how an iPhone locks. The encryption key for the data is encrypted with your password like how LUKS does it. If you "password reset" you lose everything inside the account and start from scratch. Google can't decrypt the data without your password, so they can't hand it to the government either. I realize this isn't a perfect solution but it needs to happen for all major online services.
I use NoScript and ABP with EasyList + Adblock Warning Removal List and "Acceptable Ads" disabled. If you block scripts from googleadservices.com but turn off ABP on youtube.com, you'll just get the home page banner ad and the square sidebar ad but no video ads or overlay banners. In the worst case, I have a fancy Greasemonkey script that gives me direct access to the video streams so if they get cocky I can just skip the ads by clicking directly through to the underlying MP4.
I would think so, but IANAL either. The problem with monetization theft could easily be solved by Google holding the monetization back from both parties until all copyright dispute windows on YouTube expire, INCLUDING the one that opens immediately after a claim that grabs monetization is issued. Whoever is the "winner" after all dispute time limits are exhausted gets the monetization. Right now, if I were to make a copyright claim with monetization redirection on someone's video, I immediately start getting their money before they have a chance to react. Combined with no penalties for fraudulent claims and it's easy to see that such a system is practically begging for trolling; it's a treasure trove of free money with no consequences.
If you read the linked Google Groups thread, YTSpencer didn't make any actual commitments and didn't ever come back to respond to anyone. This reeks of a company trying to sweep a major publicity problem under the rug without taking any action. The fact that you can literally steal monetization with a copyright claim and the money isn't clawed back when the appeal process finds in favor of the video author means that there's no downside to "jacking" monetization with bogus claims en masse--which is exactly what's being referred to in the thread: an incident where "[Merlin] CDLTD" monetization-jacked as many "Damn Daniel" videos on YouTube as possible and YouTube/Google gladly raked over the bucks.
This is not news. Nothing has changed. There was some murmuring and hand-wringing from YouTube and the status quo resumed its march.
Don't use 127.0.0.1, use 0.0.0.0 instead. 127.0.0.1 directs the requests to localhost while 0.0.0.0 drops them immediately due to being invalid. Sometimes it matters, especially if you run an HTTP[S] server on the computer for whatever reason.
My printer is an HP LaserJet 4000. It's ancient. It still works 100% perfectly and it takes super-huge super-cheap toner cartridges. By telling Windows 7 that it's a LJ 4100 PCL6, it still works wonderfully. I didn't even try it on Windows 8.x but if you try to use it on Windows 10 with ANY HP LaserJet driver, guess what? All text comes out as black boxes. All of it. Thus Windows 10 is a no-go because it discards support for my ancient but fully functional network printer. I understand "removing legacy cruft" but tossing support for the LJ 4000 is just stupid. Tons of those printers still exist and it's not like the internal workings are even remotely complicated.
This whole "no support for older hardware" thing has been a massive pain; if an OS upgrade renders your perfectly workable peripheral unusable, I see that as a downgrade, and depending upon the particular piece of equipment it could be a very expensive one to replace. It made more sense when Vista was the first 64-bit Windows NT kernel to receive widespread "first-class" support and the 32-bit drivers didn't work, but at this point there is no excuse whatsoever for something that works on Vista 64-bit not having a driver that works on Win10 64-bit. Sometimes I wonder if Microsoft has an agreement with HP to force people to buy new printers and scanners through planned obsolescence.
This is a shred off-topic, but I've converted so many people to Thunderbird from Outlook that I'm losing count. When you add the Google calendar and contacts sync extensions and Lightning, you have a 100% free solution to the problem of calendar and contacts sync that also works with Android and iOS devices. Outlook 2013 does one-way read-only syncing of Google Calendar and that's fairly useless. If you move the Thunderbird data folder between machines, you move the entire configuration and all of the stored data that matters, including stored passwords and account configurations. Unless you're married to Exchange, Outlook is grossly inferior to Thunderbird in almost every way imaginable.
Exactly. With BI, people can leave abusive or unsuited jobs without fear of falling off a financial cliff, becoming homeless, etc. Plus, people who can't work a traditional job due to serious mental or physical difficulties and are already on disability get a more reliable base income so they can live with some degree of dignity and perhaps even contribute back to society in whatever small ways they can.
Giving a full basic income to offspring incentivizes reproduction. We'd need to be careful about rules regarding that. One of the major problems with existing welfare systems is that they effectively give people bonuses for cranking out babies and the world is already overpopulated without the help. Also, $500 a month for a single person (some people don't have a spouse and two kids, don'tcha know) won't even pay the rent. If the point is to prevent people from "falling off the cliff" then $500 is grossly insufficient, regardless of location.
C/C++ are slow to evolve. It looks like at least this one proposal to add the various rotation operators to C/C++ has been authored and it has lots of good information. Your working example of "SHL 3 OR SHR 29 = ROL 3" is obvious when you scribble it on paper: a left rotate is a left shift where the bits that get pushed off the left and "discarded" instead appear on the right in the same order they fell off, so the 32-bit number 10000000000000000000000000000000 -> ROL 3 -> 00000000000000000000000000000100. Picture an arrow going from the "fall off" side back around to the "shift in zeroes" side you're used to seeing with the << operator and it makes more sense.
As for how the compiler "just knows" that this specific construct should become a ROL/ROR instruction, it's not that the compiler has a "special IF" statement on the front-end, but rather has to do with how compilers convert source code into object code. When the compiler breaks down our rotation idiom, it sees it as a series of simpler distinct steps with anonymous temporary variables, and a built-in optimizer can recognize the rotation sequence from there. This is what the compiler sees (see three-address code) when it converts the expression '(x > 29)' into its component parts:
t1:= x << 3
t2:= x >> 29
t3:= t1 | t2
Even a simple peephole optimizer can easily spot this short sequence of fundamental operations (left shift + right shift, the shift amounts equal the width of the variable type, ORed together -> ROL) and convert it to something like:
t1:= x ROL 3
...which is extremely simple to convert to assembler as i.e. ROL 3, EAX. One more important thing about rotations: if you rotate by the width of the unsigned integer type you're working with, you'll get the exact same number, and for any integer X of given width W,
X ROL n == X ROR (W - n)
So ROL 3 and ROR 29 are identical operations when performed on a 32-bit wide integer. That's part of why the C idiom works: a shift is a "rotate" that throws away the bits that "fall off" and zeroes the bits that would be missing, so by ORing two exactly opposing shifts together, you are manually grafting the bits that fell off one side back onto the other side.
I'm completely fine with trolls as long as they're not trolling me very hard.;-) There is often a fine line between trolling and innocent asking of questions regarding something the asker isn't familiar with. Also, a lot of C programmers don't ever have to write code that uses bitwise rotation (for example, I'd be surprised if there were bitwise rotations in a text editor or a text processing program), so even if I got trolled the information may get someone else's mental gears cranking.
Sounds like you've got the gist of it. C only has a bitwise shift (where the end that the shift would "empty" is filled with zeroes for unsigned integers), not a bitwise rotate (ex. 00001011 rotated right by 2 becomes 11000010), so the closest thing to saying "bitwise rotate this" is using a set of expressions that would have the same behavior. Since a bitwise rotate is the same as splitting the binary number into two parts (of sizes determined by the desired rotation amount) you just have to create the two split numbers, then OR them back together. The Wikipedia example tries to be somewhat universally workable (using CHAR_BIT, sizeof(), etc. to make it work with virtually any unsigned integer type without modification) which is why it's a bit confusing. A simplified example:
If the value in a variable 'uint8_t x' is 10010011 and you want to bitwise rotate it right by 3 bits (to yield the result 01110010), you need to first derive the partial values [000]10010 and 011[00000], then OR them together.
The right-shift operator '>>3' will create the [000]10010 for us without any extra work.
We can generate the 011[00000] by doing a left shift '<<5' in the same way but with the reverse number of bits (calculated as BIT_WIDTH_OF_TYPE - left_shift_count to get 8 - 3 = 5).
Thus, 'x right-rotated by 3' for an 8-bit unsigned integer can be stated most simply (and inflexibly) in C as (x << 3) | (x >> 5), and the compiler will recognize the "two opposite shifts with a total shift of the variable type width ORed together" and emit a single bitwise rotate instruction (like 'r1 ROR r2') for the actual work rather than "load to r1; rotate r1; load to r2; rotate r2; r2 OR r1." Any unsigned integer can be rotated in the same way. Relevant x86 assembly: https://en.wikibooks.org/wiki/...
CenturyLink's official position (according to a phone rep I spoke to one month ago) on Outlook 2016 is "we don't support using Outlook 2016 for mail." They apparently DO support 2013 and earlier though. Sure enough, the person I moved from 2013 to 2016 couldn't receive new mail anymore with no error messages whatsoever, which is how I ended up on the phone in the first place. I think "normies" ought to be pushed to Thunderbird; the learning curve is shallow, the integration plugins for Google Calendar and Contacts are a godsend for small businesses that need calendar/contact sharing, and the price is right. (The new "Correspondents" column needs to go away though.)
For Forbes, if you get the ad blocker blocker screen, just hit "back" and then click the Forbes link you tried to follow again. It'll go straight to the article.
Not really. If someone hands me a newspaper, I am free to cut it, draw on it, tape over it, or anything else I want. The control over the content ends when the HTML with the site content is sent to me. If I want to hand the HTML to someone else to tape over the ads with different ads before I read that content, that is completely within my rights, both in the physical and the digital versions of this analogy. They can paywall the content and they're sure to get paid before I download it, but if they send it to me for no cost then they've chosen to give the content away. Remember: not retrieving advertisement images from a server somewhere is not "theft." Once the content reaches the user's private network, the user has unlimited rights to do with it as they please, excluding any restrictions under copyright law which basically just means they can't redistribute the modifications unless the fair use doctrine applies.
What Brave does is no different than if someone picked up a copy of a newspaper and taped their own ads over the existing ads before handing the paper to you for perusal. A computer user can employ software to manipulate anything the computer downloads for private consumption as they wish. The companies offer up formatted pages (good old HTML and CSS) with advertisements in the content, then send the entire package to my computer. If I wish to then use a program to automatically replace certain portions of the downloaded content with other content, that's entirely my choice and you nor the NAA nor anyone else can do anything at all about it because I own the computer. The newspapers can refuse to give me the content in the first place if that is their wish. They can paywall it if they want to require money to obtain the content. Once they send me the HTML and CSS for the page, they are no longer in control of what I do with it for my own personal purposes. After all, I had to make the choice to install and use Brave on my computer to do this in the first place.
Now if this was a scenario where the newspaper site data streams were being hijacked by an ISP and having ads replaced, all the people complaining about it being some sort of deceptive trade practice or even outright theft would be absolutely correct. That is how the NAA is viewing this situation. That is not what is happening here.
That's all: this logo is ugly as shit. It doesn't even look like HP. It looks like a part of a postal bar code got stepped on. This minimalism thing is getting really out of hand.
That was awesome. Wish I had mod points.
It hides everything with a div called "veil" and it adds "hr-pinned" to all the items on the page, preventing you from removing the "veil" in the way and then being able to use the page. Just forbid wired.com in NoScript and it'll solve that problem easily.
In all these services, there should be an option that allows you to take 100% control of your data decryption. Gmail, for example, should have a choice where you can lock Gmail sort of like how an iPhone locks. The encryption key for the data is encrypted with your password like how LUKS does it. If you "password reset" you lose everything inside the account and start from scratch. Google can't decrypt the data without your password, so they can't hand it to the government either. I realize this isn't a perfect solution but it needs to happen for all major online services.
I use NoScript and ABP with EasyList + Adblock Warning Removal List and "Acceptable Ads" disabled. If you block scripts from googleadservices.com but turn off ABP on youtube.com, you'll just get the home page banner ad and the square sidebar ad but no video ads or overlay banners. In the worst case, I have a fancy Greasemonkey script that gives me direct access to the video streams so if they get cocky I can just skip the ads by clicking directly through to the underlying MP4.
The notorious YouTube troll CDLTD did a pitiful excuse of an AMA on Reddit, it's worth looking at: https://www.reddit.com/r/IAmA/...
I would think so, but IANAL either. The problem with monetization theft could easily be solved by Google holding the monetization back from both parties until all copyright dispute windows on YouTube expire, INCLUDING the one that opens immediately after a claim that grabs monetization is issued. Whoever is the "winner" after all dispute time limits are exhausted gets the monetization. Right now, if I were to make a copyright claim with monetization redirection on someone's video, I immediately start getting their money before they have a chance to react. Combined with no penalties for fraudulent claims and it's easy to see that such a system is practically begging for trolling; it's a treasure trove of free money with no consequences.
If you read the linked Google Groups thread, YTSpencer didn't make any actual commitments and didn't ever come back to respond to anyone. This reeks of a company trying to sweep a major publicity problem under the rug without taking any action. The fact that you can literally steal monetization with a copyright claim and the money isn't clawed back when the appeal process finds in favor of the video author means that there's no downside to "jacking" monetization with bogus claims en masse--which is exactly what's being referred to in the thread: an incident where "[Merlin] CDLTD" monetization-jacked as many "Damn Daniel" videos on YouTube as possible and YouTube/Google gladly raked over the bucks.
This is not news. Nothing has changed. There was some murmuring and hand-wringing from YouTube and the status quo resumed its march.
Don't use 127.0.0.1, use 0.0.0.0 instead. 127.0.0.1 directs the requests to localhost while 0.0.0.0 drops them immediately due to being invalid. Sometimes it matters, especially if you run an HTTP[S] server on the computer for whatever reason.
Run services.msc
Find Windows Update
Change start type to "Disabled"
Fixed!
My printer is an HP LaserJet 4000. It's ancient. It still works 100% perfectly and it takes super-huge super-cheap toner cartridges. By telling Windows 7 that it's a LJ 4100 PCL6, it still works wonderfully. I didn't even try it on Windows 8.x but if you try to use it on Windows 10 with ANY HP LaserJet driver, guess what? All text comes out as black boxes. All of it. Thus Windows 10 is a no-go because it discards support for my ancient but fully functional network printer. I understand "removing legacy cruft" but tossing support for the LJ 4000 is just stupid. Tons of those printers still exist and it's not like the internal workings are even remotely complicated.
This whole "no support for older hardware" thing has been a massive pain; if an OS upgrade renders your perfectly workable peripheral unusable, I see that as a downgrade, and depending upon the particular piece of equipment it could be a very expensive one to replace. It made more sense when Vista was the first 64-bit Windows NT kernel to receive widespread "first-class" support and the 32-bit drivers didn't work, but at this point there is no excuse whatsoever for something that works on Vista 64-bit not having a driver that works on Win10 64-bit. Sometimes I wonder if Microsoft has an agreement with HP to force people to buy new printers and scanners through planned obsolescence.
This is a shred off-topic, but I've converted so many people to Thunderbird from Outlook that I'm losing count. When you add the Google calendar and contacts sync extensions and Lightning, you have a 100% free solution to the problem of calendar and contacts sync that also works with Android and iOS devices. Outlook 2013 does one-way read-only syncing of Google Calendar and that's fairly useless. If you move the Thunderbird data folder between machines, you move the entire configuration and all of the stored data that matters, including stored passwords and account configurations. Unless you're married to Exchange, Outlook is grossly inferior to Thunderbird in almost every way imaginable.
No, it is not as you describe. The ENTIRE POINT of "basic income" is that it is a flat amount given to all people, period.
Exactly. With BI, people can leave abusive or unsuited jobs without fear of falling off a financial cliff, becoming homeless, etc. Plus, people who can't work a traditional job due to serious mental or physical difficulties and are already on disability get a more reliable base income so they can live with some degree of dignity and perhaps even contribute back to society in whatever small ways they can.
Who's paying for the welfare programs that BI completely replaces? There's your answer.
Giving a full basic income to offspring incentivizes reproduction. We'd need to be careful about rules regarding that. One of the major problems with existing welfare systems is that they effectively give people bonuses for cranking out babies and the world is already overpopulated without the help. Also, $500 a month for a single person (some people don't have a spouse and two kids, don'tcha know) won't even pay the rent. If the point is to prevent people from "falling off the cliff" then $500 is grossly insufficient, regardless of location.
Windows 10 does not turn on disk encryption by default.
I'd +5 Funny that for the "freedom holes" alone. That's a damn good one.
C/C++ are slow to evolve. It looks like at least this one proposal to add the various rotation operators to C/C++ has been authored and it has lots of good information. Your working example of "SHL 3 OR SHR 29 = ROL 3" is obvious when you scribble it on paper: a left rotate is a left shift where the bits that get pushed off the left and "discarded" instead appear on the right in the same order they fell off, so the 32-bit number 10000000000000000000000000000000 -> ROL 3 -> 00000000000000000000000000000100. Picture an arrow going from the "fall off" side back around to the "shift in zeroes" side you're used to seeing with the << operator and it makes more sense.
:= x << 3 := x >> 29 := t1 | t2
:= x ROL 3
...which is extremely simple to convert to assembler as i.e. ROL 3, EAX. One more important thing about rotations: if you rotate by the width of the unsigned integer type you're working with, you'll get the exact same number, and for any integer X of given width W,
As for how the compiler "just knows" that this specific construct should become a ROL/ROR instruction, it's not that the compiler has a "special IF" statement on the front-end, but rather has to do with how compilers convert source code into object code. When the compiler breaks down our rotation idiom, it sees it as a series of simpler distinct steps with anonymous temporary variables, and a built-in optimizer can recognize the rotation sequence from there. This is what the compiler sees (see three-address code) when it converts the expression '(x > 29)' into its component parts:
t1
t2
t3
Even a simple peephole optimizer can easily spot this short sequence of fundamental operations (left shift + right shift, the shift amounts equal the width of the variable type, ORed together -> ROL) and convert it to something like:
t1
X ROL n == X ROR (W - n)
So ROL 3 and ROR 29 are identical operations when performed on a 32-bit wide integer. That's part of why the C idiom works: a shift is a "rotate" that throws away the bits that "fall off" and zeroes the bits that would be missing, so by ORing two exactly opposing shifts together, you are manually grafting the bits that fell off one side back onto the other side.
I'm completely fine with trolls as long as they're not trolling me very hard. ;-) There is often a fine line between trolling and innocent asking of questions regarding something the asker isn't familiar with. Also, a lot of C programmers don't ever have to write code that uses bitwise rotation (for example, I'd be surprised if there were bitwise rotations in a text editor or a text processing program), so even if I got trolled the information may get someone else's mental gears cranking.
Sounds like you've got the gist of it. C only has a bitwise shift (where the end that the shift would "empty" is filled with zeroes for unsigned integers), not a bitwise rotate (ex. 00001011 rotated right by 2 becomes 11000010), so the closest thing to saying "bitwise rotate this" is using a set of expressions that would have the same behavior. Since a bitwise rotate is the same as splitting the binary number into two parts (of sizes determined by the desired rotation amount) you just have to create the two split numbers, then OR them back together. The Wikipedia example tries to be somewhat universally workable (using CHAR_BIT, sizeof(), etc. to make it work with virtually any unsigned integer type without modification) which is why it's a bit confusing. A simplified example:
If the value in a variable 'uint8_t x' is 10010011 and you want to bitwise rotate it right by 3 bits (to yield the result 01110010), you need to first derive the partial values [000]10010 and 011[00000], then OR them together.
The right-shift operator '>>3' will create the [000]10010 for us without any extra work.
We can generate the 011[00000] by doing a left shift '<<5' in the same way but with the reverse number of bits (calculated as BIT_WIDTH_OF_TYPE - left_shift_count to get 8 - 3 = 5).
Thus, 'x right-rotated by 3' for an 8-bit unsigned integer can be stated most simply (and inflexibly) in C as (x << 3) | (x >> 5), and the compiler will recognize the "two opposite shifts with a total shift of the variable type width ORed together" and emit a single bitwise rotate instruction (like 'r1 ROR r2') for the actual work rather than "load to r1; rotate r1; load to r2; rotate r2; r2 OR r1." Any unsigned integer can be rotated in the same way. Relevant x86 assembly: https://en.wikibooks.org/wiki/...
Does that help?