Ответ на пост «Возможны баяны!»
Раньше я тоже смотрел код страницы чтобы скопировать нужный текст где это запрещено на сайте, некоторые для этого использовали печать страницы в pdf
Но есть способ попроще)
В браузере включаем режим для чтения(oбычно он в строке адреса в правом углу) и всё спокойно копируем. Работает на всех известных мне сайтах такого типа. Тестировал на яндекс браузере и лисе
Google поделился обновлениями в системе оценки качества сайта
SEO Day 2022 прошел уже почти месяц назад, а у нас только дошли руки, чтобы поделиться с вами новостями.
Большое внимание уделялось вопросу, как Google оценивает сайты, так что мы сконцентрируемся на выступлении аналитика компании — Джона Мюллера. Он рассказал, что Google разделил результаты мобильного поиска от Desktop версии. То есть: поисковая выдача формируется, опираясь на опыт сайта на настольных компьютерах, а мобильный поиск — на мобильных устройствах сайта.
Также Мюллер напомнил про новую метрику, анонсированную весной — «интерактивность на следующей странице» (INP). Цель INP — понять, насколько быстро страница откликается на действия пользователя. Google считает (и мы тоже), что скорость отклика страницы имеет решающее значение. Человек должен видеть, что сайт реагирует на взаимодействие с ним. Иначе кажется, что “все зависло, ничего не помогает”. И возникает непреодолимое желание закрыть страничку.
Хотя представитель Google ясно дал понять, что в настоящее время INP не является прямым компонентом ранжирования, метрика может стать потенциальным фактором в будущем. И если ваш сайт до сих пор это не учитывает, у вас еще есть время подготовиться.
© Ingeto Technologies, 2022
Статья взята с сайта http://ingeto.tech/
Битрикс 1С - зло во плоти
Несколько месяцев назад пришлось заняться разработкой магазина на Битриксе, т.к. клиент уже купил на него лицензию, и часть разработки была начата (первый разработчик не выдержал сложности, сдали нервы и спился ушёл в закат). Для меня это первый проект на данной системе, до этого делал на Joomla, WP, Moguta, Opencart, самописные проекты.
Что я могу сказать... с первых дней работы на нём я понял, что система была создана в одном из самых мрачных филиалов Ада. И точно не для людей. И точно может, даже не людьми. Первое, что бросается в глаза - сложность структуры системы, и логика взаимосвязей не сразу становится понятна. Точнее, ты постепенно и с трудом начинаешь понимать что откуда берётся и с чем взаимодействует, но всё равно не понимаешь "почему именно так". Если какие-то вещи на той же Джумле можно сделать в пару кликов, то здесь ты насмерть затыкаешь мышку, пока не добьёшься того же самого.
Большая проблема с обучающими материалами - их практически нет. Статьи и видео объясняют лишь популярные, базовые вещи без детальных подробностей. Толку от них мало. С официальной справкой битрикса не лучше - у них тупо справка, без объяснений. Большую часть решений по затруднениям невозможно найти в интернете. А если есть, то они в большинстве довольно старые. Учитывая, сложность и монструозность этого чудовища, я ожидал, что интернет будет завален справочными материалами. А их нет. На форумах такие же вопросы, которые возникали у меня - остаются без ответа, или отвечают прогеры с ЧСВ длинной до стратосферы в стиле "пф, подумай головой и поймёшь". Я думаю, система специально сделана разработчиками такой сложной для того, чтобы клиенты обращались либо к платным курсам, либо к сертифицированным разработчикам, которые сами отвалили тучу денег на обучение 1С. Скорее всего, всё дело в деньгах - бизнес, ничего лишнего. Но ничего, маленькими шажками я справляюсь и без помощи гугла, всё больше пропитываясь ненавистью к этой системе...
Я не понимаю, почему IT сообщество так лелеет этого монстра. Единственное его преимущество - высоконагруженность. На этом всё! Любая другая система будет в разы удобнее и проще.
Плюсы:
- высоконагруженность
- можно гнуть ценник почти с любым количеством нулей (учитывая затраты нервов и времени, оно того не стоит)
- много всего "из коробки"
Минусы:
- эпичная сложность для разработчика
- высокие времязатраты на то, чтобы понять базовые вещи
- высокие времязатраты на разработку
- конский ценник на лицензию (минус для клиента только)
- ежегодное продление лицензии (можно отказаться, но обновы прощайте)
- отвратительное обеспечение справочными и обучающими материалами в интернете
- очень капризный к хостингу
- большинство компонентов в магазине платные, но можно накодить свои бесплатные решения для простых задач
- тяжёлый, серьёзная нагрузка на хостинг, и соответственно, на кошелёк клиента
- создать магазин без знания программирования - миф. Нужны как минимум средние уверенные знания php, потому что без вмешательства в код проект сделать невозможно
По возможности, буду стараться не рекомендовать клиентам покупать лицензию на это чудовище. Я и раньше слышал о нём гадости, теперь понимаю их обоснованность. Я глубоко не вникал, но не верю, что кроме битрикса нет других движков, которые смогут вместить сотни тысяч товаров. Есть ещё чудовище тоже от 1С - Битрикс24, там уже для пользователя идёт сущий Ад неудобств и путаницы, но это уже другая история... компания держит свою "планку". Выводы построены так, потому что есть с чем сравнивать. Конечно, есть эксперты по битриксу, которые могут быть со мной не согласны и, возможно, я иду против мнений большинства, но отмечу, что выше написанное - сугубо моё мнение как того, кто впервые столкнулся с этим монстром. Битрикс - не инструмент для разработки. Это великолепное, хитрое средство огромного заработка для его создателей.
Поток документа | Flexbox | Float | inline-block в CSS
Привет, в этом уроке мы разберемся в том что такое нормальный поток документа, научимся его изменять с помощью CSS свойств, разберемся с тем как работать с inline-block, float и flexbox свойствами. Текстовая версия урок в полной версии статьи.
Поток документа
Поток документа - определяет то каким способом элементы будут располагаться на странице.
Normal flow - базовый поток описывает то как элементы располагаются на странице, когда к ним не применили ни одного CSS свойства.
Для того чтобы чтобы управлять потоком нашего документа с помощью CSS нам в первую очередь нужно выстроить правильный базовый поток документа в нашем HTML.
inline и inline-block
Задача: Необходимо выставить элементы .item друг возле друга по 2 в ряд.
Решение: Для начала выставим ширину элемента 50% и добавим inline-block чтобы они могли выстраиваться друг возле друга.
HTML File - link
.item {
width: 50%;
display: inline-block;
}
Проблема: Ширина наших элементов изменилась, но сами элементы не выстроились друг возле друга. Это происходит из-за того что браузер интерпретирует элементы .item как строчно-блочные, а значит учитывает пробельные символы которые мы ставим внутри нашего HTML документа и также отображает их на странице. Для того чтобы решить это проблему нам необходимо убрать эти пробельные символы которые находятся между нашими блоками .item . Для этого нам достаточно найти родителя блоков .item, а это блок .wrapper и выставить ему font-size: 0.
.wrapper {
font-size: 0;
}
Пробельный символ, это символ аналогичный любой букве, а это значит, что если мы выставим размер шрифта в 0 то он исчезнет и не будет занимать места, как и все остальные символы внутри этого блока.
Сейчас мы видим что элементы на странице выстроились друг возле друга, как мы и задумывали, но текст не отображается, это происходит из-за того что мы поставили размер шрифта для всего текста в блоке 0px. Для того чтобы вернуть текст внутри блоков .item на свое место, нам необходимо задать размер шрифта отдельно для них.
.item {
font-size: 16px;
}
Теперь все работает правильно и мы добились желаемого результата, самый главный недостаток такого способа - это то что нам постоянно нужно контролировать размер шрифта и это не всегда удобно. Именно из-за этих недостатков это способ практически не используется в современной верстке, а на замену ему пришли другие, более современные способы.
Float
Задача: Необходимо выставить элементы .item друг возле друга по 4 в ряд.
Решение: Для начала выставим ширину элемента 50% и добавим float: left чтобы элементы .item могли обтекать друг друга с левой стороны.
HTML File - link
.item {
width: 25%;
float: left;
}
Видим что такой способ достаточно хорош и все сразу стало как нам было нужно. Но есть проблема, если мы проинспектируем родительский элемент (.wrapper) наших .item блоков, то сразу увидим нечто странное, а именно то что высота этого элемента равна 0, как будто в нем нет никаких дочерних элементов, хотя они есть.
Для того чтобы решить эту проблему нам нужно растянуть .wrapper чтобы он занимал именно столько высоты сколько нужно.
Обычно для этого используются псевдо-элементы, он них мы будем говорить позднее, но используем их для того чтобы решить нашу проблему.
Вкратце, псевдо-элемент, это такой элемент который создается не через HTML, но через CSS, а браузер интерпретирует его как часть структуры сайта.
.wrapper:after {
content: '';
display: block;
clear: both;
}
Теперь все отображается правильно, вся суть в том что мы создаем еще один, полностью пустой, элемент и отменяем для него float , с помощью свойства clear: both. После чего этот, пустой, элемент располагается в самом конце нашего блока .wrapper и тем самым растягивает его высоту, и делает ее правильной.
Такое использование будет не слишком удобным, если у нам будет много элементов позиционированных через float, в таком случае на проще сделать отдельный класс который будет добавлять такие стили нужным для нас элементам. Обычно такой класс называется .clearfix.
.clearfix:after {
content: '';
display: block;
clear: both;
}
И добавим его для нашего блока wrapper, единственное что нам нужно делать, это добавлять класс .clearfix, для родительских элементов дети которых позиционированы с помощью свойств float.
Этот способ активно использовался раньше, но уже не так актуален и практически не используется в данный момент, но такой подход все еще можно встретить в реально жизни.
Flexbox
Задача: Необходимо выставить элементы .item друг возле друга по 2 в ряд.
Решение: Для начала выставим ширину элемента 50% и добавим display: flex чтобы элементы .item могли выстраиваться друг возле друга
HTML File - link
В таком случае flex прописываем для родительского элемента.
.wrapper {
display: flex;
}
.item {
width: 50%;
}
У нас появилась проблема, а именно то что сейчас все элементы встроены в ряд, это происходит по причине того что flex сам, автоматически пересчитывает ширину игнорируя заданную нами ширину для элементов. Для того чтобы это исправить, нам необходимо добавить свойство flex-wrap: wrap для родительского элемента .wrapper .
.wrapper {
flex-wrap: wrap;
}
Теперь мы сами можем контролировать контролировать ширину наших внутренних элементов через CSS, но не забывайте, что если вам подходит стандартное поведение flex и его автоматическая работа с шириной, то можете игнорировать flex-wrap: wrap
Другие возможности
Для того чтобы удобно работать с элементами у flex есть ряд других свойств которые помогают удобно позиционировать элементы.
Для наглядности изменю ширину элементов .item
.item {
width: 18%;
}
Свойство justify-content помогает нам позиционировать элементы по горизонтали Все его значение рассмотрим на странице в видео уроке.
.wrapper {
justify-content: space-evenly;
}
Свойство align-items помогает нам позиционировать элементы по вертикали, для наглядности я увеличу высоту блока .wrapper .
Все его значение рассмотрим на странице в видео уроке.
.wrapper {
border-top: 3px solid black;
border-bottom: 3px solid black;
background-color: #ccc;
height: 600px;
/* flex свойство */
align-items: center;
}
flex-direction
Свойство flex-direction определяет в каком направлении будут отображаться элементы. По умолчанию flex-direction равно значению row, в зависимости от направления отображения у нас будет изменяться и работа свойств justify-content и align-items
Для flex-direction: row и row-reverse:
justify-content - будет позиционировать по горизонтали
align-items - будет позиционировать по вертикали
Для flex-direction: column и column-reverse:
justify-content - будет позиционировать по вертикали
align-items - будет позиционировать по горизонтали
Все его значение рассмотрим на странице в видео уроке.
.wrapper {
height: initial;
/* flex свойство */
flex-direction: row;
}
Свойство order - позволяет нам, вручную, определять в котором будут отображаться элементы. Свойство order должно задаваться внутренним элементам, вложенным в .wrapper, а значит тем которые являются детьми первого уровня элемента у которой присутствует свойство display: flex.
В нашем случае это элементы .item так как они является детьми .wrapper у которого и прописано свойство display: flex.
.item:nth-child(1) {
order: 4
}
.item:nth-child(2) {
order: 1
}
.item:nth-child(3) {
order: 2
}
.item:nth-child(4) {
order: 3
}
Также существует еще больше flex-свойств, которые используются не так часто, о них можно почитать в документации.
Поиграем в бизнесменов?
Одна вакансия, два кандидата. Сможете выбрать лучшего? И так пять раз.
Путь от музыканта до Python-разработчика
В сегодняшнем интервью мы пообщаемся с Ильей , человеком, что к 24 годам успел много кем поработать, от работы музыкантом до грузчика в магазине.
Самообразование - то, что помогло ему изменить свою жизнь в лучшую сторону. Сейчас Илья работает Python-разработчиком в Новосибирске. Подробнее о его истории читайте в интервью, материал получился интересным😎
1.Расскажите о себе, из какого вы города сколько вам лет и на кого учились.
Меня зовут Илья, мне 24 года, большую часть жизни прожил в Новокузнецке, сейчас живу в Новосибирске
По первому образованию я музыкант. Преподаватель ударных инструментов, если точнее. На данный момент получаю высшее техническое, перешел на 2 курс.
2. Кем вы работали ранее, до того как стали программистом?
Где я только не работал. В музыкалке преподавал какое-то время, во время учёбы работал в МТС продавцом. После армии даже в оптовой фирме продажником и логистом успел потрудиться. Ну и всякие подработки аля грузчик.
3. Кем вы работаете сейчас?
Сейчас я backend Python developer
4. Почему вы решили стать разработчиком?
Тут можно было бы сказать что-то вроде: “Не человек выбирает профессию, а профессия человека”, но это только часть правды. Как таковым разработчиком я изначально быть и не хотел, думал, что пойду в сторону машинного обучения. И возможно так и будет, хотя меня на данный момент всё устраивает.
Это обширная тема для дискуссий, но я убеждён, что на данный момент сфера IT, не имеет равных по уровню зарплат и комфорта работы. Тут я ориентируюсь на ситуацию в СНГ, в первую очередь. Да, сейчас это на хайпе, и сфера обучения программированию живёт ничуть не хуже, чем само программирование. Очень много мифов и преувеличений. Но всё равно, если подумать, вряд ли мне назовут еще одну такую профессию, где будет хотя бы столько же плюсов.
5. Какие технологии и навыки вам необходимо было изучить для того, чтобы почувствовать наконец-таки уверенность в собственных силах?
Основной язык, собственно, Python. Базы данных и Django это то, что приходится использовать в работе. Изначально я хотел в data science, так что владею Pandas, статистикой и немного понимаю в ML.
6. Расскажите подробнее о том, каким образом и как долго вы изучали Python и интересующие вас библиотеки? Лучше с ссылками на ресурсы.
Вообще, самый первый язык в моей жизни был C++. Я выбрал его просто методом тыка, так как не имел ни малейшего представления про языки. Именно на нём я ощутил первые страдания и радости по решению алгоритмических задач :)
Если кому-то такое интересно, то вот замечательный курс на Stepik по плюсам, который ведёт яндекс.
https://stepik.org/course/363/info
Так же, я проходил интенсив School 21. Это прозвучит как реклама, но я искренне рекомендую это мероприятие. Это было очень трудно, месяц почти круглосуточной работы на чистом С. По итогу я всё равно не прошел отбор, но эмоции и навыки, которые я получил там просто бесценны.
И я даже не считаю такое начало ошибкой. Всё-таки начиная с более низкоуровневых языков лучше понимаешь, что и почему вообще происходит.
С питоном я познакомился, когда готовился к ЕГЭ для поступления в университет. А на тот момент мне было уже 22 года. Вообще, это самая частая ситуация, насколько я успел заметить. Не слышал ни одного случая, когда задания для ЕГЭ делались не на питоне, соответственно, дальше люди продолжают углубляться в него по инерции.
Почему я вообще начал с предыстории о изучении языков? Потому что к питону я подходил уже совершенно иначе. Я уже относительно сносно писал на си и процесс написания кода был для меня понятен. Нужно было только привыкнуть к динамической типизации, и к тому, что многие вещи делаются сами и их не обязательно расписывать.
Значит ли это, что обязательно начинать изучать низкоуровневые языки перед тем, как браться за питон? Конечно же нет. Просто мне уже было не нужно проходить курсы, достаточно было просто обращаться к документации, и из-за этого я даже не могу посоветовать никаких полезных источников для изучения.
7. Легко ли было изучать программирование и были ли проблемы с самодисциплиной?
Знакома ли вам история, когда в 14 лет вы пишите свой первый парсер, а к совершеннолетию уже живёте на пассивный доход от собственного телеграм-бота?
Мне тоже нет.
Я не родился программистом, и вообще несколько лет назад не поверил и посмеялся бы, если бы мне сказали, что таким будет моё будущее. Так что да, это было тяжело, и тяжело до сих пор, хотя бы от ситуаций, когда разговариваю с ребятами которым 18-19 лет, и которые на голову превосходят меня во всём что касается разработки.
Проблемы с самодисциплиной были, но только до тех пор, пока я не решил, что собираюсь заниматься этим профессионально, что не хочу всю жизнь проработать на нелюбимой работе.
Мне кажется в любом деле невозможно достичь результата, если заниматься им просто так. Нужно понимать для чего это делается. Если цель просто писать скрипты для себя в качестве хобби, то это вряд ли когда-то приведёт к ощутимым результатам.
8. Насколько сложно было найти первую работу разработчиком?
Думаю, любой кто хоть раз пытался устроиться на свою первую работу в IT прекрасно знаком с парадоксальной системой, где ты стучишься в виртуальные двери компаний со своим кое-как заполненным резюме, в надежде что придёт хотя бы отклик. Хотя из каждого утюга тебе вещают, что специалистов не хватает, почему-то, на работу тебя по-прежнему не берут.
И тут я хочу выразить мнение, которое сложилось у меня на основе моего опыта, а также огромного количества разговоров с людьми из сферы.
Специалистов действительно не хватает. Толковый мидл - желанный сотрудник в любой компании, и когда говорят о 999 оферах в день, которые только и успеваешь кидать в спам, это в основном про них.
Ситуация с джунами и интернами совершенно другая. Невероятное количество курсов и хайп вокруг IT породили целую армию претендентов на вакансии низкого уровня. Портрет такого соискателя примерно такой: Я хороший парень, я понимаю на каком языке я пишу, я очень хочу работать.
Если взглянуть на это со стороны эйчара, то можно увидеть, что кого бы из них он не взял на работу, итог будет одинаковым – первое время такой сотрудник будет только отнимать время других разработчиков и не давать совершенно никакого результата. К этому прибавляется риск, что после того, как в джуна будут вложены силы, он получит реальные навыки и станет полезным в компании, то он решит перейти работать в другое место.
Так что процесс отбора довольно непрост.
Потому-то, строчка с опытом коммерческой разработки так много значит для эйчара. Как минимум это говорит о том, что человек уже попрыгал по всем граблям новичков и теперь представляет из себя готового специалиста, который после освоения в проекте уже начнёт приносить пользу.
Сам я тоже проходил через всё это. Сейчас смешно вспоминать, как в самом начале пути, преисполненный веры в себя, я приходил в офисы компаний и просился на работу. Естественно, в ответ получал лишь недоумевающие взгляды и просьбы отправить резюме на почту. Были и рассылки резюме, были тестовые задания.
Что в итоге выстрелило? Нетворкинг. Меня порекомендовали моему нынешнему работодателю, и у нас всё срослось.
Устройство на работу через знакомых это далеко не пережиток советского мышления, как может показаться. Напротив, если тебя рекомендуют, это как минимум говорит о том, что ты не просто человек с улицы, за кого попало поручаться не будут. Так что софт скилы я назвал бы основополагающими для поиска первой работы.
9. Ощутимо ли улучшаются условия труда в IT-сфере от других сфер трудовой деятельности?
Мне иногда приходится натыкаться на высказывания в духе: “Как я устал на своей галере, может поменять сферу деятельности?”.
Что ж, действительно, в разных компаниях условия труда различаются. Но обычно так говорят те, кто никогда не работал в других сферах.
Каждый раз, когда я думаю, что мне тяжело, я вспоминаю как вставал в 5 утра, для того чтобы успеть на любимую работу, где целый день я проводил на ногах, пытаясь продать вещи, которые никому не нужны, людям, которые видят в тебе лишь обслуживающий персонал. После чего уставший до смерти возвращался домой, с единственным желанием – упасть в кровать. И за всё это в конце месяца я получал весёлую смс из банка о зачислении 30 тысяч рублей.
Сейчас у меня отличный начальник, который готов выслушать меня и пойти навстречу. Мои коллеги – прекрасные люди, профессионалы своего дела. Часто приходится очень много работать, но я делаю это потому что хочу побыстрее дать результат и чему-то научиться, а не потому, что меня бьют палкой. У меня столько свободного времени, что хватает на любые дела, которые я могу себе придумать. Зарплата выше, чем везде, где я работал до этого. Мне не нужно вставать и тащиться куда-то каждое утро.
Лучше ли тут условия труда? Для меня ответ очевиден – они лучшие.
10. Расскажите подробнее о том, чем вы занимаетесь на работе.
Моя основная задача – бэкэнд. Я пишу логику приложений. Однако часто попадаются задачи на любой вкус и цвет – и фронтом приходилось заниматься и ci cd, и даже навыки ML пригождались. В целом, мне дают расти и пробоваться во все стороны. Кому-то это может показаться минусом, но для меня это огромный плюс, ведь это формирует понимание проекта в целом, а не только отдельной его части, что повышает мою ценность как специалиста.
11. Какие положительные и отрицательные стороны работы разработчиком?
Положительная сторона в том, что именно разработчики являются костяком проекта. Именно от них зависит насколько быстро и качественно будут выполнены задачи и насколько скоро проект выйдет в прод. По этому их важность на проекте не вызывает сомнений. В этом же состоит и минус. В конце концов может быть тысяча причин, почему ты не успеваешь сделать фичу, но в конечном итоге разбираться с этими причинами должен только ты.
12. Вернувшись в прошлое, какие советы вы бы дали себе в начале изучения Python?
Можно бесконечно читать о том, как работают те или иные вещи в языке, но это останется лишь голой теорией, пока ты не применишь это в проекте. Мне всегда казалось, что вот я сейчас наберу базу, а потом применю её где-нибудь. И это была ошибка.
Мой рост был бы в тысячу раз быстрее, если бы я взял сколь угодно сложный проект, и решал бы проблемы, которые получал по ходу. Да, теория важна, она помогает составить правильный взгляд, но без практики она просто не усваивается. Да, я бы сотворил монстра, на который было бы стыдно смотреть через полгода, но это были бы мои ошибки, из которых я сделал бы вывод и не повторял бы в дальнейшем.
13. Какие навыки и профессиональные компетенции положительно выделяют человека на фоне остальных кандидатов при собеседовании?
Обучаемость, коммуникабельность и прочие лозунги я советую навсегда забыть и больше никогда не упоминать. Это вещи, которые должны быть присущи любому адекватному человеку.
Любой проект на гите скажет о вас лучше, чем тысячи хвалебных слов в свой адрес. А если этот проект еще и будет приносить практическую пользу, то это уже даже какой-то продукт. Если показать свой сайтик, рассказать о функционале, о фичах которые ты выдумал, это уже повод для обсуждения на собеседовании. А софт скилы будут понятны по ходу разговора, так что на этом вообще не нужно акцентировать внимание.
14. Что можете посоветовать тем людям, что только начинают изучать Python?
Во-первых, перестать участвовать в холиварах на тему, что питон — это язык школьников и вообще он медленный. Пусть даже это была бы правда, какая разница, если за это платят?
Во-вторых, не зацикливаться на конкретном языке. Вполне возможно, что он будет не последним на вашем пути разработчика. Куда важнее постичь саму суть, как проект проходит путь от идеи до готового продукта.
Ну и в целом, какие бы трудности не встречались на пути, всегда нужно держать в голове, что любые проблемы можно преодолеть. И в конечном итоге, через какое-то время всё это окупится.
P.S. Дорогие читатели, буду признателен вам, если напишите в комментариях те вопросы, что вы хотели бы видеть в дальнейшем интервью подобного формата. Буду стараться благодаря вашей критике и советам максимально улучшать качество следующих интервью.
Мой канал в телеграмм
Если статья показалась вам интересной, то буду благодарен за подписку на мой канал IT-старт t.me/it_begin ,где я также публикую обзоры технической литературы, интервью с разработчиками и иную полезную информацию, как для действующих, так и для начинающих программистов