Search
Write a publication
Pull to refresh
8
0
Муаммар Аль-Шедиват @Laytlas

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

Send message

Как стереть данные так, чтобы их не смогли восстановить спецслужбы?

Reading time5 min
Views425K


Восстановление и уничтожение данных — две стороны одной медали. Чтобы знать, когда и как можно вернуть себе информацию, надо понимать и как она может быть уничтожена безвозвратно. А в некоторых ситуациях бывает просто необходимо: например, уничтожение корпоративной информации при утилизации оборудования, уничтожение ваших личных данных при передаче диска в пользование друзьям или продаже, а может быть вы раз и навсегда хотите удалить историю переписки с любовницей ;) Считается, что лучшие специалисты по восстановлению данных работают в спецслужбах, поэтому мы сформулировали вопрос именно таким образом: как уничтожить информацию с диска так, чтобы её не восстановили ни копы из отдела «К», ни Q из Джеймса Бонда, ни даже наши специалисты из StoreLab.
Читать дальше →

Как я писал Футболоид под iOS

Reading time15 min
Views41K
Приветствую достопочтеннейших Хабралюдей!


Не так давно, во время поиска новой работы, я получил очень интересное тестовое задание от ZeptoLab: написать за пару рабочих дней арканоид под iOS без использования сторонних библиотек типа Cocos2d/Box2d и т.п., то есть, на «чистом» OpenGL, что показалось мне весьма интересным. Кстати, об этом задании на Хабре уже писали, и даже устраивали разбор полётов. Итак, я бросил вызов судьбе и взялся за геймдев впервые после школьных упражнений с васиком в графическом режиме!

Уточню, что некоторые знания OpenGL у меня уже были, но весьма и весьма поверхностные. Можно сказать, что их не было ну почти совсем, я просто знал, что такое вьюпорт и что бывают какие-то там спрайты, что существуют матрицы преобразования… Так что данная статья могла бы быть озаглавлена "Как написать простую игру под iOS на чистом OpenGL, не зная его", но это слишком уж длинно.

В общем, если Вам интересно, как я это сделал за ~10 часов разработки и ~2 часа чтения, прошу под кат. (осторожно! много кода! мало картинок! ссылка на гитхаб и расслабляющее видео в конце!)
Поехали

Простой способ защиты от классического HTTP DDoS

Reading time5 min
Views35K
Данное решение позволяет вычислять любых ботов, за исключением тех, которые полностью имитируют работу браузера.

Как это работает


Бот запрашивает страницу, например habrahabr.ru/search. Бот не умеет загружать вместе со страницей картинки, скрипты, css и пр. Значит в логе будет отображен запрос к /search/ и всё.
Если на habrahabr.ru/search заходит живой человек через браузер, то вместе с /search/ в лог попадет множество картинок, скриптов, css и пр.
Читать дальше →

Модель освещения для двумерных хоррор-игр

Reading time2 min
Views21K
image
Самым нетерпеливым: лагающая демка, написанная под хром. На моей машине загружается секунд 20.

Эта идея пришла ко мне года 2 назад. Я обратил внимание на то, что, в условиях недостаточного освещения, я воспринимаю видимые объекты преимущественно в синеватых тонах и с небольшой потерей резкости. Возможно, это чисто психологическое восприятие, но мы сейчас не об этом. Мне стало любопытно, как выглядела бы 2D игра с такими особенностями освещения. С целью выяснить это, я, так и не разобравшись с шейдерами, набросал демку на самом удобном для меня языке — javascript. Поскольку эффект применяется к слабоосвещенным участкам, он не самый заметный из происходящего на экране, но вполне ощутимый шарм он добавляет.
Читать дальше →

Продвижение мобильных приложений

Reading time1 min
Views14K
29 августа на конференции OGIC (Online Games Industry Conference) Владимир Верховский рассказал как нужно продвигать мобильные приложения.

В этом докладе не будет 20-минутного рассказа о том, что нужно делать красивую иконку и корректное описание, об этом в курсе каждый второй разработчик в App Store. Если вам интересно, что означают аббревиатуры eCPM, CPC, СPD, ARPU, RAL и как приложения попадают в ТОП, то это видео для вас.


Текстовая расшифровка и презентация

Подробнее о продвижении мобильных приложений

Опыт GREE: как сделать успешную социальную игру

Reading time3 min
Views9.2K
image
На прошлой неделе Эжи Араки (Eiji Araki), вице-президент GREE, рассказал ресурсу Inside Mobile Apps о том, как можно зарабатывать на игре по $26 млн в месяц. Он поделился своей гипотезой, почему в Японии популярны именно социальные игры, и как подобной популярности можно добиться на американском рынке. Мы перевели его интервью для российских разработчиков мобильных игр на App2Top.ru и сделали специальную версию для Хабра.
Читать дальше →

Портирование игры для iOS на BlackBerry PlayBook

Reading time6 min
Views9.8K
Вы когда-нибудь думали о переносе своей игры для iOS на планшет BlackBerry PlayBook? Портировав свою игру Pop Corny, я хочу поделиться с вами некоторыми подробностями данного процесса.

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

UICloud: Самая большая база пользовательских интерфейсов

Reading time1 min
Views35K


UICloud — это база бесплатных пользовательских интерфейсов с поисковой системой, рейтингом и каталогизатором в которой собрано все от исходников в формате PSD, до готовых решений на HTML, CSS или jQuery: формы, слайдеры, кнопки, календари, элементы и полноценные интерфейсы для мобильных и веб приложений. В проекте уже сейчас можно найти практически все что нужно для облегчения процесса разработки дизайнерам и разработчикам.

На данный момент в базе 23586 элементов и почти тысяча UI-сэтов включающие в себя готовые решения в едином стиле. Проект создан Британской студией Double-J Design целью проекта является создание самой обширной UI базы.

Анализ Code Coverage для iOS и OS X проектов (xCode 4.4)

Reading time5 min
Views7.8K

Предисловие


Этот топик не ставит своей целью рассказать о code coverage, и о том, нужно это средство или нет. Также, не будет подниматься вопрос о целесообразности тестов в iOS проектах (положим, что они все-таки кому-то нужы, а значит есть).

Мотивация


Очень удобно, когда средства для профилирования/анализа встроены в IDE. История С code coverage в xCode не совсем безоблачная: во времена xCode 3.x и GCC все было просто и нужные ссылки и флаги компилятора гуглились на раз. C приходом xCode 4.1 все стало немного сложнее ввиду использования LLVM-GCC, приходилось идти на некоторые ухищрения (вплоть до сборки LLVM своими руками). А в 4.3 библиотеку libprofile_rt переместили в другую директорию, что тоже вызвало немало проблем.
Читать дальше →

Одно предложение, которое делает нас сильнее

Reading time2 min
Views93K
Это мой самый короткий топик, суть которого в одном предложении. Часто именно с этого предложения начинается успешный стартап, бизнес и любое другое начинание.

Это шаблон описания сути вашей компании или проекта в одном предложении. Я открыл его для себя во время стажировки в США. Составив его, мы реально становимся сильнее. В последствии мне это помогло выбрать правильный курс, сфокусироваться и расставить приоритеты.
Читать дальше →

Учим Python качественно

Reading time4 min
Views1.4M
Здравствуйте всем!

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

Удобочитаемый синтаксис, прост в обучении, высокоуровневый язык, Объектно-Ориентированый язык программирования (ООП), мощный, интерактивный режим, масса библиотек. Множество иных плюсов… И это всё в одном языке.
Для начала окунёмся в возможности и узнаем, что же умеет Python?
Читать дальше →

Падение Angry Birds

Reading time5 min
Views48K
В прошлом году я проводил вебинар, участие в котором возможно было только по приглашениям и каждый его участник подписывал NDA соглашение перед посещением. На этом вебинаре я рассказывал о текущем состоянии индустрии мобильных игр и о том, как независимые разработчики могут занять доминирующее положение.

В частности я представлял углубленный анализ Angry Birds VS Tap Pet Hotel и того, как премиальные игры за $0.99 оказались побеждены бесплатными играми. Теперь это звучит очевидно, но хочу напомнить, что это было 12 месяцев назад и во время этого вебинара Tap Pet Hotel было лишь несколько месяцев отроду. Многие люди на вебинаре на самом деле не понимали как работают социальные игры.

Магазины приложений прошли через два этапа. Второй этап завершился около 6 месяцев назад.

Этап 1 в монетизации приложений был обусловлен платными играми (по 0.99 за игру).

Этап 2 это «Free to play» и сейчас такие приложения правят магазином.


Этап 2 в жизни App Store: падение Злых Птиц



Никакая из игр серии Angry Birds сейчас не входит в Топ-50 самых прибыльных приложений на iPhone. Самой близкой к чарту является оригинальная игра на 52 месте:

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

Приложение СПС «Право.ru» для iOS — сложности разработки и пути их решения

Reading time3 min
Views3.7K
В мае 2010 года мы выпустили первый мобильный клиент справочно-правовой системы «Право.ru» для устройств на платформе iOS. На тот момент это было первое приложение, предоставляющее доступ к нормативным актам и иным официальным документам РФ. В декабре 2010 появилось приложение для iPad. Так и сегодня СПС «Право.ru» для iOS является лидером по количеству установок среди справочно-правовых систем. sofbix рассказал историю создания приложения, описал проблемы, с которыми столкнулся, и пути их решения.

Разработка


В процессе реализации СПС «Право.ru» для iOS мы столкнулись с некоторыми сложностями. Первая была в том, что СПС представлена большой базой документов, хранение которых на устройстве затруднительно. Может оказаться так, что на устройстве недостаточно места. При этом операционная система освобождает ресурсы приложений (в том числе и нашего) преимущественно за счет очистки кеша. Однако, документы, обновленные с веба, должны сохраняться в памяти мобильного устройства. И мы нашли оптимальное решение, при котором открытии таких документов происходит из закешированных данных, однако загруженные с веба документы будут гарантированно сохранены на устройстве без потерь при чистки кеша.

В чем же секрет? Как можно почистить кеш и при этом не потерять документы? Ответ в резервном копировании. Дело в том, что после каждого апдейта документов производится их автоматическое сохранение в zip файл (который «сжимает» текстовые данные до 10 раз). Zip сохраняется, и когда кеш будет очищен и понадобятся документы, хранимые локально, будет запущен механизм восстановления документов. Такая гибкая система позволяет оставлять данные на устройстве в сохранности, не захламля диск устройства.
Читать дальше →

Продаем себя сами

Reading time4 min
Views7.7K

От переводчика


Недавно на хабре появились первая и вторая части истории о создании Warcraft: Orcs & Humans, написанные Патриком Вайатом. Блог Патрика содержит не только воспоминания о былых днях, и сейчас вашему вниманию предлагается его статься о том, что нужно делать, чтобы всегда иметь возможность найти работу в сфере разработки ПО. Хоть Патрик говорит о рынке США, практически все применимо и к нашим современным реалиям.
Читать дальше →

Оптимизация графики для Retina-экранов

Reading time7 min
Views213K
После недавнего выпуска Retina MacBook Pro и The new IPad, экраны с увеличенной плотностью пикселей начали активно входить в нашу жизнь. Что это значит для веб-разработчиков?

Для начала разберемся в терминологии.

Физические пиксели


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

5 фактов о китайском рынке игровых приложений

Reading time2 min
Views13K
Генри Фонг (Henry Fong), исполнительный директор Yodo1, поделился с порталом Gamasutra своим видением китайского рынка игровых приложений. Сама Yodo1 помогает западным издателям выйти на рынок Поднебесной, который является одним из крупнейших iOS и Android рынков.

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

Я переучиваю людей на Java-программистов

Reading time8 min
Views135K

Когда я вижу друзей, которые вкалывают в два раза больше, а зарабатывают в четыре раза меньше, каждый раз начинается разговор:
— А ты бы не хотел поработать программистом? Ты же реально умный. Может ты просто не на своем месте?

В результате я переучиваю своих друзей и знакомых на программистов. Весь процесс занимает от двух до трех месяцев. 25 уроков по 4 часа. Потом все смогли устроиться программистами.
Эта статья не о том, как надо учить, скорее просто описание процесса, который работает.
Читать дальше →

Исследуем iOS SDK и используем недокументированные API

Reading time19 min
Views33K
Из этой главы, да и из всей этой книги понятно, что самые лакомые куски программирования под iOS включены в публичные фреймворки, но не в SDK. Неофициальная политика Apple насчет этого проста: вы можете всё это использовать, но только на свой страх и риск. Ваш код может сломаться при следующем обновлении прошивки. Вам самим придётся искать компромисс между риском и прибылью.

Erica Sadun, The iPhone Developer's CookBook
Оригинал
As you’ve seen in this chapter, and throughout this book, some of the nicest bits of iPhone programming are included in the public iPhone frameworks but not in the SDK. Apple’s unofficial policy on this is clear:You can use these items in your programs, but you do so at your own risk.Your code may break at each firmware release. Striking the balance between risk and reward is up to you.

Дисклеймеры


  • Приведенные здесь куски кода работают на обычных iPhone (включая 4S) и iPad (включая new iPad) и не требуют jailbreak.
  • Все решения написаны и протестированы на iOS 5. Все решения также протестированы на совместимость с iOS 4.3, т.е. работают с iOS 4, если не сказано обратное. Основная часть статьи была написана до выхода iOS 6, так что приведенные решения не тестировались на совместимость с iOS 6.
  • Использование недокументированных API может привести к тому, что ваше приложение не допустят в AppStore. А может и не привести :-)
    Для тех, кому интересно, как Apple опрделяет использование приваетных API:«Как Apple узнаёт, что ты используешь приватные API?»
  • Apple может изменить реализацию вместе со следующим релизом iOS, и в вашем коде что-то сломается. Впрочем, это решаемо, и ничем принципиально не отличается от реализации обратной совместимости для документированных API. Ниже я рассмотрел эту проблему чуть подробнее.
  • Я не могу гарантировать, что у найденных мной API нет побочных эффектов. Используйте на свой страх и риск.
  • Лицензионное соглашение Apple Developer Program запрещает реверс-инжинеринг iOS.
  • Статья в процессе доработки. Конструктивная критика приветствуется!

Краткая инструкция по поиску в SDK


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

Жизненный цикл UIViewController'a

Reading time10 min
Views157K
Большинство прикладных приложения под iOS таким или иным образом используют UIViewController'ы. Там где UIKit фрэймворк — там и UIViewController'ы. Их много, они повсюду, они сидят в засадах и выглядывают из-за каждого угла. Поэтому, любой программист под iOS — будь он зеленым новичком, едва ступившим на тропу программирования, либо матерым профессионалом своего дела, должны знать о UIViewController'aх все.

Причиной написания данной поста является то, что, как оказалось, можно преспокойно программировать под iOS полгода, и не знать полностью о жизненном цикле UIViewcontroller'ов. И на небольших проектах это даже получается. Однако, когда приходится иметь дело с серьезным, достаточно большим проектом, то появляются определенные проблемы с нехваткой памяти, «неправильной» и «непонятной» работой контроллеров, пропажей данных, и еще со многими типичными проблемами, о которых будет написано ниже.

Так вот. В данном посте, я еще раз расскажу о жизненном цикле UIViewController'ов, расскажу о том, что и где стоит делать, и в каком случае. Пост ориентирован на разработчиков разных уровней, так что кто-то узнает для себя что-то новое, а кто-то найдет повод отпинать моменты, на которые стоит обратить внимание Junior'ов в команде.

Всех заинтересовавшихся, прошу
под кат

8 успешных лет freelance'а, tips and tricks

Reading time9 min
Views34K
Доброго всем дня, вечера, здравствуйте, коллеги.

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

Я бы хотел рассказать об особенностях freelance-занятости для людей, которые никогда этим не занимались, но хотели бы иметь набор полезных советов, когда захотят попробовать. Приступать к какому-либо делу подготовленным — всегда хорошая идея.
Читать дальше →

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Works in
Date of birth
Registered
Activity