RSS
Pages: 1 ... 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 ... 133
[>] A fistful of relays. Часть 3 — декодер команд и управляющий автомат
habra.16
habrabot(difrex,1) — All
2016-12-28 11:00:03


Моя [коллекция старых компьютеров][1] пополняется не очень быстро, поэтому я делаю старый компьютер [своими руками][2].

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

Тёплый ламповый щелкающий звук тактового генератора:


[Читать дальше →][3]

[1]: https://vk.com/album782822_104271587
[2]: https://habrahabr.ru/post/258337/
[3]: https://habrahabr.ru/post/318500/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] JetBrains Night в Москве. Видео. Применение ReSharper в командах .NET-разработчиков
habra.16
habrabot(difrex,1) — All
2016-12-28 12:00:04


29 сентября в Москве прошла мини-конференция JetBrains Night: 7 часов разработчики из JetBrains рассказывали о том, что компания делает, зачем, и что будет делать дальше, а потом отвечали на вопросы, обсуждали общие проблемы и слушали, как разработчики из других компаний рассказывают им о том, что они делают и почему им удобно или пока еще не очень удобно делать это с помощью того, что делает JetBrains.

На Хабре мы публикуем видео всех докладов, чтобы можно было в комментариях обсудить то, что не успели обсудить на JetBrains Night, особенно с теми, кто не смог приехать лично.

Предыдущие доклады можно посмотреть в [прошлых публикациях][1], а сегодня мы публикуем видео доклада Размика Сейсяна об использовании ReSharper для того, чтобы разрабатывать на C# в командах. Итак, лучшие практики настройки Resharper для команд:

[][2]

[1]: https://habrahabr.ru/company/JetBrains/blog/317456/
[2]: https://habrahabr.ru/post/318608/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Сравнение систем мониторинга: Shinken vs Sensu vs Icinga 2 vs Zabbix
habra.16
habrabot(difrex,1) — All
2016-12-28 12:30:03


## [Shinken][1] {#shinkenhttpwwwshinken-monitoringorg}



Согласно официальному сайту, Shinken — фреймворк мониторинга; переписанный с нуля на питоне Nagios Core, с улучшенной поддержкой больших окружений и более гибкий.



### Масштабируемость {#masshtabiruemost}



Согласно [документации][2], каждый тип используемых процессов может запускаться на отдельном хосте. Это очень полезная возможность, поскольку вы можете захотеть иметь базу данных в самом дешёвом месте, процессы сбора информации в каждом датацентре, и процессы рассылки уведомлений ближе к своему физическому расположению. Пользователь Shinken на схеме счастлив, это точно является хорошим признаком:



![Shinken simple distributed architecture][3]

[Читать дальше →][4]

[1]: http://www.shinken-monitoring.org/
[2]: https://shinken.readthedocs.io/en/latest/07_advanced/distributed.html
[3]: https://shinken.readthedocs.io/en/latest/_images/shinken-architecture.png
[4]: https://habrahabr.ru/post/318466/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Как я научился не волноваться и полюбил микросервисы, часть 1: Эффекты плохого кода
habra.16
habrabot(difrex,1) — All
2016-12-28 12:30:03


## Преамбула


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

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

Я постараюсь выделить объективные или почти-объективные плюсы — преимущества, которые дадут положительный эффект любому разработчику независимо от языка программирования, размера команды или диеты. Первая статья посвящена стоимости плохо написанного кода – мы сравним эффекты влияния такого кода на монолитные приложения и на микросервисы.
[Читать дальше →][1]

[1]: https://habrahabr.ru/post/318520/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] Ceph в ProxMox на ZFS
habra.16
habrabot(difrex,1) — All
2016-12-28 12:30:03


В своей работе (системный администратор) приходится всегда искать вещи и знания, уникальные для своего региона. Одной из таких вещей в нашей конторе является ProxMox, поставленный на файловой системе ZFS, позволяющей использовать неплохой raid массив без использования железных контроллеров. Однажды, думая, чем можно еще удивить и порадовать клиентов, мы решили всё это водрузить на распределенную файловую систему Ceph. Не знаю уж, насколько было такое решение адекватным, но я решил воплотить желание в жизнь. И тут понеслась… Я перелопатил горы статей и форумов, но так и не нашел одного адекватного мануала, описывающего в подробностях что и как делать, поэтому, справившись со всем, родилась эта статья, кому интересно, добро пожаловать под кат.



![image][1]


[Читать дальше →][2]

[1]: https://pp.vk.me/c638017/v638017888/13fa8/Lg7SMlOaeAE.jpg
[2]: https://habrahabr.ru/post/318548/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] DNS-серверы ntp.org не доступны
habra.16
habrabot(difrex,1) — All
2016-12-28 12:30:03


Не добрый день, коллеги по цеху. В текущий момент наблюдается недоступность DNS-серверов, отвечающих за зону ntp.org. С серверами pool.ntp.org синхронизируются миллиарды устройств по всему миру и теперь они испытывают проблему в получении точного времени.
[Читать дальше →][1]

[1]: https://habrahabr.ru/post/318556/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] В системах управления электроподстанциями Siemens обнаружены серьезные уязвимости
habra.16
habrabot(difrex,1) — All
2016-12-28 12:30:03


[![][1]][2]

Специалисты компании Positive Technologies Илья Карпов и Дмитрий Скляров выявили уязвимости в программном обеспечении Siemens SICAM PAS (Power Automation System), предназначенном для построения АСУ ТП в энергетике. Данное ПО используется на подстанциях различных классов напряжения в России, странах Европы и на других континентах. [Читать дальше →][3]

[1]: https://habrastorage.org/files/1e3/c01/a1c/1e3c01a1c41142169efba1217c464e8f.jpg
[2]: https://habrahabr.ru/company/pt/blog/318606/
[3]: https://habrahabr.ru/post/318606/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Отладочная плата ПЛИС — Франкенштейн. Звуки и музыка
habra.16
habrabot(difrex,1) — All
2016-12-28 12:30:03


_Сегодня у нас самая предновогодняя серия про ПЛИС и отладочную плату Френки. Предыдущие серии [1][1], [2][2]._



![][3]Мы уже [передавали тоновые сигналы по радио][4] с помощью нашей платы Франкенштейн. Теперь попробуем воспроизводить звуки и музыку.



Для этого подключим к ПЛИС обычный динамик. К Френки подключен генератор на 25.175 МГц. Если поделить эту частоту до диапазона слышимых частот и подать на вывод ПЛИС, то мы можем услышать звук. Меня частоту мы можем получить разные звуки.



Тестировать качество звучания будет самый лучший слухач в доме — Маша. Диапазон частот в 60 КГц — это вам не шутки! )))


[Разовьем эту идею][5]

[1]: https://habrahabr.ru/post/316234/
[2]: https://habrahabr.ru/post/316586/
[3]: https://habrastorage.org/files/7f7/4f9/4e0/7f74f94e04cc4d53956f2e899a184327.gif
[4]: https://habrahabr.ru/post/316234/
[5]: https://habrahabr.ru/post/317876/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Сложнейшая проблема комьютерных наук
habra.16
habrabot(difrex,1) — All
2016-12-28 13:30:07


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


## Тысяча диалектов


Знаете ли вы, что [спецификация][1] языка программирования С часто упоминает термин «объект»? Нет, это не объект в том понимании, как он описывается в ООП — объект в С определяется как «блок данных в среде выполнения, содержимое которого может представлять некоторое значение». В этом понимании объекта имеет смысл говорить о, например, «объекте типа char».

Термин «метод» достаточно распространён, но вы можете встретить программистов, которые будут говорить исключительно «функция-член класса». Язык программирования Java, поэтому, то ли имеет, то ли не имеет функций, в зависимости от того, кого вы об этом спросите. Термины «процедура» и «подпрограмма» иногда используются как аналог «функции», но в некоторых языках программирования (например, Pascal) процедура это совершенно не то же самое, что функция.

Даже в рамках одного языка программирования мы, бывает, путаемся.
[Читать дальше →][2]

[1]: http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1124.pdf
[2]: https://habrahabr.ru/post/318618/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Подборка полезных слайдов про *nix 2: Возвращение слайдов
habra.16
habrabot(difrex,1) — All
2016-12-28 15:00:04


Полезные слайды об основах Unix, Linux, сетевых технологий пера Джулии Эванс возвращаются.

![image][1]
[Читать дальше →][2]

[1]: https://habrastorage.org/files/0c4/eea/b64/0c4eeab642a840b68483fbe596c55c1c.png
[2]: https://habrahabr.ru/post/318646/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] 11 советов, которые помогут сэкономить время при отладке программ
habra.16
habrabot(difrex,1) — All
2016-12-28 16:30:03


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

![][1]



## Вспомогательные средства


Каждый программист должен знать, как запускать отладчик, устанавливать контрольные точки, возобновлять исполнение кода, выполнять вход и выход из функций (используя клавиатуру!). Вот несколько простейших советов по облегчению процесса отладки на основе базовых приемов.
[Читать дальше →][2]

[1]: https://habrastorage.org/files/d02/462/de8/d02462de8eb04dcbb1c875a656c7ba36.png
[2]: https://habrahabr.ru/post/318658/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Сложнейшая проблема компьютерных наук
habra.16
habrabot(difrex,1) — All
2016-12-28 16:30:03


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


## Тысяча диалектов


Знаете ли вы, что [спецификация][1] языка программирования С часто упоминает термин «объект»? Нет, это не объект в том понимании, как он описывается в ООП — объект в С определяется как «блок данных в среде выполнения, содержимое которого может представлять некоторое значение». В этом понимании объекта имеет смысл говорить о, например, «объекте типа char».

Термин «метод» достаточно распространён, но вы можете встретить программистов, которые будут говорить исключительно «функция-член класса». Язык программирования Java, поэтому, то ли имеет, то ли не имеет функций, в зависимости от того, кого вы об этом спросите. Термины «процедура» и «подпрограмма» иногда используются как аналог «функции», но в некоторых языках программирования (например, Pascal) процедура это совершенно не то же самое, что функция.

Даже в рамках одного языка программирования мы, бывает, путаемся.
[Читать дальше →][2]

[1]: http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1124.pdf
[2]: https://habrahabr.ru/post/318618/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Вспоминаем 2016-й: наши лучшие посты года
habra.16
habrabot(difrex,1) — All
2016-12-28 18:30:04


![][1]

Новый год всё ближе, остались считанные дни. Пора подвести итоги. Всего за этот год мы опубликовали почти 200 постов (этот — 198-й) с суммарным рейтингом 6912, получили 6245 комментариев, 21835 добавлений в избранное и почти 3 миллиона просмотров! Мы сели и с умилением и ностальгией вспомнили лучшие посты в нашем блоге за 2016 год. Присоединяйтесь!
[Читать дальше →][2]

[1]: https://habrastorage.org/files/f6a/51e/8b6/f6a51e8b68044088b97688daec3f096f.jpg
[2]: https://habrahabr.ru/post/318580/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Отчёт со Sberbank Data Science Day: решения, победители, интервью
habra.16
habrabot(difrex,1) — All
2016-12-28 22:00:04


В ноябре Сбербанк провел серию мероприятий по машинному обучению и искусственному интеллекту Sberbank Data Science Journey. Финальное мероприятие, Data Science Day, прошло 12-го ноября на площадке DI Telegraph. Его посетило более 1000 человек. [Читать дальше][1]

[1]: https://habrahabr.ru/post/318160/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Компиляция Java программ и разрешение зависимостей в runtime
habra.16
habrabot(difrex,1) — All
2016-12-28 23:00:03


Как можно совместить некоторые достоинства динамических языков со строгой типизацией в обычном Java коде?
[Читать дальше →][1]

[1]: https://habrahabr.ru/post/318544/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] Насколько удобным может быть API для рисования в iOS?
habra.16
habrabot(difrex,1) — All
2016-12-29 00:00:03


Здравствуйте, меня зовут Виктор, я работаю в компании Exyte. Недавно мы выложили в open source нашу внутреннюю разработку — библиотеку для работы с векторной графикой и ее анимации [Macaw][1]. Я хочу поделиться впечатлениями от применения ее в реальном проекте и рассказать о ее преимуществах над нативным API.



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


* Отнаследоваться от UIView, чтобы переопределить drawRect
* Описать "сцену" используя устаревший Core Graphics API

Давайте попробуем создать нестандартный контрол и используем его как пример:



![ControlImage][2]


[Читать дальше →][3]

[1]: https://github.com/exyte/Macaw
[2]: https://dl.dropboxusercontent.com/u/33704652/hosting/Animation/cg_control.gif
[3]: https://habrahabr.ru/post/318684/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] VPN за 60 секунд
habra.16
habrabot(difrex,1) — All
2016-12-29 10:30:03


Если Вы предпочитаете простые и красивые решения, или Вам нравится всё, что попадает под категорию It Just Works, то эта статья для Вас. Для запуска шифрованного подключения достаточно иметь на своем компьютере SSH-клиент, установить sshuttle (об этом чуть позже) и приобрести VPS с любым тарифным планом в интересующей Вас стране. На удалённой VPS-машине в большинстве случаев абсолютно ничего настраивать не нужно (достаточно, чтобы были установлены пакеты python и сервер SSH).
![][1]
[Читать дальше →][2]

[1]: https://habrastorage.org/files/56b/242/fdf/56b242fdf896476c9fe0c307eb8d1296.jpg
[2]: https://habrahabr.ru/post/318694/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Intel Software Guard Extensions, учебное руководство. Часть 4, устройство анклава
habra.16
habrabot(difrex,1) — All
2016-12-29 13:30:04


В четвертой части серии учебных материалов, посвященных расширениям Intel Software Guard Extensions (Intel SGX), мы займемся созданием анклава и его интерфейса. Мы рассмотрим границы анклава, определенные в [третьей части][1], и определим необходимые функции моста, рассмотрим влияние функций моста на объектную модель и создадим инфраструктуру проекта, необходимую для интеграции анклава в наше приложение. Вместо ECALL анклава мы пока используем заглушки; к полной интеграции анклава мы перейдем в пятой части этой серии.

![][2]
[Читать дальше →][3]

[1]: https://habrahabr.ru/company/intel/blog/318012/
[2]: https://habrastorage.org/files/bfc/3cb/493/bfc3cb4933524b1b9bfe94976956aa99.jpg
[3]: https://habrahabr.ru/post/318628/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Sparrow — система управления пользовательскими скриптами
habra.16
habrabot(difrex,1) — All
2016-12-29 13:30:04


Здравствуйте. В течение этого года я написал [ряд][1] статей о [Sparrow][2] — системе управления пользовательскими скриптами. В конце года я хотел бы сделать своего рода результирующий пост, где еще раз попытаюсь описать основную суть этого инструмента.


[Читать дальше →][3]

[1]: https://habrahabr.ru/search/?q=sparrow#h
[2]: https://github.com/melezhik/sparrow
[3]: https://habrahabr.ru/post/318604/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] Как запрограммировать пословицу?
habra.16
habrabot(difrex,1) — All
2016-12-29 13:30:04


Пожалуй, можно описать с помощью программного кода почти все, что нас окружает. И хорошо, что почти, это позволяет нам не погружаться полностью в матрицу. Да, еще довольно трудно запрограммировать поведение отдельно взятых политиков, ведь как можно описать то, что не поддается логике? А вот мудрость, как противовес этому — можно.

![image][1]
[Читать дальше →][2]

[1]: http://s019.radikal.ru/i621/1407/d6/d58ddaedf56a.jpg
[2]: https://habrahabr.ru/post/318680/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Превращаем свой смартфон в IoT датчик при помощи Bluemix. Пример разработки приложения
habra.16
habrabot(difrex,1) — All
2016-12-29 13:30:04


![][1]

Bluemix — мощная платформа, которая позволяет быстро и без проблем создавать, разворачивать и администрировать приложения в облаке. Bluemix — это реализация архитектуры IBM Open Cloud Architecture на основе открытого ПО Cloud Foundry, работающего по принципу «платформа как услуга» (Platform as a Service – PaaS).

При помощи этой платформы и службы IBM Watson IoT Paltform можно разработать Bluemix-приложение, которое позволит обрабатывать, визуализировать и сохранять данные, полученные со смартфона. В этой статье показано, как обычный смартфон можно превратить в надежный датчик, подключенный к сети.
[Читать дальше →][2]

[1]: https://habrastorage.org/files/4b5/35f/c2f/4b535fc2f6df4e4cb7e9f3e1cf60082b.png
[2]: https://habrahabr.ru/post/318702/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] VulnHub: Эксплуатируем уязвимость переполнения буфера в Lord Of The Root
habra.16
habrabot(difrex,1) — All
2016-12-29 13:30:04


![][1]

Продолжаем разбор квестов с [VulnHub][2], на этот раз попался довольно интересный с обходом ASLR: [Lord Of The Root][3]. Но обо всём по порядку… [Читать дальше →][4]

[1]: https://habrastorage.org/files/444/c9b/a38/444c9ba38e9840538347246124d2d54f.png
[2]: https://www.vulnhub.com
[3]: https://www.vulnhub.com/entry/lord-of-the-root-1,129/
[4]: https://habrahabr.ru/post/318238/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Маршрутизация ортогональных соединений в редакторах диаграмм
habra.16
habrabot(difrex,1) — All
2016-12-29 16:30:04


# Маршрутизация ортогональных соединений в редакторах диаграмм {#marshrutizaciya-ortogonalnyh-soedineniy-v-redaktorah-diagramm}



В данной статье я покажу, как решить проблему маршрутизации соединений в редакторе диаграмм типа MS Visio. Здесь будет минимум теории и максимум практики. Если вам нужно быстро реализовать маршрутизацию соединений в двумерной сцене, и вы первый раз сталкиваетесь с подобной проблемой — то эта статья для вас.



![lead][1]



## Проблематика {#problematika}



К данной проблеме я пришел в процессе разработки своего хобби-проекта [ultra\_outliner][2]. Грубо говоря, в нем есть двумерная сцена, в которой находится много прямоугольных карточек, которые могут быть связаны между собой. И соединений может быть довольно много — а значит их нужно маршрутизировать, чтобы сегменты не накладывались, не пересекали карточки и др.



Многие из вас работали с Microsoft Visio, и конечно же оценили, как красиво автоматически маршрутизируются стрелочки. Конечно, и Visio не всегда справляется, и для таких случаев есть возможность ручной подгонки. Но тем не менее, не рассматривая крайние ситуации — мне захотелось это повторить. Действительно, ведь там все этим проблемы достаточно неплохо решены.


[Читать дальше →][3]

[1]: https://www.dropbox.com/s/x31twgv26dhv14e/lead.png?raw=1 "lead"
[2]: http://ultraoutliner.com
[3]: https://habrahabr.ru/post/318722/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Итоги года: Большой предновогодний дайджест Университета ИТМО
habra.16
habrabot(difrex,1) — All
2016-12-29 17:00:04


Накануне новогодних праздников мы решили поделиться с вами подборкой самых интересных материалов, которые вышли в блоге [Университета ИТМО][1] (и не только) в уходящем году: от научных публикаций до рассказов о предпринимателях и от робототехники до биоинформатики.

[![][2]][3] [Читать дальше →][4]

[1]: http://www.ifmo.ru/ru/
[2]: https://habrastorage.org/files/445/fc7/87b/445fc787bc074cd2ac81317b86cc3b65.jpg
[3]: https://habrahabr.ru/company/spbifmo/blog/318728/
[4]: https://habrahabr.ru/post/318728/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Велосипед для извлечения данных
habra.16
habrabot(difrex,1) — All
2016-12-29 17:00:04


![Извлечение данных][1]



Каждому кто занимается промышленной разработкой кровавым энтерпрайзом не раз приходилось сталкиваться с написанием слоя работы с базой данных. С этим столкнулись и мы.



Наш проект построен на финском фреймворке Vaadin и чистым JDBC в основе слоя работы с базой данных. Без опыта работы с JDBC мы нагородили достаточно большой слой спагетти кода, а потом доблестно с ним разобрались.



О том как мы с этим боролись и какой велосипед изобрели под катом.


[Читать дальше →][2]

[1]: https://habrastorage.org/files/4ca/ad2/706/4caad27066b24be4a041522ae39cf9e4.png
[2]: https://habrahabr.ru/post/318740/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] Методы защиты от CSRF-атаки
habra.16
habrabot(difrex,1) — All
2016-12-29 17:00:04


## Что такое CSRF атака? {#chto-takoe-csrf-ataka}



Ознакомиться с самой идеей атаки CSRF можно на классических ресурсах:


* [OWASP][1]
* [Acunetix][2]
* [Отличный ответ на SO][3]

##### Выдержка из ответа на SO: {#vyderzhka-iz-otveta-na-so}



Причина CSRF кроется в том, что браузеры не понимают, как различить, было ли действие явно совершено пользователем (_как, скажем, нажатие кнопки на форме или переход по ссылке_) или пользователь неумышленно выполнил это действие (_например, при посещении `bad.com`, ресурсом был отправлен запрос на `good.com/some_action`, в то время как пользователь уже был залогинен на `good.com`_).



## Как от нее защититься? {#kak-ot-nee-zaschititsya}



Эффективным и общепринятым на сегодня способом защиты от CSRF-Атаки является **токен**. Под токеном имеется в виду случайный набор байт, который сервер передает клиенту, а клиент возвращает серверу.



Защита сводится к проверке токена, который сгенерировал сервер, и токена, который прислал пользователь.

[Читать дальше →][4]

[1]: https://www.owasp.org/index.php/Cross-Site_Request_Forgery_(CSRF)_Prevention_Cheat_Sheet
[2]: http://www.acunetix.com/websitesecurity/csrf-attacks/
[3]: http://stackoverflow.com/questions/11518245/csrf-attacks-and-double-submitted-cookie/29622103#29622103
[4]: https://habrahabr.ru/post/318748/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Отладочный механизм в процессорах Intel позволяет захватывать их через USB-порт
habra.16
habrabot(difrex,1) — All
2016-12-29 17:00:04


[![][1]][2]

Современные процессоры Intel позволяют использовать отладочный интерфейс через доступный на многих платформах порт USB 3.0 для получения полного контроля над системой, что дает возможность проводить атаки, которые не отслеживаются современными системами безопасности. Доклад об этих механизмах, а также о способах защиты от подобных атак, был представлен экспертами Positive Technologies 28 декабря на конференции Chaos Communication Congress (33C3) в Гамбурге. [Читать дальше →][3]

[1]: https://habrastorage.org/files/76c/090/236/76c090236c094d3a807a342798164041.png
[2]: https://habrahabr.ru/company/pt/blog/318744/
[3]: https://habrahabr.ru/post/318744/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Как 10 лет назад начинался проект PVS-Studio
habra.16
habrabot(difrex,1) — All
2016-12-29 17:30:04


![Единорог][1]

Десять лет назад мы создали простенькую утилиту под названием Viva64, предназначенную для выявления некоторых проблем в 64-битном коде. Так было заложено начало статического анализатора кода PVS-Studio. Хотя с того момента прошло 10 лет, что-то более-менее у нас, как у компании, стало получаться только несколько лет назад. Эта статья — не история успеха, так как мы считаем, что всё интересное только начинается. Однако, 10 лет — это повод подвести промежуточные итоги и рассказать нашим читателям как все начиналось, какие нас ждали ошибки, и что на данный момент у нас получилось. Местами я, возможно, буду не совсем хронологически точен при описании событий. Моя память не идеальна, а 10 лет — это длительный промежуток времени. Желаю всем приятного чтения.
[Читать дальше →][2]

[1]: https://habrastorage.org/getpro/habr/post_images/2a1/35a/43f/2a135a43f94d625e0d33a331aa6cf8e3.png
[2]: https://habrahabr.ru/post/318756/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Почему этой зимой мы снова приглашаем всех поиграть в компьютерные игры при помощи искусственного интеллекта
habra.16
habrabot(difrex,1) — All
2016-12-29 18:00:03


Хабр, МФТИ приветствует тебя! Как истинные технари, сразу переходим к делу и приглашаем всех, кому интересно, принять участие в новом хакатоне DeepHack, который пройдет на Физтехе с 6 по 12 февраля. Отборочный этап уже начался и продлится до 22 января. Это мы всё к чему… Если вы не понаслышке знаете, что такое DQN, deep RL и DeepHack сразу регистрируйтесь на очередную научную школу-хакатон — [rl.deephack.me][1].

[][2]

А если вы не до конца в теме и вам, например, не ясно, почему компьютерные игры, какое отношение они имеют к управлению дата-центрами и что на самом деле будет в феврале, то срочно идите под кат — там максимальное погружение в жизнь искусственного интеллекта от древности и до наших дней. Ну вы же не думаете, что всё это изобрели только в XXI веке?
[Читать дальше →][3]

[1]: http://rl.deephack.me
[2]: https://habrahabr.ru/company/mipt/blog/318758/
[3]: https://habrahabr.ru/post/318758/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] Ада Лавлейс. Первая в мире программа и взгляд в будущее
habra.16
habrabot(difrex,1) — All
2016-12-29 19:00:04


![image][1]


_Ада Лавлейс_

10 декабря 1815 года на свет появилась Ада Лавлейс, большинству из нас известная как самый первый в мире программист. Так уж получилось, что это звание принадлежит представительнице прекрасного пола. Сегодня исполняется двести один год со дня рождения этого человека. И в этом посте я бы хотел немного рассказать о самых интересных моментах из ее жизни, не отделываясь обрывочными фразами, но и не слишком уж углубляясь в детали. Материал можно найти, где угодно, имея под рукой Интернет. Однако мало кто полезет искать его просто ради интереса. Поэтому кому интересно, добро пожаловать под кат.
[Читать дальше →][2]

[1]: http://www.rudata.ru/w/images/2/2e/Ada_Lovelace_1838.jpg
[2]: https://habrahabr.ru/post/318752/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] DS, ML и люди, которые этим занимаются. Взгляд Сбербанка
habra.16
habrabot(difrex,1) — All
2016-12-29 20:30:03


Через банк проходят сотни миллионов транзакций ежедневно, поэтому на серверах накапливаются большие данные: сведения о самих клиентах, паттерны их покупок, требования в целом. По сути, банки превращаются в IT-компании так, как это произошло с телеком-операторами. Они предоставляют все больше цифровых сервисов и услуг, а собираемые ими данные и извлекаемая из них информация активно используются в создании новых сервисов. Применить эту информацию можно в множестве приложений, от классических задач оптимизации обработки транзакций и кибербезопасности с выявлением мошенничества, вплоть до создания персональных финансовых ассистентов и сверх-таргетированного маркетинга. [Читать дальше][1]

[1]: https://habrahabr.ru/post/318152/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Идиома Ranges
habra.16
habrabot(difrex,1) — All
2016-12-29 21:30:03


![image][1]
Идиома ranges — крайне удачное развитие итераторов. Она позволяет писать высокопроизводительный код, не выделяющий память, где это не надо, находясь на предельно высоком уровне абстракции. Кроме того делает библиотеки гораздо более универсальными, а их интерфейсы гибкими. Под катом краткое описание и практические примеры использования идиомы, тесты производительности, а так же сравнение с популярными реализациями итераторов в C++ и C#.
[Читать дальше →][2]

[1]: https://habrastorage.org/files/b39/b45/b7a/b39b45b7a55a47559974bb8ce9280187.png
[2]: https://habrahabr.ru/post/318266/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Стильный код на Python, или учимся использовать Flake8
habra.16
habrabot(difrex,1) — All
2016-12-29 23:30:05


![][1]
_Автор: Анатолий Соловей, developer_

Язык программирования Python очень востребован на современном рынке, он развивается изо дня в день, и вокруг него сложилось активное сообщество. Во избежание конфликтов между разработчиками-питонистами, создатели языка написали соглашение PEP 8, описывающее правила оформления кода, однако даже там отмечено, что:
> Many projects have their own coding style guidelines. In the event of any conflicts, such project-specific guides take precedence for that project.
В результате добавления новых правил количество требований к оформлению кода увеличилось настолько, что удержать их в голове стало очень трудно. При этом обращение к гайдам может занимать много времени и отвлекать от процесса разработки.

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

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

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

[Читать дальше →][2]

[1]: https://habrastorage.org/files/839/634/9c3/8396349c3e804e45833b14213ed0efd3.png
[2]: https://habrahabr.ru/post/318776/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Мы хотим сделать вам новогодний подарок, но нам нужна ваша помощь
habra.16
habrabot(difrex,1) — All
2016-12-30 11:00:03


![][1]

Мы хотим сделать вам новогодний подарок, но нам нужна ваша помощь!

Да-да, именно так. Мы уже давно пытаемся улучшить стек USB в ReactOS. И мы знаем, как вы этого хотите! Одной из крайних попыток был [проект][2] в рамках GSoC 2016. Этот проект был успешен, поставленная в его рамках задача была выполнена, но в целом проделанной работы оказалось недостаточно. Перехватив эстафетную палочку, восполнить недостающие пробелы взялся другой разработчик-волонтер, Вадим Галянт. [Читать дальше →][3]

[1]: https://habrastorage.org/files/03b/925/17a/03b92517a68a4b17b29aaf355c5b0400.jpg
[2]: https://www.reactos.org/blogs/gsoc-final-report-usb-project-0/
[3]: https://habrahabr.ru/post/318798/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Отладочная плата ПЛИС — Франкенштейн. Контроллер елочных гирлянд
habra.16
habrabot(difrex,1) — All
2016-12-30 12:00:04


_Очередная серия про ПЛИС и отладочную плату Френки. Предыдущие серии [1][1], [2][2], [3][3]._



![][4]Сделать контроллер елочных гирлянд не просто, а очень просто! Hello World на ПЛИС — это помигать светодиодом. А "С новым годом" на ПЛИС — это помигать несколькими светодиодами. Принцип прост, как и в предыдущих статьях: создаем счетчик, который делит частоту тактового генератора, выбираем биты из слова счетчика, для получения нужной скорости. Несколько бит из этого слова дадут нам определенный шаг отображения (в зависимости от количества выбранных бит 1, 2, 4, 8 и т.д. шагов). В зависимости от номера шага задаем значения для N светодиодов.



Для управления реальной гирляндой, можно взять какой-нибудь shield с электромагнитным реле. У меня оказался [вот такой][5], на 8 реле. [Схема подключения][6]. [Принципиальная схема][7].


[Дальше][8]

[1]: https://habrahabr.ru/post/316234/
[2]: https://habrahabr.ru/post/316586/
[3]: https://habrahabr.ru/post/317876/
[4]: https://habrastorage.org/files/334/6ce/c6f/3346cec6fac448bdbfc5125265b0b3f3.gif
[5]: https://habrastorage.org/files/fe8/e4b/f5e/fe8e4bf5ef494672b7ae4a3f02fc54b0.jpg
[6]: https://habrastorage.org/files/20e/b73/ba8/20eb73ba8bc44238836e3ed9b1886588.jpg
[7]: https://habrastorage.org/files/76e/2f5/8f6/76e2f58f626746119216ef201cdafe65.jpg
[8]: https://habrahabr.ru/post/318726/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] CTFzone write-ups — Grand Finale
habra.16
habrabot(difrex,1) — All
2016-12-30 12:30:03


![image][1]



Друзья, настало время раскрыть последнюю тайну **CTFzone**. Мы готовы опубликовать райтап на одно из самых сложных заданий соревнований – **OSINT** на 1000 очков. Как и в случае с [Reverse 1000][2], мы решили вынести последнее задание ветки в отдельный пост ввиду большого размера и сложности.



Решения на таски попроще мы публиковали ранее, и теперь пришло время финального аккорда. Мы постарались сделать наш заключительный райтап максимально подробным, поэтому статья получилась длинной и интересной. Все готовы? ;)


[Читать дальше →][3]

[1]: https://habrastorage.org/files/d4b/9bc/473/d4b9bc4736464acaac71301c6fff94c2.jpg
[2]: https://habrahabr.ru/company/bizone/blog/316582/
[3]: https://habrahabr.ru/post/318652/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [recovery mode] Второе пришествие ГОСТ 28147-89: Честные тесты
habra.16
habrabot(difrex,1) — All
2016-12-30 14:30:03


**Второе пришествие ГОСТ 28147-89**

Около десяти лет тому назад симметричная криптография, основанная на ГОСТ 28147-89, перестала удовлетворять потребностям аппаратных платформ по скоростным параметрам. Скорости криптопреобразований, обеспечиваемые алгоритмами реализованными на регистрах общего назначения процессоров, не успевали за скоростями обмена информацией в сетях и на дисковых накопителях.
С другой стороны (американской), появился AES-256, который показывал гораздо лучшие скоростные параметры при той же степени криптостойкости.

В этой ситуации 8 центр ФСБ начал работы над новым блочным шифром, который получил в последствии название «Кузнечик» от начальных букв фамилий авторов.
Изначально это была бесперспективная затея, поскольку повторялась логика шифра AES, но если тот был ускорен аппаратно в процессорах Интел и АМД, то у Кузнечика такого аппаратного ускорения на этих процессорах конечно быть не могло.
Так что Кузнечик, это классический пример выброшенных на ветер бюджетных денег и не малых…
[Читать дальше →][1]

[1]: https://habrahabr.ru/post/318768/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] FAQ по лицензированию pimcore
habra.16
habrabot(difrex,1) — All
2016-12-30 14:30:03


_Следующий перевод справочного материала по лицензированию CMS посвящен проекту [pimcore][1] родом из Австрии. Эта система уже успела несколько лет назад [отметиться][2] как самый перспективный Open Source-проект по версии Open Source Awards 2010, а также [получить ][3] такую награду, как Frost & Sullivan Content Management Systems Technology Innovation Award 2016 в текущем году.

Во многом этот документ базируется на аналогичном [материале][4] про лицензирование Drupal, но также имеет и свои особенности. Если вам будет интересно их узнать, читайте об этом ниже._


[Читать дальше →][5]

[1]: http://pimcore.org
[2]: https://habrahabr.ru/post/108619/
[3]: https://www.pimcore.org/en/resources/blog/and-the-leader-in-the-content-management-system-market-is_b767
[4]: https://www.drupal.org/about/licensing
[5]: https://habrahabr.ru/post/318772/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Может ли рассуждать ваш код?
habra.16
habrabot(difrex,1) — All
2016-12-30 14:30:03


Когда мы думаем о рассуждениях (reasoning) в программировании, первое, что приходит в голову — это логическое программирование и подход базируемый на правилах (rule-based), экспертные системы и системы управления бизнес-правилами (business rule management systems, BRMS). Общераспространенные мультипарадигмальные языки практически [не включают][1] эти подходы, хотя и работают с ними посредством библиотек и интерфейсов. Почему? Потому что эти языки не могут включать себя формы, которые в некотором смысле противоречат их сути. Популярные языки программирования обычно работают с детерминизмом (ожидаемые данные, сценарии использования, и т.п.), в то время как подходы, использующие рассуждения, обычно работают с неопределенностью (непредсказуемые данные, сценарии использования, и т.п.). Рассуждения (reasoning) будет различным в обеих случаях тоже. В первом, рассуждает архитектор или разработчик, во втором же рассуждает машина вывода/правил (reasoning/rule engine).


[Читать дальше →][2]

[1]: https://en.wikipedia.org/wiki/Comparison_of_multi-paradigm_programming_languages
[2]: https://habrahabr.ru/post/318784/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] К вопросу о «потерянном времени»
habra.16
habrabot(difrex,1) — All
2016-12-30 21:30:04


### Нам представилась замечательная возможность провести небольшое, но крайне поучительное тактическое занятие.


Вопросы оптимизации программ, производящих значительное количество вычислений, к сожалению, недостаточно хорошо освещены в литературе и, как правило, сводятся в некоторым общим принципам, верность которых совершенно не очевидна ни до прочтения аргументов автора, не даже после. Поскольку в упомянутом посте (ищите по закавыченным словам) была предложена не-безынтересная вычислительная задача, которая позволяет продемонстрировать эти принципы и конкретные приемы оптимизации в действии, и был создан настоящий пост, который, хоть и несколько отклоняется от направления, излюбленного автором (я вполне себе вижу решение данной задачи на МК класса М3 и даже Ардуино, попробуйте, но все таки микроконтроллеры предназначены несколько для других целей), но тем не менее вписывается в концепцию курса по программированию МК.
Итак, мы начинаем. [Читать дальше →][1]

[1]: https://habrahabr.ru/post/318816/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Кодирование с изъятием информации. Часть 1-я, философская
habra.16
habrabot(difrex,1) — All
2016-12-31 12:30:03


Написано в сотрудничестве с Р. Бухрадзе и К. Перминовым



## 1\. Введение



Offline oбмен сообщениями сейчас является одним из наиболее популярных способов общения ([1][1], [2][2], [3][3]) — судя по аудитории способов общения и динамике её роста.



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



Максимально достигаемый объём сжатия, гарантирующий однозначное восстановление данных, определяется работами К. Шеннона по теории информации, и в общем-то является непреодолимым так как изъятие не только избыточной, но и смысловой информации не позволит однозначно восстановить исходное сообщение. Стоит отметить, что отказ от точного восстановления в некоторых случаях и не является критически важным и используется для эффективного сжатия [графических][4], [видео][5] и [музыкальных][6] данных, где потеря несущественных элементов оправдана, однако о общем случае целостность данных, куда важнее их размера.



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


[Читать дальше →][7]

[1]: http://www.the-village.ru/village/business/figures/250115-messenger
[2]: https://spark.ru/startup/546dae36cfa4a/blog/17709/messendzheri-i-boti-vozmozhnosti-dlya-prodvizheniya
[3]: https://habrahabr.ru/post/293656/
[4]: https://ru.wikipedia.org/wiki/JPEG
[5]: https://ru.wikipedia.org/wiki/MPEG-4
[6]: https://ru.wikipedia.org/wiki/MP3
[7]: https://habrahabr.ru/post/318848/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] VulnHub: Разбор IMF 1 и очередное переполнение буфера
habra.16
habrabot(difrex,1) — All
2016-12-31 12:30:03


![][1]

В этот раз рассмотрим Boot2Root [IMF 1][2] от [VulnHub][3]. Имеется 6 флагов, каждый из которых содержит подсказку к получению следующего. Так же рекомендую ознакомиться с [разборами][4] предыдущих заданий. [Читать дальше →][5]

[1]: https://habrastorage.org/files/a14/628/00e/a1462800e3304114b5a0ef997826cf71.png
[2]: https://www.vulnhub.com/entry/imf-1,162/
[3]: https://www.vulnhub.com/
[4]: https://habrahabr.ru/users/GH0st3rs/topics/
[5]: https://habrahabr.ru/post/318814/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] 33C3 CTF Эксплуатируем уязвимость LaTeX'а в задании pdfmaker
habra.16
habrabot(difrex,1) — All
2016-12-31 14:30:03


Этот небольшой write-up будет посвящен разбору одного из заданий с недавнего CTF [33С3][1]. Задания ещё доступны по [ссылке][2], а пока рассмотрим решение _pdfmaker_ из раздела _Misc_.
[Читать дальше →][3]

[1]: https://33c3ctf.ccc.ac
[2]: https://33c3ctf.ccc.ac/challenges/
[3]: https://habrahabr.ru/post/318850/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Школа Данных «Билайн»: с Наступающим
habra.16
habrabot(difrex,1) — All
2016-12-31 14:30:03


![][1]

Итак, заканчивается 2016 год. Для нас он был очень активным. Было 6 выпусков нашего [курса для аналитиков][2], 5 выпусков [курса для менеджеров (Data-MBA)][3]. Мы запустили [курс в Санкт-Петербурге][4] и уже провели первый выпуск. В партнерстве мы также обучали [студентов Высшей Школы Экономики][5] и [Российской Экономической Школы][6], проводили [мастер-классы в Сколково][7], участвовали в десятках хакатонов по всей стране, консультировали ведущие компании касательно применения аналитики и монетизации данных. В этом году [один из наших преподавателей стал первым в мире в рейтинге Kaggle][8].
[Читать дальше →][9]

[1]: https://habrastorage.org/files/95d/e46/453/95de46453bac40e08b6c42b26baf590d.jpg
[2]: http://bigdata.beeline.digital
[3]: http://bigdata.beeline.digital/datamba
[4]: http://bigdata.beeline.digital/spb
[5]: https://cs.hse.ru/news/185687734.html
[6]: http://www.cnews.ru/news/line/2016-04-21_bilajn_obuchit_studentov_algoritmam_big_data
[7]: https://www.facebook.com/events/1775426812695571/
[8]: http://beelineflipboard.ru/flipboard/200716/PR2007_02.html
[9]: https://habrahabr.ru/post/318820/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] У «Казаков» секретов нет
habra.16
habrabot(difrex,1) — All
2017-01-01 18:00:04


![image][1]


Думаю, многие из читателей с добрым словом вспомнят серию игр [«Казаки»][2], многочасовые баталии, военные хитрости и бесподобное звуковое сопровождение — отличная стратегия своего времени.

Спустя 15 лет они вернулись, и теперь уже в режиме онлайн, о проблемах и уязвимостях новой версии и пойдет речь в данной статье.
[Читать дальше →][3]

[1]: http://cft2.igromania.ru/upload/articles/1044/522415/intro.jpg
[2]: https://ru.wikipedia.org/wiki/%D0%9A%D0%B0%D0%B7%D0%B0%D0%BA%D0%B8_(%D1%81%D0%B5%D1%80%D0%B8%D1%8F_%D0%B8%D0%B3%D1%80)
[3]: https://habrahabr.ru/post/318870/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] История участия (и почти победы) в ежегодном соревновании Russian AI Cup 2016
habra.16
habrabot(difrex,1) — All
2017-01-01 22:00:04


Привет, Хабр! Меня зовут Дичковский Алексей, и я хочу вам рассказать о том, как я потратил полтора месяца своей жизни на написание бота для упрощённой версии DotA.

Ежегодно компания Mail.ru проводит онлайн-чемпионат по программированию игровых стратегий ([Russian AI Cup 2016][1]). Я принимал участие в данном соревновании в 2012 году (СodeTanks) и, совсем немного, в 2013 (СodeTroopers). В этом году, изрядно наевшись веб разработкой, я решил попробовать принять участие ещё раз. Я изначально не надеялся (но, конечно же, очень хотел) занять какое-либо призовое место и в целом для меня это был скорее тест, насколько я ещё могу реализовать нечто интересное. О том, что из этого получилось, можно прочитать под катом.

[![][2]][3]
[Читать дальше →][4]

[1]: https://habrahabr.ru/company/mailru/blog/314594/
[2]: https://habrastorage.org/files/b55/ebd/e74/b55ebde74d6a41c083497be1a8f63d34.png
[3]: https://habrastorage.org/files/735/500/824/7355008246ab43e8a526049cee3fbe61.png
[4]: https://habrahabr.ru/post/318878/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [recovery mode] Как проектируют ненастоящие программисты
habra.16
habrabot(difrex,1) — All
2017-01-02 11:30:03


Настоящие программисты — это облака, big data, high load… А у нас — практически DIY. 2 установки — уже тиражирование, 100 штук — производство… Но зато атомные ледоколы, маневровые локомотивы, трактора, шлюзы, мосты, опускающиеся вниз от лишнего асфальта, беспилотники размером в дом, 50 человек персонала на цех длиной больше двух километров… и надежность, надежность, надежность… И пяток гендиректоров в костюмах прямо на поле при демонстрации системы на тракторе…

![image][1]
_Обычное окончание отладки — убираем антенны с путеправильной машины_

Итак… пришла просьба от коллег — написать ТКП (технико-коммерческое предложение) на хитрый GPS-трекер. И комментарии, что большие и настоящие делать отказались.
[Читать дальше →][2]

[1]: https://habrastorage.org/getpro/habr/post_images/44d/2c7/f71/44d2c7f7195dff1f8b66be8c31629c34.jpg
[2]: https://habrahabr.ru/post/318894/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] Simple XML Framework — пишем API для работы с диаграммами DIA
habra.16
habrabot(difrex,1) — All
2017-01-02 16:00:03


![Dia Diagram Editor][1]   **Dia Diagram Editor**

Фреймфорк [Simple XML][2] — известен многим, при своей простоте, он способен потягаться возможностями с большим «интерпрайзным» JAXB, и при этом совместим с Андроид.

Статей по его использованию не «навалом», но хватает. Фреймфорк [упоминался на Хабре][3], есть [статья на ibm developerworks][4], в конце концов, на официальном сайте есть хорошие [примеры][5]
и [руководство][6].

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

В данной статье будет рассказано о том, как научить Simple Framework работать в такой ситуации. Мы создадим собственную «стратегию» для Simple Framework; мы отнаследуемся от класса TreeStrategy и опишем «хитрую логику» того, как надо сопоставлять элементы xml-файла DIA к Java классам.

И да, я предполагаю, что читатель знаком с основами использования Simple XML Framework.
[Читать дальше →][7]

[1]: http://static.dia-installer.de/images/dia.png
[2]: http://simple.sourceforge.net/
[3]: https://habrahabr.ru/post/116830/
[4]: http://www.ibm.com/developerworks/library/x-simplexobjs/
[5]: http://simple.sourceforge.net/download/stream/doc/examples/examples.php
[6]: http://simple.sourceforge.net/download/stream/doc/tutorial/tutorial.php
[7]: https://habrahabr.ru/post/318898/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] По-настоящему живая перезагрузка кода в golang
habra.16
habrabot(difrex,1) — All
2017-01-02 16:30:03


![][1] Если вы разрабатываете веб-приложения на го, то эта статья, возможно, будет вам интересна. До того, как перейти на go, я в основном программировал на PHP и мне всегда нравилось то, что можно сохранить файл, перезагрузить страницу и увидеть результат, который сгенерирован уже новым кодом. Большие программы на go могут компилироваться несколько десятков секунд, что весьма быстро, но всё равно ощутимо. Возможно ли сделать аналог Java hotswap (замена тела метода в runtime), ведь Go компилируется в нативный код? Ответ — да, возможно, но только для разработки. В данный момент мне неизвестно о готовых инструментах, которые бы позволяли это автоматизировать. В этой статье я хотел бы продемонстрировать proof-of-concept «живой перезагрузки» с использованием пакета [plugin в go1.8beta2][2] и пакета [github.com/bouk/monkey][3]. Пытливый читатель скорее всего уже догадывается, что мы будем делать.

[Читать дальше →][4]

[1]: https://habrastorage.org/files/74f/d25/730/74fd257305d14a4d94fe2e70eb68dc5d.png
[2]: https://tip.golang.org/pkg/plugin/
[3]: https://github.com/bouk/monkey
[4]: https://habrahabr.ru/post/318896/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Pebble для ленивых программистов
habra.16
habrabot(difrex,1) — All
2017-01-02 16:30:04


![][1]Мне «повезло» — часы Pebble Time пришли ко мне одновременно с новостью о продаже компании. Радость от покупки была омрачена двумя вещами: неясностью будущего платформы и не очень то большого комьюнити разработчиков и отсутствием необходимых мне приложений. Но эти недостатки с лихвой окупились возможностью легко и быстро написать нужные мне приложения, несмотря на недостаток опыта в программировании на С и JavaScript (о нем сегодня расскажу подробней).
Pebble оказались действительно хороши для быстрого написания приложений для себя. Начиная от получения какой либо информации, заканчивая управлением с часов своими поделками умным домом. Так что поторопитесь купить pebble, пока они есть в наличии. Если у вас уже есть pebble, надеюсь эта статья поможет вам провести несколько праздничных дней с пользой ;)
На хабре и раньше были статьи о программировании для Pebble, но они несколько устарели. В этой статье я расскажу о современном состоянии дел с Pebble IDE и мы напишем простенькое приложение на JavaScript.
[Читать дальше →][2]

[1]: https://habrastorage.org/files/d31/496/d72/d31496d72a094df4ad5a3d94dc018fcb.jpg
[2]: https://habrahabr.ru/post/318892/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

Pages: 1 ... 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 ... 133