Pull to refresh
0
0
Сергей @b8c6

User

Send message

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

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

Под катом много букв! Чтоб не потеряться в их обилии все пункты выделены заголовками.
Читать
Total votes 144: ↑135 and ↓9+126
Comments83

Планарий. Легкое управление делами

Reading time2 min
Views1.2K
image Еще с момента поступления в университет я был постоянно в раздумьях о том, что дел-то как-то много стало, и в голове держать их все вместе сложно, поэтому пора уж заняться планированием. Было перепробовано множество способов, начиная с ежедневника и аутлука, заканчивая всевозможными сайтами. И чаще всего, тот или иной инструмент не устраивал по ряду причин.
Читать дальше →
Total votes 91: ↑87 and ↓4+83
Comments194

Два инструмента для создания шрифтов.

Reading time2 min
Views136K
Я настоящий фанат типографики, и трачу много времени на поиск и экспериментирование со всеми видами различных типов шрифтов и стилей.

В этом смысле, я также пытался создать собственные шрифты, и должен сказать, что любой человек, обладая небольшим опытом, может это сделать.
Далее освещены несколько наиболее известные (и бесплатных) инструментов для самостоятельного создания шрифтов.
Читать дальше →
Total votes 55: ↑51 and ↓4+47
Comments28

Создаем поисковый плагин для Firefox

Reading time3 min
Views7.9K
Firefox довольно простыми методами позволяет добавить себе новые поисковые движки. Хотя уже имеется большая их подборка на сайте Mozilla, но все таки там есть не все. В этом случае можно добавить плагин самому.
Читать дальше →
Total votes 52: ↑44 and ↓8+36
Comments34

Создаём парсер для ini-файлов на C++

Reading time7 min
Views38K
В данной статье я расскажу как написать свой парсер ini-файлов на C++. За основу возьмём контекстно-свободную грамматику, построенную в моей предыдущей статье. Для построения парсера будет использоваться библиотека Boost Spirit, которая позволяет строить свои собственные парсеры комбинируя готовые примитивные парсеры при помощи парсерных комбинаторов.

Важно: в данной статье предполагается, что читатель знаком с основами C++ (в том числе будет активно использоваться STL). Если вы не очень в себе уверены, то я советую сначала прочитать пару статей для новичков по С++ и по STL.
Читать дальше →
Total votes 68: ↑58 and ↓10+48
Comments43

«Возьмите эмоции с собой»

Reading time3 min
Views3.4K
image
Быть лидером – это «зажигать» людей.
Cложно быть действительно успешным лидером без эмоций.

Тот, кто считает что нужно «оставить эмоции дома» упускает множество возможностей.

Читать дальше →
Total votes 87: ↑63 and ↓24+39
Comments92

Модернизация телефона старого образца(телефон рулетка).

Reading time4 min
Views15K

Суть(цель?) проекта


— На тот момент это был проект для областных соревнований по радиоэлектронике и радиоконструированию.

Далее по списку:
— Выбрать идею — модернизация телефона.
— Создать устройство на базе микроконтроллера семейства PIC16.
— Более лучшее изучение языка ASM а так же Си.
— Создать юзабельный аппарат через который можно будет звонить.
— что нибуть еще =)
Читать дальше →
Total votes 98: ↑93 and ↓5+88
Comments52

Проверка файла на наличие / существование

Reading time2 min
Views88K
Порой мы отображаем на сайтах контент с других ресурсов: картинки или фавиконы. Некоторе браузеры просто оставят пустое место (Firefox), другие же отобразят уродский прямоугольник, явно указывая, что чего-то не хватает (IE). Как же можно средствами PHP проверить существование файла.

Есть функция file_exists(), но она хороша только для файлов в пределах нашей файловой системы, а с удаленным сервером не пройдет.

Есть вариант открывать файл на чтение и в случие ошибки констатировать факт, что файла не существует:
<?
// файл, который мы проверяем
$url = "http://url.to/favicon.ico";

// пробуем открыть файл для чтения
if (@fopen($url, "r")) {
echo "Файл существует";
} else {
echo "Файл не найден";
}
?>


Однако такой прием занимает достаточно много времени.

Есть вариант еще лучше — использовать функцию get_headers():
она делает запрос к файлу и получает все заголовки с ответом примерно в таком массиве
Array
(
[0] => HTTP/1.1 200 OK
[1] => Date: Sat, 29 May 2004 12:28:13 GMT
[2] => Server: Apache/1.3.27 (Unix) (Red-Hat/Linux)
[3] => Last-Modified: Wed, 08 Jan 2003 23:11:55 GMT
[4] => ETag: "3f80f-1b6-3e1cb03b"
[5] => Accept-Ranges: bytes
[6] => Content-Length: 438
[7] => Connection: close
[8] => Content-Type: text/html
)


Как мы видим, в нулевом элементе есть код ответа, 200 значит, что файл существует, и мы спокойно можем получить к нему доступ.
Вот код, который проверит существование файла.

<?
// файл, который мы проверяем
$url = "http://url.to/favicon.ico";
$Headers = @get_headers($url);
// проверяем ли ответ от сервера с кодом 200 - ОК
//if(preg_match("|200|", $Headers[0])) { // - немного дольше :)
if(strpos('200', $Headers[0])) {
echo "Файл существует";
} else {
echo "Файл не найден";
}
?>


Теперь сравним по времени два метода с существующей favicon и с несуществующей:
при несуществующем файле второй метод (get_headers) выигрывает на две сотые секунды.
при существующем файле оба метода показали примерно одинаковое время.
Total votes 110: ↑64 and ↓46+18
Comments79

Задания ЕГЭ по информатике

Reading time5 min
Views33K
В России все больше внедряется практика оценивания выпускников школ методом сдачи единого государственного экзамена (ЕГЭ).

Уже несколько лет в экспериментах по всей стране сдавали ЕГЭ по самым разным предметам. В этом году впервые массово будет сдаваться ЕГЭ по информатике.

Что же внутри?
Читать дальше →
Total votes 163: ↑155 and ↓8+147
Comments473

Рисоваська — «аська», в которой рисуют с друзьями

Reading time2 min
Views1.6K
Рисоваська
Сегодня мы запустили Рисоваську — скачиваемую программу, в которой можно устраивать рисованные чаты и креативные мозговые штурмы с друзьями, рисовать и постить комиксы, общаться в рисованных каналах-комьюнити.

Как это работает


После установки и регистрации у вас появляется симпатичное окошко-телевизорик, в которое приходят сообщения от друзей. В телевизоре есть разные каналы: «Все друзья» — все, что вы туда нарисуете, придет вашим друзьям, а все, что нарисуют они в этот канал, придет вам, «Новички» — канал, куда мы автоматически подписываем всех новых пользователей, чтобы они быстрее освоились в Рисоваське, «Моя песочница» — канал для опытов и развлечений, его содержимое никуда не отправляется, можно делать всё что угодно :))))
Читать дальше →
Total votes 177: ↑150 and ↓27+123
Comments199

Методы защиты веб-формы без капчи

Reading time3 min
Views61K

О чём речь?


В последнее время на Хабре было предложено довольно много идей для капчи. Сложная, умная, смешная, капча остаётся одним из основных способов защиты формы от ботов.

Однако, одновременно с этим, капча является проблемой юзабилити, поскольку заставляет пользователя выполнять лишнее действие.

В этом обзорном посте я бы хотел рассмотреть незаметные для пользователя методы защиты от ботов.

Методы защиты


Читать дальше →
Total votes 126: ↑117 and ↓9+108
Comments227

Взлом хеш-функций (2004-2006 гг.): как это было и что теперь делать?

Reading time6 min
Views31K
Двое моих знакомых, задавших в течение недели вопросы примерно одинаковые по сути (примерно в духе: «А я слышал, что MD5/SHA-1 уже взломан, почему мы до сих пор их используем ?»), подтолкнули меня к написанию этой заметки, хотя основные события, описываемые ниже, произошли уже более 3 лет назад.
Читать дальше →
Total votes 141: ↑141 and ↓0+141
Comments128

Домашний медиацентр на Intel Atom

Reading time3 min
Views17K
В след заинтересовавшей меня статьи на хабре о компактном домашнем сервере на основе платформы Mini-ITX от VIA решил описать свой опыт по сборке компактного домашнего мультимедиа-центра.
За основу я решил взять платформу Intel Atom, так как требования производительности для медиацентра несколько выше, чем для роутера — мы ведь хотим красивые визуальные эффекты и фильмы в HD смотреть!
Забегая наперед, скажу, что весь медиацентр обошелся мне чуть более чем в $250, включая доставку материнской платы из солнечной Калифорнии.

Читать дальше →
Total votes 64: ↑61 and ↓3+58
Comments114

Векторная графика в LaTeX. Пакет PGF/TikZ

Reading time7 min
Views56K
Доброго времени суток. Давно собирался рассказать о возможностях векторной графики в LaTeX, предоставляемых низкоуровневым макропакетом PGF и его расширением TikZ, а выход предыдущей статьи о пакете Xy-pic для создания диаграмм и графов и появление свободного времени сделали возможным начать работу :-).

Мне в своё время понадобилось найти и изучить какое-то гибкое средство для создания качественных векторных изображений, потому что уже достали криво масштабированные, вставленные с ужасным расширением картинки растровых форматов, портящие всё впечатление от документа, да и увеличивающие его размер в два раза из-за одной большой картинки с прямоугольником и несколькими подписями к нему. Имеющиеся возможности встроенного окружения picture весьма скудны; пакет PStricks ориентирован на язык PostScript (не работает с pdflatex, который мне необходим), хотя и может кое-что, чего не может PGF; система MetaPost, пожалуй, является наиболее мощной из всех в этой области, но функционирует с использованием отдельного интерпретатора со всеми вытекающими из этого последствиями. Таким образом, выбор пал на PGF/TikZ.


Читать дальше →
Total votes 72: ↑71 and ↓1+70
Comments17

Задачка "Hello World"

Reading time1 min
Views6.8K
Итак, вопрос знатокам: Сколько раз на экране появится заветная фраза при выполнении этой программы?

#include <iostream>
int main(int argc, char* argv[])
{
   int i = 10;
   std::cout<<"Hello World!"<<std::endl;
   // Сколько раз???
   while(i--)
   {
      // Сколько раз будет вызвана эта строка???/
      for(int j=0; j<10; j++)
         std::cout<<"Hello World!"<<std::endl;
   }
   return 0;
}
Читать дальше →
Total votes 129: ↑101 and ↓28+73
Comments183
12 ...
10

Information

Rating
Does not participate
Location
Россия
Registered
Activity