Pull to refresh
57
0
Павел@Tar

Ведущий программист

Send message

Можно ли верить своим глазам? (Unicode в именах файлов)

Reading time2 min
Reach and readers33K
Несколько дней назад один из наших пользователей прислал образец (SHA1: fbe71968d4c5399c2906b56d9feadf19a35beb97, определяется как TrojanDropper:Win32/Vundo.L). Это троян для фишинга с сайтов vk.com и vkontakte.ru, запросы на которые перенаправляются на 92.38.209.252 необычным способом.

Обычный метод перенаправления трафика — добавить запись в файл hosts, который находится в папке %SystemRoot%\system32\drivers\etc. Однако, когда мы открываем этот файл на заражённом компьютере, то там нет никаких записей для vk.com и vkontakte.ru:


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

Пьеса «Разработка многопользовательской сетевой игры.» Часть 2: Это страшное слово «протокол»

Reading time7 min
Reach and readers19K


Часть 1: Архитектура
Часть 3: Клиент-серверное взаимодействие
Часть 4: Переходим в 3D

Итак, продолжим создание многопользовательской игры.
Сегодня мы рассмотрим создание протокола передачи данных.
А также создадим заготовки TCP сервера и соответственно клиента.

Добро пожаловать в зрительный зал.

Blender 2.5: горячие клавиши

Reading time1 min
Reach and readers11K


Привет, дорогие друзья!

Доделал книженцию «Blender 2.5: горячие клавиши». Всем, кому интересно — качайте, распечатывайте.

За основу брал книгу Эндрю Прайса «Blender 2.5 cheat sheet».
Читать дальше →

Проверка кармы пользователя сайта habrahabr.ru с помощью Python на Android

Reading time2 min
Reach and readers26K
Я очень люблю язык программирования Python и так же люблю Android OS. Для меня было приятным открытием, что для этой ОС существует полноценный интерпретатор Python, но я постоянно откладывал знакомство с ним. В этой статье я хочу рассказать про основные принципы программирования на этом языке под эту ОС.

SL4A

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

2d на Unity3d

Reading time14 min
Reach and readers221K
В свое время, в начале разработки двухмерной игры на Unity3d, мне пришлось перерыть кучу документации, сайтов, проштудировать answers.unity3d.com и forum.unity3d.com на тему: как сделать 2d-игру на этом 3d-движке. Самыми первыми вопросами были: как правильно настроить камеру, как сделать 2d-спрайт так, чтобы он отображал текстуру «пиксель в пиксель». На то время уже существовал SpriteManager (далее – SM) и даже SM2 с его мощной поддержкой редактора. Судьба сложилась так, что я не мог его тогда купить, да и пробной версии не было. В итоге, мне пришлось самому написать несколько полезных скриптов для реализации 2d на Unity3d. О том, как это сделать, пойдет речь в этой статье.

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

NumPy, пособие для новичков. Часть 1

Reading time19 min
Reach and readers249K
NumPyLogoNumPy — это расширение языка Python, добавляющее поддержку больших многомерных массивов и матриц, вместе с большой библиотекой высокоуровневых математических функций для операций с этими массивами.

Первая часть учебника рассказывает об основах работы с NumPy: создании массивов, их атрибутах, базовых операциях, поэлементном применении функций, индексах, срезах, итерировании. Рассматриваются различные манипуляции с преобразованием формы массива, объединение массивов из нескольких и наоборот — разбиение одного на несколько более мелких. В конце мы обсудим поверхностное и глубокое копирование.
Читать дальше →

Физика на Flash. Создание Ragdoll в Nape на AS3

Reading time8 min
Reach and readers5.8K
image
Надо было сделать физику на флеше, но с одним маленьким нюансом. Необходимо было на сцене отобразить порядка 10 — 15 регдолов (для не незнающих. Регдол — это кукла. Имитация человеческого тела). Попробовав реализовать подобное на распространенном Box2D, пришел к неутешительному выводу, что Box2D это не под силу сделать. Немного погуглив нашел относительно новый движок Nape (). Который и решил в общем данную проблему.
К своему удивлению не нашел на хабре упоминаний Nape и решил описать начало работы с ним.
Под катом, описание создание регдола и примеры для сравнения на Box2D и Nape, а так же исходники примера.

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

Это должен знать каждый

Reading time3 min
Reach and readers83K
Спрос на Android-разработчиков весьма велик сейчас. Я решил подготовить список того, что нужно знать каждому разработчику под эту платформу. Это не только то, что вас могут спросить на собседовании, а весь спектр знаний, который скорее всего пригодится в работе. Бонусом идет пара интерсных вопросов про платформу.
Читать дальше →

Подробное руководство по установке Android-x86

Reading time3 min
Reach and readers263K
Эмулятор который идет в комплекте с Android SDK, не очень шустрый.
Основная идея использовать VirtualBox + Android X86, для преодоления проблем с производительностью.

Что нам необходимо:
Среда разработки Eclipse + Android SDK тут,
а также VirtualBox.

Под катом много картинок, и процесс установки, а также некоторые полезные советы.
Читать дальше →

Виджет со счетчиком непрочитанных сообщений

Reading time5 min
Reach and readers14K
Часто встречающаяся задача — создание виджета со счетчиком непрочитанных сообщений/звонков и т.п. Однако в Android нет стандартного класса для создания таких виджетов.

image

Как же все-таки создать такой виджет?
Читать дальше →

Ускоряем Visual Studio, часть II. Эксперименты с компиляцией

Reading time7 min
Reach and readers32K
Мой основной рабочий инструмент на протяжении вот уже 10 лет это Microsoft Visual Studio. Это прекрасная IDE (по крайней мере для С++ и С#), лучше которой для Desktop-разработки под Windows я не знаю. Тем не менее, общеизвестен один её недостаток — падение производительности на больших решениях. Я сейчас работаю над решением из 19-ти проектов (около 4к файлов, 350к строк кода). Компиляция и прочие издержки съедают изрядное количество времени. Именно поэтому я задался целью провести масштабное исследование путей повышения скорости работы Visual Studio, отделив мифы от реальности.

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

Пишем AddOn к World of Warcraft

Reading time7 min
Reach and readers101K
На хабре как-то писали о создании ботов к WoW, а вот статей о написании аддонов я не нашел и решил описать этот процесс на примере одной поделки, которую я писал когда-то давно, когда я был еще студентом и моего времени хватало на игру в World of Warcraft и создание аддонов к нему. С деньгами тогда было туго и играл я не на официальном сервере, а на одном из бесплатных, имеющем кучу недоделок, багов, фич и аномалий.


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

Я выложил аддон на Google Code и форум серевера и он стал достаточно популярным (как для пиратского сервера). Кому интересно, как делаются аддоны — велкам под кат.
Читать дальше →

Разбираем по кусочкам lincrackme3

Reading time3 min
Reach and readers3.3K
В отличие от Windows среда Linux не может похвастаться большим количеством разных трюков против отладки. Opensource и всё такое сыграли свою долю в этом. Среди дебаггеров
есть  gdb, но он очень легко обнаруживается простейшими техниками анти-отладки.

Соответственно не много известно протекторов способных сильно затруднить отладку бинарника, среди них можно вспомнить разве что 'shiva', но она уже давно «умерла».

Игрушкой сегодня для нас будет служить программка lincrackme3 с crackmes.de, она – не сложна и при этом,  в ней имеется несколько анти-отладочных трюков. Мы будем использовать  только дисассемблер – никаких отладчиков, ltracer-ов и тем более патчинга бинарника. Дисассемблером будет служить IDAPro 5.5.
Читать дальше →

Визуализация графов. Метод связывания ребер

Reading time7 min
Reach and readers59K
Иногда полезно представить граф в графической форме, так чтобы была видна структура. Можно привести десятки примеров, где это может пригодиться: визуализация иерархии классов и пакетов исходного кода какой-нибудь программы, визуализация социального графа (тот же Twitter или Facebook) или графа цитирования (какие публикации на кого ссылаются) и т.д. Но вот незадача: количество ребер в графе зачастую настолько велико, что нарисованный граф просто невозможно разобрать. Взгляните на эту картинку:



Это граф зависимостей некой программной системы. Он представляет собой дерево разбиения на пакеты (серые шарики — пакеты, белые — классы), на которое поверх наложены ребра зависимости одних классов от других. Чтобы не рисовать стрелки направления, ребра нарисованы в виде градиентных линий, где зеленый — это начало, а красный — конец ребра. Как видите, граф настолько визуально перегружен, что архитектуру программы невозможно проследить.
Под катом описание метода, решающего эту проблему.
Читать дальше →

Canvas шаг за шагом: ПОНГ

Reading time5 min
Reach and readers55K
Сегодня попробуем написать небольшую игру Понг используя html5 тег canvas. Те кто не хочет читать пост тот может сразу ИГРАТЬ.
Если верить Википедии, то можно узнать что Pong является простейшим симулятором настольного тенниса. Небольшой квадратик, заменяющий пинг-понговый мячик, двигается по экрану по линейной траектории. Если он ударяется о периметр игрового поля или об одну из нарисованных ракеток, то его траектория изменяется в соответствии с углом столкновения.
Геймплей состоит в том, что игроки передвигают свои ракетки вертикально, чтобы защищать свои ворота. Игрок получает одно очко, если ему удаётся отправить мячик за ракетку оппонента…

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

CANVAS шаг за шагом: Основы

Reading time6 min
Reach and readers567K
CANVAS шаг за шагом:
  1. Основы
  2. Изображения
  3. Понг
  4. Пятнашки

Если верить англо-русскому словарю, то можно узнать что canvas переводится как холст, а если верить википедии, то можно узнать что тег canvas, это элемент HTML 5, который предназначен для создания растрового изображения при помощи JavaScript. Тому как создать это растровое изображение и будет посвящен мой небольшой текст. Прежде чем начинать пробовать свои силы в этом не легком деле рекомендуется уже иметь базовые знания о том что такое HTML и с чем едят JavaScript.
Читать дальше →

Пишем приложение под Android с поддержкой Cloud to Device Messaging (C2DM)

Reading time15 min
Reach and readers36K


Здравствуйте, читатели Хабрахабр!

В данном посте я хочу уделить внимание сервису C2DM от компании Google и попытаюсь рассказать, как реализовать поддержку данного сервиса в вашем Android-приложении. Напомню, что C2DM — это специальный сервис, предоставляющий API для отправки сообщений приложениям, установленным на устройствах Android. Использование данного сервиса является незаменимым способом при необходимости передать сообщение пользовательскому приложению, зарегистрированному в системе, но не являющемуся на данный момент активным.

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

Под катом я расскажу, как написать простые клиентское и серверное приложения, покажу некоторые «подводные камни», а также дам ссылки на примеры кода.

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

О том, как я заставлял Ubuntu работать 10 часов от батареи

Reading time11 min
Reach and readers199K
imageЯ являюсь рядовым линукс-пользователем и поэтому не стоит от этой статьи ожидать очень умных ходов или нестандартных программистских решений. Все по мануалам. Но раз результат достигнут, значит кому-то кроме меня это может оказаться полезным.

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

Устанавливал я Ubuntu 10.10 на ноутбук Acer Aspire Timeline 5810TG. Эта машина обладает экраном в почти 16 дюймов и относительно производительным железом, зато батарея достаточно емкая, чтобы ставить с ней личные рекорды.
Читать дальше →

Unity 3d Tank Tutorial: Ходовая часть (Урок 2. Гусеничное шасси)

Reading time19 min
Reach and readers84K
Урок 1 <<

image

Вступление


Я продолжаю урок по сборке танка в домашних условиях. В предыдущем уроке вы узнали об основах управления транспортным средством на Unity, в этом уроке мы сделаем то что вы могли видеть в данном демо.

А именно: я расскажу о том как лучше смоделировать гусеничное шасси в 3d редакторе для того чтобы оно могло адекватно двигаться и реагировать на неровности ландшафта, также дам вам готовую модель которую вы можете видеть в демо, затем вы узнаете как все это дело оживить и привести в движение с помощью Wheel Collider’ов.
Читать дальше →

Анализ памяти для Android приложений

Reading time5 min
Reach and readers43K
В Dalvik есть сборщик мусора, но это не значит, что можно игнорировать управление памятью. Даже наоборот — нужно быть особенно внимательным при использовании памяти, которая, как известно, на мобильных устройствах ограничена. В этой статье будут рассмотрены инструменты, которые значительно помогают следить за тем, как приложение использует память.
Читать дальше →

Information

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