Реализация хорошего поиска по сайту — часто сильно недооцененная по сложности задача. Поиск является слабым местом сайтов настолько часто, что когда я вижу строку поиска, у меня сразу же возникает предвзятое ощущение предстоящего фиаско. И чтобы лишний раз не расстраиваться, я сразу переадресую свой вопрос гуглу или яндексу и быстро нахожу то, что требовалось. Что же делать, чтобы как-то улучшить эту ситуацию?
sdmaster @sdmaster
User
Как сделать favicon в png
1 min
119KЗнаете, фавикончики в ico это как-то прошлый век =) Давайте будем модными, современными и все такое. Короче, берем иконку в png (да-да, с прозрачностью и всеми делами), сохраняем в размере 16×16, на сайте (в блоке <head>, ага) подключаем так:
<link rel="icon" type="image/png" href="favicon.png" />
Особенно под впечатлением владельцы айфонов и точей, т.к. для них мы делаем красивую иконюшку размером 57×57 (можно кстати и больше, но это стандартный размер иконки на ланч-скрине), подключая ее так:
<link rel="apple-touch-icon" href="apple-touch-favicon.png"/>
Над записью витает дух уже почти сгнившего трупа IE6, который вообще не знает о чем это все, ну да и фиг с ним =) Все, изыди.
UPD: Спасибо хабраюзеру NickyX3 за интересное уточнение:
<link rel="icon" type="image/png" href="favicon.png" />
Особенно под впечатлением владельцы айфонов и точей, т.к. для них мы делаем красивую иконюшку размером 57×57 (можно кстати и больше, но это стандартный размер иконки на ланч-скрине), подключая ее так:
<link rel="apple-touch-icon" href="apple-touch-favicon.png"/>
Над записью витает дух уже почти сгнившего трупа IE6, который вообще не знает о чем это все, ну да и фиг с ним =) Все, изыди.
UPD: Спасибо хабраюзеру NickyX3 за интересное уточнение:
Автор забыл указать, что иконда для springboard тачей и яблофонов будет в таком варианте закруглена по углам и на нее будет наложен блик автоматически самоим девайсом. Для избежания этого (совсем красивая кастом иконка) вместо apple-touch-icon следует написать apple-touch-icon-precomposed.
+108
Linux в организации…
2 min
4.8KНередко, при обсуждении возможности установки линукса в малом бизнесе, все упирается в проблемы запуска под ним программ 1C и тому подобных. Однако, существует простой, элегантный, хотя и не бесплатный, способ эту проблему обойти — терминальный доступ. На все рабочие места ставится линукс с возможностью терминального доступа. На один компьютер — виндовый сервер терминалов. Нужна 1С — лезем в терминал и работаем, при этом еще и быстро работаем, не гоняя DBF-ы по сети. Все остальное, почта, документы, интернет — уже бесплатно под линуксом…
Разумеется, стоимость Microsoft Windows Terminal Server достаточно высока и может перекрыть всю выгоду от внедрения Линукса, но — есть варианты…
Разумеется, стоимость Microsoft Windows Terminal Server достаточно высока и может перекрыть всю выгоду от внедрения Линукса, но — есть варианты…
+45
RightSignature или правильные подписи документов он-лайн
4 min
1.5K![logo1](http://abrdev.com/wp-content/uploads/2009/03/logo1.png)
Решений для документооборота, включая системы, интегрированные с цифровыми подписями, есть на рынке также достаточно много, как самостоятельных, так и компонентов других систем, CRM, бухгалтерских и т.п. Но онлайн этот бум как то оминул, хотя все больше и больше компаний используют виртуальные офисы или даже вообще полностью онлайновое общение всех сотрудников. Так что спрос на онлайновые системы работы с документами должен быть. И должен быть удовлетворен. Этим и занялся стартап RightSignature.
+17
Создание сайта из готовых компонентов на примере сайта заказа еды в офис
14 min
8.6KВ окрестностях нашего офиса нет приличного общепита, поэтому обеды нам привозят на заказ из одного кафэ. Заказ осуществляется за день (на понедельник заказ делается с пятницы), по телефону, с перечислением всех блюд и их количества (в случае если заказ не изменился относительно вчерашнего достаточно просто сказать это). Как компания, занимающаяся разработкой ПО, преимущественно веб, мы до недавнего времени жили по принципу «Сапожник без сапог», и весь учет заказов велся ответсвенным за заказ еды человеком на листочке, в случае изменения заказа нужно было писать письмо этому ответственному человеку, а он уже пересчитывал общий заказ.
Выкроив немного свободного времени в перерыве между проектами реализовал (именно реализовал, а не написал — почему именно так, расскажу немного ниже) систему для заказа еды. За основу, как нетрудно догадаться исходя из тематики блога, была взята CMS Drupal, которая является моим основным инструментом уже около полутора лет.
Цели данного топика:
Итак, что должно быть реализовано в проекте:
Выкроив немного свободного времени в перерыве между проектами реализовал (именно реализовал, а не написал — почему именно так, расскажу немного ниже) систему для заказа еды. За основу, как нетрудно догадаться исходя из тематики блога, была взята CMS Drupal, которая является моим основным инструментом уже около полутора лет.
Цели данного топика:
- Показать новичкам на довольно простом примере, как создается сайт невысокой сложности на CMS Drupal
- Кратко расказать про несколько основных модулей — как правило они применяются в 90% проектов на друпале
- Показать как можно собрать сайт на друпале из готовых компонентов, не написав при этом ни одной строчки кода (на самом деле будет пара строк кода, но немного не в том виде, как он обычно пишется =))
Итак, что должно быть реализовано в проекте:
- Меню — список блюд, разделенных на категории, с возможностью описания блюд
- Индивидуальные заказы — пользователь может сделать и заказ, просмотреть его содержимое и изменить
- Сводный заказ — список всех заказаных пользователями блюд с указанием их количества
- Возможность делиться впечатлениями о блюдах — тут просто возможность комментирования и рейтингования
+88
Запуск торрентов с мобильника по фотографии DVD
1 min
724Вы пришли в магазин DVD-дисков и выбрали хороший фильм. Но вместо того, чтобы покупать, просто фотографируете его камерой своего смартфона на платформе Android. Когда приходите домой — фильм лежит на диске вашего ПК. Именно так работает программа Torrent Droid.
Torrent Droid победил на конкурсе, который проводил сайт Androidandme по созданию программы по сканированию штрих-кодов смартфоном G1 и автоматической загрузке торрентов. Видимо, идея витала в воздухе, а запускать торренты с мобильника — весьма востребованная задача. Главное, чтобы всё работало автоматически и к моменту прихода пользователя домой фильм уже был скачан.
Окончательная версия Torrent Droid появится примерно через месяц на сайте Zerofate. Хотя уже сейчас в ней работает основной функционал, что и запечатлено на видео.
via TorrentFreak
Torrent Droid победил на конкурсе, который проводил сайт Androidandme по созданию программы по сканированию штрих-кодов смартфоном G1 и автоматической загрузке торрентов. Видимо, идея витала в воздухе, а запускать торренты с мобильника — весьма востребованная задача. Главное, чтобы всё работало автоматически и к моменту прихода пользователя домой фильм уже был скачан.
Окончательная версия Torrent Droid появится примерно через месяц на сайте Zerofate. Хотя уже сейчас в ней работает основной функционал, что и запечатлено на видео.
via TorrentFreak
+83
JS Charts — генератор графиков и схем.
1 min
16K![image](https://habrastorage.org/getpro/habr/post_images/12c/709/32b/12c70932b0fa09dd4ba18dde8a0014fa.png)
JS Charts является бесплатным JavaScript-генератором графиков и схем, который требует минимум знаний программирования. С JS Charts рисование диаграмм становится простой и легкой задачей. Он не требует никаких дополнительных плагинов и серверных модулей. Просто подключите скрипты, подготовьте данные для схемы в XML или массиве JavaScript и ваша таблица готова.
+61
Восстановление базы MySQL из бинарных логов
2 min
43KБазы данных иногда пропадают. Человеческий фактор и всё-такое… Если вы не делали бекапов (а надо бы) или они уже устарели, не отчаивайтесь, — есть ещё возможность восстановить утерянную информацию.![](https://habrastorage.org/getpro/habr/post_images/842/75d/bb3/84275dbb38214aafef60cd7f25bebcfa.gif)
![](https://habrastorage.org/getpro/habr/post_images/842/75d/bb3/84275dbb38214aafef60cd7f25bebcfa.gif)
+55
Быстрая перекраска вещей на сайте
2 min
2K![image](http://goodd.ru/change/2.jpg)
Существуют моменты когда необходимо предоставить пользователям выбор цвета какой либо вещи. Есть несколько способов выхода из этой ситуации.
Здесь я покажу очень простой и незамысловатый способ быстрой перекраски, на примере iPod Shuffle.
+142
Контрол-навигация
2 min
1.7KНельзя не заметить, что в рунете всё бóльшую популярность набирает т. н. контрол-навигация: перемещение по страницам одного уровня с помощью сочетаний Ctrl + ← и Ctrl + →. Некоторые товарищи даже неуютно себя чувствуют, когда попадают на сайт, не поддерживающий листание страниц с клавиатуры.
Почему эта функциональность до сих пор не реализована в самих браузерах?
Почему эта функциональность до сих пор не реализована в самих браузерах?
+28
Разметка. Transitional vs Strict
4 min
7.2K![XHTML Strict](https://habr.com/images/px.gif#%3D%22http%3A%2F%2Fimg261.imageshack.us%2Fimg261%2F2826%2Fvalidxhtmlrobotse5.png%22)
Тема эта нетривиальна; преимущества и недостатки того или иного способа валидации на первый взгляд не всегда являются явными. Поэтому я решил что упомянуть о них еще раз будет не лишним.
В последнее время, многие редакторы и CMS'ки автоматически проставляют DOCTYPE для документа, что само по себе является прорывом, но к сожалению этого недостаточно, так как зачастую это именно Transitional схема. Начинающие разработчики не уделяют этому должного внимания, а зачастую вобще не подозревают что у них есть выбор.
+134
Хранение файлов в MySQL и их быстрая раздача
3 min
97KДумаю у многих возникала необходимость хранить файлы, связанные с записью в таблице. Это может быть картинка к новости, аватар, загруженный пользователем файл — да все, что угодно. Обычно в этому случае поступают просто — файл ложится в файловую систему, а ссылка на него — в запись БД.
Но у такого классического похода множество недостатков:
Больше о проблемах, возникающих при хранении файлов отдельно от БД можно почитать в презентации SQL Antipatterns, раздел Phantom Files, страница 60. Кстати, автор презентации предлагает решение — хранить файлы прямо в БД, в поле типа BLOB. Правда следует замечание, что это должно быть взвешенное решение в каждом конкретном случае. Ведь при таком способе хранения файлов вебсервер должен при каждом запросе вызывать некий скрипт, который будет извлекать файл из БД и отдавать пользователю, что неминуемо отрицательно скажется на производительности.
Для поиска решения данной проблемы был проведен мозговой штурм и придумано несколько вариантов решения проблемы:
Но у такого классического похода множество недостатков:
- файлы не удаляются при удалении соответствующей записи БД
- проблемы при одновременной попытке обновления файла
- нарушение синхронизации между БД и файловой системой при откате транзакции
- при резервном копировании и восстановлении информации в БД может возникнуть рассинхронизация с файловой системой
- файлы не подчиняются ограничениям доступа, наложенным с помощью БД
Больше о проблемах, возникающих при хранении файлов отдельно от БД можно почитать в презентации SQL Antipatterns, раздел Phantom Files, страница 60. Кстати, автор презентации предлагает решение — хранить файлы прямо в БД, в поле типа BLOB. Правда следует замечание, что это должно быть взвешенное решение в каждом конкретном случае. Ведь при таком способе хранения файлов вебсервер должен при каждом запросе вызывать некий скрипт, который будет извлекать файл из БД и отдавать пользователю, что неминуемо отрицательно скажется на производительности.
Для поиска решения данной проблемы был проведен мозговой штурм и придумано несколько вариантов решения проблемы:
+47
Верстка скругленных границ и острых углов
4 min
21KСложность элементов интерфейса увеличивается с каждым новым макетом, что доставляет немало хлопот верстальщикам. Развивающиеся технологии позволяют создавать в WEBе сложные приложения (Google не даст мне соврать), поэтому дизайнеры себя не сдерживают и рисуют всё более навороченные вещи. Как правило, это приводит к большому количеству графики на страницах.
В этой статье приводится пара полезных на взгляд автора рецептов. Возможны вы уже с ними знакомы, а возможно вынесите для себя что-то новое, решать вам.
В этой статье приводится пара полезных на взгляд автора рецептов. Возможны вы уже с ними знакомы, а возможно вынесите для себя что-то новое, решать вам.
+176
Концепт механизма исправления опечаток
2 min
1.3K![](http://habradigest.ru/garbage/images/r0.jpg)
Иногда при быстром наборе можно спутать пару клавиш, перепутать порядок, забыть букву ну и плюс существуют еще прочие мелкие опечатки, всем знакомые. Есть ошибки и грубее, но часто они объясняются не неграмотностью автора, а многими другими факторами. Тут то и пригодился бы механизм исправления опечаток. Ниже под катом, я хотел бы представить свой простой концепт, который, по-моему, применим на любом ресурсе.
+73
Предпроектная документация: что это и почему она так важна?
4 min
18KСреди моих знакомых нет ни одного, кто любил бы писать технические задания или что-то вроде этого. Чертить на салфетках планы захвата вселенной, собирать лэйауты из разноцветных стикеров, шлифовать концепцию в голове и на словах – это все любят и умеют делать, а вот сесть и как следует записать…
Меня, например, любой шаблон серьезного документа погружает в глубочайшую тупку.
У моих знакомых очень много хороших идей, но с таким подходом, слава богу, что дело редко доходит до производства. Почему? Плохо продуманные проекты редко бывают успешными. Либо команда по уши вязнет в тех работах, которые не были видны в начале, либо получается кривоватый, плохо приспособленный к жизни гоблин. Плохо масштабируемый к тому же.
Меня, например, любой шаблон серьезного документа погружает в глубочайшую тупку.
У моих знакомых очень много хороших идей, но с таким подходом, слава богу, что дело редко доходит до производства. Почему? Плохо продуманные проекты редко бывают успешными. Либо команда по уши вязнет в тех работах, которые не были видны в начале, либо получается кривоватый, плохо приспособленный к жизни гоблин. Плохо масштабируемый к тому же.
+45
Свободные векторные карты для GPS
1 min
5.8KНе так давно став «администратором» usb-шного gps-приемника и Asus eeePC 901, я задался вопросом поиска подходящего софта для организации GPS-навигатора на базе eeePC.
На данный момент мною было найдено две программы, более-менее обладающих нужным функционалом: gpsdrive и navit. Первая мне как-то не очень понравилась и ковыряния с нею были отложены на потом, а вот со второй софтинкой я поковырялся более основательно.
Благодаря наботу скриптов, navit поддерживает множество различных форматов векторных карт (в том числе карты от garmin). Но меня больше интересовали открытые и свободные источники.
На данный момент мною было найдено две программы, более-менее обладающих нужным функционалом: gpsdrive и navit. Первая мне как-то не очень понравилась и ковыряния с нею были отложены на потом, а вот со второй софтинкой я поковырялся более основательно.
Благодаря наботу скриптов, navit поддерживает множество различных форматов векторных карт (в том числе карты от garmin). Но меня больше интересовали открытые и свободные источники.
+34
Безопасная загрузка изображений на сервер. Часть вторая
7 min
28KTranslation
Это вторая часть перевода. Начинать прочтение лучше с первой.
Итак, после применения описанных в первой части методов, мы можем прекратить волноваться? К сожалению, нет. То, какие расширения файла будут переданы транслятору PHP, будет зависеть от конфигурации сервера. Разработчик часто не знает и не контролирует конфигурацию веб-сервера. Мы видели веб-серверы, с такой конфигурацией, что файлы .html и .js выполнялись как php. Некоторые веб-приложения могут потребовать, чтобы файлы .gif или .jpeg интерпретировались PHP (это часто случается, когда изображения, например графы и диаграммы, динамически строятся на сервере самим PHP).
Даже если мы знаем точно, какие расширения файла интерпретируются PHP, у нас нет никакой гарантии, что это не изменится в будущем, когда другие приложения будут установлены на сервер. К тому времени можно забыть, что безопасность нашего сервера зависит от этих изменений.
Итак, после применения описанных в первой части методов, мы можем прекратить волноваться? К сожалению, нет. То, какие расширения файла будут переданы транслятору PHP, будет зависеть от конфигурации сервера. Разработчик часто не знает и не контролирует конфигурацию веб-сервера. Мы видели веб-серверы, с такой конфигурацией, что файлы .html и .js выполнялись как php. Некоторые веб-приложения могут потребовать, чтобы файлы .gif или .jpeg интерпретировались PHP (это часто случается, когда изображения, например графы и диаграммы, динамически строятся на сервере самим PHP).
Даже если мы знаем точно, какие расширения файла интерпретируются PHP, у нас нет никакой гарантии, что это не изменится в будущем, когда другие приложения будут установлены на сервер. К тому времени можно забыть, что безопасность нашего сервера зависит от этих изменений.
+55
Безопасная загрузка изображений на сервер. Часть первая
10 min
137KTranslation
В данной статье демонстрируются основные уязвимости веб-приложений по загрузке файлов на сервер и способы их избежать. В статье приведены самые азы, в врят-ли она будет интересна профессионалам. Но тем неменее — это должен знать каждый PHP-разработчик.
Различные веб-приложения позволяют пользователям загружать файлы. Форумы позволяют пользователям загружать «аватары». Фотогалереи позволяют загружать фотографии. Социальные сети предоставляют возможности по загрузке изображений, видео, и т.д. Блоги позволяют загружать опять же аватарки и/или изображения.
Часто загрузка файлов без обеспечения надлежащего контроля безопасности приводит к образованию уязвимостей, которые, как показывает практика, стали настоящей проблемой в веб-приложениях на PHP.
Проводимые тесты показали, что многие веб-приложения имеют множество проблем с безопасностью. Эти «дыры» предоставляют злоумышленникам обширные возможности совершать несанкционированные действия, начиная с просмотра любого файла на сервере и закачивания выполнением произвольного кода. Эта статья рассказывает об основных «дырах» безопасности и способах их избежать.
Различные веб-приложения позволяют пользователям загружать файлы. Форумы позволяют пользователям загружать «аватары». Фотогалереи позволяют загружать фотографии. Социальные сети предоставляют возможности по загрузке изображений, видео, и т.д. Блоги позволяют загружать опять же аватарки и/или изображения.
Часто загрузка файлов без обеспечения надлежащего контроля безопасности приводит к образованию уязвимостей, которые, как показывает практика, стали настоящей проблемой в веб-приложениях на PHP.
Проводимые тесты показали, что многие веб-приложения имеют множество проблем с безопасностью. Эти «дыры» предоставляют злоумышленникам обширные возможности совершать несанкционированные действия, начиная с просмотра любого файла на сервере и закачивания выполнением произвольного кода. Эта статья рассказывает об основных «дырах» безопасности и способах их избежать.
+61
1000 замечательных иконок для веб страниц
1 min
6.6KFugue Icons
![image](http://www.pinvoke.com/icon/image/fugue.png)
Отличный пак из 1000 иконок в размере 16x16
Эти иконки распространяются по лицензии Creative Commons Attribution 3.0 license.
Ссылка на сайт
Скачать пак | Посмотреть иконки (1199.25 КБ)
+69
Специальные HTML-символы в TinyMCE и в других WYSIWYG-редакторах
1 min
2.8KСегодня один клиент пожаловался, что никак не может на своем сайте, разработанном на Joomla, вставить самый обычный специальный символ Δ, который прописывается с помощью HTML-entity:
И действительно, оказалось, что этот символ не сохраняется в тексте, не зависимо от того, добавляете ли вы его с помощью кнопки «Insert Custom Character», или просто вставляете, переключившись в режим HTML. В итоге, символ просто заменяется на вопросик (кодировка сайта, при этом, UTF8).
Подозреваю, что аналогичная проблема и со многими другими специальными HTML-символами.
Для Joomla я нашел только один выход (этот совет приведен здесь: www.compassdesigns.net/joomla-blog/Editing-HTML-in-a-Joomla-Module-or-Article.html): при необходимости пользоваться такими символами, нужно создать отдельного пользователя и в качестве редактора прописать ему «No Editor». В этом случае все спец. символы сохраняются нормально. Очевидно, что это не очень «красивый» выход, все-таки нужно перелогиниваться и обладать некоторыми навыками HTML-кодирования, к тому же необходимо все время помнить, какие материалы можно редактировать в WYSIWYG-редакторе, а какие нельзя.
Может быть, кто-нибудь знает альтернативные решения? Или посоветует более надежный/удобный визуальный редактор для Joomla (и, возможно, других CMS)?
UPDATE: Проблема была в версии Joomla (у клиента стоит еще Joomla 1.5.2). По крайней мере, на последней (1.5.7) все работает правильно.
Δ
И действительно, оказалось, что этот символ не сохраняется в тексте, не зависимо от того, добавляете ли вы его с помощью кнопки «Insert Custom Character», или просто вставляете, переключившись в режим HTML. В итоге, символ просто заменяется на вопросик (кодировка сайта, при этом, UTF8).
Подозреваю, что аналогичная проблема и со многими другими специальными HTML-символами.
Для Joomla я нашел только один выход (этот совет приведен здесь: www.compassdesigns.net/joomla-blog/Editing-HTML-in-a-Joomla-Module-or-Article.html): при необходимости пользоваться такими символами, нужно создать отдельного пользователя и в качестве редактора прописать ему «No Editor». В этом случае все спец. символы сохраняются нормально. Очевидно, что это не очень «красивый» выход, все-таки нужно перелогиниваться и обладать некоторыми навыками HTML-кодирования, к тому же необходимо все время помнить, какие материалы можно редактировать в WYSIWYG-редакторе, а какие нельзя.
Может быть, кто-нибудь знает альтернативные решения? Или посоветует более надежный/удобный визуальный редактор для Joomla (и, возможно, других CMS)?
UPDATE: Проблема была в версии Joomla (у клиента стоит еще Joomla 1.5.2). По крайней мере, на последней (1.5.7) все работает правильно.
-2
Information
- Rating
- Does not participate
- Registered
- Activity