• Простейший пул в Unity

    Поскольку в Unity операции создания и удаления объектов являются затратными и при их использовании могут появляться микрофризы, по крайней мере, на мобильных устройствах, то желательно создавать объекты заранее и уже потом манипулировать менее дорогостоящими операциями. В данном примере будет описан простейший пул без подгрузки элементов при их нехватке, нехватка компенсируется созданием заранее достаточно большого количества объектов. Таким образом, мы избавляется от микрофризов ценой дольшей загрузки в начале и большего потребления памяти.
    Читать дальше →
  • Про инструменты внутренней автоматизации бизнеса

    Преамбула


    В последнее время встречаю много руководителей в IT, которые проповедуют, что ТЗ, таск-трекеры, аналитики, архитекторы и документация в разработке никчемные "вещи" и не стоит на них тратить время и средства. И ладно если бы люди делали внешние проекты, там это как-то я еще могу обосновать, но когда дело касается внутренней автоматизации бизнеса, тут я не могу с ними никак согласиться и говорю, что Вы просто не умеете их "готовить".


    Читать дальше →
  • Энтропия и управление проектами

    Пролог


    В даннной статье для упрощения восприятия под энтропией я буду иметь ввиду некий аналог хаоса и неопределенности.

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

    Человек же является уникальным существом, так как все время уменьшает энтропию создавая различные артефакты.

    Итак, рассмотрим проект как деятельность по уменьшению энтропии.
    Читать дальше →
  • Несколько причин изучать Revit, если ты инженер-строитель

    Доброго времени суток. Данная статья будет весьма полезной как для строителей и архитекторов, так и просто, для общего развития. Данный текст может показаться крайне очевидной истиной для жителей Москвы и Санкт-Петербурга, но поверьте, в регионах всё совсем иначе, идём с большим отставанием.

    image
    Читать дальше →
  • Адаптивные изображения с помощью javascript

    Я думаю с вопросом адаптивных изображений все верстальщики часто встречались. Большинство статей, которые я прочитал, мне не подошли. В каждом случае были свои минусы. Приходилось писать дополнительные стили css или загружать разные изображения на определенных разрешениях. Почему-то универсального метода я не нашел. Это было похоже на то, как сделать блоки одинаковой высоты. Вроде бы можно сделать это несколькими способами, но лучший способ — это js.

    Да, изображения. С панели администратора постоянно заливались изображения не той ширины или высоты. И в на страницах смотрелось очень криво. А если одно и тоже изображение будет на разных страницах и в разных блоках.

    image

    В общем я решил эту задачу с помощью доброго старого js.
    Читать дальше →
  • Кватернионы для чайников

    В данной статье на конкретном примере рассматриваются особенности применения различных методов поворота 3D объекта в пространстве. В частности, сравнивается применение углов Эйлера и кватернионов.


    Данная статья пригодится вам, если вы уже прочитали определение кватерниона и давно ищете наглядный материал для того, чтобы понять, зачем придумали кватернионы, и чем же они отличаются от углов Эйлера.

    Читать дальше →
  • Новые возможности Visual Studio 2017

    Доброго времени суток. Как известно, 7 марта 2017 года вышла новая версия крайне мощной и удобной среды разработки Visual Studio.

    Для начала стоит отметить рассказать о процессе установки Visual Studio 2017. Разработчики постарались и сделали вполне приятный и интуитивно-понятный установщик. Там же можно удалить или изменить установленный продукт. Все компоненты сгруппированы по логике.
    Читать дальше →
  • Немного о Java Collections Framework. Часть 1

    В англоязычном сегменте сети достаточно много статьей по этой теме. Чаще всего они несут поверхностный, ознакомительный характер и иногда довольно сложно из-за языкового барьера уловить суть изучаемой темы. Надеюсь, наше небольшое путешествие в Java Collections Framework принесет вам некоторое разъяснение. Чем больше предметной информации, тем легче собрать всю мозаику воедино, отбрасывая не понятные выкладки и описания. Для более эффективного изучения количество примеров является критичным. Так же дело обстоит и с коллекциями, обойдем стороной интерфейсы, и перейдем сразу к классам, их реализующие.

    Класс ArrayList


    «Не стоит недооценивать важность метафор. Метафоры имеют одно неоспоримое достоинство: описываемое ими поведение предсказуемо и понятно всем людям…”.
    Фернандо Дж. Корбати.


    Я полностью согласен с Фернандо Дж. Корбати о важности метафор в изучение определённой предметной области. Так как программирование является смесью математики и искусства, использование метафор имеет наивысший приоритет. Для объяснения сути назначения ArrayList мы будем использовать «Транспортную» метафору. Представьте, что это обычный массив, похожий на семейный автомобиль, купленный с расчётом на количество членов семьи.



    Если у нашей семьи родиться ещё один ребёнок, то придется покупать более вместительный автомобиль. Предположим, родители заведомо не знают, сколько детей у них будет и какой ещё вместимости необходим новый автомобиль. Есть вероятность прогадать и зря потратить сбережения. Так вот, ArrayList подобна городскому транспорту. Здесь нет ограничений в вместимости. Каждый в состоянии доехать из пункта A в пункт B. Поэтому если отец семейства не уверен или не знает о количестве будущих детей, он выберет городской транспорт, или в нашем случае ArrayList. Данный класс имеет три конструктора, мы будем разбирать самый простой. Давайте напишем код.
    Читать дальше →
  • Генерирование PDF в ASP.NET Core

    Долго ли, коротко ли, вместе с новой Visual Studio 2017 в релиз вышел ASP.NET Core. Тулинг лишился приставки preview, как и все инфраструктурные сборки, поставляемые Microsoft'ом. На мой взгляд, фреймворк получился отличным, а история с cjproj=>xproj=>project.json=>csproj и поломанная совместимость при переходе с RC1 на RC2 — это всё же разумная плата за скорость развития. Ну да ладно, опустим дела минувших дней, и вернёмся к текущим реалиям.

    А реалии таковы, что есть задачи, и есть инструменты которые их решают. В частности, передо мной встала задача генерирования PDF-документов средствами ASP.NET Core. «Хмм… Наверняка уже есть что-то готовое...», — подумал я. Как бы не так. Вернее готовые библиотеки для этого есть, но платные, а вот чего-то OpenSource'ного нет. «А как же iText?», — спросите вы. «AGPL», — ответит вам страничка с лицензией на гитхабе. Для OpenSource проектов бесплатно, а для коммерческого использования, извольте заплатить. Ну что ж, раз нет инструмента, решающего мою задачу, значит я сделаю его сам.
    Читать дальше →
  • Универсализация классов сущностей в CMS 1C-Bitrix

    Я веб-разработчик и так сложилось, что я работаю именно на Битриксе. Свое нытье и недовольство в адрес этой CMS я опущу, т.к. об этом уже написано достаточно. Здесь я хочу поделиться решением одной проблемы, которую встретил на своем пути, работая с сущностями в Битриксе, а именно с неуниверсальностью кода.

    image
    Читать дальше →
  • Выявляем узкие места symfony

    Symfony — очень популярный php фреймворк, плюсы которого заключаются в прекрасном разделении кода на бандлы, DI, профилировщике, поддержке сторонних модулей. Однако же он очень медленный.
    Был у меня проект на самопальном PHP фреймворке, самодельном twig-подобном шаблонизаторе без кеширования, потом он был переписан на symfony. Результаты такого преобразования оказались очень печальными: 1000 req/s превратились всего лишь в 250 запросов в секунду (production mode). Было решено выявить самые тормозные моменты этого фреймворка и попробовать ускорить его.
    Итак начнем с Hello world на чистом PHP, Hello world в symfony контроллере, а также для сравнения — статика nginx, nodejs, tomcat.
    Читать дальше →
  • Бесконечный ряд Фибоначчи

    Привет житель Хабра! Сегодня я хочу поделиться с тобой решением простой школьной задачки с небольшим дополнением. Для нахождения бесконечного ряда Фибоначчи (даже больше чем long).

    Это моя первая статья и пожалуйста не судите строго. Все коды я буду приводить на Java. И так начнем:

    Все мы знаем, стандартный школьный алгоритм для нахождения ряда Фибоначчи до N-го числа и этот алгоритм таков:
    Читать дальше →
  • Microsoft добавит новые меры безопасности UEFI в Windows 10

    В прошлых публикациях, посвященных улучшениям безопасности Windows 10 [1,2,3,4], я неоднократно хвалил Microsoft за эти полезные нововведения. Новые механизмы безопасности помогают более эффективно бороться с эксплойтами. Пока очевидно, что Microsoft все больше делает ставку на новые технологии защиты от эксплойтов, основанные на виртуализации Virtualization Based Security, при этом добавляя более современные метрики безопасности и вынося выполнение критических по безопасности операций в отдельные виртуальные машины с высоким уровнем привилегий.

    На сей раз речь пойдет о безопасности прошивок UEFI. Известный гуру внутреннего устройства Windows Alex Ionescu опубликовал у себя в твиттере скриншот дополнительных требований безопасности UEFI, которые должны поддерживаться прошивками начиная с Windows 10 1703. Как известно, эта версия Windows 10 и может получить название очередного существенного обновления Redstone 2.

    Читать дальше →
  • Проблема бесплатного SSL от Cloudflare и ее решение

    Когда начал использовать бесплатный SSL от Cloudflare я конечно читал что на бесплатном тарифе SSL поддерживается «Most modern browsers», но наивно подумал что «Most modern browsers» это почти «All browsers». Увы, это далеко не так. Лично у меня во всех браузерах и на всех устройствах все сразу заработало как надо, я на радостях еще и HTTP с концами отключил (поставил серверный редирект с HTTP на HTTPS). А вот пользователи сразу начали жаловаться что не могут зайти на сайт, выдает ошибку вроде «На сайте используется неподдерживаемый протокол». Первую жалобу посчитал еденичным случаем, и отправил пользователя обновлять браузер. Но следом появилась аналогичная жалоба еще от одного пользователя. А потом еще, и еще, и еще. А ведь далеко не все могут догадаться как пожаловаться админу сайта который вообще не открывается. Реальное количество отказов в доступе думаю было намного больше чем количество поступивших жалоб.

    В общем пользователей пользующихся браузерами не попадающими под категорию «Most modern browsers» оказалось не так мало, чтобы отказываться от них ради бесплатного SSL от Cloudflare. Но и от SSL или Cloudflare отказываться тоже не хотелось.
    Читать дальше →
  • Алгоритмизация и моделирование взаимоотношений с клиентами – новый CRM

    Видела здесь несколько толковых переводов с Harvard Business Review и решила воспользоваться примером и перевести то, что близко мне самой, и, надеюсь, покажется интересным и полезным читателям Хабра. Перевод не дословный, а, скорее, пропущенный через призму личного опыта и восприятия проблематики, прошу простить мне мелкие отступления и подмену образов местами. Оригинал доступен по ссылке.

    В дословном переводе тема звучит как «Автоматизация взаимоотношений с клиентами – новый CRM». На мой взгляд это не совсем корректно.

    image

    Наша цифровая вселенная растет экспоненциально. Увеличение количества информации к 2020 году ожидается до 44 зеттабайт. (Для справки 1 зеттабайт равен 1 000 000 000 000 гигабайтам)

    Компании пытаются использовать этот огромный объем данных таким образом, чтобы сделать нашу жизнь лучше. В потребительском мире организации уже анализируют и используют получаемые данные в режиме реального времени для своих целей: интернет-магазины прогнозируют поведение покупателя и адаптируют последовательность и расположение товаров на экране в соответствии с предпочтениями клиента; финансовые организации в доли миллисекунд выявляют и предотвращают мошеннические операции; медицинские учреждения используют накапливаемые массивы данных для более эффективной диагностики и лечения пациентов, и это только несколько примеров.
    Читать дальше →
  • Задача о делении круга на три равных по площади части двумя отрезками

    Ещё в начале изучения геометрии в школе, то есть в 7 или 8 классе я придумал задачу на построение, которую никто из того, кому я её предлагал, так и не смог решить.

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

    Несколько месяцев назад ко мне явилось алгебраическое решение данной задачи, приведённое под катом.
    Читать продолжение
  • Автоматизация. Настройка Voip телефонов Fanvil

    В сети много разрозненной информации по автоматизации процесса настройки телефонов, но крайне мало законченных тутариалов. Тут на примере телефона Fanvil F52 хочу показать один из вариантов того как, полностью автоматизировать настройку и регистрацию телефонов Fanvil.
    Читать дальше →
  • Реализация HQoS на фиксированных портах Juniper MX80/MX104

    Широко известной новостью в узких кругах стало появление в релизе Junos 16.1 механизмов расширенной очередизации на фиксированных 10G портах платформ MX80/MX104.

    Как это иногда случается, техническая документация по новым возможностям выходит с некоторой задержкой, даже сейчас разделы посвященные этой теме оставляют ощущение недосказанности. К счастью, коллеги из московского представительства Juniper на конференции Juniper Networks Summit помогли найти ответы, за что им большое спасибо.
    Читать дальше →
  • Lo-fi юзабилити тестирование. Часть 1: фундаментальные знания

    Lo-fi (low fidality — низкая точность)

    Достаточно большое количество людей не используют юзабилити тестирование по тому, что это кажется сложным, затратным и долгим. Они не знают, что юзабилити-тестирование можно запустить за пол дня подготовки и оно обычно решает 80% вопросов, которые имеет продукт. Все, что Вам понадобится для этого — бумага, карандаш и компьютер.

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

    Наша оценка продукта субъективна. Она зависит от многих факторов: внешний вид, сходство с уже знакомыми нам продуктами и многое другое. Пока нет абсолютной меры качества юзабилити. но можно заметить, что есть продукты, которыми пользоваться интуитивно проще, а есть запутанные. Чаще всего “удобные” продукты имеют большую тенденцию к успеху.

    Так что же мы подразумевается под “юзабилити” или “удобство пользования”?

    загрузить фото бесплатно

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