فرض کنید یه پروژه ی جدید گرفتید. این پروژه حدودا سایز دیتاستش پنجاه گیگا بایته !!! و سیستمتون هم انقدر حجم خالی نداره؛ وقت هم ندارید بشینید با روش های معمولی این دیتاست رو از اینترنت دانلود کنید چون قطعا یه چیزی حدود شیش ساعت طول میکشه تا دانلود بشه (تازه اگه بشه🥴). در چنین شرایطی چی کار میکنید؟
بهش فکر کنید تا بهتون بگم بعدا.
دارم با چالش هایی که ممکنه در آینده تو کارتون مواجه بشید آشناتون میکنم. برا همینه میگم باید مهارت های دیگه مثل لینوکس و شبکه و ... بلد باشید.
بهش فکر کنید تا بهتون بگم بعدا.
دارم با چالش هایی که ممکنه در آینده تو کارتون مواجه بشید آشناتون میکنم. برا همینه میگم باید مهارت های دیگه مثل لینوکس و شبکه و ... بلد باشید.
❤9👍2🙏1
Melanee AI & Physics
Photo
راستی این پروژه رمز گشایی طومار سوخته باستانی شهر هرکولانیوم یه Competition تو کگل بوده که تا الان ۳ نفر اولش چندین هزار دلار برنده شدند😎. اینم لینکش:
https://www.kaggle.com/competitions/vesuvius-challenge-ink-detection/
https://www.kaggle.com/competitions/vesuvius-challenge-ink-detection/
Kaggle
Vesuvius Challenge - Ink Detection
Resurrect an ancient library from the ashes of a volcano
❤7
Melanee AI & Physics
فرض کنید یه پروژه ی جدید گرفتید. این پروژه حدودا سایز دیتاستش پنجاه گیگا بایته !!! و سیستمتون هم انقدر حجم خالی نداره؛ وقت هم ندارید بشینید با روش های معمولی این دیتاست رو از اینترنت دانلود کنید چون قطعا یه چیزی حدود شیش ساعت طول میکشه تا دانلود بشه (تازه…
لینوکس خیلی کارها میتونه انجام بده که ما ازش بیخبریم، واقعا به این نتیجه رسیدم هنوز کلی چیزها هست که ما بلد نیستیم که اگه بلد بودیم چقدر کارهامون راه میفتاد.
مثلا افزایش سرعت دانلود شبکه با فعال کردن پروتکل TCP BBR! البته متاسفانه این پروتکل با زیرساخت شبکه های ایران مثل همراه اول و اینا جواب نمیده چون گوگل دولوپش کرده ولی خب همینکه بدونیمش خیلی خوبه.
https://www.cyberciti.biz/cloud-computing/increase-your-linux-server-internet-speed-with-tcp-bbr-congestion-control/
مثلا افزایش سرعت دانلود شبکه با فعال کردن پروتکل TCP BBR! البته متاسفانه این پروتکل با زیرساخت شبکه های ایران مثل همراه اول و اینا جواب نمیده چون گوگل دولوپش کرده ولی خب همینکه بدونیمش خیلی خوبه.
https://www.cyberciti.biz/cloud-computing/increase-your-linux-server-internet-speed-with-tcp-bbr-congestion-control/
nixCraft
Increase Linux Internet speed with TCP BBR congestion control
Learn how to enable TCP BBR to improve network speed on Linux and improve Linux server Internet speed with a cutting-edge new BBR algorithm.
👍10
یکی از نکته های مهمی که به نظرم تو AI باید بهش توجه بشه اینه که تا حد ممکن مصرف انرژی و منابع سخت افزاری مثل RAM, CPU, GPU رو کاهش بدیم. این موضوع خیلی خیلی مهمه، حالا نمیدونم متخصصین این حوزه چقدر بهش توجه میکنند الان.
خب مسلما هرچه تعداد پارامترها و سایز دیتاست بزرگ تر باشه به همون میزان زمان بیشتری برای train شدنش میبره، زمان بیشتر منجر به مصرف بیشتر انرژی و منابع سخت افزاری میشه، انرژی بیشتر یعنی افزایش هزینه ها و ضررهای احتمالی به محیط زیست. دیدم گاهی train کردن یه مدل حدود یک هفته یا بیشتر طول کشیده!
من خودم همیشه اینو میگم چه اجباریه ما بیایم یه پروژه ای که حدود یک میلیون پارامتر داره رو کلش رو بیایم train کنیم؟! خب با روش های
Feature selection
میتونیم موثرترین پارامترهارو انتخاب کنیم و مثلا از یک میلیون پارامتر برسیم به ده هزار پارامتر.
میدونید چقدر تو مصرف هزینه ها و انرژی صرفه جویی میشه؟!
پ. ن: عکس مال خودمه، پیام اخلاقیش اینه که شما هم مثل من از ساک های پارچه ای به جای پلاستیک ها برای خریدهاتون استفاده کنید🍀♻️.
خب مسلما هرچه تعداد پارامترها و سایز دیتاست بزرگ تر باشه به همون میزان زمان بیشتری برای train شدنش میبره، زمان بیشتر منجر به مصرف بیشتر انرژی و منابع سخت افزاری میشه، انرژی بیشتر یعنی افزایش هزینه ها و ضررهای احتمالی به محیط زیست. دیدم گاهی train کردن یه مدل حدود یک هفته یا بیشتر طول کشیده!
من خودم همیشه اینو میگم چه اجباریه ما بیایم یه پروژه ای که حدود یک میلیون پارامتر داره رو کلش رو بیایم train کنیم؟! خب با روش های
Feature selection
میتونیم موثرترین پارامترهارو انتخاب کنیم و مثلا از یک میلیون پارامتر برسیم به ده هزار پارامتر.
میدونید چقدر تو مصرف هزینه ها و انرژی صرفه جویی میشه؟!
پ. ن: عکس مال خودمه، پیام اخلاقیش اینه که شما هم مثل من از ساک های پارچه ای به جای پلاستیک ها برای خریدهاتون استفاده کنید🍀♻️.
👍13👌5👎1
Forwarded from 🎄 DevTwitter | توییت برنامه نویسی
چون جایی هستم که پینگ میره و میاد، مدام چشمم به پینگ تایمه رو ترمینال
یه بش ساده نوشتم که گرافیکی باشه و قابل فهم تر باشه. شاید به درد کسی بخوره
https://gist.github.com/seqrity/92770ae80c568378149188814bb12c85
@DevTwitter | <Babak/>
یه بش ساده نوشتم که گرافیکی باشه و قابل فهم تر باشه. شاید به درد کسی بخوره
https://gist.github.com/seqrity/92770ae80c568378149188814bb12c85
@DevTwitter | <Babak/>
😁12👍7👏1
Melanee AI & Physics
چطوری در تلگرام یک قطعه کد برنامه نویسی رو بنویسیم؟ فقط کافیه کدتون رو به روش معمول تایپ کنید ولی اول و آخرش رو سه تا علامتی که در عکس میبینید بزارید خودش به صورت کد نمایش داده میشه. اول کدتون هم اسم زبانش رو بنویسید که بتونه تشخیص بده زبانش چیه. برای مثال:…
import os
from pdfminer.high_level import extract_text
def search_keywords_in_pdfs(folder_path, keywords):
try:
# Iterate over each file in the specified folder
for filename in os.listdir(folder_path):
if filename.endswith(".pdf"):
file_path = os.path.join(folder_path, filename)
print(f"\nSearching in file: {file_path}")
# Extract text from the PDF file
text = extract_text(file_path)
# Check if any of the keywords are present in the extracted text
if any(keyword.lower() in text.lower() for keyword in keywords):
print(f"Keyword(s) found in {filename}")
except Exception as e:
print(f"Error: {e}")
# Example usage:
pdf_folder_path = "path/to/your/pdf/folder"
search_keywords = ["python", "programming", "example"]
search_keywords_in_pdfs(pdf_folder_path, search_keywords)
😍6❤1👍1
Melanee AI & Physics
import os from pdfminer.high_level import extract_text def search_keywords_in_pdfs(folder_path, keywords): try: # Iterate over each file in the specified folder for filename in os.listdir(folder_path): if filename.endswith(".pdf"):…
وای چه ناز شد😍😎.
این برنامه رو واسه ی کاری نوشتم. یه قطعه کدی هست که کلمات کلیدی ای که میخواید رو تو پی دی اف ها میگرده و پیداش میکنه. البته هنوز جای کار داره.
کاربردش زیاده مثلا واسه گشتن تو یه عالمه پی دی اف رزومه که شما به عنوان کارفرما به دستتون رسیده ببینید کی ها با اون اسکیل هایی که شما نیاز دارید مچ هستند. فقط کافیه کلمه های کلیدی(اسکیل ها) مورد نظرتون رو مشخص کنید.
این برنامه رو واسه ی کاری نوشتم. یه قطعه کدی هست که کلمات کلیدی ای که میخواید رو تو پی دی اف ها میگرده و پیداش میکنه. البته هنوز جای کار داره.
کاربردش زیاده مثلا واسه گشتن تو یه عالمه پی دی اف رزومه که شما به عنوان کارفرما به دستتون رسیده ببینید کی ها با اون اسکیل هایی که شما نیاز دارید مچ هستند. فقط کافیه کلمه های کلیدی(اسکیل ها) مورد نظرتون رو مشخص کنید.
❤8👍2🏆1
Melanee AI & Physics
برای آمادگی مصاحبه ی های کاریم یه دفتر درست کردم که داخلش برای هر اسکیل و ابزاری که بلدم دو قسمت درست کردم؛ یکی بخش تئوری و یکی هم بخش پروژه ها و تجربه هام. مثلا برای موضوع NLP یکی دو صفحه از خلاصه های تئوریش نوشتم و یک صفحه هم راحب پروژه هام با تاریخشون😎.…
اگه مصاحبه کاری به زبان انگلیسی پیش رو دارید حتما این ریپازیتوری رو مطالعه کنید. هر شب یه سابجکت هم بخونید ذهنتون راه میفته:
https://github.com/mtdvio/every-programmer-should-know
https://github.com/mtdvio/every-programmer-should-know
👍4👏1🏆1
جدیدا وقتی میخوام یه پروژه ای رو از یه سرور به سرور دیگه دیپلوی کنم استرس خلبانی رو دارم که داره با هواپیماش یه جمعیتی رو جابه جا میکنه. فقط فرقمون اینه خلبان یه چیز فیزیکی رو جابه جا میکنه ولی من پروسس ها رو تو پکت و با سرعت نور یا امواج الکترومغناطیس جا به جا میکنم که با چشم دیده نمیشن. هر دومون خدایی کارمون سخته😒.
😁14🤣3👎1
یکی از دوستان پرسیدند چطوری پروژه هارو روی سرور انتقال میدید.
یک نمونه دیپلوی کردن پروژه روی سرور برای دوستان تازه کار:
تو این پروژه مهندس حسینخانی اومدند یه مدل ریکامندر سیستم رو روی سرورشون دیپلوی کردند. روش های انتقال پروژه روی سرور یا دیپلوی کردن بسیار متنوع هست ولی برای انواع پروژه ها (دیتاساینس، فلاتر، اندروید، وب و ...) تقریبا یه متد کلی داره.
https://www.aparat.com/v/1zems?playlist=5220444
یک نمونه دیپلوی کردن پروژه روی سرور برای دوستان تازه کار:
تو این پروژه مهندس حسینخانی اومدند یه مدل ریکامندر سیستم رو روی سرورشون دیپلوی کردند. روش های انتقال پروژه روی سرور یا دیپلوی کردن بسیار متنوع هست ولی برای انواع پروژه ها (دیتاساینس، فلاتر، اندروید، وب و ...) تقریبا یه متد کلی داره.
https://www.aparat.com/v/1zems?playlist=5220444
آپارات - سرویس اشتراک ویدیو
جلسه هفتم: آشنایی با MLOps و استقرار مدل با استفاده از TFX و Docker
در این جلسه ضمن آشنایی اولیه با MLOps و Cloud Computing و همینطور بررسی اولیهی الگوریتم توییتر، با روش ذخیره کردن یک مدل تنسورفلو برای استفاده مجدد و همینطور استقرار آن بر روی یک سرور لینوکسی به کمک Docker و TFX آشنا خواهیم شد.
👍5🤩1
میخوام یه کدی بهتون نشون میدم که کمتر کسی در طول تاریخ بشریت دیدش! منتظر بمونید.😎
❤5🔥1
Melanee AI & Physics
میخوام یه کدی بهتون نشون میدم که کمتر کسی در طول تاریخ بشریت دیدش! منتظر بمونید.😎
میدونستید این پروتکل های اصلی که در شبکه های کامپیوتری ازشون استفاده میکنید کدشون تو کرنل سیستم عامل تون قرار گرفته؟! اصلا تا به حال دیدیشون؟
اصلا این پروتکل ها چطوری ساخته میشن؟ یکی از کارهایی که میکنند اینه برای هر پروتکلی برنامه مینویسند و اونو در کرنل سیستم عامل میزارند. مثلا واسه پروتکل TCP میتونید سورس کدش رو در گیت هاب آقای Linus Torvals تو ریپازیتوری Linux که سورس کد کرنل لینوکس هست ببینید، برنامه اشو با زبان C نوشتند.
بقیه پروتکل هارو هم از تغییرات روی پروتکل TCP نوشتند مثل L2TP و ... .
نکته جالب تر اینه که هرکی میتونه پروتکل مخصوص خودش رو بنویسه! فقط پروتکل باید هم تو سیستم عامل فرستنده و هم گیرنده قرار بگیره تا از طریق یه پورتی بتونند بهم وصل بشن.
اینم سورس کد پروتکل TCP:
https://github.com/torvalds/linux/blob/master/net/ipv4/tcp.c
#شبکه
اصلا این پروتکل ها چطوری ساخته میشن؟ یکی از کارهایی که میکنند اینه برای هر پروتکلی برنامه مینویسند و اونو در کرنل سیستم عامل میزارند. مثلا واسه پروتکل TCP میتونید سورس کدش رو در گیت هاب آقای Linus Torvals تو ریپازیتوری Linux که سورس کد کرنل لینوکس هست ببینید، برنامه اشو با زبان C نوشتند.
بقیه پروتکل هارو هم از تغییرات روی پروتکل TCP نوشتند مثل L2TP و ... .
نکته جالب تر اینه که هرکی میتونه پروتکل مخصوص خودش رو بنویسه! فقط پروتکل باید هم تو سیستم عامل فرستنده و هم گیرنده قرار بگیره تا از طریق یه پورتی بتونند بهم وصل بشن.
اینم سورس کد پروتکل TCP:
https://github.com/torvalds/linux/blob/master/net/ipv4/tcp.c
#شبکه
👍5🤯4❤🔥1🫡1
Melanee AI & Physics
میخوام یه کدی بهتون نشون میدم که کمتر کسی در طول تاریخ بشریت دیدش! منتظر بمونید.😎
C
#define pr_fmt(fmt) "TCP: " fmt
#include <crypto/hash.h>
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/types.h>
#include <linux/fcntl.h>
#include <linux/poll.h>
#include <linux/inet_diag.h>
#include <linux/init.h>
#include <linux/fs.h>
#include <linux/skbuff.h>
#include <linux/scatterlist.h>
#include <linux/splice.h>
#include <linux/net.h>
#include <linux/socket.h>
#include <linux/random.h>
#include <linux/memblock.h>
#include <linux/highmem.h>
#include <linux/cache.h>
#include <linux/err.h>
#include <linux/time.h>
#include <linux/slab.h>
#include <linux/errqueue.h>
#include <linux/static_key.h>
#include <linux/btf.h>
#include <net/icmp.h>
#include <net/inet_common.h>
#include <net/tcp.h>
#include <net/mptcp.h>
#include <net/xfrm.h>
#include <net/ip.h>
#include <net/sock.h>
#include <linux/uaccess.h>
#include <asm/ioctls.h>
#include <net/busy_poll.h>
/* Track pending CMSGs. */
enum {
TCP_CMSG_INQ = 1,
TCP_CMSG_TS = 2
};
DEFINE_PER_CPU(unsigned int, tcp_orphan_count);
EXPORT_PER_CPU_SYMBOL_GPL(tcp_orphan_count);
long sysctl_tcp_mem[3] __read_mostly;
EXPORT_SYMBOL(sysctl_tcp_mem);
atomic_long_t tcp_memory_allocated ____cacheline_aligned_in_smp; /* Current allocated memory. */
EXPORT_SYMBOL(tcp_memory_allocated);
DEFINE_PER_CPU(int, tcp_memory_per_cpu_fw_alloc);
EXPORT_PER_CPU_SYMBOL_GPL(tcp_memory_per_cpu_fw_alloc);
#if IS_ENABLED(CONFIG_SMC)
DEFINE_STATIC_KEY_FALSE(tcp_have_smc);
EXPORT_SYMBOL(tcp_have_smc);
#endif
/*
* Current number of TCP sockets.
*/
struct percpu_counter tcp_sockets_allocated ____cacheline_aligned_in_smp;
EXPORT_SYMBOL(tcp_sockets_allocated);
/*
* TCP splice context
*/
struct tcp_splice_state {
struct pipe_inode_info *pipe;
size_t len;
unsigned int flags;
};
/*
* Pressure flag: try to collapse.
* Technical note: it is used by multiple contexts non atomically.
* All the __sk_mem_schedule() is of this nature: accounting
* is strict, actions are advisory and have some latency.
*/
unsigned long tcp_memory_pressure __read_mostly;
EXPORT_SYMBOL_GPL(tcp_memory_pressure);
void tcp_enter_memory_pressure(struct sock *sk)
{
unsigned long val;
if (READ_ONCE(tcp_memory_pressure))
return;
val = jiffies;
if (!val)
val--;
if (!cmpxchg(&tcp_memory_pressure, 0, val))
NET_INC_STATS(sock_net(sk), LINUX_MIB_TCPMEMORYPRESSURES);
}
EXPORT_SYMBOL_GPL(tcp_enter_memory_pressure);
void tcp_leave_memory_pressure(struct sock *sk)
{
unsigned long val;
if (!READ_ONCE(tcp_memory_pressure))
return;
val = xchg(&tcp_memory_pressure, 0);
if (val)
NET_ADD_STATS(sock_net(sk), LINUX_MIB_TCPMEMORYPRESSURESCHRONO,
jiffies_to_msecs(jiffies - val));
}
EXPORT_SYMBOL_GPL(tcp_leave_memory_pressure)😍6👍3👏1
Melanee AI & Physics
C #define pr_fmt(fmt) "TCP: " fmt #include <crypto/hash.h> #include <linux/kernel.h> #include <linux/module.h> #include <linux/types.h> #include <linux/fcntl.h> #include <linux/poll.h> #include <linux/inet_diag.h> #include <linux/init.h> #include <linux/fs.h>…
چقدر خوشگله این پروتکل TCP😍😎
این یه تیکه اولشه فقط.
این یه تیکه اولشه فقط.
❤10👏2
Melanee AI & Physics
میدونستید این پروتکل های اصلی که در شبکه های کامپیوتری ازشون استفاده میکنید کدشون تو کرنل سیستم عامل تون قرار گرفته؟! اصلا تا به حال دیدیشون؟ اصلا این پروتکل ها چطوری ساخته میشن؟ یکی از کارهایی که میکنند اینه برای هر پروتکلی برنامه مینویسند و اونو در کرنل…
Computer networking kurose.pdf
10.8 MB
کتاب رفرنسی که من برای شبکه های کامپبوتری خوندم:
Computer networking, A top down approach
Authores: Kurose and Ross
Pages: 889
Computer networking, A top down approach
Authores: Kurose and Ross
Pages: 889
👍3😍1
Melanee AI & Physics
Computer networking kurose.pdf
این عکس جلد روی کتاب شبکه های کامپیوتری کوروس و راس هست. این کتاب یکی از رفرنس هایی هست که در دانشگاه ها تدریس میشه.
👍6❤2
اینم یکی دیگه از رفرنس های دانشگاهی #شبکه هست که قبلا گزاشتمش در چنلم.
👍4✍1❤1