Около года назад я поучаствовал в конкурсе Kivy App Contest 2014. Игрушка заняла одно из призовых мест (номинация «лучшая идея») и ко мне неоднократно обращались с просьбой выложить её на маркет. Я долго откладывал, но позавчера наконец созрел и потратив вечер — выложил. Оказалось всё совсем просто и я решил написать эту инструкцию для тех, кто, как и я, пишет на киви «в стол». Ну или тех, кто пишет на Питоне и не в курсе, что на нём можно легко писать андроидные приложения и даже выкладывать их в маркете. Инструкция рассчитана на таких же как я полнейших чайников в разработке под Android. Профессионалам можно здесь прекратить чтение, а можно поправить/дополнить в комментариях.
Артем Целовальников @SlazZy
ruby developer
Ликбез — как стать программистом
10 min
21KКак часто в начале пути мы смотрим на окружающих, которые уже давно шагают по только что выбранной нами тропе, и восхищаемся ими или завидуем тому, чего они достигли. В этот момент мы мечтаем о высотах, которых добьемся в будущем и строим планы о том, как будем достигать желаемого.
Для тех, кто только вышел в наш интереснейший путь или уже бодро шагает по нему, статья даст ответы на некоторые часто задаваемые вопросы и откроет недостающие части карты, которые позволят быстрее и с большей пользой преодолеть первые отрезки нашего с вами увлекательного пути. Опытным путникам так же могут быть интересны некоторые заметки, которые дадут возможность посмотреть свежим взглядом на то, где они находятся сейчас и возможно позволят увидеть плохо изведанные части своего пути.
Далее я постараюсь описать какими знаниями, умениями и навыками обладает хороший программист, и что нужно делать, что бы этого достичь.
Для тех, кто только вышел в наш интереснейший путь или уже бодро шагает по нему, статья даст ответы на некоторые часто задаваемые вопросы и откроет недостающие части карты, которые позволят быстрее и с большей пользой преодолеть первые отрезки нашего с вами увлекательного пути. Опытным путникам так же могут быть интересны некоторые заметки, которые дадут возможность посмотреть свежим взглядом на то, где они находятся сейчас и возможно позволят увидеть плохо изведанные части своего пути.
Далее я постараюсь описать какими знаниями, умениями и навыками обладает хороший программист, и что нужно делать, что бы этого достичь.
-4
Алфавит венчурного инвестирования
7 min
51K
Здесь на «Мегамозге» мы часто пишем о стартапах и их финансировании, в связи с чем у некоторых пользователей могут возникнуть оправданные терминологические вопросы. Практически в каждой статье об инвестициях в стартапы можно прочесть фразу: «СуперМегаСтартап привлек $дофига млн на стадии А». Конечно, для многих эта фраза вполне себе понятна и естественна, но когда разговор заходит до литер B, C, D и далее, многие начинают плавать, в лучшем случае отделываясь общими фразами. В этой статье я попробую все прояснить и устранить этот досадный недочет.
+9
Войти в IT: Через семь рукопожатий, или Я разбираю калькулятор
3 min
11K
Сегодняшний герой рубрики «Войти в IT» — Ольга Лукавенко, заслуженный QA в DataArt.
Сейчас уже с трудом вспоминается, что раньше я была не в IT. Но, возвращаясь на пару лет назад, понимаю, насколько стихийно решила идти работать в IT-компанию.
Как это обычно бывает (и все мы знаем о теории семи рукопожатий), лучший друг рассказал о своей одногруппнице, работающей в DataArt. В этот момент уже почти выбрала работу баристой в одной харьковской кофейне и перспективу аспирантуры на кафедре.
Но, имея за плечами незаконченное радиотехническое образование и небольшой скептицизм по отношению к офисной работе, решила ввязаться в небольшую авантюру. «От меня-то не убудет», — подумала я.
+9
Разработка для Microsoft SQL Server (и не только): контроль версий, непрерывная интеграция и процедуры — как это делаем мы
10 min
23KДоброго времени суток, уважаемые Хабровчане.
В качестве краткой предыстории: год назад, придя на новое место работы в качестве руководителя отдела разработки БД (на базе Microsoft SQL Server), я испытал глубочайший шок от увиденного. Крупная компания, сложное веб-приложение, многомиллионные контракты, а разработка ведется на production-БД, баг-репорты поступают и обрабатываются по методике «кто громче крикнет» или «надо сделать прям вчера». Естественно ни о системе контроля версий, continuous integration, процедурах и workflow речи и не шло.
Сегодня ситуация сильно изменилась (хотя, кого я обманываю — только начинает меняться) и я хотел бы поделиться как техническими, так и процедурными деталями решений, которые мы используем сейчас. Технические детали на 90% касаются непосредственно разработки для Microsoft SQL Server, а вот процедурные изменения у нас коснулись и веб-девелоперов, и инженеров, и аналитиков, и тестеров.
Сразу оговорюсь, я не являюсь представителем компаний/рекламщиком программных продуктов, которые я буду упоминать в статье. Выбор используемого софта лучше всего подходил для наших задач по функционалу, цене, а также удовлетворял моим личным предпочтениям.
Кому интересны подробности — добро пожаловать под кат.
Warning: очень много текста, описания процедур и процессов (которые, может, никому и не интересны).
В качестве краткой предыстории: год назад, придя на новое место работы в качестве руководителя отдела разработки БД (на базе Microsoft SQL Server), я испытал глубочайший шок от увиденного. Крупная компания, сложное веб-приложение, многомиллионные контракты, а разработка ведется на production-БД, баг-репорты поступают и обрабатываются по методике «кто громче крикнет» или «надо сделать прям вчера». Естественно ни о системе контроля версий, continuous integration, процедурах и workflow речи и не шло.
Сегодня ситуация сильно изменилась (хотя, кого я обманываю — только начинает меняться) и я хотел бы поделиться как техническими, так и процедурными деталями решений, которые мы используем сейчас. Технические детали на 90% касаются непосредственно разработки для Microsoft SQL Server, а вот процедурные изменения у нас коснулись и веб-девелоперов, и инженеров, и аналитиков, и тестеров.
Сразу оговорюсь, я не являюсь представителем компаний/рекламщиком программных продуктов, которые я буду упоминать в статье. Выбор используемого софта лучше всего подходил для наших задач по функционалу, цене, а также удовлетворял моим личным предпочтениям.
Кому интересны подробности — добро пожаловать под кат.
Warning: очень много текста, описания процедур и процессов (которые, может, никому и не интересны).
+7
Разработка ММО РПГ – практическое руководство. Сервер (часть 1)
10 min
46K- Игровой backend: из каких модулей он должен состоять?
- Расчет параметров персонажа: виртуальные методы или сложение массивов?
- Логика поведения: на каком уровне она должна находится?
- Перемещение персонажей: кто этим должен управлять?
Сегодня мы продолжим знакомиться с разработкой и проектированием он-лайн игры на примере космической ММО RPG «Звездные Призраки». В этой статье речь пойдет о backend'е на С++ и она будет насквозь техническая.
В тексте будет много отсылок к функционалу «Звездных Призраков», но я постараюсь излагать материал так, чтобы вам не было нужды вникать (и играть) в наш продукт. Однако, для лучшего понимания материала желательно потратить пару минут и посмотреть, как это все выглядит.
В статье мы сосредоточимся именно на архитектурных решениях применительно к backend'у MMO RPG в реальном времени. Исходного кода будет не много и он точно не будет содержать таких специфических для С++ вещей как множественное наследование или шаблоны. Задача данной статьи помочь в проектировании игрового сервера и ознакомить всех желающих со спецификой игрового backend'а.
Описываемые решения достаточно универсальны и вполне подойдут для многих RPG. В качестве иллюстрации в конце статьи я приведу пример использования описанной архитектуры в игре «про эльфов».
+25
Книги и образовательные ресурсы по алгоритмической торговле
7 min
101K
Алгоритмическая торговля — интересная область, которая позволяет ИТ-специалистам применить свои технические знания на фондовом рынке и извлечь из этого ту или иную выгоду. В нашем блоге мы неоднократно рассматривали различные темы, связанные с созданием торговых роботов, но недостаточно внимания уделяли теоретическим вопросам, с которыми сталкиваются начинающие трейдеры.
В нашем сегодняшнем материале — подборка книг, которые помогут лучше подготовиться к началу работы на фондовом рынке и написанию механических торговых систем. Для достижения наибольшей эффективности материала, мы приводим советы экспертов, которые занимаются алгоритмической торговлей на российском и зарубежных фондовых рынках.
+33
Не Таиландом единым или Как фрилансеру за три часа поменять место обитания без проблем с визами
10 min
51KС падением курса рубля жизнь фрилансера-путешественника сильно осложнилась. Однако если все же заработок позволяет, а европейского гостеприимства, как и солнца, ох как не хватает в России – добро пожаловать в восемь стран, где фрилансер найдет покой и красивую картинку позади монитора без проблем и волнений с оформлением виз.

Маршруты кочевников за полторы тысячи лет не поменялись. Но нравы стали помягче

Маршруты кочевников за полторы тысячи лет не поменялись. Но нравы стали помягче
+59
Заметки об объектной системе языка Python ч.1
8 min
67KНесколько заметок об объектной системе python'a. Рассчитаны на тех, кто уже умеет программировать на python. Речь идет только о новых классах (new-style classes) в python 2.3 и выше. В этой статье рассказывается, что такое объекты и как происходит поиск атрибутов.
+93
Руководство к дескрипторам
10 min
174KTranslation
Краткий обзор
В этой статье я расскажу о том, что такое дескрипторы, о протоколе дескрипторов, покажу как вызываются дескрипторы. Опишу создание собственных и исследую несколько встроенных дескрипторов, включая функции, свойства, статические методы и методы класса. С помощью простого приложения покажу, как работает каждый из них, приведу эквиваленты внутренней реализации работы дескрипторов кодом на чистом питоне.
Изучение того, как работают дескрипторы, откроет доступ к большему числу рабочих инструментов, поможет лучше понять как работает питон, и ощутить элегантность его дизайна.
+45
Ночные кошмары Питона: неявный `this`
3 min
28KОбсуждение статьи "Не совсем крутой Ruby" зашло достаточно далеко: недостатки и достоинства Ruby между делом перетекали в обсуждение недостатков и достоинств Python. Не сильно удивило то, что передача
self
в качестве первого аргумента метода класса, некоторым хабравчанам кажется лишней. Ну что ж, не хотите явного self
, будет вам неявный this
! Под катом, немного магии на чистом Python. +53
Введение в функциональное программирование на Python
10 min
154KTranslation
Рассуждая о функциональном программировании, люди часто начинают выдавать кучу «функциональных» характеристик. Неизменяемые данные, функции первого класса и оптимизация хвостовой рекурсии. Это свойства языка, помогающие писать функциональные программы. Они упоминают мапирование, каррирование и использование функций высшего порядка. Это приёмы программирования, использующиеся для написания функционального кода. Они упоминают распараллеливание, ленивые вычисления и детерменизм. Это преимущества функциональных программ.
Забейте. Функциональный код отличается одним свойством: отсутствием побочных эффектов. Он не полагается на данные вне текущей функции, и не меняет данные, находящиеся вне функции. Все остальные «свойства» можно вывести из этого.
Нефункциональная функция:
Функциональная функция:
Вместо проходов по списку используйте map и reduce
Забейте. Функциональный код отличается одним свойством: отсутствием побочных эффектов. Он не полагается на данные вне текущей функции, и не меняет данные, находящиеся вне функции. Все остальные «свойства» можно вывести из этого.
Нефункциональная функция:
a = 0
def increment1():
global a
a += 1
Функциональная функция:
def increment2(a):
return a + 1
Вместо проходов по списку используйте map и reduce
+27
Быстрое кроссплатформенное HTML5 приложение на Framework7
10 min
80KЗадумываясь о разработке html5 приложения, многим сразу на ум приходит jQuery, или точнее jQueryMobile. И попробовав написать даже самое простенькое приложение используя jQueryMobile, очень легко разочароваться, так как производительность и отзывчивость получившегося html5 приложения куда ниже ожидаемого, и уж совсем его не сравнить с нативными приложениями.


+42
Мысли об идеальном языке программирования
10 min
31K
В данной статье я хотел бы поделиться своими мыслями об идеальном языке программирования общего назначения. В первую очередь — о языке, который мог бы заменить С++.
Так случилось, что языки программирования — мое хобби и мой основной интерес в сфере IT. Наверное, любой программист иногда мечтает создать свой собственный — идеальный — язык программирования. Для меня это нечто большее, чем просто мечта, фактически я уже давно собираю всю информацию по различным языкам и проектирую свой собственный язык.
На разных ресурсах я регулярно высказываюсь по вопросам этой тематики. В этой статье я попытался собрать основные мысли воедино. Мы рассмотрим основные недостатки С++, особенности других языков, которые так или иначе можно сравнивать с С++, и — самое интересное — потребности программистов в языковых фичах, на примере библиотеки Boost.
Данная статья не претендует на какую-то техническую полезность (хотя если она будет кому-то полезна, это замечательно). Это статья — приглашение к обсуждению.
+20
Архитектура приложения малой кровью
3 min
111KTutorial
Маленькая зарисовка на тему того, как разработать высокоуровневую архитектуру приложения.
Предположим, что с будущей функциональностью Вы определились. Тогда Вы точно знаете, кто или что будет поставлять данные, кто/что будет их потреблять и какие преобразования данных должна выполнять сама система.
Возьмите лист бумаги и карандаш. Если не сильно уверены в своих силах, то ещё и резинку, чтобы править схему. Более продвинутые читатели могут обратиться к профессиональным инструментам для проектирования архитектуры в электронном виде.
Теперь выясните, кто будет обращаться к вашей системе, чтобы передать или забрать данные, а к чему будет обращаться Ваша программа. Те системы или пользователи, которые обращаются к программе сами, нарисуйте схематически на листе бумаги вверху. Те, к которым будет обращаться программа (включая БД), — снизу.
Теперь нарисуйте под каждым нарисованным сверху субъектом прямоугольник с названием UI или API — это интерфейсы, к которым будет обращаться пользователь или внешняя управляющая система. Иногда UI тоже может обращаться к API. Объедините все прямоугольники с UI одним контуром и обзовите слоем представления. Объедините все прямоугольники с API и обзовите слоем сервисов.
Для систем, нарисованных снизу, укажите компоненты, которые будут отвечать за доступ к этим системам. Объедините все эти компоненты одним контуром и обзовите слоем доступа к данным.
Между слоем сервисов и слоем доступа к данным нарисуйте большой контур и назовите его слоем бизнес-логики. В маленьких прямоугольниках внутри этого контура перечислите основные бизнес-задачи. Один компонент Вашей системы будет решать одну бизнес-задачу.
Теперь справа нарисуйте несколько длинных прямоугольников снизу доверху и напишите в них: журналирование, конфигурация, мониторинг производительности, обработка исключений и что-то ещё, что является общей инфраструктурой (или сквозной функциональностью) для всех слоёв вашей программы.
Вы получили логическую архитектуру приложения. Разбросайте слои по серверам — получите физическую архитектуру.
Теперь вам остаётся детально проработать каждый маленький квадратик.
Маленький практический пример запрячу под кат.
Предположим, что с будущей функциональностью Вы определились. Тогда Вы точно знаете, кто или что будет поставлять данные, кто/что будет их потреблять и какие преобразования данных должна выполнять сама система.
Возьмите лист бумаги и карандаш. Если не сильно уверены в своих силах, то ещё и резинку, чтобы править схему. Более продвинутые читатели могут обратиться к профессиональным инструментам для проектирования архитектуры в электронном виде.
Теперь выясните, кто будет обращаться к вашей системе, чтобы передать или забрать данные, а к чему будет обращаться Ваша программа. Те системы или пользователи, которые обращаются к программе сами, нарисуйте схематически на листе бумаги вверху. Те, к которым будет обращаться программа (включая БД), — снизу.
Теперь нарисуйте под каждым нарисованным сверху субъектом прямоугольник с названием UI или API — это интерфейсы, к которым будет обращаться пользователь или внешняя управляющая система. Иногда UI тоже может обращаться к API. Объедините все прямоугольники с UI одним контуром и обзовите слоем представления. Объедините все прямоугольники с API и обзовите слоем сервисов.
Для систем, нарисованных снизу, укажите компоненты, которые будут отвечать за доступ к этим системам. Объедините все эти компоненты одним контуром и обзовите слоем доступа к данным.
Между слоем сервисов и слоем доступа к данным нарисуйте большой контур и назовите его слоем бизнес-логики. В маленьких прямоугольниках внутри этого контура перечислите основные бизнес-задачи. Один компонент Вашей системы будет решать одну бизнес-задачу.
Теперь справа нарисуйте несколько длинных прямоугольников снизу доверху и напишите в них: журналирование, конфигурация, мониторинг производительности, обработка исключений и что-то ещё, что является общей инфраструктурой (или сквозной функциональностью) для всех слоёв вашей программы.
Вы получили логическую архитектуру приложения. Разбросайте слои по серверам — получите физическую архитектуру.
Теперь вам остаётся детально проработать каждый маленький квадратик.
Маленький практический пример запрячу под кат.
+6
Как оставаться продуктивным, когда все идет к чертям
4 min
16KTranslation

В этой статье Chris Bailey, расскажет, как повысить свою продуктивность и преодолеть неожиданные трудности в любой форме – физические, эмоциональные или финансовые.
+6
Новое исследование Гарвардского университета обнаружило забавный способ стать успешнее
7 min
56KTranslation

Мы все хотим достичь успеха. Но прочитанные вами советы, вероятно, сводятся к пожеланию «больше работать». В этой статье мы расскажем, почему не успех приносит счастье, а счастье является причиной успеха.
+29
Опыт получения Data Science specialization на Coursera за 6 месяцев
9 min
74KПриветствую,
В этом посте я бы хотел зафиксировать свои уже гаснущие воспоминания о получении «Data Science, a 9-course specialization by Johns Hopkins University on Coursera. Specialization Certificate», фокусируясь на организационной стороне вопроса. Т.е. я не буду рассуждать о том, насколько это престижный сертификат, какой преподаватель скучнее и достаточно ли знаний дается. На мой взгляд — это вопросы субъективные. Вместо «зачем», я расскажу о том «как»: в каком порядке и как проходить курсы, на что обращать внимание при сдаче тестов и курсовых, и что получается в результате.
В этом посте я бы хотел зафиксировать свои уже гаснущие воспоминания о получении «Data Science, a 9-course specialization by Johns Hopkins University on Coursera. Specialization Certificate», фокусируясь на организационной стороне вопроса. Т.е. я не буду рассуждать о том, насколько это престижный сертификат, какой преподаватель скучнее и достаточно ли знаний дается. На мой взгляд — это вопросы субъективные. Вместо «зачем», я расскажу о том «как»: в каком порядке и как проходить курсы, на что обращать внимание при сдаче тестов и курсовых, и что получается в результате.
+20
В чем сила настоящего UX?
7 min
4.1KНачнем с основ – разберемся что же такое UX. Очередная секта, которая с помощью красивых картинок и магических заклинаний умеет удваивать продажи любого товара или научная методология управления людскими массами? Эффективное превращение любой личности в товарозависимого покупателя или способ накладывать тени в графическом редакторе? Кого ищут работодатели и почему лишь в супергероях нуждается бизнес? И главное — как избавиться от агрессивных гопников? Fill the power of the true ux!

+9
«7 Принципов юзабилити от Джесси Хауслера» — краткая выжимка из статьи
5 min
6.4K
На днях мое внимание привлекла одна статья от Джесси Хауслера, который является главным специалистом по юзабилити в компании Salesforce. В статье он написал про 7 принципов юзабилити, который должен знать каждый дизайнер.
+8
Information
- Rating
- Does not participate
- Location
- Тула, Тульская обл., Россия
- Date of birth
- Registered
- Activity