Search
Write a publication
Pull to refresh
0
0
Александр Бобров @Syra

User

Send message

PHP: Правильный путь

Reading time1 min
Views176K

На днях я наткнулся на замечательную карманную книгу для PHP разработчиков «PHP: The Right Way». Скорее, она будет более полезна новичкам. Чем именно? По интернету разбросано огромное количество материла по PHP, но многое уже устарело или не приводит к написанию качественного кода. В этой книге присутствуют основные актуальные сведения с ссылками на проверенные ресурсы. На самом деле, сначала я хотел перевести ее, форкнуть репозиторий, благо лицензия это позволяет. Но оказалось, что перевод уже есть. Нет только русской книги в форматах для электронных книг, но так как используется Markdown в русском форке, то это не составит труда.
Читать дальше →

Вероятность в алгоритмах. Лекция Яндекса

Reading time4 min
Views31K
Многие алгоритмы являются детерминированными – то есть последовательность их действий зависит лишь от входных данных и программы. Но что будет, если разрешить алгоритму по ходу работы использовать случайные числа?

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


Конспект лекции

Анализ популярных теорий игровой зависимости

Reading time15 min
Views89K
Просмотрев пару другую статей на этом сайте по игровой зависимости, я решил их показать специалисту с 30 летним практическим опытом лечения разного рода зависимостей психотерапевту наркологу А.Г. Данилину.
Из его беседы мы решили подготовить статью.




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

В качестве лечения предлагается запрет на компьютерные игры и «заместительная терапия» психотропными препаратами.
Второй взгляд – трактовка зависимости от виртуальных игр через примитивную биологическую систему. Создатели компьютерных игр… играют на человеческих слабостях и формируют у игрока рефлекторное поведение. В этой логике геймер – нечто вроде «собаки Павлова» за компьютером.
Читать дальше →

Web Components — будущее Web

Reading time12 min
Views116K
Спустя какое время стало ясно, что основная идея Prototype вошла в противоречие с миром. Создатели браузеров ответили на возрождение Javascript добавлением новых API, многие из которых конфликтовали с реализацией Prototype.

— Sam Stephenson, создатель Prototype.js, You Are Not Your Code

Создатели браузеров поступают гармонично. Решение о новых API принимают с учётом текущих трендов в opensource сообществах. Так prototype.js способствовал появлению Array.prototype.forEach(), map() и т.д., jquery вдохновил разработчиков на HTMLElement.prototype.querySelector() и querySelectorAll().

Код на стороне клиента становится сложнее и объёмнее. Появляются многочисленные фреймворки, которые помогают держать этот хаос под контролем. Backbone, ember, angular и другие создали, чтобы помочь писать чистый, модульный код. Фреймворки уровня приложения — это тренд. Его дух присутствует в JS среде уже какое-то время. Не удивительно, что создатели браузеров решили обратить на него внимание.
Читать дальше →

Написание диссертации. Инструкция к применению. Взгляд с другой стороны баррикад

Reading time12 min
Views205K
image
На Хабре регулярно появляются статьи, ориентированные на помощь при написании и защите диссертации (например, здесь и здесь). Лично мне в свое время помогли шуточные заповеди диссертанта, коим уже не один десяток лет (вариант, который впервые увидел я, был еще рукописным, причем потрепанным не хуже древнерусских летописей).

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

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

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

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

Два и более рабочих места на одном компьютере — бесплатное решение

Reading time12 min
Views105K

В данной статье рассматривается идея и практическое руководство по создания многопользовательской рабочей станции (multiseat) с использованием виртуализации KVM, с возможностью удаленного управления через libvirt. С помощью этого руководства возможно создать два и более рабочих мест как в офисе, так и дома, которым может потребоваться возможность полного использования графической подсистемы компьютера. Причем можно на одном системном блоке реализовать одновременно работу различных операционных систем Windows, Linux, Mac OS X, остальное по вкусу.
Читать дальше →

Распараллеливаем процессы для ускорения вычислений и выполнения заданий в Linux

Reading time11 min
Views82K


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

Шпаргалка по шаблонам проектирования

Reading time2 min
Views1.5M

Перевод pdf файла с сайта http://www.mcdonaldland.info/ с описанием 23-х шаблонов проектирования GOF. Каждый пункт содержит [очень] короткое описание паттерна и UML-диаграмму. Сама шпаргалка доступна в pdf, в виде двух png файлов (как в оригинале), и в виде 23-х отдельных частей изображений. Для самых нетерпеливых — все файлы в конце статьи.

Под катом — много картинок.

Читать дальше →

Как статистика помогает делать Яндекс.Пробки лучше

Reading time4 min
Views26K
Как устроены Яндекс.Пробки? Откуда берутся исходные данные о дорожном движении? Как они превращаются в карту пробок? Всегда ли информация о пробках достоверна? Как это проверить? А главное, как сделать данные о пробках более точными? Для всего этого в Пробках используется статистика: наука одновременно сильная и коварная. В этой лекции аналитик Яндекс.Пробок Леонид Медников рассказывает студентам, как отличать достоверные результаты от случайных, и как статистика применяется в разных практических задачах.




Преобразование равномерно распределенной случайной величины в нормально распределенную

Reading time6 min
Views131K
Этот вопрос уже давно подробно изучен, и наиболее широкое распространение получил метод полярных координат, предложенный Джорджем Боксом, Мервином Мюллером и Джорджем Марсальей в 1958 году. Данный метод позволяет получить пару независимых нормально распределенных случайных величин с математическим ожиданием 0 и дисперсией 1 следующим образом:
алгоритм марсалья marsaglia
где Z0 и Z1 — искомые значения, s = u2 + v2, а u и v — равномерно распределенные на отрезке (-1, 1) случайные величины, подобранные таким образом, чтобы выполнялось условие 0 < s < 1.
Многие используют эти формулы, даже не задумываясь, а многие даже и не подозревают об их существовании, так как пользуются готовыми реализациями. Но есть люди, у которых возникают вопросы: «Откуда взялась эта формула? И почему получается сразу пара величин?». Далее я постараюсь дать наглядный ответ на эти вопросы.

Читать дальше →

Архитектура убеждения, 7 механизмов манипуляции пользователями

Reading time6 min
Views46K
image

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

Например, Маша, считает, что вечно опаздывающий на работу Вова — страшно неорганизованный человек, который не умеет управлять своим временем.
При этом Вова опаздывает на работу, потому что вынужден с утра умыть, накормить, одеть маленькую дочку и отвести ее в садик. Сама Маша приходит почти вовремя только на работу, во всех иных случаях она всегда опаздывает. Маша винит в своих опозданиях пробки на дорогах, не сработавший будильник, родственников, которые ее отвлекали.
95% бизнесменов терпят крах в первые 1-2,5 года, считая, что знают своего потребителя и могут заставить его купить свой товар. Мысль: «Я знаю, как думает мой покупатель», — главная ошибка начинающего бизнесмена.
На самом деле сам покупатель не знает, как он думает.
Именно поэтому большие компании содержат несколько маркетологов для реализации своей продукции.

Интернет-маркетологи, познавшие особенности когнитивного восприятия, выработали несколько механизмов, способных «включить» скрытые механизмы поведения.

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

Технологии в ролевых играх. Часть 1. Технология и магия

Reading time8 min
Views45K
Технологии в ролевых играх. Часть 2. Технология и техноген
Технологии в ролевых играх. Часть 3. Технология в антураже и мастеринге

Предисловие


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

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

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

В последнее время всё чаще можно наблюдать на ролевых играх разной степени масштабности применение современных технологий для компенсации этих ограничений, ведь как сказал 40 лет назад английский писатель Артур Кларк: «Любая достаточно развитая технология неотличима от магии».

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

Почему Хабр? Во-первых, на Хабре довольно много представителей той социальной группы что называет себя «ролевиками». Для кого-то описанные вещи будут известны, кто-то узнает для себя что-то новое и интересное. Кто-то, быть может, откроет для себя мир ролевых игр живого действия. Во-вторых, Хабр — ресурс в первую очередь технический. А технологии — магия нашего мира.

Погрузиться в волшебный мир технологий

Командная работа над интерфейсами

Reading time8 min
Views17K
За последние шесть лет, пока я строил команду по проектированию интерфейсов, начав с самостоятельной деятельности и закончив командой из 11 человек, я видел, насколько сильно дизайнерские исследования могут повлиять на развитие продукта. Раньше у нас было мало времени на опрос клиентов и тестирование удобства. В основном мы действовали спонтанно: слушали, что говорит техподдержка и переделывали всё на ходу.



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

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

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

А началось все с личного кризиса.
Читать дальше →

Не все комментарии одинаково полезны

Reading time7 min
Views34K
Все животные равны, но некоторые животные равнее других. Скотный Двор, Джордж Оруэлл (оригинал).

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

(картинка сделана на основе хабра-статьи «Список скептика»).

Под катом рассказ, какие бывают сортировки комментариев, где они применяются и краткое рассуждение о том, как вообще можно сортировать комментарии (и зачем).
Читать дальше →

Сетевое программирование для разработчиков игр. Часть 2: прием и передача пакетов данных

Reading time9 min
Views108K
От переводчика: Это перевод второй статьи из цикла «Networking for game programmers». Мне очень нравится весь цикл статей, плюс всегда хотелось попробовать себя в качестве переводчика. Возможно, опытным разработчикам статья покажется слишком очевидной, но, как мне кажется, польза от нее в любом случае будет.
Первая статья — http://habrahabr.ru/post/209144/



Прием и передача пакетов данных


Введение

Привет, меня зовут Гленн Фидлер и я приветствую вас в своей второй статье из цикла “Сетевое программирование для разработчиков игр”.


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

А сейчас я собираюсь рассказать вам, как на практике использовать UDP для отправки и приема пакетов.

BSD сокеты

В большинстве современных ОС имеется какая-нибудь реализация сокетов, основанная на BSD сокетах (сокетах Беркли).

Сокеты BSD оперируют простыми функциями, такими, как “socket”, “bind”, “sendto” и “recvfrom”. Конечно, вы можете обращаться к этим функциями напрямую, но в таком случае ваш код будет зависим от платформы, так как их реализации в разных ОС могут немного отличаться.

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

Как научить программировать гуманитария

Reading time15 min
Views120K
Приветствую всех!

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

image

Мой опыт, на основании которого я сделал описываемые выводы, возник из примерно 6-летней в общей сумме работы с людьми, желавшими или думавшими, что желают, обучиться программированию. В процессе работы велись как групповые, так и индивидуальные занятия с обучающимися (возрастом от 16 до 26 лет), величина групп была в среднем около 11 человек, по несколько групп параллельно.
Читать дальше →

Трюки с 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:


Читать дальше →

Как математика помогает Яндексу зарабатывать?

Reading time4 min
Views50K
Яндекс зарабатывает сотни миллионов долларов в год, хотя наш поиск — бесплатный. Основной доход мы получаем от рекламы, соединяя продавцов с покупателями. Чтобы делать это хорошо, мы используем сложные алгоритмы, созданные на основе математической статистики, теории вероятностей, машинного обучения, теории игр и теории аукционов. Улучшение алгоритмов всего на несколько процентов — это дополнительные десятки миллионов долларов в год. Из этой лекции вы узнаете, как математика может работать в рекламе.



Конспект лекции

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

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

image

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

Результаты исследования методов аутентификации и некоторых механизмов защиты от WEB-атак на примере Google, VK и других

Reading time5 min
Views46K

О чем топик?


В этой статье я расскажу о реализациях разного функционала (преимущественно, на веб-сервисах) для обеспечения безопасности пользователей на примере «гигантов» современной IT индустрии. Данный материал будет полезен разработчикам, архитекторам, тим-лидам и менеджерам при постановке задач схожего функционала. Реализации в статье разработаны командами профессионалов, проверены временем и сотнями миллионами пользователей (а также большим количеством хакеров), хоть и никаких гарантий, что именно данный вариант реализации — абсолютно правильный и 100% безопасный, конечно же нет. Информация основана на личном анализе этих ресурсов.
Читать дальше →

Information

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