• +1

    > Больше разнообразных задач получится и будут более широко представлены операции.

    Согласен. Демки фреймворков почти всегда идеальны, а в реальности всплывает куча моментов.


    В React`е смысла не вижу, т.к. шаблоны в данный момент это 4..5% кода. Да и логики в них много, что противоречит идеи чистых шаблонов. Грубо говоря — на фоне дырок в базовом функционале замена шаблонизатора не является приоритетной задачей.


    Тоже самое с Vue.js — его внедрение уберет 4..5% кода логики (либо переделает код под себя). Единственное что это даст по факту — сборка чуть распухнет. Код итак ООП (всё классами в ES6 стиле). Базовые задачи это решить не поможет.


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

    Генератор админок
  • –1
    Бизнес, маркетинг, дизайн, еще всякая малафья и ни одной ссылки на физику и архитектуру
    Игровая индустрия: полезные материалы для геймдевелопера от A до Z
  • +1
    Это плохо, т.к.:
    1. Обновил один файл стилей
    2. Пересобрал 10 страниц сайта, т.к. в теле каждой изменилось значение одного хеша.

    Итого: вместо 1 файла, браузер должен будет обновить 11.
    Имхо: если интернет настолько медленный, что даже ETags не затянуть, то можно считать, что его нет вообще.

    Кэш, хэш и няш-меш
  • +1
    Дальше "hello world" эта штука не уедет, т.к. основная проблема не в интерфейсе, а в аппаратуре и принципах работы конкретных платформ.

    Для мобильного приложения нужно получать mcc, mnc, распознавать пользователя по imei, а при работе с файлами понимать, что приложение работает в виртуальной среде. Для десктопа нужно писать в реестр, параллельно по тихому устанавливать доп. софт и существенно расширять функционал работы с файлами. Для TV — работать с пультом и тщательно продумывать подсказки. Для веба — ещё 100500 своих требований. Разные среды — разный функционал, разные проблемы, решения, задачи и ТЗ.

    React Native не решает и в принципе не может решить ни одну из проблем, т.к. проблема в логике, а не инструментах.
    Исполнит ли React Native мечту программиста: единый код для web, android и ios?
  • 0
    Клевая штука, нужно обязательно заюзать у себя! Но так до конца и не понял:
    В нашем случае это ограничения, накладываемые на структуру проекта

    Вы парсите html файлы? Если да, тогда зачем что-то ограничивать, можно распарсить и выявить все зависимости по цепочке. Если нет, тогда почему не парсите? Можно какой-нибудь утилитой сначала составить список всех файлов в проекте, чтобы найти все html`ки.
    Сборщик проектов на Angular и RequireJS и некоторые мысли по сборке
  • +1
    Нода под нагрузкой требует увеличения ограничения nofile limit

    Зачем он вам? Вы же не отдаете статику через ноду?

    Инстанс под нагрузкой, который работает продолжительное время начинает «тормозить»

    Можете примерно сказать нагрузку? У нас тоже есть такое, но начинают тормозить инстансы с говнокодом. За нормальными такого замечено не было.
    Повышаем отказоустойчивость системы на nodejs
  • +2
    var type = (typeof a)[0] + (typeof b)[0] + (typeof c)[0];
    
    ({
       "oos": process,
       "oou": process,
       "oss": process,
       "osu": process,
       "ons": process,
       "onu": process,
       "sos": process,
       "sou": process,
       "sss": process,
       "ssu": process,
       "sns": process,
       "snu": process,
       "nos": process,
       "nou": process,
       "nss": process,
       "nsu": process,
       "nns": process,
       "nnu": process
    }[type] || process)(a, b, c);
    
    Index-based programming или зачем нам все эти if, switch, тернарный оператор?
  • +1
    var type = typeof a + typeof b + typeof c;
    
    ({
       "objectobjectstring": process,
       "objectobjectundefined": process,
       "objectstringstring": process,
       "objectstringundefined": process,
       "objectnumberstring": process,
       "objectnumberundefined": process,
       "stringobjectstring": process,
       "stringobjectundefined": process,
       "stringstringstring": process,
       "stringstringundefined": process,
       "stringnumberstring": process,
       "stringnumberundefined": process,
       "numberobjectstring": process,
       "numberobjectundefined": process,
       "numberstringstring": process,
       "numberstringundefined": process,
       "numbernumberstring": process,
       "numbernumberundefined": process
    }[type] || process)(a, b, c);
    
    Index-based programming или зачем нам все эти if, switch, тернарный оператор?
  • +2
    var type = typeof a + typeof b + typeof c,
        callback = {
           "objectobjectstring": process,
           "objectobjectundefined": process,
           "objectstringstring": process,
           "objectstringundefined": process,
           "objectnumberstring": process,
           "objectnumberundefined": process,
           "stringobjectstring": process,
           "stringobjectundefined": process,
           "stringstringstring": process,
           "stringstringundefined": process,
           "stringnumberstring": process,
           "stringnumberundefined": process,
           "numberobjectstring": process,
           "numberobjectundefined": process,
           "numberstringstring": process,
           "numberstringundefined": process,
           "numbernumberstring": process,
           "numbernumberundefined": process
        }[type] || process;
    
    callback && callback(a, b, c);
    
    Index-based programming или зачем нам все эти if, switch, тернарный оператор?
  • 0
    не пробовал. Посмотрел их сайт. Выглядит довольно аппетитно.
    Аккордеон про архитектуру и локализацию
  • +2
    Коротко об опыте: «нужен автоперевод». Для этого сделали велосипед: http://bakhirev.biz/demo/language/
    Умеет переводить, преобразовывать в нужный формат, и самостоятельно сохранять в файлики (если запущен локально).
    Локализация расширений Google Chrome — необходимо и просто
  • –1
    Прочитал статью, но не понял связи сайтов и производительности.

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

    Приведите пример связи сайта с производительности устройства.
    Одного лишь адаптивного дизайна мало: нам нужна адаптивная производительность
  • +12
    Почему нельзя так?

    var icon = new Image();
    icon.src = "wiki.ru/logo.png";
    icon.addEventListener("error", function () {
        alert("Not work");
    }, false);
    
    Определяем, что у пользователя заблокирована Википедия
  • 0
    ещё одна штука, оторванная от реальной жизни…

    довольно конкурентноспособный фреймворк для разработки мобильных приложений и игр,

    Зачем мы пытаемся запихнуть JS в мобильник:
    — Один код для offline и online игрушек. Кросплатформенность.
    Что делает Tabris со своими шаблонами и компонентами? Он убивает нашу возможность переиспользования кода для десктопный версий.

    Файл .apk приложения занимает порядка 10Мб — больше, чем голая Cordova (~2-3Мб), но меньше проекта с Chrome WebView (~19Мб)

    Сколько должен весить готовый билд?
    — Не более 5 мб, а для HTML приложения и двух более чем достаточно.
    Это ограничение от заводов изготовителей на предустановленные приложения. Что делает Tabris? Он убивает эту возможность. Да и где вы, господа, видели голый WebView в 19 метров? Вот вам пример droidzoom.com/games/info.html?id=254 — всего 1.9 метра с кучей доп. фич внутри.

    Давайте теперь анимируем каждый элемент нашей коллекции.

    А давайте получим emei, mcc, mnc и попытаемся скрестить его с какой-нибудь SDK монетизации (https://fortumo.com/) или баннерной сетью (https://www.adfox.ru/). Мы сможем это сделать быстро и без боли? Насколько долго мобильному разработчику придется копаться в коде (с WebView это было очень легко и быстро)? Именно эти вопросы важны для тех, кто пихает JS в мобильники.
    Tabris.js — быстро знакомимся и пишем Hello World
  • +1
    Библиотека проигрывает MIDI, при том «богомерзкий IE конечно в пролёте». Но богомерзкий IE мог проигрывать MIDI ещё в версии 3.0 от 1996 года. 96 КАРЛ!!! (они тогда еще всех достали, т.к. сайты начали ставить фоновую музыку)
    Генерация звук задача редкая. А для игр важнее не генерировать, а одновременно проигрывать несколько mp3 и динамически изменять их громкость, в зависимости от расстояния до объектов. Ну а в общем, +1 за статью
    Интерактивная музыка в браузере
  • 0
    Т.к. взял первое, что под руку попалось. Если количество установок увеличится — буду менять алгоритм.

    зы: таки да :3
    Шифрование личной переписки. Пятничный пост
  • 0
    Если ключи остались в localStorage — оно дешифруется. Если ключи были удаленны по какой-то причине, то уже никак. В этом и фишка. Есть возможность более менее гарантированно уничтожить написанное в соц. сети.
    Шифрование личной переписки. Пятничный пост
  • 0
    Рисует Артем freelance.ru/gambolpuddy
    Переходим, пишем ТЗ, заказываем.
    Шифрование личной переписки. Пятничный пост
  • –4
    1. Исходники можно почитать, если установить плагин и открыть панель разработчика (F12) или посмотреть папку хрома, в которую он установится. Выкладывать на github смысла не вижу.
    2. Про OTR не знал.
    Шифрование личной переписки. Пятничный пост
  • 0
    Никак. Эта атака нецелесообразна для сайтов соц. сетей. Проще достать с localStorage ключики, или угнать уже расшифрованный текст с интерфейса.

    При любой атака и защите от неё нужно прежде всего рассматривать рентабельность. Маловероятно, что кто-то будет сильно замарачиватся с расширением, у которого 3.5 пользователя.
    Шифрование личной переписки. Пятничный пост
  • 0
    т.к. я
    … опасно некомпетенты в криптографии.

    Думаю через некоторое время заменю алгоритм шифрования на тот, который предложат комментаторы в ходе обсуждения.
    Шифрование личной переписки. Пятничный пост
  • 0
    вы создаете один приватный ключ на все диалоги пользователя.

    Нет, на каждый диалог — свой приватный ключ
    если Петя внезапно оказался сотрудником ФСБ.

    Если он сотрудник ФСБ, то знать ключи ему не обязательно. Переписку взломают с помощью терморектального криптоанализатора
    Шифрование личной переписки. Пятничный пост
  • –5
    Но тут не про блоки. Тут длинный текст, который нужно зашифровать открытым ключом. Мне кажется логично, что библиотека должна получить текст и вернуть шифровку, и довольно странно, что она не хочет этого делать.

    При том другая библиотека шифровала текст любой длины, но имела недостатки в других методах.
    Шифрование личной переписки. Пятничный пост
  • –2
    А что если собеседник будет использовать модифицированную версию плагина, которая не слушает команды и не удалаяет ключи? Что если собеседник записывает ключи из плагина?

    Значит это не среднестатистическая девушка / пользователь. И, возможно, не стоит вообще писать ему лишнее.
    Прочитав исходный код, я понял, что у автора нет понимания свойств RSA.

    Можно более подробнее? RSA я не писал, а использовал чужую библиотеку. Если она плоха, можно ее заменить.
    Шифрование личной переписки. Пятничный пост
  • +2
    да, но:
    • Если мой аккаунт угонит некий Вася Пупкин, прочесть личные сообщения он не сможет.
    • У меня теперь есть кнопка «Удалить сообщения», которая сотрет ключи у меня и у собеседника (например девушки). А значит, среднестатистическая мадам гарантированно удалит личные сообщения, если мне будет нужно (на самом деле, это наверное самая важная функция, т.к. вконтакт удаляет сообщение только у одного из собеседников).


    Во всех остальных случаях, всегда можно вывезти человека в лес и никакое шифрование не спасет.
    Шифрование личной переписки. Пятничный пост
  • 0
    Понял, Вы наверное имеете в виду процент Наташ относительно всего числа пользователей?

    Верно
    По какому словарю предлагаете выбирать популярные фразы в 25млн строк?

    А вот на этот вопрос ответить не могу, но алгоритм выборки примерно следующий:
    nik = {
        n: 1,
        ni: 1,
        nik: 1
        ik: 1,
        k: 1
    }
    
    tik: = {
        t: 1,
        n: 1,
        ni: 1,
        nik: 1,
        tik: 1,
        ik: 2,
        k: 2
    }
    

    и т.д. Для последнего логина у нас будут лидеры: «подстроки которые содержатся в максимальном количестве логинов»
    Анализ учетных записей одного (не)надежного email-сервиса
  • 0
    Не совсем то. Итого тут получится:
    52.1 + 31.6 + 16.3 = 100%
    

    а я имел ввиду вообще все логины. Понятно что фразы: «marina», «natasha», «nikita» будут в TOP50, но интересно, какие ещё фразы в логине популярны у пользователей.
    Анализ учетных записей одного (не)надежного email-сервиса
  • 0
    Интересно ещё узнать TOP фраз в логине, по принципу:
    marina_1
    marina_2
    marina_3
    nikita
    ----
    marina - 75%
    nikita - 25%
    
    Анализ учетных записей одного (не)надежного email-сервиса
  • –3
    Вывод:
    • верстать резиной;
    • для ограничений использовать EM;
    • убивать магию DPI-багов специальным мета-тегом:
      <meta name="viewport" 
          content="width=device-width, height=device-height,
          initial-scale=1.0, user-scalable=no, maximum-scale=1.0"/>
      


    спойлер
    <сарказм>
    А ещё можно изобрести метод «скрытых» посланий, оставляя шифрованную информацию в полупикселях и делая её визуально-видимой только на некоторых дисплеях.
    </сарказм>
    Пол-пикселя?
  • +2
    Мне кажется, что документация должна писаться сама по себе, без строгой привязки к коду. По крайней мере, все что попадалось из серии «автогенерация по комментариям» было ужасным:
    • код было невозможно читать, т.к. через строку шли комментарии.
    • документацию невозможно было читать, т.к. она собрана из кусочных комментариев кода, а не представляла собой отдельный рассказ с примерами и аргументами по архитектуре.

    Опять же Doxygen заставляет учить свою разметку, вместо стандартной для многих Javadoc
    Документируем код эффективно при помощи Doxygen
  • 0
    1. Какие изменения в архитектуре приложения у вас произошли, и с какими трудностями столкнулись при переходе к ООП-коду? (особенности верстки и т.п.)
    2. Можно ли при создании класса задать набор свойств? Есть ли их значение по умолчанию? Как вы присваиваете большое количество свойств?

    Пример:
    function Dog(name) {
        this.name = name || "Тузик"; // Когда таких свойств у объекта много, вы так же пишите или по другому?
    }
    
    Очень быстрые классы на JavaScript с красивым синтаксисом
  • 0
    И вновь удалены, вернете?
    База IP мобильных операторов
  • +8
    А теперь давайте посчитаем:
    1. Сколько тут конференций для разработчиков, на которых что-то конкретное говорят?
    2. Кто из организаторов проводит «не для галочки»?

    Вот смотрите, заходим например на сайт РИФ`а и пытаемся найти видео докладов с прошлой конфы. И видим надпись: «Материалы обрабатываются и будут опубликованы в ближайшее время.», а ведь сейчас январь 2015, а она была в апреле 2014.

    Или SPM («международная конференция в области управления IT-проектами») — список докладов есть, ни одного видео нет. И таких конференций больше половины.

    Ребята начинают пиариться ближе к дате, ставят высокую входную цену за билет, а после пропадают с концами до следующего года. Печаль.
    Конференции, которые ждут нас в 2015 году
  • +1
    Книга: «Сюрреализм на JavaScript»
    image
    Издательство: СИНЭЛ, Санкт-Петербург, 2014
    ISBN: 978-5-9905660-7-1
    Описание: Книга о разработке игр и приложений на JavaScript. В книге встречается множество отсылок к авторам различных публикаций и экспертам фронтенд-разработки. Также затрагивается тема кроссплатформенной разработки на JavaScript для различных устройств, XSS атаки, обфускация кода, и конвертирования HTML в EXE, HTA, CHM и т.п.

    Скачать в JSON: http://bakhirev.biz/book/files/Surrealism_on_JavaScript.json.zip
    Скачать в PDF: http://bakhirev.biz/book/files/Surrealism_on_JavaScript.pdf.max.zip
    Читать онлайн: http://bakhirev.biz/book/index.html
    Бесплатные книги по JavaScript
  • 0
    Они так долго их выкладывают, что хочется уже забрать исходники и самому смонтировать.
    Видео докладов с конференции DevConf 2014
  • +1
    1. Как перевести атрибуты элемента? (
    <img src="" title="{{title}}"/>
    
    будет работать?)
    2. Как автоматически переключить стили? (замена CSS файлов)
    3. Можно ли накладывать пачку json`ов? Например, сначала грузим:
    {
        name: "Имя" 
    }

    Потом грузим:
    {
        family: "Фамилия"
    }

    И получаем на выходе конфиг:
    {
        name: "Имя" 
        family: "Фамилия"
    }

    4. Можно ли задавать иерархию и вложения? Например:
    {
        name: {
            first: "Миша"
            last: "Катя"
        }
        family: "Фамилия"
    }
    
    {{ name.first }}
    

    5. Если у нас ключ перевода привязан к DOM, значит он сохранит ссылку на элемент в памяти. Если мы удалим DOM элемент у нас будет утечка памяти? Было:
    <div><div>{{name}}</div></div>
    

    Стало:
    <div></div>
    

    Система же локализации не оставит у себя ссылку на удаленный элемент?
    Локализация с AngularJS
  • +2
    Тут «реверс-монетизация» :) Готов платить по рублю за каждого читателя.
    Сюрреализм на JavaScript. Советы по разработке на NodeJS
  • +3
    Это пародия на Рене Магритт.
    Сюрреализм на JavaScript. Советы по разработке на NodeJS
  • +2
    отладка — это да, но т.к. у нас все обертки генерирует один модуль API — то и отключить все try/catch защиты во всех модулях можно с одного места. Та же самая тема с консолью — если она не нужна, то её можно перекрыть исправив только один файл.
    Сюрреализм на JavaScript. Советы по разработке на NodeJS