Pull to refresh
4
0
Send message
На ютуб можно транслировать перекодировав поток: примерно так — avconv -i rtsp://127.0.0.1:1554/1 -r 30 -s 1280x720 -b:v 2048k -vcodec libx264 -c:a libspeex -f flv rtmp://a.rtmp.youtube.com/live2/ключ

http://openmcu.ru/forum/index.php/topic,1237.msg15733.html#msg15733
Поисковые подсказки легко настраиваются — в настройках поисковика вбивается дополнительная ссылка
Google: https://www.google.com/complete/search?client=opera&q=%s
Youtube: https://www.google.ru/complete/search?hl=ru&ds=yt&output=firefox&q=%s
Yandex: https://suggest.yandex.ru/suggest-ya.cgi?v=4&part=%s
Nigma: http://cplt2.nigma.ru/complete/query_help.php?suggest=true&q=%s
Ru.Wikipedia: https://ru.wikipedia.org/w/api.php?action=opensearch&search=%s
Google Images: https://www.google.com/complete/search?hl=ru&ds=i&output=firefox&q=%s
Яндекс.Маркет: http://suggest.market.yandex.ru/suggest-market?part=%s
О всей сразу речь и не идёт, разумеется. Но пяток-десяток базовых сервисов, без которых все остальные работать вообще не смогут — нужны (реестр сервисов, генератор uid, диспетчер событий, аудит/логи, мониторинг, защита от DoS, ну и прочая аутентификация с авторизацией и минимально нужными им базами юзеров, клиентов, их прав, базовый профайл юзеров, OAuth, etc.). Плюс продумать протоколы, контроль прав доступа, кеширование этих прав, как делать eventual consistency хотя бы для этих сервисов, защиту от зацикливания запросов между сервисами…

Раньше у меня были проекты в которых сервисы были внутренними, доступа к ним снаружи не было. И всё было значительно проще. А сейчас надо делать публичную платформу, которую будут пытаться ломать, к которой скорее всего придётся прикручивать биллинг за вызовы API… и всё резко стало намного серьёзнее.
Да, по поводу того, как хранится баланс в этом лэйауте (осторожно, говорящая жаба!):

// Read Sector 8 data blocks (0 to 2)
for (int i = 0; i < 3; i++)
  System.arraycopy(mfc.readDataBlock(sect8StartBlock + i), 0, mfsect, i * 16, 16);


// Read and show money value from ticket
int money = BitOps.copyBitsToInt(mfsect, 196, 19, false, false) / 100;


и сама функция copyBitsToInt из класса BitOps:

public static int copyBitsToInt(byte[] from, int fromStart, int length, boolean revBits, boolean revBytes) {
  byte[] intBytes = new byte[]{0, 0, 0, 0};
  copyBits(from, intBytes, fromStart, 32 - length, length, revBits, revBytes);
  return (intBytes[3] & 0xFF) | ((intBytes[2] & 0xFF) << 8) | ((intBytes[1] & 0xFF) << 16) | ((intBytes[0] & 0xFF) << 24);
}

public static void copyBits(byte[] from, byte[] to, int fromStart, int toStart, int length, boolean revBits, boolean revBytes) {
    int j = 0;
    int y = 0;
    for (int i = 0; i < length; i++) {
      j = (revBits) ? length - 1 - i : i; // Reverse bits counter ("from" side)
      y = (revBytes) ? ((((length - 1) / 8) - (i / 8)) * 8) + (i % 8) : i; // Reverse bytes counter ("to" side)
      if (((from[(fromStart + j) / 8]) & (1 << (7 - ((fromStart + j) % 8)))) > 0) // If bit is set, then
        to[(toStart + y) / 8] |= 1 << (7 - ((toStart + y) % 8)); // Set bit
      else
        to[(toStart + y) / 8] &= ~(1 << (7 - ((toStart + y) % 8))); // Unset bit
    }
  }
Про команду гребцов
Жила-была одна команда гребцов.

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

В результате, после нескольких дней детального анализа команд, они пришли к заключению, что конкуренты имеют 7 гребцов и только 1 капитана. Вместе с тем наша команда имела целых 7 капитанов и только 1 гребца. И тут менеджмент нашей команды озарило: было предложено нанять консалтинговую фирму для реструктуризации нашей команды.

После нескольких месяцев консультирования, они пришли к заключению, что наша команда имеет слишком много капитанов и слишком мало гребцов. На основе этого анализа они сделали предложение: структуру нашей команду нужно поменять. С этого дня у нас должно быть только 4 капитана, 2 менеджера, 1 топ-менеджер и 1 гребец. Согласно этому, они решили, что с гребцом надо интенсивно работать, чтобы повысить его мотивацию и стремление к победе.

На следующий год конкуренты победили с разрывом в 2 километра.

Гребца исключили из команды, поскольку были недовольны результатом его работы. Менеджеров наградили за высокие показатели по мотивации команды в отчетном периоде.
Я обычно решаю эту проблему несколькими конфиг файлами.
1) Глобальный общий конфиг, который трогают только тогда, когда надо внести изменения глобально. Например, там могут храниться глобальные константы, вычисляемые пути к файлам, и т.п. (global.conf)
2) По конфигу на каждый сервер/среду где разворачивается приложение (dev.conf, prod.conf...). Обычно как раз тут живут уровни логирования, уровни кэширования, наличие/отсутствие минификации файлов (если речь о веб-проекте), и прочие радости.
3) Конфиг локального компьютера. Добавлен в гитигнор. В Readme проекта записаны правила его создания. (local.conf). Можно также добавить файл-пример, который на самом деле конфигом не является (local-sample.conf). В локальном определяется подключаемый конфиг среды, а также вносятся локальные настройки (например доступ к базе данных, хранилищу кэша, и т.п.)

При этом конфиги «наследуются». Т.е. конфиг среды частично перезаписывает глобальный конфиг, а конфиг локального компьютера перезаписывает конфиг среды. (global->dev->local). Так обеспечивается естественное желение разработчика потестить под разными уровнями логирования/кэширования и т.п.
На Android сейчас можно также доставлять Chrome web push, сообщения выглядят также как и нативные, но не требует установки приложения для подписки пользователя.
Поскольку не нужно установки приложения, а нужен лишь сайт — это резко расширяет потенциальную аудиторию для рассылок.

Jeapie и Push Woosh поддерживают и нативные push-уведомления и web в едином интерфейсе и дают SDK.
Более того, доставка пуша не гарантирована в принципе, а это поднимает вопрос о надёжности технологии Push Notification

Достаточно актуальный вопрос в последнее время. Из решений — SMS backup для недоставленных сообщений.
полезный плагин. обычно клиентам делаю дополнительные опции через
add_action('customize_register', function($customizer) {
        $customizer->add_section(
                'example_section_one', array(
            'title' => 'Настройки сайта',
            'description' => 'Контактная информация на сайте',
            'priority' => 11,
                )
        );
        $customizer->add_setting(
                'phone, array('default' => '84822123456')
        );
        $customizer->add_control(
                'phone', array(
            'label' => 'Телефон',
            'section' => 'example_section_one',
            'type' => 'text',
                )
        );
});

а вытаскиваются они через
get_theme_mod('phone', '');

Потом идем во «Внешний вид — настроить» и меняем прям оттуда и смотрим результат
Можно добавить чекбоксы, тексты, загрузку файлов и т.п.
Основное в конфиге:

shared_buffers — дать половину оперативки. Потюнить в системе файловый кэш, чтобы уменьшить шанс двойного кэширования.
work_mem = 64MB (поставить для начала) и смотреть за созданием temp-файлов. Если они есть — увеличивать
temp_buffers = 32MB
maintenance_work_mem = 2GB
max_stack_depth = 4MB

В системе (FreeBSD):
# /boot/loader.conf:
kern.ipc.semmns=1024
kern.ipc.semmni=256

# /etc/sysctl.conf:
kern.ipc.shm_use_phys=1
kern.ipc.shmall=8605532
kern.ipc.shmmax=35248259072 # если памяти 64 гига и мы хотим половину дать постгресу.

+ пускать всех только через pgbouncer.
— В общем-то, для начала этого хватит чтобы система уже быстро работала на больших объемах данных.
Если будет проседать дисковый i/o, нужно смотреть в сторону:

synchronous_commit = off
checkpoint_timeout
checkpoint_completion_target
(размазываем чекпоинты по времени)
Да тут народ по дампам CCNA сдаёт, не приходя в сознание и не различая 2 и 4 уровень модели, а они про микрософтовский Minesweeper Consultant, Solitaire Expert. Дети любую информацию впитывают, как губка, им хоть учебник по квантмеху подсунь, заучат наизусть. А вот умение понимать суть запомненного приходит позже, и то не ко всем. Вспоминаются индусы-айтишники, с которыми приходилось по долгу службы работать… Трудолюбия вагон, а понимания нет.
Короче, уж на что люблю МС, но это какой-то гнилой пиар.

Racism mode.
Ндааа, типичный британец на фото…
Racism mode off.
Мой отец работает в одном из российских ВВУЗ'ов (считается одним из лучших в стране — я серьезно)
Было выделен не один миллион рублей на приложение для обработки данных абитуриентов. К началу поступления приложение было не пригодным для работы. Отчеты подгонялись в екселе. Плевались все кто пытался пользоваться этим приложением, но наверху разумеется говорили, что программа работает хорошо. Бывали и случаи что студент не поступал только из-за багов «приложения».

Что то свое пропихнуть в нашей стране вряд ли возможно. Видимо без откатов и связей не работает система.
UPD1. Я ходил в офис МЦКО. Им все равно. Они просили закрыть его, хотя я предлагал отдать за бесплатно.


Это невероятно трагичная фраза на самом деле, стоящая, пожалуй, всей статьи.

Спасибо, было интересно. Не унывайте.
У нас в вузе аналогичное (веб-)приложение, насколько я знаю, писалось не за миллионы и вообще почти что одним человеком пару лет назад. Потом оно стало использоваться не только для обработки абитуриентов, но и студентов (для облегчения оформления всяких документов), и может ещё где-нибудь. Я пользовал его как студент и как приёмная комиссия (абитуриентом не застал, насколько помню), всё было юзабельно и приятно, а серьёзные баги фиксились максимум за пару дней.
Ну да, скорее всего оно таки было написано по заказу (это к фразе «Что то свое пропихнуть в нашей стране вряд ли возможно.») — но раз было удобно пользоваться, никто и не хотел в этом плане «пропихивать что-то своё».
ребят, без обид, но ваш фронт-энд на столько сыроват, что ставить его в гипер я бы не стал, сам обслуживаю несколько розничных тт — свиду все конечно круто и визуализация хорошая, но есть моменты которые убивают — оплата по банковским картам переидически виснет — оплата проходит, а чека нет. Вторую неделю пытаюсь заставить работать сберовский пин-пад — ваша тп пересылает на инженеров сбера, они вообще руками разводят — с линуксом не работали не знаем. Пять точек без проблем поднялись, а шестая не хочет — хотя в консоли sp_pilot сверку итогов проводит. Отчеты в центруме — почему вместо деления на магазины выбрано деление на кассы? Если шесть магазинов в каждом из которых есть касса 1 — аналитические отчеты суммирует все по номеру кассы — отдел маркетинга не доволен, да и можно было бы сделать статистику по количеству рекламных акций — какие и сколько сработали. Нет, я конечно это sql запросами могу сделать, но было бы круто если сотрудники отдела маркетинга могли бы это видеть в красивой визуализации, а не в xls. Возвраты бонусных баллов проходят через раз, ни какой закономерности. Узнать бонусный баланс можно только при оплате бонусами, можно ведь что-то придумать и в чеке печатать, а то ждать по ~40 секунд тоже не удобно. Может и наша конфигурация виновата — работает все без без ритейла, кассы и по впн в центрум, но ни к чему в магазины с одной кассой еще и ритейл ставить, как мне кажется.
Лимит какой-то есть. Спутники же летают. Другое дело, что в случае реального конфликта плюнут на международные договоры. Типа они сейчас останавливают кого-то. ООН и СобБез ООН уже ничего не решают. «Мы тут решили побороть локальное Зло во имя Добра. Пришлось сбросить пару бомб. Разрешение? Зачем? Мы же творим Добро».
И не говори, лучше б не знать… Я нес дежурства, когда началась вся эта байда на Украине… сколько всего «легкого и тяжелого» я сопровождал через Атлантику, сколько слышал с Керчинского пролива…
Я не помню, был ли Excel на операторских постах, и был ли Office. Предыдущие «деды» оставили в локалке небольшой сборничек литературы: в основном это были «сталкериады». Чушь, если честно, редкостная. Никогда не любил косящих под арми-брадэз белых и синих воротничков. Так вот, среди этой помойки были все рассказы Айзека Азимова. Так я перечитал его всего. Архив, пережатый по максимуму 7z, прятал в папке C:\$RECYCLE.BIN, естественно расширение поменял. Эта практика не раз меня спасала, поскольку харды зачищались периодически от «мусора». С тех самых пор я не перевариваю Азимова совершенно за узость мышления, и бесконечно полюбил Стругацких за тёплый душевный язык, чего не доставало в жизни ни до армии, и до сих пор не хватает, если честно. А ещё были песни: Кипелова — Тореро, Следуй за мной (обе записи 2003 года на 300-летии Питера), какая-то сопливая, но с крутыми басами «Я буду с тобой, ты будешь со мной...», плюс Петлюра — «Дембеля», и что-то ещё. Вот эти самые две-четыре песни я слушал 4 месяца подряд. Архив звукозаписей я хранил внаглую на корневом диске, переименовав в файл подкачки (хотя доступа к root'у не получил, просто система работала без ФП). А попутно следил за всей Африкой, Ближним Востоком, Европой, Канадой и изредка Антлантикой. Оборудование позволяло не без напряга перепонок, но довольно отчётливо разбирать и Австралию, и Южную Америку. И проблем с пеленгом источника, который выходит в эфир секунд эдак 5 — никогда не было, тем более, если эфир длился дольше. Парни, удачи на постах. Крепкого сна в казармах и бодрости в ночные смены. Как вспомню, что летало по ночам… Лучше этого не знать.
Повезло ребятам, которые служат сейчас. При мне там установили Денвер, для «оптимизации» работы отдела. Единая база данных позывных + повышение уровня взаимодействия постов за счет мгновенного отображения уже имеющийся информации. Но я то знаю, во что все это выльется)) Один парень уже колдует над JS игрушкой))


Бюджет ещё вырастет вчетверо, а режиссировать будет Эрнст.

Information

Rating
Does not participate
Location
Россия
Registered
Activity