366 karma · joined May 9, 2018
"[...]use the Services to store or transmit any inappropriate content, such as content that: (i) contains unlawful, defamatory, threatening, abusive, libelous or otherwise objectionable material of any kind or nature" [1]
(My emphasis)
Or a not so delightfully unanticipated direction. Too many times I've realized too late that I was in a "hostile" group, so I say something stupid thinking I'm among friends and it's like switching a button on the group mood.
It's not always about being FUCKING SMART, sometimes just having a different attitude helps.
I've worked with testers who refused to write code but would rather test everything manually (and fall behind on every sprint!), while stupid (yes), you could easily come in and be a 100X more productive by just writing tests as code.
For one company I worked for we had an old legacy system (running DOS) that we used to produce master copies of our disk images. When we needed a new master it would take the better part of a day to make all parts work. I wrote a program that could do what the legacy system did but under Windows, taking a couple of seconds to run and now we could get a master image as a build artifact. I don't consider myself FUCKING SMART, quite the opposite, especially at that company with those coworkers who were despite the sound of it actually really smart, but unlike my coworkers I had not accepted the situation but felt that there must be something to do to improve it.
If you are just waiting for the attraction to come back, chances are that it doesn't, even though it certainly could. It all depends on the reason that attraction disappears. Sometimes it's related to the things you do and sometimes it isn't. The key, I believe, is to always try to be a better spouse than you were a year ago, or even a month ago. But that of course presupposes that there exist mutual trust and respect between you. It won't work if only one part is trying to be a better self for the other.
Sure some of those libs may have some define you need to set in one of your .c files so the implementation will go there but then whenever you change that file it will result in a recompile of the third-party lib. So then you go and create a separate .c file just for the lib and we're back to why the lib author didn't do that in the first place?
No, I think what sqlite does is pretty neat. If you're doing development in the sqlite code-base you have lots of files (so you can manage it) but if you just want to use sqlite, you have the amalgamation which is one .c and one .h.
My own experience after 15 years of marriage is that attraction comes and goes for both me and my wife. But by not doing anything rash when that happens we have both discovered that it also comes back. Sure the first few times it happened it was quite scary, but then we've found a rhythm with the ebbs and floods.
Wow, where are you living? I haven't paid to send an MMS in nearly ten years...
Haha, this is so ironic. I've worked on projects for MS that were just the same. We had to have code names for their code names and a code name for MS itself. Even our own code names had to be uttered with caution. Maybe they learned from IBM? Edit: Thinking about it some more, maybe they really did. None of the other big tech companies we did work for were that secretive.
The problem and the point I'm trying to make is that a few platforms implement their ECB support in such a way to make it almost useless as a building block. They do not do it as processor instructions the way it's done in x86 (the right way IMHO) but instead it's implemented in a separate co-processor that you program in a similar manner as you setup a typical DMA-transfer. If you aim to encrypt 1KB or more the setup cost for this is negligible and you can get a comparatively good speed. However as we both agree there are very few cases (if any) where you _actually_ want to run ECB over 1KB blocks at a time. When you want to build something like CTR (or CBC), what you need is a fast way to ECB _a single_ AES block (i.e. 16 bytes). With this kind of solution the setting up of the co-processor eats up almost any gains won by doing ECB in HW compared to doing ECB in SW because the cost of the setup (it's I/O after all) comes close to the cost of a SW only ECB of 16 bytes.
Well, it depends on the crypto HW. Some HWs are designed for "throughput", which is completely useless for ECB but looks good on specs ("Our HW AES 10MB/s!"). So you set it up with src, dest and key pretty much as you setup your typical DMA transfer, only you almost never want to encrypt more than 16 bytes at a time with ECB so it's mostly wasted.
> consumer device SoC (eg, all Qualcomm, Samsung, Apple, AMD, and Intel parts)
We are not all so fortunate that we get to work with such powerful SoC. In my job it's mostly small embedded MPUs.
> B) is acceptable in many protocols
I think we are talking past each other here. I haven't even gotten to the protocol part yet. In order to support a wireless and/or network protocol you will need better building blocks than AES-ECB. You need AES-GCM (or at least AES-CCM). Not to mention ECDSA or RSA(>=3072)...
True, but few are full-featured HW acceleration SoCs. Most support a few operations like for instance AES-ECB and maybe AES-CBC but if you want AES-CCM or AES-GCM you still need to implement parts of it in software. The HW may be super fast at ECB:ing many blocks of memory but the setup cost is steep so when you need to ECB just a single block (for your counter in CCM) it buys you very little performance gains over just ECB in SW. (Of course what you do then is setting up several counters in a larger block of memory, after each other, this is ok because the counters are just increments, and you ECB a bunch of blocks. Next you need to solve how to do the same to get CBCMAC with just CBC HW...)
So, sure there are dangers with nuclear power if there's an accident. Ideally there shouldn't be, historically there has been a few (seven with fatal outcomes to be exact)[1]. Still with modern reactors that shutdown instead of melting down we should be able to safely handle virtually any accident. With burning fossil fuels the deaths are not _if_ there's an accident, they are a _consequence_ of polluting the air. And the 800000 annual deaths caused by coal burning doesn't even include deaths due to global warming [2].
[1] https://en.wikipedia.org/wiki/Nuclear_and_radiation_accident... [2] https://endcoal.org/health/
[1] https://en.wikipedia.org/wiki/Nuclear_and_radiation_accident... [2] https://endcoal.org/health/ [3] https://www.energycentral.com/c/ec/deaths-nuclear-energy-com...
The only thing that tempts me to upgrade is the new water-proof version so I finally can comfortably read while in the bath...
"First off, the import statement is clutter. Why can't the text function be built-in, perhaps?"
So it seems it's not out to solve the bigger issues of programming...