Pull to refresh
1
0

Руководитель разработки

Send message

Чем заменить гарнитуру? Обзор стильных наушников

Reading time6 min
Views74K


Долгое время я пользовался гарнитурой не только в связке с телефоном, но и с плеером. Как оказалось, в iPod Classic открывается возможность диктофонной записи, если подключить гарнитуру. Примерно через год фирменные ушки Apple пришли в негодность, равно как и телефонные наушники. Я приобрёл Razer Moray +, про которые писал Boomburum. Наушники неплохие, но у них практически отсутствуют верхи и низы. Да, для игр и телефонных разговоров этого достаточно, а вот чтобы полноценно насладиться произведениями Баха, всё-таки, не хватает. Увы, но и эти наушники сломались через год. Пришло время выбирать новую гарнитуру. Недолго думая, я подобрал 4 пары неплохих наушников с немного различными характеристиками и ценами. Их обзор и представляю на ваш суд.
Читать дальше →
Total votes 68: ↑48 and ↓20+28
Comments133

Запуск Visual Studio 2012 в День Программиста!

Reading time3 min
Views18K

Сегодня, в день программиста состоится замечательное событие – выход в свет нового продукта для разработчиков – Visual Studio 2012. По адресу www.visualstudiolaunch.ru уже через несколько часов начнется трансляция виртуального мероприятия из которого вы узнаёте о тех новинках которые мы включили в этот продукт. В Microsoft Visual Studio 2012 присутствует множество новых функций разработки для Windows 8, Интернета, SharePoint, мобильных устройств и облачных служб, а также средства управления жизненным циклом приложений, позволяющие устранить препятствия между сотрудниками и сократить трудозатраты.
Читать дальше →
Total votes 36: ↑29 and ↓7+22
Comments25

Skype 5.11 for Windows интеграция Microsoft Account

Reading time1 min
Views30K

Сегодня команда Skype объявила о новой бета-версии Skype для Windows.
В этой 5.11 бете содержится много новых функций, которые многие давно ожидали, а некоторые даже побаивались, из за того что Skype все больше интегрируется в инфраструктуру Microsoft.
Читать дальше →
Total votes 38: ↑29 and ↓9+20
Comments99

Позволим «Read Only» аккаунтам задавать вопросы и/или отвечать на них?

Reading time1 min
Views8.1K
Собственно, сабж. В интернете непросто найти форум с грамотными специалистами, а на Хабре их достаточно. Поэтому я часто и с удовольствием пользуюсь разделом q&a. Наверняка многие пользователи из «Read Only» тоже хотели бы им воспользоваться. Мы могли бы быть полезны друг другу. И вот почему:

1. Возможно, некий пользователь из «Read Only» не умеет составлять статьи и не может пройти через «Песочницу». Но он спец в своём деле, и мог бы поделиться своим опытом в ответе на вопрос.
2. Для привлечения дополнительного внимания к Хабру и усиления популяризации, позволить пользователям задавать вопросы здесь, а не искать где бы зарегаться чтоб получить ответ там.

Конечно, стоило бы продумать всю эту идею в деталях. С одной стороны, никому не нужны куча «левых» вопросов, которые зафлудят Хабр. С другой, реально грамотных людей, которые уже поделились своим опытом, можно было бы наградить за их старания.
Читать дальше →
Total votes 77: ↑57 and ↓20+37
Comments37

Проверь свой T-SQL код!

Reading time3 min
Views24K
SqlCodeGuard В далёком 2005 году я менял стек технологий с Java на .NET и поначалу в Visual Studio мне очень не хватало возможностей, которыми располагала IntelliJ IDEA. Пробуя различные плагины к студии, я остановился на ReSharper'е и по сей день его использую. Недавно стало интересно, есть ли похожие продукты для работы с SQL Server, а точнее с T-SQL кодом хранимых процедур. Собственно про один такой продукт я и хочу рассказать в этой статье.

Итак, SqlCodeGuard – это бесплатный addin для SQL Server Management Studio для статического анализа T-SQL кода. Ну и плюс пара-тройка других возможностей.

Основные возможности под хабракатом...
Total votes 52: ↑48 and ↓4+44
Comments14

Инструментарий разработчика: SQL Assistant

Reading time6 min
Views48K
Я работаю разработчиком БД (MS SQL) и большая часть моей работы, это написание кода на T-SQL. Работая в Query Analyzer, а затем в Management Studio (2005, 2008, 2008R2) мне очень сильно не хватало функций редактора и дополнительных функций среды разработки, направленных именно на процесс написания кода, построения запросов и т.п… По сравнению с MS Visual Studio или Embarcadero RAD Studio, что мог предложить Query Analyzer? Изменить отступ блока кода, изменить регистр выделенного текста, закомментировать и отменить комментирование блока кода, перетащить название таблицы или поля (полей) в окно редактора, заскриптовать выбранный объект. А ведь так не хватало полноценного IntelliSense. Всех этих удобных функций по автодополнению, интерактивных подсказок к набираемому коду, выбор из списка объектов и т.п.

С выходом MS Management Studio 2005 ситуация не изменилась. И только в MS Management 2008 появился Transact-SQL IntelliSense. Да, появилось автозавершение набираемого слова, предоставление списка объектов БД и полей таблицы, подсветка синтаксических пар (begin… end, ()). Но уже до этого я стал пользоваться сторонней утилитой SQL Assistant от SoftTree Technologies. На фоне возможностей, которые предоставляет SQL Assistant родной IntelliSense просто дубовый. А разве можно получить что-то большего, ведь это SQL, а не объектно-ориентированный язык? Можно! В этой статье я хотел бы рассказать об утилите SQL Assistant, а точнее о функция и приемах, которые я использую при написании SQL-кода.
Примеры использования в картинках
Total votes 14: ↑11 and ↓3+8
Comments8

Изолирование кода во время тестирования с помощью Microsoft Fakes (Shims)

Reading time3 min
Views14K
Впервые я встретился с юнит тестированием на Java и был рад возможности делать моки на final классы, на статические члены. В это время на .Net нельзя было сделать ничего подобного. Только интерфейсы. Можно безгранично долго рассуждать о том, что если понадобилось делать что-то неестественное, то нужно переписывать реализацию, делать IOC и прочее. Но когда речь идет о наследованном коде, неприспособленном архитектурно к юнит тестированию – возможность менять вещи без переписывания выручает.
Я окончательно забросил Java и ушел в .Net и каждый раз при разговоре о юнит тестах вспоминал, что на Java возможностей больше.
И вот в 2012 студии добавили возможность делать мок любых объектов. Абсолютно любых, даже системных. Под катом перевод статьи из MSDN (переведено только по шимам, т.к. стабы особого интереса не представляют).
Читать дальше →
Total votes 23: ↑19 and ↓4+15
Comments9

«Сложно о простом». Функции-конструкторы — как объекты,(prototype). Объекты,(__proto__). constructor, ={}, как функция-конструктор new Object()

Reading time9 min
Views82K
В прошлый раз мы попытались разобраться со следующими вещами:

  • 1. Не смотря на расхожее мнение «всё в JS является объектами» — это не так, мы выяснили, что из 6 доступных программисту типов данных аж 5 является примитивами и лишь один представляет тип объектов.
  • 2. Про объекты мы узнали, что это такая структура данных, которая содержит в себе пары «ключ-значение». Значением может быть любой из типов данных (и это будет свойство объекта) или функция (и это будет метод объекта).
  • 3. А вот примитивы – это не объекты. Хотя с ними и можно работать как с объектом (и это вызывает заблуждение что примитив – это объект), но…
  • 4. Переменные можно объявить как по простому (литерально) (var a = ‘str’), так и через функцию-конструктор (обёртка)(var a = new String(‘str’)). Во втором случае мы получим уже не примитив, а объект созданный конструктором String(). (что за магический оператор new и что такое функция-конструктор мы узнаем дальше).
  • 5. Узнали, что именно за счёт создания обёртки над примитивом (new String(‘str’)) c ним можно работать как с объектом. Именно эту обёртку создаёт интерпретатор вокруг примитива, когда мы пытаемся работать с ним как с объектом, но после выполнения операции она разрушается (поэтому примитив никогда не сможет запомнить свойство, которое мы ему присвоим a.test = ‘test’- свойство test исчезнет с обёрткой).
  • 6. Узнали, что у объектов есть метод toString() который возвращает строковое представление объекта (для типа number valueOf() – вернёт числовое значение).
  • 7. Поняли, что при выполнении операций конкатенации или математических операциях примитивы могут переопределить свой тип в нужный. Для этого они используют функции-обёртки своих типов, но без оператора new (str = String(str)).(в чём разница и как это работает, поговорим дальше)
  • 8. И наконец, узнали, что typeof берёт значения из жёстко зафиксированной таблицы (вот откуда ещё одно заблуждение, основанное на typeof null //object).

Читать дальше →
Total votes 57: ↑40 and ↓17+23
Comments39

«Сложно о простом». Типы данных JS. В поисках истины примитивов и объектов

Reading time6 min
Views47K
Я решил написать цикл статей, под названием «Сложно о простом». Этот цикл будет посвящён языку JavaScript. Почему «сложно о простом»? Потому что всё, что я буду рассказывать я буду рассказывать учитывая особенности работы интерпретатора, начиная с типов данных. Всё это будет делаться для того, что бы потом можно было рассказать просто о сложном, например, о способах наследования в JavaScript и прочих патернах.
Читать дальше →
Total votes 40: ↑28 and ↓12+16
Comments64

Сравнительный анализ CMS: охота на оптимальную систему для создания корпоративных сайтов

Reading time14 min
Views95K
Здравствуйте!

Хочу поделиться результатом собственного исследования, проводимого мной на протяжении недели в среде существующих CMS. Цель у меня была проста и прагматична — выбрать лучшую систему для создания корпоративных сайтов. Такая необходимость возникла в связи с постоянно растущим количеством заказов на сайты. С одной стороны, это не может не радовать, а с другой — заставляет максимально тщательно и с полной ответственностью отнестись к выбору движка, которому и предстоит сопутствовать не слишком опытному программисту в вопросе создания сайтов.
Читать дальше →
Total votes 110: ↑56 and ↓54+2
Comments188

Немного о многопоточном программировании. Часть 1. Синхронизация зло или все-таки нет

Reading time12 min
Views70K
Мне по работе часто приходится сталкиваться с высоконагруженными многопоточными или многопроцессными сервисами (application-, web-, index-server).
Достаточно интересная, но иногда неблагодарная работа — оптимизировать все это хозяйство.
Растущие потребности клиентов часто упираются в невозможность просто заменить железную составляющую системы на более современную, т.к. производительность компьютеров, скорость чтения-записи жестких дисков и сети растут много медленнее запросов клиентов.
Редко помогает увеличение количества нодов кластера (система как правило распределенная).
Чаще приходится запустив профайлер, искать узкие места, лезть в source code и править ляпы, которые оставили коллеги, а иногда и сам, чего греха таить, много лет назад.
Некоторые из проблем, связаных с синхронизацией, я попытаюсь изложить здесь. Это не будет вводный курс по многопоточному программированию — предпологается, что читатель знаком с понятием thread и context switch, и знает для чего нужны mutex, semaphore и т.д.
Читать дальше →
Total votes 69: ↑59 and ↓10+49
Comments55

Обратная сторона луны

Reading time14 min
Views47K
При написании приложений, одной из важнейших вопросов являются потребление памяти и отзывчивость (скорость работы).

Считается, что сборщик мусора – черный ящик, работу которого нельзя предугадать.

А еще говорят, что GC в .NET практически не настраиваемый. А еще, что нельзя посмотреть исходники как классов .NET Framework, так и CLR, GC и т.п.

А я скажу как бы ни так!

В данной статье мы рассмотрим:
  • структура организации размещения объектов в памяти
  • CLR 4.5 Background Server GC
  • правильная настройка сборщика мусора
  • эффективный апгрейд приложений до .NET 4.0+
  • правильное ручное управление памятью

Читать дальше →
Total votes 138: ↑132 and ↓6+126
Comments28

Кормление и уход за разработчиками (или почему мы такие ворчуны)

Reading time22 min
Views28K
Прим. переводчика — В оригинале использовался всем знакомый термин «software engineer». Так как русский его аналог «инженер-программист» используется в повседневной речи редко, пришлось использовать слово «разработчик» как наиболее близкое. Также профессия «short-order cook», с которой автор сравнивает положение многих разработчиков в индустрии, была переведена как «мальчик на побегушках» — мне кажется, что она отлично отражает суть проблемы отношения к разработчикам. Наконец, я старался везде вместо слов «to code» и «programming» использовать «разрабатывать» и «разработка» из-за сложившемся в русском языке негативном смысле слов «кодировать» и «программирование» как примитивных процессов перевода требований в машинные инструкции низкого или высокого уровня.

Автор оригинальной статьи — Nickolas C. Zakas, известный фронтенд разработчик и JavaScript-евангелист в свое время проработавший более пяти лет в Yahoo. Это запись из его блога, в которой он говорит о том, почему с разработчиками так сложно договориться и что с этим делать.


Не так давно Дженна Байлотта написала замечательную статью «Как дизайнерам ужиться с разработчиками», в которой она описывает методы работы в команде, позволяющие дизайнерам и разработчикам добиться лучшей производительности. Я в свое время работал с дизайнерами (а, работая в UI, и с разработчиками) и столкнулся с похожими проблемами, так что мне понятен ее практичный подход. Во время командной работы никогда не помешает уважать труд своих коллег и понимать их способ мышления.

Одна из главных мыслей той статьи заключалась в том, что разработчики говорят «нет» слишком быстро. Эта мысль тут же въелась мне в мозг и долго отказывалась вылезать оттуда. Мне хотелось воскликнуть: «Но подожди, ты же не понимаешь, почему мы говорим „нет“!». Тут же появился миллион других защитных аргументов. На самом деле она, конечно, права — мы правда слишком быстро говорим «нет», причем не только дизайнерам, а вообще всем. Это побудило меня поразмыслить над психологией разработчиков и тем, что составляет нашу истинную суть.
Читать дальше →
Total votes 242: ↑228 and ↓14+214
Comments76
12 ...
33

Information

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