Как стать автором
Обновить
3
0
Холстинников Григорий @scarych

Системное проектирование

Отправить сообщение

Многозадачность мозга можно тренировать

Время на прочтение2 мин
Количество просмотров23K
Как известно, человеческий мозг демонстрирует самые плачевные результаты, когда его заставляют выполнять несколько задач одновременно. Эффективность снижается многократно, и не только у людей старшего поколения, но даже у молодёжи, хотя они выросли в условиях многозадачности. Казалось бы, такой мощнейший нейрокомпьютер, как мозг, не должен испытывать проблем, выполняя две простенькие задачи (например, набирать текст на клавиатуре и разговаривать при этом) — но известное «подтормаживание» есть. Как сейчас стало известно, этот феномен имеет физическую природу: оказывается, в лобную долю мозга встроен искусственный «тормоз», или предохранитель. Впрочем, его можно тренировать.

С помощью магнитно-резонансного сканирования американским нейробиологам удалось выявить конкретные участки префронтального кортекса, которые по неизвестной причине создают искусственные задержки при одновременном выполнении нескольких задач. Например, если мозг получает две задачи на выполнение с временной разницей менее 300 мс, то он искусственно затормаживает выполнение второй задачи на время до 1000 мс, пока первая не закончена. Если же временной интервал между задачами превышает 1000 мс, то никакого «затормаживания» не наблюдается. Что интересно, скорость срабатывания «предохранителя» можно повысить, если тренироваться.

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

Результаты своей работы “Training improves multitasking performance by increasing the speed of information processing in human prefrontal cortex” учёные опубликовали в журнале Neuron 2009;63(1):127-38.
Читать дальше →
Всего голосов 80: ↑72 и ↓8+64
Комментарии133

Полноценные коллекции в PHP

Время на прочтение7 мин
Количество просмотров9.4K
Не так давно при разработке своего проекта возникла идея реализовать полноценные коллекции для хранения объектов одинакового типа, по удобству напоминающие List<Type> в C#.
Идея состоит в том, чтобы коллекции, содержащие объекты различных типов сами по себе различались, а не имели, скажем, один унифицированный тип Collection. Другими словами, коллекция объектов типа User это не то же что коллекция объектов Book. Естественно, первой мыслью было создание различных классов для коллекций (UserCollection, BookCollection, …). Но данных подход не обеспечивает нужной гибкости, плюс ко всему, нужно тратить время на объявление каждого подобного класса.
Немного поразмыслив, реализовал динамическое создание классов коллекций. Выглядит это так: пользователь создаёт коллекцию объектов типа Book, а нужный тип BookCollection создаётся (т.е. объявляется) автоматически.
Читать дальше →
Всего голосов 73: ↑45 и ↓28+17
Комментарии74

Умные сессии

Время на прочтение2 мин
Количество просмотров3.8K
Решаем проблемы производительности.

Исходные данные.
Транслируем футбольные матчи через интернет. Посетителей: в обычные дни 5 000 — 10 000, в дни матчей 100 000 — 150 000.

В дата-центре
  • 5 веб-серверов с апачем и ПХП, наружу вывешены через аппаратный балансировщик загрузки
  • 2 пула мемкеша: для сессий и данных из веб-сервисов

Проблема
При большом наплыве посетителей происходит перегрузка локальной сети из-за большого количества обращений к мемкешу. Усугублящие факторы: 100Мбит сеть, оба пула на одних и тех же серверах.
Читать дальше →
Всего голосов 79: ↑54 и ↓25+29
Комментарии70

Несколько удобных инструментов для тестирования сайта

Время на прочтение3 мин
Количество просмотров32K
Представляю вашему вниманию обзор нескольких полезных инструментов для всестороннего тестирования сайтов.

Читать дальше →
Всего голосов 95: ↑90 и ↓5+85
Комментарии44

Расширенный сборник CSS-хаков

Время на прочтение4 мин
Количество просмотров37K
Статья является расширенным сборником CSS-хаков в сравнении с аналогичной статьей.
Под хаком подразумевается метод, позволяющий воспринимать CSS только определенному браузеру.
Хаки могут использоваться не только для исправления багов в верстке, но и в случае использования определенных особенностей браузера для ускорения рендеринга web-страницы в нём (к примеру CSS3-свойства)

Подробности под катом
Всего голосов 116: ↑110 и ↓6+104
Комментарии77

Обратимое шифрование текста — метод «Двойной квадрат»

Время на прочтение5 мин
Количество просмотров50K
Здравствуйте!

Однажды, мне понадобилось шифровать текст. Я знал что в PHP есть расширение mcrypt, но интуиция подсказывала, что не на всех хостингах это включено.
Поэтому я начал подозревать что придется кодить решение самому. Что я собственно и сделал. Получилась функция обратимого шифрования, достаточно быстрая и надежная.
Пример работы функции:
<?php 
	echo dsCrypt('habrahabr.ru');
	//Выведет: 60634K7T0*0!
	echo dsCrypt('60634K7T0*0!',1);
	//Выведет: habrahabr.ru
?>

Если вы все еще пользуетесь XOR шифрованием :), то можете заглянуть под кат и посмотреть как еще можно защищать данные…
Читать дальше →
Всего голосов 79: ↑60 и ↓19+41
Комментарии93

Личный тайм-менеджмент

Время на прочтение9 мин
Количество просмотров93K
Почитав недавний топик про лягушек я понял, что Хабрасообщество не очень хорошо ориентируется в вопросах тайм-менеджмента и многие никогда не занимались построением своей тайм-системы.

Поэтому я попробую исправить этот недочёт.

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

Welcome!

Читать дальше →
Всего голосов 194: ↑177 и ↓17+160
Комментарии155

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

Время на прочтение3 мин
Количество просмотров4.1K
Запуск сайта ответственное мероприятие, надеюсь что этот список контрольных вопросов позволит ничего не упустить из виду.

Читать дальше →
Всего голосов 103: ↑86 и ↓17+69
Комментарии33

PHP — «горизонтальное наследование»

Уровень сложностиСредний
Время на прочтение2 мин
Количество просмотров1.7K
Итак, в новой версии PHP появилась интересный концепт — «horizontal inheritance» (горизонтальное наследование), который был добавлен в язык с помощью конструкции «namespace». Это позволяет объединять функциональность из нескольких классов без наследования их от одного класса-родителя. Вместо этого, теперь можно объединять методы и свойства из разных классов в одном классе через использование пространства имен.
Читать дальше →
Всего голосов 39: ↑34 и ↓5+29
Комментарии62

Самый короткий способ определения браузера IE (влючая IE.8)

Время на прочтение1 мин
Количество просмотров31K
IE='\v'=='v'

Это решение является победителем в соревновании на выявление самого короткого способа определения IE.
Всего голосов 110: ↑108 и ↓2+106
Комментарии61

Безопасный код: Работа с пользовательским вводом

Время на прочтение5 мин
Количество просмотров5.6K

(ч2. Подделка межсайтовых запросов; ч2. Работа с базой данных)

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

Некоторые сценарии XSS атак



Устойчивая атака


  • Вова создает частицу контента на сайте Пети.
  • Когда Маша просматривает этот контент, Вовин XSS ворует Машины куки.
  • Теперь Вова может пробраться на сайт, используя Машину сессию.
  • Чем более людей увидит этот контент, тем более успешной можно считать атаку. Максимум достигается путем создания противоречивых холиварных тем на сайте и т.д.
Читать дальше →
Всего голосов 75: ↑69 и ↓6+63
Комментарии26

Простое сравнение изображений с помощью php

Время на прочтение3 мин
Количество просмотров27K
Алгоритм возможно не новый, и не является идеалом, но, на удивление, работает. Никаких графов и корелляции.

Для начала, стоит отметить, что сравнение очень приблизительно (по крайней мере, на данном этапе), временами две совершенно разные фотографии оказываются похожими процентов на 60%, так же не учитываются жесткие модификации (повороты, инверсия, обрезка) – для этого нужно доводить и доводить. Лично для меня самым главным оказались два параметра: скорость, независимость от разрешения изображения и возможность сравнивать «изображения» прямо в базе данных.
Читать дальше →
Всего голосов 161: ↑153 и ↓8+145
Комментарии64

Архитектура CMS. Модель данных. Часть 1

Время на прочтение8 мин
Количество просмотров6.3K
Система управления содержимым (CMS) обязана предоставить гибкие всеохватывающие функциональные возможности для управления содержимым сайта, облегчить работу администратора-конфигуратора и способствовать созданию удобного в использовании сайта. Содержимым сайта можно назвать новости, размещенные на нём, а также статьи, комментарии, фотографии. Содержимым также являются целые структуры информации: новостные ленты, каталоги, форумы, блоги. Обобщенно: содержимое – это данные, размещенные на сайте.

CMS может просто передавать данные по запросу клиентскому приложению, например сетевой программе, flash-клипу или AJAX-приложению. Но чаще всего, CMS предоставляет клиенту уже подготовленные для отображения данные в HTML формате. В этом случаи, для обеспечения доступности, легкости восприятия и удобства пользования содержимым, выполняется стилизация и объединение его с элементами оформления (темы, шаблоны), навигации (меню, ссылки) и управления (формы и ссылки тоже), и всем этим тоже нужно управлять.

Идея


Окружающий мир воспринимается нами объектным, мы мыслим «объектами», в наших умах выстраивается объектная модель мира. Поэтому нам не составит труда создать объектную модель содержимого сайта и управлять ею. Новости, товар в каталоге, сообщения на форуме и сами форумы, и все другое можно представить в виде объектов. Устанавливая связи между объектами, можно создавать структуры данных любой сложности, от добавления комментариев к статьям до создания социальных сетей и более.

Объекты, классы и связи данных – это информация, которую нужно уметь создавать, хранить, использовать, изменять и удалять. В нашем распоряжении реляционная база данных для хранения информации. Действия же совершаемые с информацией – часть логики функционирования CMS, которая в большей части будет реализована модулем данных Data.
Читать дальше →
Всего голосов 53: ↑44 и ↓9+35
Комментарии102
12 ...
26

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность