Pull to refresh
5
0

Пользователь

Send message

UNPIVOT

Reading time5 min
Views26K
За время моей работы, я сталкивался с широким кругом задач. Одни задачи требовали монотонной работы, другие сводились к чистому креативу.

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

Оптимизация – это, в первую очередь, поиск оптимального плана запроса. Однако, что делать в ситуации, когда стандартная конструкция языка выдает план, который очень далек от оптимального?

С такого рода проблемой я столкнулся, когда применял конструкцию UNPIVOT для преобразования столбцов в строки.

Путем небольшого сравнительного анализа, для UNPIVOT была найдена более эффективная альтернатива.
Подробнее
Total votes 13: ↑12 and ↓1+11
Comments3

Введение в анализ сложности алгоритмов (часть 3)

Reading time6 min
Views125K
От переводчика: данный текст даётся с незначительными сокращениями по причине местами излишней «разжёванности» материала. Автор абсолютно справедливо предупреждает, что отдельные темы могут показаться читателю чересчур простыми или общеизвестными. Тем не менее, лично мне этот текст помог упорядочить имеющиеся знания по анализу сложности алгоритмов. Надеюсь, что он окажется полезен и кому-то ещё.
Из-за большого объёма оригинальной статьи я разбила её на части, которых в общей сложности будет четыре.
Я (как всегда) буду крайне признательна за любые замечания в личку по улучшению качества перевода.


Опубликовано ранее:
Часть 1
Часть 2

Логарифмы


image
Если вы знаете, что такое логарифмы, то можете спокойно пропустить этот раздел. Глава предназначается тем, кто незнаком с данным понятием или пользуется им настолько редко, что уже забыл что там к чему. Логарифмы важны, поскольку они очень часто встречаются при анализе сложности. Логарифм — это операция, которая при применении её к числу делает его гораздо меньше (подобно взятию квадратного корня). Итак, первая вещь, которую вы должны запомнить: логарифм возвращает число, меньшее, чем оригинал. На рисунке справа зелёный график — линейная функция f(n) = n, красный — f(n) = sqrt(n), а наименее быстро возрастающий — f(n) = log(n). Далее: подобно тому, как взятие квадратного корня является операцией, обратной возведению в квадрат, логарифм — обратная операция возведению чего-либо в степень.
Читать дальше →
Total votes 74: ↑60 and ↓14+46
Comments4

Готовимся к пятнице: светящиеся напитки из бара TRON: Наследие

Reading time1 min
Views165K
Те, кто видел фильм «TRON: наследие» наверняка хорошо помнят сцену в баре с Daft Punk в роли диджеев и волшебным освещением, где даже напитки светятся.

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

Мало кто знает о специфическом свойстве витаминов группы «B» — способности светиться в ультрафиолетовых лучах. Именно его мы и будем использовать для создания светящихся напитков. Вещества, которые отвечают за свечение – это рибофлавин (B2) и хинин (содержится в тонике и многих других сильногазированных напитках).

Всего 4 ингредиента отделяют нас от готового напитка.
Читать дальше →
Total votes 152: ↑122 and ↓30+92
Comments77

Посты-рекордсмены. Продолжение

Reading time5 min
Views30K
Судя по реакции на предыдущий пост, тема парсинга Хабра и альтернативных топов интересна не только мне, поэтому продолжу.
Спасибо всем, кто голосовал и комментировал и отдельно тем, кто присылал идеи новых рейтингов и исследований.

В предыдущем посте (Посты-рекордсмены / Хабрахабр), я пробовал различные варианты сортировки постов Хабра, отличные от обычного рейтинга. В этом я буду сортировать по рейтингу, но не все посты, а отобранные по определённым критериям.
Читать дальше →
Total votes 80: ↑75 and ↓5+70
Comments13

Бутстрап, или прикладная статистика почти без формул

Reading time4 min
Views84K
BootstrapВ институтах студентов учат интегрировать аналитически, а потом обнаруживается, что на практике интегралы почти все считают численными методами. Ну или по крайней мере проверяют таким образом аналитическое решение.

В статистике тоже есть нечестный метод, который позволяет получить примерный ответ на многие практические вопросы без анализа, грубой компьютерной силой: бутстрап (англ. bootstrap). Придумал и опубликовал его в 1979 году Брэдли Эфрон.
Простой пример
Total votes 78: ↑71 and ↓7+64
Comments23

27+ ресурсов для онлайн-обучения

Reading time5 min
Views969K

В настоящее время активно развивается система дистанционного обучения, теперь уже не является проблемой получение полноценного образования практически по любому предмету дистанционно. Онлайн-обучение имеет ряд преимуществ – обучение в индивидуальном темпе, свобода и гибкость, доступность, социальное равноправие. В сети появляется все больше сервисов, помогающих получать новые знания.

Статья содержит перечень ресурсов для онлайн-обучения, представляющих интерес преимущественно для программистов.

Читать дальше →
Total votes 174: ↑163 and ↓11+152
Comments68

Лекториум записал почти тысячу лекций за год

Reading time4 min
Views57K
Дорогой Хабр!



У нас для тебя небольшой подарок. Мы тут работали-работали и вот чего сделали.
Сняли и опубликовали почти тысячу лекций по IT и математике.

UPD2 Помогите, пожалуйста, оперативно решить вопрос насчёт организации торрентов на php.

Читать дальше →
Total votes 340: ↑333 and ↓7+326
Comments183

Топ-5 самых впечатляющих книг, которые должен прочесть каждый разработчик ПО

Reading time3 min
Views379K
Не так давно промелькнула ссылка на достаточно свежее (осень 2011) англоязычное голосование со скромным названием "самая впечатляющая книга, которую должен прочесть каждый разработчик программного обеспечения" и описанием:

Если бы вы могли вернуться в прошлое, к самому началу своей карьеры разработчика и сказать самому себе: «прочитай именно эту книгу», в самой начале своей карьеры разработчика, какую бы книгу вы рекомендовали?

Тема перевода зарубежной профессиональной IT-литературы стоит достаточно остро, многие любят читать книги в оригинале по различным причинам, таким так время выхода русского перевода с запозданием на годы, недостаточный профессионализм переводчика и соответствующая потеря тонкостей и авторского стиля и т.д.

Однако в данном небольшом посте я возьму на себя смелость перечислить ТОП-5 тех самых книг, победивших в голосовании, переведенных на русский язык. И дать небольшие комментарии, ведь книги действительно этого достойны. Да, лично я бы поменял некоторые места, однако положимся на «мнение зала» ресурса Stack Overflow.
Читать дальше →
Total votes 236: ↑219 and ↓17+202
Comments182

Несколько полезных сервисов

Reading time2 min
Views126K
Хочу поделиться ссылками на несколько полезных сервисов. Некоторые из них помогут сэкономить время, другие — сделают за Вас незнакомую/нелюбимую работу. Список разбит по категориям, чтобы было легче ориентироваться.

Сервисы опросов
userreport.com (добавил Romanych)
simpoll.ru
webanketa.com (добавил mihass)

Кнопки постинга в социальные сети
Кнопка от Яндекса
addthis.com (добавил UksusoFF)
share42.com
Читать дальше →
Total votes 382: ↑356 and ↓26+330
Comments108

Школа программистов HeadHunter 2013

Reading time4 min
Views21K
Сегодня утром стартовал очередной, уже четвёртый по счёту набор в школу программистов HeadHunter.
Занятия будут проходить по вечерам, два раза в неделю с октября по апрель в московском офисе технического департамента, недалеко от метро Алексеевская. Преподаватели – наши специалисты, в числе которых blv, mikesub, tum0rc0re и ваш покорный слуга. Во время обучения студентам выплачивается ежемесячная стипендия – 15 тыс. рублей. Лучшим выпускникам будущей весной мы предложим присоединиться к нашей команде.

В этом году мы кардинально изменили программу обучения – студенты будут проходить обучение по двум независимым направлениям: фронтенд-разработка и разработка мобильных приложений. Каждый студент теперь сможет выбрать, по какому направлению он будет обучаться. При этом у всех студентов будет и общий курс лекций. Ещё больше внимания будет уделено решению практических задач — прежде всего мы хотим, чтобы выпускники были хорошо подготовлены к работе в бизнес-среде. Изменились и правила набора: вместо нескольких отборочных туров мы предлагаем потенциальным студентам выполнить тестовое задание, по результатам которого лучшие будут приглашены на собеседование. Так мы не теряем в качестве отбора, но значительно его ускоряем.



Подробнее о новой школе программистов
Total votes 34: ↑23 and ↓11+12
Comments36

Голосовые отпечатки: скорее всего, вы уже успели «наследить»

Reading time4 min
Views65K


Если в колл-центрах, куда вы иногда звоните, есть система создания голосовых отпечатков, вас могут легко опознать. Если такой системы ещё нет, ваши отпечатки можно создать в один клик по ранее сделанным записям.

Работает это так: каждый раз, когда вы звоните, например, в банк, где есть система определения клиента по голосу, ваш разговор записывается. Скажем, 1-2 минут вашей беседы с оператором достаточно для того, чтобы создать достаточно точный профиль вашего голоса. В дальнейшем вас будут определять по первой фразе.

Процесс создания голосового отпечатка и его проверки несимметричный. Для создания используется больше данных (больше времени разговора), для проверки – меньше примерно на порядок. Максимум, который я видел в условиях сильно зашумлённой линии – 15 секунд на проверку.
Читать дальше →
Total votes 109: ↑98 and ↓11+87
Comments93

Хемилюминесценция люминола / что внутри «светящихся палочек»?

Reading time3 min
Views239K
Наверняка вы хоть раз видели химические источники света — светящиеся палочки, которые начинают работать после «переламывания». Внутри — стеклянная капсула, которая при этом ломается, и начинается какая-то мистическая химическая реакция. Мне всегда было интересно разобраться, как это работает.

Энергия связи молекул, освобождающаяся во время химической реакции — может выделится в виде тепла (к чему мы все привыкли), а в редких случаях может — в виде излучения кванта света. Излучение света во время химической реакции называется хемилюминесценцией. Существуют 2 наиболее распространенных реакции с хемилюминесценцией: окисление Люминола и окисление TCPO в присутствии органических красителей.

Отличие в том, что Люминол светится сам, а TCPO — передает энергию молекулам органического красителя (вроде Родамина), и таким образом можно управлять цветом свечения выбирая краситель. Про TCPO (включая его синтез) можно посмотреть на YouTube (использование синтез), а вариант с Люминолом — под катом.
Читать дальше →
Total votes 143: ↑143 and ↓0+143
Comments49

ASP.NET MVC Урок F. Работа как она есть

Reading time8 min
Views40K
Цель урока: финальный урок по созданию приложения. Написание технического задания. Создание БД. Переименование webTemplate. Применение скаффолдинга. Админка. Основной сайт. Тесты.

О главном

Это финальный урок, и тут я немного отойду от конкретного программирования и поразмышляю о работе.
Программирование – это работа, это профессия, это творчество. Когда я учился в университете и с кем-то шел по дороге домой, мы часто спорили, что лучше Windows или Linux, Delphi или C++. Тогда мы могли не спать ночами, чтобы красиво переписать построение семантического дерева для компилятора. Мы изучали пролог, лисп, конечные автоматы, структуры данных. Мы учились видеть красоту быстрой сортировки Хоара реализованную на лиспе. ВО!:
(defun quicksort (lis) (if (null lis) nil
  (let* ((x (car lis)) (r (cdr lis)) (fn (lambda (a) (< a x))))
    (append (quicksort (remove-if-not fn r)) (list x)
      (quicksort (remove-if fn r))))))


Но теперь я рассматриваю программирование как услугу. Как что-то, за что мне платят деньги. Я занимаюсь фрилансом уже три года. В начале работы фрилансером я программировал не только веб и не только на asp.net mvc. Был и php на ZendFramework, и написание модулей для расчета стратегий для торговли на РТС на Quirk.

Читать дальше →
Total votes 129: ↑91 and ↓38+53
Comments8

ASP.NET MVC Урок E. Тестирование

Reading time32 min
Views51K
Цель урока. Научиться создавать тесты для кода. NUnit. Принцип применения TDD. Mock. Юнит-тесты. Интегрированное тестирование. Генерация данных.

Тестирование, принцип TDD, юнит-тестирование и прочее.

Тестирование для меня лично – это тема многих размышлений. Нужны или не нужны тесты? Но никто не будет спорить, что для написания тестов нужны ресурсы.
Рассмотрим два случая:
  1. Мы делаем сайт, показываем заказчику, он высылает список неточностей и дополнительных пожеланий, мы их бодро правим и сайт отдаем заказчику, т.е. выкладываем на его сервер. На его сервер никто не ходит, заказчик понимает, что чуда не произошло и перестает платить за хостинг/домен. Сайт умирает. Нужны ли там тесты?
  2. Мы делаем сайт, показываем заказчику, он высылает список правок, мы их бодро правим, запускаем сайт. Через полгода на сайте 300 уников в день и эта цифра растет изо дня в день. Заказчик постоянно просит новые фичи, старый код начинает разрастаться, и со временем его всё сложнее поддерживать.


Читать дальше →
Total votes 125: ↑86 and ↓39+47
Comments0

ASP.NET MVC Урок D. Scaffolding

Reading time16 min
Views38K
Цель урока. Научиться использовать Scaffolding для создания прототипа проекта. Определяем и фиксируем структуру репозитория. Простая и языковая версия класса. Тестируем использование Scaffolder-а, используем «направляющие» атрибуты. Параметры для Scaffolder-а. Создание управляющих атрибутов. Полный цикл создания и управления объекта в админке.

Scaffolding T4 для Visual Studio 2013 не применимо.

Scaffolding. Начало.

В этом и следующем уроке мы изучим то, что поможет вам в разы быстрее разрабатывать приложения. Начнем издалека. Когда я делал первый сайт, я смотрел, как можно реализовать тот или иной функционал и использовал его у себя в приложении. Потом, когда у меня появился второй проект, я начал функционал улучшать. Я выделил основные моменты и инструменты, которые были описаны в предыдущих уроках. Я начал замечать, что я делаю часто много механичной работы, например:
  • создать в БД новую таблицу
  • прокинуть ее в класс DbContext
  • добавить объявление в интерфейс репозитария
  • добавить реализацию в SqlRepository
  • добавить partial-часть класса в папке Proxy
  • добавить модель данных
  • объявить mapping
  • создать контроллер в админке
  • сделать типичные view для просмотра и редактирования


Читать дальше →
Total votes 112: ↑78 and ↓34+44
Comments8

ASP.NET MVC Урок C. Многоязычный сайт

Reading time19 min
Views60K
Цель урока. Научиться создавать многоязычные сайты. Структура БД. Ресурсы сайта. Определение языка. Переключение между языками. Работа в админке.

Проблемы многоязычного сайта

Итак, заказчик просит сделать сайт многоязычным, т.е. чтобы и по-русски, и по-французки, и по-английски. Это может быть как просто многоязычный блог, так и гостиничный сайт, сайт по работе с недвижимостью и многое другое.
Для начала определим, что же мы будем переводить:
  • Написание дат, сумм в зависимости от выбранной локализации. С этим справляется класс System.Globalization
  • Встроенные ресурсы сайта — выдача ошибки («Поле не может быть пустым», «The field is required») и другие сообщения.
  • Не встроенные ресурсы, как то логотипы, изображения, js-локализация элементов управления. Для переключения между ними необходимо знать текущее значение языка на странице.
  • Пользовательские значения.


Читать дальше →
Total votes 131: ↑88 and ↓43+45
Comments2

ASP.NET MVC Урок B. Json

Reading time13 min
Views98K
Цель урока. Научиться работать с форматом json. Инструменты по работе с json. Написание сторонних запросов, авторизация через получение данных от facebook и vkontakte. Ajax в работе с json (авторизацию переписать). API сайта.

Json и Json.net

Json – это текстовый формат данных, основанный на Javascript.
Пример данных в Json:
{
            "firstName": "Иван",
            "lastName": "Иванов",
            "address": {
                "streetAddress": "Московское ш., 101, кв.101",
                "city": "Ленинград",
                "postalCode": 101101
            },
   "phoneNumbers": [
       "812 123-1234",
       "916 123-4567"
   	]
  }

Читать дальше →
Total votes 142: ↑98 and ↓44+54
Comments1

ASP.NET MVC Урок A. Уведомление и рассылка

Reading time9 min
Views41K
Цель урока Разобраться в отправлении писем и подтверждающих смс. MailNotify, использование конфигурационного файла. Рассылка через создание отдельного потока.

SmtpClient и MailNotify

При разработке сайта мы рано или поздно сталкиваемся с взаимодействием с электронной почтой, будь то активация пользователя, напоминание или сброс пароль, или создание рассылки.
Определимся, что нам для этого нужно:
  • Класс, который будет рассылать письма
  • Конфигурация smtp берется из IConfig
  • Ошибки отправки письма протоколируются
  • Наличие параметра, выключающего работу почты, дабы при работе с боевой базой клиентов не разослать какой-то треш.


Читать дальше →
Total votes 131: ↑88 and ↓43+45
Comments3

ASP.NET MVC Урок 9. Configuration и загрузка файлов

Reading time14 min
Views51K
Цель урока. Научиться использовать файл конфигурации Web.config. Application section, создание своих ConfigSection и IConfig. Научиться загружать файлы, использование file-uploader для загрузки файла, последующая обработка файла.

В этом уроке мы рассмотрим работу с конфигурационным файлом Web.config. Это xml-файл и в нем хранятся настройки программы.

Рассмотрим подробнее, из чего состоит этот файл:
  • configSection. Это секция отвечает за то, какие классы будут обрабатывать далее объявленные секции. Состоит из атрибута name — это тег, далее объявленной секции, и type – к какому классу относится.
  • connectionStrings. Это секция отвечает за работу с указанием строк инициализаций соединений с базами данных.
  • appSettings. Секция параметров типа key/value.
  • system.web, system.webServer. Секции параметров для работы веб-приложения.
  • runtime. Секция по настройке в режиме выполнения. Определение зависимостей между dll.
  • Остальные секции. Другие секции с параметрами, объявленными в configSection.


Читать дальше →
Total votes 137: ↑90 and ↓47+43
Comments1

ASP.NET MVC Урок 8. View, Razor, страница ошибки

Reading time8 min
Views74K
Цель урока. Научиться делать вывод данных в html, использование Razor. Helperы. PageableData. Динамические формы. RedirectToLogin, RedirectToNotFoundPage. Страница ошибки. RssActionResult.

Основа

Итак, рассмотрим как устроена часть View.
В контроллере все action-методы возвращают тип ActionResult. И для вывода результата мы используем:
return View(modelData);

Читать дальше →
Total votes 136: ↑92 and ↓44+48
Comments1

Information

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