Pull to refresh
6
0

DevOps

Send message

Фрактальный кустик от новичка для новичков

Reading time4 min
Views22K
Как я уже упоминал, я начинающий (и самый скромный во Вселенной) программист на Java. Иногда душа просит чего-то такого, вот прям чтоб сначала развернулась, а потом опять свернулась. Красоты хочется. А красоту рисовать мы еще не обучены. Зато обучены рисовать палочки и кружочки.

И с боевым кличем «Красота в простоте!», рисуем из палочек. А что мы можем нарисовать красивое и простое, да чтоб коллеги ахнули в восторге? И тут на помощь приходит красивое слово – Фрактал.

Сначала определение: «Фрактал – это структура из частей… бла-бла-бла… самоподобие… бла-бла-бла… красиво… бла-бла-бла...».



И вооруженные этим исчерпывающим знанием давайте нарисуем фрактальное дерево, а точнее кустик.
Читать дальше →

Артем Гавриченков, Qrator — DDoS-атаки [Видеолекция]

Reading time1 min
Views43K
Пару недель назад нам удалось вытащить на CodeFreeze с докладом Артема Гавриченкова aka ximaera, CTO в Qrator Labs — компании, которая является одним из мировых лидеров по вопросам борьбы с DDoS-атаками.



Собственно, я позвал Артема сделать нам обзорную лекцию о том, что такое DDoS-атаки, какие они бывают и как с ними бороться.

Если конкретнее:

  • История термина. Чем отличаются DoS- и DDoS-атаки?
  • DDoS-атаки с точки зрения специалистов по информационной безопасности, оценка рисков;
  • Виды атак и их классификация;
  • Противодействие для каждого вида атак;
  • DDoS-атаки в Интернете будущего: как IPv6, IoT и рост числа участников Сети повлияет на её, Сети, безопасность?

Видео под катом

Разработка игры на Processing с управлением через плату Arduino Uno

Reading time3 min
Views17K
Для начала в двух словах опишу цель проекта. Хотелось придумать что-нибудь простое и наглядное для демонстрации коммуникации платы Arduino Uno и ПК по serial соединению. Что-нибудь, что бы вписывалось в регламенты проекта «выходного дня», а именно: делалось за пару часов и легко кодилось.

Решено было создать игру со следующими правилами. Действие происходит на рабочей двухмерной плоскости. Шарик «герой», положением которого управляет игрок, пытается уйти от столкновения с шариками «противниками». Шарик герой движется только по оси абсцисс, противники появляются в произвольном месте рабочей плоскости и движутся прямолинейно по оси ординат. В случае ухода шарика «героя» от столкновения с «противником», значение счетчика очков инкрементируется, в противном случае — счетчик сбрасывается и набранные ранее очки «сгорают».
Читать дальше →

Делаем доступным все символы ядра Linux. Часть 1

Reading time11 min
Views31K

Состояние дел


Это обсуждение относится к ядру операционной системы Linux, и представляет интерес для разработчиков модулей ядра, драйверов под эту операционную систему. Для всех прочих эти заметки вряд ли представляют интерес.
Читать дальше →

Перенаправление данных из COM-порта в web. Доработка

Reading time10 min
Views24K
Недавно я опубликовал статью «Перенаправление данных из COM-порта в web», в которой описал прототип системы, транслирующей строки из последовательного порта компьютера в веб-браузер. В той статье я указал направления, в которых надо доработать прототип, чтобы приблизить его к продакшен-стадии:
— никакой дизайн веб-страницы
— в каждый момент времени данные получит только один веб-клиент
— очень ограниченный набор браузеров, с помощью которых можно получить доступ. Например, не работает ни в Internet Explorer 8, ни в браузере из Android 2.3.5
— требуется установка python

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

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

Разработка метамодели с помощью Eclipse Modeling Framework (и немного про моделирование данных)

Reading time11 min
Views30K


Это вторая статья цикла, посвященного разработке, управляемой моделями. Сегодня мы создадим метамодель, основанную на метаметамодели Ecore. Вскользь затронем моделирование данных, а именно Anchor, 6НФ и концептуальное моделирование.
Читать дальше →

Сколько твитов нужно, чтобы узнать ваш характер?

Reading time3 min
Views17K
Экстенсивный рост количества неструктурированных данных (твитов, постов, комментов, фото и видео), генерируемый человечеством – и фантастические возможности, и головная боль для многих старых и новых индустрий.

На днях мы уже приводили фактографию по объемам количества сообщений, производимых человечеством в сутки, понятно, что миллиарды высказываний требуют совершенно других решений и технологий. «Старые» (ужас, прошло 3-5 лет, и уже старые) подходы и люди, их разрабатывающие, борются за место под солнцем. Но…

image

В качестве классического примера приводим перевод недавнего материала от подразделения IBM Watson:
Читать дальше →

Что такое красивый код, и как его писать?

Reading time22 min
Views209K

1. Вступление


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

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

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

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

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

Да, все это необходимо знать. Но при этом, понимание того, как должен выглядеть достойный код, обычно появляется уже при наличии практического (чаще в той или иной степени негативного) опыта за плечами. И при условии, что жизнь “потыкала” тебя не только в сочные образцы плохого кода, но и в примеры всерьез достойные подражания.

В этом-то и заключается вся сложность: твое представление о “достойном” и “красивом” коде полностью основано на личном многолетнем опыте. Попробуй теперь передать это представление в сжатые сроки человеку с совсем другим опытом или даже вовсе без него.

Но если для нас действительно важно качество кода, который пишут люди, работающие вместе с нами, то попробовать все же стоит!
Читать дальше →

Мотивирующая сказка для инди разработчиков игр

Reading time5 min
Views27K
Моя история начинается, как в «Алисе в стране чудес» – со сна. Мне приснился сон, в котором я играю в новую мобильную игру – необычную, с незаезженной механикой. Сон был яркий и приятный. Проснувшись, я сразу кинулся за карандашом и бумагой, и еще толком не придя в себя, находясь под впечатлением увиденного, стал рисовать.
Читать дальше →

Введение в новый CoordinatorLayout

Reading time5 min
Views54K
В этом году на конференции Google IO компания Google представила новую библиотеку Android Design Support Library, которая создана для того, чтобы помочь разработчикам внедрять материальный дизайн в их приложения. Билиотека содержит много компонентов, нужных для этого нового стиля, и работает со всеми уровнями API, начиная с седьмого. Если по какой-то причине вы пропустили её анонс, можете ознакомиться с постом Ian Lake, выложенным на Android Developers Blog.

Встречайте Android CoordinatorLayout


Из всех компонентов, включенных в Android Design Support Library, наиболее интересным выглядит новый «прокачанный FrameLayout», он же герой нашей статьи — CoordinatorLayout. По названию можно догадаться, что CoordinatorLayout позволяет координировать некие зависимости между включенными в него виджетами.

Всё, что нужно сделать — обернуть необходимые нам виджеты в CoordinatorLayout. Давайте посмотрим, как это будет выглядеть в коде. Наш демонстрационный код очень прост — Floating Action Button, по нажатию на которую на экране появляется Snackbar.
Читать дальше →

Пишем эмулятор Кубика Рубика

Reading time20 min
Views78K
OpenGL — платформонезависимая спецификация, описывающая программный интерфейс для создания компьютерных приложений, использующих двухмерную и трехмерную графику.
В этой статье я опишу, как можно создать эмулятор Кубика Рубика на OpenGL.

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


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

Студенты сделали самоуправляемый автомобиль на Arduino/Android

Reading time1 min
Views13K


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

Обычный студент в наши дни не может позволить себе такую машину. Но зато у него есть Android-смартфон и Arduino. Как показывает проект Android-Car-duino, этого вполне достаточно. По крайней мере, для игрушечной машинки
Читать дальше →

Как внедрить баннеры в Android приложение не перекрыв другие элементы

Reading time6 min
Views17K
Баннеры – один из наиболее популярных видов рекламы в мобильных приложениях. Они не занимают много места, как, например, полноэкранная (interstitial) реклама. И позволяют совместить их с элементами пользовательского интерфейса приложения. Их можно добавить на разные экраны в приложении.

Прочитав данную статью, вы узнаете, как лучше вставить баннеры таким образом, чтобы они не мешали пользователю и не портили вид приложения. При этом вам не придётся изменять layout xml и вносить много изменений в код приложения. Вы можете внедрить баннеры в своё готовое приложение, добавив всего несколько строк кода. Подход, описанный в статье, универсальный, вы можете использовать его для API любых рекламных сервисов. Статья будет интересна как для новичков, так и для опытных разработчиков. Если вы — новичок в разработке, то для того, чтобы понять предмет статьи, от вас не потребуется каких-либо глубоких знаний. Достаточно понимания базовых концепций разработки под Android. А опытные разработчики могут найти в ней готовое решение, которое они могут внедрить у себя. Но инициализация рекламного сервиса, работа с конкретными рекламными API и кеширование находятся за пределами данной статьи. Для решения таких вопросов, пожалуйста, обратитесь к руководству для вашего конкретного рекламного сервиса.
Читать дальше →

ПЛИС — мои первые шаги

Reading time11 min
Views155K
Недавно я все-таки сделал свой первый шаг к ПЛИС и призвал вас за собой. Мое фанатическое увлечение ПЛИС и идея о том, что ПЛИС является лучшей платформой для создания любых устройств приобрела религиозный характер. Моя секта ПЛИСоводов проповедует полный отказ от микроконтроллеров, а особо экстремистская ветвь проповедует отказ не только от софт процессоров, но и вообще от последовательных вычислений!

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

Эта статья для новичков. В ней я опишу типичные проблемы, вопросы, заблуждения, ошибки, которые могут появиться в самом начале обучения (потому что они появились у меня). Однако, контекст статьи ограничен тем, что разработка ведется на ПЛИС от Altera в среде Quartus на языке Verilog.

Подробности

Всплывающие метки в формах на чистом CSS

Reading time3 min
Views42K
Возможно, вам уже попадался на глаза этот приём. Это поле ввода, которое выглядит так, как будто в нем есть текстовая подсказка (placeholder), но при начале набора текста она не исчезает, а отодвигается в сторону. Мне нравится эта идея. Брэд Фрост написал очень хорошую статью об этом приёме, подробно рассмотрев все «за» и «против».

Большинство примеров использования этой техники полагаются на JavaScript. В один прекрасный день я зашёл на nest.com, увидел там этот приём и задумался: а нельзя ли реализовать то же самое без JavaScript? И вот что из этого вышло.

Вот так выглядит форма на nest.com:

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

Пару слов о распознавании образов

Reading time13 min
Views314K
Давно хотел написать общую статью, содержащую в себе самые основы Image Recognition, некий гайд по базовым методам, рассказывающий, когда их применять, какие задачи они решают, что возможно сделать вечером на коленке, а о чём лучше и не думать, не имея команды человек в 20.
image

Какие-то статьи по Optical Recognition я пишу давненько, так что пару раз в месяц мне пишут различные люди с вопросами по этой тематике. Иногда создаётся ощущение, что живёшь с ними в разных мирах. С одной стороны понимаешь, что человек скорее всего профессионал в смежной теме, но в методах оптического распознавания знает очень мало. И самое обидное, что он пытается применить метод из близрасположенной области знаний, который логичен, но в Image Recognition полностью не работает, но не понимает этого и сильно обижается, если ему начать рассказывать что-нибудь с самых основ. А учитывая, что рассказывать с основ — много времени, которого часто нет, становится всё ещё печальнее.
Распознать

Предельная производительность: C#

Reading time56 min
Views266K
performanceЯ поделюсь 30 практиками для достижения максимальной производительности приложений, которые этого требуют. Затем, я расскажу, как применил их для коммерческого продукта и добился небывалых результатов!
Приложение было написано на C# для платформы Windows, работающее с Microsoft SQL Server. Никаких профайлеров – содержание основывается на понимании работы различных технологий, поэтому многие топики пригодятся для других платформ и языков программирования.
Читать дальше →

Не учите фреймворки, учите архитектуру

Reading time5 min
Views199K
Некоторое время назад у меня состоялся интересный разговор, коллега активно защищал Angular, говорил, что тот ускоряет веб-разработку. Я более десяти лет разрабатываю сложные web-сервисы, работал в Microsoft, в Spotware Systems на Кипре, сейчас создаю приложение для стартапа из Кремниевой долины, и в общем то слежу за трендами. Однако почувствовал себя динозавром, потому что не видел смысла использовать фронтэнд-фреймворки до того момента, а оказалось, что это уже мейнстрим. Шёл 2014-й год, я погрузился в мир Angular, Knockout и Backbone, что из этого вышло, почему я от них в итоге отказался и рекомендую коллегам сделать то же самое – под катом.
Читать дальше →

Использование паттернов проектирования в javaScript: Порождающие паттерны

Reading time5 min
Views76K
Привет, хабр!
С удивлением обнаружил отсутствие на хабре развернутой статьи о сабже, что немедленно сподвигло меня исправить эту вопиющую несправедливость.

В условиях когда клиентская часть веб-приложений становится все более толстой, бизнес-логика неумолимо переползает на клиент, а на суверенитет серверных технологий все более смело посягает node.js нельзя не задуматься о приемах проектирования архитектуры на javaScript. И в этом деле нам несомненно должны помочь паттерны проектирования — шаблонные приемы решения часто встречающихся задач. Паттерны помогают построить архитектуру, которая потребует от вас наименьших усилий при необходимости внести изменения. Но не стоит воспринимать их как панацею, т.е., грубо говоря, если качество кода «не фонтан», он кишит хардкодом и жесткой связью между логически независимыми модулями, то никакие паттерны его не спасут. Но если стоит задача спроектировать масштабируемую архитектуру, то паттерны могут стать хорошим подспорьем.
Но впрочем эта статья не о паттернах проектирования как таковых, а о их применении в javaScript. В первой части этой статьи я напишу о применении порождающих паттернах.
Читать дальше →

Однажды фанера, atmega, да малина

Reading time6 min
Views106K

Введение.


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

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

Information

Rating
Does not participate
Location
Минск, Минская обл., Беларусь
Date of birth
Registered
Activity