• Забудьте про RGB и HEX
    +1
    Следующим этапом развития знаний цветовой теории является HSLuv.
  • Консольные утилиты Linux, которые смогут облегчить вам жизнь (Часть 2)
    0
    Попробовал bat. Штука весьма удобная. Печально, что подсветка синтаксиса просто нулевая, сравните с pygmentize. На мой скромный взгляд, pygmentize даже без указания языка синтаксиса даёт более детальную подсветку.
  • Консольные утилиты Linux, которые смогут облегчить вам жизнь (Часть 2)
    0
    NPM добавляет алиасы в /bin для запуска программ с короткой команды, то есть без указания интерпретатора /usr/bin/node и полного пути к js-файлу.
  • Консольные утилиты Linux, которые смогут облегчить вам жизнь (Часть 2)
    0
    Не такой же, screen — gnuшный, а tmux будут еще пилить десятки лет… про промежуточный результат — это все про tmux.
  • Консольные утилиты Linux, которые смогут облегчить вам жизнь (Часть 2)
    0
    Кстати, fd — вообще не приспособлен для скриптов. Его вывод слишком хаотичен для обработки. А вы пробовали ack? или это из другой оперы?
  • Как создать кастомизируемый вид для alert(), confirm() и prompt() для использования в JavaScript
    +1
    Да уже года 3 как поддерживается везде кроме проприетарных недобраузеров. Но и для них полифил есть на той же странице MDN. Не вижу причин не пользоваться ими…
  • Как создать кастомизируемый вид для alert(), confirm() и prompt() для использования в JavaScript
    0
    Лучше тем, что одинаковые в различных браузерах.

    У меня и стандартные HTML одинаковые во всех браузерах, содержат настраиваемую под проект и задачу информацию и приводятся к единому дизайну включенной темы GTK. Весьма спорный аргумент, <dialog> может содержать любую информацию и мало чем отличается от, например, <div> или <body>. И свойства CSS на них распространяются не хуже других. Модальное окно не останавливает работу JS, но при этом также может ожидать промиса ответа диалога.

    Я вот одного не понимаю, зачем для alert, confirm и prompt подключать jQuery, да еще и с bootstrap и Font Awesome.

    Вам не кажется это перебором, особенно для реализации в качестве достойной замены базовым возможностям HTML?
  • Пришло время бесплатных сайтов
    0
    И чем вам ucoz не угодил?
    Ucoz защищает от DDOS не хуже Cloudflare, и вроде как, даже на бесплатном тарифе.
  • Знай своего врага: создаём Node.js-бэкдор
    0
    Жертве достаточно установить пакет и воспользоваться им в Express-приложении так же, как пользуются любым пакетом промежуточного слоя.

    Ничерта себе, для эксплуатации бэкдора требуется всего-лишь… полный доступ к серверу, в том числе доступ к установке софта.

    Так там (в nodejs) и другие опасные функции есть. fs.unlink(), например, может удалить всё к чертям обладая этими же правами доступа.
  • Как создать кастомизируемый вид для alert(), confirm() и prompt() для использования в JavaScript
    0
    С появлением Promise в ECMAScript 6 (ES6) всё стало возможным!

    разберём разметку (bootstrap и Font Awesome для шрифтовых икон) и код alert (я использую jQuery)

    Так много зависимостей. А чем оно лучше стандартных диалогов браузера?
  • Консольные утилиты Linux, которые смогут облегчить вам жизнь (Часть 2)
    0
    Добавлю еще к списку:
    powertop — настройка энергопотребления ноутбука в ncurse-стиле.
    nyx — утилита по контролю tor-соединений в ncurse-стиле.
    ncdc — клиент к DC(++)-сетям в ncurse-стиле.
  • Консольные утилиты Linux, которые смогут облегчить вам жизнь (Часть 2)
    0
    Всё гораздо проще, я просто нажал Tab два раза и он (axel) среди прочего вывода оказался где-то в начале списка, вот и вспомнился. Киллер фич там скорее всего нету.

    А так мне тоже нравится wget. Особенно закачка страниц с содержимым (картинки, стили, скрипты, и даже просто файлы, ссылки на которые есть на странице).
  • Консольные утилиты Linux, которые смогут облегчить вам жизнь (Часть 2)
    0
    Есть плюсы и минусы. axel не умеет скачивать torrentы, зато умеет одновременную загрузку файла с разных серверов. А так, их же много там: curl, wget, hget, aria2, nugget, lftp.
  • Консольные утилиты Linux, которые смогут облегчить вам жизнь (Часть 2)
    0
    bmon — мониторинг активного потребления трафика.
    weechat — jabber/matrix/прочий IM-клиент.
    at — отложенный запуск команд.
    axel — много-поточная закачка файлов.
    bettercap — швейцарский нож среди снифферов.
    borg — дедублирующий коллектор бакапов.
    dialog — диалоги для ваших скриптов.
    espeak — синтез речи из текста (поддерживает русский язык).
    exa — стильная замена ls.
    xclip xsel — управление буффером обмена с командной строки.
  • Новые возможности TypeScript, повышающие удобство разработки
    –2
    Иммутабельные объекты, кстати, в JS тоже уже лет 8 как есть.
    А вот private fields очень не хватает. Очень жаль, что до сих пор не работают в Firefox. В NodeJS уже как пол года используются. Также два года ждем нормальной реализации асинхронных конструкторов и деструкторов для классов! Очень надоели костыли.
  • Microsoft заявила, что прекратит развитие Visual Basic в качестве языка
    0
    Я еще динамическую часть HTML4 пилил на VBScript, а на JavaScript перешел только в 2000-2001.
  • Собеседование здорового человека
    0
    Ну, дома я не только программирую, я еще люблю порисовать в векторе, у меня до сих пор в строю дешёвейший пятилетний ветеран Wacom CTH-680. Сам удивляюсь, как он до сих пор жив, взял его в 2015 на замену полностью отработанной таблетки Intuos4. На тот момент CTH-680 стоила раза в 2.5 дешевле Intuos4. Сама таблетка по сравнению с Intuos4 вроде хлюпенькая. А живёт в активном юзе уже 5 лет, даже есть кто продают на ebay до сих пор. Без беспроводного модуля обойдётся от $90. Беспроводной модуль стоит столько-же, если не дороже. Так что, могу рекомендовать, таблетка непробиваемая — проверена годами!
  • Собеседование здорового человека
    +1
    У меня два таких кресла ИКЕА, не помню как называется, но не ПОЭНГ. И отличается он съёмным подголовником. Из особенностей мне показалось кресло немного низковатое для стандартной высоты стола. И ещё с каждым креслом прилагались пуфы для ног, которые вообще не зашли, они могут использоваться как отдельная табуретка, но ноги на них держать — слишком высоко.
  • Собеседование здорового человека
    0
    Блин, под офисом мечты я имел в виду ту телефонную будку, что на пол фотографии, надо было обрезать, конечно, но тогда бы не было понятно что это такое и где оно стоит.

    Кстати, я не люблю паласы, я бы даже его не заметил. Но вот этот вроде не плох.

    Стул, на котором сидит чел слева — это стулья для конференций. У них есть особенность — возможность складываться один на другой и тем самым не занимать много места. Это, разумеется, накладывает некоторые ограничения на конструкцию стула и не может положительно сказаться на комфорте. Но, конкретно этот стул обладает строением ножек, за которые можно повесить небольшой столик с поворотом. Столик можно использовать для записи в тетради или для ноутбука с небольшой диагональю.
  • Разработка веб-сайта на паскале (backend)
    0
    Но даже в случае CGI, гораздо быстрее запустить скомпилированный бинарник, чем интерпретатор

    perlcc поставляется вместе с perl. Но скомпилированный код запускается не на много быстрее скрипта. Та проблема требует кастомизации ядра ОС — настроить быстро можно, но на это уходит немного времени, так как это не универсальные настройки, а непосредственно под CGI.
  • Собеседование здорового человека
    –2
    Вот он он — офис мечты.
    image
  • Собеседование здорового человека
    +5
    Сам гул и шум не мешает, не мешает и любое движение вокруг тебя.

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

    И работая в опенспейсах, меня больше беспокоит не столько то, что ты перед собой видишь, а то, что скрыто от твоего взора — то, что происходит у тебя за спиной. Я ненавижу рабочие места, где сзади тебя могут происходить какие-либо события. За моей спиной должна быть стена и ничего большее!
  • Разработка веб-сайта на паскале (backend)
    0
    Я тоже до того, как изучил PHP, делал сайты на Delphi. Но, вместе с Web-сервером, никаких CGI.

    По статье несколько вопросов.

    Про медленный Perl. Тут хочется отметить, что Perl всё же довольно быстр, но в стеке с CGI могло быть что-то не оптимально настроено. Никому не говорите про медленный Perl. Во многих вещах Perl невозможно заменить по параметру скорости выполнения. Например, те же регулярные выражения.

    Про NodeJS. Напрасно вы так про JS. Я понимаю, конечно, когда есть неприязнь, например, к ФП. Но JS как сам ЯП ничем особым не выделяется, чтобы прямо совсем быть таким неприятным.

    Я бы и сам уже не делал ничего на JS. В двадцать первом веке есть Go. И даже Go медленно но верно сменяет поколение Rust. Но, опять же, я считаю, что бы эффективно программировать на Go и тем более на Rust, хороший большой опыт работы на NodeJS просто необходим. Это моё личное мнение. Был бы рад услышать обратное, если таковые программеры среди нас присутствуют.
  • Полная домашняя автоматизация в новостройке. Продолжение
    +1
    Я тоже работаю и читаю чаще на кухне чем в комнате. По поводу отраженного света, есть же встроенные потолочные светильники, выполненные не просто ободом для лампы, а ещё оснащены внешним корпусом (ну, по итогу выглядят как мини-люстры), то есть светят не прямым светом, а рассеянным сквозь янтарный корпус. У меня просто везде потолки очень низкие (2.10-2.20 м), и сам я не очень высокий, но у меня есть большие и высокие товарищи, которые перемещаются по квартире как внутри пещеры (нагибая голову)… Я задавал вопрос из соображений про занимаемый объём кухни, не из соображений освещенности.
  • Полная домашняя автоматизация в новостройке. Продолжение
    +1
    Всё равно отделку переделывать, шумоизоляцию ни один застройщик не делает. А она нужна для продуктивной мысли и крепкого сна куда важнее чем умный дом. Хотя ходить по квартире и не включать/выключать свет тоже здорово…
  • Полная домашняя автоматизация в новостройке. Продолжение
    +1
    Сил хватило лишь на половину комментариев. Сильно не ругайте если вопрос повторяется.
    Собственно, вопрос Автору: почему вы везде используете эргономичные потолочные светильники, (которые собственно, хоть и самые дешевые, но их киллер-фича — они плоские и вообще не занимают полезного объёма квартиры), а на кухне вы используете люстру (которая неэргономичная и вообще, несмотря на её незаюзанный внешний вид, какая-то она как будто по наследству от бабушки)? В этом есть скрытый смысл? То есть, почему бы не использовать на кухне светильники такие же как и везде?
  • Обходим запрет messages API Вконтакте через Python
    0
    Наверное, не до конца объяснил, нашел свободные 10 минут, чтобы разъяснить подробнее.

    Что я имею в виду?

    Userscript — это тоже самое что и расширение для браузера, но неофициальное. Поставляется в виде прямой ссылки на файл extension-name.user.js. Если стоит расширение, например, Greasemonkey (самый первый) или Violentmonkey (самый простой) или проприетарный Tampermonkey (самый продвинутый), то оно подхватит ссылку и скачает и сохранит у себя автоматом. Расширение просто запускает нужный JavaScript, когда браузер переходит на страничку, URL которой удовлетворяет регулярному выражению, написанному в заголовках файла userscript.

    Что из себя представляет скрипт?

    По поводу трёх строчек я конечно перегнул.

    Будем считать что мы находимся на странице сообщений.

    Нам необходимо:
    1. проскролить тег с сообщениями;
    2. если появился прелоадер, значит конец ещё не достигнут, продолжаем цикл, в противном случае выдаём результат;
    3. через setTimeout() или setInterval() периодами по 100-200мс ожидаем пока не погаснет прелоадер;
    4. когда прелоадер погас, значит сообщения загрузились, получаем их через document.querySelectorAll() и innerHTML;
    5. переходим в начало цикла.


    И там остаётся внедрить на страницу кнопочку активации.
    Я бы её внедрил прямо на страницу сообщений где-нибудь рядом со смайликами.
    const button = document.createElement('button');
    button.innerHTML = 'получить все сообщения';
    document.querySelector('селектор куда внедряем кнопку').appendChild(button);
    button.addEventListener('click', () => { getMessages() } );
    

    И остаётся вопрос — куда выводить результаты работы. Тут можно хоть в консоль, хоть в window.alert(''), можно сделать отдельный div, а можно даже открыть новое окно через window.open('about:blank','_blank');, а можно даже в виде какого-нибудь xml-файла или json-файла для скачки через ссылку в base64.

    Ну как бы на словах все просто. Сколько коротеньких строчек кода? Ну может 5-7 или даже 10. Правда?

    Ладно. По поводу расширения. Кстати, есть конвертеры userscript -> extension. Код там тот же самый. Ничего мудрёнее нету. Архив надо будет ещё подписать своей подписью PGP или аналогами.

    Mozilla премодерирует все новые расширения. Обычно на это уходит пара часов. Чем меньше кода в расширении, тем быстрее его апрувят. На сам Вконтакте им будет пофигу, то есть главное — чтобы не было вредоносного кода.

    Последнее расширение, которое я добавлял где-то год назад, (запулил его где-то в обед по московскому времени) Mozilla апрувила минут через 40.

    Как расширения, так и userscript прекрасно работают на мобильных телефонах, при условии что там запускается Firefox.

    Надеюсь, эта информация поможет. Если будут, вопросы, обращайся, я захожу пару раз в день на Хабру, как будет свободная минута — отвечу.
  • Обходим запрет messages API Вконтакте через Python
    0
    Я не про API. Я про userscript. А официальный способ — расширение для браузера firefox. Расширения Firefox работают как на десктопах, так и на мобильниках. — И там пользователь уже авторизован, то есть остаётся спрограммировать сами действия, и сделать какую-нибудь кнопочку для активации. Причем в руках будут все инструменты — и скролл сообщений, и автоподгрузка без каких либо запросов, — всё уже спрограммированно самим Вконтакте.

    Ну на python тоже неплохо, только код раз в 5 длинее и авторизация через колено… Но, справедливости ради, это хорошая разминка на навыки python.
  • Обходим запрет messages API Вконтакте через Python
    0
    API там скудное, там нужно что-то подобное. То есть, надо авторизовываться как «обычный» браузер, с корректным User-agent и всеми признаками браузера.
  • Обходим запрет messages API Вконтакте через Python
    0
    Вы намеков не понимаете… Скажу прямо. Вы неправильно выбрали средство реализации.

    Поясню. Задача, которую вы «решили», не из разряда математических или транслирующих. Проблема то сугубо-пользовательского характера. Всё по инструкции можно автоматизировать, а спрашивать куку браузера от пользователя — это как минимум некорректно. Всё это должно делаться автоматом.

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

    То есть, сама задача то нормальная. Но решение мало-воспроизводимое.

    А так, на мой взгляд, я дельный совет даю. Если бы вы правильно выбрали средства реализации, то решение было бы в 2-3 строки кода. На 100% могу быть уверен, что меньше одного килобайта. А если пойти по официальному пути, — плюс килобайт файла манифеста. Надеюсь, этот намек вы поймёте.
  • Андрей Зарецкий, Александр Труханов: «Гонорара хватило, чтобы кофе попить»
    +1
    После энциклопедии профессора Фортрана, вторая и третья книги про компьютеры была эти. 1997-1998гг.
    image
    image
  • Обходим запрет messages API Вконтакте через Python
    –1
    Громкое название. Обходим запрет messages API Вконтакте через… что, простите?!… Python???
    Вот они какие, рецепты для домохозяйки.

    1. Установить python;
    2. Установить пакет из pip;
    3. Включить в настройках браузера Developer tools;
    4. Открыть DevTools и найти нужную куку во вкладке Network;
    5. Создать файл, в нём создать экземпляр класса, вписать авторизационные данные;
    6. Открыть консоль, командой запустить скрипт;
    7. Извлекать профит.

    Отличное решение для среднестатистического пользователя Вконтакте.
  • Может, нам слегка успокоиться с JavaScript?
    0
    Размеры картинки в пикселях.

    Хабравчанин khim в комментарии ниже предложил вам картинку размером 2560х1600.
    Вы можете дать конкретные размеры в цифрах, которые надо вписать в тег, чтобы не поехала верстка? Разминка для джуна ведь. А я проверю ваши цифры на своих гаджетах и сделаю соответствующие скриншоты. Гаджетов у меня много всех разрешений от мало до велика.
  • Может, нам слегка успокоиться с JavaScript?
    0
    Да, на вашем скриншоте всё прекрасно видно.

    Так вот, если на ваш же скриншот прописать оригинальные размеры 2560px x 1600px, то уже не будет так видно, т.к. 80% скриншота уйдет за overflow.

    И вопрос остаётся открытый: какой именно размер вписывать в тег?
  • 5 вопросов по SQL, которые часто задают дата-сайентистам на собеседованиях
    0
    Что-то легкие какие-то вопросы у вас на собеседованиях. У нас вон на SQL судоку решать предлагают.
  • Может, нам слегка успокоиться с JavaScript?
    0
    А какие именно размеры проставлять? под какое пользовательское разрешение (ориентацию экрана)? и в каких единицах?
  • Может, нам слегка успокоиться с JavaScript?
    0
    Ну, подождите, а откуда разработчикам сайта известна информация о контенте пользователя? Разве за этим должен следить разработчик?
    То есть, вы предлагаете загружать на серверы Хабры всю информацию, на которую, вы даёте ссылки в комментариях?
    P.S. Мой вопрос не с позиции Роскомнадзора. Само собой, за соблюдением правил сайта может следить и само сообщество Хабры!
  • Может, нам слегка успокоиться с JavaScript?
    0
    А вы когда пишете комментарий с картинкой, указываете размер картинки в теге?
  • Может, нам слегка успокоиться с JavaScript?
    0
    Ну смотрите. Я нашел страницу, перехожу к определенному комменту. Какое-то время подгружаются картинки и прочая медиа из статьи и комментов, причем только та, что не закешировалась браузером. Из-за заранее незивестных размеров картинок страница немного уходит вниз по мере загрузки этих изображений. Ну а так, в целом, после загрузки, всё приблизительно также как и на других страницах Хабра.

    Ах, если бы все изображения в комментариях постили под спойлер, страница бы не опускалась во время загрузки этих изображений! Мысли вслух.
  • Тестирование производительности кода в ОС Linux с примерами
    0
    Хорошая мысля приходит опосля.
    Так и надо было делать!
    Пишется модуль на Си.
    Модуль включается в статический список и mkinitcpio собирает ядро.
    Потом создаётся qemu-виртуалка с ограниченными ресурсами.
    В ней загружается ядро в single user mode.
    Песочница для запуска готова.
    Только меня смущает использование time, не слишком ли высокоуровневая тулза?!