Как стать автором
Обновить
36
0
Марат Гилязов @MaratGilyazov

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

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

Способы «защиты» flash-приложений

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

Здравствуйте. Я попытаюсь рассказать о нескольких способах защиты от исследования кода, мошенничества и воровства, используемых при разработке flash-приложений, а также о том, как можно обойти некоторые из них.
Стоит заметить, что сейчас существует немало отличных презентаций и работ на эту тему (см. ссылки в конце статьи), однако, я бы хотел немного подробней расписать некоторые нюансы, и объединить множество информации по теме в одном месте. По крайней мере, я постараюсь это сделать.
Читать дальше →
Всего голосов 119: ↑109 и ↓10+99
Комментарии33

Как не нужно писать большие сервера

Время на прочтение8 мин
Количество просмотров104K
Те, кто мог видеть мою прошлую статью (а она довольно related к данной теме), знают, что вот уже больше полутора лет я разрабатываю собственную реализацию сервера Minecraft, рассчитанную, в первую очередь, на высокие нагрузки. Тем не менее, в своей работе мы используем так же и стандартный сервер (Bukkit) для нескольких мини-серверов, просто чтобы было разнообразие. И вот, столкнувшись с очередной версией сервера, которая стала раз в 5 хуже предыдущих, я уже не выдержала, и решила написать эту статью.

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

Вам не нужно знать ничего о майнкрафте и особенно о его сервере, в данной статье я хочу просто рассказать, как работает оригинальный сервер Minecraft, а так же его «обвязка» — Bukkit, рассказать, почему такая система не работает и не должна. Я не претендую на идеальные знания о разработке серверов и не утверждаю, что мой сервер написан правильно и лучше всех. Я просто делюсь своим опытом, основанным на двух годах работы с сервером от всем известной Mojang и на полутора годах разработки своего сервера. Вся представленная здесь информация является моим личным мнением, а статья предназначена для расширения кругозора или даже обучения и может быть интересна как новичкам, так и продвинутым профессионалам.
Читать дальше →
Всего голосов 175: ↑135 и ↓40+95
Комментарии271

Как преуспеть со своим мобильным приложением

Время на прочтение16 мин
Количество просмотров36K
Большинство приложений провальны. Эта жестокая реальность приводит многих разочарованных разработчиков к заключению, часто подсознательному, что преуспевание в App Store — всё равно, что разбогатеть на «золотой лихорадке»: нужно быть чертовски удачливым.

image

Идея «удачи» — опасное успокоительное средство, облегчающее боль неудачи. А боль — это хорошая вещь. Она показывает, что что-то идёт не так. Если моё приложение потерпело крах, я хочу знать почему. Вместо того, чтобы обвинять мироздание, почему бы не посмотреть, что ребята из tap tap tap и Tapbots делают для того, чтобы снова и снова достигать успеха.

Несмотря на то, что безупречное следование этой формуле невозможно, работа в этом направлении резко увеличит ваши шансы на успех. Эти принципы выработаны для iOS, но многие из них могут быть применены и для других платформ.
Читать дальше →
Всего голосов 65: ↑54 и ↓11+43
Комментарии9

Как мы автоматизировали тестирование приложений на canvas

Время на прочтение9 мин
Количество просмотров11K
Мои коллеги уже писали о разработке онлайн редакторов TeamLab на canvas. Сегодня посмотрим на рабочий процесс глазами специалистов по тестированию, ведь не только продукт с точки зрения разработчиков был инновационен благодаря выбранной технологии, но и задача проверки качества продукта оказалась новой, ранее никем еще не решаемой.
Читать дальше →
Всего голосов 24: ↑19 и ↓5+14
Комментарии9

Как два программиста хлеб пекли

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


Я работаю программистом уже много лет, на протяжении которых, как это ни странно, я всё время что-то программирую. И вот какую интересную вещь я заметил: в коде, написанном мной месяц назад, всегда хочется что-то чуть-чуть поправить. В код полугодичной давности хочется поменять очень многое, а код, написанный два-три года назад, превращает меня в эмо: хочется заплакать и умереть. В этой статье я опишу два подхода. Благодаря первому архитектура программы получается запутанной, а сопровождение — неоправданно дорогим, а второй — это принцип KISS.

Итак, представим себе, что есть два программиста. Один из них умный, прочёл кучу статей на Хабре, знает каталог GoF наизусть, а Фаулера — в лицо. Другой же делает всё просто. Первого будут звать, например, Борис Н., а второго — Маркус П. Само собой, имена вымышленные, и все совпадения с реальными людьми и программистами случайны.

Итак, к ним обоим приходит проектный менеджер (если в вашей вселенной PM не ходит сам к программистам, назовите его как-то иначе, например BA или lead, сути это не изменит) и говорит:
— Ребята, нам нужно, чтобы делался хлеб.

Именно так, «делался», без уточнения способа производства.

Как же поступят наши программисты?
Читать дальше →
Всего голосов 380: ↑348 и ↓32+316
Комментарии328

Изучить Github за 15 минут

Время на прочтение1 мин
Количество просмотров127K
TryGit — интерактивный обучающий курс по Github в стиле Codecademy. Курс состоит из 25 мини-уроков, которые знакомят пользователя с базовыми понятиями и основными командами git, при этом ученик своими руками вводит команды в консоль, смотрит результат и читает сопровождающие надписи с объяснением происходящего.



Вот таким в будущем должно стать обучение в школах!

Конечно, 15-минутное введение не заменит полноценного учебника. Для обучения можно рекомендовать бесплатную книгу Pro Git и видеокурс Getting Git.
Всего голосов 173: ↑155 и ↓18+137
Комментарии56

Как устроена apache cassandra

Время на прочтение13 мин
Количество просмотров232K
Кассандра
В этом топике я хотел бы рассказать о том, как устроена кассандра (cassandra) — децентрализованная, отказоустойчивая и надёжная база данных “ключ-значение”. Хранилище само позаботится о проблемах наличия единой точки отказа (single point of failure), отказа серверов и о распределении данных между узлами кластера (cluster node). При чем, как в случае размещения серверов в одном центре обработки данных (data center), так и в конфигурации со многими центрами обработки данных, разделенных расстояниями и, соответственно, сетевыми задержками. Под надёжностью понимается итоговая согласованность (eventual consistency) данных с возможностью установки уровня согласования данных (tune consistency) каждого запроса.

NoSQL базы данных требуют в целом большего понимания их внутреннего устройства чем SQL. Эта статья будет описывать базовое строение, а в следующих статьях можно будет рассмотреть: CQL и интерфейс программирования; техники проектирования и оптимизации; особенности кластеров размещённых в многих центрах обработки данных.
Дорогу осилит идущий...
Всего голосов 77: ↑75 и ↓2+73
Комментарии35

Полное видео-руководство о сборе информации для проектирования

Время на прочтение2 мин
Количество просмотров21K
Сегодня в рынке потихоньку-полегоньку приживается идея проектирования для интернет-ресурсов, но идея исследования аудитории в рамках проектирования приживается хуже. На Хабре была опубликована пара статей на эту тему:

Мы любим «затачивать пилу» и улучшать наши навыки, поэтому мы пригласили в гости Александра Туника (altunik), автора этих статей и руководителя проектной студии «Тектоника», провести у нас в компании курс лекций, посвящённых именно исследованию контекста и аудитории, необходимому для проектирования сайтов.

В результате получился очень интересный и объёмный набор обучающих материалов, которыми мы, по договорённости с Александром, открыто делимся. Под катом — тезисы, видеозаписи и слайды с трёх семинаров.
4 часа видео? Да вы с ума сошли!
Всего голосов 22: ↑20 и ↓2+18
Комментарии5

“АвтоУскорение”: как попасть без денег в Топ-100 Google Play и что делать дальше?

Время на прочтение10 мин
Количество просмотров35K
Все началось 19 мая 2011 года, когда друзья на день рождения подарили мне новенький смартфон Google Nexus S. До этого я долгое время я работал программистом, потом специфика моей деятельности поменялась, но «руки то помнят». Поэтому я сразу задумал что-нибудь запрограммировать для моего нового классного смартфона, и написал приложение Авто-ускорение. Сегодня хочу рассказать, что я узнал, понял и сделал за два месяца с момента старта.
Читать дальше →
Всего голосов 60: ↑49 и ↓11+38
Комментарии46

Почему нельзя превращать прототип в итоговую программу

Время на прочтение2 мин
Количество просмотров43K
Всем привет! Сколько уже статей было про говнокод, но я считаю, их поток нельзя сокращать, потому как поток говнокода только увеличивается.
Внимание: статья полна субъективизма и сюрреализма. Автор не претендует на истину в последней инстанции
Очень часто, создавая новое приложение, программу, веб-сайт, мы сначала экспериментируем, а затем создаем из наших экспериментов конечный продукт.
Но дайте ответ на следующие вопросы не задумываясь:
  1. сколько раз, получая исходники от других разработчиков, вы находили их крайне непривлекательными?
  2. сколько раз, передавая исходники другим разработчикам вам было стыдно за свой код?

Мои ответы: постоянно, довольно часто.
Почему так происходит?


Давайте попробуем разобраться
Всего голосов 123: ↑71 и ↓52+19
Комментарии147

Изучение Node.js от начала до конца на практике. Часть 1

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

Предыстория


Различной документации по Node.js его модулях огромное количество, всякого рода готовых решений тоже хватает, но начав писать сайт сталкиваешься с проблемой: «А с чего начать?». Хочу вам рассказать свой опыт изучения Node.js на практике. Задача стоит довольно простая и понятная — GPS Трекер с интернет сервисом, отображающим наши передатчики на карте, рисующим маршрут перемещения и т.д., на сколько разгуляется фантазия. Проект не коммерческий и пишется во благо человечества для себя.
Читать дальше →
Всего голосов 71: ↑63 и ↓8+55
Комментарии33

Идеальный видеорегистратор

Время на прочтение11 мин
Количество просмотров31K
1350172185-clip-28kb

Примерно 2 месяца назад я описал своё видение «идеального видеорегистратора для автомобиля» и, даже, отправил его всем ведущим российским разработчикам подобных устройств. Ответа удостоился только от одного, остальные промолчали. Чтобы добру не пропадать, а, заодно и дать тему для обсуждения (вдруг, это волнует еще кого-то, кроме меня?: о) я решил опубликовать текст этого документа здесь.
Подходящего топика я найти не смог, потому пускай висит в «Я пиарюсь», а там — на усмотрение модераторов.
Читать дальше →
Всего голосов 81: ↑55 и ↓26+29
Комментарии189

Женщины и игры. Ключевые моменты

Время на прочтение6 мин
Количество просмотров17K
Голая баба. Шутка :)Основной характеристикой игрового продукта является охват аудитории, чем он больше, тем больше потенциальная возможность получить высокие прибыли. Долгое время игровой аудиторией были мужчины, но время идёт и теперь взоры разработчиков игр направлены на перспективную женскую аудиторию.

В этой статье я расскажу о своих наблюдениях и исследованиях женской психологии применительно к играм, будут выделены ключевые моменты и опровергнуты некоторые предубеждения.
Читать дальше →
Всего голосов 85: ↑74 и ↓11+63
Комментарии80

Концепция web-проекта или почему мы убиваем свои идеи?

Время на прочтение7 мин
Количество просмотров56K
Ежедневно десятки людей загораются идеей создать нечто своё, реализовать свой web-проект. В большинстве случаев все эти начинания ни к чему не приводят. Как не удивительно, основной причиной провала проекта служит отсутствие или недоработаность концепции.
В этой статье рассмотрены анализ успешности «зелёных» web-проектов, причины их провалов и методика написания концепции проекта. Статья рекомендуема для прочтения всем людям, решившим создать свой web-проект впервые.
Читать дальше →
Всего голосов 159: ↑128 и ↓31+97
Комментарии131

N+1 полезных книг о бизнесе

Время на прочтение9 мин
Количество просмотров230K
В топике блиц-обзор книг, которые будут полезны IT-специалистам, бизнесменам и тем, кто собирается открыть своё дело. Рядом с каждой — короткие пояснения, почему и зачем стоит прочесть.

Отобраны лучшие 10% из примерно 200 прочитанных книг о маркетинге, продажах и всем связанном — самые «пробивные» вещи, которые помогут вам не тратить время на всякий шлак, а сразу начать с главного.

В конце — суммация книг, которые хабровчане рекомендуют в комментариях помимо основного списка.

Читать дальше →
Всего голосов 148: ↑137 и ↓11+126
Комментарии131

N+2 полезные книги для бизнеса, которые обязательно стоит прочитать

Время на прочтение5 мин
Количество просмотров96K
В прошлом году я делал обзор книг, на которых реально растут люди и реально улучшаются процессы.



Тогда понадобился год, чтобы прочитать в десять раз больше бумаги и сделать выборку, которая оказалась неожиданно полезной многим. Вот результаты ещё одного года — ещё N+2 книги для бизнеса, которые реально помогают.

Читать дальше →
Всего голосов 118: ↑106 и ↓12+94
Комментарии43

Инспекция кода. Итоги

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


Инспекция кода — это хорошо. Мы используем эту технику в своих проектах не так давно — около трех месяцев, — однако положительные результаты налицо. Мы уже рассказывали на Хабре о внедрении инспекций в процесс разработки, о документообороте при инспекциях, рассказывали о том, как можно оптимизировать процесс инспектирования с помощью инструмента Code Collaborator. Сегодня мы хотим подвести итоги и представить результаты, которых нам удалось достичь за время инспектирования. Поехали!..
Читать дальше →
Всего голосов 54: ↑52 и ↓2+50
Комментарии27

В пень free-lance.ru!

Время на прочтение4 мин
Количество просмотров639K
В связи с прочтением соседнего поста предлагаю перечислить список бирж, на которых можно найти альтернативу тому унылому говну, в которое превратился free-lance.ru, ибо терпеть планомерный геноцид я больше не намерен.
Читать дальше →
Всего голосов 338: ↑320 и ↓18+302
Комментарии171

Стабилизируем PHP на бою — что и почему «роняет» веб-сервер

Время на прочтение7 мин
Количество просмотров80K
Вы отвечаете за стабильность работы веб-проекта на PHP. Нагрузка постоянно растет, добавляются фичи, клиенты довольны. В один прекрасный день начинают появляться загадочные ошибки…

Ошибки серверного софта


… которые программисты не знают как исправить, т.к. «ломается» серверный софт, например связка apache-PHP — а клиент получает в ответ на запрос страницу о регламентных работах. Веб-разработчик часто не обладает глубокими знаниями в программировании на C в unix/linux, а сисадмин нередко, к сожалению, глубже bash в систему не погружается. Настоящий хардкор :-)

Нестабильная работа серверных скриптов


Нередко, определенные страницы веб-проекта начинают сходить с ума. Например выполняться по 15 минут и выяснить, чем же они занимаются, непросто. В прошлом посте на данную тему я описал одну из методик определения, чем занимается PHP-скрипт на боевом сервере, но чувствуется, что нужен более мощный инструмент.

На практике я часто встречаю проекты, которые сталкиваются с подобным классом ошибок «серверного софта», и в команде не всегда знают, что делать. В логе apache часто появляются сообщения о нарушении сегментации (segmentation fault), клиенты получают страницу об ошибке, а веб-разработчик с сисадмином ломают себе голову, играются с разными версиями PHP/apache/прекомпилятора, собирают PHP из исходников с разными опциями снова и снова, пишут о багах, а им доказывают, что это баги не PHP, а их кода и так до бесконечности…

В статье я хочу рассказать как можно просто и быстро найти причину, почему PHP рассыпался на боевом сервере и устранить ее — не погружаясь в прекрасный мир системного программирования на C для unix :-) От вас потребуется желание и одна чашечка кофе.

Читать дальше →
Всего голосов 119: ↑98 и ↓21+77
Комментарии72

TypeScript: язык для разработки больших приложений на JavaScript

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


Microsoft представила язык программирования TypeScript, который является надмножеством JavaScript, поддерживает статическую типизацию, модули, определение классов и интерфейсов. TypeScript транслируется в чистый JS, исполняется в любых браузерах, в Node.js и т.д.

Транслятор TypeScript вышел под лицензией Apache 2.0, с исходниками на CodePlex. Microsoft предлагает плагины для Emacs, Sublime Text и Vim.
Читать дальше →
Всего голосов 95: ↑81 и ↓14+67
Комментарии140

Информация

В рейтинге
Не участвует
Откуда
Санкт-Петербург, Санкт-Петербург и область, Россия
Дата рождения
Зарегистрирован
Активность