Тестирование JS. Кармический Webpack

Автор: admin от 3-03-2016, 23:51, посмотрело: 152

Тестирование JS. Кармический Webpack

Привет!

Пару месяцев назад я писал пост, о том как научить webpack для spa. 
С того момента инструмент шагнул вперед и оброс дополнительным количеством плагинов, а так же примерами конфигураций.

В этой статье хочу поделиться опытом смешивания гремучей смеси webpack + jasmine + chai + karma.

Категория: Программирование » Веб-разработка

 

Информационные сообщения в 1С. Как это можно сделать

Автор: admin от 3-03-2016, 21:16, посмотрело: 120

Информационные сообщения в 1С. Как это можно сделать
Здравствуйте.
Сегодня речь пойдет о реализации подсистемы выдачи информационных сообщений пользователю. Стандартный способ проинформировать о чем-либо пользователя – это использование процедуры «Сообщить». Однако в некоторых случаях, хочется создать отдельный список, который не будет замусоривать своим выводом основной список сообщений платформы. Также желательно иметь возможность выделять цветом различные сообщения (в зависимости от их типа, например). В общем, расскажу, как это получилось сделать у меня. Приведенное в статье решение можно встроить в свою программу без какой-либо адаптации.

Категория: Программирование, Веб-разработка

 

Векторная графика бесплатно — подборка сайтов

Автор: admin от 3-03-2016, 19:47, посмотрело: 217

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

1. Freepik


www.freepik.com

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

Векторная графика бесплатно — подборка сайтов

Категория: Программирование » Веб-разработка

 

Тепловые завесы: применение, устройство и виды

Автор: admin от 3-03-2016, 19:44, посмотрело: 1643

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

Категория: Железо » Сделай Сам

 

Шустрый потокобезопасный менеджер кучи и голый Си

Автор: admin от 3-03-2016, 18:39, посмотрело: 77

При планировании любой задачи мы стремимся как можно точнее конкретизировать запросы, определить исходные данные и по возможности избавиться от любой неопределенности, мешающей просчитать конечный результат. Однако при разработке высокоуровневой логики не всегда уделяется внимание таким простым казалось бы вещам, как размещение данных в памяти, менеджмент потоков, обрабатывающих наш функционал, особенности реализации динамических массивов или бинарный интерфейс процедур. Когда написанная программа предельно лаконична и оптимизирована, но при этом работает не так быстро, как хотелось бы, закономерно возникает вопрос: «а что еще можно улучшить?» Насколько можно доверять низкоуровневому инструментарию, написанному профессиональными программистами, безусловно разбирающимися в своем деле, но при этом ни черта не понимающими в тех идеях, что вы хотите реализовать? Фрагментация, зацикленность, прерывания, события, объекты, уведомления, каждое новое знакомство с Си-шными или WinAPI-шными библиотеками подталкивает к очевидной мысли: «зачем такая громоздкая реализация?» Почему нельзя просто сделать менеджер кучи выделяющий память за строгое количество шагов? Использовать real-time статистику при работе с разделяемыми данными, вместо сложной системы семафоров и уведомлений? Наращивать динамические массивы без переразмещения и обращаться к случайной ячейке за одинаковое время после любого количества реформаций? Миссия не кажется невыполнимой. Осталось только попробовать.

Предлагаю широкому вниманию процедурную реализацию менеджера кучи, способного выделять диапазоны памяти заказных размеров. Цикл поиска при этом не превышает нормированных пределов. Работа с памятью состоит всего из двух процедур: memAlloc и memRecycle, выполняющих связанные функции. Потокобезопасность поддерживается с помощью дополнительного инструментария, в свою очередь состоящего еще из нескольких процедур. О распараллеливании немного поподробнее: принцип базируется на ассоциированной блокировке разделяемых данных, схожих с блокировкой шины методами Interlocked, однако без блокировки шины. Весь процесс сводится к созданию позиционных стопоров, являющихся по сути диапазонами памяти, содержащими однобайтовые метки состояний каждого из потоков в доступном пуле. Размер выводится из этого соотношения. Поскольку я использую восьмипотоковый пул (а больше мне не нужно), то позиционные стопоры у меня занимают 8 байт (64 бита). Перед перезаписью разделяемой информации стопор блокируется исполняющим потоком, записывая метку в байт под смещением своего номера в пуле. Другие потоки не будут работать с разделяемыми данными пока стопор не обнулится, выполняя Sleep, либо откладывая задачу, либо считая овечек в цикле, на выбор программиста.

Клоны Interlocked процедур — threadExchange, threadCompareExchange и threadIncrement выполняют те же функции, что и оригиналы. Однако при работе внутри потока из пула не блокируют шину. Вместо этого используется ассемблерная процедура, задача которой сводится к двухступенчатой проверке стопора и установке собственной метки (стоит отметить, что при работе вне пула, в потоке не имеющим номера, все же используется блокировка шины). Ее реализация ниже:

Категория: Программирование

 

Юзабилити линч: ищем уязвимости интерфейса в CMS Diafan

Автор: admin от 3-03-2016, 18:27, посмотрело: 115

Юзабилити линч: ищем уязвимости интерфейса в CMS Diafan

Привет, Хабр. Я уверен, ты всё-таки еще не умираешь! Постараюсь, чтобы данный материал внёс свои 5 коп в фонд развития “Хабр — живи!”.

Я достаточно длительное время занимаюсь дизайном интерфейсов. Люблю своё дело и каждый раз ищу любую возможность развиваться. Поиск ошибок и уязвимостей интерфейсов в рабочих системах, прототипах и приложениях нахожу такой возможностью. Обнаружив несколько типичных ошибок у других, выводы точно отпечатаются в подсознании, что позволит не наступать на подобные грабли вновь в собственной повседневной рутине.
Прошу заранее не судить строго. Обзор носит чисто субъективный характер. Взгляд на данную систему изложен исключительно через призму личного профессионального опыта. Обрадую тем, что будет не только критика — будут предлагаться и решения!

Категория: Программирование » Веб-разработка

 

Requests и Responses в CodeIgniter 4

Автор: admin от 3-03-2016, 17:09, посмотрело: 142

Requests и Responses в CodeIgniter 4

Лонни Эцелл (Lonnie Ezell), основной разработчик CodeIgniter 4, поделился в своем блоге информацией о новом функционале четвертой версии фреймворка.

Категория: Программирование

 

Обзор примитивов синхронизации

Автор: admin от 3-03-2016, 17:03, посмотрело: 71

Синхронизация нужна в любой малтитредной программе. (Если, конечно, она не состоит из локлесс алгоритмов на 100%, что вряд ли). Будь то приложение или компонента ядра современной операционной системы.

Меня всё нижесказанное, конечно, больше волнует с точки зрения разработки ядра ОС. Но почти всё применимо и к пользовательскому коду.

Кстати, ядра старых ОС в примитивах синхронизации не нуждались, поскольку преемптивной мультизадачности внутри ядра в старые добрые времена не было. (Уж за Юникс 7-й версии я отвечаю. Не было.) Точнее, единственным методом синхронизации был запрет прерываний. Но об этом позже.

Сначала перечислим героев. Мне известны следующие примитивы синхронизации:

User/kernel mode: mutex+cond, sema, enter/leave critical section.
Kernel only: spinlock, управление прерываниями.

Зачем всё это нужно, читатель, наверное, знает, но всё же уточним.

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

Категория: Программирование, Системное администрирование

 

Опубликованы записи докладов конференции ALM Summit 2016

Автор: admin от 3-03-2016, 16:40, посмотрело: 359

18 февраля в Москве, мы традиционно провели нашу ежегодную конференцию по решениям Microsoft в области управления жизненным циклом разработки программного обеспечения. В этом году ALM Summit состояла из основного трека и круглых столов, на которых были затронуты следующие тематические направления:


  • Инфраструктурные решения ALM в облаке, которые позволяют быстро развернуть комплекс ALM инструментов и в считанные часы запустить проект.

  • Методологические рекомендации по ведению проектов, SCRUM, Kanban, Agile, сбор информации о ходе проекта, ее анализ и отчетность.

  • Обеспечение качества разрабатываемых систем с помощью тестирования, как построить эффективную среду тестирования с помощью инструментов Team Foundation Server и Team Foundation Services в облаке.

  • Эксплуатация разрабатываемых систем, обеспечение обратной связи для повышения качества.


Как обычно, мы транслируем и записываем конференцию.

И рады сообщить, что записи доступны для просмотра!
Записи докладов конференции ALM Summit 2016

Категория: Компании » Microsoft

 

Теория и практика парсинга исходников с помощью ANTLR и Roslyn

Автор: admin от 3-03-2016, 16:39, посмотрело: 258

В нашем проекте PT Application Inspector реализовано несколько подходов к анализу исходного кода на различных языках программирования:


  • поиск по сигнатурам;

  • исследование свойств математических моделей, полученных в результате статической абстрактной интерпретации кода;

  • динамический анализ развернутого приложения и верификация на нем результатов статического анализа.


Наш цикл статей посвящен структуре и принципам работы модуля сигнатурного поиска (PM, pattern matching). Преимущества такого анализатора — скорость работы, простота описания шаблонов и масштабируемость на другие языки. Среди недостатков можно выделить то, что модуль не в состоянии анализировать сложные уязвимости, требующие построения высокоуровневых моделей выполнения кода.

Теория и практика парсинга исходников с помощью ANTLR и Roslyn


К разрабатываемому модулю были, в числе прочих, сформулированы следующие требования:


  • поддержка нескольких языков программирования и простое добавление новых;

  • поддержка анализа кода, содержащего синтаксические и семантические ошибки;

  • возможность описания шаблонов на универсальном языке (DSL, domain specific language).


В нашем случае все шаблоны описывают какие-либо уязвимости или недостатки в исходном коде.

Весь процесс анализа кода может быть разбит на следующие этапы:


  • парсинг в зависимое от языка представление (abstract syntax tree, AST);

  • преобразование AST в независимый от языка унифицированный формат;

  • непосредственное сопоставление с шаблонами, описанными на DSL.


  • Данная статья посвящена первому этапу, а именно: парсингу, сравнению функциональных возможностей и особенностей различных парсеров, применению теории на практике на примере грамматик Java, PHP, PLSQL, TSQL и даже C#. Остальные этапы будут рассмотрены в следующих публикациях.

    Категория: Программирование

     
    Назад Вперед