Search
Write a publication
Pull to refresh
13
0

User

Send message

Обновление FreeBSD от и до

Reading time7 min
Views90K
Как часто бывает, зацепив одну, на первый взгляд, маленькую тему, с желанием быстро все узнать и все настроить, приходится закапываться в дремучие дебри и читать не одну статью и/или мануал. Так и получилось у меня в этот раз. Изначально было желание просто узнать, как обновлять порты (или исходные тексты портов) чтоб при желании, устанавливать не устаревшее ПО, но пришлось закопаться немного по глубже.
Эта статья предназначена только для новичков во FreeBSD, опытные профи тут вообще ни чего нового, думаю, для себя не найдут. По этому, если вы на «ты» с этой системой, можете смело пропускать дальнейший текст.
Информации на эту тему хватает, но из 6-10 заметок и статей я взял, так скажем, лучшие наработки и опыт, и записал их в одну, с ссылками на более полные статьи, так что при желании можно получить более подробную информацию по каждому пункту.
Содержание статьи:
1) Выбор ПО для обновления исходных текстов.
2) Процесс обновления исходных текстов системы и портов.
3) Обновление системы(ядро и мир).
4) Обновление портов при помощи pkg_*, portupgrade, portdowngrade.
5) Заключение
6) Дополнительная литература.
Читать дальше →

Использование опыта тестирования реляционной СУБД для технологии NoSQL

Reading time5 min
Views10K
Tarantool — это открытое, высокопроизводительное хранилище данных. Такие характеристики системы, как простота и производительность, во многом определяют область её применимости. На шкале решений для хранения данных Tarantool находится где-то посередине между традиционными реляционными системами, такими как MySQL, и решениями для кэширования данных, такими как memcached. В основе системы лежит персистентное хранилище данных, полностью отображённое в оперативную память, и высокопроизводительные индексы для доступа к данным на основе хэшей и бинарных деревьев.

В мои первые месяцы работы над Tarantool я попытался создать инструментарий тестирования, похожий на тот, что был в моём предыдущем проекте с открытым исходным кодом — MySQL.
Читать дальше →

Как ретро радиоприемники Tivoli завоевали рынок аудиотехники

Reading time3 min
Views35K
История компании Tivoli – это классический пример реализации так называемой «американской мечты», когда упорство, труд, талант, и, конечно, немного везения позволяют достичь весьма серьезных результатов в бизнесе даже без огромных финансовых вложений.

image

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

И да придет Haskell…

Reading time3 min
Views2.6K
Странно, что это пришло мне в голову — я просто смотрел на Common Lisp и объяснение принципов его работы, ну еще немного на инструментарий Haskell.

И да придет Haskell…

Haskell — она как «та девчонка», ну вы знаете…
Читать дальше →

Установка и настройка FreeBSD 8.1 и 7.3 под Hyper-V 2008 R2

Reading time2 min
Views13K
Пару лет назад я писал про запуск FreeBSD 6.3 и 7.0 под Hyper-V версии 1. FreeBSD развивается, да и Hyper-V не стоит на месте. Проблемы, которые я описывал ранее, исчезли и теперь FreeBSD гораздо лучше работает в нашей системе виртуализации.

Сегодня мы будем устанавливать FreeBSD 8.1 и 7.3, потому что именно они являются официально рекомендуемыми на данный момент. Так же проверим, как система работает в многопроцессорной конфигурации, и какие скорости устройства показывают во время тестов.
Читать дальше →

Три частых ошибки в общении с клиентом

Reading time4 min
Views22K
По долгу службы нам часто приходится общаться с фрилансерами. Это общение часто выходит за рабочие рамки, становясь приятельско-дружеским. В приватных беседах о тяготах фрилансерской жизни часто приходилось слышать об одинаковых проблемах, возникающих у них при общении с непосредственным клиентом. Давайте рассмотрим три совета, которые приходилось давать чаще всего:
  • Не ограничивайте общение перепиской
  • Объясняйте клиенту рабочий процесс
  • Главный вопрос на все случаи жизни: «Какова цель?»

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

Кэширование на Drupal

Reading time3 min
Views18K
Недавно я столкнулся с тем, что мой сайт на Drupal стал тормозить. Причем, сайт не особо то и посещаемый. В конечном счете, проблема решилась переходом на другой хостинг (shared-хостинг от Руцентра не выдерживал никак), но рассказать я хочу не об этом, а о проблемах ускорения Drupal путем кэширования, с которыми я столкнулся.

Итак, какое инструменты для ускорения существуют на Drupal?

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

ColoBridge – из любви к интернету

Reading time2 min
Views22K

Здравствуйте, уважаемые хабраюзеры!


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

Как справляться с запланированной недоступностью веб-сайта

Reading time2 min
Views11K
Томер Хонен и Каспар Шимански, Команда качества поиска, Дублин

Нас часто спрашивают, может ли недоступность сайта во время сканирования Googlebot’ом плохо сказаться на видимостЬ сайта в результатах поиска Google. Иногда сайт бывает недоступен по техническим причинам, например когда он закрыт на обслуживание или редизайн. Подобные ситуации, не обозначенные должным способом, могут негативно повлиять на репутацию сайта. Мы не можем гарантировать индексирование или ранжирование, но существуют методы, которые позволяют справляться с запланированным простоем веб-сайта без отрицательного действия на его видимость в результатах поиска.

Например, при запросе страницы сайта вместо возврата кода статуса HTTP 404 (Не найдено) или показа ошибки на веб-странице с кодом статуса 200 (OK), лучше всего возвратить код статуса 503 (Сервис недоступен), который сообщает поисковику, что простой временный. Более того, это позволяет веб-мастерам предоставлять посетителям и ботам информацию о том, когда веб-сайт восстановит свою работу.

Если известны продолжительность простоя в секундах или предположительные дата и время завершения простоя, то они могут быть указаны в поле заголовка Retry-After, используемом гуглботом для определения подходящего момента переиндексации URL.

Ответ сервера кодом состояния 503 может быть хорошим решением и в других ситуациях. Хорошей практикой считается возвращать код состояния 503 «Сервис недоступен» для ошибок сервера, недоступности сайта, перерасхода трафика или страниц-заглушек (в том числе и «Сайт закрыт на реконструкцию»). На случай запланированных простоев сервера, таких как ремонт аппаратного обеспечения, стоит иметь отдельный сервер, который бы возвращал код 503.

Тем не менее, важно не относиться к коду статуса 503 как к постоянному решению проблемы: продолжительная выдача 503 может рассматриваться как знак, что сервер стал постоянно недоступен, в результате чего мы можем удалить URL из индекса Google.

header('HTTP/1.1 503 Service Temporarily Unavailable');
header('Retry-After: Sat, 8 Oct 2011 18:27:00 GMT');

Так может выглядеть информация в header-e при использовании PHP, если вы настроите ответ 503 (Сервис недоступен).

Подобно тому, как можно сделать страницы 404 более полезными для пользователей, следует также правильно настроить сообщения 503, объясняющие пользователям текущую ситуацию и предоставляющие им информацию о том, когда сайт снова будет доступен.

Дополнительная информация о кодах состояния HTTP предоставлена на странице RFC 2616.

API для сайта, хватит изобретать велосипед!

Reading time2 min
Views36K
Поступила задача – создать API для сайта scribbler.ru, которое позволило бы сторонним разработчикам работать с ресурсами сайта, писать приложения как внутри, в виде swf файла, так и находящиеся вне сайта, допустим десктопное приложение, которое может получать/отправлять почту пользователям сайта.

Всем известно, что популярные российские проекты (vkontakte.ru, mail.ru и какие-либо другие) имеют свой API. Для примера я начал было их осваивать и смотреть, как же они реализованы, и знаете что, каждый сайт пишет API так, как ему вздумается (как разработчики считают правильным), т.е. API mail.ru и vkontakte.ru сильно разнятся в своих архитектурах, грубо говоря они не схожи, что, я думаю, усложняет жизнь разработчикам, сперва пишем свои классы, работающие с API, под vkontake, потом пишем свои классы под mail.ru и т.д.

Возник вопрос: «А как же решили эту задачу «забугорные» сайты?»
Читать дальше →

Типы HTTP-запросов и философия REST

Reading time4 min
Views1M
Этот пост — ответ на вопрос, заданный в комментарии к одной из моих статей.

В статье я хочу рассказать, что же из себя представляют HTTP-методы GET/POST/PUT/DELETE и другие, для чего они были придуманы и как их использовать в соответствии с REST.
Читать дальше →

Realplexor: производительный Comet-сервер с API для PHP и Javascript (realtime)

Reading time5 min
Views21K
Dklab Realplexor — это Comet-сервер, позволяющий держать одновремено сотни тысяч долгоживущих открытых HTTP-соединений с браузерами пользователей. JavaScript-код, запущенный в браузере, подписывается на один или несколько каналов Realplexor-а и вешает обработчик на поступление данных. Сервер может в любой момент записать сообщение в один из таких каналов, и оно будет моментально передано всем подписчикам (хоть одному, хоть тысяче), в режиме реального времени и с минимальной нагрузкой для сервера.

Хотя идейным вдохновителем Realplexor-а был предыдущий проект, dklab_multiplexor, код Realplexor-а не имеет с ним практически ничего общего. Поэтому я и решил сменить название. Несопоставимы также возможности продуктов (см. ниже), да и размер кода увеличился в 7 раз.

Realtime-направление сейчас довольно активно развивается на Западе, и в нем особенно выделяется продукт Tornado — событийно-ориентированный веб-сервер на языке Python. Правда, Tornado — это не столько Comet-сервер, сколько инструмент, с помощью которого можно запрограммировать «в том числе» и Comet-сервер. Ключевые слова: Comet, Push Server, Long polling, JavaScript, XMLHttpRequest.

Главные преимущества Realplexor-а:
  • простота использования: наличие API для JavaScript, API для PHP (в будущем — и для других языков);
  • простота конфигурирования;
  • широкий функционал (либо отстутствующий, либо недоступный напрямую в аналогах).

Лучше один раз увидеть...


Я сделал отдельную онлайн-песочницу, чтобы продемонстрировать функционал нового Realplexor-а и то, для чего вообще нужны Comet-серверы (кстати, это физически тот же самый демон Realplexor-а, что использует мой новый стартап РуТвит). Песочница реализует что-то типа многоканального чата: зайдя, вы получите как будто бы 2 независимых «браузера», запущенных на разных компьютерах.
  • Верхний «браузер» отображает каналы — в них моментально появляются новые сообщения, как только кто-то их туда отправляет на стороне сервера. Конечно же, эту страницу могут просматривать одновременно сотни тысяч пользователей, и они все будут видеть одно и то же (реализовано с использованием Realplexor JavaScript API). Можно «на лету» добавлять новые каналы (подписка) или скрывать уже имеющиеся (отписка).
  • Нижний браузер содержит формы, позволяющие добавлять сообщение в произвольный канал, указав его имя. Форма AJAX-ом отправляется на сервер, и уже там PHP-скрипт записывает в Realplexor полученный текст через PHP API. (И да, так можно чатиться.)
По умолчанию на странице открыто 3 канала с именами Alpha, Beta и RuTvit. Но, конечно, вы можете закрыть эти каналы и открыть новые. Вот, например, страница с единственным открытым каналом по имени Habrahabr: http://rutvit.ru/realplexor/demo?ids=Habrahabr.



Песочница демонстрирует следующие функции Realplexor-а:
Читать дальше →

Как устроен AES

Reading time7 min
Views318K

О чём эта статья



Долгое время я считал, что криптографические алгоритмы шифрования и хеширования, вроде AES и MD5, устроены очень сложно и написать их совсем не просто, даже имея под рукой полную документацию. Запутанные реализации этих алгоритмов на разных языках программирования только укрепляли это мнение. Но недавно у меня появилось много свободного времени и я решил разобраться в этих алгоритмах и написать их. Оказалось, что они очень просто устроены и для их реализации нужно совсем немного времени.

В этой статье я напишу как устроен алгоритм шифрования AES (которого иногда называют Rijndael) и напишу его на JavaScript. Почему на JavaScript? Чтобы запустить программу на этом языке, нужен только браузер в котором вы читаете эту статью. Чтобы запустить программу, скажем, на C, нужен компилятор и найдётся совсем мало желающих, готовых потратить время на компиляцию кода из какой то статьи. В конце есть ссылка по которой можно скачать архив с html страницей и несколькими js файлами — это пример реализации AES на JavaScript.

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

CodeIgniter 2.0.0 Released

Reading time1 min
Views1.7K
Этого ждали больше года [назад]. Месяцев десять назад был топик о том, что CI2 — soon. С тех пор были перестановки в команде разработчиков, да и так перспективы кодигнайтера были сомнительны. Сейчас большая часть поклонников ушла с CI на Yii или Kohana, а то и вовсе с php на питон или руби. Но вот совершенно неожиданно на сайте фреймворка объявили о релизе.

Большую часть плюшек можно обозреть, например, по вышеозначенному топику. А в официальном анонсе заявлено следующее.
  • В минимальных требованиях php 5.1.
  • Драйверы.
  • Application Packages.
  • Удалён скаффолдинг и класс валидации, удалены плагины в пользу хелперов.
  • Изменения в роутере, формах.
  • Кеш стал не только файловым, но и APC и memcache.
  • Командная строка для крона.
  • 50+ багфиксов.
  • 20+ усовершенствований и твиков.

На чём разработчики собираются работать дальше — это: документация, библиотека аутентификации, более объектная модель.

Делать выводы предоставляю заинтересованным в том.

Базовые рекомендации для повышения безопасности *nix веб-сервера

Reading time3 min
Views25K
Вдохновившись статьей о поиске следов взлома, решил написать статью о предупреждении взлома и базовых шагах для сведения возможности взлома сервера к минимуму.
Все шаги крайне важны, и невозможно выделить самый-самый важный, либо второстепенный.
Данная статья не является пошаговой инструкцией, а лишь списком рекомендуемых шагов.
Читать дальше →

Сборник советов и фактов по оптимизации PHP-скриптов

Reading time9 min
Views45K
image Эту статью давно стоило переписать (слишком много «экономии на спичках»), но руки не доходят. Пускай весит и напоминает о том, как мы глупы в молодости.
Одним из основных критериев успешности любого интернет-ресурса является скорость его работы и с каждым годом пользователи становятся всё более и более требовательными по этому критерию. Оптимизация работы php-скиптов — это один из методов обеспечения скорости работы системы.
В этой статье я бы хотел представить на суд общественности свой сборник советов и фактов по оптимизации скриптов. Сборник собирался мною достаточно долго, основан на нескольких источниках и личных экспериментах.
Читать дальше →

Прикручиваем GTD к Remember The Milk

Reading time9 min
Views16K
Добрый день, уважаемые хабравчане. В данной топике я бы хотел представить вольный перевод статьи Дуга Айртона, о том, как приспособить сервис Remember The Milk (далее RTM) для работы с системой Getting This Done. О самой GTD писать нет смысла — это уже много раз делали до меня. А вот на чем стоит остановиться – так это на допиливании любимого многими Remember The Milk под эту систему.

Честно говоря, GTD я увлекся год назад и, переехав на Android, стал искать удобную программу для работы с задачами и списками. Перебрав довольно много приложений, я наткнулся на парочку программ синхронизации с сервисом RTM и пошел копать в этом направлении. Скажем так, прямо «из коробки» RTM мало приспособлен для работы с контекстами. Но если применить смекалку…

Скажу сразу – для себя я выбрал другую систему и другие программы. Если интересно почему, то вот тут и тут я об этом довольно подробно рассказываю. Сегодня же мне бы хотелось остановится именно на RTM – сервисе в России довольно популярном и почти что локализованным.
Читать дальше →

Загрузка файлов с помощью HTML5 и сколько раз мы сказали нехорошие слова

Reading time3 min
Views7.4K
Стояла задача: найти или создать загрузчик файлов на сервер, использующий возможности HTML5 для мультизагрузки. Загрузчик должен:
  • отправлять методом POST любые параметры вместе с файлом;
  • отправлять куки;
  • предоставлять возможность выбора сразу нескольких файлов (или нескольких тысяч – тут как пользователь захочет);
  • отправлять файлы группами;
  • файлы собираются в группы до определенного количества мегабайт, или до определенного количества файлов в группе; (это связано с тем, что на сервере есть ограничение на размер POST запроса и на количество файлов в одном пакете)

Именно по причине отсутствия опыта работы с флешем, для создания загрузчика был выбран только JavaScript.

Итак, что из этого получилось

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

Динамический favicon или отображаем карму, не обновляя страницу

Reading time5 min
Views12K
image
У каждого из нас, полагаю, в любимом браузере постоянно открыты несколько вкладок одновременно. Не раз бывают случаи, что и заголовка вкладки не видно — лишь favicon'ки. Но часто они информации, кроме как отображения логотипа сайта, не дают. И, наверное, зря. Но мы постараемся и здесь использовать это место (целых 16px*16px!) так, как хотим. По крайней мере, будем знать, как это можно сделать.
Читать дальше →

Amazon анонсирует сервис для отправки электронной почты (Amazon SES)

Reading time2 min
Views5.8K
Вчера получил письмо примерно следующего содержания:
Мы рады анонсировать бета-релиз Amazon Simple Email Service (Amazon SES) — хорошо масштабируемого и дешевого сервиса для отправки электронной почты для бизнеса и разработчиков. Amazon SES избавляет от необходимости построения собственного дорогостоящего и сложного решения или лицензирования, установки и обслуживания готового решения. Новый сервис интегрируется с другими сервисами Amazon (AWS), упрощая отправку писем из приложений, работающих на таких платформах как Amazon EC2. С Amazon SES не нужно заключать долгосрочные договора и проводить согласования — просто наслаждайтесь низкими тарифами за количество отправленных писем + траффик.
Читать дальше →

Information

Rating
Does not participate
Registered
Activity