LINUX.ORG.RU

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

ddos

Форум — General

как можно заблокировать данный тип атаки http://rghost.ru/7hvvxqbW5/image.png пробовал по размеру - не дропаются Нужно флаги эти вовсе попробовать отрезать.

 

User01
()

Картинки в БД

Форум — Web-development

Хранение картинок в БД: как это делать и стоит ли?
База данных: MySQL. Физически в ней можно хранить изображения? Какие при этом ограничения? В каком виде хранятся картинки в базе данных? А если base64 перевести?
А может не надо? Может, лучше ссылки хранить? А у пользователя такие картинки кэшироваться будут? База данных разжиреет, дампы тяжёлые будут, или нет?
А может я всё неправильно делаю? Может мне вообще это не надо? Может, мне нужно другую БД юзать?
Если кратко, поясните мне поясните мне по хардкору все методы работы, плюсы, минусы и подводные камни.

 , , ,

CYB3R
()

Веб-разработка в 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
()

Посоветуйте аналог hetzner.de

Форум — Web-development

Из-за блокировки Visa и MasterCard есть трудности с оплатой выделенного сервера на hetzner.de.

Посоветуйте российский аналог близкий по цене и качеству. Спасибо!

 ,

Windows
()

/var/lib/mysql весит больше в 15 раз ,чем сумма размеров баз данных

Форум — General

всем привет

собсно $subj

размер баз данных смотрел следующим запросом :

SELECT table_schema "Data Base Name", sum( data_length + index_length ) / 1024 / 1024 "Data Base Size in MB"
    -> FROM information_schema.TABLES GROUP BY table_schema ;

3 базы в сумме занимают 600MB, директория же /var/lib/mysql весит 9.3 гига

до этого никогда не сталкивался с такой бедой

это какой то лог транзакций? или что? и как «это» почистить?

ЗЫ:если вопрос слишком «тупой» - подойдет любой тру кейворд для гугла

спасибо

 ,

fura13
()

Жизнь программиста

Форум — Talks

Вчера for fun сделал вот такую штуку - http://defun.co/
Сейчас в базе 1300+ картинок, 550+ переведены.
По мере перевода будут появляться остальные.
Реквесты и критика приветствуются.

Тут еще товарищ приложение написал для андроида -

https://play.google.com/store/apps/details?id=com.comics.codefun&hl=ru

 , , программизмы

pi11
()

В какое время суток лучше заниматься спортом?

Форум — Talks

В какое время суток, до или после еды, лучше заниматься спортом в целях поддерживать себя в форме + похудеть?

KendovNorok
()

Перегрев ноутбука.

Форум — General

Как все многие поняли я недавно перешел на линукс, сначала установил дебиан... настраивал... с вопросами обращался на этот же форум, после того как он у меня слетел, я все же решил перейти на ubuntu, так как она попроще дебиана, все настроил отлично кроме драйвера на видеокарту.(Не знаю как его установить, следовал инструкциям в интернете, всейравно в системе не видет инфо о видео.)Хоть это мне особо и не мешает, стандартный драйвер (думаю) работает нормально, но возникла такая проблема как перегрев, при включении ноутбука куллер работает нормально, и перегрева нет, но спустя 10 минут, куллер начинает работать на максимум, и температура повышается, до неприятных ощущений, так же начала грется чаcть ноутбука под тач падом(хотя этого раньше никогда не было). О чистке не может быть речи, чистка была месяц назад, и на виндовс, и дебиан такого перегрева не было, ноутбук горячий даше при простое, даже если потушен экран, куллер работает на максимум и ноутбук горячий. Вот характеристики. Экран 15.6" (1366х768), AMD Athlon 64 X2 QL-64 (2.1 ГГц) / RAM 4 ГБ / RAM 320 ГБ / ATI Mobility Radeon HD 4570 / DVD Super Multi / LAN / Wi-Fi / Bluetooth / Веб-камера / 2.8 кг Подробнее: http://rozetka.com.ua/ru/products/details/31241/index.html

esk1ze
()

Xfce и «горячие клавиши»

Форум — Desktop

Есть такой таб в настройки клавиатуры. Так вот, в отличие от гнома, он игнорирует нажатие мультимедийных клавиш ноутбука. Чем лечится?

>>>

musha-route
()

Still pimping awesome

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

С прошлого раза изменилось немного. Проще по пунктам:

  • дневной/ночной режимы. По известному алгоритму высчитываю для текущего дня и заданых координат время восхода/заката, и в это время тема меняется. Меняются также gtk темы. Единственное, что не осилил - чтобы переключались темы огнелиса, ну тут уже хз что делать. Скрин ночного режима: http://i.imgur.com/za9sR.png
  • календарь (который парсит org-mode файлы) теперь интегрирован с Google Calendar. Пока только в одну сторону - события подкачиваются с гугла и преобразовываются в org.
  • с щелчком по виджету процессов открывается меню, с которого процессы можно убивать. Удобно наказывать зарвавшийся plugin-container.
  • треугольные часы для ночной темы. На**я? Не знаю.

Положения виджетов не особо хорошо подогнаны, все еще экспериментирую с обоями. С шрифтами тоже, надо наверное пересадить логи на моноширинный шрифт (правда тогда мало текста помещается).

ШГ и «двое часов» можно не писать, и так осведомлен.

>>> Просмотр (1280x800, 629 Kb)

 

unlog1c
()

Pimp my awesome

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

Решил показать то недоразумение, которое выполняет у меня роль рабочего стола. Итак, lo and behold. На скрине Arch Linux, последний собранный из репозитория awesome, cairo-compmgr. Всё на экране сделано через Awesome, никаких коньков.

Еще скрины:
[2] http://i.imgur.com/O9KTh.png
[3] http://i.imgur.com/J2HsF.png
[4] http://i.imgur.com/F1xfm.jpg - на десерт

Ниже будет описание скринов и из чего это всё сделано, можете дальше не читать.

Скрин 1
По центру обычные отрисованные cairo часы, под ними погода. Можно задать одно напоминание, и оно отобразится на часах голубой стрелкой, а так же в тексте под ними (и высветится сообщением, когда придет время).
Справа сверху календарь и agenda, составленная по org-mode файлу. Об этом я уже когда-то писал, но на всякий ссылка: http://awesome.naquadah.org/wiki/Orglendar_widget
Слева внизу виджет для просмотра логов. Между логами можна переключаться, а также скроллить текущий. Сделано через inotify и dbus.
Справа внизу простой виджет для просмотра наиболее ресурсопоглощающих процессов. Переключается между CPU и RAM.

Скрин 2
Строка сверху (под статусной панелью) - аналог dmenu для awesome. Парсит /usr/share/applications/ на предмет *.desktop файлов, раскидывает их по категориям и выводит в виде строки. Естественно, можно перемещаться между пунктами стрелками, заходить внутрь категории и набирать текст для фильтрации видимых приложений.
Линк: http://awesome.naquadah.org/wiki/Menubar

Скрин 3
Поскольку мне не удалось отложить из завтраков денег на SublimeText, пришлось учить Emacs новым трюкам.[/sarcasm] Нет, серьезно, за это кто-то платит деньги?
В правом верхнем углу оповещение от Awesompd, который дорос до версии 1.1. Из новых фич: обложки теперь показываются и для локальных треков (раньше было только для Jamendo-стримов), можно из меню открыть в браузере страницу исполнителя текущей песни на Jamendo, появилась поддержка клавиатурных хоткеев.
Линк: http://awesome.naquadah.org/wiki/Awesompd_widget

Скрин 4
Lightdm и unity-greeter, обернутые в скрипт, который при каждом запуске ставит фоном случайное изображение из папки.

>>> Просмотр (1280x800, 1085 Kb)

 , ,

unlog1c
()