В этом посте я приведу статистику по данным, которые указали в своих профилях пользователи социальной сети ВКонтакте. Под катом также содержится ответ на интересующий многих вопрос — сколько всё-таки активных пользователей в этой соцсети? И, разумеется, пара слов о том, как всё это было собрано.
Павел Т @kefirr
Ignite.NET maintainer
Что должен знать о времени каждый программист
3 min
100KTranslation
Некоторые замечания о времени
- UTC: время на нулевом меридиане называется Всемирное координированное время, Universal Coordinated Time. Несовпадение акронима было вызвано необходимостью универсальности его для всех языков.
- GMT: ранее вместо UTC использовалось среднее время по Гринвичу (Greenwich Mean Time, GMT), так как нулевой меридиан был выбран так, чтобы проходить через Гринвичскую королевскую обсерваторию.
- Прочие часовые пояса могут быть записаны как смещение от UTC. Например, Австралийское восточное стандартное время (EST) записывается как UTC+1000, то есть время 10:00 по UTC есть 20:00 по EST того же дня.
+224
10 способов улучшить свои навыки программирования
4 min
89KTranslation
1. Выучить новый язык программирования
Изучение нового языка программирования разовьет новые способы мышления, особенно если новый язык программирования использует парадигмы, с которыми Вы еще не знакомы. Многие из приобретенных способов мышления могут быть применены к языкам, которые уже знаете. Возможно, вы даже полюбите новый для Вас язык программирования настолько, что начнёте использовать его для серьёзных проектов.
Среди языков программирования отличный познавательный эффект и наверстывание опыта дают: Lisp (или Scheme), Форт, PostScript или Factor (стековые языки программирования), Haskell (строго типизированный, чистый функциональный язык) либо OCaml (объектно-ориентированный язык функционального программирования), Пролог (логическое программирование), Erlang (отличные паралельные вычисления).
+215
Результаты зарплатного опроса
2 min
2.8KКакое-то время назад я проводил анкетирование на тему зарплат разработчиков. Пришло время рассказать о полученных результатах.
Всего было заполнено около 1900 анкет разработчиками из более чем 300 городов, преимущественно из России и Украины.
В первую очередь хотелось бы поблагодарить всех добровольцев, которые не пожалели нескольких минут на заполнение анкеты и всех, кто поддержал инициативу на хабре.
Всего было заполнено около 1900 анкет разработчиками из более чем 300 городов, преимущественно из России и Украины.
В первую очередь хотелось бы поблагодарить всех добровольцев, которые не пожалели нескольких минут на заполнение анкеты и всех, кто поддержал инициативу на хабре.
+37
Измеряем производительность с помощью DynamicObject
7 min
979С динамическими типами данных сложилась ситуация, схожая с АОП. А именно – полезных примеров применения этой техники можно пересчитать по пальцам, и они достойны коллекционирования (одна из коллекций по АОП собрана mezastel здесь). Сегодня, я надеюсь, мы добавим ещё пару таких примеров.
+16
Jinni: поиск фильмов по настроению
2 min
3.1KКиностартапом сейчас никого не удивишь.
Казалось бы, изобретено все: топы лучших фильмов, поиск фильмов по жанрам, стране и прочим параметрам, рекомендации пользователей.
Рекомендации иногда помогают выбрать что то по интересам, однако не решают простой проблемы: сегодня я хочу фильм, чтобы просто расслабиться, завтра — посмотреть с девушкой что то романтическое, а послезавтра меня потянет на артхаус.
Поиск по жанрам также не помогает: комедии бывают романтические, тупые, а бывают и грустные. А что может скрываться за жанром «драма» — перечислять устанешь.
Но вот ребятам из jinni удалось сделать кое-что новое в поиске фильмов.
Казалось бы, изобретено все: топы лучших фильмов, поиск фильмов по жанрам, стране и прочим параметрам, рекомендации пользователей.
Рекомендации иногда помогают выбрать что то по интересам, однако не решают простой проблемы: сегодня я хочу фильм, чтобы просто расслабиться, завтра — посмотреть с девушкой что то романтическое, а послезавтра меня потянет на артхаус.
Поиск по жанрам также не помогает: комедии бывают романтические, тупые, а бывают и грустные. А что может скрываться за жанром «драма» — перечислять устанешь.
Но вот ребятам из jinni удалось сделать кое-что новое в поиске фильмов.
+44
Квадрокоптер своими руками: Часть I
4 min
345KВНИМАНИЕ, статья устарела, но её всё еще можно использовать в ознакомительных целях
Как и обещал, как только полечу — напишу полноценный пост по поводу сборки своего летающего агрегата. Наверняка многие давно посмотрели как «обычный» офисный сотрудник собирает это за 2 часа, сразу отмечу что я не «обычный» офисный работник, поэтому летчик из меня пока не очень, но важно что квадрокоптер летает и адекватно реагирует на управление. Первое и самое главное — если решили собирать, не экономьте и не думайте что вы умнее тех кто уже летает, так же учтите, что теория несколько расходится с практикой.
Есть большое число прошивок, готовых контроллеров, вариантов датчиков, моторов и т.д. и т.п. — выбрать есть из чего, но в статье остановлюсь только на одном варианте, основанном на Arduino Mega, прошивке MegaPirate и относительно дешевых датчиках.

Есть большое число прошивок, готовых контроллеров, вариантов датчиков, моторов и т.д. и т.п. — выбрать есть из чего, но в статье остановлюсь только на одном варианте, основанном на Arduino Mega, прошивке MegaPirate и относительно дешевых датчиках.
+130
Оффлайновые карты всего мира
2 min
6.2K
Если это будет интересно, я как нибудь напишу, как я уходил из цюрихского Гугла, и при этом все вокруг делали квадратные глаза и как потом на чистом энтузиазме мы с друзьями почти год писали проект.
+216
БД Oracle для программиста
9 min
97KНужно ли программисту прикладных приложений понимать как работает БД? Том Кайт, признанный специалист Oracle, автор знаменитой колонки asktom, в своей книге «Oracle для профессионалов. Архитектура и основные особенности.» настаивает, что это просто необходимо. Даже если в вашей команде есть грамотный администратор, знание того, как работает СУБД Oracle поможет вам лучше понимать друг друга и эффективней взаимодействовать, не говоря уже о случае, когда такого специалиста у вас нет. В данном топике я упомяну об основных вещах, понимание которых позволит грамотно работать с БД Oracle и использовать некоторые её особенности с большой отдачей для вашего приложения. Если же вы уже прочитали вышеупомянутую книгу Тома Кайта, то можете просто исползовать эту статью в качестве памятки. Одно замечание — книжку я читал давно, и тогда еще последней версией БД Oracle была 9i, курсы по администрированию я тоже проходил по девятке, так что, если в десятке и выше что-то поменялось и добавилось, то не обессудьте. Хотя я пишу о довольно фундаментальных вещах, которые вряд ли сильно поменяись.
+42
А еще в Visual Studio есть External Tools…
4 min
5.4K
Как оказалось, я был неправ. Есть множество сценариев, когда External Tools позволит быстро расширить возможности Visual Studio.
Как раз вчера мой хороший знакомый задал вопрос – как сделать аналог команды Open Containing Folder из пакета PowerCommands for Visual Studio 2010, но для вызова Far Manager, а не Windows Explorer? В оригинале эта команда доступна в контекстном меню Solution Explorer, она открывает Windows Explorer и устанавливает курсор на файл, для которого она была вызвана.
Моя первая идея (нет ничего проще – нужно скачать PowerCommands.vsix из Visual Studio Gallery, распаковать его, разобрать на части Reflector’ом, обложиться руководствами по расширению Visual Studio и быстро написать аналог) понимания не нашла – написание plugins для Visual Studio (если это не расширения редактора) по-прежнему остается весьма нетривиальной задачей, и если нет опыта, то даже при наличии примеров и пошаговых руководств ее решение займет не меньше, чем полдня – если не целый день!
Еще немного подумав, я решил, что для этих целей вполне подойдет механизм External Tools! И, действительно, создание «команды» Open Containing Folder in FAR заняло у меня не более получаса.
Давайте посмотрим, как это можно сделать.
+58
Небольшое тестирование двух библиотек для работы с ZIP архивами (язык C#)
5 min
30K
Не раз приходилось работать с zip архивами с помощью C#, в моих случаях — это было скачивание архива с базой, потом извлекал базу на диск, если это был не текстовый файл, то динамически подключал базу данных, иначе просто считывал необходимые мне данные. Для этих целей я использовал ZipStorer, он мне нравиться тем, что очень просто делает возложенную на него работу, мало весит и является классом, который с минимальным количеством телодвижений оказывается в исполняемом файле. Сегодня я решил попробовать что-то другое, для чего выбрал две библиотеки SharpZipLib и DotNetZip, после чего провел небольшое тестирование, чтобы понять какая из них может мне быть полезной в будущем.
+25
Ускоряем Visual Studio, часть II. Эксперименты с компиляцией
7 min
32KTutorial

Сразу скажу, что в финале мне удалось добиться сокращения времени компиляции решения с 4:24 минут до менее чем одной минуты. Детали под катом.
+29
5 причин отказаться от оценок
2 min
5.2KВ нашей компании мы не оцениваем работу. Ни в часах, ни в поинтах, ни в зеленых крокодилах. Совсем не оцениваем. Если вы давно хотели отказаться от оценок, но не знали, почему, вот вам пять причин.
Оценки занимают время. Даже если вы оцениваете в абстрактных поинтах, играя в покер, все равно тратится прилично времени. А что, если вы хотите улучшить точность оценок? Тогда вы собираете данные, анализируете данные и обсуждаете результаты анализа. Все это тоже занимает прилично времени. Но подумайте, вам на самом деле нужны оценки? Часто это waste. Лучше потратить время на что-то действительно полезное для продукта.
1. Вы не будете тратить время на оценки
Оценки занимают время. Даже если вы оцениваете в абстрактных поинтах, играя в покер, все равно тратится прилично времени. А что, если вы хотите улучшить точность оценок? Тогда вы собираете данные, анализируете данные и обсуждаете результаты анализа. Все это тоже занимает прилично времени. Но подумайте, вам на самом деле нужны оценки? Часто это waste. Лучше потратить время на что-то действительно полезное для продукта.
+51
Принцип цикады и почему он важен для веб-дизайнеров
6 min
236KTranslation

Однако, в зависимости от вида, каждые 7, 11, 13 или 17 лет периодические цикады одновременно массово вылезают на свет и превращаются в шумных летающих тварей, спариваются и вскоре умирают.
Хотя наши странные цикады весело уходят в иной мир, возникает очевидный вопрос: это просто случайность, или числа 7, 11, 13 и 17 какие-то особенные?
+668
Энергосберегающие лампы: как же их выбирать?
4 min
128KЛампы накаливания медленно и печально уходят из повседневного быта, а на замену сгоревшим уже нельзя приобрести лампы мощнее 95Вт. Для предотвращения тёмных времён предназначены люминесцентные лампы, но выбрать хорошую лампу не так просто, особенно потому, что китайские и турецкие заводы работают в полный рост и заваливают магазины откровенным барахлом.
Если Вы хотите постичь таинство выбора лампы, которая порадует глаз и не подпортит зрение — добро пожаловать под кат.
Если Вы хотите постичь таинство выбора лампы, которая порадует глаз и не подпортит зрение — добро пожаловать под кат.
+90
Wuala — революция облачного хранения!
2 min
5.6K
Если коротко — это аналог Dropbox, но с некоторыми удивительными отличиями.
По умолчанию пользователю дается всего 1 гигабайт облачного пространства, но его бесплатно можно расширить если у вас есть свободное место, которым вы готовы поделиться с другими.
Постараюсь не затягивать статью, но первый блин, как известно, комом!
+66
Работа со структурами в C#
13 min
146KTranslation
По следам недавнего топика «Обработка больших объемов данных в памяти на C#» представляю перевод упоминавшейся там статьи о структурах.
Структуры являются фундаментальными типами данных в C# и большинстве других современных языках программирования. По своей сути структуры просты, но вы можете удивиться, насколько быстро работа с ними может стать сложной. Чаще всего проблемы возникают, если вы должны работать со структурами, созданными в других языках и сохраненными на диске или полученными в результате вызова функций из библиотек или COM-объектов. В этой статье я подразумеваю, что вы знакомы с понятием структуры, умеете определять их и владеете базовыми навыками работы со структурами. Предполагается, что вы имеете представление о том, как вызывать API функции с использованием p/Invoke, а также что такое маршалинг. В случае неуверенности в своих знаниях вы можете обратиться к документации.
Множество техник, описанных в данной статье, могут быть расширены и применены к любым типам данных.
+68
Обработка больших объемов данных в памяти на C#
7 min
90KХочу поделиться недавно приобретенным в C# опытом по загрузке и обработке в памяти больших объемов данных. Все нижеуказанное касается Visual Studio 2008 и .Net Framework 3.5.1, на случай каких-либо отличий в других версиях языка или библиотек.
Итак, у нас возникли следующие задачи:
1. Расположить в памяти до 100 миллионов записей, состоящих из строки, длиной 16 символов (уникальный ключ) и двух целочисленных значений, длиной 4 байта каждый;
2. Быстро находить и редактировать запись по ключу.
Итак, у нас возникли следующие задачи:
1. Расположить в памяти до 100 миллионов записей, состоящих из строки, длиной 16 символов (уникальный ключ) и двух целочисленных значений, длиной 4 байта каждый;
2. Быстро находить и редактировать запись по ключу.
+80
GOTO в прикладном программировании
6 min
18K
Картинка из книги Thinking Forth
По мотивам «обобщенной» статьи про GOTO и статьи про GOTO в системном программировании:
Мотивы для использования GOTO и альтернативы ему принципиально отличаются для системного и прикладного программирования — это является и важной причиной холиваров. Для прояснения ситуации рассмотрим GOTO только в разрезе прикладного программирования.
Основной тезис: в прикладном программировании GOTO однозначно лучше обходить.
Как докажем:
- В прикладном программировании критически важен один параметр кода — сопровождаемость.
- Goto не ухудшает однозначно сопровождаемость только в небольшом проценте случаев, и даже в этих случаях принципиально от альтернатив не отличается
- Ради небольшого процента случаев его использовать вредно:
1) очень низкоуровневое, поэтому сильно развращает программиста (возникает соблазн использовать и в других местах) — большой вред из-за небольшого процента случаев, когда GOTO можно применить;
2) даже в таких случаях есть более красивые альтернативы.
+20
tryfsharp.org — Microsoft выпустил бета версию сайта для онлайн изучения F#
1 min
1.5KНа сайте есть написанный на Silverlight редактор кода c подсветкой синтаксиса и небольшой учебник по F#


+68
Information
- Rating
- Does not participate
- Registered
- Activity