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

پست پین رو بخونید
https://news.1rj.ru/str/dev_perfects/455


ارتباط:
https://news.1rj.ru/str/HidenChat_Bot?start=936082426
Download Telegram
Forwarded from linuxtnt(linux tips and tricks) (hosein seilany https://seilany.ir/)
🔰در سیستم‌های کامپیوتری، هر فایل دارای سه نوع زمان است که به آنها زمان‌های فایل گفته می‌شود.

🔹. زمان دسترسی (Access Time):
این زمان نشان می‌دهد که فایل آخرین بار چه زمانی باز یا دسترسی به آن صورت گرفته است. به عنوان مثال، زمانی که شما یک فایل متنی را باز می‌کنید و محتویات آن را می‌خوانید، زمان دسترسی آن فایل تغییر می‌کند.

🔹. زمان تغییر (Modify Time):
این زمان نشان می‌دهد که فایل آخرین بار چه زمانی تغییر کرده است. به عنوان مثال، زمانی که شما یک فایل متنی را باز می‌کنید، تغییراتی در آن ایجاد می‌کنید و سپس آن را ذخیره می‌کنید، زمان تغییر آن فایل تغییر می‌کند.

🔹. زمان ایجاد (Change Time):
این زمان نشان می‌دهد که فایل آخرین بار چه زمانی ایجاد شده است یا اطلاعات мета آن (مانند نام فایل، اندازه فایل، سطح دسترسی و غیره) تغییر کرده است.

در خروجی دستور stat در لینوکس این سه زمان وجود دارد.
$stat Your_Filename
Forwarded from Woland's Linux Journal (Woland)
متعصبان راست قربانی دیگری گرفتند!

این هفتهُ هکتور مارتین، توسعه‌دهنده‌ی ارشد آساهی لینوکس و نگه‌دارنده‌ی کرنل لینوکس برای پردازنده‌ی اپل آرم، به علت تعصبات و جدل‌های بی‌پایان درباره‌ی استفاده از راست، از سمت خود کناره‌گیری کرد!

به نظر شما علت این همه تعصب و مداخله در میان طرفداران راست چیه؟

#خبر
‏یک اکانت خارجی یا به قصد خنده یا به قصد ترول کردن، مثال hello world رو در C و Rust نوشته و کامپایل کرده‌ و خروجی اجرایی‌اش برای سی شده ۱۵k و راسط شده چندین مگابایت. نتیجه گیری هم کرده که ببینید راسط چقدر بده!

چند روزی هست که تایم لاین انگلیسی و فارسی من صحبت این هست.

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

من روی مک وقتی با شرایط مساوی کامپایل میکنم، خروجی سی میشه ۱۲.۶k و خروجی راسط میشه ۱۳.۸k نه چندین مگابایت! که تازه همینم زیادی هست و قابل کوچک‌تر شدن!
بعد بر فرض اینکه حجم‌اش چند مگ هم باشه، چه تاثیری داره دقیقا؟ متوجه هستید که جریان اجرایی ماشین و حجم کدهایی که روی پردازنده میرن ربطی به حجم فایل اجرایی در دیسک نداره دیگه؟

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

یا چند مورد گزینشی از پروژه‌هایی که بیخیال راسط شدن و رفتن سراغ زبان‌های دیگه اینروزها در تایم لاین بولد میشن، ولی چند ده پروژه‌ی دیگری که هر هفته دارن به راسط رو میارن رو کسی اعلام نمیکنه!
همون پروژه‌هایی هم که بیخیال راسط شدن رو وقتی میری بدرستی میخونی درباره دلایل تصمیم شون، میبینی که خیلی فاکتورها دخیل بوده. طرف حتی خودش نوشته که راسط تکمیل تر بوده، با ثبات تر بوده، سریعتر بوده، و .... ولی شرایط ما به فلان دلایل به حالتی بود که تصمیم گرفتیم دیگه از راسط استفاده نکنیم. بعد خب میبینی که حرف شون منطقی بوده. یه سری شرایط خاص داشتن که بر مبنای اون‌ها تصمیم گرفتن از راسط استفاده نکنن. درستش هم همینه. قرار نیست که فن‌بوی یک زبان یا ابرار باشید. اگر یه چیزی بدرد تون نخورد، بندازیدش دور و برید با چیزی که براتون بهتره کار کنید.

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

@DevTwitter | <Amirreza Gh/>
یه ترفند خفن و فوق‌العاده کاربردی در Tailwind CSS که شاید ندونی 🫵

ممکنه شما هم نیاز پیدا کنید که وقتی موس روی والد یک المان میره استایل های اون المان تغییر پیدا بکنه، توی تیلویند با استفاده از group و group-hover این کار امکان پذیره

حالا چجوری ⁉️
‍‍‍‍‍‍‍‍‍‍<div class="group">
هاور کن ببین چی میشه!
<div class="opacity-0 group-hover:opacity-100 transition">
🎉 سورپرایز!
</div>
</div>

توی کد بالا وقتی موس روی div والد با کلاس group میره، div فرزند که به طور پیش‌فرض با opacity-0 مخفی شده، به آرامی توسط کلاس group-hover:opacity-100 نمایان میشه و محتویاتش رو نشون میده.
و برای برای ایجاد افکت نرم از transition استفاده کردیم که میتونید خودتون بیشتر راجبش بخونید. ( more )


#tips | #tricks | #tailwind

𝗖𝗛𝗔𝗡𝗡𝗘𝗟  |  𝗚𝗥𝗢𝗨𝗣

Forwarded from ASafaeirad
اگر صبور نبودن شما را برای انجام دادن کاری تهییج کند الزاما چیز بدی نیست. فقط در صورتی بد است که به خود بگویید دارید شکست میخورید.

— بازی بلند مدت
Forwarded from laravel-news
سن 30-34 سال حدود 20% از جامعه توسعه دهندگان را تشکیل میدهند که نشان از جوان بودن جامعه ی PHP ست.

از طرفی حدود 30% توسعه دهندگان بالای 40 سال سن دارند. سن بالای آنها (که محتملا تجربه بیشتری هم دارند)، نشان از حضور پررنگ افراد باتجربه در این جامعه است!
Forwarded from laravel-news
حدود 86% از توسعه دهندگان از PHP ورژن 8 استفاده می‌کنند. ورژن 8 سال 2020 ریلیز شد و این یعنی در طول 4 سال بیش از 80% توسعه دهندگان به ورژن جدید سویچ کردن.

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

نکته جالب، افزایش 2% ی ورژن 5.6 و قبل تر، در سال 2024 نسبت به سال 2023 هست! (دلیلش رو کسی میدونه؟ یا بزاریم پای خطای داده ها؟)
Forwarded from Gopher Academy
🔵 عنوان مقاله
Upcoming Workshop on Building Backend Web Apps in Go

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

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


👑 @gopher_academy
نرم افزار رایگان یادداشت برداری با امکانات فراوان(دستخط، ترسیم شکل، حاشیه نویسی بر PDF، ...)

پ.ن:
وقتی با خودکار و کاغذ شروع و عادت کردی؛ همه جا دنبال کاغذ و خودکار میگردی!

https://xournalpp.github.io
https://github.com/xournalpp/xournalpp/

@DevTwitter | <Koroush/>
Forwarded from Meitix
اها این Eventual Consistency برای خوندنه و نه نوشتن. یعنی قسمت eventuallyش برای readه 😅

یعنی دیتای که ذخیره میشه db رو به state درست میبره و data integrity نداره حالا ممکنه موقع خوندن دیتا از replica قدیمی بخونه که ما خیلی جاها برامو مهم نی
Forwarded from Gopher Academy
0.0000011 دلار

این قیمتی که مشاهده میکنید قیمت یک رمزارز توی بازار کریپتو نیست این قیمت ریال به دلار هستش.

واقعا نمیدونم چی بگم...



👑 @gopher_academy
خب خب خب دکوریتورها (Decorators) در پایتون: تغییر رفتار توابع و کلاس‌ها 🐍

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

1⃣ دکوریتورها چیستند؟ 🤔
دکوریتورها در پایتون، توابع یا کلاس‌هایی هستن که مثل یه "بسته‌بندی" عمل می‌کنن. یعنی، شما یه تابع یا کلاس رو می‌گیرید، اون رو به یه دکوریتور می‌فرستید، دکوریتور رفتارش رو تغییر می‌ده (یا بهبود می‌بخشه) و نسخه تغییر یافته رو برمی‌گردونه.

مثال ساده:
def simple_decorator(func):
def wrapper(*args, **kwargs):
print("قبل از اجرای تابع")
result = func(*args, **kwargs)
print("بعد از اجرای تابع")
return result
return wrapper

@simple_decorator
def greet(name):
print(f"سلام، {name}!")

greet("علی")

اینجا دکوریتور simple_decorator قبل و بعد از اجرای تابع greet پیام چاپ می‌کنه. یعنی بدون اینکه کد اصلی تابع رو دست بزنیم، رفتارش تغییر پیدا می‌کنه.

2⃣ نحوه‌ی کارکرد دکوریتورها 🔧

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

🔻 مراحل استفاده از دکوریتور:
تعریف دکوریتور:
دکوریتور یه تابعه که یه تابع ورودی می‌گیره و نسخه بهبود یافته یا تغییر یافته رو برمی‌گردونه.

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

اجرای تابع دکوریتور:
وقتی تابع دکوریت شده فراخوانی می‌شه، اول تابع "بسته‌بندی" (wrapper) اجرا می‌شه و بعد تابع اصلی.

🔻 مثال دکوریتور بر روی کلاس
دکوریتورها فقط برای توابع نیستن؛ می‌تونن رفتار کلاس‌ها رو هم تغییر بدن. مثلاً:
def add_str(cls):
# افزودن یه متد برای نمایش
def __str__(self):
return f"{cls.__name__} با ویژگی‌ها: {self.__dict__}"
cls.__str__ = __str__
return cls

@add_str
class Person:
def __init__(self, name, age):
self.name = name
self.age = age

p = Person("سارا", 28)
print(p) # خروجی: Person با ویژگی‌ها: {'name': 'سارا', 'age': 28}

اینجا دکوریتور add_str متد str
رو به کلاس Person اضافه می‌کنه، بدون اینکه کد داخل کلاس رو تغییر بده.

3⃣ مزایای استفاده از دکوریتورها
کنترل دقیق روی ساختار کد:
دکوریتورها به شما این امکان رو می‌دن تا بدون دست زدن به منطق اصلی تابع یا کلاس، رفتارشون رو تغییر بدید. این موضوع برای توسعه چارچوب‌های پیچیده خیلی مفیده.

اجرای الگوهای تکراری (DRY):
می‌تونید کدهای تکراری مثل ثبت رویدادها، اعتبارسنجی یا مدیریت استثناها رو توی یه مکان متمرکز کنید.

گسترش قابلیت‌ها:
به راحتی می‌شه قابلیت‌های جدیدی به توابع یا کلاس‌ها اضافه کرد بدون اینکه لازم باشه کد اصلی رو تغییر بدید.

4⃣ چالش‌های استفاده از دکوریتورها ⚠️
درک اولیه سخت‌تر:
برای کسانی که تازه شروع کردن، مفهوم دکوریتورها ممکنه گیج‌کننده باشه. برای درک کاملش نیاز به مطالعه و تمرین داره.

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

ترکیب با سایر مفاهیم:
استفاده همزمان از دکوریتورها با مفاهیم پیشرفته مثل متاکلاس‌ها یا توابع بازگشتی می‌تونه باعث پیچیدگی‌های اضافه بشه.

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

#⃣ #python #programming



🥷 CHANNEL | GROUP
Forwarded from Woland's Linux Journal (Woland)
آموزش نصب ‌Sql Server در Docker روی لینوکس

ابتدا داکر ایمیج را دریافت می‌کنیم:
docker pull mcr.microsoft.com/mssql/server:2022-latest
Forwarded from Woland's Linux Journal (Woland)
💠آموزش نصب ‌Sql Server در Docker روی لینوکس💠

نخست نگاره (ایمیج) داکر را دریافت می‌کنیم:
docker pull mcr.microsoft.com/mssql/server:2022-latest


سپس با بهره‌گیری از نگاره، یک آوند (کانتینر) می‌سازیم:
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<password>" \
-p 1433:1433 --name sql1 --hostname sql1 \
-d \
mcr.microsoft.com/mssql/server:2022-latest


قسمت گذرواژه را با گزاره دلخواه خود جایگزین کنید.

حالا می‌توانیم به آوند وارد شویم:
docker exec -it sql1 "bash"


وارد پوسته‌ی SQL شویم:
/opt/mssql-tools18/bin/sqlcmd -S localhost -U <userid> -P "<password>"


و یک پایگاه‌داده و میز نوین بسازیم:
CREATE DATABASE TestDB;
GO


USE TestDB;

CREATE TABLE Inventory
(
id INT,
name NVARCHAR (50),
quantity INT
);

INSERT INTO Inventory
VALUES (1, 'banana', 150);

INSERT INTO Inventory
VALUES (2, 'orange', 154);


SELECT *
FROM Inventory
WHERE quantity > 152;
GO


حالا Sql Server به درستی روی سامانه‌ی لینوکس شما برنشانده شده و می‌توانید با به‌کارگیری برنامه‌های گردانش دلخواه خود از آن بهرمند شوید.

در نویسه‌ای دیگر به ADS خواهیم پرداخت.

#آموزش
اگر Steam Deck و Playstation دارید میتونید این Chiaki-ng رو نصب کنید اون وقت انگار Playstation Portal هم دارید و میتونید ریموت از پی اس استفاده کنید

https://github.com/streetpea/chiaki-ng

@DevTwitter | <Dara/>
Forwarded from Woland's Linux Journal (Woland)
پنجره‌های چسبان در i3wn

از نسخه 4.11 به بعد امکان چسبان Sticky کردن یک پنجره وجود دارد. به این معنی که آن پنجره در هنگام تعویض WorkSpace شما را دنبال خواهد کرد.

bindsym $mod+s sticky toggle


#آموزش #i3wm
Forwarded from Linuxor ?
هیچ الگوریتم خاصی برای دیکامپایل کردن کد وجود نداره و دیکامپایل کردن یه فرایند تخمینیه، به خصوص اگه کامپایلر تنظیمات خاصی رو اعمال کرده باشه که دیکامپایل دشوار تر می‌شه.

این ریپازیتوری بهتون کمک می‌کنه با استفاده از LLM ها این فرایند تخمین رو به هوش مصنوعی بسپرید و هوش مصنوعی با استفاده از داده های از قبل آموزش دیده بیاد و فایل های اجرایی binary رو به کد زبان c براتون تبدیل کنه :


https://github.com/albertan017/LLM4Decompile


@Linuxor
Forwarded from یه شعر (Poem Bot)
حافظ | غزلیات | غزل شمارهٔ ۲۵۶

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

#حافظ | گنجور
📍@iipoem