Sep. 18th, 2024

juan_gandhi: (Default)
 
Introduction
1. Functions
2. Abstractions of Algebra
3. Partial Orders, Graphs, and DAGs
4. Boolean Logic
5. Non-Boolean Logic
6. Quantifiers
7. Models and Theories
8. Category: Multi-Tiered Monoid
9. Working with Categories
10. Products and Sums
11. More Constructions in a Category
12. Relations Between Categories
13. Relations Between Functors
14. Cartesian Closed Categories
15. Monads
16. Monads: Algebras and Kleisli
17. Untyped Lambda Calculus
18. Typed Lambda Calculus
19. Curry-Howard-Lambek Correspondence
Answers to Exercises
Conclusion
Glossary
Bibliography

dybr

Sep. 18th, 2024 08:00 pm
juan_gandhi: (Default)

 Did some investigations in the morning, then I was late for a meeting after my long walk. Ok, I was just about 5 minutes late. They discussed this and that, etc, but then Mike asked me what I've been doing; I told him about this old issue; he suggested to drop it, and go check out an ops case - where I've been waiting for more info, actually. Will do. Later today.

Meanwhile, I asked Chris about that Vault code, and he told me the story. He had not been working on it for years. And the functionality ("aske again for new credentials if the old ones are expired") were actually never implemented. Well, even with the current implementation they could have done better.

Also, we had a funny discussion regarding how come the people, following a dumb "typesafe" approach of comparing instances (their idea was to make sure we have the same type) just breaks Liskov's principle. But that's a general approach. When "typesafe" circe json parser gets a JSON, and tries to instantiate a value of a class from that data, and if that JSON contains something more than the class constructor needs, it's considered an error. Now imagine, you go to a web site, download something, but eventually that company (or just that team) decides to add a new field, like "update date", or "author reference" - and kaboom! Another non-Liskov crash. Those people are ignorant, I think.

In this specific case of redefining equals, they (our engineers) carefully compare the fields of the case class. Now if somebody adds a field to that case class, they'll have to be on alert - where else the structure of the class is hard-code. WTF, if we know we have two instances of the same class (ok, or of a subclass), and if we are talking about a case class, just compare them! Scala compiler provides the right comparison code. Which is more efficient, since it also includes checking the hashcode (I hope). Compare it with comparing very long strings.

Whatever. 

So, ok, I've closed the case, having got all this information, and found out how it crashes, and restarts the server every hour. Because its credentials expire every hour. Whatever. They've been warned.

Now, I took a break; will do some French, and get back to my work computer (which was, meanwhile, updated and rebooted).

 Ok, opened my work computer, and I see a message from Mary, who suggests that I give my talk right away. I wrote to her, suggesting to make announcements at least a day before.

Ok, and besides, there's that old case I'm supposed to investigate. The accident happened on July 25th. Almost 2 months ago. Logs are available on datadog just for two weeks. So probably I'll need to go personally visit a dusty silo, find a magnetic tape... etc. Is not it challenging? Like in the movies.

Profile

juan_gandhi: (Default)
Juan-Carlos Gandhi

September 2025

S M T W T F S
 1 2345 6
78 9 10 111213
14151617181920
21222324252627
282930    

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Sep. 14th, 2025 03:12 pm
Powered by Dreamwidth Studios