• TypeScript для Node.js - как настроить для совместной работы?

    @v_m_smith
    лучше бы я пил и курил
    Рекомендую для работы с Typescript+Node бесплатный кроссплатформенный редактор Visual Studio Code. В нем прекрасная поддержка и того, и другого:
    • на уровне проекта через конфиг tsconfig.json
    • плагины - для npm, typings и много чего другого
    • IntelliSense для js, ts - подсказки с методами, свойствами, параметрами с указанием типов, подсветкой ошибок в типах и т.п.
    • task tunner - package, bower
    • JSDoc, JSLint, TSLint support

    Описание работы с Typescript
    Ответ написан
    3 комментария
  • TypeScript для Node.js - как настроить для совместной работы?

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

    1. https://www.typescriptlang.org/docs/handbook/compi... , --declaration.
    2. Используем SystemJS при генерации кода или используем бандлер.
    3. Публикуем собранный js-бандл.
    Отдельно о публикации - над npm я использую sinopia, хочется работать с похожей утилитой и для ts заголовков.

    С TypeScript 2 никаких утилит не надо, всё публикуется в NPM. Варианта два - либо в своём пакете (имхо, предпочтительнее), либо в @types. Подробнее: www.typescriptlang.org/docs/handbook/declaration-f... . По сути, если вы не делали бандл, то тогда рядом с каждым js будет лежать .d.ts. Если вы делаете бандл, то тогда вам нужно попросить tsc сгенерить .d.ts в виде одного файла для всех имеющихся модулей, и тогда вы в package.json с помощью main и types указываете entry-файл и файл с type definitions.
    Ответ написан
    5 комментариев
  • Как с помощью nightmare выполнить скрипт перед операцией .end()?

    @vshvydky
    прямое использование nightmare не очень удобно , комфортнее с ним работать внутри генератора
    в вашем случае возможно существует проблема блокировки поля ввода контактом, можно пробовать что-то типа .wait(400).type('#quick_login',vk.login).wait(400).type('#quick_pass', vk.pass)...
    А еще я вижу, как минимум некорректные айди инпут блоков вк, index_email, index_pass соответственно.
    А вообще можно с кошмаром кошмарить так:
    function * run() {
      let html = yield nightmare.goto(href);
      let resultEvaluate = yield nightmare.evaluate(()=>{return document.body;});
     yield nightmare.end();

    Естественно в таком исполнении все надо оборачивать в try cartch finaly и ловить все ошибки так, иначе любой просроченный wait даст генерацию ошибки.
    И еще, в кошмаре отключены алерты, конфирмы и промпты, для их обработки есть отдельные события.
    Ваш код может скорее всег озаработать, если его переписать как-то так:
    nightmare
        .goto('https://vk.com')
        .type('#index_email', vk.login)
        .type('#index_pass', vk.pass)
        .click('#index_login_button')
        .wait(() => {
            return document.title.search(/Диалоги/) != -1;
        })
        .evaluate(() => {
            return 'its cool!!!';
        })
        .end()
        .then((result)=> {
            console.log(result); // its cool!!!
        })
       .catch(console.error); // будете пренебрегать обработкой ошибок и кошмар будет именно ваш , а не сайта для парсинга....
    Ответ написан
    2 комментария
  • WebGL как попробовать?

    HamSter007
    @HamSter007
    HTML/CSS верстальщик
    1. Текстовый редактор Sublime Text
    2. Компоненты webgl для SL

    3. Tuturials: Первая программа на WebGL, Начало работы с WebGL ...

    4. Углубленное изучение ... blender для 3d моделирования
    Ответ написан
    Комментировать
  • Как настроить typescript чтобы он пропускал тип "any"?

    AMar4enko
    @AMar4enko
    У TypeScript компилятора есть флаг noImplicitAny, который регулирует то, как будет обрабатываться случай, когда не указан тип. В вашем случае у параметра не указан тип и noImplicitAny включен, поэтому TypeScript ругается.

    Поставьте в tsconfig.json в опциях компилятора "noImplicitAny": false
    Ответ написан
    Комментировать
  • Нужно ли нынче платить за карты?

    kopcap_va
    @kopcap_va
    SEO Consultant
    https://www.google.ru/intx/ru/work/mapsearth/produ... в сравнении нет интересующей вас инфы?
    Ответ написан
    Комментировать
  • Почему не грузит google maps?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега JavaScript
    Учитывая, что ваш код нормально работает сам по себе, проблема где-то в другом месте.
    Ответ написан
    4 комментария
  • Как правильно поделить доли в IT-бизнесе?

    romangorbunov
    @romangorbunov Автор вопроса
    Антрепренёр
    Старый топик, но ответа, который бы меня удовлетворил, я так и не получил. Поэтому отправился сам на поиски и вот нашёл. Нашёл именно тот вариант, который и объективен и прозрачен.

    Оценка долей в проекте опеделяется степенью вовлеченности и объемом работы (участием в проекте) в расчете на средний период в 5 лет. Простой пример.
    Продукт делается одним человеком, например, 4 месяца по 40 часов в неделю.
    Рынок продукта, допустим 1000 компаний, где средний период сделки занимает 3 месяца. И допустим на 1 клиента уходит 80 часов времени, чтобы обработать и закрыть сделку. И вот считаем сколько менеджеров нужно и сколько им нужно времени, чтобы обработать 1000 клиентов.
    Есть еще отличное понятие vesting period и cliff. Это инструменты безопасности на случай выхода участника из проекта по той или иной причине.
    vesting period - время, которое должен отработать в проекте участник, чтобы вся доля перешла ему (обычно 4-5 лет), если уходит раньше, то расчёт доли происходит относительно отработанного периода вестинга.
    cliff - минимальный период отработки для получения определенной доли в проекте, обычно 1 год. Если участник уходит до отработки этого периода, то теряет все доли в проекте.
    Например в проекте 2 участника, у обих по 50%, вестинг - 5 лет, клиф - 1 год.
    Работают 2 года, соответственно у 1 и 2 по 10% или 20% в сумме (100% делим на 5 лет и делим на 2 участников, выходит 10% в год на однго участника).
    1 решает уйти - у него остаётся 10%.
    Вопрос размываемости\неразмываемости доли при входе инвестора - вопрос отдельный.
    Ответ написан
    Комментировать
  • Какой есть эмулятор браузера на nodejs?

    kirill89
    @kirill89
    С phantomjs разбираться действительно сложно из за документации, могу посоветовать использовать обертку на nodejs - например navit. Она предназначена в первую для тестирования, но вам должна подойти.
    Ответ написан
    Комментировать
  • Как передать из DOM координаты и названия меток в GoogleMaps?

    matroskin13
    @matroskin13
    JavaScript developer, GO developer
    Зачем вам парсить dom, когда у вас уже есть массив, который можно передать в js?
    <script>
    var markers = <?=$this->markers?>
    </script>
    Ответ написан
    3 комментария
  • Как сделать центр карты взависимости от региона?

    Petroveg
    @Petroveg
    Миром правят маленькие с#@&ки
    ymaps.ready(function () {
    	ymaps.geolocation.get({
    		provider: 'yandex'
    	}).then(function (result) {
    		var coords = result.geoObjects.get(0).geometry.getCoordinates();
    		/*map — ссылка на карту Google*/
    		map.setCenter(new google.maps.LatLng(coords[0], coords[1]));
    	});
    });

    Пример
    Ответ написан
    Комментировать
  • Книга по дизайну сайтов?

    Sergei_Erjemin
    @Sergei_Erjemin
    Улыбайся, будь самураем...
    Дизайн -- это с одной стороны ремесленничество (в силу прикладного характера), с другой стороны -- искусство (необходимо чутье, и ощущение прекрасного), с третьей -- внимание к деталям и усидчивость (т.к. требует фанатичного следования выработанным гайдам, стилям и форматам).

    Читать можно все что попадется под руку. Но как минимум нужно знать:
    -- Шрифтовую графику (историю шрифтов, предпосылки их появления, употребимость, налагаемые ограничения).
    -- Типографические сетки (отступы, организация пространства, композиция)
    -- Написание, организация и восприятие текста
    -- Колористика
    -- Основы композиции
    не помешают:
    -- Основы фотодела (понимать контраст и композицию)
    -- Основы журналистики (базис для понимания формата текстов и мастерства заголовка)
    -- Истории искусства (чтобы не переборщить с эклектикой).

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

    Последую примеру комментатора выше и приведу несколько полезных, на мой взгляд, книг:
    Ответ написан
    Комментировать
  • Что можно написать на Node.js?

    MarcusAurelius
    @MarcusAurelius Куратор тега Node.js
    автор Impress Application Server для Node.js

    Часто применяется для:

    1. Локальные приложения и утилиты командной строки
    • Сборщики и трансляторы
    • Пакетная обработка и сценарии отложенной обработки
    • Скрипты, CLI (интерфейсы командной строки)
    • Генерация документации, отложенное формирование отчетов
    • Сценарии тестирования для других систем

    2. Серверы
    • Серверы веб-приложений и SPA
    • Серверы и API для мобильных приложений
    • Любые другие веб-API (RPC, JSON, REST)
    • Серверы сообщений и трансляция событий (чаты, игры, интерактив)
    • Заплаты на уже готовые системы, написанные на других языках, для реализации вебсокетов, SSE, лонг-пулинга и т.д., т.е. для затыкания дыр, для решения проблем в узких местах уже работающих систем.

    3. Клиенты
    • Оконные приложения (nw.js, node-webkit)
    • Кравлеры, парсеры и сбор данных

    4. Железо
    • Программирование микроконтроллеров (arduino, espruino, tessel)
    • Промышленная автоматизация

    Редко применяется (но подходит) для:
    • CMS, публикация контента (просто ниша уже занята и в этой задаче нода не дает чего-то принципиально нового или сверх соблазнительного).
    • Массовая электронная коммерция и торговля (не применяется для массовых движков магазинов, но используется отдельными крупными компаниями для торговых и платежных задач в качестве дополнительного средства к уже имеющемуся ПО, по сути закрывает узкие места).

    И плохо подходит:
    • Вычисления и моделирование, со скоростью математических операций нода и JS, как не типизированный язык, не дают хороших показателей
    • Научные приложения (по тем же причинам)
    Ответ написан
    10 комментариев
  • На что сменить MongoDB

    @meeshaeel

    Попробуй Aerospike http://www.aerospike.com
    Желательно иметь машины с болшим количеством ОП и SSD
    Community edition ограничивает размер базы до 200Гб

    Ответ написан
    Комментировать
  • Private методы и свойства

    OpenMinded
    @OpenMinded
    Если кратко, то лучше вообще забыть быть втройне осторожным с protected и особенно protected virtual, когда вы что-то проектируете. Проблемы будут как раз из-за того, что это не входит в интерфейс и почти всегда нарушает два принципа из SOLID, а именно Open/closed principle и Liskov substitution principle.

    Нужно отличать расширение от модификации. Например, в родительском классе у вас есть метод, который пишет сообщение в поток. Если дочерний класс сначала вызовет метод родительского класса, а потом еще добавит сообщение в лог — это определенно расширение. Если дочерний класс добавит валидацию сообщения, которое пишется в поток, то это тоже расширение. Если же дочерний класс изменит само сообщение перед записью в поток, то это уже модификация.

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

    Если этот метод был protected, то ни о каком интерфейсе тут речи уже нет. Разработчик должен гарантировать, что для клиента родительский класс и дочерний класс с перегруженным protected методом будут работать не просто одинаково хорошо, а вообще одинаково, так как клиент может получать экземпляр через конструктор и по интерфейсу и вообще быть не в курсе его реального типа.
    Ответ написан
    1 комментарий