• Как склеить два файла MP4 через FFmpeg?

    @bogdik
    Мой вариант аналог описанный выше только с графическим интерфейсом, может кому понадобится

    mp4joiner

    5ab654372ecde304167277.png
    Ответ написан
    1 комментарий
  • Какой алгоритм подойдет для описания полета насекомого?

    @gigi1988 Автор вопроса
    Вспомнил, что забыл отписаться по решению данной задачи.
    Решил в SWIFT ее следующим образом. Строим N-ое количество точек, строим сплайн через эти точки. Перемещаем объект с помощью SKAction.follow, она позволяет задавать ориентацию по направлению движения, по завершению строим новые точки. Более плавное перемещение можно достичь генерируя точки без резких отклонений от текущего направления движения, чтобы объект не менял резко направления движения в противоположную сторону. Всем спасибо за помощь
    func Yellow()
        {
            var object = self.childNode(withName: "//yellow") as! SKSpriteNode
            yellowMove(object: object)
        }
    
        func yellowMove(object obj: SKSpriteNode)
        {
             var chain = [CGPoint]()
            chain.append(CGPoint(x:obj.position.x,y:obj.position.y))
           // генерируем 6 случайных точек.
            for var i in (1..<6) {
                chain.append(CGPoint(x:getRndX(),y:getRndY()))
            }
             // Строим сплайн через эти точки
            let ground = SKShapeNode(splinePoints: &chain,count: chain.count)
            let anim=SKAction.follow(ground.path!, asOffset: false, orientToPath: true, duration: 10)
            // по завершении перемещения, опять запускаем функцию
            obj.run(anim,completion:{
                self.yellowMove(object: obj)
            })
        }
    Ответ написан
    Комментировать
  • Как сделать плавное появление границы на css?

    webirus
    @webirus
    Тыжверстальщик! Наверстай мне упущенное...
    1 комментарий
  • Как лучше создать пустой файл в Python 3?

    @xandox
    я бы предложил такой вариант
    open(..).close()
    и файл закрываться, и в одну строчку и без грамозких конструкций.
    что касается ошибок - то все варианты в этом плане одинаковы.
    Ответ написан
    2 комментария
  • Генетический алгоритм. Как делается жизнь?

    @SolidMinus
    генетические алгоритмы - это не алгоритмы обучения, это алгоритмы оптимизации. Наподобии градиентного спуска, адама и прочих. И, к слову, один из самых неэффективных. Он просто очень красиво показывает эволюцию и не более. Хотите заниматься машинным обучением - почитайте про стохастический градиентный спуск, градиентный бустинг, рандомные леса, и SVM-машины. Ну и про нейронки почитайте. но только после всего этого
    Ответ написан
    2 комментария
  • Какой алгоритм подойдет для описания полета насекомого?

    sergiks
    @sergiks Куратор тега Алгоритмы
    ♬♬
    Можно сделать цепочку преследования: к случайной точке тянется одна, к ней другая, и т.д., а последняя – муха.

    Очередную точку ставить на плоскости случайно, в любом месте внутри допустимой области. Эта точка – цель, к которой стремится следующая, невидимая точка: каждый следующий кадр её координаты изменяются на k * векторИзТекущегоПоложения-в-Цель:
    x = x + k * (xTarget - x);
    y = y + k * (yTarget - y);

    Так «преследователь» замедляется, по мере приближения к цели, никогда её не достигая.

    Эта невидимая точка – не одна. К ней, как к цели, стремится следующая. К той ещё одна. Наконец, сама муха по этому закону стремится к хвосту этой цепи - очередной точке.

    Чем больше звеньев в такой цепи, тем плавнее получается кривая. При приближении мухи к цели ближе, чем на D, генерится следующая случайная цель.

    Сделал рабочий пример.

    Можно поменять алгоритм и сделать, скажем, линейную скорость постоянной. Или случайно варьировать параметры k и D – от этого поменяется скорость и траектория от плавной ближе к ломаной.
    Ответ написан
    Комментировать
  • Какие расширения Google Chrome вы используете?

    Mansiper
    @Mansiper
    Директор КБ. Разработчик АСУ ТП.
    Auto-translate — переводит выделенный текст с помощью гуглопереводчика. Поможет тем, кому нужен мгновенный перевод.
    chromeTouch — реализует плавную прокрутку страницы мышью а-ля iPhone. Сделает работу в браузере приятнее.
    Drag and Go — переход по ссылкам или поиск по тексту перетаскиванием. Открывает по-разному в зависимости от угла, в который направляете ссылку или выделенный текст. Сможет ускорить и упростить работу в браузере.
    iReader — удобная и очень приятная читалка статей. Отсекает всё лишнее, позволяя целиком погрузиться в интересующую статью. Писали о расширении на Хабре.
    Minimize Chrome to tray — название говорит за себя. Позволяет скрыть браузер в трэй (для Windows). Писали о расширении на Хабре.
    Гладкие жесты — реализует «гладкие» жесты мыши. Очень тонко настраивается. По-моему, лучшая реализация жестов.
    Персонализированный Веб — позволяет редактировать любую веб страницу на лету! В частности, очень эффективен для блокировки рекламы (прим.: текст взят из описания). Также о расширении уже писалось на Хабре.
    Nothing — самое лучшее расширение из когда-либо созданных, потому что оно идеально во всех отношениях! :) Также появлялось на Хабре.
    Ответ написан
    Комментировать
  • Сколько бpyтфopcить такой пароль?

    @DaNHell
    Change the world
    Да замечательная штука как плановая смена паролей взята не из воздуха, и не по чей то хотелки.
    Рассчитывается из параметров: алгоритм хеширования, минимальные требования к паролю и ~кол-во юзеров.
    В булке например md5(md5($salt).md5($pass)) скорость брута через cuda среднего класса - 152.0 MH/s (150 миллиона хешей в секунду)!
    Ну это конечно прогресс, 21 век.

    Довольно старая таблица, но все-же
    8tvdxh2.png

    Но это мы говорим про полный перебор.
    Но атаки по маске/правилам/словарям/гибридные и конечно же по радужным таблицам делают свое дело на ура.
    Грубо говоря имея дамп 100к юзеров login : (md5), в течении 3-5 минут получаем результат в более чем 50% подобранных паролей.

    Да и также стоит отметить что увеличивать длину пароля конечно же стоит, увеличив на 2 символа (с 10 до 12) грубо говоря усложняем задачу подбора в 300-500 раз.
    НО: Учитывая что это не просто добавление хоть еще 6-8 букв (словосочетаний) словарных/алфавитных.
    Т.е. ItsGoodPassword даже увеличив до ItsReallyVeryGoodPassword пароль, противостоять сможет всего пару секунд гибридной атаке.

    На 2008 год брут через GPU (UPPER CASE + lower case + digs + symbols)
    • all 6 character password MD5s 3 seconds
    • all 7 character password MD5s 4 minutes
    • all 8 character password MD5s 4 hours
    • all 9 character password MD5s 10 days
    • all 10 character password MD5s ~625 days
    • all 11 character password MD5s fuggedaboudit

    Но на получение 12 символьного пароля ушло далеко не несколько лет, а всего 75 дней.

    P.S. От себя добавлю отличный совет: Если есть возможность - используйте нетрадиционные раскладки языка, спец. символы (которые не так уж и сложно прописывать - FAQ По винде поможет).
    Ну а если еще и закреплять это все стойкостью пароля.. То вы в защите от криптографических атак... но далеко не в абсолютной безопасности...
    Ответ написан
    1 комментарий
  • Порядок регистрации стартапа.?

    @rainwall
    Думаю стоит поступить так:
    1) Регистрируете офшор.
    2) На офшор регистрируете товарный знак.
    3) Регистрируете ООО в России.
    4) Заключаете лицензионный договор на использование товарного знака ООО
    5) Делаете соответствующие лицензионные отчисления за использование товарного знака офшору.
    Ответ написан
    1 комментарий
  • Как в PHPStorm ставить TODO от своего имени?

    ildarkhasanshin
    @ildarkhasanshin
    developer
    Комментировать
  • Как отследить трафик?

    ifaustrue
    @ifaustrue
    Пишу интересное в теллеграмм канале @cooladmin
    стать для всех участников обмена трафиком шлюзом по умолчанию, начать пропускать трафик через свой ПК, там поднять прозрачный прокси или какой либо сниффер.

    По пойманым пакетам беспроводного обмена вы ничего не узнаете (ну точнее их можно расшифровать, но если есть контроль над роутером - то это много проще).

    Если совсем на "пальцах" то:
    1. Отключили на роутере DHCP, отключили, если была, изоляцию клиентов.
    2. Назначили на сетевой карте два адреса, один из новой сети, другой из той в которой есть ваш вайфай роутер.
    3. Подняли DHCP с выдачей новых адресов, где шлюзом будет ваш пк, добавили маршрут по-умолчанию у себя указывающий на адрес роутера.
    4. Настроили NAT, настроили Proxy в прозрачном режиме и\или снифер.

    Большая часть ваших действий является незаконной. Думайте о последствиях.
    Ответ написан
    Комментировать
  • Как узнать, какие сайты смотрит пользователь сети, подключённый к интернету через тот же роутер, что и вы?

    mace-ftl
    @mace-ftl
    1) ptraffer на убунту + смена гейта в DHCP
    2) ptraffer в режиме онлайн + ARP-спуфинг (скажем через Cain and Abel)
    Ответ написан
    Комментировать
  • Что такое Virtual DOM?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Ну вот есть DOM. Он медленный, и дергать его просто так не стоит. А есть виртуальный DOM, что-то типа прослойки между вашим кодом и реальным DOM. Вы можете дергать виртуальный DOM сколько вам душе угодно, а прослойка эта соберет всю инфу о том как вы чего делали, и попробует оптимизировать взаимодействие с реальным DOM что бы вышло как можно меньше действий.

    Пример - задача простая, у вас есть таблица и нужно постоянно обновлять ячейки новым значением. Значение приходят из апишки раз в пару десятков милисекунд (какая-то реалтайм статистика к примеру). Значения эти - просто массив данных.

    Решение в лоб - каждый раз когда приходят данные, дропать старую таблицу, проходить циклом по массиву и формировать новую. Это куча операций с DOM. У вас каждые n милисекунд будет полностью перестраиваться вся эта штука, дропаться и создаваться новые элементы и все это будет ужасно долго пересчитываться и перерисовываться.

    А теперь добавим между всем этим виртуальную апишку, которая запоминает что она там в прошлый раз создала и что надо в этот раз создать. Вы все так же влоб проходите циклом по массиву и просите виртуальный дом построить новую апишку, а виртуальный дом будет стараться переиспользовать то что у него уже есть, ну и все в таком духе. За счет этого получается нефиговый прирост производительности (но есть потери на работу самого виртуального DOM, зато можно фигачить как хочешь).

    Если же прослойку эту сделать со своим интерфейсом, можно получить слой абстракции для работы с UI. Именно это предлагает тот же React. Слой абстракции над UI. Вы можете работать с реактом, но UI будет отрисовываться не через DOM а скажем... это может быть нативный интерфейс мобильной платформы (гуглить native-react). Ну и т.д.
    Ответ написан
    Комментировать
  • Планшет теряет связь с wifi роутером

    @geovas333
    У меня роутер Netgear WNDR4000, одно время не дружил с телефоном (правда на WP) HTC HD7 со стандартной прошивкой. Телефон периодически не видел WiFi (вечерами). Я сделал две вещи:
    1. Принудительно установил WiFi 802.11g.
    2. Принудительно установил канал WiFi (11-й в моем случае).
    И все заработало! В итоге сменил прошивку телефона на кастомную, WiFi теперь работает без всяких танцев с бубном. Предполагаю, что дело было в различии регионов (телефон из Азии, а роутер, официально для России).
    Ответ написан
    Комментировать
  • Почему не запускается программа написанная на python?

    angru
    @angru
    Скорее всего у вас сборки питона и pyqt под разные архитектуры, по умолчанию на сайте питона скачивается x86 сборка, а pyqt у вас наверное x86-64.
    Ответ написан
    Комментировать