PowerShell: за гранью. Часть пятая

Автор: admin от 14-04-2015, 21:34, посмотрело: 550

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

… не хочешь булок — есть плюшки. Точнее будут, ежели их испечь. Благо тесто оттенка общепитовских пельменей под названием PowerShell согласно рецептам на упаковке является если не универсальным, то многоцелевым точно. И не беда, что под рукой не оказалось изюма с маком, в умелых руках плюшки и из синюшнего теста могут быть пышными и румяными.
Лепим колобка?

Категория: Программирование

 

1C: Enterprise Development Tools, или Eclipse на русском

Автор: admin от 14-04-2015, 20:34, посмотрело: 1093

1C: Enterprise Development Tools, или Eclipse на русском

Встречайте — 1C: Enterprise Development Tools.

Начну с предыстории.

Два года назад Борис Нуралиев, директор фирмы «1С», дал большое интервью сообществу INFOSTART.RU. Самым популярным вопросом был про усовершенствование среды разработки для программистов 1С.

На днях, произошел очень интересный этап в истории развития 1С – была выпущена новая среда разработки под 1С — 1C:Enterprise Development Tools.

1C:EDT – это новая среда для разработки под «1С: Предприятие 8», которая основана на базе открытой платформы Eclipse.
Да, да, да – встречайте, во всех странах СНГ и не только – Eclipse с разработкой на русском языке!
(под катом много больших картинок)

Категория: Программирование

 

Два способа быстрого вычисления факториала

Автор: admin от 14-04-2015, 20:03, посмотрело: 1640

Понятие факториала известно всем. Это функция, вычисляющая произведение последовательных натуральных чисел от 1 до N включительно: N! = 1 * 2 * 3 *… * N. Факториал — быстрорастущая функция, уже для небольших значений N значение N! имеет много значащих цифр.

Попробуем реализовать эту функцию на языке программирования. Очевидно, нам понадобиться язык, поддерживающий длинную арифметику. Я воспользуюсь C#, но с таким же успехом можно взять Java или Python.

Итак, простейшая реализация (назовем ее наивной) получается прямо из определения факториала:

static BigInteger FactNaive(int n)
{
    BigInteger r = 1;
    for (int i = 2; i <= n; ++i)
        r *= i;
    return r;            
}

На моей машине эта реализация работает примерно 1,7 секунд для N=50000.

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

Категория: Программирование

 

Сахарные инжекции в C#

Автор: admin от 14-04-2015, 19:47, посмотрело: 658

C# — продуманный и развитый язык программирования, в котором предусмотрено немало синтаксического сахара, упрощающего написание рутинного кода. Но всё-таки существует ряд сценариев, где нужно проявить некоторую смекалку и изобретательность, чтобы сохранить стройность и красоту.

В статье мы рассмотрим некоторые такие случаи, как широкоизвестные, так и не очень.
Сахарные инжекции в C#

Категория: Программирование

 

Composer & Packagist 101

Автор: admin от 14-04-2015, 17:58, посмотрело: 593

Composer & Packagist 101

Привет, Хабр! Сегодня я хотел бы поговорить с вами о знакомых опытным PHP-девелоперам, но загадочных для новичков, штуках — Composer и Packagist. Не сомневаюсь, что для многих здесь текст не станет откровением. Материал для тех, кому с описанным ниже только предстоит столкнуться.

Вы — PHP-разработчик, и вам нужен хороший менеджер зависимостей — как npm или Bundler? Вам надоело мучаться с pear? И вы не хотите вручную качать библиотеки с сайтов и обновлять все зависимости? Тогда самое время познакомиться с Composer и Packagist.

Категория: Программирование

 

Приглашаем на первый Moscow AndroidDevs Meetup 23 апреля

Автор: admin от 14-04-2015, 17:44, посмотрело: 357

Приглашаем на первый Moscow AndroidDevs Meetup 23 апреля

23 апреля в московском офисе Mail.Ru Group состоится первый Moscow AndroidDevs Meetup. Это открытая неформальная встреча для всех Android-разработчиков Москвы. В программе мероприятия — доклады наших программистов по Android-разработке, а после — их обсуждение и общение единомышленников в свободной обстановке.

Приглашаем на первый Moscow AndroidDevs Meetup 23 апреляМихаил Чабанов в докладе «Android WebView: актуальные проблемы и их решение» расскажет о сложностях при работе с интерфейсами, инжектируемыми в JavaSctipt и трудностях с определением статуса загрузки страницы в WebView и их решении. Речь пойдет и о способах взаимодействия со встроенными в web-страницу медиаплеером, извещениях WebView о системных вызовах: onBackPressed, onStop, onStart. Михаил рассмотрит также вопросы безопасности при работе с WebView.

Категория: Веб-разработка, Android

 

Разбор естественного языка: под капотом

Автор: admin от 14-04-2015, 16:12, посмотрело: 603

Разбор естественного языка: под капотом

API синтаксического анализатора


Продолжаю свой предыдущий пост. Время сфокусироваться на деталях внутреннего устройства синтаксического анализатора. В качестве языка реализации я выбрал Go, поскольку хотел малой ценой получить параллельный (в смысле, использующий все доступные ядра CPU) производительный инструмент, без погружения в низкоуровневую пучину C++.

Полученный код предоставляет следующий API:
type Attribute struct {
    Name   string
    Value  string
}

type ParseMatch struct {
    Text            string
    Nonterminal     string
    Rule            string
    Attributes      []Attribute
    Submatches      []ParseMatch
    Hypotheses      []string
    HypothesisCount uint
}

func Parse(text, nonterminal string, hypotheses_limit uint) []ParseMatch

Match ссылается на дочерние объекты того же типа, соотвествующие нетерминалам или лексическим терминалам подошедшего правила. В общем случае, из-за неоднозначности, присущей естественным языкам, тексту соответствует несколько разборов (например, из-за наличия омонимов). Поэтому функция Parse возвращает множество объектов Match. Вышеупомянутая неоднозначность синтаксического разбора должна устраняться на следующем (семантическом) уровне анализа текста.

Итак, функция Parse берёт text — текст для разбора, nonterminal — название нетерминала (например, «sentence»), а также максимальное число выдвигаемых гипотез hypotheses_limit (об этом чуть ниже). Параметр nonterminal может быть пустым. В этом случае тексту будет сопоставляться лексический терминал, найденный в морфологической базе.

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

Категория: Железо » Сделай Сам

 

Особенности аутентификации контроллера домена с использованием двух разных сертификатов

Автор: admin от 14-04-2015, 16:03, посмотрело: 1490

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

Особенности аутентификации контроллера домена с использованием двух разных сертификатов

Категория: Информационная безопасность

 

Сборка CSS-спрайтов для MIME-описателей из svg/png значков

Автор: admin от 14-04-2015, 15:21, посмотрело: 368

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

Проблема: MIME-типов очень много, собирать значки для них вручную каждый раз — очень долго (и глупо). Требуется какое-то автоматическое решение.

Решение: в этой заметке я собрал простой рецепт самостоятельного изготовления CSS-спрайтов для подключения их в дальнейшем в качестве MIME-описателей на сайте на основе значков из установленных в дистрибутив Ubuntu пакетов тем GTK/Qt.

Категория: Программирование » Веб-разработка

 

Технология распознавания этикеток на примере ярлыков из IKEA (2 видео)

Автор: admin от 14-04-2015, 14:19, посмотрело: 504

Задача распознавания этикеток имеет большое практическое значение. Ведь ее решение может существенно упростить работу с товарами в магазинах, начиная от мерчандайзинга и заканчивая непосредственно продажей конечному покупателю. Однако, по причине слабой формализации самой задачи и большой вариативности потенциальных объектов распознавания, универсальной технологии распознавания этикеток в настоящее время не существует. А торговые предприятия, понимая высокую коммерческую ценность подобной автоматизации, используют различные обходные пути (например, приклеивают к товарам 1D- или 2D-штрихкоды).

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

Категория: Веб-разработка, Game Development, iOS

 
Назад Вперед