All streams
Search
Write a publication
Pull to refresh
75
0
Ришат @rishat_edison

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

Send message

Как заDDoSить целую страну

Reading time5 min
Views32K
Хакер из Британии, положивший интернет всей Либерии, отправился в тюрьму.

image

Даниэль Кэй был нанят для атаки на телекомпанию Lonestar.

Даниэль Кэй признался, что напал на африканскую телефонную компанию — непреднамеренно положив интернет Либерии — в 2016 году.

30-летний британец остается в центре крупного международного расследования сотен случаев кибер-саботажа по всему миру.

Национальное агентство по борьбе с преступностью говорит, что Кэй, возможно, самый значимый киберпреступник, пойманный в Великобритании за все время.

Судья Александр Милн заявил, что Кэй совершил «циничное» финансовое преступление, заключив Кэя в тюрьму на 32 месяца в Королевском суде Блэкфрайарса в Лондоне.

Он добавил:
«Парадоксально, но вы достаточно умны, чтобы понимать, какой силой вы обладали. Но это делает ситуацию только более пугающей, ведь Вы использовали Ваши способности, чтобы совершить эту атаку.»

Кэй плакал навзрыд, когда его арестовывали.
Читать дальше →

Дизайнаука

Reading time13 min
Views17K
«Каждый ученый, безусловно, несет часть профессиональной ответственности за пропаганду общественного понимания науки»

Привлечение дизайна к науке


Дизайн может принести больше пользы науке, чем наука дизайну

image

Упражнение на подготовительном курсе в Ульмской школе дизайна. 1958-59

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

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

Поэтому исторически дизайн намного ближе к изобразительному искусству, чем к науке. Но все не так просто.

Y Combinator: «Поначалу некоторые из крупнейших технологических компаний выглядят как игрушки»

Reading time4 min
Views13K
image

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

Эта тенденция также не вписывается в историю. Standard Oil, US Steel и Boeing были традиционно огромными компаниями, которые были созданы как бизнес. Никто из них не проходил через этап, когда они выглядели игрушками. Однако стартапы могут быть разными в зависимости от ожиданий от них и серьезности, с которой люди к ним подходят.

Ожидания


Если вы дадите людям инструмент и скажете им, что он отлично решит важную проблему, любое несовершенство инструмента вызовет у них гнев. Если вы дадите кому-нибудь игрушку и скажите: «Посмотри, что я сделал! Разве это не здорово? Вот что она умеет» так вы настроите себя и людей на положительную реакцию. Гораздо проще превзойти низкие ожидания нежели высокие, поэтому вы существенно увеличите свои шансы на то, чтобы у вас был счастливый пользователь.

А «счастье» — это именно то, о чем стоит думать, особенно по отношению к первым пользователям. Люди проводят больше времени с чем-то, что делает их счастливыми, особенно когда они этого не ожидают. Счастливые пользователи легко дают обратную связь, потому что знают, что вы можете сделать продукт лучше и сделать их счастливее. Они также, вероятно, расскажут друзьям о новом крутом продукте, который они используют, а это значит, что вы начинаете привлекать пользователей, не погружаясь в темное искусство маркетинга.
Читать дальше →

The Foobar challenge: секретный тест Google для разработчиков

Reading time5 min
Views34K
image

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

«Нет проблем», как вы думаете. Это не ваше первое родео. Таким образом, вы копируете и вставляете дословно сообщение об ошибке в Google и смотрите, что вы получаете.

Неудача.

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

И вот начинается творческий процесс поиска в Google. Вы пробуете несколько комбинаций ошибки + контекст, в котором вы ее используете. Вы пытаетесь указать название используемой вами библиотеки. Вы знаете, что становитесь ближе…
Читать дальше →

Как усилить защищенность веб-приложений при помощи HTTP заголовков

Reading time18 min
Views33K
image

Это третья часть серии по веб-безопасности: вторая часть была «Web Security: введение в HTTP», первая "Как работают браузеры — введение в безопасность веб-приложений".

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

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

Годные туториалы на YouTube

Reading time3 min
Views57K
На YouTube много бесплатных обучающих и курсов и туториалов.

image

Я веду freeCodeCamp, YouTube канал без рекламы. У нас есть полные видеокурсы и учебные пособия по многим популярным языкам программирования и фреймворкам (включая JavaScript, Python, Java, Ruby, C, C ++, Angular и не только).

Есть и другие YouTube каналы с бесплатными уроками по программированию, которые ничуть не хуже, а иногда даже лучше, чем платные.

В этой статье я перечисляю десять YouTube каналов, которые можно посмотреть, чтоб прокачаться в программировании. Расположение каналов — случайное.

Бывает полезно посмотреть одну и ту же тему у разных преподов, так можно глубже разобраться в вопросе.

Есть много отличных каналов, для которых у меня не хватило места в этом списке. Поделитесь своими находками в комментах.

Web Security: введение в HTTP

Reading time11 min
Views43K
HTTP — вещь прекрасная: протокол, который просуществовал более 20 лет без особых изменений.

image

Это вторая часть серии по веб-безопасности: первая часть была «Как работают браузеры».

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

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

При обсуждении HTTP, тем не менее, мы всегда должны различать семантику и техническую реализацию, поскольку это два совершенно разных аспекта работы HTTP.
Читать дальше →

Сделал редизайн — потерял миллиард

Reading time7 min
Views40K
Исследуем эпичные провалы редизайна и мотаем на ус.
image
Менеджер по продукту заходит в отдел дизайна и заказывает редизайн сайта. «Наш сайт выглядит таким старым! У всех наших конкурентов есть более яркие сайты. Давайте перепроектируем его. Кнопки с разноцветными тенями — это будущее!»

Дизайнер: «Хорошо, давайте начнем с тестирования юзабилити».
ПМ: «У вас есть 3 недели, и я хочу, чтобы все цвета были заменены на ярко-розовый, ярко-синий или оранжевый».

Вот как вы убиваете свой коэффициент конверсии. Хотя приведенный выше сценарий может быть диким преувеличением, увидев количество компаний, радикально перерабатывающих свой бренд каждый год, то окажется что это не так. Просто посмотрите на Facebook, который выглядит как новый почти каждый раз, когда я открываю его. На Facebook есть целая группа, состоящая из 3 тысяч участников, которые отслеживают любую деталь, которую изменила компания.
Читать дальше →

Джон Ромеро: рефлексия по DOOM

Reading time5 min
Views14K
image

1993 год выдался более щедрым на чудеса, чем все предыдущие. Это был единственный раз, когда мы поставили перед собой задачу создать игру, которая была бы настолько хорошей, насколько это было возможно в то время. Мы не ставили перед собой такие задачи ни до DOOMa, ни после. Это было идеальное время, чтобы совершить невозможное.

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

Как работают браузеры — введение в безопасность веб-приложений

Reading time9 min
Views69K
Давайте начнем серию статей по безопасности веб-приложений с объяснением того, что делают браузеры и как именно они это делают. Поскольку большинство ваших клиентов будут взаимодействовать с вашим веб-приложением через браузеры, необходимо понимать основы функционирования этих замечательных программ.

image
Chrome и lynx

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

Хоть это и почти преступное упрощение, но пока это все, что нам нужно знать на данный момент.

  • Пользователь вводит адрес в строке ввода браузера.
  • Браузер загружает «документ» по этому URL и отображает его.
Читать дальше →

Еще список проектов, на чем потренироваться

Reading time3 min
Views27K
«Мастер совершает больше ошибок, чем новичок — попыток»

Прошлый список тренировочных проектов набрал 50к прочтений и 600 добавлений в избранное. Вот еще один список интересных проектов для практики, для тех кто хочет добавки.

1. Текстовый редактор


image

Цель текстового редактора — уменьшить усилия пользователей, пытающихся преобразовать их форматирование как валидную разметку HTML. Хороший текстовый редактор позволяет пользователям форматировать текст по-разному.

В какой-то момент каждый использовал текстовый редактор. Так почему бы не создать его самостоятельно?
Читать дальше →

Визуальное программирование — почему это плохая идея

Reading time6 min
Views92K
image

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

Язык визуального программирования — это такой язык, который позволяет программисту создавать программы, манипулируя графическими элементами, а не печатая текстовые команды. Известным примером является Scratch, язык визуального программирования родом из MIT, который используется для обучения детей. Его преимущества заключаются в том, что он делает программирование более доступным для новичков и не-программистов.

В 1990-х годах было очень популярное движение по внедрению визуального программирования в корпоративную среду с помощью так называемых CASE-инструментов, где корпоративные системы можно было бы определять с помощью UML и генерировать [их код] без необходимости в привлечении обученных разработчиков программного обеспечения. Это связано с концепцией «round tripping» («туда и обратно»), где система может быть смоделирована визуально, программный код будет генерироваться из полученных моделей, а любые изменения кода могут быть возвращены обратно в модель. Увы, подобные инструменты так и не смогли выполнить свою миссию, и большинство из экспериментов [по их внедрению] в настоящее время в значительной степени заброшены.
Читать дальше →

Столетний холивар: креативность против юзабилити

Reading time11 min
Views16K
«Я художник, я так вижу!»
«Интернет страдает от отсутствия разумной стандартизации.»

Подключаемся к холивару. А вы за кого?

image

Недавно на Medium было опубликовано мое противоречивое эссе. Почему все веб-сайты выглядят одинаково? (aka «О визуальной усталости паутины»). Эссе «хайпануло». Пока я пишу это, оно получило более 55 000 просмотров, 27 000 просмотров, 11.300 хлопков и 60 комментариев. Я, очевидно, нервничал.

Итак — спасибо за отзывы. Приятно начинать оживленные дебаты. Но мне трудно адресовать каждое замечание индивидуально. Обратная связь, которую я получил, разнообразна, и комментарии на Medium и Twitter довольно противоречивы. Не вдаваясь в подробности, большая часть обсуждения сводится к известному аргументу «творчество против юзабилити».

Мое эссе, безусловно, полно спорных моментов. Я критикую конкретную тенденцию к вебу, управляемому шаблонами, который оставляет очень мало шансов для инновационных и сложных подходов к разработке. Я вообще не критикую юзабилити. Это было бы абсурдом и полным неправильным толкованием моего текста.
Читать дальше →

Делаем адаптивный HTML, добавляя одну строку в CSS

Reading time4 min
Views198K
image

В этой статье я расскажу вам, как использовать CSS Grid для создания супер классной сетки изображений, которая варьирует количество столбцов в зависимости от ширины экрана.

И самое классное: адаптивность будет добавлена с помощью одной строки CSS.
Это означает, что нам не нужно загромождать HTML лишними классами (Col-sm-4, col-md-8) или создавать медиа-запросы для каждого размера экрана.

Рассмотрим все подробнее.
Читать дальше →

Фэйковый дизайн

Reading time4 min
Views19K
image

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

Я еще отчетливо помню, когда я разрабатывал свои собственные обложки для CD известных групп, создавал фейковый сайт для электронной торговли со своими друзьями, воссоздавал известные логотипы в графическом редакторе «Corel Draw», переделывал популярный вебсайт просто для того, чтобы посмотреть, что бы я сделал иначе, и создавал фэйковый логотипы для несуществующих продуктов, которые ещё не существовали.

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

Но все эти фейковые работы оказались чрезвычайно важны для моей карьеры.
Читать дальше →

Взламываем собеседования: по алгоритмам, по архитектуре, поведенческие и прочее

Reading time8 min
Views53K
image

Я только что закончил семь собеседований в компаниях Кремниевой долины. В конечном итоге я принял предложение разработки программного обеспечения в Facebook.

Вот как я готовился к этим собеседованию и чему я научился на этом пути.

Мой многолетний путь в Кремниевую долину


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

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

Я оставил свое место в качестве ведущего инженера iOS в чудесной компании в Мельбурне и я вернулся обратно в мой родной город Перт, чтобы учиться. Тут я буду готовиться к переговорному процессу которое ждет меня в Кремниевой долине. Я знал, что это будет невероятно сложно и тяжело.

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

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

Что я узнал после 1000 code review

Reading time4 min
Views24K
Во время работы в LinkedIn большая часть моей работы составляло код-ревью. Вышло так, что некоторые рекомендации я давал много раз, поэтому я решил составить список, которым поделился с командой.

Вот мои 3 (+1 бонусная) наиболее распространенные рекомендации по код-ревью.

image

Рекомендация 1: Выбрасывайте исключения, если что то идет не так


Зачастую паттерн выглядит так:

List<String> getSearchResults(...) {
  try {
    List<String> results = // make REST call to search service
    return results;
  } catch (RemoteInvocationException e) {
    return Collections.emptyList();
  }
}


Этот паттерн вызвал перебои в одном из мобильных приложений, над которыми я работал. Поиск на стороне сервера, который мы использовали, начал выбрасывать исключения. Оказалось, на серверном API приложения был некоторый код, похожий на приведенный выше. Поэтому приложение получало 200 ответ сервера и с радостью показывало пустой список для каждого поискового запроса.
Читать дальше →

8 учебных проектов

Reading time3 min
Views150K
«Мастер совершает больше ошибок, чем новичок — попыток»

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

Проект 1. Клон Trello


image


Клон Trello от Indrek Lasn .

Что вы освоите:

  • Организация маршрутов обработки запросов (Routing).
  • Drag and drop.
  • Как создавать новые объекты (доски, списки, карточки).
  • Обработка и проверка входных данных.
  • Со стороны клиента: как использовать локальное хранилище, как сохранять данные в локальном хранилище, как читать данные из локального хранилища.
  • Со стороны сервера: как использовать базы данных, как сохранять данных в базе, как читать данные из базы.

Тут пример репозитория, сделанного на React+Redux.
Читать дальше →

Эволюция «img»: Gif без формата GIF

Reading time11 min
Views31K
image

tl;dr

  • GIF — это круто, но в плане качества и производительности они ужасны.
  • Замена GIF на video хорошая идея, но есть недостатки: они не подгружаются предварительно, используют range запросы.
  • Сегодня вы можете использовать img src =".mp4" в Safari Technology Preview.
  • Предварительные результаты показывают, что mp4s в тегах отображаются в 20 раз быстрее и декодируются в 7 раз быстрее, чем GIF-эквивалент — в дополнение к тому, что размер файла равен 1/14!
  • Фоновые CSS-видео и адаптивные видео могут стать клевой фишкой.
  • Наконец, синемаграфы будут без недостатков GIF.
  • Теперь мы ждем, когда другие браузеры пойдут следом: этот пост весит — 46 МБ на Chrome, и всего 2 МБ в Safari TP.

Особая благодарность: Эрику Портису, Джеку Ноблу, Джону Дэвису, Дорону Шерману и Йоаву Вайсу.
Читать дальше →

Как быстро спроектировать сайт с помощью CSS Grid

Reading time3 min
Views61K
image

Модуль CSS Grid — это фантастический инструмент для создания макетов веб-сайтов. Он позволяет вам экспериментировать с макетами быстрее, чем любой другой инструмент, которые я пробовал.

В этой статье я научу вас, как это сделать.

Во-первых, я объясню HTML и CSS, которые нам нужны для этой задачи, которую я разбил на четыре части. Как только вы с этим разберетесь, мы перейдем к экспериментам с макетами.

Если вы совершенно не знакомы с CSS Grid, вам может понадобиться просмотреть мою предыдущую статью Учим CSS Grid за 5 минут.
Читать дальше →

Information

Rating
Does not participate
Location
Россия
Registered
Activity