# .NET Weekly #156

## Cloud & Web

1. [Target=\_blank - the most underestimated vulnerability ever](https://www.jitbit.com/alexblog/256-targetblank---the-most-underestimated-vulnerability-ever/)
2. [Next-generation web styling](https://web.dev/next-gen-css-2019/)
3. [I only use an iFrame to crawl and scrape content](http://www.airovic.com/itsjustaniframe.html)
4. [When MFA isn't necessarily strong](https://www.sweharris.org/post/2019-06-09-softtoken/)
5. [The ultimate guide to secure cookies with web.config in .NET](https://blog.elmah.io/the-ultimate-guide-to-secure-cookies-with-web-config-in-net/)

## Tooling & Libraries

1. [Bazel 2.0](https://blog.bazel.build/2019/12/19/bazel-2.0.html)
2. [I moved my sites from Google Kubernetes Engine to Netlify and saved 1000 per year](https://labs.iamhamy.xyz/posts/i-moved-to-netlify-from-gke-and-saved-60-per-month/)
3. [On the MQTT 5.0 Message Expiry Interval](http://vernemq.com/blog/2019/12/27/mqttv5-message-expiry.html)
4. [FsAdvent 2019 - Using FAKE in a Build Server](https://gfritz.github.io/posts/2019-12-24-fsadvent-2019-fake-and-build-server.html)

## Architecture & Databases

1. [Migrating Halodoc Search from Algolia to Elastic Search](https://blogs.halodoc.io/migrating-halodoc-search-from-algolia-to-elastic-search/)
2. [re-Why databases use ordered indexes but programming uses hash tables](https://ayende.com/blog/189444-C/re-why-databases-use-ordered-indexes-but-programming-uses-hash-tables)
3. [re-Writing a very fast cache service with millions of entries](https://ayende.com/blog/189445-C/re-writing-a-very-fast-cache-service-with-millions-of-entries)
4. [Beyond Microservices - Streams, State and Scalability - Video](https://www.infoq.com/presentations/microservices-streams-state-scalability/)
5. [Readable Code](https://blog.pragmaticengineer.com/readable-code/)

## Programming Languages

1. [The case of the mysterious curly bracket](https://blog.ploeh.dk/2019/12/23/the-case-of-the-mysterious-curly-bracket/)
2. [Learning hardware programming as a software engineer](https://blog.athrunen.dev/learning-hardware-programming-as-a-software-engineer/)
3. [What Are the React Team Principles](https://overreacted.io/what-are-the-react-team-principles/)
4. [If you use .NET, build your objects in F#](http://usingprogramming.com/post/2019/12/25/f-advent-2019-dawn-of-the-f-domain-types)
5. [In praise of property-based testing](https://increment.com/testing/in-praise-of-property-based-testing/)
6. [The 4 Worst Software Metrics Agitating Developers in 2019](https://www.gitclear.com/blog/the_4_worst_software_metrics_agitating_developers_in_2019)

## Runtime

1. [Components of the Runtime affected by a port to a new architecture](https://github.com/dotnet/runtime/blob/master/docs/design/coreclr/botr/guide-for-porting.md#components-of-the-runtime-affected-by-a-port-to-a-new-architecture)
2. [Matt Warren - Performance in the .NET Runtime - Video](https://www.youtube.com/watch?v=9l8EOQV1Yws)
3. [Debugging Memory Leaks in .NET with Adam Furmanek - Podcast](https://www.dotnetrocks.com/default.aspx?ShowNum=1667)
4. [Dotnetos NET Performance Geeks - Videos](https://www.youtube.com/channel/UCC25ZltZWdfjwpTw7XXrybw/videos)

## Other

1. [Working for Microsoft cost me 200 million](https://blog.garrytan.com/working-for-microsoft-cost-me-200-dollars-million)
2. [How we went from 0 to 10,000+ users in 4 months with 0 spent on marketing](https://medium.com/sideprojects/how-we-went-from-0-to-10-000-users-in-4-months-with-0-spent-on-marketing-1d13e36e1fb6)
3. [Wifi deauthentication attacks and home security](https://mjg59.dreamwidth.org/53968.html)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://dotnetweekly.gitbook.io/weekly/2019/2019.12/number-156.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
