Where I live, I can try to use 4G. I get one bar of signal and when it's working I get anywhere from 0.2 to 20Mbps with 700ms (!) latency. It costs $80 for 150Gb a month.
Or I can use Starlink. I get a solid reliable signal, anywhere from 20-250 Mbps with 60ms latency. It costs $110 for unlimited bandwidth.
The real competition where I am is fixed wireless. That's 12 Mbps, 70ms latency, and $100/mo.
Parents students and teachers treated me like shit throughout elementary school, went to a new school and decided I wasn't gonna take it anymore.
Started misbehaving and getting suspended literally all the time, had over 400 disciplinary actions on my school recorded, got expelled from a few schools then expelled from the whole district, as in they just wouldn't let me go to that high school at all...
Turned myself around after choking my sister when I was 15 and damn near got arrested for it.
As in, I was sitting in the back of a cop car, not handcuffed but they patted me down, bawling my eyes out.
Thankfully my sister didn't say a word to the cop and that's when I decided I had to change.
> - I wanted a form to register new types, so it could work for user-defined types;
> - the C pre-processor knows nothing about lists that can be expanded multiple times;
I'm actually working on both features as Clang extensions.
#repeat, a preprocessor directive to loop, can be combined with _Pragma(push_macro/pop_macro) to create lists by redefining a macro.
and currently #increment, though I think I want to expand on this so that other macros can be redefined more easily to create lists via push/pop macro.
The reason push_macro/pop_macro pragmas can't work, is the macro has to be undefined and redefined, and the value then pushed onto a stack in the compiler.
and you can't redefine a macro in the body of another macro directly.
so I've been thinking about maybe a _Pragma(redefine_macro(MacroToRedefine, NewValueForRedefinedMacro))
but I don't want it to be limited to the _Pragma area of the compiler, I want it to be eventually standardized.
I've been talking to a friend at WG14 who suggested making it a "Preprocessor Expression, like `__has_c_attribute` and `defined()`
So that's the area I've been working on recently for the Increment/Redefine PE lately.
I spent a long time thinking about this. My conclusion is that the simplest way to achieve this, at least in GCC, is to create a #copy directive that allows a macro, together with its stack, to be copied to another. GCC already allows stack expansion with push and pop but it can only be expanded once; the #copy directive would fix that.
If you get anything close to that working, that would be a godsend. It is the last remaining piece of the puzzle for me to implement complete RTTI in C. It would certainly help to minimize glib boiler plate code too.
I'd really like it to be part of c2x, but I think it is too late now. If it is implemented by either GCC or Clang, the remaining other would certainly it too since it is too useful. So getting it to work in any of these would be good enough for me.
There is __VA_OPT__ in C++2a, which handles recursion termination in macro expansion. This will probably be in future C, too, right?
And if there was also __EVAL__ to force the macro preprocessor into another evaluation level, you could write recursive macros quite easily, e.g., to wrap every argument into a function call:
People say this as if the entire (or majority) of Android's success rests with what they initially purchased. In my opinion it has very little to do with that and a lot more to do with the billions of dollars invested into developing, extending the platform, creating and supporting APIs, establishing contracts with OEMs, developing apps, etc etc. Android wasn't some magic thing that anyone that purchased it would have been sure to be successful. Just look at how well MS did with Nokia's purchase.
So yes, Google did purchase Android but Google didn't purchase their mobile success story by purchasing Android.
The whole way that Google handled Windows Mobile was anti competitive imho.
They prevented Windows Phone users from being able to access Google Maps by checking User Agents.
They didn't release a native Youtube app for Windows phone, and when Microsoft wanted to make one themselves they restricted them to HTML5 and non-native access. This penalized battery life on Windows Phone platforms for 2 very large and important services.
Google got success with Android by frankly bullying every other viable competitor out of the market (Amazon Fire, Windows Phone) by again bullying in regards to play store services.
with 4G/5G home internet, there's no real point anymore.