Как стать автором
Обновить
4
0
Павел @AxeFizik

.NET developer

Отправить сообщение

Оптимизация программ под Garbage Collector

Время на прочтение5 мин
Количество просмотров12K

Не так давно на Хабре появилась прекрасная статья Оптимизация сборки мусора в высоконагруженном .NET сервисе. Эта статья очень интересна тем, что авторы, вооружившись теорией сделали ранее невозможное: оптимизировали свое приложение, используя знания о работе GC. И если ранее мы не имели ни малейшего понятия, как этот самый GC работает, то теперь он нам представлен на блюдечке стараниями Конрада Кокоса в его книге Pro .NET Memory Management. Какие выводы почерпнул для себя я? Давайте составим список проблемных областей и подумаем, как их можно решить.


На недавно прошедшем семинаре CLRium #5: Garbage Collector мы проговорили про GC весь день. Однако, один доклад я решил опубликовать с текстовой расшифровкой. Это доклад про выводы относительно оптимизации приложений.


Всего голосов 40: ↑40 и ↓0+40
Комментарии4

Заблуждения программистов относительно времени

Время на прочтение3 мин
Количество просмотров90K
За последние пару лет я потратил много времени на дебаггинг чужих тестов. Это была интересная работа, иногда расстраивающая, но всегда поучительная. Кто-то может подумать, что в тестах нет багов, но конечно баги есть везде, и тесты не исключение.

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

На самом деле, я повидал так много заблуждений, которые оставляют след в чужих (и моих собственных) программах, что посчитал полезным составить список самых частых проблем.
Читать дальше →
Всего голосов 241: ↑218 и ↓23+195
Комментарии216

Горячие клавиши Unreal Engine, которые сделают жизнь левел-дизайнера проще

Время на прочтение6 мин
Количество просмотров66K
Горячие клавиши используют все. Банальные Ctrl+C и Ctrl+V, а сколько раз выручал Ctrl+Z? Ну а Alt+F4? А если вспомнить количество негативных отзывов, когда в новых MacBook Pro добавили тачбар и вырезали ряд командных клавиш?

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


Читать дальше →
Всего голосов 35: ↑35 и ↓0+35
Комментарии0

Если вы никого не злите, возможно вы не делаете ничего существенного

Время на прочтение3 мин
Количество просмотров27K
Это перевод статьи Оливера Эмбертона (Oliver Emberton) «If you’re not pissing someone off, you probably aren’t doing anything important». Оригинал можно найти здесь.

Невероятно, но ваши значимые действия склонны раздражать окружающих


Боретесь с лишним весом? — «Нужно принять и любить своё тело таким, какое оно есть!»
Спасаете детей в Африке? — «Свою страну спасать нужно!»
Нашли лекарство от рака? — «А где ты раньше был?»



Что бы вы ни делали, вы обязательно кого-нибудь разозлите, а это порой не так уж плохо. Позвольте я покажу, как полезно иногда быть козлом.
Читать дальше →
Всего голосов 48: ↑46 и ↓2+44
Комментарии15

Летняя интернатура Intel 0x7E3 ждет своих студентов

Время на прочтение2 мин
Количество просмотров4.8K
По стародавней традиции вот уже много лет подряд офис компании Intel в Нижнем Новгороде проводит летнюю интернатуру для студентов и аспирантов российских ВУЗов. В июле-августе этого года очередная группа счастливчиков получит возможность не только прослушать лекции крутейших разработчиков Intel, но и влиться в реальные проекты компании, внести свой вклад в развитие ее продуктов.


Заинтересовались?
Всего голосов 23: ↑22 и ↓1+21
Комментарии3

6 полезных ресурсов и сервисов для потенциальных эмигрантов в США, Германию и Канаду

Время на прочтение3 мин
Количество просмотров31K


С недавних пор я активно заинтересовался темой переезда за границу, и в связи с этим изучил существующие сейчас сервисы, которые оказывают помощь в переезде ИТ-специалистам. К моему удивлению, далеко не так много проектов помогают потенциальным иммигрантам. Пока что я отобрал шесть сайтов, которые показались мне интересными.
Читать дальше →
Всего голосов 55: ↑46 и ↓9+37
Комментарии34

Как сделать так, чтобы вашу англоязычную статью для Хабра прочитали десятки тысяч человек: 3 простых совета

Время на прочтение3 мин
Количество просмотров9.7K


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

В этом топике я собрал три простых совета по повышению читабельности хабрастатей и привлечению англоязычных читателей. Надеюсь, будет полезно.
Читать дальше →
Всего голосов 89: ↑83 и ↓6+77
Комментарии42

Полгода с разными беспроводными наушниками: что я выбрал

Время на прочтение7 мин
Количество просмотров125K


Я один раз надел по-настоящему беспроводные наушники, и кабели после этого, пусть даже это и гибкое оголовье на беспроводной гарнитуре, стали раздражать. Поэтому все новые уши вроде эппловских AirPods я воспринимаю с энтузиазмом и стараюсь погонять какое-то время. В 2018-м помимо AirPods я успел поносить Jabra Elite 65+, Samsung IconX 2018 и Sony WF-1000X. В итоге получилась сравнительная табличка под катом — в ней объективные данные. А все остальное — мои субъективные наблюдения и тема для обсуждения.
Всего голосов 54: ↑50 и ↓4+46
Комментарии73

Подборка: 4 полезных сервиса для потенциальных иммигрантов в США, Европу и другие страны

Время на прочтение3 мин
Количество просмотров27K


Тема переезда в Европу, США или другие приятные регионы мира довольно часто поднимается на Хабре. Я решил собрать в одном месте список онлайн-сервисов, которые будут полезны тем, кто всерьез задумался об иммиграции. На удивление, «живых» и активных стартапов в этой сфере не так и много. Для статьи я отобрал четыре проекта.
Читать дальше →
Всего голосов 52: ↑46 и ↓6+40
Комментарии13

Выбираем, наконец, бюджетный мультиметр с хорошим функционалом

Время на прочтение4 мин
Количество просмотров99K
Два года назад был опубликован пост с тестированием мультиметров. Цена протестированной модели Fluke 87-V начинается от 40 тысяч рублей, что для рядового пользователя находится за пределами разумного, за что автора закономерно отругали. Более того, часть пользователей разумно заметила, что для проверки батареек хватит и DT 838 за 300 рублей. Таким образом, были охвачены два полюса цен, а есть ли что-то за промежуточные деньги, но с хорошей точностью, осталось неясным. Если интересно — давайте посмотрим.

image
Читать дальше →
Всего голосов 65: ↑56 и ↓9+47
Комментарии141

Хотите вечных светодиодов? Расчехляйте паяльники и напильники. Или домашнее освещение самодельщика

Время на прочтение8 мин
Количество просмотров222K


Когда-то давным давно, когда я еще учился в школе, а на дворе был конец перестройки, мой дядя (заронивший в меня интерес к электронике) припер домой сумку вынесенного через проходную завода добра. Собственно, такие сумки он приносил домой вполне регулярно, пополняя запасы, хранившиеся в диване. Диван этот, как вы догадываетесь, манил, и иногда в отсутствии дяди я в него заглядывал с восторгом. Но кое-что из этой сумки в диван не попало, а попало в мои руки. Дядя мне вручил пачку — штук десять — макетных плат, и новенькую нераспечатанную коробку дефицитных, да и не дешевых в то время светодиодов. Причем светодиоды были не простые: вместо привычной маркировки АЛ-что-то там на коробке стоял код из четырех цифр, как я понял — они были экспериментальные. И они были яркие. По сравнению с привычными АЛ307 или АЛ310 — просто ослепительные. И их к тому же было много — штук 50.

Идея «куда это богатство применить» возникла моментально: светодиоды были распаяны на одной из макетниц — сколько влезло (влезли не все), и из них вышел великолепный красный фонарь для печати фотографий, который абсолютно не засвечивал фотобумагу даже в упор. Правда, тут же я узнал о том, что «светодиоды не греются» — это вранье, так что ток пришлось снизить вдвое, с 10 мА на светодиод до 5. А еще через полгода успешной эксплуатации узнал и о том, что «светодиоды не перегорают» — это тоже неправда: первый светодиод в сборке погас, оказался пробит. А со временем и весь фонарь пришел в негодность.

И вот сейчас я снова слышу из каждого утюга про «вечные» светодиодные лампочки, а дома за неполный год перехода на светодиодные лампы перегорела уже третья по счету.
Читать дальше →
Всего голосов 100: ↑94 и ↓6+88
Комментарии267

256 строчек голого C++: пишем трассировщик лучей с нуля за несколько часов

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

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

Внимание: просто рассматривать мой код, равно как и просто читать эту статью с чашкой чая в руке, смысла не имеет. Эта статья рассчитана на то, что вы возьмётесь за клавиатуру и напишете ваш собственный движок. Он наверняка будет лучше моего. Ну или просто смените язык программирования!

Итак, сегодня я покажу, как отрисовывать подобные картинки:


Читать дальше →
Всего голосов 241: ↑241 и ↓0+241
Комментарии124

Основные понятия стандартной библиотеки С++

Время на прочтение3 мин
Количество просмотров43K
Данная статья определяет основные понятия стандартной библиотеки С++. Она приводится для того чтобы на неё ссылаться в дальнейшем.

Наибольшей частью стандартной библиотеки С++ является библиотека STL (Standard Template Library – Стандартная Библиотека Шаблонов). Библиотека STL содержит пять основных видов компонентов:

  • контейнер (container): управляет набором объектов в памяти.
  • итератор (iterator): обеспечивает для алгоритма средство доступа к содержимому контейнера.
  • алгоритм (algorithm): определяет вычислительную процедуру.
  • функциональный объект (function object): инкапсулирует функцию в объекте для использования другими компонентами.
  • адаптер (adaptor): адаптирует компонент для обеспечения различного интерфейса.


Читать дальше →
Всего голосов 23: ↑16 и ↓7+9
Комментарии4

Декомпозиция проекта для frontend'a

Время на прочтение5 мин
Количество просмотров19K
image

Поговорим о том, что вы и так уже знаете.

Это моя первая статья на Хабре и я не писатель. Но взглянув на Фронтенд-2018: итоги года, руки потянулись в sublime и начали писать.
Читать дальше →
Всего голосов 29: ↑21 и ↓8+13
Комментарии115

Джентльменский набор программиста UE4, ч. 1

Время на прочтение3 мин
Количество просмотров50K


Давно хотелось составить список навыков и инструментов, которыми, по моему мнению, должны входить в «джентльменский набор» любого программиста под Unreal Engine 4. Буквально на днях, в чатике по UE4 я встретил такое:

> blueprints, animation dev, tech art, ai, multiplayer, editor extensions. первое, что пришло в голову

> Что приходит на ум: blueprints, animations, AI, material editor, widgets, slate, editor extensions, ue4 plugins, physics, lighting, rendering, c++
+ Сколько времени работал(а) с движком и страна, всё :)

В таких формулировках всё сказанное — лишь набор слов. Поэтому я собрался и составил вопросник для тех, кто хочет быть UE4-программистом, и который позволяет оценить свой уровень тем, кто уже считает себя продвинутым программером под UE4.
Читать дальше →
Всего голосов 29: ↑28 и ↓1+27
Комментарии5

Семантика копирования и управление ресурсами в C++

Время на прочтение28 мин
Количество просмотров55K

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



Читать дальше →
Всего голосов 45: ↑44 и ↓1+43
Комментарии83

Как использовать PVS-Studio бесплатно

Время на прочтение6 мин
Количество просмотров48K
PVS-Studio FreeМы хотим помочь миру программного обеспечения лучше познакомиться с инструментами статического анализа кода и повысить качество программного обеспечения. Мы предоставляем возможность бесплатного использования анализатора PVS-Studio студентам в учебных целях, индивидуальным разработчикам и коллективам энтузиастов.

Введение


Клиентами анализатора PVS-Studio являются отделы разработчиков различных компаний. Мы бы хотели, чтобы нашими клиентами были и индивидуальные разработчики. К сожалению, у нас ничего не получилось с экспериментальным продуктом CppCat. Мы не знаем, как построить успешный бизнес в сфере статического анализа кода, продавая персональные лицензии. Поэтому сейчас продукт PVS-Studio позиционируется исключительно как B2B решение.

Думаю, что наш провал с CppCat был предопределён. Мир диктует свои законы, и, например, тот же Coverity ориентирован на корпоративные лицензии. Однако, это не значит, что нужно исключать другие варианты взаимодействия с миром.

Мы долго думали, как помочь маленьким командам разработчиков или как распространять академические лицензии. На первый взгляд кажется, что самый простой путь — дарить лицензии тем, кто развивает бесплатное программное обеспечение. К сожалению, это решение не кажется нам правильным.

Стоит пояснить нашу позицию. Впрочем, если вам не терпится, вы можете сразу перейти к разделу «Бесплатная лицензия PVS-Studio». Если же читателю интересно узнать подробности, то предлагаю продолжить чтение.
Читать дальше →
Всего голосов 150: ↑138 и ↓12+126
Комментарии669

Замыкания в JavaScript для начинающих

Время на прочтение8 мин
Количество просмотров95K
Замыкания — это одна из фундаментальных концепций JavaScript, вызывающая сложности у многих новичков, знать и понимать которую должен каждый JS-программист. Хорошо разобравшись с замыканиями, вы сможете писать более качественный, эффективный и чистый код. А это, в свою очередь, будет способствовать вашему профессиональному росту.

Материал, перевод которого мы публикуем сегодня, посвящён рассказу о внутренних механизмах замыканий и о том, как они работают в JavaScript-программах.

Читать дальше →
Всего голосов 29: ↑25 и ↓4+21
Комментарии54

Договоры бывают разные, или на что вы подписались

Время на прочтение5 мин
Количество просмотров20K
Периодически отслеживаю на тостере вопросы по юриспруденции. И не раз сталкивался с тем, что у людей возникают проблемы из-за непонимания разницы между подрядом и услугами. Казалось бы, какая разница в этих ваших правовых дефинициях? Есть же контракт! А вот и нет, подходы отличаются весьма существенно. В некоторых случаях настолько кардинально, что лучше заранее понимать, на что подписываешься.

image

Что это вообще, блин, такое?


Читать дальше →
Всего голосов 69: ↑67 и ↓2+65
Комментарии76

Уязвимости из OWASP Top 10. A1: 2017 – Injections (Часть 1)

Время на прочтение4 мин
Количество просмотров8.4K
Описание уязвимостей — это одно, а вот попробовать найти уязвимость и поработать с ней — совсем другое дело. Именно для этих целей создаются и развиваются специальные приложения, в которых намеренно оставлены уязвимости. Если набрать в поисковой системе запрос «Purposely vulnerable app», вы найдете ни один десяток ссылок.

В этом цикле мы начнем разбирать уязвимости из OWASP Top 10, и в качестве полигона я буду использовать такое намеренно уязвимое приложение. В моем случае это будет OWASP Mutillidae II. Это не то, чтобы самый лучший вариант, но в нем уязвимости структурированы именно так, как нужно для образовательных целей.

Читать дальше →
Всего голосов 12: ↑9 и ↓3+6
Комментарии2

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность