<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title>All Posts - SalehTZ</title><link>https://archive.salehtz.ir/posts/</link><description>All Posts | SalehTZ</description><generator>Hugo -- gohugo.io</generator><language>en</language><managingEditor>mstalebizadeh@gmail.com (SalehTZ)</managingEditor><webMaster>mstalebizadeh@gmail.com (SalehTZ)</webMaster><copyright>This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.</copyright><lastBuildDate>Tue, 30 Jun 2026 14:14:59 +0200</lastBuildDate><atom:link href="https://archive.salehtz.ir/posts/" rel="self" type="application/rss+xml"/><item><title>Mobile Developers Survival Guide: Using Myket Mirror for Gradle During Internet Outages</title><link>https://archive.salehtz.ir/survival_guide_1/</link><pubDate>Tue, 30 Jun 2026 14:14:59 +0200</pubDate><author>SalehTZ</author><guid>https://archive.salehtz.ir/survival_guide_1/</guid><description>In this survival guide, we will learn how to bypass internet disruptions in Iran by configuring the Myket mirror in Gradle, allowing you to build Flutter, Kotlin, and Android projects without issues.</description></item><item><title>Waydroid is FIRE: Native Android on Linux (X11 &amp; Wayland Guide)</title><link>https://archive.salehtz.ir/waydroid_is_fire_native_android_on_linux/</link><pubDate>Mon, 08 Dec 2025 14:30:44 +0330</pubDate><author>Author</author><guid>https://archive.salehtz.ir/waydroid_is_fire_native_android_on_linux/</guid><description><![CDATA[<p>Imagine running Android apps on your Linux desktop—not in a slow, heavy emulator, but <strong>natively</strong>, sharing your kernel with the host. The performance is absolutely <strong>FIRE</strong>.</p>]]></description></item><item><title>Bandit Level 11 to 12: Cracking the Caesar Cipher (ROT13)</title><link>https://archive.salehtz.ir/bandit_11_12/</link><pubDate>Wed, 15 Oct 2025 13:45:10 +0200</pubDate><author>SalehTZ</author><guid>https://archive.salehtz.ir/bandit_11_12/</guid><description><![CDATA[<h2 id="introduction">Introduction</h2>
<p>After decoding Base64, we now face our first real <strong>cipher</strong> in Bandit Level 11 to 12. The password isn&rsquo;t encoded for data transport; it&rsquo;s been deliberately obfuscated using a simple character-shifting algorithm.</p>
<p>This level introduces the <strong>Caesar cipher</strong>, one of the oldest and most well-known forms of encryption. We&rsquo;ll learn how to crack it with <code>tr</code>, a command-line utility for translating characters. 📜</p>
<hr>
<h2 id="the-challenge-level-11-goal">The Challenge: Level 11 Goal</h2>
<p>The level&rsquo;s objective is described as follows:</p>]]></description></item><item><title>Bandit Level 10 to 11: The Secret Language of Base64</title><link>https://archive.salehtz.ir/bandit_10_11/</link><pubDate>Wed, 15 Oct 2025 13:42:18 +0200</pubDate><author>SalehTZ</author><guid>https://archive.salehtz.ir/bandit_10_11/</guid><description><![CDATA[<h2 id="introduction">Introduction</h2>
<p>So far, we&rsquo;ve located files, filtered their contents, and even extracted text from binary data. Bandit Level 10 to 11 introduces a new core concept: <strong>data encoding</strong>. The password is in plain sight, but it&rsquo;s been transformed into a different format.</p>
<p>This level teaches us how to recognize and reverse Base64 encoding, a common method for representing binary data as text. 🧑‍💻</p>
<hr>
<h2 id="the-challenge-level-10-goal">The Challenge: Level 10 Goal</h2>
<p>The objective for this level is straightforward:</p>]]></description></item><item><title>Bandit Level 9 to 10: Sifting Through Binary Data with 'strings'</title><link>https://archive.salehtz.ir/bandit_9_10/</link><pubDate>Wed, 15 Oct 2025 13:40:11 +0200</pubDate><author>SalehTZ</author><guid>https://archive.salehtz.ir/bandit_9_10/</guid><description><![CDATA[<h2 id="introduction">Introduction</h2>
<p>In our journey so far, we&rsquo;ve dealt mostly with plain text files. Bandit Level 9 to 10 introduces a new type of challenge: extracting information from a <strong>binary file</strong>. These files are compiled for machines, not humans, and reading them with <code>cat</code> results in a mess of unreadable characters.</p>
<p>This level teaches us how to use the <code>strings</code> command, a specialized tool for finding and printing the sequences of readable text embedded within binary data. 🧐</p>]]></description></item><item><title>Introducing json2dartgen: Generate Dart Models from JSON Effortlessly 🚀</title><link>https://archive.salehtz.ir/convert_json_to_model_flutter/</link><pubDate>Tue, 26 Aug 2025 14:17:08 +0330</pubDate><author>SalehTZ</author><guid>https://archive.salehtz.ir/convert_json_to_model_flutter/</guid><description>If you’ve ever worked with APIs in Flutter, you know the pain: you get a massive JSON response, and now you need Dart models with `fromJson`, `toJson`, and maybe a `copyWith` method too.</description></item><item><title>What's New in Flutter 3.35.0</title><link>https://archive.salehtz.ir/flutter_3_35_0/</link><pubDate>Sat, 16 Aug 2025 10:00:00 +0330</pubDate><author>SalehTZ</author><guid>https://archive.salehtz.ir/flutter_3_35_0/</guid><description><![CDATA[<div class="featured-image">
                <img src="/images/posts/flutter_3_35.png" referrerpolicy="no-referrer">
            </div><!-- # Flutter 3.35.0 is Here — and I’m Proud to Be Part of It -->
<p>Flutter 3.35.0 has officially landed, bringing a host of improvements across <strong>web</strong>, <strong>desktop</strong>, <strong>accessibility</strong>, <strong>UI components</strong>, and <strong>tooling</strong>.</p>]]></description></item><item><title>How to Install Docker and Docker Compose on Ubuntu Server</title><link>https://archive.salehtz.ir/ultimate_guide_to_install_docker/</link><pubDate>Sat, 26 Jul 2025 11:26:28 +0330</pubDate><author>SalehTZ</author><guid>https://archive.salehtz.ir/ultimate_guide_to_install_docker/</guid><description><![CDATA[<p>Docker has revolutionized how developers build, ship, and run applications. By using containerization, it allows you to package an application with all of its dependencies into a standardized unit for software development. Whether you&rsquo;re setting up a simple project or deploying a complex backend like Appwrite, having Docker installed correctly is the essential first step.</p>
<p>This guide will walk you through the official and most straightforward method to install Docker Engine and Docker Compose on your Ubuntu 22.04 server.</p>]]></description></item><item><title>Deploying Appwrite on a VPS with Nginx: A Step-by-Step Guide</title><link>https://archive.salehtz.ir/deploy_appwrite_to_vps_nginx/</link><pubDate>Sat, 26 Jul 2025 11:10:34 +0330</pubDate><author>SalehTZ</author><guid>https://archive.salehtz.ir/deploy_appwrite_to_vps_nginx/</guid><description><![CDATA[<p>Self-hosting Appwrite gives you complete control over your backend infrastructure, data, and costs. It&rsquo;s a powerful solution for developers who want a flexible Backend-as-a-Service (BaaS) without vendor lock-in. However, a common challenge arises when you want to deploy Appwrite on a Virtual Private Server (VPS) that&rsquo;s already running other websites using an Nginx web server.</p>]]></description></item><item><title>Linux Command Line Cheat Sheet : 75 Essential Linux Commands</title><link>https://archive.salehtz.ir/70-must_know_linux_commands/</link><pubDate>Mon, 23 Jun 2025 14:40:53 +0330</pubDate><author>SalehTZ</author><guid>https://archive.salehtz.ir/70-must_know_linux_commands/</guid><description>&lt;p>The command line is where you get real control in Linux. It lets you dig into the system, automate tasks, and solve problems directly.&lt;/p></description></item></channel></rss>