Search
Write a publication
Pull to refresh
232
0.1
ainu @ainu

Пользователь

Send message

Открытое письмо стартапщикам

Reading time4 min
Views588
Доброго всем дня. Прошу прощения за пафосное название, но по-другому сформулировать не получилось. Дело в том, что сегодня, как говорят психологи, у меня случился инсайт. Несколько вопросов, которые долго мучили меня, разрешились, и я взял на себя смелость поделиться этим с сообществом, полагая, что это может быть полезно стартапщикам.
Начну, пожалуй, с самих вопросов:
1. Почему, когда ты запускаешь интернет-стартап, все вокруг начинают спрашивать «Зачем ты это делаешь? Кому это нужно? Как будешь зарабатывать?» и тому подобное, а когда, например, организовываешь IT-компанию, никто ничего не спрашивает?
2. Что заставляет людей уже через секунду после поста на хабре о твоем новом проекте совершенно не заслужено унизить тебя в коментах и облить грязью твое детище?
3. Почему так мало появляется действительно популярных проектов, ведь хороших идей достаточно, ну, если и не у нас, то в мире, так почему же?
4. Что необходимо, чтобы твой проект был популярен?
Мои варианты ответов под катом.
Читать дальше →

Откуда действительно берутся посредственные сайты

Reading time4 min
Views980
Я не то что не согласен с предыдущим оратором, я просто долгое время принимал участие в создании посредственных сайтов. Не в рунете конечно, но здесь у нас происходит такая же фигня.

Сперва стоит определиться, и далее не путать посредственные сайты с откровенно идиотскими сайтами. Первые вроде как ничего сами по себе, но особого восторга не вызывают, юзабилити где-то на среднем уровне, косячки вылезают и прочие неудобства. В общем, клиенту нравится, а гордиться таким сайтом никто не будет. Другое дело идиотские сайты — это большинство поделки фрилансеров-недоучек, у которых единственный плюс, что они стоят 2 тыщи рублей штука. Последние я не рассматриваю.

Итак, процесс создания посредственного сайта…

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

Верстка на HTML5

Reading time3 min
Views65K
html5

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

JetBrains WebIDE — третья публичная сборка

Reading time1 min
Views3.2K
Вышла третья предварительная сборка (номер 445) новой среды разработки для PHP — JetBrains Web IDE PHP developers edition.
В этой версии мы приняли во внимания пожелания пользователей (в том числе и фидбэк с хабра:) и добавили несколько новых функций — YAML, дополнение членов объявленных через теги PHPDOC @property и method, а также усовершенствовали дебаггер. Исправлено множество различных ошибок и серьезно улучшена производительность автодополнения в редакторе.

Загрузка новой версии с официальной страницы «программы ранней доступности» Web IDE.
Детальный список изменений — в блоге Web IDE.

UPD: Напоминаю всем что это даже не бета — мы просто демонстрируем над чем работаем. Вы главное пишите чего ВАМ в вашем любимом IDE не хватает и что вы больше всего цените — а мы позаботимся чтобы появилась достойная альтернатива!

YAML + structure PHPDOC completion

dklab_multiplexor: постоянное Javascript-соединение с сервером в условиях сотен тысяч онлайн-клиентов

Reading time4 min
Views6.8K
Dklab_multiplexor — это инструмент, который позволяет держать одновременно сотни тысяч долгоживущих открытых HTTP-соединений с сервером. Например, если на вашем сайте находится одновременно несколько сот тысяч посетителей, каждый из них может быть связан с сервером постоянным соединением, установленным из JavaScript. Это например, полезно при организации онлайн-чатов или мгновенных уведомлений.

Dklab_multiplexor не претендует на полную универсальность или исключительность (кстати, если знаете аналоги, близкие по простоте к multiplexor-у, пишите в комментариях). Это лишь простейший инструмент, который наконец-то дошли руки опубликовать.

Зачем это нужно?


Предположим, посетители вашего сайта могут посылать друг другу сообщения. Если получатель в момент отправки находится на сайте (просматривает какую-либо страницу), ему немедленно выдается уведомление (всплывающее окошко на JavaScript).

Данную задачу можно решить двумя способами.
  1. Неправильный способ. Раз в 10 секунд делать из JavaScript запрос на сервер для проверки, не появилось ли новых сообщений. Этот метод не работает, если на сайте одновременно находится очень большое количество пользователей, т.к. нагрузка на сервер растет слишком быстро. Кроме того, потребление трафика пользователем также оказывается крайне высоким.
  2. Правильный способ. Устанавливать постоянное и длительное соединение с сервером, ожидая поступления данных через него. Если сообщений нет, соединение просто держится открытым на протяжение нескольких минут. Если соединение по каким-либо причинам закрылось, оно вновь открывается. В итоге и трафика потребляется мало, и нагрузка на сервер оказывается невелика. Так работает GMail, Мой Круг и т. д., и именно на этом принципе построен dklab_multiplexor.
+-------------------+                    ------------------ 
| Сервер обработки  |                   |                  |   <===WAIT=== Клиент A
| и базы данных     |  ======IN=======> |   Мультиплексор  |   <===WAIT=== Клиент B
| (e.g Apache + PHP |                   |                  |   <===WAIT=== Клиент C
+-------------------+                    ------------------ 
(указаны направления установления TCP-соединений).
Читать дальше →

Загрузка видео посредством YouTube API

Reading time5 min
Views69K
Некоторое время назад по работе пришлось изучить и настроить работу сайта заказчика с YouTube, после этого для своего, как это теперь принято говорить, стартапа, я применил практически те же знания и умения. В этом небольшом посте я расскажу, как используя youtube api загружать видео файлы.
Читать дальше →

Список полезных инструментов для php разработчика

Reading time10 min
Views150K
PHP один из самых широко используемых языков для создания вебсайтов. PHP фреймворки, такие как Zend, CakePHP, CodeIgniter и т.д и open source классы и библиотеки упростили разработку.
Независимо от того, являетесь ли вы опытным разработчиком или новичком, инструменты, которые вы используете, имеют прямое влияние на вашу продуктивность. Здесь собран список действительно полезных утилит и расширений для PHP разработчиков, которые помогут ускорить разработку, и улучшит итоговое качество кода.
Читать дальше →

Redis — высокопроизводительное хранилище данных

Reading time2 min
Views102K
Бодрый день, хаброчеловеки!

Что такое Redis?


Redis — это высокопроизводительное нереляционное распределённое хранилище данных. В отличие от Memcached, который может в любой момент удалить ваши данные, вытесняя старые записи новыми, Redis хранит информацию постоянно, таким образом он похож на MemcacheDB.

Чем Redis отличается от существующих решений?


API для работы с Memcached (MemcacheDB) позволяет хранить массивы, но эти массивы будут сериализованы и сохранены как строки, таким образом атомарные операции над такими массивами не возможны.
Redis позволяет хранить как строки, так и массивы, к которым можно применять атомарные операции pop / push, делать выборки из таких массивов, выполнять сортировку элементов, получать объединения и пересечения массивов.

Производительность


110000 запросов SET в секунду, 81000 запросов GET в секунду на Linux-сервере начального уровня (тесты).

Высокая скорость работы Redis обеспечивается тем, что данные хранятся в оперативной памяти и сохраняются на диск либо через равные промежутки времени, либо при превышении определённого количества не сохранённых запросов. Из этого вытекает, что используя Redis, вы можете потерять результаты нескольких последних запросов, что вполне приемлимо для большинства веб-приложений, учитывая, что обращение к Redis по скорости сравнимо с обращением к оперативной памяти. Тем не менее, потерь можно избежать через избыточность — Redis поддерживает неблокирующую master-slave репликацию.

Sharding


Redis, как и Memcached, может работать как распределённое хранилище на многих физических серверах. Такой функционал реализуется в клиентских библиотеках, и к сожалению, «из коробки» этот функционал реализован пока только в Ruby API, однако это не мешает вам хешировать ключ самостоятельно и получать ID сервера, к которому с этим ключом обращаться.

API


API доступно для следующих языков:
  • Ruby
  • Python
  • PHP
  • Erlang
  • Tcl
  • Perl
  • Lua
  • Java


API для PHP доступно как в виде модуля, написанного на C, так и в виде PHP5 класса, который общается с Redis-сервером через сокеты, таким образом не требуется устанавливать модуль.
Кроме того существует PHP5 класс от отечественного разрабочика (с именем, заслуживающим доверия. Я серьёзно.) — IMemcacheClient. (Спасибо DYPA за наводку)

Перспективы развития


Разработка ведётся очень активно, комиты происходят почти каждый день, сейчас доступна версия Redis 0.900 (1.0 release candidate 1), которая очень скоро станет версией 1.0
В ближайшем будущем авторы обещают внедрить разные интересные фичи, в том числе и сжатие данных.

Лицензия и поддерживаемые платформы


Redis — написан на ANSI C и работает на большинстве POSIX-систем (Linux, MacOS X). Это бесплатное открытое ПО под BSD лицензией =)

Up: Rediska — удобный PHP-клиент для key-value базы Redis. Оф.сайт.

Поддерживает-ли браузер пользователя CSS в необходимом объеме?

Reading time1 min
Views1.8K
Modernizr — это небольшая простая JavaScript-библиотека, которая поможет получить ответ на вопрос поддерживает ли браузер пользователя такие технологии как:
Читать дальше →

IE8 и поддержка стандартов — transparent PNG + opacity, а также data:URI + AlphaImageLoader

Reading time1 min
Views8.3K
Наковырял пару проблем работы браузера IE8. Может кому пригодится.

Прозрачный PNG + filter:alpha(opacity)



.class{
background:url(transparent.png);
filter:alpha(opacity=50);
}

результат — прозрачные пиксели становятся черными

Лекарство


нужно применить мульти-фильтр

.class{
background:none;
filter:alpha(opacity=50) progid:DXImageTransform.Microsoft.AlphaImageLoader(src=transparent.png, sizingMethod='crop');
}


Следующая проблема нашлась благодаря предыдущей
Читать дальше →

Лучшее видео, которое я видел сегодня, заставит вас улыбаться

Reading time1 min
Views2.4K
Если это видео не заставляет вас улыбаться на оставшуюся часть дня, то вы ублюдок (перевод от слова bastard, не принимайте близко к сердцу, это не оскорбление) с холодным сердцем. Смотрите его от начала до конца и вы не пожалеете об этом.


Это сингл Stand By Me был записан неизвестными уличными музыкантами со всего мира при помощи виртуальной студии. Все началось с базового трек-вокала и гитары, записанных на улице Санта-Моника, Калифорния, уличным музыкантом Роджером Ридли. Базовая дорожка была затем отправлена в Нью-Орлеан, штат Луизиана, где слепой дед Эллиот (певец из французского квартала) добавил уже свой вокал и гитару, слушая записанный Ридли трек через наушники. В том же городе были добавлены звуки стиральной доски Чаза.

После этого данный трек был провезен через многие страны Европы, Африки и Южной Америки. Везде добавлялись множественные семплы инструментов и вокала, которые были собраны в окончательном варианте, который вы видите сейчас. Все делалось при помощи обычных ноутбука и микрофонов.

Взято отсюда, Оригинал сообщения.
UPDATE: Перенесено в блог «Звук и музыка»
UPDATE: Сайт всего проекта — www.playingforchange.com (спасибо xabk)

Linux: Установка программ не входящих в дистрибутив при помощи менеджера xstow

Reading time3 min
Views116K
Введение


Современные дистрибутивы Linux имеют в своем составе очень много софта. Проблемы с установкой/удалением/обновлением такого софта решены, можно сказать, идеально. Всем занимается менеджер пакетов. Выбрали нужный пакет, менеджер пакетов установит его. Нужно удалить — менеджер пакетов удалит и аккуратно все почистит. Но, иногда хочется, или нужно, установить программное обеспечение, не входящее в дистрибутив, или распространяющееся в исходниках, или даже в бинарниках. Как поступать в таких случаях?
Читать дальше →

Приколы от операторов службы поддержки QIWI

Reading time4 min
Views33K
Все персонажи и ситуации реальны. Записаны операторами службы поддержки пользователей QIWI.

А: абонент, О: оператор.

А: Здравствуйте! Я деньги не правильно положил, это значит я придурок и ВСЁ?!

О: Вы произвели оплату не через терминал «Киви»!(в 10ый раз)
А: Мне хоть арбуз! Чего вы меня своими фруктами кормите!!!

А: Девушка, я Вам вчера сунул, а у меня сегодня еще не упало!

О: Назовите, вашего провайдера.
А: Как я его позову, я из квартиры звоню……

О: Вы оплачивали через терминал QIWI?
А: (в сторону) Слышь, мать, она киви хочет, ниче по платежу не говорит!
Читать дальше →

Opera Unite заново открывает Веб

Reading time10 min
Views17K
image


«Облачные» вычисления и веб-приложения – теперь не одно и то же

16 июня, Норвегия, Осло – Компания Opera Software сегодня официально представила Opera Unite – новую технологию, меняющую представление об Интернете, как о клиент-серверной модели обмена информацией. Opera Unite способна сделать любой компьютер не только клиентским устройством, но и сервером. Это даёт возможность пользователям связываться с компьютерами знакомых и друзей напрямую и делиться информацией без использования онлайн-сервисов и приложений.

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

Разработчикам важно знать, что сервисы Opera Unite базируются на тех же открытых веб-стандартах, что и веб-сайты. Это существенно упрощает создание новых приложений, работающих на базе Opera Unite – разрабатывать их ничуть не сложнее, чем создавать веб-страницы.

Технология Opera Unite доступна в специальной версии браузера Opera 10, которую можно бесплатно скачать по адресу labs.opera.com.
Читать дальше →

wTorrent — web-based bittorrent клиент для Linux\BSD

Reading time2 min
Views4.8K
wTorrent — удобная графическая web-морда к популярному консольному клиенту rTorrent.

Удобен он тем, что поразительно (хотя и ожидаемо от консольной программки) не требователен к аппаратным ресурсам, прост в настройке и управлении и поддерживается большинством трекеров.

Здесь я опишу как установить надстройку над ним для управления своими торрентами через Интернет.

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

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

Panda USB and AutoRun Vaccine — лекарство от autorun-вирусов на флешке

Reading time5 min
Views26K
5 марта я написал свою статью о скрипте AUTOSTOP для защиты флешек от autorun-вирусов, получившую немалый отклик. И только я сегодня собрался писать новую статью об альтернативном (более надежном) методе, как на одном из ресурсов, в теме, посвященной обсуждению скрипта, мне подсказали программу Panda USB and AutoRun Vaccine, работающую именно по методу, который я хотел описать. Причем работающую просто блестяще! Файл autorun.inf, создаваемый ею на флешке (дабы предотвратить создание такого файла вирусом) невозможно ни удалить, ни переименовать (в чем была слабость моего скрипта), ни модифицировать, ни открыть.

image

Познакомимся с программой поближе, рассмотрим ее возможности и метод, на котором базируется принцип работы.
Читать дальше →

эффективное использование vim: «incredibly tips, part I»

Reading time4 min
Views6K
Доброго всем времени суток
стараясь сдержать свое обещанию, хочу опубликовать след. статью об редакторе vim
В статье подразумеваться что читатель уже знаком с азами работы в vim'e, она будет посвящая более эффективному использованию накопленных знаний.

tips 1...

эффективное использование vim: «from the very begining»

Reading time7 min
Views27K
«Для меня vi это Дзен.
Использование vi — это практика дзена.
Каждая команда является коаном.
Полный смысла для пользователя,
Бессмысленный для непосвященного.
Вы познаете истину каждый раз когда вы его используете.»
--reddy@lion.austin.

на сколько хорошо ты знаешь язык vim?
посмотри на клавиатуру,
можешь ли ты сказать что выполняет каждая буква?
как много ты знаешь?
как много используешь?


эффективное использование vim

Корзина в современном интернет-магазине

Reading time3 min
Views31K
Здравствуйте, хочу написать цикл статей про юзабилити веб-интерфейсов, и начну, как не странно, с корзины покупок.

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

Предупреждаю сразу — пишу я впервые, так что многое может быть изложено далеко не лучшим образом.

Итак, начнем!

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

Information

Rating
4,217-th
Date of birth
Registered
Activity