Pull to refresh
4
0.1
Кирилл @jonic

Пользователь

Send message

Расчет потерь в MOSFET транзисторах

Level of difficultyMedium
Reading time6 min
Views6.6K

Приветствую!

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

Читать далее
Total votes 39: ↑39 and ↓0+39
Comments19

Стандарты и шаблоны для ТЗ на разработку ПО

Reading time7 min
Views747K

Введение


Недавно ко мне обратились, чтобы я посоветовал стандарты для написания технического задания (ТЗ) на разработку автоматизированных систем (АС) и программного обеспечения (ПО). Вот думаю, сейчас зайду в Яндекс, найду подходящую статейку и отправлю её. Но не тут-то было! Одной статьи, где перечисляются стандарты для ТЗ, включая шаблоны и примеры готовых документов, я не нашел. Придется сделать такую статейку самому…

И так, основные стандарты, методологии и своды знаний, где упоминается ТЗ или SRS (Software (or System) Requirements Specification):

• ГОСТ 34
• ГОСТ 19
• IEEE STD 830-1998
• ISO/IEC/ IEEE 29148-2011
• RUP
• SWEBOK, BABOK и пр.
Читать дальше →
Total votes 36: ↑34 and ↓2+32
Comments22

Реализация псевдо-3D в гоночных играх

Reading time40 min
Views50K

Введение


Почему псевдо-3d?

Зачем кому-то захочется создавать дороги в олдскульном стиле сегодня, когда каждый компьютер может на лету отрисовывать графику, состоящую из миллионов полигонов? Разве полигоны — не то же самое, только лучше? На самом деле нет. Полигоны действительно создают меньше искажений, но именно деформации в старых игровых движках дают такое сюрреалистическое, головокружительное чувство скорости, ощущаемое во многих дополигональных играх. Представьте, что область видимости управляется камерой. При движении по кривой в игре, использующей один из таких движков, похоже, что она заглядывает на кривую. Затем, когда дорога становится прямой, вид тоже выпрямляется. При движении в повороте с плохим обзором камера как будто заглядывает за выступ. И поскольку в таких играх не используется традиционный формат трасс с точными пространственными соотношениями, то можно без проблем создавать трассы, на которых игрок будет ездить с захватывающей дух скоростью. При этом не нужно беспокоиться о том, что объекты появляются на трассе быстрее, чем может среагировать игрок, потому что физическую реальность игры можно легко изменять в соответствии со стилем геймплея.

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

Стоит заметить, что не в каждой старой гоночной игре используются эти техники. В действительности описываемый в статье метод — это только один из способов создания псевдотрёхмерной дороги. В других случаях используются спроецированные и отмасштабированные спрайты или различные способы реального проецирования дороги. Степень смешения реальной математики с трюками зависит от создателей. Надеюсь, вам понравится изучение предложенного мной спецэффекта.
Total votes 92: ↑91 and ↓1+90
Comments18

Компьютерное зрение на примере приложения для IKEA. Часть 1

Reading time8 min
Views45K
Готовился к очередному хакатону, решил обновить свои знания в области компьютерного зрения. В прошлый раз задачу распознавания номеров авто в видеопотоке я так и не смог решить быстро «в лоб». Сейчас, поразмыслив, решил немного упростить задачу. Было много идей, листал фотки в телефоне и наткнулся на привычный кейс для всех, кто бывал в магазине ikea — фотографию с чеком, где указан номер товара и его положение на складе самообслуживания.

Читать дальше →
Total votes 68: ↑68 and ↓0+68
Comments14

Зачем нужны UITableViewController и UICollectionViewController

Reading time5 min
Views16K
Всем привет, меня зовут Артём, я iOS-разработчик. Сегодня хочу рассказать о подходах к использованию UITableViewController и UICollectionViewController.

Едва ли можно найти мобильное приложение, в котором не используется списочное представление данных. Существенную часть времени мы (iOS-разработчики) проводим с TableView или CollectionView. Именно поэтому критически важным является выбор подходов к использованию этих базовых элементов из соображений скорости разработки и стоимости дальнейшей поддержки создаваемых решений. Хочу поделиться выводами, к которым мы пришли с коллегами в Touch Instinct.

Статья рассчитана на разработчиков, которые работают с TableView (CollectionView), но почему-то не работают с TableViewController (CollectionViewController). Далее будет упоминаться только TableView(Controller), но все написанное касается и CollectionView(Controller) тоже.
Читать дальше →
Total votes 23: ↑21 and ↓2+19
Comments10

Отладка php в Visual Studio Code (Xdebug, Windows)

Reading time2 min
Views67K

В некоторых случаях может возникнуть необходимость отладки приложений на php. Visual Studio code предоставляет такую возможность при условии установки дополнительного расширения PHP Debug (marketplace, github).


Читать дальше →
Total votes 17: ↑15 and ↓2+13
Comments10

История одного осциллографа на stm32

Reading time5 min
Views45K


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

На тот момент у меня уже был опыт программирования микроконтроллеров AVR, поэтому решил запустить дисплей на моём любимом Atmega16. Дойдёт ли дело до создания осциллографа тогда ещё не знал, но то что буду в своих проектах использовать TFT знал точно, поэтому не стал искать сторонние библиотеки, а решил написать свою, которой пользуюсь и по сей день.
Читать дальше →
Total votes 23: ↑23 and ↓0+23
Comments45

Каким должно быть настоящее электронное правительство? Эстония показывает пример

Reading time5 min
Views28K
Система «электронного гражданства», онлайн-голосование, госуслуги в сети и многое другое — это современная Эстония



Два года назад Эстония анонсировала новую государственную программу: введение так называемого статуса «электронного гражданина» для граждан любых других государств. Став «электронным гражданином» Эстонии, любой иностранец получает большое количество возможностей по ведению бизнеса не только в этой стране, но и по всему миру. Среди них — открытие счета в эстонском банке, регистрация компании, получение электронной подписи для верификации своих документов в любой точке мира.

Регистрация компании на государственном онлайн-сервисе занимает всего лишь пару часов (рекорд – 18 минут). Для того, чтобы заполнить заявку, необходимо загрузить свою фотографию и коротко описать причины, которые побуждают человека запрашивать новый статус. После отправки заявки эта электронная форма проходит проверку в правоохранительных органах Эстонии. Если все хорошо, кандидата приглашают на встречу с представителями консульства (встреча может происходить в любом городе любой страны, где есть консульство Эстонии). И затем, если встреча прошла без проблем (а так обычно и бывает), через месяц кандидат на «электронного гражданина» получает свои документы.
Читать дальше →
Total votes 26: ↑20 and ↓6+14
Comments50

Поиск по Postgres с использованием ZomboDb и elasticsearch

Reading time3 min
Views19K

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


Да, существует sphinx, у него есть отличная интеграция с Postgres, но была цель найти решение для использования elasticsearch с Postgres. Почему? elasticsearch показывал хорошие результаты в некоторых case-ах проекта. Да и уже был сервер с ним для хранения логов logstash-а. Также было желание найти такой инструмент, который полностью возьмет на себя синхронизацию данных.


В результате всего на просторах сети был найден проект ZomboDb, который как раз подходил под требования.

Читать дальше →
Total votes 9: ↑9 and ↓0+9
Comments13

Особенности консольной инди-разработки в российской провинции

Reading time12 min
Views42K
Мне очень приятно, что мою последнюю статью про продвижение игры на Steam Greenlight, которую я писал на хабр чуть больше года назад, прочитали почти 50k раз и как мне кажется в итоге она была написана не зря. Тогда наша маленькая команда только-только получила зелёный свет. С того момента произошло еще много событий, но одним из самых интересных и значимых было то, что мы также прошли в программу ID@Xbox для независимых разработчиков, с возможностью выпуска своей игры на консоли Xbox One. И вот неделю назад игра все-таки увидела свет.

image

В этой статье я хочу поделиться интересной и возможно кому-то полезной информацией о том, с чем мы столкнулись пока готовили к релизу нашу игру на консоли Xbox One и Steam. А для этого я попробую раскрыть следующие темы:
  • Сколько может стоить разработка консольного проекта
  • Где мы взяли такие деньги
  • Как все подсчитать и иметь представление на что рассчитывать
  • Почему мы решили работать без издателя и внешних инвестиций
  • Как мы попали в Steam и на Xbox One
  • Почему нужно платить и получать возрастные рейтинги
  • В чем разница между Steam и Xbox — минусы и плюсы консольной разработки для инди
Читать дальше →
Total votes 70: ↑65 and ↓5+60
Comments34

Миграция сервиса виртуальных компаньонок на WebRTC

Reading time10 min
Views14K
Это история одного проекта по видеостримингу.

image

Интересный клиент


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

Через пару минут я увидел Ольгу, сопровождающую джентельмена азиатской наружности. На вид ему было около пятидесяти. На слегка морщинистой голове восседала серая шляпа с короткими полями. Они явно шли ко мне. Поравнявшись с кофейным автоматом, который уже журчал в стаканчик моим капучино, джентельмен произнес на ломаном русском: Здраствуйте, я относительный проекта WebRTC. Моя зовут Суконако, и протянул руку. Что привело сюда этого японца, подумал я, ответив на рукопожатие, и пригласил гостя в свой кабинет. Дальше нам пришлось перейти на английский язык, который нам обоим был более понятен.

Собираем требования


Я: Итак, чем могу быть полезен?

С: Мы работаем с 2000 года в стриминге и Flex для большого количества пользователей. Мы используем Adobe Flash Media Server (FMS) и сейчас хотели бы использовать WebRTC.

Я: Можно подробнее о том, чего вы хотели бы достичь использованием WebRTC-сервера?

С: Нам требуется обычный медиасервер, который может принимать видеопотоки от одного пользователя и передавать их другим пользователям. Мы хотим видеочат.

Я: Без проблем, мы можем сделать решение на базе одного из WebRTC-серверов.

С: Adobe FMS нас полностью устраивает. Мы хотели бы расширить круг наших пользователей на WebRTC, не убирая FMS. Он работает хорошо.
Читать дальше →
Total votes 33: ↑29 and ↓4+25
Comments12

Как парсить интернет по-гусиному

Reading time3 min
Views40K
“Распарсить сайт” — словосочетание, которое повергало меня в уныние всего полгода назад. В моей голове сразу же проносились знакомые проблемы с настройкой фантома, или возней с селениумом. Мысли о возможной необходимости подменять useragent, пагинации и других действиях во время парсинга заставляли откладывать эту задачу в долгий ящик…

Но всё изменилось, когда я встретил Гуся. Мир парсинга заиграл новыми красками. Под катом я хочу показать несколько простых примеров, которые могут помочь распарсить непростые сайты.

Кстати, написав парсер, Гусь решил снять фильм про это, пока что вы можете насладиться трейлером:



Читать дальше →
Total votes 30: ↑20 and ↓10+10
Comments11

Краудфандинг для самых маленьких (ч. 1)

Reading time9 min
Views27K

Краудфандинг — относительно молодое явление, успевшее завоевать огромную популярность за рубежом, пришедшее к нам всего пару лет назад. Как это ни странно, но очень многим до сих пор не понятна основная суть данного явления и даже предназначение краудфандинговых платформ. Других мучают вполне объяснимые опасения, поэтому они предпочитают обходить эти платформы стороной. Для того, чтобы пролить свет на данное явление и развеять сложившиеся вокруг него мифы и легенды, я решил посвятить этому серию статей. Я не являюсь представителем той или иной краудфандинговой платформы и не рекламирую какие-либо краудфандинговые ресурсы.
Читать дальше →
Total votes 6: ↑4 and ↓2+2
Comments11

Самодельный сканирующий лазерный дальномер

Reading time13 min
Views75K

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

Читать дальше →
Total votes 48: ↑48 and ↓0+48
Comments44

Создаем новую OS. Действительно новую, реально операционную, и правда – систему

Reading time23 min
Views86K

О создании новой операционной системы в последнее время говорят немало, особенно в России. В сумме размер всех публикаций по данной теме наверняка превышает размеры исходного кода любой операционной системы. Так что остается только одна проблема – от этих разговоров никаких новых OS не появляется. Всё, что предъявляется публике (и на что тратятся бюджетные деньги), на поверку оказывается кастомизированными сборками OS семейства Linux, а значит, не содержит ничего принципиально нового. Но, если о чем-то не говорят, это не значит, что его не существует.
В этой статье – проект принципиально новой OS, созданный в нерабочее время одним из ведущих сотрудников (Principal Engineer) российского подразделения Intel.
Читать дальше →
Total votes 88: ↑85 and ↓3+82
Comments158

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

Reading time8 min
Views23K


Многие из вас уже слышали о нашем проекте Tarantool. Это СУБД, или, попросту говоря, база данных с сервером приложений внутри. Tarantool — проект с открытым исходным кодом, и с ним может работать кто угодно. Развивается этот проект уже больше восьми лет. В Mail.Ru Group Tarantool активно используется более чем в половине продуктов: в Почте, Облаке, Моём Мире, Агенте и др. Все сделанные нами доработки этой БД мы коммитим обратно на GitHub, и сообществу доступна та же самая версия БД, что и нам. Сейчас у нас есть клиентские библиотеки почти ко всем языкам, мы сильно прибавили в этом направлении за последний год. Часть из них написана сообществом, часть — нами. Если появляется какая-то более эффективная библиотека, то мы просто делаем её официальной. Мы стараемся, чтобы всё было прямо из коробки — и БД, и библиотеки.

Одна из главных особенностей Tarantool заключается в объединении свойств БД и кэша. БД — это нечто надёжное, с транзакциями, серверным языком запросов. А кэш быстрый. И оба этих мира органично сливаются воедино в Tarantool. Эта БД предназначена для использования в высоконагруженных проектах и для работы с горячими данными.
Читать дальше →
Total votes 47: ↑43 and ↓4+39
Comments38

Отслеживание устройств через пассивное прослушивание WiFi

Reading time7 min
Views112K
За последний год мне попадалось много историй использования пассивного отслеживания WiFi. В основном все сосредотачиваются на вопросах безопасности и приватности, но мало кто рассказывает, как это работает. Я сделал целый проект Casual Encounters и могу поделиться информацией о работе системы, о том, как избежать слежки, и как её построить (в исследовательских целях, разумеется). Не пробуйте повторить это дома.
Читать дальше →
Total votes 17: ↑13 and ↓4+9
Comments7

Как происходит рендеринг кадра в GTA V

Reading time16 min
Views118K
Серия игр Grand Theft Auto прошла долгий путь с момента своего первого релиза в 1997 году. Примерно 2 года назад Rockstar выпустила GTA V. Просто невероятный успех: за 24 часа игру купило 11 миллионов пользователей, побито 7 мировых рекордов подряд. Опробовав новинку на PS3, я был весьма впечатлен как общей картинкой, так и, собственно, техническими характеристиками игры.

Ничто так не портит впечатление от процесса, как экран загрузки, но в GTA V вы можете играть часами, преодолевая бескрайние сотни километров без перебоев. Учитывая передачу солидного потока информации и свойства PS3 (256 Mb оперативной памяти и видеокарта на 256 Mb), я и вовсе удивился, как меня не выбросило из игры на 20-ой минуте. Вот где чудеса техники.

В этой статье я расскажу о проведенном анализе кадра в версии для ПК в среде DirectX 11, которая съедает пару гигов как оперативки, так и графического процессора. Несмотря на то, что мой обзор идет со ссылкой на ПК, я уверен, что большинство пунктов применимо к PS4 и в определенной степени к PS3.

Анализ кадра


Итак, рассмотрим следующий кадр: Майкл на фоне любимого Rapid GT, на заднем плане прекрасный Лос-Сантос.

image

Осторожно! Трафик!
Читать дальше →
Total votes 164: ↑158 and ↓6+152
Comments65

Как работают замыкания (под капотом) в JavaScript

Reading time11 min
Views76K
Привет, Хабр!

Мы в Хекслете используем JavaScript не только для очевидных задач во фронтэнде, но и, например, для реализации браузерной среды разработки (наш опен-сорсный hexlet-ide) на React'е. У нас есть практический курс по JavaScript, и один из уроков там посвящен замыканиям. Это важная тема не столько в рамках JS, сколько в программировании вообще. Мы освещаем ее и в других курсах.

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


Я использую замыкания уже достаточно давно. Я научился их использовать, но не до конца понимал как они на самом деле работают, что происходит «под капотом». Что это вообще такое? Википедия не очень помогает. Когда замыкание создается и уничтожается? Как выглядит реализация?

"use strict";
 
var myClosure = (function outerFunction() {
 
  var hidden = 1;
 
  return {
    inc: function innerFunction() {
      return hidden++;
    }
  };
 
}());
 
myClosure.inc();  // возвращает 1
myClosure.inc();  // возвращает 2
myClosure.inc();  // возвращает 3
 
// Ага, круто. А как это реализовано?
// И что происходит под капотом?
Читать дальше →
Total votes 54: ↑47 and ↓7+40
Comments11

Две задачи HeadHunter на Data Science Week: попробуйте решить сами

Reading time5 min
Views33K
В конце августа после серии бесплатных лекций на Data Science Week 2015, организаторы решили провести двухдневный дататон (datathon) – соревнование, где команды программистов и аналитиков решали бизнес-задачи из области Data Science.

На дататоне было три задачи, две из которых подготовила команда HeadHunter и одну компания OZON. Это было, сразу скажу, не самым простым заданием, потому как большая часть наших данных конфиденциальна. Никто не захочет, чтобы программисты и аналитики упражнялись на реальных резюме или закрытых данных по вакансиям. Но кое-что мы все же собрали. Для проверки результатов организаторы придумали метрики и написали чекеры. А победили на дататоне эти ребята:



Прямо здесь и сейчас я предлагаю вам испытать свои силы и решить три задачи, с которыми ребята бились на дататоне. Чекеры для проверки и все файлы прилагаю.
Читать дальше →
Total votes 35: ↑32 and ↓3+29
Comments3
1
23 ...

Information

Rating
2,961-st
Location
Казань, Татарстан, Россия
Date of birth
Registered
Activity