Search
Write a publication
Pull to refresh
608
4
Андрей Карпов @Andrey2008

Директор по развитию бизнеса

Send message

Klocwork — впечатления от двухнедельного тестирования

Reading time5 min
Views7K
Не успел я поделиться впечатлениями от PVS-Studio, как сразу же последовали обвинения в рекламе. Что ж, расскажу о своем первом опыте использования систем static code analysis.

Так получилось, что первой системой, с которой я столкнулся, стал Klocwork. Это произошло лет 8-9 назад, когда я работал в украинском филиале одной словенской компании. Тогда анализатор запускался в головном офисе, мы же лишь получали экспортированные в эксель результаты. Но даже в таком виде, помнится, меня приятно удивляло то, насколько хорошо находились потенциальные (а порой и реальные) проблемы.

И вот (уже тоже в далеком 2010 году), увидев на Embedded World стенд того самого Klocwork-a, подошел порасспрашивать их насчет триал-лицензии для «попробовать». Спустя какое-то время получил от них е-мейл с вопросом: «Вы интересовались, все еще хотите?».

Читать дальше →

Еще одно тестирование PVS-Studio

Reading time6 min
Views3.3K
Интерес к статическим анализаторам кода у меня уже давно, с первого знакомства с Klocwork где-то лет шесть назад. Кроме него, довелось некоторое время поработать с PCLint. И вот теперь немного потестировал PVS-Studio. (А на очереди – Parasoft и Coverity).

Тестирование я провел исключительно из любви к искусству – интересно было попробовать еще один анализатор.
Читать дальше →

Джон Кармак о статическом анализе кода

Reading time4 min
Views14K
«Самой важной вещью, которую я сделал как программист за последние годы — это начал агрессивно применять статический анализ кода. — пишет Джон Кармак в статье, опубликованной на AltDevBlogADay. — Не так важны сотни серьёзных багов, которые удалось предотвратить, сколько смена ментальности и моего отношения к надёжности ПО и качеству кода».

Джон Кармак рассказывает о различных инструментах, которые пытался использовать в течение своей карьеры и о тех выводах, к которым пришёл в итоге.
Читать дальше →

О разработке специальной версии сайта Госдумы для людей с нарушениями зрения

Reading time8 min
Views2K
Из серии статей о новинках на сайте Государственной Думы. Предыдущие: первая, вторая и третья.

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

Адрес спецверсии: spec.duma.gov.ru

Всю разработку специальной версии можно логически разделить на 4 этапа:
  1. Анализ действующих стандартов и ГОСТ-ов;
  2. Анализ существующих решений;
  3. Обобщение проанализированных данных;
  4. Разработка сайта.
Но вначале, приведем некоторые цифры по проблеме зрения в России и мире.
Читать дальше →

Взлом с продолжением

Reading time4 min
Views44K
Одно время я работал на free-lance.ru. С утра я обычно мониторил заказы, а после обеда непосредственно работал. Однажды я наткнулся на заказ, сумма за выполнение которого была очень аппетитной. Я сразу отписался по заказу, и буквально через минуту получил ТЗ на проект в личку. Поначалу меня удивила скорость ответа, и то что меня сразу выбрали исполнителем, но с другой стороны такое уже частенько бывало. Файл с ТЗ мне показался странным, в него была встроена ссылка на flash ролик. Проверив файл на вирусы и получив ответ, что угроз не обнаружено, я таки усыпил свою бдительность и щелкнул по ссылке на flash ролик. А щелкать не стоило.
Читать дальше →

Сон и продуктивная деятельность

Reading time8 min
Views106K

Вступление


Доброго времени суток, %habrauser%! Думаю, в этой статье я не открыл ничего нового. Просто меня самого заинтересовала тема продуктивного сна. Несколько последних лет я был приверженцем мнения, что сон – это бесполезная трата времени, к сожалению необходимая организму. И посему, я максимально старался сократить время сна. Но чем больше я это делал, тем больше я начинал походить на зомби. И тогда я стал искать альтернативу. И результатом обобщения всей найденной мной информацией и стала эта статья. Итак, поехали!
Читать дальше →

История одного уральского стартапа

Reading time30 min
Views2.7K


Я решил написать подробный рассказ (серьезный, несмотря на картинку) о том, как появился и развивался наш проект 9facts, как мы представляли его Стиву Бланку, участвовали во всероссийском инновационном конвенте и двух StartupPoint-ах, а так же обо всех проблемах, с которыми столкнулась наша команда. История еще далека от завершения — пожалуй, сейчас у нас наиболее сложный и драматичный период: уже известно, что именно не работает, и примерно ясно, в какую сторону нам стоит двигаться, но времени на принятие решений не так много, так как первые "поднятые" нами инвестиции подходят к концу. Думаю, такая история вполне типична для стартапа.

Приготовьтесь — рассказ будет длинным, но я постараюсь сделать его интересным.
Читать дальше →

C++11 — removed and deprecated

Reading time3 min
Views15K

Все уже в курсе выхода нового стандарта С++11, на Хабре уже было несколько статей о его фичах. А я вот решила написать о том, что из С++ в новой версии было исключено и по каким причинам. Оно, может быть, кажется и не таким важным, как новые возможности, но, как говорится: «Тот, кто не знает истории, обречён на повторение ошибок».
Читать дальше →

Анонс самой большой и интересной рекламной статьи (70 листов) про статический анализ кода

Reading time2 min
Views762

Из всех видов рекламы довольно небольшое ее количество приходится на инструменты для программистов. Медийная реклама (телевидение, радио, популярные печатные издания) – очень дорого (так как оплата идет за потенциально большую аудиторию) и сильно мимо (так как программистов из них очень мало). Реклама на специализированных сайтах часто тоже не столь эффективна, так как, во-первых, глаз у программистов «отметает» рекламу автоматически, а, во-вторых, программисты знают про AdBlock. Делать видео по работе с программой – не все программы выглядят красочно и ярко, чтобы можно было их интересно снять. Таким образом, чуть ли не единственный способ сообщить о своем продукте миру – это честно и объективно показывать, чем он хорош на реальных примерах.

Читать дальше →

Исключение != ошибка

Reading time4 min
Views29K
Многие программисты почему-то считают, что исключения и ошибки — это одно и то же. Кто-то постоянно кидает exception, кто-то через errorHandler превращает ошибки в исключения. Некоторые пытаются увеличить производительность, используя исключения. Но, на самом деле, exception и ошибки — это совершенно разные механизмы. Не надо одним механизмом заменять другой. Они созданы для разных целей.

Когда появился php5 с исключениями, а затем ZendFramework, который всегда кидает исключения — я не мог понять: чем же exception лучше моего любимого trigger_error()? Долго думал, обсуждал с коллегами и разобрался в этом вопросе. Теперь я чётко знаю, где использовать trigger_error(), а где throw new Exception().

В чём же принципиальная разница между ними?

Читать дальше →

Имена людей и интерфейс

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

image

Заинтересованная аудитория: авторы HTML-контента, разработчики скриптов серверных приложений (PHP, JSP и т.д.), менеджеры веб-проектов и любые другие люди, так или иначе связанные с дизайном форм ввода данных, дизайна баз данных и онтологий, которые затрагивают личные имена людей.

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

Читать дальше →

С++: как не сделать кино не для всех

Reading time3 min
Views2.8K
image
Экран кинотеатра на мгновение погас и показал первые титры. Из темного зала стали доноситься весьма скудные аплодисменты. Начинает казаться, что закончившийся фильм мало кому понравился: по звуку можно насчитать десяток аплодирующих зрителей… Но тут свет загорается и оказывается, что фильм понравился всем. В полупустом зале сидит редкая группа зрителей, и хлопают все… Это был закрытый показ, который обычно именуют как «кино не для всех».
Какое отношение это имеет к C++? Пожалуй, самое прямое…
Читать дальше →

Молодым программистам на заметку: Как правильно писать «Помоги»

Reading time3 min
Views9.2K
За те 9 лет, что я занимаюсь программированием, в мою асю пришло несколько сотен просьб о помощи, от менее опытных, начинающих программистов. И вот, когда сегодня, в очередной раз, незнакомый человек попросил помочь ему написать плагин для вордпресс (код которого, честно говоря, я в глаза ни разу не видел), я решил написать небольшой гайд, который бы помог начинающим программистам правильно обращаться за советом к более опытным.
Читать дальше →

Перезаписывать память – зачем?

Reading time4 min
Views40K
В недрах Win32 API есть функция SecureZeroMemory с очень лаконичным описанием, из которого следует, что эта функция перезаписывает область памяти нулями и устроена таким образом, что компилятор при оптимизации кода никогда не удаляет вызов этой функции. Там же говорится, что следует с помощью этой функции перезаписывать память, ранее использованную для хранения паролей и криптографических ключей.

Остается один вопрос – зачем это? Можно найти пространные рассуждения о риске записи памяти программы в файл подкачки, файл hibernate или аварийный дамп, где его может найти злоумышленник. Это похоже на паранойю – далеко не всякий злоумышленник имеет возможность наложить руку на эти файлы.

На самом деле, возможностей получить доступ к данным, которые программа забыла перезаписать, гораздо больше – иногда не нужно даже иметь доступа к машине. Дальше мы рассмотрим пример, и каждый сам решит, насколько оправдана паранойя.
Читать дальше →

Почему бакалавриат в России готовит ИТ-недоучек? Советы первокурсникам

Reading time5 min
Views98K
Поздравляю всех поступивших в ВУЗ!

Хочу поделиться некоторыми мыслями по поводу ИТ-образования в России. Шо, опять?!

В настоящее время Россия переходит на систему бакалавр+магистр. Переходит с большим скрипом.

Чему учат

Что же за зверь такой «бакалавр»?
Откроем новый образовательный стандарт (для примера специальность 230200 «Информационные системы и технологии»).
Бакалавра учат 4 года, из них:
13% Гуманитарный, социальный и экономический цикл
27% Математический и естественнонаучный цикл
1% Физ-ра
3% Практика, НИР
6% Аттестация, диплом
Собственно на предметы по специальности остается ровно 50%. В предыдущем стандарте было 45%.
В эти 50% еще входят такие далекие от компьютеров предметы, как метрология и БЖД.

Читать дальше

Произносим правильно

Reading time2 min
Views153K
Из знакомых мне айтишников очень немногие стараются правильно произносить английские слова. Конечно, привычнее произносить C++ как «си-плюс-плюс», а не «си-плас-плас» или «опен-бэ-эс-дэ», а не «оупэн-би-эс-ди».
Но когда «echo $value;» читают как «ечо валуй» — это уже не смешно. Другой человек вас может просто не понять, особенно иностранец.

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

♫ — прослушать произношение в словаре
► — прослушать произношение на youtube

Начнем с названий:
ABBYY аби
Adobe эдоуби [əˈdəʋbɪ]
Apache эпэчи [əˈpætʃiː] от «a-patchy»
Asus офиц. э́сус
амер. э́йсус

 
BenQ бенкью
Cisco сискоу [ˈsɪskoʊ]
EBay ибэй
Eee PC и писи
Ethernet изэрнэт [ˈiθərˌnɛt]
Itanium айтэйниум [aɪˈteɪniəm]
Juniper джу́нэпэр [ˈdʒunəpər]
LaTeX лэйтех
лэйтек
латех
латек
[ˈleɪtɛk]
['leɪtɛx]
[ˈlɑːtɛx]
[ˈlɑːtɛk]
Linux офиц. линэкс
вар. линукс
[ˈlɪnəks]
[ˈlɪnʊks]

 
Mac OS X мэк оу-эс тэн
MySQL офиц. май-эс-кью-эл
вар. май-сиквел
как «My Ess Que Ell», см. оф. сайт
nginx энджин-икс (от engine-x)
PuTTY пати [ˈpʌtɪ] см. оф. сайт
Qt кьют [kyut] см.
TeX тех
тек
[ˈtɛx]
[tɛk]
не «текс»
XBox 360 экс-бокс фри сискти
Xen зен [ˈzɛn]
Xeon зион
Xerox зирокс [ˈzɪərɒks]
Xilinx зайлинкс [ˌzaɪliːŋks]
ZyXel рус. зайксел
амер. зайзел
см.


Аббревиатуры:
GNU гну вар. гню
GWT гвит [ˈɡwɪt]
ICANN айкэн
IEEE ай-трипл-и как «I triple E»
ISO айсо
PNG пинг [ˈpɪŋ] как «ping», см. спецификацию
PXE пикси [ˈpɪksi]
RUP рап
SCSI скази ['skʌzi]
SOAP соуп [soʊp]
SQL эс-кью-эл [ˈɛsˈkjuˈɛl] неофиц. «сикуел»
SWF свиф [ˈswɪf] см. спецификацию
WYSIWYG визивиг [ˈwɪziˌwɪg]
XAML зэмл [ˈzæməl]
XUL зул [ˈzuːl]
Yii длинное «и» [ji:]

Обычно аббревиатуры произносятся по правилам английского языка: API — эй-пи-ай, PCMCIA — пи-си-эм-си-ай-эй, OpenBSD — оупен-би-эс-ди и т.д.

Обычные слова дальше

Достала избыточность С++

Reading time3 min
Views21K
imageПривет Хабр,
Меня вводит в ступор С++. Вот просто, зависаю над монитором, смотрю в окно, попиваю чай… И начинаю жалеть за бесценно проведенные годы за изучением стандарта С++, попытками написать свой фронт-энд компилер. Эти мудреные книжки С++ In Depth. Как же я негодовал, когда не понимал кода из книги Александреску. Как записывал все постулаты Страуструпа и иже с ними. Зачем? Вот спрашиваю себя, зачем я теперь все это знаю. Более, я хочу сказать, что этот язык нещаден для гуру, не с медицинской, не с экономической точки зрения! Он не оправдывает усилий, вложенных в его изучение — раз. На практике, он экономически не выгоден — два. И нервные клетки подтвердят, что сопровождать чужой плюснутый код — бывает опасно для здоровья -три. Пусть тут будут рандомно разбросаны метафоры, пишу как есть, из опыта.
Читать дальше →

Выпущена финальная версия Small Basic 1.0!

Reading time2 min
Views24K
image

Я рад сообщить о том, что среда разработки Small Basic, предназначенная для начинающих разработчиков, школьников и детей, выпущена в финальной версии Small Basic 1.0! Дистрибутив доступен на 20 языках. Русскую финальную версию вы можете загрузить по этой прямой ссылке.

Стоит напомнить что такое Small Basic:

  1. Очень простая среда разработки — текстовый редактор с многофункциональной подсказкой и лишь несколько кнопок для редактирования текста и запуска программ.
  2. Простой язык, включающий небольшое количество ключевых слов
  3. Встроенная в среду разработки контекстная документация по всем элементам языка
  4. Возможность расширения компонентов Small Basic для включения дополнительного функционала (такая возможность понравится создателям online сервисов — можно дать возможность миллионам энтузиастов создать что-то свое с использованием сервиса и Small Basic). Например, в поставке уже идут возможности по работе со службами Flickr.
Многим знаком язык разработки QBasic, так вот Small Basic отличается от него тем, что основан на платформе .NET. Кроме того, Small Basic поддерживает современные понятия языков программирования, такие как свойства и события. В дополнение ко всему, Small Basic имеет очень удобную среду разработки.

Под катом еще немного информации и полезные ссылки на русскоязычные материалы.

Читать дальше →

Умножение длинных чисел методом Карацубы

Reading time7 min
Views98K
На днях нужно было разобраться с этим алгоритмом, но беглый поиск в google ничего путнего не дал. На Хабре тоже нашлась только одна статья, которая мне не особо помогла. Разобравшись, попробую поделиться с общественностью в доступной форме:
Читать дальше →

О вреде копирайта и пользе лицензионных программ

Reading time16 min
Views23K
В этой статье мы расскажем об основных юридических аспектах информационной безопасности. Иными словами, — о том, как не нарушить закон, не потерять бизнес и не попасть в тюрьму.


Тест на сообразительность. Правомерна ли запись этой картинки в память вашего компьютера? Кто ее туда записал? Является ли она произведением искусства? Является ли она результатом интеллектуальной деятельности? Кто ее правообладатель? Как вы можете все это выяснить наверняка? Как вы охарактеризуете того, кто все это придумал?

Законодательство РФ в сфере интеллектуальных прав вызвало у нас сложные чувства... Его основа — Гражданский кодекс в редакции 2008 года. К сожалению, далеко не все руководители российских организаций его внимательно читали. А из тех, кто читал, не все поверили своим глазам. В ходе проведенного нами исследования обнаружился низкий уровень правовой грамотности в сфере ИТ: люди часто не знают, как же нужно действовать, чтобы не оказаться виновными. Впрочем, и у нас в Евросоюзе ситуация вокруг копирайта развивается не лучшим образом :(

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

Прежде всего, «лицензионных» и «нелицензионных» программ с юридической точки зрения не существует. Запомните термин, который используется в законодательстве РФ — «результат интеллектуальной деятельности» (РИД). Примеры РИД — компьютерная программа (.js), музыка (.mp3), видео (.flv), картинка (.jpg), литературный текст (.htm). Есть и другие типы РИД — от торговой марки до дизайна кресла. Каждый РИД сам по себе не может быть «лицензионным» или «нелицензионным». А вот вы либо можете его использовать, либо не можете. Это зависит, в частности, от наличия у вас документа, разрешающего использование этого РИД. Пример использования — запись вами РИД в память компьютера. Чтобы использовать несколько РИД, нужно письменное разрешение на каждый из них. Без явного разрешения правообладателя ГК РФ запрещает вам использование любого РИД любым способом.

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

Information

Rating
1,856-th
Works in
Date of birth
Registered
Activity

Specialization

Specialist
C++
C
Software development