Search
Write a publication
Pull to refresh
1
0
Send message

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

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

Также к каждому пункту приводятся все необходимые ссылки для более подробного ознакомления с конкретной best practice.
Читать дальше →

В чем разница между наукой о данных, анализом данных, большими данными, аналитикой, дата майнингом и машинным обучением

Reading time4 min
Views42K
В последнее время слово big data звучит отовсюду и в некотором роде это понятие стало мейнстримом. С большими данными тесно связаны такие термины как наука о данных (data science), анализ данных (data analysis), аналитика данных (data analytics), сбор данных (data mining) и машинное обучение (machine learning).

Почему все стали так помешаны на больших данных и что значат все эти слова?

image
Читать дальше →

Событийно-ориентированный бэктестинг на Python шаг за шагом. Часть 2

Reading time9 min
Views12K


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

Стипендиальные правительственные программы по всему миру. Часть 1

Reading time5 min
Views21K
image

Если вы собираетесь учиться да рубежом, а курс доллара и евро не вызывает положительных эмоций, то есть несколько основных источников финансирования, с которых нужно начать поиски. Расскажем подробнее об одном из них.
Читать дальше →

Реализация поискового движка с ранжированием на Python (Часть 3)

Reading time5 min
Views12K
В предыдущей части мы узнали как выполнить запрос к построенному индексу и теперь мы можем получить ссылки на документы, в которых встречается то, что мы запросили. Но есть проблема: это просто список документов, в которой, возможно, есть то, что нам нужно. Он не отсортирован по важности, для нас, информации, содержащейся в документе. Про эту проблему мы и поговорим в этой части.

Ранжирование результатов запросов


Заключительным шагом в построении поискового движка является создание системы для ранжирования документов по их релевантности к запросу. Это наиболее сложная часть, поскольку она не имеет прямого технического решения: она требует творчества и вашего собственного взгляда. В этой мы реализуем TF-IDF ранжирование (от англ. TF — term frequency (частота слова) и IDF — inverse document frequency (обратная частота документа)), которое является одним из простейших способов сортировки наших документов. В этой части не будет никакого кода, но вы можете изучить финальную версию движка на GitHub. Мы только изучим теорию TF-IDF, а его реализация довольно проста, причем большая часть работы делается во время построения индекса.

Так что, термин «частота» является первой частью нашей систему ранжирования? Ну, это именно то, что приходит на ум, когда вы его слышите: количество раз, которое встречается каждое слово в конкретном документе. Термин частота, как метрика, не учитывает запрос: он предполагает, что документ — это просто амбивалентный набор маркеров, и точное представление о нём можно получить всего лишь пересчитав, сколько раз каждый маркер (слово) встречается. Это не совсем точное предположение, но оно широко используется в области классификации документов. Формально, он больше известен как модель “мешок слов”.
Читать дальше →

ФП8: Абсолютный клон

Reading time5 min
Views17K
Ладно, вы не можете сделать интересную оригинальную игру, но вы не умеете даже делать клоны. А почему? Да всё очень просто — вы не умеете копировать. Не цените гениальное высказывание Леонардо да Винчи: кто умеет копировать, тот умеет делать.

В чём же секрет правильного клона и почему большинство клонов из рук вон плохи?
Читать дальше →

Магия тензорной алгебры: Часть 16 — Свойства тензора инерции твердого тела

Reading time5 min
Views25K

Содержание


  1. Что такое тензор и для чего он нужен?
  2. Векторные и тензорные операции. Ранги тензоров
  3. Криволинейные координаты
  4. Динамика точки в тензорном изложении
  5. Действия над тензорами и некоторые другие теоретические вопросы
  6. Кинематика свободного твердого тела. Природа угловой скорости
  7. Конечный поворот твердого тела. Свойства тензора поворота и способ его вычисления
  8. О свертках тензора Леви-Чивиты
  9. Вывод тензора угловой скорости через параметры конечного поворота. Применяем голову и Maxima
  10. Получаем вектор угловой скорости. Работаем над недочетами
  11. Ускорение точки тела при свободном движении. Угловое ускорение твердого тела
  12. Параметры Родрига-Гамильтона в кинематике твердого тела
  13. СКА Maxima в задачах преобразования тензорных выражений. Угловые скорость и ускорения в параметрах Родрига-Гамильтона
  14. Нестандартное введение в динамику твердого тела
  15. Движение несвободного твердого тела
  16. Свойства тензора инерции твердого тела
  17. Зарисовка о гайке Джанибекова
  18. Математическое моделирование эффекта Джанибекова


Введение


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


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


Рассмотрим подробнее свойства тензора инерции твердого тела. И для начала изучим механические величины, вычисление которых, так же как и приведение сил инерции к данному центру, приводит к понятию тензора инерции.
Читать дальше →

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

Reading time6 min
Views48K

Предыстория


Мой сын, как, наверное, все дети программистов, получил свою первую клавиатуру ещё когда не умел сидеть. Сейчас ему чуть меньше года, но он уже понимает разницу между «игрушечной» и «настоящей» (папиной) клавиатурой — если колотить по кнопкам настоящей, то на экране меняется картинка, а компьютер иногда издаёт какие-то звуки.

КДПВ

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

Чтобы процесс освоения компьютера стал для детёныша более увлекательным, я решил написать ему простенькую игру. Будучи программистом со стажем, весь процесс решено было построить «правильно».

Требования


Заказчик (мой сын, возраст <1 года), как и все нормальные заказчики затруднился письменно изложить непротиворечивые и полные требования к продукту, поэтому пришлось помочь писать самому.

Функциональные:
  • Приложение работает в режиме полного экрана.
  • Можно нажимать на всё подряд, но самые доступные методы выхода или переключения программ должны быть заблокированы.
  • Визуальная обратная связь — цвет фона меняется при нажатии, в центре экрана отображается нажатый символ.
  • Звуковая обратная связь — приложение издаёт звук при нажатии на клавишу.
  • Предсказуемое поведение — цвет фона, символ и звук должны быть всегда одинаковыми для одной и той же клавиши.

Не функциональные:
  • Мне должно быть не стыдно за написанный код.
  • Код должен быть ценен сам по себе.
  • Архитектура и все решения должны быть «правильными» — как в заказном проекте.

Кроме того было принято решение использовать гибкий итеративный подход к разработке с малыми циклами разработки, заканчивающимися получением обратной связи (SCRUM).

В качестве языка программирования и среды разработки были выбраны C# и Visual Studio, так как они обеспечивали исполнителю наибольшую скорость работы.
Читать дальше →

Поиск похожих групп и пабликов Вконтакте

Reading time5 min
Views57K
На днях удалось провернуть интересную штуку. Для всех групп Вконтакте с числом подписчиков от 5000 до 10 000 (~100 000 групп) был построен полный граф, в котором веса рёбер равнялись пересечению аудиторий групп.


Читать дальше →

Вероятностное программирование

Reading time19 min
Views42K
Вероятностное моделирование является одним из мощнейших инструментов для специалиста по анализу данных. К сожалению, для его использования необходимо не только уверенно владеть аппаратом теории вероятностей и математической статистики, но и знать детали работы алгоритмов приближенного байесовского вывода, что делает порог вхождения очень высоким. Из этой лекции вы узнаете о сравнительно молодой парадигме в машинном обучении — вероятностном программировании. Его задача — сделать всю мощь вероятностного моделирования доступной любому человеку, имеющему опыт программирования и минимальный опыт анализа данных.



Лекция была прочитана Борисом hr0nix Янгелем на факультете компьютерных наук, открытом в Высшей школе экономики при поддержке Яндекса. Сам Борис окончил ВМиК МГУ и Школу анализа данных Яндекса. Работал в Microsoft Research Cambridge в группе Кристофера Бишопа над фреймворком Infer.NET. Сейчас Борис — ведущий разработчик поиска Яндекса.

Под катом — расшифровка рассказа.
Читать дальше →

Автоматизация ip-сети с помощью подручных инструментов (Python)

Reading time33 min
Views30K
Эта статья подойдет сетевым специалистам, которые находятся в поисках примеров возможной автоматизации ip сети с помощью подручных инструментов.

Как один из вариантов автоматизации, это взаимодействие программной среды с CLI (Command Line Interface) оборудования, так называемый ‘Screen Scraping’. Собственно, об этом варианте и пойдет речь.

В качестве программной среды, будет использован язык программирования Python версии 3.3. Для сомневающихся в потребности изучения языка программирования, необходимо отметить, что базовые навыки программирования на Python достаточно просты в освоении и для решения описанных ниже задач являются достаточными. В дальнейшем с совершенствованием навыков будет совершенствоваться код и уровень производимых продуктов. Для удаленного взаимодействия с оборудованием в основном будет использоваться протокол SSH, поэтому в качестве работы с SSH, для облегчения задач, выбран дополнительный модуль для Python – Paramiko. Как правило рассмотрение решения конкретных задач, может способствовать лучшему усвоению материала, поэтому не затягивая процесс далее будут рассмотрены выборочные примеры задач по возрастающей степени сложности и их решение с использованием выше описанных инструментов (важно заметить, все ip адреса, логины, пароли, названия и специфические значения параметров с сетевых устройств — вымышленные, любое совпадение случайно).
Читать дальше →

Подпольный рынок кардеров. Перевод книги «Kingpin». Глава 5. «Cyberwar!»

Reading time9 min
Views29K
Кевин Поулсен, редактор журнала WIRED, а в детстве blackhat хакер Dark Dante, написал книгу про «одного своего знакомого».

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

Начало и план перевода тут: «Шкворень: школьники переводят книгу про хакеров».
Пролог
Глава 1. «The Key»
Глава 3. «The Hungry Programmers»
Глава 5. «Cyberwar!»
Глава 6. «I miss crime»
Глава 8. «Welcome to America»
Глава 34. DarkMarket
(публикуем по мере готовности переводов)

Логика выбора книги для работы со школьниками у меня следующая:
  • книг про хакеров на русском языке мало (полторы)
  • книг про кардинг на русском нет вообще(UPD нашлась одна)
  • Кевин Поулсен — редактор WIRED, не глупый товарищ, авторитетный
  • приобщить молодежь к переводу и творчеству на Хабре и получить обратную связь от старших
  • работать в спайке школьники-студенты-специалисты очень эффективно для обучения и показывает значимость работы
  • текст не сильно хардкорный и доступен широкому кругу, но затрагивает вопросы информационной безопасности, уязвимости платежных систем, структуру кардингового подполья, базовые понятия инфраструктуры интернет
  • книга иллюстрирует, что «кормиться» на подпольных форумах — плохо заканчивается

Кто хочет помочь с переводом других глав пишите в личку magisterludi.

Глава 5. Кибервойна!

(за перевод спасибо хабраюзеру ShiawasenaHoshi)

По возвращению домой в Сан-Франциско Макса ждало искушение в виде следующей строки кода:
bcopy (fname, anbuf, alen = (char *)*cpp — fname);
Читать дальше →

Не бросай учебу, или Почему обучение еще может быть полезным

Reading time8 min
Views18K


Менее года назад компания Y Combinator предложила мне и моим друзьям возможность развить наш стартап, участвуя в их программе.

От меня не требовалось бросать колледж, хватило бы академотпуска на один семестр. Но я хорошо понимал, что после 8-месячного перерыва я уже не смогу вернуться к академической зубрежке вне зависимости от успеха компании. На самом деле временный уход означал бы окончательное расставание с учебным заведением.
Читать дальше →

6 вещей, который я хотел бы знать перед разработкой своего первого Android-приложения

Reading time5 min
Views28K
От переводчика: перевод делался сходу, за один присест, так что в некоторых местах может быть немного топорным. В любом случае, вы знаете, куда писать об ошибках.
В комментариях к оригинальной статье есть несколько здравых мыслей, как, например, не использовать библиотеки с мира «большой» джавы, так как они слишком объемные, или использовать всякие Glide-ы вместо Picasso (с чем я, впрочем, согласен). Можете посмотреть, если интересно.
И еще, я не придумал, как заставить отображаться сниппеты с гитхаба, так что я просто скопировал код.


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

Далее следует список вещей, которые надо понимать во время разработки вашего первого приложения под Android. Эти уроки были извлечены из реальных ошибок, которые я делал в исходном коде моей первой программы, — ошибкок, которые я буду приводить ниже. Понимание этих вещей поможет вам написать приложение, которым вы будете гордиться чуть больше.

Конечно, если вы пишете что-то по ходу изучения Android-разработки, скорее всего, позже вы все равно возненавидите свое творение. Как сказал @codestandards:

If the code you wrote a year ago doesn't seem bad to you, you're probably not learning enough.— Code Standards ( @codestandards) 21 мая 2015

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

Создание плагинов для AutoCAD с помощью .NET API (часть 6 – поиск и изменение объектов на чертеже)

Reading time60 min
Views16K
Это шестая часть цикла про разработку плагинов для AutoCAD. В ней поговорим про поиск объектов на чертеже, а также про их изменение.

public static string disclaimer = "Автор не является профессиональным разработчиком и не обладает глубокими знаниями AutoCAD. Этот пост – просто небольшой рассказ о создании плагина.";
Поиск и спасение

Событийно-ориентированный бэктестинг на Python шаг за шагом. Часть 1

Reading time9 min
Views28K


Ранее в нашем блоге на Хабре мы рассматривали различные этапы разработки торговых систем (есть и онлайн-курсы по теме), среди которых одним из наиболее важных является тестирование на исторических данных (бэктестинг). Сегодня речь пойдет о практической релизации событийно-ориентированного бэктест-модуля с помощью Python.
Читать дальше →

Обзор способов и протоколов аутентификации в веб-приложениях

Reading time18 min
Views676K


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

Перед тем, как перейти к техническим деталям, давайте немного освежим терминологию.

  • Идентификация — это заявление о том, кем вы являетесь. В зависимости от ситуации, это может быть имя, адрес электронной почты, номер учетной записи, итд.
  • Аутентификация — предоставление доказательств, что вы на самом деле есть тот, кем идентифицировались (от слова “authentic” — истинный, подлинный).
  • Авторизация — проверка, что вам разрешен доступ к запрашиваемому ресурсу.


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

Аналогично эти термины применяются в компьютерных системах, где традиционно под идентификацией понимают получение вашей учетной записи (identity) по username или email; под аутентификацией — проверку, что вы знаете пароль от этой учетной записи, а под авторизацией — проверку вашей роли в системе и решение о предоставлении доступа к запрошенной странице или ресурсу.

Однако в современных системах существуют и более сложные схемы аутентификации и авторизации, о которых я расскажу далее. Но начнем с простого и понятного.
Читать дальше →

Как работается айтишникам в Норвегии

Reading time10 min
Views73K
image

Начать хотела бы с рассказа о себе и с каким «багажом» я приехала в Норвегию. Я нетворк инженер по призванию, сервис инженер по должности, работаю в норвежской компании, обожаю свою работу, живу 3 года в Норвегии, владею английским и норвежским языками (которые выучила уже по приезду в Осло), одесситка и, да, мне 25.
Читать дальше →

Рейтинг ВУЗов стран БРИКС. Россия на втором почётном месте. Ликвидации фонда «Династия» посвящается

Reading time7 min
Views28K
Поскольку, как ни странно, в GT нет хабов для науки и образования, публикую данную статью в хабе " Будущее здесь". Ведь без этих двух составляющих нет будущего у нашей страны!



На днях пришло прискорбное, но ожидаемое известие о том, что господин Зимин принял окончательное решение о ликвидации своего фонда. Фонда, который оказывал значительную поддержку многим российским ВУЗам. На мой взгляд, это знаковое событие служит хорошим поводом поговорить о том, как собственно сегодня обстоят дела с наукой и образованием в России, какие просматриваются перспективы и какой зарубежный опыт имеется в этой области. Если позволит время я постараюсь опубликовать короткую серию статей на эту тему и призываю всех, кому не безразличны данные проблемы, поддержать мою инициативу добавляя к заголовку статей предложение: “Ликвидации фонда ”Династия” посвящается”.

Так получилось, что тему первой статьи долго выбирать не пришлось. Совсем недавно вышел новый рейтинг учебных заведений стран БРИКС. Сближение с этой группой в последнее время очень остро стоит на повестке дня нашей страны. Давайте же оставим на время в покое глобальные рейтинги и посмотрим как мы выглядим на фоне наших новых друзей. Разберёмся, какие параметры, учитываемые при составлении рейтингов, помогают нашим ВУЗам занимать высокие места, а какие тянут их вниз. Посмотрим, как на нашем фоне выглядит Китай.

Чтобы не прослыть интриганом сразу скажу, пока среди других стран БРИКС выглядим мы весьма достойно, хотя первое место уже уступили. Попробуйте с трёх раз догадаться кому.
Читать дальше →

Кто хочет, тот ищет возможности, кто не хочет — ищет причины

Reading time3 min
Views295K
Открыв сегодня хабр, увидел большое количество публикаций на тему образования. Так как эта тема мне очень близка, решил поделиться своими мыслями.

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

Читать дальше →

Information

Rating
Does not participate
Registered
Activity