RSS
Pages: 1 ... 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210
[>] [Перевод] Как построить сообщество. Перевод книги «Социальная архитектура»: Предисловие. Мудрость толпы
habra.16
habrabot(difrex,1) — All
2018-01-05 10:45:09


![image][1]В «Рассуждениях о первой декаде Тита Ливия» Никколо Макиавелли есть следующие строки:
> «Что же до рассудительности и постоянства, то уверяю вас, что народ постояннее и много рассудительнее всякого государя. Не без причин голос народа сравнивается с гласом Божьим: в своих предсказаниях общественное мнение достигает таких поразительных результатов, что кажется, будто народ ясно предвидит».
В своей книге «Мудрость толпы» Джеймс Шуровьески писал: «при правильных условиях группы могут быть очень умными, а зачастую могут быть намного умнее, чем даже самый умный человек внутри группы». Он заметил, что коллективный разум обычно показывает лучшие результаты, чем небольшая группа экспертов, даже если члены группы не владеют всеми фактами или ведут себя иррационально, поступая по-своему.

Другими словами, группа случайных людей в среднем будет умнее нескольких экспертов. Этот тезис противоречит здравому смыслу и выглядит насмешкой над накопленной веками мудростью. Эксперты в области человеческого интеллекта (социологи, антропологи, психологи) встретили идеи Шуровьески далеко не с распростертыми объятиями. Он пошел дальше: «добавив в группу специалистов, вы сделаете ее глупее, а добавив дилетантов, повысите опять ее интеллектуальный уровень. Как и любой рецепт, это работает только при определенных обстоятельствах».
[Читать дальше →][2]

[1]: https://habrastorage.org/webt/dd/vy/lx/ddvylx8yyztptrfbglhgaltsmxq.jpeg
[2]: https://habrahabr.ru/post/346064/?utm_source=habrahabr&utm_medium=rss&utm_campaign=346064#habracut

[>] [Перевод] Почему программистам нужны ограничения
habra.16
habrabot(difrex,1) — All
2018-01-05 12:45:01


![][1]


Мы родились в культуре с девизом **_«Никаких границ»_** или **_«Раздвигай границы»_**, но на самом деле границы нам нужны. С ними мы становимся лучше, но это должны быть правильные границы.


#### Цензура ради качественной музыки


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

[1]: https://habrastorage.org/getpro/habr/post_images/942/bcf/3dd/942bcf3dd5903c6ff20e1ad32605b4d9.jpg
[2]: https://habrastorage.org/getpro/habr/post_images/438/197/738/4381977382e7dd75267ad6ac95a2434c.png
[3]: https://habrahabr.ru/post/345886/?utm_source=habrahabr&utm_medium=rss&utm_campaign=345886#habracut

[>] [Перевод] Выпуск Rust 1.23
habra.16
habrabot(difrex,1) — All
2018-01-05 15:15:11


Команда Rust рада сообщить о новой версии Rust: 1.23.0. Rust — это системный язык программирования, нацеленный на безопасность, скорость и параллельное выполнение кода.



Если у вас установлена предыдущая версия Rust, для обновления достаточно выполнить:


$ rustup update stable

Если же у вас еще не установлен `rustup`, вы можете [установить его][1] с соответствующей страницы нашего веб-сайта. С [подробными примечаниями к выпуску Rust 1.23.0][2] можно ознакомиться на GitHub.



## Что вошло в стабильную версию 1.23.0 {#chto-voshlo-v-stabilnuyu-versiyu-1230}



Новый год, новый Rust! Нашим первым улучшением является [избавление от избыточных копий][3] в некоторых ситуациях. С этими изменениями потребление памяти `rustc` уменьшилось на 5-10%, но результаты для ваших приложений могут отличаться.



Команда документации прошла долгий путь для того чтобы `rustdoc` использовал [CommonMark][4]. До этого `rustdoc` не гарантировал какой движок отрисовки markdown он использовал. В рамках этого выпуска мы все еще визуализируем документацию нашим прошлым движком — [Hoedown][5] — но параллельно визуализируем еще и совместимым с CommonMark движком, выдавая предупреждения при различных результатах. Нам еще не встречались ситуации, где нельзя было бы изменить синтаксис документа так, чтобы он удовлетворял обоим движкам сразу. Участник команды документации Guillaume Gomez [написал заметку об этом в своем журнале][6], где показаны некоторые часто встречающиеся отличия движков и способы их обхода.

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

[1]: https://www.rust-lang.org/install.html
[2]: https://github.com/rust-lang/rust/blob/master/RELEASES.md#version-1230-2018-01-04
[3]: https://github.com/rust-lang/rust/pull/45380
[4]: http://commonmark.org/
[5]: https://github.com/hoedown/hoedown
[6]: https://blog.guillaume-gomez.fr/articles/2017-09-18+New+rustdoc+rendering+common+errors
[7]: https://habrahabr.ru/post/346106/?utm_source=habrahabr&utm_medium=rss&utm_campaign=346106#habracut

[>] 5-минутный гид по эзотерическим языкам программирования: зачем они нужны
habra.16
habrabot(difrex,1) — All
2018-01-05 18:00:11


В [первой части][1] нашего рассказа об эзотерических языках мы попытались классифицировать их по разным параметрам — от литературных и кинематографических «отсылок», заложенных в синтаксис, до полноты по Тьюрингу. Сегодня о предназначении эзотерических языков программирования.

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

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

[1]: https://habrahabr.ru/company/spbifmo/blog/344680/
[2]: https://habrastorage.org/webt/1f/ky/n0/1fkyn0pkvehk3s2akebt0ddduti.jpeg
[3]: https://habrahabr.ru/company/spbifmo/blog/346042/
[4]: https://habrahabr.ru/post/346042/?utm_source=habrahabr&utm_medium=rss&utm_campaign=346042#habracut

[>] [Из песочницы] Meltdown: влияет не только на производительность
habra.16
habrabot(difrex,1) — All
2018-01-05 18:45:20


## Обновления безопасности


Компания Microsoft выпустила обновления безопасности для операционных систем Windows, исправляющие критические уязвимости в процессорах Intel, AMD и ARM, которые исправляют раскрытые на днях уязвимости [Meltdown ][1]и Spectre. Патчи могут привести к снижению производительности на затронутых системах и не только. Ниже будут приведены 2 скриншота и пояснения к ним.


## Экспресс-тест на примере 7-Zip


**До установки обновления безопасности KB4056890 (версия 1607)**
![image][2]

**После установки обновления безопасности KB4056890 (версия 1607)**
![image][3]

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

[1]: https://ru.wikipedia.org/wiki/Meltdown_(уязвимость)
[2]: https://habrastorage.org/webt/gf/o-/d8/gfo-d8yp0mrklbvwnu7fqybdq94.png
[3]: https://habrastorage.org/webt/zj/mu/qd/zjmuqdqqczpo56pl0n4jja4-4jg.png
[4]: https://habrahabr.ru/post/346114/?utm_source=habrahabr&utm_medium=rss&utm_campaign=346114#habracut

[>] 31 февраля
habra.16
habrabot(difrex,1) — All
2018-01-05 23:15:20


![31 февраля][1]


Сейчас я изучаю отчёт очередной проверки проекта Chromium и используемых в нём библиотек, с помощью анализатора кода PVS-Studio. По итогам проверки у меня намечается цикл статей, посвященный разбору некоторых видов ошибок, и тому, как их можно избежать. Однако, одна ошибка так сильно понравилась, что я решил не откладывать её описание, а сразу написать маленькую заметку в блог.
[Читать дальше →][2]

[1]: https://habrastorage.org/getpro/habr/post_images/dff/572/6fc/dff5726fc4a885c95a3cbfc1a028818d.png
[2]: https://habrahabr.ru/post/346128/?utm_source=habrahabr&utm_medium=rss&utm_campaign=346128#habracut

[>] [Из песочницы] Так почему же ты не участвуешь в разработке Open Source программного обеспечения?
habra.16
habrabot(difrex,1) — All
2018-01-06 02:15:05


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

Представляем перевод статьи Егора Бугаенко [**«Why Don't You Contribute to Open Source?»**][1]:
[Читать дальше →][2]

[1]: http://www.yegor256.com/2015/12/22/why-dont-you-contribute-to-open-source.html
[2]: https://habrahabr.ru/post/346130/?utm_source=habrahabr&utm_medium=rss&utm_campaign=346130#habracut

[>] [Перевод] 640 КБ на самом деле хватит всем
habra.16
habrabot(difrex,1) — All
2018-01-08 11:45:04


![image][1]



### Никогда не сдавайтесь


Действительно ли Билл Гейтс произнёс фразу «640 КБ должно хватить всем»? Её история довольно туманна, однако чаще всего её приписывают Биллу, так что, возможно, он действительно такое говорил.

Его довольно часто за это высмеивали. Мысль о общем пространстве памяти размером всего 640 КБ по современным стандартам смехотворна. В этот размер не уместится даже исполняемые файлы большинства программ-установщиков.

Для сравнения: калькулятор в Windows 10 занимает в состоянии простоя 16,2 оперативной памяти — почти в 26 раз больше, чем объём доступной DOS-программам памяти в 1980-х.


### Странные дела


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

Наверно, вашим первым вопросом будет «Но зачем?» И я хорошо вас понимаю. Давайте рассмотрим некоторые группы, которые до сих пор заинтересованы во вложениях усилий в DOS.
[Читать дальше →][2]

[1]: https://habrastorage.org/getpro/habr/post_images/52e/5d7/ebc/52e5d7ebceca840eb2174402edfc9c20.png
[2]: https://habrahabr.ru/post/346178/?utm_source=habrahabr&utm_medium=rss&utm_campaign=346178#habracut

[>] [Перевод] Добро пожаловать в эру глубокой нейроэволюции
habra.16
habrabot(difrex,1) — All
2018-01-08 15:15:06


![image][1]

От имени команды Uber AI Labs, которая также включает Joel Lehman, Jay Chen, Edoardo Conti, Vashisht Madhavan, Felipe Petroski Such и Xingwen Zhang.

В области обучения глубоких нейронных сетей (DNN) с большим количеством слоев и миллионами соединений, для тренировки, как правило, применяется стохастический градиентный спуск (SGD). Многие полагают, что способность SGD эффективно вычислять градиенты является исключительной особенностью. Однако мы публикуем набор из пяти статей в поддержку [нейроэволюции][2], когда нейронные сети оптимизируются с помощью эволюционных алгоритмов. Данный метод также является эффективным при обучении глубоких нейронных сетей для задач обучения с подкреплением (RL). Uber [имеет множество областей][3], где машинное обучение может улучшить его работу, а разработка широкого спектра мощных подходов к обучению (включая нейроэволюцию), поможет разработать более безопасные и надежные транспортные решения.
[Читать дальше →][4]

[1]: https://habrastorage.org/getpro/habr/post_images/8ef/1a1/51e/8ef1a151eaf9383f17b13d650c6b33b3.png
[2]: https://www.oreilly.com/ideas/neuroevolution-a-different-kind-of-deep-learning
[3]: https://eng.uber.com/machine-learning/
[4]: https://habrahabr.ru/post/345950/?utm_source=habrahabr&utm_medium=rss&utm_campaign=345950#habracut

[>] Vim: поиск по документации на Javascript
habra.16
habrabot(difrex,1) — All
2018-01-08 15:15:06


Обычно я работаю в Kate или Geany. Но иногда, как и всем людям, мне хочется освоить Vim. И каждый раз, примерно на второй минуте «освоения» возникает какой-нибудь совершенно дурацкий вопрос. Например, почему при нажатии стрелок (или клавиш jk) курсор скачет сразу через все строки абзаца?



Как бы я ни старался свои вопросы формулировать, поиск каждый раз выдаёт мне примерно одни и те же сто сайтов с заголовками вроде «100 самых полезных команд Vim». И какой бы сайт я ни выбрал, на нём всегда не будет хватать именно той «команды», которая мне нужна как раз сейчас.



Я подумал, как бы найти не сто, а вообще все команды Вим. И нашёл-таки страничку в сети, которая так и называлась: «Все команды Vim». И там действительно был очень большой список — штук шестьсот слов. Но не было указано, что эти команды делают, — просто список терминов. Меня так разозлила эта шутка, что я решил, наконец, **почитать документацию** и раз и навсегда составить свой собственный список «всех команд Vim». Результат на экране. Подробности ниже.



![][1]


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

[1]: https://habrastorage.org/webt/hy/qj/y-/hyqjy-1c-a8r7rrsi-kphttnneq.png
[2]: https://habrahabr.ru/post/346196/?utm_source=habrahabr&utm_medium=rss&utm_campaign=346196#habracut

[>] [Перевод] Поиск ошибки в дизайне процессора Xbox 360
habra.16
habrabot(difrex,1) — All
2018-01-08 16:45:04


_Вашему вниманию предлагается перевод свежей статьи Брюса Доусона – разработчика, сегодня работающего в Google над Chrome для Windows._

Недавнее открытие уязвимостей [Meltdown][1] и [Spectre][2] напомнило мне о том случае, как однажды я обнаружил подобную уязвимость в процессоре Xbox 360. Её причиной была недавно добавленная в процессор инструкция, само существование которой представляло собой опасность.

В 2005 году я занимался процессором Xbox 360. Я жил и дышал исключительно этим чипом. У меня на стене до сих пор висят полупроводниковая пластина процессора диаметром в 30 см и полутораметровый постер с архитектурой этого CPU. Я потратил так много времени на то, чтобы понять, как работают вычислительные конвейеры процессора, что, когда меня попросили выяснить причину загадочных падений, я смог интуитивно догадаться о том, что к их появлению могла привести ошибка в дизайне процессора.

Однако, прежде чем перейти к самой проблеме, сначала немного теории.
[Читать дальше →][3]

[1]: https://meltdownattack.com/meltdown.pdf
[2]: https://spectreattack.com/spectre.pdf
[3]: https://habrahabr.ru/post/346250/?utm_source=habrahabr&utm_medium=rss&utm_campaign=346250#habracut

[>] [Перевод] Поиск ошибки в архитектуре процессора Xbox 360
habra.16
habrabot(difrex,1) — All
2018-01-08 17:30:05


_Вашему вниманию предлагается перевод свежей статьи Брюса Доусона – разработчика, сегодня работающего в Google над Chrome для Windows._

Недавнее открытие уязвимостей [Meltdown][1] и [Spectre][2] напомнило мне о том случае, как однажды я обнаружил подобную уязвимость в процессоре Xbox 360. Её причиной была недавно добавленная в процессор инструкция, само существование которой представляло собой опасность.

В 2005 году я занимался процессором Xbox 360. Я жил и дышал исключительно этим чипом. У меня на стене до сих пор висят полупроводниковая пластина процессора диаметром в 30 см и полутораметровый постер с архитектурой этого CPU. Я потратил так много времени на то, чтобы понять, как работают вычислительные конвейеры процессора, что, когда меня попросили выяснить причину загадочных падений, я смог интуитивно догадаться о том, что к их появлению могла привести ошибка в дизайне процессора.

Однако, прежде чем перейти к самой проблеме, сначала немного теории.
[Читать дальше →][3]

[1]: https://meltdownattack.com/meltdown.pdf
[2]: https://spectreattack.com/spectre.pdf
[3]: https://habrahabr.ru/post/346250/?utm_source=habrahabr&utm_medium=rss&utm_campaign=346250#habracut

[>] [Из песочницы] Пишем бота-кликера на Python для Lineage 2
habra.16
habrabot(difrex,1) — All
2018-01-08 20:00:17


### Предисловие



![][1]



Как можно развлечься в новогодние праздники? Поиграть в компьютерные игры? Нет! Лучше написать бота, который это будет делать за тебя, а самому пойти лепить снеговика и пить глинтвейн.



Когда-то в школьные годы был увлечен одной из популярных MMORPG — Lineage 2. В игре можно объединяться в кланы, группы, заводить друзей и сражаться с соперниками, но в общем игра наполнена однообразными действиями: выполнением квестов и фармом (сбор ресурсов, получение опыта).



В итоге решил, что бот должен решать одну задачу: фарм. Для управления будут использоваться эмулированные клики мыши и нажатия клавиш клавиатуры, а для ориентирования в пространстве — компьютерное зрение, язык программирования — Python.

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

[1]: https://habrastorage.org/webt/au/qu/9v/auqu9vofroghnpf5mezhdughqw8.jpeg
[2]: https://habrahabr.ru/post/346258/?utm_source=habrahabr&utm_medium=rss&utm_campaign=346258#habracut

[>] Вычисления на видеокарте, руководство, лёгкий уровень
habra.16
habrabot(difrex,1) — All
2018-01-08 23:00:05


Это руководство поясняет работу простейшей программы, производящей вычисления на GPU. Вот ссылка на проект Юнити этой программы:

[ссылка на файл проекта .unitypackage][1]

Она рисует фрактал Мандельброта.

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

Шейдер, который рисует фрактал, написан на языке HLSL. Ниже приведён его текст. Я кратко прокомментировал значимые строки, а развёрнутые объяснения будут ниже.
[Читать дальше →][2]

[1]: https://drive.google.com/open?id=1NlaEh0NiRRtmunTBDyPGTNlgtsLACAzq
[2]: https://habrahabr.ru/post/346260/?utm_source=habrahabr&utm_medium=rss&utm_campaign=346260#habracut

[>] Физическое моделирование на GPU с использованием compute shader в среде Unity3D
habra.16
habrabot(difrex,1) — All
2018-01-09 00:30:05


В этом руководстве я расскажу, как использовать compute shader для реализации вычислений на видеокарте — на примере модели волос:

> [View post on imgur.com][1]


Вот проект для Unity3D, на объяснении работы которого построено руководство. Его нужно скачать и открыть в Юнити:

[ссылка на проект юнити][2]

Кому это руководство будет понятно? Тем, кто использует Unity3D или по крайней мере знает C# или C++. Шейдер написан на HLSL, близком синтаксическом родственнике C++.
Кому это руководство будет полезно? Опытным программистам, желающим научиться использовать GPU для вычислений. Но даже неопытный, но прилежный программист легко всё поймёт.
[Читать дальше →][3]

[1]: https://imgur.com/pxfW7cC
[2]: https://drive.google.com/open?id=1LTgdVaiOuGuXhb6Mhc_Z1gStP7muxZlO
[3]: https://habrahabr.ru/post/346268/?utm_source=habrahabr&utm_medium=rss&utm_campaign=346268#habracut

[>] [Из песочницы] Кластеризация и визуализация текстовой информации
habra.16
habrabot(difrex,1) — All
2018-01-09 00:30:05


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

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

[>] [Перевод] Вышел GitLab 10.3: статическое тестирование безопасности приложений и тестирование производительности в браузере
habra.16
habrabot(difrex,1) — All
2018-01-09 00:45:05


![Картинка для привлечения внимания][1]



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


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

[1]: https://habrastorage.org/getpro/habr/post_images/aef/cfc/3cf/aefcfc3cfa1845eef69309719f2c5104.jpg
[2]: https://habrahabr.ru/post/346030/?utm_source=habrahabr&utm_medium=rss&utm_campaign=346030#habracut

[>] «Письмо турецкому султану» или линейная регрессия на C# с помощью Accord.NET для анализа открытых данных Москвы
habra.16
habrabot(difrex,1) — All
2018-01-09 01:30:05


Когда речь идет об освоении самых основ машинного обучения, чаще всего предлагается изучить соответствующие инструменты на [Python или R][1]. Мы не будем обсуждать их плюсы и минусы, а просто зададимся вопросом, что делать если вы знакомы только с экосистемой .NET, но при этом вам очень любопытно окунутся в мир науки о данных? Ответ прост, не отчаиваться и посмотреть в сторону [F#][2], а если вы также, как и я из .NET знаете только азы C#, то попробовать изучить [Accord.NET Framework][3].

Мы с вами уже разбирали его применение для решения [задачи классификации][4], а в этот раз попробуем рассмотреть простейший инструментарий для линейной регрессии. Для этого мы воспользуемся открытыми данными по анализу обращений граждан взятыми с официального [сайта Мэра Москвы][5].

Несмотря на то, что в заголовке статьи указан **C#**, мы попробуем собрать код и на **VB.NET**.

Мне осталось только пригласить вас под кат!

![][6]

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

[1]: https://habrahabr.ru/company/piter/blog/263457/
[2]: http://fsharp.org/guides/data-science/
[3]: http://accord-framework.net/
[4]: https://habrahabr.ru/post/337438/
[5]: https://www.mos.ru/feedback/reviews/
[6]: https://habrastorage.org/webt/tl/cm/_p/tlcm_peakreh_o-nrwvik2ecvrq.jpeg
[7]: https://habrahabr.ru/post/346222/?utm_source=habrahabr&utm_medium=rss&utm_campaign=346222#habracut

[>] Пакос делал просто. Понятная статья о консенсусе в распределенной системе
habra.16
habrabot(difrex,1) — All
2018-01-09 02:15:05


В данной статье мы разберем алгоритм консенсуса Пакос, обсудим зачем он нужен, почему работает, докажем его корректность и немого поговорим о проблемах практического применения. Во многом это вольный пересказ статьи Лесли Лампорта [«Paxos Made Simple»][1]


## Зачем нужен распределенный консенсус и что это такое


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

[1]: https://lamport.azurewebsites.net/pubs/paxos-simple.pdf
[2]: https://habrastorage.org/webt/zs/lp/1h/zslp1hbvnuhwmz74v3lobcs53km.png
[3]: https://habrahabr.ru/post/346180/?utm_source=habrahabr&utm_medium=rss&utm_campaign=346180#habracut

[>] Паксос делал просто. Понятная статья о консенсусе в распределенной системе
habra.16
habrabot(difrex,1) — All
2018-01-09 02:45:17


В данной статье мы разберем алгоритм консенсуса Паксос, обсудим зачем он нужен, почему работает, докажем его корректность и немого поговорим о проблемах практического применения. Во многом это вольный пересказ статьи Лесли Лампорта [«Paxos Made Simple»][1]


## Зачем нужен распределенный консенсус и что это такое


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

[1]: https://lamport.azurewebsites.net/pubs/paxos-simple.pdf
[2]: https://habrastorage.org/webt/zs/lp/1h/zslp1hbvnuhwmz74v3lobcs53km.png
[3]: https://habrahabr.ru/post/346180/?utm_source=habrahabr&utm_medium=rss&utm_campaign=346180#habracut

[>] Алгиритм Пакос. Понятная статья о консенсусе в распределенной системе
habra.16
habrabot(difrex,1) — All
2018-01-09 05:00:02


В данной статье мы разберем алгоритм консенсуса Паксос, обсудим зачем он нужен, почему работает, докажем его корректность и немого поговорим о проблемах практического применения. Во многом это вольный пересказ статьи Лесли Лампорта [«Paxos Made Simple»][1]


## Зачем нужен распределенный консенсус и что это такое


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

[1]: https://lamport.azurewebsites.net/pubs/paxos-simple.pdf
[2]: https://habrastorage.org/webt/zs/lp/1h/zslp1hbvnuhwmz74v3lobcs53km.png
[3]: https://habrahabr.ru/post/346180/?utm_source=habrahabr&utm_medium=rss&utm_campaign=346180#habracut

[>] Алгоритм Пакcос. Понятная статья о консенсусе в распределенной системе
habra.16
habrabot(difrex,1) — All
2018-01-09 05:15:04


В данной статье мы разберем алгоритм консенсуса Паксос, обсудим зачем он нужен, почему работает, докажем его корректность и немого поговорим о проблемах практического применения. Во многом это вольный пересказ статьи Лесли Лампорта [«Paxos Made Simple»][1]


## Зачем нужен распределенный консенсус и что это такое


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

[1]: https://lamport.azurewebsites.net/pubs/paxos-simple.pdf
[2]: https://habrastorage.org/webt/zs/lp/1h/zslp1hbvnuhwmz74v3lobcs53km.png
[3]: https://habrahabr.ru/post/346180/?utm_source=habrahabr&utm_medium=rss&utm_campaign=346180#habracut

[>] MSSQL SERVER – пример применения связанного сервера
habra.16
habrabot(difrex,1) — All
2018-01-09 10:00:04


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

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

[>] ТАУ для самых маленьких: пример реализации ПИД-регулятора в Unity3D
habra.16
habrabot(difrex,1) — All
2018-01-09 12:45:05


# Вместо введения



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

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

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

[>] [Из песочницы] Представления знаний в интеллектуальных системах, экспертные системы
habra.16
habrabot(difrex,1) — All
2018-01-09 12:45:04


## Введение {#vvedenie}



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



## Структура экспертной системы {#struktura-ekspertnoy-sistemy}



![image][1]

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

[1]: https://habrastorage.org/webt/hc/v3/m0/hcv3m09fenkeguyj_6zbvtw9nso.png
[2]: https://habrahabr.ru/post/346236/?utm_source=habrahabr&utm_medium=rss&utm_campaign=346236#habracut

[>] Как я парсил Хабр, часть 1: тренды
habra.16
habrabot(difrex,1) — All
2018-01-09 12:45:05


Когда был доеден новогодний оливье, мне стало нечего делать, и я решил скачать себе на компьютер все статьи с Хабрахабра (и смежных платформ) и поисследовать.



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


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

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

[>] Разрабатываем крутой GUI на esp8266 с библиотекой uGFX
habra.16
habrabot(difrex,1) — All
2018-01-09 12:45:04


В многих проектах для esp8266 я использую TFT экран с тачскрином. В зависимости, от проекта интерфейс может быть простым, например, текстовая консоль, выводящая лог работы приложения или просто график изменения входного сигнала. А в некоторых — сложный GUI, с несколькими экранами, графическими кнопками, строками ввода текста и даже виртуальной клавиатурой.
В этой статье хочу поделиться опытом, как можно подключить экран с тачскрином к esp8266 и реализовать графический интерфейс в среде Arduino.



Видео-тизер:




Итак, приступим

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

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

[>] Attention! S in Ethereum stands for Security. Part 1. Blockchain things
habra.16
habrabot(difrex,1) — All
2018-01-09 14:30:18


![][1]



С этой статьи мы начинаем цикл, посвященный типичным уязвимостям, атакам и проблемным местам, присущим смарт-контрактам на языке Solidity, и платформе Ethereum в целом. В первой части мы поговорим вот о чем:


* почему сложно реализовать децентрализованную биржу на смарт-контрактах
* как сгенерировать случайное число
* как вывести из строя всю Proof-of-Authority сеть[Читать дальше →][2]

[1]: https://habrastorage.org/webt/2p/mr/ud/2pmrudjnousyj6oodl0zj3_xxls.png
[2]: https://habrahabr.ru/post/345196/?utm_source=habrahabr&utm_medium=rss&utm_campaign=345196#habracut

[>] Веб-мессенджеры и эвент 'beforeunload': как сохранить миллион сообщений при закрытии страницы
habra.16
habrabot(difrex,1) — All
2018-01-09 16:00:06


![][1]


В конце лета мы [добавили][2] в наше облако Voximplant поддержку месседжинга. Теперь с помощью него и россыпи SDK под разные платформы можно делать собственные мобильные или веб-мессенджеры: голосовые звонки в любых комбинациях между телефонными сетями и SDK — есть, видеозвонки между SDK — есть, месседжинг — есть. А еще у текстовых сообщений есть ключевое отличие от голосовых и видеозвонков: их контент должен оставаться. Voximplant может записать голосовой и видеозвонок на стороне облака и отдать URL с получившимся файлом, но это «медленная» история для CRM, систем управления заказами и колл-центров. А сообщения — это быстрая история. Пользователь очень огорчается, когда клик по «старому» чату в Skype вызывает зависание мобильного или веб-приложения, которое пытается выкачать хоть сколько-нибудь истории с нагруженных серверов по неустойчивому 3G. В наших SDK мы предусмотрели несколько механизмов для максимально быстрой работы с историей сообщений, о которых под катом.
[Читать дальше →][3]

[1]: https://habrastorage.org/webt/3i/e0/oh/3ie0ohvibder1-_0y1c4-tvag2s.jpeg
[2]: https://habrahabr.ru/company/Voximplant/blog/336038/
[3]: https://habrahabr.ru/post/346188/?utm_source=habrahabr&utm_medium=rss&utm_campaign=346188#habracut

[>] Настройка Azure Application Insights для диагностики ПО с микросервисной архитектурой
habra.16
habrabot(difrex,1) — All
2018-01-09 17:00:17


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



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



Что в первую очередь должна делать система диагностики в микросервисной архитектуре?
Правильно, коррелировать диагностику от различных микросервисов в рамках одной операции.
Тыркнул пользователь в UI кнопочку — надо увидеть диагностику от всех N микросервисов, которые так или иначе обрабатывали этот тырк. Случился где-нибудь exception — надо увидеть не только в каком микросервисе он произошёл, но и в рамках какой операции это случилось.
Только вот Application Insights с точки зрения конкретного микросервиса — это в первую очередь SDK. И SDK таких есть несколько — есть для JS, есть для .NET Core, .NET (со своими особенностями настройки для MVC, WebAPI, WCF), есть для Java и [т.д.][1]



Какие-то из этих SDK — opensource, какие-то — внутренняя разработка MS. И чтобы всё завелось — их надо подружить.



В этом и состоит основная сложность.



Не скажу, что я достиг 100% просветления в этом вопросе.
Но по крайней мере, я уже собрал несколько граблей и у меня есть рабочий семпл с UI на ASP.NET MVC (не Core) + JS и двумя микросервисами (Asp.Net WebApi, WCF)



Кому интересно — прошу под кат.

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

[1]: https://docs.microsoft.com/en-us/azure/application-insights/
[2]: https://habrahabr.ru/post/346148/?utm_source=habrahabr&utm_medium=rss&utm_campaign=346148#habracut

[>] [Из песочницы] Что делать, когда малое предприятие всерьез задумалось о переходе с Windows на Linux
habra.16
habrabot(difrex,1) — All
2018-01-09 18:30:05


Предисловие. Надеюсь мой рассказ поможет начинающим или нерешительным юзерам быстро и без проволочек перейти на Линукс с Винды, не удаляя Windows.

Начало. Волей судьбы я являюсь системным администратором малого предприятия (менее 10 машин) в сфере услуг. Руководство уже не первый год задумывалось о переходе на Linux, однако первые эксперименты (выбирали Fedora), нельзя было назвать полностью успешными, не нравился интерфейс, работа с программами и оборудованием.

Однако руководство хоть и опечалилось, однако, не унывало и после очередной беседы с хорошим программистом на Python (максимальный респект ему), озадачило меня, не знакомого особо с Линукс, попробовать установить на всех рабочих машинах Линукс Минт с интерфейсом
Mate (linuxmint-18.1-mate-64bit если быть точным) параллельно с Windows.
[Читать дальше →][1]

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

[>] Подбираем пароли с помощью Google Chrome
habra.16
habrabot(difrex,1) — All
2018-01-09 20:45:05


Согласно многочисленным исследованиям в области компьютерной безопасности, в ТОП-3 уязвимостей информационных систем входит подбор пароля.



Почти для каждой информационной системы сегодня существуют свои дефолтные учётные записи, которые широко распространены в сети Интернет. Например, их можно взять [отсюда.][1]



В случае, если мы имеем какой-либо портал, где пользователи – это люди, то бОльшую часть уязвимых слабых паролей можно отнести к одной из 4 групп:


1. Пароли, входящие в топ самых популярных фраз (такие как «123456», «password», и т.п.).
2. Пароли, представляющие собой сочетание клавиш – так называемые keyboard-walks пароли (например, «qwerty», «qazwsx», и т.п.).
3. Пароли – искажённые логины («user123», «user321», и т.п.).
4. Либо использование в качестве пароля популярных русских слов или имён в «перевёрнутой» раскладке («ljcneg», «fylhtq»)[Читать дальше →][2]

[1]: http://www.phenoelit.org/dpl/dpl.html
[2]: https://habrahabr.ru/post/346284/?utm_source=habrahabr&utm_medium=rss&utm_campaign=346284#habracut

[>] «Простое» программирование на python
habra.16
habrabot(difrex,1) — All
2018-01-10 00:30:05


![][1]


> **functools** (это такая свалка для всяких ненужных мне вещей :-).
> — Гвидо ван Россум

Может показаться, что статья о ФП, но я не собираюсь обсуждать парадигму. Речь пойдет о переиспользовании и упрощении кода — я попытаюсь доказать, что вы пишете слишком много кода, поэтому он сложный и тяжело тестируется, но самое главное: его долго читать и менять.



В статье заимствуются примеры и/или концепции из библиотеки [funcy][2]. Во-первых, она клевая, во-вторых, вы сразу же сможете начать ее использовать. И да, нам понадобится ФП.

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

[1]: https://habrastorage.org/webt/tx/p0/gh/txp0gh9hmwm_nqznbhhkjgrc1r4.png
[2]: https://github.com/Suor/funcy
[3]: https://habrahabr.ru/post/346272/?utm_source=habrahabr&utm_medium=rss&utm_campaign=346272#habracut

[>] [Из песочницы] Мега-Учебник Flask Глава 1: Привет, мир! (переиздание 2018)
habra.16
habrabot(difrex,1) — All
2018-01-10 00:30:05


[blog.miguelgrinberg.com][1]



# Мега-Учебник Flask, Часть 1: Hello, World! {#mega-uchebnik-flask-chast-1-hello-world}



### _Miguel Grinberg_ {#miguel-grinberg}


----


Эта статья является переводом нового издания учебника Мигеля Гринберга. [Прежний перевод][2] давно утратил свою актуальность. Оригинальный учебник избавлен от некоторых неточностей, вызванных развитием веб за те 5 лет, что существует эта книга.



Автор планирует завершить его выпуск в мае 2018. Я, со своей стороны, постараюсь не отставать с переводом.



[**VIDEO**][3]

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

[1]: http://blog.miguelgrinberg.com "blog.miguelgrinberg.com"
[2]: https://habrahabr.ru/post/193242/ "Прежний перевод"
[3]: https://player.vimeo.com/video/248628320 "video"
[4]: https://habrahabr.ru/post/346306/?utm_source=habrahabr&utm_medium=rss&utm_campaign=346306#habracut

[>] Аутентификация в мобильных приложениях
habra.16
habrabot(difrex,1) — All
2018-01-10 00:30:05


## История с предысторией


Идеальный телефон, как верный пёс, должен узнавать хозяина по запаху и охранять имущество от посторонних.

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

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

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

Скоро этого стало не хватать. У первобытных программистов появились идентификаторы, затем логин с паролем – и вот перед нами классическая Basic Authentication протокола HTTP.
[Читать дальше →][1]

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

[>] [Перевод] Небезопасные абстракции
habra.16
habrabot(difrex,1) — All
2018-01-10 01:00:10


# Небезопасные (`unsafe`) абстракции {#nebezopasnye-unsafe-abstrakcii}



Ключевое слово `unsafe` является неотъемлемой частью дизайна языка Rust. Для тех кто не знаком с ним: `unsafe` — это ключевое слово, которое, говоря простым языком, является способом обойти проверку типов (_type checking_) Rust'а.



Существование ключевого слова `unsafe` для многих поначалу является неожиданностью.
В самом деле, разве то, что программы не "падают" от ошибок при работе с памятью,
не является особенностью Rust? Если это так, то почему имеется легкий способ обойти
систему типов? Это может показаться дефектом языка.



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



Данная заметка представляет ключевое слово `unsafe` и идею ограниченной "небезопасности".
Фактически это предвестник [заметки][1], которую я надеюсь написать чуть позже.
Она обсуждает модель памяти Rust, которая указывает, что можно, а что нельзя делать в `unsafe` коде.

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

[1]: http://smallcultfollowing.com/babysteps/blog/2016/05/27/the-tootsie-pop-model-for-unsafe-code/
[2]: https://habrahabr.ru/post/346336/?utm_source=habrahabr&utm_medium=rss&utm_campaign=346336#habracut

[>] [Из песочницы] Мега-Учебник Flask Глава 1: Привет, мир! ( издание 2018 )
habra.16
habrabot(difrex,1) — All
2018-01-10 03:15:04


[blog.miguelgrinberg.com][1]



### _Miguel Grinberg_ {#miguel-grinberg}


----


Эта статья является переводом нового издания учебника Мигеля Гринберга. [Прежний перевод][2] давно утратил свою актуальность. Оригинальный учебник избавлен от некоторых неточностей, вызванных развитием веб за те 5 лет, что существует эта книга.



Автор планирует завершить его выпуск в мае 2018. Я, со своей стороны, постараюсь не отставать с переводом.



[**VIDEO**][3]

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

[1]: http://blog.miguelgrinberg.com "blog.miguelgrinberg.com"
[2]: https://habrahabr.ru/post/193242/ "Прежний перевод"
[3]: https://player.vimeo.com/video/248628320 "video"
[4]: https://habrahabr.ru/post/346306/?utm_source=habrahabr&utm_medium=rss&utm_campaign=346306#habracut

[>] Архитектура и программирование Mattel Intellivision
habra.16
habrabot(difrex,1) — All
2018-01-10 09:15:04


[Mattel Intellivision][1] — первая в мире игровая приставка с 16-разрядным процессором. Компьютер был разработан американской фирмой Mattel в 1979 году и производился вплоть до 1984 года (выпущено более 3 млн. штук). Intellivision широко известен в США, однако малоизвестен в Европе и совсем неизвестен в России.

[![][2]][3]

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

[1]: https://en.wikipedia.org/wiki/Intellivision
[2]: https://habrastorage.org/webt/lb/lv/tm/lblvtmhjvktrznyltip5yoqh6h0.jpeg
[3]: https://habrastorage.org/webt/lb/lv/tm/lblvtmhjvktrznyltip5yoqh6h0.jpeg
[4]: https://habrahabr.ru/post/346330/?utm_source=habrahabr&utm_medium=rss&utm_campaign=346330#habracut

[>] [Из песочницы] Совершенствуем контроль сессий в Spring Security
habra.16
habrabot(difrex,1) — All
2018-01-10 11:00:05


Добрый день, уважаемое Сообщество.

Разрабатывая многопользовательское web-приложение, столкнулся с проблемой повторного логина пользователей, решение которой потребовало необычного обходного маневра, чтобы сохранить логичную работу программы и ее понятный дизайн. Хочу поделиться своим опытом. Это приложение — игра, где зарегистрировавшиеся пользователи могут выбирать с кем сразиться из списка присутствующих на сайте свободных игроков. После авторизации (log in) игрока на сайте информация о нем добавляется в структуру данных. Часть этой информации асинхронно отображается в игровом интерфейсе, как список игроков на арене. Когда игрок выходит, то информация о нем должна быть удалена из структуры данных, и он более не будет отображаться в списке соперников online. Здесь есть нюансы и сложности с учетом асинхронности, но преодолимые.

Учесть нужно было и то, что выход игрока с арены может произойти в результате различных ситуаций:

* он может добросовестно разлогиниться (нажав кнопку logout);
* может просто закрыть браузер, крышку ноутбука, нажать ресет и т.п., в общем уйти по-английски.



### Уходим по-аглийски



Для таких 'английских' сценариев используется следующий подход.

1.  Добавляется SessionEventListener при регистрации DispatcherServlet в ходе стандартной инициализации и настройки Spring MVC приложения:
[Читать дальше →][1]

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

[>] [Перевод] Как исследователь взломал собственный компьютер и убедился в реальности самой серьёзной в истории уязвимости процессоров
habra.16
habrabot(difrex,1) — All
2018-01-10 12:30:04


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

Тогда 31-летний исследователь в области информационной безопасности и постдок в Грацском техническом университете проник в святая святых CPU и извлёк оттуда конфиденциальные сведения.

[![][1]][2]

До этого момента Грасс и его коллеги Моритц Липп и Майкл Шварц полагали, что подобная атака на память ядра процессора, которая должна быть недоступна пользователю, возможна лишь в теории.
[Читать дальше →][3]

[1]: https://habrastorage.org/webt/te/gc/kr/tegckryox2eu1tpwgqloibdvxhg.png
[2]: https://habrahabr.ru/company/ruvds/blog/346350/
[3]: https://habrahabr.ru/post/346350/?utm_source=habrahabr&utm_medium=rss&utm_campaign=346350#habracut

[>] Использование обратного преобразования Лапласа для анализа динамических звеньев систем управления
habra.16
habrabot(difrex,1) — All
2018-01-10 12:30:04


![][1]

**Здравствуйте!**

До настоящего времени в арсенале средств высокоуровневого языка программирования Python отсутствовали модули для численного преобразования передаточных функций элементов САУ из частотной области во временную.

Поскольку функции обратного преобразования Лапласа широко используются при анализе динамических систем контроля измерения и управления, использование Python для указанных целей было весьма затруднительно, поскольку приходилось использовать менее точное обратное Фурье преобразование [1].

Указанную проблему решает модуль mpmath библиотеки Python свободного распространения (под лицензией BSD), предназначенный для решения задач вещественной и комплексной арифметики с плавающей точкой и заданной точностью.

Работу над модулем ещё в 2007 году начал Fredrik Johansson [2], и, благодаря помощи многих участников проекта, в настоящее время mpmath приобрёл возможности серьёзного математического пакета.
[Читать дальше →][2]

[1]: https://habrastorage.org/webt/lx/bv/dr/lxbvdrnjffvxm0wqvbokuipzwa4.png
[2]: https://habrahabr.ru/post/346338/?utm_source=habrahabr&utm_medium=rss&utm_campaign=346338#habracut

[>] Мега-Учебник Flask, Часть 3: Веб-формы ( издание 2018 )
habra.16
habrabot(difrex,1) — All
2018-01-10 13:15:05


[blog.miguelgrinberg.com][1]



### _Miguel Grinberg_ {#miguel-grinberg}


----


[<<< предыдущая][2] [следующая >>>][3]



Эта статья является переводом третьей части нового издания учебника Мигеля Гринберга. [Прежний перевод][4] давно утратил свою актуальность.

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

[1]: http://blog.miguelgrinberg.com "blog.miguelgrinberg.com"
[2]: https://habrahabr.ru/post/346340/
[3]: https://habrahabr.ru/post/346344/
[4]: https://habrahabr.ru/post/193242/ "Прежний перевод"
[5]: https://habrahabr.ru/post/346342/?utm_source=habrahabr&utm_medium=rss&utm_campaign=346342#habracut

[>] Мега-Учебник Flask, Часть 4: База данных ( издание 2018 )
habra.16
habrabot(difrex,1) — All
2018-01-10 13:15:04


[blog.miguelgrinberg.com][1]



### _Miguel Grinberg_ {#miguel-grinberg}


----


[<<< предыдущая][2] [следующая >>>][3]



Эта статья является переводом четвертой части нового издания учебника Мигеля Гринберга. [Прежний перевод][4] давно утратил свою актуальность.

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

[1]: http://blog.miguelgrinberg.com "blog.miguelgrinberg.com"
[2]: https://habrahabr.ru/post/346342/
[3]: https://habrahabr.ru/post/346346/
[4]: https://habrahabr.ru/post/193242/ "Прежний перевод"
[5]: https://habrahabr.ru/post/346344/?utm_source=habrahabr&utm_medium=rss&utm_campaign=346344#habracut

[>] Мега-Учебник Flask, Часть 2: Шаблоны (издание 2018)
habra.16
habrabot(difrex,1) — All
2018-01-10 13:15:04


[blog.miguelgrinberg.com][1]



### _Miguel Grinberg_ {#miguel-grinberg}


----


[<<< предыдущая][2] [следующая >>>][3]



Эта статья является переводом второй части нового издания учебника Мигеля Гринберга, выпуск которого автор планирует завершить в мае 2018.[Прежний перевод][4] давно утратил свою актуальность.



Я, со своей стороны, постараюсь не отставать с переводом.


----


Перевел и опубликовал: _Александр Драгункин_


----


В этом втором выпуске серии Мега-Учебник Flask я расскажу о том, как работать с шаблонами.

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

[1]: http://blog.miguelgrinberg.com "blog.miguelgrinberg.com"
[2]: https://habrahabr.ru/post/346306/
[3]: https://habrahabr.ru/post/346342/
[4]: https://habrahabr.ru/post/193242/ "Прежний перевод"
[5]: https://habrahabr.ru/post/346340/?utm_source=habrahabr&utm_medium=rss&utm_campaign=346340#habracut

[>] IT 2018: будущее наступило вчера
habra.16
habrabot(difrex,1) — All
2018-01-10 13:15:05


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

Так что все фантазии компаний относительно победы искусственного интеллекта в течение пары лет, увы (или к счастью), несостоятельны. Но тем не менее технологии продолжают экспансию, эксперты предрекают будущее, бизнес принимает или меняет правила игры. У нас есть свой прогноз. А вы — делитесь своим в комментариях. Ну и сказки, пожалуй, оставим — они предсказали будущее сотни лет назад.

![][1]
[_Источник_][2]
[Читать дальше →][3]

[1]: https://habrastorage.org/getpro/habr/post_images/6d5/5fb/0ca/6d55fb0ca256ad44ca7fb247f8c96f8c.jpg
[2]: http://www.lumiere-mag.ru/robert-zemekis-nazad-v-budushhee-recenziya/
[3]: https://habrahabr.ru/post/346302/?utm_source=habrahabr&utm_medium=rss&utm_campaign=346302#habracut

[>] Code Coverage — хочу верить
habra.16
habrabot(difrex,1) — All
2018-01-10 14:00:04


Разработчик обязан знать свои инструменты! Знание инструментов увеличивает продуктивность, эффективность, производительность, потенцию разработчика! Не могу программировать без R#!

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

Правда, инструкция к инструменту обычно не содержит раздел «Противопоказания», не указываются ситуации когда НЕ стоит применять утилиту. Между тем, подобный раздел мог бы сэкономить тонны времени на неудачные эксперименты.

Сегодня я пошвыряю камни в огород Code Coverage (CC). Достаточно полезная метрика, под которой лежат несколько скудно [документированных][1] граблей.
[CC в посте не описывается. Читайте на свои страх и риск.][2]

[1]: http://www.exampler.com/testing-com/writings/coverage.pdf
[2]: https://habrahabr.ru/post/345774/?utm_source=habrahabr&utm_medium=rss&utm_campaign=345774#habracut

[>] Дайджест Университета ИТМО: самые интересные материалы в нашем блоге за прошлый год
habra.16
habrabot(difrex,1) — All
2018-01-10 14:45:17


В сегодняшнем дайджесте мы вспоминаем популярные материалы 2017 года, вышедшие в нашем блоге на Хабре: собственные разработки и проекты Университета, полезные материалы для поступающих в ИТМО, эссе и рассказы о программировании, советы тем, кто хочет обучаться разработке на дому, большой цикл о работающих техниках скорочтения и советы тем, кто читает (и пишет) научные статьи — обо всем этом в нашей подборке ниже.

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

[1]: https://habrastorage.org/webt/dh/m5/-4/dhm5-47ichu1lzt2idyxvclhp6q.jpeg
[2]: https://habrahabr.ru/company/spbifmo/blog/346328/
[3]: https://habrahabr.ru/post/346328/?utm_source=habrahabr&utm_medium=rss&utm_campaign=346328#habracut

[>] Книга «Глубокое обучение. Погружение в мир нейронных сетей"
habra.16
habrabot(difrex,1) — All
2018-01-10 17:30:04


[![image][1]][2] Привет, Хаброжители! Недавно у нас вышла первая русская книга о глубоком обучении от Сергея Николенко, Артура Кадурина и Екатерины Архангельской. Максимум объяснений, минимум кода, серьезный материал о машинном обучении и увлекательное изложение. Сейчас мы рассмотрим раздел «Граф вычислений и дифференцирование на нем» в котором вводятся основополагающее понятие для реализации алгоритмов обучения нейронных сетей.

Если у нас получится представить сложную функцию как композицию более простых, то мы сможем и эффективно вычислить ее производную по любой переменной, что и требуется для градиентного спуска. Самое удобное представление в виде композиции — это представление в виде графа вычислений. Граф вычислений — это граф, узлами которого являются функции (обычно достаточно простые, взятые из заранее фиксированного набора), а ребра связывают функции со своими аргументами.
[Читать дальше →][3]

[1]: https://habrastorage.org/webt/tf/1x/nx/tf1xnxujxtd6ahnec8relkcdmrc.jpeg
[2]: https://habrahabr.ru/company/piter/blog/346358/
[3]: https://habrahabr.ru/post/346358/?utm_source=habrahabr&utm_medium=rss&utm_campaign=346358#habracut

[>] [Перевод] Rust: «Небезопасные абстракции»
habra.16
habrabot(difrex,1) — All
2018-01-10 17:30:04


# Небезопасные (`unsafe`) абстракции {#nebezopasnye-unsafe-abstrakcii}



Ключевое слово `unsafe` является неотъемлемой частью дизайна языка Rust. Для тех кто не знаком с ним: `unsafe` — это ключевое слово, которое, говоря простым языком, является способом обойти проверку типов (_type checking_) Rust'а.



Существование ключевого слова `unsafe` для многих поначалу является неожиданностью.
В самом деле, разве то, что программы не "падают" от ошибок при работе с памятью,
не является особенностью Rust? Если это так, то почему имеется легкий способ обойти
систему типов? Это может показаться дефектом языка.



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



Данная заметка представляет ключевое слово `unsafe` и идею ограниченной "небезопасности".
Фактически это предвестник [заметки][1], которую я надеюсь написать чуть позже.
Она обсуждает модель памяти Rust, которая указывает, что можно, а что нельзя делать в `unsafe` коде.

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

[1]: http://smallcultfollowing.com/babysteps/blog/2016/05/27/the-tootsie-pop-model-for-unsafe-code/
[2]: https://habrahabr.ru/post/346336/?utm_source=habrahabr&utm_medium=rss&utm_campaign=346336#habracut

[>] Мега-Учебник Flask, Часть 3: Веб-формы (издание 2018)
habra.16
habrabot(difrex,1) — All
2018-01-10 17:30:04


[blog.miguelgrinberg.com][1]



### _Miguel Grinberg_ {#miguel-grinberg}


----


[<<< предыдущая][2] [следующая >>>][3]



Эта статья является переводом третьей части нового издания учебника Мигеля Гринберга. [Прежний перевод][4] давно утратил свою актуальность.

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

[1]: http://blog.miguelgrinberg.com "blog.miguelgrinberg.com"
[2]: https://habrahabr.ru/post/346340/
[3]: https://habrahabr.ru/post/346344/
[4]: https://habrahabr.ru/post/193242/ "Прежний перевод"
[5]: https://habrahabr.ru/post/346342/?utm_source=habrahabr&utm_medium=rss&utm_campaign=346342#habracut

Pages: 1 ... 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210