Pull to refresh
8
0
Кочуров Александр @akochurov

User

Send message

Математика карьеры

Reading time6 min
Views7K
catchy image Пару недель назад все начали писать о предстоящей майкрософтовской конференции PDC (Professional Developers Conference). В частности, Дуг Рейли написал пост «Кто управляет вашей карьерой?». Многие прочитали и сослались на пост, а некоторые (например, Сэм Джентайл или Роберт Херлбат) даже развили идею в ответных постах.

Я не буду спорить о стоимости PDC, однако согласен с идеей, что человек должен сам управлять своей карьерой. Зачастую мы пытаемся сосредоточиться на том, что не можем изменить. Но на самом деле наш карьерный рост в наших руках.

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

Думали, математика никогда не пригодится?
Total votes 97: ↑77 and ↓20+57
Comments100

Microsoft Moles

Reading time12 min
Views2.4K
Moles – это легковесный тул от MS Research, который умеет автоматически генерировать заглушки для интерфейсов и виртуальных методов, а также для sealed классов, невиртуальных и статических методов (!), путем генерации кода, которому позднее можно будет подсунуть нужный делегат, вызываемый вместо определенного метода. Первый тип заглушек называется стабы (stubs), а второй – молы (moles). Именно эту штуку я использовал для тестирования асинхронных операций, о которых я рассказывал ранее, но давайте обо всем по порядку.

Stubs



Давайте рассмотрим такой пример. Предположим, что мы понимаем ценность модульных тестов, а также таких принципов, как Dependency Inversion, и других безумно полезных принципов и паттернов (может быть всех остальных принципов S.O.L.I.D., а возможно даже и F.I.R.S.T.). И дело даже не в том, что мы фанаты тестов или дядюшки Боба, а просто потому, что мы знаем, что высокая связность – это плохо. Поэтому мы стараемся в разумных пределах уменьшить зависимости путем выделения интерфейсов с последующим «инжектом» их в конструкторы классов или в методы, которым эти интерфейсы необходимы для выполнения своих задач.

Читать дальше →
Total votes 61: ↑43 and ↓18+25
Comments11

В Москве открылся первый фирменный магазин Lenovo

Reading time3 min
Views39K
В субботу, 25 сентября, в торговом центре «Горбушка» состоялось официальное открытие первого в России фирменного магазина компании Lenovo. Впервые все доступные в России модели ноутбуков и настольных компьютеров бизнес-серии Think и Idea можно увидеть вживую! Фанатов ThinkPad порадует большой ассортимент фирменных аксессуаров, которые раньше были доступны лишь при заказе через интернет. Некоторые продукты появились в России впервые: это неттоп IdeaCentre Q150 (обзор устройства мы уже публиковали), а также оригинальное зарядное устройство для ноутбуков ThinkPad.

В этом материале я расскажу о наиболее интересных продуктах, представленных в магазине, включая необычные аксессуары для линейки ThinkPad. А те, кто планирует приобрести ноутбук в ближайшие выходные, могут поучаствовать в акции, и вместе с компьютером получить удобный рюкзак Lenovo. Для этого нужно распечатать вот этот купон и предъявить его при покупке ноутбука в магазине Lenovo 2 и 3 октября. Фирменный магазин Lenovo расположен на втором этаже торгового центра в павильоне H2-058, найти его можно с помощью этой карты. Ждем вас каждый день с 9 до 20 часов!

Читать дальше →
Total votes 74: ↑65 and ↓9+56
Comments156

Интерпретатор Brainfuck размером 160 байт

Reading time1 min
Views4.2K
Прочитав про IP-стэк twIP, который помещается в размер твита и отвечает на пинги, корейский программист Канг Сеонгхун (Kang Seonghoon) решил создать нечто такое же миниатюрное и при этом работоспособное. И он создал самый маленький интерпретатор Brainfuck на C размером всего 160 байт.

s[99],*r=s,*d,c;main(a,b){char*v=1[d=b];for(;c=*v++%93;)for(b=c&2,b=c%7?a&&(c&17?c&1?(*r+=b-1):(r+=b-1):syscall(4-!b,b,r,1),0):v;b&&c|a**r;v=d)main(!c,&a);d=v;}
Читать дальше →
Total votes 83: ↑79 and ↓4+75
Comments32

Обновления проекта Arduino

Reading time2 min
Views21K
Ещё в пятницу я заходил на сайт Arduino в надежде увидеть что-то интересное. Интересное было в картинке, где рука создателя вместо первой платы Arduino держала что-то скрытое. Это что-то не заставило себя долго ждать. Сегодня утром я получил сообщение от хабраюзера Prometheus о том, что неплохо бы написать в этот блог пост, связанный с обновлениями нашего любимого проекта Arduino. О чём с радостью и пишу.

Новый дизайн сайта arduino.cc


Как видно, у проекта сменился логотип, макет сайта. Всё стало более воздушным и стильным. Раньше шрифт сайта был Verdana чуть ли не в 10 пикселей размером, приходилось увеличивать масштаб даже людям с хорошим зрением. Сейчас просто любо-дорого посмотреть. Также изменения в дизайне претерпели блог и форум проекта Arduino.

arduino new site
Читать дальше →
Total votes 72: ↑62 and ↓10+52
Comments48

Подслушиваем в AD

Reading time3 min
Views47K

Введение
Я только недавно столкнулся с виндовыми доменами (Active Directory) и познаю много нового и удивительного. Так уж получилось, что значительное количество пользователей в домене организации имеют права локальных админов (технические специалисты, программисты и другие) (ведь не редко так бывает?). Но последствия от этого колоссальны. В данной статье мы рассмотрим как можно подслушивать звуки (разговоры, переговоры) на удаленных машинах.
Читать дальше →
Total votes 99: ↑80 and ↓19+61
Comments82

Опубликован весь архив Computer Science клуб при ПОМИ РАН

Reading time2 min
Views6.1K
Добрый день!

Как представитель проекта Лекториум рад сообщить — мы опубликовали весь архив Computer Science клуба.
Кроме того, почти год назад мы организовали запись всех лекций на хорошие камеры и микрофоны.
А в этом году планируем подключить вебинары.


Большинство лекций читается на русском языке. Все записи снабжены презентациями и описаниями.

UPD. Кратко. Старые лекции в плохом качестве, а новые с 2010 года с хорошим звуком и в 720p.
UPD 2 Расширили канал, видео грузится теперь без проблем.

Под катом перечень курсов и несколько вопросов касательно вебинаров.
Читать дальше →
Total votes 231: ↑227 and ↓4+223
Comments78

Тест простоты числа регулярным выражением

Reading time3 min
Views12K
Я видел множество проблем, связанных с регулярными выражениями, но в прошлую пятницу, спасибо Крису и Шону я нашел одну регулярку, которая позволяет проверить, является ли данное целое число простым. Оригинальные статьи предлагали следующее регулярное выражение для определения простоты числа:

Читать дальше →
Total votes 104: ↑94 and ↓10+84
Comments31

Undo/Redo — Иллюзия простоты

Reading time5 min
Views38K
Такая простая и привычная функция в любом текстовом и графическом редакторе. Казалось бы, какие могут быть сложности с её реализацией? Впервые столкнувшись с разработкой Undo/Redo для текстового редактора XtraRichEdit, мы задумались, а какой же подход нам избрать?


Читать дальше →
Total votes 89: ↑75 and ↓14+61
Comments87

Не забываем о языковых и культурных особенностях

Reading time6 min
Views24K
Рано или поздно все сталкиваются с проблемами связанными с языковым и культурным разнообразием при написании программ. Я был сильно удивлен узнав, что часть моих знакомых, пишущих на C++, решают эти проблемы своими велосипедами. Для тех, кто еще не знает что такое std::locale я хотел бы кратко на примере показать как c ним работать и что бывает, если о нем забыть…
Читать дальше
Total votes 68: ↑66 and ↓2+64
Comments27

Студенческие стартапы: минимум финансирования, один компьютер

Reading time2 min
Views1.3K
Если есть хорошая идея и безудержное желание работать, то начинающему предпринимателю не нужен стартовый капитал. Даже в американском интернет-бизнесе, где нет проблем с инвесторами, всё чаще появляются так называемые сверхлёгкие стартапы (ultralight startups), созданные без венчурного финансирования, одним человеком с минимальным вложением средств.



Парень на фотографии — 19-летний студент Рэймонд Лэй (Raymond Lei) из Беркли. В августе его сайт ooShirts.com по дизайну индивидуальных футболок имел оборот $60 000, а по итогам года он рассчитывает на $700 000. При этом все вложения в бизнес не превысили $2200 на работу индийского программиста и раскрутку сайта в поисковиках по ключевым словам вроде [custom T-shirts].
Читать дальше →
Total votes 96: ↑87 and ↓9+78
Comments69

Что и как покупать на Taobao

Reading time5 min
Views189K

В нашей прошлой статье мы показали семь смешных товаров c китайского интернет-аукциона TaoBao, лишь вскользь упомянув о том, что же это такое. Пришло время подробнее рассказать о TaoBao, сравнить его с Ebay и поведать как можно удобно и недорого покупать на этом товарном торжестве победившего социализма
Читать дальше →
Total votes 70: ↑53 and ↓17+36
Comments58

О разворачивании строк в .Net/C# и не только

Reading time11 min
Views35K
Давайте поговорим о строках, точнее об их переворачивании средствами .Net/C#. Так уж сложилось, что в стандартной библиотеке соответсвующей функции не наблюдается. И как мне подсказывают, написание функции обращения строки довольно популярный вопрос на собеседованиях при приеме на работу. Давайте посмотрим, как можно эффективно перевернуть строку средствами данной платформы.

Под катом приведен сравнительный анализ быстродействия разных методов переворачивания строки.

Читать дальше →
Total votes 91: ↑82 and ↓9+73
Comments57

Внутри MP3. А как оно всё устроено?

Reading time5 min
Views105K


Однажды мне понадобилось решить простенькую (как мне тогда казалось) задачу – в PHP-скрипте узнать длительность mp3-файла. Я слышал о ID3 тегах и сразу подумал, что информация о длительности хранится либо в тегах, либо в заголовках mp3-файла. Поверхностные поиски в интернете показали что за пару-тройку минут решить эту задачу не получится. Поскольку от природы я довольно любопытен а время не поджимало — решил не использовать сторонние инструменты а разобраться в одном из самых популярных форматов самостоятельно.

Если Вам интересно, что там внутри – добро пожаловать под кат (трафик).
Читать дальше →
Total votes 231: ↑219 and ↓12+207
Comments55

Динамические вызовы: сравнение методов

Reading time15 min
Views8.7K

Динамические вызовы: что это и зачем?



Думаю, для каждого разработчика, работающим на статических языках программирования, иногда возникала необходимость прибегнуть к динамическим вызовам — вызвать метод чего-то, о чем пока еще ничего не известно. Или получить какое-то свойство у какого-то объекта, о котором будет известно только в run-time.

Это иногда используется в алгоритмах, основанных на так называемой «утиной типизации» (duck typing):
Если что-то выглядит как утка, плавает как утка и крякает как утка, то это, вероятно, утка и есть.


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

Читать дальше →
Total votes 98: ↑76 and ↓22+54
Comments27

Обзор типов индексов Oracle, MySQL, PostgreSQL, MS SQL

Reading time6 min
Views197K
В одном из комментариев здесь была просьба рассказать подробнее об индексах, и так как, в рунете практически нет сводных данных о поддерживаемых индексах различных СУБД, в данном обзоре я рассмотрю, какие типы индексов поддерживаются в наиболее популярных СУБД
Взглянем?
Total votes 99: ↑96 and ↓3+93
Comments41

Как сдвинуть гору Фудзи или Интервью для гениев

Reading time4 min
Views67K
Дискляймер: Эта статья написана мной несколько месяцев назад (и тогда у меня было мало кармы, поэтому она осталась только в моем блоге), но, думаю, она все еще не потеряла свою актуальность. Тут я постаралась собрать информацию, которую бы мне хотелось получить в самом начале подготовки ко всяческим интервью. Статья основана на большом количестве личного опыта, но про опыт я написала и напишу отдельно.

Наверняка многие из вас слышали об ужасно сложных интервью для желающих работать в компаниях типа «Microsoft», «Google» или «Apple» (на самом этот список можно продолжать и продолжать). Еще бы — общеизвестно, что Google каждый день получает порядка 1000 резюме, все именитые компании рассказывают направо и налево, что они ищут не меньше, чем гениев, а на просторах безграничного интернета время от времени появляются вопросы, которые задавались на интервью вроде «Как вы сдвинете гору Фудзи?» или «Сколько мячиков влезет в автобус?» или даже «Как создать хорошую поисковую систему, вроде Google?».

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

Итак, допустим цель «получить работу мечты» поставлена. Что же делать дальше?

Читать дальше →
Total votes 16: ↑7 and ↓9-2
Comments29

Создание документации в .NET

Reading time12 min
Views55K
Open notebookКачественная документация – неотъемлемая часть успешного программного продукта. Создание полного и понятного описания всех функций и возможностей программы и программного компонента требует немало сил и терпения. В данной статье я рассмотрю некоторые практические аспекты создания документации для .NET компонентов.

Предположим, что у нас готова или почти готова некоторая .NET библиотека для разработчиков (они же конечные пользователи). API библиотеки безупречен, количество багов впечатляюще мало, да и вообще это не библиотека, а просто кладезь совершенного кода. Дело за малым – объяснить пользователям, как работать с этим замечательным продуктом.

Есть разные подходы к написанию документации. Некоторые команды предпочитают начинать создание документации в момент начала создания продукта. Другие откладывают написание мануалов на окончание работ. В некоторых командах документацию пишут специальные люди, которые ходят от разработчика к разработчику и от менеджера к менеджеру, аккумулируя знания о продукте. Во многих небольших командах таких специальных людей нет, а потому документацию часто пишет разработчик или разработчики. Кто-то использует сторонние средства вроде Help & Manual, в которых, как в заправском текстовом редакторе, можно создавать очень сложную верстку и на выходе получать документацию в многообразии форматов. Многие используют другой подход, широко пропагандируемый в последнее время – написание документации прямо в коде программы/библиотеки.

Читать дальше →
Total votes 95: ↑82 and ↓13+69
Comments29

Microsoft Moles Isolation Framework, копаем глубже

Reading time15 min
Views3.3K
Как вы поняли из названия, речь пойдет о продукте от Microsoft Research – Microsoft Moles Isolation Framework. Я познакомился с ним впервые после прочтения поста хабраюзера alek_sys. Моль мне настолько понравилась, что я решил поделиться своим опытом её использования.

Зачем?


Для начала попробуем определиться, для каких целей предназначена Microsoft.Moles и чего мы можем с ней добиться:
  • Полная изоляция тестируемой логики от внешнего окружения.
  • Возможность быстрого и просто создания юнит-тестов, при чём тестирование логики класса становится возможным даже при отсутсвии реализации классов, пользователем которых является тестируемый класс.
  • Становится просто организовать наборы тестовых данных или моделировать состояние связанных обьектов для создания тестовых условий
  • В разы сокращается время выполнения юнит-тестов, становится реальным частый запуск тестов
  • Нарушение логики юнита не влечет за собой падение сотни-другой не предназначенных для его тестирования тестов
  • Удобное тестирование методов со сложным workflow

Читать дальше →
Total votes 44: ↑36 and ↓8+28
Comments21

Версионность и история данных

Reading time5 min
Views122K
При разработке баз данных зачастую требуется обеспечить поддержку версионности и хранения истории объектов. Например, у работника может изменяться должность, у должности в свою очередь может меняться оклад — в многомерном моделировании это называется Slowly changing dimensions(далее SCD) — редко изменяющиеся измерения, то есть измерения, не ключевые атрибуты которых имеют тенденцию со временем изменяться. Всего существует 6 основных типов(методов) SCD, которые определяют как история изменений может быть отражена в модели.

Подробнее...
Total votes 64: ↑62 and ↓2+60
Comments50

Information

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