Pull to refresh
0
0

User

Send message
Пожалуйста.
Код
#include <stdio.h>
#include <unistd.h>

#define RED         "\033[1;32;41m"
#define GREEN       "\033[5;30;42m"
#define OLDCOLOR    "\033[0;0;0m"

main(){
	if(isatty(STDOUT_FILENO)) printf(RED "This is a TTY! " GREEN "Output may be colorized!" OLDCOLOR "\n");
	else printf("This is pipe, no colors!\n");
}


Выхлоп

возможно инновация и небольшая но почему то мне кажется для людей с хотя бы средней скоростью работы с клавиатурой данное меню может серьёзно упростить работу. я же пользуюсь чем то похожим почти постоянно: iDo mode для emacs (screencast) на протяжении нескольких лет. Насколько хорошо реализована эта идея в Ubuntu? — посмотрим… На мой взгяд если там есть (нетривиальная но супер важная) возможность прервать текущий ввод и продолжить ввод новой подстроки — тогда таки ДА, это супер вещь!
Пользуясь случаем, рекламирую мой юзер-скрипт, который преобразует код, подсвеченный в Source Code Highloghter, в HTML, который нормально отображается в скайпе.

Теперь, если писать кому-то отрывки кода в скайпе, то его будет намного удобнее читать.

userscripts.org/scripts/review/114459

Тестировалось в Хроме.
>ls | grep | sdcv
зачем переводить имена файлов?
Я использую sdcv так:
sdcv -n --utf8-output --utf8-input --data-dir=путьксловарям "`xclip -o`" | dzen2 -l 16 -p -w 500 -bg gray75 -fg blue -x 300 -y 300 -e 'onstart=scrollhome,uncollapse;button4=scrollup;button5=scrolldown;button1=exit'
Это привязано на клавишу, и переводит слово оказавшееся в буфере обмена. (для работы нужен dzen2)
P.S. скрипт откуда-то пизжен, но откуда непомню.
>Вы никогда не будете писать класс, а потом думать, чем бы ему заняться. То есть, цепочка всегда начинается от поведения.

Извините, не удержался :):

«Я уверен, что ООП методологически неверна. Она начинает с построения классов. Это как если бы математики начинали бы с аксиом. Но реально никто не начинает с аксиом, все начинают с доказательств. Только когда найден набор подходящих доказательств, лишь тогда на этой основе выводится аксиома. Т.е. в математике вы заканчиваете аксиомой. Тоже самое и с программированием: сначала вы должны начинать развивать алгоритмы, и только в конце этой работы приходите к тому, что вы в состоянии сформулировать четкие и непротиворечивые интерфейсы. Именно из-за этой неразберихи в ООП так популярен рефакторинг — из-за ущербности парадигмы вы просто обречены на переписывание программы, уже в тот самый момент, когда только задумали её спроектировать в ООП-стиле».

(с) Степанов (автор STL)

> Файрфокс я видел, это прикольный зверёк, гибрид панды с котом.
типа такого? :)
image
Cedet мне не пошел если честно. Показался слишком overbloated и не совсем удобным. По это же причине в свое время отказался от MuMaMo. Отнюдь не отрицаю, что я просто не умею их готовить :)

В результате остановился на следующей
python: python-mode + flymake для проверки синтаксиса/кодинг стандарта + yasnippet + ropemacs, если нужен рефаХторинг
javascript — голый js2.el,
html — html-mode + html-font
для php обычного php-mode за глаза.
кроме этого пожалуй ничем и не пользуюсь… если попадается экзотика, включается vim :)

для автодополнения — auto-complete.el cx4a.org/software/auto-complete показалось наименьшим злом

Из рюшечек — tabbar.el c группировкой по major mode, fill-column-indicator.el для отбивки 80 столбца, да и всё в принципе
Подробно алгоритм описан в статье Р.Душкина «Модель типизации Хиндли — Милнера и пример её реализации на языке Haskell» в 5-м выпуске журнала «Практика функционального программирования»
Курсы Университета Беркли:
http://webcast.berkeley.edu/series.html
Из прослушанных особо понравились:
CS162 Operating Systems Programming
C10 Physics for Future Presidents
Хочу отметить, что у Стенфорда дофига курсов есть в электронном виде. Они состоят из лекций, заданий и справочных материалов. Все бесплатны, заходи и смотри.

Также и другие американские вузы выкладывают свои материалы в сеть.
Например, я дистанционно прошел два курса:
1) Harvard CS 75 Bulding Dynamic Websites: cs75.tv/2010/fall/
Мне было весьма интересно. Это практический экскурс по основным веб-технологиям. Мне, как маркетологу, он был полезен, чтобы лучше понимать веб-дев и общаться со спецами на одном языке. Во время курса я сделал сайт по заказу пиццы. Курс будет интересен разработчикам, которые не сталкивались с вебом, но хотели бы попробовать.

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

2) Yale Game Theory: oyc.yale.edu/economics/game-theory/contents/sessions.html
Думаю, особо рассказывать смысла нет, потому что это не тематика Хабра. Курс забавный, но очень простой.
… отсутствие официальной документации несколько замедляет процесс обучения.

Не могу понять о чём вы говорите. Официальная документация есть www.ruby-doc.org/
А ешё есть книга, вышедшая недавно на русском языке Язык программирования Ruby/.
И ещё есть вот прекрасная книга на английском языке: Metaprogramming Ruby: Program Like the Ruby Pros.
Ну и раз уж речь идёт о лучших решениях, то стоит упомянуть и это издание: Ruby Best Practices.
Есть такой файлик Local State.

Windows XP: (/Users/[your user name]/Library/Application Support/Google/Chrome/Local State).
Windows 7 / Vista: (C:\Users\[USERNAME]\AppData\Local\Google\Chrome\Local State)
Linux: ~/.config/google-chrome/Local State

там в поле "last_known_google_url": надо поставить "http://www.google.com/"
Открываем вимом исходник, позиционируя курсор на то же место, где он стоит в студии:
Arguments:
--servername VS_2008 --remote-silent "+call cursor($(CurLine), $(CurCol))" "+normal zz" $(ItemPath)

Теперь по порядку:
--servername VS_2008 --remote-silent позволяет не запускать каждый раз новую копию Vim, а открывать файл в уже запущенном. VS_2008 — это просто идентификатор, можно поменять на любой. У меня разные студии открывают каждая свой Vim.
"+call cursor($(CurLine), $(CurCol))" позиционирует курсор.
"+normal zz" делает так, чтобы строка с курсором была посередине экрана.

Бонус: если в Solution Explorer выбрать проект и вызвать Vim — откроется на редактирование файл проекта. Часто бывает удобно.
Сомнительный запашок у получающегося кода.

Перегрузка операций (любых) — не самый лучший способ построения каскадов генераторов.
Из-за этой перегрузки в записи возможны досадные ошибки.

Понятность снижается (а должна бы увеличиваться).
Оператор | может встречаться и в привычном контексте битовых операций.
Здесь же придется внимательно смотреть: это pipe или нет?
Если, скажем, numpy перегружает операторы для матриц — там ясна предметная область и не происходит
её перекрытия со стандартной семантикой. Если складываются два числа — они делают это по правилам элементарной арифметики. Две матрицы — тоже ничего нового.
В sqlalchemy для SQL запросов перегружаются все битовые операции.
При этом биты для чисел и запросы для SQL разведены по разным углам, очень редко пересекаясь в коде. По выражению практически всегда легко понять, где кто.
Здесь же | работает как битовый для чисел и pipe в стиле bash если самый правый операнд оказался типа Pipe.
Семантика разная, и две семантики легко могут пересекаться. Это неприятно.

Еще одно: эту штуку крайне легко сломать.
import pipe

class L(object):
    def __init__(self, v):
        self.v = v

    def __or__(self, r):
        return 'abra'

print L(range(5)) | pipe.as_list

Вроде бы класс L вполне невинен. Только, на беду, содержит оператор __or__, приоритет которого выше чем у
__ror__. Нехорошо…

Не все возможные занятные выкрутасы стоит использовать.

Сугубо личное мнение. Если кто не согласен — навязывать свое мнение не буду.
Раньше мне тоже нравились подобные полеты мысли: чем замудрённей — тем интересней.
Сейчас скорее признаю предлагаемый код unpythonic.
Как еще одно дополнение к данной фишке - в vim можно создавать свои меню и если добавить в .vimrc следующие строки:
set wildmenu
set wcm=<Tab>
menu Encoding.koi8-r :e ++enc=koi8-r ++ff=unix<CR>
menu Encoding.windows-1251 :e ++enc=cp1251 ++ff=dos<CR>
menu Encoding.cp866 :e ++enc=cp866 ++ff=dos<CR>
menu Encoding.utf-8 :e ++enc=utf8 <CR>
menu Encoding.koi8-u :e ++enc=koi8-u ++ff=unix<CR>
map <F8> :emenu Encoding.<TAB>


То по нажатию F8 можно будет выбрать из меню, в какой кодировке редактировать текущий файл. По-моему, очень удобная фича.
UFO landed and left these words here
UFO landed and left these words here
на эту тему есть довольно хорошая книга Линн Виссон «Русские проблемы в английской речи»
Есть стишок, чтобы запомнить.

С Надей встали мы под душ
Вдруг приперся Надин муж
То ли мне одеть Надежду
То ли мне надеть одежду

Для «предпочитателей» FAR'а есть плагин PowerShellFar.
С консолью, отладкой и прочими вкусностями.

Брать тут: code.google.com/p/farnet/
1

Information

Rating
Does not participate
Registered
Activity