Нам бы хотелось поделиться с вами опытом, который мы, в Futurice, получили, разрабатывая Android-приложения. Надеемся, эти советы уберегут вас от создания собственных велосипедов. Если вы интересуетесь iOS или Windows Phone разработкой, обратите внимание на соответствующие документы на нашем сайте.
ugene @ugene
User
Вы неправильно пишете животных
5 min
358KЖивотные – это платформы с очень ограниченной памятью, вычислительными способностями и возможностями модификаций. Разработчикам энимал-сцены приходится выдавать практически гениальные низкоуровневые алгоритмы. Правда, большое количество хардкода вызывает характерные проблемы с отсутствием проверки в экзотических условиях. Та же фильтрация входных данных делается очень и очень криво.
Уязвимость рекурсивных алгоритмов навигации муравья: спираль смерти
Не знаю, кто писал большую часть птиц, но я хочу обратить внимание на особенность, позволяющую провести инъекцию произвольного яйца в гнездо. Дело в том, что птица проверяет только расположение и количество яиц, но не их хэши. В 20% случаев кукушка, эксплуатирующая этот баг, может внести яйцо с сохранением контрольной суммы, чего вполне достаточно для повышения прав в гнезде.
Но пойдём далее. Я не знаю, кто разрабатывал архитектуру ящериц, но они бегают в одном процессе, а дышат в другом. При этом платформа не поддерживает многозадачность, поэтому костыль с максимальной длиной бега в 4-6 секунд просто эпичен.
Уязвимость рекурсивных алгоритмов навигации муравья: спираль смерти
Не знаю, кто писал большую часть птиц, но я хочу обратить внимание на особенность, позволяющую провести инъекцию произвольного яйца в гнездо. Дело в том, что птица проверяет только расположение и количество яиц, но не их хэши. В 20% случаев кукушка, эксплуатирующая этот баг, может внести яйцо с сохранением контрольной суммы, чего вполне достаточно для повышения прав в гнезде.
Но пойдём далее. Я не знаю, кто разрабатывал архитектуру ящериц, но они бегают в одном процессе, а дышат в другом. При этом платформа не поддерживает многозадачность, поэтому костыль с максимальной длиной бега в 4-6 секунд просто эпичен.
+434
14 вопросов об индексах в SQL Server, которые вы стеснялись задать
26 min
1.1MTutorial
Translation
Индексы — это первое, что необходимо хорошо понимать в работе SQL Server, но странным образом базовые вопросы не слишком часто задаются на форумах и получают не так уж много ответов.
Роб Шелдон отвечает на эти, вызывающие смущение в профессиональных кругах, вопросы об индексах в SQL Server: одни из них мы просто стесняемся задать, а прежде чем задать другие сначала подумаем дважды.
От переводчика
Данный пост является компиляцией двух статей Роба Шелдона:
Если вы пишите запросы на языке T-SQL, но плохо понимаете откуда берутся данные, то стоит прочитать данный перевод.
Если же вы захотите знать больше, то в конце перевода я даю тройку книг с которых следует двигаться дальше.
- SQL Server Index Basics от 25 ноября 2008 года (заметка даёт понимание основных терминов)
- 14 SQL Server Indexing Questions You Were Too Shy To Ask от 25 марта 2014 года (собственно, ради неё всё и затевалось)
Если вы пишите запросы на языке T-SQL, но плохо понимаете откуда берутся данные, то стоит прочитать данный перевод.
Если же вы захотите знать больше, то в конце перевода я даю тройку книг с которых следует двигаться дальше.
+34
AppCompat v21 — Material Design для пре-Lollipop устройств
8 min
92KTranslation
17 октября был опубликован Android 5.0 SDK, который принес новые виджеты и материальный дизайн. Мы расширили библиотеки поддержки, чтобы вы могли использовать ваши последние разработки и на предыдущих версиях Android. Это изменения включают в себ крупное обновление для AppCompat, а так же библиотеки RecyclerView, CardView и Palette.
В этом посте мы взглянем, что нового появилось в AppCompat и как это использовать для поддержки материального дизайна в ваших приложениях.
+14
+76
Федеральный закон № 243, или Тихая пенсионная реформа
4 min
428KНачалось все с того, что мне пришло письмо от знакомого. Я усомнился и пошел проверять. Уж больно неправдоподобным показалось написанное в нем.
Однако факт остается фактом: «… с 1 января 2014 г. будет осуществлен т. н. страховой маневр — сокращены с 6 до 2% отчисления на формирование накопительной части пенсии. Высвободившиеся 4% пойдут на финансирование страховой части.»
UPDATE! Весьма вероятно, что скоро сокращение будет не до двух процентов, а до нуля — смотрите обновление №3 в конце поста.
Ну, кто там спрашивал, от чего отвлекают наше внимание?! Здесь был горький смайлик с кривой ухмылкой.
Кому интересно / небезразлично, добро пожаловать под кат!
+152
Краткая история бессмертия
13 min
83KФизика не стоит на месте. В последнем эксперименте на Большом адронном коллайдере лептоны были подвергнуты интенсивной бомбардировке флуктуирующими протонами. В результате зафиксирован обрыв глюонной струны, сопровождаемый двойным излучением ранее неизвестного типа. Ученые затрудняются его идентифицировать.
+91
14 компьютерных игр выставлены в музее современного искусства
5 min
79KМузей современного искусства в Нью-Йорке начал собирать коллекцию компьютерных игр. Планируется, что там разместится около 40 наиболее заметных явлений. Пока в список попали 14 компьютерных игр. В том числе и тетрис Алексея Пажитнова.
При отборе игр в коллекцию учитывался не только дизайн картинки. Учитывались такие необходимые для игры вещи, как геймплей, удобство интерфейса, способность игры вовлечь игрока и создать настроение. Интересно, что при отборе игр учитывался также и качественный короткий код. При чем красоту кода планируется тоже выставить напоказ. При отборе игр учитывались мнения не только искусствоведов, но и специалистов программистов.
Пока не очень понятно, как будут выставляться игры. Список уже отобранных игр:
Так же уже известно, что организаторы будущей коллекции хотят включить в музейную экспозицию «Змейку», «Спейс Инвайдерс», «Зорк», «Супер Марио», «Грим Фанданго».
А так же объявлено, что самой молодой игрой в коллекции станет Minecraft.
При отборе игр в коллекцию учитывался не только дизайн картинки. Учитывались такие необходимые для игры вещи, как геймплей, удобство интерфейса, способность игры вовлечь игрока и создать настроение. Интересно, что при отборе игр учитывался также и качественный короткий код. При чем красоту кода планируется тоже выставить напоказ. При отборе игр учитывались мнения не только искусствоведов, но и специалистов программистов.
Пока не очень понятно, как будут выставляться игры. Список уже отобранных игр:
- Pac-Man (1980)
- Tetris (1984)
- Another World (1991)
- Myst (1993)
- SimCity 2000 (1994)
- vib-ribbon (1999)
- The Sims (2000)
- Katamari Damacy (2004)
- EVE Online (2003)
- Dwarf Fortress (2006)
- Portal (2007)
- flOw (2006)
- Passage (2008)
- Canabalt (2009)
Так же уже известно, что организаторы будущей коллекции хотят включить в музейную экспозицию «Змейку», «Спейс Инвайдерс», «Зорк», «Супер Марио», «Грим Фанданго».
А так же объявлено, что самой молодой игрой в коллекции станет Minecraft.
+42
Кен Нортон. Как работать с программистами
5 min
3.6KTranslation
Я работаю в сфере IT 20 лет, последние 13 — в качестве руководителя проектов. Так получилось, что за это время я заслужил репутацию менеджера, эффективно работающего с программистами. Благодаря этому навыку я вошел в историю как один из трех величайших руководителей проектов и направлений – наряду с Николо Маккиавели и Стивом Джобсом.
Долгие годы я держал свои профессиональные секреты при себе. Но время пришло: сегодня я поделюсь с вами «Десятишаговой инструкцией по работе с программистами». Или, если ближе к сути, назовем ее так: «Как заставить программистов делать то, что вы хотите».
Долгие годы я держал свои профессиональные секреты при себе. Но время пришло: сегодня я поделюсь с вами «Десятишаговой инструкцией по работе с программистами». Или, если ближе к сути, назовем ее так: «Как заставить программистов делать то, что вы хотите».
+57
Об ограничениях естественного интеллекта и как нам с этим жить дальше
5 min
104KНа сегодняшний день становится очевидным, что человеческий мозг имеет совершенно явные естественные ограничения и в основном работает, что называется «на всю катушку». Я рассматриваю сферу умственного труда естественно. Миф о том, что мозг использует лишь 10% своего потенциала это всего лишь миф. И, по всей видимости, тренировками и (или) медицинскими способами качество интеллекта можно поднять лишь весьма ограниченно. Современная наука все более сходится во мнении, что при текущем устройстве мозга мы не можем быть умнее, чем мы есть.
+41
Развитие правого полушария головного мозга или как я учился рисовать
4 min
87KTutorial
Сразу дискламер: я редко пишу посты на широкую аудиторию, и более правильного ресурса для этого текста в рамках моего кругозора не нашлось. Тем не менее, если кто-то найдет это интересным, значит не зря… Поехали.
Как-то я услышал от одного человека мысль о том, чтобы заниматься бизнесом, ему приходится «выращивать в себе Мистера Хайда», типа некая альтернатива его личности способна придумать что-то такое, что не способен придумать он сам. Конечно же, он шутил, по большей части, и тогда я этому значение не придал. Вспомнил эту точную метафору лишь, когда сам решил, что мне нужно развивать креативность, умение продуктивно фантазировать, придумывать нестандартные решения.
С чего все началось
Как-то я услышал от одного человека мысль о том, чтобы заниматься бизнесом, ему приходится «выращивать в себе Мистера Хайда», типа некая альтернатива его личности способна придумать что-то такое, что не способен придумать он сам. Конечно же, он шутил, по большей части, и тогда я этому значение не придал. Вспомнил эту точную метафору лишь, когда сам решил, что мне нужно развивать креативность, умение продуктивно фантазировать, придумывать нестандартные решения.
+149
О речи, языке и музыке
16 min
9.9KDisclaimer No. 1. В прошлый раз я несколько переусердствовал с набросом, результатом чего стал настолько эпический срач в комментах, что я боюсь туда заглядывать, за что прошу прощенья у всех, кому не ответил. Исправляюсь и привожу одну хорошую и годную статью, которая, вообще-то, писалась для другого ресурса, но там меня больше нет.
Disclaimer No. 2. Никакого отношения к тематике Хабра эта статья не имеет, писать про это в комментах не надо. Не нравится хаб «Научно-популярное» — отпишись молча.
Я думаю, многие из вас задумывались о смысле музыки. Поймёт ли представитель дикого племени музыку Бетховена? А средневековый житель — музыку «Битлз»? Насколько универсален музыкальный язык и почему вообще мы способные его понимать?
Долгое время мне хватало размытого представления о том, что понимание музыки, наверное, есть результат моего воспитания в русле европейской культуры. Однако в какой-то момент я захотел исследовать этот вопрос подробнее и я обратился к научным исследованиям по этому вопросу.
Каково же было мое удивление, когда я обнаружил, что в настоящее время в научном мире происходит настоящая революция, в эпицентре которой находится музыка! Вопрос о роли музыки в эволюции человека и взаимоотношения речи и музыки — одна из самых горячих тем в современной антропологии; между тем, споры эволюционистов, похоже, полностью проходят мимо как профессионалов (музыковедов, исполнителей, композиторов), так и обычных любителей музыки. В данной статье я постараюсь дать обзор тем смелым идеям, которые перевернули представление ученого сообщества о музыке и её функциях в человеческом обществе.
Disclaimer No. 2. Никакого отношения к тематике Хабра эта статья не имеет, писать про это в комментах не надо. Не нравится хаб «Научно-популярное» — отпишись молча.
Я думаю, многие из вас задумывались о смысле музыки. Поймёт ли представитель дикого племени музыку Бетховена? А средневековый житель — музыку «Битлз»? Насколько универсален музыкальный язык и почему вообще мы способные его понимать?
Долгое время мне хватало размытого представления о том, что понимание музыки, наверное, есть результат моего воспитания в русле европейской культуры. Однако в какой-то момент я захотел исследовать этот вопрос подробнее и я обратился к научным исследованиям по этому вопросу.
Каково же было мое удивление, когда я обнаружил, что в настоящее время в научном мире происходит настоящая революция, в эпицентре которой находится музыка! Вопрос о роли музыки в эволюции человека и взаимоотношения речи и музыки — одна из самых горячих тем в современной антропологии; между тем, споры эволюционистов, похоже, полностью проходят мимо как профессионалов (музыковедов, исполнителей, композиторов), так и обычных любителей музыки. В данной статье я постараюсь дать обзор тем смелым идеям, которые перевернули представление ученого сообщества о музыке и её функциях в человеческом обществе.
+35
Психологические аспекты человеко-машинного взаимодействия
12 min
6.9KTranslation
Предлагаю вашему вниманию перевод и адаптацию статьи Сьюзан Вайншенк «The Psychologist’s View of UX Design».
Предупреждаю, что статья может содержать много «банальных» утверждений. Однако, считаю, что это ничуть не умаляет её общеобразовательной ценности.
… Все вы, наверное, слышали притчу о слепцах и слоне:
+73
+78
+84
3D Life — в поисках планеров
5 min
19KМногим известна игра «Жизнь», изобретенная Дж.Конвеем еще в 1970 г. Еще шире известен один из объектов этой игры – планер (или глайдер) – движуееся образование из 5 клеток:
.
В 1987 г. Были найдены первые планеры в трехмерных версиях «жизни» ( www.complex-systems.com/pdf/16-4-7.pdf ). К сожалению, из случайных конфигураций они возникают очень редко (в отличие от двумерной версии). Я решил поискать правила игры, в которых планеров было бы побольше.
+61
Стартап? Завязывайте
5 min
1.8KНа Хабре много статей, посвященных стартапам, инвесторам, искуственным и естественным мотиваторам и прочему-прочему, ни разу не АЙТИшному смысловому маркетингу. Цель их одна — «добиться успеха». Ибо успех и процесс его достижения — это есть одна из главных составляющих счастья. А его нам всем хочется.
Стоит отметить, что статья на все 100% субъективна, не претендует на истину в какой-либо инстанции, старается не поучать и не наставлять. Тот минимум, на который я рассчитываю — это поделиться своим мнением, показать, что бывает и так. Может быть кто-то разделит мою позицию, кто-то задумается, кто-то пройдет мимо, остальным же Хабр дает великолепную возможность минусовать.
Такова жизнь, информация доступна — наше право решать — получать ли ее; если да, то как; и если получил, то что с ней делать. Собственно говоря, об этой возможности речь и пойдет.
Друзья-коллеги-читатели, попрошу еще минутку внимания, вкратце о себе. Я НЕ являюсь — преподавателем, коучем, тренером, наставником, философом, псих\ологом\иатром\отерапевтом, ах да, мастером эпистолярного жанра и русского языка, к сожалению, тоже. Кем я в действительности являюсь — не важно. Т.к. что бы я не сказал, каждый из Вас придумает решит это сам. Я могу лишь очертить сектор в котором стоит смотреть и это я сделал, прислушайтесь. Вообще, если сейчас у Вас между бровей полным-полно скепсиса, то лучше сразу перейти к «минусу», дабы не тратить время — это действительная ценность — ее не стоит тратить на то, что кажется Вам не достойным. Если же на данный момент у Вас есть интерес, то до какого-то момента Вы будете со мной, т.к. интерес уже разгорелся и раздувать вы его будете самостоятельно. Моя задача — постараться все не испортить.
Стоит отметить, что статья на все 100% субъективна, не претендует на истину в какой-либо инстанции, старается не поучать и не наставлять. Тот минимум, на который я рассчитываю — это поделиться своим мнением, показать, что бывает и так. Может быть кто-то разделит мою позицию, кто-то задумается, кто-то пройдет мимо, остальным же Хабр дает великолепную возможность минусовать.
Такова жизнь, информация доступна — наше право решать — получать ли ее; если да, то как; и если получил, то что с ней делать. Собственно говоря, об этой возможности речь и пойдет.
Друзья-коллеги-читатели, попрошу еще минутку внимания, вкратце о себе. Я НЕ являюсь — преподавателем, коучем, тренером, наставником, философом, псих\ологом\иатром\отерапевтом, ах да, мастером эпистолярного жанра и русского языка, к сожалению, тоже. Кем я в действительности являюсь — не важно. Т.к. что бы я не сказал, каждый из Вас придумает решит это сам. Я могу лишь очертить сектор в котором стоит смотреть и это я сделал, прислушайтесь. Вообще, если сейчас у Вас между бровей полным-полно скепсиса, то лучше сразу перейти к «минусу», дабы не тратить время — это действительная ценность — ее не стоит тратить на то, что кажется Вам не достойным. Если же на данный момент у Вас есть интерес, то до какого-то момента Вы будете со мной, т.к. интерес уже разгорелся и раздувать вы его будете самостоятельно. Моя задача — постараться все не испортить.
+115
Как работают админы (Русская озвучка)
1 min
1.6KОзвучивал знакомый, я думал раньше не было русской озвучки.
+32
+168
Дизайн будильника моей мечты
4 min
44KНет, не здоровенного. А просто удобного будильника для Андроида. После долгих поисков на Маркете я так и не смог найти будильник, который мне было бы приятно использовать. Поэтому в этой статье я буду проектировать будильник таким, каким бы я сам хотел его видеть.
Сразу скажу, что это будильник для тех, кому нужен именно будильник, который будит их по утрам, а не таймер для готовки яиц или костыльная замена напоминаниям в календаре.
Перед тем, как рассказать о том что есть в этом будильнике, я начну с того, чего в нём нет. Во-первых, в нём нет возможности установки нескольких будильников, так как в большинстве случаев они используются только для того, чтобы поставить 3 будильника подряд с целью не проспать. Это не работает и должно решаться другими средствами.
Во-вторых, в нём нет псевдо-анализа стадий сна, так как пока я не нашёл подтверждения тому, что хоть одно из таких приложений работает. И уж точно они не работают, если спишь в кровати не один.
И в-третьих, в нём нет никаких математических примеров для отключения звонка. Так что для любителей математики он не подойдёт.
Дисклаймер. Вполне возможно, у вас уже есть будильник который вас полностью устраивает. Что ж, тогда эта статья вряд ли вам будет интересна. А для остальных я расскажу о проектировании будильника
Сразу скажу, что это будильник для тех, кому нужен именно будильник, который будит их по утрам, а не таймер для готовки яиц или костыльная замена напоминаниям в календаре.
Перед тем, как рассказать о том что есть в этом будильнике, я начну с того, чего в нём нет. Во-первых, в нём нет возможности установки нескольких будильников, так как в большинстве случаев они используются только для того, чтобы поставить 3 будильника подряд с целью не проспать. Это не работает и должно решаться другими средствами.
Во-вторых, в нём нет псевдо-анализа стадий сна, так как пока я не нашёл подтверждения тому, что хоть одно из таких приложений работает. И уж точно они не работают, если спишь в кровати не один.
И в-третьих, в нём нет никаких математических примеров для отключения звонка. Так что для любителей математики он не подойдёт.
Дисклаймер. Вполне возможно, у вас уже есть будильник который вас полностью устраивает. Что ж, тогда эта статья вряд ли вам будет интересна. А для остальных я расскажу о проектировании будильника
+256
Information
- Rating
- Does not participate
- Registered
- Activity