Pull to refresh
12
0
Artem Pankratov @Tranz

User

Send message

AndroidLost: удалённое управление утерянным смартфоном

Reading time3 min
Views182K
Никто не застрахован от утери мобильного устройства, которое ценно не только собственной стоимостью, но и содержащейся на нём информацией.
В этой статье я опишу функционал программы, которой я пользуюсь вот уже год на двух своих устройствах на базе ОС Android.

Поводом к написанию данной статьи стал комментарий хабраюзера Kapustos в статье Сотрудники Symantec потеряли 50 мобильников. Не находили?. Он просил посоветовать софт, функционал которого схож с описанным в статье. Подробности под хабракатом.

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

Сети для самых маленьких. Часть нулевая. Планирование

Reading time7 min
Views2.2M
Это первая статья из серии «Сети для самых маленьких». Мы с товарищем thegluck долго думали с чего начать: маршрутизация, VLAN'ы, настройка оборудования.
В итоге решили начать с вещи фундаментальной и, можно сказать, самой важной: планирование. Поскольку цикл рассчитан на совсем новичков, то и пройдём весь путь от начала до конца.

Предполагается, что вы, как минимум читали о эталонной модели OSI (то же на англ.), о стеке протоколов TCP/IP (англ.), знаете о типах существующих VLAN’ов (эту статью я настоятельно рекомендую к прочтению), о наиболее популярном сейчас port-based VLAN и о IP адресах (более подробно). Мы понимаем, что для новичков «OSI» и «TCP/IP» — это страшные слова. Но не переживайте, не для того, чтобы запугать вас, мы их используем. Это то, с чем вам придётся встречаться каждый день, поэтому в течение этого цикла мы постараемся раскрыть их смысл и отношение к реальности.

Схема сети

Начнём с постановки задачи. Есть некая фирма, занимающаяся, допустим, производством лифтов, идущих только вверх, и потому называется ООО «Лифт ми ап». Расположены они в старом здании на Арбате, и сгнившие провода, воткнутые в пожжёные и прожжёные коммутаторы времён 10Base-T не ожидают подключения новых серверов по гигабитным карточкам. Итак у них катастрофическая потребность в сетевой инфраструктуре и денег куры не клюют, что даёт вам возможность безграничного выбора. Это чудесный сон любого инженера. А вы вчера выдержали собеседование и в сложной борьбе по праву получили должность сетевого администратора. И теперь вы в ней первый и единственный в своём роде. Поздравляем! Что дальше?
Читать дальше →

Хранение паролей в Chrome

Reading time2 min
Views451K

Здравствуйте!

Не так давно у меня возникла идея о создании своей личной программы для бэкапа паролей Google Chrome. Да, в интернете очень много подобных программ, но результат паранойи (что пароли сливаются на чей то сервер «про запас»), да и желание узнать, чем дышит любимый браузер — перевесили чашу весов.

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

XNA Draw: пишем отложенное освещение на три источника с помощью шейдера

Reading time7 min
Views19K
Привет хабравчанам!

Давненько я не писал на хабр: учеба, сессия надвигается, сами понимаете. Сегодня я попробую рассказать, как в XNA реализовать Deferred Lighting (отложенное освещение) с использованием normal mapping на три источника света, при этом использовать мы будем Reach-профиль и Shader model 2.0.
Напомню, раньше мы уже затрагивали тему шейдеров: тут. Остальное под катом, видео и демо там же.
Читать дальше →

Алгоритм определения движения через сравнение двух кадров

Reading time4 min
Views21K
Здравствуйте, хабражители.
Хочу с вами поделиться своими наработками по обработке изображений. В последнее время занимаюсь написанием домашнего сервера под «умный дом» и начал с видеонаблюдения.
Задача оказалась не такой тривиальной. По поводу всего видеонаблюдения я напишу отдельно (если кому-то это интересно), а сейчас хотел бы затронуть тему «Алгоритм определения движения через сравнение двух кадров».
Этот алгоритм необходим для включения (выключения) записи видео с видеокамер.
Читать дальше →

Пять способов ускорить запросы API Facebook на практике

Reading time7 min
Views14K
Ни для кого не секрет, что самым узким местом веб-приложений чаще всего являются HTTP-запросы к внешним серверам. Так, время загрузки данных запроса API много больше чем время, необходимое для выполнения большинства самых сложных скриптов веб-приложения.

За время работы с API Facebook я накопил несколько рецептов оптимизации запросов: как увеличить скорость работы скриптов, уменьшить их количество и ресурсоёмкость.



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

12+ полезных Google Chrome chrome:// команд

Reading time2 min
Views400K
Все знают, что для того чтобы попасть в меню у Хрома, нужно нажать на Гаечный ключ в правом верхнем углу.

Однако есть несколько особенностей, которые не доступны из меню, которые вы можете увидеть только с помощью chrome:// команд.

Под катом приведены 12 самых полезных chrome:// команд, которые должны знать все.
Читать дальше →

Wanted! Старые хиты Эрика Липперта

Reading time3 min
Views1.3K
Если вы, вдруг не знали, то помимо всякой ерунды, публикуемой на этом блоге, я еще и занимаюсь переводом блога Эрика Липперта (Eric Lippert) Fabulous Adventures in Coding на русский язык. В русскоязычном варианте этот блог носит название Невероятные приключения в коде.

Занимаюсь я этим делом вот уже полтора года и не разу не пожалел потраченного времени. Я надеюсь, что чтение статей Эрика на русском языке доставляет хоть малую толику того удовольствия, которое я получаю при переводе!

Но сегодня я не об этом. Точнее не совсем об этом. Мы начали публиковать переводы, датированные апрелем 2009-го года, но, как это ни удивительно, до этого Эрик писал не менее часто и не менее интересно. Посему я предлагаю вернуться к его старым хитам и восстановить, так сказать, справедливость и перевести на русский язык и их.

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

13 бесплатных курсов Стэнфордского университета

Reading time2 min
Views72K
Недавно анонсированный бесплатный онлайн-курс Стэнфорда по основам искусственного интеллекта вызвал настоящий ажиотаж у публики. Заявки на регистрацию подали уже 81 966 человек. Оно и понятно: курс ведут Питер Норвиг и Себастьян Тран — настоящие звёзды. Первый раньше работал в НАСА и написал учебник по ИИ, а второй разрабатывает лучшие в мире роботизированные автомобили (для Google).

Очевидно, что качественное образование через интернет нужно людям и становится всё популярнее. Поэтому перед началом учебного года есть смысл напомнить список 13-ти бесплатных учебных курсов Stanford Engineering. В отличие от лекций Норвига и Трана, это не онлайновые, а старые курсы. В свободный доступ уже выложены видеозаписи всех лекций от первой до последней, PDF'ы с заданиями и другие материалы, но здесь нельзя задать вопрос преподавателю.
Читать дальше →

CSS хаки

Reading time4 min
Views126K
Браузеры и стандарты. Вечная погоня. Из-за несоответствий стандартам, из-за разных способов рендеринга страниц большая часть времени веб-дизайнера уходит на то, чтобы загладить эти несоответствия (использовать хаки). В итоге, вместо эффективной работы, дизайнер вступает в противоестественные отношения с браузерами, теряя драгоценное время.
Читать дальше →

Собрать проект Visual Studio в один файл с помощью ILMerge

Reading time3 min
Views107K
app.exe, d1.dll d2.dll = app.exeОбычно результатом компиляции проекта является сборка (assembly) проекта, а также его зависимости (Referenced Assemblies). Однако иногда нужно чтобы результатом был один файл единственный файл, независимый от других сборок. Например простая утилита, которую можно будет куда угодно скопировать и она будет работать.

Пример

Условно говоря после:
    compile App\App.csproj  
    dir App\bin\Release  
Получаются:
    App.exe
    dep1.dll
    dep2.dll
Нам же нужно лишь один самодостаточный
    App.exe 
То есть содержащий в себе dep1.dll и dep2.dll

На Хабре уже присутствует решение со встраиванием зависимостей в ресурсы, здесь я покажу как это сделать с помощью ILMerge и Post Build Event в Visual Studio.

читать как это сделать

10 способов улучшить свои навыки программирования

Reading time4 min
Views89K

1. Выучить новый язык программирования


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

Среди языков программирования отличный познавательный эффект и наверстывание опыта дают: Lisp (или Scheme), Форт, PostScript или Factor (стековые языки программирования), Haskell (строго типизированный, чистый функциональный язык) либо OCaml (объектно-ориентированный язык функционального программирования), Пролог (логическое программирование), Erlang (отличные паралельные вычисления).

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

Более чистая HTML-разметка в ASP.NET 4 Web Forms

Reading time6 min
Views7.6K
imageЭто шестнадцатая статья из серии, посвященной предстоящему выходу VS 2010 и .NET 4.

Сегодняшний пост первый из серии, рассказывающий о важных изменениях, которые мы произвели с Web Forms в ASP.NET 4 для генерации чистой, соответствующей стандартам CSS-дружественной разметки. Сегодня я расскажу о проделанной нами работе, для предоставления лучшего контроля над атрибутом “ID”, генерируемый серверными элементами управления для клиента.
Читать дальше →

Многопользовательский чат на BAT

Reading time3 min
Views22K
Был период, когда в универе задали сделать несколько чатов. В зависимости от вариантов, были заданы различные способы взаимодействия программ от сокетов до майлслотов (mailslot). Когда задания были прикончены, остались силы взяться за скрипты BAT. Вот что получилось…



Всё что нужно для запуска:
1. Взять код по ссылке в конце статьи
2. Сохранить код в файл *.bat
3. Положить файл в сетевую папку
4. Запустить файл с разных компов (можно и с одного)

В комментариях предложили использовать совместно с DropBox, но говорят — что работает весьма не быстро.
Читать дальше →

Подсчет объектов на бинарном изображении. Часть 2

Reading time6 min
Views9.9K

Аннотация


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

LogLog — находим число уникальных элементов

Reading time5 min
Views31K
Здравствуй, Хабр! Мы с тобой уже побаловались фильтрами Блума и MinHash. Сегодня разговор пойдёт о ещё одном вероятностном-рандомизированном алгоритме, который позволяет с минимальными затратами памяти определить примерное число уникальных элементов в больших объёмах данных.

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

Способ всем хорош, но требует относительно большой объём памяти для своей работы, ну а мы с вами, как известно, неугомонные гении эффективности. Зачем много, если можно мало — примерный размер словарного запаса упомянутого выше Шекспира, можно вычислить используя всего 128 байт памяти.

Кажется невозможным?

Настоящее понимание ViewState'а

Reading time30 min
Views63K
От переводчика: Это перевод статьи от одного из разработчиков ASP.NET, в которой подробно рассказывается о механизме управления состоянием страницы — ViewState'е. Несмотря на то, что статья написана в 2006 году, она до сих пор не потеряла своей актуальности.

ViewState — очень непонятное существо. Я попытаюсь положить конец всяческим кривотолкам, и постараюсь объяснить, как на самом деле работает механизм ViewState'а, от начала до конца, посмотрев на него с различных точек зрения.

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

Подборка генераторов CSS

Reading time2 min
Views50K


Не секрет, что писать CSS для многих стандартных кнопок, макетов, etc. бывает весьма лениво. Ниже представлена подборка генераторов CSS (и не только), которая, возможно, в некоторых случаях сможет упростить кому-то жизнь. Многими генераторами можно успешно пользоваться даже без глубоких познаний CSS.

(Осторожно! Много картинок)
Читать дальше →

Ускоряем базу данных веб-сайта

Reading time19 min
Views119K
Скорость загрузки веб-сайтов всегда была важной темой, но стала еще более актуальной с апреля 2010 года, когда Google стал учитывать её при ранжировании сайтов в поисковой выдаче. Однако, основной уклон, как правило, делался на уменьшении размера файлов, оптимизации параметров сервера, CSS и Javascript.
Также имеет место еще один немаловажный фактор. Это скорость, с которой веб-страницы формируются на сервере. Большинство крупных современных сайтов хранит всю информацию в базах данных и используют различные языки (например, PHP или ASP) для её извлечения, формирования HTML-страницы и отправки её браузеру.
Читать дальше →

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

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



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

Information

Rating
Does not participate
Location
Warsaw, Warszawa, Польша
Date of birth
Registered
Activity