пятница, 21 августа 2020 г.

A programmer: PHP #2 Странный WordPress

Вопрос был вот в чем. Есть сайт на WordPress, точнее - интернет-магазин. Страница выводит товары с помощью цикла и функции get_posts(), и делает этот вывод для каждой категории товаров, чтобы можно было дальше взаимодействовать с ними уже на странице.




Но в админке WordPress'а категории товаров указаны нормальными человеческими словами, а тут, как мы видим, ID. Возникает вопрос, как соотнести названия категорий и их ID?

Ответ оказался весьма интересным:

"Как посмотреть ID категории?- Зайдите в Консоль-> Записи Рубрики, кликните на заданную рубрику и в адрресной строке после ID= будет номер категории"

Огромное спасибо автору, а полный текст статьи здесь.



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

A programmer: JavaScript #18 Heroku

Пару слов об опыте решения проблемы, которая, в общем, оказалась проблемой невнимательности (как часто бывает). Дело в том, что запушенное мной на Heroku приложение, написанное на React'e, не запускалось. Смотрел логи, гуглил ошибки и прочее - непонятно. В итоге оказалось, что не подумал о двух вещах. Во-первых, для запуска вебприложения нужен вебсервер! Вот ведь новость какая :) Написал, добавил в проект. Во-вторых (и это было неочевидно), его нужно было явно прописать в Procfile'e. Значит, надо его создать в нем написать (в моем случае):

web: node server.js

Где web - тип контейнера, server.js - название файла с сервером. И еще: чтобы не заморачиваться с отдельным гитом для Heroku, можно подключить собственный гитха, с которого он будет брать код, а потом либо вручную либо автоматически деплоить его. В документации это всё есть.


четверг, 9 июля 2020 г.

A programmer: JavaScript #17 React + Heroku

Хочется похвастаться. Я искал бесплатный или недорогой сервер, на котором можно было бы запускать Node.js и на нем всё остальное. Давно слышал про Heroku, но только сегодня руки дошли разобраться - создал один тестовый проект прямо там и второй просто туда задеплоил, оба на React'е. Собственно, пересказывать, как это делать, смысла не вижу, поскольку есть очень понятный мануал: https://devcenter.heroku.com/articles/getting-started-with-nodejs. А ещё - отличное видео:



вторник, 7 июля 2020 г.

A programmer: JavaScript #16 React (vs. Angular)

Продолжаю метаться между JavaScript'ом и Data Science. В первом случае интересны работающие программы, во втором - извлечение информации. Имея в виду лучшые возможности найти работу, JavaScript побеждает. Поэтому решил разобраться с React'ом Angular'ом. Сегодня про React.


Итак, React - это фреймворк для web development'а. Ключевая особенность - модульность. То есть ты создаешь компоненты (куски твоего сайта) и вставляешь из в один общий элемент. Всё это с помощью JavaScript, разумеется:

 

Здесь функция render получает параметры 1) что вставлять и 2) куда вставлять. Сами вставляемые компонеты структурно состоят из двух файлов, один из которых отрисовывает кусок страницы, а второй - стили к нему:


То же самое можно делать не через функции, а через классы. При отрисовке компонента на странице можно передавать специфические для него данные (props), которые передаются в конструктор как параметры. Значения внутри компонента (класса) называются state. По сути, это локальная пересенная (объект), для доступа к которому извне, соответственно, нужны сеттеры и геттеры. Ну и плюс особенности маршрутизации (свой js-пакет) и синтаксиса (jsx). В общем, мне понравилось - ничего сложного.

В Angular, в свою очередь, тоже модульность, тоже особенности синтаксиса и маршрутизации, но:
 - очень большой фреймворк - занимает много места;
 - его надо отдельно запускать (кроме веб-сервера на node.js, например);
 - долго запускается;
 - очень зависит от настроек - и своих, и браузера (в этом месте у меня случился затык, поэтому дальше я пока не пошел).

Пока что так.

вторник, 2 июня 2020 г.

Data Science mini-courses - Done

Во время карантина прошел 6 миникурсов по Data Science на http://www.datacamp.com/:









воскресенье, 31 мая 2020 г.

Facebook sharing problem solved

Вчера столкнулся с проблемой: при расшаривании вебстраницы в Фейсбуке превьюшка отражала неправильную информацию. Мне посоветовали A Guide to Sharing for Webmasters. И за это спасибо, потому что там есть информация о том, как сделать правильно. Если коротко, но надо прописать нужные property в meta в head сайта, что я и сделал. Но! Ничего не менялось!

Потому что фейсбуковский краулер, который индексирует страницы, посещает их раз в 30 дней. Но есть выход! На странице Sharing Debugger вы не только можете посмотреть, какую информацию проиндексировал краулер, и как давно, но и нажать кнопочку "Scrape again" - и он проиндексирует вашу страницу прямо сейчас. Solved.

понедельник, 20 апреля 2020 г.

Карантин и интроверты

Вообще-то карантин для меня обернулся, скорее, благом, чем злом по разным причинам (по крайней мере, пока). Среди прочего, потому, что я интроверт, и мне обычно не надо много общения - в большинстве случаев социальных сетей и мессенджеров мне вполне хватает. Плюс моя работа - это работа за компьютером, в основном. Но, как известно, работа дома оказывается сложной потому, что сложно переключаться в рабочее состояние. Так вот, на прошлой неделе я натолкнулся на интересное - один товарищ стримил свой рабочий процесс из дома. Не то, что именно он делал, а сам процесс сидения за компьютером, чего-то делания, слушания фоном музыки, периодических отлучек из-за стола и т.д. То есть того, что ты мог бы наблюдать, работая в офисе. Имея к тому же возможность этот виртуальный офис выключить в любой момент, такой стрим - идеальный способ войти в рабочее состояние: "Вот он что-то делает, а я-то что тунеядствую?!" Жаль, что зрителей было мало, и товарищ прекратил эту практику. Так кто же этот таинственный незнакомец? Рекомендую - youtube-канал АйТиБорода. Там периодически встречаются интересные интервью. Мне вот, например, понравилось: