Pull to refresh

Сервис Вопросы-Ответы: как правильно дать ответить на вопрос?

Interfaces *

Доброго времени суток, уважаемые Хабрапользователи!



Некоторое время назад мы начали разрабатывать систему вопросов-ответов (две малоизвестные компании уже создали по аналогу: ответы mail.ru или ответы Google). И мы, кроме прочего, поставили задачу избавиться от всех недочётов и проблем, которые мы выявили в существующих подобных системах.
Итак, ...
Total votes 10: ↑8 and ↓2 +6
Views 3.6K
Comments 11

Самообман простоты

Intel corporate blog

В статье рассматривается проблема превышения сроков создания программ как результат самообмана: будто бы программирование — это просто, и даже еще проще. Создатели новых технологий в области разработки программного обеспечения уверяют, что их технология поможет решить огромное количество проблем и что теперь разработка программного обеспечения становится как никогда простым и быстрым процессом. Но практика неумолима. Вновь и вновь срываются сроки завершения очередного программного проекта.
Читать дальше →
Total votes 87: ↑76 and ↓11 +65
Views 24K
Comments 30

Microsoft предложила альтернативу сложным паролям

Information Security *
image
В отделе исследований Майкрософт придумали способ создавать пароли, которые легко запомнить, но при этом система, в которой будет использоваться новый подход не станет более уязвимой для хакеров.
Вместо того, чтобы использовать по настоящему сложные пароли, которые используются в системах большинства организаций, новая схема проверяет, чтобы один и тот же пароль был не более чем у нескольких пользователей системы одновременно, при этом пропадает необходимость использовать сложные пароли без ущерба для общей безопасности системы.
Читать дальше →
Total votes 33: ↑18 and ↓15 +3
Views 1.1K
Comments 31

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

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

Треть пользователей используют в качестве пароля только цифры. Впечатлило? Добро пожаловать под кат.
Читать дальше →
Total votes 101: ↑90 and ↓11 +79
Views 3.5K
Comments 101

Проблемы сложности Scala

Scala *
Translation
Во-первых этот тред [имеется в виду вот этот] кажется мне уж слишком пессимистичным. Scala используется в огромном и всё возрастающем числе коммерческих компаний, во многих из них работает более 100 разработчиков. Все эти люди просто делают своё дело (и в основном любят его); они не находят сложность Scala слишком пугающей.
Читать дальше →
Total votes 29: ↑23 and ↓6 +17
Views 2.9K
Comments 21

Преодоление технической пропасти

Website development *Programming *
Recovery mode
Sandbox
Сегодня я хочу поговорить о разнице между теми продвинутыми штуками, с которыми мы с вами имеем дело каждый день, и теми, которые мы можем сделать своими руками. О том, откуда эта разница взялась и чем грозит миру. Ну и в конце поста — немного скажу о способах борьбы с ней.

Все мы знаем, что такое iPhone. Мы примерно знаем, кто его придумал и за счёт чего он стал таким популярным. Мы знаем, что пятая версия длиннее, чем 4S, и что у неё выше разрешение экрана. Мы знаем, что в iPhone 4S два ядра вместо одного в iPhone 4 и кучу других деталей. Наконец мы знаем, что проект коммерчески невероятно успешен, и вывел Apple из производителя железа для гиков и профессионалов в мейнстрим, сделав её из самых богатых компаний мира.

Внимание, ключевой вопрос: можем ли мы воспроизвести iPhone? Повторить его. Ничего не выдумывая, взять и сделать точно такой же или хотя бы нечто, отдалённо его напоминающее? Пусть даже самую простую, старую и слабую его модель? Своими руками отлить из металла спаять, собрать, свинтить, скрепить, вырезать, вырастить…
Читать дальше →
Total votes 58: ↑23 and ↓35 -12
Views 5.9K
Comments 121

Международная студенческая школа CSEDays по алгоритмам и теории сложности

Algorithms *Mathematics *
С 29 июня по 1 июля 2013 г. в Екатеринбурге пройдёт международная студенческая школа CSEDays по алгоритмам и теории сложности. Список преподавателей получился очень внушительным, давайте я о них здесь буквально в двух словах расскажу.
Константин Макарычев (Microsoft Research)
Молодой, но уже очень успешный учёный. Специалист по приближённым алгоритмам и Unique games conjecture (гипотезе, из которой выводятся результаты о неприближаемости для многих NP-трудных задач).
Александр Шень (Montpellier Laboratory of Informatics, Robotics, and Microelectronics и ИППИ РАН)
Наверное, не нуждается в представлении. Специалист в области теории сложности.Автор многих замечательных учебников — таких, например, как «Программирование: теоремы и задачи». Также является редактором перевода (и, на самом деле, главным переводчиком) первого издания классического учебника Кормена, Лейзерсона, Ривеста «Алгоритмы: построение и анализ».
Mario Szegedy (Rutgers University)
Дважды лауреат Премии Гёделя, присуждающейся ежегодно за выдающиеся статьи в области theoretical computer science. Первый раз — за вклад в доказательство PCP-теоремы (вероятностно проверяемых доказательств) и её применение к результатам о неприближаемости, второй — за работы в области streaming algorithms.
Ryan Williams (Stanford University)
Тоже молодая звезда. Его недавний результат о том, что класс NEXP не содержится в классе ACC0, называют одним из самых значительных достижений в области схемной сложности за последние 20 лет. И это далеко не единственный его результат. Ещё, например, он показал, как найти максимальный разрез в графе быстрее полного перебора с неожиданным и элегантным использованием быстрого умножения матриц.
В общем, очень-преочень рекомендую.
Читать дальше →
Total votes 54: ↑45 and ↓9 +36
Views 8.4K
Comments 23

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

Programming *Designing and refactoring *
Доброго времени чтения, уважаемые участники habrahabr.ru

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

image

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

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

System Programming *
Доброго времени чтения, уважаемые участники habrahabr.ru

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

image

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

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

Почему программировать так тяжело?

Хекслет corporate blog Programming *
Translation
Привет, Хабр!

В феврале мы публиковали перевод крутой статьи "Почему научиться программировать так чертовски тяжело?", которую теперь показываем новичкам. Да, научиться программировать – это целая история, длинная, с кучей разных этапов, с эмоциональными взлетами и падениями. Мы все через это проходили (или еще проходим – так держать!).

К сожалению, нет такого момента, когда можно встать и заявить, что «я закончил обучение и теперь я программист!». Учиться придется всю жизнь, и всю жизнь вы будете встречать неведомые проблемы, сталкиваться с совершенно непонятными ситуациями и спрашивать «какого хрена?!» даже будучи профессиональным программистом с многолетним стажем.

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




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

Вначале я думал, что программировать – это только указывать компьютеру, что делать, эта часть процесса относительно лёгкая. После двадцати с лишним лет опыта, я действительно пришёл к выводу, что эта часть программирования достаточно лёгкая.
Читать дальше →
Total votes 89: ↑73 and ↓16 +57
Views 131K
Comments 111

Сложно о простоте Go

Website development *Programming *System Programming *Go *
Читая о языке Go, вы часто будете слышать слово “простота”. Но разные люди трактуют это слово по разному, особенно в контексте разработки ПО, а многие, зачастую, даже не осознают, почему это вообще используется, как характеристика языка. В этой статье мы попытаемся концептуально подойти к вопросу “сложности” и “простоты” в разработке ПО, и посмотрим, почему и зачем язык Go поставил простоту как краеугольный камень своего дизайна.


Читать дальше →
Total votes 54: ↑35 and ↓19 +16
Views 26K
Comments 203

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

SQL *Algorithms *Mathematics *


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

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

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

Содержание



Читать дальше →
Total votes 32: ↑32 and ↓0 +32
Views 74K
Comments 8

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

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

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

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

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

TESTutor corporate blog GTD *
Recovery mode
Translation
«Я никогда раньше не рассказывала об этом на публике. Это сложно», — сказала Шерил Сэндберг, имея в виду внезапную смерть своего мужа, произошедшую за 1 год и 13 дней до ее выступления перед выпускниками на церемонии вручения дипломов в Калифорнийском университете в Беркли. Иногда мы не знаем, как справиться с горем. И опыт сильного человека, который преодолел такой кризис, может оказаться по-настоящему важным.

image
Читать дальше →
Total votes 30: ↑15 and ↓15 0
Views 4K
Comments 0

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

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

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

На мой взгляд, Хабр несет во многом образовательную функцию, а значит, для него можно использовать метафору учебного заведения, в котором простые знания преподают на первом курсе, а сложные — на пятом. Но это не значит, что первые или вторые преподавать не нужно. Что вы думаете?
Total votes 67: ↑54 and ↓13 +41
Views 7.4K
Comments 84

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

Programming *System Analysis and Design *Perfect code *
Хочу поделиться очень субъективными мыслями об изменении отношения к сложности за последние лет 50. Возможно, мои наблюдения касаются всей инженерии, но я поостерегусь и буду писать только про разработку ПО.

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

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

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

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

Entertaining tasks Algorithms *Prolog *Mathematics *Studying in IT

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


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


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



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


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


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


Читать дальше →
Total votes 84: ↑84 and ↓0 +84
Views 59K
Comments 47

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

IT systems testing *Programming *Java *IT career
Sandbox
В эпоху растущей популярности онлайн обучения и различных курсов, хочется более подробно осветить тему, а именно подводные камни, всплывающие на пути этого самого обучения.
Недавно решил на более серьезном для новичка уровне освоить Java. Знакомый разработчик с товарищами организовали онлайн курс и предложили мне принять участие.

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

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


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

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

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

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

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

Cloud4Y corporate blog System Analysis and Design *Interfaces *Usability *Reading room
Translation

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


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

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



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



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

Читать дальше →
Total votes 24: ↑23 and ↓1 +22
Views 19K
Comments 14

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

Web design *Website development *CSS *HTML *
Translation
Это выступление состоялась 12 октября 2017 года на конференции Mirror Conf в Браге (Португалия) и ещё раз 9 февраля 2018 года на Awwwards Conference в Берлине.

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

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