For some reason, this made everything worse for me. Now claude constantly tries to access my home folder instead of current directory. Obviously this is not still good enough. Also Claude keeps dismissing my instructions on not to read my home directory and use current directory. Weird.
I agree, any direct / field modification should be assumed to be not-thread safe. OTOH, I think Go made a mistake by exporting http.DefaultClient, because it is a pointer and using it causes several problems including thread safety, and there are libraries that use it. It would have been better if it were http.NewDefaultClient() which creates a new one every time it is called.
> For instance, a recurring comment in user surveys is about the lack of stack traces associated with an error. This could be addressed with support functions that produce and return an augmented error.
Languages with stack traces gives this to you for free, in Go, you need to implement it every time. OK, you may be disciplined developer where you always augment the error with the details but not all the team members have the same discipline.
Also the best thing about stack traces is that it gives you the path to the error. If the error is happened in a method that is called from multiple places, with stack traces, you immediately know the call path.
I worked as a sysadmin/SRE style for many years and I had to solve many problems, so I have plenty of experience in troubleshooting and problem solving. When I worked with stack traces, solving easy problems was taking only 1-2 minutes because the problems were obvious, but with Go, even easy problems takes more time because some people just don't augment the errors and use same error messages which makes it a detective work to solve it.
As an iPhone user, I can only agree that Apple's software quality is just going backwards. Keyboard is terrible, it suggests words that are completely unrelated. Control center is becoming worse at every update. You can't still select text in the messages. Wifi is always unstable. You can't turn off wifi, etc.
Also my father used to use the feature of announcing outgoing calls when call is made by Siri, they removed it and I saw that many blind people also used to use this feature. I don't know what they thought while removing this feature.
Most companies out there want you to have certain technologies / keywords in your resume and will automatically reject you if you don't have them.
Yes, building a solid project with boring technology that delivers real business value sounds good in theory but not so good when applying for a new job. Maybe it can help after you somehow manage to pass some initial screening.
It used to prefetch external images [1]. Another option would be asking whether to download external images. I think one can enable this in settings, default is always display external images.
As far as I remember, Gmail used to prefetch images to prevent senders learning if and when recepient opens an email, but if this behaviour changed, I didn't know that.
One interesting thing I noticed with Linkedin emails is that it dynamically fetches unread notification count. For example, if someone views your profile, there will be a notification in the website. If you go to your mail and open an old Linkedin email before you check the notification in the website, you will see a little red 1 on the corner of Linkedin logo. Later, if you go to website, clear notification, and then open the same email, you will see that notification counter is gone. If find it quite interesting that Gmail lets this behaviour.
> I'd love to hear what exact scenarios it does actually make sense to use Kafka for instead of Rabbit or AMQP1.0 :)
If order of message processing matters, then Kafka is better suited then AMQP.
For example, In a distributed application for money transfers, if AMQP used, message order will be lost and some problems will occur in the following scenario:
User A with an accound of $1000 makes order for two transfers T1 ($600) and T2 ($500)
- Rabbit delivers T1 to server1, before processing message, server1 enters a full GC.
- Rabbit delivers T2 to server2 and server2 processes message immediately, now User A's account have $500
- Server1 resumes its life after the end of GC, but fails to process T1 since account's balance is less than required amount.
However, it is T2 that should have failed because User A ordered T1 first and T2 after.
In Kafka, when user account identifier is used for partitioning key, all User A's messages will be processed by same consumer (i.e server1), so even if server1 enters a full GC, that is OK, since T2 will be processed after T1.
> Almost all features of Instagram, except for interactive widgets in stories, are available from the web (doesn’t matter mobile or desktop).
Not exactly. When viewed in desktop browser, photo upload is not avaiable and you need to use developer tools to simulate mobile web browser view which is a workaround. Also, even in mobile web, you cannot upload more than one photo, even though this functionality exists in the app. These are very fundamental features of instagram, I think these are not so complex to implement in web versions.
> I'm not sure how easy it is to figure out whether those 'highly forwarded messages' are all the same, or somehow link them without knowing anything about their content or linking them to information you already know about people.
They use a counter. I don't know, however, if it is enforced on only client side or it is in a unencrypted metadata which can be checked on server side.
> Forwarded messages contain a counter that keeps track of how many times a message is forwarded. [1]
> So the same thing run locally is run in the cloud
Who is preparing Dockerfiles? Developers and system administrators / security people do not generally prioritize same things. We do not use k8s for now (therefore I know very little about it), so this might not be relevant but how do you prevent shipping insecure containers?
I always assumed that Whatsapp keeps the logs of call / messaging (i.e who texted to whom, how many times etc), however according to the this document, it does not keep them. Moreover, it does not share neither group information nor contacts. If this is really the case, it is quite better than most people think. I just wonder, though, why do they need to keep EU out of this latest ToS update and what does Whatsapp share with Facebook?
> How long are you talking?
There were some Spring applications that took more than 5 minutes to start in my old job. However, things are most probably improved now with lazy initializations of beans and maybe developers of that applications could have done better at that time. I don't know it is still the case now.
> Also, with the current network speeds and memory availability, it's hard to imagine the war size to be a bottleneck in web development.
Network speed was not the problem, decompression / expansion of the application was. There were war files about 100-150 MB size. Also I saw one with size of 1.5GB however it was an exception. These may or may not be a concern depending on your CPU utilization, disk speed, memory, etc.
Most decisions depends on environment. For some environments, as you said, deployments are not a concern for microservices, for some they are.
Rate of change may matter when your monolith application takes too long to deploy (i.e a big war application with lots of initializations at start), although rolling updates may help here. It will also be easier to rollback if things go wrong.
On the other hand, I agree with your point of multiple teams. I tried to mean same thing with "used by other applications"
If one part of the application needs to be changed frequently and/or is used by other applications, then it makes sense to separate it as a microservice. However, for other parts, I think it might be better to stay as a monolith since when you have a network in your calls, things get messier.
Networks are unreliable even if it is your local area network. In my career I saw some unrelated network equipment was sending a RST packet to load balancer with application servers IP address and resulting in service unavaiable errors. It took us weeks to find that out since it was happening very rarely and there were many layers between load balancer and application servers.
Network means slowness, connection errors, unknown results, etc all of which should be handled carefully.
> Seems like people prefer to downvote rather than try to give a compelling answer to the question "is the literature on long term side effects of mRNA vaccines extensive".
I think it might be because people are confusing asking questions with being against something. I am neither against vaccines nor mRNA vaccines particularly. I just genuinely want to learn the details. I think it is important to know upsides and downsides of each vaccine out there since there are several alternatives.