CleverDevs – Telegram
CleverDevs
8.46K subscribers
734 photos
283 videos
27 files
436 links
به کانال کلوردوز خوش اومدین

سعی میکنیم چیزایی که بنظر کاربردی هستن رو باهاتون به اشتراک بزاریم


🔥لینوکس
🔥برنامه نویسی فرانت‌اند
🔥برنامه نویسی بک‌اند
🔥اخبار تکنولوژی و...

CleverDevs are better than other Devs
💢~> @mmdrsdev
Download Telegram
-اصل Explain Yourself in Code در کلین کد

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

// Check to see if the employee is eligible for full benefits
if ((employee.flags & HOURLY_FLAG) &&
(employee.age > 65))


این کد بهتره یا اینکه جای کامنت این شرط رو توی تابع با اسم درست بزاریم ؟ مثل این
if (employee.isEligibleForFullBenefits())


کلا دوثانیه وقتتون رو میگیره تا جای کامنت این کارو بکنید. بیشتر مواقع اینکه یه تابع بسازی که بتونه کد رو هم توضیح بده بهتر از کامنت نوشتنه

#CleanCode
@CleverDevs - @CleverDevsGp
👍40🔥9👌3🆒2
👈 5 ترفند روانشناختی مورد استفاده در UX و UI (پارت3) :

3. Social Proof


برای بررسی یا خرید چیزای جدید معمولا نظر دوستا و آشناهارو میپرسیم، چون بهشون اعتماد داریم.

حالا طراحا این اعتماد رو تو سایت چجوری اعتماد میکنن؟

بخش‌های کامنت که تو سایت‌های دیجی‌کالا، ترب و .. وجود دارن اعتماد شما رو نسبت به محصول و یا حتی اون سایت بیشتر میکنن.

یا دیجی‌کالا اولین بار یه نوشته بالای کامنت‌ها اضافه کرد که نشون میداد شخصی که کامنت رو گذاشته خریده این محصول رو یا نه.

و همچنین گزینه‌های لایک و دیس‌لایک و ... .


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

#UX #UI src part2
@CleverDevs - @CleverDevsGp
👍1352💯2🆒2❤‍🔥1🔥1👌1
🤣64😁9👍3
اینسپکتور برای مرورگرهای موبایل!

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

برای نحوه نصب و استفاده میتونید گیتهابشون رو مطالعه کنید که توضیحات خلاصه و مفیدی نوشتن.

#tools
@CleverDevs - @CleverDevsGp
👍21💯6🔥2🆒211
ساخت QR code با جاوااسکریپت!

const size = "150×150";
const data = "https://news.1rj.ru/str/CleverDevs";

const API = https://api.qrserver.com/v1/create-qr-code/?size=${size}&data=${data};


+ از api رایگان این سایت برای تولید QR code استفاده کردیم.

+ داکش رو مطالعه کنید گزینه‌هایی برای شخصی‌سازی هم داره.

#Js #Tools
@CleverDevs - @CleverDevsGp
20👍10🆒43🔥2💯1
👈 5 ترفند روانشناختی مورد استفاده در UX و UI(پارت4) :

4. Peak end rule


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

حالا چطور از این قانون توی طراحی استفاده میشه؟

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

+ برای همینه که تو اکثر وبسایت‌ها سرچ‌باکس اول صفحه هست، یا تبلیغات آخر صفحه گذاشته میشه.

#UX #UI src part3
@CleverDevs - @CleverDevsGp
👍117👌3💯2🆒2
List Slicing و عملگر سوشی توی پایتون

توی پایتون شما میتونید شما میتونید با عملگر سوشی لیست هاتون رو با حالت های مختلف برش بزنید

>>> lst = [1, 2, 3, 4, 5]
>>> lst
[1, 2, 3, 4, 5]
# lst[start:end:step]
>>> lst[1:3:1]
[2, 3]


همونطور که توی کد میبینید عملگر سوشی سه تا پارامتر داره

اولیش start یا جایی برش ازش شروع میشه که دیفالتش 0 هستش

دومین پارامتر end هستش که جایی رو نشون میده که برش تموم میشه و دیفالتش طول لیسته (فقط حواستون باشه که توی لیست جدید خود ایندکس end وجود نداره و اخرین عضو لیست ایندکس قبل end هستش)

و آخرین پارامتر هم step میشه که دیفالتش 1 هست و نشون دهنده گام های انتخاب عضوه یعنی چی ؟ مثلا اگه 1 بشه قدم هاش یدونه یدونس و همه اعضای موجود تو بازه ای که انتخاب کردید رو انتخاب میکنه یا مثلا اگه پارامتر step برابر با 2 باشه میاد و یکی در میون اعضا رو از اون بازه مورد نظر انتخاب میکنه


اما بریم سراغ مثال که کامل تر جا بیوفته موضوع

فک کنید ما یه لیست داریم اعداد 0 تا 9 و میخوایم از بین اعداد 3 تا 7 یکی در میون انتخاب کنیم برا این کار باید پارامتر start رو برابر با 3 بزاریم که شروع بازه هستش و پارامتر end رو برابر با 8 میزاریم که ایندکسش یکی بعد از ایندکس اخرین عضو لیستمونه و step رو 2 میزاریم تا گام هاش دوتا دوتا باشه و یکی در میون انتخاب کنه

>>> CleverList = [0,1,2,3,4,5,6,7,8,9]
>>> CleverList[3:8:2]
# Output : [3,5,7]


یا میتونید لیستتون رو برعکس کنید به کد زیر نگا کنید

>>> CleverList = [0,1,2,3,4,5,6,7,8,9]
>>> CleverList[::-1]
# Output : [9,8,7,6,5,4,3,2,1,0]


اومدیم و start و end رو همون مقدار دیفالتشون گذاشتیم و مقدار step رو برابر با منفی 1 گذاشتیم تا لیست رو از اخر به اول بخونه

البته میتونید جای اینکار از list.reverse() استفاده کنید

همینطور با استفاده از عملگر سوشی میتونید محتوای لیست رو خالی کنید که میتونید سرچ کنید و دربارش بخونید حتما

فقط اینکه حواستون باشه ممکنه خوانایی کدتون رو پایین بیاره و سعی کنید بیش از حد ازش استفاده نکنید

#python
@CleverDevs - @CleverDevsGp
👍14🔥4🆒3💯21👌1
صدرا یکی از برنامه نویس های خفن ایرانی یک دستیار هوش مصنوعی خفن بر پایه ترمینال به اسم hey نوشته که میتونه سرعت کار رو براتون بیشتر کنه

توضیحات اضافه و نحوه نصب و استفادش رو میتونید از گیت هابش ببینید

https://github.com/lnxpy/hey

#openSource #Ai
@CleverDevs - @CleverDevsGp
🔥32👍116👎2💔1
توی پایتون چندین کتابخانه وجود دارند که به شما اجازه میدن کد جاوا اسکریپت را اجرا کنید💻
یکی از محبوب‌ ترینشون PyExecJS هست این کتابخانه یک اینترفیس ساده برای اجرا کردن کد جاوا اسکریپت با استفاده از موتورهای مختلف جاوا اسکریپت ارائه میده

مثال با استفاده از PyExecJS
نصب PyExecJS:
برای نصبش میتونید از pip استفاده کنید:
pip install PyExecJS

نمونه کد:
اینجا یه مثال ساده میزنم براتون:

 import execjs
# جاوا اسکریپت ساده که یک تابع تعریف می‌کند و اون رو اجرا میکنه
js_code = """
function hello(name) {
return "Hello, " + name + "!";
}
"""

# کامپایل و اجرا کد جاوا اسکریپت
ctx = execjs.compile(js_code)
result = ctx.call("hello", "World")

print(result) # باید "Hello, World!"رو پرینت کنه

سایر کتابخانه‌ها
بغیر از PyExecJS، کتابخانه‌های دیگه ای هم هستند که می‌شه ازشون برای اجرا کردن کد جاوا اسکریپت توی پایتون استفاده کرد، مثل Node.js با استفاده از ماژول subprocess پایتون. در این روش، شما میتونید یک اسکریپت جاوا اسکریپت رو اجرا کنید.

مثال با استفاده از subprocess
نمونه کد:
اینجا یه مثال ساده دیگه میزنم:
 import subprocess
# جاوا اسکریپت ساده که یک تابع تعریف می‌کند و اون رو اجرا میکنه
js_code = """
console.log("Hello, World!");
"""

# ذخیره کد جاوا اسکریپت در یک فایل
with open("noscript.js", "w") as file:
file.write(js_code)

# اجرا کردن فایل جاوا اسکریپت با استفاده از Node.js
result = subprocess.run(["node", "noscript.js"], capture_output=True, text=True)

print(result.stdout) # باید "Hello, World!" را پرینت کند

این روش انعطاف‌پذیری بیشتری میده چون شما میتونید از تمامی قابلیت‌های Node.js استفاده کنید.

#python #javanoscript
@CleverDevs - @CleverDevsGp
🔥9👍5🆒32👌21💯1
تلگرام و اپل جفتش آپدیت هاشون آدمو شگفت زده میکنه

تلگرام وقتی آپدیت میده میگی برگام چه قابلیت کاربردی ای که تا حالا به ذهن کسی نرسیده بود
اپل اپدیت میده میگی برگام یعنی تا الان همچین قابلیتی که همه دارن رو نداشته ؟

پ.ن آیپد بعد 14 سال اپ ماشین حساب رو به صورت پیشرفرض آورده
#fun
@CleverDevs - @CleverDevsGp
🤣80👍6😁4
#چالش
چالش این سریمون یه نوستالژی خفنه، فک نمیکنم کسی باشه که این بازیو نکرده باشه
چالش اینه این گیمو با هر زبانی که میتونید بنویسید✔️
زیاد درگیر ظاهر قضیه نشید و صرفا درحدی که بشه پلی داد بسازیدش 🐍

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

سورس اینیکیو تو چنل اپلود میکنم 🤝
هرکیم ریکشن ندرو مار بخوره🐍

@CleverDevs
@CleverDevsGp
👍23🔥134💯3😁2🆒21👌1
این روزا بحث ایردارپ های تلگرامی خیلی داغ شده برای #بحث_امشب نظرتون رو درباره این ایردراپ ها بگید

پ.ن ۱ هرکس نظر شخصی خودشو میگه پس اگه نظرش خلاف نظر شما بود توهین نکنید برخورد میشه

پ.ن ۲ رفرال لینک بفرستید پاک میشه

@CleverDevs - @CleverDevsGp
👍123👌2🆒2🔥1
یه گجت کاربردی خفن داریم
سلکتور گجت (SelectorGadget) یه افزونه کرومه که کمک می‌کنه به راحتی بخش‌های مختلف یه صفحه وب رو انتخاب کنی. مثلاً اگه می‌خوای اطلاعات خاصی رو از یه سایت استخراج کنی، با این ابزار می‌تونی خیلی سریع و آسون کد مربوط به اون بخش رو پیدا کنی. کافیه روش نصب کنی، بعدش روی بخش‌های مورد نظرت کلیک کنی تا کد CSSش رو بهت نشون بده. برای صرفه‌جویی تو وقت و راحتی کار با وب خیلی خوبه.

@CleverDevs
@CleverDevsGp
👍15👌5🔥32🆒21
-اصل Good Comments در کلین کد

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

‏1 - Legal Comments
گاها نیازه که تو اول هر فایل سورس یه سری کامنت در باره ارزش های حقوقی پروژه بزارید مثل این کامنت توی FitNesse
// Copyright (C) 2003,2004,2005 by Object Mentor, Inc. All rights reserved.
// Released under the terms of the GNU General Public License version 2 or later.


‏2 - Informative Comments
خوبه که بعضی مواقع یه سریع توضیحات دقیق و مختصر رو کامنت کنیم . البته بهتره تا جایی که میشه اسم تابع این اطلاعات رو بهمون بده ولی اگه نشد یه کامنت بزارید مثلا :
// Returns an instance of the Responder being tested.
protected abstract Responder responderInstance()


‏3 - Explanation of Intent
بعضی مواقع خوبه که قصدی که از نوشتن اون تیکه کد رو داشتید کامنت کنید (با این که در اکثر مواقع نیازی به کامنت نیست)

‏4 - Clarification
گاها خوبه که اون تیکه از کدمون که یه مقدار مبهمه به صورت ساده شده یه کامنت در بارش بزاریم مثلا
assertTrue(a.compareTo(a) == 0); // a == a
assertTrue(a.compareTo(b) != 0); // a != b


‏5 - Warning of Consequences
ممکنه یه تیکه کدی داشته باشید که ران کردنش یه عواقبی داشته باشه حالا چه کم چه زیاد
بهتر براش تو کامنتا هشدار بنویسید که برنامه نویس های دیگه حواسشون باشه

‏6 - TODO Comments
بعضی وقتا قصد دارید که بعدا یک قسمتی رو بهبود بدید یا اضافه کنید اینطور مواقع میتونید TODO بزارید که با TODO // شروع میشه معمولا

#CleanCode
@CleverDevs - @CleverDevsGp
👍12🔥10💯4🆒311👌1
شاید براتون سوال باشه که اپلیکیشن‌های ویندوزی چطوری کرک می‌شدن. قبلا، مثلاً وقتی Visual Studio را دانلود می‌کردید، کنارش یک فایل پچ یا Keygen وجود داشت که به وسیله آن می‌تونستین اپلیکیشن رو فعال کنید.

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

- مهندسی معکوس نرم‌افزار
- کرک کردن اپلیکیشن‌ها: فرآیندی که طی اون محدودیت‌های نرم‌افزاری حذف یا تغییر داده می‌شه تا بشه از آن به صورت رایگان یا بدون محدودیت استفاده کرد.
- هک کردن بازی‌ها: شامل تغییر کدهای بازی‌ها برای دسترسی به ویژگی‌های مخفی، تقلب یا بهبود تجربه بازی.
- مهندسی معکوس پروتکل‌ها: تجزیه و تحلیل پروتکل‌های ارتباطی برای فهمیدن نحوه عملکرد و احتمالا ایجاد نسخه‌های سازگار یا بهره‌برداری از نقاط ضعف. (مثلا TeamSpeak رو ریورس کردن تا بتونن پروتکلش که یک پروتکل proprietary عه رو بفهمن)
- ...
- مهندسی معکوس سخت‌افزار
- تجزیه و تحلیل مدارهای الکترونیکی و قطعات سخت‌افزاری برای فهمیدن نحوه کارکرد و ساختار آن‌ها.

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

من سعی می‌کنم تو زمان‌های آزاد، درباره مبانی این حوزه پست‌های بیشتری بذارم تا شاید کسی به این حوزه علاقه‌مند بشه. علاوه بر این، در آینده احتمالا چالش‌هایی در این زمینه برگزار کنیم !

@CleverDevs - @CleverDevsGp
👍42🔥8👌3