Web_programming
1.14K subscribers
354 photos
14 videos
125 files
1.22K links
Sharif web programming
If you have any questions, please feel free to ask(@yumcoder)
Download Telegram
In the Linux terminal, when you use Ctrl + R for reverse search (searching previous commands in history), you can go to the next match by pressing Ctrl + R again.
😁2
برای کسانی که میخواهند به تازگی ReactJS را یاد بگیرند ...

علت اساسی تولید هر کتاب خانه و یا هر فریم ورک، بر اساس یک نیاز بنیادین صورت میگیرد و اگر آن نیاز بنیادین (چالش هایی که داشته و راهکارهایی که به دنبال آن چالش ها توسط این فریم ورک ها ارائه شده) درک نشود، از آن ابزار صرفا به مثابه یک ابزار ساده استفاده میشود و محدودیت ها و قدرت آن به درستی درک نمیشود.
در خصوص کتابخانه ReactJS و کتابخانه های مرتبط دیگری که معمولا به منظور ساخت برنامه های تک صفحه ای (SPAs) مورد استفاده قرار میگرند، یکی از چالش های اساسی (که منجر به ارائه این ابزارها شده) ، تولید تمام HTML صرفا به صورت داینامیک است (احتمالا اگر با create-react-app اقدام به ساخت اپلیکیشن بکنید، خواهید دید که صرفا یک فایل HTML با یک div خالی دارید که قرار است همه چیز در آن اتفاق بیفته). هر تغییر کوچک در مدل DOM صفحه منجر به تغییراتی در زیردرختان عنصر تغییر یافته میشود و در نتیجه، بسیار پرهزینه است.
با استفاده از کتابخانه ReactJS و Virtual DOM میتوان این تغییرات را با کمترین هزینه انجام داد. برای آشنایی با این تکنولوژی، مطلب زیر را مطالعه کنید

https://www.geeksforgeeks.org/reactjs-virtual-dom/
👍4
In gRPC, the maximum size for a single message is determined by the protocol buffer's inherent limit, which is 2 GB. This means that, in theory, gRPC can handle messages up to 2 GB in size. However, it's important to note that many gRPC implementations set default limits that are much lower. For example, the default maximum message size is often set to 4 MB, though this can be configured to accommodate larger messages. Attempting to send messages larger than the configured limit will result in errors. Therefore, while the protocol allows for messages up to 2 GB, practical implementations may impose stricter limits to ensure performance and resource management.
👍5
In terms of message in the group of this channel, gpt propose that 👇

When you receive a message in a group that seems to be related to investment and might be a scam, it’s important to take these steps:

1. Do Not Engage: Avoid clicking on any links, responding to the message, or providing any personal information. Scammers often use engagement as a way to trap more victims.

2. Report the Message: Use the platform’s “Report” feature to flag the message or user. Most messaging apps allow you to report spam or suspicious activity, which helps the platform take necessary action.

3. Warn the Group: Politely notify the group about the suspicious message, as others may not recognize it as a potential scam. You could say something like, "This message might be a scam. Be cautious about sharing personal or financial information."

4. Block the Sender: If the sender is not someone you know or trust, consider blocking them to prevent further contact.

5. Alert the Group Admins: If you’re not the admin, reach out to the admin(s) privately and inform them of the message so they can take any necessary steps, such as removing the user or limiting new group members’ posting abilities.

6. Educate Yourself and Others: Remind yourself and group members of common scam tactics. Investment scams often promise high returns with little risk, urge quick decisions, or make you feel special or chosen.

7. Avoid Sharing the Message Outside the Group: Don’t forward or share the message to others, as this could help spread the scam further.

Following these steps helps protect yourself and others from falling victim to scams in group chats.
👍2👎1
Sound to Text → then Summarize 🙂
——————

pip install git+https://github.com/openai/whisper.git

import whisper

# Load Whisper model
model = whisper.load_model("base")

# Transcribe audio
result = model.transcribe(“/PATH/FILE.m4a")
print("Transcription:", result["text"])
🎉5
End-to-end (E2E) testing is a technique used to test the entire flow of an application, simulating real user interactions from start to finish. In E2E testing, the goal is to ensure that all parts of the application (frontend, backend, and data storage) work together as expected.

Some popular tools and frameworks for E2E testing include:
- Puppeteer
- Selenium
👍3
Forwarded from Niyusha Baghayi
وبینار نقشه‌راه مهندسی داده

🎯 مسیر یادگیری و ورود به بازار کار در مهندسی داده

📅 تاریخ: سه‌شنبه ۲۹ آبان ۱۴۰۳
🕖 ساعت: ۱۹:۰۰ به وقت ایران

🔗 لینک ورود به گروه Databurst Connect جهت شرکت در وبینار
📆 افزودن به تقویم
🔸 لینکدین نیوشا بقایی
🔹 لینکدین مصطفی قدیمی
👍2👎1
میکرومستر مهندسی نرم‌افزار
هدف
هدف از این میکرومستر آموزش و آماده‌سازی دانش‌پذیران برای ورود به بازار کار به عنوان مهندس نرم‌افزار است. محتوای میکرومستر با توجه به نیازهای مطرح شده توسط مهم‌ترین شرکت‌های کشور تهیه شده است.

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

https://micro.ce.sharif.edu/sw
👎7👍4😁3
👍2
docker system df -v
- check the disk usage of all Docker resources

docker volume prune
- This will remove all volumes not currently used by a container.
https://core.telegram.org/method/auth.sendcode

در برنامه های موبایل بسیار دیده اید که از طرف سرور یک کد برای شما اس ام اس میشود، اگر بخواهید برای این منظور یک api طراحی کنید (با نام فرضی sendCode) چگونه این کار را انجام میدهید؟

به طور مثال تلگرام برای این منظور یک api به نام sendCode دارد که در آن شماره تلفن برای سرور ارسال میشود در پاسخ آن یک
hashCode
ارسال خواهد شد. که پس از دریافت اس ام اس، کد دریافت شده در اس ام اس و شماره تلفنن به همراه
hashcode
برای ورود به سیستم استفاده خواهد شد

چرا hashcode لازم است؟
Web_programming
distributed LRU cache — example: caching immutable file blobs for dl.google.com — https://github.com/golang/groupcache — https://capotej.com/blog/2013/07/28/playing-with-groupcache/
برنامه ساده کوچک و مناسب برای یادگیری پیاده سازی سیستمهای توزیع شده. اگر من بخواهم یک آموزش برای توسعه این سیستم‌ها داشته باشم با تحلیل کد این منبع کار را شروع میکنم

خواندن و فهمیدن آن را برای علاقه‌مندان توصیه میکنم به ویژه که در پروژه واقعی نیز استفاده شده است
Forwarded from Web_programming
فرض کنید در یک برنامه از کاربر نام و رمز را دریافت می کنید و در صورت درستی وارد برنامه می شوید. مراحل این کار معمولا بدین شکل است:
۱- نام کاربری را وارد کنید
۲- رمز عبور را وارد کنید
۳- رمز وارد شده توسط کاربر را رمزنگاری میکنید
۴- حاصل رمزنگاری مرحله ۳ را با رمز ذخیره شده و رمزنگاری شده (درون پایگاه داده و یا هر جایی که فیلا دخیره کرده اید) مقایسه می کنید و اگر درست بود ادامه ....
۴- اگر نادرست بود به تعداد محدودی اجازه وارد کردن رمز را می دهید و مثلا پس از ۳ تلاش برای مدت ۱ ساعت در لیست سیاه قرار می گیرد
و....

این الگوریتم نیز در دو شرایط ممکن است مخاطرات امنیتی داشته باشد! و بهتر است پس از دریافت رمز از کاربر بدین شکل عمل کنید
۱- مانند قبل
۲- مانند قیل
۳- رمزنگاری رمز گرفته شده در مرحله دو
۴- مرحله بسیار مهم —> پاک کردن رمز گرفته شده در مرحله دو از حافظه
۵- ادامه مانند قبل

چرا؟
۱- ممکن است برنامه crash کند و یک dump فایل برای ان بوجود آید و رمز وارد شده توسط کاربر بدین شکل expose میشود
۲- در شرایط swap کردن توسط سیستم عامل امکان expose شدن رمز کاربر نیز وجود دارد

حالا واقعا باید اینقدر سخت بگیریم؟ بله :)

در لینک زیر خیلی مختصر یک برنامه نمونه آورده ام از کتاب برنامه نویسی لینوکس که قبلا معرفی کردم

https://telegra.ph/Erase-the-unencrypted-password-from-memory-11-27
👍2
history | grep -B 5 -A 5 text_for_seach

عملکرد این دستور چیست؟
Forwarded from Mahdi Khoshdell
سوالم شاید یکم پایه ای و ساده باشه به بزرگی خودتون ببخشید:)))
قضیه اینه که یه اپ iot core داریم و یه تعداد زیادی دیوایس که از influxdb برای ذخیره دیتا هایی که از سمت دیوایس ها میان استفاده میکنیم.
حالا مشکلی که وجود داره اینه که کلا کوئری هایی که روی influx میزنیم خیلی کنده و بعضا ممکنه چن ثانیه طول بکشه به خصوص اینکه بعضی از سنسور ها هستن که چنتا اتریبیوتو همزمان با هم اندازه میگیرن ( مثلا یه مولتی سنسور داریم که شاید ۱۰ تا اتریبیوت مختلفو اندازه گیری کنه)
حالا سوال من اینه که best practice ذخیره دیتا برای همچین پروژه ای چجوریه که بخوایم کوئری های مختلف بزنیم و نسبتا سریع انجام بشن؟
#spring_boot
جریان مدیریت درخواست ها و آماده سازی پاسخ در فریم ورک Spring Boot

فریم ورک Spring Boot با به کارگیری بخشی به نام Dispatcher Servlet میتواند درخواست دریافتی را به Handler مناسب بسپارد و پاسخ را دریافت کرده و ارسال کند (بسیار شبیه به آنچه که در الگوی طراحی Mediator دیده میشود). این کار یکی از مزایای این فریم ورک را نسبت به نسخه سنتی آن - Java EE - فراهم میکند و ما را از نوشتن سرولت های متعدد راحت میکند.

مهم ترین الگوهای طراحی که به چشم میخورند : Mediator و Adaptor

برای توضیحات بیشتر، بررسی مطلب زیر پیشنهاد میشود.

https://medium.com/@lakshyachampion/the-dispatcherservlet-the-engine-of-request-handling-in-spring-boot-3a85c2bdbe6b
👍1😁1