Pull to refresh
220
0
Дмитрий Вихарев @vikds

IT RocknRolla

Send message

5 самых распространенных ошибок менеджеров

Reading time3 min
Views5.5K
Множество проектов разработки программного обеспечения проваливаются исключительно благодаря плохому управлению. Следующий список, по моему мнению, содержит 5 самых распространенных и опасных ошибок, совершаемых менеджерами в области разработки программного обеспечения.
Читать дальше →
Total votes 99: ↑83 and ↓16+67
Comments77

Эффективное использование встроенного в Opera блокировщика рекламы

Reading time5 min
Views29K
Доброго времени суток, уважаемые Хабровчане!

Многие уже давно это знают, а многие — еще нет. Речь идет о том, как в браузере Opera, что называется — from-the-box, грамотно настроить блокировку рекламы, а также отключить «следящие» за пользователем скрипты google ad-sense и yandex direct.

Читать дальше →
Total votes 123: ↑96 and ↓27+69
Comments97

Программирование — отстой! Или что-то вроде того

Reading time8 min
Views14K
Предлагаю вниманию читателей перевод статьи "Programming Sucks! Or At Least, It Ought To", опубликованной в «The Daily WTF». Публикация рассказывает о том, как избыток профессионализма на практике мешает эффективности и предназначена скорее для опытных разработчиков, нежели для новичков.
Читать дальше →
Total votes 196: ↑180 and ↓16+164
Comments113

Шпаргалка по паттернам проектирования из книги Gang of Four Design Patterns for .NET 2.0

Reading time1 min
Views17K
Просто список примеров реализации паттернов на C#, более-менее хорошо сформатированных.
Делал для себя, но может быть кому-нибудь пригодится.

image

depositfiles.com/files/gl3ux6p07
2u.ifolder.ru/16126054
fileland.ru/file_id-248997
foldo.ru/38053i807d/Pattierny_kratko.doc.html
Total votes 61: ↑40 and ↓21+19
Comments22

Управление проектами – управление людьми

Reading time5 min
Views37K
Я работаю ПМом в небольшой – порядка 50 человек – компании по разработке софта. Данная статья написана исключительно с целью – поделиться своими мыслями по поводу процессов управления людьми в команде и, в идеале, услышать комментарии профессиональных руководителей и разработчиков. Сразу оговорюсь, что я не затрагиваю другие аспекты управления
Поскольку работаю весьма недолго, около года, а до этого был программистом (прошёл все ступени от стажёра до архитектора), то в памяти ещё свежи те ошибки, которые осуществляли мои руководители, после которых, в лучшем случае, на душе становилось пакостно. Опять же, дисклеймер, написано всё это исключительно с целью обсуждения… Итак, начнём.
Читать дальше →
Total votes 112: ↑103 and ↓9+94
Comments79

MythBusters: Правда и вымысел о Flash

Reading time6 min
Views6.9K

Последнее время, ходит очень много разговоров о html5, тэге видео и отсутствию Flash на iPad (это очень обидело flash разработчиков) и заявлению Стива Джобса в адрес Adobe. Было много разных мнений — кто-то считал, что это плохо, кто-то что хорошо. В этой статье я бы хотел рассказать от технологии flash со стороны разработчика и рассказать что, почему и как.

Читать дальше →
Total votes 221: ↑195 and ↓26+169
Comments250

Боремся с утечками памяти (C++ CRT)

Reading time6 min
Views62K
Утечка памяти — довольно серьезная и опасная проблема. Быть может, пользователь и не заметит однократной утечки каких-нибудь 32Кб памяти (а ведь это целые 5% от 640Кб, которых «хватит всем»), но постоянно теряя сложные иерархические структуры или массивы размером больше INT_MAX (которые мы так любим создавать на 64-битной архитектуре) мы обречем его на страдания, а наш продукт на провал.

Не допускать ситуации вроде бы и не трудно — воспользуемся правилом «класть на место всё что взяли», но на практике это сильно осложняется человеческим фактором (банальная невнимательность), хитростью архитектуры и нелинейным порядком выполнения операторов, например, из-за применения исключений.

А можно было бы просто «отдаться» автоматическому сборщику мусора, ценой потери производительности (и это не обязательно Managed C++, для Native C++ / C есть библиотеки сборки мусора, вот, например).

Но мы поговорим о ситуации когда уже «всё плохо».
Читать дальше →
Total votes 51: ↑41 and ↓10+31
Comments45

Компилируем 64-битную версию Qt под windows

Reading time3 min
Views24K
logoЗа последние годы кросс-платформенная библиотека Qt получила не только многочисленные улучшения, но также собственную среду разработки QtCreator и удобные инсталляторы под все операционные системы. Теперь для разработки не нужно самому устанавливать необходимое окружение, прописывать пути, интегрировать библиотеку в ide — достаточно запустить инсталлятор и все будет работать «из коробки». К сожалению, версия для windows имеет инсталлятор только для 32-битной сборки библиотеки и ide. А иногда возникает необходимость сделать именно 64-битное приложение — чаще всего это связано с необходимостью использовать чужие 64-битные компоненты: подгружаемые библиотеки, inproc com компоненты и прочие странные штуки. Под катом содержится подробная инструкция как скомпилировать Qt и QtCreator из исходников для 64-битной архитектуры.

Карта обхода подводных камней
Total votes 13: ↑11 and ↓2+9
Comments7

Искусство ухода за своими обезьянами

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

image

Чтобы ответить на него обращу ваше внимание на структуру рабочего времени, в течение которого руководитель вступает в отношения трех типов — с начальством, с руководителями других отделов (менеджерами) и подчиненными. Поэтому и время разделим на три компонента:

1. Время менеджера, которым распоряжается босс, — это время расходуется на деятельность, навязываемую начальством. «Проколоться» здесь нельзя — будете наказаны.

2. Время, которое забирает система, — работа с руководителями других подразделений и внутренняя текущая деятельность. «Забьете» на нее — беды не избежать, просто оно может быть отложено во времени.

3. Время, которое тратится на собственные инициативы, — эта часть тратится на то, что вы делаете добровольно. Однако именно это время любят съедать подчиненные, так что распоряжаться самостоятельно вы можете только тем, что сможете организовать себе сами. Как? Минимизировать или свести практически к нулю время, сжираемое подчиненными.

Читать дальше →
Total votes 108: ↑83 and ↓25+58
Comments48

Чему я научился в Майкрософт

Reading time9 min
Views6K
Проработав пять лет в различных командах в Майкрософт я вынес несколько вещей, о которых я даже не подозревал, когда оканчивал колледж. Основные ценности, чему я научился, вынесенные уроки, причина моего крика на друзей, как ни называй, они сослужили мне хорошую службу.

Некоторые из этих вещей специфичны для Майкрософт, но большая часть найдет применение в любой командной/корпоративной среде. Некоторые из них сложны – из-за них тебя могут уволить (а может и хуже), если ты не знаешь, что делаешь.
Читать дальше →
Total votes 290: ↑240 and ↓50+190
Comments108

Социальная сеть по аренде-съему квартир «Живая база»

Reading time2 min
Views12K
image

Разрешите представить вашему вниманию новый проект (стартап) www.livebase.ru — социальную сеть по аренде квартир «Живая база».
Главная страница сайта www.livebase.ru (регистрация не обязательна)
Страница базы данных по аренде квартир — www.livebase.ru/estates

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

Читать дальше →
Total votes 77: ↑55 and ↓22+33
Comments139

TeamCity 4.0 released

Reading time2 min
Views11K
Что такое TeamCity? TeamCity — это, говоря научно-занудным языком, интегрированная среда, которая повышает эффективность групповой разработки, беря на себя такие рутинные действия как сборка билдов, запуск и анализ тестов, а так же анализ исходного кода (инспекции, поиск дубликатов и т.д.) Посмотрев на картинку многое станет понятным:
image
Читать дальше →
Total votes 42: ↑38 and ↓4+34
Comments37

WimaxYota для 2.6.31-14-generic (netbook Remix ubuntu 9.10, intel 5150)

Reading time3 min
Views1.1K
Итак, я перепробовал множество мануалов для поднятия Йоты, и у меня ничего не получилось. Пришлось все равно додумывать за авторов и править ручками. И вот он, готовый ман для поднятия йоты без проблем.

Читать дальше →
Total votes 52: ↑36 and ↓16+20
Comments59

Быстрое создание CRUD-основы приложения на Entity Framework/ASP.Net MVC

Reading time12 min
Views14K
Большинство прикладных приложений, которые приходится разрабатывать на практике, сводятся к примитивному шаблону: есть некая предметная область, в которой выделены объекты и связи между ними. Все это легко представляется в виде таблиц в базе данных, а базовый функционал приложения состоит в том, чтобы выполнять над этими таблицами четыре основных действия: создание, модификацию, просмотр и удаление объектов. Далее, обычно, на эту основу прикручивают дополнительную бизнес-логику, модуль отчетов и остальной необходимый функционал.
Естественной реакцией организма разработчика на присутствие определенного шаблона является желание автоматизировать его применение, например, используя кодогенерацию. Шутка. Кодогенерация – это тот же метод copy-paste, только за программиста его делает специально написанный инструмент. Иногда это оправдано, но перед тем, как решится на генерацию кода, лучше хорошо подумать, а нельзя ли здесь обойтись средствами ООП, к примеру?
Читать дальше →
Total votes 34: ↑24 and ↓10+14
Comments7

Приватные слоты в паттерне Pimpl от Qt

Reading time10 min
Views7.5K

Вступление.


Недавно я писал по поводу реализации паттерна Pimpl в библиотеке Qt и призывал людей следовать такому подходу при разработке их собственных бибиотек. Теперь я хочу поговорить о таком понятии, как приватные слоты и тем самым продолжить эту тему. Заключительной статьей на эту тему будет реализация механизма Implicit Sharing и shared d-pointer.

Что это и зачем это нужно.


Приватные слоты — это механизм дополняющий функционал d-указателей. Он позволяет реализовать слоты для приватного класса, даже если он не является наследником от QObject (обычно он им и не является), но для этого публичный класс должен быть наследником от QObject. Тоесть по факту создается некий приватный слот в публичном классе и он непосредственно дергает нужный метод приватного класса.
Зачем это нужно? Ну рассмотрим на примере. Есть класс QAbstractScrollArea. Он просто отображает некий виджет (viewport) и обеспечивает прокрутку. Прокрутка обеспечивается с помощью двух экземпляров класса QScrollBar. Сами эти скролбары он хранит в приватном классе. Теперь проблемма: как подключить сигнал от скроллбара об изменение его позиции с классом QAbstractScrollAreaPrivate, ведь он не является QObject'ом? Сделать его наследником от QObject — лучше не делайте это :-). Можно сделать слот в публичном классе и повесить на него, то в таком случае это не очень красиво — так как наружу выходят слоты от внутренней реализации. Вот ту Qt-шниками был придуман достаточно разумный и элегантный подход — приватные слоты.

Читать дальше →
Total votes 28: ↑26 and ↓2+24
Comments17

ProFORMA: Объекты в 3D через Веб-камеру

Reading time1 min
Views9.1K
ProFORMA: Probabilistic Feature-based On-line Rapid Model Acquisition
Пан Ки(Pan Qi), аспирант Университета Кембриджа, разработал интересный метод моделирования объектов с помощью веб-камеры.
image
Слева направо: (A) Вращаем объект рукой перед камерой. (B) Образование облака точек полученного из структуры оценки движения. (С) Триангуляция Делоне из облака точек, образование выпуклого объёма из тетраэдров. (D) Сетка покрытия получаемая из возможной рекурсии тетраидальной разметки. (E) Текстурирование отображенной поверхности сетки.
Читать дальше →
Total votes 117: ↑117 and ↓0+117
Comments74

Приложение «Численные методы на C#»

Reading time2 min
Views13K
Этот пост в равной степени мог бы присутствовать в блогах «Я пиарюсь», «Open Source» или ".NET". Но так как программа, о которой я хочу рассказать, очень тесно связана с образованием, то я решил опубликовать его именно сюда.

Если кратко, то речь пойдет об open source проекте под названием «Numerical Methods on C#» — наборе реализаций численных методов на языке C#, в то же время позволяющая проводить расчеты с помощью написанного на WPF графического интерфейса.

Кому интересно — читаем ниже.
Читать дальше →
Total votes 58: ↑47 and ↓11+36
Comments33

Десять смертных грехов в оценке трудоёмкости разработки программного обеспечения

Reading time6 min
Views52K

Введение


В этом топике я хочу представить вам, дорогие читатели, пересказ вебинара от человека, чьё имя не нуждается в представлении. Для того, чтобы изложить часовой вебинар в виде небольшого топика, мне пришлось значительно ужать комментарии автора, поэтому я сознательно не помечаю топик как «перевод». В этот раз Стив МакКоннелл решил поделиться с нами своим опытом в виде коротких тезисов, в которых он отражает самые страшные ошибки при оценке трудоёмкости разработки программного обеспечения. В 1998 году читатели журнала Software Development назвали Стива одним из самых влиятельных людей в индустрии разработки программного обеспечения на равне с Биллом Гейтсом и Линусом Торвальдсом. Стив — автор книги «Software Estimation. Demystifying The Black Art» — одной из самых популярных книг в области оценки трудоёмкости разработки ПО. Надо признаться, что вебинар был проведён относительно давно (июнь 2009 года), но информация, представленная там, совсем не устарела. Сам топик будет построен следующим образом. Заголовки будут достаточно точно переведены из презентации, которую показывал Стив, а в остальном я постараюсь отразить только основные мысли, чтобы не перегружать топик. Если кто-то посчитает, что ту или иную мысль я излагаю неправильно — милости прошу в комментарии, можно будет меня поправить.

Итак, поехали...
Total votes 116: ↑106 and ↓10+96
Comments27

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Works in
Date of birth
Registered
Activity

Specialization

Backend Developer
Lead
C++