text:
Index > Linux > 2038 problem (split-off thread)
I wonder how many people back when this was widespread (don't tell me it still is?) actually set their computer clock to 2038 and see how a black hole is formed? I was pretty disappointed myself as nothing terrible happened, computer didn't even freeze.
It's hard to explain these things to non-technical guy.
Linux systems are used in embedded components AND servers that keep on running until time_t runs out of bits. How do you fix your car's 32-bit GPS date anomaly? Burn it up? That includes LOTS of aviation components too!
You won't catch that bug on your PC right now if you changed the date because your kernel code / OS have probably already been updated / fixed / patched very quickly when the bug was first heard some years ago. But still there are many critical components out there implementing the old time data structure. One of such example is EXT3 filesystem which uses 32-bit signed timestamp. Last time I heard, there's no serious remedy for it even from the likes of UNIX.
Except it's not a "problem". That's what I meant. At worst, it's an inconvenience if you rely on accurate absolute timestamps. Look, even systems that rely on gradual timestamps won't suffer from it. That is, if you need only relative time passed since last "run" for instance, then it's no problem at all. That's because of the beauty of 2's complement number representation (which is what x86 and probably every architecture out there is using).
Let's use a simple example with an 8-bit number. It overflows after the value 255. Now let's say we run it when it's the value 250. Next time we run it, it overflowed and is back to 10.
So we perform the relative time change, which is 10-250. Discard the upper bits above 8 (because example is 8-bit number), and the result is 16, which is correct as if it never overflowed at all. Magic.
Of course that's a problem if it overflows twice before it even has the chance to update itself, but that means like waiting 80 years or whatever between running it again. Anyway, most systems don't rely on absolute timestamps, they rely on time deltas which don't mind overflow at all.
EXT3 for example will simply give the wrong timestamp for files. Not a huge dealbreaker and if worst comes to worst it's easily transferred to another filesystem. If this is a huge problem like the media hypes it up, then I presume a dead hard drive is even worse since you can't even read files from it anymore!
What you're suggesting is patches / fixes. I mentioned that in third paragraph. Everybody can provide a patch to such overflow problem. I am not talking about some patches or what you can do because that doesn't take away the facts that the component in question is STILL faulty. Patches and fixes are not cheap. It can translate to MASSIVE RECALLS.
And by the way, in Linux, everything is a FILE. Not necessarily a physical file or hard disks. You still don't get it. That includes your datagram, packets and streams. Would you accept a packet with date 00/00/00 at its header?
system error wrote:
...yeah? Did you set your clock to 13 Dec 1901 to find out? My system still works perfectly fine after being set to that date (which is the exact same as overflow on "broken" systems). How about try it for yourself and see how much of a "disaster" it really is? Alternatively grab an old Linux build/distro (without your so-called "patches") and place it in a VM and set it to 2038 or 13 Dec 1901 and see how much of a catastrophe happens (it won't).
There's no patches needed unless the application's purpose itself is manipulating dates precisely. (a calendar for example) Not sure why you're blowing this out of proportions, in fact, since you said this is a nasty problem for Fasm, and I see it as totally minor (wrong dates, in an assembler?).
That's why I likened it to the Y2K "doomsday" ridiculous crap by the media, "all computers will shut down and we'll enter dark ages" and other nonsense even if unpatched. No, what happens is just that the date is wrong. And that's a totally minor issue, a slight inconvenience, not nasty. They even compared it with Excel spreadsheets and other random stuff how all the YY representation will be broken. So what? Insignificance.
BTW you don't need a patch to subtract one number from another. sub always works the same way. It handles overflow perfectly fine by design. Only problem is if you read the date or compare it.
Hey, in the worst case just manually set your date back 10 years every 10 years, so your device is forever stuck in the 201x era, does it seem like such a big deal? Even for a calendar, it's a minor inconvenience since you'll have to manually adjust the date (i.e. you know you're in 204x, and your super old device shows 2017, so you know it's 2047, big deal?). Filesystem dates are totally irrelevant unless you use an app that uses them (a backup tool for example).
I don't know about you but I consider a device being literally broken with no ability to use it or restore it as "nasty" problem, not something like this.
...yeah? Did you set your clock to 1 January 1970 or 1901 to find out (depends on signed/unsigned app usage)? My system still works perfectly fine after being set to that date (which is the exact same as overflow). How about try it for yourself and see how much of a "disaster" it really is? Grab an old Linux build/distro (without your so-called "patches") and place it in a VM and set it to 2038 or 1 Jan 1970/1901 and see how much of a catastrophe happens (it won't).
of course it wont because the kernel code / lib have already been fixed for you. I think I have already answered it twice, three times including this one. You still have big problem in reading comprehensions. You're a complete waste of time.
Besides, you're not doing anything importance to others using your PC. So you can break your own date software and of course nobody is affected. Why should I bother about you breaking your own PC? Are you writing time-critical server apps? banking apps that would really affect others? Nope. Your imaginary library is for high-end AVX-only PCs, remember? LOL.
There's no patches needed. Not sure why you're blowing this out of proportions, in fact, since you said this is a nasty problem for Fasm, and I see it as totally minor (wrong dates, in an assembler?).
You clearly showing your big incompetency in understanding the overall picture. Here are two links of the patching work needed and it is still in progress. Where did you get the idea that this bug don't need patching? From your own imaginary libraries? Hahaha
https://www.phoronix.com/scan.php?page=news_item&px=Linux-4.7-More-Y2038-Work
https://www.neowin.net/news/torvalds-unhappy-with-sloppy-unix-millennium-bug-patches-for-linux-kernel
I didn't say it's nasty problem for FASM. It's from your own mouth. I did say "that nasty Y2038 problem". See, you're going emotional again
That's why I likened it to the Y2K "doomsday" ridiculous crap by the media, "all computers will shut down and we'll enter dark ages" and other nonsense even if unpatched. No, what happens is just that the date is wrong. And that's a totally minor issue, a slight inconvenience, not nasty.
I never said anything about Y2k, black hole, dark ages and stuff. They are all coming from your own craps.
BTW you don't need a patch to subtract one number from another. sub always works the same way. It handles overflow perfectly fine by design.
Here we are talking about kernel code / C library in C. time_t is a C material, not ASM. time_t has a TYPE. It's that type that is the main concern here. You can't simply modify x86 SUB instruction AND solve that TYPE problem because Linux kernel may exist on other architecture / CPUs, such as ATM/Banking machines, SPARC servers, IBM, GPS devices etc that may treat overflow very differently.
See, you fail to see the real problem here but you insist on telling people that you are a smart person. If I were your employer, I'd make sure you are unemployed because of your statement that all corporation servers running on 32-bit Linux don't need any Y2038 patches.
Your links don't prove your point, in fact you don't even understand them. Not surprised since you probably don't even code and just read hyped articles. Of course the kernel needs patching for it. What's your point? Since, you know, the kernel needs to give out accurate timestamps for applications who need it. It's obviously a problem, it's just that it is minor and of no consequence. You might be surprised, but minor problems get patched too!
If the kernel doesn't report the date properly after 2038, then it needs patching so it does, but that doesn't mean it is a nasty problem, get over it. There's millions of minor patched problems. This one is only famous because it is impossible to fix without changing the interface, and the media loves clueless morons hyping up to doomsday dates.
So it's not that it is a nasty problem, it's just hard to fix for legacy applications that won't get recompiled. You can't change the API without recompiling all the applications that depend on it.
For FASM of course, you said (or assumed) it doesn't support 64-bit timespec, so again show me what tragedy that causes. If you cared (before asking) so much of such minor problem then call the syscall manually. It's not even difficult. Because it's not nasty, it's totally minor and overblown.
So let me ask you one thing: If overflow is such an issue why don't you set the clock back by 10 years? The date will be wrong indeed, but is that a nasty problem for you? So stupid.
Here we are talking about kernel code / C library in C. time_t is a C material, not ASM.
I've no idea what this is supposed to mean. Clearly you think you're not talking to a person who sent many patches to GCC. So tell me, what the heck is "C material"? No seriously, give me a concrete definition.
Every type in GCC, when lowered, maps to a machine mode. This is regardless of the architecture it supports. Since your "C material" is compiled by a C++ compiler and GCC supports the most architectures out of any major compiler, then it must be doing it right.
Each machine mode (QI, HI, SI, DI) directly maps to accesses on x86 and other architectures -- QI = 1 byte, HI = 2 bytes, ... (for x86, there's even machines with differently-sized bytes, nothing changes, GCC compiles for them too)
This has to do with one and one thing only: whether the numbers are represented via 2s complement on the target machine or not. Nothing about your delusional "C material" thing. I specifically said about 2s complement though, so I'm not sure what your point even is? Telling me it won't work on the ultra-rate architecture without 2s complement is telling me something I've already stated.
time_t has a TYPE. It's that type that is the main concern here. You can't simply modify x86 SUB instruction AND solve that TYPE problem because Linux kernel may exist on other architecture / CPUs, such as ATM/Banking machines, SPARC servers, IBM, GPS devices etc that may treat overflow very differently.
Show me an architecture that doesn't use 2's complement.
Mind you, I specifically said that 2's complement has the magic of overflow handling builtin -- so clearly I already said architectures not using it are out of the question.
Not that I can find any relevant ones, though.
See, you fail to see the real problem here but you insist on telling people that you are a smart person.
Ever thought you're the only one who brings and thinks such shit up?
Ever thought other people just argue with... arguments instead? Stop reflecting your coding insecurity on others!
Might want to re-read posts a bit and realize who's trying to prove himself.
I think I already gave you the answer up there. But since you have problem with reading comprehensions, here's one, re-quoted (the second time):
Since you are not giving me any quality answer, then I took it that you're not writing any time and date critical apps. Just you and your imaginary library and your PC probably in your basement.
For financial, online transactions, and banking systems to calculate Net Present Value (NPV), ROI, Rate-of-Return, Payback Periods etc, getting the FUTURE date correct is vital so that you'll not lose billions or be sued by the billions.
So what's this have to do with you setting backdate of your own PC again? Nothing. It's the people who actually write time-critical systems that matters because their code affects billions of dollars.
This is where you're showing your incompetency in understanding this technical thingies. See, you fail AGAIN and AGAIN to see the effect of such date anomaly. Your utter craps precede your intelligence (if you have any).
So tell me, what the heck is "C material"? No seriously, give me a concrete definition.
Of course Captain Obvious, we are talking about C and its data structure. time_t is never a VisualBasic.Net material the last time I checked. You are funny when you're extremely mad. Hey, you snot is dripping too! Hahaha
Mind you, I specifically said that 2's complement has the magic of overflow handling builtin -- so clearly I already said architectures not using it are out of the question. blah blah blah
We're talking about TYPE you idiot. Signed int is a signed int. It is part of the definition of a time data structure as defined by some C standard. What you're suggesting is done at the application layers, not from the kernel point of understanding or kernel development types of patches. Learn the differences between the two and you can save yourself the embarrasements.
Critical app does not equal financial app. Scientific critical apps which use dates already use a different system, with much finer granularity (the unix time is limited to seconds of precision only), probably depending on the database software.
Furthermore I've already stated that it is only an issue for apps relying on dates. If some financial systems indeed ran into this issue, they've already solved it LONG ago by switching to 1) patched version of the OS 2) a different OS 3) different software. I mean, you run into a limitation of your current system, you see it can't do it, you replace it. It's simple.
Remind me what the fuck has all this to do with Fasm? Show me financial software written in Fasm suffering from this bug. Hey, you're the one who said you weren't talking about Fasm, yet you asked T.G. himself about it? Don't backtrack on your words.
Of course it's good to patch it if possible, but it doesn't change the fact it's not nasty, period.
So what's this have to do with you setting backdate of your own PC again? Nothing.
Indeed, and too bad I was referring to computers crashing hyped up by the media, in my very first post. (as in doomsday situation)
Dude, there is no such thing as a "signed type mode" in a machine with 2s complement. So they compile to literally the exact same code. There's nothing to patch because it is THE SAME CODE.
When an application gets compiled, it receives instructions based on the type, yes. However, those instructions are the EXACT SAME INSTRUCTIONS for most arithmetic instructions in 2s complement. There is literally no difference. That's the whole point of 2s complement, and again, why do I have to repeat myself?
If you change your stupid integer to unsigned from signed and do any basic arithmetic operation (except comparing them!), nothing will change in the generated code. Because there is no difference there, and we were talking abut subtraction.
This applies to any architecture using 2s complement. x86 happens to be one of them, like almost every single relevant architecture out there.
This is why I asked you to show me an architecture without 2s complement. You don't get it do you? In an architecture with 2s complement, there is literally no difference between signed and unsigned in basic arithmetic operations. Not a single bit of difference in instruction encodings. Your "type" doesn't matter.
Type matters when you use the following operators in C and it's when they generate different instructions (for a 2s complement architecture):
<, <=, >, >=, >>
And of course, division and long multiplication (long meaning you do a multiply of two values and use a result twice as big, which C doesn't do by default btw), but who the fuck divides/multiplies dates? What sense does it make to multiply them?
Case in point: for subtraction, whether your C type is signed or unsigned, the compiler will generate the exact same code. It is required to, by design of the architecture. So the code will only be different for subtraction if the architecture doesn't use 2s complement. Show me one.
It is not the machine binaries that is of concern here dumbob. As I told you before, it's about C's int type (as in C material!). It's how C's int parse or interpret it that counts because it is a TYPE (see, I have to repeat myself TWICE every time to make you understand all these technical things).
Of course in ASM point of view, 2147483647 + 1 = 2147483648
BUUUUTTT....
in 32-bit C's int TYPE, 2147483647 + 1 is interpreted as -2147483648
See the problem here, dumbob? If you don't, try running this simple C code;
/* gcc -m32 bug.c -s -o bug.exe */
;time_t     now;
struct tm  ts;
char       buf[100];
//fast forward constants
//time(&now);
//now = 0;           //epoch
now = 2147483647;  //max signed int
//now = -2147483648; //signed overflow
//now = 2147483648;   //attempt as unsigned
ts = *localtime(&now);
strftime(buf,sizeof(buf),"%a %Y-%m-%d ",&ts);
printf("%s\n",buf);
Of course I can provide my own patch but that works only for my code and my system for that particular problem above. Other that than, it will quickly hit a compatibility wall somewhere if I were to distribute it somewhere else. So whether you like it or not, you'll have to do it from the kernel and rely on the kernel developers to deal with the patches, hoping that everybody else update their kernel.
You're a complete waste of time. Go read a book or something.
That's not true. 2147483647 + 1 = 2147483648 in both asm and C, depending how you look at the value. Signedness is not in the value itself, it's in the instructions you use to operate on it. Comparison operators generate different instructions depending on the signedness -- you can of course typecast them when comparing if you want to force a certain operation. (a common trick in low level generic C++ code with templated types btw)
In your case, you're talking about printing its value, which has nothing to do with asm nor C, but with the function you're using. (in this case printf). In your case, it's because that's what printf was designed to use for time -- note that printf doesn't know anything about the signedness of the variable by itself, since it can't. It knows it by you explicitly telling it what type to interpret that variable as via the % format specifiers. (e.g. %d is signed int, %u is unsigned, and the time formats is based on signed properties). If you use %u on a signed value it will print it as unsigned.
However this has nothing to do with subtraction anyway. Of course you are right that it will overflow if you want to print absolute value -- that's an absolute fact, nobody disputed it man! I was referring to systems using "delta time" to know how much time elapsed (e.g. GPS, even though it doesn't rely on this system because it's too imprecise, but just as an example)
Go and subtract two dates 10 years apart or whatever other value (as long as it fits within the epoch). And then print that value (after subtraction). It doesn't matter what the dates are originally (one can be high the other overflown). You'll be amazed. They can be for example 2036-2026 = 10 years. Right?
But now try to give it as input 2036+10 and 2026+10. First one will overflow, and guess what? Even with signed overflow, the result is still correct which is 10 years after subtraction -- the printf function will never know it even overflowed in the first place. All it knows is that 10 years passed.
Case in point: all embedded systems that rely on delta time (i.e. how much time elapsed) will work perfectly fine with zero patches, because of the magic of 2s complement. (literally the same instructions and same code). Financial systems won't, but those systems have way bigger problems than just the stupid kernel reporting bad date -- they need databases to be able to store future dates as well, and they're not exactly "embedded" in my view.
When I think of embedded, I think of low-power devices. For a practical example, my DSLR camera has the wrong date because I didn't power it on for awhile and forgot to put batteries. Guess what? I didn't even bother to set it back, even if date is wrong, because it doesn't matter. Who cares of file timestamps? Especially since I convert them from RAW to jpeg or whatever when I transfer them and thus they will have new timestamps anyway.
Ergo my verdict is that it's a minor problem, because for those systems that it is indeed a problem (e.g. financial) it doesn't exist since it's been fixed for ages. (like you said they need to store future dates as well)
You're wrong. 2147483647 + 1 = 2147483648 in both asm and C, depending how you look at the value. Signedness is not in the value itself, it's in the instructions you use to operate on it.
Sign-ness is important in C's time function because ALL time-related C functions take only positive integers. The last two "now"s in the above code won't work. The system hangs on you for the obvious reasons.
In your case, you're talking about printing its value, which has nothing to do with asm nor C, but with the function you're using. (in this case printf). In your case, it's because that's what printf was designed to use for time.
NO. Not interested in the output. It's just a tool of proof. It's the "localtime()" function that is the concern here because the last two "now"s are negative integers. Not strftime and nor printf. You can disable both and still your code freezes for the last two "now"s due to inappropriate argument (negative integers) fed to localtime().
So yes, SIGN-NESS MATTERS in time/date critical library.
I'm not interested in addressing your extended craps.
The signedness of the type doesn't matter one bit to the function you pass it. Only its value, whether it came from unsigned, signed, or float even. The function doesn't even know what variable you passed it as, even less its type. Basic computer science for a statically typed language? wtf man
What it does is it treats that value as signed (or whatever), no matter what you pass it. You can pass it an unsigned value too. The "type" does not exist (beyond compile-time checks and warnings) as far as the function is concerned: all the function does is it treats it as signed a specific amount of bytes.
Heck you can even call the function from a totally different language (or even asm). There's no such thing as "type" in compiled code (which ultimately is what needs to get "patched" right?), only when checking compilation and when deciding what operations to use (signed or unsigned comparison operators, mul/divide and right shifts).
The function is already generated though. The "type" of the function parameters matter when compiling the function itself to know what instructions to generate, not when calling the function which is already compiled.
There's no such thing as "calling a function with a signed value". It's just "calling a function which INTERPRETS the integer value as signed". You pass it integers, it's up to the function's code to decide whether they are signed or unsigned. In this case, that function is printf and you control how to treat them with the % format specifiers. Of course other functions also accept signed values, but that's their own fault.
EDIT: nevermind, mixed up functions.
No, what the function does is it assumes that the pointed-to data is signed. Just like printf does. This has nothing to do with your type though. You can pass it unsigned value and it will still freak out if it's too large. Nothing to do with "C stuff" or "asm" or whatever. It's just the function -- you can write your damn own function to accept unsigned values if you want. That function isn't even special in terms of requiring kernel privileges.
However, like I said before, I was talking about the difference between two time periods -- time deltas. Pass that to localtime and it will never be "negative". Regardless if it overflowed before the subtraction.
Of course you are right that it won't be able to successfully print the absolute time, I never denied this, so why fixate on it? But "absolute time" is, in most cases, not needed and pointless. Only in record-keeping (financial transactions) but in that case, they likely use custom databases instead of relying on such functions.
BTW, I'm pretty sure the code doesn't freeze, even with invalid values, that would be very poor design and in fact make no sense at all. To "freeze" it would need special code to do so on purpose. That's retarded. (I mean localtime). If you're trying to exaggerate, then you just proved my point about the media bullshitting and hyping it to unreasonable levels, so thanks?
Instead, it will report the wrong date (1901 instead of 2039 or whatever), which is a minor problem, deal with it.
Look at this code:
sub eax, edx
You can call eax with -2147483639 (try it, that is 2147483647+10 so it overflowed by 10 since we assume signed) and edx with 2147483647, and guess what the result will be? 10. Where the fuck does signedness matter in subtraction?
And that's the instruction any compiler will generate regardless of the type's signedness.
The signedness of the type doesn't matter one bit to the function you pass it
So what's the output of the last two "now"s then? Why they freeze? Is it because of your incompetency in interpreting the simple facts that C's time functions take only positive integers of a signed value? Should I tell your employer about this lil secret? ;D
-2147483648 = 2147483648 in terms of 32-bit number representation. Its bit value is 0x80000000 -- literally nothing else (there's no "type" embedded in values).
localtime treats it as signed, so 0x80000000 is -2147483648 for it. Ever tried to pass it an unsigned 2147483648? Yeah, you get a "negative" output (same as -2147483648 since it's the exact same number), hence the type of what you pass does not matter, only what the function expects. All the function sees (literally!) is the bit value 0x80000000 -- it treats it as signed, but it doesn't know (or care) the type of what you passed it. If you pass it uint32_t of value 0x80000000, you get the same thing (negative output), even though uint32_t is unsigned and its number is definitely positive.
Whatever, I'm not interested in discussion basic things further especially about C/C++ in an unrelated thread that you clearly lack understanding of (if you're so confused about C's static typing, I'd hate you to even attempt to learn C++'s peculiarities like rvalue references and the like). This has nothing to do with this, anyway.
And btw, the only thing that is actually interesting is your "freeze" claim. Does it actually freeze on an unpatched system, like do you have some proof of that??!? I tried on a so-called "patched" system (as you claimed!) and setting dates to earlier than 1970 (which is negative, even if time64_t is used I believe?) and nothing happened. So it's your turn to prove that it actually freezes on "negative dates" on a "unpatched" system.
If not, you're hyping the bullshit up just like the media with freezes and crashes. Freezing would mean the application cannot handle dates earlier than 1970, which implies flawed application design (those dates are "negative" since 1970 is considered the centerpoint or "zero"). If you can't handle negative numbers while using a signed type, the application is trash.
I guess you'd make a great journalist with clickbait titles, though.
I mean, not even financial apps will "crash" or "freeze" on negative dates, they'd simply report the wrong date (which is a large problem there though), but that has more to do with the database's ability to store them than anything else.
If you ask me why I'm interested in your "freeze" claim, it's because that's exactly what I said in my first post with overblown bullshit from the media. So no, that's precisely what the topic was, you drifted way off topic with C "stuff", not me.
You don't have to tell me that. I've written them in code above. Did you really have to repeat that? Are you really that dumb to separate the idea of signed and unsigned integers? XD
I did not ask for you crappy advice on what's is machine binaries. You don't have to write that long to explain your own incompetency.
My test code was actually on Windows (hence the "bug.exe" output). It freezes on Windows and it shows incorrect date when compiled on Linux. In both cases, anything that goes beyond largest positive signed produce buggy results.
And this tm / time_t data structure doesn't necessarily mean "database" as per your pathetic definitions. This faulty data structure exists on nuclear missiles controllers, bullet train controllers, aviation / navigation devices and controllers etc. They exist where C exists and / or Linux kernel exists.
If you still can't understand this simple fact, I suggest you quit your programming job altogether because you're dangerously incompetent, and that incompetency + your big mouth may cost others a lot in not so distant future.
So no, that's precisely what the topic was, you drifted way off topic with C "stuff", not me.
Drifted off topic? This Y2038 bug is very C-specific, dumbob! OMG, does it have to be that obvious?
The Y2038 bug has nothing to do with C, unless you think only C has integer overflows. You're literally retarded. The entire thing is the very definition of signed integer overflow. See: https://en.wikipedia.org/wiki/Integer_overflow (with certain CPU flags you can even precisely detect when it happens, if you want that, of course). Just like an encrypted file has no meaning, only a collection of bits. What matters is the reader of those bits (the program, or "function" in this case). The reader is what gives a specific purpose to those bits and makes them "signed" or not (or decrypts them, whatever). By this, it is extremely obvious you have absolutely no idea about computer science and information theory in general. Stop parroting media bullshit you read without understanding it.
Prove that those systems will freeze when they have incorrect date.
Also, Windows? This is 1) Linux section 2) Unix time bug. Stop looking at half-assed implementations (and even in Windows it's highly doubtful it freezes, mine didn't freeze btw but I'm on Wine so... you're probably lying).
Keep parroting bullshit like how X and Y and other controllers depend on dates and not time deltas as I've said so many times before. (nuclear stuff even has passive safety, you just don't know anything). Of course there's many bugs with integer overflows and those can be a real problem. But for dates it's usually just the wrong date, big deal?
Integer overflow can be a serious problem. But this isn't just integer overflow. This is integer overflow on dates, and dates are (mostly) minor stuff. Get over it.
(read the Examples in the wiki, they show you that most affected by this don't use Unix time because they need more precision than just seconds, and they can be reset manually as a workaround, same as moving the clock back by 10 years for example; inaccurate dates are not a nasty problem)
The Y2038 bug has nothing to do with C
Integer overflow also occurs in field of medicine, finance, rocket science. It's too broad of a statement. We are talking about a kernel problem, which relies on C faulty data structure. This bug is also called Unix Millenium Bug
Nobody in this world would talk about this bug without mentioning C. Only incompetent idiots would talk about Java data structure when mentioning Y2038 bug.
Just like an encrypted file has no meaning, only a collection of bits. What matters is the reader of those bits (the program, or "function" in this case). The reader is what gives a specific purpose to those bits and makes them "signed" or not (or decrypts them, whatever). By this, it is extremely obvious you have absolutely no idea about computer science and information theory in general. Stop parroting media bullshit you read without understanding it.
Save this utter craps for your dog. Not interested in garbage.
My Windows (Win10 64-bit) system freezes. My Linux shows negative date. Which part of "don't feed negative values to time_t" that you didn't not understand?
Why would I lie? I am not the one with big incompetency issue, here.
Keep parroting bullshit like how X and Y and other controllers depend on dates and not time deltas as I've said so many times before. (nuclear stuff even has passive safety, you just don't know anything)
Dates are not minor stuff. Your daily compounded savings, with 20 year maturity, would be extended to 100 years, beyond EPOCH times, if YOU happened to be the programmer. I know I would not hire you if I was one of the potential employers.
You're technically incompetent. That's the conclusion.
Integer overflow also occurs in field of medicine, finance, rocket science.
Man, I'm done here, you always say such ridiculous shit it's hard to even take you seriously. The first few words of the wiki: In computer programming, an integer overflow occurs when an arithmetic operation [...]
There's no such thing as integer overflow in medicine since it doesn't even have integers (the fuck?) nor finance (it's only the computers it relies on that do, so yes, computer programming).
It's not too broad of a statement, you're just grasping at straws and don't understand a single thing about anything you say but parrot articles online and use buzzwords to sound cool, like "C structure" (lol) when you make absolutely zero sense since it has nothing whatsoever to do with any structure.
time_t is not even a structure, it's a fucking typedef, a type alias to a signed 32-bit integer in this case. You're delusional. Not to mention it has nothing whatsoever to do with C, at all, it's simply a 32-bit signed integer overflow, but you'd know that if you actually read and understood the link.
If you think about localtime, then you don't need that stupid function, because internally you store the 32-bit number or whatever in the database (yes, again that word, since I use words properly unlike you ) -- you operate on that number time_t or whatever, not on the retarded struct from localtime which is for display only just like printf. So localtime is irrelevant, only the get time function matters. If you do calculations with future dates (as you said with finance), then who stops you from converting the time_t to uint64_t and never overflow for any future dates? Zero change in the kernel required, until 2038 ofc -- databases don't store your retarded localtime struct, they need to be efficient and not even based on a local time (what if they get backed up to a different zone with a different timezone setting?). Databases keep records in finance, and they store an absolute universal time reference, like time_t, not bloated (and not absolute since it's local by definition) localtime.
Plus "negative date" shows why you lie (your words). 1970 is "zero" so anything negative is before 1970, so 1969 is a negative number? Since when? That's what time_t would represent. You now know how to spot a bad liar.
I'm not here to educate you, go read a book or something and follow your own advice, it seems you can't even read a simple wiki page.
I don't need wiki. All I did was to bitchslap you with a simple C code to show people your incompetency in appreciating the differences between signed and unsigned integer. How's your face right now? Still burning? Hahaha
I don't need wiki.
Of course you don't. You're a special specimen on the internet.
Oh, here's the wiki page for Year 2038 problem also known as "Unix Millennium Bug" by association (this is a literal phrase from the wiki page!). You called it that way, right? So it fits with what you're talking about.
https://en.wikipedia.org/wiki/Year_2038_problem#Vulnerable_systems
Here's a relevant paragraph with emphasis on mine:
Many transportation systems from flight to automobiles use embedded systems extensively. In automotive systems, this may include anti-lock braking system (ABS), electronic stability control (ESC/ESP), traction control (TCS) and automatic four-wheel drive; aircraft may use inertial guidance systems and GPS receivers. However this does not imply that all these systems will suffer from the bug. Many such systems will not require access to dates. For those that do, those systems which only track the difference between times/dates and not absolute times/dates will, by the nature of the calculation, not experience a problem. This is the case for automotive diagnostics based on legislative standards such as CARB (California Air Resources Board).
Time difference = delta = twos complement magic which I've been saying all along.
Notice how nowhere does it state any of your stupid "localtime" structures since only braindead monkeys would even think of that instead of time_t (but it does reference time_t multiple times).
Please kid, stop wasting people's time who know what they're talking about and embarrassing yourself in the process.
Literally everything I have said is on there (incl. the databases!), so stop deluding yourself. You're like a clown to any serious programmer. The sooner you accepts facts, the better for everyone including yourself (ignorance is NOT bliss, it's a disease, FYI)


text:
U.S. takes N. Korean provocations seriously: Kirby
Washington (US), November 29: The United States takes seriously the threats posed by North Korea's evolving military capabilities, a White House official said Monday.
John Kirby, National Security Council (NSC) coordinator for strategic communications, also reiterated that Pyongyang may conduct a nuclear test at any time.
"The man continues to advance military capabilities that continue to destabilize the region, not just the (Korean) peninsula but the region, and we are taking this seriously," Kirby told a White House press briefing, referring to North Korean leader Kim Jong-un.
"We have said that we believe Kim could conduct a nuclear test at any time," he added.
Seoul and Washington have said the North may have completed all preparations for what will be its seventh nuclear test. Pyongyang conducted its sixth and last nuclear test in September 2017.
North Korea's nuclear test, if conducted, will follow a record number of missile launches.
Pyongyang has fired 63 ballistic missiles this year, including 10 intercontinental ballistic missiles (ICBMs), which is 2.5 times more than its previous annual record of 25, according to U.S. Ambassador to the United Nations Linda Thomas-Greenfield.
Kirby highlighted the importance of U.S. alliances in the Indo-Pacific, while noting the country has already enhanced its intelligence gathering capabilities in the region.
"Five of our seven treaty alliances ... are in the Indo-Pacific, and we take them seriously because they put on us very significant security commitments to help with the defense of Japan and South Korea," he said.
"And we take that seriously, which means we got to make sure we are ready for the kinds of capabilities that he (Kim) clearly is so interested in continuing to pursue," Kirby added.

redpajama_set_name: RedPajamaCommonCrawl


A default judgment is what we get if we don't respond to a lawsuit within the time limit we are given.
If we were sued in Small Claims or District Court, then we have 14 days from the time we were served to respond.
If we were sued in Circuit Court, we have 30 days from the time we were served to respond.
If we don't, then the other side can get a default judgment against us.
This simply means that we didn't show up for our case.
Understand that this is a legitimate judgment.
A default judgment will go on your credit report.
It allows the other side to garnish your wages and bank account.
It can also allow the other side to seize your property and/or car.
The other side can do all of these bad things with a default judgment, just as they could with any other judgment.
Bottom line is you must respond to the lawsuit in time or you will get a default judgment.
We have to take it seriously.
However, 5-10 years later, the judgment doubles or triples from the original amount which can be a real problem. All that interest adds up.
And maybe you have a new job or you inherit money or you pay off other debts and now have equity in your house — that judgment still stalks you through life. It just gets bigger and bigger as it waits for you to have something it can take.
So my suggestion is don't let a default judgment happen. It is one thing if you lose at trial — but don't lose because you did nothing. If you go to trial, you could lose but you can also win. If you do nothing, you will always lose.


If you are ever wanting to visit Shipra Mall in Ghaziabad city, then you might know that it is a popular tourist spot. The best thing about Ghaziabad is that it has a lot of tourist attractions.The best tourist attractions in Ghaziabad are shipra mall, isbt anand vihar, and kaushambi metro station apart from Shipra Mall.Famous localities around Shipra Mall are Surya Nagar, Raj Nagar, and Indirapuram. These places are among the best places to go in Ghaziabad.If you are looking for stay options near Shipra Mall, then Apple Tree By Magirics, Radisson Blu Kaushambi Delhi NCR, and Hotel Ace Manor are some of the great options to stay at.
There are other great hotels near Shipra Mall, which you may select according to your budget.The top 5-star hotels in Ghaziabad that are nearby Shipra Mall are, Radisson Blu Kaushambi Delhi NCR. These hotels offer you with the best amenities like Wifi, Bar, and Room service.But, if you are looking for some cheaper hotels, then you should check Hotel Krishna Sagar, Hotel Ace Manor, and Hotel Samrat Kaushambi.
If you are looking to book accommodation around Shipra Mall, then you are at the right place. Cleartrip will help you plan your trip with just a few clicks. It has easy navigation and helps you to book hotels, flights, and everything that too according to your budget.
Traveling to Shipra Mallis easy as there are many transport facilities available. You may reach the nearest railway station, Ghaziabad. Cleartrip makes your trip hassle-free with its simple interface.


Danielle Carragher, DANI, is a folk musician and conflict transformation facilitator. Her sound is inspired by the Irish traditional melodies she was raised with, her song writing narrative delves into the Celtic mythic imagination.
DANI is this year's Cathedral Quarter Arts Festival Artist in Residence and will be releasing new material in the summer of 2019 based on her collaboration with Indonesian percussionists KunoKini.


text:
Islamic terrorism update: German and Austrian plots, Saudi donors and Pakistani inaction against Al-Qaeda, 3rd Bin Laden's tape announced and 15-year-old trained suicide bomber
Posted in Al-Qaeda, Algeria, Austria, Germany, Pakistan, protect the children, Saudi Arabia, terrorism, USA, war on terrorism on September 13, 2007| 3 Comments »
I have been writing about the German Al-Qaeda plot for some days now. Militant Islam Monitor.org has a magnificent summary about some other aspects which are terribly significant about what happened. Here is an excerpt, below is the link.
Operation Alberich began last October, when the US National Security Agency, the NSA, began intercepting suspicious emails between Germany and Pakistan. It ended last week in the central German Sauerland region, with the arrests of two German converts to Islam, Fritz Gelowicz, 28, the son of a southern German doctor, and 22-year-old Daniel S., who had learned how to handle weapons during his military service in the western German city of Saarlouis. His neighbors in nearby Saarbrücken had noticed that he prayed to Allah "often and very loudly." The third man arrested in the sting was Adem Y., a 28-year-old Turkish national. The trio was caught in the act of mixing chemical ingredients to make explosives at a vacation house in the mountainous Sauerland region.
When they searched the house, German investigators found military detonators from Syria that a courier had smuggled into Germany, as well as 60 liters of hydrogen peroxide. The materials were apparently intended for use in three car bombs that the group may have planned to detonate in front of a US military base in Germany, a nightclub or possibly a major airport. When troops from the GSG 9 elite commando unit stormed the house last Tuesday, the pungent stench of chemicals was already in the air. According to investigators, what the men were planning could have been one of the bloodiest attacks in European postwar history — worse than London or Madrid. In addition to the three terror suspects, German authorities are investigating more than 45 people.
Since the conversation with Bush during the G-8 summit, the Chancellor knew that the diabolic plot not only threatened people's lives, but that if US soldiers were killed in Germany, it would endanger the trans-Atlantic relations that were so important to her. America feared a new spectacular attack from a resurgent al-Qaida — possibly even a second Sept. 11. Another attack against America planned on German soil had to be prevented.
These experiences and fears explain why Operation Alberich was conducted from both Berlin and Washington, with a joint CIA and German task force set up in Berlin. US Secretary of Homeland Security Michael Chertoff told SPIEGEL last week that cooperation between the two countries was "the closest it's ever been."
But from the US perspective the German investigation was also a trial by fire. American authorities kept ramping up the pressure on the Germans, with both CIA Director Michael V. Hayden and US Ambassador William R. Timken meeting with authorities in Berlin. In early June Chertoff traveled to German Interior Minister Wolfgang Schäuble's hometown of Gengenbach and over dinner urged him to do everything he could to prevent a possible attack. "We care," Schäuble assured him.
Operation Alberich :How the CIA helped foil the German terror plot – 45 suspects still being sought – Militant Islam Monitor – Militant Islam Monitor
Read it all…
Austria arrests three in latest Islamist Terror Plot in Europe.
Austrian Interior Minister Günther Platter said on Wednesday, Sept. 12, that the trio suspected of producing the video had confessed to having links to al Qaeda. The video demanded German and Austrian soldiers leave Afghanistan.
The three, however, had not established an independent terrorist cell, and at no time was Austria directly in danger, he added.
"Austria was not under threat of an attack at any time," Platter told a news conference. "We could determine that based on the actions of the three."
Video relates to Afghanistan mission
Bildunterschrift: Großansicht des Bildes mit der Bildunterschrift: Austrian Interior Minister Güther Platter said there were no concrete threats against Austria
The three, who were under covert police surveillance for months, were arrested by anti-terror forces in Vienna. All of them are second-generation Austrian citizens with Arab origins. They include a 20-year-old man, his 21-year-old wife and another man of 26.
The online video, aired in March this year, showed a masked speaker urging Austria and Germany to cease their support of the United States in Afghanistan.
Of course, US authorities are concerned:
During an interview yesterday with ABC's "Good Morning America," National Intelligence Director Mike McConnell stated that U.S. authorities are concerned about "sleeper cells" of Islamic terrorists inside the United States and admitted that since 9/11, several plots against the United States have been thwarted. "We're safer but we're not safe," stated McConnell about the current threat environment.
[…] This and other non-governmental web sites have been recently urged by intelligence agencies to alert the public to report any instance of suspicious activity that including individuals taking video, photographing, or sketching various locations, including but not limited to federal buildings, law enforcement locations, areas of critical infrastructure such as subway and train stations, dams, bridges, airports, railways, power facilities, military bases and recruiting locations, and sea ports.
In this climate, it's normal that there are people writing some theories about what Al-Qaeda is going to do now. The other day I linked to an article in The Midnight Sun, in which they consider the probability of a nuclear attack in US soil.
Yesterday I found in Hyscience and Noisy Room.Net another theory: Could US (and the rest of Europe…) suffer an attack like Beslan?
Glenn Beck is running a series on CNN called "The Perfect Day," in which Glenn describes a plan that the DHS, FBI, and CIA have been following and for the most part sitting on for some time. Apparently, these agencies have discovered several bits of evidence that point to the possibility that a plan for a Beslan type assault on schools in America is very real, so real that it is in motion as we speak.
[…] Beslan was a first attempt. There are aspects of the assault on the Russian School that have heretofore not been revealed to the public. First and foremost, the assailants were not Chechens as have been described, there were several nationalities there, including Pakistanis, Taliban Afghans, and others. Secondly, All the female children were raped and tortured before being killed. Beslan was intended to inflame the Russians into committing retaliatory attacks on muslims of all stripes.
Continue reading. The link contains a disturbing video about what happened in Beslan. WARNING: IMAGES DISTURBING. THE VIDEO WAS FILMED OUTSIDE THE SCHOOL.
Noisy Room.Net has more.
From my point of view -and I am no expert-, I really believe that all measures must be taken to prevent such things, though I also believe that if there are published reports that mention it, the terrorists may (not must) change strategies, because this one has been uncovered. If a terrorist plot is clear, then it's no plot.
Anyway, it's interesting this information is released to have more information about how they act. Just to be prepared…
Al-Qaeda's Saudi donors are still not pursued by Saudi authorities:
Despite six years of promises, U.S. officials say Saudi Arabia continues to look the other way at wealthy individuals identified as sending millions of dollars to al Qaeda.
"If I could somehow snap my fingers and cut off the funding from one country, it would be Saudi Arabia," Stuart Levey, the under secretary of the Treasury in charge of tracking terror financing, told ABC News.
Despite some efforts as a U.S. ally in the war on terror, Levey says Saudi Arabia has dropped the ball. Not one person identified by the United States and the United Nations as a terror financier has been prosecuted by the Saudis, Levey says.
"When the evidence is clear that these individuals have funded terrorist organizations, and knowingly done so, then that should be prosecuted and treated as real terrorism because it is," Levey says.
Among those on the donor list, according to U.S. officials, is Yasin al Qadi, a wealthy businessman named on both the U.S. and U.N. lists of al Qaeda financiers one month after the 9/11 attacks.
Al Qadi, who has repeatedly denied the allegations, remains free, still a prominent figure in Saudi Arabia.
Al Qadi's London-based attorney, Guy Martin of Carter-Ruck law firm, said the United States has never produced any evidence in support of the allegations against his client.
The best thing in that link is when the Al-Qadi's attorney – – says his client is in a "financial Guantanamo". Can they please change the motto?
But Pakistan is not trusted either:
U.S. officials say they are equally frustrated with what they call the empty promises of Pakistan to go after al Qaeda's sanctuaries in their country.
Pakistan says it is willing to take action if the U.S. provides details.
"If they had specific information, they should share it with us, and we would go after them," Pakistani Ambassador to the U.N. Munir Akram told ABC News.
When asked whether the U.S. can trust his country, Ambassador Akram said, "Well, if the U.S. doesn't trust Pakistan, how can Pakistan be an ally of the U.S.?"
A question echoed by many in the U.S.
With fresh funds and a safe haven, al Qaeda has been able to recruit and train a new class of terrorists as well as send out a stream of new propaganda tapes.
After the 1st and the 2nd tape, Al-Qaeda (this time without Bin Laden, I wonder why… Must be his dyed beard was not at all fashionable… ) is going to release another tape .
Al-Qaeda will release a third video to mark the sixth anniversary of the 9/11 terrorist attacks, according to postings on Islamist websites on the Internet on Wednesday.
The websites said that the video will be entitled, "The two expeditions to New York and Washington, causes and motives", and is expected to be a documentary which will explain the reasons why the terrorist group carried out the attacks on 11 September 2001 in the United States that killed close to 3,000 people.
Other reports, quoting US monitoring groups, say that the new video will will show Al-Qaeda's chief in Afghanistan, Mustafa Abu Al-Yazid, also known as Sheikh Said.
But in Pakistan, Osama Bin Laden is more popular than Musharraf! Now I understand why Pakistan should not be trusted. Remember they have nukes!!
"We have conducted 23 polls all over the Muslim world, and this is the most disturbing one we have conducted," said Ken Ballen, the group's head. "Pakistan is the one Muslim nation that has nuclear weapons, and the people who want to use them against us — like the Taliban and al Qaeda — are more popular there than our allies like Musharraf."
Well, Musharraf is not Bin Laden, but he is not my idol either…
Al-Qaeda in Algeria: accused of recruiting teenage bombers (speaking about children abuse… )
Al-Qaeda has been accused of recruiting 40 teenage youths in Algeria for suicide attacks in Iraq.
According to a report in the Algerian newspaper, al-Khabar, the youths were being trained to become 'little Zarqawis'.
It said one 15-year-old boy who had joined the group at the beginning of April was one of two bombers blown up in last week's suicide bombing in Dellys.
Where is the international outrage here? I repeat: ONE OF THE SUICIDE TERRORISTS WAS A BOY AGED 15-YEARS-OLD, TRAINED TO BE A LITTLE AL-ZARQAWI.
Putin threatens Czechs over US missile shield. Putin wants POland and Czech Republic to wait for 2008 because he does not exclude "that a new administration in the United States will re-evaluate the current administration's decisions on missile defence".
Russia tests the "mother of all bombs" (video inside) and announces it is environmentally friendly.
Ahmadine-jihad pushes peace for all, except Israel. Of course, it's logical… from his point of view…
Killed 45 Talibans in Afghanistan and 30 in Pakistan.


You are the type of person who finds joy in the little things. You don't need much to be happy.
For you, snow is a gift all on its own. Just being out in the snow (or even close to snow) is enough for you.
You are very engaged with the world, and you experience everything you love fully. You can easily picture how it feels when it snows.
You are up for a snowy adventure if that's what snow brings. But you're also content to sit by the window and watch it snow.
This is one of the results from the quiz, What Should You Do With Snow?
I have long said the best way to experience snow is in a snow globe, or a picture. That really hasn't changed.
I'm not having much luck with jobs lately..
1. I couldn't concentrate in the Orange Juice factory.
2. I wasn't Suited to be a Taylor.
3. The Muffler Factory was just Exhausting.
4. I couldn't Cut it as a Barber.
5. I didn't have the Patience to be a Doctor.
6. The Paper shop Folded.
7. The Pool maintenance was too Draining.
8. I got Fired from the Cannon factory.
9. And I just didn't see any Future as a Historian.
Can you believe next weekend is February already?!
* Keep your fences horse-high, pig-tight & bull-strong.
* Keep skunks & bankers & lawyers at a distance.
* Don't corner something that would normally run from you.
* It doesn't take a very big person to carry a grudge.
* Most of the stuff people worry about is never gonna happen anyway.
* Sometimes you get, & sometimes you get got.
* Don't fix it if it ain't broke.
* Good judgment comes from experience, & a lot of that comes from bad judgment.


text:
James Mountain Inhofe (1934. november 17. –) amerikai politikus, Oklahoma állam szenátora 1994 óta. A Republikánus Párt tagja, 1987 és 1994 között Oklahoma 1. választókerületének képviselője volt, illetve Tulsa polgármestere volt 1978-tól 1984-ig.

Inhofe tagadja a globális felmelegedést, támogatja az azonos neműek házasságának betiltását, illetve támogatná, hogy az Egyesült Államok hivatalos nyelve az angol legyen. Támogatója a Polisario Front mozgalomnak.

2018-ban, miközben John McCain rákos megbetegedéssel küzdött, elnöke lett a Fegyveres erők bizottságának a Szenátusban, amely pozíciót véglegesen is megszerezte a republikánus szenátor halála után.

Választási eredmények

Képviselőház

Szenátus

Források

1934-ben született személyek
Amerikai republikánus politikusok
Oklahoma állam szenátorai
Élő személyek

redpajama_set_name: RedPajamaWikipedia


text:
making sense of the news one week at a time
Misunderstood Things: 10-9-2017
This week: gun deaths and tax simplification.
I. Gun deaths.
What's misunderstood about them: Victims of mass shootings are not the typical gun deaths.
What more people should know: If you're quoting gun-death totals, you're mostly talking about suicides, domestic violence, turf battles between gangs, and arguments that spin out of control — not Las Vegas type massacres.
The United States has more guns (1.12 guns per resident, nearly twice as many as the next highest countries — which are Serbia and Yemen, not nations we usually compare ourselves to) and more gun deaths (averaging 33,367 per year from 1999-2015) than any other country in the world. We also have more spectacular mass shootings (like the recent Las Vegas massacre) than any other country.
Mass shootings make headlines and start us wondering why our country is this way. They also make us afraid in ways that other gun deaths don't. I know I have been in crowds that gathered in urban areas near tall buildings, like the country music festival in Las Vegas. What if someone had started shooting from above? What could I have done?
But as so often happens, the spectacular event that focuses our fears is very far from the typical event captured by our statistics. The majority of gun deaths, for example, are actually suicides (21,175 in 2013). Gun homicides average a little over 12,000 per year.
Of the homicides, a large number are domestic violence or some other family dispute. (That's why detectives on TV always check the spouse's alibi first.) Some escalate from arguments between acquaintances, some are gang-related, and others are incidental to armed robbery or some other crime.
Mass-shooting victims are simultaneously a horrifyingly large number of people and a comparatively small percentage of fatal shootings. The Washington Post went back half a century and used a tighter-than-usual definition to collect mass shootings since: They counted "four or more people were killed by a lone shooter (or two shooters in three cases)" and not "gang killings, shootings that began as other crimes such as robberies, and killings that involved only the shooter's family." That gave them 131 events and 948 deaths since the University of Texas sniper in 1966.
Using a looser definition (four-or-more injured or killed, including the types of shootings the WaPo filtered out) The New York Times reported 585 people killed in 521 incidents in about a year and a third — still less than 1.5% of the gun deaths during that period.
So: 58 people killed in an hour or so by a single shooter in Las Vegas, and 33,000 gun deaths year after year. They're both evidence that the United States has a sick relationship with guns, but they're very different facts that point to very different problems. Short of drastically lowering the number of guns, solutions to one of those problems isn't likely to do much about the other.
II. Tax simplification
What's misunderstood about it: What makes figuring your income tax so complicated.
What more people should know: Reducing the number of tax brackets doesn't simplify the process in the slightest. Whether the IRS defines one bracket or a hundred, filling out your 1040 will require the same amount of time and effort.
No one knows exactly how much time taxpayers spend on IRS forms, but estimates run into the billions of hours each year. In addition, we spend billions of dollars paying professionals to compute our taxes for us. So it's not surprising that every tax reform is sold to the voters as a simplification, sometimes promising that you'll be able to send the IRS just a postcard rather than a heavy envelope full of filled-out forms.
Invariably, someone claims that taxes would be simpler if they were flatter, i.e., if there weren't different tax brackets taxed at different rates. While the current Trump administration proposal doesn't go all the way to a flat tax (one bracket), it does reduce the number of brackets from seven to three. But if you're hoping that change will make April 15 less stressful, you're out of luck.
The easiest way to see the problem is to get out last year's 1040 (or a blank 1040 form) and ask yourself: Where did the number of brackets make any difference? Well, not on the first page, which is all about your sources of income, not how it's taxed. In fact, the form is all about income until you eventually arrive at Line 43: Taxable income.
Right under that is Line 44: Tax. What magic happened between 43 and 44? If you're like most people, you took the number on Line 43 and used it to look up how much tax you owe on the Tax Tables in the Instructions. That's the only place where the number of brackets mattered. Changing the number of brackets, or even the rates that each bracket pays, changes the numbers in the Tax Tables. That's it.
Taxes are complicated for two reasons, neither of which has anything to do with whether the tax rates are flat or progressive (i.e., applying higher tax rates as you make more and more money).
Different kinds of income are taxed differently, so you have to separately keep track of wages, dividends (qualified and unqualified), capital gains (long-term and short), interest (taxable and non-taxable), and do different things with each of them. One of the trickier parts of my tax return isn't sent to the IRS at all; it's the Qualified Dividends and Capital Gains Worksheet.*
The government chooses to subsidize certain pro-social activities (buying a house, giving to charity, saving for retirement, etc.) through the tax code (as deductions), rather than by direct subsidies. This method favors rich people, who — since they're paying a higher rate — get more money back from their deduction than you do. Every deduction you claim has its own form, where you establish that you really did the thing that you're claiming a deduction for.
So eliminating deductions and taxing all forms of income the same way (not all levels of income at the same rate) really would cut the amount of time you spend filling out your taxes (even if it's just the time spent understanding what tax-exempt interest is and realizing you didn't receive any). The Trump proposal claims to be eliminating deductions, but hasn't specified any yet, so we don't know yet if it will be simpler in any material way.
Flattening the tax rates doesn't simplify anything; it just redistributes the tax burden away from the rich and onto the middle class. (That's the point of it, but they can't exactly say so in public.)
So why don't tax-reform proposals focus on these actual time-savers? That's easy: (1) eliminating deductions doesn't sound as good because it's taking something away from you, and (2) rich people want to continue paying lower rates on their non-wage income.
You know what would make things much, much simpler for the vast majority of taxpayers? An awful lot of the 1040 and its lettered schedules are devoted to telling the IRS things it already knows: Your employer has already reported your wages, your bank has reported the interest your savings earned, and so on. You waste a lot of time copying numbers off of W-2 and 1099 forms that the IRS already has.
The IRS could send you a form with all that information already included, and with the tax you owe already figured (assuming the standard deduction). If you think they got something wrong, you have other income to report (like your poker winnings — very important if you don't want to end up like Al Capone, who was convicted of having a lifestyle his reported income couldn't support), or you want to itemize your deductions, you could file just that part of a tax return. Otherwise, you send or cash a check and you're done.
Other countries do this, and it really is simpler. The reason we don't is that (in spite of their rhetoric) conservatives don't want your taxes to be simple. They want to keep the public in a perpetual state of agitation against the IRS, which they can turn into support for "simplifications" like a flat tax that favors the rich.
* That worksheet is what makes me skeptical of those file-on-a-postcard proposals. (I examined Ted Cruz' postcard back in 2015, in a note about the Republican debate. It wasn't actually simpler.) We could all file on postcards now, if the details were pushed off to worksheets that we don't send in to the IRS, but have to be able to produce if we're audited. But the calculations would be the same.
By weeklysift, on October 9, 2017 at 9:00 am, under Misunderstood. 7 Comments
« The Monday Morning Teaser
Bipartisan Concerns »
gordonc On October 9, 2017 at 9:38 am
Permalink | Reply
Yeah, the tax bracket thing. If there was a hundred brackets, you'd look your tax up in the table in the back of the instruction booklet. If there was one bracket, you'd look your tax up in the table in the back of the instruction booklet. How is that simpler?
Barb On October 9, 2017 at 10:31 am
I have been a tax professional for 30 years, and you have hit every point on the head, especially the fact that MANY other countries calculate an individual's tentative tax liability and essentially send the form to the person for review and correction, but you left out a big reason why Congress does not want that system to take hold here, including their war against the IRS and refusing to fund it properly. 1. The lobbyists for the tax preparation industry, which would suffer enormously under a government-reported system, push constantly against any system that would reduce the filing burden. Yes, many taxpayers would seek professional help to determine and report their proper deductions (assuming that Congress did not do away with them when lowering the rates) but the large tax prep firms and the accounting firms would lose a LOT of money if the process was made more automatic. 2. The sheer number of types of income that we have in the Internal Revenue Code, and the convoluted rules for determining in any given year what portion of what income should be taxed, makes it enormously difficult for the government to do here what they do elsewhere. and 3. Such a system would benefit most the low and middle income filers who typically cannot itemize and get their income reported to them on W-2 or 1099-MISC, for whom the IRS COULD calculate a reasonably accurate return, and hey, we don't want to help THOSE people, the tax preparers make a killing on them every year preparing returns and grabbing a piece of their refunds. So the postcard that Chairman Brady waves around at every speech is a joke, and he knows it and doesn't care.
weeklysift On October 9, 2017 at 11:47 am
Thanks for an inside view.
Anonymous On October 9, 2017 at 7:53 pm
"The lobbyists for the tax preparation industry, which would suffer enormously under a government-reported system, push constantly against any system that would reduce the filing burden. Yes, many taxpayers would seek professional help to determine and report their proper deductions (assuming that Congress did not do away with them when lowering the rates) but the large tax prep firms and the accounting firms would lose a LOT of money if the process was made more automatic."
One more reason that we need to be working to change the way that we fund political campaigns. If people could get into congress without having to raise zillions of dollars to do it, lobbyists would have much less influence. In the current system, they are a key part of the fund-raising process, so they have an out-sized voice.
A few places to go for more info:
* Issue One (https://www.issueone.org/). Former government officials – senators, governors, members of the house – from both parties – people who have lived the problem speaking out to end it.
* How the New York City Counsel does it (https://youtu.be/4C4wGHfL_a4) and (https://www.brennancenter.org/publication/small-donor-matching-funds-nyc-election-experience). The New York city council uses a matching program for small dollar donations to give candidates an option that doesn't require big donors.
* Sarbanes (https://sarbanes.house.gov/). Rep. John Sarbanes (D-MD) has been very vocal on this topic. He introduced a bill in the House that would create a national system similar to what is used in New York City, and he travels around to talk about it. His bill is the Government By the People Act (https://sarbanes.house.gov/bythepeople).
weeklysift On October 12, 2017 at 8:19 am
I'm sorry this reply didn't appear right away after you wrote it. Comments with a lot of links are automatically shunted into a list that requires my specific approval. It took me a while to get around to noticing this one.
Abby On October 9, 2017 at 6:15 pm
"The reason we don't is that (in spite of their rhetoric) conservatives don't want your taxes to be simple."
One of the reasons that they don't want taxes to be simple is that then it would be much more difficult to hide income. Rich people, shady businesspeople, etc, want taxes to be complicated, because this way they can play shell games with their money, and pay far less in taxes. This is not just my suspicion. I was friends with the accountant at a place I used to work…
By Bipartisan Concerns | The Weekly Sift on October 9, 2017 at 11:36 am
[…] week's featured post is "Misunderstood Things: 10-9-2017", where I discuss gun deaths and tax […]
What is the Weekly Sift?
1. Who I am and why I started the Weekly Sift.
2. Who is the Weekly Sift for?
3. Regular features of the Sift.
4. Doug Muder's Greatest Hits
A Conservative-to-English Lexicon
Sift Quotes of 2014
Recent weeks
Weekly summaries
Links of the Day
What did I do with my time off? Mostly I was working on this talk in the lecture series at Pennswood Village in New… twitter.com/i/web/status/1… 3 days ago
Yeah, I know I said there wasn't going to be a Sift today. But stuff happens, and there's still not going to be a w… twitter.com/i/web/status/1… 3 days ago
McCarthy is speaker, the looming debt-ceiling crisis, Brazil, 1-6 anniversary, pandemic, jobs, Zelensky's message,… twitter.com/i/web/status/1… 2 weeks ago
The speaker election was just the opening act. The main event will be a debt-ceiling vote this summer. weeklysift.com/2023/01/09/the… 2 weeks ago
This week: So long 2022. Top scandals. Title 42. 1-6 transcripts. Trump's taxes. Southwest. Tesla. And the year's b… twitter.com/i/web/status/1… 3 weeks ago
Follow @WeeklySift
Past months
Past months Select Month January 2023 (8) December 2022 (8) November 2022 (13) October 2022 (13) September 2022 (10) August 2022 (13) July 2022 (12) June 2022 (14) May 2022 (16) April 2022 (6) March 2022 (12) February 2022 (12) January 2022 (13) December 2021 (11) November 2021 (12) October 2021 (12) September 2021 (12) August 2021 (15) July 2021 (13) June 2021 (13) May 2021 (13) April 2021 (14) March 2021 (17) February 2021 (12) January 2021 (11) December 2020 (15) November 2020 (12) October 2020 (10) September 2020 (11) August 2020 (16) July 2020 (12) June 2020 (13) May 2020 (12) April 2020 (14) March 2020 (17) February 2020 (11) January 2020 (12) December 2019 (14) November 2019 (12) October 2019 (11) September 2019 (14) August 2019 (12) July 2019 (14) June 2019 (13) May 2019 (9) April 2019 (16) March 2019 (14) February 2019 (10) January 2019 (13) December 2018 (13) November 2018 (14) October 2018 (12) September 2018 (12) August 2018 (9) July 2018 (17) June 2018 (15) May 2018 (7) April 2018 (18) March 2018 (12) February 2018 (9) January 2018 (13) December 2017 (8) November 2017 (10) October 2017 (16) September 2017 (13) August 2017 (15) July 2017 (16) June 2017 (13) May 2017 (17) April 2017 (15) March 2017 (12) February 2017 (11) January 2017 (13) December 2016 (10) November 2016 (11) October 2016 (15) September 2016 (13) August 2016 (18) July 2016 (11) June 2016 (13) May 2016 (12) April 2016 (15) March 2016 (12) February 2016 (16) January 2016 (10) December 2015 (16) November 2015 (16) October 2015 (12) September 2015 (10) August 2015 (16) July 2015 (10) June 2015 (17) May 2015 (11) April 2015 (15) March 2015 (15) February 2015 (12) January 2015 (12) December 2014 (14) November 2014 (13) October 2014 (10) September 2014 (14) August 2014 (12) July 2014 (13) June 2014 (13) May 2014 (14) April 2014 (12) March 2014 (13) February 2014 (15) January 2014 (13) December 2013 (14) November 2013 (13) October 2013 (12) September 2013 (17) August 2013 (10) July 2013 (17) June 2013 (13) May 2013 (13) April 2013 (14) March 2013 (11) February 2013 (11) January 2013 (13) December 2012 (17) November 2012 (16) October 2012 (17) September 2012 (12) August 2012 (14) July 2012 (22) June 2012 (14) May 2012 (17) April 2012 (20) March 2012 (15) February 2012 (13) January 2012 (21) December 2011 (18) November 2011 (12) October 2011 (22) September 2011 (12) August 2011 (22) July 2011 (18) June 2011 (4) May 2011 (5) April 2011 (4) March 2011 (4) February 2011 (4) January 2011 (5) December 2010 (4) November 2010 (4) October 2010 (4) September 2010 (4) August 2010 (5) July 2010 (3) June 2010 (4) May 2010 (4) April 2010 (4) March 2010 (5) February 2010 (4) January 2010 (4) December 2009 (4) November 2009 (4) October 2009 (3) September 2009 (3) August 2009 (5) July 2009 (3) June 2009 (3) May 2009 (4) April 2009 (4) March 2009 (5) February 2009 (4) January 2009 (3) December 2008 (4) November 2008 (2) October 2008 (4) September 2008 (5) August 2008 (4) July 2008 (4) June 2008 (3) May 2008 (5) April 2008 (4) March 2008 (5) February 2008 (2)
Blog at WordPress.com. | .


text:
Cuomo, de Blasio rally NY Democrats for general election
New York Gov. Andrew Cuomo and New York City Mayor Bill de Blasio have set aside their contentious relationship to kick off the Democratic party's statewide general election campaign.
Posted By: The Associated Press
NEW YORK (AP) - New York Gov. Andrew Cuomo and New York City Mayor Bill de Blasio have set aside their contentious relationship to kick off the Democratic party's statewide general election campaign.
Cuomo and de Blasio exhorted Democrats at a rally in Manhattan on Tuesday, five days after the two-term governor trounced activist and actress Cynthia Nixon in the primary.
Cuomo again focused his comments on President Donald Trump, criticizing the Republican's policies as detrimental to blue-collar and middle-class New Yorkers.
Cuomo is facing Republican Marc Molinaro, the Dutchess County executive, in the November election.
Cuomo's occasional political rival De Blasio called on Democrats to unite so the party can regain control of the state Senate.
Registered Democrats outnumber Republicans in New York state by a more than 2-to-1 margin.
NYC Mayor Bill de Blasio seeks Democratic nod for president
Cuomo, NY Democrats launch ad campaign against new tax law
NY Gov. Cuomo wins Democratic nod for 3rd term
NY Gov. Cuomo's favorability, re-election ratings tumble
NY Gov. Cuomo signs bill to move primary election date
UPDATE: Cuomo and Nixon vote in NY primary election
NY attorney general resigns post
NY Gov. Cuomo announces anti-discrimination initiatives
Cuomo defeats Nixon in NY gubernatorial primary


text:
# dnanmskmin

> Calculate the minimum value of a double-precision floating-point strided array according to a mask, ignoring `NaN` values.

## Usage

```javascript
var dnanmskmin = require( '@stdlib/stats/base/dnanmskmin' );
```

#### dnanmskmin( N, x, strideX, mask, strideMask )

Computes the minimum value of a double-precision floating-point strided array `x` according to a `mask`, ignoring `NaN` values.

```javascript
var Float64Array = require( '@stdlib/array/float64' );
var Uint8Array = require( '@stdlib/array/uint8' );

var x = new Float64Array( [ 1.0, -2.0, -4.0, 2.0, NaN ] );
var mask = new Uint8Array( [ 0, 0, 1, 0, 0 ] );

var v = dnanmskmin( x.length, x, 1, mask, 1 );
// returns -2.0
```

The function has the following parameters:

-   **N**: number of indexed elements.
-   **x**: input [`Float64Array`][@stdlib/array/float64].
-   **strideX**: index increment for `x`.
-   **mask**: mask [`Uint8Array`][@stdlib/array/uint8]. If a `mask` array element is `0`, the corresponding element in `x` is considered valid and **included** in computation. If a `mask` array element is `1`, the corresponding element in `x` is considered invalid/missing and **excluded** from computation.
-   **strideMask**: index increment for `mask`.

The `N` and `stride` parameters determine which elements are accessed at runtime. For example, to compute the minimum value of every other element in `x`,

```javascript
var Float64Array = require( '@stdlib/array/float64' );
var Uint8Array = require( '@stdlib/array/uint8' );
var floor = require( '@stdlib/math/base/special/floor' );

var x = new Float64Array( [ 1.0, 2.0, 7.0, -2.0, -4.0, 3.0, -5.0, -6.0 ] );
var mask = new Uint8Array( [ 0, 0, 0, 0, 0, 0, 1, 1 ] );
var N = floor( x.length / 2 );

var v = dnanmskmin( N, x, 2, mask, 2 );
// returns -4.0
```

Note that indexing is relative to the first index. To introduce offsets, use [`typed array`][mdn-typed-array] views.

```javascript
var Float64Array = require( '@stdlib/array/float64' );
var Uint8Array = require( '@stdlib/array/uint8' );
var floor = require( '@stdlib/math/base/special/floor' );

var x0 = new Float64Array( [ 2.0, 1.0, -2.0, -2.0, 3.0, 4.0, -5.0, -6.0 ] );
var x1 = new Float64Array( x0.buffer, x0.BYTES_PER_ELEMENT*1 ); // start at 2nd element

var mask0 = new Uint8Array( [ 0, 0, 0, 0, 0, 0, 1, 1 ] );
var mask1 = new Uint8Array( mask0.buffer, mask0.BYTES_PER_ELEMENT*1 ); // start at 2nd element

var N = floor( x0.length / 2 );

var v = dnanmskmin( N, x1, 2, mask1, 2 );
// returns -2.0
```

#### dnanmskmin.ndarray( N, x, strideX, offsetX, mask, strideMask, offsetMask )

Computes the minimum value of a double-precision floating-point strided array according to a `mask`, ignoring `NaN` values and using alternative indexing semantics.

```javascript
var Float64Array = require( '@stdlib/array/float64' );
var Uint8Array = require( '@stdlib/array/uint8' );

var x = new Float64Array( [ 1.0, -2.0, -4.0, 2.0, NaN ] );
var mask = new Uint8Array( [ 0, 0, 1, 0, 0 ] );

var v = dnanmskmin.ndarray( x.length, x, 1, 0, mask, 1, 0 );
// returns -2.0
```

The function has the following additional parameters:

-   **offsetX**: starting index for `x`.
-   **offsetMask**: starting index for `mask`.

While [`typed array`][mdn-typed-array] views mandate a view offset based on the underlying `buffer`, the `offset` parameter supports indexing semantics based on a starting index. For example, to calculate the minimum value for every other value in `x` starting from the second value

```javascript
var Float64Array = require( '@stdlib/array/float64' );
var Uint8Array = require( '@stdlib/array/uint8' );
var floor = require( '@stdlib/math/base/special/floor' );

var x = new Float64Array( [ 2.0, 1.0, -2.0, -2.0, 3.0, 4.0, -5.0, -6.0 ] );
var mask = new Uint8Array( [ 0, 0, 0, 0, 0, 0, 1, 1 ] );
var N = floor( x.length / 2 );

var v = dnanmskmin.ndarray( N, x, 2, 1, mask, 2, 1 );
// returns -2.0
```

## Notes

-   If `N <= 0`, both functions return `NaN`.

## Examples

```javascript
var randu = require( '@stdlib/random/base/randu' );
var round = require( '@stdlib/math/base/special/round' );
var Float64Array = require( '@stdlib/array/float64' );
var Uint8Array = require( '@stdlib/array/uint8' );
var dnanmskmin = require( '@stdlib/stats/base/dnanmskmin' );

var mask;
var x;
var i;

x = new Float64Array( 10 );
mask = new Uint8Array( x.length );
for ( i = 0; i < x.length; i++ ) {
    if ( randu() < 0.2 ) {
        mask[ i ] = 1;
    } else {
        mask[ i ] = 0;
    }
    if ( randu() < 0.1 ) {
        x[ i ] = NaN;
    } else {
        x[ i ] = round( (randu()*100.0) - 50.0 );
    }
}
console.log( x );
console.log( mask );

var v = dnanmskmin( x.length, x, 1, mask, 1 );
console.log( v );
```

* * *

## See Also

-   [`@stdlib/stats/base/dmskmin`][@stdlib/stats/base/dmskmin]: calculate the minimum value of a double-precision floating-point strided array according to a mask.
-   [`@stdlib/stats/base/dnanmin`][@stdlib/stats/base/dnanmin]: calculate the minimum value of a double-precision floating-point strided array, ignoring NaN values.
-   [`@stdlib/stats/base/dnanmskmax`][@stdlib/stats/base/dnanmskmax]: calculate the maximum value of a double-precision floating-point strided array according to a mask, ignoring NaN values.
-   [`@stdlib/stats/base/nanmskmin`][@stdlib/stats/base/nanmskmin]: calculate the minimum value of a strided array according to a mask, ignoring NaN values.
-   [`@stdlib/stats/base/snanmskmin`][@stdlib/stats/base/snanmskmin]: calculate the minimum value of a single-precision floating-point strided array according to a mask, ignoring NaN values.

[@stdlib/array/float64]: https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/float64

[@stdlib/array/uint8]: https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/array/uint8

[mdn-typed-array]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray

[@stdlib/stats/base/dmskmin]: https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/stats/base/dmskmin

[@stdlib/stats/base/dnanmin]: https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/stats/base/dnanmin

[@stdlib/stats/base/dnanmskmax]: https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/stats/base/dnanmskmax

[@stdlib/stats/base/nanmskmin]: https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/stats/base/nanmskmin

[@stdlib/stats/base/snanmskmin]: https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/stats/base/snanmskmin

redpajama_set_name: RedPajamaGithub


The top and favorite cryptocurrency lists are something we are always interested in. Ethereum ETH, Litecoin LTC, Decred DCR, Tron TRX, Bitcoin Cash BCH, are still common in most.
In this video Nathan from Altcoin Buzz joins the 7th annual Bitcoin Miami conference to ask some projects and influencers what their top 3 altcoins are. You don't want to miss this!
Next Post:Be Careful! The Bitcoin Price is Being Manipulated! 🚨Plus Apollo and Ethereum News!
Neblio, EOS , & ADA.
Electracoin in reality was first to surpass BTC overall market cap in 2017.


text:
Protecting Immigrant Workers
The Texas construction industry is a good example of what happens when immigrant workers' rights are not respected. But this organization is fighting back.
By Cristina Tzintzún -
Photo courtesy of Jason Cato, Workers Defense Project
Fernando Lopez is a husband and a father of two teenagers. He works in and around Central Texas as a painter. In 2009, Fernando's employer stole $3,500 in wages from him. "This contractor, just like so many in the construction industry in Texas, took my money," says Fernando. "That money was to pay my rent, buy groceries, get medicine when we're sick, fill my car with gas. It's for the basics to get by. But this man, he used this money to take his family on a vacation, buy a brand new car, and live a more luxurious life. When employers steal workers' wages they don't see the damage they cause to working families."
Unfortunately, Lopez's story is not uncommon. There are an estimated 11.2 million undocumented immigrants living in the United States, and according to the Pew Research Center, they represent 5.1 percent of the U.S. labor force. Texas, the state with the second largest population of undocumented people in the country, is home to approximately 1.7 million undocumented immigrants. Although they make up 6.3 percent of the state's overall population, they account for 9 percent of the labor force and according to the Institute on Taxation and Economic Policy, pay $1.6 billion annually in state and local taxes.
Despite their contributions to the Texas economy, undocumented workers earn less than 2 percent of all employee compensation. This discrepancy is partially caused by their overrepresentation in the lowest-paying jobs, as is clearly seen in the construction industry, and partially by abuses such as the wage theft that Lopez experienced.
An All-Too Common Problem
Workers Defense Project (WDP) is a statewide organization that empowers low-income workers to achieve fair employment. For the last decade, WDP has focused strategically on improving working conditions within the construction industry, in part because of the industry's culture of worker mistreatment.
Construction is one of the most important industries to the Texas economy. According to the Bureau of Economic Analysis, the Texas construction industry earns $72.6 billion annually, generated 1 out of every 20 dollars of the state's economic output as of 2012, and has grown by a staggering 21 percent in the past two years. Approximately one million workers in Texas labor in construction, and WDP has found that half of them are undocumented.
The success of the construction industry depends on its workforce, but despite their contributions to this lucrative industry, construction workers aren't feeling the benefits. Workers in Texas labor long hours for low pay, and the state is the deadliest in which to work construction in the country. According to Build a Better Texas: Construction Working Conditions in the Lone Star State, a 2013 University of Texas study on working conditions in the state's construction industry, workers regularly face:
Dangerous and deadly working conditions: More construction workers die in Texas than in any other state. One in five reported suffering a workplace injury that required medical attention.
Poverty level wages: Fifty-two percent of surveyed workers reported earning poverty-level wages, leaving them unable to support their families.
Failure to be paid: More than one in five workers (22 percent) have suffered wage theft, which means being denied payment for completed work.
Predictably, among undocumented immigrants, these problems are even more common. Compared to their U.S.-born counterparts, undocumented construction workers:
Earn $3.12 less an hour, on average;
Are 18 percent less likely to receive rest breaks on worksites, leading to higher rates of heat exhaustion and heat stroke; and
Are 2.5 times more likely to experience wage theft.
In addition, because most employers do not provide bilingual safety instructions, workers who do not speak English, like most undocumented immigrants, are twice as likely to be injured on the job (Orrenius, 2009).
These conditions have dramatic impacts on working families. Unfortunately, Lopez's story is common largely because the construction industry is one of the least regulated in the state. The Texas construction industry has leveraged its economic success to build a significant amount of political power within the state to keep labor costs low. Unlike other states, Texas lacks basic protections for its construction workforce, and:
Is the only state in the country that does not require workers' compensation coverage or an alternative.
Has no statewide law mandating rest breaks for construction workers.
Has no program to ensure that private employers properly classify their employees.
Through its lobbying efforts, the industry has effectively created one of the deadliest and most unregulated construction markets in the country. As a result, both documented and undocumented workers face poverty-level wages, dangerous working conditions, and rampant payroll fraud.
The Real Costs of Cutting Corners
For construction workers like Lopez, the costs of the state's cutting corners in overseeing this industry are painfully tangible—eviction, injury, and empty stomachs. But this regulatory race to the bottom has a high cost for honest businesses and Texas taxpayers as well.
In an industry where payroll fraud is rampant and companies fail to pay workers owed wages, honest businesses that treat their workers well face a competitive disadvantage. Construction is an extremely competitive industry, and contractors must submit bids in order to win projects. Misclassifying employees as independent contractors, withholding workers' compensation coverage, and paying lower wages helps to lower contractor's costs and win more bids. At the same time, contractors who make unreasonably low bids are also at risk of running of out of money before the completion of a project, meaning they can't pay their workers. Responsible businesses that pay employees a living wage and provide workers' compensation face increased labor costs, leaving them at a bidding disadvantage.
This competitive bidding process also creates additional costs for Texans and social service providers. Texas allows employers to opt out of workers' compensation, even in a dangerous industry like construction, meaning the real cost of care is shifted. WDP found that only 42 percent of Texas construction workers report being covered by workers' compensation or an alternative plan. When uncovered construction workers are injured, hospitals and clinics are left to pick up the tab, which is passed on to taxpayers. A Fort Worth hospital's 2008 data showed that construction workers are 6 percent of the workforce in Texas, but make up 18 percent of uncompensated care costs.
Furthermore, Texas and the federal government lose hundreds of millions of dollars in potential tax revenue when employers break the law. Wage theft results in an estimated loss of $8.8 million in sales tax revenue for Texas. Roughly 40 percent of the Texas construction workforce is misclassified as independent contractors rather than employees, meaning the state loses an additional $54.5 million in unemployment insurance tax revenue each year.
But it doesn't have to be this way.
Building It Better
Policymakers can avoid these costs by leveling the playing field for honest employers and ensuring basic protection for hardworking families. Workers Defense Project has succeeded in winning policies that create safer jobs for Texas construction workers by:
Passing Texas' first misclassification protection law that imposes fines on employers caught misclassifying employees on state contracts—protecting not just construction workers, but any worker employed by a state contractor.
Winning one of the nation's most progressive economic development policies. To be eligible for tax incentives from the City of Austin and Travis County, companies must now agree to ensure higher standards on construction projects including offering living and prevailing wages, OSHA basic safety training, workers compensation coverage, and protection from misclassification for all workers on a project. Project owners are also incentivized to hire from "disadvantaged" populations (workers who are low-income, have a criminal record, or do not have a high school diploma).
Winning changes in city contracts to require basic safety trainings for all construction workers on city-funded sites in Austin.
Passing a statewide wage theft law. This bill makes it easier for police departments across Texas to arrest employers who don't pay their workers, and closes an important loophole that allowed employers to avoid charges of criminal theft of services by making a minimal compensation payment to their workers. Since this bill passed in 2011, Workers Defense Project has recovered over $300,000 in stolen wages for its worker members.
Winning paid rest breaks for Austin's 60,000 construction workers by holding a "thirst strike" with WDP construction worker members and leaders outside of City Hall during the summer. The action drew the attention of local media and health experts, which pressured Austin's City Council to pass a paid rest break ordinance for all construction workers in the city—the first of its kind in Texas.
While these are important victories, Workers Defense Project knows that more needs to be done to raise workplace standards for construction workers. In 2014, WDP launched the Better Builder program to win better working conditions for low-wage workers through private codes of conduct.
The subcontracting chain makes it very difficult to hold anyone accountable for the working conditions on worksites. Developers can easily wash their hands of responsibility by pointing down the subcontracting chain, and subcontractors are often small enough to evade enforcement if someone tries to hold them responsible for mistreating their workers. At the same time, developers incentivize mistreatment by accepting low bids on projects, leaving subcontractors without enough money to compensate workers fairly. The Better Builder program addresses the accountability problem with the creation of an innovative model that works with developers to create codes of conduct, known as Better Builder standards, that guarantee all workers on their sites a living or prevailing wage (whichever is higher), workers' compensation, OSHA-certified safety training, and professional development opportunities, regardless of their immigration status.
Once developers agree to adhere to a code of conduct, WDP provides them with monitoring services to ensure compliance with the code. Whereas traditional organizing methods focus on negotiating with workers' direct employers, WDP works directly with the developer at the top of the construction supply chain, affecting all of the workers and contractors that are a part of that project and solving the accountability problem of subcontracting.
To date, Workers Defense Project has experienced tremendous success with its Better Builder program, and it is currently monitoring over 1,000 workers on $500 million in construction projects for organizations like Foundation Communities, Pflugerville Community Development Corporation, and Apple, Inc. WDP is also pursuing opportunities to use the Better Builder program to partner with public developers like Austin Community College. Finally, through this program, WDP is collaborating with union partners to develop the Spanish-language training and apprenticeship programs necessary to help undocumented immigrants secure good, safe jobs in the long run.
The Better Builder program shows promise as a scalable model to address the issues construction workers face every day in Texas, and our legislative work is also important. But more needs to be done. Although deadly and low-wage work is prevalent in the industry as a whole, undocumented workers face higher risks than their citizen counterparts. To address this we need to address their legal status.
The programs created under President Obama's executive action on immigration, when allowed to take effect, will grant legal work status to some workers and bring temporary relief to immigrant families. But in order to create safe, good jobs, comprehensive immigration reform must happen. Especially in a state like Texas, where one in 10 workers is undocumented, our communities and our economy greatly need long-term solutions. Workers Defense Project will continue fighting to change the way low-wage and undocumented workers are treated on the job.
Workers Defense Project
5 Facts About Illegal Immigration in the U.S., Pew Research
Everything You Wanted to Know About Illegal Immigration (But Didn't Know Who to Ask), by Jeff Salamon, Texas Monthly
Immigrants Drive the Texas Economy: Economic Benefits of Immigrants to Texas, Center for Public Policy Priorities
Undocumented Immigrants' State and Local Tax Contributions, Institute On Taxation And Economic Policy
Statistical Portrait of Hispanics in the United States, Pew Research Center
Build a Better Texas: Construction Working Conditions in the Lone Star State, Workers Defense Project
Build a Better Nation: A Case for Comprehensive Immigration Reform, Workers Defense Project
Cristina Tzintzún
Cristina Tzintzðn is executive director of the Workers Defense Project.
Anti-Displacement Organizing Should Start Here
Signaling A Strong Message of Support For Immigrant Neighbors
Shelter Shorts, The Week in Community Development—June 22


With the end of March, comes the end of the ski season, but some days still to enjoy snow. Even if you already know how to ski or if you are novice at it, in Grandvalira you will have a great time. You can wander on the more of 200km skiable slopes by yourselves or book ski classes. But for the kids, the ideal is the Imaginarium program, where they will learn how to ski and to play with snow in a very funny way.
In Andorra you can find an ice rink of 1800m2 at the Palau de Gel in Canillo. There, you can enjoy ice skating while kids wander the rink with ice quads. Other curious activities are the Laser Tag battles, or to discover how at night, the rink becomes a dance zone.
Andorra is the Pyrenees country, and you can discover its flora and fauna on its various Family Park. In Naturlandia, you will find a nature classroom where kids will discover the secrets of nature and how to protect and respect it. Moreover, you will be able to see animals of this area like Brown bears, Siberian wolves and fallow deers among others. You can also discover Andorra traditions and old crafts on the different activities of the farm school.
When we Travel with kids, we usually don't think about going to a spa and rest, but it doesn't have to be always like this. At Piolets Park & Spa, between 16:00 and 19:00 we open the doors of our Mountain Spa to all the kids. In it, the can enjoy of a bath on a shallow pool or be with their parents on a Deep lagoon. Moreover, we have treatments and massages for kids, so they can discover the pleasures of the spa world.
Seize the Easter holidays and come to Andorra to have fun with all the family. We are waiting for you!