Рубрика «задачки»

Как загадочный разработчик снизил затраты на AWS на 90%, а потом исчез - 1

Недавно я завершил аудит своего SaaS-клиента. Его история достойна рассказа. Это история о жадности, лжи и красоте хакинга.

Это история о том, как благодаря мой клиент снизил свои ежемесячные траты на AWS на 90 тысяч долларов благодаря таинственному разработчику, который исчез, как только работа была сделана.

Когда спустя полгода затраты на AWS снова взлетели примерно до 120 тысяч в месяц, этот клиент попросил меня разобраться, что же произошло на самом деле.

И разгадка оказалась совершенно сумасшедшей!
Читать полностью »

Эта изготовленная примерно в 1800-1600 годах до нашей эры глиняная табличка свидетельствует, что древние вавилоняне смогли аппроксимировать квадратный корень двух с точностью 99,9999%.

Как им это удалось?

Как вавилонянам удалось вычислить √2 с точностью до шести знаков после запятой? - 1

Читать полностью »

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

Довольно простые решения на сложение, деление и возведение в степень есть для всех чисел, кроме 7.

С 7 же нужно выйти за рамки привычного (помните головоломку про соединение точек и выход из зоны квадрата). По решению задачи можно многое узнать о собеседнике.

Читать полностью »
Как Гомер Симпсон почти решил уравнение Великой теоремы Ферма - 1

Казалось бы, что может быть общего между одной из самых популярных математических теорем, Гомером Симпсоном и Дональдом Кнутом? Как и многие другие интересные идеи и задачи, их объединяет математика. Иногда даже кажется, что почти всё в этом мире сводится к математике и программированию.

Читать полностью »

Эксперименты

У меня зазвонил телефон.

— Алло, это Джаред.

— Здравствуйте. Я звоню вам насчёт телефонного собеседования в Гигантской Поисковой и Рекламной Компании [очевидно, это Google — прим. пер].

— Да! С нетерпением ждал вашего звонка!

— Хорошо. Можете написать алгоритм для поиска K-го самого большого значения в двоичном дереве?

Я замолкаю. Полностью отключаюсь. Никогда не попадал в такую ситуацию. Пустой документ Google смотрит на меня, а курсор мигает как в замедленной съёмке. Я кое-что набрасываю в качестве первого прохода.

— Можете написать тестовый пример для этого алгоритма?
Читать полностью »

Два года назад я вызвался постоять на стенде нашей компании JetBrains на последней конференции JBreak в Новосибирске. Перед конференцией мне спустили сверху вот такие карточки:

Кто умнее чем IDEA? - 1

И сказали, мол, ну раздай каким-нибудь людям на конференции на своё усмотрение. Я запаниковал. Как же я буду людей-то выбирать?

Тогда я довольно плотно работал с анализом потока данных в статическом анализаторе IntelliJ IDEA для Java. Во-первых, я обкатывал новые фичи, проверяя код самой IDE. Во-вторых, разгребал входящие баг-репорты. Иногда IDEA находила удивительные проблемы, и мне приходилось долго разбираться, чтобы вообще понять, правильное ли предупреждение она выдаёт или это баг.

Читать полностью »

Человек остается начинающим в течение 1000 дней. Он находит истину после 10000 дней практики.

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

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

(предыдущие списки заданий для тренировки: 1) 8 учебных проектов 2) Еще список проектов, на чем потренироваться)

Проект 1: Pacman

image

Создайте свою версию Pacman. Это отличный способ получить представление о том, как разрабатываются игры, понять основы. Используйте JavaScript-фреймворк, React или Vue.

Вы узнаете:

  • Как передвигаются элементы
  • Как определить какие клавиши нажимать
  • Как определить момент столкновения
  • Вы можете не останавливаться на достигнутом и добавить управление движением призраков

Пример этого проекта вы найдете в репозитории GitHub

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

Читать полностью »

Сложность простоты - 1

Как я писал в предисловии предыдущей статьи, я нахожусь в поисках языка, в котором я мог бы писать поменьше, а безопасности иметь побольше. Моим основным языком программирования всегда был C#, поэтому я решил попробовать два языка, симметрично отличающиеся от него по шкале сложности, про которые до этого момента приходилось только слышать, а вот писать не довелось: Haskell и Go. Один язык стал известен высказыванием "Avoid success at all costs"*, другой же, по моему скромному мнению, является полной его противоположенностью. В итоге, хотелось понять, что же окажется лучше: умышленная простота или умышленная строгость?

Я решил написать решение одной задачки, и посмотреть, насколько это просто на обоих языках, какая у них кривая обучения для разработчика с опытом, сколько всего надо изучить для этого и насколько идиоматичным получается "новичковый" код в одном и другом случае. Дополнительно хотелось понять, сколько в итоге мне придется заплатить за ублажание хаскеллевского компилятора и сколько времени сэкономит знаменитое удобство горутин. Я старался быть настолько непредвзятым, насколько это возможно, а субъективное мнение приведу в конце статьи. Итоговые результаты меня весьма удивили, поэтому я решил, чтоам будет интересно почитать про такое сравнение.

Читать полностью »

19 и 20 октября в Петербурге прошла конференция Joker — лучшее мероприятие для тех, кто любит то же самое, что и мы: крутые доклады, общение с продвинутыми Java-экспертами и задачки. Не будем нахваливать третий выпуск задач от GridGain (1, 2), лучше процитируем отзывы участников:

«Их задачи показались глупыми и не относящимися к ИТ»
«Отличные задачи, как всегда (хоть ни одной и не осилил)»
«Наркомания в задачах»
«Топовые задачи, как всегда»

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

Выход из колеса Сансары, экстремизм и немного зелёнки — разбор задач из буклета GridGain на конференции Joker 2018 - 1
Читать полностью »

Недавно в Самаре прошли международные открытые соревнования по информационной безопасности VolgaCTF. Владимир Дрюков, директор центра мониторинга и реагирования на кибератаки Solar JSOC, рассказал участникам соревнований о трех реальных атаках и спросил, как можно было их выявить. Проверьте, сможете ли вы ответить правильно.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js