Смотрим фильмы вконтакте с удобством и без страха случайно закрыть видео.
Я часто смотрю фильмы вконтакте, это удобно, но мне не нравятся 2 вещи: 1. Фиксированный размер видео плеера. 2. Можно случайно закрыть видео или вкладку с видео.
Поэтому я написал скрипт, который устраняет эти 2 проблемы. 1. Размер плеера становится таким же, как размер окна браузера, что дает возможность растягивать его, как вам захочется. 2. Закрыть видео больше нельзя. Только обновив страницу. И даже, когда вы пытаетесь закрыть или обновить вкладку, вас спросят, действительно ли вы хотите это сделать?
Инструкция для всех браузеров одна: 1. Открываем http://pastebin.com/raw.php?i=2nLdNNtb и копируем весь код целиком. 2. Создаем в браузере закладку, имя пишем любое, например "Мод плеера вк", а в адрес вставляем скопированный код. 3. Открываем любое видео вконтакте и кликаем по закладке.
Готово! Теперь вы можете не бояться случайно закрыть видео, и размер самого видео можно менять как вам захочется, изменяя размер окна.
Скриншоты, как все должно выглядеть, в первом комментарии.
vpe.style можно было бы и закэшировать. Да и width и height к одному значению проще так:
Это и к top / left относится.
А вообще спасибо, побалуюсь:)
Спасибо, всё получилось именно так как я хотел!
Оригинальный список малвари, шифровальщиков и прочего в open source проектах
На текущий момент в списке:
* 36 записей опасных изменений в OpenSource
* 10 записей о заблокированном доступе
* Cписок формируется на основании присланных заявок. На основании этих же присланных заявок удаляются ошибочно внесённые записи. Каждая заявка внимательно рассматривается и переносится в опубликованный список.
* Ни список, ни Техдирский Клуб, ни я лично никаким образом не вносим политическую окраску в происходящее - мы сознательно фокусируемся исключительно на профессиональной деятельности технических управленцев. Всем желающим пообщаться на политические и околополитические темы предлагаю найти один из миллионов чатиков, которыми сейчас кишит интернет во всех социалках. В техдирском Клубе за любые околополитические темы банят.
Если хотите внести (или опровергнуть) информацию в список, это можно сделать через специальную форму.
Я пишу на JavaScript
Помощь пикабушникам в веб-разработке и программировании
Привет! На всеобщей волне внесу свою лепту.
Я занимаюсь веб-разработкой. Стэк - PHP (Laravel, October CMS, MODX), JS (Vue, React, Alpine, Vanilla), HTML/CSS. Готов бесплатно помочь тем, кто учится, и у кого есть какие-либо вопросы или затруднения. Расскажу, подскажу, дам совет, обучу, выступлю наставником/ментором.
Формат взаимодействия такой: описываете вкратце ваш опыт/стэк и проблемы хотя бы в двух словах и ваш телеграм, я пишу вам и мы общаемся.
Фронтендеры каждые 2 года:
Есть ли жизнь после жизни?
Автор: Куликовских Сергей
Всем доброго дня или ночи! Затронутая в статье тема может показаться настолько избитой до популярности, что при ее прочтении возникнет стойкое желание взять помидор или, не дай бог, кирпич и кинуть в автора. А изложенные мысли будут напоминать повторное изобретение велосипеда с квадратными колесами. Но идея, побудившая приступить к описанию, буквально зудит и просится ей поделиться, несмотря на угрозу физического или морального наказания.
Историческая справка
В далеком 1970 году английский математик Джон Хортон Конвей, увлеченный темой клеточных автоматов, с командой единомышленников описал вымышленный мир, объекты которого эволюционировали по определенным правилам. В дальнейшем эта работа обрела большую популярность, благодаря ее практической реализации в виде игры под названием "Жизнь".
Конвей и игра «Жизнь», 1974 год
Алгоритм игры настолько прост и в то же время увлекателен, что более полувека привлекает внимание не только учёных, но и простых обывателей:
- Место действия этой игры — «вселенная» — это размеченная на клетки поверхность или плоскость — безграничная, ограниченная, или замкнутая (в пределе — бесконечная плоскость).
- Каждая клетка на этой поверхности может находиться в двух состояниях: быть «живой» (заполненной) или быть «мёртвой» (пустой). Клетка имеет восемь соседей, окружающих её.
- Распределение живых клеток в начале игры называется первым поколением. Каждое следующее поколение рассчитывается на основе предыдущего по таким правилам:
1. в пустой (мёртвой) клетке, рядом с которой ровно три живые клетки, зарождается жизнь;
2. если у живой клетки есть две или три живые соседки, то эта клетка продолжает жить; в противном случае, если соседей меньше двух или больше трёх, клетка умирает («от одиночества» или «от перенаселённости»)
- Игра прекращается, если
1. на поле не останется ни одной «живой» клетки
2. конфигурация на очередном шаге в точности (без сдвигов и поворотов) повторит себя же на одном из более ранних шагов (складывается периодическая конфигурация)
3. при очередном шаге ни одна из клеток не меняет своего состояния (складывается стабильная конфигурация; предыдущее правило, вырожденное до одного шага назад)
Эти простые правила приводят к огромному разнообразию форм, которые могут возникнуть в игре. К настоящему времени более-менее сложилась следующая классификация фигур:
- Устойчивые фигуры: фигуры, которые остаются неизменными
- Долгожители: фигуры, которые долго меняются, прежде чем стабилизироваться[2];
- Периодические фигуры: фигуры, у которых состояние повторяется через некоторое число поколений, большее 1;
- Двигающиеся фигуры: фигуры, у которых состояние повторяется, но с некоторым смещением;
- Ружья: фигуры с повторяющимися состояниями, дополнительно создающие движущиеся фигуры;
- Паровозы: двигающиеся фигуры с повторяющимися состояниями, которые оставляют за собой другие фигуры в качестве следов;
- Пожиратели: устойчивые фигуры, которые могут пережить столкновения с некоторыми двигающимися фигурами, уничтожив их;
- Отражатели: устойчивые или периодические фигуры, способные при столкновении с ними движущихся фигур поменять их направление;
- Размножители: конфигурации, количество живых клеток в которых растёт как квадрат количества шагов;
- Фигуры, которые при столкновении с некоторыми фигурами дублируются.
Конвей первоначально предположил, что никакая начальная комбинация не может привести к неограниченному размножению и предложил премию в 50 долларов тому, кто докажет или опровергнет эту гипотезу. Приз был получен группой из Массачусетского технологического института, придумавшей неподвижную повторяющуюся фигуру, которая периодически создавала движущиеся «планеры». Таким образом, количество живых клеток могло расти неограниченно. Затем были найдены движущиеся фигуры, оставляющие за собой «мусор» из других фигур.
Планерное ружьё Госпера — первая бесконечно растущая фигура
Благодаря развитию компьютерных технологий, на сегодняшний день существует столько реализаций игры "Жизнь" как в классическом варианте, так и в виде ее многочисленных модификаций, что тема кажется исчерпанной. Каждый, кто в достаточной мере проявлял интерес к математике или информатике, знаком с данной игрой или даже ей увлекался.
Так и ваш покорный слуга, будучи студентом на заре своей молодости, проявил умеренный интерес к этому и благополучно про него забыл. Но буквально на днях, работая над совершенно другой задачей, пришел к идее реинкарнации жизни в обычном браузере.
Не мудрствуя лукаво по быстрому "на коленке" была накидана страничка, которая тут же была обнародована членам семьи. К мой неожиданности, дети "залипли" на ней на продолжительное время, а мне оставалось только сидеть рядом и пить чай с печеньками.
Демонстрация первой версии
Столь бурная детская реакция стала причиной не останавливаться на достигнутом и продолжить работу. В проект был добавлен редактор состояния клеток, панель управления процессом эволюции (запуск и остановка). И после очередного утомительного набора в редакторе фигуры "ружье Госпера" возникла идея реализовать палитру готовых фигур. Затем потребовалось, чтобы эти фигуры можно было поворачивать и делать зеркальное отражение, а в саму палитру добавлять новые фигуры не модифицируя код проекта. Новые идеи не иссякали, а Остапа все несло и несло.
Палитра фигур и управление процессом эволюции
Точкой невозврата стала идея отойти от классических принципов игры. В результате была добавлена возможность существования треугольных клеток, что в корне изменило динамику игры. К тому же, существующие на сегодняшний день известные фигуры квадратного мира здесь неприменимы, и что требует дополнительного изучения и классификации нового многообразия фигур треугольного мира.
Мир треугольников
Таким образом случайная идея неожиданно обрела форму и превратилось в более или менее серьезный мини-проект, насчитывающий около полутора тысячи строк кода обычного JS без привлечения тяжелой артиллерии в виде различного рода фреймворков и библиотек. Код постарался "причесать" насколько возможно, но проект еще далек от завершения и в голове полно идей для дальнейшей модернизации.
Проект доступен на GitHub для конструктивной критики и свободного использования.
Всем добра! Спасибо за внимание!
Давайте кандидатам задачи
Когда только начинал собеседовать - знания проверялись только через тестовые задания. Но на проверку уходило много времени, да и не все хотели их делать. Поэтому на их место пришли вопросы наподобие типов данных в js или что такое замыкание?
После первого кандидата, который ответил идеально на теорию, был нанят, а на деле оказался слабым, добавили простые задачки на кодинг: перевернуть строку, поиск гласных, анаграммы. И да, этот этап оказался узким местом.
Это не были какие-то умные задачи на алгоритмы - печально известный FizzBuzz не мог потянуть каждый 2-ой.
Именно поэтому я пришел к выводу, что такие задачи давать надо!
Если у кандидата не получается их решить, то скорее всего со своей работой он справляться не будет. Это не всегда так, но корреляция высокая.
Также важно понимать, что это не способ найти хорошего программиста.
Это нужно для того, чтобы отсечь потенциально слабого.
Зарплату только забыли указать
Фильм. Самая проблемная миссия NASA: Спасая Галилео
Хороший фильм. Захватывающая история, технологии старой школы, эстетика раннего IT.
Канал: Alpha Centauri
Какие времена, такие и ужасы
Основано на реальных событиях.
Мой вариант названия для второй части: Дебаг – чужой код.
Автоматизация на почте
Устроился на работу сотрудником почты. На окраине города стоит полупустое здание, там начальство решило сделать архив. Рабочие привезли туда огромную груду мешков с письмами, которые требовалось отсортировать и занести в базу. Процесс таков: имеется пачка писем, обвязанная шпагатом. У каждой пачки есть накладная со штрихкодом, в котором зашифрована информация по этой пачке. Нужно 1) нажать в программе кнопку "сканировать штрихкод" 2) провести сканером по накладной 3) подождать 10-30 секунд пока программа расшифрует ШК 4) нажать кнопку "внести данные" 5) подождать 30-90 секунд 6) написать на пачке диапазон номеров, которые программа присвоила этим письмам (10-15 сек) 7) нажать кнопку "закрыть накладную" (5-10 сек), выйти назад в меню 8) следующий цикл.
Как видите, все эти ожидания плюс время на нажатие кнопок отнимает много времени. Во время 10-30 и 30-90 секундных перерывов можно занять себя открывая очередной мешок в другом конце комнаты и вытаскивая новые пачки, однако приходится бегать туда сюда и жать кнопки. Тогда я написал скрипт, автоматически определяющий когда закончился предыдущий шаг (распознавание экрана), жмущий нужные кнопки, а также назначил горячие клавиши, которые быстро выходят в меню и начинают новый цикл. Также я наловчился писать цифры загодя на основе диапазонов предыдущих пачек и количества писем в текущей. Теперь процесс выглядит так: сканирую ШК, иду занять себя другими делами (вскрытие мешков, написание цифр на следующих накладных, складирование готовых), программа в это время сама проходит полный цикл, возвращаюсь, сканирую следующий ШК и т.д. Скорость работы приблизилась к теоретическому пределу: теперь все упиралось в скорость работы программы, ускорить которую я не мог. Но этого вполне хватало, программа постоянно что-то обрабатывала, а я выполнял другие работы.
Также были бракованные накладные или пачки писем вообще без накладных. Приходилось брать каждое письмо 1) сканировать его ШК 2) клик "ввести данные" 3) 1-2 секунды программа думает 4) вылезает окно с характеристиками письма, тут ничего не делаем, все письма одинаковые, жмем "сохранить письмо" 5) следующий цикл
Как видите, опять много ненужных движений, нужно откладывать сканер в сторону, тянуться к мышке, два раза жать в разные места на экране. Моментально был написан скрипт, автоматизирующий всю эту лабуду, теперь процесс свелся к "пикнул письмо сканером (сканер издает звук при считывании), жду 2 секунды, пикаю следующее письмо" и т.д. Работа ускорилась в 2-4 раза, да и сил тратится гораздо меньше.
Но мне и этого показалось мало. Мало приятного в двухсекундном пялении в монитор. Открыл блокнот, занес туда штрихкоды писем, каждое письмо требует треть-полсекунды. Затем пишется еще один скрипт, который заносит в программу из блокнота по письму каждые 2 секунды, а я иду пить чай (а писем очень много, 10-30 тысяч, их накопилось достаточно за три года). Или не иду. Принес с собой ноутбук, пока скрипт работает над другой пачкой писем, открываю на ноуте блокнот и вношу туда следующую партию. Скорость работы выросла еще больше.
Периодически зовут помочь в городское отделение, там начальники удивляются моей скорости работы по сравнению с девочками операторами, вручную прокликивающими все кнопки. Вот так один технически подкованный человек может выполнить объем работ, требующих несколько человеко-час.. нет, лучше сказать тетенек-дней.