Dev Perfects
40 subscribers
9.23K photos
1.26K videos
468 files
13K links
بخوام خیلی خلاصه بگم
این کانال میاد مطالب کانالای خفن تو حوزه تکنولوژی و برنامه نویسی رو جمع میکنه

پست پین رو بخونید
https://t.iss.one/dev_perfects/455


ارتباط:
https://t.iss.one/HidenChat_Bot?start=936082426
Download Telegram
Forwarded from Linuxor ?
کلادفلر قراره نقش پلیس محافظ تولید کنندگان محتوا رو بازی کنه، هفته پیش یه ارز دیجیتالی به اسم NET Dollar معرفی کرد که قراره ارزشش یه دلار باشه و وقتی هوش مصنوعی از محتوای سایت شما محتوا تغذیه می‌کنه با سرعت خیلی بالایی بتونه این پولو پرداخت کنه و این پول به حساب شما بیاد

هنوز چیز زیادی ازش در دست نیست ولی تنها نجات دهنده تولید کننده های محتوا که سایت دارن کلادفلره خیلی راحت میتونه ربات های هوش مصنوعی که از اطلاعات تغذیه میکنن رو وادار کنه که پول بابت محتوا ها پول بدن.

همه کمپانی های بزرگ قطعا مخالفشن ولی تصمیم گیرنده نهایی کلادفلره بخواد مثل آب خوردن همه ربات ها حتی جلوی ربات های گوگل از تغدیه مفتی رو می‌گیره.

@Linuxor
Forwarded from Linuxor ?
با بالا رفتن دلار امیدوارم هرچه زود تر این پروژه لانچ بشه، تولید محتوا با ارزش دلاری، یه درامد قوی برای کشور های با ارزش پول پایین مثل ایران می‌شه


@Linuxor
Forwarded from a pessimistic researcher (Kc)
خب مثکه نتایج ارشد اومده، چه خبرا؟ :)
Forwarded from 🎄 یک برنامه نویس تنبل (Lazy 🌱)
🔶 آیا خرید اقساطی با برنامه‌های BNPL نشانه بحران اقتصادی است؟

این روزها نرم‌افزار های «امروز بخر، بعداً پرداخت کن» (BNPL) به سرعت در جهان محبوب شده‌اند. بیش از ۳۶۵ میلیون نفر در سال ۲۰۲۴ از این سرویس‌ها استفاده کرده‌اند

اما چرا مردم تا این حد به این ابزارها وابسته شده‌اند؟
دلیل اصلی ساده است: کمبود نقدینگی. بسیاری از خانواده‌ها پول نقد خود را برای اجاره و اقساط کنار می‌گذارند و برای خرید کالاهای روزمره یا حتی مواد غذایی سراغ BNPL می‌روند.

درآمد این صنعت در سال ۲۰۲۴ به ۱۲.۵ میلیارد دلار رسید و بازیگرانی مانند Klarna، Affirm و Afterpay و در ایران Tara 360 بخش عمده‌ای از این بازار را در اختیار دارند. اما این رشد ظاهری، پیامدهای عمیقی دارد:

رشد ظاهری مصرف:
فروشگاه ‌ها سود می‌برند اما خریدها بر پایه بدهی است، نه درآمد واقعی.
انباشت بدهی خرد:
اقساط کوچک وقتی جمع شوند، به بحران بزرگ تبدیل می‌شوند.
فرهنگ بدهی روزمره:
نسل جوان یاد می‌گیرد که بدون وام نمی‌توان زندگی کرد.

ایده BNPL تنها یک نوآوری مالی نیست؛ بلکه آینه ‌ای از واقعیت امروز است: اقتصاد بدهی ‌محور و نقدینگی کمیاب.

#خبر

@TheRaymondDev
Forwarded from 🎄 یک برنامه نویس تنبل (Lazy 🌱)
🔶 در بخش دوره ها و مقالات تغییرات انجام دادم و دارک مدش بهتر کردم.

نظرت چیه؟

#موقت

@TheRaymondDev
Forwarded from 🎄 یک برنامه نویس تنبل (Lazy 🌱)
🔶 در بخش مقالات و دوره ها تغییراتی انجام دادم و دارک مدش بهتر کردم.

نظرت چیه؟

#موقت

@TheRaymondDev
Forwarded from 🎄 یک برنامه نویس تنبل (Lazy 🌱)
🔶 به گفته‌ی آرون کومار، استاد برجسته اقتصاد هند, تولید ناخالص داخلی واقعی ما ۲.۵ تریلیون دلار است، نه ۴ تریلیون دلار. او معتقد است از زمان اجرای سیاست حذف اسکناس‌های درشت، رشد اقتصادی ما به طور متوسط تنها ۱ تا ۲ درصد بوده و آنچه به ‌عنوان رشد پر زرق ‌و برق اقتصادی نشان داده می‌شود، حاصل محاسبات نادرست در برآورد GDP است.

#خبر

@TheRaymondDev
Forwarded from 🎄 یک برنامه نویس تنبل (Lazy 🌱)
🔶 گوگل پارامتر num=100 را حذف کرده و حالا فقط ۱۰ نتیجه جستجو نمایش داده می‌شود. این تغییر باعث شده دسترسی مدل‌های هوش مصنوعی و سایت‌ها به نتایج کاهش یابد؛ ۸۸٪ سایت‌ها افت بازدید داشته‌اند و سهام ردیت ۱۵٪ سقوط کرده است.

پیام اصلی: در فضای جدید اینترنت، توزیع و دیده‌شدن مهم‌تر از خود محصول است.

#توییت

@TheRaymondDev
Forwarded from Gopher Academy
🔵 عنوان مقاله
PegoMock 4.3: A Powerful Yet Simple Mocking Framework

🟢 خلاصه مقاله:
**PegoMock 4.3 یک فریمورک mocking ساده اما قدرتمند است که با یک DSL خوانا نوشتن، خواندن و نگه‌داری تست‌ها را آسان می‌کند. هسته اصلی آن، زبانی است که به‌جای کدهای طولانی، نیت تست را شفاف بیان می‌کند. این ابزار از stubbing و argument matching پشتیبانی می‌کند؛ یعنی می‌توانید رفتار وابستگی‌های شبیه‌سازی‌شده را تعریف کنید و بر اساس الگوهای ورودی، انتظارها را دقیق و انعطاف‌پذیر تنظیم کنید. نتیجه، تست‌هایی شفاف، کم‌بوایلرپلیت و قابل اتکا برای تیم‌هاست.

#Testing #Mocking #DSL #UnitTesting #Stubbing #ArgumentMatching #TestAutomation

🟣لینک مقاله:
https://golangweekly.com/link/175072/web


👑 @gopher_academy
Forwarded from Software Engineer Labdon
کامپیوترها برای نگهداری و نمایش کاراکترهای یک متن از یه فضای یک بایتی (معادل هشت بیت 0 یا 1) استفاده میکردن
این میزان فضا توی کامپیوتر میتونه شامل 255 حالت مختلف بشه
کامپیوترها برای نشانه‌های گرامری، حروف انگلیسی و عدد از استاندارد اسکی (ASCII) استفاده میکردن
این استاندارد آمریکایی میاد برای هر کاراکتر یه معادل عددی تعریف میکنه
مثلا کاراکتر A در اسکی معادل عدد 65هست
قرار گرفتن این اعداد پشت سر هم در کامپیوتر یک متن رو میسازه

مشابه این استاندارد معادل عددی برای پشتیبانی از تمام زبان‌های دنیا به وجود اومد که یونیکد (Unicode) نام داره
کاراکترهای انگلیسی و اعداد انگلیسی توی یونیکد از همون اعداد استاندارد اسکی استفاده میکنن و در ادامه پشتیبانی از کاراکترهای بقیه زبان‌های دنیا بهش اضافه میشه

یونیکد در حال حاضر دارای چیزی حدود 297,000 معادل عددی برای کاراکترهای مختلف از زبان‌های مختلف، اموجی‌ها و ... هست
فضای یک بایتی برای پشتیبانی از این میزان حالت‌های مختلف کافی نیس
شما برای این جا دادن این میزان از حالت‌های مختلف به شکل بیت کامیپوتر به حداقل سه بایت نیاز دارین
سه بایت میتونه تا حدود 16 میلیون عدد مختلف رو برای شما نگه داری کنه

حالا شما برای نگهداری یک متن که شامل کاراکترهای
یونیکد هست نیاز دارین 3 بایت برای هر کاراکتر اختصاص بدین
کاراکترهای انگلیسی تو یونیکد تنها یک بایت هم براشون کافیه ولی اگه شما برای یه متن انگلیسی، هر کاراکتر رو سه بایت در نظر بگیرین عملا به ازای هر کاراکتر انگلیسی دو بایت فضا رو هدر دادین
مثلا تو یه متن با ده هزار کاراکتر،
یه چیزی حدود 20 کیلوبایت فضای کامپیوتر رو هدر دادین
چه وقتی میخاین ازش استفاده کنین و توی رم هست و چه وقتی که روی هارد دیسک برای استفاده در آینده ذخیره شده

اینجاست که UTF-8 میتونه کمک کنه

این استاندارد که توسط یونیکد تعریف شده به جای اینکه بیاد فضای 3 بایتی به هر کاراکتر
اختصاص بده، میاد از 7 بیت راست یک بایت برای کاراکترهای اسکی استفاده میکنه

و برای کاراکترهای بعدی علاوه بر خود کاراکتر، تعداد بایت مصرف شده برای اون کاراکتر هم داخل بایت اول ذخیره میکنه
یعنی 128 کاراکتر اول اسکی به شکل عادی ذخیره میشن بدون تغییر خاصی با فقط یک بایت فضا

ولی برای کاراکترهای بعدی میاد و داخل بایت اول مشخص میکنه چه میزان فضا برای کاراکتر استفاده شده

این میزان فضا از یک بایت تا چهاربایت میتونه متغیر باشه

حالا چه شکلی اینکارو میکنه
تو یه بایت برای 128 عدد اولیه اسکی، بیت چپ همیشه صفر هست

اما وقتی بیت چپ یک میشه یعنی با یه کاراکتر UTF8 طرف هستیم

همونطور که گفتم هر کاراکتر توی UTF-8 میتونه از یک بایت تا چهاربایت متغیر باشه

کامپیوتر چطور اینو تشخیص میده؟

بیت‌های 1 اولِ بایت رو میشماره تا به عدد 0 صفر برسه
یعنی اگه بایت اول با عدد باینری 110 شروع بشه، یعنی دوبایت فضا استفاده شده
اگه 1110 باشه سه بایت و ...

تو UTF-8 فضای بیت‌های بایت اول بین خود کاراکتر و تعداد بایت تقسیم میشه و متغیره

اما تو بایت‌های دوم و سوم و چهارم همیشه شش تا بیت راست برای خود کاراکتر استفاده میشه و دو بیت دیگه برای هندل کردن ارور تو utf-8 استفاده میشه
امیدوارم تونسته باشم با دانش ناقص خودم شما رو در مورد این انکدینگ رایج دنیای کامپیوتر آشنا کرده باشم

توضیحات دقیق‌تر:
https://en.wikipedia.org/wiki/UTF-8

سایت استفاده شده برای تست بایت UTF-8:
https://utf8-playground.netlify.app/


| <Amir/>
Forwarded from Gopher Academy
🔵 عنوان مقاله
Failsafe: Fault Tolerance, Resilience Patterns & Policies

🟢 خلاصه مقاله:
Failsafe یک کتابخانه برای ساخت اپلیکیشن‌های fault-tolerant است که به شما امکان می‌دهد کدهای حساس را با مجموعه‌ای از سیاست‌های تاب‌آور مانند Retry، CircuitBreaker، RateLimiter، Timeout و Fallback بپوشانید. این سیاست‌ها قابل ترکیب‌اند و بدون تغییر منطق کسب‌وکار، حفاظت‌های چندلایه ایجاد می‌کنند.

در نسخه‌های اخیر، دو قابلیت کلیدی اضافه شده است: نخست، usage tracking برای اعمال عدالت و جلوگیری از اثر “noisy neighbor” از طریق پایش مصرف و اجرای محدودیت‌ها یا سهمیه‌ها. دوم، execution budgets برای تعیین سقف کلی هزینه اعمال تاب‌آوری—مثل مجموع retries یا hedges—در سطح یک فراخوانی، جریان کاری یا کل سیستم. این بودجه‌ها مانع از افراط در بازیابی می‌شوند و تعادلی بین نرخ موفقیت، تأخیر، هزینه و SLOها برقرار می‌کنند.

خروجی این رویکرد، عملکرد قابل‌پیش‌بینی‌تر، تنزل کنترل‌شده در شرایط خطا و اعمال سیاست‌های عملیاتی سازگار در برابر رخدادها و اوج ترافیک است.

#FaultTolerance #Resilience #Failsafe #Retry #CircuitBreaker #RateLimiter #Timeout #Fallback

🟣لینک مقاله:
https://golangweekly.com/link/175069/web


👑 @gopher_academy
Forwarded from Future Pulse Persian
پاول دورُف: حاضرَم بمیرم، ولی آزادی و امنیت کاربران رو نفروشم!

در گفت‌وگوی عمیق با «لِکس فریدمن»، بنیان‌گذار تلگرام از فلسفهٔ زندگی، حریم خصوصی، بیت‌کوین و مقاومتش در برابر فشار دولت‌ها گفت.
> 🗣
«من ترجیح می‌دم بمیرم و تمام داراییم رو از دست بدهم تا اینکه اطلاعات کاربران رو به هر دولتی تحویل بدم.
آزادی و امنیت داده‌ها، خط قرمز من و تلگرامه.»

🔒

او تأکید کرد تلگرام هیچ‌وقت “در پشتی” برای دولت‌ها باز نکرده و در برابر فشار روسیه و ایران برای دسترسی به اطلاعات یا سانسور مقاومت کرده است.
>
«در روسیه و ایران بارها تلاش شد ما رو مجبور به همکاری کنن. ولی ما مقاومت کردیم چون اگر یک‌بار کوتاه بیای، دیگه آزادی واقعی وجود نداره.»



📱 ۷ اصل فکری و مدیریتی پاول دورُف (بر اساس مصاحبه):

1️⃣ آزادی و اخلاق بالاتر از هر سود مالی — او می‌گوید حاضر است تمام دارایی‌اش را از دست بدهد تا آزادی بیان و امنیت کاربران حفظ شود.

2️⃣ مینیمالیسم و انضباط شخصی — سبک زندگی‌اش ساده، بدون الکل، قهوه یا حواس‌پرتی است؛ تمرکز کامل روی مأموریت و نظم ذهنی.

3️⃣ تیم کوچک، تأثیر بزرگ — معتقد است تیم‌های بزرگ بهره‌وری را می‌کُشند؛ موفقیت تلگرام حاصل اعتماد به چند نابغهٔ منضبط است.

4️⃣ مقاومت در برابر سانسور و در پشتی — هیچ دولت یا شرکتی حق کنترل یا شنود تلگرام را ندارد. رمزنگاری و طراحی MTProto را «دیوار آزادی دیجیتال» می‌نامد.

5️⃣ پول و قدرت ابزارند، نه هدف — او از مدل‌های انحصاری و کمیسیون‌های اپل و گوگل انتقاد می‌کند و تأکید دارد که ثروت نباید آزادی را محدود کند.

6️⃣ باور به فناوری آزاد مثل بیت‌کوین — بیت‌کوین را «نمادِ کاهش نیاز به اعتماد به واسطه‌ها و آزادی مالی» می‌داند؛ از پروژه TON به‌عنوان زیربنای اقتصاد آزاد تلگرام یاد می‌کند.

7️⃣ نگاه فلسفی به زندگی و مرگ — از کافکا، شوپنهاور و «جاودانگی کوانتومی» می‌گوید؛ باور دارد انسان باید بدون ترس از مرگ، بر پایهٔ ارزش‌های خودش زندگی کند.
📄 دستور cat در لینوکس
کلمه‌ی cat مخفف concatenate هست، یعنی به هم چسباندن.

کار اصلی این دستور نمایش محتوا و یا اتصال چند فایل متنی به هم است.
اپشن‌های متداول:
cat a.txt  نمایش
cat a.txt b.txt چند فایل با هم
cat > c.txt ایجاد فایل
cat >> file.txt اضافه کردن
cat a.txt b.txt > c.txt ترکیب
cat -n file.txt شماره گذاری
cat -v file.txt نمایش غیرقابل چاپ

⚙️ آپشن‌های پرکاربرد
-n → شماره‌گذاری همه خطو
-b → شماره‌گذاری فقط خطوط غیرخالی
-s → حذف خطوط خالی تکراری
-E → نمایش $ در انتهای هر خط
-T → نمایش تب‌ها به شکل ^I
-A → ترکیب همه (نمایش همه کاراکترهای خاص)

🔥 پیشنهاد مهرداد لینوکسی😎
میتوانید از bat به جای cat استفاده کنید و در شل cat را alias کنید
رنگی است و خروجی مرتب تری داره
alias cat="batcat"

ابزار tac (راهنمایی سایت گنو اینجا) عکس این دستور است
#دیوار_لینوکس
@MehrdadLinuxchannel
#Linux #لینوکس
#linux_command
Forwarded from هزارتو
Forwarded from هزارتو
در این دوره، می‌کوشیم سری به سرآغازهای داستان بزنیم، و با نگاهی به بعضی آثار ماندگار تاریخ ادبیات داستانی، به پیدایش رمان در جهان جدید برسیم. هرچند تلاش می‌کنیم در طی دوره، از آراء و نظرات متفکران و نویسندگان مهم و مؤثر بهره ببریم، اما مسیر حرکت‌مان را محدود به نظریه‌ی ادبی نخواهیم کرد، و می‌کوشیم از لابه‌لای خطوط خود قصه‌ها، به رازورمز و تحول‌شان بپردازیم. درانتها، با نگاهی به تحولات تاریخی و اجتماعی، خواهیم دید چگونه سروکلّه‌ی رمان پیدا می‌شود، و نظریه‌ی رمان مقصد نهایی ما خواهد بود.

در صورت تمایل برای شرکت در این دوره، به شناسه‌ی زیر پیام دهید 👇🏻
@Neemalavi


@hezaartoomag
یه استفاده که من اخیرا از git hook کردم ابن بود که مطمین بشم کامیت مسیج های یه سری پروژه خاص، یه فرمت خاصی رو رعایت میکنن. برای این کار از هوک commit-msg استفاده کردم. این هوک هم میاد قبل از این که واقعا کامیت صورت بگیره اجرا میشه و کامیت مسیج رو دریافت می‌کنه. در نهایت با کمک exit code میتونید مشخص کنید که کامیت مورد تایید هست یا باید ریجکت بشه.

کدی که من نوشتم:

#!/bin/bash
commit_regex='some regex'
error_msg="Aborting commit."
if ! grep -E "$commit_regex" "$1"; then    echo "$error_msg" >&2
  exit 1
fi
این فایل باید به این اسم سیو بشه: commit-msg توی پوشه hooks اون ریپوزیتوری.


اما حالا برای این که این اسکریپت رو همه جا تکرار نکنم چیکار کردم؟ اومدم از core hooks استفاده کردم. به این شکل میتونم بگم پوشه هوک دیفالت برای همه پروره‌ها یکی باشه و نیاز نیست برم داخل هر پروژه تک تک چک کنم.

کامندی که استفاده کردم اینه:
git config core.hooksPath

و نهایتا کانفیگ گیت اینطوری میشه:
[core]
hooksPath = /path/to/hooks/dir


اما اینجا هنوز یه تیکه گمشده دیگه هست. با این تغییراتی که من دادم این فرمت برای همه‌ی پروژه ها روی سیستمم اعمال شد ولی من اینو نمی‌خوام، بلکه می‌خوام فقط توی پروژه خاصی خاصی اعمال بشه. کاری که میکنم استفاده از conditional config توی گیته. قضیه اینطوریه که یه فایل کانفیگ ثانویه می‌سازم که این کانفیگ توش نوشته شده و توی کانفیگ اصلی میگم includeif: یعنی فقط وقتی این کانفیگ رو اعمال کن که پوشه گیت من داخل یکی از این پوشه ها بود یا داخل مسیری بود که این پترن رو داشت.

منابع:
https://git-scm.com/docs/githooks
و
https://dev.to/chaz8080/git-smart-streamlining-your-workflow-with-the-prepare-commit-msg-hook-432p
و
https://medium.com/@mrjink/using-includeif-to-manage-your-git-identities-bcc99447b04b


و اگه خواستید دقیقش رو توی dotfile م ببینید:

https://github.com/rsharifnasab/dotfiles/blob/2b3ba235c300e8a5dbec53a7a84dde350ca372af/configs/.config/git/config#L51
و
https://github.com/rsharifnasab/dotfiles/blob/37f0812046ef9eceb7c3e18ff0e9fb6b30843828/configs/.config/git/snapp#L9
Forwarded from جادی | Jadi
Maktabkhoone GIT tutorial progress
███████████░░░░░░░░░ [55%]
Forwarded from جادی | Jadi
Maktabkhoone GIT tutorial progress
███████████░░░░░░░░░ [55%]