Как стать автором
Обновить
0
0
balloon @balloon

Пользователь

Отправить сообщение
А мне самая идея показалось толковой. Не придется делать какие-то левые свойства вроде $_id или геттеры/сеттеры, если ты хочешь менять свойство только внутри класса, но при этом сделать его public на чтение. В типичной entity таких полей будет большинство.
Если будет встроенный экран, то календарь я бы заменил на разные генераторы частот или типичные схемы подходящие для ознакомления с осциллографом. Думаю многим было бы интересно побаловаться без подключения к компьютеру.

Остается вопрос с питанием.

Еще можно хранить данные в бинарном виде. Это сэкономит кучу памяти, которая используются php на хранение переменных. В итоге 1 visit — это 13 байт, 11M visits — 143MB.


define('BLOCK_LENGTH', 13);

// fill 11 heaps with zeros
// 1 heap stores 1M visits (1 visit is 13 bytes, 1M visits - 13MB)
$heaps = [
    str_repeat(pack('LLLc', 0, 0, 0, 0), 1000000),
    str_repeat(pack('LLLc', 0, 0, 0, 0), 1000000),
    str_repeat(pack('LLLc', 0, 0, 0, 0), 1000000),
    str_repeat(pack('LLLc', 0, 0, 0, 0), 1000000),
    str_repeat(pack('LLLc', 0, 0, 0, 0), 1000000),
    str_repeat(pack('LLLc', 0, 0, 0, 0), 1000000),
    str_repeat(pack('LLLc', 0, 0, 0, 0), 1000000),
    str_repeat(pack('LLLc', 0, 0, 0, 0), 1000000),
    str_repeat(pack('LLLc', 0, 0, 0, 0), 1000000),
    str_repeat(pack('LLLc', 0, 0, 0, 0), 1000000),
    str_repeat(pack('LLLc', 0, 0, 0, 0), 1000000)
];

echo 'memory: ' . intval(memory_get_usage() / 1000000) . "\n";

$i = 1;
while ($visitsData = @file_get_contents("data/visits_$i.json")) {
    $visitsData = json_decode($visitsData, true);
    foreach ($visitsData as $k => $row) {
        $id = $row['id'];
        $heapIndex = intval(floor($id / 1000000));
        $startPosition = $id - $heapIndex * 1000000;

        $data = pack('LLLc', 
            $row['user'],
            $row['location'],
            $row['visited_at'],
            $row['mark']
        );

        for ($t = 0; $t < strlen($data); $t++) {
            $heaps[$heapIndex][$startPosition + $t] = $data[$t];
        }
    }
    echo "$i\n";
    $i++;
}
unset($visitsData);
gc_collect_cycles();

echo 'memory: ' . intval(memory_get_usage() / 1000000) . "\n";

/**
 * Get visitor by id
 *
 * @param string[] $heaps
 * @param int $id
 * @return array
 */
function read_from_heap($heaps, $id)
{
    $heapIndex = intval(floor($id / 1000000));
    $startPosition = $id - $heapIndex * 1000000;
    $data = substr($heaps[$heapIndex], $startPosition * BLOCK_LENGTH, BLOCK_LENGTH);
    return unpack('Luser/Llocation/Lvisited_at/cmark', $data);
}
LOAD DATA INFILE справится
> Ну и про недопустимость статических классов и их тестирование это глупости. Если они не хранят состояние, то вполне себе нормальные и тестируемые

Не соглашусь. Сами статические классы без состояния, конечно, тестируемые. Но как тестировать классы, которые их используют? Как расширять/переопределять статические классы?
В таком случае должен быть еще метод вроде hasPoint():bool, который проверяет находится ли точка в заданом отрезке, а сам метод getPoint() должен создавать исключение при попытке взять точку вне отрезка.
Да вроде все правильно на картинках.
Большой bitcoin генератор
А почему ID — это только число? Имхо, гораздо удобнее было бы давать урл как qubrit.com/c.lafaed, чем qubrit.com/123456. Такие урлы проще запоминаются. Понимаю, что хочется сделать так, что бы пользователи увидев на визитке цифры, сразу думали, что это Qubrit ID. Имхо, концепт немного устарел, т.к. сейчас компании даже номера телефона стараются делать в формате 1-234-company.
Правительство Китая всегда стремится поддержать свои компании. Данном случай, думаю, исключением не был. Зачем договариватся и идти на компромисы с иностранной компанией, когда можно поднять inside-компанию, которая будет придерживатся политики партии, платить довольно большие налоги + делать неформальный отчисления за лояльность к ней на рынке?
Не уверен, что это было везением
Первый раз слышу про такие опросники. Из моего опыта, как правило, клиент или сразу высылает, что он хочет, либо с ним беседуют(переписываются) на эту тему. А приводить всё к какой то стандартной форме, имхо, нет смысла… Да и навряд получиться :)
Добавление товара: поле Связанные ID.
Может хотя бы автокомплит какой нить поставить, что бы по имени можно было товары туда добавлять? Я думаю будет более удобно, если уж предполагается, что админкой блондинки тоже пользоваться будут.
10к для Минска уже вроде как давно не максимум, а касательно самой лучшей белорусской — это имхо ближе к минимуму, чем к максимуму.
Не знаю как в Москве, но в Минске я уверен, что Вы найдете нужных людей (официальную профессиональную постоянную команду с офисом)
А мне вот написало:
Послушать можно, купить нельзя. Музыка в нашем магазине продается только покупателям из России и стран СНГ.

А я то с Минска…
PS. Проксей не использовал.
имхо, если рассматривать данную аналогию, то претензии провайдер предъявляет не водителю, а машине...
Решение этой проблемы так же описано у лебедева:
http://www.artlebedev.ru/tools/technogrette/html/framed/
Там решение более сложное, но и задача там посложнее :)
1

Информация

В рейтинге
Не участвует
Откуда
Минск, Минская обл., Беларусь
Дата рождения
Зарегистрирован
Активность