مسئله پنجم
سطح: متوسط
توضیح:
ما سه آدرس زیر را داریم:
https://jsonplaceholder.typicode.com/todos/1
https://jsonplaceholder.typicode.com/todos/2
https://jsonplaceholder.typicode.com/todos/3
برنامه ای بنویسید که همزمان به هر سه آدرس درخواست get بزند و هرکدام که زودتر جواب داد. در خروجی response body را نمایش بدهد و بگوید پاسخ مال کدام آدرس است.
اگر بعد از گذشت 3 ثانیه هیچکدام از آدرس ها جواب ندادند. در خروجی Timeout را نمایش بدهد و برنامه متوقف شود.
(نمونه خروجی json رو تلگرام خودش زحمت کشید به پیام اضافش کرد)
(💥جایزه کانفیگ یه ماهه)
#Problems
@Syntax_fa
سطح: متوسط
توضیح:
ما سه آدرس زیر را داریم:
https://jsonplaceholder.typicode.com/todos/1
https://jsonplaceholder.typicode.com/todos/2
https://jsonplaceholder.typicode.com/todos/3
برنامه ای بنویسید که همزمان به هر سه آدرس درخواست get بزند و هرکدام که زودتر جواب داد. در خروجی response body را نمایش بدهد و بگوید پاسخ مال کدام آدرس است.
اگر بعد از گذشت 3 ثانیه هیچکدام از آدرس ها جواب ندادند. در خروجی Timeout را نمایش بدهد و برنامه متوقف شود.
(نمونه خروجی json رو تلگرام خودش زحمت کشید به پیام اضافش کرد)
(💥جایزه کانفیگ یه ماهه)
#Problems
@Syntax_fa
👍6🔥6👎1
Syntax | سینتکس
مسئله پنجم سطح: متوسط توضیح: ما سه آدرس زیر را داریم: https://jsonplaceholder.typicode.com/todos/1 https://jsonplaceholder.typicode.com/todos/2 https://jsonplaceholder.typicode.com/todos/3 برنامه ای بنویسید که همزمان به هر سه آدرس درخواست get بزند و هرکدام…
پاسخ در زبان گو:
با استفاده از قابلیت Select و channel ها میتوانیم چنین مسئله ای رو به سادگی حل کنیم.
#Problems
@Syntax_fa
package main
import (
"io"
"net/http"
"time"
)
func main() {
var result string
todo1 := make(chan string)
todo2 := make(chan string)
todo3 := make(chan string)
go GetRequestResponse(todo1, "https://jsonplaceholder.typicode.com/todos/1")
go GetRequestResponse(todo2, "https://jsonplaceholder.typicode.com/todos/2")
go GetRequestResponse(todo3, "https://jsonplaceholder.typicode.com/todos/3")
select {
case result = <-todo1:
println("todo1")
println(result)
case result = <-todo2:
println(todo2)
println(result)
case result = <-todo3:
println("todo3")
println(result)
case <-time.After(time.Second * 3):
println("Timeout")
}
}
func GetRequestResponse(content chan<- string, url string) {
res, err := http.Get(url)
if err != nil {
panic(err)
}
responseBody, err := io.ReadAll(res.Body)
defer res.Body.Close()
if err != nil {
panic(err)
}
content <- string(responseBody)
}
با استفاده از قابلیت Select و channel ها میتوانیم چنین مسئله ای رو به سادگی حل کنیم.
#Problems
@Syntax_fa
🔥8👍1
Syntax | سینتکس
مسئله پنجم سطح: متوسط توضیح: ما سه آدرس زیر را داریم: https://jsonplaceholder.typicode.com/todos/1 https://jsonplaceholder.typicode.com/todos/2 https://jsonplaceholder.typicode.com/todos/3 برنامه ای بنویسید که همزمان به هر سه آدرس درخواست get بزند و هرکدام…
پاسخ در زبان پایتون:
زمانی که از asyncio استفاده میکنیم باید کتابخانه های ماهم از قابلیت async پشتیبانی کنند به همین دلیل از aiohttp بجای requests استفاده میکنیم.
#Problems
@Syntax_fa
import asyncio
import aiohttp
async def fetch_data(url, session):
async with session.get(url) as response:
return await response.text(), url
async def main():
urls = [
"https://jsonplaceholder.typicode.com/todos/1",
"https://jsonplaceholder.typicode.com/todos/2",
"https://jsonplaceholder.typicode.com/todos/3",
]
async with aiohttp.ClientSession() as session:
tasks = [fetch_data(url, session) for url in urls]
try:
done, _ = await asyncio.wait(tasks, timeout=3, return_when=asyncio.FIRST_COMPLETED)
except asyncio.TimeoutError:
print("Timeout: No response within 3 seconds.")
return
for task in done:
response_body, url = task.result()
print(f"Response from {url}:\n{response_body}")
if __name__ == "__main__":
asyncio.run(main())
زمانی که از asyncio استفاده میکنیم باید کتابخانه های ماهم از قابلیت async پشتیبانی کنند به همین دلیل از aiohttp بجای requests استفاده میکنیم.
#Problems
@Syntax_fa
🔥12👍2
یه سوال جالب بپرسیم از جنگو کارای کانال
این سوال توی stackoverflow مطرح شده.
فرض کنید کلاینتی یک درخواست رو سمت ما میفرسته. جنگو شروع میکنه به پراسس و یه سری کار هارو داره انجام میده.
کلاینت که browser هستش درخواست رو که هنوز پاسخش رو دریافت نکرده و در حال پراسس هستش، کنسل میکنه و یا کلا browser رو میبنده.
سمت جنگو چه اتفاقی میوفته؟
آیا راهی هست که توی جنگو وقتی کاربر کنسل میکنه مطلع بشیم و ما هم ادامه پراسس رو انجام ندیم یا اینکه اون پراسس ها باید پیش بره آیا خود جنگو این قضیه رو هندل میکنه ؟
به این لینک ها سر بزنید:
https://groups.google.com/g/django-users/c/3ksj4Clne4c
https://docs.djangoproject.com/es/1.10/ref/request-response/#streaminghttpresponse-objects
https://stackoverflow.com/questions/39451818/how-does-django-handle-cancelled-or-interrupted-requests
#Problems
@Syntax_fa
این سوال توی stackoverflow مطرح شده.
فرض کنید کلاینتی یک درخواست رو سمت ما میفرسته. جنگو شروع میکنه به پراسس و یه سری کار هارو داره انجام میده.
کلاینت که browser هستش درخواست رو که هنوز پاسخش رو دریافت نکرده و در حال پراسس هستش، کنسل میکنه و یا کلا browser رو میبنده.
سمت جنگو چه اتفاقی میوفته؟
آیا راهی هست که توی جنگو وقتی کاربر کنسل میکنه مطلع بشیم و ما هم ادامه پراسس رو انجام ندیم یا اینکه اون پراسس ها باید پیش بره آیا خود جنگو این قضیه رو هندل میکنه ؟
به این لینک ها سر بزنید:
https://groups.google.com/g/django-users/c/3ksj4Clne4c
https://docs.djangoproject.com/es/1.10/ref/request-response/#streaminghttpresponse-objects
https://stackoverflow.com/questions/39451818/how-does-django-handle-cancelled-or-interrupted-requests
#Problems
@Syntax_fa
😱7👀4👍2
اپلیکیشن گیت هاب برای موبایل
میتونید issues , pull requests و commit و کلی قابلیت دیگه رو مدریت کنید. برای مواقعی که سیستم همراهتون نیست خوبه.
لینک دانلود برای اندروید:
https://play.google.com/store/apps/details?id=com.github.android&pli=1
#Github
@Syntax_fa
میتونید issues , pull requests و commit و کلی قابلیت دیگه رو مدریت کنید. برای مواقعی که سیستم همراهتون نیست خوبه.
لینک دانلود برای اندروید:
https://play.google.com/store/apps/details?id=com.github.android&pli=1
#Github
@Syntax_fa
👍12👎1
حرفهای بنویس! بهینه باش.
‼️ درک #عمیق کارکرد یک سیستم، یک الگوریتم و حتی یک بازی!
👈 کمک بسیار زیادی به بهینه و دقیق نوشتن اون میکنه.
امروز قصد داریم بازی سنگ، کاغذ، قیچی رو بنویسیم 💯
♥️ Source: GitHub
🌀 #Python_Eight
( توضیحات داخل کامنت. )
@Syntax_fa
‼️ درک #عمیق کارکرد یک سیستم، یک الگوریتم و حتی یک بازی!
👈 کمک بسیار زیادی به بهینه و دقیق نوشتن اون میکنه.
امروز قصد داریم بازی سنگ، کاغذ، قیچی رو بنویسیم 💯
♥️ Source: GitHub
🌀 #Python_Eight
( توضیحات داخل کامنت. )
@Syntax_fa
👍15👎5🔥1
مسئله ششم (فیلسوفان حریص)
سطح: سخت
بریم سراغ یکی از معروف ترین مسائل برنامه نویسی
در علوم کامپیوتر مسئله فیلسوفان پشت میز غذاخوری یک مسئله تمثیلی است مربوط به طراحی هم روندی الگوریتم ها، که معمولاً برای نشان دادن مشکلات و تکنیک های همگام سازی و روش حل آن ها استفاده می شود. این مسئله در ابتدا در سال ۱۹۶۵ توسط آقای دیکسترا به عنوان یک تمرین امتحانی دانش آموزی طراحی شد.
بیان مسئله:
پنج فیلسوف ساکت در اطراف یک میز قرار می گیرند. روی میز کاسه های ماکارونی وجود دارد. چنگال هایی مابین هر جفت از فیلسوف های کنار هم قرار داده شده است. هر فیلسوف باید به صورت متناوب فکر کند و بخورد. با این حال، یک فیلسوف فقط زمانی می تواند ماکارونی بخورد که که هر دو چنگال سمت چپ و سمت راست را در اختیار داشته باشد. هر چنگال در هر لحظه فقط می تواند توسط یک فیلسوف استفاده شود و بنابراین، یک فیلسوف فقط زمانی می تواند از چنگال استفاده کند که چنگال توسط فیلسوف دیگر در حال استفاده نباشد. بعد از این که یک فیلسوف خوردنش تمام شد، باید هر دو چنگال را روی میز بگذارد تا بقیه از آن ها استفاده کنند. یک فیلسوف فقط می تواند چنگال سمت راست خود یا چنگال سمت چپ خود را، زمانی که موجود باشد، در اختیار بگیرد و نمیتواند قبل از در اختیار گرفتن هر دو چنگال خوردن را شروع کند. مقدار خوردن ارتباطی به حجم باقیمانده ماکارونی یا فضای معده افراد ندارد؛ به عبارتی، فرض بر این است که مقدار ماکارونی نامحدود است و مقدار خوردن نیز نامحدود است. مسئله این است که چگونه یک نظم رفتاری (الگوریتم همروندی) طراحی کنیم، به گونهای که هیچ فیلسوفی گرسنه نماند؛ یعنی هر کدام بتواند به مدت نامتناهی و متناوباً بخورد و فکر کند. البته با فرض اینکه هیچ فیلسوفی نمیداند که چه زمانی سایر فیلسوفان قصد خوردن یا فکر کردن دارند.
این مسئله با این هدف طراحی شد که چالش های پیشگیری از بن بست را نشان دهد. بن بست یک وضعیتی از سیستم است که در آن هیچ پیشرفتی امکان پذیر نیست.
حتما سرچ کنید و بیشتر در مورد این مسئله بخونید (عکس توی کامنت رو نگاه کنید)
مسئله رو با استفاده از یکی از زبان ها حل کنید و از همه مهم تر بخوبی در مورد مسئله و راه حلتون توضیح بدید.
(جایزه کانفیگ 100 گیگابایتی بدون مدت زمان)
#Problems
@Syntax_fa
سطح: سخت
بریم سراغ یکی از معروف ترین مسائل برنامه نویسی
در علوم کامپیوتر مسئله فیلسوفان پشت میز غذاخوری یک مسئله تمثیلی است مربوط به طراحی هم روندی الگوریتم ها، که معمولاً برای نشان دادن مشکلات و تکنیک های همگام سازی و روش حل آن ها استفاده می شود. این مسئله در ابتدا در سال ۱۹۶۵ توسط آقای دیکسترا به عنوان یک تمرین امتحانی دانش آموزی طراحی شد.
بیان مسئله:
پنج فیلسوف ساکت در اطراف یک میز قرار می گیرند. روی میز کاسه های ماکارونی وجود دارد. چنگال هایی مابین هر جفت از فیلسوف های کنار هم قرار داده شده است. هر فیلسوف باید به صورت متناوب فکر کند و بخورد. با این حال، یک فیلسوف فقط زمانی می تواند ماکارونی بخورد که که هر دو چنگال سمت چپ و سمت راست را در اختیار داشته باشد. هر چنگال در هر لحظه فقط می تواند توسط یک فیلسوف استفاده شود و بنابراین، یک فیلسوف فقط زمانی می تواند از چنگال استفاده کند که چنگال توسط فیلسوف دیگر در حال استفاده نباشد. بعد از این که یک فیلسوف خوردنش تمام شد، باید هر دو چنگال را روی میز بگذارد تا بقیه از آن ها استفاده کنند. یک فیلسوف فقط می تواند چنگال سمت راست خود یا چنگال سمت چپ خود را، زمانی که موجود باشد، در اختیار بگیرد و نمیتواند قبل از در اختیار گرفتن هر دو چنگال خوردن را شروع کند. مقدار خوردن ارتباطی به حجم باقیمانده ماکارونی یا فضای معده افراد ندارد؛ به عبارتی، فرض بر این است که مقدار ماکارونی نامحدود است و مقدار خوردن نیز نامحدود است. مسئله این است که چگونه یک نظم رفتاری (الگوریتم همروندی) طراحی کنیم، به گونهای که هیچ فیلسوفی گرسنه نماند؛ یعنی هر کدام بتواند به مدت نامتناهی و متناوباً بخورد و فکر کند. البته با فرض اینکه هیچ فیلسوفی نمیداند که چه زمانی سایر فیلسوفان قصد خوردن یا فکر کردن دارند.
این مسئله با این هدف طراحی شد که چالش های پیشگیری از بن بست را نشان دهد. بن بست یک وضعیتی از سیستم است که در آن هیچ پیشرفتی امکان پذیر نیست.
حتما سرچ کنید و بیشتر در مورد این مسئله بخونید (عکس توی کامنت رو نگاه کنید)
مسئله رو با استفاده از یکی از زبان ها حل کنید و از همه مهم تر بخوبی در مورد مسئله و راه حلتون توضیح بدید.
(جایزه کانفیگ 100 گیگابایتی بدون مدت زمان)
#Problems
@Syntax_fa
🔥6👍4👎1
مینی دوره ثبت و بررسی تراکنش بانکی با جنگو و ترماکس
سطح دوره: متوسط
توی این دوره قراره چی یاد بگیرید؟
تو این مینی دوره یاد میگیرید که چجوری بتونید با استفاده از جنگو و ترماکس، تراکنش های بانکیتون رو بخونید و یه مدریت حساب کوچیک برای خودتون راه بندازی.
با کمی خلاقیت میتونید کارای مختلفی انجام بدید😉
امشب آپلودش میکنم توی یوتیوب سینتکس
از کی قراره یاد بگیرید؟
یکی از ادمین های خوب و با تجربه تیممون آقای حمید حسینی
وب سایت شخصی حمید حسینی:
https://h4mid-hosseini.ir
(دوره بدون ادیت و کار خاصی ضبط شده و تمرکز اصلی روی محتوا هستش تا بتونیم آموزش های بیشتری رو تو زمان کوتاه تر ضبط کنیم)
#Django
@Syntax_fa
سطح دوره: متوسط
توی این دوره قراره چی یاد بگیرید؟
تو این مینی دوره یاد میگیرید که چجوری بتونید با استفاده از جنگو و ترماکس، تراکنش های بانکیتون رو بخونید و یه مدریت حساب کوچیک برای خودتون راه بندازی.
با کمی خلاقیت میتونید کارای مختلفی انجام بدید😉
امشب آپلودش میکنم توی یوتیوب سینتکس
از کی قراره یاد بگیرید؟
یکی از ادمین های خوب و با تجربه تیممون آقای حمید حسینی
وب سایت شخصی حمید حسینی:
https://h4mid-hosseini.ir
(دوره بدون ادیت و کار خاصی ضبط شده و تمرکز اصلی روی محتوا هستش تا بتونیم آموزش های بیشتری رو تو زمان کوتاه تر ضبط کنیم)
#Django
@Syntax_fa
❤🔥13👍4🔥2👎1
برای اونایی که میگن امکانش هست ما هم آموزش هامونو بذاریم یا نه
مبحثی که میخواید آموزش بدید رو پیوی بهم بگید، اگه آموزش خوبی رو بتونید ارائه بدید توی کانال و یوتیوب سینتکس قرار میگیره تا افراد بیشتری بتونن از اموزشتون استفاده کنن. همچنین از شما هم حمایت بشه
@Syntax_fa
مبحثی که میخواید آموزش بدید رو پیوی بهم بگید، اگه آموزش خوبی رو بتونید ارائه بدید توی کانال و یوتیوب سینتکس قرار میگیره تا افراد بیشتری بتونن از اموزشتون استفاده کنن. همچنین از شما هم حمایت بشه
@Syntax_fa
👍14
Syntax | سینتکس
مینی دوره ثبت و بررسی تراکنش بانکی با جنگو و ترماکس سطح دوره: متوسط توی این دوره قراره چی یاد بگیرید؟ تو این مینی دوره یاد میگیرید که چجوری بتونید با استفاده از جنگو و ترماکس، تراکنش های بانکیتون رو بخونید و یه مدریت حساب کوچیک برای خودتون راه بندازی.…
مینی دوره ثبت و بررسی تراکنش بانکی با جنگو و ترماکس
سطح دوره: متوسط
لینک پلی لیست:
https://youtube.com/playlist?list=PLi2nijwBFea1QS7XKI1db-Kt8kcY_-ddY&si=3kp4vcOtA_XlTVRD
قسمت اول:
https://youtu.be/gvdQfS7PW6w
قسمت دوم:
https://youtu.be/VWTZst6DAq0
قسمت سوم:
https://youtu.be/tjK8FDKkm64
قسمت چهارم:
https://youtu.be/m-vTLFZeyx0
قسمت پنجم:
https://youtu.be/QZoec9-NQTo
قسمت ششم:
https://youtu.be/bOFmbLdskoM
#Django
@Syntax_fa
سطح دوره: متوسط
لینک پلی لیست:
https://youtube.com/playlist?list=PLi2nijwBFea1QS7XKI1db-Kt8kcY_-ddY&si=3kp4vcOtA_XlTVRD
قسمت اول:
https://youtu.be/gvdQfS7PW6w
قسمت دوم:
https://youtu.be/VWTZst6DAq0
قسمت سوم:
https://youtu.be/tjK8FDKkm64
قسمت چهارم:
https://youtu.be/m-vTLFZeyx0
قسمت پنجم:
https://youtu.be/QZoec9-NQTo
قسمت ششم:
https://youtu.be/bOFmbLdskoM
#Django
@Syntax_fa
❤🔥6👍3🔥2
از کجا ریجکس رو یاد بگیرم؟
https://regexlearn.com/learn/regex101
با مثال های کاربردی میتونید به سادگی با نحوه نوشتن پترن ریجکس آشنا بشید.
#Regext
@Syntax_fa
https://regexlearn.com/learn/regex101
با مثال های کاربردی میتونید به سادگی با نحوه نوشتن پترن ریجکس آشنا بشید.
#Regext
@Syntax_fa
Regexlearn
Regex 101 - EN
You can learn the basics of Regex in this tutorial.
🔥4👍3