• Программное решение для упорядочивания жизни?

    DDDsa
    @DDDsa
    Можно вести всё это в гит-репозитории в plain-text файлах, используя простой язык разметки вроде Markdown или RST. В них есть всё, что нужно: выделение, картинки, ссылки, даже блоки кода с подсветкой синтаксиса.

    В гит-репозитории вы свободны структурировать информацию как угодно: разносить по папкам, разбивать по файлам. Это самый удобный способ вести исходники любой документации.

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

    Хорошие статические генераторы сайтов из Markdown:



    Ещё есть Foliant, который из единых Markdown-исходников может собирать PDF, docx, тот же MkDocs-сайт и т д.

    Ну и так далее, тут плюс в том, что вариантов очень много и если надоест один сайт, можно взять те же ваши накопленные годами md- или rst-исходники и собрать из них что-то другое. А теперь представьте, что вас перестал устраивать EverNote, что тут делать? : )
    Ответ написан
    5 комментариев
  • Как перевести строку в массив?

    rockon404
    @rockon404
    Frontend Developer
    const jsonString = '[1600, 1602]';
    const array = JSON.parse(jsonString);

    По-хорошему, вызов JSON.parse следует оборачивать в try/catch.
    Ответ написан
    Комментировать
  • Как сделать видео внутри телефона на html?

    HunteR-VRX
    @HunteR-VRX
    Помешанный на развитии
    Суть решения в том, чтобы тег <video> вложить в произвольный блочный контейнер <div>, а затем методом абсолютного позиционирования этого <div> расположить его в желаемом месте изображения
    Ответ написан
    5 комментариев
  • Поступление: уклон в программирование или в математику?

    @NubasLol
    Если тебе нравится математика, и тем более, если у тебя есть желание решать сложные задачи, а не делать формочки на сайтах, то выбор очевиден.

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

    Язык программирования выучишь за пол года потом) И нужный тебе, под твои задаи
    Ответ написан
    Комментировать
  • Как вывести элементы массива с заглавной буквы?

    0xD34F
    @0xD34F Куратор тега JavaScript
    const str = arr
      .map(n => `${n[0].toUpperCase()}${n.slice(1)}`)
      .join(', ');
    
    // или
    
    const str = arr.reduce((acc, n) => acc + (acc && ', ') + n.replace(/./, m => m.toUpperCase()), '');
    
    // или
    
    const str = arr
      .map(n => ''.concat(...Array.from(n, (m, i) => i ? m : m.toUpperCase())))
      .join`, `;
    Ответ написан
    Комментировать
  • Как вам качество кода (javascript)?

    freislot
    @freislot
    Frontend-разработчик
    Верно написали выше в комментарии, например начните с объединения кода addEventListener'ов. Это можно сделать разными способами. Легко гуглится по запросу addeventlistener on multiple elements.

    Вот эта запись obj.innerHTML-- работает (конкретно строка приводится к числу), но она не очевидна для других людей, читающих код. Это так называемая "магия" js, старайся избегать таких вот строк, где происходят не очевидные вещи, такие как приведение типов. Лучше завести переменную count например и присвоить ей 15 и работать с ней, а ее значение выводить на страницу.

    Дальше, я бы наверное сделал методы start() и stop() и в них уже описал логику таймаутов, но таймаут я бы тоже не использовал, я бы взял setInterval() и для остановки clearInterval().

    Ну остальное так по мелочи, я бы допустим все селекторы вынес на самый верх, там им место как мне кажется
    let successLink = document.querySelector('.success-link'),
    		successBlock = document.querySelector('.success-block'),
    		failBlock = document.querySelector('.fail-block'),
    		close = document.querySelector('.close'),
    		closeLink = document.querySelector('.close-link');
    		close2 = document.querySelector('.close2'),
    		closeLink2 = document.querySelector('.close-link2');

    И раз уж ты решил использовать ES6 синтаксис (let), то правильнее будет использовать const т.к селекторы не изменяются по коду. Ну и в целом форматирование и отступы надо соблюдать, не везде красиво скажем так :)
    Ответ написан
    Комментировать
  • Что является макрозадачей?

    Xuxicheta
    @Xuxicheta
    инженер
    Чем описывать тут своими словами лучше дать ссыль на хороший, годный доклад
    https://habr.com/ru/company/oleg-bunin/blog/417461/

    Макро и микрозадач нет, есть tasks и jobs (иногда таки называют микротасками). Tasks выполняются в цикле, по мере появления в коллстэке (это xhr, fetch, setTimeout, browser events), а jobs (Promise, Mutation observer) сразу после тасков в текущем цикле, причем если job был добавлен в этом цикле (в task или в job перед ним), то и выполнен он будет в этом же цикле, в отличие от таска. Это позволяет выполнить промис-цепочку почти синхронно, но добавляет опасность заблочить цикл.

    В ноде все это работает по-другому.

    Ну и евент луп не относится к javascript, а определяется окружением, в нашем случае - браузером.
    Ответ написан
    Комментировать
  • Почему объект доступен из замыкания?

    @ned4ded
    Верстка, Фронтенд
    Добрый день.

    Вы удаляете ссылку на объект в переменной user, но не сам объект и не саму абстрактную ссылку (их может быть много). В js нельзя удалить объект, его удалением занимается garbage collector, вы можете удалить все ссылки и тогда объект будет удален из памяти.

    При передачи объекта в замыкание, там сохраняется ссылка на него, а не на переменную user.

    Собственно, даже чуть более простой код будет работать точно так же:
    let object = { test: 'hey' }
    
    let another = object
    
    object = null
    
    console.log(another)
    // { test: 'hey' }
    Ответ написан
    1 комментарий
  • Что делает "^" в JS?

    ruddy22
    @ruddy22
    Спасение утопающих — дело рук самих утопающих
    Привет.
    Это битовый оператор "Исключающее ИЛИ" (XOR), который применяется последовательно к паре бит.
    При сравнеии операндов, возращает 1, если стоит справа или слева от оператора, или 0, если оба операнда являются 1 или 0.
    Как это работает?
    Во время работы оператора, числа сравниваются между собой побитово, в результате получается новое число.
    Например, сравним чилса 14 и 7:
    /*
         9 = 00000000000000000000000000001001
        14 = 00000000000000000000000000001110
             --------------------------------
    14 ^ 9 = 00000000000000000000000000000111 = 7
    */
     
    var result = 14 ^ 9;
    console.log(result);     // 7


    подробнее можно почитать тут:
    https://learn.javascript.ru/bitwise-operators#iskl...
    https://puzzleweb.ru/javascript/8_operators3.php#a4
    https://developer.mozilla.org/ru/docs/Web/JavaScri...
    https://tproger.ru/translations/bitwise-operations/
    Ответ написан
    Комментировать
  • Сложно ли учить новый язык программирования после JavaScript?

    @frozen_coder
    Java-developer
    Меньше слушайте всех, больше делайте руками. "Вам будет очень сложно" - это субъективная оценка. Подходите к новому языку как к новому (не смотрите на него как на свой старый с другим синтаксисом). Не пытайтесь притащить свои старые привычки на новый язык. Есть некоторые аналогии, но всегда интересуйтесь, а как тут принято делать "это".

    Далее, вам какую задачу решать? Язык выбирают под проект, под задачу, под требования, а не проще. Если говорить о коне в вакууме, то попробуйте Python
    Ответ написан
    Комментировать
  • Сильно-ли замедляется доступ к объектам словаря при большом количестве?

    @deliro
    Если у ключей будет плохая хэш-функция (__hash__) — замедление будет сильное. Например, если все ключи будут отдавать хэш 42. Тогда открытая адресация просто умрёт, пытаясь найти очередную свободную ячейку в хэш-таблице.

    В остальном, хоть 100, хоть 10000000 — неважно. Вероятность коллизии примерно одинаковая. И амортизированная сложность вставки/получения/удаления элемента — O(1)
    Ответ написан
    7 комментариев
  • Какие шаблоны проектирования js применяются на практике чаще всего?

    sfi0zy
    @sfi0zy Куратор тега JavaScript
    Creative frontend developer
    какие паттерны применяются чаще всего на практике и где

    Сразу отмечу, что все это чисто мое имхо, которое может не совпадать с мнением окружающих. В контексте фронтенда обычно все довольно просто. По моим наблюдениям в среднем сайте могут иметь смысл:
    1. Модули (делим код на независимые части)
    2. Фабрики (для компонентов интерфейса)
    3. Синглтоны (для хранилищ, точек сбора полифиллов / утилит и.т.д.)
    4. Адаптеры (для зависимостей и полифилов, которые могут измениться / выпилиться)
    5. Наблюдатели (для сбора происходящих событий в одном месте)
    6. Хранители (для сохранения действий пользователя и "Ctrl-Z")
    7. Стратегии (если действуем в зависимости от прилетевших данных)

    Другим паттернам применение вижу редко, только если под какую-то замороченную бизнес-логику. Хотя кого я обманываю, на среднем сайте обычно происходит только один паттерн - доширак из костылей. Ну и стоит сказать, что SPA-фреймворки имеют свойство навязывать свои подходы к решению задач, но это отдельная тема.

    Важно понимать, что паттерны проектирования - это просто хорошие идеи по поводу того, как организовать большой объем кода в той или иной ситуации. Это не "изучи тайное знание, запомни, и делай так всегда", не "используй паттерны, потому что великие их используют", это скорее "если не уверен как организовать код, возьми готовую идею, она вроде работает". Если вы будете просто решать задачи, то через N лет практики вы сами их все "изобретете", только не будете знать, что у них есть названия. Эффективно будет организовать себе заметку о том, какие из этих идей для чего примерно применяют, а потом, в процессе работы, в нее подглядывать, если встал вопрос "как организовать этот код".
    Ответ написан
    7 комментариев
  • Где научиться алгоритмам?

    Почитай книгу «Грокаем алгоритмы. Иллюстрированное пособие для
    программистов и любопытствующих». В нем примеры приводятся на
    Python и объясняются приведенные Вами термины.

    Количество алгоритмов огромно, большинство берет начало из разделов
    прикладной математики. Можно начать с сортировок, а дальше изучить
    остальные базовые.

    Касательно Python, если не приходилось изучать/писать программы с
    использованием стандартной библиотеки collections, то советую
    посмотреть внимательно. Есть реализация множества алгоритмов,
    которые необходимы в жизни при работе. Избавит Вас от повторного
    написания этих алгоритмов.
    Ответ написан
    Комментировать
  • Что почитать по работе JavaScript "под капотом"?

    MalkovVladimir73
    @MalkovVladimir73
    Fullstack (node + vue.js)
    Сам столкнулся с подобной проблемой, крайне советую You dont know js.
    Ответ написан
    Комментировать
  • Что почитать по работе JavaScript "под капотом"?

    polarlord
    @polarlord
    Ответ написан
    Комментировать
  • Что интересного есть в вашем стандартном шаблоне?

    bukinion
    @bukinion
    Начал бы с того, что подобные сниппеты идеально хранить, шарить и даже командно работать в Gist (от GitHub), у Gist, кстати есть приложение на Хром (работает и оффлайново, что плюс), он легко встраивается в Sublime, и даже есть в Web Storm. Воркфло изрядно ускоряется с этим.

    подсветка полей... в приведенных примерах для полноты не хватает select, кто-то забывает button)) Главное, что бы при переписывании нативного outline для :focus, для него находилась замена. Прежде всего потому что будет страдать accessibility.

    более полный перенос слов:
    @mixin word-wrap() {
          -ms-word-break: break-all;
          word-break: break-all;
          word-break:     break-word;
          -webkit-hyphens: auto;
          -moz-hyphens:    auto;
          hyphens:         auto;
    }


    последнее не просто ломает слова, в случае неумещающихся, а именно натуральный, браузером, перенос слов, необходимо только:

    <html lang="ru"></html>

    Добавить язык.

    Или наоборот в случае когда на необходима только одна строчка текста:

    .truncate {
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }


    Вообще типографику люблю, поэтому есть и такое еще:

    .like-inline:after {
    	content: '\A';
    	white-space: pre;
    }


    Это на случай, если нам надо сделать перенос строки после каждого инлайнового элемента. Типовой пример, есть у нас список определений, а мы хотим после каждого, определения, делать разрыв, т.е. термин, что бы был с новой строки.

    dl
         dt Артикул
         dd 1729110 
         dt Рост
         dd 164


    Или нужно ряд ссылок оформить как список.

    Класс для инлайн-блоков (что-то их недоиспользуют, а они намного круче float):

    .ib {
         display: inline-block;
         vertical-align: top;
         zoom: 1;
         *display: inline;
    }
    Ответ написан
    Комментировать
  • Что это за черная магия?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    Давным давно (года 2-3 назад) заварилась тема рисования с помощью CSS. Я тогда даже небольшую заметку на хабр писал по этому поводу. В те времена мы делали простые картинки вроде таких:

    Это было интересно и познавательно. С одной стороны это челлендж, с другой - способ самообразования. На тот момент картинки были не очень сложными для понимания и тема людям понравилась. Время шло, народ постепенно изучал основы CSS (правда как всегда не у нас, у нас это дело в основном критиковали со словами "фигней маятесь, зачем это нужно" или "ну я же фронтенд-сеньер-реакт-помидор-разработчик, зачем мне нужно знать CSS"), но так или иначе картинки становились все более интересными, появлялись новые квесты и на данный момент можно сказать, что это своеобразный вид искусства с практически полезной составляющей. Понятное дело, что в продакшен такие картинки делать долго - проще взять SVG, но для обучения они хорошо подходят. Магии там нет.
    Ответ написан
    1 комментарий
  • Как сейчас организуют фронтэнд в симбиозе с Django?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Django
    Седой и строгий
    Прежде всего, не всегда нужен фронт с js-фреймворком. Часто вполне достаточно обычных страничек. Но если действительно нужен развитый фронт, то бэк перестаёт использоваться для рендеринга шаблонов и выступает как REST- или GraphQL-сервис. Из Django для этого даже специализированное и очень удобное решение выросло - Django REST Framework.
    Ответ написан
    1 комментарий
  • Есть качественный контент у блогера?

    Vlad_IT
    @Vlad_IT
    Front-end разработчик
    В русскоязычном ютубе, могу посоветовать Юрия Артюха https://www.youtube.com/channel/UCDo7RTzizoOdPjY8A... там в основном темы анимации webgl, но есть пару стримов по верстке.
    А так, полезнее читать исходники, и самому дотюкивать, почему автор сделал именно так.
    Ответ написан
    Комментировать
  • Как выполнять функцию python каждый день в определенное время?

    Запустите schedule в отдельном потоке (thread), процессе (multiprocessing) или асинхронно (asincio).

    Или реализовать отправку при передаче особого параметра при запуске бота и запускать по крону. Типа
    python mybot.py --motd
    Ответ написан
    Комментировать