Pull to refresh
0
0

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

Send message

А MVC ли это?

Reading time6 min
Views25K
Добрый день!

Сегодня я хочу поделиться с Вами мыслями относительно архитектуры информационных систем, в частности, разнообразных подходов к распределению логики, данных и отображения, традиционно причисляемых к MVC.

За последние две недели, в беседах с десятком знакомых программистов я выяснил, что все представляют себе MVC совершенно по-разному. Доходит до диаметрально противоположных взглядов, но по какой-то причине, все настаивают, что это MVC и что он должен выглядеть именно так, и находятся в полной уверенности, что все его так и видят.
Читать дальше →
Total votes 95: ↑81 and ↓14+67
Comments47

Сервис крауд-тестирования Utest: как выжать максимум

Reading time6 min
Views55K


В последнее время на рынке появилось множество сервисов, предлагающих за денежное вознаграждение свои услуги по обеспечению высокого качества вашего продукта. Точнее, по контролю этого самого качества. Однако за красивой вывеской часто скрываются проблемы, сводящие на нет всю пользу от такого “тестирования толпой”. Хотим поделиться нашим опытом и уберечь вас от повторения некоторых ошибок.
Читать дальше →
Total votes 8: ↑8 and ↓0+8
Comments3

Dan Piponi

Reading time11 min
Views3.2K
Резюме: В статье приводятся примеры задач, для решения которых могут понадобиться монады.

Вместо вступления (перевод начался):

Во многих «введениях в монады» монады подаются как нечто сложно-объяснимое. Я же хочу показать, что это на самом деле, они не являются чем-то сложным. В действительности, сталкиваясь с различными проблемами в функциональном программировании вы будете непреклонно приходить к различным решениям, которые часто являются примерами монад. И я надеюсь, что вы научитесь изобретать их, если вы ещё не научились. Забегая вперёд скажу, что эти решения по сути являются одним и тем же решением. После прочтения вы наверное будете лучше понимать другие работы по монадам потому, что будете узнавать всё, что вы увидите как то, что вы уже сами изобрели.
Читать дальше →
Total votes 36: ↑31 and ↓5+26
Comments47

Через тернии к Haskell. 1/2

Reading time25 min
Views224K


Первая часть короткого и жесткого введения в Haskell. Вторую часть можно найти здесь

tl;dr: Очень краткое и сжатое введение в Haskell.


UPD. Если туториал вам понравился, черкните пару строк автору оригинальной статьи. Человеку будет приятно ;)
Классные картинки, много текста и вынос мозга
Total votes 137: ↑133 and ↓4+129
Comments52

Монады с точки зрения теории категорий

Reading time9 min
Views34K

Введение

Кажется, монады в программировании стали загадкой века. И для этого есть две причины:
  • недостаточное знание теории категорий;
  • многие авторы стараюстся не упоминать категории вообще.
Это как говорить об электричестве не используя мат. анализ. Достаточно для замены предохранителя, не хватит, чтобы спроектировать усилитель.

Мы начнём с простого введения в категории и функторы, затем дадим определение монады, приведём простые примеры монад в категориях и в конце приведём монадическую терминологию используемую в языках программирования.

Я уверен, что монады с точки зрения категорий почти элементарны.

Содержание

  1. Категория
  2. Функтор
  3. Естественное преобразование
  4. Монада
  5. Монады исключения и состояния
  6. Монады в программировании
  7. Ссылки
Читать дальше →
Total votes 126: ↑105 and ↓21+84
Comments150

«Страшные» абстракции Haskell без математики и без кода (почти). Часть I

Reading time31 min
Views47K
— Для чего нужны монады?
— Для того, чтобы отделить чистые вычисления от побочных эффектов.
(из сетевых дискуссий о языке Haskell)

Шерлок Холмс и доктор Ватсон летят на воздушном шаре. Попадают в густой туман и теряют ориентацию. Тут небольшой просвет — и они видят на земле человека.
— Уважаемый, не подскажете ли, где мы находимся?
— В корзине воздушного шара, сэр.
Тут их относит дальше и они опять ничего не видят.
— Это был математик, – говорит Холмс.
— Но почему?
— Его ответ совершенно точен, но при этом абсолютно бесполезен.
(анекдот)

Когда древние египтяне хотели написать, что они насчитали 5 рыб, они рисовали 5 фигурок рыб. Когда они хотели написать, что насчитали 70 людей, они рисовали 70 фигурок людей. Когда они хотели написать, что насчитали в стаде 300 овец, они… — ну, в общем, вы поняли. Так и мучились древние египтяне, пока самый умный и ленивый из них не увидел нечто общее во всех этих записях, и не отделил понятие количества того, что мы подсчитываем, от свойств того, что мы подсчитываем. А потом другой умный ленивый египтянин заменил множество палочек, которыми люди обозначали количество, на значительно меньшее количество знаков, короткой комбинацией которых можно было заменить огромное количество палочек.

То, что сделали эти умные ленивые египтяне, называется абстракцией. Они подметили нечто общее, что свойственно всем записям о количестве чего-либо, и отделили это общее от частных свойств подсчитываемых предметов. Если вы понимаете смысл этой абстракции, которую мы сегодня называем числами, и то, насколько она облегчила жизнь людям, то вам не составит труда понять и абстракции языка Haskell — все эти непонятные, на первый взгляд, функторы, моноиды, аппликативные функторы и монады. Несмотря на их пугающие названия, пришедшие к нам из математической теории категорий, понять их не сложнее, чем абстракцию под названием «числа». Для их понимания совершенно не требуется знать ни теорию категорий, ни даже математику в объёме средней школы (арифметики вполне достаточно). И объяснить их тоже можно, не прибегая к пугающим многих математическим понятиям. А смысл абстракций языка Haskell точно такой же, как и у чисел — они значительно облегчают программистам жизнь (и вы пока даже не представляете, насколько!).
Читать дальше →
Total votes 53: ↑49 and ↓4+45
Comments36

Парадокс доказательства

Reading time12 min
Views248K
31 августа 2012 года японский математик Cинъити Мотидзуки опубликовал в интернете четыре статьи.

Заголовки были непостижимы. Объём был пугающим: 512 страниц в сумме. Посыл был дерзким: он заявил, что доказал abc-гипотезу, знаменитую, соблазнительно лёгкую числовую теорию, которая десятилетиями заводила математиков в тупик.

Затем Мотидзуки просто ушёл. Он не отправил свою работу в Annals of Mathematics. Он не оставил сообщение ни на одном сетевом форуме, которые часто посещают математики со всего мира. Он просто опубликовал статьи и ждал.

Два дня спустя, Джордан Элленберг, профессор математики в Висконсинского университета в Мадисоне, получил почтовое оповещение от Google Scholar, сервиса, который сканирует интернет в поисках статей по указанным темам. Второго сентября Google Scholar отправил ему статьи Мотидзуки: «Это может заинтересовать вас».

«А я такой: „Да, Гугл, мне это как бы интересно!“» – вспоминает Элленберг, – «Я запостил их в Фэйсбуке и в моём блоге, с пометкой: „Между прочим, похоже, что Мотидзуки доказал abc-гипотезу“».

Интернет взорвался. В течение дней даже далёкие от математики СМИ подхватили историю. «Решена сложнейшая в мире математическая теория», – объявила Telegraph. «Возможный прорыв в abc-гипотезе», – немного скромнее писала New York Times.

На математическом форуме MathOverflow математики со всего мира стали оспаривать и обсуждать заявление Мотидзуки. Вопрос, который быстро стал самым популярным на форуме был прост: «Кто-нибудь может объяснить философию его работы и прокомментировать почему она может пролить свет на abc-гипотезу?» – спросил Энди Путман, ассистент профессора в Университете Райса. Или, если перефразировать: «Я ничего не понял. Кто-нибудь понял?»

Проблема, с которой столкнулись многие математики, сбежавшиеся к сайту Мотидзуки, была в том, что доказательство было невозможно прочесть. Первая статья под заголовком «Интер-универсальная теория Тейхмюллера 1: Построение театров Ходжа», начинается с утверждения, что цель работы в «разработке арифметической версии теории Тейхмюллера для цифровых полей ограниченных эллиптической кривой… с помощью применения теории полуграфов анабелиоидов, фробениоидов, эталь тета-функций и логарифмических оболочек».

Это похоже на тарабарщину не только для обывателя. Это было тарабарщиной и для математического сообщества.

«Смотря на неё, ты чувствуешь будто читаешь статью из будущего или далёкого космоса», – написал Элленберг в своём блоге.

«Она очень, очень странная», – говорит профессор Колумбийского университета Йохан де Йонг, работающий в близких сферах математики.

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

Как профессор Мун Дучин из университета Тафтса выразила это: «Он воистину создал свой собственный мир».

Должно пройти долгое время прежде чем кто-нибудь будет способен понять работу Мотидзуки, тем более оценить верность доказательства. В последующие месяцы статьи лежали камнем на плечах математического сообщества. Горстка людей подобралась к ним и начала изучать. Другие пытались, но быстро сдались. Некоторые полностью игнорировали их, предпочитая наблюдать издалека. Что же до виновника беспокойства, человека, который заявил, что решил одну из величайших проблем математики – от него не было ни звука.
Читать дальше →
Total votes 356: ↑345 and ↓11+334
Comments404

Функциональное программирование для всех

Reading time33 min
Views351K

Доброго времени суток. Это статья — перевод заинтересовавшего меня поста в блоге аспиранта Университета штата Нью-Йорк в Стоуни-Брук. Статья в доступной форме описывает основные концепции функционального программирования, их преимущества и недостатки. Думаю она будет полезна широкому кругу читателей, которые сомневаются, нужно ли им углубляться в мир функционального программирования или нет. Пожелания, предложения и замечания по переводу и терминологии принимаются по личной почте.

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

UPD: альтернативный вариант перевода вы можете найти на rsdn (спасибо flamingo за ссылку).
Читать дальше →
Total votes 188: ↑181 and ↓7+174
Comments151

Уоррен Баффетт блестяще объясняет, как формируются пузыри

Reading time3 min
Views11K
В интервью, касающемся работы Комиссии по расследованию финансового кризиса (Financial Crisis Inquiry Commission, FCIC), в 2010 году Уоррен Баффетт ответил на несколько вопросов о том, что, по его мнению, породило пузырь в сфере недвижимости и кредитов.

image
Уоррен Баффетт

В ходе интервью он также дал кристально ясное объяснение, как формируются пузыри.
Это — прекрасный материал для всех, интересующихся инвестиционной или поведенческой экономикой.
Интервью поступило из недавнего сброса документов из Национального архива, который опубликовал расшифровки стенограмм, повестки дня встреч и соглашения о конфиденциальности от FCIC. Группа была создана Конгрессом после кризиса, чтобы изучить причины этого события.

Итак, Баффетт (выделение наше):

"… Мой бывший босс, Бен Грэм, рассказал мне одно своё наблюдение приблизительно 50 лет назад; оно мне запомнилось, и теперь я увидел его подтверждение.

Он сказал: «Можно получить намного более тяжёлую проблему в инвестировании, основываясь на здравой предпосылке, чем опираясь на ложную.»
Читать дальше →
Total votes 15: ↑13 and ↓2+11
Comments21

15 интересных и полезных сервисов от Google

Reading time4 min
Views36K
В конце марта Google собирается прекратить работу сервиса «Compare», позволяющего пользователям сравнивать предложения на автомобильную страховку, кредитные карты и ипотеку. Но помимо него у компания имеется достаточно других интересных, часто скрытых и действительно полезных продуктов, которыми можно пользоваться.

Штат Google насчитывает более 60 000 специалистов, а также компания обладает всевозможными ресурсами, чтобы создавать оригинальные сервисы в добавок к поисковой системе и другим крупным проектам. Ниже представлена подборка занимательных и полезных приложений от Google. От поиска информации в исключительно профессиональных изданиях до географических карт, составленных из фотографий обычных людей.

1. Google Keep




Google Keep — это бесплатное интернет-приложение, предназначенное для создания и хранения заметок. Работает как на настольном компьютере, так и на телефоне. Его красочный дизайн поможет Вам создать уникальный и яркий список дел. Можно установить «напоминания», которые будут объединены с GCal.



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

Читать дальше →
Total votes 24: ↑18 and ↓6+12
Comments33

Топ-10 торрент-трекеров за бугром

Reading time4 min
Views225K
Ниже будет представлен список самых посещаемых торрент-сайтов за 2016 год. В начале 2016 года лидировал KickassTorrents, за ним следовал торрент-трекер The Pirate Bay. Многое случилось за последнее время, некоторые торрент-сайты исчезли, другие заняли их место «под солнцем».



Пользователи конечно же привыкают к тому или иному сайту, но в случае его исчезновения/ блокировки с удовольствием, не брезгуя, перепрыгивают на другие. Эта тенденция прослеживается и согласно данным нового списка топ торрентов. Первые позиции занимают всем известные старые игроки, но также появилась парочка торрент-новичков. После 10 лет работы, популярный торрент-ресурс EZTV был закрыт в мае прошлого года.
читать дальше
Total votes 23: ↑21 and ↓2+19
Comments52

Хобби для пенсионера: Как 77-летний трейдер заработал миллионы на фондовом рынке

Reading time3 min
Views17K


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

Но старая гвардия не сдается. CNN рассказала историю семидесятисемилетнего биржевого гуру, который предсказал кризис 2008 года и доказал, что «старые добрые» методы инвестирования по-прежнему работают и приносят неплохой доход.
Читать дальше →
Total votes 24: ↑15 and ↓9+6
Comments22

Секс и насилие в Google Play

Reading time1 min
Views342K
Последнее время google систематически удаляет приложения за секс и насилие, без пояснения причин и не вступая в диалог с разработчиками.

Окей, гугл. Давайте проведем небольшой социальный эксперимент.

Я установил на смартфоне доступ к контенту для младшей возрастной группы и зашел в несколько приложений от производителя Google Inc.
посмотрим, что из этого получится
Total votes 419: ↑371 and ↓48+323
Comments147

Список ресурсов по машинному обучению. Часть 1

Reading time3 min
Views30K


Ранее мы говорили о разработке системы квантовой связи и о том, как из простых студентов готовят продвинутых программистов. Сегодня мы решилие еще раз (1, 2) взглянуть в сторону темы машинного обучения и привести адаптированную (источник) подборку полезных материалов, обсуждавшихся на Stack Overflow и Stack Exchange.
Читать дальше →
Total votes 25: ↑24 and ↓1+23
Comments0

Школьник об олимпиадном программировании

Reading time11 min
Views140K

Здравствуй, Хабр!
Пишет тебе девятиклассник, призер регионального этапа всероссийской олимпиады по информатике. В последнее время я стал замечать, что у хабражителей повысился интерес к олимпиадам по программированию. Как их активный участник я постараюсь ответить на все вопросы, рассказать о своем пути, привести примеры реальных, запомнившихся мне задач.
Читать дальше →
Total votes 168: ↑122 and ↓46+76
Comments152

sin 1° на калькуляторе

Reading time5 min
Views82K
Важное уточнение — калькулятор обычный, без кнопки sin. Как в бухгалтерии или на рынке.

Калькулятор Casio

Под катом три разных варианта решения из разных эпох, от древнего Самарканда до США времён холодной войны.
Читать дальше →
Total votes 103: ↑100 and ↓3+97
Comments44

Asyncio Tarantool Queue, вставай в очередь

Reading time9 min
Views21K


В одной из своих статей я рассказывал об асинхронной работе с Tarantool на Python. В данной статье продолжу эту тему, но внимание хочу уделить обработке информации через очереди на Tarantool. Мои коллеги опубликовали несколько статей о пользе очередей (Инфраструктура обработки очередей в социальной сети Мой Мир и Push-уведомления в REST API на примере системы Таргет Mail.Ru). Хочу дополнить информацию об очередях на примере решений наших задач, а также рассказать о работе с Tarantool Queue на Python и asyncio. Почему мы выбираем именно Tarantool, а не Redis или RabbitMQ?
Читать дальше →
Total votes 34: ↑32 and ↓2+30
Comments14

Нейросеть в 11 строчек на Python

Reading time8 min
Views534K

О чём статья


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

Дайте код!


X = np.array([ [0,0,1],[0,1,1],[1,0,1],[1,1,1] ])
y = np.array([[0,1,1,0]]).T
syn0 = 2*np.random.random((3,4)) - 1
syn1 = 2*np.random.random((4,1)) - 1
for j in xrange(60000):
    l1 = 1/(1+np.exp(-(np.dot(X,syn0))))
    l2 = 1/(1+np.exp(-(np.dot(l1,syn1))))
    l2_delta = (y - l2)*(l2*(1-l2))
    l1_delta = l2_delta.dot(syn1.T) * (l1 * (1-l1))
    syn1 += l1.T.dot(l2_delta)
    syn0 += X.T.dot(l1_delta)


Слишком сжато? Давайте разобьём его на более простые части.
Читать дальше →
Total votes 47: ↑44 and ↓3+41
Comments17

Перевод: Этика Code Review

Reading time3 min
Views26K
Недавно мне на глаза попалась небольшая, но очень емкая статья одного разработчика, в которой он рассматривает code reiew с довольно неожиданной стороны. Большинство материалов, посвященных code review, рассказывают о технических вопросах: какими утилитами пользоваться, как интегрировать code review в процесс continuous integration и прочие технические моменты. Автор же рассматривает code review как социальное взаимодействие. И, на мой взгляд, об этом стоит почитать. Под катом — перевод.
Читать дальше →
Total votes 54: ↑42 and ↓12+30
Comments34

Где живет интернет: точка обмена трафиком на Манхэттене

Reading time2 min
Views32K


Точки обмена трафиком — весьма интересный объект для ознакомления, как для обычных поклонников мира техники, и так и для профессионалов сетевых технологий. Для того, чтобы познакомить мир с изнанкой Интернета, Питер Гарритано решил показать, как выглядит точка обмена трафиком, располагающаяся на Манхэттене, в Нью Йорке.

Сам Питер — не профессионал, но интересуется сетевыми технологиями, поэтому он решил прояснить для себя, как и где живет Интернет. Где соприкасаются линии связи, как передается информация. Последние несколько месяцев Питер занимается изучением точек обмена трафиком, так называемых «carrier hotels». Точка обмена интернет-трафиком (англ. Internet Exchange Point, IX, IXP) — сетевая инфраструктура, предназначенная для оперативной организации соединений и межоператорского обмена IP-трафиком (пиринга) между независимыми сетями в Интернет.
Читать дальше →
Total votes 38: ↑36 and ↓2+34
Comments21

Information

Rating
Does not participate
Registered
Activity