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

Разбираемся, что же там нового открыли в задаче о ферзях

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

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


image
Сможете поставить ещё шесть? А найти все решения?
(картинка из статьи)


Далее, к сожалению, произошла какая-то совершенно невразумительная история из цепочки вот таких вот превращений:



Стоит отметить, что пять наугад открытых ссылок на русском ещё меньше проясняли картину происходящего.


Я тут подумал — надо бы кому-то эту странную цепочку прервать и нормальным языком изложить суть событий.


О чём пойдёт речь:


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

Излишняя сложность как причина дополнительных скрытых издержек

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


Мы часто говорим кому-то фразы наподобие «Мне нужно всего лишь несколько часов, чтобы это сделать/реализовать/внедрить». Но спустя какое-то время после окончания работ вдруг осознаём, что нам приходится регулярно исправлять баги и ошибки, объяснять устройство и алгоритм работы другим инженерам и разработчикам, или помогать отвечать на вопросы клиентов. И получается, что объём времени, затраченного на поддержку вашего детища, многократно превышает те несколько часов, что ушли на его создание.

В разработке ПО одним из самых трудно усваиваемых правил является то, что с увеличением сложности продукта растут и скрытые издержки. Иногда сложность является лишь следствием каких-то иных проблем. Очень непросто найти баланс между «продающими» и «нагрузочными» свойствами продукта, особенно в свете определения его стоимости и регулирования спроса и предложения. Столь же трудно заниматься поддержкой качества продукта и расширять круг потребителей. Или, скажем, разработать текстовый редактор с богатыми возможностями, одинаково быстро и устойчиво работающий на всех устройствах и поддерживающий совместную работу над документами в реальном времени. Иными словами, зачастую приходится усложнять продукт, чтобы он стал успешным на рынке.
Читать дальше →
Всего голосов 12: ↑12 и ↓0+12
Комментарии1

Обучение программированию онлайн — а все ли так просто как кажется?

Время на прочтение4 мин
Количество просмотров27K
В эпоху растущей популярности онлайн обучения и различных курсов, хочется более подробно осветить тему, а именно подводные камни, всплывающие на пути этого самого обучения.
Недавно решил на более серьезном для новичка уровне освоить Java. Знакомый разработчик с товарищами организовали онлайн курс и предложили мне принять участие.

Так как цена был подъемная (10 000 р. за основы языка — java core) и в QA знание языка программирования является жирным плюсом — то я, недолго раздумывая, согласился.
Постараюсь кратко описать плюсы, минусы, а также свои впечатления от данного мероприятия.

Начну с плюсов


1) Онлайн занятия (как плюс так и минус). Постигать программирование удобно дома, необходим только нормальный инет и микрофон. Ехать никуда не нужно, обучаться можно, лежа на диване в пижаме, попивая кофеек.

Для участников курсов весь вспомогательный материал расшарен и находится в открытом доступе.Все видеозаписи занятий выкладывались на google диск, а книги и доп. материалы можно было найти на гит лаб. Там же задавалась домашка. Для программирования использовали IntelliJ IDEA, домашку для проверки отправляли в репозиторий на Bitbacket через GIT (да-да, с ним тоже обучали работать). Несомненный плюс онлайна заключается в том, что все необходимое для занятий расположено на трех соседних вкладках браузера.

2) Относительно небольшая группа учащихся. На момент когда я начинал занятия, в группе было 4 человека. А учитывая, что преподавателей было 3, то они могли уделить достаточно внимания и, в какой то степени, индивидуальный подход каждому ученику.

3) Хороший преподавательский состав. В менторах были ребята с неплохим опытом работы в программировании. Они хорошо объясняли материал. Старались подробно разбирать задачи, и почти всегда были на связи. При возникновении вопроса можно было договориться, созвониться по скайпу и в тот же день решить проблему, даже если занятия в этот день не было.
Читать дальше →
Всего голосов 13: ↑11 и ↓2+9
Комментарии18

Заставьте меня думать

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

Дизайн сложности


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

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



С открытием каждого технологического новшества наши предметы обихода становились всё более оснащёнными и значительно более сложными. Дизайнеры и инженеры попросту обременяли пользователей подобным увеличением сложности. Мне всё еще снятся кошмары о попытках получить билет на поезд с помощью старого торгового автомата BART в Сан-Франциско.



От сложного к простоте

Читать дальше →
Всего голосов 24: ↑23 и ↓1+22
Комментарии14

Всё простое опять стало сложным

Время на прочтение10 мин
Количество просмотров33K
Это выступление состоялась 12 октября 2017 года на конференции Mirror Conf в Браге (Португалия) и ещё раз 9 февраля 2018 года на Awwwards Conference в Берлине.

Этим летом после лекции на веб-конференции у меня состоялась увлекательная беседа с молодой студенткой, которая изучает цифровой дизайн. Было интересно сравнить наши карьерные пути. У меня пятнадцать лет опыта дизайна для веб-клиентов, у неё — один год, но каким-то образом мы оказались в одинаковой ситуации: мы наслаждались работой, но были совершенно дезориентированы и обескуражены быстро растущей сложностью всего вокруг. Что за ерунда произошла? (Конечно, это риторический вопрос).

Для нас обоих стало облегчением взаимно признаться в разочаровании и замешательстве. И мне стало интересно — эта какая-то смешная ситуация или тут серьёзная тема. Ни у кого из нас не было ответа, но спустя немного времени мне стало понятно, что мы оба должны сделать. Я бы хотел сегодня продолжить этот разговор и попытаться сформулировать свою точку зрения по поводу этой неразберихи и во что она нам обходится.
Читать дальше →
Всего голосов 56: ↑56 и ↓0+56
Комментарии117

Простые квантовые игры раскрывают окончательную сложность Вселенной

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

Игра для двоих может сказать, есть ли во Вселенной бесконечное количество сложности



Сколько независимых свойств есть у Вселенной? Простая игра может дать ответ на этот вопрос

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

Физикам это неизвестно, но при отсутствии определённости они делают предположения. А эти предположения различаются в зависимости от области физики. В одной области физики предполагают конечное число конфигураций. В другой – бесконечное. Пока что невозможно сказать, кто из них прав.
Читать дальше →
Всего голосов 39: ↑29 и ↓10+19
Комментарии35

Аллюр три креста, или Почему проекты так трудно закончить в срок

Время на прочтение12 мин
Количество просмотров15K
Один крест (+) означал, что посыльный мог ехать к месту назначения шагом, два креста (++) означало рысь, три креста (+++) — незамедлительный галоп. Поэтому в армии галоп носил неофициальное название аллюр три креста, а позже это выражение вошло в русский язык, имея смыслом максимально быстрое выполнение поручения начальства. [Википедия]
Tar pit (англ., дословно смоляная яма) — 1) неразрешимая проблема, 2) битумное озеро (место, где подземный битум выходит на поверхность, создавая участок природного асфальта). [Англо-русский словарь] Животные, попавшие в битум, не могут выбраться обратно, поэтому такие озера являются отличным местом для раскопок доисторических скелетов [Википедия].

«Воображение представляет динозавров, мамонтов и саблезубых тигров, пытающихся высвободиться из смолы. Как бы ни был силен или ловок зверь, в конечном итоге ему уготована гибель. Такой смоляной ямой в последнее десятилетие было программирование больших систем...» [1, с.16] С этого яркого образа начинается классическая книга Фредерика Брукса, впервые увидевшая свет в далеком 1975 году. Другая классическая книга, опубликованная в столь же древнем 1987-м, начинается ничуть не лучше: «А в это время где-то гибнет проект» [2, с.23]. Идут годы, человечество вступает в новое тысячелетие, но и в 2014 году очередной бестселлер начинается все с той же вечной истории: «3 марта 2010 года Федеральное бюро расследований решило приостановить свой крупномасштабный и многообещающий план модернизации управления информацией… В бюро пытались обновить свою компьютерную систему уже более десяти лет, и, похоже, их постигла катастрофа» [3, с.14].

Читать дальше →
Всего голосов 38: ↑37 и ↓1+36
Комментарии30

Простое сложное программирование

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


В очередной раз увидел на Хабре статью про сложное дело под названием «программирование». И то, что программирование действительно является делом не простым воспринимается как факт и обычно не требует какого либо подтверждения.

Но понятие «сложность» сродни термину «куча». Для кого-то и пять кокосов это не куча, а кого-то съел один и «больше не хочется» — значит для него и единственного кокоса будет много.

Так и со сложностью ПО. Вроде бы увеличение сложности является для всех очевидным и наблюдается во всех сферах применения IT технологий, да и сами языки программирования по мере своего развития становятся все сложнее, а вот оценивать «сложность» с помощью численных метрик — дело заведомо неблагодарное, но и «нельзя управлять тем, что невозможно измерить ...».

Обычно разговоры о «сложности» включают в себя только оценочные суждения без какой либо численной оценки. А так как лично меня интересует вопрос сложности языков программирования, то я решил посчитать сложность реализации компилятора gcc в каких нибудь условных попугаях. Вдруг можно будет увидеть какие нибудь закономерности?
Читать дальше →
Всего голосов 18: ↑12 и ↓6+6
Комментарии38

О сложности в работе программиста

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

Я хочу сегодня порассуждать об окружающей нас (людей) сложности и о нашем умении с ней работать. Не о той сложности, про которую пишут в статусах семейного положения в соцсетях, типа, «всё сложно», а о сложности в организационно-технических системах (кстати, по-моему, неплохое название для ВУЗовской специальности получилось). На оригинальность и, тем более, истину не претендую (тем более что, как минимум, наполовину я тут собираюсь низводить, курощать и дуракавалять). Часть этих рассуждений я уже выносил куда-то в комментарии, но для меня этот вопрос не закрыт. Поэтому жизнь всегда подбрасывает мне разные показательные примеры, которые побуждают размышлять дальше. Несмотря на пятницу, это не задумывалось, как развлекательное чтиво, тут не будет весёлых картинок, если что – я вас предупредил. Если хотите прочитать только одно предложение, и пойти читать остальные весёлые пятничные статьи – то вот оно: «Упрощать сложность там, где это можно сделать, справляться со сложностью там, где упрощать её нельзя, и нарабатывать опыт и умение отличать первый случай от второго». Годится как пятничный тост.
Читать дальше →
Всего голосов 19: ↑19 и ↓0+19
Комментарии11

Пользователи применяют ненадёжные пароли? Неофициальная статистика

Время на прочтение1 мин
Количество просмотров3.7K
По информации, слитой на одном закрытом форуме по «информационной безопасности», использование лёгких паролей среднестатистическими пользователями это не бред. Посмотрите на диаграмму справа. Это статистика (в процентах) паролей российских пользователей от своей электронной почты в 2011м году.
Ярко-красный: только цифры
Оранжевый: только маленькие латинские буквы
Жёлтый: сочетание цифр и маленьких латинских букв
Светло-зелёный: латинские буквы разного регистра или только большие латинские буквы
Зелёный: цифры и (латинские буквы разного регистра или только большие латинские буквы)
Тёмно-зелёный: используется что-то кроме латинских букв и цифр.

Треть пользователей используют в качестве пароля только цифры. Впечатлило? Добро пожаловать под кат.
Читать дальше →
Всего голосов 101: ↑90 и ↓11+79
Комментарии101

Соотношение абстрактности и сложности при моделировании

Время на прочтение1 мин
Количество просмотров2.7K
Доброго времени чтения, уважаемые участники habrahabr.ru

При моделировании иногда возникают проблемы с пониманием задачи и пониманием пользователя. В данной статье предлагается вариант взаимодействия пользователя с задачей — восприятия задачи пользователем.

image

Попытка описания исходных данных для анализа:

Синими — с подписью вверху «Бытие» — нарисованы гиперболические конусы, отображающие усложнение природы. Ось симметрии конусов — ось «Абстрактность».
Читать дальше →
Всего голосов 24: ↑4 и ↓20-16
Комментарии50

Уровни сложности моделирования

Время на прочтение7 мин
Количество просмотров4.5K
Доброго времени чтения, уважаемые участники habrahabr.ru

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

image

Ниже представлен перечень уровней последовательного усложнения с кратким обоснованием.
Читать дальше →
Всего голосов 11: ↑1 и ↓10-9
Комментарии21

Заметки о SQL и реляционной алгебре

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


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

Зачем это может быть нужно сегодня? Не только специалистам по анализу данных и администраторам баз данных приходится работать с данными, фактически мало кому не приходится что-то извлекать из (полу-)структурированных данных или трансформировать уже имеющиеся. Для того, чтобы иметь хорошее представление почему языки запросов устроены определенным образом и осознанно их использовать нужно разобраться с ядром, лежащим в основе. Об этом мы сегодня и поговорим.

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

Содержание



Читать дальше →
Всего голосов 32: ↑32 и ↓0+32
Комментарии8

Как научиться оценивать задачи, если не умеешь: 4 фактора сложности

Время на прочтение11 мин
Количество просмотров64K
Когда я был начинающим программистом, – а впрочем, и позднее, когда я был начинающим ведущим разработчиком, – я думал, что спрогнозировать сроки, в которые ты что-то сделаешь, абсолютно невозможно. Или же, что хороший прогноз требует очень детальных проектирования и подготовки, примерно таких же по длительности, как и сама задача.

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

В одной из команд, где я работал, мы придумали оригинальный метод для предварительной оценки задач. Метод синтезирует некоторые известные из литературы приёмы, но в приведённой форме, пожалуй, никем не описан. Концепция была следующей: объективность (связь с измеримыми показателями); интегрируемость с Agile; повторяемость; быстрота оценки (меньше 0.5% от объема задачи); доступность для начинающих разработчиков. Я буду рад обсудить нашу идею и не исключаю, что кому-то из Хабрааудитории она придётся по душе.
Читать дальше →
Всего голосов 25: ↑23 и ↓2+21
Комментарии5

В чем источник силы и лидерских качеств Шерил Сэндберг

Время на прочтение3 мин
Количество просмотров4.2K
«Я никогда раньше не рассказывала об этом на публике. Это сложно», — сказала Шерил Сэндберг, имея в виду внезапную смерть своего мужа, произошедшую за 1 год и 13 дней до ее выступления перед выпускниками на церемонии вручения дипломов в Калифорнийском университете в Беркли. Иногда мы не знаем, как справиться с горем. И опыт сильного человека, который преодолел такой кризис, может оказаться по-настоящему важным.

image
Читать дальше →
Всего голосов 30: ↑15 и ↓150
Комментарии0

Идея для Хабра: уровни сложности статей

Время на прочтение1 мин
Количество просмотров7.6K
Здравствуйте! Насколько я следил за Хабром за все время его развития, он двигался в сторону все более и более высокопрофессиональных статей. Это, с одной стороны, хорошо. А с другой и не очень — потому что статьи для новичков в IT-сфере, на мой взгляд, тоже нужны, но если их публиковать, то трудно избежать обвинений в «разжевывании очевидного».

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

На мой взгляд, Хабр несет во многом образовательную функцию, а значит, для него можно использовать метафору учебного заведения, в котором простые знания преподают на первом курсе, а сложные — на пятом. Но это не значит, что первые или вторые преподавать не нужно. Что вы думаете?
Всего голосов 67: ↑54 и ↓13+41
Комментарии83

Изменение восприятия сложности

Время на прочтение2 мин
Количество просмотров15K
Хочу поделиться очень субъективными мыслями об изменении отношения к сложности за последние лет 50. Возможно, мои наблюдения касаются всей инженерии, но я поостерегусь и буду писать только про разработку ПО.

В последние годы мне стало казаться, что я упускаю что-то в методах разработки ПО. Весь мир радостно и с песней ускоряется, создаёт софт всё быстрее и быстрее, а я торможу. Чтобы не отставать, приходится преодолевать внутренний барьер неясной природы, действовать за границей которого выгодно но неприятно (мне). Не понятно почему выгодно. И не понятно почему неприятно.

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

Я же учился в основном по материалам, созданным в прошлом веке, «древним манускриптам», да ещё и научную фантастику читал классическую, поэтому невольно стал приверженцем «старой школы». В чем же разница?
Читать дальше →
Всего голосов 48: ↑35 и ↓13+22
Комментарии63

Туннельное моделирование — версия 1.0

Время на прочтение2 мин
Количество просмотров3K
Доброго времени чтения, уважаемые пользователи Хабра!
В предлагаемом посте предлагается нотация туннельного моделирования, первоначально описанная в статьях Туннельное моделирование — версия 0.9 и Преобразование подхода Захмана.

Основой подхода является дуализм Декарта, для которого предлагается математическая модель в виде двух вращающихся гиперболических поверхностей — абстрактного (вверху) и материального (внизу) (Рис.1).

image
Рис. 1 Гиперболические поверхности и сферическое миросозерцание
Читать дальше →
Всего голосов 12: ↑0 и ↓12-12
Комментарии84

4 года Data Science в Schibsted Media Group

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

Секретные материалы


В 2014-м году я присоединился к небольшой команде в Schibsted Media Group в качестве 6-го специалиста по Data Science в этой компании. С тех пор я поработал над многими начинаниями в области Data Science в организации, в которой теперь таких уже 40 с лишним человек. В этом посте я расскажу о некоторых вещах, о которых узнал за последние четыре года, сперва как специалист, а затем как менеджер Data Science.


Этот пост следует примеру Robert Chang и его отличной статьи «Doing Data Science in Twitter», которую я нашел очень ценной, когда впервые прочитал ее в 2015-м году. Цель моего собственного вклада ― поведать настолько же полезные мысли специалистам и менеджерам Data Science по всему миру.


Я поделил пост на две части:


  • Часть I: Data Science в реальной жизни
  • Часть II: Управление командой Data Science
Читать дальше →
Всего голосов 7: ↑7 и ↓0+7
Комментарии1

Проблемы современной записи математических текстов

Время на прочтение8 мин
Количество просмотров41K
В недавней статье товарищ KvanTTT поднял вопрос:
Можете пояснить что вам не нравится в современной записи (математических положений и) формул и как ее можно улучшить?
Я постарался ответить в одном комментарии, но размер текстового поля не позволил закончить выкладки. Данная статья — чрезмерно развернутый ответ.

Сразу скажу, материал холиварный. Местами слишком эмоциональный. Очень спорный. Слишком личный — часто основан на собственном опыте, небогатом, хоть и разнообразном. Пост касается школьных и университетских текстов учебников: у «профессиональной» литературы своя специфика, своя аудитория. Решения у проблемы в текущих реалиях нет. При этом, часть «моих» наблюдений задолго до меня высказывали такие авторитеты, как Кнут и Хэмминг; чуть менее популярные ребята даже запилили инструкцию "Как читать математику".

Итак, на мой взгляд, основные претензии не столько к записи формул, сколько к подаче материала. Причем, к подаче материала на практически всех уровнях образования, начиная со школы, и заканчивая передовой наукой. Начало текущей ситуации положил Евклид, заявивший про отсутствие царской дороги в математике. Царскую дорогу не проложили до сих пор. Евклид обходился, и мы сможем.
Какие же проблемы есть у подачи материала?
Всего голосов 123: ↑112 и ↓11+101
Комментарии593