Как стать автором
Обновить
35
0
Алексей Казаков @lexkazakov

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

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

Тестирование документации к программным продуктам

Время на прочтение6 мин
Количество просмотров36K
Когда-то в стародавние времена была у меня задача по тестированию документации к нескольким программным продуктам. Пользуясь гуглом, не удалось отыскать на раз-два информацию о том, какими качествами должна обладать документация и кому она нужна. Собирал все по крупицам. Давно принял решение написать об этом, и вот, пользуясь наличием праздничных дней, публикую.
Читать дальше →
Всего голосов 29: ↑29 и ↓0+29
Комментарии19

«Магическая константа» 0x5f3759df

Время на прочтение9 мин
Количество просмотров120K
В этой статье мы поговорим о «магической» константе 0x5f3759df, лежащей в основе элегантного алгоритмического трюка для быстрого вычисления обратного квадратного корня.

Вот полная реализация этого алгоритма:

float FastInvSqrt(float x) {
  float xhalf = 0.5f * x;
  int i = *(int*)&x;  // представим биты float в виде целого числа
  i = 0x5f3759df - (i >> 1);  // какого черта здесь происходит ?
  x = *(float*)&i;
  x = x*(1.5f-(xhalf*x*x));
  return x;
}

Этот код вычисляет некоторое (достаточно неплохое) приближение для формулы

image

Сегодня данная реализация уже хорошо известна, и стала она такой после появления в коде игры Quake III Arena в 2005 году. Её создание когда-то приписывали Джону Кармаку, но выяснилось, что корни уходят намного дальше – к Ardent Computer, где в середине 80-ых её написал Грег Уолш. Конкретно та версия кода, которая показана выше (с забавными комментариями), действительно из кода Quake.
В этой статье мы попробуем разобраться с данным хаком, математически вывести эту самую константу и попробовать обобщить данный метод для вычисления произвольных степеней от -1 до 1.

Да, понадобится немного математики, но школьного курса будет более, чем достаточно.
Читать дальше →
Всего голосов 212: ↑210 и ↓2+208
Комментарии188

Хороший код — наша лучшая документация

Время на прочтение3 мин
Количество просмотров13K
Привет Хабр! Предлагаю вашему вниманию свободный перевод статьи «Good code is its own best documentation» от Amit Shekhar.

image

Хороший код, как хорошая шутка — не требует объяснений.
Читать дальше →
Всего голосов 29: ↑16 и ↓13+3
Комментарии41

Чем «interface» отличается от «междумордия»: наш подход к документированию и локализации программных продуктов

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

Однажды в технической документации к Parallels Desktop нам потребовалось использовать фразу «жёсткий диск виртуальной машины». На английском языке это звучит: virtual machine hard disk. Наш прошлый технический писатель ошибся всего в одной букве в одном слове, но смысл получился диаметрально противоположный. Заметили мы это не сразу и в какой-то момент наша техническая документация, локализованная на многих языках мира, содержала нетленное: virtual machine hard dick. Был грандиозный скандал, после которого мы ужесточили проверку текстов. Под катом — рассказ нашего технического писателя Андрея Старовойтова о том, где обитают технические писатели, на что их ловить и как Parallels документирует и локализует свои продукты.
Читать дальше →
Всего голосов 42: ↑40 и ↓2+38
Комментарии18

Документация Linux ядра переходит на Python Sphinx

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

Linux ядро на сегодняшний день — самый динамичный, сложный, крупный проект с открытым кодом. Как же обстоят дела с его документацией? Существует прямая связь: чем качественнее и доступнее документация проекта, тем проще для посторонних изучить основы дела, освоиться и стать полноправным участником.




На семинаре Kernel Recipies мейнтейнер документации Linux ядра Jonathan Corbet рассказал о нынешнем положении дел с документацией и о том, как будет совершаться переход от анархии к порядку. Первые успехи в этом начинании уже есть. Некоторые документы были недавно конвертированы в ReStructuredText с помощью питоновского Сфинкса. О том как это было рассказано внутри.

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

Высокие технологии помогают быстро приготовить вкусный кофе

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


Нет, речь сейчас пойдет не о кропотливой работе генетиков над выведением нового сорта кофе, зерна которого станут, как это модно говорить «убийцами» всех старых сортов. В этой статье предлагаем поговорить о самом напитке, точнее, о том, как его готовить.

Собственно, рецептов и способов приготовления кофе очень много. В быту обычный человек использует 1-2 способа и 2-3 рецепта, редко больше. Устройства для приготовления при этом могут быть как самыми простыми (джезва), так и продвинутыми в технологическом плане. Ну а поскольку все мы гики, давайте в этом материале оценим, какой может быть кофеварка для гиков. В продолжении — подборка умных устройств, которые умеют варить кофе.
Всего голосов 21: ↑15 и ↓6+9
Комментарии72

Ворочаем большими объёмами документации

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


  • А как вы поддерживаете справку по API в актуальном состоянии?
  • Как можно организовать и хранить локализованные версии?
  • Вы проверяете текст на наличие недопустимых символов и на валидность разметки?
  • Как организовать проверку (вычитку) топиков?


Эти и другие вопросы я часто слышу от технических писателей на конференциях. Для небольших объёмов документации достаточно вручную пересмотреть документы и обновить/подставить/поправить всё, что нужно. А если объёмы документации выросли?

Наша документация выросла до более чем 154 000 документов только по .NET-линейке продуктов, из них около 140 000 документов — это справка по API. Около 8-10 тысяч топиков добавляются каждый мажорный релиз (т.е. дважды в год). В этой статье я расскажу как мы справляемся с такими объёмами.

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

Секрет успеха прост
Всего голосов 41: ↑41 и ↓0+41
Комментарии18

50 лет Бейсику!*

Время на прочтение2 мин
Количество просмотров25K
Команда Visual Basic присоединяется к поздравлениям Дартмутского Колледжа и разработчикам по всему миру, чьи жизни затронул этот прекрасный язык, и хочет поздравить Dartmouth BASIC (и, конечно, всё семейство языков Бейсик) с пятидесятилетием!

В нашей команде управляемых языков программирования так много тех, кто начинал свой путь с того или иного диалекта Бейсика, что мы не могли не поностальгировать и не показать привязанность к нашим истокам. В честь 50-летия дедушки Бейсика мы представляем вам QuickVB.

QuickVB основан на платформе .NET-компиляторов Roslyn (доступна в виде Nuget-пакетов), которая была представлена на конференции BUILD в этом году. Чтобы начать работу, просто распакуйте архив QuickVB.zip (ссылка в конце поста) с проектом, затем соберите и запустите проект в Visual Studio 2013. Предварительные версии Roslyn ставить не надо, менеджер пакетов Nuget сам скачает все необходимые зависимости.

Запустив QuickVB, вы увидите среду которая немного похожа на QuickBasic.



Читать дальше →
Всего голосов 103: ↑90 и ↓13+77
Комментарии122

Волшебный интерфейс

Время на прочтение11 мин
Количество просмотров33K
Powered Interface

Как-то на днях у меня возникла необходимость распечатать более десяти чеков из моей истории платежей, используя банкомат одного из крупнейших банков. Я перешёл в платежи, выбрал “История”, прокрутив скроллер списка до нужного платежа, выбрал его, а затем нажал кнопку “Операции” и выбрал печать. И так повторялось для каждого чека: каждый раз происходил переход в главное меню и всё начиналось заново. Я задумался — неужели, несмотря на обилие источников информации по UX, до сих пор тратятся огромные бюджеты на подобные неудобные интерфейсы? Почему разработчики не хотят делать интерфейс, позволяющий пользователю почувствовать себя волшебником, а делают пользователей беспомощными в достижении своих целей? Возможно, причина в том, что, несмотря на обилие теории, эти источники предоставляют мало примеров из реальных проектов.

Так как мы буквально на прошлой неделе завершили большой Web-проект, в котором как раз стояла цель разработки удобного интерфейса, я решил осветить в статье, на какие основные моменты при проектировании интерфейса стоит обратить внимание, и привёл примеры нашего решения.
Читать дальше →
Всего голосов 35: ↑33 и ↓2+31
Комментарии27

[ В закладки ] Алгоритмы и структуры данных в ядре Linux, Chromium и не только

Время на прочтение9 мин
Количество просмотров86K
Многие студенты, впервые сталкиваясь с описанием какой-нибудь хитроумной штуки, вроде алгоритма Кнута – Морриса – Пратта или красно-чёрных деревьев, тут же задаются вопросами: «К чему такие сложности? И это, кроме авторов учебников, кому-нибудь нужно?». Лучший способ доказать пользу алгоритмов – это примеры из жизни. Причём, в идеале – конкретные примеры применения широко известных алгоритмов в современных, повсеместно используемых, программных продуктах.



Посмотрим, что можно обнаружить в коде ядра Linux, браузера Chromium и ещё в некоторых проектах.
Читать дальше →
Всего голосов 158: ↑149 и ↓9+140
Комментарии15

Больше возможностей с новой версией продуктов DevExpress 14.2

Время на прочтение4 мин
Количество просмотров14K
Близится конец года, а это значит, что настало время представления очередной версии продуктов от компании DevExpress. В этот релиз 14.2 мы постарались включить многие интересные и полезные возможности для наших пользователей. Поскольку все улучшения и нововведения описать в рамках одной статьи тяжело, их можно посмотреть вот здесь, а под катом мы рассмотрим лишь некоторые из них. Для тех, кто не хочет долго читать, вот этот небольшой ролик:


Читать дальше →
Всего голосов 30: ↑27 и ↓3+24
Комментарии18

Как мы делали полярный график в DevExtreme

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


Недавно наша компания представила на публику новую версию продуктов, традиционно предложив большое количество контролов, фич и плюшек. Наша команда DevExtreme не стала исключением, и одним из результатов нашей плодотворной работы стал полярный график. Почему мы решили его сделать, с какими проблемами столкнулись, и что же у нас в итоге вышло?
Читать дальше →
Всего голосов 35: ↑30 и ↓5+25
Комментарии9

Как создать DbContext внутри Visual Studio, или «Что делать, если хочется странного?»

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


Начиная с версии 14.1, в XtraReports появилась встроенная поддержка ORM Entity Framework. Если раньше разработчику приходилось использовать стандартный компонент BindingSource для привязки элементов отчета к данным и затем вручную писать код для загрузки данных из EF модели, то сейчас ему достаточно только выбрать конкретный контекст (из текущего проекта или сборки, указанной в References проекта) и указать используемую строку подключения. Компонент EFDataSource сам создаст контекст с нужной строкой подключения и вернет данные отчету.
Читать дальше →
Всего голосов 35: ↑33 и ↓2+31
Комментарии3

Чему я научился у C#/.Net разработчиков на конференции Go#

Время на прочтение7 мин
Количество просмотров21K
Я сам разработчик C# и делал конференцию впервые. Расскажу, как я набил шишек и получил много удовольствия.

Это конференция GoSharpMoscow «День личной эффективности разработчика C#».
Она прошла в субботу 15 ноября. Это был мой «первый блин комом» или, как говорят за рубежом, MVP (Minimum Viable Product). Отчитываюсь, что удалось сделать:

  • заполнить зал на 100+%
  • сделать конференцию полезной для 95% участников
  • оправдать ожидания 70% участников.

Но самое ценное, что я получил от конференции – это обратная связь. Практически, это был TDD с экспериментами по формату и нетворкингу. Теперь наша команда знает, что нравится участникам, и каковы узкие места в организации конференции.


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

.NET Framework скоро Open Source и на *nix

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

Основное

  • Reference Source для .NET 4.6 перелицензируется под MIT;
  • В дальнейшем фреймворк будет с открытыми исходниками и поставляться по частям через NuGet, можно будет с приложением поставлять свою сборку, которая будет изолирована от всего остального;
  • Разработка переезжает на GitHub;
  • Скоро откроют исходники рантайма, включая RyuJit и сборшик мусора;
  • Для всего этого счастья планируется официальная поддержка никсов.





Mono не то чтобы больше не нужен, в дальнейшем с ними будут плотно сотрудничать для портирования, вероятно, этот стек будет некоторое время поставляться в составе Mono, так как открыто ещё далеко не всё и для полноценной работы потребуются вещи из его состава.
На закуску
Всего голосов 166: ↑155 и ↓11+144
Комментарии259

.NET Server Core, кросс-платформенная разработка, Visual Studio 2015 и другие анонсы Microsoft Connect()

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

Сегодня в Нью Йорке проходит конференция Microsoft Connect(), на которой анонсированы новые продукты и технологии. Выпущена предварительная версия Visual Studio 2015, специальная бесплатная редакция Visual Studio Community 2013, Visual Studio 2013 update 4, открывается исходный код .NET Server Core, выпущена предварительная версия .NET 2015, обновлены инструменты кросс-платформенной разработки на базе Apache Cordova, в Visual Studio появился эмулятор ОС Android. Это действительно новый этап в развитии инструментов разработки Microsoft, и мы рады рассказать о деталях.
Читать дальше →
Всего голосов 110: ↑104 и ↓6+98
Комментарии83

Google Play — работаем легально!

Время на прочтение4 мин
Количество просмотров179K
Привет, Хабр!



Сегодня, я хочу рассказать о том как сделать свое хобби по разработке Android-приложений пусть небольшим, но официальным бизнесом. О том, как легально получать деньги, заработанные на Google Play, о «страшном» валютном контроле и «таинственном» паспорте сделки.
Читать дальше →
Всего голосов 92: ↑88 и ↓4+84
Комментарии115

Разработчики и Microsoft: взгляды на будущее

Время на прочтение12 мин
Количество просмотров105K
Довольно очевидно, что Windows используется большим количеством людей, и что всем им система нужна для выполнения различных задач: от создания корпоративного сервера и установки на POS-терминалы до использования её на домашнем компьютере, и не только для этого. Многие понимают, что когда Microsoft обновляет Windows, ей приходится принимать множество компромиссных решений для обеспечения корректной работы своей операционной системы. Существует, однако, ещё один тип компромиссов, о существовании которого многие люди, пусть даже они и называют себя продвинутыми пользователями или администраторами, даже не догадываются. Это конфликт между разработчиками/программистами и самой Microsoft.
Читать дальше →
Всего голосов 113: ↑92 и ↓21+71
Комментарии135

То, чего еще никто не писал про Нокиа, Элопа и горящую платформу

Время на прочтение40 мин
Количество просмотров547K
Взявшись за этот пост, автор полностью отдает себе отчет. И в том что «набило оскомину». И что «только ленивый не кинул камень». И про то что «хватит уже, достали». Однако, вдоволь начитавшись доморощенных и не очень аналитиков, автор решил все-таки выразить собственное мнение, которое отличается от того общепринятого, что с некоей мазохистской истомой доселе перепечатывалось здесь и тут различными авторами, интерпретаторами и переводчиками. Вероятно кому-то будет интересно его прочитать.

Традиционно, для тех кто не любит много буков, краткие (более-менее) тезисы:

  • Будучи долгое время лидером на рынке, Нокиа сильно расслабилась и загадила свою внутреннюю инфраструктуру бюрократией, чрезмерным аутсорсингом и огромным количеством бесполезной «менеджерской прослойки».
  • Будучи долгое время лидером, Нокиа просрала потратила много денег на ненужные операционные расходы, поглощения никому не нужных фирм и на невменяемую модель аутсорсинга.
  • Полностью оторвавшись от реальности с уходом Йормы Оллилла, Нокиа, под управлением гениального юриста CEO Олли-Пекки Каласвуо, потратила кучу денег и усилий на создание бесполезной и неконкурентоспособной сервисной инфраструктуры Ovi. В результате этого, помимо денег, Нокиа потеряла уйму полезного времени, которое можно и нужно было потратить на развитие основного бизнеса — телефонов, софта и т.д.
  • Бюрократия и непотопляемая менеджерская прослойка в Нокиа, последовательно мигрировала из одного передового проекта в другой, в составе одних и тех же групп лиц, самореплицируясь в виде кучи формальных дебилопроцессов комитетов и управленческих групп, немного перетасовываемых с учетом специфики. В итоге именно эта бюрократия убила и Symbian, и Ovi, и MeeGo и остальные попытки догнать уходящий поезд своими силами.
  • Борьба с бюрократией и прослойкой в Нокиа зашла в полный тупик.
  • У великого CEO Элопа просто не было другого выхода кроме как прибить всю старую, неповоротливую и прогнившую организацию, путем создания альянса с Майкрософтом и переходом на Windows Phone. Тем самым все старые процессы, компетенции, технологии и самое главное — люди резко стали, что называется, «не в тему». И следовательно тем самым можно было под благовидным предлогом прибить этот табун менеджеров, бесконечно рисующих фэнтезийные роадмапы с единорогами и перекладывающих бумаги с левого края стола на правый.
  • Новая Нокиа, после 2011 года и старая Нокиа до 2011 года – это две РАЗНЫЕ организации. Их объединяет только общее название и операционка S40 для телефонов Asha.
  • Горящая платформа, это не Symbian и не MeeGo. Горящая платформа, это то состояние в которое Нокиа загнали годы расслабленного лидерства и тупоголовые амбиции предыдущего CEO – Олли-Пекки Каласвуо с кликой подкаркивающих вице-президентов.
  • С бюрократией и бизнес процессами, имеющимися на 2010 год, Нокиа не спас бы ни Андроид, ни половина населения Бангалора, пишущих на Qt под MeeGo. Даже если бы Apple бесплатно передал Нокиа iOS и все сервисы, то они бы выродились руками всяких Requirement Managerов в типичные Нокийские дизайн-химеры и в итоге загнулись через какое-то время.
  • То, что сделал великий CEO Элоп – было единственно возможным разумным решением, дающим хоть какие-то шансы на выживание. Вопрос «каким образом он это сделал?», остается открытым, равно как и вопрос «поможет ли это Нокиа?» в итоге. Не следует забывать, что нынешняя Нокиа — это совершенно новая организация, поэтому глупо предполагать, что она разом вернет себе лидерство. Как и всем новым организациям ей придется за это лидерство долго бороться.
  • Без ошибок и побед Нокиа никогда не было бы ни Андроида, ни Айфона. И Google и Apple тщательно проанализировали достоинства и недостатки более старших конкурентов перед тем как шагнуть вперед.

Все это в деталях — под катом. Предупреждаю что клевых картинок там нет. Сплошное графоманство и ёрничанье.
Читать дальше →
Всего голосов 548: ↑505 и ↓43+462
Комментарии330

Бесплатная регистрация в Windows Store для студентов и выбор банковской карты

Время на прочтение3 мин
Количество просмотров65K
Совсем недавно Windows Store стал открыт для всех разработчиков. Я хочу поделиться своим опытом бесплатной регистрации в Windows Store через DreamSpark как студент и рассказать о преимуществах и особенностях использования виртуальных банковских карт.


Читать дальше →
Всего голосов 31: ↑25 и ↓6+19
Комментарии32
1
23 ...

Информация

В рейтинге
Не участвует
Откуда
Helsinki, Southern Finland, Финляндия
Дата рождения
Зарегистрирован
Активность

Специализация

Technical Writer
Senior