четверг, января 25, 2007

Отжыги от Sergei Kuchin
http://otl.sourceforge.net/


http://otl.sourceforge.net/otlv4_h.zip

ps. говорят что это - мегалиба.
Среднестатистический тест логера на PHP

require_once '../lib/paths.php';
require_once 'common.php';
require_once 'Logger.php';

class CPAHbE {

  var $log;
  
  function CPAHbE() {
   $this->log = &Logger::getInstance(get_class($this));
  }
  
  function CPATb($i) {
   $this->log->info("rABHO $i");
  }
  
};

$instance = new CPAHbE();
echo "HACPATb!\n";
for ($i=0; $i < 1000; $i++) {
  $instance->CPATb($i);
}
echo "BbICPATb!\n";
?>

вторник, января 16, 2007

И сново Java

ну понимаете ли... ну даже не важно для чего этот класс нужен...

package breakdowns;

import reports.TransactionReportRow;

import common.BaseBreakdown;

/**
* @author ЦЕНЗУРА class for selector by product of transaction
*/

public class ProductBreakdown extends BaseBreakdown {

    /**
     * constructor and fill products
     */

    public ProductBreakdown() {
        items.put("0", "All products");
        items.put("1", TransactionReportRow.DOLLAR_JOIN);
        items.put("2", TransactionReportRow.FREE_JOIN);
        items.put("3", TransactionReportRow.SECOND_JOIN);
        items.put("4", TransactionReportRow.SPOTCLUB_SUBSCRIPTION);
        items.put("5", TransactionReportRow.VIP_SUBSCRIPTION);
        items.put("6", TransactionReportRow.BLOCK);
        items.put("7", TransactionReportRow.REFUND);
        items.put("8", TransactionReportRow.NUDE_SHOW);
        items.put("9", TransactionReportRow.BLOCK_DISCOUNT);
    }

    /** get product name via TransactionReportRow product constants */
    public String getProduct() {
        String res = "";
        switch (getCurrent()) {
        case 0: {
            break;
        }
        case 1: {
            res = TransactionReportRow.DOLLAR_JOIN;
            break;
        }
        case 2: {
            res = TransactionReportRow.FREE_JOIN;
            break;
        }
        case 3: {
            res = TransactionReportRow.SECOND_JOIN;
            break;
        }
        case 4: {
            res = TransactionReportRow.SPOTCLUB_SUBSCRIPTION;
            break;
        }
        case 5: {
            res = TransactionReportRow.VIP_SUBSCRIPTION;
            break;
        }
        case 6: {
            res = TransactionReportRow.BLOCK;
            break;
        }
        case 7: {
            res = TransactionReportRow.REFUND;
            break;
        }
        case 8: {
            res = TransactionReportRow.NUDE_SHOW;
            break;
        }
        case 9:
            res = TransactionReportRow.BLOCK_DISCOUNT;
            break;
        }
        return res;
    }

}


где items - LinkedHashMap, проще говоря "ассоциативный массив".

вторник, января 09, 2007

Ученье - свет

В нашем славном АлтГТУ выращивают программистов по методичкам,
в одной из котрой содержатся такого рода рекомендации по написанию кода (Delphi):

procedure tsclad.put_trans(var trans:ttransistor);
// Помещает транзистор на склад
var i:integer;
  begin
    i:=self.Transistors_count;// определяем количество, содержащихся
        // в хранилище транзисторов.
    setlength(self.Transistors,i+1); // Увеличиваем на
        //единицу размерность
        // безразмерного массива

    self.Transistors[i]:=trans;// Копируем в конец
        //массива (i указывает
        //на конец массива) транзистор,
        // переданный в процедуру по ссылке (используется var в заголовке процедуры)

    self.Transistors_count:=i+1; // увеличиваем счетчик
        //количества транзисторов

    trans:=nil; // присваиваем объекту-транзистору пустой адрес,
        //и он перестает существовать вне хранилища

    trans.free; //очистить память от объекта
  end;

(C) Е.М. Патрушев, Методические указания к лабораторным и курсовым работам по курсу
«Теория и технология программирования»
для студентов специальности 190900
«Информационно-измерительная техника и технологии» Часть 2


Где ttransistor - class. Зачем так уродовать людей "на корню"?
Может я плохой знаток делфака, но
// присваиваем объекту-транзистору пустой адрес,
//и он перестает существовать вне хранилища

помоему - это уже слишком!
И почему сразу не научить людей использовать коллекции - тот же TList