• Компилятор Ангуляр в 200 строчек кода
    0
    А ссылочку на JS библиотеку, где это решено, дадите?
  • Компилятор Ангуляр в 200 строчек кода
    0
    В том, то и прикол, что данные нужны в момент преобразования, а не после. К примеру, условие нужно или нет отображать эту картинку в принципе может браться из настроек по HTTP запросу. Т.е. для гибкости в моём случае нужно, чтобы любая часть шаблона вычислялась произвольным выражением. В этом и плюс Ангуляра, что у него везде в условиях, циклах итп вставляется кусок JS. А что это за кусок — обращение к данным или сложные функции — по барабану!
  • Компилятор Ангуляр в 200 строчек кода
    0
    Классная вещь! а может она работать не только со данными — объектами, но и вызывать функции, втч асинхронные? К, примеру, мне нужно в отчёт картинку сгенерить или диаграмму и параметры этой картинки или диаграммы я только в шаблоне указываю, возможности предварительно нагенерировать все варианты картинок, сами понимаете, нет.
  • Компилятор Ангуляр в 200 строчек кода
    0
    Я, конечно, присматривался к различным шаблонизаторам, но ряд причин побудил написать своё
    1) Хотелось именно Angular синтакс из-за перспективы делать в будущем компиляцию на Ivy, чтобы в случае такого перехода не сломалась обратная совместимость
    2) Размер — ряд шаблонизаторов, которые я смотрел (Blaze, Handlebars) имели размер > 50Kb
    3) Асинхронность — возможность вставлять в шаблон данные из RxJs Observable, например, грузить картинки по HTTP
  • Обзор САПР на геометрическом ядре C3D
    +3
    Мы перевели весь функционал на C3D достаточно давно, однако идентичность геометрических моделей достигнута только в последней, 10 версии Базиса. На всякий случай еще оставлена опцию переключения между ядрами, которую мы планируем окончательно убрать в следующей версии.
  • Protobuffers — это неправильно
    0
    Производительность и типизация — это основная функциональность подобных систем. В Protobuf проделана огромная работа, чтобы выжать производительность до максимума. А вы показываете проектик с 87 коммитами заброшенный больше года назад.

    А тем кому надо передать дату-время туда-сюда protobuf не нужен.
  • Protobuffers — это неправильно
    0
    Вы серьезно?))
  • Protobuffers — это неправильно
    0
    Нет кодогенерации
  • Protobuffers — это неправильно
    +5
    Понимаю что это перевод, но всё же, зачем выступать против? Выступайте за… что нибудь))) Конечно ProtoBuf развивался стихийно, этим объясняется несовершенство его системы типов.
    Вопрос, а какие есть альтернативы, которые обеспечат такую же статическую типизацию (на основе кодогенерации) и производительность?
  • Как работает Headless Chrome
    0
    Люди тоже просят WebGL в headless-режиме
    Он работает уже год в Headless без всяких проблем
  • Почему GitHub не поможет нанять разработчика
    +27
    Забавно, что статья так подробно описывает количественные характеристики (и вполне логично находит их бесполезными) и обходит молчанием качественные. К примеру, всего один, но весомый PR в репозиторий с серьезным code review позволит многое сказать о кандидате, начиная от умения разобраться в чужом коде до способности взаимодействовать с другими разработчиками.
  • Рассказ о том, как создать хранилище и понять Redux
    0
    Желания исполняются) Спустя неделю я нашел отличную статью про Redux тынц
  • Рассказ о том, как создать хранилище и понять Redux
    +1
    Именно, что можно было понять что именно неудобно.
    PS: круто если пример будет на Angular т.к его ChangeDetection способствует упрощению кода
  • Рассказ о том, как создать хранилище и понять Redux
    +4
    Почти все описания Redux начинаются со слов «управление состоянием в современных приложениях — сложная штука, поэтому мы придумали Redux, чтобы решить её» Вот, к примеру, здесь. Т.е. первым предложением создается проблема, а следующим предлагается великолепное решение. И решение выглядит как серебрянная пуля, которая необходима всем разработчикам SPA. Очень хочется увидеть пример, где демонстрируются, а не декларируются преимущества Redux и описываются области применения.
  • Чем хорош (и чем плох) Typescript: опыт UI-разработчиков
    0
    Разные виды типизации нужны для достижения одной цели: обнаружение ошибок до запуска проекта и они элементарно сравниваются по усилиям, необходимыми для внедрения и по количеству обнаруженных ошибок.
  • Весь веб на 60+ FPS: как новый рендерер в Firefox избавился от рывков и подтормаживаний
    +2
    overdraw — это не банковский термин (превышение лимита), а композиция двух слов over и draw, т.е перекрашивание
  • Дизайн-система Acronis. Часть первая. Единая библиотека компонентов
    +2
    Выглядит и красиво и грамотно! Не планируете опубликовать вашу библиотеку компонентов?
  • Тайминговая атака на Node.js — когда время работает против вас
    +5
    То что какой-то человек задает такой вопрос на собеседовании не доказывает его корректность. Попробуйте измерить время такого запроса и вы приятно удивитесь. Поймите, что расходы на массу абстракций, которые существуют поверх физической пересылки байт между компьютерами столь высоки, что сравнение 5 или 50 байт пароля просто утонут в этом море.
  • Тайминговая атака на Node.js — когда время работает против вас
    +10
    Пример мне кажется некорректным. Это немыслимо, чтобы время исполнения запроса на сравнение пароля зависило бы от длины пароля, если конечно длина пароля меньше тысячи символов. Накладные запросы на обработку сетевого запроса, выделение под него динамических объектов в JS, паузы GC, работа других процессов в системе, пападание-непопадание строки в кэш процессора, запрос к БД и степень её разогретости. Есть тысячи факторов от которых зависит время исполнения запроса и для простого пароля его длина, мне кажется, занимает почетное последнее место.
  • Результаты опроса «Каким бы вы хотели видеть Toster.ru?»
    +2
    Когда-то пользовался и задавал пару вопросов. Сейчас зашел и минут 5 тыкал по интерфейсу чтобы просто увидеть список МОИХ вопросов и ответов (как на SO)… не нашел. Только случайно догадался тыкнуть на иконку профиля. Неплохо бы как-то акцентировать внимание на этом элементе
  • Сравнение взятия из кэша одного и того же файла с помощью fs.readFileSync и fs.readFile (и чтения множества файлов)
    0
    Отлично! и выводы из статьи стали гораздо точнее!
  • Сравнение взятия из кэша одного и того же файла с помощью fs.readFileSync и fs.readFile (и чтения множества файлов)
    +2
    1) Мне думается, что вы здесь намеряли не скорость чтения файла, а скорость взятия файла из кэша. Нужно читать разные файлы, а не один и тот же
    2) Какой смысл теста без указания ОС, типа носителя и файловой системы? Там тоже результат может отличаться в разы!
  • Canvas & SVG: работаем с графикой
    0
    думаю WebGL из сравнения лучше убрать или подходить к сравнению столь далеких друг от друга технологий в более узком контексте, нежели «работа с графикой»
  • Как мы делали совершенно новый КОМПАС-3D: История в семи главах → часть 2
    0
    я заметил на последнем коллаже, как дерево модели на WPF отрисовано поверх 3D модели. Интересно, как получилось это скрестить без просадки производительности?
  • Как мы делали совершенно новый КОМПАС-3D: История в семи главах → часть 2
    0
    Интересно, с переходом на WPF удалось оставить графический конвейер на OpenGL или перепрыгнули на DirectX?
  • Через тернии к облакам: создание облачного сервиса для 3D проектирования и дизайна помещений на базе ядра C3D и WebGL
    0
    ЦА? Время покажет. UX? Надо сказать, этот пласт сейчас затмевает горизонт.
  • Через тернии к облакам: создание облачного сервиса для 3D проектирования и дизайна помещений на базе ядра C3D и WebGL
    0
    1)В Sketchup набросать план получится за час, у меня, скажем, за 10 мин. в спец программе намного быстрее работать. Там вы работаете с полигонами, а тут с розетками, окнами и стенами
    2)Моя фишка — точные размеры и быстрое редактирование, увы Sketchup — Paint по меркам САПР
    3)С веб-версией идёт куча плюшек вроде оценки нужных стройматериалов прямо с телефона в магазине
  • Через тернии к облакам: создание облачного сервиса для 3D проектирования и дизайна помещений на базе ядра C3D и WebGL
    0
    Довёл скорость создания 3D-плана до 8м2/мин,
    А что это за параметр и как вы его измеряете?) У меня скорость создания 100 гигакирпичей в секунду))))

    А если серьезно, то дьявол кроется в деталях и если вы занимались этой темой, то сможете увидеть между строчек кое какие особенности. Я для примера покажу одну вещь: моделирование планировки, в сравнении с указанным вами Планопланом:
    1) В планоплане задется размер стен, у меня — размер комнат, вы можете заметить это на иллюстрациях. Разница принципиальная: в купленой квартире измерить абстрактный размер между центрами стен не представляется возможным. И когда вы проектируете сложное многокомнатное помещение с кривыми стенами построить модель по размерам, которые вы измеряете — не самая простая вещь.
    2) Возможность моделирования единообразно на видах и в 3d. Т.е. для меня разница между видом и 3d лишь в положении камеры, в большистве аналогов моделирование возможно лишь в плане. У меня все функции доступны на любых проекциях.
    3) Из предыдущего пункта легко вытекает проектирование многоэтажных конструкций именно в 3D
    4) Динамическое редактирование всех размеров прямо на модели и уже сейчас реализовано 7 различных спобов
    Ведь самое интересное начинается, когда построив план вы построили и обнаружили, что пару размеров нужно поменять и эти инструменты будут востребованы.
    5) Корректный расчет площадей всех помещений, с учетом монолитных колонн. В планоплане я вижу расчет абстрактной площади по серединам толщины стен
    6) Полноценное моделирование стен, без разбивание их на части касательными стенами

    Это я на вскидку перечислил возможности только касательно проектирования плана помещения. В других частях тоже есть немало интресных моментов.
  • Через тернии к облакам: создание облачного сервиса для 3D проектирования и дизайна помещений на базе ядра C3D и WebGL
    0
    Нет, нет архикад это совсем другой уровень))) Моя цель — продукт для новичков.
  • Через тернии к облакам: создание облачного сервиса для 3D проектирования и дизайна помещений на базе ядра C3D и WebGL
    0
    да, видел, но не понимаю к чему вы его упомянули? Он не адресует ни одну из описанных мной проблем — я там не увидел ни текста, ни толстых линий, ни нормального wireframe. Cсылок на batching я тоже не нашел. Плюс к этому зависимость от Java мне не очень подходит.
  • Логика сознания. Пояснение «на пальцах»
    0
    Скажите, вы уже раскрывали или может быть планируете следующие моменты:
    1) Инстинкты — как они формируются в организме, в какой памяти хранятся и как они в целом вписываются в вашу модель
    2) Согласно вашей концепции, есть ли принципиальная разница между логикой сознания человека и животного… насекомого?
  • В ногу со временем: Используем JWT в ASP.NET Core
    +1
    Ребят, а чем вам refresh_token не угодил-то? Вместо этого городить Redis и постоянно на каждый чих делать туда запросы на блеклист токена это моветон.

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

    В итоге ваш велосипед приводит к минимуму 2 обращениям к двум разным базам на каждый запрос… Оптимизация в действии.
  • Аутентификация и авторизация в микросервисных приложениях
    +1
    Отличная статья! Есть пожелание использовать для примеров Identity Server 4 у которого уже вышел первый релиз-кандидат и подробнее рассмотреть авторизацию и аутентификацию в клиентских SPA.
  • Авторизация с помощью Facebook и Vkontakte в одностраничном приложении на Backbonejs + Express
    0
    У вас, как я понимаю, Facebook авторизация сделана по старинке через всплывающее окно? Почему не через редирект?
  • Modest — разработка открытого движка HTML рендера на «голом» Си
    +9
    Дело в том, что SPA приложения практически не загружают HTML c сервера — они его генерируют через JS. Т.е. результирующую страницу вы не получите, пока не отработает весь JS код. В результате получается, что 90 процентов время загрузки страницы тратится на исполнение JS и его взаимодействию с DOM. Создание современного движка JS с поддержкой фич вроде async и генератов видится мне нетривиальной задачей даже для опытной команды. А подключение любого из современных движков JS будет и сложно и неэффективно, т.к. все они (SpiderMonkey, Edge, V8) разработаны с учетом использования из С++ кода и сами на нем же, очевидно, и написаны.

    Так что я искренне вам рекомендую посмотреть на https://github.com/servo/servo
  • Modest — разработка открытого движка HTML рендера на «голом» Си
    +1
    На современных HTML страницах много JavaScript, а во все более набирающих популярность SPA их ОЧЕНЬ МНОГО, на порядок больше CSS кода и производительность в таком случае упирается в производительность JS (а точнее, зачастую в скорость манипуляции DOM через JS). Неужели вы планируете поддерживать JavaScript тоже? И даже если так, то затупы JS сведут все оптимизации с парсингом HTML/CSS в никуда.
  • SRL — Simple Regex Language
    +7
    А то, что приятные глазу команды процессора в машинном коде заменены на всякие операторы и идентификаторы у вас неприятных ассоциаций не вызывает?)
  • Почему JavaScript работает быстрее, чем С++?
    0
    Ожидал увидеть в статье важный на мой взгляд тезис, что основное преимущество JavaScript (и других интерпретируемых языков) состоит в компиляции на компьютере пользователя и наличии интерпретатора с профайлером перед компилятором в машинные коды. Первое позволяет компилировать код в самые эффективные команды, доступные на запускаемой архитектуре. А второе позволяет эффективно оптимизировать основной путь исполнения кода. Ну и конечно JS позволяет делать эффектные оптимизации с помощью кодогенерации.
  • Примеры кода с летней школы по Node.js и JavaScript в КПИ
    +2
    Тогда вам стоит задуматься о переходе к ассемблеру или к brainfuck-у на худой конец и использовании розг в учебном процессе.
  • Эффективное использование Github
    0
    Только вчера обнаружил еще одну приятную вещь: если на главной странице проекта вызвать диалог выбора ветки (клавиша w) и ввести несуществующее название, то он предложит создать новую ветку с набранным именем