Oxin Code
7.82K subscribers
342 photos
50 videos
63 files
280 links
جمعی از فعالان حوزه کامپیوتر و علوم محاسباتی👇
@Oxin_Code
.
ایران 🇮🇷 | استرالیا 🇦🇺
.
ادمین👇
@OxinCode_Admin
Download Telegram
سلام بچه‌ها، امروز یه نکته مهم درباره مسیر برنامه‌نویس شدن می‌خوایم بگیم.

🔹 خیلی وقت‌ها تو گیت‌هاب می‌گردیم و فکر می‌کنیم بقیه چند سال نوری جلوترن، ولی واقعیت اینه که همه توسعه‌دهنده‌های بزرگ، از یک Pull Request کوچیک شروع کردن 😉

🔹 تو هم اگه میخوای شروع کنی، پروژه‌های Open Source دقیقاً همون جاییه که می‌تونی.

#برنامه‌نویسی #گیت #گیت‌هاب
----------
🆔 @OxinCode
💥 سلام، امروز می‌خوایم فقط یه تلنگر ساده بزنیم به اون‌هایی که خودشون رو بی‌دلیل درگیر الگوهای طراحی و معماری‌های پیچیده می‌کنن!

🔹 اصلا خوب نیست برای یه کار ساده، مثل نمایش اسم کاربر، بریم سراغِ
Factory + Strategy + Observer + Repository + Service Layer

🔹 واقعیت تخصصی ماجرا اینه که
Over-Engineering
نه فقط سرعت توسعه رو کم می‌کنه، بلکه Debt می‌سازه و Testability رو هم سخت‌تر می‌کنه.

🔹 نود درصد مواقع یک فانکشن ساده و یک کلاس تمیز، بهتر از سه لایه Abstraction اضافه‌ست.

🔹 سادگی هنر معماری نرم‌افزاره. گاهی فقط باید کمتر پیچیده‌ش کنیم.

#برنامه‌نویسی #مهندسی_نرم‌افزار
----------
🆔 @OxinCode
💥 معرفی Domain Locker ابزاری برای مدیریت همه دامنه‌ها در یک جا

🔹 اگه چند تا دامنه داری و همیشه سختت می‌شه تاریخ انقضا، DNS و یا اطلاعات رجیسترار رو مدیریت کنی، این ابزار دقیقاً همون چیزیه که لازم داری.

🔹 این پروژه متن‌باز (MIT) هست و توسط Alicia Sykes توسعه داده شده.
🔹 همه دامنه‌هات رو یک‌جا جمع می‌کنه و مرتب مانیتورشون می‌کنه.
🔹 از تغییرات مهم، مشکلات امنیتی یا نزدیک شدن به تاریخ انقضا بهت نوتیفیکیشن می‌ده.

دموی آنلاین هم دارد:
demo.domain-locker.com
یوزر:
demo@domain-locker.com
پسورد:
domainlocker
گیت هاب پروژه:
https://github.com/lissy93/domain-locker?ref=dailydev

#معرفی_ابزار #معرفی_سایت
----------
🆔 @OxinCode
🌐 ایا میدانید Openness چیست؟

این مفهوم یعنی شفافیت و اعتماد در داده‌ها

این مفهوم از این جهت مهم است تا از وابستگی به یک فروشنده جلوگیری شود و انعطاف‌پذیری سیستم حفظ شود.

با استفاده از فرمت‌های استاندارد باز مثلِ
Data Lake Table Formats
امکان تغییر ابزار یا فروشنده بدون از دست رفتن داده‌ها فراهم می‌شود و سیستم‌ها در مواقع اضطراری قابل اصلاح هستند.

مثال‌ها شامل موارد زیر است که همگی با استانداردهای باز کار می‌کنند و از
Vendor Lock-in
جلوگیری می‌کنند 👇

🔹 Open Data Stack، Databricks Data
🔹 Lakehouse، Snowflake
🔹 Dremio


پیام اصلی این است که داده‌ها باید باز، استاندارد و قابل همکاری باشند تا آزادی، امنیت و استقلال از فروشنده خاص تضمین شود.

اگر در زمینه معماری داده‌ها کار میکنید حتما این مفهوم رو سرچ کنید.

#معماری_داده
----------
🆔 @OxinCode
📌 چرا JSON همیشه بهترین انتخاب برای API نیست؟

تقریباً همه‌ی APIها از JSON استفاده می‌کنن؛ ساده، خوانا و همه‌گیر. اما واقعیت اینه که گزینه‌های بهتر و بهینه‌تری هم وجود دارن. یکی از مهم‌ترینشون Protocol Buffers هست.

مزیت Protobuf
🔹 تایپ قوی با فایل .proto
🔹 تولید خودکار کد برای زبان‌های مختلف.
🔹 سریع‌تر، امن‌تر و مناسب microserviceها
🔹 داده‌ی باینری بسیار فشرده (تا ۳ برابر کوچیک‌تر از JSON

#میکروسرویس #API #JSON #Protobuf
----------
🆔 @OxinCode
🧠 چرا یادگیری هک برای بچه‌ها مفیده؟

🔹 نسل قبل برنامه‌نویس‌ها با خراب کردن، دست‌کاری کردن و درست‌کردن دوباره یاد می‌گرفتن. اما سیستم‌های امروزی خیلی بسته و امن شدن و فرصت «کشف کردن» کمتر شده.

🔹 ایده‌ی استارتاپ Hacktivate دقیقاً همینه، فراهم کردن یک محیط کاملاً امن که بچه‌ها (۱۳+) بتونن هک رو تجربه کنن و با چالش‌های واقعی اون آشنا بشن.

#امنیت
----------
🆔 @OxinCode
📊 آیا SQL هنوز زنده‌ست؟

🔹 برخلاف حرف‌هایی که سال‌ها درباره «مرگ SQL» زده می‌شد، واقعیت اینه که SQL هنوز زبان اصلی داده‌هاست.

🔹 امروزه تقریباً همه ابزارهای داده (BigQuery، Snowflake، dbt و …) حول SQL می‌چرخن
🔹 حتی REST APIها پشت صحنه دارن SQL می‌زنن
🔹 مفاهیمی مثل Streaming، Graph، Vector، ML هم دارن وارد SQL می‌شن

#پایگاه_داده #SQL
----------
🆔 @OxinCode
بالاخره Spring داره مشکل معروف NullPointerException رو جدی حل می‌کنه

🔹 با انتشار Spring Boot 4 بخش بزرگی از Spring به‌صورت رسمی null-safe شده.

این یعنی الان خود APIهای Spring مشخص می‌کنن:
🔹 کدوم مقدار می‌تونه null باشه
🔹 کدوم اصلاً نباید null باشه

این کار با استانداردی به اسم JSpecify انجام شده

#برنامه‌نویسی
----------
🆔 @OxinCode
🔹 قدیما (دهه ۹۰ و ۲۰۰۰) این ایده وجود داشت که یک API واحد بتونه هر نوع URL رو باز کنه، فایل، وب، FTP، ایمیل و هر چیز دیگه 😬

🔹 اما امروز مشخص شده این یکنواختی بیشتر دردسرساز بوده تا مفید 🤦‍♂

🔹 ولی امروزه چون هر نوع URL رفتار، ریسک امنیتی و خطای خاص خودش رو داره، بیشتر نرم‌افزارها فقط با یک نوع URL مشخص کار می‌کنن 👍

#توسعه_نرم‌افزار
----------
🆔 @OxinCode
🧐 آدم‌های حرفه‌ای زودتر از بقیه استعفا می‌دن؟

اگه به دیتا نگاه کنیم، جواب معمولاً «آره» است. استعفای زودهنگام بیشتر از اینکه نشونه بی‌تعهدی باشه، نشونه آگاه‌بودنه. آدم‌های حرفه‌ای زودتر الگوها رو می‌بینن، آینده رو حدس می‌زنن و می‌فهمن موندن قراره چه بهایی ازشون بگیره.

📊 گزارش‌هایی مثل Gallup و داده‌های LinkedIn نشون می‌ده High Performerها کمتر به عنوان شغلی وابسته‌ان و بیشتر به معنا، تأثیرگذاری و رشد فکر می‌کنن. چون مهارت دارن و انتخاب، منتظر «کاش زودتر رفته بودم» نمی‌مونن؛ برای همین اغلب جزو اولین نفراتی هستن که می‌رن.

🔁 جالبه بدونی قبل از رفتن، معمولاً بیشتر از بقیه تلاش می‌کنن: حرف می‌زنن، پیشنهاد می‌دن و فرصت می‌دن. اما وقتی مطمئن می‌شن تغییری در کار نیست، موندنِ فرسایشی رو با خروجِ به‌موقع عوض می‌کنن. از نگاهشون، موندن در جای غلط ریسک بزرگ‌تریه تا رفتن.

#موفقیت
----------
🆔 @OxinCode
آیا Vibe Coding خسته‌کننده است؟

🔹 با اینکه vibe coding با AI سریع، قدرتمند و کاربردیه، اما هیجان نداره. وقتی فقط دستور میدید به AI و اون برات کد میزنه دیگه حل مسئله‌ای در کار نیست، فقط تماشای کدیه که نوشته میشه.

🔹 شاید این دقیقاً همون آینده‌ای باشه که میگن: «کارهای خسته‌کننده رو بده به ماشین، کارهای جذاب رو خودت انجام بده.»

🔹 اما نکته‌ی مهم‌تر اینه که خیلی از ما خودِ کدنویسی رو دوست داریم. اون حسِ «خودم حلش کردم!» با vibe coding از بین میره.

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

#هوش_مصنوعی #برنامه‌نویسی
----------
🆔 @OxinCode
دنیای اپلیکیشن‌های ترمینالی
Terminal User Interface


🔹 lazygit:
مدیریت راحت Git

🔹 lazydocker:
کنترل ساده کانتینرهای Docker

🔹 k9s:
مدیریت Kubernetes در ترمینال

🔹 btop:
مانیتورینگ CPU، RAM و شبکه

🔹 Neomutt / Pop Email:
ایمیل‌ کلاینت در ترمینال

🔹 Newsboat:
خواندن RSS فیدها

🔹 wttr dot in:
وضعیت آب‌وهوا در ترمینال

#ترمینال #دانستنی‌ها

----------
🆔 @OxinCode
فرهنگ کاری 996
(9 صبح تا 9 شب، 6 روز هفته)


🔹 زندگی با 12 ساعت کار در 6 روز هفته، به‌ویژه وقتی برای دیگران کار می‌کنید، پایدار نیست و به‌هیچ وجه نباید به عنوان فرهنگ استاندارد یا نشانه موفقیت ترویج شود.

🔹 شدت کار و علاقه به پروژه مهم است، اما سنجش با ساعت کاری نیست، بلکه با خروجی واقعی است.

🔹 کار طولانی و طاقت‌فرسا بدون انتخاب شخصی، منجر به سوختن و کاهش بهره‌وری می‌شود.

🔹 شب‌کاری‌ها باید اختیاری و برای دل خودتان باشد، نه پایه فرهنگ شرکت.

🔹 وقتی کسی فرهنگ 996 را تبلیغ می‌کند، باید مخالف آن ایستاد.

#فرهنگ_کاری
----------
🆔 @OxinCode
معرفی Ambiphone

یک وب‌اپلیکیشن است که انواع صداها و موسیقی‌های محیطی را برای افزایش تمرکز و آرامش ارائه می‌دهد.

دسته‌بندی‌های موجود شامل:

🔹 صداهای طبیعت (باران، رعد و برق، موج‌ها)
🔹 موسیقی‌های محیطی
🔹صداهای شهری و محیطی (کافی‌شاپ، ترافیک)
🔹 اتمسفرهای علمی–تخیلی
🔹 پخش زنده رادیو پلیس
🔹 سیگنال‌ها و صداهای انتقالی
🔹 بیت‌های باینورال و انواع نویز

کاربران می‌توانند میکس‌های سفارشی خود را از این صداها بسازند تا تمرکز و بهره‌وری‌شان افزایش یابد.

💎 https://ambiph.one/

#زنگ_تفریح #معرفی_سایت
----------
🆔 @OxinCode
میدونید Supabase for Platforms چیه؟

🔹 یه ابزار باحال برای پلتفرم‌ها که بک‌اند آماده و مدیریت‌شده می‌سازه بدون اینکه کاربر با تنظیمات پیچیده درگیر بشه!

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

🔹 برای هر پلتفرمی که می‌خواد تجربه توسعه آسان و روان به کاربران بده، Supabase for Platforms یه گزینه فوق‌العاده‌ست!

#فول‌استک #Backend
----------
🆔 @OxinCode
فایل منیجر مدرن برای ترمینال
SuperFile


اگر از مدیریت فایل‌ها در ترمینال خسته شده‌اید، SuperFile یک جایگزین زیبا و کاربردی است. برخلاف Midnight Commander یا ranger که محیط‌شان قدیمی و شلوغ است، SuperFile رابط کاربری متنی (TUI) جذاب و قابل فهمی دارد:

📥 نصب روی اوبونتو:
bash -c "$(curl -sLo- https://superfile.netlify.app/install.sh)"

اگر زیاد با ترمینال کار می‌کنید یا روی سرورهای بدون GUI هستید، SuperFile تجربه‌ای مدرن و خوشایند از مدیریت فایل‌ها ارائه می‌دهد.

#لینوکس #یونیکس #ترمینال
----------
🆔 @OxinCode
💻 چطور مهندس نرم‌افزار با اعتمادبه‌نفس بشویم؟

1️⃣ یک زبان برنامه‌نویسی را عمیق یاد بگیرید
تمرکز روی یک زبان باعث تسلط روی مفاهیم و انتقال راحت‌تر به سایر زبان‌ها می‌شود.

2️⃣ نوشتن Unit Test و استفاده از CI
تست‌های خودکار و اجرای مداوم آن‌ها اعتمادبه‌نفس در تغییر و بهبود کد را بالا می‌برد.

3️⃣ مرتب Refactoring کنید. کد تمیز و قابل فهم، خطاها را کاهش می‌دهد و افزودن ویژگی‌های جدید آسان‌تر است.

4️⃣ با دیگران Pair Programming کنید. یادگیری از دیدگاه‌های مختلف و بهبود مهارت‌ها از طریق همکاری مستقیم با دیگر توسعه‌دهندگان.

5️⃣ کتاب بخوانید. تمرکز روی کتاب‌های پایه‌ای به شکل‌گیری دید مهندسی کمک می‌کند.

6️⃣ آنچه یاد می‌گیرید آموزش دهید. تدریس، یادگیری عمیق‌تر و تثبیت مهارت‌ها را تضمین می‌کند.

📌 اعتمادبه‌نفس واقعی از ترکیب تجربه، آموزش مداوم و داشتن ابزارهای حمایتی می‌آید.

#مهندسی_نرم_افزار
----------
🆔 @OxinCode
🔥 ۵۰۰ دوره آموزشی مکتب‌خونه رایگان شد!

اگه برنامه‌نویسی، به دنیای هوش مصنوعی علاقه داری یا می‌خوای مهارت‌های فنی‌ات رو تقویت کنی، بین این دوره‌ها انتخاب‌های زیادی داری:

🐍 پایتون، توسعه وب و طراحی سایت

🤖 هوش مصنوعی، یادگیری ماشین و علم داده

🖥️ کامپیوتر، لینوکس، شبکه و امنیت

دوره «یادگیری ماشین با پایتون» با تدریس جادی هم بین آموزش‌های رایگان این طرحه.

فقط تا ۸ شهریور فرصت داری؛ از طریق لینک زیر آموزش دلخواهت رو انتخاب کنی و با وارد کردن کد IRANMAHER، با تخفیف ۱۰۰٪ ثبت‌نامش کنی👇

🔗 لینک دوره‌ها:

https://mktb.me/3ow4/
آینده‌ی طراحی وب CSS Wrapped

کروم کلی قابلیت جدید CSS معرفی کرده که واقعاً بازی رو عوض می‌کنن

🔹 کامپوننت‌های قابل شخصی‌سازی
🔹 انیمیشن و transition بین صفحات
🔹 استایل‌دهی بر اساس وضعیت اسکرول
🔹 جابه‌جایی iframe و ویدیو بدون reload
🔹 ارگونومی بهتر برای دولوپرها
🔹 شرط‌نویسی مستقیم تو CSS (if())
🔹 فانکشن‌های سفارشی
🔹 کنترل دقیق متن، شکل‌ها و گوشه‌ها

#وب #CSS
----------
🆔 @OxinCode