• SMS-шлюз — работающий по миру?

    EugeneOZ
    @EugeneOZ
    www.nexmo.com/
    есть ещё www.twilio.com/sms, но там долгая регистрация для российского номера — пока не успел их попробовать.
    Ответ написан
    3 комментария
  • Node.js — посоветуйте MVC фреймверк для Веб

    @AndyGrom
    Web-developer
    expressjs самое оно. Пользуюсь давно. Для новичка в самый раз. Он очень расширяемый. Вряд ли у Вас найдётся задача, которая не решена расширениями (т.н. middleware).
    Ответ написан
    3 комментария
  • Лицензии? Патенты? Как защитить себя от копирования?

    @lubezniy
    Проще всего защититься, с ходу выпустив максимально готовый продукт и продав его всем до того, как подсуетятся конкуренты, чья копия уже на фиг никому не будет нужна. Патентовать можно, но будьте готовы к немалым расходам по защите своих патентных прав; при этом в разных странах правила свои и существуют для того, чтобы их нарушали.
    Ответ написан
    Комментировать
  • Предварительная компиляция шаблонов в client-side приложении — нужна ли?

    nur
    @nur
    Не забывайте про gzip, он очень бодро все вам пожмет. А компилировать на клиенте как то не очень хорошо.
    Ответ написан
    4 комментария
  • Выбор архитектуры для web-приложения

    max_mara
    @max_mara
    Я бы на самом деле написал бы RESTful JSON API, вместо прямого общения с БД, по крайней мере больше возможностей для управления политиками доступа.

    С CouchDB тоже такое можно провернуть и всю логику перенести прямо в БД, а общение у них там через HTTP-JSON.
    Ответ написан
    2 комментария
  • Что плохого в вёрстке таблицами?

    @egorinsk
    Начнем с того, что все, что делается таблицами, делается и CSS (просто надо не лениться и прочитать соответствующие руководства). У таблиц есть недостатки:

    — нельзя перегруппировать блоки для узких страниц или в версии для печати только с помощью CSS
    — если мы выводим список картинок таблицей, каждая картинка в ячейке, то при добавлении или удалении картинки оставшиеся не сдвигаются, а остается пустое место
    — у ячеек width работает как min-width, при этом алгоритмы ратяжения ячеек не документированы и ведут себя непредсказуемо, из-за этого они могут непредсказуемо растягиваться, и хуже того, при динамической замене контента они не всегда сжимаются обратно и остаются дыры. Одно длинное слово или картинка может растянуть всю страницу.
    — фиксированное, абсолютное и относительное позиционирование неюзабельно в таблицах
    — ячейки не получится перетаскивать drag-n-drop
    — трудно манипулировать DOM (надо хитро вставлять и убирать дополнительные элменеты)
    — верстка получается замусоренная кучей лишних тегов, которые тяжело читать и в которых тяжело разобраться. Это не HTML, а лапша. Особенно тяжело, когда таблицы вложены друг в друга и раскиданы по куче шаблонов.
    — нельзя поместить контент в коде первым, а меню в шапке — вторым (некоторые сеошники считают, что это улучшает индексацию)
    — верстка таблицами всегда была костылем (и это несемантично), с поддержкой CSS2 (появилась более 10 лет назад) таблицы стали не нужны. 10 лет назад они уже стали ненужными.

    Давайте, расскажите хоть одну причину использовать устаревшую много лет назад технологию. Поддержка IE4? Верстальщик-пенсионер?
    Ответ написан
    4 комментария
  • Онлайн редактор html/css/js кода (но не простой, а…)?

    hell0w0rd
    @hell0w0rd
    Просто разработчик
    Оффтоп, но по теме.
    Подскажите, зачем вообще пользуются онлайн-редакторами? Есть множество бесплатных, в разы мощных редакторов. Если конечно у вас не chrome os, или какая-то подобная
    Ответ написан
    2 комментария
  • Обработка событий из встраимого в станицу HTML кода

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Вы пытаетесь привязать событие к эллементу, которого еще нету на странице. Варианта 2:
    1) использовать делегаты
    $('#container').on('click', '#start', callback);
    

    2) навешивать событие после вставки элемента в DOM (в success калбэке). Но это как по мне моветон.

    Результат должен выглядеть как-то так:
    $(function () {
        var $container = $('#container');
        $.post('/ajax/test', {}, function (data) {
            $container.html(twig({ ref: «begin_test» }).render(data));
        });
    
        $container.on('click', '#start', clickCallback);
    });
    
    Ответ написан
    1 комментарий
  • Нужна ли на хабре статья про правила оформления css и js?

    @gro
    вот что реально на хабре надоело и не нужно, вопросы «нужна ли статья?».
    Ответ написан
    Комментировать
  • JavaScript меня в могилу сведет [Node.js]

    операторы

    Как видите function call ниже оператора new, и если выделить скобками вашу запись, то интерпретатор делает следующее —
    var model1 = (new require('./test/model1'))();
    

    Функция require отработает хорошo, даже не зависимо от какого контекста была вызвана — а последующий function call будет уже в контексте global
    self == model1 == model2 == global

    Разные решения:
    var module = new (require('module'))();
    // екзотические варианты -
    var module = new require('module').prototype.constructor();
    var module = new new require('module')();
    
    Ответ написан
    Комментировать
  • Как выполнить функцию done() сразу после выполнения всех асинхронных процессов в javascript?

    Finom
    @Finom
    Все Deferred объекты (в том числе и $.ajax) можно запихать в массив, затем вызвать:
    $.when.apply( null, DfdArray ).then( done )
    
    Ответ написан
    Комментировать
  • Имеет ли смысл полный рабочий день для программиста? Производительность труда?

    tri_botinka
    @tri_botinka
    Вопрос крайне интересный. Но я бы поставил его не так — не как заставить программиста дольше работать, а как сделать так — чтобы он больше делал. Т.е. организовать эффективную работу. По опыту — удавалось повысить производительность программистов раз в 10, а аналитиков почти в 12 (!). Как?

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

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

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

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

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

    Да, кстати — офис — тоже интересная штука. Опытные капиталисты делают офис почти домашним не зря. И аутсорсят мелкие бытовые проблемы сотрудников — типа отвезти белье в химчистку, поискать подешевле квартиру, заказать билет в театр или место в ресторане, купить продукты по списку… Это позволяет удержать сотрудника на работе дольше, застав несколько его «пиков работоспособности». Причем сам сотрудник будет вам благодарен за комфорт и решение его мелких бытовых проблем. А работодатель значительно сэкономит на оплате овертаймов.
    Ответ написан
    3 комментария
  • Имеет ли смысл полный рабочий день для программиста? Производительность труда?

    @serega_kaktus
    Программист-самоучка, фрилансер
    8 часов это нормально. Кто то даже легко по 10 часов работает. Особенно если работа в основном написание скриптов, а не разработка архитектуры сайта/приложения. Главное чтобы рабочее место было удобным и было где отвлечься на 10-20 минут от работы и отдохнуть
    Ответ написан
    1 комментарий
  • Ищу сенсея

    Mithgol
    @Mithgol
    Не просите людей отвечать вам на личный адрес электронной почты

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

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

    Из этого правила есть одно небольшое исключение. Если вы предполагаете, что на свой вопрос получите множество подобных между собой ответов, не забудьте волшебные слова «отправьте ответ мне, а я резюмирую полученные ответы в статье для дискуссионной группы». Попытка уберечь дискуссионную группу или список рассылки от потока, по сути, идентичных сообщений — это очень любезно, но вы должны сдержать своё обещание и отправить итоговое резюме в дискуссионную группу или список рассылки.
    Вот почему вопросы о Node уместнее открыто задавать на Хабрахабре в разделе Q&A, нежели в ЛС. Что позволяет также проверить, не было ли в этом разделе прежде идентичных вопросов о том же. Открытый ответ обеспечит собою также и возможность мгновенно удовлетворить нужды тех других читателей, которые позднее непременно стали бы задавать себе аналогичные вопросы, кабы не поиск по Хабрахабру, позволяющий им найти ответ тотчас же.
    Ответ написан
    2 комментария
  • Возможно ли, из нескольких div с img внутри, сделать одно изображение, средствами JavaScript?

    shpaker
    @shpaker
    Вольный хлебопашец
    Смотрел в сторону Canvas, но там как я понял можно только использовать одно изображение, а мне нужно из нескольких.

    Можно на один канвас нарисовать все ваши изображения, такого размера и в таком порядке в котором вам удобнее.
    Ответ написан
    3 комментария
  • Раскройка сферы на «почти квадратные» участки

    Biga
    @Biga
    Представьте себе куб. Надуйте его до состояния сферы. Получилась сфера, разбитая на 6 квадратов.

    Если надо более мелкие квадраты, то можно каждую грань разбить на 4 квадрата.
    Ответ написан
    Комментировать
  • IDE с принципом работы FTP как у Notepad++

    Ozerich
    @Ozerich
    Freelance Web Developer
    PhpStorm использую, там можно в конфигурации настроить, какие папки исключить/включить для закачки.

    Если нужно обновить один файл, то в контекстном меню для каждого файла/директории доступно «Download from server», также можно сделать Merge
    Ответ написан
    4 комментария
  • Какую систему управления версиями посоветуете?

    На Хабре уйма статей про VCS, со сравнением и священными войнами в комментах.
    Я бы сразу вычеркивал из этого списка SVN — централизованная система со всеми присущими ей проблемами (упал сервак — потеряли код; нет копии сорцов у каждого разработчика и т.д.), нелогичное ветвление (считай, его отсутствие) и прочее.

    Выбирать есть смысл из Git и Mercurial. На гите сидит больше народу, есть куча мануалов, howto, обучалок и прочего. Если интересует свой корпоративный сервак, есть отличный фронтенд Gitlab, а если разрабатываете opensource или есть деньги, можно захоститься на популярном Github.
    Для Mercurial есть замечательный Bitbucket (хотя, git они тоже поддерживают).
    Удобства работы с консолью, ровно как и работа с GUI для этих систем я бы поставил на один уровень.
    Идеологически системы по-разному хранят историю. На гите огромные репозитории (от 1Гб, хотя для Вас это вряд ли актуально) работаю плохо из-за хранения полных слепков файлов, на mercurial хранятся мелкие изменения, поэтому репозитории не такие жирные. В целом, для подавляющего большинства проектов на эту разницу можно забить.

    Я использую Git, и не имею с ним никаких проблем. Очень хорошая, продуманная и быстрая VCS.
    Ответ написан
    Комментировать
  • Возобновление интереса к проекту?

    @Archusha
    https://agaltsovav.ru/
    лучший вариант найти партнера, чтобы вы подстегивали друг друга.
    Ответ написан
    1 комментарий
  • Перестал работать переход от одного нового комментария к другому: баг Хабрахабра или мои личные глюки?

    Haoose
    @Haoose
    Тоже самое и у меня. Проверил на двух браузерах.
    Ответ написан
    Комментировать