Читать дальше →
User
Как мы будем верстать, когда экраны станут многопиксельными, а пиксели еле различимыми
2 min
4KДанный пост не про конкретные решения по верстке сайтов в будущем, а сбор мнения хабрасообщества, как нам жить дальше.
Вопрос этот у меня возник не случайно. Есть интересный проект, заказчиками которого являются фанаты Айпадов и Айфонов. Им очень важно, чтобы сайт одинаково хорошо отображался и там и там. То есть ширина экрана плавает от 800 до 2000 пикселей в ширину.
Да, сейчас все браузеры научились хорошо масштабировать сайты. Нажал Ctrl, покрутил скроллом, и твой сайт в том размере, как тебе удобно. Но если растровую картинку 30 на 80 пикселей увеличить в трое, красоты это не прибавит.
Мы в нашей рутинной работе верстальщиков уже привыкли к тому, что полностью зависим от пикселей. Мы все считаем в пикселях. Не важно, как мы встраиваем картину: в фоне или тегом Img.
Я вижу 2 принципиальных решения:
1. Использование разных файлов под конкретное разрешение, JS определяет размер экрана, предлагает определенный файл CSS, который в свою очередь подгружает нужные картинки.
2. Переход на векторную графику в оформлении сайта.
Вопрос этот у меня возник не случайно. Есть интересный проект, заказчиками которого являются фанаты Айпадов и Айфонов. Им очень важно, чтобы сайт одинаково хорошо отображался и там и там. То есть ширина экрана плавает от 800 до 2000 пикселей в ширину.
Что нам делать с картинками в оформлении?
Да, сейчас все браузеры научились хорошо масштабировать сайты. Нажал Ctrl, покрутил скроллом, и твой сайт в том размере, как тебе удобно. Но если растровую картинку 30 на 80 пикселей увеличить в трое, красоты это не прибавит.
Мы в нашей рутинной работе верстальщиков уже привыкли к тому, что полностью зависим от пикселей. Мы все считаем в пикселях. Не важно, как мы встраиваем картину: в фоне или тегом Img.
Я вижу 2 принципиальных решения:
1. Использование разных файлов под конкретное разрешение, JS определяет размер экрана, предлагает определенный файл CSS, который в свою очередь подгружает нужные картинки.
2. Переход на векторную графику в оформлении сайта.
+42
Меценатство (спонсорство) и складчина (краудфандинг): две разные формы финансирования разработок шрифтов
5 min
4.6KЛюбителей новых шрифтов с поддержкою кириллицы наверняка порадует известие о том, что даровитый и плодовитый дизайнер-шрифтовик Иван Гладких, более известный как Джованни Лемонад (Jovanny Lemonad), объявил о скором выходе в свет двух новых бесплатных шрифтов с русскими буквами.
Во-первых —шрифт Russo:
(Хотя в своём блоге Лемонад только анонсировал этот шрифт, фактически он ужé есть в Google Web Fonts под именемRusso One.)
Во-вторых —шрифт Stalin, итог переработки (и дополнения) шрифта Metro:
Я уверен: оба они станут приятным дополнением к тем бесплатным шрифтам с кириллицею, которые Лемонад рисует сам и собирает от других шрифтовых дизайнеров. За несколько лет там подобралась обширная коллекция (чуть более трёх десятков шрифтов и семейств): «Prosto», «Upheaval Pro», «Captcha Code», «Zhizn», «Flow» (и «Flow Bold»), «Powerview», «Hardpixel», «Bicubik», «Hattori Hanzo Light», «Fontin Sans Cyr», «Airport», «Furore», «Bender», «Epool», «Dited», «Unimportant», «Metro», «Days», «Otscookie», «Philosopher», «Molot», «London», «20 db», «Neucha», «Cuprum», «Нобр первый», «Нобр второй», «Нобр третий», «Puzzle», «SuwiKisu»и «Жопа».
Эта новость и сама по себе заслуживает пристального внимания, но для меня она послужит также поводом поговорить со всеми вами о том, что Гладких ищет спонсора.
Во-первых —
(Хотя в своём блоге Лемонад только анонсировал этот шрифт, фактически он ужé есть в Google Web Fonts под именем
Во-вторых —
Я уверен: оба они станут приятным дополнением к тем бесплатным шрифтам с кириллицею, которые Лемонад рисует сам и собирает от других шрифтовых дизайнеров. За несколько лет там подобралась обширная коллекция (чуть более трёх десятков шрифтов и семейств): «Prosto», «Upheaval Pro», «Captcha Code», «Zhizn», «Flow» (и «Flow Bold»), «Powerview», «Hardpixel», «Bicubik», «Hattori Hanzo Light», «Fontin Sans Cyr», «Airport», «Furore», «Bender», «Epool», «Dited», «Unimportant», «Metro», «Days», «Otscookie», «Philosopher», «Molot», «London», «20 db», «Neucha», «Cuprum», «Нобр первый», «Нобр второй», «Нобр третий», «Puzzle», «SuwiKisu»
Эта новость и сама по себе заслуживает пристального внимания, но для меня она послужит также поводом поговорить со всеми вами о том, что Гладких ищет спонсора.
+16
Протокол SIP убийца Скайпа?
3 min
15KНа Хабре многие агитируют за открытый Jabber, вместо закрытого ICQ. Но в тоже время никто не агитирует за софтфоны на базе открытого протокола SIP, вместо всяких закрытых Skype’ов. А ведь суть дело здесь одна и та же логика. Начнем?
Сначала про то что такое SIP а уже потом почему убийца. Протокол SIP расшифровывается как Session Initiation Protocol и служит он для установления соединений (сессий) между двумя компьютерами. Рассмотрим более узкую задачу, например соединение между двумя софтфонами. SIP протокол в таком случае требуется для того чтобы определить местоположение клиентов (софтфонов), согласовать параметры передачи звука (кодеки, битрейт), запустить передачу и окончить её. Есть еще целый ряд параллельных задач, но их пока для простоты опускаем.
Сначала про то что такое SIP а уже потом почему убийца. Протокол SIP расшифровывается как Session Initiation Protocol и служит он для установления соединений (сессий) между двумя компьютерами. Рассмотрим более узкую задачу, например соединение между двумя софтфонами. SIP протокол в таком случае требуется для того чтобы определить местоположение клиентов (софтфонов), согласовать параметры передачи звука (кодеки, битрейт), запустить передачу и окончить её. Есть еще целый ряд параллельных задач, но их пока для простоты опускаем.
+37
oEmbed. Делаешь веб-сервис? — Делай и oEmbed
3 min
14KКонечно вы видели этот эффект, когда вставляешь в фейсбуке или вконтакте ссылку, и в посте тут же начинает подгружаться какой-то контент с сайта, на который ведет ссылка. И я видел, но даже не представлял, насколько это легко можно сделать с oEmbed'ом.
oEmbed.com — впринципе, на этом можно было бы и закончить читать тем, кто хочет провести самостоятельное мини-исследование.
+73
В небольших заказах тоже есть жизнь
3 min
2.1KРечь идет о по проектной оплате. Заказы, которые на фриланс биржах публикуются. Иногда есть выбор (а иногда и нету и есть только мелочь) — один проект покрупнее или несколько небольших. Что лучше? Для большого количества фрилансеров ответ на этот вопрос очевиден — крупный проект лучше двух поменьше. Чем крупнее проект, тем лучше. Часть среднего и малого размера проектов вообще остаются без внимания, либо на них внимание обращают только новички, либо неквалифицированные кадры. В свое время в понял, что это не вполне справедливо и есть ниша, в которой может быть лучше, чем с крупняком.
+67
Постигаем Git
6 min
56KTranslation
От переводчика: в этой статье нет описания команд git, она подразумевает, что вы уже знакомы с ним. Здесь описывается вполне здравый, на мой взгляд, подход к содержанию публичной истории в чистоте и порядке.
Если вы не понимаете, что побудило сделать git именно таким, то вас ждут страдания. Используя множество флагов (--flag), вы сможете заставить git работать так, как по вашему мнению он должен работать, вместо того, чтобы работать так, как git того хочет. Это как забивать гвозди отверткой. Работа делается, но хуже, медленнее, да и отвертка портится.
Если вы не понимаете, что побудило сделать git именно таким, то вас ждут страдания. Используя множество флагов (--flag), вы сможете заставить git работать так, как по вашему мнению он должен работать, вместо того, чтобы работать так, как git того хочет. Это как забивать гвозди отверткой. Работа делается, но хуже, медленнее, да и отвертка портится.
+114
Skype Connect
2 min
4.9KВчера вечером Skype объявил об официальном выходе продукта Skype Connect (в бета версии он назывался Skype for SIP), который представляет собой решение для бизнеса, позволяющее офисным АТС, поддерживающим IP телефонию, и системам unified communications (UC) подключаться к сети Skype.
При помощи Skype Connect можно будет:
За время бета-тестирования Skype Connect удалось набрать 2400 активных пользователей и получить сертификацию на совместимость с АТС и UC-системами Avaya, Cisco, SIPFoundry, ShoreTel и других производителей. Кроме того, Skype Connect может работать и со старыми TDM АТС, с использованием IP-шлюзов от AudioCodes, Grandstream и VoSKY. Для установки и настройки Skype Connect можно использовать Skype Manager, простой веб-интерфейс для управления тем, как Skype используется в компании. Для поддержки пользователей Skype Connect и Skype Manager была запущена специальная служба, включающая живой чат прямо в панели управления Skype Manager.
Кроме того, Skype начал выстраивать сеть value-added реселлеров и системных интеграторов в рамках программы Skype Channel Partner, подробностях которой будет сообщено дополнительно.
Плата за использование Skype Connect составляет €4.95 / $6.95 за линию (число одновременно возможных звонков). Звонки через Skype Connect тарифицируются по стандартным тарифам Skype.
Подробнее про Skype Connect можно прочитать здесь.
При помощи Skype Connect можно будет:
- Звонить с обычного телефона на номера по всему миру по стандартным тарифам Skype
- Принимать звонки от пользователей Skype, разместив у себя на сайте кнопку Skype Click&Call
- Принимать звонки, совершенные на онлайн-номер Skype (если у компании он есть)
- Применять к звонкам по Skype функции офисной АТС или системы UC, такие как перенаправление звонка, распределение входящих звонков, конференц-связь, авто-ответчик и голосовая почта, ведение лога и т.д.
За время бета-тестирования Skype Connect удалось набрать 2400 активных пользователей и получить сертификацию на совместимость с АТС и UC-системами Avaya, Cisco, SIPFoundry, ShoreTel и других производителей. Кроме того, Skype Connect может работать и со старыми TDM АТС, с использованием IP-шлюзов от AudioCodes, Grandstream и VoSKY. Для установки и настройки Skype Connect можно использовать Skype Manager, простой веб-интерфейс для управления тем, как Skype используется в компании. Для поддержки пользователей Skype Connect и Skype Manager была запущена специальная служба, включающая живой чат прямо в панели управления Skype Manager.
Кроме того, Skype начал выстраивать сеть value-added реселлеров и системных интеграторов в рамках программы Skype Channel Partner, подробностях которой будет сообщено дополнительно.
Плата за использование Skype Connect составляет €4.95 / $6.95 за линию (число одновременно возможных звонков). Звонки через Skype Connect тарифицируются по стандартным тарифам Skype.
Подробнее про Skype Connect можно прочитать здесь.
+22
Hubot: универсальный бот на CoffeeScript от разработчиков Github
1 min
18KРазработчики Github на работе занимаются не только основным делом, но и посторонними проектами. Один из таких проектов — бот Hubot, программа для автоматизации различных действий в онлайне (изначально чат-бот).
Уникальными особенностями Hubot является поддержка любых Javascript-библиотек через менеджер пакетов npm и скрипты для бота, которые выкладываются на github'е во всеобщее пользование (см. каталог скриптов на CoffeeScript).
+32
Github выпустил сервер непрерывной интеграции на базе Jenkins
1 min
8.6KGithub выпустил сервер непрерывной интеграции проектов Janky, сделанный на базе Jenkins под управлением CoffeeScript-бота Hubot. Фактически, Janky — это просто интерфейс для работы с Jenkins через скрипты и команды Hubot.
Разработка ПО методом непрерывной интеграции (continuous integration, CI) предусматривает выполнение частых автоматизированных сборок проекта для скорейшего выявления и решения интеграционных проблем. Например, сборка из репозитория может проводиться каждую ночь по расписанию, с автоматическим прогоном тестов, так что каждое утро разработчики видят результаты тестирования. Такой метод приучает и программистов работать эффективнее, в итеративном режиме с более коротким циклом.
Понятно, что Github как нельзя лучше подходит для работы в режиме непрерывной интеграции. Система Janky заточена на использование Github, в том числе она создаёт соответствующие web-hook’и, а также может ограничивать доступ для сотрудников организации на Github.
Сервер Janky сделан на основе известной системы Jenkins (Hudson). Использование бота Hubot придаёт Janky особый шарм, управление сервером осуществляется с помощью простых команд.
Разработка ПО методом непрерывной интеграции (continuous integration, CI) предусматривает выполнение частых автоматизированных сборок проекта для скорейшего выявления и решения интеграционных проблем. Например, сборка из репозитория может проводиться каждую ночь по расписанию, с автоматическим прогоном тестов, так что каждое утро разработчики видят результаты тестирования. Такой метод приучает и программистов работать эффективнее, в итеративном режиме с более коротким циклом.
Понятно, что Github как нельзя лучше подходит для работы в режиме непрерывной интеграции. Система Janky заточена на использование Github, в том числе она создаёт соответствующие web-hook’и, а также может ограничивать доступ для сотрудников организации на Github.
Сервер Janky сделан на основе известной системы Jenkins (Hudson). Использование бота Hubot придаёт Janky особый шарм, управление сервером осуществляется с помощью простых команд.
+32
Ещё раз про скринкасты в линуксе
4 min
30KСовсем недавно была статья pomeo на эту тему. Не то чтобы у меня какой-то альтернативный взгляд на это или существенно мой вариант отличается. Просто я знаю, что некоторые проблемы в Linux не решаются только одним мануалом. Поэтому, несколько повторяясь, я опишу, как это делаю я.
Некоторое время назад я решил заняться циклом статей “Сети для самых маленьких” и серьёзно озадачился вопросом записи скринкастов. Читатели очень просили сопровождать статьи видеоматериалами.
Сложностей при работе в линуксе представлялось две:
1) Программа для записи видео с экрана,
2) Программа для обработки видео.
Первое, что пришло на ум — не искать себе приключений на голову и делать это в виндоус. Но, во-первых, это целая череда не очень приятных действий, а, во-вторых, взыграла ИТшная кровь — надо разобраться.
В Линуксе есть прекрасное приложение recordMyDesktop — простое и притом универсальное. Это первое, которое я попробовал и оно меня вполне удовлетворило.
В Ubuntu ставится одной командой:
Есть для него и графическая оболочка gtk-recordMyDesktop, но я предпочёл иной путь. Я создал две кнопки на панели быстрого запуска:
Некоторое время назад я решил заняться циклом статей “Сети для самых маленьких” и серьёзно озадачился вопросом записи скринкастов. Читатели очень просили сопровождать статьи видеоматериалами.
Сложностей при работе в линуксе представлялось две:
1) Программа для записи видео с экрана,
2) Программа для обработки видео.
Первое, что пришло на ум — не искать себе приключений на голову и делать это в виндоус. Но, во-первых, это целая череда не очень приятных действий, а, во-вторых, взыграла ИТшная кровь — надо разобраться.
В Линуксе есть прекрасное приложение recordMyDesktop — простое и притом универсальное. Это первое, которое я попробовал и оно меня вполне удовлетворило.
В Ubuntu ставится одной командой:
#apt-get install recordmydesktop
Есть для него и графическая оболочка gtk-recordMyDesktop, но я предпочёл иной путь. Я создал две кнопки на панели быстрого запуска:
+33
Как работает reCAPTCHA?
3 min
64KВ обсуждении моего недавнего перевода замечательнейшей статьи про CAPTCHA несколько раз появлялись вопросы насчет reCAPTCHA, а именно как же эта система работает. Под катом я в общих чертах объясню суть reCAPTCHA, наглядно покажу как она работает и каким же образом она цифрует книжки.
+127
Из чрута — на поверхность: как, почему и что делать?
2 min
25KОсновано на реальных событиях.
Представьте себе, что у вас есть крупный проект, для которого необходимо собирать софт. А ещё у вас есть желание замутить сборочную ферму, на которой ваши подчинённые будут собирать нужный софт. А ещё это всё происходит под Linux-ом, и каждому надо организовать «чистое» окружение с минимумом затрат. Как это сделать?
В зале подняли руки несколько человек и воскликнули «chroot!». Вы согласились, что это просто, быстро и каждый получает полностью ресурсы хостовой машины. Все заапплодировали, решение принято.
А через неделю после интеграции этого решения и после увольнения сотрудника «икс» вы просыпаетесь — а на сервере девственно чистый жёсткий диск. Злодей уничтожил труды разработчиков, работа встала.
Почему же он сумел удалить всё, если был в «защищённом» «запертом» чруте?
Представьте себе, что у вас есть крупный проект, для которого необходимо собирать софт. А ещё у вас есть желание замутить сборочную ферму, на которой ваши подчинённые будут собирать нужный софт. А ещё это всё происходит под Linux-ом, и каждому надо организовать «чистое» окружение с минимумом затрат. Как это сделать?
В зале подняли руки несколько человек и воскликнули «chroot!». Вы согласились, что это просто, быстро и каждый получает полностью ресурсы хостовой машины. Все заапплодировали, решение принято.
А через неделю после интеграции этого решения и после увольнения сотрудника «икс» вы просыпаетесь — а на сервере девственно чистый жёсткий диск. Злодей уничтожил труды разработчиков, работа встала.
Почему же он сумел удалить всё, если был в «защищённом» «запертом» чруте?
+47
Анализатор логов PHP-на-Apache
2 min
12KРешил написать об одной полезной утилите, которую написал в августе и уже два месяца успешно использую.
Утилита сводит к минимуму усилия по слежению за логами ошибок PHP.
Утилита сводит к минимуму усилия по слежению за логами ошибок PHP.
+5
Изучение способов привлечения на сайт программного продукта
11 min
3.9KАннотация
Эта статья будет интересна тем, кто продвигает свои собственные программные продукты в интернете. Статья исключительно практическая. Она представляет собой отчёт о некоторых действиях, которые мы осуществляли в последнее время для продвижения продукта PVS-Studio. Я расскажу, что работает, что не работает и поделюсь сопутствующими мыслями.
+81
Mailcheck.js — проверка емейла на опечатки
1 min
3.8KjQuery плагин Mailcheck (github) — клиентсайд проверка емейла на опечатки по заранее определённму списку (к примеру, наиболее популярных почтовых сервисов).
Демка | сорсы демки (jsfiddle)
По заявлению (en) авторов (Kicksend), сей плагин увеличил кол-во подтверждений емейла при регистрации на 50%.
+65
Тормозит веб-сервер. Настройка на примере www.ochevidets.ru
8 min
28KЯ оказываю услуги по настройке web- и БД-серверов. На днях ко мне обратился Иван Усачёв — владелец портала ochevidets.ru с просьбой избавить сайт от торможения.
Страницы в пиковое время стали долго загружаться, вплоть до 5 минут на страницу.
Страницы в пиковое время стали долго загружаться, вплоть до 5 минут на страницу.
UPDATE: Статья была написана в 2010 году. Кое-что изменилось: вышли новые версии программ, у nginx изменились некоторые директивы и появились новые. Учитывайте это.
+109
Организация разделов на системном диске в облаке Селектел
4 min
11Kabstract: Этот пост описывает организацию системного диска на машинах в облаке и объясняет, почему именно так.
Предисловие: Всё написанное тут касается системных дисков создаваемых при установке виртуальных машин. Пользователи имеют полное право делать что хотят с этими дисками, и уж, тем паче, решать самостоятельно, как организовывать место на дополнительных дисках.
Мы должны предоставлять диски системы в таком виде, который даст пользователям достаточную свободу делать «что хочешь», и в то же время обеспечивать достаточную простоту и удобство для пользователей, которым нужно «просто работать». Хотя проблема чуть более сложная, поскольку речь идёт не об удобном пульте телевизора, а об инструменте в работе, так что правильнее говорить про удобство типовых сценариев и возможность реализовывать свои собственные.
Вот проблемы, которые возникают в связи с этим:
Наиболее примитивным решением является
Предисловие: Всё написанное тут касается системных дисков создаваемых при установке виртуальных машин. Пользователи имеют полное право делать что хотят с этими дисками, и уж, тем паче, решать самостоятельно, как организовывать место на дополнительных дисках.
Мотивация
Мы должны предоставлять диски системы в таком виде, который даст пользователям достаточную свободу делать «что хочешь», и в то же время обеспечивать достаточную простоту и удобство для пользователей, которым нужно «просто работать». Хотя проблема чуть более сложная, поскольку речь идёт не об удобном пульте телевизора, а об инструменте в работе, так что правильнее говорить про удобство типовых сценариев и возможность реализовывать свои собственные.
Вот проблемы, которые возникают в связи с этим:
- Возможность изменить размер диска и корневой файловой системы
- Возможность создать дополнительные разделы
- Возможность подключить диски от одной машине к другой
- С этого диска надо ещё и загрузиться
Наиболее примитивным решением является
+20
Zentyal — сервер all-in-one для SMB
5 min
131KЛет 6 назад, в мою бытность сисадмином в одной конторе, мне приходилось обслуживать несколько серверов на FreeBSD — прокси, почтовик, web-сервер, ftp, ipfw, в общем, все как у всех. Работало все на двух физических серверах, и было у меня желание заиметь какую-нибудь универсальную графическую оболочку для удобства управления всем этим хозяйством. Ну и, конечно же, таковой нигде не было. Были попытки разных умельцев создать свои GUI для управления подсистемами по отдельности: один для squid, другой для sendmail и т. д. Конечно, можно было какую-то часть управления выполнять и в webmin, но это не доставляло никакого удовольствия. Как говорили мне — неправильно работать с *nix-системами через GUI. Нет, естественно работа в командной строке не доставляла неудобства, но хотелось чего-то более универсального. В итоге, я написал несколько скриптов, которые вызывали псевдографику на черном экране, где можно было добавлять/удалять правила, рулить пользователями и т. д., на чем как-то все остановилось, хотя интерес к удобству управления через GUI и не пропал.
+34
Балансировка статических файлов средствами nginx
4 min
29KПредставим, что у нас есть приложение/сайт с достаточно высокой нагрузкой.
Многие разработчики приложений для «ВК» или «Одноклассников» сталкивались с ситуацией, когда приложение выходит в топ новых приложений и на вас сваливается огромнейшая нагрузка.
Допустим, в процессе обращения клиента к серверу, генерируется картинка. Серверов у нас много. Каким образом клиенту отдать эту картинку, если у вас нет единой файловой системы и файлы не синхронизируются между серверами?
Как поступить, когда на сервер ежесекундно приходит большое количество народу? Ответ прост — nginx.
Многие разработчики приложений для «ВК» или «Одноклассников» сталкивались с ситуацией, когда приложение выходит в топ новых приложений и на вас сваливается огромнейшая нагрузка.
Допустим, в процессе обращения клиента к серверу, генерируется картинка. Серверов у нас много. Каким образом клиенту отдать эту картинку, если у вас нет единой файловой системы и файлы не синхронизируются между серверами?
Как поступить, когда на сервер ежесекундно приходит большое количество народу? Ответ прост — nginx.
+25
Information
- Rating
- Does not participate
- Registered
- Activity