Pull to refresh
39
0
sysprg@sysprg

User

Send message

Веб-типографика сегодня. Часть I

Reading time7 min
Reach and readers28K
Часть IЧасть IIЧасть IIIЧасть IVЧасть V — Часть VI

Часть I



Как-то ко мне обратился знакомый дизайнер с просьбой разобраться в странной по его мнению ситуации. Клиент просил «сделать так же, как у Apple», но с использованием собственных способов расположения блоков, изображений, цветовой гаммы и текста. В общем, дизайн в итоге получался совершенно непохожий на apple.com, но этого, собственно, и добивался клиент. И вроде бы у дизайнера получилось, но… Клиенту по-прежнему не нравилось, он всё равно требовал переделать макет. По его ощущения «что-то было ну совсем не так». А что именно — тот объяснить был не в силах. Вот и возник вопрос у моего коллеги по поводу того, как угодить капризам клиента и понять его чаяния. Оказалось всё не так просто, но вполне объяснимо. Я и раньше сталкивался с данной проблемой. Поэтому решил попробовать изложить свои мысли по этому поводу.

Итак, какова ситуация в области современной веб-типографики и какими способами следует решать возникающие проблемы?
Читать дальше →

20 «НЕ» для веб-дизайнеров

Reading time6 min
Reach and readers12K

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

JavaScript, AJAX, Socket и Flash/ActionScript — исследуем вопрос передачи данных в AJAX-приложениях

Reading time8 min
Reach and readers5.6K
socket_1667_128Как то в последнее время я начал активно повышать свои навыки и знакомиться не только и не столько с новыми технологиями. Например, я уже более-менее освоил Java, а именно — занимаюсь сетевыми сервисами. Также начал работать с ActionScript 3, хотя мое мнение относительно применимости в AJAX-приложениях Flash-компонентов не изменилось — их надо использовать там, где они дают максимальное преимущество, а вот вся «обвязка», например, интерфейс пользователя, можно сделать при помощи стандартных технологий. При разработке AJAX-приложений у разработчика есть достаточно большой выбор для решения задачи обмена данными с сервером. В основном, общение с сервером заключается в…
Читать дальше →

Асинхронное программирование: концепция Deferred

Reading time7 min
Reach and readers55K
Асинхронная концепция программирования заключается в том, что результат выполнения функции доступен не сразу же, а через некоторое время в виде некоторого асинхронного (нарушающего обычный порядок выполнения) вызова. Зачем такое может быть полезно? Рассмотрим несколько примеров.

Первый пример — сетевой сервер, веб-приложение. Чаще всего как таковых вычислений на процессоре такие приложения не выполняют. Большая часть времени (реального, не процессорного) тратится на ввод-вывод: чтение запроса от клиента, обращение к диску за данными, сетевые обращение к другим подсистемам (БД, кэширующие сервера, RPC и т.п.), запись ответа клиенту. Во время этих операций ввода-вывода процессор простаивает, его можно загрузить обработкой запросов других клиентов. Возможны различные способы решить эту задачу: отдельный процесс на каждое соединение (Apache mpm_prefork, PostgreSQL, PHP FastCGI), отдельный поток (нить) на каждое соединение или комбинированный вариант процесс/нить (Apache mpm_worker, MySQL). Подход с использованием процессов или нитей перекладывает мультиплексирование процессора между обрабатываемыми соединениями на ОС, при этом расходуется относительно много ресурсов (память, переключения контекста и т.п.), такой вариант не подходит для обработки большого количества одновременных соединений, но идеален для ситуации, когда объем вычислений достаточно высок (например, в СУБД). К плюсам модели нитей и процессов можно добавить потенциальное использование всех доступных процессоров в многопроцессорной архитектуре.
Читать дальше →

Пуленепробиваемый HTML: 37 шагов к идеальной разметке

Reading time11 min
Reach and readers20K
Примечание: это не полный перевод статьи. Я выбрал только самые интересные лично для себя пункты. Статья не претендует на свежесть, но возможно даже люди хорошо знакомые с версткой найдут для себя что-то интересное. Статья затрагивает некоторые аспекты семантики верстки с конкретными примерами.

Под катом много букв! Чтоб не потеряться в их обилии все пункты выделены заголовками.
Читать

Путешествие группы формант по голосовому тракту

Reading time5 min
Reach and readers1.8K
Трое монтажников связи. Страдания Джорджа и Гарриса. Жертва ста семи помех. Полезные рецепты. Средство против болезней голосового тракта у монтажников. Монтажники сходятся на том, что переутомились и что им нужен отдых. Неделя в море, вдали от скруток? Джордж предлагает путешествие по реке. Монморенси выдвигает возражение, на реке ловит сотовый. Первоначальное предложение принято большинством трех против одного.

Аналоговая телефония



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

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

Архитектура CMS

Reading time8 min
Reach and readers19K
Имея более чем достаточно времени, увлекся я размышлениями о создании гибкой, многофункциональной, но относительно простой CMS для программистов и её конфигураторов-пользователей. Некоторые идеи были навеяны потенциальными возможностями CMS Drupal. И вот теперь, увлеченный уже реализацией идей и имея успешные промежуточные результаты, я решил рассказать об архитектуре создаваемой CMS. По ходу прочтения общая картина возможностей CMS должна прорисовываться сама, во всяком случае, для программистов:)

Архитектура CMS


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

Кроссбраузерная одноцветная полупрозрачность

Reading time3 min
Reach and readers13K
В этой статье я рассмотрю метод создания блоков с одноцветным полупрозрачным фоном.
Например, таких:


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

«Детская» задачка для программистов

Reading time2 min
Reach and readers3.7K
В процессе разработки наших программных продуктов перед нами часто встают задачи для решения которых требуются глубокие знания языка C++, принципов работы компиляторов и процессоров.

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

Например одна из таких задач: не компилируя этот код (очень важно решить ее в голове) скажите сработает ли когда-нибудь вывод «BINGO»?
Читать дальше →

Начало научной карьеры (часть 1)

Reading time4 min
Reach and readers18K
Всем доброго времени суток!

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

CUDA: с места в карьер

Reading time5 min
Reach and readers30K
Многие видели моё введение в современные технологии высокопроизводительных вычислений и оценки производительности, теперь я продолжу тему более подробным рассказом о технологии CUDA.
Для тех кто не смотрел предыдущие серии: CUDA позволяет писать и запускать на видеокартах nVidia(8xxx и выше) программы написанные на С++ со специальными расширениями. На правильных задачах достигается значительное превосходство по производительности на $ по сравнению с обычными CPU.
Достижимая производительность — 1 трлн и выше операций в секунду на GTX295.

NB: Статья — краткое введение, покрыть все ньюансы программирования под CUDA в одной статье вряд ли возможно :-)
Читаем дальше CUDA crash course

Улыбнитесь, Вас снимает скрытая камера!

Reading time4 min
Reach and readers21K
image
По долгу службы довелось мне тесно сотрудничать в области разного околокомпьютерного оборудования с одной крупной сетью супермаркетов. Чуть поменьше, чем «Metro» или «Wallmart», но тоже немаленькая и международная. На территории магазина продается много электроники, ювелирных изделий, есть отделы «элитных товаров» — к безопасности подходят серъёзно. За пару недель я неплохо познакомился с админами их сети и мне показали святую святых — зал видеонаблюдения службы безопасности. Собственно говоря, о том как, чем и зачем магазины такого уровня наблюдают за своими покупателями и будет статья.
Читать дальше →

Иерархические структуры данных и производительность

Reading time14 min
Reach and readers23K

Введение



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

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

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

Всевидящее око

Reading time9 min
Reach and readers3.5K
Электронная слежка на страже свободы – или же угроза для неё?



Если выпускник химического факультета и мусульманин по вероисповеданию, идёт на низкооплачиваемую работу в аптеку, то что это может означать? Ему просто нужна временная подработка или же он стремится получить доступ к нитрату калия (используется в качестве удобрения и при изготовлении взрывчатки)? Что если какие-то личности с арабскими именами делают ему денежные переводы? Что если он покупает билет на самолёт на тот же самый рейс с одним из этих отправителей, однако сидят они в разных частях салона и приобретают билеты раздельно, причём платят наличностью? Что если в отчётах его кредитной карточки значатся покупки устройств с часовым механизмом?

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

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

DMA для новичков или то, что вам нужно знать

Reading time5 min
Reach and readers166K
Всем привет, сегодня мы с вами поговорим о DMA: именно о той технологии, которая помогает вашему компьютеру воспроизводить для вас музыку, выводить изображение на экран, записывать информацию на жесткий диск, и при этом оказывать на центральный процессор просто мизерную нагрузку.
Если вам интересно, добро пожаловать под кат...

Полезные советы от инвесторов

Reading time4 min
Reach and readers934
Однажды одному венчурному капиталисту из крупного европейского фонда надоело каждый раз сталкиваться с одними и теми же ошибками и недочетами предпринимателей, которые они допускают в процессе общения с инвесторами. Задавшись целью сократить количество неловких моментов в процессе общения со стартапами, он описал короткими тезисами основные пункты, которые часто бывают непонятны стартаперу, особенно неопытному. В итоге получился своеобразный сборник полезных советов, перевод которого я представляю вашему вниманию.

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

Чат 2.0 или как быстро знакомиться с новыми людьми

Reading time2 min
Reach and readers3.5K
Чего не дают социальные сети? Не знаю как вам (у кого-то такой проблемы точно нет), но мне периодически не хватает возможности быстро найти собеседника. Допустим вы хотите прямо сейчас пообщаться с человеком на какую-то заданную тему, возможно чтобы это был человек схожий с вами по интересам и каким-то другим произвольным параметрам. Как вы будете решать эту задачу сейчас? Вы можете зайти в ЖЖ, Вконтакте, Хабр или аську, делать поиск и отправлять сообщения понравившимся людям. Иногда вам ответят сразу, иногда через какое-то время, иногда вообще не ответят. Вы можете зайти в IRC или любой веб-чат и попытаться привлечь внимание к своей персоне — это может сработать, но часто люди отвлечены на общую болтовню и не расположены для приватных серьезных бесед. А вы хотите коммуникации тет-а-тет прямо сейчас, без лишних поисков.
Как это могло бы работать?

Все помнят как работают интернет-шашки? Вася запустил шашки в Москве, а Петя в Австралии, они автоматически соединяются друг с другом и начинают играть. Поскольку игра входит в стандартную поставку WinXP, желающих играть очень много и заявки удовлетворяются почти мгновенно.

Ну… идея уже понятна: а что если сделать чат, который бы работал по такому же принципу? Допустим я хочу поговорить о политике (смысле жизни, компьютерах, линуксах, литературе), я отмечаю галочкой соответствующую тему (или набор тем), выбираю язык и жму кнопку. Где-то, за три тысячи километров от меня, Вася выбрал такую же тему и мы соединяемся для чата. При подборе собеседника можно дополнительно анализировать его профайл: возраст, пол, интересы, город. Например, я хочу поговорить только с молодой девушкой или только с человеком, список интересов которого совпадает с моим не менее чем на 70%.

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

Как вам идея? Может быть аналоги уже давно существуют, а я, по своей серости, не знаю?
Открыт для сотрудничества по этому вопросу ;)

UPD: Идея именно об организации быстрого (близкого к мгновенному) подбора собеседника для разговора тет-а-тет на заданную тему. Это похоже на кнопку «Мне повезет» в Google: вы не тратите время на ковыряние результатов, а сразу попадаете на какой-то конкретный сайт. Плюс ваш «результат» будет гарантированно готов для разговора_прямо_сейчас. Чего не добьешься в аськах, форумах и сайтах знакомств.

Идеальная голосовалка

Reading time3 min
Reach and readers7.7K
Часто на разнообразных сайтах пользователям предлагают оценить (проголосовать за) тот или иной объект — анекдот, цитату, пост, автора, человека и т. д. При этом, к сожалению, почти всегда совершается одна или несколько ошибок.

Я буду говорить только о тех случаях, когда пользователям предлагают оценить объект положительно или отрицательно. Голосования с выбором одного из нескольких вариантов ответа здесь не рассматриваются.

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

rdTree — DHTML-дерево на MooTools

Reading time3 min
Reach and readers2.7K

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

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

Поиск хороших решений неприменно приводил к красиво оформленным и хорошо документированыи коммерческим библиотекам, например Zapatec Tree. За unlimited версию там просит 799$.

Дорого! Будем поддерживать разработчиков свободного ПО и искать хорошо написанное дерево на JavaScript.


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

Information

Rating
Does not participate
Date of birth
Registered
Activity