RSS
Pages: 1 ... 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 ... 210
[>] [Перевод] Построение аналитических выражений… для любых объектов — от теоремы Пифагора до розовой пантеры и сэра Исаака Ньютона в Wolfram Language (Mathemarica)
habra.14
habrabot(difrex,1) — All
2015-04-03 16:00:02






_Перевод поста Майкла Тротта (Michael Trott) "[Making Formulas… for Everything—From Pi to the Pink Panther to Sir Isaac Newton][1]". Выражаю благодарность за помощь в переводе [Сильвии Торосян][2]. Скачать перевод в виде документа Mathematica, который содержит весь код использованный в статье, можно [здесь][3] (архив, ~7 МБ)._ В компании [Wolfram Research][4] и [Wolfram|Alpha][5] мы любим математику и вычисления. Наши любимые темы — алгоритмы, следующие из формул и уравнений. Например, _Mathematica_ может вычислить миллионы интегралов (точнее бесконечное их количество, встречающихся на практике), а также Wolfram|Alpha знает сотни тысяч математических формул (от [формулы Эйлера][6] и [BBP-формул для Pi][7] до [сложных определённых интегралов, содержащих sin (x)][8]) и множество формул физики (например, от [закона Пуазейля][9] до [классических решений механики для точечной частицы в прямоугольнике][10] или [потенциала обратного расстояния в четырехмерном пространстве, в гиперсферических координатах][11]), так же как менее известные формулы, такие как формулы для[ частоты дрожащей мокрой собаки][12], [максимальной высоты песочного замка][13], или [времени приготовления индейки][14]. [Читать дальше →][15]

[1]: http://blog.wolfram.com/2013/05/17/making-formulas-for-everything-from-pi-to-the-pink-panther-to-sir-isaac-newton/
[2]: http://vk.com/id211809242
[3]: http://goo.gl/qo7hZr
[4]: http://www.wolfram.com/
[5]: http://www.wolframalpha.com/
[6]: http://www.wolframalpha.com/input/?i=Euler%27s+formula
[7]: http://www.wolframalpha.com/input/?i=BBP-type+formulas+for+pi
[8]: http://www.wolframalpha.com/input/?i=complicated+definite+integrals+containing+sin%28x%29
[9]: http://www.wolframalpha.com/input/?i=Poiseuille%27s+law
[10]: http://www.wolframalpha.com/input/?i=classical+mechanics+solutions+of+a+point+particle+in+a+rectangle
[11]: http://www.wolframalpha.com/input/?i=inverse%E2%80%90distance+potential+in+4D+in+hyperspherical+coordinates&lk=1&a=ClashPrefs_*PhysicalSystems.InverseDistancePotential4DHypersphericalCoordinates-
[12]: http://www.wolframalpha.com/input/?i=shaking+frequency+of+a+wet+dog
[13]: http://www.wolframalpha.com/input/?i=maximal+height+of+a+sandcastle
[14]: http://www.wolframalpha.com/input/?i=cooking+time+of+a+turkey
[15]: http://habrahabr.ru/post/254841/#habracut

[>] [Из песочницы] Пользуйтесь подсветкой кода
habra.15
habrabot(difrex,1) — All
2015-11-27 15:00:02


_Это обзор и частичный перевод статьи Advait Sarkar из Computer Laboratory, University of Cambridge [«The impact of syntax colouring on program comprehension»][1]._

#### Краткое содержание

Взяли 10 случайных «computer science» студентов-магистров из University of Cambridge (на самом деле 7, так как 3 очкарика оказались частично несовместимы с оборудованием Tobii2 X120 eye tracker). Предложили разбираться с короткими вычислительными задачами на Python (надо было назвать корректный результат выполнения кода). Замеряли время выполнения задач. Не давали ничего записывать на бумажке (только думать, можно вслух). Следили за глазами с помощью упомянутой окулографической системы. В конце попросили оценить свой опыт в программировании (да, с учетом возможного эффект Даннинга — Крюгера).

#### Выводы



* Подсветка помогает быстрее понимать код. На примере 6 задач с общим временем решения в 13 — 20 минут:
* 8\.4 секунды разницы между медианами времени выполнения задачи (с гипотезой, что для больших задач эффект становится заметнее)
* значительное (на 23 штуки) уменьшение количества переключений внимания (переводов и фиксации взгяда с места чтения на различимо другую область задания)
* эффективность помощи обратнопропорциональна квалификации (но нелинейно, т.е. не установлено, что когда-то подсветка перестанет помогать)
* работает только в том случае, если вы знаете что каким цветом подсвечивается
* мозг может игнорировать подсказки подсветки, если вы «ищете свободным поиском» (т.е. подсветка не мешает размышлять)

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

[1]: http://ppig.org/sites/default/files/2015-PPIG-26th-Sarkar.pdf
[2]: https://habrastorage.org/files/90b/571/f9c/90b571f9c4924d8e810472d9e2d38caa.png
[3]: http://habrahabr.ru/post/271841/#habracut

[>] [Перевод] Статический анализ кода
habra.14
habrabot(difrex,1) — All
2015-04-03 17:00:01


![John Carmack][1] _**Примечание от переводчика**. Изначально эта статья была опубликована на сайте AltDevBlogADay. Но сайт, к сожалению, прекратил своё существование. Более года эта статья оставалась недоступна читателям. Мы обратились к [Джону Кармаку][2], и он сказал, что не против, чтобы мы разместили эту статью на нашем сайте. Что мы с удовольствием и [сделали][3]. С оригиналом статьи можно познакомится, воспользовавшись Wayback Machine — Internet Archive: [Static Code Analysis][4]. Поскольку все статьи на нашем сайте представлены на русском и английском языке, то мы выполнили перевод статьи Static Code Analysis на русский язык. А заодно решили опубликовать её на Хабре. Здесь уже публиковался [пересказ этой статьи][5]. Но уверен, многим будет интересно прочитать именно перевод._ Самым главным своим достижением в качестве программиста за последние годы я считаю знакомство с методикой статического анализа кода и ее активное применение. Дело даже не столько в сотнях серьезных багов, не допущенных в код благодаря ей, сколько в перемене, вызванной этим опытом в моем программистском мировоззрении в отношении вопросов надежности и качества программного обеспечения. [Читать дальше →][6]

[1]: http://habrastorage.org/getpro/habr/post_images/e15/67a/a6d/e1567aa6d6c4345696511cff8ff8430d.png
[2]: https://ru.wikipedia.org/wiki/%D0%9A%D0%B0%D1%80%D0%BC%D0%B0%D0%BA,_%D0%94%D0%B6%D0%BE%D0%BD
[3]: http://www.viva64.com/en/a/0087/
[4]: http://web.archive.org/web/20120422160515/http:/altdevblogaday.com/2011/12/24/static-code-analysis
[5]: http://habrahabr.ru/post/135234/
[6]: http://habrahabr.ru/post/254855/#habracut

[>] Программы-вымогатели на Smart TV? Можно готовиться, они идут
habra.15
habrabot(difrex,1) — All
2015-11-27 16:00:02


![][1] Многие специалисты по информационной безопасности назвали криптовымогатели крупнейшей угрозой 2016 года. При этом проблема касается уже не только персональных компьютеров или смартфонов. Опасности подвергаются даже умные телевизоры. На днях компания Symantec продемонстрировала, насколько легко ransomware может проникнуть на умный ТВ, и насколько сложно от этого ПО избавиться. Представитель компании, который занимался изучением этой проблемы, не назвал модель и производителя телевизора, по понятным причинам. Но он сообщил, что в качестве программной оболочки на этом ТВ используется модифицированная версия Google Android, котору часто используют производители телевизоров. Для того чтобы заразить ни в чем не повинный телевизор, сотрудник Symantec по имени Кандид Вуист (Candid Wueest) использовал простенький криптовымогатель. Это программное обеспечение после установки на ТВ стало показывать сообщение о необходимости переслать определенную сумму денег каждые несколько секунд, перекрывая изображение на ТВ. [Читать дальше →][2]

[1]: https://habrastorage.org/getpro/habr/post_images/0e9/a23/360/0e9a23360cbba65978edb243268a203e.jpg
[2]: http://habrahabr.ru/post/271831/#habracut

[>] [Из песочницы] Утечка 191 000 адресов электронной почты из резюме Авито
habra.15
habrabot(difrex,1) — All
2015-11-27 17:30:03


Около недели назад я при гуглении неизвестного номера (из пропущенных звонков) внезапно наткнулся на него в выдаче в виде PDF файла с Авито, который выдавал ошибку при переходе по прямой ссылке, но попал в кэш. Выглядело это как то так: ![Пример выдачи][1] Общий вид ссылки: «m.avito.ru/[адрес объявления]/export/pdf». Всё можно найти по запросу: «site:avito.ru inurl:export/pdf» ([Google][2], [Яндекс][3]). Если Google обещает 191 000 результатов (реально выводит около 640, видимо срабатывает ограничение на выдачу), то в Яндексе всего 152 ответа и кэш недоступен в явном виде (но сами адреса легко вытянуть немного модифицированными запросами вроде «site:avito.ru inurl:export/pdf [mail][4].ru»). Период сообщений где-то с августа по ноябрь этого года. Официальный ответ компании: ![Официальный ответ][5] Так что это наши с вами проблемы, что компания допустила утечку наших данных в публичную сеть, всё нормально. [Читать дальше →][6]

[1]: https://habrastorage.org/files/f59/95f/4d2/f5995f4d209a4eb8a33cf691862b8807.png
[2]: https://www.google.ru/search?q=site:avito.ru inurl:export/pdf
[3]: https://yandex.ru/search/?text=site%3Aavito.ru%20inurl%3Aexport%2Fpdf
[4]: http://habrahabr.ru/users/mail/
[5]: https://habrastorage.org/files/361/225/f26/361225f260134a888c614547721c023a.png
[6]: http://habrahabr.ru/post/271859/#habracut

[>] [Перевод] Построение аналитических выражений… для любых объектов — от теоремы Пифагора до розовой пантеры и сэра Исаака Ньютона в Wolfram Language (Mathematica)
habra.14
habrabot(difrex,1) — All
2015-04-03 18:30:02






_Перевод поста Майкла Тротта (Michael Trott) "[Making Formulas… for Everything—From Pi to the Pink Panther to Sir Isaac Newton][1]". Выражаю благодарность за помощь в переводе [Сильвии Торосян][2]. Скачать перевод в виде документа Mathematica, который содержит весь код использованный в статье, можно [здесь][3] (архив, ~7 МБ)._ В компании [Wolfram Research][4] и [Wolfram|Alpha][5] мы любим математику и вычисления. Наши любимые темы — алгоритмы, следующие из формул и уравнений. Например, _Mathematica_ может вычислить миллионы интегралов (точнее бесконечное их количество, встречающихся на практике), а также Wolfram|Alpha знает сотни тысяч математических формул (от [формулы Эйлера][6] и [BBP-формул для Pi][7] до [сложных определённых интегралов, содержащих sin (x)][8]) и множество формул физики (например, от [закона Пуазейля][9] до [классических решений механики для точечной частицы в прямоугольнике][10] или [потенциала обратного расстояния в четырехмерном пространстве, в гиперсферических координатах][11]), так же как менее известные формулы, такие как формулы для[ частоты дрожащей мокрой собаки][12], [максимальной высоты песочного замка][13], или [времени приготовления индейки][14]. [Читать дальше →][15]

[1]: http://blog.wolfram.com/2013/05/17/making-formulas-for-everything-from-pi-to-the-pink-panther-to-sir-isaac-newton/
[2]: http://vk.com/id211809242
[3]: http://goo.gl/qo7hZr
[4]: http://www.wolfram.com/
[5]: http://www.wolframalpha.com/
[6]: http://www.wolframalpha.com/input/?i=Euler%27s+formula
[7]: http://www.wolframalpha.com/input/?i=BBP-type+formulas+for+pi
[8]: http://www.wolframalpha.com/input/?i=complicated+definite+integrals+containing+sin%28x%29
[9]: http://www.wolframalpha.com/input/?i=Poiseuille%27s+law
[10]: http://www.wolframalpha.com/input/?i=classical+mechanics+solutions+of+a+point+particle+in+a+rectangle
[11]: http://www.wolframalpha.com/input/?i=inverse%E2%80%90distance+potential+in+4D+in+hyperspherical+coordinates&lk=1&a=ClashPrefs_*PhysicalSystems.InverseDistancePotential4DHypersphericalCoordinates-
[12]: http://www.wolframalpha.com/input/?i=shaking+frequency+of+a+wet+dog
[13]: http://www.wolframalpha.com/input/?i=maximal+height+of+a+sandcastle
[14]: http://www.wolframalpha.com/input/?i=cooking+time+of+a+turkey
[15]: http://habrahabr.ru/post/254841/#habracut

[>] [Перевод] Разработка быстрых мобильных приложений на Android. Часть вторая
habra.15
habrabot(difrex,1) — All
2015-11-27 18:00:02


В [Edison][1] мы часто сталкиваемся с оптимизацией мобильных приложений и хотим поделиться материалом, который считаем крайне полезным, если вы решаете одну из двух задач: а) хотите чтобы приложение меньше тормозило; б) хотите сделать красивый, мягкий и гладкий интерфейс для массового пользователя. Предлагаем вашему вниманию первую часть перевода статьи Udi Cohen, которую мы использовали как пособие для обучения молодых коллег оптимизации под Android. (Читать [первую часть][2]) ![][3]

#### **Общие советы по работе с памятью**

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

* **Перечисления** уже являются предметом горячих споров о производительности. Вот [видео][4], в котором обсуждается размер памяти, который тратят перечисления, и [обсуждение][5] данного видео и некоторой информации, потенциально вводящей в заблуждение. Используют ли перечисления больше памяти, чем обычные константы? Определенно. Плохо ли это? Не обязательно. Если вы пишете библиотеку и нуждаетесь в сильной типобезопасности, она могла бы оправдать их использование по сравнению с другими решениями, такими как [@IntDef][6]. Если у вас просто есть куча констант, которые могут быть сгруппированы вместе, использование перечислений будет не очень мудрым решением. Как обычно, есть компромисс, который нужно учесть при принятии решения.
* **Обёртка** — это автоматическое конвертирование примитивных типов к их объектному представлению (например, int -> Integer). Каждый примитивный тип «оборачивается» в объектное представление, создается новый объект (шокирует, я знаю). Если у нас есть много таких объектов, вызов сборщика мусора будет выполняться чаще. Легко не заметить количество оборачиваний, потому что это делается автоматически для нас при назначении примитивному типу объекта. В качестве решения, постарайтесь использовать соответствующие типы. Если вы используете примитивные типы в своем приложении, постарайтесь избежать их обёртки без реальной на то необходимости. Вы можете использовать инструменты профилирования памяти, чтобы найти объекты, представляющие примитивные типы. Вы также можете использовать Traceview и искать Integer.valueOf(), Long.valueOf() и пр.
* **HashMap vs ArrayMap / Sparse\*Array** — также, как и в случае с обёртками, использование HashMap требует использование объектов в качестве ключей. Если мы используем примитивный тип int в своем приложении, он автоматически оборачивается в Integer при взаимодействии с HashMap, в этом случае мы могли бы использовать SparseIntArray. В случае, когда мы по-прежнему используем объекты в качестве ключей, мы можем использовать ArrayMap. Оба варианта требуют меньший объем памяти, чем HashMap, но они [работают по-другому][7], что делает их более эффективными в потреблении памяти ценой уменьшения скорости. Обе альтернативы имеют меньший отпечаток памяти, чем HashMap, но время, требуемое для извлечения элемента или выделения памяти, немного выше, чем у HashMap. Если у вас нет более 1000 элементов, различия во времени выполнения не существенны, что делает жизнеспособными эти два вариантом.
* **Осознание контекста** — как вы видели ранее, относительно легко создать утечки памяти. Вы, возможно, не будете удивлены, узнав, что активити являются наиболее частой причиной утечек памяти в Android(!). Их утечки также очень дорого стоят, так как они содержат все представления иерархии их UI, которые сами по себе могут занять много места. Убедитесь в том, что понимаете, что происходит в активити. Если ссылка на объект в кэше и этот объект живет дольше, чем ваша активити, без очистки этой ссылки вы получите утечку памяти.
* **Избегайте использование нестатических внутренних классов**. При создании нестатического внутреннего класса и его экземпляра вы создаете неявную ссылку на ваш внешний класс. Если экземпляр внутреннего класса необходим на более длительный период времени, чем внешний класс, внешний класс будет продолжать находиться в памяти, даже если он больше не нужен. Например, создается нестатический класса, который наследует AsyncTask внутри класса Activity, затем происходит переход к новой асинхронной задаче и, пока она длится, завершение работы активити. Пока длится эта асинхронная задача, она будет сохранять активити живой. Решение простое — не делайте этого, объявите внутренний статический класс, если это необходимо.

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

[1]: http://www.edsd.ru/
[2]: http://habrahabr.ru/company/edison/blog/271761/
[3]: https://habrastorage.org/files/499/b8f/85f/499b8f85f84f44eb84918af27e4a13dd.jpg
[4]: https://youtu.be/Hzs6OBcvNQE
[5]: https://plus.google.com/+JakeWharton/posts/bTtjuFia5wm
[6]: https://developer.android.com/reference/android/support/annotation/IntDef.html
[7]: https://www.youtube.com/watch?v=ORgucLTtTDI
[8]: http://habrahabr.ru/post/271811/#habracut

[>] Стоит ли овчинка выделки или про “грандиозные” обновления программ
habra.15
habrabot(difrex,1) — All
2015-11-27 18:30:06


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

[1]: http://habrahabr.ru/post/271857/#habracut

[>] Библиотека Python 3 для подключения к ЕСИА — esia-connector
habra.15
habrabot(difrex,1) — All
2015-11-27 18:30:06


Все началось с того, что Минкомсвязи разрешило использовать портал госуслуг для идентификации и аутентификации пользователей на негосударственных веб-узлах. Это реализуется с помощью службы ЕСИА (Единая Система Идентификации и Аутентификации — [esia.gosuslugi.ru][1]). Заказчик нашего проекта входил в число первых 5-ти участников, которые подали заявки на интеграцию с ЕСИА, что выразилось для нас задачей эту интеграцию поддержать. В свободном доступе мы не нашли открытого бесплатного решения подходящего для своего стека технологий, поэтому после разработки, с благословления заказчика, решили поделиться собственным (BSD license). Итак, представляем вам проект esia-connector, написан на Python 3, использует утилиту openssl, проверялся в работе только в Debian-based системах. Пакет: [pypi.python.org/pypi/esia-connector][2] Проект: [github.com/saprun/esia-connector][3] [Подробнее про использование, недостатки, планы.][4]

[1]: https://esia.gosuslugi.ru
[2]: https://pypi.python.org/pypi/esia-connector/
[3]: https://github.com/saprun/esia-connector
[4]: http://habrahabr.ru/post/271827/#habracut

[>] Как мы говорим
habra.14
habrabot(difrex,1) — All
2015-04-03 19:30:03


Русский язык богат и самобытен, однако мы неустанно наполняем его новыми словами из области знаний, в которой или терминология плохо проработана, или использование другого языка гораздо более удобно. Количество заимствований из английского языка в речи IT-занятого населения переходит все мыслимые пределы. Зачастую проще говорить на английском, так как от русского в речи остаются только союзы да предлоги. Но тут уж как кому удобнее. Заимствование в языке – процесс естественный и понятный, и, мне кажется, вполне логично считать, что заимствованное слово должно соотвествовать правилам русского языка и не выглядеть в нем совсем уж чужеродно. [Читать дальше →][1]

[1]: http://habrahabr.ru/post/254849/#habracut

[>] Биометрия: Учёт рабочего времени + Fujitsu PalmSecure
habra.15
habrabot(difrex,1) — All
2015-11-27 18:30:06


![][1] Системы учета рабочего времени уже достаточно давно заняли свое место в инфраструктуре многих предприятий, где руководство хочет получать оперативную и объективную информацию о соблюдении трудовой дисциплины сотрудниками. Фиксация времени прихода-ухода является полезным инструментом для предотвращения злоупотребления доверием и ценной информацией для отдела кадров. Сегодня мы поговорим о системе учета рабочего времени, использующей в своей работе технологию Fujitsu PalmSecure. [Читать дальше →][2]

[1]: https://habrastorage.org/files/041/b2f/0ed/041b2f0ed9f2447ab5d12ca51b684700.jpg
[2]: http://habrahabr.ru/post/271721/#habracut

[>] Шифрование в NQ Vault оказалось обычным XOR-ом, и это не самое плохое
habra.14
habrabot(difrex,1) — All
2015-04-04 15:00:02


[NQ Vault][1] — довольно популярное (30 млн. пользователей) Android приложение (есть версия и для iOS), позволяющее зашифровать выбранные SMS, фотографии и видео на устройстве. Просмотреть зашифрованный контент можно через приложение, введя пароль. Приложение получило хорошие отзывы и обзоры в ведущих ИТ изданиях. Пользователь GitHub [ninjadoge24][2] решил проверить, насколько хорошо приложение защищает приватные данные. [Читать дальше →][3]

[1]: https://play.google.com/store/apps/details?id=com.netqin.ps
[2]: https://github.com/ninjadoge24
[3]: http://habrahabr.ru/post/254899/#habracut

[>] Security Week 48: тоска с сертификатами у Dell, бэкдор в модемах, Truecrypt возвращается
habra.15
habrabot(difrex,1) — All
2015-11-27 18:30:06


![][1]Каждый раз, когда в сфере безопасности происходит очередной провал, из воздуха материализуются два вечных вопроса: что делать и кто виноват. Причем первый важнее: все чаще мы имеем дело с инцидентами, которые вот так просто, патчем или чем-то подобным, решить невозможно. К сожалению, это относится не только к суперсложным атакам. К счастью, речь обычно идет о теоретических угрозах. Посмотрим на главные новости этой недели: — В ноутбуках Dell обнаружили самоподписанные корневые сертификаты; — В 600 тысячах модемов американской компании Arris обнаружили бэкдор; — За аудит TrueCrypt взялось немецкое госагентство, ничего не нашло, но заброшенной разработчиками утилите для шифрования все равно никто больше не доверяет. Ничего нового. Первые две истории — вообще из любимой мной рубрики «никогда такого не было и вот опять». Десятки производителей софта и железа наступают на специальные IT Security грабли, и кажется, что никогда не будет этому ни конца, ни края. Но решение есть, и в сегодняшнем дайджесте я попробую в общих чертах объяснить, какое. Все эпизоды сериала — [тут][2]. [Читать дальше →][3]

[1]: https://habrastorage.org/files/20e/0c0/554/20e0c05540cd4179aeb976ed49e38640.jpg
[2]: http://habrahabr.ru/search/?target_type=posts&q=%5Bklsw%5D%20&order_by=date
[3]: http://habrahabr.ru/post/271847/#habracut

[>] Реактивное программирование в табличном процессоре
habra.14
habrabot(difrex,1) — All
2015-04-04 22:30:03


![][1] Табличный процессор (речь идет о MS Excel или LibreOffice Calc) — это довольно занятный и универсальный инструмент. Мне часто приходилось (и приходится) пользоваться его широкими возможностями: автоматизированные отчеты, проверка гипотез, прототипирование алгоритмов. Например, я использовал его для решения задач [проекта Эйлер][2], быстрой проверки алгоритмов, реализовал парсер одного прикладного протокола (по работе надо было). Мне нравится наглядность, которую можно добиться в табличном процессоре, а еще мне нравится нестандартное применение всего, чего только возможно :) На Хабре уже появлялись интересные статьи на тему нестандартного применения Excel: [habrahabr.ru/post/246975/][3] [habrahabr.ru/post/237641/][4] [habrahabr.ru/post/174373/][5] В этой длинной статье я хочу поделиться своими экспериментами в [реактивном программировании][6] с помощью формул табличного процессора. В результате этих экспериментов у меня получился «компьютер» с процессором, памятью, стеком и дисплеем, реализованный внутри LibreOffice Calc при помощи одних только формул (за исключением тактового генератора), который можно программировать на неком подобии ассемблера. Затем, в качестве примера и proof-of-concept, я написал игру «Змейка» и ползущую строку для этого компьютера. [Читать дальше →][7]

[1]: //habrastorage.org/files/ffa/4b3/fb8/ffa4b3fb80de44858aff8cca21189cf2.png
[2]: https://projecteuler.net/archives
[3]: http://habrahabr.ru/post/246975/
[4]: http://habrahabr.ru/post/237641/
[5]: http://habrahabr.ru/post/174373/
[6]: https://ru.wikipedia.org/wiki/%D0%A0%D0%B5%D0%B0%D0%BA%D1%82%D0%B8%D0%B2%D0%BD%D0%BE%D0%B5_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5
[7]: http://habrahabr.ru/post/254569/#habracut

[>] «IT — это достаточно бедная индустрия» — интервью с Дмитрием Нестеруком из JetBrains
habra.15
habrabot(difrex,1) — All
2015-11-28 19:00:02


Всем привет. Это снова «Без слайдов», и сегодня у меня для вас интервью с **Дмитрием Нестеруком**, техническим евангелистом компании JetBrains. Дмитрия я знаю довольно давно и, не скрою, сам очень долго ждал момента, когда мы наконец поедем на студию и запишемся. Уж больно много вопросов у меня к нему накопилось. ![][1] Мы больше часа беседовали с Дмитрием, но не успели затронуть даже половины тем, которые хотелось обсудить. Что Дмитрий успел рассказать мне:

* Чем технический евангелист отличается от Developer Advocate
* Как работает евангелизм в JetBrains
* О восприятии мира настоящими гиками
* Почему IT — это бедная индустрия
* Про маржу и инвестиции российских аутсорсеров
* Про то, какие enterprise решения позорят индустрию и почему
* Насколько далека JetBrains от своего простого потребителя
* Об том, как индустрия видеоигр смогла «вырастить» под себя целый сектор железа
* Что сейчас творится на рынке видеокарт
* Что еще могут придумать компании, для того, чтобы программы работали быстрее
* О том, как будет выживать ReSharper и о новой IDE на 64 бита

Вот видео, а под катом, как обычно, текстовая версия этого интервью.




(на одиннадцатой минуте нет звука. Знаем, чиним.) [Читать дальше →][2]

[1]: https://habrastorage.org/files/cde/ff7/af3/cdeff7af3f494c31a3230ebfe5d49916.jpg
[2]: http://habrahabr.ru/post/271887/#habracut

[>] QCTF Starter: компьютерная безопасность на четверых или как мы сделали турнир для новичков в 19 городах одновременно
habra.15
habrabot(difrex,1) — All
2015-11-29 17:30:03


CTF-соревнования знакомы многим, ещё больше людей о них хотя бы раз слышали. Про них [тут][1] хорошо написано. Чтобы участвовать в серьёзных CTF-турнирах нужна неслабая подготовка, но мало кто знает, как и где её получить. Мы решили исправить это, а именно — провести массовые соревнования по компьютерной безопасности для новичков. И назвали их QCTF Starter. Возможно, для участников это станет первой ступенькой на пути к профессиональным CTF-турнирам. QCTF Starter прошёл вчера на площадках по всей стране, а с понедельника (10:00 по МСК) мы запустим онлайн-версию по мотивам соревнования для тех, кто не смог присоединиться к нам в оффлайне. Ссылка появится [на сайте][2] прямо перед стартом тура. Мы обязательно напомним вам о начале игры, если вы [оставите тут свои координаты][3]. На онлайн-зеркало приглашаем всех желающих. В этом году нам удалось сделать почти невозможное: собрать 208 команд в 19 городах на 22 площадках. Одна даже находилась за пределами России, в Минске. Но мы неумолимы и надеемся, что в следующем году площадок станет ещё больше. Благодаря энтузиастам, согласившимся взять на себя организацию соревнований в своих городах, мы смогли набрать такое большое количество команд (QCTF Starter стал самым большим очным CTF-соревнованием, когда-либо проводившимся в России. Как нам это удалось и что получилось в итоге, читайте под катом. ![image][4] (Фото сделано участником соревнования QCTF Starter в Екатеринбурге) [Читать дальше →][5]

[1]: http://habrahabr.ru/post/64216/
[2]: http://qctf.ru/starter-2015/
[3]: https://docs.google.com/forms/d/1_no1UaHTK3WYumleWilCCO0bFjiUUnnZf64PTlFLwww/edit
[4]: https://habrastorage.org/files/823/963/872/823963872133448090fa445992a3dcde.png
[5]: http://habrahabr.ru/post/271909/#habracut

[>] Лёгкий блочный шифр Speck, или пылинка от агенства, которого нет
habra.15
habrabot(difrex,1) — All
2015-11-29 22:00:02


![Устройство на КДПВ шифрует не по алгоритму Speck, но могло бы][1] В июне 2013 года АНБ опубликовало описание двух лёгких блочных шифров — Simon и Speck [[1]][2]. Произошло это в самый разгар скандала со Сноуденом, поэтому новость была встречена с понятным скептицизмом. Особенно потому, что в статье не было результатов криптоанализа, а только описание алгоритма и данные о производительности. Прошло два года, практических атак ни на Simon, ни на Speck не появилось [[2]][3], а преимущества (простота и гибкость) — остались. В отличие от своего младшего брата Simon, который оптимизирован для железа, Speck создан для программной имплементации, в том числе на устройствах с ограниченными возможностями вроде микроконтроллеров. Поскольку программистов среди читателей скорее всего больше, чем аппаратчиков, остаток статьи будет про Speck. [Что там внутри и зачем он нужен, когда есть AES][4]

[1]: https://habrastorage.org/files/0c2/8de/fe0/0c28defe036640d79bd95241f37fa630.jpg
[2]: #Reference1
[3]: #Reference1
[4]: http://habrahabr.ru/post/271435/#habracut

[>] Можно ли заниматься разработкой на планшете?
habra.15
habrabot(difrex,1) — All
2015-11-30 02:30:02


Программирование — процесс творческий и часто желание написать кусок кода или сиюминутно исправить ошибку становится просто невыносимым. Иногда написания кода требуют внешние обстоятельства, как то критичная ошибка в коде, которая валит проект. Для сотрудников, занимающих руководящие позиции в команде, нужна возможность провести code review и поправить проблемные участки кода. Хорошо когда в пределах досягаемости есть стационарный компьютер или ноутбук на котором развернута привычная среда разработки. Но что делать если вы находитесь за пределами рабочего места? Таскать с собой постоянно ноутбук? Но во первых большой 13-15 дюймовый ноутбук не везде развернешь (например общественный транспорт), а во вторых таскать его постоянно с собой — еще то занятие. Можно конечно купить 11 дюймовый MacBook Air (или его аналог), но все равно он будет не настолько компактен и не так часто используем, чтобы оправдать покупку. Чтож, обратим свой взор на устройства, которые сейчас практически всегда с нами — это телефон и планшет. Телефон — это конечно вариант экстремальный, хотя сейчас, с появлением 6 — 6,5 дюймовых моделей, грань между телефоном и планшетом стирается. У меня есть опыт успешного восстановления удаленного сервера по ssh с телефона iPhone 4s с 3.5 дюймовым экраном. Но мы все таки говорим о процессе полноценной работы с кодом, поэтому, на мой взгляд, минимальным является планшет с диагональю от 7 дюймов, экран которого вмещает сопоставимое с экраном большого компьютера, информации. Я покажу на примере iPad Mini возможные варианты его использования для решения повседневных задач разработчика. ![][1] Если вас заинтересовала тема — читаем дальше (осторожно, большое количество картинок). [Читать дальше →][2]

[1]: https://habrastorage.org/files/3d8/0b6/288/3d80b62889244ca596749b55d2767d8b.png
[2]: http://habrahabr.ru/post/271901/#habracut

[>] 5 главных рисков при заказной разработке ПО
habra.15
habrabot(difrex,1) — All
2015-11-30 12:30:02


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

[1]: https://habrastorage.org/files/ee5/d09/fd7/ee5d09fd789d45b1b2375c96d7d13920.jpg
[2]: http://habrahabr.ru/post/271937/#habracut

[>] На вкус и цвет 2 – не RGB единым
habra.14
habrabot(difrex,1) — All
2015-04-05 00:00:02


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

[1]: http://habrahabr.ru/post/254797/#first_unread
[2]: http://habrahabr.ru/post/254895/#habracut

[>] [Перевод] Произведения и копроизведения
habra.15
habrabot(difrex,1) — All
2015-11-30 13:00:02


_Это пятая статья из цикла «Теория категорий для программистов». Предыдущие статьи уже публиковались на Хабре в переводе [Monnoroch][1]:_ [0\. Теория категорий для программистов: предисловие][2] [1\. Категория: суть композиции][3] [2\. Типы и функции][4] [3\. Категории, большие и малые][5] [4\. Категории Клейсли][6] _На КДПВ поросенок Петр заводит по одному трактору в каждый объект категории._

## Следуй по стрелкам

Древнегреческий драматург Еврипид писал «Всякий человек подобен своему окружению». Это верно и для теории категорий. Выделить определенный объект категории можно только путем описания характера его взаимоотношений с другими объектами (и самим собой), где отношения — это морфизмы. Для определения объектов в терминах их взаимоотношений теория категорий прибегает к т. н. _универсальным конструкциям_. Для этого можно выбрать некоторый шаблон, диаграмму из объектов и морфизмов определенной формы, и рассмотреть все подходящие под него конструкции рассматриваемой категории. Если шаблон достаточно распространен и категория достаточно велика, то, вероятно, найденных конструкций будет очень и очень много. Идея универсальной конструкции состоит в том, чтобы упорядочить конструкции по какому-то закону и выбрать наиболее подходящую. Этот процесс можно сравнить с поиском в сети. Запрос пользователя — это наш шаблон. Если запрос не очень специфичен, то в ответ поисковая система выдаст множество подходящих документов, только часть из которых релевантны. Чтобы исключить нерелевантные ответы, пользователь уточняет запрос, что увеличивает точность поиска. В конце концов поисковая система проранжирует совпадения и, если повезет, искомый результат будет в самом начале списка. [Читать дальше →][7]

[1]: http://habrahabr.ru/users/monnoroch/
[2]: http://habrahabr.ru/post/245797/
[3]: http://habrahabr.ru/post/246009/
[4]: http://habrahabr.ru/post/247765/
[5]: http://habrahabr.ru/post/248257/
[6]: http://habrahabr.ru/post/249113/
[7]: http://habrahabr.ru/post/271927/#habracut

[>] [Перевод] Первые шаги с Java 9 и проект Jigsaw – часть первая
habra.15
habrabot(difrex,1) — All
2015-11-30 13:00:02


Доброе утро, Хабр! Еще со времен книги "[Java. Новое поколение разработки][1]" мы следим за развитием давно анонсированных новых возможностей этого языка, объединенных под общим названием "[Project Jigsaw][2]". Сегодня предлагаем перевод статьи от 24 ноября, вселяющей достаточную уверенность, что в версии Java 9 Jigsaw все-таки состоится. [Читать дальше →][3]

[1]: http://www.piter.com/collection/kompyutery-i-internet/product/java-novoe-pokolenie-razrabotki
[2]: http://openjdk.java.net/projects/jigsaw/
[3]: http://habrahabr.ru/post/271941/#habracut

[>] [Перевод] Детальный взгляд на наследие Лейбница
habra.14
habrabot(difrex,1) — All
2015-04-05 13:30:03






_Перевод статьи Стивена Вольфрама (Stephen Wolfram) "[Dropping In on Gottfried Leibniz][1]"._ На протяжении многих лет меня интересовала личность Готфрида Лейбница, в частности из-за того, что он хотел создать что то на подобие [Mathematica][2], [Wolfram|Alpha][3] и возможно даже [A New Kind of Science][4] но на три столетия раньше. Поэтому когда в недавнем прошлом я посетил Германию, то мне страстно захотелось побывать [в его архивах в Ганновере][5]. Листая пожелтевшие от времени, но все еще прочные листы с его записями я чувствовал некоторую взаимосвязь — я пытался представить, о чем он думал когда писал их. Также я старался сопоставить содержимое записей с тем, что мы знаем сейчас — три столетия спустя. [Читать дальше →][6]

[1]: http://blog.stephenwolfram.com/2013/05/dropping-in-on-gottfried-leibniz/
[2]: http://www.wolfram.com/mathematica/
[3]: http://www.wolframalpha.com/
[4]: http://www.wolframscience.com/
[5]: http://www.nlb-hannover.de/Leibniz/Leibnizarchiv/english/introduction/
[6]: http://habrahabr.ru/post/254939/#habracut

[>] Пишем тактическую игру про цифры под Android
habra.15
habrabot(difrex,1) — All
2015-11-30 16:00:04


Когда я только взялся за программирование (3 месяца назад), я быстро понял, что лучше сразу начинать заниматься своими проектами. Невозможно с утра до вечера сидеть за книгами или курсами, но если вы начнете делать что-то свое, то запросто просидите за разработкой с утра до утра. Эта статья — небольшой туториал по тому, как сделать логическую игру с ботом. Игра будет выглядеть вот так:




_\*Подробно опишу правила еще раз в разделе про ИИ._ Читателей статьи условно разделяю на три группы.

1. Начали программировать несколько часов назад. Вам будет сложно, лучше предварительно пройдите какой-нибудь небольшой курс по введению в Android-разработку, разберитесь с двумерными массивами и интерфейсами. А потом загрузите проект с [гитхаба][1]. Комментарии и эта статья помогут вам разобраться, что и как работает.
2. Уже умеете программировать, но еще не можете назвать себя опытными. Вам будет интересно, потому что вы очень быстро сможете сделать свою игру. Я взял на себя грязную работенку по построению логики игры и ui-составляющей, вам же оставляю творческую часть. Вы можете сделать другой режим игры (2 на 2, онлайн и т.п.), изменить алгоритмы бота, создать уровни и т.д.
3. Опытные. Вам может быть интересно подумать над ИИ — написать его не так легко, как кажется на первый взгляд. Так же я был бы очень рад получить от вас замечания по коду — уверен, далеко не все я сделал оптимально.

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

[1]: https://github.com/Liverm0r/PlusMinus
[2]: http://habrahabr.ru/post/271899/#habracut

[>] Государственный мандат на убийство вселенной и противодействие этому (доклад на Bitcoin Conference Russia 2015)
habra.14
habrabot(difrex,1) — All
2015-04-05 17:30:02


![image][1] Ниже представлен доклад, который был тезисно представлен на прошедшей 2 апреля в Москве [**Bitcoin Conference Russia 2015**][2]. Представители государственных органов в России в последний год [серьезно озаботились][3] распространением криптовалют и технологий, на основе которых они функционируют среди интернет-пользователей. Большинство из тех высказываний и публикаций, что попадало в информационное пространство носили от госведомств критический или как минимум осторожный характер в отношении перспектив функционирования того же биткоин в легальном пространстве. К сожалению, в настоящее время всё же [побеждает репрессивная][4] в отношении криптовалют точка зрения со стороны государства. [Читать дальше →][5]

[1]: http://habrastorage.org/getpro/habr/post_images/e9e/3dd/2ac/e9e3dd2acf376bf26db25f0c5aec4e75.png
[2]: http://bitcoinconf.moscow/ru
[3]: http://habrahabr.ru/post/250337/
[4]: http://rublacklist.net/8753/
[5]: http://habrahabr.ru/post/254905/#habracut

[>] Морфологическая обработка изображений. Лекции от Яндекса
habra.14
habrabot(difrex,1) — All
2015-04-05 18:30:02


Мы продолжаем публиковать лекции [Натальи Васильевой][1], старшего научного сотрудника HP Labs и руководителя HP Labs Russia. Наталья Сергеевна читала курс, посвящённый анализу изображений, в петербургском Computer Science Center, который создан по совместной инициативе Школы анализа данных Яндекса, JetBrains и CS-клуба.




Всего в программе девять лекций. [Первая][2] и [вторая][3] уже были опубликованы. В предыдущем рассказе речь шла об основах пространственной и частотной обработки изображений. Третья лекция посвящена основным операциям морфологической обработки изображений. Под катом — слайды, план лекции и её дословная расшифровка. [Читать дальше →][4]

[1]: http://www.hpl.hp.com/people/nvassilieva/
[2]: http://habrahabr.ru/company/yandex/blog/251161/
[3]: http://habrahabr.ru/company/yandex/blog/254249/
[4]: http://habrahabr.ru/post/254955/#habracut

[>] [Из песочницы] Linux, отложенная загрузка драйверов и неработающие прерывания
habra.15
habrabot(difrex,1) — All
2015-11-30 18:00:02


Сегодня я расскажу о неожиданных проблемах, которые возникли при подключении матричной клавиатуры к ARM-борде под управлением Linux. А конкретно о том, почему драйвер adp5589 не захотел получать прерывания и как мы смогли заставить его это делать. Кому интересно — добро пожаловать под кат. [Читать дальше →][1]

[1]: http://habrahabr.ru/post/271983/#habracut

[>] sin 1° на калькуляторе
habra.15
habrabot(difrex,1) — All
2015-11-30 18:30:02


. Как в бухгалтерии или на рынке. [Читать дальше →][1]

[1]: http://habrahabr.ru/post/271889/#habracut

[>] Анонс онлайн-курсов Технопарка, Техносферы и Технотрека на Stepic
habra.15
habrabot(difrex,1) — All
2015-11-30 18:30:02


![][1] Приятная новость для всех, у кого нет возможности обучаться в Технопарке, Техносфере или Технотреке: теперь курсы этих проектов доступны в виде онлайн-курсов на платформе Stepic! На сегодняшний день доступна запись по пяти дисциплинам:

* [Алгоритмы и структуры данных][2] — запуск **8** декабря.
* [Подготовительная программа по программированию на С/C++][3] — запуск **9** декабря.
* [Многопоточное программирование на С/С++][4] — запуск **10** декабря.
* [Hadoop. Система для обработки больших объемов данных][5] — запуск **10** декабря.
* [Разработка веб-сервиса на Java (часть 1)][6] — запуск **11** декабря.

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

[1]: https://habrastorage.org/files/3f4/57e/7b6/3f457e7b609c497abfe734874122907a.jpg
[2]: https://it.mail.ru/eedu/#scroll-edu-5
[3]: https://it.mail.ru/eedu/#scroll-edu-2
[4]: https://it.mail.ru/eedu/#scroll-edu-6
[5]: https://it.mail.ru/eedu/#scroll-edu-7
[6]: https://it.mail.ru/eedu/#scroll-edu-4
[7]: http://habrahabr.ru/post/271971/#habracut

[>] Что под капотом тревел-стартапов или зачем программисту идти на Hack`n`Roll
habra.15
habrabot(difrex,1) — All
2015-11-30 19:30:02


26 ноября прошла конференция «TravelTech: перспективы онлайн-сервисов», где эксперты из тревел-отрасли попытались разобраться, что сейчас происходит на рынке.




Сначала у меня было мнение, что все тревел-стартапы — это просто интерфейсные фантики и много пиара, но я пообщался с Романом Спиридоновым (CTO Excursopedia) и он открыл мне глаза на open source, алгоритмы эффективного поиска и фрод в сфере тревел-проектов. [4-6 декабря на будет проходить Hack’n’Roll][1] (типа хакатон), где можно будет продемонстрировать свою программистскую силушку и принять участие в развитии онлайн-сервисов в России. Под катом — то, какие вызовы и возможности есть для программистов тревел-сегменте. [Читать дальше →][2]

[1]: http://tceh.com/ntp/?utm_source=12104u9798r&utm_medium=4112t111115s&utm_term=5118o105100e&utm_content=3116p111112o&utm_campaign=3110p116112t
[2]: http://habrahabr.ru/post/271935/#habracut

[>] Базовая реализация INotifyPropertyChanged
habra.15
habrabot(difrex,1) — All
2015-11-30 21:30:03


_WPF в чём-то повторил судьбу js — в силу некоторых нерешённых на уровне платформы проблем [многие][1] [пытаются][2] стать первооткрывателями наравне с [Карлом фон Дрезем][3]._

### Проблема

В случае с INPC в ViewModel часто существуют свойства, зависящие от других или вычисляемые на их основе. Для .net 4.0 ситуация с реализацией усложняется тем, что [CallerMemberNameAttribute][4] не поддерживается в этой версии (на самом деле [поддерживается][5], если вы [маг и кудесник][6]).

### Решение

[Как пользоваться и что внутри][7]

[1]: http://habrahabr.ru/post/271105/
[2]: http://habrahabr.ru/post/270979/
[3]: https://ru.wikipedia.org/wiki/Дрез,_Карл
[4]: https://msdn.microsoft.com/ru-ru/library/system.runtime.compilerservices.callermembernameattribute(v=vs.110).aspx
[5]: https://www.nuget.org/packages/Microsoft.Bcl/
[6]: http://stackoverflow.com/questions/18840924/callermembername-in-net-4-0-not-working
[7]: http://habrahabr.ru/post/271305/#habracut

[>] [Перевод] Релиз Rust 1.0 Beta
habra.14
habrabot(difrex,1) — All
2015-04-05 21:00:02


Сегодня мы рады представить релиз [Rust 1.0 Beta][1]! Бета-релиз является очень важным звеном на пути к финальному релизу 1.0. В частности, в бета-релизе **все библиотеки и элементы языка, которые мы собирались сделать стабильными в 1.0, отмечены как стабильные**. Поэтому по бета-релизу можно весьма точно представить, что вас будет ожидать в Rust 1.0. [Читать дальше →][2]

[1]: http://www.rust-lang.org/install.html
[2]: http://habrahabr.ru/post/254961/#habracut

[>] Практические аспекты автоматической генерации уникальных текстов для SEO
habra.15
habrabot(difrex,1) — All
2015-12-01 00:00:03


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

[1]: http://habrahabr.ru/post/271965/#habracut

[>] Написание МКЭ расчетчика в менее чем 180 строк кода
habra.15
habrabot(difrex,1) — All
2015-12-01 10:30:04


В наши дни, [МКЭ][1] — это наверное самый распространенный метод для решения широкого спектра прикладных инженерных задач. Исторически, он появился из механики, однако впоследствии был применен к всевозможным не механическим задачам. Сегодня имеется большое разнообразие программных пакетов, таких как **ANSYS**, **Abaqus**, **Patran**, **Cosmos**, и т.д. Эти программные пакеты позволяют решать задачи строительной механики, механики жидкости, термодинамики, электродинамики и многие другие. Сама реализация метода, как правило считается достаточно сложной и объемной. Здесь я хочу показать, что в настоящее время, используя современные инструменты, написание простейшего МКЭ расчетчика с нуля, для двумерной задачи плоско-напряженного состояния не является чем-то очень сложным и громоздким. Я выбрал этот вид задачи потому, что это был первый успешный пример применения метода конечных элементов. Ну и конечно он являются самым простым для реализации. Я собираюсь использовать линейный, трех-узловой элемент, так как это единственный плоский элемент, в случае которого не требуется численное интегрирования, как это будет показано ниже. Для элементов более высокого порядка, за исключением операции интегрирования (которая не совсем тривиальная, но при этом ее реализация достаточно интересная) идея абсолютно такая же. Картинка для привлечения внимания: ![][2] [Читать дальше →][3]

[1]: https://ru.wikipedia.org/wiki/%D0%9C%D0%B5%D1%82%D0%BE%D0%B4_%D0%BA%D0%BE%D0%BD%D0%B5%D1%87%D0%BD%D1%8B%D1%85_%D1%8D%D0%BB%D0%B5%D0%BC%D0%B5%D0%BD%D1%82%D0%BE%D0%B2
[2]: https://habrastorage.org/files/56f/6e4/ba6/56f6e4ba6700419dba05e0947b99ed43.png
[3]: http://habrahabr.ru/post/271723/#habracut

[>] [Перевод] Визуализация качества кода с PhpMetrics
habra.14
habrabot(difrex,1) — All
2015-04-05 21:00:02


_Недавно мне попался отличный инструмент для анализа PHP кода. Публикую перевод статьи с обзором этого инструмента. _ [PhpMetrics][1] использует D3 и несколько сложных алгоритмов для сканирования кода вашего приложения и вывода замысловатых отчетов по результатам. ![image][2] [Читать дальше →][3]

[1]: http://www.phpmetrics.org/
[2]: http://habrastorage.org/getpro/habr/post_images/790/f7e/366/790f7e3665ca06cd71a755bad23c3767.png
[3]: http://habrahabr.ru/post/254941/#habracut

[>] Видео от пользователя: Windows 3.11 внутри ReactOS
habra.14
habrabot(difrex,1) — All
2015-04-06 01:30:02


40-летнему юбилею корпорации Microsoft посвящается. ![][1] На видео один из пользователей нашего проекта демонстрирует работу Windows 3.11 внутри ReactOS.




[][2]

[1]: //habrastorage.org/files/937/e1d/996/937e1d996e9c4944bbf008e2ff488a32.jpg
[2]: http://habrahabr.ru/post/254985/#habracut

[>] Контрольная цифра методом Дамма
habra.15
habrabot(difrex,1) — All
2015-12-01 10:30:04


[Дамма][4] — относительно новый и потому малоизвестный. Он опубликован 2004 году. Алгоритм обнаруживает все ошибки в одной цифре и все одиночные перестановки соседних цифр. Он заметно проще, чем сравнимый по возможностям [алгоритм Верхуффа][5], и не требует использования специальных символов (таких как X в 10-значном ISBN). [Читать дальше →][6]

[1]: https://ru.wikipedia.org/wiki/Алгоритм_Луна
[2]: https://ru.wikipedia.org/wiki/Идентификационный_номер_транспортного_средства
[3]: https://ru.wikipedia.org/wiki/Международный_стандартный_книжный_номер
[4]: https://en.wikipedia.org/wiki/Damm_algorithm
[5]: https://ru.wikipedia.org/wiki/Алгоритм_Верхуффа
[6]: http://habrahabr.ru/post/272003/#habracut

[>] Bashrunner или PowerShell для юниксоида
habra.14
habrabot(difrex,1) — All
2015-04-06 07:30:07


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

[1]: http://habrahabr.ru/post/254963/#habracut

[>] Простая игра средствами ПТК «Квинт 7»
habra.14
habrabot(difrex,1) — All
2015-04-06 10:00:02


Здравствуйте. Продолжаем тему написания простых и забавных программ, используя [ПТК «Квинт 7»][1] российской разработки. В предыдущих постах показывалось как можно просто и быстро написать игрушку вроде [змейки][2] или [сапера][3]. Но не смотря на то, что это две совершенно разные игрушки, с точки зрения программирования на CFC (в результате спора с одним товарищем пришли к мнению, что данный язык все-таки ближе к CFC чем к FBD) это была фактически одна и та же программа с небольшими косметическими изменениями. В этой статье мы с вами рассмотрим новый пример программирования, написав с нуля простенькую игрушку «БлэкДжек». Если Вас заинтересовала эта тема, добро пожаловать под кат. [Читать дальше →][4]

[1]: https://ru.wikipedia.org/wiki/%D0%9F%D0%A2%D0%9A_%D0%9A%D0%B2%D0%B8%D0%BD%D1%82
[2]: http://habrahabr.ru/post/205324/
[3]: http://habrahabr.ru/post/218057/
[4]: http://habrahabr.ru/post/254665/#habracut

[>] SmartTV* — как создать небезопасное устройство в современном мире
habra.15
habrabot(difrex,1) — All
2015-12-01 10:30:04


_\* — в статье пойдет речь только про Samsung SmartTV_ ![image][1] _Изображение с mnn.com_

> «Please be aware that if your spoken words include personal or other sensitive information, that information will be among the data captured and transmitted to a third party.»

Соглашение о конфиденциальности Samsung SmartTV ([до февраля 2015 года][2])

> The telescreen received and transmitted simultaneously. Any sound that Winston made, above the level of a very low whisper, would be picked up by it; moreover, so long as he remained within the field of vision which the metal plate commanded, he could be seen as well as heard. There was of course no way of knowing whether you were being watched at any given moment. How often, or on what system, the Thought Police plugged in on any individual wire was guesswork.

_«1984» — роман-антиутопия Джорджа Оруэлла, изданный в 1949 году_

# Вступление

Буквально на прошлой неделе прошла конференция ZeroNights, про которую мы так много писали на Хабре (еще не опубликован финальный отчет, надо дописать). И кроме всего прочего, там я прочитал доклад про Samsung SmartTV, рассказав, что может быть, если при проектировании подобных мультимедийных платформ руководствоваться интуитивно наиболее близкими и легкими решениями (раскроем эту тему это очень подробно). Формат повествования был выбран хронологический, т.е. как я и что смотрел и как прорабатывал решение, будь бы я инженером подобного устройства. [Читать дальше →][3]

[1]: https://habrastorage.org/getpro/habr/post_images/0f7/4bc/5d9/0f74bc5d9fb24e7f70588237e65b6061.jpg
[2]: http://news.samsung.com/global/samsung-smart-tvs-do-not-monitor-living-room-conversations
[3]: http://habrahabr.ru/post/272017/#habracut

[>] Риски и метрики в автоматизации тестирования
habra.14
habrabot(difrex,1) — All
2015-04-06 12:00:02


![][1] Добрый день! Бизнес любит измерять, менеджмент любит прозрачность, а сотрудники не любят всю эту бумажную работу, в особенности если от них хотят неизвестно что… Процессы автоматизации тестирования не исключение. Я приведу 5 рисков, которые чаще всего встречаются, которые стреляют, которые нельзя недооценивать, которые могут привести к провалу всего тестирования и проектов в целом. Также я приведу примеры метрик, добросовестное использование которых поможет успокоиться вам, вашему начальству, бизнесу. [Читать дальше →][2]

[1]: //habrastorage.org/files/22f/432/2ab/22f4322aba384e88aa5cddea7d809585.jpg
[2]: http://habrahabr.ru/post/254957/#habracut

[>] [Из песочницы] Заметки о вращении вектора кватернионом
habra.14
habrabot(difrex,1) — All
2015-04-06 13:30:02




#### Структура публикации



* Получение кватерниона из вектора и величины угла разворота
* Обратный кватернион
* Умножение кватернионов
* Поворот вектора
* Рысканье, тангаж, крен
* Серия поворотов



#### Получение кватерниона из вектора и величины угла разворота

Ещё раз – что такое [кватернион][1]? Для разработчика – это прежде всего инструмент, описывающий действие – поворот вокруг оси на заданный угол: (w, vx, vy, vz), где v – ось, выраженная вектором; w – компонента, описывающая поворот (косинус половины угла). [Читать дальше →][2]

[1]: https://ru.wikipedia.org/wiki/%D0%9A%D0%B2%D0%B0%D1%82%D0%B5%D1%80%D0%BD%D0%B8%D0%BE%D0%BD
[2]: http://habrahabr.ru/post/255005/#habracut

[>] [Перевод] Топ 100+ возможностей работы с синусом в Wolfram|Alpha, или Краткий обзор математических возможностей и синтаксиса Wolfram|Alpha
habra.14
habrabot(difrex,1) — All
2015-04-06 13:30:02






_Перевод поста Майкла Тротта (Michael Trott) и Эрика Вайсштайна (Eric W. Weisstein) "[Michael Trott & Eric W. Weisstein The Top 100+ Sines of Wolfram|Alpha][1]", существенно расширяющий вопросы, затронутые авторами. Скачать перевод в виде документа Mathematica, который содержит весь код использованный в статье, можно [здесь][2] (архив, ~12 МБ)._ Сервис [Wolfram|Alpha][3] может выполнять огромное количество всевозможных вычислений и математические вычисления являются одной из его узких специальностей. В самом деле, используя мощь вычислительных возможностей системы [Mathematica][4], с помощью которой создана система Wolfram|Alpha, сервис Wolfram|Alpha может решать большой спектр задач связанных с математическими функциями, начиная от самых простых и заканчивая дьявольски сложными. Чтобы прояснить то, что мы подразумеваем под “большим спектром задач” (о котором мы действительно так думаем), давайте возьмем в качестве примера такую непритязательную математическую функцию, как синус. Ниже мы привели список, который раскрывает 93 возможности того, что Wolfram|Alpha может делать с синусом, но в итоге мы добавили еще сверх того некоторое количество бонусных возможностей, перед включением которых в пост мы не могли устоять. Давайте начнем с того, что просто введем в Wolfram|Alpha запрос [sin(x)][5], т. е. просто функцию синус от аргумента x, как она есть. Ниже представлено то, что сервис Wolfram|Alpha выдаст нам в качестве результата на этот запрос: [Читать дальше →][6]

[1]: http://blog.wolframalpha.com/2012/08/24/the-top-100-sines-of-wolframalpha/
[2]: http://goo.gl/whGKj3
[3]: http://www.wolframalpha.com/
[4]: http://www.wolfram.com/mathematica/
[5]: http://www.wolframalpha.com/input/?i=sin%28x%29
[6]: http://habrahabr.ru/post/255021/#habracut

[>] Ассемблер для задач симуляции. Часть 1: гостевой ассемблер
habra.14
habrabot(difrex,1) — All
2015-04-06 13:30:02




>

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

1. Встраиваемые (embedded) системы.
2. Декомпиляция, обратная разработка (reverse engineering), компьютерная безопасность.
3. Высокопроизводительные вычисления (HPC) и оптимизация программ.

И конечно же, в каждой из этих областей существуют специфические требования, а значит свои понятия об инструментах и «свой» ассемблер. Эмбедщики смотрят в код через редактор и дебаггер, реверс-инженеры видят его в декомпиляторах вроде IDA и radare2 и отладчиках ICE, а HPC-спецы — через профилировщики, такие как Intel® VTune™ Amplifier, `xperf` или `perf`. И захотелось мне рассказать об ещё одной области программирования, в которой ассемблеры частые спутники. А именно — об их роли при разработке программных моделей вычислительных систем, в простонародье именуемых симуляторами. [Читать дальше →][2]

[1]: https://golang.org/doc/asm
[2]: http://habrahabr.ru/post/254419/#habracut

[>] Работа параноика: планы аварийного восстановления/непрерывности, метеорит, зомби-апокалипсис, 1000 уборщиц, портал в ад
habra.15
habrabot(difrex,1) — All
2015-12-01 11:00:02


![][1] _Схема отработки аварии первого уровня в «Мультикарте»_ Есть такой миф, что у нас **отказоустойчивых инфраструктур** у крупных компаний не было примерно до 2007 года. Мол, именно тогда начали появляться документы DRP (аварийного восстановления), выделяться отделы риск-менеджмента и так далее. Это неправда. Просто до этого не было методологии и английского названия, а сами системы были. Первым проектом, который стали «называть по правилам», была инфраструктура «Альфы». В Сбербанке и «Транснефти», насколько я знаю, отказоустойчивая инфраструктура тоже была испокон веков, но только называлась «резервный центр обработки данных». И так далее. А теперь поехали развеивать другие мифы про DRP и непрерывности. Ну и заодно расскажу про наш последний проект — аварийные планы «Мультикарты», то есть той системы, через которую идут все ваши оплаты картами в России. Ну и, конечно, истории былинных провалов. [Читать дальше →][2]

[1]: https://habrastorage.org/files/1b2/c91/a4e/1b2c91a4eddd4ad4812414f4e45ae5f1.png
[2]: http://habrahabr.ru/post/272015/#habracut

[>] Объекты и немного о классах в Powershell 5.0
habra.14
habrabot(difrex,1) — All
2015-04-06 14:00:03


![image][1] В преддверии выпуска Windows 10 и новой, пятой, версии Powershell, хочу поговорить с вами о одном из наиболее серьезных нововведений этого языка — о классах. Начать наш разговор мне видится уместным с экземпляров класса — объектов — являющихся безусловно киллер-фичей языка сценариев Powershell. Простота и лаконичность упрощенного объектно-ориентированного подхода в языке автоматизации задач покорила не только большую, казалось бы, черствую, подобно 16-bit legacy, корпорацию, но и пользователей альтернативных операционных систем. «Упрощенным» объектно-ориентированным я его назвал умышленно и хочу обратить на это ваше внимание. Объектно-ориентированные языки программирования предполагают ряд сущностей, таких как класс(тип), экземпляр класса, свойства и методы этого экземпляра, чаще называемого объектом. Powershell же, ловко оперируя объектами и их свойствами, практически полностью лишен методов и абсолютно полностью определяемых пользователем типов объектов (классов). Из часто используемых методов в голову приходят пожалуй лишь .trim() да .ToString(). Если дать еще минутку на парсинг дампа опыта написания скриптов на Powershell, всплывет еще что-то про Get-WMIObject. Предлагаю освежить в памяти создание объекта в Powershell, хотя и для первого знакомства будет отлично. [Читать дальше →][2]

[1]: http://habrastorage.org/files/854/e8a/23e/854e8a23ea6347e68096994bbc60c96c.png
[2]: http://habrahabr.ru/post/254999/#habracut

[>] Запись видеозвонка из браузера: мы надеялись запилить за неделю
habra.15
habrabot(difrex,1) — All
2015-12-01 11:00:03


![][1]В начале своего пути наша облачная платформа voximplant позволяла работать только с голосовыми звонками. Но прогресс не стоит на месте, и со временем мы добавили передачу видео, текстовые сообщения, presence и множество других возможностей. А недавно закончили разработку функции записи видео: теперь во время видеозвонка достаточно вызвать функцию record из управляющего звонком javascript, чтобы получить ссылку на записываемый видеофайл. Для наших клиентов все выглядит и работает очень просто, но для нас эта задача оказалась не такой простой, как мы думали. Несколько месяцев потребовалось нашим далеко не слабым разработчикам чтобы решить ряд технических проблем и создать адекватно работающее решение. Под катом — история нашей борьбы с кодеками, файловыми форматами и webRTC. [Читать дальше →][2]

[1]: https://habrastorage.org/files/360/bd6/028/360bd6028ed34a96ab05bdd4d30068e4.jpg
[2]: http://habrahabr.ru/post/271921/#habracut

[>] [Из песочницы] Легковесный конструктор парсеров с интерактивным режимом
habra.15
habrabot(difrex,1) — All
2015-12-01 11:00:03


Периодически сталкиваясь с мелкими задачками по разработке простеньких анализаторов текста, решил данную задачу автоматизировать, да и академический интерес не давал покоя. Первоначально смотрел в сторону **Racc** (одна из интерпретаций [Yacc][1]), но он мне показался достаточно не простым решением для моих мелких задач и тогда я решил разработать свой простенький анализатор. Хотя, конечно, если вы разрабатываете компилятор или что-то подобное да и еще в промышленных масштабах, то определенно вам стоит посмотреть в сторону **Racc**. Но если вы хотите сами разобраться, что же такое парсер и как быстренько его написать самому, при этом не читая кучу статей про лексические анализаторы типа книги дракона, тогда вперед под кат (хотя книга очень хорошая). [Читать дальше →][2]

[1]: https://ru.wikipedia.org/wiki/Yacc
[2]: http://habrahabr.ru/post/271969/#habracut

[>] Распознавание бирманского языка: теперь мы умеем даже это
habra.15
habrabot(difrex,1) — All
2015-12-01 12:00:03


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

[1]: https://habrastorage.org/files/821/b1c/627/821b1c62702b4d6b9b249860df4ebcf8.jpg
[2]: http://habrahabr.ru/post/271977/#habracut

[>] Релиз typescript 1.7
habra.15
habrabot(difrex,1) — All
2015-12-01 13:00:03


Приветствую, коллеги! Вчера Microsoft напрягся и выкатил релиз следующей версии typescript, типизированной надстройки над javascript. В новой версии не только возведение в степень и раздельная конфигурация целей, но и первые наработки по **async**/**await** из стандарта ES7. Подробнее под катом. [Читать дальше →][1]

[1]: http://habrahabr.ru/post/272037/#habracut

Pages: 1 ... 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 ... 210