برای اینکه توی ترمینال، یه فایل رو ادیت کنید که برای ادیتش دسترسی 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.
برای کامپایل برنامه گو از لینوکس به مقصد ویندوز
مطالعه بیشتر:
https://dave.cheney.net/2015/08/22/cross-compilation-with-go-1-5
GOOS=windows GOARCH=amd64 go build(دقت کنید همش تو یه خط باشه)
مطالعه بیشتر:
https://dave.cheney.net/2015/08/22/cross-compilation-with-go-1-5
جاوااسکریپت خودش
قوانینش و جاهایی که باعث مشکل میشه رو اینجا بخونید:
https://flaviocopes.com/javascript-automatic-semicolon-insertion/
;
اضافه میکنه. کجاها؟قوانینش و جاهایی که باعث مشکل میشه رو اینجا بخونید:
https://flaviocopes.com/javascript-automatic-semicolon-insertion/
Flaviocopes
Semicolons in JavaScript
JavaScript semicolons are optional. I personally like avoiding using semicolons in my code, but many people prefer them.
حالت سختگیرانه در js:
https://flaviocopes.com/javascript-strict-mode/
https://flaviocopes.com/javascript-strict-mode/
Flaviocopes
JavaScript Strict Mode
Strict Mode is an ES5 feature, and it's a way to make JavaScript behave in a better way. And in a different way, as enabling Strict Mode changes the semantics of the JavaScript language. It's really important to know the main differences between JavaScript…
اگر هنوز js یاد نگرفتین این مجموعه مطالب شاید کمکتون کنه
https://flaviocopes.com/javascript/
https://flaviocopes.com/javascript/
Flaviocopes
Roadmap to Learn JavaScript
JavaScript is such an amazing language! Born as a simple way to manipulate documents in the browser, over the years it became the most popular programming language in the world, and now runs everywhere. Learn the JavaScript Programming Language through simple…
برای اینکه موقع لود شدن صفحه، (قبل از کامل لود شدنش) اسکریپت jsتون اجرا نشه، میتونید تگ sciprt رو انتهای body بنویسید.
راه بهتر؟
https://flaviocopes.com/javascript-async-defer/
راه بهتر؟
https://flaviocopes.com/javascript-async-defer/
Flaviocopes
Efficiently load JavaScript with defer and async
When loading a script on an HTML page, you need to be careful not to harm the loading performance of the page. Depending on where and how you add your scripts to an HTML page will influence the loading time
امکانات دیگری که در کنار console.log میتوانید در js استفاده کنید:
https://javascript.plainenglish.io/stop-using-console-log-in-javascript-d29d6c24dc26
https://javascript.plainenglish.io/stop-using-console-log-in-javascript-d29d6c24dc26
Medium
Stop Using console.log() In JavaScript
There are better options
پروژه rhino:
پیاده سازی مفسر (کامپایلر؟) جاوااسکریپت با زبان java توسط موزیلا
https://github.com/mozilla/rhino
پیاده سازی مفسر (کامپایلر؟) جاوااسکریپت با زبان java توسط موزیلا
https://github.com/mozilla/rhino
GitHub
GitHub - mozilla/rhino: Rhino is an open-source implementation of JavaScript written entirely in Java
Rhino is an open-source implementation of JavaScript written entirely in Java - mozilla/rhino
توی برنامهنویسی کپیپیست نکنید.
اگر دارید کپیپیست میکنید یه مشکلی هست.
اگر دارید کپیپیست میکنید یه مشکلی هست.
چرا برنامهنویسی کپیپیستی بد است؟
https://dzone.com/articles/copy-and-paste-programming
(به همراه مثالهایی از زمانی که این کار مشکلی ندارد)
https://dzone.com/articles/copy-and-paste-programming
(به همراه مثالهایی از زمانی که این کار مشکلی ندارد)
DZone
Is Copy and Paste Programming Really a Problem?
Copy and Paste Programming – taking a copy of existing code in your project and repurposing it – violates coding best practices like Don’t Repeat Yourself...
دستگاه Duff:
تکنیکی برای راحت تر کردن loop unroll وقتی که تعداد چرخش به تعداد unfold کردن بخش پذیر نیست.
کد اولیه:
کد unfold شده معمولی:
کد Duff machine (که هر تعداد n رو ساپورت میکنه)
https://en.wikipedia.org/wiki/Duff%27s_device
تکنیکی برای راحت تر کردن loop unroll وقتی که تعداد چرخش به تعداد unfold کردن بخش پذیر نیست.
کد اولیه:
send(to, from, count)
register short *to, *from;
register count;
{
do { /* count > 0 assumed */
*to = *from++;
} while (--count > 0);
}
کد unfold شده معمولی:
send(to, from, count)
register short *to, *from;
register count;
{
register n = count / 8;
do {
*to = *from++;
*to = *from++;
*to = *from++;
*to = *from++;
*to = *from++;
*to = *from++;
*to = *from++;
*to = *from++;
} while (--n > 0);
}
کد Duff machine (که هر تعداد n رو ساپورت میکنه)
send(to, from, count)
register short *to, *from;
register count;
{
register n = (count + 7) / 8;
switch (count % 8) {
case 0: do { *to = *from++;
case 7: *to = *from++;
case 6: *to = *from++;
case 5: *to = *from++;
case 4: *to = *from++;
case 3: *to = *from++;
case 2: *to = *from++;
case 1: *to = *from++;
} while (--n > 0);
}
}
https://en.wikipedia.org/wiki/Duff%27s_device
Wikipedia
Duff's device
unusual C programming idiom that manually implements loop unrolling using interleaved control structures
نوشتههای ترمینالی
دستگاه Duff: تکنیکی برای راحت تر کردن loop unroll وقتی که تعداد چرخش به تعداد unfold کردن بخش پذیر نیست. کد اولیه: send(to, from, count) register short *to, *from; register count; { do { /* count > 0 assumed */ *to =…
شاید بپرسید چرا اصلا loop باید unroll بشه؟
برای کاهش branch penalty و end of loop test
https://en.wikipedia.org/wiki/Loop_unrolling
برای کاهش branch penalty و end of loop test
https://en.wikipedia.org/wiki/Loop_unrolling
Wikipedia
Loop unrolling
loop transformation technique
این دنیا هی عجیب تر میشه.
یه زبان بوده به اسم Go! قبل از go که مال گوگله.
طرف اسم کتاب اموزشیشم گذاشته let's go
https://www.lulu.com/content/paperback-book/lets-go/641689
حالا گوگل میاد و زبانش رو به اسم go میده (بدون !)
اینم ایشوی خالق Go! روی go که جزو غمگینترین ایشوهایی بود که دیده بودم.
https://github.com/golang/go/issues/9
حالا این وسط کاربرا میگفتن به گوگل که اسم زبانش رو بذاره issue9 (سر اینکه شماره این ایشو، ۹ بوده)
آخرم گوگل کاری نکرد! بعد ۲ سال و ۱۲۰۰ تا دیالوگ توی issue، اون ایشو رو بست و تگ unfortunate زدن بهش.
به جز خود issue میتونید اینجا هم یه سری چیز در مورد داستان بخونید
https://news.ycombinator.com/item?id=935674
یه زبان بوده به اسم Go! قبل از go که مال گوگله.
طرف اسم کتاب اموزشیشم گذاشته let's go
https://www.lulu.com/content/paperback-book/lets-go/641689
حالا گوگل میاد و زبانش رو به اسم go میده (بدون !)
اینم ایشوی خالق Go! روی go که جزو غمگینترین ایشوهایی بود که دیده بودم.
https://github.com/golang/go/issues/9
حالا این وسط کاربرا میگفتن به گوگل که اسم زبانش رو بذاره issue9 (سر اینکه شماره این ایشو، ۹ بوده)
آخرم گوگل کاری نکرد! بعد ۲ سال و ۱۲۰۰ تا دیالوگ توی issue، اون ایشو رو بست و تگ unfortunate زدن بهش.
به جز خود issue میتونید اینجا هم یه سری چیز در مورد داستان بخونید
https://news.ycombinator.com/item?id=935674
Lulu
Lets Go!
Go! is a multi-paradigm language -- it has a strong foundation in object oriented programming, functional programming and procedural programming as well as logic programming. In addition, it is a multi-threaded language with communication capabilities. This…
چرا در cpp نباید مثل جاوا مرتب از new استفاده کرد.
https://stackoverflow.com/a/21735823
https://stackoverflow.com/a/21735823
Stack Overflow
Why should C++ programmers minimize use of 'new'?
I stumbled upon Stack Overflow question Memory leak with std::string when using std::list<std::string>, and one of the comments says this:
Stop using new so much. I can't see any reason you ...
Stop using new so much. I can't see any reason you ...
Forwarded from memealloc