RSS
Pages: 1 ... 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210
[>] [Перевод] Изучаем команду wget на 12 примерах
habra.16
habrabot(difrex,1) — All
2018-01-15 13:15:19


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

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

[1]: https://habrastorage.org/webt/o-/b2/qd/o-b2qdxm9elu2ef47_6y9fchzao.png
[2]: https://habrahabr.ru/company/ruvds/blog/346640/
[3]: https://habrahabr.ru/post/346640/?utm_source=habrahabr&utm_medium=rss&utm_campaign=346640#habracut

[>] Первый пользователь с миллионом на Stack Overflow
habra.16
habrabot(difrex,1) — All
2018-01-25 15:30:14


Achievement unlocked: на Stack Overflow [появился][1] первый пользователь с 1 миллионом баллов репутации.

Stack Overflow [открыт][2] в сентябре 2008 года и с тех пор помогает разработчикам со всего мира находить необходимые ответы на технические вопросы. Например, сайт [показал][3] миллиону пользователей выход из Vim. На январь 2017 года на Stack Overflow 8 миллионов зарегистрированных пользователей, [15 миллионов вопросов ][4]и 24 миллиона ответов. Еще десять лет назад ничего этого не было.

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

[1]: https://meta.stackoverflow.com/questions/362019/thanks-a-million-jon-skeet?answertab=active#tab-top
[2]: https://blog.codinghorror.com/stack-overflow-none-of-us-is-as-dumb-as-all-of-us/
[3]: https://stackoverflow.com/questions/11828270/how-to-exit-the-vim-editor
[4]: https://stackexchange.com/sites#
[5]: https://habrastorage.org/webt/sd/40/he/sd40hedic8eru4gp8yj_vobkrio.png
[6]: https://habrahabr.ru/post/347494/?utm_source=habrahabr&utm_medium=rss&utm_campaign=347494#habracut

[>] Layer 7 DoS: атаки на отказ от обслуживания веб-приложения
habra.16
habrabot(difrex,1) — All
2018-01-25 15:45:03


![][1]

Распределенные атаки на отказ в обслуживании, которым подвергаются популярные сайты обычно происходят с тысяч и тысяч взломанных устройств. Эти атаки в основном направлены на подавление целевой системы масштабным трафиком, забиванием канала связи. Эти атаки относятся к layer 3 (сетевой уровень модели ISO/OSI) DoS/DDoS и характеризуются большим количеством пакетов, которыми атакуется ресурс. Layer 7 (прикладной уровень модели ISO/OSI) DoS/DDoS обычно направлен на "слабые" места веб-приложения.

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

[1]: https://habrastorage.org/webt/0q/fv/jj/0qfvjjj3thmaky1-2ufoggylfxy.png
[2]: https://habrahabr.ru/post/347456/?utm_source=habrahabr&utm_medium=rss&utm_campaign=347456#habracut

[>] [Перевод] Создание игр на Python 3 и Pygame: Часть 3
habra.16
habrabot(difrex,1) — All
2018-01-25 17:15:14


![image][1]
(Остальные части туториала: [первая][2], [вторая][3], [четвёртая][4], [пятая][5].)

Это третья из пяти частей туториала о создании игр с помощью Python 3 и Pygame. Во второй части мы рассмотрели класс `TextObject`, используемый для рендеринга текста на экран, создали основное окно и узнали, как отрисовывать объекты: кирпичи, мяч и ракетку.

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


## Обработка событий


В Breakout есть три типа событий: события нажатий клавиш, события мыши и события таймера. Основной цикл в классе Game обрабатывает нажатия клавиш и события мыши и передаёт их подписчикам (вызывая функцию-обработчик).

Хотя класс Game очень общий и не обладает знаниями о реализации Breakout, сама подписка и способы обработки событий очень специфичны.
[Читать дальше →][6]

[1]: https://habrastorage.org/getpro/habr/post_images/e38/895/a15/e38895a159ff5bbd8da2f1040b61d219.gif
[2]: https://habrahabr.ru/post/347138/
[3]: https://habrahabr.ru/post/347170/
[4]: https://habrahabr.ru/post/347266/
[5]: https://habrahabr.ru/post/347286/
[6]: https://habrahabr.ru/post/347256/?utm_source=habrahabr&utm_medium=rss&utm_campaign=347256#habracut

[>] Chromium: о шестой проверке проекта
habra.16
habrabot(difrex,1) — All
2018-01-25 17:30:04


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

![Андрей Карпов, PVS-Studio][1]

## Предыстория


Меня зовут Андрей Карпов, и я являюсь евангелистом статического анализа в целом и инструмента статического анализа PVS-Studio в частности. Впрочем, термин «технический евангелист» уже устаревает и на его смену приходит «developer advocate».

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

[1]: https://habrastorage.org/getpro/habr/post_images/978/1db/52e/9781db52e24de61cf6e1700014f75fcd.png
[2]: https://www.chromium.org/
[3]: https://habrahabr.ru/post/347536/?utm_source=habrahabr&utm_medium=rss&utm_campaign=347536#habracut

[>] Chromium: шестая проверка проекта и 250 багов
habra.16
habrabot(difrex,1) — All
2018-01-25 17:45:13


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

![Андрей Карпов, PVS-Studio][1]

## Предыстория


Меня зовут Андрей Карпов, и я являюсь евангелистом статического анализа в целом и инструмента статического анализа PVS-Studio в частности. Впрочем, термин «технический евангелист» уже устаревает и на его смену приходит «developer advocate».

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

[1]: https://habrastorage.org/getpro/habr/post_images/978/1db/52e/9781db52e24de61cf6e1700014f75fcd.png
[2]: https://www.chromium.org/
[3]: https://habrahabr.ru/post/347536/?utm_source=habrahabr&utm_medium=rss&utm_campaign=347536#habracut

[>] [Из песочницы] Перевод с человеческого на ботовский
habra.16
habrabot(difrex,1) — All
2018-01-25 18:00:13


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

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

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

[>] Реализация fork() без MMU
habra.16
habrabot(difrex,1) — All
2018-01-25 19:00:11


Здравствуй, читатель! Пару лет назад в [статье про vfork()][1] я обещал рассказать про реализацию fork() для систем без MMU, но руки до этого дошли только сейчас :)

В этой статье я расскажу, как мы реализовали такой странный `fork()`. Проверять работоспособность буду на сторонней программе — dash — интерпретаторе, который использует `fork()` для запуска приложений.

Кому интересно, прошу под кат.
[Читать дальше →][2]

[1]: https://habrahabr.ru/company/embox/blog/232605/
[2]: https://habrahabr.ru/post/347542/?utm_source=habrahabr&utm_medium=rss&utm_campaign=347542#habracut

[>] [Из песочницы] Расширение NLog для мониторинга ошибок
habra.16
habrabot(difrex,1) — All
2018-01-25 23:30:14


Не было ли у вас мысли, что исправлять ошибки пользуясь лог-файлом не очень эффективно?

Хотите исправлять ошибки быстрее и проще?

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

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

[1]: https://habrastorage.org/webt/c0/ox/ra/c0oxrae8k8xx4afr0p52blwyovc.png
[2]: https://habrahabr.ru/post/347528/?utm_source=habrahabr&utm_medium=rss&utm_campaign=347528#habracut

[>] Azure ML Workbench: Начало работы
habra.16
habrabot(difrex,1) — All
2018-01-25 23:30:14


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

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

[1]: https://habrastorage.org/webt/5d/rv/gh/5drvghhzefogpewdopgzwzdrzkw.jpeg
[2]: https://habrahabr.ru/post/346888/?utm_source=habrahabr&utm_medium=rss&utm_campaign=346888#habracut

[>] [Из песочницы] Препарирование файлов .XLSX: введение, стили ячеек
habra.16
habrabot(difrex,1) — All
2018-01-25 23:30:14


Не так давно по долгу службы понадобилось редактировать файлы MS Office (в первую очередь MS Word и MS Excel) средствами PL/SQL, то есть языка, с .NET не связанного практически никак. В связи с этим возникла проблема, что в руководстве от Microsoft про редактирование этих файлов, что называется, «руками» не сказано практически ничего, а единственный вменяемый сайт-справочник по этому делу, видимо, не обновлялся года этак с 2010. Понимание необходимости свести воедино все, что я по крупицам собрал со Stackoverflow и собственных экспериментов, пришло почти сразу.

Сразу хочется сделать несколько замечаний.

_Первое_. В основном говорить буду про то, с чем сталкивался лично. Претензий на стопроцентное знание «изнанки» формата у меня нет.

_Второе_. Как многие, вероятно, знают, файлы MS Office 2007 и выше представляют собой архив, который можно открыть с помощью любого архиватора (WinRAR, 7zip и так далее).

_Третье_. «Под капотом» у этих файлов — в основном XML-разметка, гордо именуемая OOXML или просто OpenXML. Поэтому, в принципе, для понимания принципов редактирования файлов «руками» достаточно будет Блокнота (или, что удобнее, Notepad++).

Итак, начнем с формата MS Excel как наиболее употребимого для генерации всевозможных отчетов, выгрузок из БД и иже с ними.
[Читать дальше →][1]

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

[>] 1С: Удаленный узел не прошел проверку
habra.16
habrabot(difrex,1) — All
2018-01-25 23:30:14


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


* Контрагенты по ИНН заполняться не хотят;
* Банки и валюты не загружаются;
* Всякие прочие системы, активно использующие обращения к интернет ресурсам, выдают непонятную ошибку.

Например, такую:



![][1]



Первое, что приходит в голову: 1С опять все разломали! Не работает!!!
Но если на секунду задуматься, "не прошел проверку", что это может значить?



Статья написана в два блока:


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

[1]: https://habrastorage.org/webt/ys/y0/nf/ysy0nf4lrlainoodl4ls6ofiome.png
[2]: https://habrahabr.ru/post/347486/?utm_source=habrahabr&utm_medium=rss&utm_campaign=347486#habracut

[>] Вся боль p2p разработки
habra.16
habrabot(difrex,1) — All
2018-01-26 00:30:14


Добрый день, хабрасообщество! Сегодня я хотел бы рассказать о волшебном и чудесном проекте компании Тензор — удаленном помощнике. Это система удаленного доступа, связывающая миллионы клиентов и операторов в рамках общей клиентской базы СБИС. Удаленный помощник уже сейчас тесно интегрирован с online.sbis.ru. Каждый день мы регистрируем более десяти тысяч подключений и десятки часов сессионного времени в сутки.В этой статье мы расскажем о том, как мы устанавливаем p2p соединения, и что делать, если этого сделать не удается.

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

[1]: https://habrastorage.org/webt/zi/wf/ej/ziwfejbwesihcd6t6_tlpr5gils.png
[2]: https://habrahabr.ru/post/347534/?utm_source=habrahabr&utm_medium=rss&utm_campaign=347534#habracut

[>] Xception: компактная глубокая нейронная сеть
habra.16
habrabot(difrex,1) — All
2018-01-26 12:00:13


В последние несколько лет нейронные сети пробрались во все отрасли машинного обучения, но самый большой фурор они бесспорно произвели в области компьютерного зрения. В рамках соревнований [ImageNet][1] было представлено множество различных архитектур свёрточных сетей, которые затем разошлись по фреймворкам и библиотекам.
[][2]
Чтобы улучшить качество распознавания своих сетей, исследователи старались добавлять в сети больше слоёв, однако со временем пришло понимание, что иногда ограничения производительности попросту не позволяют обучать и использовать настолько глубокие сети. Это стало мотивацией для использования depthwise separable convolutions и создания архитектуры Xception.

Если вы хотите узнать, что это такое, и посмотреть, как использовать такую сеть на практике, чтобы научиться отличать котов от собак, добро пожаловать под кат.
[Читать дальше →][3]

[1]: http://www.image-net.org
[2]: https://habrahabr.ru/post/347564/
[3]: https://habrahabr.ru/post/347564/?utm_source=habrahabr&utm_medium=rss&utm_campaign=347564#habracut

[>] Красивый Chromium и корявый memset
habra.16
habrabot(difrex,1) — All
2018-01-26 12:45:14


![malloc][1]Предлагаем вашему вниманию цикл статей, посвященных рекомендациям по написанию качественного кода на примере ошибок, найденных в проекте Chromium. Это первая часть, которая будет посвящена функции memset.

Господа программисты, с функцией _memset _ надо что-то делать в C++ программах! Вернее, даже сразу понятно что делать — её надо прекратить использовать. В своё время я написал статью "[Самая опасная функция в мире С/С++][2]". Я думаю, несложно догадаться, что речь в статье идёт как раз о _memset_.
[Читать дальше →][3]

[1]: https://habrastorage.org/getpro/habr/post_images/756/67a/79d/75667a79d306e3d8ed926c30041f43d4.png
[2]: https://www.viva64.com/ru/b/0360/
[3]: https://habrahabr.ru/post/347594/?utm_source=habrahabr&utm_medium=rss&utm_campaign=347594#habracut

[>] Что читают инженеры GridGain. Книги для тех, кто интересуется In-Memory Computing
habra.16
habrabot(difrex,1) — All
2018-01-26 13:45:13


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


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

[1]: https://www.gridgain.com/company/careers
[2]: https://habrahabr.ru/post/347244/?utm_source=habrahabr&utm_medium=rss&utm_campaign=347244#habracut

[>] Пятничный формат: «языковые» разработки — исследования, объединяющие ИТ и лингвистику
habra.16
habrabot(difrex,1) — All
2018-01-26 14:15:14


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

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

[1]: https://habrastorage.org/webt/kk/sq/ys/kksqysbfmrrpfwi4utqyliyo-i0.jpeg
[2]: https://habrahabr.ru/company/spbifmo/blog/347600/
[3]: https://habrahabr.ru/post/347600/?utm_source=habrahabr&utm_medium=rss&utm_campaign=347600#habracut

[>] Стеганография в файловой системе
habra.16
habrabot(difrex,1) — All
2018-01-26 14:15:14


Привет, Хабр.



Хочу представить вам небольшой проект по [стеганографии][1], сделанный в свободное от учебы время.



Я сделал проект по скрытому хранению информации в файловой системе (далее **ФС**).
Это можно применить для кражи конфиденциальной информации в образовательных целях.



![Image][2]



В виде опытного образца была выбрана весьма старенькая линуксовая ФС [ext2][3].


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

[1]: https://ru.wikipedia.org/wiki/%D0%A1%D1%82%D0%B5%D0%B3%D0%B0%D0%BD%D0%BE%D0%B3%D1%80%D0%B0%D1%84%D0%B8%D1%8F
[2]: https://habrastorage.org/webt/_v/p6/6-/_vp66-b4brnsakckv8lcj6qbaby.jpeg
[3]: https://ru.wikipedia.org/wiki/Ext2
[4]: https://habrahabr.ru/post/347604/?utm_source=habrahabr&utm_medium=rss&utm_campaign=347604#habracut

[>] [Перевод] Как писать чистый и красивый код
habra.16
habrabot(difrex,1) — All
2018-01-26 15:00:13


Каким должен быть качественный код? Роберт Мартин выразил это невероятно точно, когда сказал: «Единственная адекватная мера качества кода — это количество восклицаний «какого чёрта!» в минуту».

[![image][1]][2]
Позвольте мне пояснить эту идею.
[Читать дальше →][3]

[1]: https://habrastorage.org/getpro/habr/post_images/360/57d/436/36057d4360f3dc0135312b6c4669e728.jpg
[2]: https://habrahabr.ru/company/ruvds/blog/347610/
[3]: https://habrahabr.ru/post/347610/?utm_source=habrahabr&utm_medium=rss&utm_campaign=347610#habracut

[>] Открытая научная школа хакатона DeepHack.Babel
habra.16
habrabot(difrex,1) — All
2018-01-26 17:15:13


![image][1]

Перед новым годом мы [рассказывали][2], зачем нужен хакатон по машинному переводу. Уже на следующей неделе 50 участников, прошедших отбор, приедут в Долгопрудный, чтобы поучаствовать в обучении системы на непараллельных данных. Помимо многочасового брейншторминга в поиске решения поможет научная школа — [серия лекций от ведущих мировых специалистов по машинному переводу][3]. Хабр, приглашаем тебя посетить интересующие выступления! Они пройдут на Физтехе с 29 января по 4 февраля, не забудьте [зарегистрироваться][4]. Ну, а если в морозный зимний вечер выходить из дома не хочется, то можно посмотреть трансляции на [канале DeepHack][5].
[А пока рассказываем о ключевых спикерах][6]

[1]: https://habrastorage.org/webt/tz/b8/8t/tzb88tsndy-e2zzuux6r6gcotpy.png
[2]: https://habrahabr.ru/company/mipt/blog/345318/
[3]: http://babel.tilda.ws/#rec42790997
[4]: https://docs.google.com/forms/d/1r-xcBhRSdX9nDYZkn2PmuKI7EcueUhB9Y2ynItSdFtA/viewform?edit_requested=true
[5]: https://www.youtube.com/channel/UCJ-6K2HGA0hpQytlSM7FBVQ/
[6]: https://habrahabr.ru/post/347590/?utm_source=habrahabr&utm_medium=rss&utm_campaign=347590#habracut

[>] [Из песочницы] Telegram бот для сложных квестов
habra.16
habrabot(difrex,1) — All
2018-01-26 17:15:13


«В чем же заключается преимущество?» — спросите вы, ну все дело в том, что в нем можно построить логику примерно из следующих выражений:

_– Пользователь на шаге N?
– Сообщение содержит изображение и смайлик?
– Текст подходит под регулярное выражению «I am [a-zA-Z]+»?
– Время получения раньше/позже заданного?
– Это было нажатие на клавиатуре/обычное сообщение/inline-кнопка?_

Большинство из этих правил могут быть в зависимости друг от друга, но об этом чуть позже.

Для начала, о чем я хочу рассказать:

1. [Об идее проекта][1] – зачем я это сделал, какие есть аналоги, но почему мне они не нравятся.
2. [Архитектурных решениях][2], какие возникли трудности, как были решены.
3. [Что получилось в итоге и стоило ли оно того][3], [дальнейшее развитие][4].[Читать дальше →][5]

[1]: #purpose
[2]: #architecture
[3]: #theworth
[4]: #future
[5]: https://habrahabr.ru/post/347592/?utm_source=habrahabr&utm_medium=rss&utm_campaign=347592#habracut

[>] АТС в контейнере. Asterisk 14 + Nginx + Freepbx 14 + srtp на Centos 7 в lxc-контейнере Proxmox VE 4
habra.16
habrabot(difrex,1) — All
2018-01-26 17:15:13


В контейнеры, в наше время, можно установить множество интересных систем![][1]
но под катом вы сможете найти лишь относительно стандартную инструкцию по установке asterisk+freepbx. Скуку слегка развеет то, что версии всего ПО «последние стабильные», есть шифрование, вместо apache — nginx, а вся установка под недавно «повзрослевший» lxc. На выходе получится достаточно мобильная, компактная и современная IP-АТС, потребляющая в покое 200-300 Мб ОЗУ
[Читать дальше →][2]

[1]: https://habrastorage.org/webt/kp/rr/95/kprr95ghxl8ejoa4ohu_be5e2fc.jpeg
[2]: https://habrahabr.ru/post/347224/?utm_source=habrahabr&utm_medium=rss&utm_campaign=347224#habracut

[>] Препарирование файлов .XLSX: строковые значения, разметка ячеек
habra.16
habrabot(difrex,1) — All
2018-01-26 17:45:14


Итак, продолжаем разговор. На всякий случай уточню, что начало [здесь][1].

Про строковые значения и метод их хранения я уже вскользь упоминал в первой части, а сейчас поговорим подробнее. Представим, что у нас есть таблица, заполненная строковыми данными, и что она большая. При этом крайне маловероятно, что все значения в ней будут уникальны. Некоторые из них нет-нет, да повторятся где-нибудь в разных частях таблицы. Хранить такой массив «как есть» внутри XML-разметки листа нерационально с точки зрения ресурсов ПК. Поэтому все строковые значения вынесены в отдельный файл, %file%/xl/sharedStrings.xml. Часть его, которая нас интересует, выглядит, допустим, так:
[Читать дальше →][2]

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

[>] Не Москвой единой. О работе географически распределенных команд в ЕФС
habra.16
habrabot(difrex,1) — All
2018-01-26 19:45:12


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

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

[>] Моделирование физических процессов на примере гидропривода в SimInTech
habra.16
habrabot(difrex,1) — All
2018-01-26 22:30:14


В предыдущей статье ([Конечные автоматы в SimInTech][1]), было показано как создавать модель системы управления на основе конечных автоматов и получать из нее код Си, готовый для загрузки в контроллер. В качестве объекта управления была выбрана достаточно простая система нагреватель и была создана примитивная модель. Чем сложнее модель, объекта тем сложнее система управления и тем интереснее ее моделирования на стадии разработки.



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

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

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

[>] Добываем WiFi соседа стандартными средствами MacOS
habra.16
habrabot(difrex,1) — All
2018-01-27 00:30:13


Я всегда был фанатом багов и уязвимостей «на поверхности», всегда завидовал чувакам, которые пишут эксплоиты для самых защищённых ОС, а сам умел только скрипткидить (термин из нулевых). Однако, мой [пост][1] про уязвимости в системах контроля версий набрал более 1000 лайков на хабре и [остаётся топ1][2] постом за всю историю хабра, не смотря на то, что был написан 9 (!) лет назад.
И сегодня я хотел бы на пальцах показать и рассказать про такую штуку, как Вардрайвинг. А точнее, как стандартными средствами MacOSX можно добыть пароли от WiFi соседей. Нелёгкая забросила меня на очередную квартиру. Как-то исторически сложилось, что я ленивый. Пару лет назад я уже писал, что моя лень, новая квартира и провод beeline (бывшая corbina) помогла мне [найти багу у билайна][3] и иметь бесплатно интернет в их сети. «Сегодня» происходит «подобное», я на новой квартире, нет даже провода, но есть много сетей у соседей
![][4]
Заколебавшись расходовать мобильный трафик, я решил, что «соседям надо помогать», и под «соседями» я имел введу себя… [Читать дальше →][5]

[1]: https://habrahabr.ru/post/70330/
[2]: https://habrahabr.ru/top/alltime/
[3]: https://habrahabr.ru/post/243997/
[4]: https://habrastorage.org/webt/u8/1s/nd/u81sndgaeoykwwl1i83jbb37kz4.png
[5]: https://habrahabr.ru/post/347658/?utm_source=habrahabr&utm_medium=rss&utm_campaign=347658#habracut

[>] Оптимизация многоступенчатых компрессоров по энергозатратам на адиабатическое сжатие газа
habra.16
habrabot(difrex,1) — All
2018-01-27 00:45:13


![][1]


### Введение


В 1934 году швейцарская фирма «БроунБовери» (Brown-Boveri) на основе теоретических работ Стодолы впервые создала многоступенчатый осевой компрессор с КПД 84 %. Вскоре, осевые компрессоры стали успешно использоваться этой фирмой для газотурбинных установок.

**Многоступенчатые осевые компрессоры [1]**

Принципиальная схема осевого многоступенчатого компрессора приведена на рисунке:

![][2]

Осевой многоступенчатый компрессор состоит из ряда последовательно расположенных направляющих лопаток 6, закрепленных в корпусе 7, и рабочих лопаток 5, расположенных на барабанном роторе 11. По мере сжатия, объем воздуха уменьшается и, следовательно, уменьшаются высоты лопаток.

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

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

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

Направляющий аппарат обеспечивает необходимое направление воздушному потоку перед входом в первую ступень, а спрямляющий аппарат обеспечивает осевой выход в диффузор 9 и далее в выходной патрубок 10.

Число ступеней сжатия в такой конструкции количеством рабочих лопаток 5, расположенных на барабанном роторе 11.
[Читать дальше →][3]

[1]: https://habrastorage.org/webt/gq/xh/oa/gqxhoaa_nnj2zbdhy1b_qgvakx4.png
[2]: https://habrastorage.org/webt/g8/m1/lx/g8m1lxehdms1lkngpod8r3exxka.png
[3]: https://habrahabr.ru/post/347624/?utm_source=habrahabr&utm_medium=rss&utm_campaign=347624#habracut

[>] [Перевод] Разбираемся с Meltdown и Spectre: что нужно знать о новых уязвимостях, которые обнаружены практически во всех CPU
habra.16
habrabot(difrex,1) — All
2018-01-27 01:45:13


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

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

[1]: https://habrastorage.org/webt/61/qf/u_/61qfu_im0jmjj9cq2tulkprwbui.png
[2]: https://habrahabr.ru/post/347254/?utm_source=habrahabr&utm_medium=rss&utm_campaign=347254#habracut

[>] Добываем Wi-Fi соседа стандартными средствами MacOS
habra.16
habrabot(difrex,1) — All
2018-01-27 03:30:13


Я всегда был фанатом багов и уязвимостей «на поверхности», всегда завидовал чувакам, которые пишут эксплойты для самых защищённых ОС, а сам умел только скрипткиддить (термин из нулевых). Однако мой [пост][1] про уязвимости в системах контроля версий набрал более 1000 лайков на Хабре и [остаётся топ1][2] постом за всю историю Хабра, несмотря на то, что был написан 9(!) лет назад.

И сегодня я хотел бы на пальцах показать и рассказать про такую штуку, как вардрайвинг. А точнее, как стандартными средствами MacOS можно добыть пароли от Wi-Fi соседей. Нелёгкая забросила меня на очередную квартиру. Как-то исторически сложилось, что я ленивый. Пару лет назад я уже писал, что моя лень, новая квартира и провод Beeline (бывшая Corbina) помогли мне [найти багу у Билайна][3] и иметь бесплатно интернет в их сети. «Сегодня» происходит «подобное», я на новой квартире, нет даже провода, но есть много сетей у соседей.


Заколебавшись расходовать мобильный трафик, я решил, что «соседям надо помогать», и под «соседями» я имел введу себя…
[Читать дальше →][4]

[1]: https://habrahabr.ru/post/70330/
[2]: https://habrahabr.ru/top/alltime/
[3]: https://habrahabr.ru/post/243997/
[4]: https://habrahabr.ru/post/347658/?utm_source=habrahabr&utm_medium=rss&utm_campaign=347658#habracut

[>] Майнер Monero: теперь и в рекламе YouTube
habra.16
habrabot(difrex,1) — All
2018-01-27 15:30:13


![image][1]

Осторожно: майнеры на JavaScript теперь могут быть встроены в рекламу, которую вам показывает YouTube и другие рекламные сети. Об этом сообщили сразу [несколько][2] [источников][3].

Первыми сообщили о проблеме в Twitter пользователи, чьи антивирусы способны обнаруживать криптомайнеры.
> Hey [@avast\_antivirus][4] seems that you are blocking crypto miners ([\#coinhive][5]) in [@YouTube][6] [\#ads][7]
> Thank you :)
>
> — Diego Betto (@diegobetto) [January 25, 2018][8]

Атакующие пользовались услугами сервиса Coinhive, который предоставляет возможность использовать публичный JavaScript-код с сайта для майнинга на чужих компьютерах. При этом процессоры пользователей загружались майнером до 80%.
[Читать дальше →][9]

[1]: https://habrastorage.org/getpro/habr/post_images/168/dcf/05e/168dcf05eebd40d63808a1ad201c2ad6.jpg
[2]: https://arstechnica.com/information-technology/2018/01/now-even-youtube-serves-ads-with-cpu-draining-cryptocurrency-miners/
[3]: https://diegobetto.com/crypto-miner-coinhive-youtube-ads/
[4]: https://twitter.com/avast_antivirus?ref_src=twsrc%5Etfw
[5]: https://twitter.com/hashtag/coinhive?src=hash&ref_src=twsrc%5Etfw
[6]: https://twitter.com/YouTube?ref_src=twsrc%5Etfw
[7]: https://twitter.com/hashtag/ads?src=hash&ref_src=twsrc%5Etfw
[8]: https://twitter.com/diegobetto/status/956552277413777408?ref_src=twsrc%5Etfw
[9]: https://habrahabr.ru/post/347664/?utm_source=habrahabr&utm_medium=rss&utm_campaign=347664#habracut

[>] [Перевод] Создание игр на Python 3 и Pygame: Часть 4
habra.16
habrabot(difrex,1) — All
2018-01-27 15:45:13


![image][1]


Это четвёртая из пяти частей туториала, посвящённого созданию игр с помощью Python 3 и Pygame. В третьей части мы углубились в сердце Breakout и узнали, как обрабатывать события, познакомились с основным классом Breakout и увидели, как перемещать разные игровые объекты.

(Остальные части туториала: [первая][2], [вторая][3], [третья][4], [пятая][5].)

В этой части мы узнаем, как распознавать коллизии и что случается, когда мяч ударяется об разные объекты: ракетку, кирпичи, стены, потолок и пол. Наконец, мы рассмотрим важную тему пользовательского интерфейса и в частности то, как создать меню из собственных кнопок.
[Читать дальше →][6]

[1]: https://habrastorage.org/getpro/habr/post_images/e38/895/a15/e38895a159ff5bbd8da2f1040b61d219.gif
[2]: https://habrahabr.ru/post/347138/
[3]: https://habrahabr.ru/post/347170/
[4]: https://habrahabr.ru/post/347256/
[5]: https://habrahabr.ru/post/347286/
[6]: https://habrahabr.ru/post/347266/?utm_source=habrahabr&utm_medium=rss&utm_campaign=347266#habracut

[>] Оператор break и fallthrough
habra.16
habrabot(difrex,1) — All
2018-01-27 18:45:14


![operator break][1]

Предлагаем вашему вниманию цикл статей, посвященных рекомендациям по написанию качественного кода на примере ошибок, найденных в проекте Chromium. Это вторая часть, которая будет посвящена оператору switch, а, вернее, проблеме забытого оператора break.

Многие годы я изучал ошибки в программах и сейчас могу с уверенностью заявить, что в C, а вслед за ним и в C++, оператор _switch _ сделан неправильно. Я понимаю, что возможность не писать _break_, сделанная, чтобы передать управление дальше, позволяет писать изящные алгоритмы. Но всё равно огромное количество ошибок убедило меня, что был выбран неправильный подход. Понятно, что теперь уже поздно. Просто хотелось сказать, что правильным решением было бы обязательно писать слово _break_ или обратное ключевое слово, например, _fallthrough_. Сколько бы сил, времени и денег было сэкономлено. Конечно, этот недостаток не сравнится с [Null References: The Billion Dollar Mistake][2], но всё равно большой ляп.
[Читать дальше →][3]

[1]: https://habrastorage.org/getpro/habr/post_images/4dc/8a3/a81/4dc8a3a810f3bfff54b6c32f1debea3a.png
[2]: https://www.infoq.com/presentations/Null-References-The-Billion-Dollar-Mistake-Tony-Hoare
[3]: https://habrahabr.ru/post/347668/?utm_source=habrahabr&utm_medium=rss&utm_campaign=347668#habracut

[>] [Перевод] Python для обучения научной информатике: Моделирование систем массового обслуживания
habra.16
habrabot(difrex,1) — All
2018-01-28 08:15:13


## Аннотация


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

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

[>] [Из песочницы] Сравнение производительности C и C++ на примере сжатия Хаффмана
habra.16
habrabot(difrex,1) — All
2018-01-28 15:30:14


## Введение


Когда на IT-форумах задают вопрос «Быстрее ли язык программирования X языка Y», это обычно вызывает потоки эмоций и считается некорректным. С родни вопросу про религию или предпочтение той или иной политической партии. Действительно, язык — это способ выражения мысли, идеи. В данном случае идеи программной системы. Он не быстр и не медлен. Он может быть более или менее лаконичным, более или менее точным. А скорость определяется не столько языком, сколько конечным кодом, который генерирует компилятор этого языка. Или скоростью интерпретатора в случае интерпретируемого языка.

Но это всё философия. А на практике обычно есть практическая задача разработки ПО. И, действительно, реализовать это ПО можно на десятке разных языков программирования. Поэтому, хоть это и «религиозный вопрос» в случае публичного обсуждения, вопрос этот часто возникает в голове IT-специалиста, стоящего перед конкретной задачей. «Сколько времени мне потребуется для реализации задачи на языке X и какие у полученного ПО будут характеристики, в том числе скоростные. По сравнению с реализацией этой задачи на языке Y». Понятное дело, точного ответа на этот вопрос нет, специалист опирается на свой личный опыт и отвечает как-то типа «с вероятностью 95%, написанная на ассемблере, эта задача будет работать быстрее, чем на php». Но, положа руку на сердце, опыт этот редко базируется на точных цифрах реальных задач, которые сам этот специалист реализовал. Нет, ну кто в здравом уме будет писать сложное ПО сначала на php, а потом его же переписывать на ассемблере, только чтобы измерить характеристики? В основном ограничиваются синтетическими тестами типа сортировки массива, построения и обхода бинарного дерева и тому подобных. [Читать дальше →][1]

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

[>] Применение моделей CatBoost внутри ClickHouse. Лекция Яндекса
habra.16
habrabot(difrex,1) — All
2018-01-28 21:30:14


В каких ситуациях удобно применять предобученные модели машинного обучения внутри ClickHouse? Почему для такой задачи лучше всего подходит метод [CatBoost][1]? Не так давно мы провели встречу, посвящённую одновременному использованию этих двух опенсорс-технологий. На встрече выступил разработчик Николай Кочетов — его лекцией мы и решили с вами поделиться. Николай разбирает описанную задачу на примере алгоритма предсказания вероятности покупки.


— Сначала о том, как устроен ClickHouse. ClickHouse — это аналитическая распределенная СУБД. Она столбцовая и с открытым исходным кодом. Самое интересное слово здесь — «столбцовая». Что оно значит? [Читать дальше →][2]

[1]: https://habrahabr.ru/company/yandex/blog/333522/
[2]: https://habrahabr.ru/post/347696/?utm_source=habrahabr&utm_medium=rss&utm_campaign=347696#habracut

[>] Programmer Unknown's BattleGround: открытая площадка для сражений программистов
habra.16
habrabot(difrex,1) — All
2018-01-28 21:30:14


![image][1]

Изначально проект PUBG (просим прощения у оригинальной [PUBG][2] за использование их аббревиатуры, мы всего лишь хотим использовать эту игру для развития навыков программирования и не планируем публиковать ее в Steam в будущем) был разработан как внутренний проект нашей студии для развлечения. Затем же мы подумали, что он может быть полезен другим студиям, компаниям и образовательным учреждениям, и опубликовали его под лицензией MIT.
[Читать дальше →][3]

[1]: https://habrastorage.org/getpro/habr/post_images/010/338/885/0103388850cb4dc97cf553338a74a701.gif
[2]: https://www.playbattlegrounds.com/
[3]: https://habrahabr.ru/post/347698/?utm_source=habrahabr&utm_medium=rss&utm_campaign=347698#habracut

[>] [Перевод] Создание игр на Python 3 и Pygame: Часть 5
habra.16
habrabot(difrex,1) — All
2018-01-29 01:30:14


![image][1]


Это последняя из пяти частей туториала, посвящённого созданию игр с помощью Python 3 и PyGame. В четвёртой части мы научились распознавать коллизии, реагировать на то, что мяч сталкивается с разными игровыми объектами и создали игровое меню с собственными кнопками.

(Остальные части туториала: [первая][2], [вторая][3], [третья][4], [четвёртая][5].)

В последней части мы рассмотрим различные темы: конец игры, управление жизнями и очками, звуковые эффекты, музыку и даже гибкую систему спецэффектов. На десерт мы рассмотрим возможные улучшения и направления дальнейшего развития.
[Читать дальше →][6]

[1]: https://habrastorage.org/getpro/habr/post_images/e38/895/a15/e38895a159ff5bbd8da2f1040b61d219.gif
[2]: https://habrahabr.ru/post/347138/
[3]: https://habrahabr.ru/post/347170/
[4]: https://habrahabr.ru/post/347256/
[5]: https://habrahabr.ru/post/347266/
[6]: https://habrahabr.ru/post/347286/?utm_source=habrahabr&utm_medium=rss&utm_campaign=347286#habracut

[>] Анализируй это. Mista.ru
habra.16
habrabot(difrex,1) — All
2018-01-29 10:45:14


![][1]



### What, How, Why {#what-how-why}



Форум Mista.ru — один из самых старых и активных форумов посвященный 1С. Первое сообщение датировано 2000 годом и на текущий момент счетчик тем перевалил за 800000, а количество сообщений больше 16 000 000. Форум был настолько популярен, что его даже пытались "зеркалировать", так как содержал неплохую базу вопросов-ответов по 1С, из-за чего админы форума добавили "защиту от скачивания". В этой статье будет описано то, как можно скачать этот (а в наверно и любой другой) форум в относительно короткие сроки при помощи Google Cloud Platform.

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

[1]: https://habrastorage.org/webt/od/xd/kw/odxdkwpc_7anzdc0vazcz6golwq.png
[2]: https://habrahabr.ru/post/347096/?utm_source=habrahabr&utm_medium=rss&utm_campaign=347096#habracut

[>] Тест на проникновение с помощью Metasploit Framework: базовое руководство для системного администратора
habra.16
habrabot(difrex,1) — All
2018-01-29 11:00:14


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


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

[1]: https://habrastorage.org/webt/dn/t7/1i/dnt71ihnoupajc_ialet0h-thsm.png
[2]: https://habrahabr.ru/post/347702/?utm_source=habrahabr&utm_medium=rss&utm_campaign=347702#habracut

[>] Chromium: утечки памяти
habra.16
habrabot(difrex,1) — All
2018-01-29 12:30:13


![PVS-Studio and CWE-401][1]

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

[1]: https://habrastorage.org/getpro/habr/post_images/7f5/e8f/aac/7f5e8faacd9b5dd5f248d1ed618f7682.png
[2]: https://habrahabr.ru/post/347746/?utm_source=habrahabr&utm_medium=rss&utm_campaign=347746#habracut

[>] Выпуск#8: ITренировка — актуальные вопросы и задачи от ведущих компаний
habra.16
habrabot(difrex,1) — All
2018-01-29 13:30:14


Продолжаем публиковать интересные задачи от ведуших IT-компаний.

В подборку попали задачи, задаваемые на собеседованиях (обычно на должность инженера-разработчика) в Yahoo! Предлагаем Вам попробовать свои силы и постараться решить задачи самостоятельно — тогда вопросы на собеседовании вряд ли застанут Вас врасплох.
[Читать дальше →][1]

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

[>] Диалоговый телеграм бот на PHP
habra.16
habrabot(difrex,1) — All
2018-01-29 13:30:14


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

[1]: https://habrahabr.ru/search/?q=telegram+bot#h
[2]: https://habrahabr.ru/post/347482/?utm_source=habrahabr&utm_medium=rss&utm_campaign=347482#habracut

[>] [Из песочницы] Spring AOP. Маленький вопросик с собеседования
habra.16
habrabot(difrex,1) — All
2018-01-29 13:30:14


Довелось мне тут на днях побывать на очередном собеседовании. И задали мне там вот такой вот вопрос. Что на самом деле выполнится (с точки зрения транзакций), если вызвать method1()?

public class MyServiceImpl {

@Transactional
public void method1() {
//do something
method2();
}

@Transactional (propagation=Propagation.REQUIRES_NEW)
public void method2() {
//do something
}
}

Ну, мы же все умные, документацию читаем или, по крайней мере, видео выступлений Евгения Борисова смотрим. Соответственно и правильный\* ответ знаем (правильный\* — это такой, который от нас ожидает услышать тот, кто спрашивает). И звучать он должен примерно так.

«_В связи с тем, что для поддержки транзакций через аннотации используется Spring AOP, в момент вызова method1() на самом деле вызывается метод прокси объекта. Создается новая транзакция и далее происходит вызов method1() класса MyServiceImpl. А когда из method1() вызовем method2(), обращения к прокси нет, вызывается уже сразу метод нашего класса и, соответственно, никаких новых транзакций создаваться не будет_».

Но знаете, как это бывает, вроде и ответ правильный уже давно знаешь. И применяешь это знание регулярно. А вдруг раз… и неожиданно задумаешься: «_Подождите-ка, ведь если мы используем Spring AOP, то там могут создаваться прокси и через JDK, а могут и с CGLIB; а еще возможно, что CTW или LTW подключили. И что такой ответ всегда будет верен?_».

Ну что ж: интересно? Надо проверить.
[Читать дальше →][1]

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

[>] Объект в футляре или Optional в Java 8 и Java 9. Часть 2: «Как это делается в Java 8»
habra.16
habrabot(difrex,1) — All
2018-01-29 13:30:14


![Объект в футляре][1]

Классу Optional посвящено немало статей и tutorials, в том числе [этот][2] и [этот][3] на Хабре.

Большинство из них рассказывают **как** вызываются методы этого класса. Я в этом tutorial делаю упор на то **зачем, почему, в каких случаях** можно (а скорее даже нужно) применять тот или иной метод класса. Я думаю, это очень важно, ибо как показал опрос после [первой статьи][4] этого tutorial, далеко не все Java — программисты вошли во вкус использования всей мощи методов этого класса.

Для лучшего объяснения методов класса я буду использовать более сложные и наглядные примеры, чем в большинстве других tutotials — кофеварку, фильтрационную установку, миксер и т.д.

Это вторая статья серии, посвящённая использованию класса Optional при обработке объектов с динамической структурой. В [первой статье][5] было рассказано о способах избежания NullPointerException в ситуациях, когда вы не можете или не хотите использовать Optional.
В этой статье мы рассмотрим все методы класса в том виде, как их предоставляет Java 8. Расширения класса в Java 9 рассмотрены в[ третьей статье][6] этой серии.Четвертая статья будет посвящена необходимому (с точки зрения автора) дополнению к этому классу. Ну а пятая подведёт итоги. [Читать дальше →][7]

[1]: https://habrastorage.org/webt/ys/0h/kg/ys0hkgszo0x804sxkfr0q6svqcm.jpeg
[2]: https://habrahabr.ru/post/346782/
[3]: https://habrahabr.ru/post/225641/
[4]: https://habrahabr.ru/post/347480/
[5]: https://habrahabr.ru/post/347480/
[6]: https://habrahabr.ru/post/347748/
[7]: https://habrahabr.ru/post/347576/?utm_source=habrahabr&utm_medium=rss&utm_campaign=347576#habracut

[>] [Из песочницы] И так сойдёт… или как данные 14 миллионов россиян оказались у меня в руках
habra.16
habrabot(difrex,1) — All
2018-01-29 14:15:13


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

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

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

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

[1]: http://frdocheck.obrnadzor.gov.ru/
[2]: https://habrastorage.org/getpro/habr/post_images/eb6/471/a1f/eb6471a1f7473e5163e445d9c3347444.png
[3]: https://habrahabr.ru/post/347760/?utm_source=habrahabr&utm_medium=rss&utm_campaign=347760#habracut

[>] Как при разработке плагина для Jira упаковать зависимую библиотеку в obr
habra.16
habrabot(difrex,1) — All
2018-01-29 16:15:13


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

Указать у сторонней библиотеки область видимости компилирования, и тогда классы из этой библиотеки будут упакованы в jar-файл разрабатываемого плагина. Для этого необходимо в файле pom.xml написать:









Собрать плагин таким образом, чтобы jar-файл сторонней библиотеки находился в папке dependencies файла obr разрабатываемого плагина.
[Читать дальше →][1]

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

[>] Консервативное национальное крипторегулирование. Что несут нам новые законопроекты?
habra.16
habrabot(difrex,1) — All
2018-01-29 16:45:14


![image][1]

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

И вот на прошлой неделе различные органы власти на разных площадках выложили сразу три законопроекта, так или иначе касающихся регулирования криптовалют и токенов, майнинга, а также организации токенсейлов в России:

1. Законопроект Минфина [“О цифровых финансовых активах”][2], который призван заложить основы создания, выпуска, хранения и обращения цифровых финансовых активов;
2. Законопроект ЦБ [“Об альтернативных способах привлечения инвестиций (краудфандинге)”,][3] устанавливающий правила проведения токенсейлов;
3. Законопроект депутата Курбанова & РАКИБ “[О системе распределенного национального майнинга][4]”, претендующего создать основу для майнинга крипторубля.
[Читать дальше →][5]

[1]: https://habrastorage.org/webt/o0/st/ll/o0stllfdpdwe5tcvsxkqp6trogo.jpeg
[2]: https://www.minfin.ru/ru/document/?id_4=121810&area_id=4&page_id=2104&popup=Y%20%20%20%20%20#
[3]: http://www.cbr.ru/analytics/standart_acts/others/20180125_02.pdf
[4]: http://asozd2c.duma.gov.ru/addwork/scans.nsf/ID/CB195C54630E7E7B432582200064B9AD/%24FILE/373645-7_25012018_373645-7.PDF?OpenElement
[5]: https://habrahabr.ru/post/347768/?utm_source=habrahabr&utm_medium=rss&utm_campaign=347768#habracut

[>] Статический анализ и property-based тестирование: вместе мы сила
habra.16
habrabot(difrex,1) — All
2018-01-29 16:45:14


Как известно, баги есть во всех программах. Есть множество способов борьбы с ними: юнит-тесты, ревью, статический анализ, динамический анализ, дымовое тестирование и так далее. Иногда для искоренения определённого бага полезно сочетать разные методики.



Я разрабатываю Java-инспекции в IntelliJ IDEA, которая большей частью написана на Java. В некотором смысле я нахожусь в привилегированном положении по сравнению с другими программистами: доработать статический анализатор IDE, чтобы находить новый класс ошибок — это моя прямая рабочая обязанность, которая при этом же позволяет найти и обезвредить баги в этой же самой IDE. Хочу поделиться одной такой историей успеха.

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

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

[>] «…Желают знать, что будет» или пишем гадальный шар в САПР NanoCAD на C# (MultiCAD .NET API)
habra.16
habrabot(difrex,1) — All
2018-01-29 18:00:14


Если верить одной старой [песне из советского кинофильма][1], то люди всегда интересуются вопросами будущего в трудной ситуации. Кто-то подбрасывает монетку, кто-то мучает осьминога Пауля, а совсем уж зверски настроенные люди — ощипывают ромашки. Мы с вами поступим куда как гуманней и найдем для САПР NanoCAD, весьма нетрадиционное применение, а именно сделаем свой аналог гадального шара (почти как на картинке ниже).

В статье мы еще раз потренируемся создавать пользовательские примитивы NanoCAD с помощью MultiCAD.NET API, а также прикрутим к нашему объекту взаимодействие с Windows.Forms.

Код сегодня будет только на C#, писать его будем для платной версии (NC 8.5) и для бесплатной (NC 5.1), ну и естественно пользователи Linux смогут его собрать в Mono и запустить под Wine, поэтому милости прошу под кат…

![][2]

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

[1]: https://www.youtube.com/watch?v=QgGZwy-CLb0
[2]: https://habrastorage.org/webt/b9/sw/ro/b9swro7w-vurjcb4nx9icjjkrr0.jpeg
[3]: https://habrahabr.ru/post/347720/?utm_source=habrahabr&utm_medium=rss&utm_campaign=347720#habracut

[>] Объект в футляре или Optional в Java 8 и Java 9. Часть 3: «Что добавилось в Java 9»
habra.16
habrabot(difrex,1) — All
2018-01-29 18:00:13


[![Объект в футляре][1]][2]

Это третья статья серии, посвящённая использованию класса Optional при обработке объектов с динамической структурой. В [первой статье][3] было рассказано о способах избежания NullPointerException в ситуациях, когда вы не можете или не хотите использовать Optional.

[Вторая статья][4] посвящена описанию методов класса Optional в том виде, как он появился в Java 8.

Эта статья описывает методы класса, появившиеся в Java 9.

Четвертая статья будет посвящена необходимому (с точки зрения автора) дополнению к этому классу. Ну а пятая подведёт итоги.
[Читать дальше →][5]

[1]: https://habrastorage.org/webt/ys/0h/kg/ys0hkgszo0x804sxkfr0q6svqcm.jpeg
[2]: https://habrahabr.ru/post/347748/
[3]: https://habrahabr.ru/post/347480/
[4]: https://habrahabr.ru/post/347576/
[5]: https://habrahabr.ru/post/347748/?utm_source=habrahabr&utm_medium=rss&utm_campaign=347748#habracut

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