• +3
    Ага, особенно PEARL на картинке в облаке тегов…
    Новый рейтинг языков программирования от IEEE Spectrum оказался своебразным
  • 0
    Про раскладку вообще, можно добавить реализацию как это в gentoo wiki написанно, но тогда у нас не буду работать горячии клавиши

    Чтобы работали хоткеи в русской раскладке, используйте для переключения вместо setxkbswitch утилиту github.com/ierton/xkb-switch
    Моё знакомство с WM Awesome. Часть 3
  • 0
    По-моему п.2.4 в разделе С++ ABI то, что Вам нужно.
    Логируем контекст исключений
  • 0
    А разве libunwind не позволит получить backtrace?
    Логируем контекст исключений
  • 0
    Зависит от умений мастера. =)
    Vim как не IDE
  • –1
    Вам не повезло. Вы у него первый. В следующих заказах у него уже будет идеальный молоток.
    Vim как не IDE
  • 0
    Пойду еще разок занесу ребятам из cyanogenmod и продолжу пользоваться своим старым верным SGS-III
    Google и Samsung обещают регулярно обновлять Android
  • 0
    Для «расширения сознания» рекомендую книгу Бетти Эдвардс «Откройте в себе художника». И не только тем, кто хочет именно научится рисовать.
    Что нужно знать, чтобы хорошо рисовать?
  • 0
    Действительно интересно — а влияет ли выбранная локаль?
    std::locale loc(std::locale("C"));
    std::cin.imbue(loc);
    

    Правда следует иметь ввиду, что копирование локали почему-то довольно медленная операция.
    Насколько медленны iostreams?
  • 0
    Пробовал на трёх разных проектах — везде одно и то же.
    версии используемого ПО
    ☭ tmp/survey/build [devel] clang --version
    clang version 3.3 (tags/RELEASE_33/final)
    Target: x86_64-pc-linux-gnu
    Thread model: posix
    ☭ tmp/survey/build [devel] python --version
    Python 2.7.7
    ☭ tmp/survey/build [devel] pip --version
    pip 1.4.1 from /usr/lib64/python2.7/site-packages (python 2.7)
    ☭ tmp/survey/build [devel] gvim --version
    VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Nov 29 2014 02:48:34)
    Заплатки: 1-527
    С изменениями, внесёнными Gentoo-7.4.527
    Скомпилирован  hoxnox@localhost
    Огромная версия с графическим интерфейсом GTK2.  Включённые (+) и отключённые (-) особенности:
    +acl             +farsi           +mouse_netterm   +syntax
    +arabic          +file_in_path    +mouse_sgr       +tag_binary
    +autocmd         +find_in_path    -mouse_sysmouse  +tag_old_static
    +balloon_eval    +float           +mouse_urxvt     -tag_any_white
    +browse          +folding         +mouse_xterm     -tcl
    ++builtin_terms  -footer          +multi_byte      +terminfo
    +byte_offset     +fork()          +multi_lang      +termresponse
    +cindent         +gettext         -mzscheme        +textobjects
    +clientserver    -hangul_input    -netbeans_intg   +title
    +clipboard       +iconv           +path_extra      +toolbar
    +cmdline_compl   +insert_expand   +perl            +user_commands
    +cmdline_hist    +jumplist        +persistent_undo +vertsplit
    +cmdline_info    +keymap          +postscript      +virtualedit
    +comments        +langmap         +printer         +visual
    +conceal         +libcall         +profile         +visualextra
    +cryptv          +linebreak       +python          +viminfo
    +cscope          +lispindent      -python3         +vreplace
    +cursorbind      +listcmds        +quickfix        +wildignore
    +cursorshape     +localmap        +reltime         +wildmenu
    +dialog_con_gui  +lua             +rightleft       +windows
    +diff            +menu            -ruby            +writebackup
    +digraphs        +mksession       +scrollbind      +X11
    +dnd             +modify_fname    +signs           -xfontset
    -ebcdic          +mouse           +smartindent     +xim
    +emacs_tags      +mouseshape      -sniff           +xsmp_interact
    +eval            +mouse_dec       +startuptime     +xterm_clipboard
    +ex_extra        -mouse_gpm       +statusline      -xterm_save
    +extra_search    -mouse_jsbterm   -sun_workshop    +xpm
                общесистемный файл vimrc: "/etc/vim/vimrc"
             пользовательский файл vimrc: "$HOME/.vimrc"
      второй пользовательский файл vimrc: "~/.vim/vimrc"
              пользовательский файл exrc: "$HOME/.exrc"
               общесистемный файл gvimrc: "/etc/vim/gvimrc"
            пользовательский файл gvimrc: "$HOME/.gvimrc"
     второй пользовательский файл gvimrc: "~/.vim/gvimrc
    "
                 общесистемный файл меню: "
    $VIMRUNTIME/menu.vim"
              значение $VIM по умолчанию: "/usr/share/vim"
    Параметры компиляции: x86_64-pc-linux-gnu-gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-2.0 -I/usr/lib64/gtk-2.0/include -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/libdrm -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/freetype2    -O2 -pipe -fomit-frame-pointer -mtune=native -march=native -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1      
    Сборка: x86_64-pc-linux-gnu-gcc   -Wl,-E  -Wl,-O1 -L/usr/local/lib -Wl,--as-needed -o gvim   -lgtk-x11-2.0 -lgdk-x11-2.0 -lpangocairo-1.0 -latk-1.0 -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 -lpangoft2-1.0 -lpango-1.0 -lgobject-2.0 -lglib-2.0 -lfreetype -lfontconfig  -lSM -lICE -lXpm -lXt -lX11 -lXdmcp -lSM -lICE  -lm -lncurses -lelf   -lacl -lattr -ldl  -L/usr/lib -lluajit-5.1 -Wl,-E -Wl,-O1 -Wl,--as-needed  -L/usr/lib64/perl5/5.18.2/x86_64-linux/CORE -lperl -lnsl -ldl -lm -lcrypt -lutil -lc -L/usr/lib64/python2.7/config -lpython2.7 -lpthread -ldl -lutil -lm -Xlinker -export-dynamic  
    

    Об удобной навигации и отладке C++ кода в Vim
  • 0
    При попытке:
    cd ~/devel/my-project
    cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=ON ..
    gvim ../src/mysource.cpp
    

    gvim мертво виснет ctrlk_server.py вот уже 7 минут жрёт 100% одного из ядер CPU и под 120Мб оперативки.

    Простите, пока придётся остаться на связке Indexator+CtrlP. Но очень заинтересовали и буду рад, если починитесь.
    Об удобной навигации и отладке C++ кода в Vim
  • 0
    cd ~/devel/my-project
    mkdir build
    cd build
    cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=ON ..
    gvim ../src/mysource.cpp
    


    Именно так, чтобы можно было из vim-а делать mak, не мусоря в корне проекта.

    В gvim'е: CtrlK — работает как часы, от F2 и F12 никакой реакции.

    F3:
    Index: Initializing / Current: Initializing / Jump: normal
    


    Что я делаю не так? И что я должен бы делать?
    Об удобной навигации и отладке C++ кода в Vim
  • 0
    Я просто переживаю, что мне pip намусорит в системе (там и snappy и tornado и ещё что-то).
    Об удобной навигации и отладке C++ кода в Vim
  • 0
    Не осилил установку CtrlK. Не понимаю как мне согласовать pip, vundle и мой пакетный менеджер (emerge в gentoo) — простите, питонист из меня пока плохой.

    gdb-шный плагин интересный. Пальцы кровоточат от разных хоткеев переключения между окнами (ctrl-b+стрелки для tmux, winkey+«hjkl» для awesome-wm и Ctlr-o+«hjkl» для vim-а), но главное сама идея.
    Об удобной навигации и отладке C++ кода в Vim
  • +1
    Среди прочего на LIRC это уже делали. Тут ещё. Новизна в том, что это подключено к телефону?
    Управление любой AV-техникой с телефона. ИК-приёмопередатчик для JACK 3.5
  • –6
    Позволю себе ещё немного раскрыть мысль.

    Я не к тому, что правила в корне неверны, а к тому, что ими нельзя слепо пользоваться ВЕЗДЕ. Как говорится — научи дурака богу молиться…

    Так:
    if (case_one)
    {
    	some = one;
    }
    else if (case_two)
    {
    	some = two;
    }
    else if (case_three)
    {
    	some = three;
    }
    else if (case_four)
    {
    	some = four;
    }
    else
    {
    	do_nothing();
    }
    


    Вместо:
         if (case_one  ) some = one  ;
    else if (case_two  ) some = two  ;
    else if (case_three) some = three;
    else if (case_four ) some = four ;
    esle
    	do_nothing()
    


    Так:
    std::vector<const std::string>::reverse_const_iterator left;
    std::vector<const std::string>::reverse_const_iterator right;
    std::vector<const std::string>::reverse_const_iterator middle;
    

    Вместо:
    std::vector<std::string>::reverse_const_iterator
    	left, right, middle;
    


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

    и тому подобное.
    10 главных правил убивания жуков
  • 0
    Язык программирования — тоже язык. Хороший код не просто решает поставленную задачу, читая его должно приходить понимание того, ЧТО хотел донести автор. Многочисленные const, static, дефайны вместо комментирования и прочее несколько запутывают при чтении. Появляются дополнительные акценты там, где они не очень-то и нужны.
    10 главных правил убивания жуков
  • –7
    ИМХО: Этим правилам НУЖНО следовать лишь команде, начинающей свой путь в программировании. Любому более-менее опытному специалисту они будут лишь мешать. Ошибки вызванные «неповиновением» в большинстве своем надуманы.
    10 главных правил убивания жуков
  • 0
    Пишу на C/C++ в Vim уже года 3. Другого уже и не надо. Добавлю свои пять копеек:

    1. Попытки пересесть на Sublime привнесли в мой конфиг отличный плагин CtrlP (kien/ctrlp.vim)
    2. Индексация ctags + vim-scripts/indexer.tar.gz (спасибо хабраюзеру dimonomid)
    3. Частенько приходится работать через ssh, с помощью vim-scripts/CSApprox разница между gvim и vim почти полностью пропадает (главное не забыть выставить 'export TERM=xterm-256color'). А screen позволяет остановиться и продолжить с того же места в следующий раз.
    4. Следуя за модной тенденцией vimrc можно разбить на отдельные части и сложить в директорию vimrcd, подгружая все содержимое с помощью:
    :runtime! vimrc.d/*.vimrc

    5. После поста Пора завязывать использовать пробелы вместо табуляции в коде хабраюзера TheShock Сделал себе такую штуку и забыл о проблеме пробелы\табуляция:
    set list listchars=tab:>-,trail:.,extends:>,precedes:<

    6. cmake/make и vim: все мои проекты на cmake, поэтому процесс разработки начинается так:
    mkdir build
    cd build
    cmake ../
    gvim ../*

    Сборка из vim'а делается командой :mak, при этом если будут ошибки, vim встанет на нужную строчку. Переход к следующей выполняется командой :cnext
    7. Раньше пользовался такой штукой как :mks для сохранения текущего состояния, но потом перешел на ssh и уже упомянутый screen.
    Использование Vim в качестве C/C++ IDE
  • +4
    Спасибо. Пара вопросов. Насколько лучше/хуже вели себя ваши реализации?
    Рекверстирую статью о том как ещё вы тестировали свои неблокирующие контейнеры.
    Испытания boost::lockfree на скорость и задержку передачи сообщения
  • 0
    Спасибо.
    Помогает понять что происходит «под капотом».
    Меня, как начинающего программиста под Андроид, но разработчика с большим стажем не интересует как поставить eclipse и запустить там нужный плагин (именно это обычно рассказывают в курсах). Гораздо интересней знать какие приложения в реальности запускаются — их сочетание дарит полную свободу действий и понимание происходящего.
    Разработка под Android в NetBeans IDE без плагинов. Часть 1
  • 0
    И приложение в Play пришлось поискать (просто Shine не находилось — только по «родному» названию — Misfit shine). Короче эта штука не для Андроидоводов пока…
    Shine — фитнесс-пуговица
  • 0
    Купил недавно в подарок. Так и не смогли подружить ее с Galaxy S III (Device not found). На праздниках поеду сдавать…
    Shine — фитнесс-пуговица
  • +4
    Наверное потому что хочу видеть больше? Всегда надо пробовать новое и популярное.
    Вышла публичная бета Sublime Text 3
  • +4
    Пытался пересадить себя с VIM'а на ST. Честно мучился неделю. В конце вернулся обратно, но поставил CtrlP плагин. Видимо мозг уже не перестроить… Не холивара ради. Есть те, кто с VIM'а пересел на ST (только честные VIM'овцы, а не те, кто не осилил)?
    Вышла публичная бета Sublime Text 3
  • 0
    Жучка за внучку, внучка за бабку, бабка за дедку. С++11 прекрасен, когда он полностью поддерживается компилятором. В частичной поддержке постоянно чего-то не хватает.
    Нумерация аргументов variadic template, или что скрывает скромный pair
  • +1
    Спасибо. Насколько я понял если по каналу не передавать персональные данные, но и мутить с нестандартными сертификатами не придется. Достаточно обычного TLS соединения.
    Защита систем интернет-банкинга: TLS, электронная подпись, ГОСТы, токены
  • 0
    федеральные законы, приказы регуляторов и требования к системам ДБО от Банка России, многие из которых касаются именно защиты информации в системах ДБО

    А не подскажите какие? Просто стало интересно где конкретно должны быть Российские ГОСТы (в смысле алгоритмов) — в обеспечении безопасности хранения персональных данных или безопасности канала.
    Защита систем интернет-банкинга: TLS, электронная подпись, ГОСТы, токены
  • +2
    Не согласен про мелочи. Так и представляю:

    $> git log --pretty=oneline
    
    fd6ab367a690e2dd438e3282ea9d2c8415f2296a #54!!!
    afd843c40a9e5df6663dbf122f673d1c2eea77bf #42, #43 and #35
    7ad7a34bef74124100465eac02241a0484b2f4db #31, #32
    


    А так да, многие системы управления проектами подхватывают ссылки на коммиты, если указывать номер тикета.
    Стиль именования коммитов
  • 0
    Так я и с граблями столкнулся не в этом коде, а в гораздо более запутанном примере. Долго не мог понять что происходит…
    Особенности получения пакетов через raw socket в Linux
  • 0
    Особенно это сбивает, если сокеты завязаны (bind) на другие порты.
    Особенности получения пакетов через raw socket в Linux
  • –1
    Мне почему-то не показалось очевидным, что при этом нужно доставить пакет всем открытым сырым сокетам.
    Особенности получения пакетов через raw socket в Linux
  • +2
    А мне больше нравится «нативный» вариант — выставить
    set keymap=russian-jcukenwin
    и использовать i_CTRL-^ для переключения раскладки.

    Мечта только одна — выставить то же сочетание клавиш в X-ах, и научить xkb не переключаться, когда активно окно Vim'а, а передавать сигнал ему. Если кто знает как это сделать «малой кровью», буду очень благодарен.
    Vim и переключение раскладки клавиатуры
  • 0
    Я не понимаю вашего вопроса…

    В приложении вы получаете путь как аргумент командной строки. Значение аргумента представлено какой-то кодировкой в windows это скорее всего cp866, в *nix — UTF-8 и в неизменном виде передаете на открытие файла (в ifstream или fopen), чаще всего это будет работать нормально.
    Пути к файлам
  • 0
    Если путь пришел к вам через аргументы командной строки, можете оперировать им напрямую. Как правило (есть исключения), кодировка аргументов командной строки соответствует кодировке ФС.
    Пути к файлам