Как стать автором
Обновить
40
22
Бочаров Филипп @bocharovf

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

Отправить сообщение
Интересный проект, но, насколько я понимаю, ориентированный на работодателей, а не на соискателей?
Соотношение средних зарплат: PHP 65 311 рублей, в моих кругах даже самые твердолобые зарабатывают больше, процентов на 60%.

Результирующий доход оценить довольно сложно: есть зарплаты в конвертах, премии, переработки итп… То, что Вы получите "на руки", может довольно значительно отличаться от "оклада" прописанного в договоре.

В моем городе например есть вакансии 40 000-50 000 и я точно знаю они не закрываются годами.

Вообще при анализе берется 2000 самых "релевантных" вакансий (наиболее свежих и содержащих ключевые слова) с указанной зарплатой. Можно попробовать "штрафовать" вакансии, висящие открытыми слишком долго. Чтобы они вносили меньший вклад в расчет зарплаты.
Для этого есть фильтр по опыту работы с категориями:

  • Нет опыта
  • От 1 года до 3 лет
  • От 3 до 6 лет
  • Более 6 лет
Интересная идея! Технически такое реализовать можно — у API HeadHunter есть поиск по резюме.
Одна проблема, этот поиск доступен не всем:

Поиск резюме доступен только при авторизации работодателем и при условии, что приложение входит в список разрешенных.
Изменил тип графика в статье на гистограмму.
Действительно, без конкретных цифр круговая диаграмма выглядит странновато, поэтому я ее доработаю
Бонусная ссылка права — у круговых диаграмм есть проблемы. Но на мой взгляд, лучше дать пользователю самому выбирать тип диаграммы, чем полностью отказываться от круговых.
А заодно сливает Ваше фото в трусах в облако на вечное хранение.
Копирование гигантский объемов не происходит, так как оригинальная таблица не удаляется, а переименовывается. Фиктивная таблица создается пустой.

При вызове FakeTable tSqlt делает буквально следующее:
  1. Генерирует уникальное имя (например tSQLt_tempobject_c2c0998aebe0498babc38c20b3e98173)
  2. Переименовывает с помощью sp_rename оригинальную таблицу с данными, задавая ей это автоматически созданное имя.
  3. Сохраняет маппинг «оригинальное имя объекта — сгенерированное имя» в таблицу Private_RenamedObjectLog
  4. Создает новую таблицу с точно такой же структурой, как и у оригинала, но БЕЗ данных.
  5. Помечает фиктивную таблицу с помощью sp_addextendedproperty.


После завершения тестов транзакция откатывается и оригинальная таблица переименовывается обратно.
-- MS SQL 2012+
SELECT * 
FROM Table 
ORDER BY column 
OFFSET {offset} ROWS FETCH NEXT {count} ROWS ONLY;
В коде примеров да, но его можно убрать:
1. В примере я везде использую тип sql_variant, который сам по себе не может содержать значение более 8 000 байт. Если переписать функцию pyAggregate и вместо object (соответствующий которому тип sql_variant) использовать string (соответствующий тип nvarchar(MAX)) то функция сможет возвращать значения более 8 000 байт.
2. Сможет возвращать, но не сможет хранить. И Вы будете получать ошибку вида
A .NET Framework error occurred during execution of user-defined routine or aggregate «pyAggregate»:
System.Data.SqlTypes.SqlTypeException: Недостаточный размер буфера. Сбой операции чтения или записи.

Основываясь на документации свойство MaxByteSize устанавливает максимальный требуемый размер буфера для хранения данных функции во время вычислений. Если указать значение -1, то размер буфера увеличивается до 2 Гб.
С Вашими доводами согласен. Именно поэтому в заключении
Не стоит пытаться переписывать все ваши хранимые процедуры и функции с использованием IronPython.

Мне было интересно сделать это, между прочим, как раз после того как в один из проектов на Silverlight я встроил консоль python.
Ответ в первых двух абзацах.
не покидая Management Studio, изменять поведение своих процедур

продвинутый парсинг строк, в котором приходится использовать регулярные выражения или просто хитрый и закрученный алгоритм

2

Информация

В рейтинге
347-й
Откуда
Москва, Москва и Московская обл., Россия
Зарегистрирован
Активность