Forwarded from code2 - تکنولوژی و فناوری
Notice: Possible deprecation of WHOIS services after January 28, 2025 for ICANN TLDs
ICANN is in the process of transitioning registries and registrars from using WHOIS to provide domain registration data to a replacement protocol, RDAP. This could happen as soon as January 28, 2025. In cases where registries and/or registrars turn off their Whois services, whois.domaintools.com can no longer provide updated WHOIS records. DomainTools is adding RDAP to our enterprise products, Iris Investigate, Iris Detect and the Iris Enrich API. Domain registration data will continue to be provided in those applications.
الان بیشتر سایتها و ابزارها برای دیدن اطلاعات ثبت دامنه (مثل مالک دامنه، تاریخ ثبت، رجیسترار) از WHOIS استفاده میکنند.
بنیاد ICANN تصمیم گرفته این سیستم قدیمی را کنار بگذارد و از RDAP به عنوان جایگزین رسمی استفاده کند، چون RDAP:
ساختار داده استانداردتر و قابل پردازش ماشینی دارد.
امنیت و کنترل دسترسی بهتری ارائه میدهد (میتوان اطلاعات حساس را محدود کرد).
قابلیت جستجوی دقیقتر و سازگار با API دارد.
از ۲۸ ژانویه ۲۰۲۵ ممکن است بسیاری از رجیستریها و رجیسترارها سرویس WHOIS خود را خاموش کنند.
این یعنی اگر ابزاری (مثل بعضی نسخههای عمومی DomainTools) فقط از WHOIS استفاده کند، دیگر نمیتواند دادههای بهروز ثبت دامنه را نشان دهد.
ICANN is in the process of transitioning registries and registrars from using WHOIS to provide domain registration data to a replacement protocol, RDAP. This could happen as soon as January 28, 2025. In cases where registries and/or registrars turn off their Whois services, whois.domaintools.com can no longer provide updated WHOIS records. DomainTools is adding RDAP to our enterprise products, Iris Investigate, Iris Detect and the Iris Enrich API. Domain registration data will continue to be provided in those applications.
الان بیشتر سایتها و ابزارها برای دیدن اطلاعات ثبت دامنه (مثل مالک دامنه، تاریخ ثبت، رجیسترار) از WHOIS استفاده میکنند.
بنیاد ICANN تصمیم گرفته این سیستم قدیمی را کنار بگذارد و از RDAP به عنوان جایگزین رسمی استفاده کند، چون RDAP:
ساختار داده استانداردتر و قابل پردازش ماشینی دارد.
امنیت و کنترل دسترسی بهتری ارائه میدهد (میتوان اطلاعات حساس را محدود کرد).
قابلیت جستجوی دقیقتر و سازگار با API دارد.
از ۲۸ ژانویه ۲۰۲۵ ممکن است بسیاری از رجیستریها و رجیسترارها سرویس WHOIS خود را خاموش کنند.
این یعنی اگر ابزاری (مثل بعضی نسخههای عمومی DomainTools) فقط از WHOIS استفاده کند، دیگر نمیتواند دادههای بهروز ثبت دامنه را نشان دهد.
Forwarded from کانال مهرداد لینوکس
برای دانلود دبیان 13
هش SHA256 برای اطمینان از سالم بودن
و اصلی بودن فایل قرار گرفت
روش چک کردن
نسخه کم حجم : CD حجم دانلودی 754M لینک SHA256SUMS
e363cae0f1f22ed73363d0bde50b4ca582cb2816185cf6eac28e93d9bb9e1504
نسخه کامل تر :1 DVD حجم دانلودی 3.7G لینک SHA256SUMS
c998fe73ca8dbce235f189a2a92873bf0a8f70b0982f361629a18a0f38b6fe92
میرور های ایرانی (برای اطمینان حتما Hash فایل را چک کنید)
دانلود از Soft98
هش SHA256 برای اطمینان از سالم بودن
و اصلی بودن فایل قرار گرفت
روش چک کردن
sha256sum Your_debian_iso_name.iso
نسخه کم حجم : CD حجم دانلودی 754M لینک SHA256SUMS
e363cae0f1f22ed73363d0bde50b4ca582cb2816185cf6eac28e93d9bb9e1504
نسخه کامل تر :1 DVD حجم دانلودی 3.7G لینک SHA256SUMS
c998fe73ca8dbce235f189a2a92873bf0a8f70b0982f361629a18a0f38b6fe92
میرور های ایرانی (برای اطمینان حتما Hash فایل را چک کنید)
دانلود از Soft98
Forwarded from DevTwitter | توییت برنامه نویسی
این روزا اگه هر روز تو گیتهاب فعالیت نکنی، گراف فعالیتت کمکم رنگش میپره و دیگه سبز نمیمونه
برای همین Green Graph رو ساختم که هر روز خودش خودکار یه کامیت بزنه و گراف همیشه سبز بمونه
با GitHub Actions کار میکنه، نیازی نیست خودت کاری بکنی
میتونی راحت برای خودت شخصیسازیش هم بکنی
سورسش اینجاست:
https://github.com/ahmadrz1379/green-graph
توی ریپو توضیح دادم چطور راهاندازیش کنی
اگه خوشت اومد، استار یادت نره
@DevTwitter | <ahmadreza rezaee/>
برای همین Green Graph رو ساختم که هر روز خودش خودکار یه کامیت بزنه و گراف همیشه سبز بمونه
با GitHub Actions کار میکنه، نیازی نیست خودت کاری بکنی
میتونی راحت برای خودت شخصیسازیش هم بکنی
سورسش اینجاست:
https://github.com/ahmadrz1379/green-graph
توی ریپو توضیح دادم چطور راهاندازیش کنی
اگه خوشت اومد، استار یادت نره
@DevTwitter | <ahmadreza rezaee/>
Forwarded from Gopher Academy
🆗 چیستی SBOM و اهمیتش؟
ا* SBOM یا Software Bill of Materials، لیستی ساختاریافته از تمام اجزای تشکیلدهنده نرمافزار مثل پکیجها، ماژولها و کتابخانههاست. این لیست کمک میکنه تیمها بر زنجیره تأمین نرمافزاری، وابستگیها و ریسکهای امنیتی تسلط بهتری داشته باشن
* در پروژههای Go، فایل
---
مزایای SBOM
| مزیت | توضیح |
| --------------- | ------------------------------------------------------ |
| امنیت | شناسایی سریع آسیبپذیریهای وابستگیها |
| تطابق با مجوزها | بررسی مجوزهای وابستگیها قبل از انتشار |
| استانداردسازی | استفاده از فرمتهای مشترک و قابل تحلیل |
| الزامات قانونی | کاربرد در پروژههایی با نیازهای compliance مثل FedRAMP |
---
نحوهی تولید SBOM در پروژههای Go
1. نصب ابزار CycloneDX برای Go:
2. تولید SBOM با فرمت JSON:
3. تحلیل SBOM با ابزارهایی مثل Grype:
4. بررسی تطابق مجوزها:
* برای پروژههایی که از Go Workspace استفاده میکنن، باید بهطور موقت آن را غیرفعال کرد (مثلاً با
---
جمعبندی کوتاه
*ا SBOM یک نقشهٔ دقیق از تمام اجزای نرمافزار شماست—وقت نگرانی دربارهٔ نسخهها، آسیبپذیریها یا مجوزهای حقوقی شون داشته باشی.
* ابزار CycloneDX for Go سادهترین راه برای تولید SBOM در پروژههای Go است.
* پس از تولید، ابزارهایی مثل Grype و CycloneDX خود ابزار خوبی برای تحلیل و بررسی و آسیبپذیری یا مجوزها فراهم میکنن.
ا* SBOM یا Software Bill of Materials، لیستی ساختاریافته از تمام اجزای تشکیلدهنده نرمافزار مثل پکیجها، ماژولها و کتابخانههاست. این لیست کمک میکنه تیمها بر زنجیره تأمین نرمافزاری، وابستگیها و ریسکهای امنیتی تسلط بهتری داشته باشن
* در پروژههای Go، فایل
go.mod فقط وابستگیهای مستقیم رو فهرست میکنه، اما SBOM برای پوششدهی وابستگیهای غیرمستقیم (transitive) و تولید خروجی در قالبهای استاندارد بسیار کاربردیتره ---
مزایای SBOM
| مزیت | توضیح |
| --------------- | ------------------------------------------------------ |
| امنیت | شناسایی سریع آسیبپذیریهای وابستگیها |
| تطابق با مجوزها | بررسی مجوزهای وابستگیها قبل از انتشار |
| استانداردسازی | استفاده از فرمتهای مشترک و قابل تحلیل |
| الزامات قانونی | کاربرد در پروژههایی با نیازهای compliance مثل FedRAMP |
---
نحوهی تولید SBOM در پروژههای Go
1. نصب ابزار CycloneDX برای Go:
go install github.com/CycloneDX/cyclonedx-go@latest
2. تولید SBOM با فرمت JSON:
cyclonedx-go mod -json -output sbom.json
3. تحلیل SBOM با ابزارهایی مثل Grype:
grype sbom.json
4. بررسی تطابق مجوزها:
cyclonedx-go mod -licenses -json -output licenses.json
* برای پروژههایی که از Go Workspace استفاده میکنن، باید بهطور موقت آن را غیرفعال کرد (مثلاً با
GO111MODULE=off) تا ابزار بتواند SBOM را به درستی تولید کند ---
جمعبندی کوتاه
*ا SBOM یک نقشهٔ دقیق از تمام اجزای نرمافزار شماست—وقت نگرانی دربارهٔ نسخهها، آسیبپذیریها یا مجوزهای حقوقی شون داشته باشی.
* ابزار CycloneDX for Go سادهترین راه برای تولید SBOM در پروژههای Go است.
* پس از تولید، ابزارهایی مثل Grype و CycloneDX خود ابزار خوبی برای تحلیل و بررسی و آسیبپذیری یا مجوزها فراهم میکنن.
Forwarded from Linuxor ?
بیانیهی مشترک صد استارتآپ بزرگ اقتصاد دیجیتال کشور: به سیاستهای محدودکنندهی اینترنت پایان دهید
رفع فیلتر شبکههای اجتماعی و وبسایتهای آموزشی و مهارتی پربازدید، افزایش سرعت و پهنای باند بینالملل و رفع محدودیت پروتکلهای نوظهور از جمله HTTP 3.0 وIPV6 مطالبهی جدی ما است.
این بیانیه از طرف دیجیکالا، اسنپ، تپسی، آروانکلاد، علی بابا، فناپ، ستون، دیوار، یکتانت، کافه بازار و اکثر استارتاپ های بزرگ ایران تایید شده.
@Linuxor ~ IT IRAN
رفع فیلتر شبکههای اجتماعی و وبسایتهای آموزشی و مهارتی پربازدید، افزایش سرعت و پهنای باند بینالملل و رفع محدودیت پروتکلهای نوظهور از جمله HTTP 3.0 وIPV6 مطالبهی جدی ما است.
این بیانیه از طرف دیجیکالا، اسنپ، تپسی، آروانکلاد، علی بابا، فناپ، ستون، دیوار، یکتانت، کافه بازار و اکثر استارتاپ های بزرگ ایران تایید شده.
@Linuxor ~ IT IRAN
Forwarded from دستاوردهای یادگیری عمیق(InTec)
دوستان این Qwen3-coder که گفتم نسخه open source نیستا !!!
برید روی سایت
https://chat.qwen.ai
و از بخش انتخاب مدل، مدل qwen3-coder رو انتخاب کنید.
چون چندتا از دوستان پیام دادند؛ مدل ۳۰ میلیارد هست و نمیشه و ...
خواستم بگم که منظورم نسخه open source نبوده!
برید روی سایت
https://chat.qwen.ai
و از بخش انتخاب مدل، مدل qwen3-coder رو انتخاب کنید.
چون چندتا از دوستان پیام دادند؛ مدل ۳۰ میلیارد هست و نمیشه و ...
خواستم بگم که منظورم نسخه open source نبوده!
chat.qwen.ai
Qwen Chat
Qwen Chat offers comprehensive functionality spanning chatbot, image and video understanding, image generation, document processing, web search integration, tool utilization, and artifacts.
Forwarded from SoniaCircuit (Sonia Fatholahi)
بَیان
یک ویژگی مدلهای زبانی بزرگ مثل ChatGPT «توهم زدن» (hallucination) است. به زبان ساده یعنی گاهی کاملاً چرند میگویند. و این چرندیات را میتوانند با ادبیاتی فرهیخته و شستهرفته سر هم کنند و تحویل بدهند. برای این چرندیات منبع و مأخذ هم میآورند. اوایل…
جدول ریت توهم مدل های LLM
آخرین آپدیت ( ۷ آگوست ۲۰۲۵ )
مدل استفاده شده برای تشخیص (HHEM-2.1)
https://huggingface.co/vectara/hallucination_evaluation_model
—
OpenAI GPT-5-high 1.4 %
OpenAI gpt-oss-120b 2.4 %
OpenAI GPT-5-mini 3.2 %
OpenAI GPT-5-nano 4.7 %
OpenAI GPT-5-minimal 4.9 %
—
میشه در نظر گرفت احتمالی که بتونه توهم بزنه رو بدترین حالت ۵ درصده, که بسته به edge case یی که کاربر به کانتکست میده ممکنه دیتایی برای اون سوال نباشه و به همین دلیل احتمال توهم زدن مدل و جواب غلطش بیشتره تا حالت عادی که سوال common ازش پرسیده میشه
آخرین آپدیت ( ۷ آگوست ۲۰۲۵ )
مدل استفاده شده برای تشخیص (HHEM-2.1)
https://huggingface.co/vectara/hallucination_evaluation_model
—
OpenAI GPT-5-high 1.4 %
OpenAI gpt-oss-120b 2.4 %
OpenAI GPT-5-mini 3.2 %
OpenAI GPT-5-nano 4.7 %
OpenAI GPT-5-minimal 4.9 %
—
میشه در نظر گرفت احتمالی که بتونه توهم بزنه رو بدترین حالت ۵ درصده, که بسته به edge case یی که کاربر به کانتکست میده ممکنه دیتایی برای اون سوال نباشه و به همین دلیل احتمال توهم زدن مدل و جواب غلطش بیشتره تا حالت عادی که سوال common ازش پرسیده میشه
Forwarded from محتوای آزاد سهراب
توروالدز به یک مهندس گوگل که توی بخش ریسکپنج کرنل کار میکرده گفته که کدش آشغاله و دنیا رو جای بدتری برای زندگی میکنه 😂
این اولین باری نیست که توروالدز با توسعه دهندهها خشن برخورد میکنه:)))
@SohrabContents
این اولین باری نیست که توروالدز با توسعه دهندهها خشن برخورد میکنه:)))
@SohrabContents
Forwarded from DevTwitter | توییت برنامه نویسی
از اونجایی که تصمیم گرفتم کتاب های حوزه NET. رو ترجمه کنم و الان دو موردش در حال انجام، گفتم خب کار خسته کننده ای یکی بیاد متن کتاب رو تو گیت هاب بخونه.
پس در یک repo جدید تصمیم گرفتم آنلاین اش کنم. لطفاً دوستان فرانت کمک کنند.
https://github.com/hheydarian/parsBook
@DevTwitter | <Hamed Heydarian/>
پس در یک repo جدید تصمیم گرفتم آنلاین اش کنم. لطفاً دوستان فرانت کمک کنند.
https://github.com/hheydarian/parsBook
@DevTwitter | <Hamed Heydarian/>
Forwarded from Linuxor ?
تا حالا فکر کردی چطور Node.js میتونه این همه درخواست رو همزمان و بدون گیر کردن مدیریت کنه؟ راز اصلیش تو دل یه کتابخونه به اسم libuv پنهان شده. این پروژه تمرکزش روی I/O ناهمزمان (asynchronous I/O) هست؛ یعنی به جای اینکه منتظر جواب شبکه یا فایل بمونه، میره سراغ کارهای دیگه و اینطوری اپلیکیشن شما سریع و روان باقی میمونه، حتی زیر بار سنگین.
اگر داری یه ابزار شبکهی پرسرعت، سرور، یا هر برنامهای که با تعداد زیادی اتصال همزمان سروکار داره با C/C++ مینویسی، libuv همون چیزیه که کارت رو راه میندازه. این کتابخونه پایهی اصلی ابزارهای بزرگی مثل Node.js و Julia هست و بهت اجازه میده بدون درگیر شدن با پیچیدگیهای سیستمعاملهای مختلف (مثل epoll توی لینوکس یا IOCP توی ویندوز)، کدت رو بنویسی.
libuv.org
@Linuxor
اگر داری یه ابزار شبکهی پرسرعت، سرور، یا هر برنامهای که با تعداد زیادی اتصال همزمان سروکار داره با C/C++ مینویسی، libuv همون چیزیه که کارت رو راه میندازه. این کتابخونه پایهی اصلی ابزارهای بزرگی مثل Node.js و Julia هست و بهت اجازه میده بدون درگیر شدن با پیچیدگیهای سیستمعاملهای مختلف (مثل epoll توی لینوکس یا IOCP توی ویندوز)، کدت رو بنویسی.
libuv.org
@Linuxor
Forwarded from LinNews (Benyamin)
دبیان ۱۳ «تریکسی» منتشر شد.
#Debian #Linux
پشتیبانی رسمی از RISC-V، مدیر بسته APT 3.0، بوت HTTP، پشتیبانی wcurl و HTT3 در cURL و دیکشنری دودویی BDIC Hunspell از جمله تغییرات دبیان تریکسی هستند. ترجمههای صفحات man نیز بهبود یافتهاند. همچنین، بروزرسانی از دبیان ۱۲ با دستورالعملهای رسمی قابل انجام است.
منبع خبر
به ما بپیوندید :
@LinAcademy
#Debian #Linux
پشتیبانی رسمی از RISC-V، مدیر بسته APT 3.0، بوت HTTP، پشتیبانی wcurl و HTT3 در cURL و دیکشنری دودویی BDIC Hunspell از جمله تغییرات دبیان تریکسی هستند. ترجمههای صفحات man نیز بهبود یافتهاند. همچنین، بروزرسانی از دبیان ۱۲ با دستورالعملهای رسمی قابل انجام است.
منبع خبر
به ما بپیوندید :
@LinAcademy
Forwarded from Linuxor ?
برگاتون بریزه؛ گوگل به یه نفر که تونسته از Sandbox گوگل کروم escape کنه 250 هزار دلار داده.
فرار کردن از Sandbox یعنی اینکه محدودیت های امنیتی مرورگر کاملا دور زده میشه و اگه این آسیب پذیری فیکس نمیشد یه فاجعه بسیار بزرگ بود چون مهاجم میتونست از طریق مرورگر به کامپیوترتون دسترسی پیدا کنه.
توضیحات فنی :
issues.chromium.org/issues/412578726
@Linuxor
فرار کردن از Sandbox یعنی اینکه محدودیت های امنیتی مرورگر کاملا دور زده میشه و اگه این آسیب پذیری فیکس نمیشد یه فاجعه بسیار بزرگ بود چون مهاجم میتونست از طریق مرورگر به کامپیوترتون دسترسی پیدا کنه.
توضیحات فنی :
issues.chromium.org/issues/412578726
@Linuxor
Forwarded from یه شعر (Poem Bot)
حافظ | غزلیات | غزل شمارهٔ ۳۵۰
به عزم توبه سحر گفتم استخاره کنم
بهار توبه شکن می رسد چه چاره کنم
سخن درست بگویم نمی توانم دید
که می خورند حریفان و من نظاره کنم
چو غنچه با لب خندان به یاد مجلس شاه
پیاله گیرم و از شوق جامه پاره کنم
به دور لاله دماغ مرا علاج کنید
گر از میانه بزم طرب کناره کنم
ز روی دوست مرا چون گل مراد شکفت
حواله سر دشمن به سنگ خاره کنم
گدای میکده ام لیک وقت مستی بین
که ناز بر فلک و حکم بر ستاره کنم
مرا که نیست ره و رسم لقمه پرهیزی
چرا ملامت رند شراب خواره کنم
به تخت گل بنشانم بتی چو سلطانی
ز سنبل و سمنش ساز طوق و یاره کنم
ز باده خوردن پنهان ملول شد حافظ
به بانگ بربط و نی رازش آشکاره کنم
#حافظ | گنجور
📍@iipoem
به عزم توبه سحر گفتم استخاره کنم
بهار توبه شکن می رسد چه چاره کنم
سخن درست بگویم نمی توانم دید
که می خورند حریفان و من نظاره کنم
چو غنچه با لب خندان به یاد مجلس شاه
پیاله گیرم و از شوق جامه پاره کنم
به دور لاله دماغ مرا علاج کنید
گر از میانه بزم طرب کناره کنم
ز روی دوست مرا چون گل مراد شکفت
حواله سر دشمن به سنگ خاره کنم
گدای میکده ام لیک وقت مستی بین
که ناز بر فلک و حکم بر ستاره کنم
مرا که نیست ره و رسم لقمه پرهیزی
چرا ملامت رند شراب خواره کنم
به تخت گل بنشانم بتی چو سلطانی
ز سنبل و سمنش ساز طوق و یاره کنم
ز باده خوردن پنهان ملول شد حافظ
به بانگ بربط و نی رازش آشکاره کنم
#حافظ | گنجور
📍@iipoem
Forwarded from DevTwitter | توییت برنامه نویسی
یه اسکریپت حرفهای پایتون نوشتم که قالب کامل هر سایت رو همراه با تمام فایلهاش ذخیره میکنه تا بتونید به صورت آفلاین استفاده کنید!
اگر دوست دارید پروژه رو حمایت کنید، لطفاً ستاره بدید.
حمایت شما انگیزهمونه!
https://github.com/mehdi-jahani/web_template_saver
@DevTwitter | <Mehdi Jahani/>
اگر دوست دارید پروژه رو حمایت کنید، لطفاً ستاره بدید.
حمایت شما انگیزهمونه!
https://github.com/mehdi-jahani/web_template_saver
@DevTwitter | <Mehdi Jahani/>
Forwarded from 🎄 یک برنامه نویس تنبل (Lazy 🌱)
Forwarded from Bit Orbit 🪐 (Arya)
این مقاله/پست درباره string خیلی جاله، من قبلا درباره فرق unicode با utf-8 خونده بودم، اما اینجا بیشتر درباره تاریخشون فهمیدم،
زمانی که ascii معرفی شد کلا برای حروف انگلیسی ساخته شده بود، و البته یکسری از کاراکترها و دستورات دیگه.
مثلا برای اسپیس کد 32 و مثلا برای حرف A از کد 65 داخلش استفاده میشد.
ولی کدهای قبل 32 چی؟ اونها برای دستورات استفاده میشه مثلا کد 7 برای صدای beep هست!
حالا تمامی این کاراکترها کلا توی 7 بیت قرار میگیرن و بیشتر نیاز ندارن.
مثلا اگه حرف z رو درنظر بگیریم، کد اسکیش میشه 122
و باینری 122 میشه
اما کامپیوتر ها با هشت بیت کار میکنند، پس پیاده سازی ascii که داخل کامپیوتر یک بیت اضافهای به ما میده!(آخرین بیت سمت چپ) پس از کد 128 تا 255 برای هیچکاری استفاده نمیشه داخل تیبل ascii
اینجاست که شرکتها و برنامه نویس ها تصمیم میگیرن اون بیت آخر رو برای کار های خودشون استفاده کنند.
همچنین هر زبانی مثلا یونانی از برای خودش یه کد پیج داشته
مثلا توی بعضی از سیستم عامل ها از کد 130 برای کاراکتر
اینم باید بگم که همه قبول کردن که تمامی کد های زیر 128 دست نخورده بمونه خوشبختانه.
اینکه کدهای بالای 128 نماینده چه کاراکتری باشه بستگی داره به اینکه از چه code page استفاده میکردن. مثلا code page 862 در اسرائیل استفاده میشده و 737 در یونان.
حالا سیستم عامل DOS از کلی کد پیج ساپورت میکرده، ولی همزمان نمیشده توی یک فایل تکست از دو زبان استفاده کنی.
حالا عجیبتر اینکه این سسیتم توی زبان هایی مثل چینی بدرد نمیخوره، چون خب از 'حرف' استفاده نمیکنند و کاراکترهاشون نماده و هزاران کاراکتر دارند،
پس توی 8 بیت جا نمیشن. خب اینا چیکار کردن؟ از چیزی به اسم DBCS استفاده کردن این یعنی double bytes character set
درواقع برای پیادهسازی زبان چیزی باید تعداد بایت ها رو دو برابر میکردن،
این خودش یه مشکلی داره، اینکه تایپ یک کاراکتر سادهست(حرکت رو به جلو) اما اگه بخای به عقب برگردی، این یه چالشه، چون نمیدونی کاراکتری که تایپ کردی یک بایتی بوده یا دو بایتی.
تا اینجا انچنان مشکلی نداشتیم، اما وقتی پای اینترنت به کامپیوترها باز شد، دیگه اینجا بود متنها توی سیستمهای مختلف به خوبی کار نمیکردند. و unicode اختراع شد.
به صورت خلاصه unicode به ازای هر کاراکتری یک کد داره، که بهش میگن character set، یونیکد طوری ساخته شده که حتی اگه در آیندههم کاراکتری و یا زبانی اختراع بشه، با unicode میشه یک کد منحصر بفرد بهش داد.
مثلا برای کاراکتر A از کد U0041 استفاده میشه،
و یا برای مثال U+0048 U+0065 U+006C U+006C U+006F. میشه Hello.
این کدها هگزا دسیمال هستند.
اوکی حالا سوال اینجاست که ما برای هرکاراکتری یک کد در نظر گرفتیم، اوکی خب چطوری روی هارد قراره ذخیرهش کنیم؟
در حالت اول و خب خیلی ساده میشه اکثر کد ها رو داخل 16 بیت دخیره کرد، اما دو مشکل وجود داره:
اول اینکه فضای بیشتری برای ذخیره میگیره،
دوم اینکه خب اینهمه تکست که از قبل نوشته شده، یکی باید همه اونها رو تبدیل کنه.
یا شاید یه بتونیم الگوریتم backward comaptible ایجاد کنیم.
اینجاست که جادوی utf-8 که یک encondig هست میاد وسط،
توی utf-8 از 0 تا 127 توی همون 8 بیت ذخیره میشه
و چیزی که به فضای بیشتری نیاز داره چی؟
وقتی کاراکتری بیشتر از 127 (یعنی نیاز به بیش از 7 بیت) نیاز داشته باشه، UTF-8 از چند بایت استفاده میکنه:
بایت اول یه "الگو" داره که نشون میده این کاراکتر چند بایتیه، و بایتهای بعدی با 10xxxxxx شروع میشن.
اینطوری کامپیوتر میفهمه این یه کاراکتر چندبایتیه و چطوری باید رمزگشاییش کنه.
زمانی که ascii معرفی شد کلا برای حروف انگلیسی ساخته شده بود، و البته یکسری از کاراکترها و دستورات دیگه.
مثلا برای اسپیس کد 32 و مثلا برای حرف A از کد 65 داخلش استفاده میشد.
ولی کدهای قبل 32 چی؟ اونها برای دستورات استفاده میشه مثلا کد 7 برای صدای beep هست!
حالا تمامی این کاراکترها کلا توی 7 بیت قرار میگیرن و بیشتر نیاز ندارن.
مثلا اگه حرف z رو درنظر بگیریم، کد اسکیش میشه 122
و باینری 122 میشه
1111010 و همینطور که میبینید، با فقط هفت بیت حروف انگلیسی، اعداد، سیمبلها و دستورات رو میتونم داشته باشیم،اما کامپیوتر ها با هشت بیت کار میکنند، پس پیاده سازی ascii که داخل کامپیوتر یک بیت اضافهای به ما میده!(آخرین بیت سمت چپ) پس از کد 128 تا 255 برای هیچکاری استفاده نمیشه داخل تیبل ascii
اینجاست که شرکتها و برنامه نویس ها تصمیم میگیرن اون بیت آخر رو برای کار های خودشون استفاده کنند.
همچنین هر زبانی مثلا یونانی از برای خودش یه کد پیج داشته
مثلا توی بعضی از سیستم عامل ها از کد 130 برای کاراکتر
é استفاده میشده، و یه ورژن دیگهای از همون سیستم عامل(DOS) از این کد برای کاراکتر ג استفاده میشده.اینم باید بگم که همه قبول کردن که تمامی کد های زیر 128 دست نخورده بمونه خوشبختانه.
اینکه کدهای بالای 128 نماینده چه کاراکتری باشه بستگی داره به اینکه از چه code page استفاده میکردن. مثلا code page 862 در اسرائیل استفاده میشده و 737 در یونان.
حالا سیستم عامل DOS از کلی کد پیج ساپورت میکرده، ولی همزمان نمیشده توی یک فایل تکست از دو زبان استفاده کنی.
حالا عجیبتر اینکه این سسیتم توی زبان هایی مثل چینی بدرد نمیخوره، چون خب از 'حرف' استفاده نمیکنند و کاراکترهاشون نماده و هزاران کاراکتر دارند،
پس توی 8 بیت جا نمیشن. خب اینا چیکار کردن؟ از چیزی به اسم DBCS استفاده کردن این یعنی double bytes character set
درواقع برای پیادهسازی زبان چیزی باید تعداد بایت ها رو دو برابر میکردن،
این خودش یه مشکلی داره، اینکه تایپ یک کاراکتر سادهست(حرکت رو به جلو) اما اگه بخای به عقب برگردی، این یه چالشه، چون نمیدونی کاراکتری که تایپ کردی یک بایتی بوده یا دو بایتی.
تا اینجا انچنان مشکلی نداشتیم، اما وقتی پای اینترنت به کامپیوترها باز شد، دیگه اینجا بود متنها توی سیستمهای مختلف به خوبی کار نمیکردند. و unicode اختراع شد.
به صورت خلاصه unicode به ازای هر کاراکتری یک کد داره، که بهش میگن character set، یونیکد طوری ساخته شده که حتی اگه در آیندههم کاراکتری و یا زبانی اختراع بشه، با unicode میشه یک کد منحصر بفرد بهش داد.
مثلا برای کاراکتر A از کد U0041 استفاده میشه،
و یا برای مثال U+0048 U+0065 U+006C U+006C U+006F. میشه Hello.
این کدها هگزا دسیمال هستند.
اوکی حالا سوال اینجاست که ما برای هرکاراکتری یک کد در نظر گرفتیم، اوکی خب چطوری روی هارد قراره ذخیرهش کنیم؟
در حالت اول و خب خیلی ساده میشه اکثر کد ها رو داخل 16 بیت دخیره کرد، اما دو مشکل وجود داره:
اول اینکه فضای بیشتری برای ذخیره میگیره،
دوم اینکه خب اینهمه تکست که از قبل نوشته شده، یکی باید همه اونها رو تبدیل کنه.
یا شاید یه بتونیم الگوریتم backward comaptible ایجاد کنیم.
اینجاست که جادوی utf-8 که یک encondig هست میاد وسط،
توی utf-8 از 0 تا 127 توی همون 8 بیت ذخیره میشه
و چیزی که به فضای بیشتری نیاز داره چی؟
وقتی کاراکتری بیشتر از 127 (یعنی نیاز به بیش از 7 بیت) نیاز داشته باشه، UTF-8 از چند بایت استفاده میکنه:
بایت اول یه "الگو" داره که نشون میده این کاراکتر چند بایتیه، و بایتهای بعدی با 10xxxxxx شروع میشن.
اینطوری کامپیوتر میفهمه این یه کاراکتر چندبایتیه و چطوری باید رمزگشاییش کنه.
Joel on Software
The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!)
Ever wonder about that mysterious Content-Type tag? You know, the one you’re supposed to put in HTML and you never quite know what it should be? Did you ever get an email from your friends in…
Forwarded from Linuxor ?
حقوق شما توی شرکت به اندازه ریسکیه که اگه شرکت شما رو اخراج کنه باهاش میتونید یه شرکت کپی یا رقیب همون شرکت بسازید.
هرچقدر توی بخش کلیدی بیشتری از شرکت فعال باشید و شرکت بیشتر بهتون وابسته باشه یعنی توانایی اینو دارید بخش بزرگی از شرکت رو کپیشو برای خودتون بسازید و یه رقیب بشید براش؛ البته موقع حقوق دادن کسی به تهدید نبود شما فکر نمیکنه فقط ناخودگاه این باعث میشه به نفعشون باشه که پول بیشتری بهتون بدن.
@Linuxor
هرچقدر توی بخش کلیدی بیشتری از شرکت فعال باشید و شرکت بیشتر بهتون وابسته باشه یعنی توانایی اینو دارید بخش بزرگی از شرکت رو کپیشو برای خودتون بسازید و یه رقیب بشید براش؛ البته موقع حقوق دادن کسی به تهدید نبود شما فکر نمیکنه فقط ناخودگاه این باعث میشه به نفعشون باشه که پول بیشتری بهتون بدن.
@Linuxor
Forwarded from 🎄 یک برنامه نویس تنبل (Lazy 🌱)
Forwarded from DevTwitter | توییت برنامه نویسی
اسکریپت ارسال پیام انبوه تلگرام با پایتون
با این ابزار میتونی به راحتی به چندصد شماره تلفن پیام و عکس ارسال کنی، بدون نگرانی از محدودیتهای تلگرام و با گزارش کامل از ارسالها.
https://github.com/mehdi-jahani/telegram_message_sender
@DevTwitter | <Mehdi Jahani/>
با این ابزار میتونی به راحتی به چندصد شماره تلفن پیام و عکس ارسال کنی، بدون نگرانی از محدودیتهای تلگرام و با گزارش کامل از ارسالها.
https://github.com/mehdi-jahani/telegram_message_sender
@DevTwitter | <Mehdi Jahani/>