Множество проектов разработки программного обеспечения проваливаются исключительно благодаря плохому управлению. Следующий список, по моему мнению, содержит 5 самых распространенных и опасных ошибок, совершаемых менеджерами в области разработки программного обеспечения.
Дмитрий Вихарев @vikds
IT RocknRolla
Эффективное использование встроенного в Opera блокировщика рекламы
5 min
29KДоброго времени суток, уважаемые Хабровчане!
Многие уже давно это знают, а многие — еще нет. Речь идет о том, как в браузере Opera, что называется — from-the-box, грамотно настроить блокировку рекламы, а также отключить «следящие» за пользователем скрипты google ad-sense и yandex direct.
Многие уже давно это знают, а многие — еще нет. Речь идет о том, как в браузере Opera, что называется — from-the-box, грамотно настроить блокировку рекламы, а также отключить «следящие» за пользователем скрипты google ad-sense и yandex direct.
+69
+11
Программирование — отстой! Или что-то вроде того
8 min
14KTranslation
Предлагаю вниманию читателей перевод статьи "Programming Sucks! Or At Least, It Ought To", опубликованной в «The Daily WTF». Публикация рассказывает о том, как избыток профессионализма на практике мешает эффективности и предназначена скорее для опытных разработчиков, нежели для новичков.
+164
Шпаргалка по паттернам проектирования из книги Gang of Four Design Patterns for .NET 2.0
1 min
17KПросто список примеров реализации паттернов на C#, более-менее хорошо сформатированных.
Делал для себя, но может быть кому-нибудь пригодится.
depositfiles.com/files/gl3ux6p07
2u.ifolder.ru/16126054
fileland.ru/file_id-248997
foldo.ru/38053i807d/Pattierny_kratko.doc.html
Делал для себя, но может быть кому-нибудь пригодится.
depositfiles.com/files/gl3ux6p07
2u.ifolder.ru/16126054
fileland.ru/file_id-248997
foldo.ru/38053i807d/Pattierny_kratko.doc.html
+19
Управление проектами – управление людьми
5 min
37KЯ работаю ПМом в небольшой – порядка 50 человек – компании по разработке софта. Данная статья написана исключительно с целью – поделиться своими мыслями по поводу процессов управления людьми в команде и, в идеале, услышать комментарии профессиональных руководителей и разработчиков. Сразу оговорюсь, что я не затрагиваю другие аспекты управления
Поскольку работаю весьма недолго, около года, а до этого был программистом (прошёл все ступени от стажёра до архитектора), то в памяти ещё свежи те ошибки, которые осуществляли мои руководители, после которых, в лучшем случае, на душе становилось пакостно. Опять же, дисклеймер, написано всё это исключительно с целью обсуждения… Итак, начнём.
Поскольку работаю весьма недолго, около года, а до этого был программистом (прошёл все ступени от стажёра до архитектора), то в памяти ещё свежи те ошибки, которые осуществляли мои руководители, после которых, в лучшем случае, на душе становилось пакостно. Опять же, дисклеймер, написано всё это исключительно с целью обсуждения… Итак, начнём.
+94
MythBusters: Правда и вымысел о Flash
6 min
6.9KПоследнее время, ходит очень много разговоров о html5, тэге видео и отсутствию Flash на iPad (это очень обидело flash разработчиков) и заявлению Стива Джобса в адрес Adobe. Было много разных мнений — кто-то считал, что это плохо, кто-то что хорошо. В этой статье я бы хотел рассказать от технологии flash со стороны разработчика и рассказать что, почему и как.
+169
Боремся с утечками памяти (C++ CRT)
6 min
62KУтечка памяти — довольно серьезная и опасная проблема. Быть может, пользователь и не заметит однократной утечки каких-нибудь 32Кб памяти (а ведь это целые 5% от 640Кб, которых «хватит всем»), но постоянно теряя сложные иерархические структуры или массивы размером больше
Не допускать ситуации вроде бы и не трудно — воспользуемся правилом «класть на место всё что взяли», но на практике это сильно осложняется человеческим фактором (банальная невнимательность), хитростью архитектуры и нелинейным порядком выполнения операторов, например, из-за применения исключений.
А можно было бы просто «отдаться» автоматическому сборщику мусора, ценой потери производительности (и это не обязательно Managed C++, для Native C++ / C есть библиотеки сборки мусора, вот, например).
Но мы поговорим о ситуации когда уже «всё плохо».
INT_MAX
(которые мы так любим создавать на 64-битной архитектуре) мы обречем его на страдания, а наш продукт на провал. Не допускать ситуации вроде бы и не трудно — воспользуемся правилом «класть на место всё что взяли», но на практике это сильно осложняется человеческим фактором (банальная невнимательность), хитростью архитектуры и нелинейным порядком выполнения операторов, например, из-за применения исключений.
А можно было бы просто «отдаться» автоматическому сборщику мусора, ценой потери производительности (и это не обязательно Managed C++, для Native C++ / C есть библиотеки сборки мусора, вот, например).
Но мы поговорим о ситуации когда уже «всё плохо».
+31
Компилируем 64-битную версию Qt под windows
3 min
24KTutorial
За последние годы кросс-платформенная библиотека Qt получила не только многочисленные улучшения, но также собственную среду разработки QtCreator и удобные инсталляторы под все операционные системы. Теперь для разработки не нужно самому устанавливать необходимое окружение, прописывать пути, интегрировать библиотеку в ide — достаточно запустить инсталлятор и все будет работать «из коробки». К сожалению, версия для windows имеет инсталлятор только для 32-битной сборки библиотеки и ide. А иногда возникает необходимость сделать именно 64-битное приложение — чаще всего это связано с необходимостью использовать чужие 64-битные компоненты: подгружаемые библиотеки, inproc com компоненты и прочие странные штуки. Под катом содержится подробная инструкция как скомпилировать Qt и QtCreator из исходников для 64-битной архитектуры.
+9
Искусство ухода за своими обезьянами
4 min
15KВечный вопрос: почему руководителю часто не хватает рабочего дня, тогда как подчиненным нечем его заполнить? Пару лет назад по мотивам самых разнообразных импортных источников, которые сейчас уже просто не вспомню, я набросал тезисы ответа на этот вопрос.
Чтобы ответить на него обращу ваше внимание на структуру рабочего времени, в течение которого руководитель вступает в отношения трех типов — с начальством, с руководителями других отделов (менеджерами) и подчиненными. Поэтому и время разделим на три компонента:
1. Время менеджера, которым распоряжается босс, — это время расходуется на деятельность, навязываемую начальством. «Проколоться» здесь нельзя — будете наказаны.
2. Время, которое забирает система, — работа с руководителями других подразделений и внутренняя текущая деятельность. «Забьете» на нее — беды не избежать, просто оно может быть отложено во времени.
3. Время, которое тратится на собственные инициативы, — эта часть тратится на то, что вы делаете добровольно. Однако именно это время любят съедать подчиненные, так что распоряжаться самостоятельно вы можете только тем, что сможете организовать себе сами. Как? Минимизировать или свести практически к нулю время, сжираемое подчиненными.
Чтобы ответить на него обращу ваше внимание на структуру рабочего времени, в течение которого руководитель вступает в отношения трех типов — с начальством, с руководителями других отделов (менеджерами) и подчиненными. Поэтому и время разделим на три компонента:
1. Время менеджера, которым распоряжается босс, — это время расходуется на деятельность, навязываемую начальством. «Проколоться» здесь нельзя — будете наказаны.
2. Время, которое забирает система, — работа с руководителями других подразделений и внутренняя текущая деятельность. «Забьете» на нее — беды не избежать, просто оно может быть отложено во времени.
3. Время, которое тратится на собственные инициативы, — эта часть тратится на то, что вы делаете добровольно. Однако именно это время любят съедать подчиненные, так что распоряжаться самостоятельно вы можете только тем, что сможете организовать себе сами. Как? Минимизировать или свести практически к нулю время, сжираемое подчиненными.
+58
Чему я научился в Майкрософт
9 min
6KTranslation
Проработав пять лет в различных командах в Майкрософт я вынес несколько вещей, о которых я даже не подозревал, когда оканчивал колледж. Основные ценности, чему я научился, вынесенные уроки, причина моего крика на друзей, как ни называй, они сослужили мне хорошую службу.
Некоторые из этих вещей специфичны для Майкрософт, но большая часть найдет применение в любой командной/корпоративной среде. Некоторые из них сложны – из-за них тебя могут уволить (а может и хуже), если ты не знаешь, что делаешь.
Некоторые из этих вещей специфичны для Майкрософт, но большая часть найдет применение в любой командной/корпоративной среде. Некоторые из них сложны – из-за них тебя могут уволить (а может и хуже), если ты не знаешь, что делаешь.
+190
Facedetection for fun
1 min
948Всех с наступающим новым годом!
Нам очень хотелось сделать к новому году чтонибудь хорошее, и мы запустили сервис автоматической подрисовки красных шапок сантаклауса :)
Нам очень хотелось сделать к новому году чтонибудь хорошее, и мы запустили сервис автоматической подрисовки красных шапок сантаклауса :)
+70
Социальная сеть по аренде-съему квартир «Живая база»
2 min
12KРазрешите представить вашему вниманию новый проект (стартап) www.livebase.ru — социальную сеть по аренде квартир «Живая база».
Главная страница сайта www.livebase.ru (регистрация не обязательна)
Страница базы данных по аренде квартир — www.livebase.ru/estates
«Живая база» — это сервис по аренде квартир, который поможет каждому пользователю найти квартиру по месторасположению на карте google. Конечно, ни для кого, ни секрет, что на страницах Всемирной паутины есть много достойных проектов, которые показывают расположение квартир на карте, но наш проект уникален.
+33
TeamCity 4.0 released
2 min
11KЧто такое TeamCity? TeamCity — это, говоря научно-занудным языком, интегрированная среда, которая повышает эффективность групповой разработки, беря на себя такие рутинные действия как сборка билдов, запуск и анализ тестов, а так же анализ исходного кода (инспекции, поиск дубликатов и т.д.) Посмотрев на картинку многое станет понятным:
+34
WimaxYota для 2.6.31-14-generic (netbook Remix ubuntu 9.10, intel 5150)
3 min
1.1KИтак, я перепробовал множество мануалов для поднятия Йоты, и у меня ничего не получилось. Пришлось все равно додумывать за авторов и править ручками. И вот он, готовый ман для поднятия йоты без проблем.
+20
Быстрое создание CRUD-основы приложения на Entity Framework/ASP.Net MVC
12 min
14KБольшинство прикладных приложений, которые приходится разрабатывать на практике, сводятся к примитивному шаблону: есть некая предметная область, в которой выделены объекты и связи между ними. Все это легко представляется в виде таблиц в базе данных, а базовый функционал приложения состоит в том, чтобы выполнять над этими таблицами четыре основных действия: создание, модификацию, просмотр и удаление объектов. Далее, обычно, на эту основу прикручивают дополнительную бизнес-логику, модуль отчетов и остальной необходимый функционал.
Естественной реакцией организма разработчика на присутствие определенного шаблона является желание автоматизировать его применение, например, используя кодогенерацию. Шутка. Кодогенерация – это тот же метод copy-paste, только за программиста его делает специально написанный инструмент. Иногда это оправдано, но перед тем, как решится на генерацию кода, лучше хорошо подумать, а нельзя ли здесь обойтись средствами ООП, к примеру?
Естественной реакцией организма разработчика на присутствие определенного шаблона является желание автоматизировать его применение, например, используя кодогенерацию. Шутка. Кодогенерация – это тот же метод copy-paste, только за программиста его делает специально написанный инструмент. Иногда это оправдано, но перед тем, как решится на генерацию кода, лучше хорошо подумать, а нельзя ли здесь обойтись средствами ООП, к примеру?
+14
Приватные слоты в паттерне Pimpl от Qt
10 min
7.5KВступление.
Недавно я писал по поводу реализации паттерна Pimpl в библиотеке Qt и призывал людей следовать такому подходу при разработке их собственных бибиотек. Теперь я хочу поговорить о таком понятии, как приватные слоты и тем самым продолжить эту тему. Заключительной статьей на эту тему будет реализация механизма Implicit Sharing и shared d-pointer.
Что это и зачем это нужно.
Приватные слоты — это механизм дополняющий функционал d-указателей. Он позволяет реализовать слоты для приватного класса, даже если он не является наследником от QObject (обычно он им и не является), но для этого публичный класс должен быть наследником от QObject. Тоесть по факту создается некий приватный слот в публичном классе и он непосредственно дергает нужный метод приватного класса.
Зачем это нужно? Ну рассмотрим на примере. Есть класс QAbstractScrollArea. Он просто отображает некий виджет (viewport) и обеспечивает прокрутку. Прокрутка обеспечивается с помощью двух экземпляров класса QScrollBar. Сами эти скролбары он хранит в приватном классе. Теперь проблемма: как подключить сигнал от скроллбара об изменение его позиции с классом QAbstractScrollAreaPrivate, ведь он не является QObject'ом? Сделать его наследником от QObject — лучше не делайте это :-). Можно сделать слот в публичном классе и повесить на него, то в таком случае это не очень красиво — так как наружу выходят слоты от внутренней реализации. Вот ту Qt-шниками был придуман достаточно разумный и элегантный подход — приватные слоты.
+24
ProFORMA: Объекты в 3D через Веб-камеру
1 min
9.1KProFORMA: Probabilistic Feature-based On-line Rapid Model Acquisition
Пан Ки(Pan Qi), аспирант Университета Кембриджа, разработал интересный метод моделирования объектов с помощью веб-камеры.
Слева направо: (A) Вращаем объект рукой перед камерой. (B) Образование облака точек полученного из структуры оценки движения. (С) Триангуляция Делоне из облака точек, образование выпуклого объёма из тетраэдров. (D) Сетка покрытия получаемая из возможной рекурсии тетраидальной разметки. (E) Текстурирование отображенной поверхности сетки.
Пан Ки(Pan Qi), аспирант Университета Кембриджа, разработал интересный метод моделирования объектов с помощью веб-камеры.
Слева направо: (A) Вращаем объект рукой перед камерой. (B) Образование облака точек полученного из структуры оценки движения. (С) Триангуляция Делоне из облака точек, образование выпуклого объёма из тетраэдров. (D) Сетка покрытия получаемая из возможной рекурсии тетраидальной разметки. (E) Текстурирование отображенной поверхности сетки.
+117
Приложение «Численные методы на C#»
2 min
13KЭтот пост в равной степени мог бы присутствовать в блогах «Я пиарюсь», «Open Source» или ".NET". Но так как программа, о которой я хочу рассказать, очень тесно связана с образованием, то я решил опубликовать его именно сюда.
Если кратко, то речь пойдет об open source проекте под названием «Numerical Methods on C#» — наборе реализаций численных методов на языке C#, в то же время позволяющая проводить расчеты с помощью написанного на WPF графического интерфейса.
Кому интересно — читаем ниже.
Если кратко, то речь пойдет об open source проекте под названием «Numerical Methods on C#» — наборе реализаций численных методов на языке C#, в то же время позволяющая проводить расчеты с помощью написанного на WPF графического интерфейса.
Кому интересно — читаем ниже.
+36
Десять смертных грехов в оценке трудоёмкости разработки программного обеспечения
6 min
52KВведение
В этом топике я хочу представить вам, дорогие читатели, пересказ вебинара от человека, чьё имя не нуждается в представлении. Для того, чтобы изложить часовой вебинар в виде небольшого топика, мне пришлось значительно ужать комментарии автора, поэтому я сознательно не помечаю топик как «перевод». В этот раз Стив МакКоннелл решил поделиться с нами своим опытом в виде коротких тезисов, в которых он отражает самые страшные ошибки при оценке трудоёмкости разработки программного обеспечения. В 1998 году читатели журнала Software Development назвали Стива одним из самых влиятельных людей в индустрии разработки программного обеспечения на равне с Биллом Гейтсом и Линусом Торвальдсом. Стив — автор книги «Software Estimation. Demystifying The Black Art» — одной из самых популярных книг в области оценки трудоёмкости разработки ПО. Надо признаться, что вебинар был проведён относительно давно (июнь 2009 года), но информация, представленная там, совсем не устарела. Сам топик будет построен следующим образом. Заголовки будут достаточно точно переведены из презентации, которую показывал Стив, а в остальном я постараюсь отразить только основные мысли, чтобы не перегружать топик. Если кто-то посчитает, что ту или иную мысль я излагаю неправильно — милости прошу в комментарии, можно будет меня поправить.
+96
Information
- Rating
- Does not participate
- Location
- Москва, Москва и Московская обл., Россия
- Works in
- Date of birth
- Registered
- Activity
Specialization
Backend Developer
Lead
C++