Фреймворки →  Yii — php-фреймворк

Вышла стабильная версия PHP фреймворка Yii 1.1.

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

Тестирование на основе PHPUnit.
Построитель форм.
— Возможность создания шкурок для виджетов.
— Улучшен API реляционных запросов ActiveRecord.
— В комплекте теперь поставляется набор расширений Zii, включающий виджеты для jQuery UI и другие полезные компоненты.

Полное руководство по версии 1.1 на русском языке на yiiframework.ru уже находится в актуальном состоянии.

Перевод обновлённого руководства по созданию блога будет завершён немного позже.
Скачать новые версии можно здесь: http://www.yiiframework.com/download/
0

Говнокод →  Польский говнокод

if($rs===false){
        $rs='false';
}
elseif($rs=="dup"){
        $rs = "dup";
}
elseif($rs=="bad_link"){
        $rs = "bad_link";
}
else{
        $rs = 'true';
}
1

Смешинко →  Харьковский торт. Оксана Павловна жжот

YYYY: Пиздец Славик, со мной такая история приключилась
XXXX: а ну
YYYY: Заказал у Оксаны Павловны тортик. Кидаю ей ссылку на логотип, который я хочу видеть на торте
YYYY: http://www.rost.kharkov.ua/temp/logo.jpg
YYYY: Вот такую
YYYY: Ну там спрашиваю, всё ок, сколько стоит?
YYYY: Она говорит ок, зделаем без проблем!!! Заказ принят!
YYYY: Ну и что ты думаешь? Прихожу в пятницу вечером забирать торт, и просто охуеваю
XXXX: а ну ка
YYYY: Белый торт, а на нем надпись…
«http://www.rost.kharkov.ua/temp/lo go.jpg» — вот такая надпись
YYYY: торт со ссылкой блядь!

1

PHP программирование →  Асинхронность с помощью fastcgi_finish_request()

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

Главный критерий оптимизации для клиента — это скорость ответа (т.е. время, за которое Web сервер отвечает на запрос). Если не брать во внимание клиентскую оптимизацию, есть ряд практик, позволяющих быстрее генерировать ответ клиенту (по сути без оптимизации внутренностей).

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

Если Вы счастливый обладатель связки PHP + PHP-FPM, то существует более простой (хотя и несколько ограниченный) подход для реализации асинхронности. После сборки патча php-fpm, Вам станет доступна функция:

fastcgi_finish_request();

После ее вызова из скрипта, php-fpm получает сигнал о завершении запроса (т.е. отправляет ответ Web серверу), но сам скрипт не завершается. Т.е. вся логика, которая находится после вызова этой функции будет выполнена на фоне.

Для примера рассмотрим задачу отправки письма (зачастую, весьма медленный процесс):

$to = $_POST['to'];
$body = $_POST['body'];
$subject = $_POST['subject'];

if ( $to && $body && $subject )
{
        echo 'Ваше письмо успешно отправлено';
        # После этой инструкции посетителю уйдет ответ
        fastcgi_finish_request();
        # Сама отправка будет выполнена на фоне
        mail($to, $subject, $body);
}
else
{
        echo 'Вы не ввели все необходимые данные';
}

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

Вам приходилось пользоваться fastcgi_finish_request(), и если да, то в каких случаях?
1

Что новенького →  Прогноз развития информационных технологий

В связи с 25-летием Cisco главный футуролог консалтингового подразделения Cisco IBSG Дэйв Эванс (Dave Evans) обнародовал свой прогноз дальнейшего развития технологий. Дэйв — частый гость телевизионных каналов и радиостанций США, его прогнозы охотно публикуют такие издания, как газета «Файненшл таймс» и журнал «Форбс».
По его мнению:

1. К 2029 году за 100 долларов США можно будет купить систему хранения емкостью в 11 петабайт. Такого объема памяти будет достаточно, чтобы круглосуточно проигрывать видео DVD-качества в течение 600 с лишним лет.
2. В предстоящие 10 лет скорость передачи данных в домашних сетях увеличится в 20 раз.
3. К 2013 году ежемесячный объем трафика в беспроводных сетях составит 400 петабайт (сегодня весь мировой сетевой трафик составляет 9 экзабайт в месяц).
4. К концу 2010 года на каждого жителя нашей планеты будет приходиться по миллиарду транзисторов стоимостью одна десятимиллионная американского цента каждый.
5. Интернет эволюционирует до такой степени, что сможет поддерживать мгновенные коммуникации независимо от расстояния.
6. Первый коммерческий квантовый компьютер появится к середине 2020 года.
7. К 2020 году персональный компьютер стоимостью в одну тысячу долларов США по своей вычислительной мощности сравняется с человеческим мозгом.
8. К 2030 году вычислительная мощность персонального компьютера стоимостью в одну тысячу долларов США будет равна мыслительной способности населения целого поселка.
9. К 2050 году, если к тому времени население нашей планеты составит 9 млрд людей, мощность вычислительного устройства стоимостью в одну тысячу долларов США будет равна вычислительной мощности всего человечества.
10. Сегодня мы знаем 5 процентов того, что нам станет известно через 50 лет. Другими словами, 95 процентов знаний, которые будут доступны людям к 2060 году, станут результатом открытий, сделанных в предстоящие 50 лет.
11. В ближайшие 2 года объем информации в нашем мире будет ежегодно увеличиваться в шесть раз, а объем корпоративных данных в тот же период будет ежегодно возрастать в 50 раз.
12. К 2015 году Google проиндексирует примерно 775 млрд. страниц контента.
13. К 2015 году человечество будет ежегодно создавать контент, объем которого в 92,5 миллиона раз превышает объем информации, хранящейся в библиотеке Конгресса США.
14. К 2020 году каждый житель нашей планеты будет в среднем хранить 130 терабайт персональных данных (сегодня этот объем равен 128 гигабайтам).
15. К 2015 году объем скачиваемых кинофильмов и файлов, которыми обмениваются между собой пользователи, возрастет до 100 экзабайт, что в 5 миллионов раз превышает объем информации, хранящейся в библиотеке Конгресса США.
16. К 2015 году повсеместно распространится видеосвязь, и она будет генерировать 400 экзабайт трафика, что в 20 миллионов раз превышает объем информации, хранящейся в библиотеке Конгресса США.
17. К 2015 году объем данных, которые будут генерировать телефонная связь, Интернет, электронная почта, фото — и музыкальные файлы, составит 50 экзабайт.
18. В течение двух следующих лет объем информации во Всемирной сети будет удваиваться каждые 11 часов.
19. К началу 2010 года к Сети окажутся подключены 35 млрд различных устройств, т.е. почти по 6 устройств на каждого жителя нашей планеты.
20. К 2020 году в Интернете будет работать больше устройств, чем людей.
21. С внедрением протокола IPv6 в Интернете появится такое количество электронных адресов, что каждую из известных человечеству звезд во вселенной можно будет снабдить 4,8 триллионами адресов.
22. К 2020 году каждое электронное устройство будет иметь универсальное приложение для перевода с других языков.
23. Через 5 лет любая поверхность сможет выполнять функции дисплея.
24. К 2025 году появятся первые случаи телепортации на уровне частиц.
25. К 2030 году станет возможным вживление искусственной ткани в человеческий мозг.
1

PHP программирование →  Переход от php4 к php5 (Статические члены класса. Исключения, определённые пользователем. Пространства имен)

Начало:
http://php5.com.ua/blog/php-programming/133.html
http://php5.com.ua/blog/php-programming/134.html
http://php5.com.ua/blog/php-programming/135.html

Статические члены класса


Статические члены и статические методы могут использоваться для реализации того, что в ООП называется «методы класса» и «переменные класса».

«Статическим методом класса» называют метод, который можно вызвать без создания объекта этого класса.
«Переменной класса» называют переменную, к которой можно обратиться без создания объекта этого класса (и метод доступа при этом не потребуется).

Пример: методы класса и переменные класса
<?php
class calculator {
  static public $pi = 3.14151692;

  static public function add($x,$y) {
    return $x + $y;
  }
}

$s = calculator::$pi;
$result = calculator::add(3,7);
print("$result");
?>

Исключения — это общепринятый подход к обработке ошибок и неожиданных ситуаций в таких языках как Java и C++; в PHP5 перехват исключений реализован с помощью пары «try» — «catch».

Пример: Исключения
<?php class foo {

  function divide($x,$y) {
    if($y==0) throw new Exception("деление на ноль недопустимо");
    return $x/$y;
  }
}

$x = new foo();

try {
  $x->divide(3,0);  
} catch (Exception $e) {
    echo $e->getMessage();
    echo "\n<br />\n";
    // Какие-нибудь драконовские меры
}
?>


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

Исключения, определённые пользователем


Для обработки непредвиденных проблем в ваших программах вы можете определить ваши собственные исключения. Всё, что вам нужно — это просто дополнить (extend) класс Exception, определив конструктор класса и метод getMessage.

Пример: Исключения, определённые пользователем

<?php
class WeirdProblem extends Exception {

   private $data;

   function WeirdProblem($data) {
        parent::exception();
        $this->data = $data;
    }

    function getMessage() {
        return $this->data . " вызвало какое-то странное исключение!";
    }
}
?>


Потом, для возбуждения определённого вами исключения используйте конструкцию throw new WeirdProblem($foo); если исключение происходит внутри блока try{}, то PHP5 передаст управление в «catch»-блок для обработки.

Пространства имён


В целях удобства классы и функции могут быть сгруппированы в пространства имён (namespaces).

Примечение: разработчики отказались от поддрежки этой возможности.

Пример: Пространство имён
<?php
namespace Math {

  class Complex {
    //...код...
    function __construct() {
      print("привет");
    }
  }
}

$m = new Math::Complex();
?>

Обратите внимание на синтаксис использования именного пространства для обозначения класса, объект которого мы создаём. Пример практического применения: создание одноимённых классов в разных именных пространствах; при этом классы делают отличную друг от друга работу (имея одинаковый интерфейс).
2

Смешинко →  Что с сервером случилось?

Lotox: Что с сервером случилось?
Коннект: Нащяльника, мая сервира паставиль, фрибизьдя инсталя сделаль, апачи сабраль, пыхапе патключиль, сапускаю, а ано — ажамбех пашамбе эшельбе шайтанама!
Lotox: Кирилл, если не начнешь выражаться нормально, мы найдем нового системного администратора. Повторяю вопрос — что случилось?
Коннект: Што-о?… Слуцилась… )
Lotox: Блядь )
2

Что новенького →  Must see :) Ну просто гимн уставшего багофиксера

Грустная история или «Quality в нас нема»

2

Что новенького →  В Украине изымают серверы

СБУ выходит на тропу войны – за два дня закрыто несколько сайтов политической направленности и изъято оборудование одного из крупнейших провайдеров Днепропетровска. раинского праздника Дня свободы, который страна отметила 22 ноября.

19 ноября сотрудники СБУ изъяли все серверы, находящиеся на хостинге у провайдера «Фрегат», Днепропетровск. Перед тем как продолжать стоит отметить, что были изъяты АБСОЛЮТНО ВСЕ серверы, в том числе и не принадлежащие «Фрагату», а купленные клиентами для размещение своих ресурсов. На одном из таких серверов располагался оппозиционный городской власти информационный ресурс gorod.dp.ua.

Причин, по словам СБУ две. И одна смешнее другой. Первая – распространение информации с нарушением авторских прав (пиратские программы, фильмы, музыка и т.д.). Вторая – распространение режимной засекреченной информации. Звучит убедительно, если не знать, что под этим скрывается – базы номеров ГАИ, которые можно купить на любом компьютерном рынке, а на Киевской Петровке еще и базы юридических и физических лиц. Почему тогда СБУ не изымает диски там?

Первая причина – это всего лишь предлог, уверена глава правления «Интернет Ассоциации Украины» Татьяна Попова: «По сути, сегодня под этим можно закрыть любой ресурс. Потому что любая служба, у которой есть возможность размещения пользователем любой информации, не в состоянии контролировать то, что у нее находится на сервере. Что может привести к тому, что любое издание может быть таким образом закрыто». В СБУ видимо не понимают, что интернет-провайдер не просто не может, а не должен контролировать информацию, проходящую или находящуюся на его серверах.

Изъяты на неопределенное время все серверы. Провайдер обвинен в рейдерстве и нарушению авторских прав, а также распространении секретной документации. Все письма от пользователей чьи севера были незаконно изъяты остаются без ответа. В частности были закрыты специализированные отраслевые порталы компании Сетевые медиа www.derevo.info, www.proelectro.info, www.harchovyk.com, www.meblevyk.info а также сайты изданий «Медиа-группы Проминфо» (специализированные газеты «Деревообработчик», «Электротема», журналы «Ангелятко», «Ангеляткова наука», «Real Home», «Практика управления» и др.)

Всего из-за действий СБУ пострадало несколько сотен ресурсов сети Интернет, которые до сих пор не доступны.

В этом свете заявление главы СБУ Валентина Наливайченко сделанные 20 ноября в Брюсселе о защите киберпространства выглядят интересней некуда: «Мы имеем базовый закон о борьбе с терроризмом, он очень хороший, он европейский, там вопросов нет… Но надо идти дальше: интернет-пространство, киберпреступность, кибертероризм. Там, где совсем прямые призывы к восстанию или мятежу, там мы имеем право на изъятие. Но это совсем не те полномочия, которые имеют европейские или российские спецслужбы в борьбе с терроризмом. Нужно предоставлять больше правовых оснований и СБУ, и МВД».

На этом грустные новости не заканчиваются – те, кто ждут возращения серверов со своей информацией, могут и не дождаться. 5 декаьря 2008 года из дата-центра провайдера Воля были изъяты серверы крупнейшего украинского файлообменника Infostore.org, из-за обвинений в распостранении порнографии. Серверы не возращены до сих пор, ресурс не работает, информация пользователей не восстановлена.

Источник: http://habrahabr.ru/blogs/infosecurity/76094/
2
←  сюда    туда  →
1 2 3 4 5