Capturing network traffic with Wireshark (with examples of HTTP, QUIC, TCP, TLS, and other packet captures)
Published on Sep 20, 2022 (Last updated on Sep 26, 2022)
Wireshark is a cross-platform network capture and analysis tool that gives you insight into your network traffic, including a detailed breakdown of each data packet. It can be used for improving network and application performance, detecting security threats, troubleshooting networking issues, and more.
Unlike other network analysis tools, such as tcpdump, Wireshark has a graphical user interface that allows you to inspect network packets visually, without the use of a command line interface. This post looks into how packet capturing with Wireshark works in practice.
A brief intro to TCP/IP layers, protocols, packets, and internet communication overall
Published on Sep 01, 2022 (Last updated on Sep 17, 2022)
Network packet analysis can help you understand the performance and security implications of a network or application. Packets are important because the internet is a packet-switched network — as opposed to circuit-switched networks such as voice telephone networks (see a comparison table of packet vs circuit switching by GeeksforGeeks).
Information sent over the web is split into small data units (packets) where each packet includes all the information necessary for identification and routing, such as source and destination addresses and protocol identifiers.
Thus, the internet is inherently a connectionless network, which means that:
A non-comprehensive collection of specifications related to HTTP and the underlying security and transport-layer protocols
Published on Aug 24, 2022 (Last updated on Sep 01, 2022)
The RFC (Request for Comments) Series is a numbered collection of technical specifications that standardize many of the procedures and protocols used in internet-based systems, including the communication protocols of the Internet Protocol Suite, e.g. HTTP, QUIC, UDP, TCP, and others.
While the RFC Series is available for anyone to peruse, and each RFC has its own number, it's not always easy to find all the RFCs related to a particular subject.
The catalog below includes the most important RFCs related to the recently published HTTP/3 and QUIC protocols, the previous versions of HTTP, and the underlying transport-layer and security protocols (QUIC, UDP, and TCP for transport and TLS for security).
A look into what is the CSS subgrid and how it differs from a nested grid
Published on Sep 21, 2020 (Last updated on Sep 30, 2020)
The CSS subgrid is a new feature coming to browsers. It's already supported by Firefox, but the Chromium team is also working on the implementation. The CSS subgrid allows grid items to be included in the grid layout by adopting the grid tracks and grid lines for the area they're spanning over.
Obviously, the subgrid only makes sense if the grid item spreads across more than one grid cells (you can achieve that by either using the
grid-rowproperties or creating named grid areas).
By default, the children of grid items are not part of the grid layout. Without the subgrid feature, you need to create a nested grid and recalculate the grid tracks if you want to replicate the grid layout for the nested grid.
However, a nested grid and a subgrid are not the same thing.
A brief look into the use cases of the Container-as-a-Service architecture
Published on Aug 16, 2019
Kubernetes is a container orchestration platform that makes it possible to deploy applications to a cluster of computers. Although Kubernetes is frequently used in the cloud, it also works well in enterprise environments. There are a couple of scenarios when deploying Kubernetes on-premises is a reasonable choice as opposed to relying on cloud platforms.
Pros and cons of adding Vue.js to your app as a second framework
Published on Apr 23, 2019
Vue.js has been rapidly gaining traction in recent years. Developers love it for its flexible design, impressive ecosystem, and friendly learning curve. Vue.js is not only a popular choice for creating a new application but you can also include it within an existing framework. While this decision certainly has its pros, it comes with some challenges as well.
DNS configuration of a GitHub-hosted Jekyll site
Published on Sep 27, 2018
If you have a custom domain, you can quickly set it up with your Jekyll site hosted on GitHub Pages. By default, GitHub Pages sites come with domains ending in
github.io. To use your GitHub-hosted site with your custom domain, you only need to configure your DNS (Domain Name System) settings. Then, you can quickly check if your new domain properly works with the help of a DNS-testing service such as LeafDNS.
GitHub lets you host your static website on its servers for free. Since May 2018, it also offers free HTTPS support for custom domains.
How to make hyperlinks accessible for everyone
Published on Oct 06, 2017 (Last updated on Oct 23, 2019)
Link accessibility is one of the most important aspects of usability. However, designers often don't understand what it takes to make links accessible. Most frequently, they only distinguish links by color, which makes it hard for users with visual disabilities to spot them in text blocks — even if high color contrast is used.
As a rule of thumb, accessible links shouldn't rely solely on colors. Partly because users with low vision, color deficiency, and other visual impairments can't always recognize this kind of link, but also because it's easier for regular users to skim through the content if links are better emphasized.
How to create accessible technical documentation
Published on Sep 06, 2017 (Last updated on Oct 23, 2019)
We mostly discuss accessibility as a way to enable people with disabilities to use a website or application. However, the accessibility needs of users who don't have any disabilities but experience other kinds of hardships are less widely discussed.
The lack of knowledge on a given subject is such a hardship. Providing technical documentation that addresses this problem is also an essential part of accessibility, especially in the case of open-source development. Here, users don't only act as end-users but also might want to contribute to the code as developers.