PyCoders (پایتون)
Open in Telegram
◇ #پایتون جادوگر دنیای برنامه نویسی! ◇ معرفی حوزه های کاری پایتون ◇ معرفی کتابخونه های کاربردی ◇ معرفی دوره های مفید ◇ معرفی تکنیک ها و نکات ◇ نقشه راه حوزه های مختلف ◇ اخبار و آپدیت های پایتون ◇ و هر چیزی در مورد پایتون! ■ گروه پایتون: @programmers_py
Show more4 115
Subscribers
No data24 hours
-97 days
-1730 days
Posts Archive
4 115
این عکس جلد روی کتاب شبکه های کامپیوتری کوروس و راس هست. این کتاب یکی از رفرنس هایی هست که در دانشگاه ها تدریس میشه.
4 115
Repost from آکادمی علوم شقایق رحمانی
کتاب رفرنسی که من برای شبکه های کامپبوتری خوندم:
Computer networking, A top down approach
Authores: Kurose and Rose
Pages: 889
4 115
میدونستید این پروتکل های اصلی که در شبکه های کامپیوتری ازشون استفاده میکنید کدشون تو کرنل سیستم عامل تون قرار گرفته؟! اصلا تا به حال دیدیشون؟
اصلا این پروتکل ها چطوری ساخته میشن؟ یکی از کارهایی که میکنند اینه برای هر پروتکلی برنامه مینویسند و اونو در کرنل سیستم عامل میزارند. مثلا واسه پروتکل TCP میتونید سورس کدش رو در گیت هاب آقای Linus Torvals تو ریپازیتوری Linux که سورس کد کرنل لینوکس هست ببینید، برنامه اشو با زبان C نوشتند.
بقیه پروتکل هارو هم از تغییرات روی پروتکل TCP نوشتند مثل L2TP و ... .
نکته جالب تر اینه که هرکی میتونه پروتکل مخصوص خودش رو بنویسه! فقط پروتکل باید هم تو سیستم عامل فرستنده و هم گیرنده قرار بگیره تا از طریق یه پورتی بتونند بهم وصل بشن.
اینم سورس کد پروتکل TCP:
https://github.com/torvalds/linux/blob/master/net/ipv4/tcp.c
#شبکه
4 115
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)4 115
یکی از دوستان پرسیدند چطوری پروژه هارو روی سرور انتقال میدید.
یک نمونه دیپلوی کردن پروژه روی سرور برای دوستان تازه کار:
تو این پروژه مهندس حسینخانی اومدند یه مدل ریکامندر سیستم رو روی سرورشون دیپلوی کردند. روش های انتقال پروژه روی سرور یا دیپلوی کردن بسیار متنوع هست ولی برای انواع پروژه ها (دیتاساینس، فلاتر، اندروید، وب و ...) تقریبا یه متد کلی داره.
https://www.aparat.com/v/1zems?playlist=5220444
4 115
پروژه هایی که باید توی رزومه ات داشته باشی:
online shop
weather
messenger
calculator
music player
to do list
◦•◉✿ @python_rd ✿◉•◦
4 115
حتما خروجی بگیرید و لذت ببرید 🤓
Python
import turtle
turtle.bgcolor("black")
squary = turtle.Turtle()
squary.speed(20)
squary.pencolor("red")
for i in range(400):
squary.forward(i)
squary.left(91)
◦•◉✿ @python_rd ✿◉•◦4 115
حتما خروجی بگیرید و لذت ببرید
import turtle
turtle.bgcolor("black")
squary = turtle.Turtle()
squary.speed(20)
squary.pencolor("red")
for i in range(400):
squary.forward(i)
squary.left(91)
◦•◉✿ @python_rd ✿◉•◦4 115
جالبه بدونید سازنده هلندی پایتون "Guido van Rossum" که این زبان رو توی سال 1991 معرفی کرد. اسمش رو از یک فیلم کمدی "Monty Python" که در حال تماشا بود برداشته.
◦•◉✿ @python_rd ✿◉•◦
4 115
وای چه ناز شد😍😎.
این برنامه رو واسه ی کاری نوشتم. یه قطعه کدی هست که کلمات کلیدی ای که میخواید رو تو پی دی اف ها میگرده و پیداش میکنه. البته هنوز جای کار داره.
کاربردش زیاده مثلا واسه گشتن تو یه عالمه پی دی اف رزومه که شما به عنوان کارفرما به دستتون رسیده ببینید کی ها با اون اسکیل هایی که شما نیاز دارید مچ هستند. فقط کافیه کلمه های کلیدی(اسکیل ها) مورد نظرتون رو مشخص کنید.
4 115
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)