کدهالیک | codehalic
Kanalga Telegram’da o‘tish
دوره های آموزشیمون رو از داخل سایت ببینید https://codehalic.ir
Ko'proq ko'rsatish4 070
Obunachilar
+924 soatlar
+167 kunlar
+31630 kunlar
Postlar arxiv
4 072
یه پروژه اُپن سورس جذاب واسه اینکه اکانت واتساپ رو به API تبدیل کنی!
رایگان و self-hosted هست، با پشتیبانی از Multi Session، انواع webhook ها و API برای فرستادن پیام و فایل، ساخت و مدیریت گروهها و ...
فقط کافیه کامند docker رو ران کنی تا روی لوکال بالا بیاد و بعدش QR کدش رو با گوشیت اسکن کنی :)
https://github.com/rmyndharis/OpenWA
Source
@codehalics | کدهالیک
4 072
FYI : For Your Information
شرکت یونیکورن به استارتاپ خصوصیای گفته میشه که ارزشگذاریاش به حداقل ۱ میلیارد دلار رسیده باشد.
مثلاً وقتی میگیم Cursor یک شرکت یونیکورن شده، یعنی سرمایهگذارها ارزش این شرکت را بیش از ۱ میلیارد دلار برآورد کردهاند، حتی اگر هنوز وارد بورس نشده باشد.
@codehalics | کدهالیک
4 072
حالا شاید این سؤال پیش بیاد که Cursor چطور تونست VS Code رو فورک کنه، روش محصول تجاری بسازه و حتی به یک شرکت یونیکورن تبدیل بشه؟ نکته اینجاست که Cursor خود نسخه رسمی Visual Studio Code مایکروسافت رو نفروخته؛ بلکه از Code - OSS استفاده کرده، یعنی نسخه متنباز VS Code که با لایسنس MIT منتشر شده. این لایسنس اجازه استفاده تجاری، تغییر، توزیع و حتی فروش رو میده، به شرط حفظ متن لایسنس و کپیرایت. به همین دلیل Cursor تونست روی این پایه، برند و قابلیتهای AI خودش رو بسازه و مدل تجاری مستقل خودش رو راه بندازه.
@codehalics | کدهالیک
4 072
شما اگر حلال حروم سرتون میشه هر پروژه اوپن سورسی یه فایل LICENSE.md داره ( البته اگر نداشته باشه یعنی حق نداری بفروشیش و حرومه )
حالا دسته بندیش این شکلیه
✅ لایسنسهایی که معمولاً اجازه استفاده تجاری و فروش میدن:
MIT
تقریباً آزادترین گزینههای رایج. میتونی استفاده کنی، تغییر بدی، داخل محصول تجاری بذاری و حتی بفروشی؛ فقط باید متن لایسنس و کپیرایت را نگه داری.
Apache 2.0
مثل MIT برای استفاده تجاری مناسبه، با این تفاوت که بحث حق اختراع / patent را هم شفافتر پوشش میده. باید تغییرات و متن لایسنس را حفظ کنی.
BSD
معمولاً شبیه MIT است؛ استفاده تجاری مجازه، ولی باید شرایط لایسنس و کپیرایت رعایت شود.
⚠️ لایسنسهایی که میشه باهاشون درآمد داشت، ولی شرط دارند:
GPL
میتونی نرمافزار را بفروشی، اما اگر نسخه تغییر یافته یا محصول مشتقشده را منتشر کنی، معمولاً باید سورسکد را هم با همان لایسنس GPL منتشر کنی.
AGPL
برای سرویسهای آنلاین سختگیرتره. حتی اگر نرمافزار را بهصورت SaaS اجرا کنی، ممکنه مجبور باشی سورس نسخه تغییر یافته را در اختیار کاربران سرویس بگذاری.
LGPL
برای کتابخانهها رایجه. استفاده تجاری ممکنه، اما باید مراقب نحوه لینک کردن و تغییر دادن کتابخانه باشی.
❌ چه چیزهایی معمولاً قابل فروش یا استفاده تجاری نیستند؟
ریپوی بدون لایسنس
اگر پروژه هیچ LICENSE ندارد، یعنی مجوز واضحی برای استفاده، تغییر، توزیع یا فروش نداری.
لایسنسهای Non-Commercial
مثلاً بعضی Creative Commonsها با عبارت NC اجازه استفاده تجاری نمیدهند.
لایسنسهای اختصاصی یا Source-Available
ممکنه کد قابل مشاهده باشد، اما فروش، استفاده تجاری یا ارائه بهعنوان سرویس ممنوع باشد.
@codehalics | کدهالیک
4 072
فارسی نداره ولی arabic داره پس rtl داره و بعد il18n رو کانفیگ کرده کل داستانش اینه که یه فایل جیسون توش ترجمه کنین و ایزی ایزی تمام تمام
بعد بگردید دنبال مشتری و بفروشین بهش
ایده درآمد زیاده واقعا حتی همین n8n ام دیدم یکی داره میفروشه ( با اینکه نمیشه فروختش و لایسنسش میگه نباید بفروشی ! ) اما خب یه ترای کنین چیزای خوبی میشه ازش درآورد احتمالا
@codehalics | کدهالیک
4 072
خیلی دیدم آدما میشینن یه ابزار درست میکنن برای نوبت دهی و این چیزا یه پروژه اوپن سورسی که میتونی لوکالایزش کنی و بفروشیش همین پروژه cal.diy عه که خیلی تر تمیز و خفن با nextjs و trpc و اینا دولوپ شده میتونی سلف هاستد بیاری بالا بفروشیش به کلینیک های دندون پزشکی و آرایشگاها و اینا ! خیلی تر تمیزم هست واقعا و دیزاین خیلی خفنی داره بنظرم این ایده ها میتونه جذاب باشه ما که ایرانیزه میکنیم میتونیم اینارم بزنیم بفروشیم یه رزق حلالی ( ایشاله البته لایسنسش اجازه میده بهتون که حلال وار ازش پول درارید ) بزنید بر بدن !
https://github.com/calcom/cal.diy
@codehalics | کدهالیک
4 072
توی مک ابزار های زیادی برای وصل شدن به دیتابیس هست مثل navicat و datagrip و غیره که بعضا پولین
یه ابزار خیلی خوب که اوپن سورس و رایگانه و دیزاین شکیل و مک پسندی هم داره tablepro عه بنظرم ارزش نگاه کردن داره یه سر به ریپوش و سایتش بزنید !
https://tablepro.app/
https://github.com/TableProApp/TablePro
@codehalics | کدهالیک
4 072
این قانون یه جمله طلایی داره که کرنیگان توی کتابش توی سال 1974(ببین دغدغه ملتو) نوشته که میگه :
The clever version might have taken 30 minutes to write, but debugging took 3 hours. Had the code been written clearly, it would’ve taken 45 minutes to write, but only 30 minutes to debug later.
@codehalics | کدهالیک
4 072
به طور مثال میگه یه روز پا میشی میای همچین کدی مینویسی میگی به به چه چه :
public string GetUserDisplay(User u) =>
u?.IsActive == true ? (u.Name ?? "").Trim() is var n && n.Length > 0
? n + (u.Role > 0 ? $" ({(Role)u.Role})" : "") : "Unknown" : "Inactive";
پس فردا یه باگ میخوری ولی نمیدونی از کدوم قسمتش ممکنه باشه چون بسیار خفن و پیچیده نوشتی ولی دیگ یه سال دیگ عقل امروزت که کدتو نوشتی رو نداری برمیگردی میگی این شتو کی نوشته بعد گیت لنز رو نگاه میکنی میبینی عه ایمیل خودته !
ولی میتونستی اینطوری بنویسیش
public string GetUserDisplay(User user)
{
if (user is null || !user.IsActive)
return "Inactive";
var name = user.Name?.Trim();
if (string.IsNullOrEmpty(name))
return "Unknown";
if (user.Role > 0)
return $"{name} ({(Role)user.Role})";
return name;
}
از نظر عملکرد کاملا مشابه هم دیگس ولی خوانایی این کد کجا اون کجا پس KISS مرد بزرگ !
@codehalics | کدهالیک4 072
خب امروز یکی دیگ از قوانین مهندسی نرم افزار که داره به KISS صحه میزاره رو قراره بررسی کنیم !
قانون کرنیگان میگه وقتی کدی رو زیادی پیچیده و هوشمندانه مینویسی، بعداً برای پیدا کردن باگهاش چند برابر بیشتر اذیت میشی. موقع نوشتن کد، همهچیز توی ذهنت واضحه، ولی چند روز یا چند ماه بعد، همون کد میتونه برات تبدیل به یه معما بشه. پس بهتره کد رو ساده، خوانا و قابلفهم بنویسی؛ چون کدی که راحت فهمیده میشه، راحتتر هم درست و نگهداری میشه.
#lawsofsoftwareengineering
@codehalics | کدهالیک
4 072
اثر سیگموئیدی خیلی ساده میگه هر چیزی که یه مدت رشد نمایی و انفجاری داره، بالاخره یه جایی به محدودیت میخوره و رشدش کند میشه؛ یعنی نمودارش از حالت «همینجوری میره بالا» تبدیل میشه به یه منحنی S شکل که کمکم صاف میشه. نویسنده این مقاله میگه این حرف درسته، اما مشکل اینجاست که بعضیها ازش یه نتیجه اشتباه میگیرن: میگن چون هوش مصنوعی هم بالاخره یه روزی کند میشه، پس الان لازم نیست خیلی جدی نگران رشد سریعش باشیم. حرف اصلی متن اینه که «کند شدنِ یک روند» حتماً اتفاق میافته، ولی هیچ تضمینی نیست که همین الان یا همین یکی دو سال آینده اتفاق بیفته. درباره هوش مصنوعی هم میگه اگر کسی ادعا میکنه رشد AI قبل از رسیدن به سطحهای خیلی جدی و خطرناک متوقف میشه، باید دقیق توضیح بده چرا؛ مثلاً به خاطر محدودیت دیتاسنتر، داده، هزینه، الگوریتم یا چیزهای واقعی دیگه. صرفاً گفتنِ «همه رشدها آخرش سیگموئیدی میشن» کافی نیست، چون ممکنه هوش مصنوعی قبل از اینکه کند بشه، چند سال دیگه هم با همین سرعت جلو بره.
https://www.astralcodexten.com/p/the-sigmoids-wont-save-you
@codehalics | کدهالیک
4 072
با این لایبری که نوشتم به راحتی و بدون بروزر و در یک ثانیه میتونید چلنج آروان رو (همون که مینویسه «در ﺣﺎل اﻧﺘﻘﺎل ﺑﻪ ﺳﺎﯾﺖ ﻣﻮرد ﻧﻈﺮ ﻫﺴﺘﯿﺪ...») که مثلاً برای جلوگیری از کراولر و روباتهاست رو دور بزنید.
سورس رایگان:
https://github.com/NabiKAZ/arvancloud-bypass
Source
@codehalics | کدهالیک
4 072
بهم ریختگی فارسی تو ترمینال #vscode با این درست میشه:
"terminal.integrated.fontFamily": "Cascadia Mono, Vazirmatn FD, Consolas, Courier New, monospace",
"terminal.integrated.gpuAcceleration": "off",
"terminal.integrated.fontSize": 15,
"terminal.integrated.lineHeight": 1.1,
سورس پست
@codehalics | کدهالیک4 072
Repost from کار باشه !
📢 فرصت همکاری ریموت (پروکسی)
- Django+React
- Node+React
شرایط: حداقل ۴ سال سابقه مرتبط، مکالمه انگلیسی عالی، اینترنت پایدار (ترجیحاً خارج از ایران؛ اگر داخل ایران هستید اینترنت ثابت و مطمئن لازمه).
حقوق: از ماهی ۲۰۰۰ دلار (پرداخت با USDT)
ارسال رزومه:
رزومهتون رو بفرستید به Yasaman.aboodi@gmail.com
فقط لطفاً عنوان موقعیت رو توی Subject ایمیل بنویسید.
منتظر رزومه هاتون هستیم.
#backend
#frontend
➖➖➖➖➖➖➖➖➖➖
💬 @job_bashe | گروه کار باشه با دسته بندی شغلی
📢 @karbashe_ir | کانال کار باشه
4 072
لکسورنک دقیقا برای حل مشکل reorder کردن لیستهای خیلی بزرگه. مثلا توی جیرا وقتی یه تسک رو drag میکنی بین دوتا تسک دیگه، نمیاد position صد هزار تا رکورد رو آپدیت کنه چون از نظر دیتابیسی فاجعهست. به جاش هر تسک یه rank استرینگی داره که sortable ـه و الگوریتم میتونه همیشه بین دو تا rank یه rank جدید بسازه. مثلا اگه داشته باشیم:
ali_1210
ali_1211
و بخوای یه تسک بین این دوتا بیاد، میتونه یه چیزی مثل ali_1210V تولید کنه که وقتی sort الفبایی انجام بشه دقیقا بین اون دوتا بشینه، بدون اینکه بقیه آیتمها reorder بشن.
اصل ایدهش اینه که به جای integer sequence از fractional string استفاده میکنه. یعنی همیشه میشه قبل یا بعد یه آیتم یه rank جدید ساخت و فقط همون رکورد آپدیت میشه. برای همین performance روی board های خیلی بزرگ عالی میمونه و drag & drop عملا O(1) میشه. فقط اگر سالها هی بین دو آیتم insert انجام بشه، رشتهها ممکنه خیلی بلند بشن و سیستم هر از گاهی یه rebalance انجام بده تا rank ها normalize بشن.
@codehalics | کدهالیک4 072
خب بریم من یه مثال مشخص ازش بزنم
تسک های جیرا الان همین شکلیه وقتی اولویت یه تسک رو تغییر میدی میاری پایین تر از اون یکی خب خیلی سخته بخوای ۱۰۰ هزارتا تسک ری اردر کنی فاجعه میشه دیتابیست نابود میشه
برای همین یه الگوریتمی نوشتن به اسم LexoRank که این کارش اینه که بتونم Fractional String درست کنه که دقیقا در هر لحظه بتونم قبل یا بعد یه چیزی یه استرینگی بزاره که وقتی سورت با حروف الفبا شد بر همون اساس بشینه !
مثلا به طور نمونه فرض کنین یه بوردی توی جیرا دارید به اسم Ali
4 072
این پست داره راجب ۳ تا تکنیک برای ریاردر کردن لیست حرف میزنه:
• بدترین مدل: هر آیتم یه عدد ترتیبی میگیره (۱،۲،۳،۴،۵). اگه یکی جابجا بشه، مجبوری تقریبا همه آیتمهای بعدی رو دوباره شمارهگذاری کنی → O(N) آپدیت، خیلی کند و سنگین.
• مدل دوم (وسط): همون عدد ولی با گپ (فاصله). مثلاً به جای ۱،۲،۳،۴،۵ مینویسی ۱۰،۲۰،۳۰،۴۰،۵۰. حالا میتونی بین ۲۰ و ۳۰ راحت ۲۵ بذاری بدون ریاردر همه → بیشتر عملیات O(1).
مشکل: آخرش گپها پر میشن و collision پیش میاد، مجبوری یه بار همه رو بازسازی کنی (خرابکاری).
• مدل سوم (بهترین): به جای عدد از رشته lexico استفاده میکنی (a, aa, ab, b, caa و …).
همیشه میتونی بدون تغییر بقیه آیتمها، یه رشته جدید دقیقاً بین دو تا موجود بسازی. حتی اگه خیلی نزدیک بشن، با طولانیتر کردن رشته بازم جا پیدا میکنی. تقریبا همیشه O(1) و فوقالعاده scalable (مثل LexoRank در Jira).
سورس این پست از لینکدین پوریا فرامرزی
@codehalics | کدهالیک
4 072
+1
خب امروز یه آف تاپیک بزارم تو گروه
بچه ها میخوام 15 pro max ام رو بفروشم ZAA عه ۲۵۶ گیگ و رنگشم نچرال تیتانیوم عه هلث اش الان شده ۸۹ و سایکل ۳۷۶ عه
قیمت نو دستگاهش امروز زدن ۳۲۰ ت من ۱۰۰ ت زیر قیمت نو اش با رجیستری بهتون میدم ۲۲۰ ت (با رجیستری )
گوشی بدون خط و خش و گلس و قاب و پک اصلی تقدیم میشه
دست یه آقای برنامه نویس بوده باهاش کاری نمیکرده کلا گوشی دومم بوده این الان بنظرم لازمه دیگ بفروشمش دی:
@codehalics | کدهالیک
4 072
هر روز اینترنت باز میکنی اینو هک کردیم اونو اکسپلویت کردیم اینور بک دور کشف شد !
این چه وضعشه آقا چارتا خبر دست اول بدرد بخور بدید یکم حالمون تو این بی اینترنتیه خوب شه :)))))))
@codehalics | کدهالیک
4 072
🚨 یه آسیبپذیری خیلی جدی توی Next.js پیدا شده (CVSS 8.6) که نسخههای 13.4.13 به بعد، سری 14 و 15، و همینطور 16.0.0 تا 16.2.4 رو درگیر کرده.
این باگ از نوع SSRF ـه و مهاجم میتونه فقط با یه request ساده و بدون لاگین، به سرویسهای داخلی، API Keyها، credentialهای cloud و حتی پنلهای ادمین دسترسی پیدا کنه 😐
گفته میشه الان حدود ۷۹ هزار instance آسیبپذیر روی اینترنت وجود داره.
البته اپهایی که روی Vercel هستن امن اعلام شدن و بیشتر self-hostedها در خطرن.
اگر از Next.js استفاده میکنید، سریعاً به نسخههای زیر آپدیت کنید:
✅ 15.5.16
✅ 16.2.5+
https://hadrian.io/blog/next-js-websocket-ssrf-unauthenticated-access-to-internal-resources-cve-2026-44578-2
@codehalics | کدهالیک
