مرورگر (و سایتهای انلاین) از شما چه اطلاعاتی دارند؟
https://webkay.robinlinus.com/
https://webkay.robinlinus.com/
Webkay
What your Browser knows about you
See all the data your browser reveals about you by visting a website.
وبسایتها میدانند شما به چه شبکهاجتماعیهای دیگری لاگین کردهاید.
توضیحات:
https://www.tomanthony.co.uk/blog/detect-visitor-social-networks/
جوابیه شرکتها وقتی در این مورد بهشون ایمیل زده شد:
https://webkay.robinlinus.com/clickjacking/redirect-statements.txt
(دراپباکس عالیه)
توضیحات:
https://www.tomanthony.co.uk/blog/detect-visitor-social-networks/
جوابیه شرکتها وقتی در این مورد بهشون ایمیل زده شد:
https://webkay.robinlinus.com/clickjacking/redirect-statements.txt
(دراپباکس عالیه)
www.tomanthony.co.uk
Detect if visitors are logged into Twitter, Facebook or Google+
Javascript code to determine whether a website visitor is currently logged into a social media site (Twitter, Facebook or Google+).
چرا باگ های specter و meltdown خطرناک هستند؟
https://www.youtube.com/watch?v=NArwG6yaWJ8
https://www.youtube.com/watch?v=NArwG6yaWJ8
YouTube
Why are Spectre and Meltdown So Dangerous?
Squarespace link: Visit https://squarespace.com/techquickie and use offer code TECHQUICKIE to save 10% off your first order.
Spectre and Meltdown are security flaws that, between them, affect nearly all of the world's PCs and smartphones! How did this happen…
Spectre and Meltdown are security flaws that, between them, affect nearly all of the world's PCs and smartphones! How did this happen…
کار با CLI در گو
به صورت پیشفرض با کتابخونهی flag انجام میشه.
https://gobyexample.com/command-line-subcommands
اما با این کتابخونه میتونید چیزی مشابه argaparse پایتون رو انتظار داشته باشید.
https://github.com/akamensky/argparse
به صورت پیشفرض با کتابخونهی flag انجام میشه.
https://gobyexample.com/command-line-subcommands
اما با این کتابخونه میتونید چیزی مشابه argaparse پایتون رو انتظار داشته باشید.
https://github.com/akamensky/argparse
GitHub
GitHub - akamensky/argparse: Argparse for golang. Just because `flag` sucks
Argparse for golang. Just because `flag` sucks. Contribute to akamensky/argparse development by creating an account on GitHub.
نوشتههای ترمینالی
کار با CLI در گو به صورت پیشفرض با کتابخونهی flag انجام میشه. https://gobyexample.com/command-line-subcommands اما با این کتابخونه میتونید چیزی مشابه argaparse پایتون رو انتظار داشته باشید. https://github.com/akamensky/argparse
این کتابخونه هم خیلی خوب و کامله و براش کامندهای مختلف رو در قالب استراکت بیان میکنیم.
https://github.com/mkideal/cli
https://github.com/mkideal/cli
GitHub
GitHub - mkideal/cli: CLI - A package for building command line app with go
CLI - A package for building command line app with go - mkideal/cli
دونالد کنوث از ایمیل هم استفاده نمیکنه. فقط پست!
https://www-cs-faculty.stanford.edu/~knuth/email.html
https://www-cs-faculty.stanford.edu/~knuth/email.html
نوشتههای ترمینالی
https://stackify.com/premature-optimization-evil/
خب ترجمه شد:
چرا بهینهسازی زودهنگام ریشه تمام مشکلات است؟
https://javacup.ir/premature-optimizations/
چرا بهینهسازی زودهنگام ریشه تمام مشکلات است؟
https://javacup.ir/premature-optimizations/
نوشتههای ترمینالی
در مورد CI/CD https://stackify.com/what-is-cicd-whats-important-and-how-to-get-it-right/
و مطلب خوب دیگر:
https://www.atlassian.com/continuous-delivery/principles/continuous-integration-vs-delivery-vs-deployment
https://www.atlassian.com/continuous-delivery/principles/continuous-integration-vs-delivery-vs-deployment
Atlassian
Continuous integration vs. delivery vs. deployment | Atlassian
Learn the difference between continuous integration, continuous delivery, and continuous deployment in modern software development and DevOps.
جایگزین های ncurses برای جاوا
(به نظر میرسه lanterna از همشون منطقی تر باشه)
https://rememberjava.com/cli/2017/01/22/ncurses_terminal_libs.html
(به نظر میرسه lanterna از همشون منطقی تر باشه)
https://rememberjava.com/cli/2017/01/22/ncurses_terminal_libs.html
Rememberjava
Terminal and ncurses Java libraries
There’s a few Java libraries for creating terminal and ncurses like applications. They abstract away the ANSI escape codes and low level control like tput. I...
نوشتههای ترمینالی
جایگزین های ncurses برای جاوا (به نظر میرسه lanterna از همشون منطقی تر باشه) https://rememberjava.com/cli/2017/01/22/ncurses_terminal_libs.html
سورس کد لنترنا هم جالبه
https://github.com/mabe02/lanterna/blob/master/src
https://github.com/mabe02/lanterna/blob/master/src
GitHub
mabe02/lanterna
Java library for creating text-based GUIs. Contribute to mabe02/lanterna development by creating an account on GitHub.
Forwarded from محاسبات کوانتومی
شبکه ی کیوبیت ها.
کامپیوتر های کلاسیک:
در یک کامپیوتر کلاسیک، میشه هر دو (یا چند) بیت مختلف رو انتخاب و روشون یک عملگر اعمال کرد. مثلا میشه به کامپیوتر گفت دو متغیر از دو جای مختلف حافظه برداره، با هم جمعشون کنه و خروجی رو یک جای دیگه حافظه ذخیره کنه. اما سوال اینه که آیا اطلاعات این بیت ها از بین نمیرن؟ مثلا چی پیشه اگر در حین خوندن یک بیت، یک مشکل فیزیکی پیش بیاد و کامپیوتر عدد رو اشتباه بخونه؟ این مشکل پیش میاد و البته تا حدودی هم شایعه.
بگذارید مثال رو ملموس تر جلو ببریم. فرض کنید دو کامپیوتر رو با یک کابل به هم وصل کردید. بعد یک فایل حجیم رو از روی یک کامپیوتر به کامپیوتر دیگه از طریق کابل شبکه انتقال میدید. حالا اگر روی کابل شبکه نویز (مثلا نزدیک کردن یک آهنربایی قوی) اعمال کنیم، اون وقت میبینیم که سرعت انتقال کم میشه، اما اگر نویز زیاد نباشه در نهایت فایل "تقریبا" سالم منتقل میشه. دلیل کم شدن سرعت اینه که اطلاعات در قالب یک بسته کددار منتقل میشن و کامپیوتر مقصد میفهمه که بسته به خاطر نویز خراب شده. در نتیجه به کامپیوتر مبدا میگه که دوباره اون بسته (بخش کوچک اطلاعات) رو ارسال کنه. این ارسال چند باره باعث میشه سرعت کم بشه. اما در نهایت کل اون فایل حجیم منتقل میشه.
برگردیم به داخل کامپیوتر . اگر یک میدان مغناطیسی قوی روی RAM اعمال کنیم چی میشه؟ چون در این سطح دیگه اطلاعات به شکل بسته با کد تایید نیستن، امکان ترمیم و یا تشخیص خطا نیست و بیت های خطا دار خونده و به پردازنده ارسال میشن. پردازنده که نمیتونه اون ها رو معنی کنه، هنگ میکنه! اما این مساله اصلا مشکل زا نیست نیست چون اولا محیط کاری ما برای کامپیوتر های کلاسیک پرنویز محسوب نمیشه، و در ثانی، خود این کامپیوتر ها هم اون قدر به نویز حساس نیستن. از طرف دیگه، در کامپیوتر ها میلیاردها بیت ذخیره و پردازش میشه و خراب شون تعداد کمی، احتمالا منجر به خطای خاصی نمیشه.
کوانتوم کامپیوترها:
در یک کوانتوم کامپیوتر نمیشه روی هر دو کیوبیت دلخواه عملیات محاسباتی انجام داد چون همگی به هم وصل نیستن! مثلا گوگل کیوبیت هاش رو به شکل شبکه ی مربعی (mesh) کنار ام قرار میده. در نتیجه اگر دو کیوبیت مستقیما به هم وصل نباشن باید با روش های نسبتا پیچیده به شکل منطقی (مجازی) به هم وصلشون کرد که احتمال خطا رو بالا میبره. از طرف دیگه چون که تعداد کیوبیت ها در کامپیوترهای امروزی کمه (کمتر از ۶۰)، از دست رفتن اطلاعات حتی یکی از کیوبیت ها هم به معنی خراب شدن کل محاسباته. در آخر، کوانتوم کامپیوتر ها به شدت به نویز حساس هستن و اندک تغییر شرایط فیزیکی باعث میشه کاملا از کار بیافتن. برای همین هم وقتی می خوایم یک مساله رو روی کوانتوم کامپیوتر حل کنیم، عموما اون رو چند هزار بار برای کامپیوتر می فرستیم و بعد می بینیم که چه جوابی بیشتر تولید شده. اما حل مساله حتی چند هزار دفعه، کمتر از یک میلی ثانیه زمان میبره.
کامپیوتر های کلاسیک:
در یک کامپیوتر کلاسیک، میشه هر دو (یا چند) بیت مختلف رو انتخاب و روشون یک عملگر اعمال کرد. مثلا میشه به کامپیوتر گفت دو متغیر از دو جای مختلف حافظه برداره، با هم جمعشون کنه و خروجی رو یک جای دیگه حافظه ذخیره کنه. اما سوال اینه که آیا اطلاعات این بیت ها از بین نمیرن؟ مثلا چی پیشه اگر در حین خوندن یک بیت، یک مشکل فیزیکی پیش بیاد و کامپیوتر عدد رو اشتباه بخونه؟ این مشکل پیش میاد و البته تا حدودی هم شایعه.
بگذارید مثال رو ملموس تر جلو ببریم. فرض کنید دو کامپیوتر رو با یک کابل به هم وصل کردید. بعد یک فایل حجیم رو از روی یک کامپیوتر به کامپیوتر دیگه از طریق کابل شبکه انتقال میدید. حالا اگر روی کابل شبکه نویز (مثلا نزدیک کردن یک آهنربایی قوی) اعمال کنیم، اون وقت میبینیم که سرعت انتقال کم میشه، اما اگر نویز زیاد نباشه در نهایت فایل "تقریبا" سالم منتقل میشه. دلیل کم شدن سرعت اینه که اطلاعات در قالب یک بسته کددار منتقل میشن و کامپیوتر مقصد میفهمه که بسته به خاطر نویز خراب شده. در نتیجه به کامپیوتر مبدا میگه که دوباره اون بسته (بخش کوچک اطلاعات) رو ارسال کنه. این ارسال چند باره باعث میشه سرعت کم بشه. اما در نهایت کل اون فایل حجیم منتقل میشه.
برگردیم به داخل کامپیوتر . اگر یک میدان مغناطیسی قوی روی RAM اعمال کنیم چی میشه؟ چون در این سطح دیگه اطلاعات به شکل بسته با کد تایید نیستن، امکان ترمیم و یا تشخیص خطا نیست و بیت های خطا دار خونده و به پردازنده ارسال میشن. پردازنده که نمیتونه اون ها رو معنی کنه، هنگ میکنه! اما این مساله اصلا مشکل زا نیست نیست چون اولا محیط کاری ما برای کامپیوتر های کلاسیک پرنویز محسوب نمیشه، و در ثانی، خود این کامپیوتر ها هم اون قدر به نویز حساس نیستن. از طرف دیگه، در کامپیوتر ها میلیاردها بیت ذخیره و پردازش میشه و خراب شون تعداد کمی، احتمالا منجر به خطای خاصی نمیشه.
کوانتوم کامپیوترها:
در یک کوانتوم کامپیوتر نمیشه روی هر دو کیوبیت دلخواه عملیات محاسباتی انجام داد چون همگی به هم وصل نیستن! مثلا گوگل کیوبیت هاش رو به شکل شبکه ی مربعی (mesh) کنار ام قرار میده. در نتیجه اگر دو کیوبیت مستقیما به هم وصل نباشن باید با روش های نسبتا پیچیده به شکل منطقی (مجازی) به هم وصلشون کرد که احتمال خطا رو بالا میبره. از طرف دیگه چون که تعداد کیوبیت ها در کامپیوترهای امروزی کمه (کمتر از ۶۰)، از دست رفتن اطلاعات حتی یکی از کیوبیت ها هم به معنی خراب شدن کل محاسباته. در آخر، کوانتوم کامپیوتر ها به شدت به نویز حساس هستن و اندک تغییر شرایط فیزیکی باعث میشه کاملا از کار بیافتن. برای همین هم وقتی می خوایم یک مساله رو روی کوانتوم کامپیوتر حل کنیم، عموما اون رو چند هزار بار برای کامپیوتر می فرستیم و بعد می بینیم که چه جوابی بیشتر تولید شده. اما حل مساله حتی چند هزار دفعه، کمتر از یک میلی ثانیه زمان میبره.
برای اینکه توی ترمینال، یه فایل رو ادیت کنید که برای ادیتش دسترسی sudo میخواد چه کنیم؟
راه ساده اینه که بزنیم:
برای حلش چند تا کار میشه کرد:
۱- فایل vimrc و هر تنظیمی که برای ادیتور لازمه رو برای اکانت root هم جدا انجام بدیم.
۲- پوشه تنظیمات (یا فایل تنظیمات) روت رو به تنظیمات فعلی soft link کنیم.
۳- (بهترین راه) متغیر محلی $EDITOR رو تنظیم کنید به ویم (اگر نیست) و بعد از sudoedit استفاده کنید. مثلا:
منبع:
https://stackoverflow.com/questions/21488357/use-sudo-with-vimrc
راه ساده اینه که بزنیم:
sudo vim /path/to/fileاما مشکلش اینه که تنظیمات ادیتورمون رو از دست میدیم و با تنظیمات پیشفرض باز میشه.
برای حلش چند تا کار میشه کرد:
۱- فایل vimrc و هر تنظیمی که برای ادیتور لازمه رو برای اکانت root هم جدا انجام بدیم.
۲- پوشه تنظیمات (یا فایل تنظیمات) روت رو به تنظیمات فعلی soft link کنیم.
۳- (بهترین راه) متغیر محلی $EDITOR رو تنظیم کنید به ویم (اگر نیست) و بعد از sudoedit استفاده کنید. مثلا:
sudoedit /path/to/fileیا به شکل کوتاه تر
sudo -e /path/to/file(به کوچک بودن e دقت کنید.)
منبع:
https://stackoverflow.com/questions/21488357/use-sudo-with-vimrc
Stack Overflow
Use sudo with .vimrc
I'm using CentOS and created a .vimrc file in my /home directory. I tested it out by creating a txt file and yes, that worked fine. Now, I have my project files in my /srv directory with SELinux t...
نوشتههای ترمینالی
برای اینکه توی ترمینال، یه فایل رو ادیت کنید که برای ادیتش دسترسی sudo میخواد چه کنیم؟ راه ساده اینه که بزنیم: sudo vim /path/to/file اما مشکلش اینه که تنظیمات ادیتورمون رو از دست میدیم و با تنظیمات پیشفرض باز میشه. برای حلش چند تا کار میشه کرد: ۱- فایل…
همچنین به کمک sudo و tee میشه کاری کرد که فقط write توی ادیتور با sudo اتفاق بیفته که توی neovim جواب نمیده و من موفق نشدم. :)))
این افزونه هم چیزای جالب و خوبی داره از جمله SudoWrite (برای ویم فقط)
https://github.com/tpope/vim-eunuch
این افزونه هم چیزای جالب و خوبی داره از جمله SudoWrite (برای ویم فقط)
https://github.com/tpope/vim-eunuch
GitHub
GitHub - tpope/vim-eunuch: eunuch.vim: Helpers for UNIX
eunuch.vim: Helpers for UNIX. Contribute to tpope/vim-eunuch development by creating an account on GitHub.