Как стать автором
Обновить
4
0

Пользователь

Отправить сообщение

Что такое катастрофический возврат и как регулярное выражение может стать причиной ReDoS-уязвимости?

Время на прочтение 8 мин
Количество просмотров 6.1K

Регулярные выражения – очень полезный и удобный инструмент для поиска и замены текста. Однако в некоторых случаях они могут привести к зависанию системы или даже стать причиной уязвимости к ReDoS-атакам.

Читать далее
Всего голосов 29: ↑28 и ↓1 +27
Комментарии 16

Что такое логическое программирование и зачем оно нам нужно

Время на прочтение 17 мин
Количество просмотров 43K

У того, кто в детстве не писал на Прологе — нет сердца, а у того, кто пишет на нём сегодня — нет мозгов. (оригинал)

Если вас всегда терзали мучительные сомнения — что за фигня это Логическое Программирование (ЛП) и вообще зачем оно нужно? То это статья для вас.


Можно по-разному разделить языки программирования на группы (часто их называют парадигмами программирования), например, вот так:


  • структурное: программа разбивается на блоки — подпрограммы (изолированные друг от друга), а основными элементами управления являются последовательность команд, ветвление и цикл.
  • объектно-ориентированное: задача моделируется в виде объектов, которые отправляют друг другу сообщения. Объекты обладают свойствами и методами. Абстракция. Инкапсуляция. Полиморфизм. Ну в общем, все в курсе.
  • функциональное: базовым элементом является функция и сама задача моделируется в виде функции, а, точнее, чаще всего в виде их композиции, если f(.) и g(.) — это функции, то f(g(.)) — это их композиция.
  • логическое: вот тут, как правило, начинается феерия — если про первые три написаны сотни статей, книг, обзоров, презентаций и учебников, то здесь мы в лучшем случае видим что-то про Prolog и разработки времён Pink Floyd и Procol Harum (ну хоть с музыкой им тогда повезло) и на этом история заканчивается.

Вот эту оплошность я и собираюсь сегодня исправить.


Важнейший тезис этой статьи:


Логическое программирование != Prolog.

И вообще последний вам скорее всего не нужен. А вот первое вполне может быть.


Структура статьи:


  • Что такое Пролог и почему он вам скорее всего не нужен
  • Зачем оно надо, или краткое введение в Answer Set Programming
  • Решаем задачи на ASP
  • Комбинаторная оптимизация
  • Вероятностное ЛП: ProbLog
  • ЛП на классической логике FO(.) и IDP
  • Sketched Answer Set Programming
  • Экспериментальный анализ
  • Тестирование и корректность программ
  • Заключение
Читать дальше →
Всего голосов 30: ↑29 и ↓1 +28
Комментарии 22

Wolfram Language (Mathematica) — это просто игрушка

Время на прочтение 9 мин
Количество просмотров 59K
Я засомневался в своей точке зрения, см. подробнее в одном из UPD.

Хочу поговорить о Wolfram Language (далее WL). Прошу прощения за сумбурность изложения, пост вырос из попытки ответить на этот коммент от Nilis.

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

Лет 6-10 назад, когда я учился в школе, я знал лишь BASIC, Pascal/Delphi, C/C++ и WL. Из ОС имел дело лишь с Windows. Не знал, что такое скриптовые языки (perl, python, bash), не знал самого понятия «скрипт». Думал, что командный интерфейс — это устаревший интерфейс и что единственный правильный интерфейс программы — это графический. Программировал я на Delphi и WL. Программы на Delphi всегда были графическими. За исключением олимпиадного программирования, там в требованиях к программам было, что они должны быть текстовыми, я их писал на Delphi и C++. Когда я узнал о WL, я был им очарован, также как и вы. Потому что код на WL был гораздо короче, чем на Delphi/C++. И вообще, потому что WL был совершенно не похож на Delphi и C++. Потому что там была возможность программировать функционально. Я познакомился с функциональным программированием на примере WL, я не знал, что существуют «стандартные» функциональные языки — Haskell, Lisp и ML.
Читать дальше →
Всего голосов 77: ↑44 и ↓33 +11
Комментарии 110

Автомобиль Honda установил мировой рекорд по расходу топлива: 2.4 литра на 100 км

Время на прочтение 2 мин
Количество просмотров 22K
image
Фото Honda News

Японский автопроизводитель Honda попал в Книгу рекордов Гинесса: автомобиль Civic Tourer 1.6 i-DTEC показал рекордно низкий расход дизельного топлива во время 25-дневнего путешествия команды из трёх человек по 24 странам Европейского союза. В пересчёте на европейскую систему мер автомобиль затратил в среднем 2.345 литра на 100 км. Другими словами, в среднем одного литра дизельного горючего хватает на 42.65 км пути. При этом абсолютно никаких модификаций для серийно выпущенного автомобиля не производилось.
Узнать подробности
Всего голосов 17: ↑16 и ↓1 +15
Комментарии 34

Улучшение производительности Python 2.7

Время на прочтение 2 мин
Количество просмотров 20K

От переводчика: в двух словах, в декабре 2015 выйдет релиз Python 2.7.11, ускоряющий работу интерпретатора CPython до 20%. Ниже перевод статьи с LWN.net, рассказывающей о сути и процессе произошедших изменений в коде. Имена, в произношении которых я не уверен, даны в оригинальном написании. Об ошибках и неточностях перевода просьба, как обычно, сообщать в личные сообщения.

Несмотря на то, что разработка Python 2 (а конкретно ветки Python 2.7.x) находится сейчас в состоянии «никаких новых фич», которое в обычной ситуации заранее ставит крест на любых крупных изменениях, команда разработки приняла решение рассмотреть и принять backport-патч из Python 3, привносящий заметное улучшение производительности интерпретатора.
Читать дальше →
Всего голосов 47: ↑45 и ↓2 +43
Комментарии 5

CLion 1.0 — мощный инструмент для мощного языка

Время на прочтение 6 мин
Количество просмотров 58K
В сентябре прошлого года мы порадовали вас новостью о начале программы публичного превью (Public Early Access Program) нашей новой кросс-платформенной IDE для разработки на C и C++ — CLion. А уже сегодня мы готовы сказать — релиз CLion 1.0 состоялся! За два года от первого (полушутливого) объявления о начале разработки C++ IDE мы прошли огромный путь — переосмыслили свои навыки и умения по работе с кодом на C++, дружно освоили CMake, расширили команду, протестировали CLion на десятках больших проектов на C и C++.

Но самое главное — это каждодневная поддержка C++ коммьюнити, которое (спасибо вам!) приняло нас очень благосклонно. Спасибо за слова поддержки, репорты багов, предложения новых фич, сотни ретвитов и репостов наших новостей и анонсов! Сегодня мы готовы показать вам и рассказать, что же вошло в CLion 1.0.


Читать дальше →
Всего голосов 83: ↑81 и ↓2 +79
Комментарии 157

Беспроводной HDMI — в каждую квартиру

Время на прочтение 2 мин
Количество просмотров 172K


На краудфандинговом сайте Indiegogo начался сбор средств на очень полезный гаджет AIRTAME — это конвертер WiFi-HDMI, который позволяет подключать телевизор/монитор/ноутбук по HDMI, только без проводов.

Устройство похоже на Google Chromecast, но возможности AIRTAME гораздо шире (подробнее под катом).
Читать дальше →
Всего голосов 57: ↑52 и ↓5 +47
Комментарии 57

Робот-пылесос Kärcher RC 3000: опыт эксплуатации

Время на прочтение 33 мин
Количество просмотров 731K
В своей жизни я встречал людей, которым нравится пылесосить. Да, именно так, сам процесс наведения чистоты доставляет удовольствие. Причина может быть разной — от демонстрации собственной нужности до мизофобии.

Однако среди широкого спектра придуманных человечеством мотивов для проведения ежедневной уборки жилища, я не смог найти свой. Лень неизменно одерживала верх как над рациональными доводами о необходимости пылесосить каждый день, так и над эмоциональными порывами, энергии которых хватало только на то, чтобы выругаться: "Почему опять никто не убрался!"

Признавшись себе однажды в том, что дело не в «нехватке времени» или «усталости после работы», а в банальном нежелании брать в руки этот чертов пылесос, я решил, что нужно процесс уборки как-то автоматизировать, например, купить робота-уборщика.

Прочного и надежного робота-уборщика, способного нормально функционировать в самых тяжелых условиях:



Мой выбор пал на RC 3000 от Karcher, впечатлениям от эксплуатации которого и посвящается данная статья.

Осторожно: под катом много фотографий и видеороликов
Всего голосов 317: ↑303 и ↓14 +289
Комментарии 330

Самые известные/оригинальные телефоны от Nokia: вспоминаем то, что было

Время на прочтение 3 мин
Количество просмотров 227K


Да, скорее всего, мы уже не увидим новые модели телефонов/смартфонов от Nokia, поскольку свой профильный бизнес компания продала корпорации Microsoft. Тем не менее, за долгие годы лидерства финский производитель создал немало интересных устройств, которые можно считать «иконами» всего сектора телефонов/смартфонов. Были решения удачные, были не очень, но все это и способствовало развитию рынка смартфонов/телефонов. Под катом много фотографий, так что будьте осторожны, если у вас платный трафик.

Читать дальше →
Всего голосов 108: ↑84 и ↓24 +60
Комментарии 226

Лампа накаливания или люминесцентная или светодиодная

Время на прочтение 2 мин
Количество просмотров 398K
Представляю вашему вниманию обзор посвященный сравнению 3-х типов лам: лампа накаливания, люминесцентная, светодиодная. Я попробую ответить на вопрос что же покупать накал/люмен/светодиод?
Итак. В нашем эксперименте будут участвовать 5 ламп разных мощностей и типов.
image
Слева направо:
Лампа накаливания 60 Вт (на фото отсутвует — заимствовал в подъезде ибо дома не нашел. Лампа возвращена в подъезд и в фотосессии не участвует)
Лампа накаливания 93 ВТ
Светодиодная лампа 3 В Теплый белый
Светодиодная лампа 9 Вт Теплый белый
Ртутная лампа фотон 26 Вт 4200 К Холодный белый
Читать дальше →
Всего голосов 69: ↑48 и ↓21 +27
Комментарии 186

Доставка из США за 5-10 дней по цене USPS

Время на прочтение 4 мин
Количество просмотров 161K
До наступления 2013 года оставалось 30 дней, когда я решил подарить жене ipad mini. Официальный store.apple.com не справлялся со спросом на mini, о чем красноречиво свидетельствовала надпись est shipping in 2 weeks.

Отказываться от mini в качестве подарка не было никакого желания, поэтому был штурмом взят ebay, цены на котором заметно подросли, и 16gb+cellurar модель ушла за $500.

До наступления 2013 года оставалось 15 дней, у меня был выигранный лот и туманная перспектива получить его в Спб до 31 числа…
И я ее получил, за 10 дней, тариф за отправку составил $48.5.
Читать дальше...
Всего голосов 150: ↑138 и ↓12 +126
Комментарии 160

Обзор бюджетных 7" планшетов: Kindle Fire, Nook Tablet, BB PlayBook

Время на прочтение 8 мин
Количество просмотров 34K
Однажды, тоскливым ноябрьским вечером, я случайно обнаружил в интернете информацию о том, что в продажу поступила новая версия моего любимого планшетника, которая теперь называется Nook Tablet. Изменения относительно Нук Колора выглядели существенными — 16 гигабайт памяти, двухядерный гигагерцовый процессор, 1 гигабайт оперативной памяти. Некисло, подумал я, и решил — Хочу!

Правда, голос разума заговорил во мне. Говорил он примерно следующее — «Есть же еще куча конкурентов, почему именно нук, посмотри хотя бы на Kindle Fire». В итоге, после раздумий, было принято решение купить и киндл тоже, на месте разобраться, что мне больше по душе, а лишнее устройство продать. Получил зарплату и закупил себе оба аппарата, через ebaytoday. Между делом продал свой nook color, и остался у нас в семье только нук жены, а я стал ждать своих планшетников, тоскливо обозревая интернет через маленький экран своего ламборгини.

Когда планшетники уже были на складе EBTD — неожиданно началась акция на BlackBerry PlayBook по 199 долларов. Интересно, подумал я — тот же 1 ггц двухядерный процессор, тот же гиг оперативной памяти, но вместо андроида — ОС реального времени QNX. Ну решил и его тоже заказать, правда не обошлось без сложностей. В итоге заказал за 260 долларов на ebay плейбук с обложкой — в принципе цена такая же как если бы заказал плейбук с офф сайта.

Пока плейбук дошел, пока сформировали посылку — было уже 9 декабря. А 12 декабря посылка отправилась в сторону России. Не прошло и месяца Чуть больше месяца спустя — они у меня:

Читать дальше →
Всего голосов 67: ↑57 и ↓10 +47
Комментарии 107

Новые поисковые операторы в gmail

Время на прочтение 1 мин
Количество просмотров 47K
Я никогда не упирался в лимит свободного почтового места в gmail, пока не стал форвардить рабочую почту в персональный аккаунт. Могу допустить, что вы и без рабочих вложений достигли 10гб лимита и отчаянно вылавливаете старые письма с большими и ненужными вложениями от всяких рекламных рассылок и анонсов. 
Более хитрые пользователи использовали специально заточенные под это сервисы, кто-то перелопачивал письма вручную, но теперь для этого (и не только) появились новые поисковые операторы…
Читать дальше →
Всего голосов 85: ↑82 и ↓3 +79
Комментарии 24

CLion — долгожданная IDE от JetBrains для С/С++ разработчиков — открывает публичный EAP

Время на прочтение 4 мин
Количество просмотров 143K
Последнее время ни один пост от нашей компании не обходился без традиционного вопроса от читателей, «А когда же выйдет ваша кросс-платформенная C/C++ IDE?». И вот сегодня, наконец, мы готовы сказать: Public Early Access Program началась!



Если коротко: тут — скачать, здесь — почитать ознакомительную инструкцию, а под катом — подробности.
Читать дальше →
Всего голосов 165: ↑163 и ↓2 +161
Комментарии 268

Изгибаемые многогранники

Время на прочтение 3 мин
Количество просмотров 18K
Посмотрим на многугольник с жесткими сторонами, в вершинах которого помещены шарниры. Если у него более трех вершин, то он может изгибаться — длины сторон далеко не однозначно определяют многоугольник. А что происходит с многогранниками в трехмерном пространстве? Если зафиксировать форму их граней, смогут ли они изгибаться?


Оказывается, что иногда могут, но это очень редкое свойство
Читать дальше →
Всего голосов 43: ↑39 и ↓4 +35
Комментарии 2

Задачи на собеседованиях в Яндексе

Время на прочтение 15 мин
Количество просмотров 358K
Открытые вакансии на должность разработчика в Яндексе есть всегда. Компания развивается, и хороших программистов не хватает постоянно. И претендентов на эти должности тоже хоть отбавляй. Главная сложность – отобрать действительно подходящих кандидатов. И в этом плане Яндекс мало чем отличается от большинства крупных IT-компаний. Так что базовые принципы, описываемые в этой статье, могут быть применимы не только к Яндексу.

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

image
Читать дальше →
Всего голосов 221: ↑178 и ↓43 +135
Комментарии 329

Крупнейшая афера с Bitcoin происходит прямо сейчас

Время на прочтение 8 мин
Количество просмотров 309K
Одна из крупнейших афер в истории сети Bitcoin происходит прямо сейчас. 96000 BTC, а это почти сто миллионов долларов, по состоянию на текущий момент, было выведено со счетов клиентов, поставщиков и администраторов сайта SheepMarketplace (SMP) в минувшие выходные. SMP был одной из главных площадок, пришедших на замену SilkRoad, который был закрыт в октябре, а теперь, в результате этой аферы закрыт и сам SMP. Пока трудно точно утверждать, что именно происходит, но пользователи сайта пытаются разгадать эту головоломку на популярном сайте reddit.com в саб-реддите r/sheepmarketplace.

image

Вот что известно на данный момент: злоумышленнику (одиночке или группе людей) удалось подделать остатки средств на счетах пользователей, показывая, что у них были биткоины в собственных кошельках на сайте, в то время как на самом деле они уже были переведены. В течение недели весь сайт планомерно опустошался, так что к выходным, когда администрация сайта поняла, что что-то происходит, и закрыла площадку, со счетов пользователей было списано гигантское количество средств. И всё это произошло всего через несколько дней после того как другой конкурент SilkRoad — Black Market Reloaded — объявил, что завершает работу из-за неспособности вместить массовый приток новых пользователей, покидающих SheepMarketplace.
Читать дальше →
Всего голосов 293: ↑268 и ↓25 +243
Комментарии 298

Поверхностно об основах рыночной архитектуры и алготрейдинге

Время на прочтение 37 мин
Количество просмотров 105K
Многие знают, что одно из первых, что говорят в техническом ВУЗе — забыть все, что проходили в школе. Данная рекомендация актуальна и здесь. Полезно иногда с чистого листа начать.

На данный момент все рынки автоматизированы. По этой причине какие-то экономические объяснения ценообразования являются некими рудиментами. Рулят алгоритмы + некое ручное вмешательство.

Задача каждого торгового алгоритма всегда одна и та же — принести денег владельцу. Алгоритм тем лучше, чем больше денег он в состоянии принести.
Читать дальше →
Всего голосов 83: ↑72 и ↓11 +61
Комментарии 74

Разбираем интерфейсные детали-ошибки на примере одного банковского клиента

Время на прочтение 8 мин
Количество просмотров 74K
Время изменилось. Теперь в одиночку можно написать приложение для миллионов человек. Не нужно думать ни о хостинге, ни о дистрибуции, ни о масштабируемости — облака сделают всё за вас.

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

Стоит сейчас какому-нибудь «Энгри бёрдз» написать «2-е птицы», и все молодое поколение будет неправильно наращивать окончания у числительных (на самом деле, наращиваются только порядковые числительные: «2-й дом», «1-му победителю», но «2 птицы»).

Поэтому любой уважающий себя клиентский программист давно должен прочитать Тафти, Чихольда, Раскина и Мильчина. Даже если у вас есть дизайнер и редактор в компании. Потому что и он иногда может нести чушь (всё зависит от квалификации). Или, наоборот, чтобы правильно следовать гайдлайнам и продолжать развивать приложение в едином стиле.

Поговорим сегодня о внимании к деталям на одном практическом примере (будет много картинок).

Читать дальше →
Всего голосов 210: ↑157 и ↓53 +104
Комментарии 183

Поиск решений в логических играх на примере гомоку

Время на прочтение 10 мин
Количество просмотров 44K

Вступление


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

image

За такой нехитрой игрой мы прослушали не одну лекцию. Меня всегда раздражало, что моя блестящая стратегия разбивается о собственную невнимательность. Ну ничего, думал я, вот напишу программу, которая не будет делать ошибок, я тогда всем им покажу! Раз плюнуть! Пару циклов, правда, надо повозиться с пользовательским интерфейсом, но за пару вечеров управлюсь. С момента окончания института прошло 10 лет, а программу я всё ещё не написал.
Читать дальше
Всего голосов 40: ↑39 и ↓1 +38
Комментарии 11

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность