Pull to refresh
8
0
crazyprog @crazyprog

User

Send message

Сайты компаний — Актив или Пассив?

Reading time6 min
Views1.9K

Сайты компаний — Актив или Пассив?



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

Например, считается нормальным и они готовы платить за профессиональный 30 секундный ролик, больше сотни тысяч долларов и полмиллиона за двух недельный показ его по центральным каналам (это называется имиджевая реклама с непонятной отдачей). Но когда им говоришь, что их сайт, который будет лицом их компании и с ним они будут работать на протяжение 5 лет, может стоить 20, 30, 40 или 50 тысяч долларов, и что на его развитие нужно тратить хотя бы тысяч 100 долларов в год, они не понимают, почему так дорого.

Причин, почему так происходит много:
Читать дальше →

Скучный эксплойт для одной широкой дыры

Reading time2 min
Views2.3K
Хаброюзер allan_sundry во флейме про ботнет под Mac OS X не поверил, что недавняя уязвимость в Linux-овом udev действительно широка, глубока и в ряде случаев даже опасна. В ответ я решил написать этот топик, демонстрирующий, что создать рабочий эксплойт для опубликованной уязвимости нередко может даже фриланствующий студент-недоучка, потратив пару-тройку часов воскресным вечером.
Читать дальше →

Инфраструктура современного офиса — 3

Reading time6 min
Views10K
Что-то я затянул с очередной серией, но тому были причины: от кучи неотложных дел на работе, до раненого автомобиля :(
Ладно, в этот раз — организация внешних вводов, вопросы построения телефонии и некоторые аспекты построения Wi-fi. Как и в предыдущих сериях, я не претендую на глубину раскрытия техники, стремясь лишь показать основные варианты развития элементов инфраструктуры. Предыдущие серии про инфраструктуру здесь и здесь (а здесь — бонус трек про оборудование Allied Telesis).

Провайдерские вводы


Существует целый спектр возможных решений, каждое из которых следует принимать руководствуясь масштабом организации, бюджетом и внешними факторами. Рассмотрим основные по пунктам:
  1. Вы — небольшая компания (до десяти человек), заезжаете в подвал жилого дома или, пуще того, в квартиру на первом этаже жилого здания.
    В такой ситуации с выбором провайдера привередничать не приходится и надо рассчитывать на наличие в здании местного провайдера (если их несколько — вам сильно повезло, конкуренция повышает уровень сервиса). Можно пытаться экономить, оформляя интернет на физическое лицо, однако, в таком случае, стоит быть готовым к тому, что в прайм-тайм местечковый провайдер решит, например, «поменять сетевое оборудование», что приведет к неприятному простою в работе. Целесообразно в такой ситуации предусмотреть резерв хотя бы в виде мобильного интернета (Skylink, Yota, Edge/GPRS) — критически важное письмо в таком случае, пусть медленно, но доползёт. Телефония в такой ситуации, как правило, исполняется в виде «медно-волоконного канала» городского провайдера.
  2. Вы все еще небольшая компания, но сидите в гараже (бытовке, ларьке, домике на дереве, здании на территории промзоны).
    Все безрадостно — ваш единственный выход — радиоканал до ближайшей точки присутствия скоростного интернета, либо, если шансов добить по радио нету — интернет через сотовый телефон. Если шансы все же есть, запасайтесь дальнобойными направленными антеннами и шагайте в ближайшее место, где может быть интернет. В моей практике был случай, когда автосервис около года работал через стрим, который находился в двух километрах от. Проблемы в таком случае те же, что и в предыдущем (нестабильность местного кабельного провайдера), правда, в случае использования длинного Wi-Fi линка вы еще и от погоды зависеть будете. В сильный дождь или снегопад перебои — не редкость..
  3. Вы заезжаете в бизнес-центр.
    Все уже лучше, но не без специфики: как правило владельцы бизнес центров уже договорились с одним-двумя большими провайдерами, что ограничивает ваш выбор (притащить своего провайдера удастся только если вы — очень большая компания с серьезной арендной ставкой). Плюс ситуации в том, что канал организуют быстро, и, скорее всего без проблем. Явный минус — один — монополисты в здании тарифы могут воротить очень грустные.
  4. (моя ситуация) Вы заезжаете в отдельно стоящее здание.
    Геморрой страшный, но при должном подходе получится очень красиво :) Подробно об этом сценарии — чуть ниже.

Итак, отдельно стоящее здание. Учитывая, что вы — хозяин положения, при организации провайдерских вводов стоит учитывать следующее:
  • Отказоустойчивость (любой более-менее серьезный маршрутизатор умеет выбирать живой канал). По возможности закладывайте два независимых канала от независимых провайдеров;
  • Дороговизна (более серьезный провайдер будет просить более серьезных денег). При этом более дешевый провайдер будет, скорее всего, грешить всеми детскими болезнями домовых сетей — падения канала в течение дня, « плановые профилактические работы» в прайм-тайм и прочие прелести
  • Время подключения. Если в предыдущих сценариях вас скорее всего подключили бы в течение дня-двух, то построение индивидуального канала может стать вопросом нескольких месяцев (тут и согласования с городскими кабельными службами, и неповоротливость больших провайдеров, и проблемы со строителями..)

И все? А где же телефония и WiFi? В конце-концов и про вводы можно поподробнее..

Плагин для jQuery, реализующий наследование

Reading time2 min
Views2.5K
Наверняка, многие разработчики, использующие jQuery, сталкиваются в крупных проектах, использующих ООП, с проблемами наследования. Так как самому недавно пришлось озадачиться подобной проблемой, решил написать плагин для jQuery, помогающий в этом нелегком деле. Некоторые идеи заимствованы из Base2.
Читать дальше →

PHP — «горизонтальное наследование»

Level of difficultyMedium
Reading time2 min
Views1.7K
Итак, в новой версии PHP появилась интересный концепт — «horizontal inheritance» (горизонтальное наследование), который был добавлен в язык с помощью конструкции «namespace». Это позволяет объединять функциональность из нескольких классов без наследования их от одного класса-родителя. Вместо этого, теперь можно объединять методы и свойства из разных классов в одном классе через использование пространства имен.
Читать дальше →

Составляем договор дизайн-студии, часть 1

Reading time2 min
Views14K
Итак, начинаю публикацию целой серии долгожданных заметок о договорах и прочей документации дизайн-студии. Сразу скажу, что договор студии Made выкладывать сюда или куда-нибудь еще я не буду, у нас политика такая. Хотя, какие-то его части, быть может, и появятся в открытом доступе. Вместо рыбы я дам вам удочку.
Читать дальше →

«Подъем» социальных сообществ за счет пользователей

Reading time2 min
Views711
Размещаю пост в стартапах, ибо цель поста — знакомство с одним из методов «подъема» проекта без первоначальных вложений. Итак, ссылаемость на сайт необходима для различных целей. В некоторых случаях это получение дополнительного трафика с сообществ, блогов. Иногда это влияние на ранжирование поисковых систем. Иногда даже просто увеличение параметров сайта. Методы получения ссылок на сайт тоже достаточно известны, о них много сказано и повторяться не буду, так как речь не об этом.

Решил поделиться способом получения ссылок с сайтов сообществ, блогов, форумов для социальной сети (для seo — практически естественных ссылок).
Читать дальше →

PHP 5.3: встречаем анонимные функции

Level of difficultyMedium
Reading time3 min
Views3.8K
Итак в феврале этого года была выпущена новая стабильная версия PHP — PHP 5.3.0. Эта версия включает множество новых функций и улучшений, в том числе:
Читать дальше →

Прототипирование как коммуникация

Reading time6 min
Views2.2K
Продолжение статьи о мышлении дизайнера.
«Процесс важнее результата. Когда результат довлеет над процессом, вы начинаете с того места откуда начинали. Когда процесс ведет нас, мы не знаем, куда мы зайдем, но если окажемся там, где нужно, то сразу поймем это»
Bruce Mau, «Неполный манифест творческого роста»



Я продолжу противопоставлять ТЗ и прототип, чтобы выявить неочевидные свойства прототипа и эффекты от его применения. Противопоставление ТЗ и прототипа стоит понимать как противопоставление того, что у вас есть в производственном процессе, с тем, что в нём может появиться.

Участники проектных команд обмениваются результатами своего труда, выстраиваясь в своеобразную пищевую цепочку. Как правило, для каждого личный результат довлеет над общим процессом. Пока каждый выполняет свою работу, её содержание, мотивы работника и критерии принимаемых им решений остаются скрытыми для остальных участников. Часто у аналитика/дизайнера/кодера/разработчика понимание проекта формируется только на основе того, что он получил от предыдущего звена в цепочке, и только в момент постановки задачи и estimation. При этом — он концентрируется на своём локальном участке работы, не проводя каких-либо дополнительных расследований и не оценивая упущенных возможностей, перспектив, последствий и взаимосвязей результатов своей работы с результатами других участников.
Читать дальше →

Кастомизация input type=”file” с помощью CSS

Reading time2 min
Views65K
Есть несколько способов кастомизации (изменения внешнего вида) инпутов такого типа. Все они обладают своими плюсами и минусами, но, на мой взгляд, предложенный мною вариант, выигрывает даже со своими минусами, коих всего один.
Читать дальше →

Монетизация веб-сервисов: бизнес модели

Reading time4 min
Views5.6K
Мы потратили несколько часов, исследуя онлайн-сервисы из списка Webware 100 Top Web Apps 2008 и изучая их бизнес модели. Следующая диаграмма показывает результаты исследования — 34% сервисов используют рекламную модель, 12% различные схемы подписки, 8% продают виртуальные товары (чаще всего в виде данных для скачивания), такая же доля сервисов предлагает сопутствующие продукты (обычно большие компании-разработчики предлагают бесплатный вариант продукта для привлечения к их платформе) и еще 8% сервисов используют схему «оплата за использование».
Читать дальше →

Mysql Documentor — простая утилита для документирования баз данных Mysql 5+

Reading time2 min
Views1.4K

Как мы дошли до жизни такой

Тут мы хотели вставить красивую и короткую презентацию из Slideshare, но она, кажется, не понравились НЛО =)

Что умеет

Mysql Documentor читает схему данных, комментарии к таблицам и полям, а затем при помощи несложного шаблона Smarty генерирует html-описание.

Сегодня MyDoc умеет:
  • строить список таблиц с комментариями;
  • строить список полей каждой таблицы с комментариями;
  • для каждой таблицы строить список ключей;
  • при наличии внешних ключей делать ссылки с полей на связанные таблицы;
  • работать на всех платформах, на которых работает php с расширением mysqli;
  • smarty-синтаксис шаблонов позволяет строить документацию любого дизайна и формата (в том числе не html);
  • удобно настраивается прямо в запускающем скрипте.

Что не умеет, но скоро будет

  • нет статистики по таблицам и полям;
  • никак не обрабатывается и не строится документация по триггерам и хранимым процедурам.

Что ещё в ближайших планах

  • группировка таблиц на основании тэгов из комментариев;
  • вывод схемы БД в формате Graphwiz.

Как получить

Просто скачайте его с нашего сайта (там же есть пример построенной документации).

Как это заставить работать

Вообще-то заставлять никого не придётся. Достаточно заглянуть в файл README.TXT (он сейчас по-английски) и выполнить нехитрые инструкции. Вам потребуется всего пара минут.

И, что, бесплатно?

Да. Mysql Documentor распространяется в исходных текстах на условии лицензии GPL. Кстати, на info@softuniq.com можно (и нужно!) присылать свои контрибьюты. Svn-репозиторий скоро будет.

Что дальше?

Разработка утилиты идёт полным ходом. За новостями удобно следить, подписавшись на RSS-ленту нашего уютного бложега. =)

Атомарная группировка, или Ни шагу назад!

Reading time8 min
Views17K

0. Присказка


В некотором царстве, в некотором государстве жил-был программист. Звали его, как полагается, Иван. Был он настоящим спецом, обладал всеми Тремя Великими Добродетелями Программиста, то есть был ленив, спесив и нетерпелив. Случилась в том царстве печаль великая: кризис. И выгнали Ваню с работы без выходного пособия. Горевал Ваня долго, а потом собрался с духом и разослал резюме по всему белу свету. Долго ли, коротко ли, вызвали Ваню на собеседование. Требований к соискателю было много, но главное — требовалось хорошо владеть регулярными выражениями. До собеседования — почти месяц, готовься — не хочу. Будучи человеком серьёзным, готовиться Иван решил обстоятельно. 3 недели и 3 дня он лежал на печи, почитывал Хабр и думал, как же неслыханно обстоятельно он будет готовиться. До собеседования остался 1 день. Ванюша мысленно обругал работодателей, которые назначают собеседование так скоро, что совсем подготовиться не успеваешь, слез с печи, сдал пивные бутылки и на вырученные деньги купил книжку по регексам. Читал он её до полного изнеможения, пока не отключился. Утром мы найдём сонную физиономию Ванюши лежащей, как на подушке, на этой самой книжке под Хабракатом.
Читать дальше →

Основы репликации в MySQL

Reading time10 min
Views333K
С репликацией серверов MySQL я познакомился относительно недавно, и по мере проведения разных опытов с настройкой, записывал, что у меня получалось. Когда материала набралось достаточно много, появилась идея написать эту статью. Я постарался собрать советы и решения по некоторым самым основным вопросам, с которыми я столкнулся. По ходу дела я буду давать ссылки на документацию и другие источники. Не могу претендовать на полноту описания, но надеюсь, что статья будет полезной.
Читать дальше →

Jabber WebCam Bot

Reading time4 min
Views2.4K
Эта идея пришла мне как-то случайно. Получить снимок с вэб камеры, которая находится дома, находясь на работе или в другом городе и при этом не расшаривать камеру через вэб… И не коннектиться по ssh… Забавно… Что, если получить его одним запросом в джаббере! Звучит бредово, но я занялся реализацией этого бреда!
Читать дальше →

Винные Трюки или установка компонентов Windows в Wine

Reading time1 min
Views34K
Удивлен, что на Хабре все еще нет описания программы winetricks и плюсов, которые она может дать.

Многие сталкивались с ситуацией, когда Windows-программе требуется какой-то компонент для запуска. Например, .NET, Mono или DirectX.

Устанавливать их руками — долго и муторно — нужно искать дистрибутивы, скачивать, указывать параметры… Особенно в ситуации, когда установка wine выполняется впервые и ставить нужно много.

Сообщество Wine решило эту проблему.

Рассмотрим подробнее.

Прописываем dpi в PNG с помощью PHP

Reading time2 min
Views5.3K
Понадобилось мне тут вдруг для одной прикладной задачи генерировать PNG-шки на PHP, чтобы затем их можно было вставлять в документы и распечатывать. Но вот проблема, никак с помощью GD в PHP при сохранении нельзя задать разрешение в dpi, а ведь это очень важно при печати. С ImageMagick мне связываться не хотелось, поэтому я быстренько нагуглил PNG (Portable Network Graphics) Specification и написал вот такой код:
Читать дальше →

Тюнинг nginx

Reading time8 min
Views97K
Статья написана по материалам моего доклада на CodeCamp 2009.

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

У любого проекта всегда есть что оптимизировать: можно почитать советы по оптимизации на webo.in, установить eaccelerator, memcache, проиндексировать поисковые поля в базе данных. Я предполагаю, что все это уже проделано, а сайт по прежнему тормозит.

Пришло время оптимизировать nginx...

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

Как сбросить пароль в Linux

Reading time3 min
Views457K

Давайте рассмотрим несколько способов сбрасывания системного пароля в Linux. Вы наверное знаете, что у пользователя root есть права на изменение пароля любого пользователя в системе. А что если вы забыли пароль от рута? Вот об этом и пойдет речь в статье.

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

Information

Rating
Does not participate
Location
Зеленоград, Москва и Московская обл., Россия
Registered
Activity