Как стать автором
Обновить

Комментарии 43

Мне с консолью пока не приходилось работать, но на блог ваш подписался и в букмарки добавил)
Спасибо =)
на хабре еще очень удобно добавлять в избранное, а то букмарки на других компах не доступны как правило :)
я блог в букмарки добавил)
Сам недавно делал тему для installer-а своей системы.
Одна из них была как раз «консольная» :)
Этакое «Ретро Классик» :)
Видать не я один такой сумашедший ;)
Правда я делал на JS
Всмысле? Консольное приложение на JS??
Это сильно… Я тут все пытаюсь заставить JS выполнятся… Просто мне нужно связать DOM (который является класом в PHP) и JS.
Есть сумасшедшая идея делать скрины на чистом PHP =)

Почти удалось уже. Пока что только JS мешает осуществлению мечты. Но простенькие сайтики скринятся нормально…

С формочками (input, textarea, option, etc...) задолбался… Сидел с фотошопом, принтскрином и сафари… =)
Сделал на JS, правда от курсора пришлось отказаться :\, так как пришлось бы фактически писать свой wsywing.

А сделал я инсталлер своей CMS, с «консольной / терминальной» темой :)

Даже с прогресс баром (jquery-ajax) и распаковкой zip архива («убиваем» хостеров у которых включен safe mode :)

Кстати gmail отличился тоже тему «терминала» сделал в почте у себя!!!
Так что сумашедшие мыслят одинаково

а… Тогда понятно =)
Я уж испугался… думал консольный скрипт на JS…

Типа:

user@host$ js install.js

=))
Интерпретаторы языка JS для Linux есть, так что почему нет?
Конечно есть, spidermonkey, к примеру…
Другой вопрос — а не изврат ли??
В чём вы видите изврат?
В написании консольных приложений под Линукс на ЯваСкпипте.
Задам вопрос иначе. Почему это изврат?
НЛО прилетело и опубликовало эту надпись здесь
Многие хвалят JS за его развитые возможности как языка.
Для работы в консоли ему, насколько я могу судить, не хватает функционала работы с окружением.
А так — тоже ЯП, почему бы и нет.
в Windows JavaScript работает со средой через Windows Script Host, может и под Linux есть что-то похожее?
SpiderMonkey.

Конечно есть. Причем в разы лучше и быстрее работающий пакет.

Просто я к тому, что писать консольное приложение на JS — всеравно как разрабатывать ОС на BrainFuck'e…

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

Ведь JS сам по себе не умеет ни о ни то.

AJAX?? Это все заслуги браузеров. Сам же интерпритатор этого не делает.
Ну это реализовано за счет использования ActiveX, мне по большому счету безразлично, что используется для доступа к файлам — родные методы или внешняя библиотека
Для IE исключительно.
да причем здесь IE — я говорю про использование javascript в рамках операционной системы, а не браузера
> это реализовано за счет использования ActiveX

ActiveX — исключительно IE'шная технология.
Точнее виндовая, просто в IE она используется наиболее широко, видимо в связи с тем, что в IE ее просто использовать. А так ActiveX вполне может работать в любом виндовом приложении, практически все современные языки (и их IDE) позволяют использовать ActiveX при разработке, не трогая IE
apt-get install spidermonkey-bin
Именно так. Но это для убунту и дебиан-подобных.
Хотя ладно, не будем грузить публику.
UNIX?
Отличная тема, порой нужно что-нибудь подсветить в консоле, так копипащу заклинание подсветки прямо в месте вывода, а тут класс подходящий, который упростит.
PHP, кстати, замечательный язык для написания консольных утилит. Может составить конкуренцию для перла и питона.
Мне кажется тут ошибка:
  // Text colors 
  function setStyle($style='default')    { $this->text .= "\033[".$this->style[$style]."m"; return $this; } 
  function setColor($color='default')    { $this->text .= "\033[".$this->color[$style]; return $this; } 
  function setBgColor($color='default')  { $this->text .= "\033[".$this->bgcolor[$style]; return $this; } 


$this->color[$style];
$this->bgcolor[$style];

нужно заменить на:
$this->color[$color];
$this->bgcolor[$color];
Ещё немного и ncurse обгоним :)
Огромное спасибо!
Очень полезный класс.
а где можно найти описание всех этих магических эскейп последовательностей "\033["…?
в моем блоге распишу скоро.
Спасибо за поучительный линк.

Не каждый догадается, что эти последовательности называются vt100 codes, ссылка не радует, даже обижает (
Это история. Это все называется ESC-последовательности и vt100 стал самым масовым терминалом.
public function setSoundLong($milliseconds=500) { echo "'033[11;{$milliseconds}]"; return $this; }

'033 -> \033
beep, setSoundHerz, setSoundLong почему то не работает
не плохо было бы увидеть пример для тестов ;)
Огромное спсибо за поправку.
Сейчас изменю, жто моя ошибка… У меня на ноуте кнопки рядом стоят просто…
Пример сделаю…
Положу в лаборатории, в своем блоге
Раздел лабороторий пока готовится…
Скоро будет работать…
Еще раз спасбо.
$this->text .= вместо echo во всех методах
draw для себя переименовал в output
. «m» забыты в setColor и setBgColor

зачем константы в классе забиты я не смог понять
Константы были определены для меня, а не для компилятора =)
Просто что бы помнить что к чему. Почему не использовал и не убрал? Даже е знаю что ответить…
почему не комментарием? ;)
Так судьба сложилась… =)
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории