LINUX.ORG.RU

Избранные сообщения noomorph

Неправильно работает USB-SERIAL CH340/CH341

Форум — Linux-hardware

Задача: обеспечить работу переходника USB-SERIAL на чипе CH340/CH341.

Система:

# uname -a
Linux test-serial 3.2.0-4-amd64 #1 SMP Debian 3.2.63-2+deb7u1 x86_64 GNU/Linux
Переходник определяется автоматически:
# dmesg | grep 'New USB device'
[ 4097.409095] usb 4-1: New USB device found, idVendor=1a86, idProduct=7523
[ 4097.409108] usb 4-1: New USB device strings: Mfr=0, Product=2, SerialNumber=0
# lsusb
Bus 004 Device 003: ID 1a86:7523 QinHeng Electronics HL-340 USB-Serial adapter
# ls /dev/ttyUSB*
/dev/ttyUSB0

Соединяю два компьютера нуль-модемным кабелем.
На тестируемом компьютере запускаю:

# cat /dev/ttyUSB0
На втором:
# echo 'zxc0' > /dev/ttyS0
# echo 'zxc1' > /dev/ttyS0
# echo 'zxc2' > /dev/ttyS0
# echo 'zxc3' > /dev/ttyS0
# echo 'zxc4' > /dev/ttyS0
# echo 'zxc5' > /dev/ttyS0
Вывод на первом:
# cat /dev/ttyUSB0
zxc0

zxc1

zxc2

zxc3

zxc4

zxc5
Теперь наоборот:
# echo 'zxc0' > /dev/ttyUSB0
# echo 'zxc1' > /dev/ttyUSB0
# echo 'zxc2' > /dev/ttyUSB0
# echo 'zxc3' > /dev/ttyUSB0
# echo 'zxc4' > /dev/ttyUSB0
# echo 'zxc5' > /dev/ttyUSB0

# cat /dev/ttyS0
zxc0

zzxc1

zzxc2

zzxc3

zzxc4

zzxc5

Видно, что цепляется какой-то мусор.

Установка драйвера не дала результата. Драйвер:
CH341SER_LINUX.ZIP http://wch.cn/downloads.php?name=serch&page=3&keyword=CH340

Понижение скорости передачи приводит к полному отсутствию передачи данных в обоих направлениях.
Под WinXP/Win7 этот переходник работает нормально.

Можно ли заставить работать этот переходник, или лучше какой-нибудь на другом чипе? И если так, то на каком лучше?

 , wch, ,

alxdon-rs
()

Объявсните, зачем нужны React, Angular и Vue.js?

Форум — Web-development

Что-то никак не пойму, зачем всё это нужно. Можете подсказать пример сайта (или его части) где без этого всего ну вообще никак? Пока что понял, что через эти библиотеки можно выводить контент в html. Но зачем?

 , , ,

el-d
()

Посоветуйте библиотеки и tutorials по нодовским Streams

Форум — Web-development

Хотелось бы чего-то вроде lodash - туда всегда можно заглядывать, чтобы посмотреть какие бывают типовые операции, и как их правильно реализовывать.

В ноде с потоками какая-то каша - stream1, stream2, stream3. И все это разбрызгано на 100500 библиотек. Голова пухнет, трудно каждый раз найти что надо.

Кто-нибудь может посоветовать современный tutorial или общую библиотеку?

 ,

Vit
()

Как правильно терминировать большие POST-запросы в node.js?

Форум — Web-development

Есть типовой вебсервер, который на каждый новый запрос вызывает стандартную function(req, res). Я хочу грамотно прерывать соединение, если кто-то пытается отправить слишком большой POST-запрос.

Будет ли достаточно дернуть res.end(413, 'request entity too large') или надо предпринимать какие-то дополниртельные шаги чтобы req (входящий стрим) тоже заткнуть? Я типа в курсе, что можно выставить флажок и просто перестать сохранять входящие данные, или вообще req.destroy(). Но хочется все-таки и грамотно входной стрим уконтрапупить, а не просто в холостую его гонять.

Как в ноде принято подобное делать?

 

Vit
()

Прекрасная читалка для pdf в vi стиле

Форум — Desktop

Собственно хотел поделиться радостью от найденной поделки по имени zathura.

Давно искал такое. Нашёл. Никого не призываю, но вдруг кто тоже искал :)

 , , , ,

pon4ik
()

Ubuntu Mate 15.10

Галерея — Скриншоты

никаких извращенских dwm. все удобно и способствует продуктивной работе. есть заголовки окон и меню окна не где-то далеко, а в каждом окне, которому оно принадлежит. короче, торт.

Controls: Vertex
Border: Vertex
Icons: Vertex icons
ГШ: PT Sans Caption
фон: фан арт из скайримчика

>>> Просмотр (1920x1080, 1716 Kb)

 , vertex

bernd
()

Разработка на двух компьютерах

Форум — General

Я далеко не единожды видел писанину из серии «можно юзать этот ноутбук как ssh-терминал, а числодробить/компилировать на другом».

Поделитесь историями успеха.

Я вот вижу такой сценарий использования.

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

Идея в том, чтобы не запариваться с мощностями первого компьютера и чтобы тяжёлые процессы не оказывали никакого влияния на UI, GUI, сохраняя максимальную отзывчивость оного.

Может, у кого-то получалось такую систему собрать? Как впечатления?

 , ,

noomorph
()

gVim как отрезать расширение файла при использовании %

Форум — General

Что добавить в команду :!% чтобы отрезать расширение файла? Не справляюсь сам.

 

corsag21
()

Remarkable (beta) - быстрый и гибкий парсер CommonMark (markdown) на яваскрипте

Форум — Web-development

Сорцы: https://github.com/jonschlinkert/remarkable

Демка: http://jonschlinkert.github.io/remarkable/demo/

Кто сталкивался с парсерами маркдауна и хотел расширить синтаксис, наверняка знает, что в большинстве имплементаций вся логика намертво приколочна гвоздями. Ну по крайней мере в яваскриптовых :) . Обычно «патчи» сводятся к линейной замене паттернов, что не гарантирует корректного выхлопа на выходе. Ну и вообще сложные вещи таким способом не сделать.

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

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

Если у кого есть интерес и опыт архитектора - буду рад советам насчет апи. Запросы «сделайте разметку ХХХ» не рассматриваются. Зато рассматриваются запросы, что поправить, чтобы вы могли написать плагин под свои нужды.

 , , , ,

Vit
()

Iris

Галерея — Скриншоты

GTK: Iris Light
Обои: Berries (источник не найден)
Иконки: перекрашенные Flattr
Шрифты: Russia и PT Mono

PNG

>>> Просмотр (2560x1440, 1285 Kb)

zezic
()

Веб-разработка в Vim

Форум — Web-development

Предлагаю обсудить и поделиться опытом по веб-разработке в Vim.

Я использую Vim в терминале termite (со своими патчами для дефолтного копипаста и прочее) с цветовой схемой gruvbox: как для терминала, так и для Vim.

Этот клавиатура-ориентированный vim-like терминал я упомянул не столько потому, что у него реализованы режимы как Vim (insert mode, selection mode, выделение клавиатурой включая блочное), а потому, что у него есть приятная фича (которую можно наблюдать в iTerm2 для OS X) при работе Vim'а в нём, а именно цвет курсора изменяется в зависимости от цвета символа, на котором находится курсор, а также при выделении цвет выделения повторяет цвет слов/строк (но без инвертирования где нужно, может еще допилят), скриншот.

Менеджер плагинов:

Перед обсуждением плагинов и настроек, хочу подчеркнуть почему я использую менеджер плагинов vim-plug: перепробовав все известные менеджеры плагинов, включая недоменеджер pathogen, остановился именно на vim-plug потому, что он самый быстрый (параллельная установка/обновление, к-во потоков настраивается), имеет приятный интерфейс, краткий синтаксис, а самое главное позволяет настроить загрузку или отключение плагинов по filetype и/или первому вызову самого плагина, это не только ускоряет старт/работу Vim, но и помогает разрулить конфликты некоторых плагинов, простой пример:

Plug 'tpope/vim-endwise',   { 'for': [ 'ruby','vim','sh','zsh' ] }
Плагин endwise будет загружен только для ft=ruby,vim,sh,zsh, т.к. если этот полезный плагин работает одновременно с не менее полезным плагином delimitMate, то возникает конфликт в файлах с ft=css,js и везде, где после открытия скобки нужен автоматический переход на следующую строку и автозакрытие скобки.

Кроме всего прочего, отдельно от веб-разработки-related для самого вима у меня такое:

Автоматическое переключение на английский в Normal mode и обратно на предыдущий в Insert mode:

Конечно же нужно решать проблему с локалями (т.к. веб-разработка, в отличие от программирования иногда ведется на отличных от английского языках), а именно с неудобством при их переключении в Normal mode и обратно, самое лучшее решение, это установка в систему xkb-switch + плагин в Vim для него.

Plug 'lyokha/vim-xkbswitch'
let g:XkbSwitchEnabled       = 1
let g:XkbSwitchLib           = '/usr/lib64/libxkbswitch.so'
let g:XkbSwitchIMappings     = ['ru']
let g:XkbSwitchSkipIMappings = {'*' : ['[', ']', '{', '}', "'"]}
Теперь не нужно переключать на английский входя в Normal mode и на русский обратно в Insert mode, переключение происходит автоматически. Очень удобно.

Линейка номеров строк:

set nu
set nuw=4
autocmd InsertEnter * set nornu
autocmd InsertLeave * set rnu
в Insert mode - с номерами строк всё как обычно, в Normal mode (точнее после первого входа в insert и выхода обратно в normal) включается типа линейки: скриншот.

Автоматическая паста с отступами:

Чтобы навсегда забыть эту проблему и не включать перед пастой каждый раз режим пасты или использовать хитрые хоткеи, можно просто добавить настройку:

let &t_SI .= "\<Esc>[?2004h"
let &t_EI .= "\<Esc>[?2004l"
inoremap <special> <expr> <Esc>[200~ XTermPasteBegin()
function! XTermPasteBegin()
  set pastetoggle=<Esc>[201~
  set paste
  return ""
endfunction

Замена заменяемого без удаления (проблема забивания иксового буфера обмена):

Чтобы заменить слово или кусок окруженный делиметрами без удаления в иксовый буфер, можно использовать такую настройку на хоткей S :

nnoremap <silent> S :set opfunc=PasteReplace<CR>g@
function! PasteReplace(type, ...)
    if a:0
        silent exe "normal! `<" . a:type . "`>p"
    elseif a:type == 'line'
        silent exe "normal! '[V']p"
    elseif a:type == 'block'
        silent exe "normal! `[\<C-V>`]p"
    else
        silent exe "normal! `[v`]p"
    endif
endfunction
nmap SS S$
Теперь если нужно заменить слово без его удаления, можно просто: Sw , Si" , Si( , и т.п.

Проекты/сессии:

Плагин vim-startify - стартовый экран, можно настроить на сессии и букмарки, чтобы каждый раз не открывать то же самое в сплиты/табы/буферы.

Документация:

Для открытия документации в браузере (как минимум для того, что нас интересует: HTML, JavaScript, CSS, SCSS, LESS, Ruby, Rails, Django, PHP и т.п.) исходя из из ft= и положения курсора, удобно замапить на F1:

Plug 'Keithbsmiley/investigate.vim'
nnoremap <F1> :call investigate#Investigate()<CR>

Автокомплит и сниппеты:

В отличие от YouCompleteMe, автокомплитер neocomplete не тормозит (при работе и старте), не нужен питон (но нужен lua), а всё остальное такое же (для веб-разработки). Интегрируется с родным движком сниппетов neosnippet, который работает как с родными, так и универсальными vim-snippets (объединенные Snipmate & UltiSnip).

Настройка для навигации по комплиту через Tab (сам комплит всплывает автоматически, можно настроить обратное):

imap <expr><TAB> neosnippet#expandable_or_jumpable() ? "\<Plug>(neosnippet_expand_or_jump)" : pumvisible() ? "\<C-n>" : "\<TAB>"
smap <expr><TAB> neosnippet#expandable_or_jumpable() ? "\<Plug>(neosnippet_expand_or_jump)" : "\<TAB>"
if has('conceal')
  set conceallevel=2 concealcursor=i
endif

ZenCoding/Emmet:

Полнофункциональный Emmet для Vim: emmet-vim

Работает как нужно, но по дефолту неудобный (как по мне) хоткей <c-y>, , я настроил себе на jk . Т.е. Esc у меня kj , а дополнить jk . Первое время пользовался F4, привожу настройки, но jk намного удобнее. Просто на Tab настроить нельзя (иначе как пользоваться Tab?).

Plug 'mattn/emmet-vim',           { 'for': ['html','xhtml','css','sass','scss','less'] }
au FileType html,css,sass,scss,less imap <expr><F4> emmet#expandAbbrIntelligent("\<tab>")
au FileType html,css,sass,scss,less imap <expr>jk   emmet#expandAbbrIntelligent("\<tab>")
au FileType html                    imap <C-\>      <CR><CR><Esc>ki<Tab>
Плагин MatchTag - для отображения парных тегов.

Кроме Emmet'а для Vim существует аналог: Sparkup (нужен питон, не пробовал).

Отображение отступов:

Можно настроить каким символом и цветом отображать линии отступов, я настроил на хоткей <A-i> , альт как непечатаемый символ, так что проще посмотреть настройку склонировав репу на гитхабе и заглянув в .vimrc (или нажать C-v A-хоткей), скриншот.

Plug 'Yggdroot/indentLine'
let g:indentLine_enabled    = 0
let g:indentLine_char       = '¦'
let g:indentLine_color_term = 239
let g:indentLine_color_gui  = '#A4E57E'
nmap ^[i :IndentLinesToggle<CR>

Подсветка синтаксиса:

Plug 'tpope/vim-haml',            { 'for': 'haml'   }
Plug 'wavded/vim-stylus',         { 'for': 'stylus' }
Plug 'groenewege/vim-less',       { 'for': 'less'   }
Plug 'digitaltoad/vim-jade',      { 'for': 'jade'   }
Plug 'slim-template/vim-slim',    { 'for': 'slim'   }
Plug 'othree/html5-syntax.vim',   { 'for': 'html'   }
Plug 'cakebaker/scss-syntax.vim', { 'for': 'scss'   }

Plug 'hail2u/vim-css3-syntax',    { 'for': ['html','css'] }
augroup VimCSS3Syntax
  autocmd!
  autocmd FileType css setlocal iskeyword+=-
augroup END

Проверка синтаксиса:

Для проверки синтаксиса используется Syntastic + сторонние чеккеры:

Plug 'scrooloose/syntastic', { 'for': ['ruby','html','css', 'javascript', 'haml'] }
let g:syntastic_auto_jump           = 1
let g:syntastic_error_symbol        = '✖'
let g:syntastic_warning_symbol      = '►'
let g:syntastic_javascript_checkers = ['jshint'   ] " sudo npm install -g jshint
let g:syntastic_html_checkers       = ['jshint'   ] " sudo npm install -g jshint
let g:syntastic_ruby_checkers       = ['rubylint' ] " gem install ruby-lint
let g:syntastic_haml_checkers       = ['haml-lint'] " gem install haml-lint
let g:syntastic_css_checkers        = ['csslint'  ] " sudo npm install -g csslint
let g:syntastic_css_csslint_args    = "--ignore=zero-units"

Деобфускация / beautify'еры:

Плагин vim-autoformat работает со сторонними 'formatprograms', например js-beautify для HTML, CSS и JavaScript. autopep8 для питона и т.д. Всё это должно быть установленно.

Plug 'Chiel92/vim-autoformat'
let g:formatprg_args_javascript = "-j -q -B -f -"
noremap  <F8>   :Autoformat<CR><CR>
vnoremap <C-F8> gq

JavaScript:

Дефолтная поддержка JavaScript в Vim на довольно низком уровне, так что необходимы плагины как для самого JS, так и для библиотек, плагин javascript-libraries-syntax поддерживает почти все основные либы: jQuery, underscore.js, Backbone.js, AngularJS, RequireJS, Sugar.js, Jasmine и т.д.

Plug 'moll/vim-node'
Plug 'pangloss/vim-javascript',      { 'for': 'javascript' }
Plug 'jelera/vim-javascript-syntax', { 'for': 'javascript' }
let javascript_enable_domhtmlcss = 1
let g:html_indent_inctags        = "html,body,head,tbody"
let g:html_indent_script1        = "inc"
let g:html_indent_style1         = "inc"

Plug 'othree/javascript-libraries-syntax.vim', { 'for': 'javascript' }
let b:current_syntax       = 'javascript'
let g:used_javascript_libs = 'angularjs'

Также полезен tern_for_vim (сам Tern должен быть установлен), который умеет в 'Jump to the definition', 'Find the type' и т.д.

Пробельные символы:

По A-w показывает, по \-dw удаляет. Перевести все табы в пробелы (вдруг кто не знает), в Vim: :retab .

Plug 'ntpeters/vim-better-whitespace'
let g:better_whitespace_enabled = 0
nmap ^[w :ToggleWhitespace<CR>
nmap <Leader>dw :StripWhitespace<CR>

И кое-какие настройки по-мелочи:

set splitbelow
set splitright
inoremap  kj           <Esc>
map       gm           :call cursor(0, virtcol('$')/2)<CR>
nnoremap  <F12>f       :exe ':silent !firefox %'<CR><C-l>
nnoremap  <F12>c       :exe ':silent !chromium-browser %'<CR><C-l>
1-2 строки: для нормального открытия (слева направо) сплитов.
3: Esc на kj - мегаудобно.
4: для попадания на средину строки.
И последние две для предпросмотра в браузерах.

Мой ~/.vimrc

Кто что использует и как, кроме вышеуказанного?

 

VimCasts
()

Вкладки в Vim

Форум — General

Привет, ЛОР.
Недавно открыл для себя вкладки в виме(вообще открыл давно, но пока хватало простого сплитвью). Хочу переключение между ними по c-s-tab/c-tab. На vim.wikia.com нашел это

" tab navigation like firefox
nnoremap <C-S-tab> :tabprevious<CR>
nnoremap <C-tab>   :tabnext<CR>
nnoremap <C-t>     :tabnew<CR>
inoremap <C-S-tab> <Esc>:tabprevious<CR>i
inoremap <C-tab>   <Esc>:tabnext<CR>i
inoremap <C-t>     <Esc>:tabnew<CR>
Записал себе. Но у меня не работает.
Как мне повесить переключение вкладок на c-s-tab/c-tab и открытие/закрытие на c-ins/c-del?

 , ,

yacuken
()

Форматирование кода на javascript

Форум — Web-development

Казалось бы, если открыть *.js файл и нажать =G, файл должен красиво отформатироваться с отступами. Однако почему-то это работает только в самых простых случаях. Если же взять, например, следующий код

var obj = {
	"a": {"b":
		[f(c,
		   d),
		   g(e,
		     h)]},
		     "i": {"j": 0}
};

стандартный форматтер обламывается. Как и этот, и этот. Я ожидал, что хоть какой-нибудь из них хотя бы ключи «a» и «i» поставит на одном уровне отступа, но не тут-то было.

А вот как выглядит этот код, отформатированный питоновским jsbeautifier:

var obj = {
    "a": {
        "b": [f(c,
                d),
            g(e,
                h)
        ]
    },
    "i": {
        "j": 0
    }
};

Я что-то упускаю?

 

discordia
()

vim в русской раскладке

Форум — Desktop

симптомы: не работают команды и прочий треш в виме, когда включена русская раскладка

попробовал этот костыль — http://vim.wikia.com/wiki/Using_Vim_key_bindings_while_typing_non-latin1_text

команды заработали, но :йц печалит

что делать, как жить?

 

derlafff
()

Помогите разобраться с Latex. Пожалуйста.

Форум — Desktop

Всем привет. Хочу напечатать книгу в Latex. Понимаю, что до меня это делали тысячи людей. Есть опыт в подготовке научных статей. Тексты и формулы набирать умею, winedt пользоваться тоже умею. Опыта в создании книг нет. Хочу сделать все как в книге Львовского «Набор и верстка в системе Latex», в смысле также напечатать. Помогите «шапку» сделать.

Сейчас так

\documentclass[a5paper,10pt,flegn]{book} \usepackage{cmap} \usepackage[cp1251]{inputenc} \usepackage[english, russian]{babel} \usepackage[dvips]{graphicx} \usepackage{longtable, amsmath, amsopn, amssymb, amsfonts, amscd, multicol, hhline, textcomp}

\textwidth=11cm \textheight=17cm

\voffset=-2cm \renewcommand{\baselinestretch}{1.2} \multlinegap=0cm

\begin{document} \tableofcontents

\addcontentsline{toc}{chapter}{Введение} \chapter*{Введение}

Книга по теории колец.

\chapter{Радикал Джекобсона. Примитивные кольца.}

\section{Определение модуля. Примеры. Неприводимые модули.}

{\bf Опpеделение.} Абелева гpуппа $\langle M, + \rangle$ называется пpавым модулем над ассоциативным кольцом $R,$ если опpеделено отобpажение $M \times R \rightarrow M,$ пеpеводящее каждую паpу $(m, r)$ в $m \cdot r,$ такое, что для любых элементов $m,n \in M$ и $a, b \in R$ выполнены следующие условия:

\section{Радикал Джекобсона}

{\bf Опpеделение.} Пусть $R$ — ассоциативное кольцо. Радикалом Джекобсона $J(R)$ кольца $R$ называется множество элементов из $R,$ аннулиpующих все непpиводимые $R$-модули, если они существуют, или само кольцо $R,$ если непpиводимых $R$-модулей не существует.

\chapter{Ниль-радикалы колец}

\section{Примеры ниль-колец}

\begin{thebibliography}{99} \bibitem{lvov} Львов И.В. Лекции по теории колец. Барнаул: изд-во АлтГУ, 2003. \bibitem{andrun} Андрунакиевич В.А., Рябухин Ю.М. Радикалы и структурная теория. М.: Наука, 1979. \end{thebibliography} \end{document}

Почему-то верхний колонтитул не подчеркнут. Шрифт какой-то неприятный. Его можно как-то поменять? И если да, то какой самый популярный для технических книг. И еще, каким размером шрифта набирают обычно книги? И с каким межстрочным интервалом? Моя книга планируется формата A5.

evzhur
()