COMPΞZ 🧬
الذهاب إلى القناة على Telegram
متخصص کامپیوتر و نرمافزار • سازنده • هنرمند و طراح • مجموعهدار • نویسنده • تحلیلگر • مشاور استارتاپی و ایدهپرداز 𐎲𐎴𐎠𐎼𐎴𐎫𐎹 𐏃𐎢𐎶𐎠𐎫𐎹 We create because the world deserves better code. https://linktr.ee/compez
إظهار المزيدلم يتم تحديد البلدالفئة غير محددة
394
المشتركون
لا توجد بيانات24 ساعات
-47 أيام
+2830 أيام
أرشيف المشاركات
394
مثال از ++C
import <iostream>;
import <vector>;
import <thread>;
import <random>;
import <chrono>;
import <numeric>;
std::vector<int> generateTransactions(size_t count) {
std::vector<int> tx(count);
std::mt19937 rng(std::random_device{}());
std::uniform_int_distribution<int> dist(1, 100);
for (size_t i = 0; i < count; ++i)
tx[i] = dist(rng);
return tx;
}
[[nodiscard]] long long processTransactions(const std::vector<int>& tx, size_t start, size_t end) {
long long sum = 0;
for (size_t i = start; i < end; ++i)
sum += tx[i];
return sum;
}
int main() {
const size_t NUM_TRANSACTIONS = 1'000'000;
auto transactions = generateTransactions(NUM_TRANSACTIONS);
int numThreads = std::thread::hardware_concurrency();
std::vector<std::thread> threads(numThreads);
std::vector<long long> results(numThreads, 0);
size_t chunkSize = NUM_TRANSACTIONS / numThreads;
auto startTime = std::chrono::high_resolution_clock::now();
for (int t = 0; t < numThreads; ++t) {
size_t from = t * chunkSize;
size_t to = (t == numThreads - 1) ? NUM_TRANSACTIONS : (t + 1) * chunkSize;
threads[t] = std::thread([from, to, &transactions, t, &results](){
results[t] = processTransactions(transactions, from, to);
});
}
for (auto& th : threads) th.join();
long long totalAmount = std::accumulate(results.begin(), results.end(), 0LL);
auto endTime = std::chrono::high_resolution_clock::now();
std::chrono::duration<double> elapsed = endTime - startTime;
std::cout << "Processed " << NUM_TRANSACTIONS << " transactions." << std::endl;
std::cout << "Total amount: " << totalAmount << " genies" << std::endl;
std::cout << "Execution time: " << elapsed.count() << " seconds\n";
}
اجرا در 0.000584 ثانیه
هر دو رو با multi-threading مستقیم و حلقه ساده استفاده تنظیم کردم.
یعنی نسخهٔ ++C تقریبا ۱.۸٪ سریعتر از C بود.
بدون هیچ بهینگی نه روی C و نه روی ++C چون ما میتونیم کامپایلر رو هم دستکاری کنیم یا کدهای سطح پایین و حتی SIMD رو بررسی کنیم.
این در حالت عادی بود، فقط کد ساده.394
یکم بهینگی بین نسخهٔ ++C و C به صورت زیر داشته باشیم!
مثال از C
#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>
#include <stdint.h>
#include <time.h>
#include <unistd.h>
#define NUM_TRANSACTIONS 1000000
typedef struct {
int *transactions;
size_t start;
size_t end;
long long result;
} ThreadData;
void* processChunk(void* arg) {
ThreadData *data = (ThreadData*)arg;
long long sum = 0;
for (size_t i = data->start; i < data->end; ++i)
sum += data->transactions[i];
data->result = sum;
return NULL;
}
void generateTransactions(int *tx, size_t n) {
for (size_t i = 0; i < n; ++i)
tx[i] = rand() % 100 + 1;
}
int main() {
int *transactions = (int*)malloc(NUM_TRANSACTIONS * sizeof(int));
if (!transactions) {
fprintf(stderr, "Memory allocation failed\n");
return 1;
}
srand((unsigned)time(NULL));
generateTransactions(transactions, NUM_TRANSACTIONS);
int numThreads = (int)sysconf(_SC_NPROCESSORS_ONLN);
pthread_t *threads = (pthread_t*)malloc(numThreads * sizeof(pthread_t));
ThreadData *threadData = (ThreadData*)malloc(numThreads * sizeof(ThreadData));
long long *results = (long long*)malloc(numThreads * sizeof(long long));
if (!threads || !threadData || !results) {
fprintf(stderr, "Memory allocation failed\n");
free(transactions);
return 1;
}
size_t chunkSize = NUM_TRANSACTIONS / numThreads;
struct timespec startTime, endTime;
clock_gettime(CLOCK_MONOTONIC, &startTime);
for (int t = 0; t < numThreads; ++t) {
threadData[t].transactions = transactions;
threadData[t].start = t * chunkSize;
threadData[t].end = (t == numThreads - 1) ? NUM_TRANSACTIONS : (t + 1) * chunkSize;
threadData[t].result = 0;
pthread_create(&threads[t], NULL, processChunk, &threadData[t]);
}
long long totalAmount = 0;
for (int t = 0; t < numThreads; ++t) {
pthread_join(threads[t], NULL);
totalAmount += threadData[t].result;
}
clock_gettime(CLOCK_MONOTONIC, &endTime);
double elapsed = (endTime.tv_sec - startTime.tv_sec) +
(endTime.tv_nsec - startTime.tv_nsec) / 1e9;
printf("Processed %d transactions.\n", NUM_TRANSACTIONS);
printf("Total amount: %lld genies\n", totalAmount);
printf("Execution time: %.9f seconds\n", elapsed);
free(transactions);
free(threads);
free(threadData);
free(results);
return 0;
}
اجرا در 0.000595 ثانیه394
این یکی رو ببین!
۱ میلیون تراکنش شبیهسازی GENY.
مجموع مبلغها: 50,508,884 توکن!
کد شبیهسازی ساده از پردازش تراکنشها هست؛ مشابه کاری که سیستم بانکی یا کیف پول انجام میده!
تعداد زیادی تراکنش (در اینجا ۱ میلیون) تولید شد.
هر تراکنش یک مبلغ تصادفی بین ۱ تا ۱۰۰ جنی داشت.
هدف: محاسبه مجموع همه تراکنشها و اندازهگیری سرعت پردازش.
نسخهٔ PHP
<?php
declare(strict_types=1);
function measureExecutionTime(callable $fn): float {
$start = microtime(true);
$fn();
return microtime(true) - $start;
}
function generateTransactions(int $count): array {
$transactions = [];
for ($i = 0; $i < $count; ++$i) {
$transactions[] = rand(1, 100);
}
return $transactions;
}
function processTransactions(array $transactions): int {
$total = 0;
foreach ($transactions as $tx) {
$total += $tx;
}
return $total;
}
$NUM_TRANSACTIONS = 1_000_000;
$time = measureExecutionTime(function() use ($NUM_TRANSACTIONS, &$totalAmount) {
$transactions = generateTransactions($NUM_TRANSACTIONS);
$totalAmount = processTransactions($transactions);
});
echo "Processed {$NUM_TRANSACTIONS} transactions.\n";
echo "Total amount: {$totalAmount} genies\n";
echo "Execution time: {$time} seconds\n";
زمان اجرا: ~0.124 ثانیه
مثال ++C
import <iostream>;
import <vector>;
import <thread>;
import <random>;
import <chrono>;
import <numeric>;
std::vector<int> generateTransactions(size_t count) {
std::vector<int> tx(count);
std::mt19937 rng(std::random_device{}());
std::uniform_int_distribution<int> dist(1, 100);
for (size_t i = 0; i < count; ++i)
tx[i] = dist(rng);
return tx;
}
[[nodiscard]] long long processTransactions(const std::vector<int>& tx, size_t start, size_t end) {
long long sum = 0;
for (size_t i = start; i < end; ++i)
sum += tx[i];
return sum;
}
int main() {
const size_t NUM_TRANSACTIONS = 1'000'000;
auto transactions = generateTransactions(NUM_TRANSACTIONS);
int numThreads = std::thread::hardware_concurrency();
std::vector<std::thread> threads(numThreads);
std::vector<long long> results(numThreads, 0);
size_t chunkSize = NUM_TRANSACTIONS / numThreads;
auto startTime = std::chrono::high_resolution_clock::now();
for (int t = 0; t < numThreads; ++t) {
size_t from = t * chunkSize;
size_t to = (t == numThreads - 1) ? NUM_TRANSACTIONS : (t + 1) * chunkSize;
threads[t] = std::thread([from, to, &transactions, t, &results](){
results[t] = processTransactions(transactions, from, to);
});
}
for (auto& th : threads) th.join();
long long totalAmount = std::accumulate(results.begin(), results.end(), 0LL);
auto endTime = std::chrono::high_resolution_clock::now();
std::chrono::duration<double> elapsed = endTime - startTime;
std::cout << "Processed " << NUM_TRANSACTIONS << " transactions." << std::endl;
std::cout << "Total amount: " << totalAmount << " genies" << std::endl;
std::cout << "Execution time: " << elapsed.count() << " seconds\n";
}
زمان اجرا: فقط ۰.۰۰۰۸۴۹ ثانیه!
یعنی ++C حدود ۱۴۶ برابر سریعتر از PHP برای همین شبیهسازی ۱ میلیون تراکنش بود. 😎 با منم بحث نکنید.394
سرعت، سرعت، سرعت! خب من بنز سوار نمیشم اما در تخصص خودم جت جنگنده زیر پامه! برای همین واقعاً هیچ چیز دیگهای نمیتونم سوار شم 😩
یک محاسبه ساده از ۱ تا ۱۰۰ میلیون!
نتیجه در PHP 8.4: ~3.29 ثانیه
نتیجه در C++23 ~0.035 ثانیه
یعنی تقریبا گودزیلا ۱۰۰ برابر سریعتره! بدون هیچ بهینگی و یا فعالسازی گزینههای کامپلیلری.
کد PHP
<?php
declare(strict_types=1);
function measureExecutionTime(callable $fn): float {
$start = microtime(true);
$fn();
return microtime(true) - $start;
}
function heavyComputation(int $n): float {
$sum = 0.0;
for ($i = 1; $i <= $n; ++$i) {
$sum += ($i * $i) / 2;
}
return $sum;
}
$n = 100_000_000;
$time = measureExecutionTime(fn() => heavyComputation($n));
echo "PHP execution time: {$time} seconds\n";
و کد ++C
import <iostream>;
import <chrono>;
import <thread>;
import <vector>;
[[nodiscard]] long long partialSum(int start, int end) {
long long sum = 0;
for (int i = start; i <= end; ++i) {
sum += (i * i) / 2;
}
return sum;
}
int main() {
int n = 100'000'000;
int threadsCount = std::thread::hardware_concurrency();
std::vector<std::thread> threads(threadsCount);
std::vector<long long> results(threadsCount, 0);
int chunkSize = n / threadsCount;
auto start = std::chrono::high_resolution_clock::now();
for (int t = 0; t < threadsCount; ++t) {
int from = t * chunkSize + 1;
int to = (t == threadsCount - 1) ? n : (t + 1) * chunkSize;
threads[t] = std::thread([from, to, t, &results](){
results[t] = partialSum(from, to);
});
}
for (auto &th : threads) th.join();
long long total = 0;
for (auto r : results) total += r;
auto end = std::chrono::high_resolution_clock::now();
std::chrono::duration<double> elapsed = end - start;
std::cout << "C++ multi-threaded optimized time: " << elapsed.count() << " seconds\n";
return 0;
}
این تفاوت تقریباً ۱۰۰ برابر سرعت بین PHP و ++C رو نشان میده که وقتی میخوای Performance واقعی داشته باشی تعداد چند خط کد خوشگل اضافی ارزشش رو داره.394
همیشه برام جذابه که توسعهٔ PHP از C و ++C الگو میگیره. اصلاً یکی از دلایلی که پیاچپی رو به عنوان اولین زبان اسکریپتی انتخابش کردم همین خاصیتهاشه.
نسخهٔ ۸.۵ ویژگیهای خوبی معرفی کرده.
https://www.php.net/releases/8.5/en.php#no-discard-attribute
394
این هوش مصنوعی چیز خوبیهها، اما خیلی بدتر و بیشتر از رسانههای اجتماعی، به انبوهی از احمقها اجازه داده که مانند دانشمندها صحبت کنند!
394
ظهر بخیر!
از دیشب چندتا پیام گرفتم که باز یه سری حاشیه درست شده و اسم ایرانیها وسطه. راستش نه دنبال جزئیات رفتم نه حوصلهٔ طومار خوندن دارم. برام مهم نیست کی چی گفته، مگر اینکه مستقیم به من یا کاری که میکنم ربط داشته باشه.
ولی چون موضوع به جامعهٔ فارکستر و وب۳ مربوط میشه، بد ندیدم یه حرف کلی هم با سازندهها بزنم هم با مخاطبها.
واقعیت سادهست که هر رفتار منفی، مردم رو ناامیدتر میکنه.
و هرچی ناامیدی بیشتر بشه، اعتماد ساختن سختتر میشه؛ مخصوصاً وقتی این رفتار از سمت خود سازنده یا گردانندهٔ پروژه باشه.
هیچ پروژهای بدون مردم معنی نداره!
یه بنیانگذار بدون مخاطب، حتی اگه بهترین محصول دنیا رو هم بسازه، آخرش به جایی نمیرسه و اگر کار قراره به دل مردم ننشینه، ارزشش چقدره؟ مهم نیست قیمت کنونیت صفر باشه یا هزاران دلار! ارزش کاربردیش مهمه.
حرفم با سازندهها و به خصوص اونایی که طمعکار هستن
قدر فرصتها و مخاطبتون رو بدونید؛ مردمی که با هزار زحمت پول درمیارن، قرار نیست هر حرف یا هر رفتاری رو تحمل کنن. تحمل اشتباه حد داره، صبر هم حد داره؛ البته فرصت دادن طبیعیه، مخصوصاً تو مسیرهای بلندمدت.
اگه خودتون از جنس همین مردم باشید، اینو خوب میفهمید.
اگه نه، هم اعتماد به خودتون رو از بین میبرید، هم اعتماد به کل فضا رو خراب میکنید که من بیشتر به خاطر همین موضوع این پیام رو نوشتم. سعی کنید طمع و هیجانتون رو کنترل کنید؛ سازندگی اسباببازی و سرگرمی نیست! با پول مردم نباید اوقات فراغتتون رو پر کنید.
اگه دنبال موفقیتید، دعواهای بچگانهٔ تیمی و بحثهای سهم و حق جواب نمیده.
من خودم به خاطر همین موضوع چند نفر از همتیمیهام رو کامل کنار گذاشتم بدون هیچ تخفیفی برای همیشه از ریشه حذفشون کردم و بین مخاطبان هم اسمشون رو به وضوح آوردم، چون نمیتونم ریسک کنم فردا یکی به اسم حق، حق مردم رو بالا بکشه یا بره جای دیگه بخواد حقهبازی در بیاره.
اگه قراره جایی دیکتاتور باشید، داخل تیم باشید نه مقابل مردم. یا همتیمی نداشته باشید، یا اگر دارید از نزدیک بشناسیدش و حتماً قرارداد رسمی ببندید و سهم تیمی هم باید قفل بلندمدت داشته باشه (همون دورهٔ سکوت یا cliff) و شفاف باشه؛ طوری که همه بتونن ببینن چی به کی رسیده.
خارج از این مسیر برید، حتی نزدیکترین آدمها هم یه ضربهای بهتون میزنن که یادتون نمیره و اگه میخواید کسی رو بشناسید، یه سهم یا فرصت بهش بدید؛ خیلی زود خودش رو نشون میده.
حرفم با مخاطبها
میدونم پامپ و دامپ هیجان داره و وقتی پول خودتو میذاری وسط، حقته هر وقت خواستی بفروشی یا بمونی.
هیچکس حق نداره ازت وفاداری اجباری بخواد.
فقط یه استثنا هست:
وقتی توکن رو هدیه یا تشویقی میگیری، بدون اینکه براش پول داده باشی.
اونجا انصاف اینه که حداقل چند ماه اول نسبت به برنامهٔ زمانی پروژه نفروشی، تا بازار خراب نشه و به بقیه ضربه نخوره.
این توکنها معمولاً پشتشون پول واقعی نیست؛
فروش عجولانهشون هم به پروژه ضربه میزنه، هم به خودت، هم به بقیه و طبیعتاً بنیانگذار وقتی هدیه میده، انتظار همراهی حداقلی داره، نه ضربه.
توسعهدهندهای که دید بلندمدت داره، دنبال سود لحظهای نیست.
سود واقعی فقط وقتی میاد که پروژه زمان بخوره، ادامهدار باشه و براش مداوم کار بشه و بقیهاش بازی کوتاهمدته.
در نهایت بارها گفتم، شرکت همزمان تو صد تا پروژه با صد تا انتظار، مثل اینه که بخوای صد تا هندونه رو با هم برداری؛ نه تمرکز میمونه، نه تعادل، نه آخرش چیزی سالم میرسه.
پروژهٔ موفق، تعهد و صبر و شکیبایی به همراه کنترل طمع میخواد، نه شلوغبازی.
روزتون شیک 👋🏼
394
داشتم روی مرتبسازی تراکنشها کار میکردم که به فکرم رسید چرا از عملگر مقایسهٔ سهطرفه استفاده نکنم!
این برنامه لیست تراکنشها رو بر اساس مقایسهٔ سه طرف یعنی
<=> بررسی و مقایسه میکنه و با سه چیز در نظر میگیره:
۱) وضعیت تراکنش (Confirmed ،Pending و Failed)
۲) مبلغ تراکنش (از بزرگ به کوچک)
۳) زمان تراکنش (قدیمیتر اول)
توی این مثال با استفاده از عملگر <=> داخل خود ساختار برای مقایسه و std::ranges::sort (برای مرتبسازی)، اگر وضعیتها متفاوت بود اولویت با Confirmed، بعد Pending و بعد Failed سپس اگر وضعیتها برابر بودند مبلغ بیشتر اول و در نهایت اگر وضعیت و مبلغ برابر بودند زمان قدیمیتر در نظر گرفته میشه.
با این روش نیازی به نوشتن تابع پیچیده برای مقایسه نیست و عملگر <=> خودش همه چیز رو مرتب میکنه به همین تمیزی! 👋🏼394
کیست که نداند مردان بزرگ از درون کاخهای فرو ریخته به قصد انتقام بیرون میآیند انتقام از خراب کننده و ندایی از درونم میگفت برخیز ایران تو را فراخوانده است و برخواستم.
نادر شاه افشار
394
🎄 کریسمس مبارک! 🎄
این هم دومین کلیسای قدیمی جهان که در شهر من، اورمو واقع شده است. ⛪️✨
https://farcaster.xyz/compez.eth/0xb4ffcc36
394
بله! وقتی مرجع به مرجع رو از داخل مرجعش شخم بزنی میبینی که واقعیت داشته!
این صفحهای از کتاب اوستاست که دقیقا نشون میده نویسنده یعنی 👑 به درستی از مرجع استفاده کرده.
چه قبل از اسلام و چه بعد از اسلام رو مثال زده! و تأکید داشته که دانش بخش جدا نشدنی از ایرانیان است و به هرنحوی که شده به دست خواهند آورد.
باور کنید انقدر کتاب و مراجع خفن وجود داره که یه ذره اگه آدم وقت بذاره کلی از واقعیتهایی که ازمون پنهان کردن رو خواهید فهمید. به حق است که آگاهی و دانش کلید موفقیته. البته اگه میخواین راحتتر و بیدرد زندگی کنید همون بهتر چیزی نخونید. آدم وقتی بیشتر بفهمه بیشتر عذاب میکشه.
شب شیک. 👋🏼❤️
394
+2
و سپاه دانش حرکتی بوده در راستای آموزش که من یادم میاد نسلهای گذشته در موردش بارها تعریف میکردن که موقع آموزش دیدن حتی نوعی تغزیشون خاص بوده! هر روز باید چیزی که در برنامه بوده رو تغزیه رایگان میشدن و سپس سواد آموزی! چون میدونستن این بچهها وقتی که بزرگ بشن کشور بهشون نیاز خواهد داشت! چون قرار بود از قشر با سواد در سرتاسر امور کشوری به کار گرفته بشن.
مشخصه که ریشش از کجا میاد و هدفش چه چیزی بوده! حالا با افتخار هزاران و میلیونها فارغالحصیل میدن بیرون بدون اینکه یه نفر آدم حسابی در پیشرفت این کشور خدمتگذاری کنه! یا شدن رانت یا شدن سگزادههای خودشون!
هوووف هوف که دود از کلت بلند میشه وقتی میبینی نسل خر چه چیزهایی رو با چی عوض کرده.
اصلاً شما فکرشو بکن... کدوم مسئول در حال حاضر میاد توضیح بده که چی و کجارو آباد کرده؟ چه دستآوردی داشته؟ 😄 چون جز تخریب چیزی وجود نداره که بخوان ازش کتاب بنویسن.
چه مستنداتی که رو نشه از این به بعد...
394
+1
حالا فهمیدین همین یه ذره حقوق زن هم که توی این مملکت وجود داره توسط چه کسی ازش دفاع شده! 😉👑
394
یه توضیح تکمیلی هم در مورد تعریف این واژه لازمه.
این پانایدئولوژیها کلاً یه رفتار سیاسی و اجتماعیان، نه تاریخن نه فرهنگ اصیل. تو همهجای دنیا هم هست، مخصوص ایران هم نیست.
ولی خب ایران چون پر از قوم و زبان مختلفه، همیشه این چیزا بهانهٔ سوءاستفاده بوده؛ هم از بیرون، هم از داخل. آخرش هم معمولاً نه هویت درست میکنه، نه چیزی رو نجات میده؛ فقط مردمو میاندازه به جون هم که در شبکههای اجتماعی هم تا دلت بخواد هست، تاریخو کجوکوله میکنه و اعصاب همه رو خرد میکنه.
واقعیت تاریخ که با شعار عوض نمیشه، هویت هم با داد و بیداد ساخته نمیشه.
بیخیال این بازیها؛ تاریخو باید فهمید که آگاهتر شد، نه اینکه باهاش دعوای هویتی راه انداخت.
394
حتی اگه آگاه به این هم نباشید دیگه در این قرن از جامعهٔ بشری باید انسان باشی نه اینکه بگی من کردم، من ترکم، من فارسم! هرکی اینطوری رفتار کرد بزنید بلاکش کنید بحث کردن باهاشون یعنی کوچیک کردن خودتون. 👋🏼😎👊🏼
394
این روزها به طرز عجیبی شاهد یه سری کلهپوکهای پانایدئولوژی هستیم! گاهاً هم دوستان بهم میگن فلات ترک رفتارش خیلی زشت بود! از نظر من به احتمال زیاد جیرههاشون بیشتر شده! بیشتر چرند میگن! شما زیاد اهمیت ندین... از نظر من زیر جلدی بعضیها قشنگ دارن جیره میگیرن که اتحاد مردم رو بهم بریزن...😁 من به جای این نوع ترکها از همه عذرخواهی میکنم. خب به هر حال مطالعاتشون کمه ناآگاهن و جاهل! باشلاره ایتین گوتونن چیخمیر!
این روزها که بیشتر مردم از کوروش میگن... اینا میسوزن! و معتقدن که کوروشی وجود نداشته و در بهترین حالت ربطی به ما نداشته!
به اینا باید بگی نادان! مغولها تمدنساز نبودند؛ تمدنخور بودن! برای همین امثال شما آگاهی ندارید.
تمدنسازی بعدی، کار ایرانیها یعنی همهٔ مردم ایران (به جز این قرمساقهای حکومتی) از نسل مادها و پارسها، آریاییها بودن، نه میراث چنگیز که در اون زمان عین حیوان زندگی میکردن چه برسه بفهمن تمدن چیه.
حتی اسلام امروزی تا قبل از اینکه ایرانیزه بشه کثافتی بیش نبوده! از تعذیههاش بگیر تا روشهای تبلیغیش! اینها تماماً با هنرنمایی ایرانی شکل گرفته و به یک نظم و زیبایی خاصی از هنر اسلامی تبدیل شده. اگر هم الآن گوهرنگیهاشو میبینید همشون به خاطر همین تفکرات کثافت موغول زدست که جز وحشیگری هیچی توش وجود نداره.
شما که میپرسید ایرانی یعنی چی؟ ایرانی یعنی مردمان ایرانیتبار! توی پانایدئولوژی که شما کله پوکها توی قرن ۲۱ مد کردین برای خودت، نادان نسل تو بر میگرده به مادهای این سرزمین چیزی که بیش از ۲۵۰۰ سال قبل وجود داشته که کل تاریخ مغول و ترکهای عثمانی رو شخم بزنی یه گرد پای این تمدن نمیرسه. اون موقع که مغول توی گل و عن گاو و حیوان زندگی میکرد ایرانی جماعت فرش باستانی زرین زیر پاشون بود.
دقت کنید که، پانایدئولوژیهایی که فقط «زبان» را معیار هویت میدانند، یک خطای بنیادی وجود دارد:
زبان ابزار ارتباط است، نه سندِ تبار. 😄 شمایی که دارید زور میزنید بگید کوروشی وجود نداشته یا اگر هم بوده ربطی به ما ایرانیها نداشته در حال تحریف تاریخ برای مصرف سیاسی امروزتون هستید! چون نون و آبتون رو سیستم داره میده! بایدم حرفش رو تأیید کنید.
من به عنوان کسی که هفت نسلم همینجا بوده یک آتورپاتکان یا همون (آذرآبادگانی) یعنی آذربایجانی امروزی ایران هستم سیر تا پیاز اینارو شخم زدم! تنها مهارتم برنامهنویسی نیست! بیا از تاریخ برات مستند درست میکنم کتابش میکنم چاپش میکنم همشون هم مستند با مراجع معتبر میکنم تو حلقت! من به ریشهٔ بیش از ۲۵۰۰~۲۷۰۰ سال پیش خودم افتخار میکنم نه به یک تمدنخوار که اون زمان فرقی با حیوان نداشته! که امروزه برای شما شده اسطوره!
اینکه زبان من ترکی هست، چیزی از این حقیقت کم نمیکنه اتفاقاً درستش رو بازگو کردم! زبان ما به مرور زمان از دوران سلجوقی با ادغام شدن قبایل اغوز ترکیب شده! این شمایید که خودتونو ربط میدین به یه مشت جانی و غارتگر و بهشون هم افتخار میکنید! جاهل خان! چرا میگم خان؟ چون خان رو به مغولیها میگن! اصلاً واژهٔ افتخاری خان به قوم مغول بر میگرده! اصلاً واژهٔ ایرانی یا ترکی نیست! برازندهٔ شماست...
هرچند این رو هم نمیفهمید که حتی اون چنگیزی که بهش افتخار میکنید ترک نبوده بلکه مدام در جنگ با ترکان بوده! از ترکیهایهای امروزی بپرسید بهتون میگن! چهارتا مستند به زبان ترکی استانبولی از زمان سلجوقی ایران باستان بخونید (منظورم ترکی رسمالخط تاریخی ایرانی) نه استانبولی لاتین امروزی! یا حتی فیلمهای مستند امروزیشون از دوران ارطغرل و عثمانی رو ببینید خواهید دید که همون چنگیز دشمن درجه یک ترکان زمانه بوده. حالا شما هی بهش افتخار کن... چقدر آدم باید جاهل و نادون باشه!
این رو بدون نه زبان، نه تبلیغات ایدئولوژیک، و نه فانتزیهای قومی نمیتونن تاریخ رو بازنویسی کنن! واقعاً آدم تهوع میگیره از طرز تفکر و باورهای مزخرفی که برای خودتون بلغور میکنید و زیر هر پستی مردم رو به تمسخر میگیرید. یکی باید شماهارو جمع کنه و این تفکرات پوسیدهٔ تفرقهاندازیتونو آتیش بزنه.
ما که میدونیم این کار سیستمه که حالا این رو بهونه کرده از تفکر شما استفاده کنه! چون مردم آگاهتر شدن از امثال شما نادونها باید استفاده کنن! مردم رو به جون هم بندازن. شما اول حقیقت رو برو پیدا کن ببین از کدوم گور برخواستی بعد برو به مردمی که اینهمه زیر فشار و ظلم قرار گرفتن فخر ترک بودن بفروش! بیشعور امثال شما ترک نیستید یه مشت نادونید که هنوز نمیفهمید ریشتون به چی بر میگرده! مرض بدیه آدم تکلیفش با خودش مشخص نباشه نه!؟
394
بگذارید هرکس به آیین خویش باشد ...
زنان را گرامی بدارید ...
فرودستان را دریابید ...
و هر کس به تکلم قبیلهٔ خود سخن بگوید ...
آدمی تنها در مقام خویش به منزلت خواهد رسید
گسستن زنجیرها آرزوی من است...
رهایی بندگان و عزت بزرگان آرزوی من است ...
شکوه شب و حرمت خورشید را گرامی میدارم ...
پس تا هست شبهایتان به شادی باشد و روزهایتان رازدار رهایی باد ...
این فرمان من است این واژه وصیت من است ...
او که آدمی را از ماوای خویش براند، خود نیز از خواب خوش رانده خواهد شد ...
تا هست هوادار دانایی و تندرستی باشید من چنین پنداشته، چنین گفته، و چنین خواستهام . . .
