понедельник, 19 августа 2019 г.

A programmer: JavaScript #15

Написал скрипт с для проверки длины имени и фамилии на стороне клиента. Файл javascript с использованием eventListener. Но получалось, что для двух разных полей (имени и фамилии) нужно писать два идентичных скрипта, что неправильно. Я решил заменить два скрипта на один, заменив, соответственно, eventListener в скрипте на onchange в тэге. Но получалась странная ситуация: судя по туториалам, надо или внешний скрипт подключать ко всей странице, или писать onchang, но тогда скрипт надо писать в html'e. Или-или.

Посоветовали (дословно): "во внешнем файле функцию имей, файл подключи, а функцию эту вызывай". И вот получилось!



Разумеется, файл был подключен, а в полях было указано:

onchange="listen('first_name')"
onchange="listen('last_name')"


День прожит не зря :)

среда, 14 августа 2019 г.

A programmer: JavaScript #14

Хотел я, значит, запустить веб-сервер на NodeJS на удаленном сервере, чтобы протестировать одну штуку. Ну а там крутится Apache, разумеется. Сделать это (как выяснилось после долгих разбирательств) можно. Но если всякие разные настройки Апача для конкретный папок можно прописывать в файле .htaccess, то конкретно эти настройки нельзя - только в httpd.config, доступ к которому - только root. Следовательно, или обходиться апачем, или искать хостинг, который поддерживает Node JS, или покупать выделенный сервер, где сам себе root и делай, что хочешь.

воскресенье, 4 августа 2019 г.

A programmer: JavaScript #13


Сегодня речь о нескольких нюансах, которые знатокам покажутся очевидными, но у меня вызвали затруднения в последние дни.

1.
Когда мы экспортируем модуль, экспортируется не функция, а объект:
module.exports = { message: message }

то есть когда мы хотим вызвать функцию message из этого модуля, надо писать не message();, а message.message();.

Разумеется, предполагается, что модуль импортирован:
var message = require('./module.js');

2.
В других языках ответ на этот вопрос находился быстро, а тут пришлось поискать, как сравнить два объекта (а не значения переменных). Ответ вот:
Object.is(value1, value2);

3.
Ну и по мелочи - проверять все мелочи. Например, не путать атрибуты html-формы "id" и "name". Или не забывать про urlencodedParser, когда пишешь обработчик для POST-метода (а то у меня был шок, когда body вообще не обнаруживалось). Или просто уточнять синтаксис.


среда, 3 июля 2019 г.

Arnold Schwarzenegger 2019 - The speech that broke the internet - Motivational & Inspiring

\
Way to success:

1. Have vision
2. Say "Yes"
3. Work hard
4. Don't have Plan B
5. Don't afraid fail
6. Help people


пятница, 1 марта 2019 г.

Всё в твоих руках

В очередной раз думаю о “безвизе”. Шутка о том, что счастье - это когда выходишь за хлебом, на всякий случай берешь с собой загранпаспорт, перестала быть шуткой. Теперь можно просто купить билет и поехать - от Польши до Португалии. Точно так же, как, например, в Киев или Львов. Круто же! Ещё бы Великобритания, США, Канада, Австралия - и было бы вообще счастье.

Вспоминается также разговор с торговцем книгами в поезде:

 - Сейчас люди книг не читают.
 - Мы читаем.
 - Та какие там у вас книги!
 - Эмм… Все!

И действительно - в телефоне, под рукой - практически все книги! Что это значит? Это значит, что больше нет отмазок. Теперь - если ты чего-то не смог, то проблема не в отсутствии ресурсов, а только в тебе. Только в тебе. Сам дурак.

А значит, актуальным - больше, чем когда-либо - становится вопрос о том, как организовать себя: преодолеть прокрастинацию, избавиться от плохих привычек, сформировать useful skills, time management и всё такое.

Разумеется, читаю всякое на эту тему. Интересно, может я смог бы стать, например, нейрофизиологом?

воскресенье, 17 февраля 2019 г.

О медитации

Кроме того, что многие советуют медитировать, мнения о том, как правильно это делать, могут отличаться. Кто-то говорит, что надо сесть в позу лотоса и отрешиться от мыслей, кто-то рекомендует просто наблюдать за своими мыслями, кто-то советует петь мантры, а кто-то сосредотачиваться на собственном дыхании. Всё это прекрасно, если может помочь - не так у ж важно, чему именно - просто помочь. Я сейчас о том, чем (на данный момент, по крайней мере) медитация оказывается для меня.

Я вспоминаю. Хотел сказать "детство", но не совсем детство. Я смотрю на то, как падает солнечный свет, как поют птицы, как теплый воздух плывёт, отбрасывая легкую тень на стене. И я вспоминаю, что в детстве было существенно больше моментов, когда ты всё это замечал. Замечал-то всё то же самое, а моментов было больше. Просто потому, что сейчас ты занят какими-то непрекращающимися более или менее важными делами (или тем, как от них избавиться), а тогда просто мог на минуту другую перевести взгляд из песочницы куда-то в небо и подумать. Даже не подумать, а посозерцать что-ли.

И вспоминая об этом сейчас, понимаешь, что, в сущности, ничего не изменилось - ни солнце, ни небо, ни птички, ни тёплый воздух. Всё это такое же, как было в твоём детстве - 40 лет назад, сто лет назад, тысячу лет назад. И понимаешь величие природы и ничтожность всего остального на этом фоне.

Даже ты сам - в сущности - не изменился. Видимо, это и значит "стать собой"? Только добавились дела, заботы, достижения, желания достижений, моменты стыда и неудовлетворенности собой и миром, дурные привычки и т.д. и т.п. Но в сущности - ты такой же, надо только вспомнить. Остановиться и вспомнить. И подумать, насколько всё то привнесенное действительно важно. И важно ли. Хороший вопрос...

понедельник, 14 января 2019 г.

Маховик

Это цитата из книги Джима Коллинза "От хорошего к великому". Меня вдохновляет.

Представьте огромный, тяжелый маховик, массивный металлический диск, укрепленный горизонтально на оси, примерно тридцати футов в диаметре, в два фута толщиной и весом примерно пять тысяч фунтов. А теперь представьте, что вам надо вращать маховик вокруг его оси как можно быстрее и как можно дольше.
Толкая изо всех сил, вы сдвинулись всего на дюйм и кажется, что все напрасно. Вы продолжаете толкать и после двух-трех часов настойчивых усилий удается сделать один полный оборот.
Вы продолжаете толкать, и маховик движется теперь немного быстрее, затратив огромные усилия, вы завершаете второй оборот. Вы толкаете в том же направлении. Три оборота, четыре… пять… шесть… скорость растет, семь… восемь… вы толкаете… девять… десять… скорость еще больше, одиннадцать… двенадцать… быстрее с каждым оборотом, двадцать… тридцать… пятьдесят… сто.
Затем, в какой-то момент — прорыв! Инерция достигла такой силы, что начинает тащить маховик, оборот за оборотом… ух!.. и его собственный вес работает на вас. Вы тратите не больше усилий, чем во время первой попытки, но маховик крутится все быстрее и быстрее. Каждый новый оборот использует энергию, накопленную предыдущим, происходит аккумуляция усилий. В тысячу раз быстрее, затем — в десять тысяч раз, затем — в сто тысяч раз. Огромный, тяжелый диск летит вперед, и его уже не остановить.
А кто-то придет и спросит: «А что было тем самым первым толчком, который заставил маховик вращаться с такой скоростью?»
Вы не сможете ответить. Это бессмысленный вопрос. Был ли это первый толчок? Второй? Пятый? Сотый? Нет! Это были они все, вместе взятые, совокупные усилия в определенном направлении. Некоторые из толчков были сильнее, чем другие, но каждое отдельно взятое усилие, не важно, насколько значительным оно было, — лишь малая доля общего стремления разогнать колесо.