Публикации

вчера в 22:56

OpenCL. Как начать tutorial

Тяжелый старт


Всем привет! Какое-то время назад я начал копать тему с OpenCL под C#. Но наткнулся на трудности, связанные с тем, что не то, что под C#, а вообще по этой теме очень мало материала. Какую-то вводную по OpenCL можно почерпнуть здесь. Так же простой, но работающей старт OpenCL описан вот тут. Ни на йоту не хочу обидеть авторов, но все статьи, что я находил на русском (и на хабре в том числе) страдают одной и той же проблемой — очень мало примеров. Документация есть, её много и как принято для хорошей документации читается сложно. В своей статье (а если всё будет нормально, то и в цикле статей), я постараюсь поподробней описать эту область, с точки зрения человека, который начал её копать с нуля. Думаю такой подход будет полезен тем кто хочет быстро стартовать в высоко производительных вычислениях.
2336
27
rznELVIS 7,2
вчера в 20:01

Дайджест интересных материалов из мира веб-разработки и IT за последнюю неделю №167 (29 июня — 4 июля 2015)

Предлагаем вашему вниманию подборку с ссылками на полезные ресурсы, интересные материалы и IT-новости

5654
47
alexzfort 81,6
вчера в 16:14

Устройство WebP

WebP — сравнительно новый формат от Google. Картинки в этом формате занимают на 30% меньше места на странице благодаря особому сжатию, построенному на кодировании ключевых кадров в видеокодеке VP8.

WebP поддерживает сжатие с потерями и без, разные степени прозрачности, метаданные и может содержать встроенный ICC-профиль. Но пока не все браузеры и приложения поддерживают формат.

image
6494
38
moccachin 57,6
вчера в 14:36

Удаленная инъекция Wi-Fi кадров

image

Стандарт WiFi 802.11n использует механизм агрегации кадров для уменьшения накладных расходов при передаче данных.
Для этого несколько кадров объединяются в один. При этом маркер разделителя кадров передается вместе с данными.
Это позволяет сформировать данные, которые при прохождении через WiFi устройство будут интерпретированы им как отдельные кадры.

То есть имея контроль над потоком данных передаваемых от сервера клиенту (например при загрузке файла с сервера атакующего) или от клиента к серверу, можно генерировать произвольные пакеты на всех уровнях OSI:

  • Пакет с любыми заголовками RadioTap: Beacon, Probe Request/Respone, Deauthentication
  • L2 уровень: указать любой MAC адрес в заголовках пакета, можно производить ARP спуфинг
  • L3/L4 уровень: скрафтить любой TCP/UDP/ICMP пакет с любыми заголовками IP
  • и так далее


Уязвимости подвержены только открытые сети стандарта 802.11n.
10082
96
zhovner 20,2
3 июля в 22:16

Vim по полной: Работа с Git

Оглавление


  1. Введение (vim_lib)
  2. Менеджер плагинов без фатальных недостатков (vim_lib, vim_plugmanager)
  3. Уровень проекта и файловая система (vim_prj, nerdtree)
  4. Snippets и шаблоны файлов (UltiSnips, vim_template)
  5. Компиляция и выполнение чего угодно (vim-quickrun)
  6. Работа с Git (vim_git)
  7. Деплой (vim_deploy)
  8. Тестирование с помощью xUnit (vim_unittest)
  9. Библиотека, на которой все держится (vim_lib)
  10. Другие полезные плагины

Часто ли вам приходится использовать Git? В смысле, вы коммитите изменения каждый час или каждые несколько минут? Я делаю это очень часто и не слежу за чистотой репозитория, так как считаю его не более чем журналом изменений, а не произведением искусства. Такой подход требует от редактора хорошей интеграцией с Git, позволяющей в пару нажатий клавиш создать новый коммит, вернуться в прежнее состояние, перейти на другую ветку и так далее. Если вы используете современную среду разработки, в которой реализована интеграция с Git, вам очень повезло, но что делать пользователям редактора Vim? Есть ли плагин, который не просто реализует Vim-команды по тиму GitCommit, GitCheckout и GitBranch, а предоставляет удобный интерфейс в лучших традициях редактора?
5918
98
Delphinum 104,5
3 июля в 23:28

Семь удивительных «возможностей» Javascript перевод

За последние несколько месяцев я сделал несколько доработок для JSHint, в основном с целью изучить ES6 (я особенно горжусь тем, как переделано обнаружение областей видимости для переменных). Во время этого процесса я наткнулся на несколько вещей, которые меня удивили — в основном, в ES6, однако есть и кое-что про ES3, что я до этого никогда не использовал.

Break из любого блока


Наверняка вы знаете, что в любом цикле можно использовать ключевые слова break и continue — это стандартная возможность в современных языках программирования. Однако не все знают, что циклам можно давать метки и с их помощью прерывать любой конкретный цикл:

outer: for(var i = 0; i < 4; i++) {
    while(true) {
        continue outer;
    }
}
21455
231
impwx 31,3
3 июля в 20:52

Магия тензорной алгебры: Часть 3 — Криволинейные координаты

Введение


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

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

А пока что рассмотрим некоторые теоретические основы. Добро пожаловать под кат.

Дабы не терялась связь с предыдущим материалом, даю ссылки на него
Часть 1
Часть 2

6425
106
maisvendoo 90,5
3 июля в 20:50

О тонкостях приватности в Telegram Bots API: «это не баг, это фича»

imageНеделю назад в мессенджере Telegram был запущен Bots API — платформа для создания ботов. Платформа пусть немного сыроватая, слегка костыльная, но тем не менее интересная — как для пользователей, так и для разработчиков, которые тут же ринулись писать (и портировать) разнообразных ботов. Но, как оказалось, в API есть как минимум одна особенность, которая может показаться довольно неожиданной (и даже неприятной) для конечных пользователей.

Сразу оговорюсь: данная заметка не является очередным нападком на защищенность Телеграма. Более того, учитывая дружеские отношения с некоторыми из разработчиков мессенджера, писать статью не особенно хотелось. Но предостеречь тех, кто планирует создавать и, главное, пользоваться ботами в Telegram, мне показалось важным. «Платон мне друг, но истина дороже».

Сначала вкратце для рядовых пользователей. Если вы отправляете какому-то боту в Телеграме фотографию (рассчитывая, что бот потом эту фотографию отправит другому человеку), — помните, что конечный получатель фото (при желании) легко сможет узнать ваше имя/фото/юзернейм (и сможет связаться с вами напрямую). Даже если бот предполагает приватность и анонимность. Этот интересный аспект крайне неочевиден даже для самих создателей ботов. И они (пока что!) ничего не могут с этим сделать. Строго говоря, это касается не только фотографий (а почти всех видов прикреплений), но увидеть ваш профиль в других случаях несколько сложнее.

В том числе этому подвержен приведенный в качестве примера в описании новой платформы @HotOrBot. В этом «аналоге Тиндера» можно легко подсматривать аккаунты тех, чьи фото вам предлагают оценить (и, собственно, писать им — даже если они ещё не ответили вам взаимностью).
11837
35
deNULL 9,8
3 июля в 21:48

Каламбуры на css

CSS*
Хабровчане, всех с пятницей! Сейчас у подавляющего большинства читателей хабра рабочий день уже закончился, поэтому можно расслабиться и немного отвлечься от серьезных тем. Вы знали, что на css можно каламбурить? На кдпв один из примеров, а под катом небольшая простыня специфических css шуток.
19880
99
tegArt 88,7
3 июля в 16:00

Полезные материалы для iOS-разработчиков за неделю





Вышла 8.4 с обновленной музыкой, первый запуск которой вызывает ощущение, что что-то пошло не так. Jailbreak подоспел сразу же. Интересно, много ли осталось сторонников JB, что их мотивирует? Джонатана Айва поздравляем с официальным вступлением в должность директора по дизайну. Новый Macbook поздравляем с появлением интереснейшего аксессуара Branch на Kickstarter. Всех поздравляем с завершением рабочей недели, все-таки она длилась на одну секунду дольше обычного.

2660
25
NicoleK 13,6