• Не работает анонимная функция в onAuth(Виджет авторизации от ВК)?

    @EvgeniiR Автор вопроса
    https://github.com/EvgeniiR
    UPD: Возился два часа с этой проблемой. Оказалось, что в строке
    VK.Widgets.Auth("vk_auth", {"onAuth":"function(data) {alert('user '+data['uid']+' authorized');}"});

    Не нужны кавычки после параметра onAuth, т.е. просто вот так:
    VK.Widgets.Auth("vk_auth", {"onAuth":function(data) {alert('user '+data['uid']+' authorized');}});

    Почему ВК даёт не рабочий пример - вопрос.
    Ответ написан
    2 комментария
  • Vue.js + phaser.js как браузерный клиент для онлайн игры?

    FFxSquall
    @FFxSquall
    Могу писать код, могу не писать
    Phaser судя по описанию игры вам лучше не брать там много лишнего, возьмите только PixiJS который используется для отрисовки. Соответственно интерфейс игры, чат, менюшки и т.д. можно пилить на vue.js, а сам игроковой процесс будет отрисован в canvas на webgl. Вот тут есть пример как юзать PixiJS в Vue.

    P.S. Сам начинал переписывать игру с flash на Vue + PixiJS, но пока времени не хватает, но в целом серьезных проблем не возникало.
    Ответ написан
    1 комментарий
  • Действительно ли Zend Framework 2, лучше забыть?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Мне сказали что ZF2 прошлый век, и сейчас используют Laravel и Yii

    пошли этого человека куда по дальше. Это фреймворки обсалютно для разных задач. Laravel и Yii - преимущественно для быстрой разработки, хорошо подходит для малых и средних проектов. Для средних и больших больше подходит Zend (ну или Symfony).

    Грубо говоря:
    Yii и Laravel - RoR way
    Zend и Symfony - Java/C# way

    p.s. Если для вас фразы типа Single Responsibility, Layered Architecture, persistence ignorance, Unit-of-work и т.д. не пустой звук - Zend для вас. Если же нет - то можно думать.
    Ответ написан
    Комментировать
  • Что такое enterprise разработка на самом деле?

    @miksir
    IT
    Enterprise разработка - это разработка, направленная на решение проблем бизнеса. В отличии от разработки для решения проблем конечных пользователей.

    На самом деле нет каких-то зафиксированных принципиальных характеристик, которые присущи только EA. По-этому, в разговорной речи понятие "энтерпрайз" может значить весьма разные вещи. С одной стороны энтерпрайз - не про увлечение модой с переписыванием всего, как только появится новый тренд. Ибо это _дорого_, так как цена ошибки дорога. С другой стороны - совсем не обязательно, что это 20-летние технологии. Конкретный бизнес сам для себя выбирает модели развития и обновления стека технологий. С одной стороны - это сложность ПО, бизнес-логики. С другой - сложность понятие весьма относительное.

    Но если все же пытаться выделить какие-то характерные черты, я бы назвал несколько:
    * устойчивость к трендам (использование их, когда они пройдут стадию моды и перейдут к стадии заинтересованности крупными игроками, ибо никому не нужны технологии, которые через год умрут и их поддержка будет дорожать каждый день).
    * сложная и непостоянная бизнес-логика, давление на нее из множества источников
    * результат сложной переменчивой бизнес-логики в совокупности с длительным использованием продукта приводит к целям снижения стоимости поддержки за счет стоимости первоначальной разработки, производительности и потребляемых ресурсов. ООП, SOLID, Unit Test/TDD, DDD - все эти популярные буквы - последствия "энтерпрайза", когда мы готовы серьезно подходить к написанию кода для облегчения его последующего изменения.
    * слабо заметный вклад конкретного программиста, проистекает из сложности ПО

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

    По-этому, стоит рассматривать не энтерпрайз/не энтерпрайз, а конкретные компании с конкретными требованиями и циклами разработки.
    Ответ написан
    1 комментарий
  • Что изучать верстальщику и в каком порядке?

    webirus
    @webirus
    Тыжверстальщик! Наверстай мне упущенное...
    Пишу по порядку, как реально нужно.

    Поиск по Тостеру, так как схожие вопросы задаются минимум 2-3 раза в неделю.

    адаптива не знаю, он у нас и не требуется

    Печально уже за такую компанию, которая сейчас пренебрегает адаптивной версткой.
    Хотя, быть может (моя последняя надежда) у вас есть мобильная версия сайта.

    про бэм и препроцессоры что-то где-то читал, но тоже не знаю

    Да не используйте, и не учите. Просто теряете время и ресурсы на написание код (или говнокода, не знаю).
    Просто без препроцессоров всё делается долго и нудно, и тяжело структурировать, копаясь в одном файле.
    А так, можете не учить, если хочется заморачиваться %)

    js так же, на уровне скопировал-вставил

    Выскажу свое личное мнение.
    Верстальщик без JS, это не верстальщик, это контент-менеджер со знанием HTML.
    Любой сайт от лендинга до портала требует JS, правда часто делают хрень, напичканную плагинами, даже если требуется 2-3 строки кода. Не нужно подключать плагины там, где оно не нужно и обратная сторона вопроса, не нужно писать свой код там, где можно использовать готовый плагин (не изобретать велосипед).
    Но если есть время, желание и умение, можно писать и свои плагины, для тренировки.

    Верстаем display:table/table-cell

    Тут буду краток. $^*(&%#(*$%($(%&*(*$#&*%($#%)($)^_*()#&@%$ - вырезано цензурой.

    не в одну компанию с такими навыками меня явно не возьмут

    Что мешает заниматься самообразованием?
    Благо живем в 21 веке, в интернете есть любые учебники, тесты, курсы, да чего только нет.
    На крайний случай, можно напросить в подмастерья к какому-нибудь верстальщику (знаю, часто требуются).
    Да, работать придется в основном "за еду", но будет опытный наставник, который скажет - так норм, а так не надо.

    надо изучать с бустрапа сразу

    Не зная принципов адаптивной верстки, использовать Бутстрап не получится.
    Так что в ьлюбом случае, понимание адаптивной верстки должно быть, при том "чистое", чтобы можно было разобраться не только в Бутстрапе. Фреймворков для адаптивной верстки еще очень и очень много.

    советы от товарищей по цеху, как развивались они и откуда брали инфу

    90% опыта приходит вместе с практикой.
    Можно прочитать 100 учебников и не понять, что это за свойство, а можно один раз применить и сразу понять.
    Нужно просто много и усердно практиковаться. Качать любые шаблоны PSD, верстать, верстать, верстать.
    Сначала простые, трехколоночные сайты. Потом посложнее и закончить каким-нибудь паралаксом.
    Но повторюсь, для обучения минимум плагинов.

    есть ли смысл работать в маленьком городе

    Не знаю, что за город у вас. Скажу про свой. Население около 900тыс.
    В городе порядка 5 топовых студий по созданию сайтов, не считая 2-3 десятков мелких контор.
    Также есть топовые IT компании, но про них говорить не буду, с таким багажом тебя туда пока не возьмут.
    Так что в любом городе есть смысл работать.
    Да и фриланс, удаленную работу никто не отменял.

    вопрос только Москва или оставаться в городе

    Что в Москве, медом намазано? Или думаешь, так вакансий больше?
    Нифига не больше, потому как и желающих поработать там не меньше чем вакансий.

    В общем, резюмируя всё вышесказанное - учись, развивайся.

    Удачи.

    ЗЫ: Недавно на Хабре опубликовали ссылку.
    webmasters.teamdev.com
    Чесслово, проникся. Отличный мануал.
    Ответ написан
    17 комментариев
  • Как правильно верстать bootstrap + SASS?

    delphinpro
    @delphinpro Куратор тега Sass
    frontend developer
    CDN vs свой билд — экономия на спичках.
    Тем более если вам не нужен весь пакет.

    Начну с самого плохого, неправильного и убогого варианта использования:
    Это когда люди подключают бутстрап.мин.цсс, а потом в своем файлике начинают переопределять стили. Получается полный неподдерживаемый пиздец (я как раз сейчас натягиваю на сайт купленный (!) такой шаблон, нервы на пределе).
    Люди, которые так делают приводят гнилой аргумент: а вдруг мы захотим обновить бутстрап? Серьезно, блять? Как часто вы это делали? ставлю сто баксов, что ни разу.

    Как делать по феншую.

    Для начала, естественно, использовать препроцессорные исходники (не будем выбирать конкретный порт, есть и lеss, и sсss, и stylus, кому что нравится).

    Далее миксины. Не нужно подключать отдельные. Подключите valiables.scss и mixins.scss. Миксины не попадают сами по себе в билд, так пусть они все будут доступны.

    Компоненты. Отключите ненужные, закомментировав импорты соответствующих файлов.

    Кнопки. Если бутстраповские не нужны, отключите их. Напишите свои, используя миксины и даже копипасту части кода из бутстрапа. Это нормально.
    Отличный вариант, если вы напишете свой миксин для кнопки (который и бутстраповские миксины может использовать). Ибо в бутстрапе, к сожалению, нет миксина make-button().

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

    Пагинация, крошки. Никогда вас не попросят поставить исходные стили. Если по макету эти элементы имеют определенный стиль, этот стиль будет сохраняться. Смело меняйте. Или делайте дубликат.

    Хелперы использовать нужно как можно меньше. Они нужны для быстрых набросков или правок "здесь и сейчас". Лучше опишите новый класс.
    Опять же если вам нужен класс list-inline в единственном месте, то почему бы его не прописать?

    Ссылки и статьи типа "как верстать под бутстрап" — это исключительно отстойный материал, написанный чаще всего такими же новичками, как и те, кто ищет подобную тему. Хотя базовую инфу вы конечно получите.
    Ответ написан
    4 комментария
  • Собственное мнение. Существует или это миф?

    turboNOMAD
    @turboNOMAD
    Собственное мнение на хабре существует. Но те, у кого оно есть, не могут ставить плюсы-минусы.
    Ответ написан
    15 комментариев
  • Как установить composer и как им пользоваться под windows?

    K-2
    @K-2 Автор вопроса
    Постараюсь подвести первые итоги.

    Composer можно пользоваться в 2х вариантах.
    Глобально(установив программу) и Локально(ничего не устонавливая)
    И тот и тот способы работают только из командной строки. (Пуск->Стандартные->Командная строка)
    Для того чтобы что-то скопировать в командную строку ctrl+v не работает! Пользуемся правой кнопкой мышки->вставить

    ЛОКАЛЬНО пошагово
    1. Создаем папку, в которой будет проект на компьютере.
    2. В Командной строке пишем команду cd и путь к папке с проектом:
    cd C:\xampp\htdocs\test_composer
    3. Т.к. программа не установлена, нужен загрузочный файл(мини-программа composer), для его загрузки в Командной строке пишем команду:
    php -r "readfile('https://getcomposer.org/installer');" | php
    теперь в директории появился загрузочный файл
    4. Запускаем команду загрузки фреймворка(у каждого свой), в Командной строке пишем:
    php composer.phar require silex/silex ~1.1 (для фреймворка silex)

    В Командной строке, команды запускаются по разному при локальной и глобальной загрузках:
    Локально: php composer.phar require silex/silex ~1.1
    Глобально: composer require silex/silex ~1.1
    php composer.phar меняется на composer
    Еще при локальной загрузке нужно каждый раз закачивать установочный файл(это не сложно и описано в шаге 3):php -r "readfile('https://getcomposer.org/installer');" | php
    При глобальной загрузке этот файл не нужен.

    ГЛОБАЛЬНО пошагово
    1. Скачиваем программу composer https://getcomposer.org/Composer-Setup.exe
    2. Запускаем. При запросе файла php указываем путь к локальному хостингу -> папку php
    3. Теперь делаем все тоже самое что и при локальной загрузке, но пропускаем шаг 3, и изменяем запросы из Командной строки(вместо php composer.phar пишем composer). Пример:
    было так: php composer.phar require silex/silex ~1.1
    стало так: composer require silex/silex ~1.1

    О других отличиях между глобальной и локальной загрузками пока-что тут ничего не ответили!
    Ответ написан
    1 комментарий
  • Какую лучше выбрать модель купюроприемника, желательно с имеющимся API для работы с ним?

    Energoblock
    @Energoblock
    Geek
    Используем Cashcode SM, вполне надёжные агрегаты. Очень популярны, поэтому полно запчастей и мастеров.
    Описание протокола взаимодействия с купюроприёмником можете скачать здесь.
    Так же здесть есть распайки и прочая техническая информация: sensis.com.ua/tech_info
    Ответ написан
    8 комментариев
  • С чего начать при изучении symfony с нуля?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Однозначно начать вот с этого текста: Symfony2 против чистого PHP (перевод отсюда), который буквально описывает твою ситуацию.

    Изучать лучше сразу 3, но за неимением богатого выбора материалов, придется обходиться тем что есть.
    Например есть серия постов на хабре, https://habrahabr.ru/post/301760/
    Ответ написан
    Комментировать
  • [MODx]. Evo или Revo?

    bezumkin
    @bezumkin
    Специально на такой случай написал заметку.
    Ответ написан
    3 комментария
  • Почему jetBrains не русифицирует свои продукты?

    gadfi
    @gadfi
    https://gamega.org
    Ага.
    Пусть еще тему по мотивам хохломы сделают, с медведями и балалайками.

    с хохломой в следующем релизе )
    post-3-13143552679398.jpg

    А если серьезно, то это прост никому не нужно.
    Ответ написан
    4 комментария
  • Есть отличные примеры создание бота telegram на php?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    Абсолютно все что нужно для написания Telegram бота находится на странице https://core.telegram.org/bots/api
    У бота абсолютно тривиальный протокол, json в определенном формате шлется POST запросом по HTTPS.
    Соответственно реализация от языка по факту не зависит, можно хоть на bash скриптах сделать.
    Ответ написан
    Комментировать
  • Как лучше хранить много файлов — в базе данных или в виде файлов?

    seriyPS
    @seriyPS
    Когда у меня встала задача хранить 2млн HTML файлов, много чего перепробовал. Только у меня архив один раз формировался а потом в режиме read-only раздавался с помощью веб-сервера Tornado.

    Остановился на SQLite + gzip. Т.е. создал таблицу с полями (name, blob) и каждый HTML сжимал в gzip.
    В SQLite отключил синхронную запись для ускорения заполнения.
    Успел попробовать bsd btree, bsd hash, gdbm, json-lines, csv ну и просто иерархия файлов на диске. Хотел попробовать tokyo cabinet, но не нашел драйверов для Python.
    bsd btree в принципе сравнима с SQLite по скорости, но занимает больше места на диске и менее гибкое. json-lines занимает гораздо больше места, csv (и json тоже) нельзя упаковать в gzip и не поддерживает доступ по ключу.

    Просто набор файлов на ФС — крайне неудобно для бэкапов и трудно с ними работать, например рекурсивное удаление занимает несколько часов.

    gzip vs не gzip — однозначно gzip! Мало того, что «сжать в gzip и записать на диск» — быстрее чем просто «записать на диск», так ещё и место сэкономите.
    Ответ написан
    Комментировать
  • Как найти все комментарии в группе вк?

    sergiks
    @sergiks Куратор тега PHP
    ♬♬
    1. Подключить callback API, и получать на вашем сервере уведомления о каждом комментарии.
    2. Заносить id коммента в кэш (скажем, Redis).
    3. Проверять через 15 минут коммент и стирать, если лайков мало.


    Для маленьких групп можно и
    без callback api
    1. Вы знаете / запоминаете где-то ID всех своих постов.
    2. Через wall.getComments() получаете для каждого поста список комментов с отметкой времени и счётчиком лайков.
    3. Комменты старше X и числом лайков меньше Y – удаляете.
    Ответ написан
    6 комментариев
  • Как реализовать POST или GET запросы на vk api через javascript & jquery?

    ixon
    @ixon Автор вопроса
    
    var req="https://api.vk.com/method/users.get?access_token=СекретныйТокен"
    $.ajax({
        url : req,
        type : "GET",
        dataType : "jsonp",
        success : function(msg){
    		console.log(msg.response[0]);
        }
    });
    Ответ написан
    Комментировать
  • Как сделать ответвление php процесса из браузера?

    @JSmitty
    Самый простой вариант - если у вас PHP работает через PHP-FPM (по умолчанию для nginx именно так), то есть вызов fastcgi_finish_request(), который сделает именно то, что вам надо - отдаст ответ веб-серверу, а скрипт благополучно продолжит работать после этого (но в браузер уже ничего нельзя будет отправить).
    Ответ написан
    Комментировать
  • Как сделать ответвление php процесса из браузера?

    customtema
    @customtema
    arint.ru
    Скрипт может запустить другой скрипт в отдельном потоке.

    Например, если php запускает sh
    exec($dir . '/scenario.sh > /dev/null 2>&1 &');

    Фрагмент "> /dev/null 2>&1 &" заставит запускающий скрипт не ожидать завершения запущенного.

    php может запускать и php.

    exec('php script.php > /dev/null 2>&1 &');

    Кстати, скрипт может генерировать другой скрипт. Если вам понадобятся идеи такого рода.
    Ответ написан
    4 комментария
  • Как сделать ответвление php процесса из браузера?

    mourr
    @mourr
    Passionate JS developer
    Перенесите вычисления в отдельный скрипт с ignore_user_abort, и вызывайте его после ввода пользовательских данных. Он будет исполнятся даже когда пользователь закроет браузер, пока не выполнит задачу и не завершится сам
    Ответ написан
    Комментировать