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

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

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

Обзор вредоносного браузерного расширения

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


В статье приведен пример разбора вредоносного браузерного расширения из Chrome Web Store — «Убрать рекламу (HET Рекламе)».
Читать дальше →
Всего голосов 77: ↑73 и ↓4+69
Комментарии47

Эффект Motion Blur с помощью SVG

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

Сегодня мы рассмотрим, как создать эффект motion blur и применить его к анимациям CSS с помощью SVG.

Посмотреть на GitHub
Демо (рус.)
Читать дальше →
Всего голосов 21: ↑19 и ↓2+17
Комментарии7

Гомоморфное шифрование

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

Что это такое?


Полностью гомоморфное шифрование (Fully Homomorphic Encryption) очень долго было самым ярким открытием в молодой и бурно развивающейся области Computer Science — криптографии. Вкратце, такой тип шифрования позволяет делать произвольные вычисления на зашифрованных данных без их расшифровки. Например, гугл может осуществлять поиск по запросу не зная, что это за запрос, можно фильтровать спам, не читая писем, подсчитывать голоса, не вскрывая конверты с голосами, делать DNA тесты, не читая DNA и многое, многое другое.
image
То есть, человек/машина/сервер, производящий вычисления, делает механические операции с шифрами, исполняя свой алгоритм (поиск в базе данных, анализ на спам, и т.д.), но при этом не имеет никакого понятия о зашифрованной внутри информации. Только пользователь зашифровавший свои данные может расшифровать результат вычисления.

Здорово, правда? И это не из области фантастики — это то, что уже можно «теоретически» воплотить в жизнь.

Читать дальше →
Всего голосов 64: ↑58 и ↓6+52
Комментарии71

Сделай сам: MSc Computer Science на уровне топ американских университетов из дома

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

Вступление


Давно хотел написать статью про образование в Computer Science, но руки не доходили. Решил все-таки это наконец сделать. Итак, о чем пойдет речь? Речь о том, что из себя представляет диплом MSc Computer Science топовых университетов США (во всех подробностях, включая основные курсы, книги и проекты) и как ему соответствовать.

Почему именно MSc? Это — некая развилка: с одной стороны после MSc — вы уже готовый к жизни инженер (да, речь идет о инженерной подготовке, как мне кажется это самое больное место в нашей системе образования), с другой — можно спокойно идти по пути PhD. Как известно, в PhD программу можно попасть и не особо умея программировать — особенно это касается теоретического Computer Science. С другой стороны найти работу программиста тоже дело не очень сложное, и часто не требует мощного образования. Но достигнув уровня MSc — вы получаете возможность разбираться как во всех новый идеях в Computer Science, так и возможность их воплотить в практику. То есть с одной стороны круто разобраться в каком-нибудь deep learning и сделать в нем что-то новое, а также взять и написать свою операционную систему (кто так сделал?). Причем вы не зажаты в рамки узкой специализации (если конечно продолжаете учиться). То есть вы теперь — универсальный солдат, готовый на все.

Надеюсь что эта статья будет полезна:
1. Студентам, которые хотят соответствовать высоким стандартам топ вузов США, или собирающиеся туда в аспирантуру по Computer Science
2. Профессионалам, которые хотят закрыть «дыры» и пробелы
3. Может кто-то из преподавателей возьмет на заметку для своих курсов.
4. Студентам, аспирантам американских вузов — хотелось бы тоже получить фидбэк, особенно касается последних трендов в образовании

Что же здесь будет написано? Минимум философии и общих мыслей: конкретная программа undergraduate и graduate курсов, конечно из дисциплин наиболее мне близких. Все курсы были лично прочувствованы на собственной шкуре, по этому и пишу. (Я пытался записаться на все интересные курсы, которые были, но мой основной упор — системное программирование, базы данных и искусственный интеллект. Отсюда конечно некий bias, но пытаюсь предложить более-менее универсальную программу).
Читать дальше →
Всего голосов 86: ↑81 и ↓5+76
Комментарии64

Улучшаем код JavaScript на примере StarWars API

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

Привет, меня зовут Рэймонд, и я пишу плохой код. Ну, не совсем плохой, но я точно не следую всем «лучшим практикам». Однако давайте я расскажу вам, как один проект помог мне начать писать код, которым я могу гордиться.

Как-то в выходной я решил отказаться от использования компьютера. Но ничего не вышло. Я наткнулся на Star Wars API. Этот простой интерфейс основан на REST, и с его помощью можно запрашивать информацию о персонажах, фильмах, космических кораблях и других вещах из вселенной SW. Поиска нет, но сервис свободный.
Читать дальше →
Всего голосов 15: ↑13 и ↓2+11
Комментарии4

Как я создавал мобильный файтинг под iOS

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

Глава 1. Спасибо, Майкл Дудикофф


В детстве я любил мечтать о том, кем же я стану, когда вырасту. Какой путь выбрать: космос или океанские глубины? Нет, я хотел создавать игры. Почему игры? Я рос во времена, когда разум любого мальчишки был отравлен компьютерным бумом и первыми консольными баталиями. Шли годы, мечта моя спала медвежьим сном, задавленная трудовыми буднями. И вот, однажды…

Март 2014. 7 утра в обычном московском спортзале. Поднимаю гантели, подавляя сонное недовольство разговорами с местными хохмачами. Тут в нашу беседу внезапно вклинился ОН.



Мальчики и девочки, рожденные на заре СССР, хорошо помнят гнусавый одноголосый перевод с затертых видеокассет. И вот один из обладателей того голоса появляется на экране ТВ, подвешенного к потолку. Конечно, я сразу узнал легендарного Майкла Дудикоффа, героя киноэпопеи «Американский ниндзя».
Читать дальше →
Всего голосов 62: ↑52 и ↓10+42
Комментарии75

Как получить удобный доступ к XAML-ресурсам из Code-Behind

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


Хочу рассказать, как максимально удобно работать с XAML-ресурсами из Code-Behind. В этой статье мы разберемся, как работают пространства имен XAML, узнаем о XmlnsDefinitionAttribute, используем Т4-шаблоны и сгенерируем статичный класс для доступа к XAML-ресурсам.
Читать дальше →
Всего голосов 16: ↑15 и ↓1+14
Комментарии12

Метод выявления «троллей» в сетевых сообществах на примере Q&AC

Время на прочтение7 мин
Количество просмотров11K
В связи с тематикой «Мегамозга» в своих статьях мы с вами несколько отошли от хардкорной IT тематики, но это не значит, что мы стали меньше этим интересоваться. Поэтому я решил разбавить сложившуюся атмосферу небольшой околонаучной статьей. Под катом будет несколько формул, прошу не пугаться.

В общем и целом это краткий перевод статьи, размещенной на сайте Корнелльского университета, с некоторыми моими вставками.

Аннотация


trollИнтернет стал играть более важную роль в жизни людей с момента появления Web 2.0. Взаимодействие между пользователями, дало им возможность свободно обмениваться информацией через социальные сети, форумы, блоги, википодобные сайты и другие интерактивные совместно разрабатываемые медиаресурсы.

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

9 ошибок в резюме, которые могут стоить вам работы

Время на прочтение3 мин
Количество просмотров22K
CVВ цифровую эпоху старая добрая бумага может показаться частью прошлого, но LinkedIn еще не полностью заменил старомодное резюме.

Если все сделано правильно, то ваше резюме расскажет вашу историю и продаст ваши таланты.

Хоть самые передовые технологии и изменили способ соискания работы, резюме остается неотъемлемой частью процесса найма.

Отвратно написанное резюме будет работать против вас. Чтобы этого не случилось отметим наиболее вопиющие ошибки и оплошности резюме.
Читать дальше →
Всего голосов 38: ↑26 и ↓12+14
Комментарии14

27 новых бесплатных курсов виртуальной академии Microsoft Virtual Academy, февраль 2015

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

В этом обзоре мы поговорим про бесплатные курсы виртуальной академии Microsoft MVA, которые будут полезны как профессиональным разработчикам программного обеспечения и ИТ-про, так и новичкам. Некоторые курсы предлагают бесплатную подготовку к официальным сертификационным экзаменам. Обратите внимание, что видео-плеер на сайте для ряда курсов, которые созданы на английском языке, содержит возможность включить русские субтитры.

Хит! Экспресс-погружение в разработку приложений на JavaScript

Если вы занимаетесь разработкой на JavaScript, то этот курс поможет вам разобраться в том, что вас ждет уже в ближайшем будущем. Мы постарались дать краткий обзор новых тенденций и современных возможностей в разработке приложений на JavaScript: будь это сложные веб-решения, приложения для Windows или кроссплатформенные приложения, или игры. Так же мы немножко заглянем в будущее и посмотрим на возможности следующей версии стандарта JavaScript – ECMAScript 6 и затронем новые сферы, в которых уже сегодня можно применять JS.

Хит! Введение в AngularJS

Веб-разработчики, если вам понравился модуль Введение в AngularJS в курсе Одностраничные приложения с jQuery и AngularJS, то приготовьтесь к еще более мощному курсу! По многочисленным запросам эксперты Stacey Mulcahy и Christopher Harrison продемонстрируют вам как использовать встроенную функциональность AngularJS в ваших приложениях. Узнайте о самых полезных задачах, которые помогает решить AngularJS и разберите на примере простого приложения функции и особенности Фреймворка, включая Directives, Databinding, Expressions и Filtering. Плюс, научитесь таксономии, языку, структуре и еще большему. Приступайте к этому информативному курсу целиком посвященному AngularJS!

Хит! Разработка современных приложений на C#

Основная задача курса – показать мощь современной платформы Microsoft .NET и управляемых языков, в частности — языка программирования C# (хотя мы также коротко показываем, как прекрасен может быть F#). В обзорной форме мы рассказываем о том, как C# можем применяться для создания универсальных приложений на платформе Windows, облачных сервисов, а также устройств для «интернета вещей» и мобильных роботов.
Читать дальше →
Всего голосов 31: ↑22 и ↓9+13
Комментарии0

Краткий курс компьютерной графики: пишем упрощённый OpenGL своими руками, статья 1 из 6

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

Содержание курса



Улучшение кода






Official translation (with a bit of polishing) is available here.




Постановка задачи


Цель этого цикла статей — показать, как работает OpenGL, написав его (сильно упрощённый!) клон самостоятельно. На удивление часто сталкиваюсь с людьми, которые не могут преодолеть первоначальный барьер обучения OpenGL/DirectX. Таким образом, я подготовил краткий цикл из шести лекций, после которого мои студенты выдают неплохие рендеры.

Итак, задача ставится следующим образом: не используя никаких сторонних библиотек (особенно графических) получить примерно такие картинки:



Внимание, это обучающий материал, который в целом повторит структуру библиотеки OpenGL. Это будет софтверный рендер, я не ставлю целью показать, как писать приложения под OpenGL. Я ставлю целью показать, как сам OpenGL устроен. По моему глубокому убеждению, без понимания этого написание эффективных приложений с использованием 3D библиотек невозможно.
Читать дальше →
Всего голосов 198: ↑196 и ↓2+194
Комментарии120

Краткий курс компьютерной графики: пишем упрощённый OpenGL своими руками, статья 2 из 6

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

Содержание курса



Улучшение кода






Official translation (with a bit of polishing) is available here.




Update:


Внимание, статья 4в даёт новую, более простую версию растеризатора.

Давайте знакомиться, это я.



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

В прошлый раз мы нарисовали проволочную сетку трёхмерной модели, в этот раз мы зальём полигоны. Точнее, треугольники, так как OpenGL практически любой полигон триангулирует, поэтому ни к чему разбирать сложный случай. Напоминаю, что этот цикл статей создан для самостоятельного программирования. Время, которое я здесь привожу — это не время чтения моего кода. Это время написания вашего кода с нуля. Мой код здесь только для того, чтобы сравнить ваш (рабочий) код с моим. Я совсем не являюсь хорошим программистом, поэтому ваш код может быть существенно лучше моего. Любая критика приветствуется, любым вопросам рад.

Пожалуйста, если вы следуете этому туториалу и пишете свой код, выкладывайте его на github.com/code.google.com и им подобные и давайте ссылки в комментариях! Это может хорошо помочь как и вам (другие люди могут чего посоветовать), так и будущим читателям.
Читать дальше →
Всего голосов 119: ↑116 и ↓3+113
Комментарии122

По поводу эволюции печатной продукции в интерактивную и электронную

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

Проблемы


Представьте, сколько бы бумаги и краски понадобилось, чтобы напечатать все те электронные письма, что каждый день люди посылают друг другу. У меня только в одном из почтовых ящиков около трёх тысячи входящих писем. Кроме экономии бумаги, электронные письма также хороши тем, что доходят до получателя мгновенно, есть возможность поиска, можно прикреплять фото, видео, документы. Конечно, сейчас это всё довольно очевидно. И вряд ли человечеству прийдёт в голову, вдруг отказаться от электронных писем обратно в пользу бумажных.
Читать дальше →
Всего голосов 8: ↑6 и ↓2+4
Комментарии1

Conditional indexing. Оптимизируем процесс полнотекстового поиска

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


В этой статье я хочу поговорить про интеграцию Apache Lucene и Hibernate Search. Если быть более точным, то про один из механизмов Hibernate Search, который может здорово увеличить производительность на проекте с полнотекстовым поиском.
Читать дальше →
Всего голосов 11: ↑10 и ↓1+9
Комментарии3

Будни багхантинга: еще одна уязвимость в известной соцсети

Время на прочтение4 мин
Количество просмотров53K
Декабрь для меня получился наиболее удачным за четыре года участия в разнообразных программах bug bounty, и я хотел бы поделиться информацией об одной из обнаруженных уязвимостей. Речь пойдет о небезопасной обработке Request-URI (Request Target). На этот раз красивой комбинацией уязвимостей порадовал Facebook*.
Читать дальше →
Всего голосов 104: ↑101 и ↓3+98
Комментарии8

TrendVision MR-710GP: лучший видеорегистратор-зеркало 2015 года

Время на прочтение11 мин
Количество просмотров41K
Пожалуй, основным и самым явным преимуществом видеорегистраторов в корпусе зеркала является возможность скрытой установки. И если ранее выбор автомобилистов ограничивался регистраторами в таком форм-факторе далеко не с самыми современными техническими характеристиками, то теперь это недоразумение исправлено.

Несколько дней назад компания TrendVision представила видеорегистратор-зеркало, построенный на базе самого производительного видеопроцессора из применяемых в регистраторах — Ambarella A7LA70 в связке с лучшим сенсором 2014 года — OmniVision OV4689 (CMOS 1/3", 4МП). Преимуществом нового зеркала-видеорегистратора TrendVision MR-710GP над ближайшими конкурентами станет установленный в устройстве суперсветосильный 8-ми линзовый объектив (F=1,6).


Читать дальше →
Всего голосов 19: ↑16 и ↓3+13
Комментарии44

58 признаков хорошего интерфейса

Время на прочтение16 мин
Количество просмотров381K
У хорошего интерфейса пользователя высокая конверсия и его просто использовать. То есть, он хорош и для бизнеса, и для использующих его людей. Вот список опробованных нами идей.

1 Один столбец вместо нескольких


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

image
Читать дальше →
Всего голосов 226: ↑182 и ↓44+138
Комментарии102

Исследуем внутренние механизмы работы Hyper-V: Часть 2

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


Со времени публикации первой части статьи глобально в мире ничего не изменилось: Земля не наскочила на небесную ось, все так же растет популярность облачных сервисов, все так же в гипервизоре компании Microsoft не были обнаружены новые дыры, а исследователи не хотят тратить свое время на поиск багов в плохо документированной и мало изученной технологии. Поэтому я предлагаю тебе освежить память первой частью из предыдущего номера, пополнить запас своего бара и приступить к чтению, ведь сегодня мы сделаем драйвер, взаимодействующий с интерфейсом гипервизора и отслеживающий передаваемые гипервизором сообщения, а также изучим работу компонентов служб интеграции Data Exchange.
Читать дальше →
Всего голосов 13: ↑10 и ↓3+7
Комментарии0

Руководство хакера по нейронным сетям. Схемы реальных значений. Стратегия №3: Аналитический градиент

Время на прочтение4 мин
Количество просмотров17K
Содержание:
Глава 1: Схемы реальных значений
Часть 1:
   Введение   
      Базовый сценарий: Простой логический элемент в схеме
      Цель
         Стратегия №1: Произвольный локальный поиск

Часть 2:
         Стратегия №2: Числовой градиент

Часть 3:
         Стратегия №3: Аналитический градиент

Часть 4:
      Схемы с несколькими логическими элементами
         Обратное распространение ошибки

Часть 5:
         Шаблоны в «обратном» потоке 
      Пример "Один нейрон"

Часть 6:
      Становимся мастером обратного распространения ошибки


Глава 2: Машинное обучение
Часть 7:
      Бинарная классификация

Часть 8:
      Обучение сети на основе метода опорных векторов (SVM)

Часть 9:
      Обобщаем SVM до нейронной сети

Часть 10:
      Более традиционный подход: Функции потерь



В предыдущем разделе мы оценивали градиент путем исследования выходного значения схемы по каждому исходному значению по отдельности. Эта процедура дает нам то, что мы называем числовым градиентом. Однако этот подход все равно считается довольно проблематичным, так как нам нужно вычислять результат схемы по мере изменения каждого исходного значения на небольшое число. Поэтому сложность оценки градиента является линейной по количеству исходных значений. Но на практике у нас будут сотни, тысячи или (для нейронных сетей) от десятков до сотен миллионов исходных значений, и схемы будут включать не только один логический элемент умножения, но и огромные выражения, которые могут быть очень сложными в вычислении. Нам нужно что-то получше.
Читать дальше →
Всего голосов 32: ↑26 и ↓6+20
Комментарии0

C#: Внутреннее строение инициализаторов массивов

Время на прочтение6 мин
Количество просмотров29K
Наверняка почти каждому, кто имел дело с C#, известна подобная конструкция:

int[] ints = new int[3] { 1,2,3 };//А если уж вдруг и не была известна, то отныне и впредь уж точно

Вполне логично было-бы ожидать превращение этой конструкции в нечто подобное:

int[] ints = new int[3]; 
ints[0] = 1; 
ints[1] = 2; 
ints[2] = 3;

Увы и ах, на деле орех гораздо более морщинист, чем кажется с первого взгляда, и имеются некоторые тонкости, на которые будет указано позже. А до тех пор, наденем ношеную «IL freak» майку (у кого имеется) и погрузимся в недра реализации.
Погрузись, и ты узнаешь насколько глубока кроличья нора
Всего голосов 35: ↑33 и ↓2+31
Комментарии31

Информация

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