• Посоветуйте конвертер из DJVU в PDF

    IronNem
    @IronNem
    DJView
    Отлично конвертирует в PDF (Export as ...). При экспорте лучше включить все компрессии — файл будет меньше.
    Юзаю для конверта для заливки в Kindle.
    Ответ написан
    Комментировать
  • Протоколирование входа/выхода в систему в Active Directory

    amc
    @amc
    Не решайте административных проблем техническими средствами.
    Успешный логон в 8:01 и логоф в 17:59 не гарантирует сидения в одноклассниках весь день.
    Да и простенькая ип-камера с сервером видеозаписи в 3000-5000 рублей обойдётся (у нас Trendnet трудится на похожем назначении, софт в комплекте умеет писать архив).

    Ну а если уж хочется поизгаляться, то:
    1) на вход и выход из системы поставить скрипт (можно хоть echo %username% %computername% %time% %date% logged on >> \\servername\share\logon.txt )
    2) во время работы можно получить залогиненых пользователей на рабочих станциях, можно скриптом через WMI, например PowerShell'ом, можно воспользоваться www.softperfect.com/products/networkscanner/
    Ответ написан
    Комментировать
  • Как сделать два и более веб сайтов + бекенд в проекте node.js и запустить под разными доменами?

    AlexanderKot
    @AlexanderKot Автор вопроса
    Напишу свой вариант работающий. Не на 100% подробно и может даже это не супер красиво и правильно, как изначально мечталось, но я думаю нубам со слабым английским поможет понять, в каком направлении думать. В противном случае подобные советы можно найти на стековерфлоу.

    Решил сделать так: запускаю node процесс веб приложения + node процесс для его api (типа restful). (на 2 сайта будет 4 процесса и т.д.) Конечно в виде виндоус сервисов с помощью https://nssm.cc/.
    В IIS создаю сайт, задаю ему доменное имя, настаиваю 2 перенаправления на порты - 3004 для api и 3003 для веб приложения. Для этого в iis нужно поставить 2 приблуды:
    www.iis.net/downloads/microsoft/application-reques...
    www.iis.net/downloads/microsoft/url-rewrite
    Потом, чтобы настроить rewrite - выбрать сайт и нажать на иконку [Url rewrite], после [Add rule] и выбрать reverse proxy, указать путь типа http://localhost:3003 и ОК
    IIS спросит про включение ARR, сказать да. После чего можно в web.config закинуть такой текст, должно заработать.
    <configuration>
    <system.webServer>
    ...   
    <rewrite>
        <rules>
            <clear />
            <rule name="images">
                <match url="photos/.*" />
                <conditions logicalGrouping="MatchAll" trackAllCaptures="false" />
                <action type="None" />
            </rule>
            <rule name="api" stopProcessing="true">
                <match url="api\/.*" />
                <conditions logicalGrouping="MatchAll" trackAllCaptures="false" />
                <action type="Rewrite" url="http://localhost:3004/{R:0}" />
            </rule>
            <rule name="web" stopProcessing="true">
                <match url=".*" />
                <conditions logicalGrouping="MatchAll" trackAllCaptures="false" />
                <action type="Rewrite" url="http://localhost:3003/{R:0}" />
            </rule>
        </rules>
    </rewrite>

    Основной запор, почему то был с IIS. Не ехал мопед, хотя там вроде все просто, гуглилось плохо, да и хз что именно не работало.

    node процесс web приложения запускаете на порту 3003, в главном файле приложения прописан роутинг примерно такой
    app.use('/', express.static(__dirname));  // не уверен, что это нужно
    app.use('/js', express.static(__dirname + '/js')); // у меня express.js обрабатывает статику, мне показалось так проще, чем в iis настраивать, иначе на каждый запрос скрипта, стиля и т.д. iis будет пулять Index.html
    app.use('/libs', express.static(__dirname + '/libs'));
    app.use('/img', express.static(__dirname + '/img'));
    app.use('/css', express.static(__dirname + '/css'));
    app.use('/photos', express.static(config.photoPath)); // про фото не уверен, что именно работает - правило в iis или это
    //во всех остальных случайх возвращается index.html со всеми js файлами spa приложения
    app.all('/*', function (req, resp, next) {
        resp.sendfile('index.html', {root: __dirname});  //если при таком подходе, вам в ответ на какие-либо запросы лезет этот index.html, значит либо rewrite в iss не заработал, либо обработка статики в экспрессе с ошибкой сделана.
    });


    node процесс с приложением, которое является api запускаете на порту 3004
    В главном файле будет прописан роутинг на подобии:
    app.use('/api/category', yourCategoryHandler);
    Ответ написан
    Комментировать
  • Как создать правило на переадресацию писем в Microsoft Outlook через PowerShell?

    @azarij
    В меру опытный никто
    Set-Mailbox -Identity "John Woods" -DeliverToMailboxAndForward $false
    вроде должно сработать.
    Ответ написан
    4 комментария
  • Как учиться новому после рабочего дня?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    1. 9 часов. Это уже ошибка. КЗОТ писали не дурни. 8 часов достаточно для работы, если человек не чаи пьет
    2. Пересмотрите процесс работы. По приходу на работу сначала делать самые важные. Прошу прочесть внимательно: сначала важные, а только потом срочные и другие. Отличие важных от срочных в том, что одни, как правило, делаются разово и про них забываются, а другие хоть и не срочные, но они влияют стратегически.
    3. Уделяйте время на то, чтобы подумать над "светлым будущим", т.е. создать\актуализировать список страгеческих целей и задач
    4. Делайте утром зарядку. Растяжку, отжимания, приседания. Это влияет на энергетику в организме
    5. Делайте перерывы во время работы.
    6. Чаще пейте воду
    7. Займитесь спортом. На своей шкуре опробовал и четко знаю то, что до занятия плаванием делал меньше, чем сейчас
    8. Окружите себя теми, кто куда-то стремится. Это не значит что надо всех других послать в Южную Америку на оз. Нахой. Это значит, что надо чаще общаться с одним типом людей и меньше с другим
    9. Стремитесь работать на результат, а не подсчет "жопочасов". В дальнейшем ставьте работодателю на собеседовании вопрос "Вам нужны жопо-часы или результаты?". Старайтесь выявить жмотов. Если вы вдруг справились не за 5, а за 4 часа, а работодатель жмотится и боится выделить время на самообучение сотрудника, хотя эти же знания будут применены при решении рабочих задач, то уходите от такого работодателя!

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

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

    Старайтесь избегать рывко-образной работы. Все должно быть стабильно. Пусть даже небольшими кусками работы, но стабильно и бессбойно!
    Ответ написан
    6 комментариев
  • Как развиваться начинающему web-разработчику?

    @ZaurK
    Попытайтесь устроиться помощником, джуниор-разработчиком куда-нибудь, чтобы не вариться в собственном соку. Делайте то, что можете, пусть даже поначалу несложные вещи. Это и организует вас и самое главное - общение с более опытными разработчиками поможет подняться быстрее и по более правильному пути. А так, конечно, как написали выше, сейчас голым php никто не пишет, в основном на фреймворках все, хорошо, если один конкретный освоите.
    Ответ написан
    Комментировать
  • Какие есть интересные блоги современных JavaScript ниндзя?

    • www.nczonline.net
    • 2ality.com
    • ponyfoo.com
    • mathiasbynens.be
    • davidwalsh.name
    • rmurphey.com/archives
    • caolan.org
    • perfectionkills.com
    • www.bennadel.com
    • addyosmani.com/blog/
    • dmitrysoshnikov.com
    • yehudakatz.com
    • ncombo.wordpress.com
    Ответ написан
    3 комментария
  • Пособие по алгоритмам для самых начинающих?

    youlose
    @youlose
    Стивенс Род - Алгоритмы. Теория и практическое применение (Мировой компьютерный бестселлер) - 2016

    Хорошая книга на русском языке, написанная простым языком, примеры на паскалеподобном псевдоязыке.

    P.S. есть на rutracker.org
    Ответ написан
    Комментировать
  • Что, помимо основ JS,необходимо знать и понимать для изучения Node.JS?

    MarcusAurelius
    @MarcusAurelius Куратор тега Node.js
    автор Impress Application Server для Node.js
    Посмотрите план переподготовки с фронтенда на ноду: https://github.com/HowProgrammingWorks/Letters/blo...

    И экзаминационные вопросы по предмету "Архитектура ПО", который я читаю на примерах ноду:
    https://github.com/HowProgrammingWorks/Letters/tre...
    Ответ написан
    3 комментария
  • Пособие по алгоритмам для самых начинающих?

    dadster
    @dadster
    учить инглиш тут - https://t.me/langhacks
    очень круто объясняют тут, но надо английский знать
    https://www.khanacademy.org/computing/computer-sci...
    Ответ написан
    Комментировать
  • Пособие по алгоритмам для самых начинающих?

    @stunoff
    Томас Х. Кормен: Алгоритмы. Вводный курс.
    Д. М. Златопольский: Программирование. Типовые задачи, алгоритмы, методы 2012

    и просто сборник задач, вдруг пригодится для практики:
    Д. М. Златопольский: Сборник Задач по программированию
    Ответ написан
    1 комментарий
  • Как разрабатываются такие сайты?

    Ronnie_Gardocki
    @Ronnie_Gardocki
    Я у мамы фронтендщик.
    300 баксов за такое? Не смешите. Чтобы сделать все точь в точь как на гифке, с хорошей браузерной поддержкой, идеальной плавностью, и самое главное, ОТЛИЧНОЙ ПРОИЗВОДИТЕЛЬНОСТЬЮ, вам понадобится несколько десятков человеко-часов приличного специалиста, рейт которого стартует с 30$/h наверное. Я естественно говорю не только о том что на гифке, но и об остальном контенте, который тоже будет соответствующего уровня.

    Большинство местных "спецов", которые тут пишут "да там все просто, бах бах пара трансформов", на деле мощно так обделаются когда их анимация полноэкранного транзишена картинки будет адово тормозить на fullHD+ экране, и при этом выглядеть она будет крайне паршиво на фоне отполированного оригинала.

    Тут даже дело не в каких-то магических и крайне специфичных навыках, тут дело в опыте работы именно с такими штуками. Полировка таких вот "утонченных" анимаций может с легкостью забирать часы, особенно когда начинаются проблемы с перформансом или специфичными багами браузеров, из-за проблем со слоями и прочей чехардой.
    Ответ написан
    1 комментарий
  • Какое практическое задание по Node.js для демонстрации своих знаний будет интересно работодателю?

    @sergeystepanov1988
    Впечатлить работодателя можно обычной болтовней, показывающей общий кругозор. Но в проекты на Node.js обычно не берут людей без опыта. Node.js это довольно сложный стек для человека, который не работал на реальных проектах. Что Вас ждет в реальных проектах на Node.js:
    - асинхронность везде и всегда, к которой нужно привыкать
    - чтение чужого, невнятного, недокументированного кода на es5/es6 с промисами, генераторами и прочими прелестями жизни программиста
    - куча библиотек-зависимостей, которые придется изучать по плохо написанной документации
    Ответ написан
    Комментировать
  • Какое практическое задание по Node.js для демонстрации своих знаний будет интересно работодателю?

    @Elizavetta
    Matroid: gamedev/js-разработка
    Сделайте сервер для морского боя Как сделать морской бой на html+js+css с перетаскиванием кораблей? Куда копать?, чтобы держал 10к боев минимум, реконнекты, и нагрузочное тестирование к нему.
    Консультации в скайпе после 21-22ч (см. контакты).
    Ответ написан
    2 комментария
  • Какое практическое задание по Node.js для демонстрации своих знаний будет интересно работодателю?

    @Pavelise
    Посмотри хайповые штучки, Gulp, Browserify, Babel (ES6/7), Webpack, React стек и Sails.js, StrongLoop (loopback)
    Ответ написан
    2 комментария
  • Как сделать морской бой на html+js+css с перетаскиванием кораблей? Куда копать?

    Перетаскивание проще всего будет самому написать используя эвенты mouseover и drag-евенты,
    смысл в том, что при mouseover на ячейке карты проверять, можно ли расположить корабль и как-то подкрашивать ячейки, которые будут заполнены. Чтобы не париться с поворотом - можно предложить сразу выбрать, вертикальный или горизонтальный корабль хочется воткнуть. Т.е. в контейнере с выбором кораблей сделать оба варианта для каждого размера.

    Что касается хранилища. Тут надо подумать, какие данные нужно хранить. Это очевидно координаты всех кораблей, текущая игровая ситуация, состояние полей противника для каждого игрока. Как хранить - вроде всё более-менее очевидно. Для noSQL я бы взял mongoDB, просто как самый простой и известный вариант. Можно хоть всю игровую сессию сваливать в один документ, и не особо заморачиваться с этим.
    Ответ написан
    Комментировать
  • Backbone + Marionette лучшие практики (видео)?

    aen
    @aen
    Keep calm and 'use strict';
    Есть вот такой канал тыц и есть вот такая серия статей тыц.
    А еще есть гайд, который еще не дописан. Тыц.
    А можно еще в гиттер зайти, там всегда помогут. Тыц.
    Ответ написан
    Комментировать
  • Как часто используются дескрипторы, декораторы и bind, call, apply?

    bingo347
    @bingo347 Куратор тега JavaScript
    Crazy on performance...
    Обо всем по порядку

    Дескрипторы - так понимаю речь идет о дескрипторах свойств объекта. Вещь крайне полезная, позволяющая задать поведение свойству, сделав его не перечисляемым или, например, только для чтения, а так же можно задать функции getter/setter, которые будут вызываться при чтении/записи свойства. Используется довольно часто.

    Декораторы функций. Позволяют избежать дублирования кода. Допустим, подключаете Вы некую библиотеку, в которой есть некоторая функция, Вам необходимая. Пусть она делает некое действие А, но Вам регулярно нужна последовательность действий А и Б. Тогда Вы пишите над этой функцией обертку, выполняющий эту последовательность, и уже вместо библиотечной функции + действие Б используете везде свою обертку. А вот если у Вас таких оберток с действием Б довольно много, то уже нужен декоратор, который позволит создавать такие обертки для любой функции. Используется как правило в крупных проектах, так как снижает вероятность ошибок.

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

    call и apply позволяют вызвать функцию с нужным контекстом, разница в том что apply принимает 2 аргумента - контекст и массиво-подобный объект содержащий аргументы, а call принимает произвольное число аргументов: 1й - контекст, последующие передаются как аргументы функции. Используется постоянно.

    Карринг. Хоть и используется не так часто, но бывает весьма полезным инструментом. По сути цепочки промисов построены на принципах карринга, только не функций, а объектов.

    Ну и напоследок, конструкция var self = this; позволяющая сохранить контекст в замыкании уже потихоньку уходит в прошлое, благодаря стрелочным функциям из es2015
    Ответ написан
    1 комментарий
  • Какие задачи нужно уметь выполнять на JS начинающему?

    copist
    @copist
    Empower people to give
    Какие задачи нужно уметь решать на чистом JS, перед тем как переходить к изучению библиотек и фреймворков?


    Кроме синтаксических конструкций, математических и логических выражений, нужно знать:
    • Область видимости переменных
    • Замыкания
    • Объектно-ориентированное программирование, в частности наследование через прототипы
    • Шаблон проектирования "модуль"
    • Операции над DOM
    • Понимание принципов событийно-ориентированного программирования
    Важно - нужно знать, откуда копипастить.
    Тебе нужно быть очень хорошо знакомым с одной-двумя-тремя популярными библиотеками на JavaScript. В идеале ты должен иметь представление о том, что определённый класс задач может быть решен с помощью определённых библиотек, хотя бы одной, но такие знания приходят с практикой. Вообще ты должен быть знаком с ними так близко, чтобы помнить, в какой части мануала по библиотеке можно найти описание форматов входных данных нужной тебе функции и какой будет результат, чтобы скопировать и вставить в свой код, а потом поправить, чтобы работало.

    Важно - инструменты программиста JavaScript
    У тебя должен быть удобный инструмент для разработки (IDE, Integrated Development Environment), чтобы он тебе подсвечивал код (syntax highlight) и подсказывал о синтаксических ошибках (syntax check), о формальных параметрах функций (type hinting), о стиле кодирования (code style), помогал писать код (live templates).
    Ты должен знать, как отлаживать скрипты в популярных браузерах (Firebug, Chrome Developer Tools и другое). Что такое точки останова, как управлять исполнением во время останова, как посмотреть и поменять содержимое переменных, как настроить останов по условию.

    Хотелось бы узнать что это за задачи(упомянутые вами 80%)


    Реальные задачи джунов:
    1. Возьми из сборника задач по javascript любой скрипт случайно и вслух расскажи, что он делает.
      Важно - читать и понимать чужой код намного важнее, чем писать свой. И на работе тебе это приддётся делать чаще, чем ты думаешь. Чтобы подключить к своему проекту чужую JS либу, нужно понимать что она делает, как она конфигурируется, как управлять её поведением. Скажу точно, что написать свой скрипт, который строит графики, намного сложнее, чем понять, как настраивается highcharts.

    2. Напиши скрипт на JS, который в заданном тексте удалит один или два символа, выбранных случайно
      1. Усложнение: удалять можно только буквы в словах, а знаки пунктуации и цифры удалять нельзя
      2. Усложнение: принять, что этот текст является программной на Javascript, удалить одну-две команды JS, но только если они не в строковых литерах (break как команду удалить можно, а в строке "break my heart" нельзя)
      3. Усложнение: воспользуйся этим скриптом и "попорти" код какого-нибудь другого скрипта на Javascript, а потом отладь, найди ошибку и восстанови работоспособность
      Важно - этим обычно все и занимаются - ищут баги. Только в реальной жизни они и без этого скрипта появляются. И не по одному, а прям пачками.

    3. На страницу HTML нужно встроить график курса доллара по отношению к рублю. Формат входного массива значений курса определи сам, исходя из своего скрипта для построения графиков.
      1. Усложнение: на одном графике должны быть два курса, по разным шкалам. Наприме, курс доллара к евро и курс юаня к рублю
      2. Усложнение: первоначально график вывести в детализации по месяцам, но чтобы можно было "приблизить" (drilldown) детализацию до дней
      3. Усложнение: первоначально график вывести текущем месяце, но чтобы можно было загрузить данные для предыдущего месяца без перезагрузки страницы (AJAX)

    4. При клике по картинкам, вставленным в текст HTML, показывать всплывающее окно для просмотра увеличенной картинки.
      1. Усложнение: в всплывающем окне сделать навигацию по картинкам, вперёд/назад и к нужной картинке
      2. Усложнение: в всплывающем окне вместо картинки показать видео-ролик с Youtube
      3. Усложнение: в всплывающем окне показать текст HTML

    5. По клику на кнопку "Click me" показать всплывающую форму.
      1. Усложнение: реализовать проверку данных на корректность перед отправкой формы (непустое значение, минимальное количество символов, максимальное количество символов, минимальное числовое значение, максимальное числовое значение)
      2. Усложнение: если в значении текстового поля встретилась гиперссылка, то считать её за 22 символа при любой длине этой ссылки (как в твитере)
      3. Усложнение: реализовать отправку формы на сервер через AJAX, без перезагрузки страницы
      4. Усложнение: саму форму в виде HTML загрузить с сервера через AJAX, в момент клика по кнопке "Click me", правила проверок данных должны как-нибудь "извлечься" из самой загруженной формы, например из аттрибутов полей ввода

    6. К форме ввода данных на поле ввода даты "навешать" всплывающий календарь для выбора даты.
      1. Усложнение: сделать форму календаря мультиязычной. Хотя бы через настройки на том же JavaScript
      2. Усложнение: сделать так, чтобы с помощью календаря можно было выбрать диапазон дат, чтобы она была привязана к двум полям формы "дата начала" и "дата окончания", и чтобы значение в поле "дата начала" обязательно была меньше чем в поле "дата окончания"
      3. Усложнение: сделать так, чтобы с помощью в календаре можно было видно визуально этот диапазон
      4. Усложнение: диапазон может быть открытым, но не пустым, то есть пользователь должен задать хотя бы дату начала или дату окончания.

    7. Сделать пред-просмотр веб-страницы HTML с разными темами. Тему страницы выбирать через селектор на javascript, а показывать в фрейме.
      1. Усложнение: сделать селектор "тип устройства", чтобы менять размер фрейма (например, "iPhone 5c 1136x640") и "чекбокс" для смены ориентации страницы "горизонтальная" или "вертикальная" (соответственно 1136x640 или 640x1136)
      2. Усложнение: в селекторе тем предусмотреть поиск тем по подстроке, и аналогично поиск устройств по части названия (авто-дополнение, auto-complete)
      3. Усложнение: тема страницы должна меняться без перезагрузки фрейма



    Задачи повышенной сложности, исходя из личного интереса
    1. Реализовать форму для многошагового мастера: форма должна состоять из нескольких страниц (шагов), пользователь может переключать страницы через какие-нибудь элементы управления "вперёд/назад" или "перейти на страницу".
      1. Усложнение: реализовать функциональную связь значений, когда некоторые данные зависят друг от друга (ввёл число в поле "количество" и в поле "сумма" значение пересчиталось)
      2. Усложение: доступность некоторых полей ввода должна зависеть от данных (например, если указал "есть личный самолёт", то значит можно ввести "марка самолёта")
      3. Усложение: видимость некоторых страниц должна зависеть от данных из предыдущих страниц (например, если указал "есть личный самолёт", значит появилась страница "ТТХ самолёта"; иначе страница должна скрыться)

    2. Реализовать однопользовательскую браузерную игру "змейка", "тетрис", "найди пару"
    3. Реализовать многопользовательскую браузерную игру "крестики-нолики", "морской бой" на два игрока в режиме "hot seat"
      1. Усложнение: два игрока на разных компьютерах, ходы передаются по websocket
      2. Усложнение: ограничение на ожидания окончания хода 15 секунд, по окончании ожидания автоматически делается случайный ход

    4. Реализовать todo-list. Пользователь вводит список, затем он превращается в строки с "чек-боксами". Когда "чекбокс" включен, строка зачёркивается.
      1. Усложнение: пользователь может переименовывать, удалять, добавлять строки
      2. Усложнение: список хранить в localStorage браузера, чтобы при перезагрузке страницы он восстанавливался
      3. Усложнение: пользователь может иметь несколько независимых списков todo

    5. Реализовать простой графический редактор. Пусть рисуется точка в месте, где пользователь кликнул.
      1. Усложнение: добавить переключатель режимов "точка"/"линия", в режиме "линия" рисуются линии между двумя последовательно кликнутыми точками
      2. Усложнение: можно менять толщину, цвет линий, размер точек
      3. Усложнение: последовательность кликов можно воспроизвести ещё раз с самого начала, равномерно или с реальной задержкой между кликами, с обычной скоростью или ускоренно
      4. Усложнение: можно выгрузить получившийся рисунок в формате PNG или SVG, причём SVG c анимацией воспроизведения



    Можно использовать любую существующую библиотеку.
    Например,
    для построения графиков www.highcharts.com
    для загрузки и передачи данных через AJAX: jquery.com + что-нибудь на сервере
    для всплывающих диалогов с картиками, видео и формами: fancyapps.com/fancybox и https://jqueryui.com/dialog/
    для валидации форм rickharrison.github.io/validate.js
    для календаря https://jqueryui.com/datepicker/
    для автодополнения https://jqueryui.com/autocomplete/
    для передачи данных между несколькими пользователями socket.io или обычный AJAX
    Ответ написан
    16 комментариев
  • С чего начать разработку Информационной системы?

    Andrey_Pletenev
    @Andrey_Pletenev
    Pletenev.com
    1) Создание полноценной ИС в одиночку - это изобретение велосипедов. Опыт будешь набирать медленно и никто не укажет тебе ни твои ошибки, ни лучшие решения. Даже, если доведешь до конца, система будет сырой и слабой. Никого, кто умеет читать код, ты ей не впечатлишь. Твоего текущего опыта и портфолио уже вполне хватает для джуниора. Рассылай резюме и устраивайся на работу. В команде, работая над реальными задачами вырастешь очень быстро.
    2) Если п. 1 не вытащил гвоздь из твоей головы, тогда тебе дорога на sourceforge и иже с ним.
    Ответ написан
    2 комментария