Как стать автором
Обновить
0
0

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

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

FishHunter — смарт-эхолот для зимней рыбалки. И не только

Время на прочтение2 мин
Количество просмотров6.7K
Эхолот — не новое изобретение, которое служит для анализа рельефа дна, и в создании таких девайсов «замечены» многие производители. Тот же Garmin, например с ценниками и по 40, и по 100 тысяч рублей.

При этом, и Garmin, и его конкуренты, типа Rivotek, Piranha, Humminbird и другие (их достаточно много) представляют собой «двухчастную» конструкцию: гидролокатор и приемник-экран, на который и выводятся данные «со дна морского».

С поправкой на время такие эхолоты начинают теснить гаджеты с приставкой «смарт-», среди которых также есть, где разгуляться: Ibobber, Deeper, Vexilar.



И Fish Hunter — девайс, с которым мы познакомим вас сегодня.
Читать дальше →
Всего голосов 13: ↑10 и ↓3+7
Комментарии4

Генерируем PDF-файлы в веб-проекте: программа wkhtmltopdf

Время на прочтение4 мин
Количество просмотров35K
При работе над веб-проектом иногда возникает необходимость генерировать PDF-файлы с большими таблицами: прайс-листы на тысячи позиций. Нашлись разные библиотеки для генерации PDF-файла из PHP-скрипта:

• FPDF
• MPDF — основанная на FPDF библиотека, позволяющая генерировать pdf-файл из любого html-кода
• DOMPDF
• TCPDF

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

Дальнейший поиск помог найти программу wkhtmltopdf. Сайт программы: http://wkhtmltopdf.org.
Читать дальше →
Всего голосов 15: ↑10 и ↓5+5
Комментарии31

12 игр, которые обучают детей программированию

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


Программирование сейчас очень популярно. По всему миру 36 миллионов детей принимают участие в мероприятиях движения «Час программирования». Цель этих мероприятий – помочь детям стать активными, а не пассивными пользователями технологий, а также получить знания, которые в будущем могут помочь устроиться на хорошую работу в нашем все более и более техническом мире.

Даже если ваши дети не хотят в будущем зарабатывать на жизнь программированием, базовое понимание принципов программирования развивает мышление и, в дальнейшем, ребенок лучше справляется с решением возникающих задач. Билл Гейтс когда-то сказал: «Если вы учитесь создавать программы, это развивает ваш разум, помогает вам лучше мыслить и создает образ восприятия вещей. В целом, я думаю, что человеку это будет полезно вне зависимости от сферы его деятельности».

Такие платформы, как Scratch и Alice позволяют детям (и взрослым) создавать собственные игры и анимации, используя упрощенные методы программирования. Однако не всем детям это интересно. И вот для таких детей существует множество игр, которые обучают базовым принципам программирования в веселой и доступной форме.

Читать дальше →
Всего голосов 61: ↑58 и ↓3+55
Комментарии32

Vagrant для малышей, или как на Windows легко получить настроенный сервер для разработки веб-приложений

Время на прочтение9 мин
Количество просмотров196K
Здравствуй, мой дорогой любитель поработать с Composer'ом, создавая свой очередной крутой проект на одном из модных фреймворков. Или, быть может, ты — фронтэнд-мастер, пишущий сложные штуки на JS и CSS, компилируя их из jsx- и less-файлов, устанавливая библиотеки через Bower, а проект собирая в каком-нибудь Grunt, попутно прогоняя код юнит-тестами и, конечно же, заливая потом всё это на github… Если всё это — часть твоей повседневной жизни, то хвала Всевышнему, поздравляю: ты прошел все эти испытания и даже не сломал себе мозг. Отныне, ты — из числа тех счастливых, потративших не одну неделю, разбираясь в том, как корректно настроить всю эту кучу инструментов, а также, ты — один из тех, кто может доминировать, властвовать и унижать блистать своими знаниями в комментариях Хабра к статьям других, менее проворных и смышлёных коллег по цеху…

Но… быть может, ты — лишь один из тех, кто только мечтает о подобных извращениях манипуляциях мастеров разработки современных веб-приложений?) Тогда я спешу обрадовать тебя: я тут на днях узнал пару полезных вещей и понял, что это — настоящий подарок для начинающих разработчиков. И решил написать эту статью.
Читать дальше →
Всего голосов 20: ↑17 и ↓3+14
Комментарии40

Визуализируй это

Время на прочтение10 мин
Количество просмотров83K
Несколько лет назад я делал сайт о рыбалке и публиковал на нём карту окресностей города, отмечая интересные места. Я так увлёкся картами, что и сегодня занимаюсь дизайном геосервисов, а на досуге экспериментирую с картографическими визуализациями. Недавно я визуализировал статистику работы московского велопроката, а ранее опубликовал высотную модель города в виде разноцветной сетки улиц.

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


Дома в центре Москвы разного цвета в зависимости от площади здания.
Данные: © Участники OpenStreetMap


О дизайне в картографии я уже рассказывали ещё буду рассказывать, ведь об этом можно рассказать много интересного. В этой истории, речь пойдёт не про традиционные карты.

Я задумал собрать что знаю про картографические визуализации и рассказать об этом. В итоге, у меня получился онлайн-курс «Визуализация геоданных»  —  серия мини-лекций об общих принципах и инструментах для работы с геоданными. К каждой части я собрал ссылки на дополнительные материалы и примеры рабочих файлов, чтобы можно было погрузиться в детали и попробовать что-то сделать самостоятельно. Этот пост собран из материалов курса.
Читать дальше →
Всего голосов 79: ↑78 и ↓1+77
Комментарии25

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

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


Разработка электроники на базе GPS/ГЛОНАСС-технологий — одна из наших любимых тем на Хабре. Мы уже писали обзорную статью на эту тему, рассказывали про систему «ЭРА-ГЛОНАСС» и даже определяли своё местоположение по сетям сотовой связи.

В этот раз наш пост призван дать ответ на конкретный практический вопрос: «Как уменьшить объем потока данных с навигационно-связных терминалов без потери информативности?». Эта тема весьма актуальна, ведь услуги беспроводной связи составляют значительную часть финансовых затрат на обслуживание систем мониторинга транспорта.

Для начала давайте посмотрим, что представляет собой тракт подготовки и сбора информации на терминалах перед отправкой данных на сервер.
Читать дальше →
Всего голосов 38: ↑34 и ↓4+30
Комментарии24

Оптимизация OSX для работы с SSD

Время на прочтение3 мин
Количество просмотров114K
Про замену сидирума на SSD писать нет смысла, думаю все и так уже в курсе как это сделать. Слава богу, про это написано не мало статей (тыц, тыц).
image
А вот как правильно настроить систему для работы с HDD и SSD знают далеко не все.
Читать дальше →
Всего голосов 39: ↑31 и ↓8+23
Комментарии80

Самостоятельный апгрейд Macbook pro (mid 2010)

Время на прочтение4 мин
Количество просмотров79K
Macbook proСлучилось мне опрокинуть свой макбук с двух метровой высоты прямо ребром об асфальт, причем именно той стороной, с которой расположен жесткий диск — разумеется по непонятным мне причинам ноут стал жутко тормозить. Изначально я не придал этому особого значения, так как это был первый Мак в моей жизни, и я не знал, как они должны работать на самом деле. «Ну притормаживается, и что, тоже мне проблема» думалось мне до тех пор, пока не увидел как работает Макбук у моего друга. Причем у него-то белый пластиковый прошлого поколения, а у меня хваленый i7 с 4 гигами оперативки. Тут-то до жирафа и дошло, то что-то тут не так и надо бы его отвезти питомца в сервис центр.
Обследование показало, что диск убит неплохо (думаю никого не удивлю тем фактом, что от удара головки поцарапали диск) и как он вообще все это время работал сервис-техника немного удивило. Мне поставили новый хард на 750 гигов, а я технику поведал о том, как не замечал тормозов и т.д. Коснувшись темы производительности он спросил меня, а почему мол не выжимаю из системы максимум? "– Проц хороший, ноут не древний, можно было бы в пару раз производительность-то поднять, а?" Я призадумался…
Читать дальше →
Всего голосов 3: ↑2 и ↓1+1
Комментарии11

Программиста из Германии осудили на 3 года и 10 месяцев

Время на прочтение1 мин
Количество просмотров2.7K
Сегодня Земельный суд Лейпцига приговорил 29-ти летнего программиста портала kino.to к 3 годам и 10 месяцам тюремного срока за массовое нарушение авторских прав. Срок был снижен, так как программист сотрудничал с полицией. Ранее уже осудили четверых, ещё 8 причастных к сайту лиц ожидают решения суда, всем им грозит до 5 лет тюрьмы. Всего было арестовано 13 из 26 членов команды сайта.
image
Читать дальше →
Всего голосов 114: ↑106 и ↓8+98
Комментарии167

SSD и HDD в теле одного MacBook Pro

Время на прочтение4 мин
Количество просмотров163K
Приветствую, уважаемые хабражители.

Мой опыт, которым я хочу с вами поделиться, должен оказаться полезным для всех пользователей ноутбуков, хотя мой частный пример — MacBook Pro.

После покупки сего агрегата, с порядковым номером в линейке: 6.1, я ожидал невиданных ранее скоростей, но, увы, предательская каруселька перегрузки, на месте курсора > image появлялась достаточно часто, заставляла себя ждать, мучила вопросом «как так?!» при этом скорость загрузки тотально укомплектованной операционной системы составляла примерно 2+ минуты, с загрузкой 5-и приложений (различной тяжести) на автозапуске.

Такие показатели + периодические подвисания оказались досадным и обидным заключением, ведь под капотом процессор i7 / 4Gb DDR3 / 5 Series Chipset с возможной скоростью обмена данными в 3 гигабита.

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

Добро пожаловать под хабракат, там сказ о эффективном разгоне моего инструмента.
Всего голосов 113: ↑94 и ↓19+75
Комментарии185

Визовая политика

Время на прочтение1 мин
Количество просмотров15K
Лето на исходе, а в отпуске еще не был. Решил посмотреть, куда можно поехать, не напрягаясь получением виз. Хотелось чего-то простого и наглядного. Не нашел. Пришлось сделать. JavaScript + LeafLetJS + из википедии загрузил данные для граждан Украины и России. Если кто-то знает хороший ресурс для Белоруссии, Грузии и других русскоязычных регионов — дайте знать — добавлю.
Читать дальше →
Всего голосов 78: ↑59 и ↓19+40
Комментарии52

Application Porno или как найти секреты в мобильных приложениях и вынести всё

Время на прочтение5 мин
Количество просмотров54K
В новостной ленте я недавно обнаружил любопытное исследование, где ребята скачали и распарсили Android Playmarket, проанализировали сотни тысяч приложений на предмет наличия зашитых секретных токенов и паролей.

То что результат их работы касался только анализа декомпилированного кода под Android, cподвиг меня написать про исследование, которое я проводил еще год назад, причем не только для Android, но и для iOS приложений, и которое, в итоге, вылилось в целый online-инструмент, о котором я расскажу в самом конце, когда станет очевиден его смысл. Часть написанного ниже была представлена на конференции ZeroNights и на страницах журнала «Хакер». (Т.к. материал не был опубликован онлайн, редакция дала на «добро», на публикацию здесь). Итак, поехали.
Читать дальше →
Всего голосов 99: ↑92 и ↓7+85
Комментарии38

Синхронизация в Android приложениях. Часть первая

Время на прочтение6 мин
Количество просмотров63K
image
На дворе 2014 год, доля Android JellyBean перевалила за 60%, появились новые тренды в дизайне. В общем, случилось много всего интересного. Но синхронизация данных с сервером осталось неотъемлемой частью большинства приложений. Существует много способов реализации ее в приложении. Android предоставляет нам SyncAdapter Framework, который позволяет автоматизировать и координировать этот процесс и предоставляет множество плюшек в довесок.

Account


Для начала нам потребуется собственный аккаунт на устройстве. Сначала, я думаю, стоит ответить на вопрос, зачем? Действительно, зачем?

Краткое резюме преимуществ:
  • Поддержка фоновых механизмов вроде SyncAdapter
  • Стандартизация способа авторизации
  • Поддержка различных токенов (прав доступа)
  • Шаринг аккаунта с разграничением привилегий (возможность использовать один аккаунт для различных приложений, как это делает Google)

Шаги для получения плюшек:
1) Создание Authenticator'а
2) Создание Activity для логина
3) Создание сервиса для общения с нашим аккаунтом

Читать дальше →
Всего голосов 52: ↑51 и ↓1+50
Комментарии12

Signed Distance Field или как сделать из растра вектор

Время на прочтение12 мин
Количество просмотров60K
Речь сегодня пойдёт о генерации изображений с картой расстояний (Signed Distance Field). Данный вид изображений примечателен тем, что фактически позволяет получить «векторную» графику на видеоускорителе, причём даром. Одной из первых данный метод растеризации предложила компания Valve в игре Team Fortress 2 для масштабируемых декалей в 2007 году, но до сих пор он не пользуется особой популярностью, хотя позволяет рендерить прекрасного качества шрифты, используя текстуру всего 256х256 точек. Данный метод прекрасно подходит для современных экранов высокой чёткости и позволяет серьёзно сэкономить на текстурах в играх, он не требователен к железу и прекрасно работает на смартфонах.



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

Как же создавать такие изображения? Очень просто, ImageMagick позволяет сделать это одной командой:

convert in.png -filter Jinc -resize 400% -threshold 30% \( +clone -negate -morphology Distance Euclidean -level 50%,-50% \) -morphology Distance Euclidean -compose Plus -composite -level 45%,55% -resize 25% out.png

На этом можно было бы поставить точку, но так полноценного топика не получится. Что ж, под катом — описание быстрого алгоритма расчёта SDF, пример на C++ и немного шейдеров для OpenGL.
Читать дальше →
Всего голосов 115: ↑113 и ↓2+111
Комментарии61

Popcorn Time: самая удобная программа для просмотра торрентов

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


«Popcorn Time настолько хорош в пиратстве фильмов, что это пугает», — пишет журнал Time о новой open source программе Popcorn Time, бета-версия которой вышла несколько дней назад сразу для Linux, Windows 7+ и OS X 10.7+.
Читать дальше →
Всего голосов 160: ↑148 и ↓12+136
Комментарии189

10 анти-паттернов навигации в Android

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


В данной статье мы рассмотрим 10 анти-паттернов навигации в Android, которые допускают многие новички (и не только) в создании интерфейсов Android-приложений.

Читать дальше →
Всего голосов 116: ↑107 и ↓9+98
Комментарии26

Как подключить сторонний браузер в приложении на C#

Время на прочтение3 мин
Количество просмотров99K
image

В определенный момент мне стало некомфортно использовать стандартный контрол WebBrowser, предлагаемый Visual Studio.
Причин было несколько:
1. Использовался IE-движок, что само по себе уже сильный аргумент.
2. Кривая работа с JS.
3. Отсутствие масштабирования.
4. Если запустить на машине, где стоит IE6, то все его «достоинства» переносятся на приложение.

В итоге был начат поиск альтернативных решений.
Было рассмотрено 2 SDK. xulrunner(Mozilla) и Awesomium(Chrome)

Подключение обоих происходит примерно одинаково, но на всякий случай опишу оба.
Читать дальше →
Всего голосов 77: ↑67 и ↓10+57
Комментарии52

Шпаргалка по шаблонам проектирования

Время на прочтение2 мин
Количество просмотров1.4M

Перевод pdf файла с сайта http://www.mcdonaldland.info/ с описанием 23-х шаблонов проектирования GOF. Каждый пункт содержит [очень] короткое описание паттерна и UML-диаграмму. Сама шпаргалка доступна в pdf, в виде двух png файлов (как в оригинале), и в виде 23-х отдельных частей изображений. Для самых нетерпеливых — все файлы в конце статьи.

Под катом — много картинок.

Читать дальше →
Всего голосов 192: ↑179 и ↓13+166
Комментарии66

Легализация дохода фрилансера в Украине. Часть 1: государственная регистрация бизнеса

Время на прочтение9 мин
Количество просмотров101K
Рано или поздно любой фрилансер задумывается о том, чтобы перестать прятать свои доходы от государства. Преимущества очевидны: идет официальный стаж работы, в банке охотнее выдают кредиты, для получения туристической визы заграницу не нужно искать обходные пути, спишь, в конце концов, спокойнее. Самый простой способ выйти из тени в Украине — стать предпринимателем или, как это официально называется, физическим лицом — предпринимателем.

Я работаю предпринимателем — фрилансером с 2007 года и успел накопить значительный опыт получения денег из-за рубежа как через онлайн-биржи вроде oDesk и Elance, так и работая с заказчиками напрямую. В свое время я был инициатором некоторых изменений на oDesk, помогающих упростить легальное получение денег на свой предпринимательский счет. Сегодня я руковожу разработкой в нашем украинском стартапе Taxer.ua, от чего опыта во взаимодействии с государством накопилось еще больше.

Рассказать хочется максимально подробно, раскрыв как можно больше деталей, поэтому я планирую разбить этот туториал на несколько частей:

  1. Государственная регистрация предпринимателя: выбор системы налогообложения, подача заявления.
  2. Составление ВЭД договора, получение денег от клиентов: биржи oDesk, Elance и напрямую.
  3. Ведение ВЭД бухгалтерии: акты, счета, книга доходов и курсовая разница.
  4. Уплата налогов и отправка отчетности в контролирующие органы: сдавать ли валютную декларацию.

Читать дальше →
Всего голосов 91: ↑81 и ↓10+71
Комментарии74

Packet crafting как он есть

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


Создание пакетов или packet crafting — это техника, которая позволяет сетевым инженерам или пентестерам исследовать сети, проверять правила фаерволлов и находить уязвимые места.
Делается это обычно вручную, отправляя пакеты на различные устройства в сети.
В качестве цели может быть брандмауэр, системы обнаружения вторжений (IDS), маршрутизаторы и любые другие участники сети.
Создание пакетов вручную не означает, что нужно писать код на каком-либо высокоуровневом языке программирования, можно воспользоваться готовым инструментом, например, Scapy.

Scapy — это один из лучших, если не самый лучший, инструмент для создания пакетов вручную.
Утилита написана с использованием языка Python, автором является Philippe Biondi.
Возможности утилиты практически безграничны — это и сборка пакетов с последующей отправкой их в сеть, и захват пакетов, и чтение их из сохраненного ранее дампа, и исследование сети, и многое другое.
Всё это можно делать как в интерактивном режиме, так и создавая скрипты.
С помощью Scapy можно проводить сканирование, трассировку, исследования, атаки и обнаружение хостов в сети.
Scapy предоставляет среду или даже фреймворк, чем-то похожий на Wireshark, только без красивой графической оболочки.
Утилита разрабатывается под UNIX-подобные операционные системы, но тем не менее, некоторым удается запустить ее и в среде Windows.
Эта утилита так же может взаимодействовать и с другими программами: для наглядного декодирования пакетов можно подключать тот же Wireshark, для рисования графиков — GnuPlot и Vpython.
Для работы потребуется права суперпользователя (root, UID 0), так как это достаточно низкоуровневая утилита и работает напрямую с сетевой картой.
И что важно, для работы с этой утилитой не потребуются глубокие знания программирования на Python.
Читать дальше →
Всего голосов 91: ↑91 и ↓0+91
Комментарии11

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность