RSS
Pages: 1 ... 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 ... 210
[>] I2P: Прозрачная реализация подписи EdDSA
habra.15
habrabot(difrex,1) — All
2015-10-29 10:00:03


В последнее время все большую популярность набирает электронная подпись Ed25519, основанная на разновидности эллиптической кривой, предложенной Берштейном. По мере увеличения числа узлов I2P с данным видом подписи возникла необходимость ее поддержки в своей реализации I2P, поскольку Ed25519 не входит в состав популярных криптографических библиотек. Как правило используются разновидности ref10 из библиотеки [SUPERCOP][1], реализованной самим Берштейном на ассемблере, и затем портированной на другие языки. Данная реализация работает хорошо и быстро, однако у нее есть главный недостаток — она непонятна. Действительно, если заглянуть в исходный код, то можно увидеть большое количество однотипных строк, оперирующих с множеством «магических» чисел, понять же, что они означают, без углубления в теорию не представляется возможным. Целью данной статьи является математически прозрачная реализация Ed22519, используя лишь стандартные операции с большими числами, присутствующие в любой криптографической библиотеке, со скоростью работы, достаточной для практического использования в I2P. [Читать дальше →][2]

[1]: http://bench.cr.yp.to/supercop.html
[2]: http://habrahabr.ru/post/269579/#habracut

[>] [Из песочницы] PyTest
habra.15
habrabot(difrex,1) — All
2015-10-29 15:00:03




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

По историческому призванию я SQL-щик. Однако судьба занесла меня на BigData и после этого понесла кривая — я освоил и Java, и Python, и функциональное программирование (изучение Scala стоит в списке). Собственно на одном из кусков проекта встала необходимость тестирования кода на Python. Ребята из QA посоветовали для этих целей PyTest, но даже они затруднились толком ответить чем этот зверь хорош. К сожалению, в русскоязычном сегменте информации по данному вопросу не так уж и много: [как это используют в Yandex][1] да и все по-хорошему. При этом описанное в этом статье выглядит достаточно сложно для человека начинающего путешествие по этой стезе. Не говоря уже об официальной документации — она приобрела для меня смысл лишь после того, как я разобрался с самим модулем по другим источникам. Не спорю, там написаны интересные вещи, но, к сожалению, совсем не для старта.

#### Юнит-тестирование Python

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

#### Вводная по необходимым знаниям

На описываемый момент знания Python у меня были достаточно поверхностны — я писал кое-какие несложные модули и знал стандартные вещи. Но при столкновении с PyTest мне пришлось пополнять багаж знаний декораторами [тут][3] и [тут][4] и конструкцией [yield][5].

#### Преимущества и недостатки PyTest

1) Независимость от API (no boilerplate). Как код выглядит в том же unittest:

import unittest

class TestUtilDate(unittest.TestCase):
def setUp(self):
#init_something()
pass

def tearDown(self):
#teardown_something()
pass

def test_upper(self):
self.assertEqual('foo'.upper(), 'FOO')

def test_isupper(self):
self.assertTrue('FOO'.isupper())

def test_failed_upper(self):
self.assertEqual('foo'.upper(), 'FOo')

if __name__ == '__main__':
suite = unittest.TestLoader().loadTestsFromTestCase(TestUtilDate)
unittest.TextTestRunner(verbosity=2).run(suite)




То же самое в PyTest:

import pytest

def setup_module(module):
#init_something()
pass

def teardown_module(module):
#teardown_something()
pass

def test_upper():
assert 'foo'.upper() == 'FOO'

def test_isupper():
assert 'FOO'.isupper()

def test_failed_upper():
assert 'foo'.upper() == 'FOo'




2) Подробный отчет. В том числе выгрузка в JUnitXML (для интеграции с Jenkins). Сам вид отчета может изменяться (включая цвета) дополнительными модулями (о них будет позднее отдельно). Ну и вообще цветной отчет в консоли выглядит удобнее — красные FAILED видны сразу. ![image][6] 3) Удобный asset (стандартный из Python). Не приходится держать в голове всю кучу различных assert'ов. 4) Динамические фикстуры всех уровней, которые могут вызываться как автоматически, так и для конкретных тестов. 5) Дополнительные возможности фикстур (возвращаемое значение, финализаторы, область видимости, объект request, автоиспользование, вложенные фикстуры) 6) Параметризация тестов, то есть запуск одного и того же теста с разными наборами параметров. Вообще это относится к пункту 5 «Дополнительные возможности фикстур», но возможность настолько хороша, что достойна отдельного пункта. 7) Метки (marks), позволяющие пропустить любой тест, пометить тест, как падающий (и это его ожидаемое поведение, что полезно при разработке) или просто именовать набор тестов, чтобы можно было запускать только его по имени. 8) Плагины. Данный модуль имеет достаточно большой список дополнительных модулей, которые можно установить отдельно. 9) Возможность запуска тестов написанных на unittest и nose, то есть полная обратная совместимость с ними. Про недостатки, пусть их и не много, могу сказать следующее: 1) Отсутствие дополнительного уровня вложенности: Для модулей, классов, методов, функций в тестах есть соответствующий уровень. Но логика требует наличие дополнительного уровня testcase, когда та же одна функция может иметь несколько testcase'ов (например, проверка возращаемых значений и ошибок). Это частично компенсируется дополнительным модулем (плагином) pytest-describe, но там встает проблема отсутствия соответствующего уровня фикстуры (scope = “describe”). С этим конечно можно жить, но в некоторых ситуациях может нарушать главный принцип PyTest — «все для простоты и удобства». 2) Необходимость отдельной установки модуля, в том числе в продакшене. Все-таки unittest и doctest входят в базовый инструментарий Python и не требуют дополнительных телодвижений. 3) Для использования PyTest требуется немного больше знаний Python, чем для того же unittest (см. «Вводная по необходимым знаниям»). Подробное описание модуля и его возможностей под катом. [Читать дальше →][7]

[1]: http://habrahabr.ru/company/yandex/blog/242795/
[2]: http://habrahabr.ru/post/121162
[3]: http://habrahabr.ru/post/141411/
[4]: http://habrahabr.ru/post/141501/
[5]: http://habrahabr.ru/post/132554/
[6]: https://habrastorage.org/files/7e1/4f3/b8b/7e14f3b8b89a4aac849e98432b098e98.jpg
[7]: http://habrahabr.ru/post/269759/#habracut

[>] [Перевод] Еженедельник io.js, 6 марта 2015
habra.14
habrabot(difrex,1) — All
2015-03-10 15:00:03


Релиз 1.5.0, Buffer.indexOf(), Tessel 2 и многое другое. [Читать дальше →][1]

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

[>] [Перевод] Режимы управления с помощью мыши и с помощью сенсорного экрана в Windows 10 и Windows 8
habra.15
habrabot(difrex,1) — All
2015-10-29 15:00:04


[В этом проекте][1] демонстрируется определение режима работы ноутбука-трансформера (режим планшета либо режим ноутбука) под управлением Windows 8(.1), а также новый режим управления с помощью мыши и сенсорного экрана в Windows 10. Режим управления с помощью мыши и сенсорного экрана аналогичен режиму планшета и ноутбука, но в Windows 10 пользователи получили возможность вручную переключать режим, тогда как в Windows 8 режим переключается только в зависимости от физического состояния устройства. Поэтому пользователи Windows 10 могут использовать расширенный графический пользовательский интерфейс, предназначенный для сенсорного управления, даже на устройствах, не являющихся трансформерами: важно только наличие сенсорного экрана. Эта новая возможность реализована на основе новых [API UWP (Universal Windows Platform)][2]. Нужно добавить несколько строк кода в приложения, предназначенные для Windows 8, чтобы воспользоваться этой функцией в Windows 10. В этом документе показана доработка приложений Win32 для использования API UWP с помощью WRL (библиотеки шаблонов C++ среды выполнения Windows) в Windows 10. Сведения о включении приложений UWP см. в [образце кода Microsoft][3]. [Читать дальше →][4]

[1]: https://software.intel.com/sites/default/files/managed/ee/0c/2-in-log.zip
[2]: https://msdn.microsoft.com/en-us/library/windows/apps/windows.ui.viewmanagement.uiviewsettings.aspx
[3]: https://github.com/Microsoft/Windows-universal-samples/tree/master/Samples/UserInteractionMode
[4]: http://habrahabr.ru/post/269755/#habracut

[>] Как мы искали баг в поисковом Балансере, а нашли в Chromium
habra.15
habrabot(difrex,1) — All
2015-10-29 18:00:03


Некоторое время назад коллеги стали получать от пользователей жалобы на то, что иногда при использовании Поиска и Яндекс.Браузера они видят ошибку SSL connection error. Расследование того, почему это происходило, на мой взгляд, получилось интересным, поэтому я хочу поделиться им с вами. В процессе разбора ситуации мы несколько раз меняли «подозреваемый» софт, изучили множество дампов, вспомнили устройство машины состояний TLS и в итоге даже разбирались в коде Хромиума. Надеюсь, вам будет интересно это читать не меньше, чем нам было исследовать. Итак. ![][1] Через некоторое время у нас были записи логов ошибок и pcap-файлы со схожим содержимым: ![][2] Всё выглядит так, будто сервер ответил некорректно и клиент прекратил хендшейк. Проанализировав «корректные» (принятые клиентом) и «некорректные» ответы сервера, мы поняли, что они идентичны. [Читать дальше →][3]

[1]: https://habrastorage.org/files/e0e/a29/a67/e0ea29a67019461983eeaf7315bf5015.png
[2]: https://habrastorage.org/files/bf9/d8f/3d4/bf9d8f3d477f4484b395311bb8e9f9ac.png
[3]: http://habrahabr.ru/post/269777/#habracut

[>] Авто-регистрация тестов на С средствами языка
habra.14
habrabot(difrex,1) — All
2015-03-10 15:30:03


![Тестирование в C][1]Сравнительно недавно была статья [«Полуавтоматическая регистрация юнит-тестов на чистом С»][2], в которой автор продемонстрировал решение задачи с использованием счётчиков из Boost. Следуя этому же принципу, была предпринята (успешная) попытка повторить данный опыт уже без использования Boost из соображения нелогичности наличия в проекте на C зависимости от Boost, да ещё и в таком небольшом объёме. При этом в тестах присутствовали вспомогательные директивы препроцессора в большом количестве. И всё бы так и осталось, но практически на завершающей стадии был найден альтернативный способ регистрации, который позволяет полностью избавится от дополнительных действий. Это C89-решение для регистрации тестов и чуть более требовательное к системе сборке решение для регистрации наборов тестов. [Каким образом][3]

[1]: http://habrastorage.org/files/3d3/aed/597/3d3aed597f8645ed9d1502e4532642ee.png
[2]: http://habrahabr.ru/post/240565/
[3]: http://habrahabr.ru/post/252439/#habracut

[>] [Из песочницы] Ghost Methods в Ruby (перевод)
habra.15
habrabot(difrex,1) — All
2015-10-29 19:00:03


_Предлагаю вашему вниманию перевод фрагмента книги [Metaprogramming Ruby 2][1] за авторством Паоло Перротта (Paolo Perrotta)._

#### Что такое method\_missing?

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

class Lawyer; end
nick = Lawyer.new
nick = talk_simple

NoMethodError: undefine method 'talk_simple' for #<Lawyer:0x007f801aa81938>


Помните ли вы как работает поиск методов? Когда вы вызываете метод talk\_simple, Ruby идет в класс объекта nick, и перебирает там методы. Если он не может найти метод там, он ищет его в родителей данного класса, потом в Object и наконец в BasicObject. Ну и поскольку Ruby не может нигде найти метод talk\_simple, он запускает метод method\_missing для nick’a. Ruby знает что этот метод есть, потому, что это приватный метод BasicObject от которого наследуются все объекты. [Читать дальше →][2]

[1]: https://pragprog.com/book/ppmetr2/metaprogramming-ruby-2
[2]: http://habrahabr.ru/post/269785/#habracut

[>] Обход блокировки запрещенного сайта вебмастером без настроек и ПО на стороне клиента
habra.14
habrabot(difrex,1) — All
2015-03-10 17:00:02


Увидел я как-то IPv6 Teredo пиров в µTorrent под Windows, которые качали куски с довольно приличной скоростью, и тут меня осенило…

### Что такое Teredo?

Teredo — технология туннелирования IPv6 через IPv4 UDP-пакеты. Она задумывалась как переходная технология, которая работает за NAT, и, в общем, более-менее выполняет возложенные на нее обязанности. Teredo позволяет получить доступ в IPv6-интернет через публичные Teredo-серверы. Интересно то, что в Windows 7, 8 и 8.1 Teredo настроен и включен по умолчанию, прямо из коробки, и использует сервер Teredo от Microsoft (teredo.ipv6.microsoft.com).

### Зачем это нам?

Веб-сайты, определенные ссылки которых по тем или иным причинам оказались в реестре запрещенных сайтов, могут организовать доступ с использованием Teredo, что позволит вернуть доступ к сайту примерно 80-85% пользователям современных версий Windows без дополнительных настроек и ПО! Доступ через Teredo позволяет обойти все протестированные DPI-решения, применяемые провайдерами. Роскомнадзор не только не может внести такие страницы в реестр, но и не может получить к ним доступ (вероятно, Teredo у них не работает):




К тому же, у Роскомнадзора нет полномочий блокировать страницы, которые перенаправляют на другие страницы, и кнопка [«Актуальный Навальный»][1] тому подтверждение.

### Особенности сервера Teredo от Microsoft

Для доступа в «обычный» IPv6, в Teredo используются Relay-серверы, которые имеют полный IPv6-доступ и работают как прокси-серверы. В свою очередь, relay-серверы Teredo от Microsoft не позволяют получить доступ в «обычный» IPv6 или к другим Teredo-серверам, разрешая только связность Teredo-клиентов, настроенных на сервер Microsoft, и образуя такую большую закрытую сеть из Windows-компьютеров. [Читать дальше →][2]

[1]: http://navalny.us/
[2]: http://habrahabr.ru/post/252611/#habracut

[>] [Перевод] Операции с файлами в Perl 6
habra.14
habrabot(difrex,1) — All
2015-03-10 18:00:03




#### Директории

Вместо opendir и его друзей, в Perl 6 есть одна функция dir, которая возвращает список файлов из директории (по умолчанию, из текущей). Вместо тысячи слов: [Читать дальше →][1]

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

[>] Перевод времени в деньги и обратно
habra.14
habrabot(difrex,1) — All
2015-03-10 18:00:03


Осенью 2014 мне катастрофически не хватало времени и ушёл в глубокие минуса по кредитам. Тогда у меня и появилась задача: как мне научиться экономить время и деньги. Ответ оказался прост: нужно **экономить время и деньги одновременно**. Ведь часто бывает, что экономя деньги — тратишь много времени, или экономя время — тратишь деньги. Тогда и понадобилось переводить время в деньги и обратно, чтобы оптимизировать их потребление. ![][1] [Читать дальше →][2]

[1]: //habrastorage.org/files/95f/0f5/743/95f0f5743b4d45efa2e9e7dadcad6390.jpg
[2]: http://habrahabr.ru/post/252543/#habracut

[>] [recovery mode] Сравнение настольных программ для шифрования
habra.14
habrabot(difrex,1) — All
2015-03-10 18:00:03


Совсем недавно мы проводили [сравнение мобильных (для Android)][1] приложений для шифрования. Настало время для аналогичного обзора, но уже настольных программ. ![][2] [Читать дальше →][3]

[1]: http://habrahabr.ru/company/cybersafe/blog/251889/
[2]: //habrastorage.org/files/76e/27d/085/76e27d08547942f4aaf1db1ced4a50e6.jpg
[3]: http://habrahabr.ru/post/252561/#habracut

[>] [Перевод] Cемидесятилетний программист пытается сохранить устаревший язык программирования на GitHub
habra.15
habrabot(difrex,1) — All
2015-10-29 21:00:04


**Примечание переводчика:** _В нашем блоге на Хабре мы много пишем о построении облачного сервиса [1cloud][1] и опыте работы с инфраструктурой других компаний. Однако серьезный вклад в развитие технологий делают инженеры-энтузиасты, и об этом важно помнить. Сегодня мы представляем вашему вниманию рассказ о языке программирования SPITBOL, который был разработан несколько десятков лет назад, позднее использовался для анализа украденных персональных данных сайта Ashley Madison, но может просто исчезнуть, если усилия его создателя не увенчаются успехом. _ [![][2]][3] Дэйв Шилдс (Dave Shields) пытается спасти умирающий язык программирования. Шилдс занимался программированием более 50-ти лет. Он на протяжении десятилетий работал программистом-исследователем в Нью-Йоркском университете и IBM, где «раздвигал границы» разработки программного обеспечения. За свою долгую карьеру Шилдс многого достиг, например, он был одним из разработчиков [Jikes][4], компилятора Java – первого проекта IBM с открытым исходным кодом. Сейчас Шилдсу семьдесят лет. На пенсии он занимается малоизвестным языком программирования SPITBOL – Шилдс разработал его в 70-х годах, но по каким-то причинам забросил на 30 лет. [Читать дальше →][5]

[1]: https://1cloud.ru/
[2]: https://habrastorage.org/files/ef0/de3/e87/ef0de3e8743c4ef196febcfe002c5e75.png
[3]: http://habrahabr.ru/company/1cloud/blog/269787/
[4]: http://jikes.sourceforge.net/
[5]: http://habrahabr.ru/post/269787/#habracut

[>] Как мы получили $30k от Google RISE, как дальше учить детей программировать и как стать партнером в нашей команде?
habra.14
habrabot(difrex,1) — All
2015-03-10 19:00:03


Все очень просто. Как-то партнеры переслали нам ссылку на конкурс. Дальше мы зарегистрировались, описали заявку, прошли интервью по хангауту и после проверки в течении нескольких месяцев пришло долгожданное письмо счастья. Стоит также добавить, что на момент написания мы проводили обучение в 10 школах в Москве, у нас появилось свежеиспеченное видео от уроков, лучшие моменты которого смонтировала и оформила команда [lesnikova][1]. Также стоит добавить, что письмо пришло в 01:00 по Мск, и плотный поток радости помешал в тот день уснуть всей команде.




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

[1]: http://habrahabr.ru/users/lesnikova/
[2]: http://habrahabr.ru/post/252365/#habracut

[>] Как мы искали баг в поисковом Балансере Яндекса, а нашли в Chromium
habra.15
habrabot(difrex,1) — All
2015-10-29 21:30:04


Некоторое время назад коллеги стали получать от пользователей жалобы на то, что иногда при использовании Поиска и Яндекс.Браузера они видят ошибку SSL connection error. Расследование того, почему это происходило, на мой взгляд, получилось интересным, поэтому я хочу поделиться им с вами. В процессе разбора ситуации мы несколько раз меняли «подозреваемый» софт, изучили множество дампов, вспомнили устройство машины состояний TLS и в итоге даже разбирались в коде Хромиума. Надеюсь, вам будет интересно это читать не меньше, чем нам было исследовать. Итак. [![][1]][2] Через некоторое время у нас были записи логов ошибок и pcap-файлы со схожим содержимым: ![][3] Всё выглядит так, будто сервер ответил некорректно и клиент прекратил хендшейк. Проанализировав «корректные» (принятые клиентом) и «некорректные» ответы сервера, мы поняли, что они идентичны. [Читать дальше →][4]

[1]: https://habrastorage.org/files/e0e/a29/a67/e0ea29a67019461983eeaf7315bf5015.png
[2]: http://habrahabr.ru/company/yandex/blog/269777/
[3]: https://habrastorage.org/files/bf9/d8f/3d4/bf9d8f3d477f4484b395311bb8e9f9ac.png
[4]: http://habrahabr.ru/post/269777/#habracut

[>] Модели Django и решение проблем с конкурентным доступом к данным
habra.14
habrabot(difrex,1) — All
2015-03-10 23:00:03


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

#### Стартовые данные



* 2 сервера с Django, запущенные под uWSGI
* 1-2k запросов в секунду
* Проект с движением денег внутри

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

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

[>] Монада Maybe на стероидах
habra.15
habrabot(difrex,1) — All
2015-10-29 23:00:03


Про монады на Хабре было [уже][1] [столько][2] [много][3] [публикаций][4], [что][5], [мне ][6] [кажется][7], [не ][8] [хватает][9] [еще ][10]одной. Я не буду расписывать, что такое монада, я просто покажу одну забавную реализацию монады Maybe (мы же в хабе «Ненормальное программирование»?). [Читать дальше →][11]

[1]: http://habrahabr.ru/post/127556/
[2]: http://habrahabr.ru/post/209510/
[3]: http://habrahabr.ru/post/231801/
[4]: http://habrahabr.ru/post/238171/
[5]: http://habrahabr.ru/post/184722/
[6]: http://habrahabr.ru/post/212955/
[7]: http://habrahabr.ru/company/cit/blog/262055/
[8]: http://habrahabr.ru/post/247997/
[9]: http://habrahabr.ru/post/112464/
[10]: http://habrahabr.ru/post/147363/
[11]: http://habrahabr.ru/post/269717/#habracut

[>] Эволюция Java на примере чтения строк из файла
habra.15
habrabot(difrex,1) — All
2015-10-30 00:30:03


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

## 'до Java 7' мучения:



BufferedReader reader = null;
try {
reader = new BufferedReader(
new InputStreamReader(
new FileInputStream(FILE_NAME), Charset.forName("UTF-8")));
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
} catch (IOException e) {
// log error
} finally {
if (reader != null) {
try {
reader.close();
} catch (IOException e) {
// log warning
}
}
}


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

[1]: https://habrastorage.org/files/96e/fcd/25b/96efcd25bdd94d0c9830dab16b4991fd.png
[2]: http://habrahabr.ru/post/269667/#habracut

[>] Обзор Certificate Transparency
habra.15
habrabot(difrex,1) — All
2015-10-30 01:00:05


![][1] Принцип работы протокола SSL/TLS основан на криптографии с открытым ключом. Одна или обе стороны взаимодействия обладают сертификатами и соответствующими закрытыми ключами. Это позволяет производить аутентификацию и шифрование трафика. [Читать дальше →][2]

[1]: https://habrastorage.org/files/add/988/63c/add98863c29e49a4a471d863d3bff8b5.png
[2]: http://habrahabr.ru/post/269729/#habracut

[>] DDoS как актуальная проблема безопасности для бизнеса
habra.14
habrabot(difrex,1) — All
2015-03-11 00:30:02


![][1] Жертвами DDoS-атак за последние время месяцев становятся множество Российских компаний, онлайн-сервисы которых критичны для бизнеса — среди них интернет-магазины, СМИ и финансовые учреждения. Атаки типа DDoS набирают популярность и уже стали привычным явлением для интернет-бизнеса. [Читать дальше →][2]

[1]: //habrastorage.org/files/d90/a49/b81/d90a49b81d91427f886b7e84b28f5407.png
[2]: http://habrahabr.ru/post/252233/#habracut

[>] Вышел Open-source мессенджер для детей-аутистов
habra.14
habrabot(difrex,1) — All
2015-03-11 02:00:04


![скриншот диалога][1] Сразу [исходники на GitHub][2]. Эмоджи — это очень круто, но иногда недостаточно. Существуют [группы][3] пользователей с ограниченными коммуникативными возможностями, которым нужно что-то еще более простое. В идеале — что бы «оно само говорило и показывало». Пока приходится изобретать какие-то промежуточные варианты. [узнать подробности про один из них][4]

[1]: http://habrastorage.org/files/c3b/e6f/22d/c3be6f22d91b4a60a9cdd6a3416c8dd0.png
[2]: https://github.com/Teplitsa/Sezam
[3]: https://ru.wikipedia.org/wiki/%D0%90%D1%83%D1%82%D0%B8%D0%B7%D0%BC
[4]: http://habrahabr.ru/post/252673/#habracut

[>] OData + Angular.js + Bootstrap + JavaScript Grid = приложение за 5 минут
habra.14
habrabot(difrex,1) — All
2015-03-11 02:00:04


Предположим в некотором проекте появилась необходимость добавить некоторую форму опроса пользователей на веб сайте (детальная форма) и форму для просмотра и редактирования списка пользователей для администратора системы (списковая форма). Рассмотрим процесс создания этих форм с использованием OData, Angular.js, Bootstrap и JavaScript Grid. Все требования к такому приложению уже реализованы в этих инструментах, и нам практически не требуется ничего писать. [Читать дальше →][1]

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

[>] Microsoft неправильно исправила уязвимость, которую использовал червь Stuxnet
habra.14
habrabot(difrex,1) — All
2015-03-11 11:00:03


Специалисты security-сообщества Zero Day Initiative (ZDI) опубликовали [информацию][1] о новой критической Remote Code Execution уязвимости в Windows (CVE-2015-0096), которую Microsoft закрыла обновлением [MS15-020][2]. Особенность этой уязвимости заключается в том, что она появилась еще в 2010 г., когда Microsoft выпустила обновление для исправления печально известной уязвимости CVE-2010-2568, позволявшей исполнять произвольный код в системе с помощью специальным образом сформированного .LNK файла (файл ярлыка). ![][3] Эта уязвимость использовалась червем Stuxnet для своего распространения и, как теперь стало известно, на протяжении последних пяти лет после выпуска исправления, пользователи по-прежнему находились под угрозой возможной эксплуатации. Файлы типа .LNK позволяют указывать в своем теле ссылку на исполняемый PE-файл, из которого Windows может взять значок для отображения его в оболочке (Explorer). [Читать дальше →][4]

[1]: http://h30499.www3.hp.com/t5/HP-Security-Research-Blog/Full-details-on-CVE-2015-0096-and-the-failed-MS10-046-Stuxnet/ba-p/6718459#.VP-eSFWsVgM
[2]: https://technet.microsoft.com/library/security/MS15-020
[3]: //habrastorage.org/files/259/4ed/a1e/2594eda1eb2b48b3bd4da6403ad38751.png
[4]: http://habrahabr.ru/post/252711/#habracut

[>] NoScript теперь и для Android
habra.14
habrabot(difrex,1) — All
2015-03-11 12:00:03


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

[1]: //habrastorage.org/files/9c7/fa3/db1/9c7fa3db1bd54325bacc271a2598d909.png
[2]: http://habrahabr.ru/post/252705/#habracut

[>] Обмен данными с использованием MPI. Работа с библиотекой MPI на примере Intel® MPI Library
habra.14
habrabot(difrex,1) — All
2015-03-11 14:00:03


![][1] В этом посте мы расскажем об организации обмена данными с помощью MPI на примере библиотеки Intel® MPI Library. Думаем, что эта информация будет интересна любому, кто хочет познакомиться с областью параллельных высокопроизводительных вычислений на практике. Мы приведем краткое описание того, как организован обмен данными в параллельных приложениях на основе MPI, а также ссылки на внешние источники с более подробным описанием. В практической части вы найдете описание всех этапов разработки демонстрационного MPI-приложения «Hello World», начиная с настройки необходимого окружения и заканчивая запуском самой программы. [Читать дальше →][2]

[1]: //habrastorage.org/files/079/279/18c/07927918c7974ead9b28d869081bd3c7.png
[2]: http://habrahabr.ru/post/251357/#habracut

[>] Ассемблер Intel-4004 — для развлечения
habra.15
habrabot(difrex,1) — All
2015-10-30 12:00:03


![intel-4004 cpu][1] Недавно мне показали эмуляторы ассемблера для Intel-4004 и я на некоторое время «зависла». Это «дедушка» нынешних процессоров — если верить [статье википедии][2] — первый коммерчески распространённый микропроцессор. Вряд ли его сейчас можно использовать для каких-то серьёзных целей. А вот просто поломать голову (вместо brainf\*\*k) — ну, это то чем я занялась. Главное он 4-разрядный и набор команд довольно небольшой (до того я знала только немножко x86-й, по мучительному институтскому курсу). Ниже идет вольный перевод-пересказ [вот этой инструкции по ассемблеру для Intel-4004][3] — и краткие замечания о моих попытках написать что-нибудь на нём. [Читать дальше →][4]

[1]: https://habrastorage.org/getpro/habr/post_images/74f/55a/f0e/74f55af0e05bb8eb95052573831f0348.jpg
[2]: https://en.wikipedia.org/wiki/Intel_4004
[3]: https://github.com/CodeAbbey/intel4004-emu/wiki
[4]: http://habrahabr.ru/post/269821/#habracut

[>] [recovery mode] Персональные данные пользователей Rozetka.ua в публичном доступе
habra.14
habrabot(difrex,1) — All
2015-03-11 18:00:02


На этот источник данных я наткнулся случайно. По моему, самое время проверить, какие данные отдают пользователям наши с вами проекты. ![][1] [Читать дальше →][2]

[1]: //habrastorage.org/files/5ff/668/7df/5ff6687df23d4561bb7079634e259d0d.png
[2]: http://habrahabr.ru/post/252475/#habracut

[>] Организация разработки и эксплуатации крупных проектов
habra.15
habrabot(difrex,1) — All
2015-10-30 14:00:03


[][1]





##

****

> Ну фактически бессмысленно искать отличия, это как сравнивать мягкое с соленым. DevOps он про организацию разработки и эксплуатации целиком, про то что эксплуатация должна включаться на ранней стадии разработки. Это требует новых качеств от разработчиков и новых способностей от системных администраторов, разработчики и администраторы должны научиться работать параллельно, а не как раньше разработчики напрограммировали, скинули все в эксплуатацию, а дальше начинается долгий и неприятный путь разбора проблемы “а кто виноват?”. DevOps должен применяться там, где созрела необходимость в новом подходе, многим компаниям он до сих пор не нужен и они справляются по-старому.

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

[1]: http://habrahabr.ru/company/oleg-bunin/blog/269839/#habracut
[2]: http://express42.com/
[3]: http://habrahabr.ru/post/269839/#habracut

[>] [Перевод] Лучшая практика развертывания SSL/TLS, часть 2. Конфигурация
habra.14
habrabot(difrex,1) — All
2015-03-11 18:30:02


Представляем вашему вниманию вторую часть перевода статьи о развертывании SSL/TLS, первую часть можете почитать [тут.][1] 2. Конфигурация Если вы правильно настроили на сервере TLS, то можете быть уверены, что данные вашего сайта корректно отображаются для посетителей сайта, используются только безопасные алгоритмы и все известные уязвимости устранены. 2.2. Используйте безопасные протоколы Существует пять версий протоколов в SSL/TLS семейства: SSL v2, SSL v3, TLS v1.0, TLS v1.1 и TLS v1.2. Из них: • SSL v2 является небезопасным и не должен быть использован. [Читать дальше →][2]

[1]: http://habrahabr.ru/company/usedesk/blog/249575/
[2]: http://habrahabr.ru/post/252747/#habracut

[>] Security Week 44: законодатели и безопасность, криптография и разведка
habra.15
habrabot(difrex,1) — All
2015-10-30 14:30:03


![][1]Если и есть в сфере информационной безопасности тема сложнее криптографии, то это законодательство. Любую исследовательскую работу по шифрованию, ее основные выводы и возможные последствия можно понять. Во многих случаях для этого потребуются пара лет интенсивного обучения по основной и сопутствующим темам, и еще десяток лет работы экспертом по безопасности. Но понять можно. Далеко не всегда можно понять, какие последствия будут у закона, регулирующего сферу информационной безопасности, даже если его внимательно прочитать. Даже если ты хорошо владеешь языком, на котором он написан. Тем не менее, понимать надо, потому что законодательство может серьезно повлиять на вопросы безопасности, в ту или иную сторону. Хорошие, годные инициативы мотивируют компании лучше защищаться от киберугроз, защищают клиентов банков от потери денег в случае онлайнового мошенничества, улучшают безопасность самих государственных структур и наших данных, ими обрабатываемых, борются с криминалом. Плохие законы в лучшем случае никак не меняют ландшафт угроз, в худшем — позволяют киберпреступникам выходить на свободу, даже после ареста и при наличии убедительных доказательств вины, затрудняют работу исследователей, и делают приватные данные чуть менее приватными, чем хотелось бы. В этой серии дайджеста поговорим о двух важных новостях в области американского ИБ-законодательства, а также продолжим обсуждение криптографии, на сей раз — благодаря агентству АНБ, решившему поучаствовать в обсуждении вопросов шифрования. Что, впрочем, тоже недалеко ушло от политики. Правила: каждую неделю редакция новостного сайта [Threatpost][2] выбирает три наиболее значимых новости, к которым я добавляю расширенный и беспощадный комментарий. Все эпизоды сериала можно найти [по тегу][3]. [Читать дальше →][4]

[1]: https://habrastorage.org/files/bbc/60f/6b0/bbc60f6b061646308f9e308f4dd26d12.jpg
[2]: https://threatpost.ru/
[3]: http://habrahabr.ru/search/?target_type=posts&q=%5Bklsw%5D%20&order_by=date
[4]: http://habrahabr.ru/post/269815/#habracut

[>] Intel RealSense MeetUp. Все о RealSense для разработчиков — быстро и по делу
habra.14
habrabot(difrex,1) — All
2015-03-11 18:30:02


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

[1]: //habrastorage.org/files/d2a/f5e/1fd/d2af5e1fd5534657bef4db0409d6af09.jpg
[2]: https://software.intel.com/ru-ru/realsense/home
[3]: http://habrahabr.ru/post/252591/#habracut

[>] [Перевод] Оптимизация методов ToArray и ToList путём предоставления количества элементов
habra.14
habrabot(difrex,1) — All
2015-03-11 19:00:03


Методы расширения _ToArray _и _ToList_ — удобный способ быстро преобразовать перечисляемую последовательность (например, Linq-запрос) в массив или в список. Однако, в них есть кое-что беспокоящее меня: оба эти метода очень неэффективны, если они не знают количество элементов в последовательности (что почти всегда происходит, когда вы используете их в Linq-запросе). Давайте сперва рассмотрим метод _ToArray _(_ToList _имеет несколько отличий, но принцип практически такой же). [Читать дальше →][1]

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

[>] [Из песочницы] Перспективные матрицы в графическом API или дьявол прячется в деталях
habra.14
habrabot(difrex,1) — All
2015-03-11 19:30:04


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

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

[>] [Из песочницы] Зоопарк коммуникационных протоколов для GPS-трекеров (часть 1)
habra.14
habrabot(difrex,1) — All
2015-03-11 20:00:03


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

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

[>] Nginx и https. Получаем класс А+
habra.14
habrabot(difrex,1) — All
2015-03-12 02:30:03


Недавно вспомнилось мне, что есть такой сервис — StartSsl, который совершенно бесплатно раздаёт trusted сертификаты владельцам доменов для личного использования. Да и выходные попались свободные. В общем сейчас напишу, как в nginx настроить HTTPS, чтобы при проверке в SSL Labs получить рейтинг А+ и обезопасить себя от последних багов с помощью выпиливания SSL. Итак приступим. Будем считать, что у вы уже зарегистрировались на StartSsl, прошли персональную проверку и получили вожделенный сертификат. Для начала я опубликую итоговый конфиг, а после этого, разберу его. [Читать дальше →][1]

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

[>] [Из песочницы] Изоляция виртуальных серверов в apache2 — ugidctl
habra.15
habrabot(difrex,1) — All
2015-10-30 16:00:03


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

<VirtualHost *:80>
ServerName host1.example.com
ServerAdmin webmaster1@example.com
ServerUserGroup user1 group1
DocumentRoot /var/www/host1
</VirtualHost>
<VirtualHost *:80>
ServerName host2.example.com
ServerAdmin webmaster2@example.com
ServerUserGroup user2 group2
DocumentRoot /var/www/host2
</VirtualHost>


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

# ls -la /var/www
total 16
drwxr-xr-x 4 root root 4096 Oct 26 16:10 .
drwxr-xr-x 21 root root 4096 Oct 26 01:13 ..
drwxr-x--- 2 user1 group1 4096 Oct 26 16:10 host1
drwxr-x--- 2 user1 group2 4096 Oct 26 16:10 host2


Это не очередные танцы с бубном вогруг многопоточности, запуска процессов от рута и т.п. Основная идея в том, чтобы процесс самостоятельно решил, с какими правами ему необходимо обработать запрос, взял себе эти права, обработал, и снова вернул себе права основного пользователя apache. [Читать дальше →][1]

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

[>] Настраиваем связку Apache Zeppelin + Oracle
habra.15
habrabot(difrex,1) — All
2015-10-30 17:00:02


Давно ищу удобный инструмент для выполнения ad hoc SQL-запросов в БД Oracle, с возможностью быстрого построения различных типов графиков на полученных данных. Все, что может облегчить оперативное создание отчетов, как говорится «на лету». Совсем недавно наткнулся на вот такой инструмент как [Apache Zeppelin][1]. Короткий обзор возможностей в документации на сайте и демо-видео показал, что это штука достаточно интересная и имеет смысл более плотно исследовать ее и настроить доступ из Apache Zeppelin к СУБД Oracle. ![][2] [Читать дальше →][3]

[1]: https://zeppelin.incubator.apache.org/
[2]: https://habrastorage.org/files/880/8d9/a54/8808d9a5477f42a78d03e357988aea60.png
[3]: http://habrahabr.ru/post/269769/#habracut

[>] Оптимизация денежных расходов (пересчет в часы и обратно)
habra.14
habrabot(difrex,1) — All
2015-03-12 02:30:03


Осенью 2014 мне катастрофически не хватало времени и ушёл в глубокие минуса по кредитам. Тогда у меня и появилась задача: как мне научиться экономить время и деньги. Ответ оказался прост: нужно **экономить время и деньги одновременно**. Ведь часто бывает, что экономя деньги — тратишь много времени, или экономя время — тратишь деньги. Тогда и понадобилось переводить время в деньги и обратно, чтобы оптимизировать их потребление. ![][1] [Читать дальше →][2]

[1]: //habrastorage.org/files/95f/0f5/743/95f0f5743b4d45efa2e9e7dadcad6390.jpg
[2]: http://habrahabr.ru/post/252543/#habracut

[>] [Перевод] Перспективные форматы видео. Новое направление
habra.15
habrabot(difrex,1) — All
2015-10-30 17:00:02


![][1] В начале сентября корпорация Intel объявила о своем участии в организации [Alliance for Open Media][2]. Этим шагом мы подчеркиваем поддержку открытых форматов и направляем наши усилия на создание нового поколения средств кодирования видео. Консорциум Alliance for Open Media, в состав которого входят корпорации Amazon, Cisco, Google, Intel, Microsoft, Mozilla и Netflix, создан с целью совместной разработки нового поколения форматов видео, позволяющих снизить стоимость доставки видео для конечных пользователей путем оптимизации для процессоров нового поколения. В этом посте мы проанализируем текущее положение дел в области видео форматов и рассмотрим перспективы их развития. Статья написана Марком Бакстоном, директором по развитию медиа продуктов Intel. [Читать дальше →][3]

[1]: https://habrastorage.org/files/864/22e/997/86422e9972fc431d82a97e1741b5037a.jpg
[2]: http://aomedia.org/
[3]: http://habrahabr.ru/post/269825/#habracut

[>] [Перевод] Будущее Web очень напоминает Bitcoin
habra.15
habrabot(difrex,1) — All
2015-10-31 03:30:02


![image][1] Для большинства людей [Джозеф Любин ][2]– ведущий мыслитель в стремительно развивающейся области цифровых валют. Для меня он был человеком, с которым я провёл [первую свою сделку ][3]по обмену биткоинов, и человеком, привыкший говорить большие вещи ровным и скромным голосом. Зимой 2014 года он позвал меня с собой на биткоин-конференцию в Майами, чтобы рассказать о новом проекте [Ethereum][4], который он с единомышленниками из Канады запустил за несколько месяцев до этого. Когда он объяснил мне суть проекта, он не скупился на прогнозы: «Мы заменим страховые компании и Уолл Стрит». Список продолжал расти. Онлайн-сервисы по распространению фильмов вроде Netflix и Hulu. Игровые платформы вроде Xbox и Sega Genesis. Мессенджеры вроде Twitter. Пенсии, обмены валют, системы голосования, управление интеллектуальной собственностью, трастовые фонды. Если верить Любину, то всё – реально всё, что мы делаем через интернет или по другим цифровым каналам, претерпит радикальные изменения. Рассказанная им идея с тех пор завладела умами энтузиастов цифровых валют. Идея в том, что технология, обеспечивающая безопасные транзакции в сети биткоин, и делающая их прозрачными, очень быстрыми и нецензурируемыми, и не требующими доверия другим сторонам, может использоваться для обработки более сложных сделок и хранить любую цифровую информацию в интернете. [Читать дальше →][5]

[1]: http://spectrum.ieee.org/img/07OLBitcoinOpener-1435087599434.jpg
[2]: https://twitter.com/ethereumjoseph
[3]: http://spectrum.ieee.org/telecom/internet/ripple-credit-system-could-help-or-harm-bitcoin
[4]: https://www.ethereum.org/
[5]: http://habrahabr.ru/post/269879/#habracut

[>] [recovery mode] Pony — убийца...?
habra.15
habrabot(difrex,1) — All
2015-10-31 13:00:03


Всем известны такие прогрессивные новички в программировании, как — «Go, Rust, Nim, Crystal» и, все они очень круты в своих определенных областях. **К примеру:**

1. Go был рожден, как супер простой и промышленный язык для быстрого решения поставленных задач с идеями, которые всем прекрасны известны, но некоторые из них прибиты к другим языкам гвоздями (На 5мм).
2. Второй наш оппонент — это Rust, победитель по жизни, но из-за своей сложной жизни в развитии он стал для сообщества, как будущая и модная замена C++. Для меня его судьба пока не понятна, так как с зелеными потоками и IO под них там пока туго, то я его ставлю на место в ряд с C для микроконтроллеров, драйверов и операционных систем.
3. Crystal… Прямо и четко говорю, что это супер производительный клон Ruby. Больше сказать нечего, весь он пропитан его духом.
4. Nim (Он же Нимушка или Нимрод) и его похожесть на скриптовые языки создают ему особую атмосферу, однако внутри он достаточно сложный организм и для меня сия сущность, как Haxe с такими же ощущениями при программировании на нем.

А Pony — это моя любимая и маленькая поняшка. С виду и по названию языка можно лихо пройти мимо… В общем, приглашаю вас под капот статьи. [Читать дальше →][1]

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

[>] Возможна ли мультипроцессорная обработка в UEFI?
habra.15
habrabot(difrex,1) — All
2015-10-31 13:00:03


Согласно спецификации Unified Extensible Firmware Interface программная среда, обеспечивающая выполнение инициализационных процедур до загрузки операционной системы, не поддерживает многопотоковую обработку. Основная причина – однопотоковая идеология UEFI и, как следствие, нереентерабельность сервисных процедур UEFI API. Вместе с тем, ряд задач не связанных с вызовом сервисных функций (например, тестирование оперативной памяти) не только допускают параллельное выполнение несколькими программными потоками, но и получают от такого похода прибавку производительности. [Читать дальше →][1]

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

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




def maps():
print "maps maps maps"

def spam():
print "Erasing everything..."
print "done."


Вы знаете, что если очень долго смотреть на следующую строку, то там останутся только три слова «spam»?

s = "spam‮" ,spam ,"‬spam"
s[1]()


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

[1]: http://ideone.com/GuSU4F
[2]: http://habrahabr.ru/post/252813/#habracut

[>] Сортировка без if-ов
habra.15
habrabot(difrex,1) — All
2015-10-31 14:00:03


Доброго времени суток. Так сложилась жизнь что я от недавнего времени стал гордым студентом одного из лучших вузов своей страны. Хорошо или плохо это вопрос спорный, но это не суть. Самое забавное это то, что на лабораторных работах преподаватель то ли для развлечения, то ли для того, что бы в очередной раз напомнить мне что я весьма паскудно разбираюсь в алгоритмике, время от времени выдает задания отличные от того, что получает оставшаяся группа. Одно из последних, которое, как по мне, достойно вашего внимания является сортировка массива без использования условных операторов (if, switch и тому подобных). [Читать дальше →][1]

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

[>] Введение в RapidMiner
habra.15
habrabot(difrex,1) — All
2015-10-31 20:30:03


![RapidMiner logo][1]На данный момент существует много компаний нуждающихся в системах аналитики, но дороговизна и чрезмерная сложность данного ПО в большинстве случаев вынуждает отказаться от идеи построения собственной аналитической системы в пользу простого всем известного экселя. Также дополнительные расходы на обучение сотрудников, поддерживание дорогих систем хранения данных и т.д. И тут на помощь могут прийти Open Source решения — их не так много, но есть очень достойное ПО, одним из которых которых является RapidMiner. [Читать дальше →][2]

[1]: https://habrastorage.org/files/d42/23b/d0c/d4223bd0c0c74ec6b2c19163994571b6.png
[2]: http://habrahabr.ru/post/269427/#habracut

[>] Книги по Swift
habra.14
habrabot(difrex,1) — All
2015-03-12 14:00:03


Добрый день, Хабровчане! Прошло уже достаточно времени, но книг на русском языке про Свифт так и не появилось. Издательству «Питер» интересно ваше мнение о том какой должна быть эта книга. Примите участие в опросе и помогите нам выбрать идеальную книгу. 1. Книга для начинающих. Например такая Swift for Beginners: Develop and Design [Читать дальше →][1]

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

[>] Автоматическая генерация программного кода микроконтроллера на основе событийно-ориентированной модели
habra.15
habrabot(difrex,1) — All
2015-10-31 22:30:04


**Постановка задачи**: Создание сложной автоматизированной системы на основе контроллера для управления различной периферией (электронные замки, двигателя, светодиодные ленты и прочая электроника). Создание данной системы потребовалась для **квест **комнаты, подобной [**этой**][1], но в городе **Хабаровск**. Наш квест в ином [сеттинге][2], но в целом имеет примерно тот же набор исполнительных механизмов: реле, замки, ленты, герконы и т.д. **Основные требования к системе:**

* **Надежность ** — при разработке сложных систем высока вероятность допустить трудно уловимые ошибки, чем больше код тем больше шанс пропустить ошибку и тем больше времени нужно на отладку, необходимо свести к минимуму вероятность некорректной работы.
* **Гибкость ** — возможность с минимальными временными затратами изменить логику работы
* **Функциональность ** — управление любым оборудованием и подключение любых сенсоров

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

[1]: http://geektimes.ru/post/264776/
[2]: https://ru.wikipedia.org/wiki/Сеттинг
[3]: https://habrastorage.org/getpro/habr/post_images/f8b/de4/970/f8bde49705cb630ec0ee5b53086aa5b4.png
[4]: http://habrahabr.ru/post/269897/#habracut

[>] Подводные камни Entity Framework и производительность
habra.15
habrabot(difrex,1) — All
2015-11-01 05:30:02


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

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

[>] Как завести инстансы в Google Cloud, настроить доступы и подцепить к нему Bucket Google. Howto
habra.14
habrabot(difrex,1) — All
2015-03-12 14:00:03


Добра всем читающим! Этот хау-ту размещаю по горячим следам с целью, во-первых, не забыть как делать, а во-вторых, с целью помочь кому-либо создавать инстансы в облаке Google. Решаемые задачи:

* три инстанса в разных регионах зоны Европа
* общий диск для двух инстансов
* балансировщик нагрузки по http
* облачная база MySQL
* из третьего инстанса выкладывать файлы в Bucket Google

![][1] [Теперь обо всем по порядку][2]

[1]: //habrastorage.org/files/36d/ecf/27e/36decf27ed7c4979b9c77d9e2292cefc.png
[2]: http://habrahabr.ru/post/252799/#habracut

[>] Как я делал веб-версию KeePass
habra.15
habrabot(difrex,1) — All
2015-11-01 12:00:04


Как-то мне надо было добавить в админку просмотр списка паролей. База хранилась на сервере в формате KeePass (kdbx v2), сервер был на ноде — недолго думая, я взял первый попавшийся пакет и сделал. А потом понадобилось то же самое, но прямо у пользователя в браузере, без сервера. Ничего не нашлось. Первым желанием было форкнуть либу и заменить использование node api, но от первого просмотра кода желание пропало, решил сделать сам. ![][1] Под катом расскажу о проблемах, с которыми я столкнулся, и способах их решения [Читать дальше →][2]

[1]: https://habrastorage.org/files/ee6/2ec/abd/ee62ecabd5594f388bfc03ac9ed8ff34.png
[2]: http://habrahabr.ru/post/269895/#habracut

[>] [Из песочницы] Работа с метасетевыми структурами на Python – библиотека MetaNet
habra.14
habrabot(difrex,1) — All
2015-03-12 14:00:03




> Когда видите единственное решение – спросите других





В данной статье я хотел бы рассказать о некоторых предпосылках появления [инструмента][1] для моделирования метасетей.

## Автоматизация обучения

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

[1]: https://sourceforge.net/p/meta-net-project/code/HEAD/tree/
[2]: http://habrahabr.ru/post/252781/#habracut

Pages: 1 ... 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 ... 210