Как стать автором
Обновить
7
0
MobyDick @MobyDick

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

Отправить сообщение

Градиентный бустинг с CatBoost (часть 2/3)

Время на прочтение8 мин
Количество просмотров17K

В первой части статьи я рассказал про понятие градиентного бустинга, библиотеки, с помощью которых можно реализовать данный алгоритм и углубились в одну из этих библиотек. Сегодня продолжим разговор о CatBoost и рассмотрим Cross Validation, Overfitting Detector, ROC-AUC, SnapShot и Predict. Поехали!

До этого момента мы мерили качество на каком-то конкретном fold’e (конкретной выборке), то есть взяли разделили нашу выборку на обучающую и тестовую, это не совсем корректно, вдруг мы взяли какой-то непрезентативный кусок нашего датасета, на этом самом куске мы получим хорошее качество, а когда модель будет работать с реальными данными, то с качеством все будет крайне грустно. Дабы избежать этого, необходимо использовать Cross Validation.

Разобьём наш датасет на кусочки и дальше будем обучать модель столько раз, сколько у нас будет кусочков. Сначала обучаем модель на все кусках кроме первого, нам нем будет происходить валидация, потом на втором будет происходить такая же ситуация и все это дело будет повторяться до последнего кусочка нашей выборки:

Читать далее
Всего голосов 7: ↑6 и ↓1+5
Комментарии0

Практические советы по повышению производительности HTML и JavaScript

Время на прочтение2 мин
Количество просмотров31K


Тема улучшения производительности сайтов и приложений всегда должна находиться на радаре у хорошего веб-разработчика. В одних случаях грамотная работа позволяет сэкономить вычислительные ресурсы, в других — сильно улучшить опыт работы с приложениями для всей аудитории пользователей, как это на днях случилось с Wikipedia. А часто и все сразу.

Скорость работы веб-приложений условно зависит от трех составляющих: 1) как устроена сетевая инфраструктура, через которую доставляются данные и код, 2) как работает браузер и 3) как, собственно говоря, написан ваш код, который браузер должен исполнять.

Все три компоненты постоянно улучшаются и оптимизируются. Например, в сетевом стеке определенные общие улучшения несет переход на HTTP 2.0. С точки зрения браузеров, все производители постоянно работают над улучшением своих движков. В случае Chakra в Microsoft Edge, помимо общего повышения производительности работы с JavaScript, мы добавляем поддержку специализированных средств вроде Asm.js и SIMD.js, призванных повысить эффективность кода в специфичных сценариях (в Firefox и Google Chrome — аналогично).

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

Наши коллеги Дорис Чен и Джон-Дэвид Далтон подготовили целый курс с практическими советами по улучшению производительности вашего кода на HTML и JavaScript. Вы можете посмотреть его на соответствующей странице в Microsoft Virtual Academy или под катом в виде отдельных роликов.

Читать дальше →
Всего голосов 21: ↑15 и ↓6+9
Комментарии1

Best practices от Google по разработке Android приложений

Время на прочтение8 мин
Количество просмотров45K
В данной статье я хотел бы вкратце рассказать про самые последние best practices от Google. Я постарался выделить самые основные моменты, чтобы читатель сразу мог понять, что именно какая-либо фича дает разработчику. Не удивляйтесь, если где-то повторяюсь. Конспектировал + добавлял от себя по ходу просмотров видео в www.youtube.com/channel/UCVHFbqXqoYvEWM1Ddxl0QDg

Также к каждому пункту приводятся все необходимые ссылки для более подробного ознакомления с конкретной best practice.
Читать дальше →
Всего голосов 32: ↑30 и ↓2+28
Комментарии18

Оптимизация картинок для Google PageSpeed

Время на прочтение2 мин
Количество просмотров93K
Нет предела совершенству, и Google PageSpeed тому доказательство. С его помощью меньше чем за минуту можно получить подробный отчет о производительности Web страницы. В подавляющем большинстве случаев PageSpeed подскажет, что нужно оптимизировать графику. Это наиболее частая проблема и наиболее весомая.



Например, даже на стартовой странице Google Developers графику можно сжать на 71%. Чем меньше весят фотки – тем быстрее грузится сайт. Меньше картинки — меньше трафика — все работает быстрее. Посетители тратят меньше времени – все довольны.

В этом материале подобраны основные инструменты для оптимизации графики.
Читать дальше →
Всего голосов 41: ↑35 и ↓6+29
Комментарии29

Продолжаем кромсать CLR: пул объектов .Net вне куч SOH/LOH

Время на прочтение6 мин
Количество просмотров18K
Добрый день, уважаемые разработчики (просто не знал, с чего начать пост). Предлагаю перед тем как начнется трудовая неделя немного подразмять мозги (совсем немного) и построить свой Small Objects Heap для .Net. Вернее даже не Small Objects Heap, а Custom Objects Heap.

Как все мы знаем, в .Net существует две группы куч: для больших и малых объектов. Как выяснить, во сколько нам обойдется объект можно при помощи кода из этой статьи (он нам пригодится): Ручное клонирование потока, а получить указатель на объект и по указателю получить сам объект можно научиться, прочтя эту статью: Получение указателя на объект .Net. Также нам понадобится статья корейского (южно-) программиста по перенаправлению указателя на скомпилированную часть метода на другой метод: 실행 시에 메서드 가로채기 — CLR Injection: Runtime Method Replacer 개선

Так что давайте поэкспериментируем и напишем библиотеку, которая позволит:
  • Аллоцировать участок памяти
  • Разметить его как набор объектов определенного .Net типа
  • Выделять объекты с этой памяти
  • Возвращать их обратно


Ссылка на проект на GitHub: DotNetEx

Читать дальше →
Всего голосов 23: ↑20 и ↓3+17
Комментарии15

Снимаем дамп объектов с памяти .Net приложения

Время на прочтение11 мин
Количество просмотров23K
Продолжаем тему интересного на .Net, от чего мир Java будет посмеиваться (хотя у них это также возможно сделать), а приверженцы С++ говорить: «чего они только не сделают чтобы не учить C++».

В данной заметке мы напишем по сути – простенькое ядрышко профилировщика памяти для платформы .Net, который будет снимать дамп с SOH кучи (а в перспективе и с LOH).

Для написания статьи нам понадобится код из статьи Получение указателя на объект .Net и Ручное клонирование потока (измерение размера объектов).

Наши цели на сегодня:
  • Научиться итерировать кучу .Net
  • Научиться находить начало кучи .Net
  • Попробовать сытерировать все объекты чужого домена.


Ссылка на проект в GitHub: DotNetEx

Читать дальше →
Всего голосов 31: ↑27 и ↓4+23
Комментарии6

Получение указателя на объект .Net

Время на прочтение5 мин
Количество просмотров27K

Сразу отвечу на вопрос «а зачем?». Просто интересно получить указатель на объект и потом подумать, что с ним особенного можно сделать :) Ведь если получить указатель, то дальше можно сделать все что угодно. Например, становится возможным изучить поведение SyncBlockIndex, или взять MethodTable и изучив, где что находится, изменить его содержимое. Можно мастерить собственные типы данных, не прибегая к Reflection. В общем можно делать много странных вещей, которые относятся больше к спортивному программированию и к саморазвитию. Однако, приступим.


Читать дальше →
Всего голосов 33: ↑29 и ↓4+25
Комментарии6

Ручное клонирование потока. Когда Assembler + C# = Love

Время на прочтение3 мин
Количество просмотров20K
Перейду сразу к делу. Задача: в любой точке кода путем вызова спец. метода создать второй поток, который начнет выполнение с точки вызова этого метода в родительском потоке, сохранив возможность отладки и значения всех локальных переменных на всех уровнях вызовов методов.

Реализация не зависит от конечной платформы (.Net/Java), т.к. написана на C++/Asm, однако пользовательский код сделан на C#, т.к. на нем пишу я.

image

Теперь, когда я наконец стабилизировал пример для 32-разрядных систем, набравшись храбрости, готов показать его общественности как полностью готовый. И, да, повторюсь: при адаптации будет работать на любой платформе



Читать дальше →
Всего голосов 47: ↑38 и ↓9+29
Комментарии32

Изменение кода системных сборок или «утечка» .Net Framework 5.0

Время на прочтение17 мин
Количество просмотров36K
Здесь я продемонстрирую возможность, которая по своей сути — самый настоящий хак. Вопрос, зачем это может понадобиться? На самом деле целей для этого может быть огромное множество. Итак наша задача — изменить код библиотеки mscorlib таким образом, чтобы все программы, которые ей пользуются, получили эти изменения. Не рантайм, конечно, а во время старта (для runtime необходимо проделать другие вещи, и тут надо оговориться что изменения эти не должны поломать текущие состояния библиотеки). Mscorlib я взял как пример, потому что она есть у всех на компьютере. Но можно хакать любую другую.

Все мы знаем, что для того, чтобы не было «ада dll», Microsoft помимо обычных версий и названия библиотек, дали возможность подписывать сборки ключом, public key которой гарантирует что конкретная сборка «пришла» от конкретного разработчика, а не от какого-то другого. Поэтому, если мы хотим по какой-то вполне добросовестной причине изменить код существующей библиотеки т.о., чтобы она загрузилась в чужой процесс и при этом ключик public key остался тем же, у нас этого не получится. Потому что мы не сможем ее подписать, у нас нет закрытого ключа.

Наша мини цель, чтобы программа вывела на консоль текст:



Читать дальше →
Всего голосов 67: ↑65 и ↓2+63
Комментарии15

Регистрация безналоговой компании в Эстонии

Время на прочтение5 мин
Количество просмотров167K
«Платить налоги – обязанность, платить мало налогов – искусство! » (с)

Хочу поделиться опытом успешной регистрации компании в Эстонии. Я приведу короткую характеристику юрисдикции, расскажу про подводные камни, которые существуют, и поделюсь полученным опытом.

Задача стояла следующая — найти юрисдикцию, в которой не нужно платить налог на прибыль, при этом клиентам из США, Канады и ЕС удобно было с ней работать. Реальный офис открывать в этой стране задачи не стояло.

Основная деятельность компании — разработка ПО (классическая аутсорс компания со штатом ~20 девелоперов).
Читать дальше →
Всего голосов 61: ↑57 и ↓4+53
Комментарии73

Регистрация оффшорной компании в Белизе

Время на прочтение5 мин
Количество просмотров83K
Я горжусь тем, что плачу налоги в Соединенных Штатах. Правда, я бы гордился не меньше за половину суммы. (с) Артур Годфри

Пару месяцев назад я писал на Хабре о регистрации компании в Эстонии.

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

Краткая характеристика


Белиз является оффшорной юрисдикцией и находится в списке оффшорных зон Украины, России, Белоруссии и Казахстана.

Налогообложение оффшорных компаний в Белизе нулевое.

АПДЕЙТ:

Отсутствует требования по подаче финансовой отчетности и проведению аудита компании.

Формально, требование по ведению финансовой документации имеет место быть в Белизе. Это требование навязанное OECD.
Как и в большинстве других оффшоров.
При регистрации агент попросит Вас заполнить вот такой документ, где Вы сможете указать адрес, по которому храните документы:

Resolution of Directors/ Beneficial Owner/ Members in writing

The undersigned being all the directors of the abovenamed company declare as
follows:

REQUIREMENT TO KEEP ACCOUNTING RECORDS

1. It was hereby RESOLVED that the Company shall keep or cause to be kept proper accounting records (as prescribed under Section 3 (1) and (2) of the Accounting Records (Maintenance) Act, No. 18 of 2013 of the Laws of Belize:

(a) That are sufficient to show and correctly explain the Company’s transactions;

(b) To enable the financial position of the Company to be determined with reasonable accuracy at any time; and

© To enable for accounts of the Company to be prepared.

2. It was hereby resolved that the accounting records of the company shall be
kept at the following address:

………………………………………..……………………………
………………………………………………………………………

Dated this day of 2014.

………………………………………
DIRECTOR
COMPANY

Что делают предприниматели, чтоб не хранить документацию:
1) не открывают банковский счет в Белизе (чтоб уменьшить влияние на деятельность компании «местных»)
2) готовы вывести деньги со счета при первой просьбе предоставить документацию (чтоб избежать штрафа за несоблюдение требований)
3) указывают адрес хранения не в Белизе (чтоб не могли проверить)

В целом, прецедентов не было касательно штраф, и требование остается лишь формальным, так как процедура «деоффшоризации», которую проводит OECD, по моему скромному мнению является «еще большей формальностью».

Хранить или не хранить — решение каждого предпринимателя. В любом случае, это не так уж и сложно.

Акционером или директором компании может быть как юридическое, так и физическое лицо, независимо от места регистрации или гражданства.
Требований к количеству акционеров или директоров в Белизском законодательстве нет.

В Белизе закрытый (не публичный) регистр акционеров компании.

Ежегодные пошлины


$100 — если уставной капитал не превышает $50,000 и все акции компании имеют номинальную стоимость. (т.е. если капитал заявлен и не внесен);
$1,000 — если уставной капитал превышает $50,000;
$350 — если уставной капитал не превышает $50,000 и некоторые или все акции компании не имеют номинальной стоимости; и если уставного капитал нет и все акции не имеют номинальной стоимости;
$4,000 — если компания имеет статус «public investment company».

Пошлины платятся в следующем году, после года в котором была зарегистрирована компания, до 31 Июля.
Если вы просрочили оплату ежегодной пошлины, ее размер увеличивается на 10% и дается новый срок — до 31 Октября.
Если же вы не оплатили пошлину до 31 октября, ее размер увеличивается на 50%.
Читать дальше →
Всего голосов 55: ↑48 и ↓7+41
Комментарии46

Google Play — работаем легально!

Время на прочтение4 мин
Количество просмотров179K
Привет, Хабр!



Сегодня, я хочу рассказать о том как сделать свое хобби по разработке Android-приложений пусть небольшим, но официальным бизнесом. О том, как легально получать деньги, заработанные на Google Play, о «страшном» валютном контроле и «таинственном» паспорте сделки.
Читать дальше →
Всего голосов 92: ↑88 и ↓4+84
Комментарии115

Готовим пользовательское соглашение своими руками

Время на прочтение8 мин
Количество просмотров73K
Пользовательское соглашение или как его еще принято называть Соглашение об использовании сервиса, является ключевым документом, на котором строится юридическая защита интернет-сервиса.

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

Особую актуальность вопросы защиты интернет-сервиса приобретают в связи с принятием так называемого «антипиратского закона», которым возлагается ответственность на информационного посредника за размещение или предоставление доступа к материалам, нарушающим интеллектуальные права третьих лиц. Закон вступает в силу с 01 августа 2013 г., в связи с чем пользовательские соглашения и схему взаимодействия с пользователем необходимо привести в соответствие с ужесточившимися требованиями.
Читать дальше →
Всего голосов 58: ↑55 и ↓3+52
Комментарии17

Как продвигать игру в AppStore: делюсь опытом на примере Wordrive

Время на прочтение13 мин
Количество просмотров35K
Хочу поделиться опытом по продвижению своей новой игры для iPhone/iPad — Wordrive.

Статья может быть полезна не только для продвижения iPhone-приложений, но любого мобильного или прикладного софта, потому что часть советов довольно универсальны. Многое из описываемого тут я в сети нигде не нашел. Надеюсь, это поможет пройти этот этап без типичных ошибок.

Итак, вот у вас готово приложение и оно появилось в AppStore. Первый поток людей на него направляется из iTunes/App Store, сам собой — за счет появления в «новинках». Рассчитывать на него нечего — он как пришел, так и уйдет через пару-тройку дней. За это время нужно делать все, чтобы о программе или игре стали писать в сети. Если программа за это время сможет собрать еще и интернет-аудиторию, то выйти в топы будет сильно проще. А чтобы ее собрать, к моменту запуска в App Store нужно уже много что сделать.

Читать дальше →
Всего голосов 109: ↑104 и ↓5+99
Комментарии89

SICP теперь по-русски

Время на прочтение1 мин
Количество просмотров63K
image

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

В качестве эксперимента выкладываю перевод первой из 20 лекций. Если это получит должный отклик, буду переводить дальше.
Читать дальше →
Всего голосов 97: ↑92 и ↓5+87
Комментарии61

Разработка привлекательных реалистичных пользовательских интерфейсов

Время на прочтение4 мин
Количество просмотров15K
Cекрет разработки привлекательных интерфейсов заключается в реализме. Ваша задача — придать плоским элементам объём, используя свойства реальных объектов, вроде неровностей и шероховатостей, бликов и теней, различных текстур поверхностей. В идеале они должны выглядеть как предметы на вашем столе. Создавая классный интерфейс, в первую очередь нужно думать не «как», а «почему».
Читать дальше →
Всего голосов 212: ↑205 и ↓7+198
Комментарии49

Анонс книг 7'2010

Время на прочтение10 мин
Количество просмотров2.6K
Российские и зарубежные издательства трудятся во всю на благо простых разработчиков и выпускают десятки книг в месяц из самых разных областей компьютерной науки. При этом, как и во многих других областях, процент качественного товара остается на определенном (не слишком высоком) уровне. Прежде чем пойти в магазин и купить книгу (да, я в этом вопросе старомоден и не понимаю, как можно читать хорошую техническую книгу в электронном виде) приходится потратить солидное время на изучение того, стоит ли она потраченных средств и усилий.

Прежде чем выбрать книгу я точно так же пытаюсь выяснить ответ на этот вопрос с помощью некоторых критериев, которыми являются «перекрестные ссылки» авторитетных авторов друг на друга, имя самого автора (мало кто сомневается в качестве очередной книги Джеффри Рихтера, его книги можно брать практически не раздумывая), а также рецензии, желательно, так же известных людей.

За последнее время вышло (или собирается выйти) достаточное количество интересных книг, как на русском, так и на английском языках, поэтому я решил сделать подборку книг, которые я либо совсем недавно приобрел, либо с удовольствием бы сделал это в самое ближайшее время. С некоторыми из представленных ниже книг я в той или иной степени знаком лично и мое мнение является более обоснованным, в некоторых других случаях я основываюсь на приведенных выше критериях, поэтому мое мнение вполне может быть не слишком точным (хотя мое мнение в любом случае может не совпасть с вашим). Представленный ниже список – это такой себе wish list из новинок компьютерной литературы, который может стать отправной точкой при выборе книги другими специалистами.

Р. Мартин. Чистый код: создание, анализ и рефакторинг. Питер. 2010


(Оригинал: Robert C. Martin, Clean Code: A Handbook of Agile Software Craftsmanship, Prentice Hall, 2008)

image
Читать дальше →
Всего голосов 82: ↑68 и ↓14+54
Комментарии34

MIX: первый день, ВСЕ что вы хотели узнать про Windows Phone 7 и Silverlight 4

Время на прочтение8 мин
Количество просмотров1.4K

Полное и абсолютное руководство по материалам, представлнным вчера на MIX

.
image

Конференция MIX – это крупнейшее событие в мире web-разработки: три дня, более 130 докладов и сессий, десятки докладчиков с разных компаний со всех уголков мира. Подробное описание конференции я сделал в этой заметке, обратитесь к ней, если хотите узнать что это за мероприятие и какие темы на нем обсуждаются.

Напомню, что всю информацию и онлайн-трансляцию можно найти по адресу http://live.visitmix.com/ .

Запись прошедшего keynote уже можно посмотреть по адресу www.microsoft.com/presspass/events/mix/videogallery.aspx

Что же принесла конференция в свой первый день.
Ниже ОЧЕНЬ много картинок (они небольшие). Много текста.

Читать дальше →
Всего голосов 131: ↑109 и ↓22+87
Комментарии111
1
23 ...

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность