В этом посте я процитирую свой ответ на одно из заданий в олимпиаде по веб-технологиям, о которой я писал в прошлом посте. Задание формулировалось примерно так: придумать концепт файлохранилища, полезного для пользователя и владельца, описать возможные схемы монетизации.
Вот что мне удалось сочинить за час, который я потратил на это задание:
Для удобства я сразу оговорю значение терминов, которыми буду пользоваться ниже.
Учитывая последние тенденции (которые некоторыми называются web 3.
для создания успешного файлового хранилища стоит следовать трем важным условиям:
Изначально я хотел лишь кратко описать саму олимпиаду и подробнее сфокусироваться на одном из заданий в ней, но рассказ вышел большим и я разделил пост на два. Так что тут будет немного жизнеописания, а в следующем - вещи уже более близкие тематике этого блога.
Речь пойдет об олимпиаде по веб-технологиям под эгидой Бийского технологического института, прошедшей в апреле этого года. Узнал я о ней еще в начале семестра благодаря объявлению, появившемуся на доске деканата. Поскольку веб-программирование - это мой профиль, то я заинтересовался и тут же залез на сайт. К моему удивлению, зарегистрироваться там не получилось: регистрация начиналась за месяц до начала олимпиады, а пресс-релиз был повешен гораздо раньше. Какой смысл этого ограничения - понятия не имею, пришлось ставить себе напоминалку в огранайзер, чтобы тупо не забыть про них.
Публикую перевод статьи API Battle Plans: Fighting for Next, давным-давно сделанный мною в рамках акции 50 лучших SEO-постов 2009 года и благополуно забытый в пылу учебы и работы
Только чейчас наткнулся на него в Гуглодоках, когда искал кое-какие материалы по одной интересующей меня теме. Тем не менее, лучше уж поздно, чем никогда, посему публикую.
В наши дни API достигли такого уровня зрелости, что все три ключевые компоненты Веба - контент, службы и данные можно легко получить с их помощью. Результатом этого процесса стало ничто иное как рождение новго Веба. Более умного Веба, предоставляющего более релевантную информацию, более удобного и дающего более широкие возможности получения прибыли. После того, как стали очевидны преимущества этого подхода, у современных компаний не осталось иного выбора, кроме как поддерживать суперструктуру API, столпами которой являются контент, сервисы, разработка и аналитика.
Хочу поделиться ссылками на пару моих статей на хабре, одна из которых была написана в апреле, потом неизвестно как попала в черновики и сегодня была возврращена на место. Вторая была написана вчера по мотивам возникшей у меня проблемы.
Периодически перед многими из вебмастеров возникает задача определить хостера, у которого живет тот или иной сайт. Мотивация для этого бывает самая разная, как простое любопытство, так и желание поселиться по соседству на хорошем и стабильном хостинге или наоборот не вляпаться в такое соседство. В этом посте я приведу несколько известных мне методов с их достоинствами и недостатками.
На досуге добавляя в фильтры AdBlock очередную баннерную сеть, подумал такую очевидную мысль: все популярные и как бы доходные рекламные сети, включая столь любимые публикой тизеры, уже давно добавлены во все возможные баннерорезки, коих уже немало. Одно только расширение AdBlock для Firefox, которым я успешно пользуюсь, имеет 813599 загрузок в неделю и является самым популярным расширением. Кроме того, во многих популярных виндоовых фаерволах, включая Outpost, уже давно есть встроенные баннерорезки.
Оценили насколько сужается аудитория и потенциальная прибыль?
Я должен был написать этот пост еще очень давно, три недели назад. Но все как-то руки не доходили. Теперь наконец дошли. Моя любимая девушка сделала мне вот такой замечательный подарок на День Вебмастера:
А вот и прототип:
Кстати, всем рекомендую. Кто держит (держал) кошку, тот поймет 
Свершилось!
И она работает!
Общее впечатление - быстрая, но еще шероховато. Есть небольшие глюки с рендерингом страниц и обработкой форм, но в основном юзабельно. Галерея скриншотов,в котороя я постарался отразить все асперты работы с новым браузером - под катом.
If you are using long file (more than 4Gb) support for C standart library (via defining _FILE_OFFSET_BITS 64 macro or something else) and lint shows you errors like this:
(88) warning: constant in conditional context
argument unused in function
(18) sig in sighandler
value type declared inconsistently
lseek llib-lc:unistd.h(396) long () :: unistd.h(396) long long ()
tell llib-lc:unistd.h(515) long () :: unistd.h(515) long long ()
ftello llib-lc:stdio.h(319) long () :: stdio.h(319) long long ()
function returns value which is always ignored
fflush fprintf printf fwrite
signal alarm lseek64
function argument ( number ) declared inconsistently
ftruncate (arg 2) llib-lc:unistd.h(320) long :: unistd.h(320) long long
lockf (arg 3) llib-lc:unistd.h(394) long :: unistd.h(394) long long
lseek (arg 2) llib-lc:unistd.h(396) long :: unistd.h(396) long long
pread (arg 4) llib-lc:unistd.h(410) long :: unistd.h(410) long long
pwrite (arg 4) llib-lc:unistd.h(434) long :: unistd.h(434) long long
truncate (arg 2) llib-lc:unistd.h(520) long :: unistd.h(520) long long
fseeko (arg 2) llib-lc:stdio.h(318) long :: stdio.h(318) long long
declared global, could be static
min main.c(13)
sighandler main.c(18)
fp main.c(11)
...Don't panic! It's known bug:
The lint(1B) utility will generate spurious error messages when _FILE_OFFSET_BITS is set to 64. This is because the binary libc lint library, /usr/lib/llib-lc.ln, is compiled only for the standard interfaces, not with _FILE_OFFSET_BITS set to 64. This deficiency hampers static error-checking for programs compiled in the large file compilation environment. (Source)
Damn it, I lost 3 hours before I found it.
Для одного из моих проектов, над которым я сейчас активно работаю понадобилось сделать возможность выполнения длинных запросов с "обратной связью", т. е. с возможностью отсылки информации о ходе выполнения скрипта. Поскольку подключать к проекту какого-нибудь монстра типа JQuery ради одной этой возможности я посчитал нецелесообразным, решено было написать свою простую библиотеку, выполняющую эту функцию. результат я представляю вам в этом посте.
Всем нам приходится писать html-код, кому-то больше, кому-то меньше.
В частности, у меня написание шаблонов для моих движков зачастую занимает до трети времени от разработки. Главная причина тому - сравнительная многословность html, да и css. Так бы я и мучился, если бы очередной раз не наткнулся на статью по Zen Coding.
Если кратко, то Zen Coding - это целое семейство плагинов к разным редакторам, позволяющее писать сокращенный код, который потом будет автоматически развернут с полную конструкцию. Вот вам сразу пример:
div#page>h3.title+ul.menu>li.item*3>a Будет развернут в конструкцию
Последние комментарии
/Alek$/ 5 дней 8 часов назад
/Alek$/ 5 дней 8 часов назад
/vitako/ 6 дней 3 часа назад
/Alek$/ 6 дней 19 часов назад
/Alek$/ 6 дней 19 часов назад
/Гость/ 1 неделя 6 часов назад
/alexei/ 1 неделя 1 день назад
/Alexei/ 1 неделя 3 дня назад
/Alek$/ 1 неделя 3 дня назад
/Fktrctq/ 1 неделя 4 дня назад