Pink Orca | پینک اورکا
2.43K subscribers
414 photos
118 videos
45 files
318 links
درود به همه.
به کانال من خوش اومدین :)

🔗 دسته‌بندی پست‌ها: t.iss.one/PinkOrca/5

انجمن: برای عضویت پیام بفرستید.

ادمین: @Pink0rca
اگر پستی ایراد علمی داره حتما بگید.

دونیت: Daramet.com/PinkOrca
💥 دربارهٔ من: PinkOrca.net
Download Telegram
فاجعهٔ Dependencyهای تکراری در ویندوز در مقابل بهینگی پکیج منیجرهای لینوکس

🤓 چرا ویندوز همیشه مجبوره یه چیز رو هزار بار نصب کنه، اما لینوکس با یه بار نصبِ هوشمند، همه چی رو تو سیستم قفل می‌کنه؟ تو این نوشته (در ۳ پارت کوتاه) می‌خونید که چجوری لینوکس با یه ترفند ساده، ۸۵٪ از دردسر Dependencyها رو حذف کرده، ولی ویندوز هنوز تو باتلاق DLLها گیر کرده!

با من همراه باشید⬇️
#لینوکس #ویندوز #سیستم_عامل #نوشته
~> @PinkOrca 🩷
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥26👍65
1/3

‏DLL Hell در ویندوز: چالش Dependencyهای غیرمتمرکز
در سیستم‌عامل ویندوز، مسئله DLL Hell به یکی از معضلات تاریخی مدیریت وابستگی‌ها (Dependencies) تبدیل شده. DLLها (Dynamic-Link Libraries) فایل‌های کتابخونه‌ای مشترک هستن که برنامه‌های مختلف می‌تونن ازشون استفاده کنن. مشکل اصلی وقتی شروع می‌شه که دو یا چند برنامه، نسخه‌های متفاوتی از یک DLL رو نیاز دارن. مثلاً برنامه A نیاز به msvcrt.dll نسخه 1.0 داره و برنامه B به همان DLL اما نسخه 2.0 وابسته هستش. در ویندوزهای قدیمی (مثل ۹۸ یا XP)، این DLLها در مسیرهای سیستمی مشترک (مثل System32) کپی می‌شدن و نصب یک برنامه جدید می‌تونست نسخه قدیمی رو بازنویسی کنه. نتیجه؟ برنامه A با خطای Missing DLL یا Crash مواجه می‌شد.

مکانیزم Side-by-Side Assembly ‏(SxS)
در ویندوز ویستا و بعدتر معرفی شد تا این مشکل رو کاهش بده. توی این روش، هر برنامه می‌تونه نسخه خاصی از DLL رو در پوشه محلی خودش (مثل Program Files/AppName) ذخیره کنه یا از Manifest Files استفاده کنه تا نسخه دقیق DLL موردنیازش رو به سیستم معرفی کنه. اما این راهکار هم کامل نیست چون:
- حجم دیسک افزایش پیدا می‌کنه چون چندین نسخه از یک DLL توی سیستم ذخیره می‌شه.
- برنامه‌های قدیمی که از SxS پیروی نمی‌کنن هنوز می‌تونن باعث تداخل بشن.
- توسعه‌دهندگان گاهی ترجیح میدن از Static Linking استفاده کنن (کتابخونه‌ها رو مستقیماً داخل EXE برنامه کامپایل کنن) که اینم حجم فایل اجرایی رو بیشتر می‌کنه.

~> @PinkOrca 🩷
Please open Telegram to view this post
VIEW IN TELEGRAM
👍144😁1
2/3

پکیج منیجرها در لینوکس: داینامیک ریپازیتوری و بهینگی Dependencyها
در اکوسیستم لینوکس، سیستم‌های مدیریت پکیج (مثل apt، ‏dnf، ‏pacman) با مکانیزمی متمرکز و بهینه عمل می‌کنن. هر پکیج به شکل صریح لیست وابستگی‌هاش رو توی متادیتای خودش تعریف می‌کنه. وقتی دستور نصب اجرا می‌شه، پکیج منیجر به شکل خودکار:
‏1. Dependencyهای لازم رو از ریپازیتوری‌های مرکزی پیدا می‌کنه.
2. بررسی می‌کنه که آیا نسخه‌های نصب‌شده فعلی با نیازمندی‌های پکیج جدید Compatible (سازگار) هستن یا نه.
3. در صورت نیاز، آپگرید یا دانگرید کتابخونه‌ها رو انجام میده تا تضمین کنه همه چیز بدون Conflict (تداخل) کار می‌کنه.

مثلاً نصب یک وب‌سرور مثل nginx روی لینوکس باعث می‌شه پکیج منیجر به شکل خودکار کتابخونه‌های ضروری مثل libpcre،‏ openssl و zlib رو نصب کنه. اگر نسخه‌های موجود قدیمی باشن، پکیج منیجر نسخه‌های آپدیت شده رو از ریپازیتوری میاره. این فرایندها روی پکیج‌های باینری و متادیتاهای Precompiled (ازپیش-کامپایل‌شده) تکیه دارن که Dependency Resolution رو سریع و قابل پیش‌بینی می‌کنه.

چرا تداخل نسخه‌ها به ندرت پیش میاد؟
- کتابخونه‌ها در لینوکس معمولاً با Semantic Versioning نام‌گذاری می‌شن. مثلاً libfoo1.2 و libfoo2.0 می‌تونن همزمان نصب باشن بدون تداخل، چون اسم پکیج‌ها متفاوته.
- سیستم مدیریت پکیج از Symbolic Links و SONAME‏ (Shared Object Name) استفاده می‌کنه تا مطمئن شه برنامه‌ها به نسخه صحیح لینک می‌شن. مثلاً اگر برنامه به libc.so.6 نیاز داره، لینک سمبولیک /lib/libc.so.6 به فایل واقعی مثل libc-‌2.31‌.s‌o اشاره می‌کنه.

~> @PinkOrca 🩷
Please open Telegram to view this post
VIEW IN TELEGRAM
👍107
3/3

مقایسه تکنیکال: Static Linking vs Dynamic Linking
- ویندوز (غالباً Static/خودمحور):
برنامه‌ها ترجیح میدن تا حد امکان از کتابخونه‌های اختصاصی یا Static-Linked استفاده کنن تا Dependencyها رو به حداقل برسونن. نتیجه؟ حجم بالای فایل‌های EXE و نصبِ تکراری کتابخونه‌ها (مثل چندین نسخه از VC++ Redistributable).
- لینوکس (غالباً Dynamic/متمرکز):
پکیج‌ها به کتابخونه‌های داینامیک وابسته می‌شن که فقط یک بار نصب می‌شن و بین همه برنامه‌ها به اشتراک گذاشته می‌شن. حجم نهایی سیستم کمتر می‌شه و آپدیت امنیتی یک کتابخونه، همه برنامه‌های وابسته رو تحت پوشش قرار میده.

آمار و فکت‌های کلیدی:
- توی ویندوز ۱۰، بیش از ۱۵ نسخه مختلف از Visual C++ Redistributable ممکنه نصب باشه که هر کدوم بین ۲۰MB تا ۱۰۰MB فضا اشغال می‌کنن.
- توی لینوکس، پکیج libc6 (کتابخونه استاندارد سی) فقط یک بار نصب می‌شه و بیش از ۸۵٪ از پکیج‌های موجود در ریپازیتوری‌های معتبر بهش وابسته‌ان. حجم این پکیج حدود ۴MB هستش.
- بر اساس مستندات فنی، سیستم‌های مدیریت پکیج لینوکس از الگوریتم‌های پیشرفته برای Dependency Resolution استفاده می‌کنن تا ناسازگاری نسخه‌ها رو حذف کنن.

نکته فنی:
مکانیزم کش (Cache) پکیج منیجرها در دایرکتوری‌های خاصی (مثل /var/lib/apt/lists یا /var/cache/dnf) لیستی از تمام پکیج‌ها و وابستگی‌هاشون رو نگه می‌داره. وقتی دستور آپدیت میدی، این کش با ریپازیتوری همگام‌سازی می‌شه و Dependencyها روی آخرین نسخه‌ها چک می‌شن. توی ویندوز، چنین سیستمی به صورت مرکزی وجود نداره و هر برنامه جداگانه چک می‌کنه آپدیت جدیدی واسه DLLهای خاص خودش هست یا نه.

مسئله Checksum و امنیت:
پکیج منیجرهای لینوکس به صورت پیش‌فرض از الگوریتم‌های هشینگ مثل SHA-256 برای تأیید یکپارچگی پکیج‌ها استفاده می‌کنن. هر پکیج قبل از نصب، بررسی می‌شه تا مطمئن شه با نسخه موجود در ریپازیتوری مطابقت داره. توی ویندوز، اگرچه امضای دیجیتال برای فایل‌های اجرایی وجود داره، اما هیچ سیستم متمرکزی برای بررسی یکپارچگی DLLهای سیستمی تعریف نشده.

~> @PinkOrca 🩷
Please open Telegram to view this post
VIEW IN TELEGRAM
👍167
چرا مسیحی نیستم (برتراند راسل).pdf
2.4 MB
~> Why I Am Not a Christian (پیشنهادی)
"چرا من مسیحی نیستم" کتابی هستش که برتراند راسل در سال ۱۹۲۷ نوشته. این کتاب در اصل یک سخنرانی بوده که راسل توی انجمن ملی سکولار لندن ارائه کرده و بعدا تبدیل به کتاب شده.
راسل توی این کتاب به صورت سیستماتیک دلایلی که باعث شدن مسیحیت رو رد کنه توضیح می‌ده. یکی از مهم‌ترین بخش‌های کتاب، نقد برهان علیت هستش که توسط توماس آکویناس مطرح شده بود. راسل می‌گه که این برهان منطقی نیست چون اگه هر چیزی باید علتی داشته باشه، پس خود خدا هم باید علتی داشته باشه.

توی بخش دیگه‌ای از کتاب، راسل به مسئله رنج و درد در جهان می‌پردازه. اون می‌گه چطور ممکنه خدایی که می‌گن مهربون و قادر مطلق هستش، اجازه بده این‌همه درد و رنج توی دنیا وجود داشته باشه؟

یه نکته جالب اینه که راسل توی این کتاب به تاثیر ترس روی شکل‌گیری دین اشاره می‌کنه. اون می‌گه آدم‌ها از چیزایی که نمی‌فهمن می‌ترسن و این ترس باعث می‌شه به دین پناه ببرن.

کتاب با زبان ساده و در عین حال دقیق نوشته شده و تاثیر زیادی روی جنبش‌های آتئیستی قرن بیستم گذاشته. جالبه بدونید که این کتاب توی زمان انتشارش خیلی جنجالی شد و حتی باعث شد راسل از تدریس توی کالج City College of New York محروم بشه.

راسل توی این کتاب به مسائل اخلاقی هم می‌پردازه و می‌گه که می‌شه بدون دین هم اخلاق‌مدار بود. اون معتقد بود که اخلاق مبتنی بر عقل و همدلی انسانی می‌تونه جایگزین اخلاق دینی بشه.

این کتاب تا امروز به بیش از ۴۰ زبان ترجمه شده و یکی از تاثیرگذارترین آثار در زمینه نقد دین به حساب میاد. نسخه اصلی کتاب حدود ۶۰ صفحه هستش و توی اون راسل با دقت و ظرافت خاصی استدلال‌هاش رو مطرح می‌کنه.

#متفرقه #کتاب
~> @PinkOrca 🩷
Please open Telegram to view this post
VIEW IN TELEGRAM
16👎11👍6🤣3
~> Fuzzy Search

قبل از اینکه از جستجوی فازی بگیم، لازمه یکم از منطق فازی بدونیم...
منطق فازی که در سال ۱۹۶۵ توسط پروفسور لطفی‌زاده معرفی شد، یک رویکرد ریاضی برای مدل‌سازی عدم قطعیت هستش. برخلاف منطق کلاسیک که فقط صفر و یک رو می‌شناسه، منطق فازی می‌تونه مقادیر بین این دو رو هم در نظر بگیره.

یکی از کاربردهای مهم منطق فازی، جستجوی فازی (Fuzzy Search) هستش که به ما اجازه می‌ده حتی با وجود خطاهای تایپی یا املایی، نتایج مرتبط رو پیدا کنیم. این تکنیک از الگوریتم‌های مختلفی استفاده می‌کنه که مهم‌ترین‌شون عبارتند از:

‏۱. Levenshtein Distance ‏(Edit Distance):
این الگوریتم تعداد تغییراتی که لازمه تا یک رشته به رشته دیگه تبدیل بشه رو محاسبه می‌کنه. مثلاً فاصله "سلام" و "سلم" برابر ۱ هستش چون فقط یک حرف حذف شده.

def levenshtein(s1, s2):
if len(s1) < len(s2):
return levenshtein(s2, s1)
if len(s2) == 0:
return len(s1)
previous_row = range(len(s2) + 1)
for i, c1 in enumerate(s1):
current_row = [i + 1]
for j, c2 in enumerate(s2):
insertions = previous_row[j + 1] + 1
deletions = current_row[j] + 1
substitutions = previous_row[j] + (c1 != c2)
current_row.append(min(insertions, deletions, substitutions))
previous_row = current_row
return previous_row[-1]


‏۲. Soundex:
این الگوریتم کلمات رو براساس تلفظشون کد‌گذاری می‌کنه. مثلاً "Smith" و "Smythe" کد یکسانی می‌گیرن چون تلفظ مشابهی دارن. این الگوریتم خیلی توی سیستم‌های CRM استفاده می‌شه.

‏۳. N-gram:
این تکنیک رشته‌ها رو به قطعه‌های n حرفی تقسیم می‌کنه و شباهت‌شون رو می‌سنجه. مثلاً برای کلمه "hello" با n=2 داریم: "he", "el", "ll", "lo"

یک نمونه کاربردی از جستجوی فازی توی Elasticsearch هستش که از تکنیک‌های مختلفی مثل Fuzzy Query استفاده می‌کنه:

{
"query": {
"fuzzy": {
"title": {
"value": "تهرن",
"fuzziness": "AUTO"
}
}
}
}


شرکت‌های بزرگ از ترکیب این الگوریتم‌ها استفاده می‌کنن. مثلاً اسپاتیفای از الگوریتم‌های فازی برای جستجوی موزیک استفاده می‌کنه که حتی اگه اسم آهنگ رو اشتباه بنویسی، می‌تونه نتیجه درست رو پیدا کنه.

یکی از چالش‌های اصلی جستجوی فازی، تنظیم threshold هستش. اگه خیلی پایین باشه نتایج نامرتبط زیاد می‌شن و اگه خیلی بالا باشه ممکنه نتایج مفید رو از دست بدیم. معمولاً مقدار ۰.۸ یا ۸۰٪ نقطه شروع خوبی هستش.

برای زبان‌های غیرانگلیسی مثل فارسی، باید ملاحظات خاصی در نظر گرفته بشه. مثلاً حروف مشابه مثل "ک" و "گ" یا تشخیص کلمات مرکب. کتابخونه‌هایی مثل hazm برای فارسی این قابلیت‌ها رو فراهم می‌کنن.

#برنامه_نویسی #علوم_کامپیوتر #نرم_افزار #ریاضی #نوشته
~> @PinkOrca 🩷
Please open Telegram to view this post
VIEW IN TELEGRAM
26👍10🔥3🍾1
This media is not supported in your browser
VIEW IN TELEGRAM
~> عکس رندوم با ویژگی‌های دلخواه برای وب‌دیزاینر‌ها

⚡️ ‏Lorem Picsum یه سرویس CDN برای عکس‌های تستی و پلیس‌هولدر هستش که از عکس‌های Unsplash استفاده می‌کنه. API ساده‌ای داره و می‌تونید سایز و افکت‌های مختلف رو روی عکس‌ها اعمال کنید. سورس‌کدش روی گیت‌هاب هستش، با Go نوشته شده و کاملا رایگانه.

🔥 https://picsum.photos

👍 خودم خیلی دوسش دارم به شخصه و استفادش می‌کنم برای صرفه‌جویی در زمان...
#معرفی #طراحی_وب #اپن_سورس
~> @PinkOrca 🩷
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥5
This media is not supported in your browser
VIEW IN TELEGRAM
💥 اسلایدر تصویر (HTML, CSS, JS)
🔗 سورس کد

پ.ن:
+ یه navbar ریسپانسیو هم امشب کامیت کردم...
#تکه_کد #طراحی_وب
~> @PinkOrca 🩷
Please open Telegram to view this post
VIEW IN TELEGRAM
9🔥4👍2
This media is not supported in your browser
VIEW IN TELEGRAM
~> TeleSecretary
🥸 به پیشنهاد عرشا این قابلیت پاسخگویی خودکار (به چت‌های جدید) که از امکانات تلگرام بیزینس هستش رو با پایتون و کتابخونه telethon نوشتم که هرکسی خواست استفاده کنه.

🩷 این اسکریپت اپن‌سورسه و برای اطلاعات بیشتر می‌تونید README رو مطالعه کنید...
https://codeberg.org/PinkOrca/TeleSecretary

#پروژه #اپن_سورس #معرفی
~> @PinkOrca 🩷
Please open Telegram to view this post
VIEW IN TELEGRAM
113👍3🔥1😁1
~> TempleOS ⛪️

تمپل‌اواس یک سیستم‌عامل ۶۴ بیتی هستش که تری دیویس (Terry A. Davis) اون رو به تنهایی توسعه داده. این سیستم‌عامل از سال ۲۰۰۳ شروع به توسعه شد و تا سال ۲۰۱۳ اسمش LoseThos بود.

😇 این سیستم‌عامل با زبان برنامه‌نویسی HolyC نوشته شده که خود تری اون رو ساخته و شباهت زیادی به C داره. کل سیستم‌عامل حدود ۱۰۰ هزار خط کد داره و همه چیز توش با رزولوشن ۶۴۰x۴۸۰ و ۱۶ رنگ اجرا می‌شه.

یکی از ویژگی‌های جالب TempleOS اینه که هیچ مالتی‌تسکینگی نداره و همه چیز در یک رینگ 0 (بالاترین سطح دسترسی) اجرا می‌شه. این باعث می‌شه که سیستم‌عامل خیلی سریع باشه ولی امنیت نداشته باشه. تری معتقد بود که این طراحی باعث می‌شه برنامه‌نویس‌ها بتونن راحت‌تر با سخت‌افزار کار کنن.

فایل‌سیستمِ TempleOS به اسم RedSea شناخته می‌شه و از FAT32 الهام گرفته شده. این سیستم‌عامل درایور شبکه نداره و نمی‌تونه به اینترنت وصل شه. همچنین از حافظه مجازی پشتیبانی نمی‌کنه و فقط می‌تونه تا ۸ گیگابایت رم رو مدیریت کنه.

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

‏TempleOS یک کامپایلر Just-In-Time داره که کد رو مستقیماً به زبان ماشین تبدیل می‌کنه و این باعث می‌شه که اجرای برنامه‌ها خیلی سریع باشه. همچنین یک محیط توسعه یکپارچه (IDE) داره که می‌تونه کد رو در لحظه کامپایل و اجرا کنه.

یکی از ویژگی‌های جالب دیگه TempleOS قابلیت نمایش کاراکترهای ASCII به صورت سه بعدی هستش. تری دیویس یک فرمت فایل به اسم "3D Mesh" ساخت که می‌تونست کاراکترهای ASCII رو به مدل‌های سه بعدی تبدیل کنه.
این قابلیت توی بازی‌هایی که با HolyC نوشته شده بودن استفاده می‌شد. مثلاً توی بازی "After Egypt" که خود تری ساخته بود، می‌شد کاراکترهای ASCII رو به صورت مدل‌های سه بعدی دید که برای اون زمان و با توجه به محدودیت‌های گرافیکی سیستم (۱۶ رنگ)، یک نوآوری جالب به حساب می‌اومد.

این سیستم‌عامل تحت لایسنس Public Domain منتشر شده و سورس کدش به صورت کامل در دسترس هستش. با اینکه TempleOS از نظر تکنیکی محدودیت‌های زیادی داره، ولی به عنوان یک پروژه که توسط یک نفر نوشته شده خیلی قابل توجه هستش.

🗒 یکم بیشتر اگه در مورد تری دیویس کنجکاوید:

ایشون در سال ۱۹۶۹ به دنیا اومد و یک مهندس نرم‌افزار بود که توی شرکت‌های مختلف از جمله Ticketmaster کار می‌کرد. اون در اوایل دهه ۹۰ میلادی تشخیص اسکیزوفرنی گرفت و معتقد بود که خدا با اون صحبت می‌کنه و بهش دستور داده که یک سیستم‌عامل مقدس بسازه.

🥴 اون TempleOS رو "Third Temple" یا معبد سوم می‌دونست و اعتقاد داشت که این سیستم‌عامل یک ابزار الهی برای ارتباط با خداست. رزولوشن ۶۴۰x۴۸۰ و ۱۶ رنگ رو هم به این دلیل انتخاب کرد چون فکر می‌کرد که خدا این رو خواسته.

💔 تری در سال ۲۰۱۸ در سن ۴۸ سالگی فوت کرد. اون در آخرین سال‌های زندگیش شرایط سختی داشت و بی‌خانمان شده بود. نهایتاً توسط یک قطار در اورگان کشته شد که مشخص نشد خودکشی بوده یا تصادف.

❤️‍🩹 با وجود مشکلات روانی که داشت، تری یک برنامه‌نویس فوق‌العاده بود. اون تونست یک سیستم‌عامل کامل رو از صفر و به تنهایی بنویسه که از نظر فنی خیلی پیچیده هستش. کامیونیتی برنامه‌نویس‌ها هنوز هم به خاطر این دستاورد بهش احترام می‌ذارن.

🔗 TempleOS.org

اگه براتون جالب بود [این ویدیو] هم که دوستمون پیشنهاد کرده تماشا کنید.
#نرم_افزار #علوم_کامپیوتر #سیستم_عامل #بیوگرافی #معرفی #فکت
~> @PinkOrca 🩷
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥176👍6😢3
و یه دکمه پاور؟ ( همینقدر کم توقع :)
#فان #میم
~> @PinkOrca 🩷
Please open Telegram to view this post
VIEW IN TELEGRAM
🤣55👍4😁3
FLUG (Fake Linux User Group)
Pink Orca
~> FLUG

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

#گنو #لینوکس #اپن_سورس #پادکست #حرف_با_شما
~> @PinkOrca 🩷
Please open Telegram to view this post
VIEW IN TELEGRAM
😁2011👍8👎3🔥1🤣1
چرا دولینگو برای یادگیری زبان مناسب نیست؟
😎 بعد از ۱۰۶ روز استریک و تصمیم برای حذف دولینگو این پست رو می‌فرستم.

دولینگو با بیش از ۵۰۰ میلیون کاربر، یکی از محبوب‌ترین اپلیکیشن‌های یادگیری زبان هستش که از gamification (به شکل خیلی خفنی) برای درگیر کردن کاربرها استفاده می‌کنه. اما این اپ مشکلات جدی‌ای داره که باعث می‌شه نتونه ابزار موثری برای یادگیری زبان باشه.

مشکل اصلی دولینگو اینه که بیش از حد روی گیمیفیکیشن تمرکز کرده. سیستم streak، جمع‌آوری جم، لیدربورد و بقیه المان‌های بازی‌وار باعث می‌شن کاربر به جای تمرکز روی یادگیری، درگیر حفظ استریک و جمع کردن امتیاز بشه. تحقیقات نشون داده که این نوع پاداش‌های بیرونی در درازمدت انگیزه درونی برای یادگیری رو کاهش می‌دن.

از نظر متدولوژی آموزشی، دولینگو از روش‌های قدیمی و ناکارآمد استفاده می‌کنه. تمرین‌ها عمدتاً شامل ترجمه جملات کوتاه و تکراری هستن که باعث نمی‌شن کاربر درک درستی از کانتکست و کاربرد واقعی زبان پیدا کنه. مطالعات زبان‌شناسی نشون دادن که یادگیری موثر زبان نیاز به تعامل واقعی و درک عمیق‌تر از ساختارهای زبانی داره.

سیستم آموزشی دولینگو خطی نیست و کاربر نمی‌تونه مسیر یادگیری رو کاستومایز کنه. گرامر به صورت ضمنی و بدون توضیح کافی آموزش داده می‌شه که برای زبان‌آموزهای جدی کافی نیست. علاوه بر این، تمرین‌های speaking و writing محدود هستن و فیدبک‌های سیستم اغلب سطحی و غیردقیق هستن.

طبق تحقیقات موسسه FSI آمریکا، یادگیری یک زبان خارجی به ۶۰۰ تا ۲۲۰۰ ساعت مطالعه جدی نیاز داره، اما ساختار دولینگو طوری طراحی شده که کاربر فقط روزی ۵-۱۰ دقیقه (یا حتی کمتر) تمرین کنه که برای پیشرفت واقعی کافی نیست.

مشکل دیگه اینه که دولینگو از هوش مصنوعی قدیمی استفاده می‌کنه که نمی‌تونه انعطاف‌پذیری لازم برای درک گونه‌های مختلف جواب‌های درست رو داشته باشه. این باعث می‌شه خیلی وقت‌ها جواب‌های درست کاربر رو اشتباه در نظر بگیره.

#زبان #دولینگو #نوشته #متفرقه
~> @PinkOrca 🩷
Please open Telegram to view this post
VIEW IN TELEGRAM
👍364👎3😁2
خیلی یهویی چند روز پیش زد به سرم سایتمو آپدیت کنم، همون موقع نوشتمش و امشب هم محتواش رو تنظیم کردم. یه چیز استاتیک، ساده و کاملا وانیلا هستش.
https://pinkorca.net
~
https://codeberg.org/PinkOrca/PinkOrca.net
نظرتون؟

پ.ن:
تصویر تزیینی
#پروژه #حرف_با_شما
~> @PinkOrca 🩷
Please open Telegram to view this post
VIEW IN TELEGRAM
24🔥8👍5👎2😁1
~> YouTubeLM 🖥
☄️ یه ابزار کاربردی برای خلاصه کردن محتوای ویدیوهای یوتیوب به زبان دلخواه (حتی فارسی).
https://youtubelm.com

🔗مرسی از محمدرضای عزیز واسه توسعه دادنش.

پ.ن:
قبلا معرفی و بعد حذفش کرده بودم بخاطر یه مشکلی، ولی تو آپدیت جدید خوب شده.
#معرفی #ترفند
~> @PinkOrca 🩷
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥17👍84
🖼️ ترجمه کامل مجوز GPLv3 به فارسی:
https://pinkorca.net/~/gpl-v3-fa.html
🔗 Source | 🔗 GNU.org

حس می‌کنم لازم بود!
#گنو #اپن_سورس #نرم_افزار
~> @PinkOrca 🩷
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2412🤣31🤬1
This media is not supported in your browser
VIEW IN TELEGRAM
روز مهندس رو به همه، مخصوصا مهندسان نرم‌افزار تبریک می‌گم😂
#فان
~> @PinkOrca 🩷
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥31👎3🤣3👍2😁2
داستان جالب پشت پرده خلق ماینکرفت

ماینکرفت، بازی‌ای که امروزه به یکی از بزرگترین پدیده‌های دنیای گیم تبدیل شده، داستان شروعی داره که خیلی‌ها باهاش آشنا نیستن. این داستان با یک برنامه‌نویس سوئدی به نام مارکوس پرسون (با نام مستعار Notch) شروع می‌شه که تصمیم گرفت تو اوقات فراغتش یه پروژه شخصی رو شروع کنه (مثل خیلی از بقیه خفن‌ترینا که با یه پروژه شخصی استارت شدن).

تو سال ۲۰۰۹، مارکوس پرسون که اون موقع تو شرکت King (سازنده Candy Crush) کار می‌کرد، شروع کرد به ساخت یه بازی ساده که از بازی‌هایی مثل Infiniminer و Dwarf Fortress الهام گرفته بود. جالبه بدونید که نسخه اولیه بازی فقط تو ۶ روز ساخته شد! این نسخه اولیه که "Cave Game" نام داشت، خیلی زود به "Minecraft: Order of the Stone" و در نهایت فقط به "Minecraft" تغییر نام داد.

پرسون یه فروم آنلاین به نام TIGSource راه انداخت که از اونجا، آپدیت‌های بازی رو با بازیکن‌ها به اشتراک می‌ذاشت و فیدبک می‌گرفت. نکته جالب اینه که با اینکه بازی هنوز تو مرحله آلفا بود، پرسون تصمیم گرفت اون رو با قیمت ۱۰ یورو بفروشه. کسایی که این نسخه رو می‌خریدن، به همه آپدیت‌های آینده بازی هم دسترسی پیدا می‌کردن.

این استراتژی فوق‌العاده موفق بود و باعث شد تا آخر سال ۲۰۱۰، بیش از ۳۴۰,۰۰۰ نسخه تو مرحله بتا فروخته بشه. درآمد حاصل از این فروش اونقدر زیاد بود که پرسون تونست شرکت خودش، Mojang رو تاسیس کنه.

محبوبیت ماینکرفت خیلی سریع بالا رفت. فقط تو سال ۲۰۱۱، بیش از ۴ میلیون نسخه از بازی فروخته شد. کانال‌های یوتیوب و استریمرها نقش مهمی تو این موفقیت داشتن، چون گیم‌پلی خلاقانه و امکان ساخت چیزای شگفت‌انگیز رو نشون می‌دادن.

یکی از نکات خاص درباره توسعه ماینکرفت اینه که پرسون و تیمش خیلی به فیدبک کامیونیتی اهمیت می‌دادن. به همین خاطر، خیلی از ویژگی‌های بازی براساس درخواست‌های کاربرها اضافه شدن.

تو سپتامبر ۲۰۱۴، یه اتفاق افتاد که خیلی‌ها رو شوکه کرد: مایکروسافت Mojang و حق امتیاز ماینکرفت رو به مبلغ ۲.۵ میلیارد دلار خرید. این یکی از بزرگترین معامله‌های تاریخ صنعت گیم بود.

پرسون بعد از این معامله از Mojang جدا شد و دلیلش رو اینجوری توضیح داد: "این درباره سلامت روانی منه، نه پول. به محض اینکه این معامله انجام بشه، من از برنامه‌نویسی برای عموم دست می‌کشم و به ساختن پروژه‌های کوچیک و جالب ادامه می‌دم."

امروزه ماینکرفت با بیش از ۲۳۸ میلیون نسخه فروخته شده، پرفروش‌ترین بازی تاریخ هستش. این بازی به پلتفرم‌های مختلف مثل موبایل، کنسول‌ها و حتی VR راه پیدا کرده و بازیکن‌های فعال ماهانه‌اش به بیش از ۱۴۰ میلیون نفر می‌رسه.

جالبه بدونید که ماینکرفت به‌خاطر ارزش آموزشیش، تو مدارس سراسر دنیا استفاده می‌شه و حتی یه نسخه مخصوص آموزشی به نام Minecraft: Education Edition هم داره.

ماینکرفت مسیری رو طی کرد که هیچکس (حتی خود پرسون) هم فکرشو نمی‌کرد... بدون بودجه تبلیغاتی عظیم و با معرفی توسط خود مردم. انقدر رشد کرد و رو پاپ‌کالچر تاثیر گذاشت که امروزه همه جا می‌شه اثرش رو دید.
#بازی #بیوگرافی #فکت
~> @PinkOrca 🩷
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2417🔥2
~> Telethon

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

نصبش با pip install telethon انجام می‌شه و برای شروع کار باید api_id و api_hash رو از سایت my.telegram.org بگیرین. این کلیدها برای احراز هویت کلاینت لازمن.

تلتون از async/await پشتیبانی می‌کنه و سینتکس کدنویسیش پایتونیکه. برای ذخیره سشن‌ها از StringSession یا SQLiteSession استفاده می‌کنه که باعث می‌شه نیاز نباشه هر بار لاگین کنین.

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

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

برای مطالعه مستندات و شروع به کار باهاش می‌تونین به [این صفحه] مراجعه کنین.
#برنامه_نویسی #نوشته #معرفی
~> @PinkOrca 🩷
Please open Telegram to view this post
VIEW IN TELEGRAM
👍175🍾3👎2🤣2🔥1
~> Nim

‏Nim یک زبان برنامه‌نویسی سیستمی و کامپایلری هستش که در سال ۲۰۰۸ با نام Nimrod توسط Andreas Rumpf طراحی شد.

سینتکسی شبیه Python داره اما کدهاش به C کامپایل می‌شن و سرعت اجرای نزدیک به C دارن.
- یه Hello world تو نیم:
echo "Hello, World!"

کامپایلر Nim از یک رویکرد چند مرحله‌ای استفاده می‌کنه. اول کد رو به AST تبدیل می‌کنه، بعد اون رو به C می‌بره و در نهایت با استفاده از کامپایلرهای C مثل GCC یا Clang به کد باینری تبدیل می‌کنه. این زبان علاوه بر C، می‌تونه به ++C،‏ Objective-C، ‏JavaScript و WebAssembly هم کامپایل بشه.

یه سیستم تایپ قوی و استاتیک داره و از type inference هم پشتیبانی می‌کنه. این زبان از مفاهیم برنامه‌نویسی مدرن مثل generics،‏ pattern matching و multi-methods پشتیبانی می‌کنه. سیستم ماکروی Nim خیلی قدرتمنده و اجازه می‌ده در زمان کامپایل کد رو تغییر بدیم.

از نظر مدیریت حافظه، Nim چند گزینه داره. می‌تونه از garbage collector استفاده کنه یا با ARC (که در نسخه ۲.۰ اضافه شد) کار کنه. همچنین می‌شه memory management رو دستی انجام داد. این انعطاف‌پذیری باعث می‌شه برنامه‌نویس‌ها بتونن بین پرفورمنس و راحتی یکی رو انتخاب کنن.

پکیج‌منیجر رسمی Nim، ‏Nimble نام داره و از فرمت ‎.nimble برای تعریف dependency ها استفاده می‌کنه. این پکیج‌منیجر می‌تونه پکیج‌ها رو مستقیماً از GitHub و دیگر مخازن git نصب کنه.

کتابخونه استاندارد Nim شامل ماژول‌های متنوعی برای کار با فایل‌ها، شبکه، regex،‏ JSON و concurrent programming هستش. همچنین کتابخونه‌های third-party زیادی برای گرافیک (SDL2)، وب (Jester)، image processing و cryptography وجود دارن.

یکی از ویژگی‌های جالب Nim، سیستم Effect system هستش که به کامپایلر اجازه می‌ده side effects توابع رو در زمان کامپایل چک کنه. این سیستم می‌تونه خطاهای مربوط به I/O یا exception ها رو زودتر پیدا کنه.

🔗 منابع برای یادگیری Nim

#برنامه_نویسی #نرم_افزار #نوشته
~> @PinkOrca 🩷
Please open Telegram to view this post
VIEW IN TELEGRAM
👍109🔥2