Задать вопрос
  • Чем открывать файлы .spa?

    15432
    @15432
    Системный программист ^_^
    Погуглил. Жесть. Авторы курсов жмут видео особой программой, затем специальным кейгеном генерят пароли для этого архива каждому из пользователей. И пользователь "распаковывает" видео через SpArcManager, который не только распаковывает, а ещё и добавляет уникальную метку в видео. И если кто выложит потом это видео в интернет, будет видно, кто именно "слил", по уникальной метке, по выданному паролю.

    spoiler
    Skladchik Defender — удар по сливаторам!
    Высокоскоростное нанесение меток на mp4 и pdf

    Уважаемые авторы и организаторы складчин!
    Представляю вашему вниманию авторский программный продукт, предназначенный для быстрого нанесения меток, устойчивых к пересжатию.
    Идея софта заключается в создании единого многопарольного архива на стороне организатора и его распаковки с индивидуальной меткой в зависимости от введённого пароля.
    Не является подобием инфопротектора с его знакомыми ограничениями. Не имеет аналогов внутри и за пределами клуба.

    Решение состоит из двух приложений: одноимённой программы
    Skladchik Defender для упаковки инфопродукта (для организаторов) и
    SpArcManager для распаковки инфопродукта (для складчиков).

    Чем примечательно ПО:

    Качество и высокая скорость
    Видео не подвергается полному транскодированию, сохраняя исходное качество, из чего вытекает высокая скорость разметки.
    Удобство
    Экономия на платных облаках: в независимости от числа складчиков создаётся всего один архив, сопоставимый с размером защищаемых файлов. Имеется функция разбивки архива на тома.
    Предпросмотр контента с настройкой параметров меток: размер шрифта, цвет и прозрачность текста и контура с автосохранением параметров. Настраиваемые рекламные метки клуба Skladchik.com. Есть режим ручной настройки каждой метки.
    Автоматическая заливка на облако.
    Указатели меченых кадров для быстрой идентификации пользователя.
    Автоматизированный парсинг id складчиков и генерация индивидуальных паролей с именными хайдами.
    Складчик после распаковки архива получает видео в стандартном видеоформате, которое он может просматривать на популярных плеерах, в том числе мобильных устройствах. Без привязки к железу и прочих ограничений.
    Надёжность и безопасность
    Приложения не требуют подключения к интернету.
    Skladchik Defender ограничен от использования за пределами клуба skladchik.com.
    Все меченые файлы шифруются.
    Метки строго привязаны к индивидуальному паролю и не зависят от изменений в списках складчиков.
    Можно достичь невидимости меток, устойчивых к перекодированию в различные форматы.
    Почему Skladchik Defender выгоден для всех?
    Уменьшается число рескладчин на сторонних ресурсах = пользователи возвращаются в наш клуб.
    На этапе "Открыто" ускоряется наполняемость ваших складчин = уменьшается стоимость инфопродукта.
    Увеличивается время активной записи в складчины на этапе "Доступно".
    В случае слива реклама клуба способствует притоку новых пользователей.
    Видеодемонстрация:

    Поддержка форматов для разметки:
    – Форматы: mp4 (H.264 + AAC) и pdf

    Поддерживаемые ОС:
    Skladchik Defender:
    – Windows 7 – 10
    SpArcManager:
    – Windows XP, Vista, 7, 8, 8.1, 10
    – Linux Ubuntu 16.04 и выше
    – Mac OS 10.10 и выше
    – Android 5.0 и выше
    Отзывы и результаты
    Более года ПО тестировалось на реальных пользователях, улучшаясь от версии к версии.
    За это время организаторами было защищено почти 1000 складчин на 2,6 Тб контента с более 5700 часов видео!
    Вычислены десятки сливаторов!

    Отзывы организаторов

    В наборе:
    Программный продукт.
    Подробная pdf-инструкция.
    Доступ к клубному боту для мгновенного получения готовой инструкции для складчиков.
    Тех. поддержка на всех этапах использования ПО.
    Периодические акции и обновления ПО.

    *Подписка на срок, в течение которого можно получить список паролей на защищённую складчину.
    Для новых организаторов отсчёт оплаченной подписки начинается после первой защищённой складчины.
    Количество защищаемых складчин в период действия подписки неограниченно.

    Ещё большая жесть, даже не авторы курсов, а просто народ толпой скидывается, покупают где-то курс и смотрят потом. А утилита нужна, чтобы этот купленный курс потом не выкладывали на ресурсы
    Ответ написан
    5 комментариев
  • Предпринимательский подход к разработке и программированию - как развивать, что именно прокачивать?

    gobananas
    @gobananas
    finishhim.ru
    Программист - узконаправленный специалист который выполняет только 1 задачу. Ну пару смежных (сисадминистрирование, вёрстка).

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

    слепая печать

    На кой этот навык предпринимателю? Вы что машинисткой работать собрались?

    навыки решения типовых задач

    Предпринимателю нужен навык решения НЕ типовых задач ))

    доведенные до автоматизма

    Это тоже скилл исполнителя

    по настройке сервера, веб-дизайну, типографике итд.

    У вас бизнес в сфере дизайна? Если нет то дизайн и типографика не ключевые процесс - выбрасываем

    если коммерческий проект успешно работает на Yii 1, то его без веских причин никто не будет переписывать на Yii 2

    Проблема с поддержкой, сейчас найти человека который согласится работать на Yii1 уже сложнее, хотя у меня есть знакомые, которые не перешли на 2, далее кадровый дефицит заставит вас или перейти или работать с теми кто согласится
    Ответ написан
    5 комментариев
  • Как спроектировать и сконструировать сложное изделие?

    x67
    @x67
    scetchup, kompas, nanocad, autocad, solidworks, catia - САПР систем много и все они представляют разные возможности. Выбирайте в зависимости от того, что делаете и как делаете. Например catia(не только она) используется в авиастроении и позволяет смоделировать и построить программы ЧПУ для различных технологических процессов (фрезерование, штамповка, точение, литье, гибка и др.) scetchup этого не может, зато невероятно прост в освоении.
    Начать наверное стоит с эскиза в пеинте или на бумаге, определиться с материалами и возможными методами их обработки, далее выбрать систему, солид воркс наверное - золотая середина, в ней получить модель, отсечь все лишнее, что-то переработать - например, если вам нужен пластик сложной формы, а вы понимаете что литье финансово не потянете, или изменить модель или выбрать другие технологии (3д принтер, фрезерование). На этом же этапе вы узнаете и рассчитываете все затраты и их порядок (надо заказать подшипник из китая - заказываем заранее, ибо идти долго будет, а после токарки деталь лучше бы сразу проверить; выбрать несколько возможных исполнителей для каждого из процессов)
    Проектирование закончено - приступаем к выполнению - тут уж сами гуглите, что где и когда. Если вкртаце, то в Москве есть несколько столярных мастерских, куда можно придти и за денюжку или заказать деталь или сделать ее самому. Найти токарники, станки с чпу и проч. для обработки металла тоже труда не составит, хотя скорее всего за станок без подготовки вас никто не пустит, так что выполнение тут скорее надо делегировать мастерам. Литье пластика - дорого, долго и нерентабельно для мелкосерийного производства. А вот изготовление пластиковых деталей и изделий с помощью аддитивных технологий - посильная задача. На 3д принтер сейчас даже в подъезде споткнуться можно, так что найдете сами. Заказ деталей из стекла - тоже не проблема, можно найти и тех кто вырежет и тех кто выдует. Кожа, ткани - соответствующие ателье. Есть также биржи исполнителей, типа этой. В общем определитесь с проектом, если финансы есть, реализовать его - не проблема. А стоить он будет гораздо дороже типовых. Дерзайте) Ну и держите нас в курсе.
    Ответ написан
    2 комментария
  • Как всё успевать и не быть роботом?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    Есть такая поговорка "Скажи мне кто твои друзья и я скажу кто ты". Если хотите чему-то научиться и координально поменять свою жизнь и самого себя, то настоятельно советую поместить себя именно в то окружение, где по большей части те люди на которых Вы бы хоть немного но хотели быть похожими и у которых можно многому научиться.

    Это мой собственный опыт.

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

    Все это дало мне то, что неявным образом у меня сформировалось мышление, привычки, действия, ритуалы и др. таким образом, что аж диву даешься "И это я?". К примеру от математиков прям железобетонно вбилось в голову фраза "Необходимо и достаточно", т.е. есть задача значит надо сделать настолько мало насколько это возможно, но при этом чтобы задача была решена!

    Рекомендую Вам прежде всего надо спросить себя "А что именно хочу?" и "Какие у меня мечты?". Ежедневно спрашивать себя "Какие задачи должен сегодня сделать чтобы хоть на чуть чуть приблизиться к моим мечтам?".
    Ответ написан
    6 комментариев
  • Как всё успевать и не быть роботом?

    viktorvsk
    @viktorvsk
    - Ничего не нужно, никто никому ничего не должен
    - Работать нужно не минимум 8 часов, а то и больше, - а эффективнее (комплексное понятие)
    - Жить нужно комфортно (так же комплексное понятие, для разных людей включает разные аспекты: кому зарядка с утра, спорт, здоровое питание, кому - красноглазенье по ночам, утро в обед, пиво перед компом...)
    - Саморазвитие - это хорошо, но это так же строго индивидуально - кому книги, кому видео уроки, кому фильмы, кому хобби - если вы связываете вашу работу с интеллектуальной деятельностью, это значит, что вам нужно развивать интеллектуальные способности, а не способности в вашей предметной области. Книжки читать, как не крути - тоже сугубо индивидуально по эффективности. Разве что художественную литературу, на мой взгляд, не помешает читать людям всех профессий.
    - Планы - это неотъемлемая часть жизни. Настолько же неотъемлемая, как и неспособность их соблюдать. Нет, вы не зря составили все эти списки со спортом, здоровой едой, сном и работой по 8 часов и т.д.. И да, у вас не получится соблюсти все пункты. Эти 2 факта нужно принять, осознать и не сдаваться.
    Ответ написан
    24 комментария
  • Как скачать чат вконтакте?

    @orgkhnargh
    медленно пишу на django
    Создаем standalone-приложение тут: vk.com/editapp?act=create
    Затем в настройках приложения смотрим ID и защитный ключ и вставляем их в скрипт ниже.
    # coding: utf-8
    from __future__ import print_function
    from __future__ import unicode_literals
    
    import os
    import sys
    
    from oauthlib.oauth2.rfc6749.clients import WebApplicationClient
    from requests_oauthlib import OAuth2Session
    
    # VK не присылает scope после получения токена. Чтобы oauthlib не
    # выбрасывала исключение, нужно поставить этот флажок:
    os.environ.setdefault('OAUTHLIB_RELAX_TOKEN_SCOPE', '1')
    
    if sys.version_info.major < 3:
        # PY2
        input = raw_input
    
    # Эти данные Вы должны получить после создания приложения
    client_id = 'сюда подставляем ID'
    client_secret = 'а сюда секретный ключ'
    
    authorization_base_url = 'https://oauth.vk.com/authorize'
    token_url = 'https://oauth.vk.com/access_token'
    
    api_client = WebApplicationClient(
        client_id=client_id,
        default_token_placement='query'
    )
    vk = OAuth2Session(scope='messages', client=api_client)
    
    # получаем адрес для авторизации приложения
    authorization_url, state = vk.authorization_url(authorization_base_url)
    print('Пройдите по указанному адресу и авторизуйтесь:', authorization_url)
    
    auth_resp = input('Введите адрес, на который вы были перенаправлены после '
                      'прохождения авторизации:')
    auth_resp = auth_resp.replace('#', '?')  # иначе код сам не найдется
    
    vk.fetch_token(token_url, client_secret=client_secret,
                   authorization_response=auth_resp)
    
    # так можно получит список диалогов
    response = vk.get('https://api.vk.com/method/messages.getDialogs', 
                      params={'v': '5.28'}).json()
    print(response.json())

    Скрипт нужно дописать, чтобы забрать сообщения с конкретного диалога. Взгляните на метод messages.getHistory.
    Список всех методов API Вконтакте для работы с сообщениями лежит тут: vk.com/dev/messages
    Ответ написан
    Комментировать
  • Как побороть свою лень?

    Bandicoot
    @Bandicoot
    Вась-программист
    Я просто сразу начинаю писать код, не думая о результате. Настраиваю себя на рабочий процесс. Потом, когда уже пойдет-поедет и я войду в состояние "потока", начинаю работать с умом. Просматриваю, что уже написал. При необходимости переписываю и решаю, что делать дальше.
    Сначала нужно вообще что-то сделать, затем сделать это правильно и потом сделать как следует.
    Ответ написан
    1 комментарий
  • Продажа собственного PHP кода: как правильно делать?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Код никто никогда не продает.
    Продают всегда сервис.

    Программисты твой код покупать не будут - у них свой есть, и получше.
    Конечным клиентам код не нужен. Им нужен сайт, или сервис, или услуга. А что там внутри - твой гениальный код или деревянные человечки - его не интересует. Главное, чтобы работало. А работать оно будет только у программиста.

    Вопрос "будут ли покупать" (АКА "есть ли потенциальные клиенты") ты должен был задать себе ДО того, как начинать садиться писать.

    В общем, чем быстрее из твоей головы выбьется дурная мысль о том, чтобы продавать код, тем больше ты сэкономишь себе времени.
    Ответ написан
    10 комментариев
  • Как лучше хранить данные для последующей обработки?

    @Gabriel_vs
    I'm a Scientist in Data Analysis / programmar.
    Хранение данных в BigData порой граничит с искусством. В целом, тут как и везде -- всё зависит от задачи, которая ставится. В любом случае, работа/анализ с текстовыми данными неминуемо приведет вас к Инвертируемому индексу (причем к нескольким).

    Если пока вкратце, то вам надо проиндексировать содержимое "сырых данных" (файлы, веб, БД, etc). Пока проиндексировать как есть, без изменения самих данных. Если это реально BigData, то надо подумать о распределенном индексе, понимать стоит ли (а если да, то как) реплицировать индекс (но это уже вопрос производительности).

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

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

    Если бы был пример конкретной задачи, то я бы по конкретнее написал о инструментах, подходах, методах.

    Немого ссылок:
    1. По информационному поиску / анализу данных читайте вот это:
    Введение в информационный поиск, Маннинг
    Обработка неструктурированных текстов. Поиск, орга...
    2. Импорт / фреймворки / библиотеки индексирования и поиска:
    Apach Solr
    Apach Tika
    3. Инвертированный индекс

    PS: всё же хотелось бы узнать о конкретной задачи, тогда было бы больше конкретики.

    UPD: в ряде случаев в BigData надо манипулировать графовой структурой данных. Соответственно, посмотрите в сторону соответствующих СУБД, например neo4j. Главное требования к СУБД в BigData -- минимализм функционала, иначе на больших данных работать будет всё крайне медленно.
    Ответ написан
    1 комментарий
  • Сервис - конструктор по взаимодействию с другими сервисами?

    cissav
    @cissav
    Руководитель Omnidesk.ru
    Случайно не IFTTT (if this then that)?
    Ответ написан
    Комментировать
  • Сервис - конструктор по взаимодействию с другими сервисами?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Ответ написан
    Комментировать
  • Как вы используете node.js в продакшене?

    MarcusAurelius
    @MarcusAurelius Куратор тега Node.js
    автор Impress Application Server для Node.js
    Использую ноду и только ноду уже 2 года для разработки реальных проектов и всю команду нашу тоже подсадил. Проблемы в ноде три: модульный плюрализм (который все хвалят, но это ад), обработка ошибок (не всегда в распечатке стека удается получить файл, строчку и сообщение), и отсутствие централизованной архитектуры приложений. Я сторонник монолитных централизованных систем и тоталитаризма вообще, поэтому мы сделали свой сервер приложений: https://www.npmjs.org/package/impress
    Ответ написан
    Комментировать
  • Как реализовать цепочку функций?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    У вас хэш-мэпа с функциями, а не объект. То есть вам нужно из функции возвращать экземпляр вашего хэш мэпа или следить за тем что бы контекст вызова сохранялся
    Но лучше так:
    http://learn.javascript.ru/object-methods#функция-...
    function Human(x, y) {
        this.x = x;
        this.y = y;
    }
    Human.prototype = {
        goUp: function () {
            this.y++;
            return this;
        }
        goDown: function () {
            this.y--;
            return this;
        }
        // ...
    }


    Так же можно отDRY-ить код:
    function coordsChangerFactory(prop, direction) {
        
        return function () {
            // тут можно добавить валидацию, мол что бы не вылазить за пределы поля
            this[prop] += direction;
            return this;
        }
    }
    
    function Human(x, y) {
        this.x = x;
        this.y = y;
    }
    Human.prototype = {
        goUp: coordsChangerFactory('y', +1),
        goDown: coordsChangerFactory('y', -1),
        goLeft: coordsChangerFactory('x', -1),
        goRight: coordsChangerFactory('x', +1)
    }
    
    var man = new Human(4, 4);
    man.goDown().goRight();
    console.log('Coords is %dx%d', man.x, man.y); // Coords is 5x3
    Ответ написан
    8 комментариев
  • Как вы используете node.js в продакшене?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Что по вашему есть "монолитный фреймворк"? Типа куча кода без особых зависимостей? В свое время в php это было нормой ибо небыло нормального менеджера пакетов, сейчас там есть composer и все серьезные и претендующие на эту роль фреймворки стараются по возможности не изобретать велосипеды. Хотя эта культура разработки еще только проникает в умы PHP-щников. У Python или Ruby разработчиков с использованием модулей все хорошго. В JS есть свои проблемы на этот счет. То какой-то разработчик забьет на поддержку своего модуля, то не особо парятся по поводу BC... Словом, жизнь боль.

    Я использовал node.js только в качестве демона (обработчики очередей на node.js) и как push-сервер (по сути тот же демон обработчик очередей, очередь сообщений связывает ноду и основное приложение). Делать на нем что-то жирное и большое считаю дурной затеей. Маленькие web-сервисы еще можно. но есть свои нюансы при деплое.
    Ответ написан
    Комментировать
  • Почему нет аналога Ruby ActiveRecord на Go?

    @t0pep0
    Потому, что во первых не надо писать на Go как на Ruby\python.
    Во вторых подобная ORM будет использовать в слишком многих местах рефлексию, а это не есть гуд для компилируемого языка. ИМХО: рефлексия это как GOTO, использовать только в случае крайней необходимости
    Что касается ORM для Go - рекомендую посмотреть в сторону gorm https://github.com/jinzhu/gorm
    Ответ написан
    Комментировать
  • Есть ли хорошие книги на русском для изучения электроники\роботехники?

    Keroro
    @Keroro
    Embedded engineer
    Из не очень старого "Устройства управления роботами. Схемотехника и программирование, Предко М., - 2004" (его кстати советовали в одной из вышеприведенных ссылок). Книга доардуиновой эпохи правда, поэтому там все на PIC-контроллерах, но весьма толковая (imho).
    По электронике Платт Ч. "Электроника для начинающих" 2014 года вроде неплоха, ну и что-нибудь из Ардуины, типа Улли Соммер - "Программирование микроконтроллерных плат Arduino Freeduino" - 2012.
    Ответ написан
    3 комментария
  • Есть ли хорошие книги на русском для изучения электроники\роботехники?

    @Ramirag
    Я человек.
    Чарльз Платт Электроника для начинающих. На сайте амперки можно купить набор деталей для первых глав.
    Дальше могу тебе посоветовать три сайта. РАЗ и ДВА, ну и конечно же хабр. Еще у меня есть такие ссылки, но ими не пользовался, вроде хорошие, но не успел еще РАЗ, ДВА.
    Как освоишь основы электротехники, начинай учить микроконтроллеры. Выбирай либо MSP440, либо ARM. Первые очень мало потребляют тока и куча литературы от разработчиков на русском языке. Вторые очень мощные, сильно похожи на ARM процы у нас в телефонах и планшетах. Но у ARM будут проблемы с литрой на русском языке, она есть конечно, но оригинальную тех документацию по любому потребуется читать.
    Так-же ты однозначно встретишь микроконтроллеры AVR. У них плюс в массе инфы на русском языке и тупости самих МК из-за чего их легко освоить. Но по моему мнению они безвозвратно устарели и их изучать, это пустая трата времени, лучше первые два.
    Ответ написан
    Комментировать
  • Почему переменная 'mongoose' из файла 'script.js' при запуске содержит модель из файла 'schema.js'?

    @snackovich
    потому что require "исполняет модуль" единожды,
    при повторном подключении он возвращает уже загруженный ранее модуль
    mongose видимо имеет внутреннюю регистрацию моделей.
    Ответ написан
    Комментировать