Search
Write a publication
Pull to refresh
0
0
Женя Б @junkies

Администратор

Send message

Настройка Apple Slim keyboard под Linux

Reading time4 min
Views12K
Недавно праздновал свой 23 день рождения и был одарен коллегами замечательнейшим девайсом. Apple Slim Aluminium Keyboard.
Да-да-да. Именно с большой буквы каждое слово.
По моему скромному мнению, лучшей клавиатуры для разработчика не найти. Особенно для такого любителя Linux как я.
Клавиатура удобная, ничего не скажешь, писать об этом больше не буду, и так уже везде понаписано. Однако не без проблем.
Мой любимый рабочий компьютер с Gentoo напрочь отказался работать с мультимедийными клавишами и прочими радостями современного мира. Немного погуглив я обнаружил что я не одинок и огромное количество народа тоже страдает от этого. Однако четкой и подробной инструкции на русском (да и на английском ) я так и не нашел. Специально для таких как я страдальцев и предназначен сей коротенький мануал.
Тут в комментариях просят картинку клавиатуры:
image
А вот тут можно про неё почитать.
Читать дальше →

Безопасная загрузка изображений на сервер. Часть вторая

Reading time7 min
Views28K
Это вторая часть перевода. Начинать прочтение лучше с первой.

Итак, после применения описанных в первой части методов, мы можем прекратить волноваться? К сожалению, нет. То, какие расширения файла будут переданы транслятору PHP, будет зависеть от конфигурации сервера. Разработчик часто не знает и не контролирует конфигурацию веб-сервера. Мы видели веб-серверы, с такой конфигурацией, что файлы .html и .js выполнялись как php. Некоторые веб-приложения могут потребовать, чтобы файлы .gif или .jpeg интерпретировались PHP (это часто случается, когда изображения, например графы и диаграммы, динамически строятся на сервере самим PHP).

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

Безопасная загрузка изображений на сервер. Часть первая

Reading time10 min
Views138K
В данной статье демонстрируются основные уязвимости веб-приложений по загрузке файлов на сервер и способы их избежать. В статье приведены самые азы, в врят-ли она будет интересна профессионалам. Но тем неменее — это должен знать каждый PHP-разработчик.

Различные веб-приложения позволяют пользователям загружать файлы. Форумы позволяют пользователям загружать «аватары». Фотогалереи позволяют загружать фотографии. Социальные сети предоставляют возможности по загрузке изображений, видео, и т.д. Блоги позволяют загружать опять же аватарки и/или изображения.

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

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

Как я воевал со временем

Reading time3 min
Views3.2K
Справка: Хоторнский эффект

Не так давно у меня возникла необходимость выучить новый для себя язык программирования. Так как это был мой первый опыт самостоятельного обучения, без лекций и лабораторных работ (да, я всего лишь студент), было достаточно интересно и познавательно наблюдать за собственным поведением, процессом обучения и мотивацией к действию. Часто так бывало, садишься за родную машинку, запускаешь IDE, а подлое подсознание шепчет: «Отвлекись ненадолго, посмотри еще одну серию Хауза». Или так: берешь в руки тематическую книгу, а рядом на полке стоит какой-нибудь фантастический роман («Свеженький, последняя тема обсуждений у фэндома»). Предательски дрожит рука и тянется за жвачкой для мозгов.

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

Что я придумал?


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

Фиксим плагин jGrowl в IE 7

Reading time1 min
Views1.2K
Сегодня с удивлением обнаружил, что популярный в народе jQuery-плагин для показа сообщений jGrowl версии 1.1.1 не работает в IE7. Вернее, сами сообщения отображается, но где-то внизу. В других браузерах подобная проблема не наблюдается.

Честно потратил около часа: игрался с блоками div.ie6 в исходном css-файле (да, если кто не в курсе — для IE там отдельные стили. No comments), изучал сам плагин на предмет глючности.
Потом поизучал эту тему в гугле и обнаружил следующее.

В плагине есть такая строка:
if ($.browser.msie && parseInt($.browser.version) < 7) $(this.element).addClass('ie6');

Перед ней надо вставить следующий хак и всё заработает:
if(jQuery.browser.msie && parseInt(jQuery.browser.version) == 6 && window[«XMLHttpRequest»] ) {
jQuery.browser.version = «7.0»
}


Правда, закругленные углы в IE 7 и Опере 9.5 не показываются, но это уже другая история. Буду рад, если кому-то помог.

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

Только 4.13% Web соответствует стандартам

Reading time3 min
Views998
Компания-разработчик браузера Opera опубликовала первые результаты исследования, нацеленного на изучение структуры содержимого сети. Для его проведения в компании создали приложение под названием MAMA (Metadata Analysis and Mining Application): работая в качестве паука, оно индексирует разметку и некоторые другие данные с более чем 3.5 миллионов страниц.

Статистический анализ собранных MAMA данных позволил инженерам Opera сделать выводы о наметившихся тенденциях в области Web-разработки и о том, как применяются Web-технологии, основанные на стандартах, в сети. Opera планирует вывести свой проект на более высокий уровень, разработав поисковую систему на основе уже проиндексированных данных. Таким образом, Web-дизайнеры, разработчики браузеров и Web-инженеры смогут легко получать информацию о реальном применении Web-технологий в интернете.

Предварительные данные, опубликованные компанией, предоставляют интересную информацию об использовании конкретных HTML-элементов. Среди проанализированных MAMA страниц, самыми популярными элементами являются head, title, html, body, a, meta, img и table. Реже всего применяют такие элементы, как var, del и bdo.

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

Перепрошивка Cisco 7912G

Reading time2 min
Views16K
Попали ко мне не так давно около 10 ip-телефонов Cisco 7912G, убитые. При включении горели
лампочки холда и меню одновременно, дисплей был пуст. Нагуглил, что при подобном телефон
мертв и его нужно перепрошивать программатором. Т.к. очень этого не хотелось, стал искать
обходные пути. Завел на ноутбуке dhcp сервер, телефон стал получил ип адресс, значит еще
более-менее жив, лишь слетела прошивка.
Стал искать документацию по прошивке — ничего практически нет, прошивку практически не
найти, на сайте циско предложили заключить договор на саппорт, чтобы получить доступ к
прошивкам. Пришлось собирать информацию по крупицам.
Читать дальше →

Пишем аккордеон-плагин в 618 байт

Reading time5 min
Views5.4K
Очень часто приходится видеть варианты элемента управления «аккордеон» на различных сайтах. В этой заметке я хотел бы предложить свой вариант, который кроме того, что обладает некоторыми оригинальными свойствами, еще и весит в minified-виде всего 618 байт. Заодно, я покажу как быстро написать простейший плагин для jQuery.

Забегая в перед скажу, что плагин тестировался в Firefox 3.0.3, Internet Explorer 7 и 8b2, Opera 9.52 и Chrome 0.3.154.9. Во всех других браузерах работоспособность гарантируется настолько насколько в них работает jQuery.

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

Иерархические (рекурсивные) запросы

Reading time10 min
Views541K
Дерево объектов

Чтобы понять рекурсию, сначала надо понять рекурсию. Возможно, поэтому рекурсивные запросы применяют так редко. Наверняка вы представляете что такое SQL-запрос, я расскажу, чем рекурсивные запросы отличаются от обычных. Тема получилась объемная, приготовьтесь к долгому чтению. В основном речь пойдет об Oracle, но упоминаются и другие СУБД.

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

Как сайт может отправлять события…

Reading time6 min
Views1.5K
Давным-давно (я уже не помню когда, но давно) я собрался и запустил для себя сайт. Сначала он использовался просто как склад того, что нужно кому-то передать. Потом совершенно случайно образовалось свободное время и получилось заполнить сайт чем-то осмысленным и (надеюсь) полезным. И очень захотелось быть в курсе событий, происходящих на сайте. Самое простое решение — отсылать письма, что и было сделано. Однако через некоторое время появилось желание избавиться от писем с сайта так как поток служебной почты в течении дня превышает разумные пределы.
И тут пришла в голову мысль...

Как найти нужный шрифт, не зная его названия?

Reading time3 min
Views409K
Я уверен, что у любого дизайнера был такой момент, когда он видел где-то какой-то шрифт, который так мог бы пригодится в проекте, но… что за шрифт?.. Ответ на этот вопрос затаился в глубине Вашего сознания, либо в глубине Вашего «незнания» (что разумеется простительно).



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

Конечно, нельзя рассчитывать, что эти источники дадут вам 100 процентную уверенность в том что вы найдете нужный шрифт, но что помогут, так это точно.
Читать дальше →

Алгоритмы организации тэгов

Reading time3 min
Views27K
Тэги – неотъемлемая часть всех современных сайтов и косвенный признак принадлежности сайта к пресловутому Вэб-Два-Ноль.

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

Ajax-машина

Reading time11 min
Views4.1K
Знали ли разработчики LiveScript из Netscape о том, какое влияние окажет их язык, позже переименованный в JavaScript, на лицо интернета — веб-сайты, или, может быть, они твердо на это рассчитывали, но факт остается фактом — JavaScript на сегодняшний день является одним из самых важных и распространенных языков в мире.

В то время, как на стороне сервера трудится разношерстная компания языков в лице php, perl, python, ruby, .net, java и многих других, на стороне клиента JavaScript существует буквально в гордом одиночестве. Фактически, из маленького дополнения к html, JavaScript превратился в полноправного члена банды «html+css+js», который, зачастую, уже командует остальными, сверкая золотым браслетом с надписью «ajax» и делая недовольное лицо $( ) при случае.
продолжить чтение

Выносим CSS в пост-загрузку

Reading time1 min
Views1.7K
После сравнительной заметки о CSS Sprites и data:URL все мои мысли были направлены на решение основной проблемы:

В общем случае [при использовании data:URL], загрузка страницы не ускорится, а даже может замедлиться, потому что фоновые картинки (включенные через data:URL) будут грузиться в один поток, а не в несколько при обычном использовании спрайтов. Если фоновых картинок достаточно много (несколько десятков Кб), то это окажется существенным.

Данная статья как раз посвящена тому, как можно достаточно успешно справиться с указанной проблемой. Интересно? Тогда, поехали.

Читать дальше на webo.in→

Оптимизация MySQL запросов

Reading time4 min
Views126K
В повседневной работе приходится сталкиваться с довольно однотипными ошибками при написании запросов.

В этой статье хотелось бы привести примеры того, как НЕ надо писать запросы.
Читать дальше →

Добавляем watermark к изображению

Reading time4 min
Views7.1K
Привет, Хабрахабр!
Вчера, прочитав статью SergeyVoyteshonok, посвященную отрисовке логотипа сайта или компании (проще говоря, «водяного знака») на загружаемых пользователями изображениях, я был удивлен некоторой тяжеловесностью предложенного автором решения.
Тогда я пообещал немного поэкспериментировать и предложить более рациональный вариант.

Вот, что у меня получилось

Ускоряем wordpress

Reading time11 min
Views10K
Привет.
Думаю, среди читателей хабра найдется немало тех, кто имеет stand-alone blog на движке wordpress.

Так вот, для вас, дорогие мои, у меня есть две новости, как водится, плохая и хорошая.
Плохая состоит в том, что wordpress — довольно-таки тормознутая штука.
Виноваты в этом в основном криворукие производители тем и, особенно, криворукие производители плагинов. Особенно кривой плагин, на мой вкус, wp-ajax-edit-comments, который является образцом быдлокодинга.

Хорошая — в том, что это можно поправить.

Делается это примерно так:

Мультидоменный сервер nginx -> apache

Reading time3 min
Views9.6K
Приветствую! Размещаю по просьбе друга статью.
У него к сожалению пока нет регистрации на хабе, а у меня мало кармы что бы выслать приглашение.
Если есть возможность и понравились статья вышлите ему инвайт, или можно попробовать поднять мне карму что бы я мог выслать ему инвайт.

Итак задача:
Организовать удобное администрирование многодоменного web сервера.
Модель системы: linux -> nginx -> apache -> php -> mysql.

Раньше у меня для каждого домена были отдельные конфиги для nginx и apache,
и для добавления нового хоста требовалось добавить как минимум 2 конфига.

Работа была организована удобно. По сути, были 2 скрипта. 1 для добаления хоста к nginx, другой для apache. (ещё есть скрипт добавления хоста в bind но это другая история).

Но и это было не удобно в условия добавления удаления хостов… иногда забыл nginx прописать, иногда в апаче чтото не то…
Решено было следующим образом:

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

Безопасный метод авторизации на PHP

Reading time9 min
Views364K
Примечание: мини-статья написана для новичков

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

Подсветка синтаксиса несколькими строками javascript

Reading time4 min
Views21K
Да, я знаю, что такое синтаксический анализ. И знаю много разных библиотек для подсветки чего угодно. Только это всё не то, когда надо подсветить простенький примерчик, не содержащий всяких кодоизвращений. И уж совсем негоже тянуть для этого много-много байт _правильно_ разбирающих _любой_ код.

Для случаев без кодоизврата (а их большинство) можно использовать такой код:
code = code
// ключевые слова (список неполон, написал, что в голову пришло)
.replace(/(var|function|typeof|new|return|if|for|in|while|break|do|continue|switch|case)([^a-z0-9\$_])/gi,
'<span class="kwrd">$1</span>$2')
// всякие скобочки
.replace(/(\{|\}|\]|\[|\|)/gi,'<span class="kwrd">$1</span>')
// однострочные комментарии
.replace(/(\/\/[^\n\r]*(\n|\r\n))/g,'<span class="comm">$1</span>')
// строки
.replace(/('.*?')/g,'<span class="str">$1</span>')
// функции (когда после идентификатора идет скобка)
.replace(/([a-z\_\$][a-z0-9_]*)\(/gi,'<span class="func">$1</span>(')
// не люблю восьмизначные табы, пусть лучше будет 4 пробела
.replace(/\t/g,'    ');


под катом CSS, плагин jQuery, пример и некоторые пояснения-рассуждения

Information

Rating
Does not participate
Location
Москва и Московская обл., Россия
Registered
Activity