Pull to refresh
8
0
crazyprog @crazyprog

User

Send message

Определение города и региона России по IP

Reading time2 min
Views7.9K
И так, 13 Марта, 2009 16:07 появилась следующая новость на данном ресурсе "Долгожданный XML-сервис!!!".

Это событие необычайно меня обрадовало, ещё бы такой сервис на таком ресурсе и сразу ручки шаловливые зачесались!

Буквально через 10 минут был готов простейший код запроса ip, в ходе обсуждений он получился следующим (сделано на curl):

  function getip($GetRIP)
  {
    $data = "<ipquery><fields><all/></fields><ip-list><ip>".$GetRIP."</ip></ip-list></ipquery>";
    
    $ch = curl_init();
    
    curl_setopt($ch, CURLOPT_URL, "http://194.85.91.253:8090/geo/geo.html");
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_HEADER, false);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
    
    $xml = curl_exec($ch);
    curl_close($ch);
    
    //echo $xml;
    
    $messge="!<message>(.*?)</message>!si";
    
    preg_match($messge, $xml, $main_ar["message"]);
    
    if($main_ar["message"][1]!="Not found")
    {
      $district="!<district>(.*?)</district>!si";
      $region="!<region>(.*?)</region>!si";
      $town="!<city>(.*?)</city>!si";
      
      preg_match($district, $xml, $main_ar["district"]);
      preg_match($region, $xml, $main_ar["region"]);
      preg_match($town, $xml, $main_ar["city"]);
      
      $ArMain=array("FIND"=>1,"DISTRICT"=>$main_ar["district"][1], "REGION"=>$main_ar["region"][1],"TOWN"=>$main_ar["city"][1]);
      return $ArMain;    
    }
    else return array("FIND"=>0);    
  }


* This source code was highlighted with Source Code Highlighter.


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

Давайте делиться опытом. Как повысить качество хостинга для клиентов студии веб-дизайна?

Reading time4 min
Views2.7K
Меня зовут Денис, я представляю небольшой коллектив из Ростова-на-Дону. Мы достаточно серьезно исследовали проблему, поэтому под хабракатом довольно много букв :), но к сожалению, так и не нашли «свое решение», поэтому собственно я и решил написать в этот блог.

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


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

В настоящее время мы всех своих клиентов размещаем на виртуальных площадках компании Мастерхост. (Здесь и далее по тексту, довольно часто будет «всплывать» имя данной компании… Это не реклама, ни антиреклама — просто вопрос вполне предметный а из песни, как водится, слов не выкинуть.) Так вот, мы ни когда не скрывали от клиентов где размещаем проекты. В настоящее время, за хостинг мы берем сумму чуть больше стоимости тарифа «специалист». Взамен, освобождаем владельца сайта от геморроя по управлению акаунтом, общение с суппортом тоже берем на себя и все довольны :). Я почти уверен, что по примерно такой же схеме работают большинство существующих студий.

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

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

Reading time8 min
Views18K
Disclaimer: я не претендую на всю глубину изложения. Я принципиально опускаю моменты, требующие глубокого погружения в предмет, поскольку этот цикл статей не является энциклопедией инфраструктурщика. Кому надо больше — задавайте вопросы или ходите в ваш любимый поисковик :) Да, я лично готов ответить на все вопросы по существу. :)

Да, эта статья — продолжение цикла про организацию инфраструктуры современного офиса. Начало — здесь. Подоспело продолжение про телефонию, wi-fi и планирование провайдерских вводов

Как и в прошлый раз, при написании этой статьи я осознаю, что планка по объему материала взята слишком высоко — поэтому, в этот раз остановимся на вопросах организации СКС и общих аспектах организации сети (ЛВС). В следующий раз, стало быть, дойдем до беспроводных решений, телефонии и организации внешних вводов. В качестве необъявленного ранее бонус-трека последует отдельная статья о типовых решениях построения сети на оборудовании Allied Telesis.

СКС

Для специалиста по ИТ структурированная кабельная система является, по сути, базисом для всех систем, обеспечивающих функционирование офиса с точки зрения информационных технологий. Сама по себе СКС — совокупность пассивного коммутационного оборудования, обеспечивающего физическую взаимосвязь между геометрически распределенными элементами офиса. В состав СКС входит, в общем случае, следующее:
  1. Кабельная продукция (витая пара, оптические кабели, коаксиальные кабели)
  2. Коммутационные и кроссовые панели (патч-панели, плинты, муфты)
  3. Оконечные (со стороны пользователя) устройства — всевозможные розетки и разъемы. Сюда же, кстати, стоит отнести и патч-корды, соединяющие вышеуказанные розетки непосредственно с клиентским оборудованием.

В настоящее время, СКС регламентируется рядом стандартов:
  • EIA/TIA-568В Commercial Building Telecommunications Wiring Standard (американский стандарт)
  • ISO/IEC IS 11801 Information Technology. Generic cabling for customer premises (международный стандарт)
  • CENELEC EN 50173 Information Technology. Generic cabling systems (европейский стандарт)

В общем случае, проект вашей СКС должен соответствовать как минимум одному из указанных стандартов. К слову, наиболее употребимые формулировки категорий СКС — «5», «5e», «6» определены в американском стандарте. Если вы не подключены к интернет по WiFi, посмотрите на маркировку кабеля, который соединяет ваш компьютер с сетевой розеткой на стене — скорее всего, там будет присутствовать либо «5e», либо «6». По большому счету, от категории СКС зависит только теоретическая скорость передачи данных по кабелям, но об этом — чуть ниже.

А почему, кстати, сразу не воткнуть кабели в свитч — спросит въедливый читатель..

И почему же?

Хранимые процедуры в MySQL

Reading time2 min
Views27K
По долгу службы приходится глубоко разбираться с сабжем.
К сожалению, это не самое лучшее изобретение человечества, поэтому иногда приходится вбивать костыли, чтобы хоть как-то пользоваться этой штукой.
О костылях

Выборка произвольных записей в MySQL

Reading time4 min
Views108K
Есть вроде бы обычные задачи, которые можно решить сразу и не задумываясь, но при интенсивном использовании таких решений возникают проблемы, причем не маленькие. Об одной из таких задач я и хочу рассказать.
Почитать интересную статью

Расчет периодов стажа в MySQL

Reading time3 min
Views7.5K
На одном форуме задали вопрос о том, как правильно посчитать разность дат в MySQL для учета стажа сотрудника. На первый взгляд вопрос оказался простым, но при детальном рассмотрении все оказалось куда интереснее.
Читать дальше →

8 отличных хитростей jQuery

Reading time4 min
Views28K
imageКому не нравится jQuery? Это быстрая и простая javascript-библиотека стала очень популярной в 2008 году. В этой статье я собрал список восьми очень полезных jQuery-техник, советов и хитростей.
Читать дальше →

Панель наблюдения за сайтами ТОПнем

Reading time2 min
Views898
Панель ТОПнем — это возможность мониторинга за внешними показателями вашего сайта и отслеживания их изменений

ТОПнем

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

Запись гитарных аккордов HTML+CSS (пока без барре)

Reading time3 min
Views6K
Запись гитарных аккордов при помощи HTML,CSSКак обычно представляют гитарные аккорды на веб-страничках?
Картинками!

Вот только не всегда это удобно, потому что их приходиться рисовать.

Вот у меня родилась идея:
отображать гитарные аккорды используя только HTML и CSS.
Читать дальше →

Используем любой шрифт с Javascript.

Reading time3 min
Views25K
Все мы знаем прекрасные библиотеки sIFR3 и FLIR, которые на лету помогают использовать любой шрифт на веб-страницах.
Правда, с моей точки зрения, их использование (а именно установку и настройку) нельзя считать легким трудом.

Сегодня я расскажу о библиотеке Typeface.js, которая, как видно из названия, работает на чистом JavaScript.

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

PHP Speedy — наше все

Reading time2 min
Views1K
PHP SpeedyЧто такое PHP Speedy? Это набор php-скриптов, которые позволяют объединять и сжимать CSS- и JS-файлы для веб-сайта, написанного на PHP. Изначально разрабатывался как приложение к Wordpress, но сейчас получил более широкое распространение.

PHP Speedy был выбран в качестве основы для начала разработки Web Optimizer — веб-приложения, автоматизирующего клиентскую оптимизацию. Предполагается, что такое приложение можно будет максимально быстро и максимально легко развернуть на любой платформе, а оно уже само позаботится о всех действиях, связанных со скоростью загрузки страницы.

Как показала практика, клиентская оптимизация интересует большой круг людей. Но очень многих останавливает то, что нужны специальные знания для освоения этой области. Web Optimizer создается как раз, чтобы убрать этот барьер (и как наш ответ Чемберлену www.getrpo.com :).
Читать дальше →

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

Reading time6 min
Views14K
Как известно, сейчас все находятся в состоянии, именуемом «Финансовым кризисом». Пустующие офисы, безработица и все такое… Однако, существует надежда, что так длиться вечно не может, поэтому когда-нибудь и вашей конторе потребуется заехать в новый, красивый, оборудованный по последнему слову техники офис.Этот цикл статей — для тех, кто хочет понимать, из чего состоит современный офис с точки зрения ИТ-инфраструктуры — менеджеры по ИТ, руководители ИТ, старшие администраторы и просто интересующиеся. Я привожу здесь то, с чем столкнулся в процессе работы лично. По сути — предлагаю вам не набивать моих шишек :) Эта статья открывает цикл, вторая часть (про СКС и ЛВС) уже опубликована, как и продолжение про телефонию, wi-fi и планирование провайдерских вводов.По факту сбора и систематизации материала, выясняется, что в одну статью я, очевидно, не помещусь в связи с большим количеством информации, которую хочется донести. В этой статье я попробую раскрыть состав инженерных систем, составляющих работу офиса и описать один из подходов к проектированию таких систем. Полагаю, всего получится четыре статьи, которые я буду публиковать еженедельно. Буду рад соавторам, и, разумеется, возникающим вопросам.

-1. Из чего состоит современный офис?

Что же, вы (руководство компании, ваш начальник, вы сам, как руководитель своего бизнеса) решили, что пора менять офис. Поначалу, решение вызывает легкий трепет, ибо предполагает невероятный объем работы — планирование, различные согласования, надзор за исполнителями… Самое ужасное — deadline, как правило, прописан крайне жестко, и риск опоздания является напрямую финансовым риском.С другой стороны, правильный подход обеспечит вам, как минимум, исключительное удовольствие от результатов вашей работы а как максимум еще и понимание того, что все сделано правильно.Следует понимать, что как и в разработке любой сложной системы, при работе над инженерными системами здания, максимальное внимание следует уделять при планировании и проектировании, поскольку любая переработка в фазе, близкой к завершению будет крайне дорогостоящим удовольствием (особенно, при понимании того, что затрат можно было избежать при грамотном проектировании).Непосредственно, состав инженерных систем, формирующих работу здания с точки зрения IT-специалиста (слаботочных систем), включает в себя, в общем случае, следующие подсистемы:
  1. СКС — структурированная кабельная система. Под этим понятием, в первую очередь, подразумевается кабельная структура, обеспечивающая работу вычислительной сети и телефонии офиса (раскрытие темы — в статье №2)
  2. ЛВС, телефонная система и WiFi — активное сетевое оборудование (коммутаторы, маршрутизаторы, точки доступа и прочее) и телефонная станция. Я объединяю эти пункты, поскольку современная телефонная станция, как правило, содержит функции для обеспечения работы телефонов по ip, и, вообще говоря, прослеживается тенденция к тому, что все большее количество установленных АТС заточены, в первую очередь, на работу по ip (говорим о масштабах офиса от 10-15 постоянных рабочих мест) (раскрытие темы — в статье №2)
  3. Организация внешних вводов. Вопрос, скорее, строительный, но вы, как ИТ-специалист, должны четко понимать, как именно будет, например, осуществляться подключение вашей серверной к внешним коммуникациям (раскрытие темы — в статье №2)
  4. Система пожаротушения и противопожарного оповещения (раскрытие темы — в статье №3)
  5. Системы обеспечения физической безопасности: система контроля доступа, система оповещения о проникновении (в т.ч., и оповещение служб пультовой охраны о внештатных ситуациях), система видеонаблюдения (раскрытие темы — в статье №3)
  6. Система телевещания внутри офиса (например, ip-вещание или банальный НТВ+ в кабинетах руководства и переговорных) (раскрытие темы — в статье №3)
  7. Системы «интеллектуального здания» — те самые, которые будут включать свет в кабинетах руководителей по щелчку пальцев, поддерживать оптимальный климат, экономить электроэнергию, применяя всякие умные алгоритмы и так далее. (раскрытие темы — в статье №4)
  8. Система энергоснабжения всего перечисленного. Без электричества, увы, никуда поехать не удастся. К сожалению, личного опыта не везде хватает, посему отсылаю к первой части статьи Novikov« Электрика в малом и среднем офисе». Может, он и на следующие части разродится :)Я, впрочем, включу свои соображения на этот счет в качестве бонус-трека к статьям, наравне с отдельными элементами системы кондиционирования (применительно к серверным помещениям).
Я намеренно включил в этот список вещи, которые не всегда поддерживаются ИТ-службой офиса, в связи с рядом факторов:
  1. Вы (и вряд ли кто-то еще) будете обеспечивать координацию исполнителей по слаботочным системам; вообще говоря, вам сильно повезет, если подрядчик по всем слаботочным системам будет один — так намного проще. Однако, высока вероятность того, что в силу бюджетных или иных соображений, придется выбирать между несколькими или разделять фронт работ между ними
  2. (следствие из первого пункта) Вы и никто другой будете отвечать перед руководством (или перед собой, да) за результат работы; Естественно, что удовлетворенность руководства и вас будет напрямую зависеть от качества и количества реализованных «хотелок»
  3. В конце концов, современные инженерные системы, как правило высоко интегрированы с вычислительной техникой — многие системы уже напрямую, например, зависят от наличия ip и активно его используют; кроме того, зачастую многие аспекты управления инженерными системами завязаны на единый пульт управления, например, рабочее место управления системами безопасности.
А дальше?

Рецепт: Как сделать зашифрованную USB флешку?

Reading time4 min
Views149K
У каждого человека есть секреты. Личный дневник, пароль от банковского счета в Швейцарии, фотки укреплений вероятного противника, чертежи вечного двигателя, список любовниц, да мало ли что еще. Данные удобно хранить на USB флешке. Она маленькая, дешевая, емкая. Ее легко носить в кармане, просто спрятать или передать другому человеку. Но так же просто флешку потерять.

Задача: мне нужен USB флеш диск вся информация на котором зашифрованна. Когда я вставляю флешку в компьютер – она должна спрашивать пароль и без правильного пароля не расшифровываться. Флешка должна работать автономно, без установки на компьютер какого либо софта.
image
Берем любой доступный нам флеш диск и приступаем.
Читать дальше →

Zend framework — туториал: авторизация

Reading time6 min
Views9.3K
Знаю что в сети много уже таких туториалов, но я сам так же знаю что ZF очень труден на старте, но потом… все ясно и легко.
Хотелось бы облегчить эту первую стадию тем кто еще только в начале пути.

Для авторизации нам потребуется конечно же готовая таблица пользователей — минимум два поля, userName и passwordMD5.
passwordMD5 — сразу понятно что хранит пароль в неявном виде, что бы его кто то не украл в один момент.

1. Делаем форму логина.

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

Как определить стоимость своей работы

Reading time3 min
Views38K
Одно из самых трудных решений фрилансера — назначение цены за свои услуги. Если ошибетесь в цене, расплачиваться придется очень долго. Неправильная цена, в конечном счете может привести ваш бизнес к провалу.

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

В общем стоимость услуг фрилансера должна быть основана на трех факторах:
  1. Собственные потребности
  2. Стоимость услуг конкурентов
  3. Потребности рынка
Читать дальше

Заметаем следы

Reading time1 min
Views23K
Помните я про kill -9 $$ рассказывал?

Так вот, немного повторюсь: kill -9 $$ — «выход» из консоли без сохранения истории.
Как это работает: $$ — идентификатор текущего процесса консоли; kill -9 думаю объяснять не надо? Ну на всякий случай: kill -9 убивает указанный процесс (дочерние процессы также убьются, сами).

Но перед тем как бесследно исчезать из консоли не мешало бы всё таки подчистить файл ~/.bash_history, и самый интересный файл: /var/log/lastlog, именно в нём записан последний IP с которого логинились. Файл этот не обычный plain text, поэтому править его надо осторожно. Открываем и везде меняем свой IP.
В общем то его можно совсем удалить, тогда при логине в консоль вообще не будет строчки с last login, у меня на Debian, например, он сам не создается.

Таким образом, зная пароль, можно практически незаметно попасть в систему и так же незаметно оттуда исчезнуть.

Для операций с файлом lastlog нужны права root.

И пожалуй самое главное: не забывайте о том, что Linux ведет довольно подробные логи, и каждое ваше действие может быть где-то да и записано.

Обслуживание тысяч запросов в секунду на примере XBT Tracker

Reading time5 min
Views8.2K
Недавно проводили тест, результаты которого показали, что одно приложение обрабатывает 2000 запросов в секунду на скромном сервере, где это было не единственной нагрузкой. При этом результат каждого запроса записывается в 3-5 таблиц в MySQL. Честно говоря, меня такой результат удивил, поэтому решил поделиться с хабрасообществом описанием архитектуры этого приложения. Подобный подход применим от баннерных показов до чатов и микроблогов, надеюсь кому-нибудь покажется интересным.

Во-первых, это приложение однопоточное. Всё делается одним процессом, работа с сокетами — неблокирующими epoll/select, никаких ожидающих ввода/вывода потоков (threads). С развитием HTTP, сначала появлением Keep-Alive, затем AJAX и набирающим популярность COMET, количество постоянных соединений с веб-сервером растёт, на нагруженных проектах измеряется тысячами и даже десятками тысяч, и если для каждого создавать свой поток (thread) со своим стеком и постоянно переключаться между ними — ресурсов сервера очень быстро не хватит.

Второй ключевой момент — что один SELECT… WHERE pk in (k1, k2, ..., kN) выполняется быстрее, чем несколько SELECT… WHERE pk=… Выполняя работу с базой данных большими пачками можно уменьшить не только число запросов в секунду, но и общую нагрузку.
Читать дальше →

Серия 50+ советов по оптимизации PHP кода. «За» и «против» такой оптимизации. Первые 10 советов.

Reading time6 min
Views21K
Это перевод первых 10-ти советов статьи по оптимизации PHP кода. На хабре есть перевод более старой версии статьи — 40 советов по оптимизации вашего PHP-кода

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

Пишу по частям, иначе получится очень много материала сразу.

Это моя первая статья на хабре, надеюсь она получилась интересной.

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

LDAP для интернет-проекта. Часть 2

Reading time3 min
Views7.9K
Ссылки на остальные части: первая, третья, четвертая, пятая.

Продолжаю повествование.
Напомню, что в первой части мы установили OpenLDAP на два сервера и настроили между ними репликацию.

2. Настроим резервное копирование, благо это не так сложно.
Читать дальше →

Information

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