RSS
Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 ... 133
[>] Информационные сообщения в 1С. Как это можно сделать
habra.16
habrabot(difrex,1) — All
2016-03-05 00:30:02


![][1] Здравствуйте. Сегодня речь пойдет о реализации подсистемы выдачи информационных сообщений пользователю. Стандартный способ проинформировать о чем-либо пользователя – это использование процедуры «**Сообщить**». Однако в некоторых случаях, хочется создать отдельный список, который не будет замусоривать своим выводом основной список сообщений платформы. Также желательно иметь возможность выделять цветом различные сообщения (в зависимости от их типа, например). В общем, расскажу, как это получилось сделать у меня. Приведенное в статье решение можно встроить в свою программу без какой-либо адаптации. [Читать дальше →][2]

[1]: https://habrastorage.org/files/a84/e44/3a0/a84e443a0ce74e80b5833bc74660d3f5.jpg
[2]: https://habrahabr.ru/post/278521/#habracut

[>] [Из песочницы] Разложение матрицы афинного преобразования
habra.16
habrabot(difrex,1) — All
2016-03-05 02:30:02


Не так давно в процессе разработки редактора 2D-графики возникла задача разложить матрицу афинного преобразования на плоскости, на произведение матриц простых преобразований с тем, чтобы отобразить их пользователю и предложить какую-то более-менее адекватную интерпретацию того, что произошло с объектом на канвасе. Честно говоря, эта задача вызвала у меня определенные трудности. Университет я закончил уже давно, и мне было непонятно, а возможно ли это сделать в принципе, учитывая, что исходная матрица могла быть результатом произвольной последовательности сдвигов, масштабов, поворотов, и переносов, причем каждое преобразование могло иметь свой произвольный центр. И, во-вторых, непонятно было, как найти семь параметров, имея всего шесть коэффициентов матрицы. Ключом к решению этой задачи оказалась статья "Разложение матрицы центроаффинного преобразования для нормализации изображения"[¹][1], в которой рассматривается такая же задача, но без учета преобразования переноса и для преобразований относительно центра координат. Далее я фактически просто адаптирую результаты этой статьи с учетом переноса и для произвольного центра преобразований. [Читать дальше →][2]

[1]: #1
[2]: https://habrahabr.ru/post/278597/#habracut

[>] Humane VimScript: минималистичная объектная ориентация
habra.16
habrabot(difrex,1) — All
2016-03-05 10:00:03


![][1] Я считаю VimScript крайне недружелюбным, но неожиданно мощным языком. К счастью его возможно одружелюбить, чем я и предлагаю вам заняться в этом цикле статей. Здесь мы рассмотрим некоторые решения типичных задач на VimScript с использованием объектно-ориентированной парадигмы, но не будем касаться основ этого языка. Возможно статья будет интересна так же программистам, интересующимся нестандартной реализацией ставших нам привычными решений. [Плагинописцам сюда][2]

[1]: https://habrastorage.org/files/0a6/984/bac/0a6984bac74c443792f50ac72f2f401f.jpeg
[2]: https://habrahabr.ru/post/278623/#habracut

[>] [Перевод] Сборка библиотеки FreeType для Android x86 с использованием NDK
habra.16
habrabot(difrex,1) — All
2016-03-05 11:30:03


FreeType – это бесплатная низкоуровневая библиотека для работы со шрифтами. Она написана на ANSI C и используется в огромном количестве известных проектов. В Android, например. Но у прикладных Android-приложений нет прямого доступа к этой библиотеке. Поэтому, если вы хотите воспользоваться ей в собственном проекте, FreeType надо будет собрать для интересующей вас платформы. Мы будем собирать её для платформы x86, используя средства [NDK][1]. [][2]



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

[1]: http://developer.android.com/tools/sdk/ndk/index.html
[2]: https://habrahabr.ru/company/intel/blog/278603/
[3]: https://habrahabr.ru/post/278603/#habracut

[>] [Перевод] Rust в деталях, часть 2
habra.16
habrabot(difrex,1) — All
2016-03-05 11:30:03




## Часть 2: Отправка и получение сообщений

В этой серии статей мы рассматриваем процесс создания масштабируемого сервера для чата в реальном времени, во всех деталях. Цель статьи — показать пример практического применения языка **Rust** на фоне изучения концепций системного программирования и системных API, шаг за шагом. Вторая часть является прямым продолжением [первой][1], поэтому если вы ее пропустили (или забыли контекст), то рекомендую сначала ознакомиться с ней. В этой части мы продолжаем реализацию протокола WebSocket. [Читать дальше →][2]

[1]: http://habrahabr.ru/post/268609/
[2]: https://habrahabr.ru/post/278635/#habracut

[>] Security Week 09: атака DROWN, HackingTeam возвращается, впечатления c RSA Conference 2016
habra.16
habrabot(difrex,1) — All
2016-03-05 12:00:03


![][1]Сегодня в Сан-Франциско заканчивается одно из важных мероприятий в индустрии инфобезопасности — конференция RSA. Свои решения здесь представляют более 400 компаний. Здесь есть все: от точечных решений защите VPN и шифрованию до комплексных систем безопасности. Одной из ключевых тем конференции стала эволюция киберугроз и собственно развитие инфраструктуры, которую предполагается от них защищать. Среди знакомых, но по-прежнему актуальных тем — защита облачных систем (в любом понимании этого термина), а среди новых — защита Internet of Things, экосистемы, где мы скоро будем иметь дело с миллиардами устройств, маломощных по отдельности, но в совокупности дающих невиданную ныне вычислительную мощность. Но IoT — это тема хоть и ближайшего, но будущего, а самой серьезной практической темой стала защита от таргетированных атак. Почему это важно? Речь идет о целевых атаках на конкретные компании. Если традиционное вредоносное ПО «бьет по площадям», то здесь мы говорим о попытках взломать заранее выбранную жертву. А значит в таких атаках разведка и использование уникальных особенностей инфраструктуры не менее важны, чем собственно инструменты атаки. Последние могут быть уникальными для каждой конкретной жертвы, что хорошо показано на примере кампании [Poseidon][2]. Есть тысячи способов взлома одной той же компании. Выявить и закрыть все потенциально уязвимые точки невозможно. Но делать что-то надо, и тут каждый производитель предлагает свои способы. Общий момент: требуется собирать и обрабатывать огромный массив информации и выявлять подозрительную активность, отличную от нормальной сетевой деятельности сотрудников. Мы в «Лаборатории» показали на конференции свое решение — Kaspersky Anti Targeted Attack Platform — подробнее о нем можно почитать [тут][3]. Новые угрозы тем временем появляются без перерывов и выходных, и ключевое событие этой недели — атака DROWN. О ней поговорим поподробнее. Все выпуски дайджеста доступны [по тегу][4]. [Читать дальше →][5]

[1]: https://habrastorage.org/files/0fa/f5a/545/0faf5a5454d44e6597fbfa53fd64e969.jpg
[2]: https://blog.kaspersky.ru/poseidon-apt-boutique/10796/
[3]: http://www.kaspersky.ru/enterprise-security/anti-targeted-attacks
[4]: http://habrahabr.ru/search/?target_type=posts&q=%5Bklsw%5D%20&order_by=date
[5]: https://habrahabr.ru/post/278555/#habracut

[>] libuniset2 — библиотека для создания АСУ. Лучше один раз увидеть…Часть 1
habra.16
habrabot(difrex,1) — All
2016-03-05 13:30:01


Когда-то давным-давно… Мной была написана статья [«Знакомство с libuniset — библиотекой для создания АСУ»][1], были планы по написанию продолжения, но не сложилось. С тех пор, библиотека значительно «подросла» и даже уже вышла версия 2.0, в которой появилось много новых возможностей: удалённый просмотр логов и программных переменных, поддержка различных полезных и не очень протоколов и баз, есть даже «time-machine», но об этом если до этого дойдёт… Вообщем я собрался силами и решил, что лучше всё это «один раз увидеть» на конкретном примере. Поэтому, кому ещё интересно, прошу. [Читать дальше →][2]

[1]: http://habrahabr.ru/post/171711/
[2]: https://habrahabr.ru/post/278535/#habracut

[>] ZeroNet — По настоящему распределенная сеть — год спустя
habra.16
habrabot(difrex,1) — All
2016-03-05 16:00:04


![image][1] Примерно год назад я писал об этой сети [ ZeroNet — Распределенные сайты через Bittorrent и Bitcoin][2] тогда еще хабр был тот и в комментариях были обсуждения о том насколько сеть распределена. Да, год назад действительно были вопросы, но теперь всё изменилось. Внутри:

* Что это такое этот ваш ZeroNet
* Что изменилось за год
* Почему она полезно с точки зрения защиты от цензурирования
* Почему она полезна в качестве импорто замещения и «защиты сувереннитета»
* Что есть в сети?

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

[1]: https://habrastorage.org/files/0a0/538/5f7/0a05385f7d56412c8297099cba169a94.png
[2]: https://habrahabr.ru/users/shifttstas/topics/
[3]: https://habrahabr.ru/post/278615/#habracut

[>] [Из песочницы] Разложение матрицы аффинного преобразования
habra.16
habrabot(difrex,1) — All
2016-03-05 18:00:03


Не так давно в процессе разработки редактора 2D-графики возникла задача разложить матрицу аффинного преобразования на плоскости, на произведение матриц простых преобразований с тем, чтобы отобразить их пользователю и предложить какую-то более-менее адекватную интерпретацию того, что произошло с объектом на канвасе. Честно говоря, эта задача вызвала у меня определенные трудности. Университет я закончил уже давно, и мне было непонятно, а возможно ли это сделать в принципе, учитывая, что исходная матрица могла быть результатом произвольной последовательности сдвигов, масштабов, поворотов, и переносов, причем каждое преобразование могло иметь свой произвольный центр. И, во-вторых, непонятно было, как найти семь параметров, имея всего шесть коэффициентов матрицы. Ключом к решению этой задачи оказалась статья "Разложение матрицы центроаффинного преобразования для нормализации изображения"[¹][1], в которой рассматривается такая же задача, но без учета преобразования переноса и для преобразований относительно центра координат. Далее я фактически просто адаптирую результаты этой статьи с учетом переноса и для произвольного центра преобразований. [Читать дальше →][2]

[1]: #1
[2]: https://habrahabr.ru/post/278597/#habracut

[>] Создание приложений для СУБД Firebird с использованием различных компонент и драйверов: ADO.NET Entity Framework 6
habra.16
habrabot(difrex,1) — All
2016-03-05 22:30:02


В данной статье будет описан процесс создания приложений для СУБД Firebird с использованием компонентов доступа Entity Framework и среды Visual Studio 2015. **ADO.NET Entity Framework (EF)** — объектно-ориентированная технология доступа к данным, является object-relational mapping (ORM) решением для .NET Framework от Microsoft. Предоставляет возможность взаимодействия с объектами как посредством LINQ в виде LINQ to Entities, так и с использованием Entity SQL. Entity Framework предполагает три возможных способа взаимодействия с базой данных:

* **Database first**: Entity Framework создаёт набор классов, которые отражают модель конкретной базы данных.
* **Model first**: сначала разработчик создаёт модель базы данных, по которой затем Entity Framework создаёт реальную базу данных на сервере.
* **Code first**: разработчик создаёт класс модели данных, которые будут храниться в БД, а затем Entity Framework по этой модели генерирует базу данных и её таблицы

В своём приложении мы будем использовать подход Code First, однако вы без труда сможете использовать и другие подходы. Наше приложение будет работать с базой данных, модель которой представлена на рисунке ниже.








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




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

[1]: https://habrahabr.ru/post/278405/#habracut

[>] Видео со встречи JUG.ru с разработчиками языка Kotlin Андреем Бреславом и Дмитрием Жемеровым
habra.16
habrabot(difrex,1) — All
2016-03-06 03:30:03


[![][1]][2] Неделю назад в Питере прошла встреча JUG.ru с разработчиками языка Kotlin **Андреем Бреславом** и **Дмитрием Жемеровым**. Как вы все наверняка знаете, Kotlin зарелизился пару недель назад, и теперь, спустя почти шесть лет разработки, пришла пора поговорить о том, что в итоге получилось. В пятничный вечер 26 февраля народу в питерский офис Oracle набилось дофига, что очень обрадовало и нас и спикеров. ![][3] Встреча состояла из четырех частей:

* Введение. Что такое Kotlin?
* Kotlin: к релизу и далее
* Kotlin: самое сложное — совместимость
* Сессия вопросов и ответов про Kotlin

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

[1]: https://habrastorage.org/files/28f/dc3/886/28fdc3886d0a40beb17764796880501f.jpg
[2]: https://habrahabr.ru/post/278647/
[3]: https://habrastorage.org/files/944/095/2fd/9440952fdcc24bf2b56da05809f2ae89.jpg
[4]: https://habrahabr.ru/post/278647/#habracut

[>] Обзор примитивов синхронизации — mutex и cond
habra.16
habrabot(difrex,1) — All
2016-03-06 04:00:02


Синхронизация нужна в любой малтитредной программе. (Если, конечно, она не состоит из локлесс алгоритмов на 100%, что вряд ли). Будь то приложение или компонента ядра современной операционной системы. Меня всё нижесказанное, конечно, больше волнует с точки зрения разработки ядра ОС. Но почти всё применимо и к пользовательскому коду. Кстати, ядра старых ОС в примитивах синхронизации не нуждались, поскольку преемптивной мультизадачности внутри ядра в старые добрые времена не было. (Уж за Юникс 7-й версии я отвечаю. Не было.) Точнее, единственным методом синхронизации был запрет прерываний. Но об этом позже. Сначала перечислим героев. Мне известны следующие примитивы синхронизации: User/kernel mode: mutex+cond, sema, enter/leave critical section. Kernel only: spinlock, управление прерываниями. Зачем всё это нужно, читатель, наверное, знает, но всё же уточним. Если некоторая структура данных может быть доступна двум параллельно работающим нитям (или нити и прерыванию), и являет собой сущность, к которой нельзя обеспечить атомарный доступ, то работу с такой структурой нужно производить так, чтобы только одна нить одновременно выполняла сложные манипуляции с состоянием структуры. [Читать дальше →][1]

[1]: https://habrahabr.ru/post/278413/#habracut

[>] Обзор примитивов синхронизации — Семафор и немного lockless-а
habra.16
habrabot(difrex,1) — All
2016-03-06 15:00:03


В [прошлой заметке][1] мы обсудили самую известную пару из лагеря инструментов синхронизации тредов — mutex и cond. Сегодня встретимся с sema — примитивом, который умеет заменять предыдущие два в одиночку. Но сначала — пара слов о случайных пробуждениях. (Спасибо [xaizek][2], который мне об этом напомнил.) В принципе, строго реализованные механизмы синхронизации этим не страдают, но, тем не менее, опытный программист на это никогда не полагается. Напомню фрагмент кода:

while(total_free_mem <= 0)
{
wait_cond(&got_free_mem, &allocator_mutex);
}


Здесь цикл вокруг wait\_cond гарантирует нам, что даже если мы вернёмся из ожидания события случайно или по ошибке, ничего страшного не случится — проверка в while обеспечит нам уверенность, что нужное состояние проверяемого объекта достигнуто. Если нет — поспим ещё в ожидании. Отметим ещё раз, что проверяем мы состояние объекта (total\_free\_mem <= 0) при запертом мьютексе, то есть никто не может его менять в то же самое время. [Читать дальше →][3]

[1]: https://habrahabr.ru/post/278413/
[2]: https://habrahabr.ru/users/xaizek/
[3]: https://habrahabr.ru/post/278661/#habracut

[>] Для Apple OS X обнаружен первый вымогатель
habra.16
habrabot(difrex,1) — All
2016-03-07 18:00:03


Специалисты компании Palo Alto Networks [обнаружили][1] первый настоящий вымогатель (ransomware) для Apple OS X. Вредоносная программа получила название KeRanger и обнаруживается нашими антивирусными продуктами как **OSX/Filecoder.KeRanger.A**. KeRanger относится к типу _crypto-ransomware_ или _filecoder_ и специализируется на шифровании файлов пользователя с дальнейшим требованием выкупа за расшифровку. ![][2] Для распространения вредоносной программы злоумышленники выбрали эффективный способ компрометации дистрибутивов ПО под названием Transmission для OS X. Эта программа представляет из себя простой свободно распространяемый клиент BitTorrent. Несколько дней назад два дистрибутива Transmission v2.90 были скомпрометированы KeRanger и распространялись на официальном веб-сайте клиента. Так как Transmission является свободным ПО, злоумышленники могли просто скомпилировать специальную backdoored-версию и заменить ее на сервере разработчиков. Кроме этого, скомпрометированный дистрибутив был подписан легитимным цифровым сертификатом разработчика для Mac. [Читать дальше →][3]

[1]: http://researchcenter.paloaltonetworks.com/2016/03/new-os-x-ransomware-keranger-infected-transmission-bittorrent-client-installer/
[2]: https://habrastorage.org/files/d61/414/0e1/d614140e1c1b495cbfac9995086d3689.png
[3]: https://habrahabr.ru/post/278725/#habracut

[>] История про хитрожо… индуса, encrypted procedures, DAC и «режим Бога»
habra.16
habrabot(difrex,1) — All
2016-03-07 20:30:02


![][1]На той неделе пришлось разбираться в логике работы одного бесплатного тула. Почти детективная история вышла с ее автором, который впоследствии оказался индусом канадского происхождения проживающим в Южной Америке. Конечно же, практическая ценность была не в биографии автора, а в запросах, которые отправлялись приложением на сервер. Установил. Запустил. Стал в стоечку и начал собирать профайлером все, чем приложение должно было «порадовать» сервер. Смею разочаровать – ничего радостного сервер в ближайшие два часа не увидел. В основном встречались разного рода перлы в запросах, которые явно не претендовали на комплименты:

SELECT
LogTruncations = (
SELECT TOP 1 SUM(cntr_value)
FROM ##tbl_cnt
WHERE counter_name = 'Log Truncations'
),
LogShrinks = (
SELECT TOP 1 SUM(cntr_value)
FROM ##tbl_cnt
WHERE counter_name = 'Log Shrinks'
),
LogGrowths = (
SELECT TOP 1 SUM(cntr_value)
FROM ##tbl_cnt
WHERE counter_name = 'Log Growths'
),
...


Поскольку их можно написать на порядок проще и сократить логические чтения из таблицы:

SELECT
LogTruncations = SUM(CASE WHEN counter_name = 'Log Truncations' THEN cntr_value END),
LogShrinks = SUM(CASE WHEN counter_name = 'Log Shrinks' THEN cntr_value END),
LogGrowths = SUM(CASE WHEN counter_name = 'Log Growths' THEN cntr_value END),
...
FROM ##tbl_cnt


На этом можно было бы и закончить… Но практически под конец я увидел, что приложение вызывает пользовательские хранимые процедуры из _tempdb_. Поймал себя на мысли: «Когда приложение успело их создать… и главное зачем?» [Подробнее][2]

[1]: https://habrastorage.org/files/92d/e88/f63/92de88f631f84d528c418e1e8a0fd4e8.png
[2]: https://habrahabr.ru/post/278737/#habracut

[>] Великолепная шестерка: девушки, которые термоядерный взрыв рассчитывали
habra.16
habrabot(difrex,1) — All
2016-03-07 22:00:02


Когда-то компьютеры были женщинами, калькуляторы работали на электромоторах, вместо учебников были чертежи, а программисты выглядели вот так: ![][1] ENIAC girls Во время второй мировой войны каждое орудие требовало собственной [баллистической таблицы][2] и рассчитывались они для каждого отдельного типа снаряда и орудия перед отправкой на фронт, и при различных комбинациях множества параметров (температура воздуха, скорость ветра, плотность почвы под орудием, возвышение ствола, скорость снаряда, температура ствола орудия). Этими вычислениями занимались 75 молоденьких девушек-выпускниц. Одна из них, Бетти, вспоминает:

> _«В то время у нас были механические калькуляторы, на шестеренках и с электроприводом, которые могли выполнять простейшие арифметические операции. Вы выполняли умножение и записывали ответ, чтобы потом его заново ввести в машину. Мы готовили баллистические таблицы для каждого орудия, примерно для 1800 траекторий. Чтобы вычислить вручную одну траекторию требовалось **30-40 часов** просиживания перед столом с листиком и калькулятором. Название моей профессии для баллистического проекта было „компьютер“. Идея была в том, что я не просто выполняла арифметические операции, а принимала решения, что делать на следующем шаге. ENIAC сделал меня, одну из первых „компьютеров“, устаревшей технологией.»_

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

[1]: https://habrastorage.org/files/f90/67b/ea4/f9067bea439d4deca791d182ae1665ab.jpg
[2]: https://ru.wikipedia.org/wiki/%D0%91%D0%B0%D0%BB%D0%BB%D0%B8%D1%81%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B0%D1%8F_%D1%82%D0%B0%D0%B1%D0%BB%D0%B8%D1%86%D0%B0
[3]: https://habrahabr.ru/post/278741/#habracut

[>] FLIF — свободный формат сжатия изображений
habra.16
habrabot(difrex,1) — All
2016-03-07 23:00:02


![][1][FLIF][2] (Free Lossless Image Format) — это новый свободный формат сжатия без потери качества, который превосходит PNG, lossless WebP, lossless BPG, lossless JPEG2000 и lossless JPEG XR по степени сжатия. Как показало сравнительное тестирование ([результаты][3]), файлы FLIF в среднем:

* на 14% меньше, чем lossless WebP,
* на 22% меньше, чем lossless BPG,
* на 33% меньше, чем PNG с брутфорсом через ZopfliPNG,
* на 43% меньше типичного PNG,
* на 46% меньше PNG, оптимизированного алгоритмом образования чересстрочного изображения Adam7,
* на 53% меньше lossless JPEG2000,
* на 74% меньше lossless JPEG XR.

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

[1]: https://habrastorage.org/files/732/421/eff/732421eff09a44d1a2e153742299d5a1.png
[2]: http://flif.info/index.html
[3]: https://docs.google.com/spreadsheets/d/1LxY78fbm47VmrYGTXkBXXitGjhGl32NsuHPH2QXufgA/edit?usp=sharing
[4]: https://habrahabr.ru/post/278745/#habracut

[>] Microsoft анонсировала поддержку Linux в SQL Server
habra.16
habrabot(difrex,1) — All
2016-03-08 14:30:03


![image][1] Компания Microsoft анонсировала поддержку операционных систем семейства Linux в следующей версии SQL Server. Это очередной шаг по выходу на рынок Linux систем после заключения партнерского соглашения с [RedHat][2]. Также, анонс прокомментировал Марк Шаттлворт, основатель компании Canonical: “Мы рады работать с Microsoft, когда они приносят SQL Server на Linux. Заказчики уже используют сервисы Azure Data Lake на Ubuntu, а теперь разработчики будут иметь возможность строить новые приложения со всеми возможностями промышленного SQL Server'а.” На сайте SQL Server также уже [появилась информация][3] относительно новых возможностей СУБД. Релиз версии ожидается в середине 2017 года. [][4]

[1]: https://mscorp.blob.core.windows.net/mscorpmedia/2016/03/SQL-Loves-Linux_2_Twitter-002-640x358.png
[2]: https://azure.microsoft.com/en-us/campaigns/redhat/
[3]: https://www.microsoft.com/en-us/server-cloud/sql-server-on-linux.aspx
[4]: https://habrahabr.ru/post/278767/#habracut

[>] Почему владение/заимствование в Rust такое сложное?
habra.16
habrabot(difrex,1) — All
2016-03-08 21:30:02


Оригинал [статьи][1] написан живущим на вашингтонщине [Иваном Сагалаевым][2], мужем небезызвестной [Алёны C++][3]. **Сама статья.** Работать с чистыми функциями просто: вы передаете аргументы и получаете результат, при этом нет никаких побочных эффектов. С другой стороны, если функция производит побочные эффекты, такие, как изменение собственных аргументов или же глобальных объектов, то найти причины этого трудно. Мы привыкли также, что если видим что-то вроде _player.set\_speed(5)_, то можно быть уверенным, что тут собираются изменить объект _player_ предсказуемым способом (и, возможно, посылают некоторые сигналы куда-нибудь). Система [владения/заимствования языка Rust][4] сложна и она создает совершенно новый класс побочных эффектов. [Читать дальше →][5]

[1]: http://softwaremaniacs.org/blog/2016/02/12/ownership-borrowing-hard/
[2]: http://softwaremaniacs.org/about/
[3]: http://alenacpp.blogspot.ru/
[4]: https://doc.rust-lang.org/book/ownership.html
[5]: https://habrahabr.ru/post/278779/#habracut

[>] Правильная работа с датой и временем
habra.16
habrabot(difrex,1) — All
2016-03-09 08:30:02


Практически все проекты сталкиваются с проблемами, вызванными неправильной обработкой и хранением даты и времени. Даже если проект используется в одном часовом поясе, все равно после перехода на зимнее/летнее время можно получить неприятные неожиданности. При этом мало кто озадачивается реализацией правильного механизма со старта, потому что кажется, что с этим проблем быть не может, так как все тривиально. К сожалению, в последствии реальность показывает, что это не так. [Читать дальше →][1]

[1]: https://habrahabr.ru/post/278527/#habracut

[>] Успехи импортозамещения или занимательная статистика на основе Реестра федеральных государственных информационных систем
habra.16
habrabot(difrex,1) — All
2016-03-09 10:30:02


![][1] Есть такой замечательный ресурс — [Реестр федеральных государственных информационных систем][2], который ведет всеми любимый Роскомназдор, и в котором государственные структуры обязаны регистрировать свои более-менее серьезные (но не секретные) информационные системы. Он довольно небольшой, давно хотелось поковыряться в нем и посмотреть поближе, что же представляют из себя и на чем работают системы, каждый день делающие жизнь простого гражданина еще легче и счастливее. Особенно, когда каждый день федеральные СМИ радостно рапортуют об успехах импортозамещения во всех отраслях народного хозяйства, в том числе и в сфере ИТ, а крупные западные вендоры начинают отворачиваться от российских госзаказчиков. Реестр размещается на портале Роскомнадзора, который старается быть в тренде гласности, поэтому на нем присутствует раздел с наборами открытых данных — здорово! [Качаем][3] самый свежий архив Реестра от 16.02.2016, внутри лежит xml-выгрузка от сентября 2015 года… Хорошая попытка, гражданин. Придется дополнять «открытые данные» свежей информацией непосредственно с сайта, где сделано все, чтоб усложнить врагам парсинг Реестра. В итоге, по состоянию на 8 марта 2016 года, получился список из 339 федеральных государственных информационных систем, некоторую занимательную инфографику по которому, я и хочу вам представить далее. [Читать дальше →][4]

[1]: https://habrastorage.org/files/ae6/5bc/e61/ae65bce61b41493db6cd880e64b67e44.jpg
[2]: http://rkn.gov.ru/it/register/#
[3]: http://rkn.gov.ru/opendata/7705846236-FGIS/
[4]: https://habrahabr.ru/post/278771/#habracut

[>] Приглашаю на чемпионат по программированию
habra.16
habrabot(difrex,1) — All
2016-03-09 12:00:03


Привет! Мы с 2012 года проводим всероссийские чемпионаты по программированию вместе с Codeforces. Участвовать можно с 18 лет. Гражданство в целом не важно, у нас всегда были гости из Казахстана, Украины, РБ и других стран, но язык турнира – русский. Например, в 2013 году было 3500 человек, и первое место взял «терминатор» [tourist][1], а пятое – вот этот парень [rng\_58][2] из Японии: ![image][3] Правила – «олимпиадные» задачи, которые нужно решить, плюс «взломы» чужих решений за счёт подбора своих нестандартных наборов данных. Индивидуальный зачёт, в призах 100 тысяч рублей за первое место, 70 тысяч и 50 тысяч — за второе и третье. Как обычно, будет отдельный игровой раунд в финале – нужно будет написать AI для сражения с AI других участников (в прошлом году был хоккей, до этого – битва магов). Приз игрового раунда – ноутбук. [Читать дальше →][4]

[1]: http://codeforces.com/profile/tourist
[2]: http://codeforces.com/profile/rng_58
[3]: https://habrastorage.org/storage2/151/ca7/bb8/151ca7bb85f815afa509a6be88ba02d9.jpg
[4]: https://habrahabr.ru/post/278803/#habracut

[>] [Перевод] Почему я НЕ являюсь фанатом TypeScript
habra.16
habrabot(difrex,1) — All
2016-03-09 12:00:03


![][1]Вашему вниманию предлагается перевод статьи, мнение автора которой я **не разделяю** абсолютно. Но статья уже собрала множество комментариев, включая поддерживающие. Было бы любопытно обсудить ее на Хабре, благо она небольшая. [Читать дальше →][2]

[1]: https://habrastorage.org/files/a41/e8d/fc2/a41e8dfc216b425e9cb70a42fb669093.jpg
[2]: https://habrahabr.ru/post/278789/#habracut

[>] Захвати и визуализируй! Или гистограмма с микрофона средствами Web Audio API
habra.16
habrabot(difrex,1) — All
2016-03-09 13:30:04






Я очень люблю «живые» графики. Смертельная скука — смотреть на статичные картинки с цифрами. Мне хочется, чтобы график завораживал, чтобы заставлял человека, который смотрит на него, взаимодействовать и открывать для себя новые грани всех данных на нем. Поэтому любой пример, что попадает мне в руки, и любая библиотека визуализации, которой не повезло оказаться на моей машине, проходит испытание “оживлением”. Вот и в очередной раз, раздумывая, как же еще я могу раскорячить визуализационные виджеты из [DevExtreme][1] библиотеки, я задумалась об отображении звука. «Интересно и живо» — подумала я в тот день, запаслась чаем с печеньками и засела за эту задачу. Что у меня в итоге вышло — узнаете под катом. [Читать дальше →][2]

[1]: http://js.devexpress.com/WebDevelopment/Charts/
[2]: https://habrahabr.ru/post/278823/#habracut

[>] [Из песочницы] OSSIM — пользуемся комплексной Open Source системой управления безопасностью
habra.16
habrabot(difrex,1) — All
2016-03-09 15:00:02


Эта статья написана под впечатлением от статьи "[OSSIM — разворачиваем комплексную open source систему управления безопасностью][1]". Я не буду повторяться и описывать сам процесс установки системы. Я хочу только внести некоторые уточнения и пояснения связанные с практическим опытом применения OSSIM. [Читать дальше →][2]

[1]: https://habrahabr.ru/post/255433/
[2]: https://habrahabr.ru/post/278809/#habracut

[>] Microsoft анонсировала Linux версию SQL Server
habra.16
habrabot(difrex,1) — All
2016-03-09 15:30:03


![image][1] Компания Microsoft анонсировала поддержку операционных систем семейства Linux в следующей версии SQL Server. Это очередной шаг по выходу на рынок Linux систем после заключения партнерского соглашения с [RedHat][2]. Также, анонс прокомментировал Марк Шаттлворт, основатель компании Canonical: “Мы рады работать с Microsoft, когда они приносят SQL Server на Linux. Заказчики уже используют сервисы Azure Data Lake на Ubuntu, а теперь разработчики будут иметь возможность строить новые приложения со всеми возможностями промышленного SQL Server'а.” На сайте SQL Server также уже [появилась информация][3] относительно новых возможностей СУБД. Релиз версии ожидается в середине 2017 года. [][4]

[1]: https://mscorp.blob.core.windows.net/mscorpmedia/2016/03/SQL-Loves-Linux_2_Twitter-002-640x358.png
[2]: https://azure.microsoft.com/en-us/campaigns/redhat/
[3]: https://www.microsoft.com/en-us/server-cloud/sql-server-on-linux.aspx
[4]: https://habrahabr.ru/post/278767/#habracut

[>] В Google Summer of Code 2016 вместе с KolibriOS
habra.16
habrabot(difrex,1) — All
2016-03-09 16:00:03


![][1] В этом году проект KolibriOS во второй раз принят к участию в **Google Summer of Code**. Напомним, что Google Summer of Code (сокращённо GSoC) — инициативная программа компании Google, в рамках которой ежегодно проводится отбор проектов с открытым исходным кодом, в которых могут принять участие студенты. Проекты сами отбирают студентов из всех подавших заявки, а Google выплачивает студентам стипендии за их работу. [Читать дальше →][2]

[1]: https://habrastorage.org/files/caa/d8e/99e/caad8e99ebe9416db55b9647f2329623.PNG
[2]: https://habrahabr.ru/post/278797/#habracut

[>] Игра гомоку (крестики-нолики, 5 в ряд)
habra.16
habrabot(difrex,1) — All
2016-03-09 16:30:02


![image][1] Читая публикации на Хабре нашел пару статей об алгоритмах игры гомоку: [эту][2] и [эту][3]. В первой статье разобраны различные варианты решения задачи, но нет реализации в виде игры, во второй — игра есть, но компьютер «играет» слабовато. Я решил сделать свой вариант игры гомоку с достаточно сильной игрой компьютера. Публикация о том, что в итоге получилось. Для тех, кто любит сразу в бой — [сама игра][4]. [Читать дальше →][5]

[1]: https://habrastorage.org/files/5f8/ab3/830/5f8ab3830829471fbf2e76431ad98407.png
[2]: https://habrahabr.ru/post/202264/
[3]: https://habrahabr.ru/post/209544/
[4]: http://www.artemlopatin.ru/gomoku/
[5]: https://habrahabr.ru/post/278837/#habracut

[>] Центр сертификации Let's Encrypt выдал миллион бесплатных сертификатов
habra.16
habrabot(difrex,1) — All
2016-03-09 17:00:03


![][1] 8 января 2016 года в 9:04 GMT центр сертификации [Let's Encrypt][2] выдал [миллионный TLS-сертификат][3]. Let's Encrypt – некоммерческая инициатива организации Mozilla и Фонда электронных рубежей (EFF), созданная на благо сообщества. Владелец любого домена может получить здесь сертификат TLS **совершенно бесплатно** и очень просто его установить ([пошаговая инструкция][4] на Хабре). Закрытое бета-тестирование началось 12 сентября 2015 года, а с 3 декабря сертификаты выдают всем желающим без предварительной регистрации и инвайтов. Это потрясающий успех проекта: для выдачи миллиона сертификатов понадобилось всего 3 месяца и 5 дней. [Читать дальше →][5]

[1]: https://letsencrypt.org/images/letsencrypt-logo-horizontal.svg
[2]: https://letsencrypt.org/
[3]: https://letsencrypt.org/stats/
[4]: https://habrahabr.ru/post/270273/
[5]: https://habrahabr.ru/post/278865/#habracut

[>] [Из песочницы] Как можно упростить себе жизнь с помощью Telegram-бота
habra.16
habrabot(difrex,1) — All
2016-03-09 17:30:02




# О чём эта статья?

Эта статья — краткий рассказ о том, как с помощью подручных средств (Firefox) и Python можно осуществить успешную интеграцию Telegram-бота и внешнего сервиса. Материал будет интересен тем, кто наслышан о Telegram'ных ботах, но не знает, как к ним подступиться и какие задачи с их помощью можно решать. Предполагается знание Python. Картинка для привлечения внимания: ![writing a twitter bot][1] (_[ссылка на оригинал][2]_)

# TL;DR

Из статьи вы узнаете: 1. Как с помощью браузера узнать, какой запрос отправляется на сервер при клике по кнопке?






2. Как легко отправить запрос на сервер с помощью Python?






3. Как написать бота на Python?






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

[1]: http://imgs.xkcd.com/comics/twitter_bot.png "PYTHON FLAG ENABLE THREE LAWS"
[2]: http://xkcd.com/1646/
[3]: https://habrahabr.ru/post/278847/#habracut

[>] Мы ищем тебя, чтобы помочь тебе заработать 5000$ этим летом
habra.16
habrabot(difrex,1) — All
2016-03-09 18:00:03


Хотим поделиться радостной новостью со всеми! Спустя 5 лет после [прошлого раза][1] проект ReactOS вновь принят в программу летних стажировок [Google Summer of Code][2]. А это значит что? Это значит, что мы изо всех сил ищем тех, кто с нашей помощью сможет заработать себе 5 тысяч долларов этим летом. ![][3] [Читать дальше →][4]

[1]: https://habrahabr.ru/post/115789/
[2]: https://habrahabr.ru/post/149789/
[3]: https://habrastorage.org/files/96d/1b5/9e8/96d1b59e8b154c859bbd0d42dd65da06.jpg
[4]: https://habrahabr.ru/post/278869/#habracut

[>] Ищем ошибки в игровом движке Xenko
habra.16
habrabot(difrex,1) — All
2016-03-09 18:30:03






Движков с открытым исходным кодом, написанных на C++, куда больше, чем аналогичных движков, написанных на C#. Но есть исключения. Xenko – один из движков, написанных на C# и имеющих открытый исходный код. О том, что же интересного удалось найти в коде этого движка, будет рассказано в этой статье. [Читать дальше →][1]

[1]: https://habrahabr.ru/post/278881/#habracut

[>] [Из песочницы] Проблемы после миграции с openvz на lxc в Proxmox 4.x
habra.16
habrabot(difrex,1) — All
2016-03-09 19:00:05






К сожалению, развитие openvz зашло в определенный тупик, платный вариант virtuozo сильно ушел по кодовой базе в бок и в какой-то момент оказалось, что openvz работает только на старом ядре версии 2.6.32, а работы по слиянию openvz и virtuozo7 идут, сказать честно, не быстро. Собственно это подтолкнуло команду proxmox в версии 4.0 отказаться от openvz в пользу lxc и ядра версии 4.2.6. К сожалению, команда proxmox совершенно не уделила внимания тестированию lxc в proxmox, всем, кто хочет хочет мигрировать с openvz, я настоятельно рекомендую воздержаться. Ниже я расскажу о всех трудностях и проблемах после миграции на lxc. [Читать дальше →][1]

[1]: https://habrahabr.ru/post/278877/#habracut

[>] Не пропустите подробности о новом SQL Server 2016 и поддержке Linux, смотрите онлайн мероприятие 10 марта в 18:00 (MCK)
habra.16
habrabot(difrex,1) — All
2016-03-09 19:00:05


Подключайтесь к [прямой трансляции][1] из Нью-Йорка «Презентация платформы управления данными на базе SQL Server 2016» [![][2]][3] [Добавьте][4] мероприятие в календарь. **По нашей ссылке на трансляцию будет доступен синхронный перевод на русский язык.** **Когда**: 10 марта 2016 **Начало трансляции**: 18:00 (МСК) [Немного подробностей][5]

[1]: https://channel9.msdn.com/Series/Presentation-of-data-management-platform-based-on-SQL-Server-2016
[2]: https://habrastorage.org/files/ebd/171/adb/ebd171adb4dc42aca998fa635ebe40f4.png
[3]: https://channel9.msdn.com/Series/Presentation-of-data-management-platform-based-on-SQL-Server-2016
[4]: https://www.microsoft.com/en-us/server-cloud/DataDriven_SQLServer2016_LiveEvent.ics
[5]: https://habrahabr.ru/post/278855/#habracut

[>] [Перевод] Ошибка в ядре Linux отправляет поврежденные TCP/IP-пакеты в контейнеры Mesos, Kubernetes и Docker
habra.16
habrabot(difrex,1) — All
2016-03-09 19:00:05


_А обнаружена она была на серверах Twitter_ Ядро Linux имеет ошибку, причиной которой являются контейнеры. Чтобы не проверять контрольные суммы TCP, для сетевой маршрутизации контейнеры используют veth-устройства (такие как Docker на IPv6, Kubernetes, Google Container Engine и Mesos). Это приводит к тому, что в ряде случаев приложения ошибочно получают поврежденные данные, как это происходит при неисправном сетевом оборудовании. Мы проверили, что эта ошибка появилась, по крайней мере, три года назад и до сих пор «сидит» в ядрах. Наш патч был проверен и введен в ядро, и в настоящее время обеспечивает ретроподдержку стабильного релиза 3.14 в различных дистрибутивах (таких как Suse и Canonical). Если Вы в своей системе используете контейнеры, я рекомендую Вам воспользоваться этим патчем или установить ядро вместе с ним, когда это станет доступным. _Примечание: это не относится к сетям с NAT, по умолчанию используемых для Docker, так как Google Container Engine практически защищен от ошибок «железа» своей виртуализированной сетью. Еще Джейк Бауэр (Jake Bower) считает, что эта ошибка очень похожа на ошибку [Pager Duty][1], обнаруженную ранее._

#### Как это все началось

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

[1]: https://www.pagerduty.com/blog/the-discovery-of-apache-zookeepers-poison-packet/
[2]: https://habrahabr.ru/post/278885/#habracut

[>] [recovery mode] Фреймворк Fortinet для защиты от продвинутых угроз
habra.16
habrabot(difrex,1) — All
2016-03-09 19:30:02


[![][1]][2] В этой статье описывается конечное решение по защите от современных угроз, так называемый Fortinet ATP (Advanced Threat Protection) Framework, позиционируется как полноценное модульное решение для кибербезопасности. Ниже приводится обзор решения для автоматизированной идентификации, предотвращения, подавления вредоносного ПО и обеспечения защиты всей экосистемы. [Читать дальше →][3]

[1]: https://habrastorage.org/files/aed/a09/bca/aeda09bca1fb4012abab326b01f03076.png
[2]: https://habrahabr.ru/company/muk/blog/277135/
[3]: https://habrahabr.ru/post/277135/#habracut

[>] libuniset2 — библиотека для создания АСУ. Лучше один раз увидеть…Часть 3 (Создание процесса управления)
habra.16
habrabot(difrex,1) — All
2016-03-09 19:30:03


В предыдущих частях ([часть 1][1] и [часть 2][2]) я описал создание проекта и привёл пример создания имитатора… Теперь же реализуем собственно алгоритм управления… [Читать дальше →][3]

[1]: http://habrahabr.ru/post/278535/
[2]: https://habrahabr.ru/post/278537/
[3]: https://habrahabr.ru/post/278565/#habracut

[>] Агрегат для node.js
habra.16
habrabot(difrex,1) — All
2016-03-09 19:30:03


[GitHub][1] и [NPM][2] библиотеки. ![][3] _какой-то неведомый агрегат, никак не связанный с node.js. Но на хабре считается хорошим тоном приложить картинку_ Некоторое время назад я задумался, почему же в node.js работа с реляционными БД, такими как \*SQL, и некоторыми noSQL типа Mongo, сложна, и сделал альтернативное решение, заточенное под скорость работы программиста (в сравнении с классическими решениями, заточенных под скорость работы с БД) и прямолинейность и компактность API для минимального порога вхождения. Первым источником вдохновления стал доклад ["минимальная поверхность API"][4], вторым — знаменитая [цитата][5] Дональда Крута:

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

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

[1]: https://github.com/jabher/agregate
[2]: https://www.npmjs.com/package/agregate
[3]: https://habrastorage.org/files/143/80b/c5e/14380bc5e2164333bd59da1f987c3adb.jpg
[4]: http://2014.jsconf.eu/speakers/sebastian-markbage-minimal-api-surface-area-learning-patterns-instead-of-frameworks.html
[5]: http://c2.com/cgi/wiki?PrematureOptimization
[6]: https://habrahabr.ru/post/278871/#habracut

[>] [Перевод] Интерфейсы — важнейшая концепция в разработке ПО
habra.16
habrabot(difrex,1) — All
2016-03-09 19:30:03


![image][1] Интерфейс можно считать своеобразным договором между системой и внешним окружением. В рамках компьютерной программы «система» — рассматриваемая функция или модуль, а «окружение» — весь остальной проект. Интерфейс формально описывает, какие данные могут передаваться между системой и окружением. А «реализацию» можно охарактеризовать как «система минус интерфейс». В языках наподобие Haskell интерфейсы могут быть крайне специфическими. А в языках вроде Python они, напротив, очень обыденны. Выбранный тип интерфейса может повлиять на размер созданного технического долга и производительность программиста. О том, как это посчитать, написано ниже. Также будет предложен метод для оценки и сравнения разных интерфейсов. На основании этих сравнений вы сможете сами понаблюдать за способами использования языка или программного инструмента. [Читать дальше →][2]

[1]: https://habrastorage.org/getpro/habr/post_images/cb9/7c2/aea/cb97c2aeaf7755a9a723134708259831.jpg
[2]: https://habrahabr.ru/post/278561/#habracut

[>] Релиз ownCloud 9.0 — opensource альтернатива Dropbox и другим облачным хранилищам
habra.16
habrabot(difrex,1) — All
2016-03-09 21:00:02


![][1] Вышел новый релиз [персональной облачной платформы ownCloud 9.0][2]. Я уже писал про [ownCloud раньше][3]. Я очень люблю этот комбайн из хранилища данных с синхронизацией, версионированием, галереей, календарем, хранением контактов и прочими плюшками. Серверная часть написана на PHP, поддерживаются протоколы WebDAV, CardDAV, CalDAV. Клиентский софт есть под Linux, OS-X, Windows, мобильных платформы и через web интерфейс. В теории может работать с петабайтными объемами данных. Сервис может работать в федеративном режиме — есть возможность объединять и линковать независимые ownCloud-инстансы, делиться каталогами и другими данными. В качестве файловой системы можно использовать GPFS, GlusterFS и другие распределенные варианты. Хорошо допилена интеграция в инфраструктуру Amazon. Changelog:

1. Возможность добавлять комментарии и теги к файлам
2. Новая система уведомлений
3. (Федеративный режим) Автодополнение имен пользователей
4. (Федеративный режим) Списки доверенных серверов
5. Код для дополненией и основных файлов наконец подписан
6. Добавили новую систему обновления
7. Улучшения производительности при совместном доступе к каталогам
8. Новое API для External Storage
9. Различные улучшения системы безопасности

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

[1]: https://habrastorage.org/files/07d/aa9/3ca/07daa93cacb5435e9e2ebc2eb60b3166.png
[2]: https://owncloud.org/
[3]: https://habrahabr.ru/post/233717/
[4]: https://habrahabr.ru/post/278893/#habracut

[>] Релиз ownCloud 9.0 — opensource альтернативы Dropbox и другим облачным хранилищам
habra.16
habrabot(difrex,1) — All
2016-03-09 22:00:02


![][1] Вышел новый релиз [персональной облачной платформы ownCloud 9.0][2]. Я уже писал про [ownCloud раньше][3]. Я очень люблю этот комбайн из хранилища данных с синхронизацией, версионированием, галереей, календарем, хранением контактов и прочими плюшками. Серверная часть написана на PHP, поддерживаются протоколы WebDAV, CardDAV, CalDAV. Клиентский софт есть под Linux, OS-X, Windows, мобильных платформы и через web интерфейс. В теории может работать с петабайтными объемами данных. Сервис может работать в федеративном режиме — есть возможность объединять и линковать независимые ownCloud-инстансы, делиться каталогами и другими данными. В качестве файловой системы можно использовать GPFS, GlusterFS и другие распределенные варианты. Хорошо допилена интеграция в инфраструктуру Amazon. Changelog:

1. Возможность добавлять комментарии и теги к файлам
2. Новая система уведомлений
3. (Федеративный режим) Автодополнение имен пользователей
4. (Федеративный режим) Списки доверенных серверов
5. Код для дополненией и основных файлов наконец подписан
6. Добавили новую систему обновления
7. Улучшения производительности при совместном доступе к каталогам
8. Новое API для External Storage
9. Различные улучшения системы безопасности

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

[1]: https://habrastorage.org/files/07d/aa9/3ca/07daa93cacb5435e9e2ebc2eb60b3166.png
[2]: https://owncloud.org/
[3]: https://habrahabr.ru/post/233717/
[4]: https://habrahabr.ru/post/278893/#habracut

[>] Книга «Алгоритмы: разработка и применение. Классика Computers Science»
habra.16
habrabot(difrex,1) — All
2016-03-09 23:30:02


Привет, Хаброжители! У нас вышла новинка: [![image][1]][2] Впервые на русском языке выходит одна из самых авторитетных книг по разработке и использованию алгоритмов. Алгоритмы — это основа программирования, определяющая, каким образом программное обеспечение будет использовать структуры данных. Вы познакомитесь с базовыми аспектами построения алгоритмов, основными понятиями и определениями, структурами данных, затем перейдете к основным методам построения алгоритмов, неразрешимости и методам решения неразрешимых задач, и, наконец, изучите рандомизацию при проектировании алгоритмов. Самые сложные темы объясняются на четких и простых примерах, поэтому книга может использоваться как для самостоятельного изучения студентами, так и учеными-исследователями или профессионалами в области компьютерных технологий, которые хотят получить представление о применении тех или иных методов проектирования алгоритмов. Алгоритмический анализ состоит из двух фундаментальных компонентов: выделения математи-чески чистого ядра задачи и выявления методов проектирования подходящего алгоритма на осно-вании структуры задачи. И чем лучше аналитик владеет полным арсеналом возможных методов проектирования, тем быст-рее он начинает распознавать «чистые» формулировки, лежащие в основе запутанных задач реального мира. [Читать дальше →][3]

[1]: https://habrastorage.org/files/9eb/f13/f8d/9ebf13f8dfd34b9dbdafa00279987a69.jpg
[2]: https://habrahabr.ru/company/piter/blog/278821/
[3]: https://habrahabr.ru/post/278821/#habracut

[>] [Из песочницы] Установка и настройка совместной работы GitLab + Redmine на Debian 8 jessie + Nginx — Часть 1
habra.16
habrabot(difrex,1) — All
2016-03-10 01:00:03




## Вступление

Так сложилось, что для ведения проекта не хватало обычного GitHub или GitBucket. Оснавная причина в хранении и контроле версий больших бинанрых файлов psd, 3dsmax и других. На самом деле вариантов решения масса, можно например было использовать Облачный диск или git Large Files System, представленный GitHub. Но взвесив все плюсы и минусы разных подходов к организации, мы пришли к связке GitLab + redmine. Я не думаю, что есть смысл описывать продукты, я лишь приведу основные достоинства, которые подтолкнули нас на этот выбор. Основные плюсы GitLab:

* Свой репозиторий.
* Тонкая настройка прав.
* Поддержка git lfs почти из коробки.

Также оба проекта Open Source. [Читать дальше →][1]

[1]: https://habrahabr.ru/post/278843/#habracut

[>] Книга «Алгоритмы: разработка и применение. Классика Computer Science»
habra.16
habrabot(difrex,1) — All
2016-03-10 10:30:02


Привет, Хаброжители! У нас вышла новинка: [![image][1]][2] Впервые на русском языке выходит одна из самых авторитетных книг по разработке и использованию алгоритмов. Алгоритмы — это основа программирования, определяющая, каким образом программное обеспечение будет использовать структуры данных. Вы познакомитесь с базовыми аспектами построения алгоритмов, основными понятиями и определениями, структурами данных, затем перейдете к основным методам построения алгоритмов, неразрешимости и методам решения неразрешимых задач, и, наконец, изучите рандомизацию при проектировании алгоритмов. Самые сложные темы объясняются на четких и простых примерах, поэтому книга может использоваться как для самостоятельного изучения студентами, так и учеными-исследователями или профессионалами в области компьютерных технологий, которые хотят получить представление о применении тех или иных методов проектирования алгоритмов. Алгоритмический анализ состоит из двух фундаментальных компонентов: выделения математи-чески чистого ядра задачи и выявления методов проектирования подходящего алгоритма на осно-вании структуры задачи. И чем лучше аналитик владеет полным арсеналом возможных методов проектирования, тем быст-рее он начинает распознавать «чистые» формулировки, лежащие в основе запутанных задач реального мира. [Читать дальше →][3]

[1]: https://habrastorage.org/files/9eb/f13/f8d/9ebf13f8dfd34b9dbdafa00279987a69.jpg
[2]: https://habrahabr.ru/company/piter/blog/278821/
[3]: https://habrahabr.ru/post/278821/#habracut

[>] Как делать парсинг текста голым хардвером, без процессора и без софтвера
habra.16
habrabot(difrex,1) — All
2016-03-10 11:30:02


Кто-то парсирует текстовый файл программой на Питоне, другой пишет скрипт с регулярными выражениями на Перле, Си-программист стыдливо возится с буферами и указателями, иногда применяя Yacc и Lex. А можно ли парсировать текст голым железом? Вообще без программы? — А как это?, — спросил меня знакомый, — С помощью Ардуино? — Внутри Ардуино стоит вполне фон-неймановский процессор и работает программа, — ответил я, — Нет, еще более голое железо. — А-а-а-а, этот, микрокод?, — догадался мой товарищ и взглянул на меня победно. — Нет, термин «микрокод» использовался для специфической организации процессоров в 1970-е годы, потом его использование сошло на нет, — ответил я и добавил, — Правда есть еще микрооперации в интеловских процессорах, в которые перекодируется x86, но это тоже _другое_. Нет, я имею в виду парсинг текста устройством, состоящим из логических элементов И-ИЛИ-НЕ и Д-триггерами, как на картинке ниже. — Невозможно! — воскликнул мой приятель, — в таком устройстве где-то сбоку должен сидеть процессор и хитро подмигивать! — Почему это невозможно?, — парировал я, — Вот машину Тьюринга знаешь? Парсирует текст на ленте, а сбоку никакие интелы и ардуино не подмигивают. — Нуу, машина Тьюринга, — протянул приятель, — это абстракция, типа Демона Максвелла. — Никакой абстракции, сейчас увидишь работающую схему, парсирующую текст, — сказал я и прибавил, — но сначала расскажу, зачем мне вообще это понадобилось. [![mfp_srec_parser_fragment][1]][2] [Читать дальше →][3]

[1]: https://habrastorage.org/getpro/habr/post_images/6c1/1d7/bf2/6c11d7bf23818087189b65cf20e7b142.png
[2]: http://www.silicon-russia.com/wp-content/uploads/2016/02/mfp_srec_parser_fragment.png
[3]: https://habrahabr.ru/post/278681/#habracut

[>] Бюллетень MS16-023: Когда критическое обновление безопасности Windows затрагивает не только безопасность
habra.16
habrabot(difrex,1) — All
2016-03-10 15:30:03


В минувшие дни Microsoft объявили о выпуске новых бюллетеней безопасности в числе которых содержится [MS16-023][1]. Задачей данного обновления безопасности является устранение критических уязвимостей в Internet Explorer позволяющих осуществлять исполнение произвольного кода. Однако, в Microsoft решили, что вместе с критическими обновлениями безопасности своим пользователям так же можно установить и что-нибудь еще… [Подробности][2]

[1]: https://technet.microsoft.com/library/security/MS16-023
[2]: https://habrahabr.ru/post/278933/#habracut

[>] Свежий взгляд на код Oracle VM VirtualBox
habra.16
habrabot(difrex,1) — All
2016-03-10 16:00:02


![][1]Виртуальные машины — важный инструмент в арсенале разработчика программного обеспечения. Мой интерес к коду VirtualBox вызван личным использованием этого продукта для проверки открытых проектов, а также для других разных задач, связанных с использованием нескольких операционных систем. Первая проверка этого проекта состоялась в 2014 году, тогда описание около 50 ошибок едва уместилось в двух статьях. C выходом Windows 10 и VirtualBox 5.0.XX, на мой взгляд, стабильность работы программы заметно ухудшилась. Поэтому я решил проверить проект ещё раз. [Читать дальше →][2]

[1]: https://habrastorage.org/getpro/habr/post_images/0f1/f27/a1c/0f1f27a1cdd68c9518629c46c5dd1d20.png
[2]: https://habrahabr.ru/post/278959/#habracut

[>] Ошибка в микрокоде процессоров AMD позволяет пользователям виртуальных машин получать доступ к хост-системе гипервизора
habra.16
habrabot(difrex,1) — All
2016-03-10 19:00:03


[![][1]][2] Исследователи [обнаружили][3] ошибку в микрокоде процессоров AMD, эксплуатация которой может позволять злоумышленникам проникать в хост-систему гипервизора из запущенной на нем виртуальной машины. Этой уязвимости подвержены компьютеры, использующие процессоры AMD Piledriver CPU (например, линейка чипов Opteron 6300) и микрокоды версий 0x6000832 и 0x6000836. [Читать дальше →][4]

[1]: https://habrastorage.org/files/dac/732/915/dac7329155904811ace83fe5ac1a8bc0.JPG
[2]: https://habrahabr.ru/company/pt/blog/278955/
[3]: http://www.theregister.co.uk/2016/03/06/amd_microcode_6000836_fix/
[4]: https://habrahabr.ru/post/278955/#habracut

[>] Что нового в Rails 5.0. Можно планировать переезд
habra.16
habrabot(difrex,1) — All
2016-03-10 19:30:03


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

[1]: https://habrastorage.org/getpro/habr/post_images/f52/c36/a59/f52c36a5909a9d619c671c031c501563.png
[2]: https://habrahabr.ru/post/278969/#habracut

[>] libuniset2 — библиотека для создания АСУ. Лучше один раз увидеть…Часть 4 (Наладка)
habra.16
habrabot(difrex,1) — All
2016-03-11 00:30:02


В предыдущих частях ([часть 1][1], [часть 2][2], [часть 3][3]) было описано создание двух процессов: имитатора и процесса управления… Теперь же настало **время наладки**. [Читать дальше →][4]

[1]: http://habrahabr.ru/post/278535/
[2]: http://habrahabr.ru/post/278537/
[3]: http://habrahabr.ru/post/278565/
[4]: https://habrahabr.ru/post/278589/#habracut

Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 ... 133