Можно использовать в node.js, но думаю в основном такая вещь нужна для фронтендеров (реализовать поиск по большому меню или каталогу). У меня лично была рабочая задача сделать нечеткий поиск по меню.
Bus 009 Device 002: ID 1310:0001 Roper Class 1 Bluetooth Dongle
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 1.10
bDeviceClass 224 Wireless
bDeviceSubClass 1 Radio Frequency
bDeviceProtocol 1 Bluetooth
bMaxPacketSize0 64
idVendor 0x1310 Roper
idProduct 0x0001 Class 1 Bluetooth Dongle
bcdDevice 15.00
iManufacturer 1 SiW
iProduct 2 SiW
iSerial 3 FE12070D0B00
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 0x00b1
bNumInterfaces 2
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xa0
(Bus Powered)
Remote Wakeup
MaxPower 50mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 3
bInterfaceClass 224 Wireless
bInterfaceSubClass 1 Radio Frequency
bInterfaceProtocol 1 Bluetooth
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0010 1x 16 bytes
bInterval 1
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x02 EP 2 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 0
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 224 Wireless
bInterfaceSubClass 1 Radio Frequency
bInterfaceProtocol 1 Bluetooth
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x83 EP 3 IN
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x0000 1x 0 bytes
bInterval 1
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x03 EP 3 OUT
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x0000 1x 0 bytes
bInterval 1
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 1
bNumEndpoints 2
bInterfaceClass 224 Wireless
bInterfaceSubClass 1 Radio Frequency
bInterfaceProtocol 1 Bluetooth
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x83 EP 3 IN
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x0009 1x 9 bytes
bInterval 1
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x03 EP 3 OUT
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x0009 1x 9 bytes
bInterval 1
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 2
bNumEndpoints 2
bInterfaceClass 224 Wireless
bInterfaceSubClass 1 Radio Frequency
bInterfaceProtocol 1 Bluetooth
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x83 EP 3 IN
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x0011 1x 17 bytes
bInterval 1
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x03 EP 3 OUT
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x0011 1x 17 bytes
bInterval 1
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 3
bNumEndpoints 2
bInterfaceClass 224 Wireless
bInterfaceSubClass 1 Radio Frequency
bInterfaceProtocol 1 Bluetooth
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x83 EP 3 IN
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x0019 1x 25 bytes
bInterval 1
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x03 EP 3 OUT
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x0019 1x 25 bytes
bInterval 1
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 4
bNumEndpoints 2
bInterfaceClass 224 Wireless
bInterfaceSubClass 1 Radio Frequency
bInterfaceProtocol 1 Bluetooth
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x83 EP 3 IN
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x0021 1x 33 bytes
bInterval 1
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x03 EP 3 OUT
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x0021 1x 33 bytes
bInterval 1
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 5
bNumEndpoints 2
bInterfaceClass 224 Wireless
bInterfaceSubClass 1 Radio Frequency
bInterfaceProtocol 1 Bluetooth
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x83 EP 3 IN
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x0031 1x 49 bytes
bInterval 1
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x03 EP 3 OUT
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x0031 1x 49 bytes
bInterval 1
Никак не могу заставить его работать в Arch. Он все устройства прекрасно видит, спаривает их, но подключиться не может. Вот пример того, как я пытался подключить свой телефон:
[Rinaldus phone]# devices
Device 38:E6:0A:4B:DC:56 Rinaldus phone
Device 30:22:00:01:47:0A MS-304
Device 38:E6:0A:69:35:A1 Mi Phone
[Rinaldus phone]# connect 38:E6:0A:4B:DC:56
Attempting to connect to 38:E6:0A:4B:DC:56
[CHG] Device 38:E6:0A:4B:DC:56 Connected: no
Failed to connect: org.bluez.Error.Failed
[CHG] Device 38:E6:0A:4B:DC:56 Connected: yes
[Rinaldus phone]# pair 38:E6:0A:4B:DC:56
Attempting to pair with 38:E6:0A:4B:DC:56
Request PIN code
[agent] Enter PIN code: 0000
[CHG] Device 38:E6:0A:4B:DC:56 Paired: yes
Pairing successful
[Rinaldus phone]# connect 38:E6:0A:4B:DC:56
Attempting to connect to 38:E6:0A:4B:DC:56
[CHG] Device 38:E6:0A:4B:DC:56 ServicesResolved: yes
Failed to connect: org.bluez.Error.Failed
[CHG] Device 38:E6:0A:4B:DC:56 ServicesResolved: no
[CHG] Device 38:E6:0A:4B:DC:56 Connected: no
journalctl -f при этом выдает вот что:
янв 01 20:16:44 home kernel: Bluetooth: hci0: last event is not cmd complete (0x0f)
янв 01 20:16:59 home kernel: Bluetooth: hci0: last event is not cmd complete (0x0f)
янв 01 20:17:02 home gnome-control-c[1147]: Setting up /org/bluez/hci0/dev_30_22_00_01_47_0A failed: Время ожидания истекло
янв 01 20:17:11 home bluetoothd[441]: 30:22:00:01:47:0A: error updating services: Connection timed out (110)
янв 01 20:17:11 home evolution-sourc[654]: Remote error from secret service: org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.secrets was not provided by any .service files
янв 01 20:17:13 home evolution-sourc[654]: Remote error from secret service: org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.secrets was not provided by any .service files
янв 01 20:17:16 home kernel: Bluetooth: hci0: last event is not cmd complete (0x0f)
янв 01 20:17:16 home evolution-sourc[654]: Remote error from secret service: org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.secrets was not provided by any .service files
янв 01 20:17:17 home evolution-sourc[654]: Remote error from secret service: org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.secrets was not provided by any .service files
янв 01 20:17:31 home kernel: Bluetooth: hci0: last event is not cmd complete (0x0f)
Не удается подключить ни телефон, ни bluetooth динамики. В Ubuntu 18.04 все прекрасно работает. В чем может быть причина? Несколько часов мучаюсь.
Вкратце задача в том, что набить иерархическую структуру данных через обычные «юзер-понятные» формы
Изначально должна быть всего одна кнопка: «Добавить Банк»
При нажатии на «Добавить банк» под кнопкой должна появляться форма «Банка» с именем оного и кнопкой «Добавить площадку».
По нажатию на «Добавить площадку» внутри формы банка должна появиться формы для заполнения свойств площадки, на которой среди прочих будет и кнопка «Убрать площадку».
И т.д.
Т.е. суть в том, что формы: а) должны добавляться динамически; б) должны быть вложенными друг в друга (внутри формы банка можно добавить 10 площадок, в каждой из которых по 3 канала, например).
На выходе должен получиться JSON, который можно запостить на сервер.
Собственно, сами по себе формы умеет любой фреймворк, а вот такой вариант, с динамическим добавлением форм и вложенностью оных - есть где-нибудь?
SolveSpace — свободная параметрическая 2D- и 3D-САПР для Linux, OS X и Windows. Размер программы — всего несколько мегабайт, программа обладает простым и понятным интерфейсом, и при этом имеет безграничные возможности, добавляемые сообществом почти каждый день.
В БД имеется таблица products содержащая более полутора миллионов записей. Данная таблица заполняется/обновляется через крон скрипты ежедневно из разных источников.
Посредством web UI администратор системы имеет возможность добавлять/удалять fields - колонки этой таблицы и конфигурировать какая колонка из CSV фида (источника данных) соответствует какой колонке в этой таблице. В настоящее время имеется 37 колонок таблицы данных таких как например Vendor Name, VPN, SKU, EANUPC, Dealer Price, Stock, Stock Backlog Quantity, Stock Backlog ETA, Warehouse, Description, Category, OEM Part Number, etc.
Таким образом администратор системы может для CSV-фида из источника http://sourceX/feed.csv установить через конфигуратор:
колонка CSV #1 -> VPN
колонка CSV #2 -> Dealer Price
колонка CSV #12 -> Stock
колонка CSV #13 -> EANUPC
колонка CSV #14 -> Stock Backlog Quantity
...........etc.............
Требуется организовать поиск по таблице products в котором администратор может искать по любой комбинации колонок, например:
- найти все продукты где $5.55 <= Dealer Price <= $7.50 и Stock > 10
- найти все продукты где Description содержит «keyboard» и EANUPC начинается с XXXXXXX
- найти все продукты в которых VPN содержит XXX или SKU содержит XXX
...................etc...............
Поиск осуществляется только персоналом, т.е. нет необходимости беспокоиться о большом количестве параллельных запросов
В настоящее время после запроса можно сходить покурить пока появятся результаты. Используется mongodb, индексы есть но не помогают либо расставлены неправильно. Количество записей ~1.6M.
Прошу посоветовать возможно ли как то оптимизировать скорость работы поиска (с добавлением записей проблем нет) возможно засчёт замедления крон-скриптов импортирующих/добавляющих записи.
Машина довольно мощная:
- восьмиядерный AMD Opteron(TM) Processor 6220
- 32 гигабайта памяти
- диск вроде SSD 120 гигабайт
Прежде всего хотелось бы спросить совета относительно оптимальной БД для таких нужд. Оптимально ли подходит mongodb или стоит копать в другую сторону? Слышал что то про Elastic Search. Время для изучения новых технологий есть. Однако хотелось бы быть уверенным что копаю в правильном направлении.
Также буду благодарен если посоветуете какую то литературу по теме.
Навеяно темой Ментальный вирус, пример взят и дополнен оттуда. Интересует реализация подобной операции на других языках. Лично я хотел бы увидеть на Lisp, Java, Smalltalk, Erlang.
array = ["John", "James", "Jakob", "Peter", "Janette", "Tom", "Vasya", "Jean", "Juilia", "Heather"]
puts array.select{|v|v[/^J[a-z]+/]}. # ВЫБРАТЬ ПО someregexp
each_slice(3). # КАЖДЫЙ КУСОК ПО 3 ЭЛЕМЕНТА
map{|v| "#{v[0]} and #{v[1]} follow #{v[2]}"}. # ПОДСТАВИТЬ ЗНАЧЕНИЯ В СТРОКУ
join("\n") # ОБЪЕДИНИТЬ
# John and James follow Jakob
# Janette and Jean follow Juilia
Пошагово для тех, кто не знаком с Ruby:
array.select{|v|v[/^J[a-z]+/]}
# ["John", "James", "Jakob", "Janette", "Jean", "Juilia"]
array.select{|v|v[/^J[a-z]+/]}.
each_slice(3).to_a # в массив
# [["John", "James", "Jakob"], ["Janette", "Jean", "Juilia"]]
array.select{|v|v[/^J[a-z]+/]}.each_slice(3).
map{|v| "#{v[0]} and #{v[1]} follow #{v[2]}"}
# ["John and James follow Jakob", "Janette and Jean follow Juilia"]
array.select{|v|v[/^J[a-z]+/]}.each_slice(3).map{|v| "#{v[0]} and #{v[1]} follow #{v[2]}"}.
join("\n")
# "John and James follow Jakob\nJanette and Jean follow Juilia"
Использовать только стандартную библиотеку.
Целесообразность операции не важна. Вопрос кратности количества найденных элементов трем не рассматриваем.
The two tablets come in 8.9- and 10.1-inch sizes, with both sporting 1920 x 1200 resolution 10-point multi-touch IPS touchscreens. A micro HDMI output provides more flexibility with display options, and there are onboard 8MP and 13MP cameras on the front and back of the device, respectively. Wireless access is provided by dual band 2.4/5 GHz 802.11 a/b/g/n Wi-Fi. The tablets also have Bluetooth 4.0, allowing users to connect an optional keyboard or other devices.
Решил немного отвлечься от новеллы и привести в порядок аниме конструктор для блендера. Итогом стал релиз кандидат под нумером 4 - RC4-«REDBIRD». Доведен до ума риг персонажа, пофикшена проблема с развесовкой в области таза, исправлены проблемы с IK - которыми страдал риг от makehuman 0.7, который и брался за основу рига как более удобный для анимации(щаз тут начнутся советы про ригифай - к черту ригифай - его ещё сильнее надо править из моего опыта работы с риггингом).
Что до сих пор не сделано:
Всё ещё хочется завернуть эту радость в плагин для блендера, а не темплейт.
Что до возможностей - уже сейчас можно быстро собрать аниме персонажа - например эту девочку с мечом я сообразил за час где-то - дольше сам меч придумывал.
Что в планах? Завернуть это дело в плагин или портировать обратно в makehuman сделав его форк. Сделать отдельный темплейт для мужских аниме персонажей. Ну и конечно уже в каком то виде темплейт выпустить.
Ну и помимо прочего я немного вернулся к manga-shading'у(картинка в левом верхнем углу). Пока не знаю во что это выльется. Как то оно так.
25 марта вышла новая версия графовой базы данных Neo4J.
В этом релизе представлены улучшения, которые, как утверждается, позволят существенно повысить производительность операций чтения и записи данных, а также улучшают возможности по отладке и тестированию.
Ключевые моменты изменений версии 2.2:
новый планировщик запросов для языка Cypher основанный на анализе затрат (cost-based optimizer);
поддержка профилирования и отладочного вывода для запросов Cypher;
новый механизм кеширования операций чтения, основанный на размещении страниц кеша в памяти (in-memory page cache);
новый механизм быстрой буферизации записи и оптимизация сброса транзакций на диск.
На начало 2015 года графовая база данных Neo4J занимает 23 место по популярности (по версии сайта DB-ENGINES).
Я попробовал PhoneGap/Cordova и судя по всему оно основано на стандартном webview, а мне хотелось бы опереться на какой-нибудь современный движок (gecko/webkit), скажите, есть ли такие упаковщики?
Мда.... я бы рассказал про то как устроен проект и, в первую очередь, клиентская его часть, как она дружелюбна к расширению, но, что-то мне кажется, это будет мало кому интересно. Оставлю так, там посмотрим..
По данным компании Net Applications доля настольных систем на базе Linux возросла за 2013 год с 1.21% до 1.73%. Доля Windows уменьшилась с 91.62% до 90.73%, доля OS X увеличилась с 7.17% до 7.54%. Рейтинг построен на основе анализа статистики 160 миллионов посещений примерно 40 тысяч web-сайтов, на которых установлены счётчики HitsLink Analytics и SharePost.
Информация из других источников:
По данным отечественного web-счётчика OpenStat доля Linux составляет 10.04% (с учётом Android).
По статистике Wikimedia доля Linux составляет 11.18% (Android 9.92%, Ubuntu 0.45%, Linux Other 0.79%.).
По данным рейтинга StatCounter, осуществляющего мониторинг общемировой статистики использования web-браузеров, доля Linux составляет 1.13% (без учёта Android).
По данным отечественного web-счётчика HotLog доля Linux составляет 1.45% (Android - 7.34%)
По данным рейтинга w3schools.com доля Linux составляет 4.8%.
В сервисе доставки игр Steam доля пользователей Linux составляет 1.07%.
13 декабря на сайте проекта GParted стала доступна для загрузки новая стабильная версия специализированного Debian-based Live CD, содержащего комплект утилит для управления разделами дисковых накопителей и восстановления данных.
Главной особенностью релиза GParted Live 0.17.0 является то, что впервые утилита GParted позволяет изменять размер смонтированных разделов со следующими файловыми системами:
btrfs;
ext3;
ext4;
jfs;
lvm2 pv;
nilfs2;
reiserfs;
xfs.
Кроме того, базовая система обновлена из репозиториев Debian Sid по состоянию на 13 декабря, ядро Linux обновлено до версии 3.11.10-1. Теперь Live CD определяются разделы Linux Swap Suspend и Software RAID, а также исправлена ошибка, возникавшая при определении Linux Software RAID и некоторых расширенных разделов. Включён индикатор выполнения resize2fs.
Обычный текстовый редактор, казалось подвоха нет. Хоть и жрет более 100 МБ.
Но он написал на Node.js+HTML5+JS+CSS3+WebKit.
А теперь внимание вопрос. Есть ли на этом форуме люди которые считают что это хорошая идея и почему? Ну и естественно хотели бы видеть побольше такого софта?
Речь идёт только о браузере в окружении, которое вы контролируете — например дома. Если на работе вам приходится ходить в интернет через IE6 — это не ваша вина и помечать соответствующий пункт не обязательно.
Если у вас несколько пунктов — например, браузер запущен в отдельном chroot в виртуальной машине для сетевых приложений под отдельным аккаунтом и стоит noscript — выбирайте первый пункт. Включенный по умолчанию AppArmor в некоторых дистрибутивах не считается, так как он браузеру открыть ~/.ssh нисколько не помешает.
(или я чего-то не знаю?)
Никакой специальной защиты, только adblock и/или flashblock, но javascript разрешены везде870 (56%)
Объявлено о выпуске свежей версии Hugin — свободной кроссплатформенной программы для создания панорамных изображений.
Основным изменением в новой версии является редизайн графического интерфейса программы — пользовательский интерфейс теперь представлен в трех вариантах, которые можно переключать:
простой — содержит только базовые функции для сшивки несложных панорам и использует окно быстрого предпросмотра в качестве рабочего;
расширенный — предоставляет больше возможностей для редактирования и использует окно редактора панорам для визуализации;
экспертный — предоставляет доступ ко всем возможным функциям и настройкам программы, так же, как и расширенный, использует редактор панорам в качестве основного окна.
Кроме того, добавлены новые инструменты:
pto_var — (изменение параметров изображений внутри pto-файлов);
pto_lensstack — (изменение списка использованных объективов внутри pto-файлов);
geocpset — (установка/добавление геометрических ограничений для многорядных панорам, сшиваемых из изображений без параметров).
Также исправлены накопившиеся баги, осуществлены оптимизации.