Pull to refresh
41
2
Джон Петров @Zibx

User

Send message

Люди и творчество

Reading time6 min
Views9.8K
image

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

Жизнь зачастую ущемляет или опровергает юношеские ожидания.

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


После жизнерадостного вступления перехожу к делу.
По моим многолетним наблюдениям, люди в отношении своего творческого потенциала делятся на три выраженные группы:
  1. не склонные к творчеству,
  2. находящие на промежуточной стадии от человека нетворческого к творческому,
  3. творцы.

Рассмотрим творческие возможности и жизненную перспективу представителей названных групп на примере лиц с техническим образованием – айтишников.
Читать дальше →
Total votes 41: ↑15 and ↓26-11
Comments144

История Искусственного Интеллекта, часть 2. Нейросетевой ИИ — неизбежно или невозможно?

Reading time6 min
Views9.8K
Когда я еще только задумывал писать эту статью, я знал о нейросетях только то, что они вроде как копируют процесс мышления нашего мозга. Я и не подозревал, как я тогда ошибался.
В то время, когда кибернетики еще только начинали играть в свои игрушки, другие более серьезные ученые, работали над более серьезной проблемой. На основании нейрофизиологических данных о строении нейронов, клеток нашего мозга, они пытались воссоздать их структуру. Это было за несколько лет, до того самого семинара, где впервые заговорили об ИИ.
Читать дальше →
Total votes 32: ↑28 and ↓4+24
Comments84

Василий и ночь

Reading time5 min
Views942
Июль был в разгаре, и ничто не предвещало беды, кроме потускневшей и сильно дымчатой луны. Василий сначала даже не обратил на неё внимания, пока его за левое ухо не укусил комар. Грязно выругавшись, он продолжил свой трудный путь. Путь надо заметить пролегал через тернии кустов, заворачивал на кладбище, пересекал овраг, о котором ходило много легенд среди местной детворы и старушек преклонного возраста. Тернии Василий преодолел с прыткостью Сусанина, алкоголь в крови давал о себе знать. Упав на камни он только припомнил пару эмферных божеств и пошел дальше. По пути ещё пару раз стукнувшись лбом о земь, он снова вспоминал о магических существах, но то всё присказка. Ещё издали заприметив огни круглосуточного ГЛАВСЕЛЬСПИРТТОРГА, Василий прибавил в темпе.
Читать дальше →
Total votes 5: ↑2 and ↓3-1
Comments5

Полезные книги для программиста в геймдеве

Reading time2 min
Views101K
Привет, Хабр!
Ничего не писал со времен своей первой статьи, решил, что пора это исправить.

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

Ниже я даю рецензии на книжки, которые считаю очень полезными в различных разделах computer science, которые используются в геймдеве. Я намеренно опускаю книги по C++ и алгоритмам: мне кажется, эта тема уже настолько изучена и освещена, что больше про нее не стоит рассказывать.

Я старался покрыть максимальное количество разных топиков, особенно тех, что спрашивают на собеседованиях. Я старался воздерживаться от domain-specific литературы: профессионалы и так знают. Все картинки содержат ссылки на амазон.

А какие книжки нравятся вам?
Также в комментах можете писать, на какие темы вам были бы интересны посты.

Читать дальше →
Total votes 67: ↑62 and ↓5+57
Comments12

Атом — минимальный кирпичик реактивного приложения

Reading time15 min
Views46K
Здравствуйте, меня зовут Дмитрий Карловский и я… клиент-сайд разработчик. За плечами у меня 8 лет поддержки самых различных сайтов и веб-приложений: от никому не известных интернет-магазинов, до таких гигантов как Яндекс. И всё это время я не только фигачу в продакшн, но и точу топор, чтобы быть на самом острие технологий. А теперь, когда вы знаете, что я не просто хрен с горы, позвольте рассказать вам про один архитектурный приём, которым я пользуюсь последний год.

Данная статья знакомит читателя с абстракцией «атом», предназначенной для автоматизации слежения за зависимостями между переменными и эффективного обновления их значений. Атомы могут быть реализованы на любом языке, но примеры в статье будут на javascript.

Осторожно: чтение может вызвать вывих мозга, приступ холивара, а также бессонные ночи рефакторинга.
Читать дальше →
Total votes 55: ↑49 and ↓6+43
Comments36

Линейный криптоанализ для чайников

Reading time7 min
Views77K
image

Привет, %username%!
Многим известно, что стандартом по умолчанию в области симметричного шифрования долгое время считался алгоритм DES. Первая успешная атака на этот неубиваемый алгоритм была опубликована в 1993 году, спустя 16 лет после принятия его в качестве стандарта. Метод, который автор назвал линейным криптоанализом, при наличии 247 пар открытых/зашифрованных текстов, позволяет вскрыть секретный ключ шифра DES за 243 операций.
Под катом я попытаюсь кратко изложить основные моменты этой атаки.
Читать дальше →
Total votes 71: ↑67 and ↓4+63
Comments9

Node.js + JQuery Ajax. Загрузка файлов на сервер

Reading time3 min
Views38K

Введение


В данные статье я хочу вам рассказать о моем способе загрузки файлов на сервер Node.js с помощью JQuery Ajax. Да, я понимаю что есть уже и другие решения, например JQuery File Upload, но все таки иногда хочется сделать что-то уже существующее, для того чтобы понять как это все устроено. Данное решение является учебным примером, все замечания по поводу кода или предложения по его улучшению оставляйте в комментариях.

Что будем использовать


  1. Bootstrap
  2. JQuery
  3. Модуль для Node.js Multiparty

Читать дальше →
Total votes 19: ↑9 and ↓10-1
Comments3

Написание простого блога на SailsJS: наглядная практика для начинающих (Часть 1)

Reading time10 min
Views22K

Синопсис


Эта статья предназначена для начинающих свой путь в разработку на NodeJS, и знакомит новичка с разработкой на этой платформе с использованием фреймворка SailsJS. В статье, будет рассматриваться процесс разработки простого блога, с сопутствующими пояснительными материалами, цель которых описать начальные навыки работы с этим фреймворком — который безусловно является отличной основой для любых проектов на NodeJS. Для лучшего усвоения материала желательно иметь основные представления о языке программирования Javascript, и его серверной реализации NodeJS, а также как минимум первичное представление о схеме MVC которая является основой Sails. Для лучшего понимания фреймворка вы можете почитать документацию на официальном сайте Sails, а также посмотреть касты описывающие работу с Sails достаточно подробно. При написании статьи я старался написать материал как можно более проще и понятнее, опытным пользователям эта статья не расскажет ничего нового, и некоторые приемы могут показаться неэффективными.
Читать дальше →
Total votes 20: ↑17 and ↓3+14
Comments6

Вольная рецензия на книгу Криса Гильбо «Стартап за 100 долларов»

Reading time3 min
Views40K

Странно, но поиск по хабру не дал никакого упоминания о книге Криса Гильбо — Стартап за $100 (в оригинале: Guillebeau Chris: The $100 Startup. Reinvent the Way You Make a Living, DO What You Love, and Create a New Future).
Впрочем, это можно объяснить стремлением большинства хабражителей перестать работать на кого-то и замутить наикрутейший стартап, который вскоре превратится в мегакорпорацию типа Google, Facebook, Apple, ну или хотя-бы Microsoft.
Да, на меньшее никто не соглашается, и в ожидании когда инвесторы начнут давать миллионы на очередную гениальную идею, мы продолжаем ездить на работу, уставать от унылых совещаний и разгребать чужие дедлайны.

Книга Криса Гильбо, совсем не об этом.
Читать дальше →
Total votes 34: ↑18 and ↓16+2
Comments15

Diff-алгоритм React

Reading time5 min
Views27K
React — это JavaScript библиотека для создания пользовательских интерфейсов от Facebook. Она была разработана «с нуля», с упором на производительность. В этой статье я расскажу вам о diff-алгоритме и механизме рендеринга, который использует React, что позволит вам оптимизировать ваши приложения.

Diff Алгоритм


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

var MyComponent = React.createClass({
  render: function() {
    if (this.props.first) {
      return <div className="first"><span>A Span</span></div>;
    } else {
      return <div className="second"><p>A Paragraph</p></div>;
    }
  }
});

В любой момент времени вы можете описать, как будет выглядеть ваш UI. Важно понимать, что результат рендеринга не является фактическим DOM деревом. Это всего лишь легковесные JS объекты, которые мы называем «виртуальный DOM».
Читать дальше →
Total votes 49: ↑48 and ↓1+47
Comments4

Паттерны для новичков: MVC vs MVP vs MVVM

Reading time6 min
Views786K
Добрый день, уважаемые коллеги. В этой статье я бы хотел рассказать о своем аналитическом понимании различий паттернов MVC, MVP и MVVM. Написать эту статью меня побудило желание разобраться в современных подходах при разработке крупного программного обеспечения и соответствующих архитектурных особенностях. На текущем этапе своей карьерной лестницы я не являюсь непосредственным разработчиком, поэтому статья может содержать ошибки, неточности и недопонимание. Заинтригованы, как аналитики видят, что делают программисты и архитекторы? Тогда добро пожаловать под кат.
Читать дальше →
Total votes 45: ↑40 and ↓5+35
Comments36

Дифференциальный криптоанализ для чайников

Reading time9 min
Views45K
image

Шифр FEAL обладает таким же уровнем стойкости что и DES. Более того, увеличенная длина ключа (64 бита по сравнению с 56 битами в DES) затрудняет возможность перебора. Шифр FEAL обладает хорошим распределением шифротекстов, близким к случайному. И это тоже говорит в пользу FEAL по сравнению с DES.
Это краткое содержание спецификации алгоритма шифрования FEAL, опубликованного в 1987 году.

Ничто не вечно под луной. В данном топике я расскажу как при наличии всего 40 пар открытых-закрытых текстов получить полный ключ FEAL4 за несколько минут.
Читать дальше →
Total votes 64: ↑63 and ↓1+62
Comments14

Заржавели мозги — перейди через мост. The Bridge by Ty Tailor

Reading time3 min
Views49K
На Хабре полно математиков и физиков, которым будет интересно узнать об одной любопытной компьютерной игре «The Bridge». Она не вот чтобы прям свежая, я не ее автор и в тематику хабра она с трудом попадает, но я думаю что для этой инди-игры здесь найдутся почитатели. Уже минут 30 как я завершил прохождение зеркальной части игры — до сих пор под впечатлением, и хотел бы чтобы еще кто-то кроме меня остался доволен собой, математикой, Ньютоном и Эшером.

image

Читать дальше →
Total votes 54: ↑46 and ↓8+38
Comments25

Трюки с CSS-анимациями: мгновенные изменения, отрицательные задержки, анимация transform-origin и другое

Reading time14 min
Views221K
Применяя CSS-анимации в повседневной работе, я постепенно выработал привычку экспериментировать с ними в свободное время. Постоянно пытаясь реализовать очередную интересную задумку с использованием как можно меньшего числа элементов HTML, я обнаружил немало способов сделать с помощью CSS довольно неочевидные вещи. В этой статье я хочу поделиться некоторыми из них.

Быстрое изменение состояния посреди анимации

Обычно анимации используются для того, чтобы плавно менять свойства элементов со временем. Однако изменения могут также быть практически мгновенными. Для этого надо задать два ключевых кадра с очень маленьким интервалом, например в 0.001%:

@keyframes toggleOpacity {
  50% { opacity: 1; } /* Turn off */
  50.001% { opacity: 0.4; }

  /* Keep off state for a short period */

  52.999% { opacity: 0.4; } /* Turn back on */
  53% { opacity: 1; }
}

Вот как я использовал этот приём для имитации мигающей неоновой вывески с помощью прозрачности и свойства text-shadow:


Читать дальше →
Total votes 213: ↑211 and ↓2+209
Comments23

Вы и ваша работа *

Reading time40 min
Views815K
Длинный материал. Время чтения – около 40 минут.

image

Доктор Ричард Хэмминг, профессор морской школы Монтерея в штате Калифорния и отставной учёный Bell Labs, прочёл 7 марта 1986 года очень интересную и стимулирующую лекцию «Вы и ваши исследования» переполненной аудитории примерно из 200 сотрудников и гостей Bellcore на семинаре в серии коллоквиумов в Bell Communications Research. Эта лекция описывает наблюдения Хэмминга в части вопроса «Почему так мало учёных делают значительный вклад в науку и так многие оказываются в долгосрочной перспективе забыты?». В течение своей более чем сорокалетней карьеры, тридцать лет которой прошли в Bell Laboratories, он сделал ряд прямых наблюдений, задавал учёным очень острые вопросы о том, что, как, откуда, почему они делали и что они делали, изучал жизни великих учёных и великие достижения, и вёл интроспекцию и изучал теории креативности. Эта лекция о том, что он узнал о свойствах отдельных учёных, их способностях, чертах, привычках работы, мироощущении и философии.
Читать дальше →
Total votes 239: ↑229 and ↓10+219
Comments127

Совершеннолетие JavaScript

Reading time1 min
Views19K
image Доброго времени суток, уважаемые хабравчане. На этой неделе мы с вами упустили одно событие. 4 декабря прошло ровно 18 лет с публикации пресс-релиза от Netscape Communications Corporation и Sun Microsystems о появлении JavaSript «открытого, кросс-платформенного, объектно-ориентированного скриптового языка для корпоративных сетей и интернета». Подзаголовок документа: «28 ведущих в данной отрасли компаний одобрили JavaScript в качестве дополнения к JAVA для простой разработки онлайн приложений».

Язык был разработан Брендоном Айком за 10 дней. Самые интересные факты о его труде собраны в статье «История создания Javascript» хабраюзера kmike.

Несколько значимых событий связанных с JavaScript
Total votes 71: ↑58 and ↓13+45
Comments97

Серьезное проектирование серьезного магазина. Часть 1. Исследуем и продумываем функционал

Reading time19 min
Views128K
Не так давно я писал статью про проектирование больших сайтов на примере социальной сети со схожим названием: «Серьезное проектирование серьезных сайтов». Сегодня я хочу поговорить про одну из основных сфер нашей деятельности – электронную коммерции, а именно про проектирование интернет-магазинов.

Это цикл статей больше специалистов, значительно более углубленно, чем все мои прошлые статье в этой области. В статье я расскажу про крупнейшие интернет-магазины США, Китая, России и Украины, расскажу как маркетинг влияет на проектирование, покажу подробный Mind Map гипермаркета, опишу 57 основных модулей интернет-магазинов для внешней (покупательской) части и более 50 модулей для внутренней части (административной), покажу интерфейсы магазинов и еще много полезного.

Интернет-магазинами и технологиями продаж в Интернете лично я занимаюсь с далекого 2005 года. За годы работы мое мнение по этому вопросу сильно эволюционировало. Когда-то я думал, что интернет-магазин – это довольно простой сайт с точки зрения разработчика или маркетолога, мне казалось, что все магазины похожи друг на друга и достаточно один раз получить пул знаний, который потом можно будет использовать многие годы без особых изменений, ведь интернете-магазин – это только тип сайта для продажи товаров и на первый взгляд нет ничего сложного в том, чтобы разработать очередной магазин со схожим функционалом, но с другими товарами. На самом деле все значительно сложнее и чем больше я узнаю про интернет-магазины, тем больше понимаю, что в этом вопросе невозможно знать все, даже одна мелочь в интерфейсе может изменить прибыль магазина на тысячи долларов, а для больших игроков эта «мелочь» может стоить миллионы. Именно эта особенность электронной коммерции делает требования к сайтам и специалистам, которые их делают, безумно высокими. Чуть ниже я покажу много интересных цифр, которые докажут мое утверждение.

Ранее я уже писал статью про технологию проектирования больших сайтов, которая, кстати, имела очень большую популярность в русскоязычном и англоязычном сегменте Интернета: «Серьезное проектирование серьезных сайтов». Проектирование интернет-магазина хоть и имеет сходную последовательность действий, описанную мной в прошлой статье, но сама технология все таки сильно отличается, поэтому давайте рассмотрим это в мельчайших подробностях. По ходу статьи я буду ссылаться на свою прошлую, чтобы не повторяться, а в этой сделаю упор именно на различия.
Mind Map
Читать дальше →
Total votes 88: ↑73 and ↓15+58
Comments56

Направленное освещение и затенение в 2D-пространстве

Reading time8 min
Views48K

Добрый день, Хабравчане!
Хотелось бы рассказать об одном из способов отрисовки освещения и затенения в 2D-пространстве с учетом геометрии сцены. Мне очень нравится реализация освещения в Gish и Super MeatBoy, хотя в митбое его можно разглядеть только на динамичных уровнях с разрушающимися или перемещающимися платформами, а в Гише оно повсеместно. Освещение в таких играх мне кажется таким «тёплым», ламповым, что непременно хотелось нечто подобное реализовать самому. И вот, что из этого вышло.
Читать дальше →
Total votes 95: ↑94 and ↓1+93
Comments39

Information

Rating
1,054-th
Registered
Activity