LINUX.ORG.RU

Сообщения quest

 

Бизнес литература

Накидайте плиз названий книг по выбору профиля, созданию, развитию бизнеса, анализу спроса и рождению предложения. Я к примеру сейчас читаю «Rework Бизнес без предрассудков. Джейсон Фрайд. Дэвид Хайнемайер Хенссон»

Linux при том что основа многих продуктов и GPL не запрещает продажу.

 

quest
()

угадай мелодию

http://coub.com/view/8647s 7 композиция что это?

 

quest
()

сдох микрофон в вебкамере

Использую skype для изучения/улучшения English. На web камере сдох микрофон. Теперь думаю купить либо новую web камеру, либо наушники с микрофоном либо отдельно микрофон. Посоветуйте пожалуйста что бы купили вы и какую конкретно модель? Linux при том что skype запускается в нем.

quest
()

псевдо push нотификация

подскажите плиз приложение для андроида чтобы само периодически лезло по настриваемому URL и если там скажем 1 вместо 0 вернулось чтобы пиликало. нужно быстро и тупо настроить уведомление на телефон.

либо предложите варианты подобного. я когда-то делал всякие штуки с GSM гейтом, но тут нужно что-то простое.

 

quest
()

ScanQuest 4125

ScanQuest 4125 это сканер штрихкода, если кто-то работал с ним помогите пожалуйста!

Как указано в доке оно умеет CODE128, но как известно CODE128 бывает трех типов CODE128A, CODE128B, CODE128C.

Это чудо прочитало «00000000000000» (14 нулей), но не прочитало ".............." (14 точек), тогда как другие сканеры как железные так и программные читают мгновенно. Точки это использование 64-ричной системы счисления для уменьшения количества символов.

Конкретно сейчас у нас нет доступа к этому агрегату и возникают вопросы, то ли он не прочитал потому что код с точками длиннее по размеру (хотя количество знаков то-же), то ли ему не нравятся точки и он не понимает такой диапазон символов.

Если кто-то имеет доступ к этому агрегату или имеет опыт работы с ним помогите пожалуйста! Заранее благодарен!

Linux при том что все ПО под GNU/Linux.

 

quest
()

json formater

посоветуйте пожалуйста консольную утилиту которая из такого

{ "a" : [ { "b" : "c" } ] }

сделает такое:

{
    "a" :
    [
        {
            "b" : "c"
        }
    ]
}

именно конкретно в таком стиле и такими отступами

 

quest
()

LeanChair - кресло нового формата

Думаю это всем актуально - http://24gadget.ru/1161061399-leanchair-kreslo-novogo-formata-5-foto-2-video....

Может кто знает где это продают в РФ?

 

quest
()

somebody tell me

Подскажите пожалуйста почему тут http://www.youtube.com/watch?v=Pt_EzfH7kf4

«somebody tell me» а не «somebody tells me» ???

 

quest
()

узнать предыдущего пользователя

положим в системе есть user1 и user2, оба они могут сделать sudo su и стать рутом, нужно в /root/.bashrc понять кто стал рутом бывший user1 или бывший user2 и соответственно сделать те ли иные действия.

кто предложит наиболее элегантное решение?

 

quest
()

wi-fi

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

android был 4 какой-то, сейчас распоследний cyanogen 12

 

quest
()

SELECT * FROM ID=x

тупой вопрос:

положим мы имеем таблицу в которой ID это PRIMARY KEY, и в таблице миллиард записей. мы знаем конкретный идентификатор из этого миллиарда и хотим его выбрать. в случае с типом bigint (64 бит) на моих тестах выборка конкретного ID как и можно ожидать мгновенная (доли миллисекунд).

теперь положим что я использую не bigint а bytea и храню там положим sha512 (512 бит), сохранится ли скорость выборки конкретного идентификатора? не деградирует ли индекс в таком извращенном случае?

 

quest
()

unique constraint violations

может кому-то поможет такой хитрый ход потому как я именно такого решения не нашел.

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

CREATE TABLE x(id BIGINT, PRIMARY KEY(id));

BEGIN;
SELECT pg_advisory_xact_lock(777);
INSERT INTO x (id) SELECT 777 WHERE NOT EXISTS (SELECT id FROM x WHERE id=777) RETURNING id;
COMMIT;

pg_advisory_xact_lock исключает ситуацию гонки залочиваясь и ожидая commit/rollback параллельной транзации или обрыва паралелльного соединения с базой.

insert добавляет запись только если ее еще нет, и по возвращенному им значению понятно было это добавление или нет

 

quest
()

посоветуйте пожалуйста сетевое хранилище

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

begin; select for update; update; commit;

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

 

quest
()

unix MICRO time

Вот так можно получить unixtime:

SELECT EXTRACT(EPOCH FROM NOW())::bigint AS UNIXTIME;
  unixtime  
------------
 1426694898

А как получить unixmicrotime средствами postgresql, без парсинга на клиенте? Postgresql в своем типе timestamp хранит время с точностью до миллисекунд.

 

quest
()

Разделение таблицы

Есть система у которой есть клиенты, клиенты могут регистрироваться в системе и активно пользоваться или бросать ее нафиг. Когда клиент оплачивает подписку он становиться активным на несколько месяцев, когда подписка заканчивается если ее не продлевать он становиться не активным.

Со временем думаю одни буду приходить другие уходить, количество активных клиентов будет постепенно расти, но количество не активных будет вероятно на порядки больше. Каждый клиент имеет уникальный id, по нему система понимает на каком сервере лежат данные о клиенте. Данные лежат в одной таблице.

Вопрос: стоит ли разделить таблицу на две - для активных и не активных? С одной стороны перенос из таблицы в таблицу это деградация индексов и лишнее время (перенос относительно редкий), с другой работа сервера идет только с активными клиентами и значит если и активные и не активные будут в одной таблице - работа будет линейно замедляться. Под работой понимается update (перерасчет данных) всех активных клиентов. Update редкий - несколько раз в сутки и относительно быстрый для отдельного клиента. Работа ведется с помощью очереди задач. В очередь помещаются диапазоны идентификаторов клиентов (сейчас это по 1000 клиентов в задаче), а воркеры выгребают данные клиентов из этих диапазонов и меняют данные. Соответственно если таблица будет одна то часто будут попадаться те клиенты для которых ничего делать не нужно, но выборка их данных уже будет сделана - соответсвенно время работы будет расти...

Что выбрали бы вы?

 

quest
()

PostgreSQL NOTIFY

Мне нужно заблокироваться в ожидании NOTIFY, вот тут

http://grokbase.com/t/postgresql/pgsql-general/12afsxvg7y/notify-listen-in-po...

мужик пишет что это можно сделать с помощью pg_advisory_lock.

не догоняю как?

 

quest
()

Шкаф напольный 42U

Покритикуйте пожалуйста эту модель или предложите альтернативу: http://www.netcab.ru/MX-6642-B.html

Никогда не покупал такое...

 

quest
()

Dlink DWA-125

Попалось такое устройство:

# lsusb | grep Link
Bus 003 Device 002: ID 2001:330f D-Link Corp.

Ставим для него пакеты firmware-realtek, firmware-linux-free, wpasupplicant, wireless-tools

В /etc/network/interfaces добавляем:

iface wlan0 inet dhcp
wpa-ssid "WIFI_NAME"
wpa-psk "WIFI_PASSWORD"
auto wlan0

ifup wlan0 и оно заводится. В ядро загружается модуль r8188eu

 dlink dwa-125

quest
()

PostgreSQL UPDATE

Есть не самый мощный компьютер под GNU/Linux с Intel i7-4790K, двумя винтами sata 10000 rpm. На нем PostgreSQL 9.4rc1. Машина вообще ничем не загружена.

Создаем таблицу:

CREATE TABLE test_update (id BIGSERIAL NOT NULL, c BIGINT NOT NULL, PRIMARY KEY(id));
INSERT INTO test_update (c) VALUES (0);
VACUUM FULL ANALYZE test_update;

Запускаем скрипт:

#!/bin/bash

echo -n > test.sql;

for (( i=0; i < 10000; i++));
do
        echo "UPDATE test_update SET c=c+1 WHERE id=1;" >> test.sql;
done

Запускаем тест:

$ time (psql --host="${SQL_HOST}" --port="${SQL_PORT}" --dbname="${SQL_DATABASE}" --username="${SQL_LOGIN}" -w -f test.sql > /dev/null)

real    1m1.441s
user    0m0.440s
sys     0m0.192s

В iotop postgres не поднимается выше 1341.77 K/s, при том что например dd if=/dev/zero of=trash bs=4096 дает 162.84 M/s

hdparm в тесте показывает 170.90 MB/sec

Тот же тест но при fsync = off отрабатывает за полсекунды. Но это не решение.

Вопрос: подскажите пожалуйста как ускорить UPDATE в Postgres?

Перемещено maxcom из talks

 

quest
()

PostgreSQL, JSON

Подскажите пожалуйста: мне нужно хранить в одной строке (в одном поле) множество JSON объектов. Как лучше организовать их добавление?

> CREATE TABLE jsonb_tab (data jsonb);
> INSERT INTO jsonb_tab VALUES ('{ "xxx": [] }');
> SELECT * FROM jsonb_tab;
    data     
-------------
 {"xxx": []}

Те как лучше мне добавлять объекты в массив xxx?

Понятно что можно делать SELECT менять ВСЕ содержимое data на клиенте и засылать обратно ВСЕ содержимое, можно ли добавлять объекты?

Что то типа:

UPDATE SET data=magick_function(data, 'xxx', '{ «a» : «1» }');

чтобы потом SELECT выдал:

> SELECT * FROM jsonb_tab;
    data     
-------------
 {"xxx": [{"a" : "1"}]}

 ,

quest
()

RSS подписка на новые темы