1,293 karma · joined April 6, 2015
How 16-bit centric, feels like from the 1980s.
I know, I know, dword ptr, qword ptr, etc. But I use 'movl' instead of 'mov dword ptr'.
This reminds me of the great Mythbusters who, to me, came across a bit stubborn to insist on US units -- it felt unsciency. I do understand that they wanted to use the 'normal' system that 'normal' people use -- I always recalculated all their psi and inches of mercury and fathoms per fortnight to SI.
So weird!
{Mountain, Water}
I am not a big fan of this argument without a 'but'. It is usually overlooked that the finite state machine can become exponentially large (=totally unusable), because sets of non-deterministic states are used for deterministic states. This caused me major trouble in a project where this effect was not noticed during the design phase.
I find this important to stress because the finite state machine can usually be constructed without problems (e.g. by the flex tool), so this property of regexps is undoubtedly useful.
But sometimes, it may explode on you.
> It (OOP) made it possible to develop much larger programs than before, maybe 10x larger.
Why?
This contradicts my intuition, because the biggest problem is that OOP focuses on state changes (of objects). State change means complexity, so formally, you need to understand the set of all possible states to reason that the program is correct. This is an exponential problem in the number of pieces of state, unfortunately. So how would this enable larger programs? What's the reasoning here? It would mean some even more potent mechanism of OOP makes more state more manageable. The structuring of data does not strike me as that potent -- nice, yes, but, well -- please explain!
> OOP provides a way for programmers to organize their code.
I think it is primarily about organizing data. The organising of the corresponding code follows. When Java emerged, it did not even have functions -- every piece of code had to be attached to data. In SmallTalk, you could change the definition of the global 'true' or even extend bool to have three values -- definitely data centric, and introducing unmanageable state...
> 100% pure functional programing doesn’t work. Even 98% pure functional programming doesn’t work.
I believe this. Well, intuitively, I'd say no paradigm works well when applied 100% pure. It would still be nice to see examinations of this or reasoning or proof or at least examples.
For the kerning, ok, that's more work...
Anyway, the show was great!
You are right. But it doesn't help. When I used C++, I constantly shot myself in the foot by using its features. It did not feel like overusing, but I just wanted type-safety and to replace macros. It was impossible to restrict to useful features, because they are all useful in their way, only they come at the price of spreading everywhere until you don't understanding what is going on. Typing rules are insanely complex. Overloaded template error messages and hilarious amounts of boiler plate member functions just to satisfy the constructor rules and to catch the best overload for every integer type were the result.
I went back to C. It's a relief.
The stamps have a diameter of typically 69mm, while larger ones are 100mm.
(Source: http://www.megaministore.com/stamps/asia/bhutan-stamps/bhuta...)
You don't. If you apply an integer to an array, it will return an entry. To me, it makes perfect sense to use a(i) instead of a[i]. In fact, in case you need some more complicated data structure to organise your data one day, you could switch to a function call for lookup without rewriting the code that uses a(i).
The question is not 'how do you disambiguate?', but 'why do you want to distinguish?' Because an array is just a special case of a function that maps an integer to something else. It is logically not different from a function with a large contiguous switch statement.
I have the QC35-II and never had problems, neither with battery life nor with bluetooth. In fact, given that it seems like no device ever gets bluetooth protocol right, it surprised me that the headphones do exactly what I want: connect to two devices at once (laptop and phone). So I can play music on the laptop and when someone calls, the headphones seamlessly switch to the phone, and when I hang up, they switch back to the music from the laptop. Also reconnecting works without anything to complain about. I am also switching back and forth between two locations, meaning two laptops and two phones, and the only thing that is mildly annoying is that when switching the desk, it takes a little longer to reconnect to the other set of devices again. But it does work.
What would be cool is three devices served at once (laptop, land line phone, mobile phone).
I am not using the Bose app at all.
But what is annoying is that they don't charge and work at the same time. Frankly, I was pissed when I found that out. WTF, there are integrated USB charger/voltage regulator circuits readily available that do that for you. Probably it's due to heat dissipation problems as always so they might have artifically disabled this to avoid at all cost headphones bursting into flames on people's heads.
But we also need to use our brain.
Even when trying to use my brain, I have troubles understanding how droplets can distinguish the direction of passing through a face mask, i.e., how my face mask can help protect others from my droplets, but how it cannot protect me from other people's droplets.
Well, I do understand that if the holes are too large, it will not be a 100% protection, but I do not really understand how the direction would matter.
That said, preventing a run on masks is important if you don't have enough, because some people need masks more urgently than others. I am convinved that in order to prevent a run on masks, you cannot just tell people the truth, but you need to lie to them, because many (or most) people will still get a mask if they know it is actually somewhat helpful.
* The screen turns on when the lid is opened, the login prompt appears, but the backlight is still off so you cannot see anything (except by using a super strong flashlight).
So you could employ a restaurant worker at $0/h and then bump them to minimum wage, because the tips will never cut it? Basically, you'd be collecting all the tips? This cannot seriously be legal!?
https://www.flattenthecurve.com/
To avoid TL;DR, search for boxes with green or red background centered text -- that's recommendations of behaviour.
Worthiness is something that every hobbyist needs to evaluate themself. You cannot do that for them.
For a hobbyist, time, money, efficiency, quality may all be totally irrelevant.
And comparing this to Chinese PCB manufacturing services is weird, too. If you want double sided, with vias, down to tiny traces, with plating and solder-stop and text, then you may be willing to pay the shipment and wait a few days.
Yes, I admit that this is a fun method. But what is the advantage over laser printing and then, say, using UV light to transfer to a photo PCB?
Honestly, I do not get why laser printers are a dark art, please explain!
My second most important change was to learn how to use contract based programming, or, if the language has poor support, at least to use a ton of asserts. This, for me, feels like stabilising the code very quickly and, again, improved my bug/line ratio. It forces me to encode what I expect and the code will relentlessly and instantly tell me when my assumptions are wrong so I can go back and fix that before continuing to base the next steps on broken assumptions.
Anyway, it's a beautiful and interesting article!