Pull to refresh
  • by relevance
  • by date
  • by rating

nushell — современный shell, сочетающий Unix-конвейеры и объекты в духе PowerShell

Флант corporate blog Open source *System administration **nix *Shells *
На днях был представлен проект nushell (краткое название — Nu). Он появился благодаря идеям из «философии классических конвейеров в Unix, подхода со структурированными данными из PowerShell, функционального программирования, системного программирования и так далее». На GitHub проект лаконично описан как «современный shell эры GitHub, написанный на Rust».

Читать дальше →
Total votes 27: ↑25 and ↓2 +23
Views 6.9K
Comments 14

Появилась консольная утилита kubelive для интерактивной работы с Kubernetes

Флант corporate blog System administration *JavaScript *DevOps *Kubernetes *
Несколько дней назад индийский энтузиаст представил своё детище kubelive как попытку «повторно изобрести kubectl, сделав утилиту более реактивной и интерактивной». Этот анонс с большим энтузиазмом встретили на Reddit.

Kubelive — CLI-утилита, полностью написанная на JavaScript (Node.js) и использующая в своей работе клиентскую библиотеку для Kubernetes, реализованную на TypeScript (@kubernetes/client-node). Основное предназначение нового инструмента — отображать сведения о кластере и его ресурсах в реальном времени, предлагая для этого понятный (консольный) интерфейс.
Читать дальше →
Total votes 26: ↑25 and ↓1 +24
Views 4.5K
Comments 1

Состоялся релиз консольной утилиты GitHub CLI 1.0

Open source *Go *GitHub

Команда сервиса GitHub выпустила консольную утилиту GitHub CLI 1.0. С ее помощью разработчики могут управлять своими проектами в сервисе из командной строки. Исходный код приложения также выложен на GitHub под лицензией MIT.
Читать дальше →
Total votes 25: ↑25 and ↓0 +25
Views 11K
Comments 45

GNU command line utils

IT-companies
Ни для кого не секрет, что Mac OS X базируется на BSD, и, как следствие, получила в наследство полный комплект BSD-шных command line утилит, таких как ls, find, xargs, и многие другие. Они хорошие и правильные, и использовать их вполне можно — однако если вы долго использовали Linux, наверняка вы привыкли к GNU версиям этих утилит, то есть, к примеру, --длинным-аргументам, нормальной опции --help — ну и вообще выработали определенные привычки. К числу таких людей принадлежу и я, и когда мне понадобилось набрать пару десятков команд в Terminal.app, через 10 минут я начал рвать волосы на груди нервничать и читать man, что не способствовало производительности труда.
Несколько позже я подумал — а почему, собственно, я не могу использоваться GNU версии утилит — только потому, что они не поставляются с системой? Нет, это — не UNIX way!
Читать дальше →
Total votes 28: ↑24 and ↓4 +20
Views 1.1K
Comments 28

Cisco. Первый выпуск. Соединяем две сети.

Cisco *

Начнем.



image

С чего начинается Cisco-роутер? Правильно, с консольного кабеля.
Это тот светло-голубой провод с разъемами RS-232 и RJ-45, который шел вместе с оборудованием. Его нужно подключить к компьютеру к свободному COM порту. Теперь с вашим железом можно делать все что угодно. Если, конечно, не установлен пароль на консольные подключения (о том, как побороть чужой пароль на вашем железе поговорим позже).

Читать дальше →
Total votes 63: ↑61 and ↓2 +59
Views 109K
Comments 90

C++/CLI — «клейкий» язык

Programming *
В этом топике я расскажу про C++/CLI — промежуточный язык для склеивания кода на C/C++ и .NET

Это довольно распространённая задача, ведь на C/C++ написаны тонны проверенного временем высокопроизводительного кода, который невозможно переписать на управляемые языки.

Наша задача — обеспечить .NET-интерфейс к этим библиотекам. Но как это сделать, если они написаны на C/C++?

Microsoft предлагает два варианта решения проблемы.
 
Читать дальше →
Total votes 46: ↑43 and ↓3 +40
Views 36K
Comments 17

pv — маленькая, но очень полезная утилита

Configuring Linux *
Один мой друг сказал по поводу pv следующее «Я админю семь лет, мне нужна была эта тулза десятки раз, а я даже не знал что она существует». В размышлениях над тем как заполучить инвайт на Харбе, я набрал в поиске pv. И ничего не нашел.
Читать дальше →
Total votes 290: ↑280 and ↓10 +270
Views 66K
Comments 93

Всё, что вы хотели знать о CLI, CGI, MOD, но стеснялись спросить

System administration *
… Я знаю кун-фу, каратэ, таэквондо и еще много страшных слов!
(с) анекдот



Меня начинающие админы последнее время стали часто спрашивать «А чем отличаются пакеты php-cgi, php-cli и mod_php? И почему, например, для Python есть mod_python, но нет python-cgi?»
Сначала было смешно, но потом стало ясно, что сей вопрос хоть раз да возникал у каждого, кто занимается администрированием LAMP(ссылка) и подобных серверов.
Статья написана по мотивам моей беседы с felvis, поэтому заранее извиняюсь за некоторую вольность изложения.
Поехали!
Total votes 1: ↑1 and ↓0 +1
Views 16K
Comments 2

Работа с командной строкой в Kohana3

Kohana *
На своём блоге я опубликовал статью о работе с командной строкой во фреймверке Kohana. Её можно почитать по адресу Работа с командной строкой в Kohana3

PS Уважая правила хабралюдей, я не делал кросспостинг.
Total votes 11: ↑6 and ↓5 +1
Views 674
Comments 8

Common Language Infrastructure (CLI) для веба

Website development *
Translation
Внимание, перевод одного интересного поста из блога Мигеля!

Последние дни Joe Hewitt в твиттере сильно переживал за состояние клиентских веб технологий. TechCrunch вели репортаж о состоянии прогресса в их обзоре The State Of Web Development Ripped Apart In 25 Tweets By One Man (Состояние Веб Разработки в 25 твитах одного человека).

Сегодня Joe предложил блестящую идею:

Если встроить ECMA CLI в браузеры вместо ECMAScript, веб стал бы намного гибче.
Читать дальше →
Total votes 48: ↑34 and ↓14 +20
Views 1.7K
Comments 143

Движок V8 для .NET-приложений

JavaScript *
В репозитории Codeplex появился Javascript .NET, — проект интеграции движка Google V8 и предоставления его интерфейсов системе CLI.

Javascript .NET на лету компилирует код и выполняет скрипты прямо из .NET-приложений. Также он позволяет выполнять манипуляции с объектами CLI прямо из выполняемого кода Javascript.
Читать дальше →
Total votes 50: ↑30 and ↓20 +10
Views 2.2K
Comments 10

Проблема глобального переопределения new/delete в C++/CLI

C++ *
Как известно, C++ позволяет глобально переопределять операторы new и delete. Обычно такое переопределение используется для диагностики, поиска утечек памяти и более эффективного распределения памяти.

Все это мы используем в нашем крупном проекте. Однако у нас есть часть, написанная на C#, которая с помощью C++/CLI взаимодействует с основной частью на C++. И вот тут появились проблемы. У нас получались утечки памяти там, где их быть ну никак не могло.
Читать дальше →
Total votes 39: ↑33 and ↓6 +27
Views 5.8K
Comments 20

C++/CLI IntelliSense в Visual Studio

Visual Studio *
Разработчики из команды Visual C++ Team поделились своими соображениями почему с выходом Visual Studio 2010 ими не была включена IntelliSense подсказка для C++/CLI проектов.

В выходящем пакете SP1 для Visual Studio 2010 для C++/CLI её также не будет — связано это c начатым процессом переписывания внутренних механизмов реализации Intellisense-подсказки. В Visual Studio 2010 решили отказаться от привычного использования старого механизма .ncb файлов из-за большого объема работы по переносу его со старых версий VS. И его бессмысленности как таковой из-за наличия начатой разработки новой версии подсказки. Новая версия подсказки не была включена из-за своей недописанности, включая большое количество запланированных нововведений. Так, в текущей версии IntelliSense не работал бы импорт метаданных, что сделало бы его во многом бессмысленным.

Таким образом, в новых версиях Visual Studio мы должны увидеть не только новый механизм работы интеллектуальной подсказки, но и много нововведений, связанных с ней.

Читать дальше →
Total votes 36: ↑26 and ↓10 +16
Views 13K
Comments 21

Медвежий балет и искусственный интеллект

Interfaces *
«Массивный, громоздкий зверь неуклюже переступает с лапы на лапу. Танцует медведь просто ужасно, но чудо не в том, что он танцует хорошо, а в том, что вообще танцует».
Алан Купер об интерфейсах, «Психбольница в руках пациентов»


Графический интерфейс и командную строку часто противопоставляют другу другу. Причем то, что поклонники GUI считают достоинствами, в глазах любителей CLI — недостаток. И наоборот. «GUI — самодокументированный интерфейс. — говорят первые, — Мне не нужно читать инструкцию, чтобы разобраться в грамотно спроектированном GUI, я просто смотрю на него, открываю меню, другое, третье, и через несколько минут (или секунд) делаю, что мне надо». «А как насчет десятого или сотого раза? — возражают вторые. — Всё это изобилие кнопочек и значков превращается в раздражающий визуальный шум и мешает работать. А скорость? Разве может сравниться хождение по многоуровневым менюшкам со стремительностью клавиатурных команд?» «Стремительность, говорите? — отвечают первые, — А изучать руководство на сотни страниц мелким шрифтом, чтобы выйти из вашего Vim-а, это тоже стремительно?»

Этот спор можно растянуть еще на несколько абзацев, но лучше подумать вот о чем: так ли уж необходимо терпеть недостатки каждого из интерфейсов? Нельзя ли быстро запрягать и так же быстро ехать? Ведь сторонники GUI на самом деле любят не кнопочки и разноцветные значки, они любят легкость обучения. Шедевры графического интерфейсостроения всегда легки и лаконичны, в них не встретишь буйства красок и россыпей кнопок. А любители командной строки привязаны не к монохромному аскетизму, а к скорости, ненавязчивости и предсказуемости консоли. Достаточно взглянуть на обилие цветовых схем подсветки синтаксиса того же Vim, чтобы убедиться в том, что суровые консольщики тоже любят, чтобы было красиво.

Медведь, танцующий не хуже балерины, интерфейс с большими и красивыми графическими подсказками, которые при этом не мозолят глаза, с гибким и мощным набором клавиатурных команд и сокращений, которые не надо изучать — фантастика, да и только. А вот и нет. Такие интерфейсы уже существуют. Только они почему-то занимают довольно узкую нишу. Но о них чуть позже.
Читать дальше →
Total votes 79: ↑66 and ↓13 +53
Views 1.6K
Comments 58

Работа с commons-cli 1.2

Java *
Sandbox
В процессе работы на одним проектом, возникла необходимость разработать консольное приложение для удаленного доступа к системе. За подобное взялся впервые в таких масштабах, раньше все было на окошках или если консоль, то точно известно число, тип и порядок передаваемых параметров. А здесь возникла необходимость в большом количестве команд, каждая со своими параметрами, или вовсе без них, соответственно для обеспечения гибкости возникла потребность в парсере, переданных параметров.

Дабы не изобретать велосипед, решил взять готовую библиотеку. Выбор остановил на commons-cli, для нее удалось найти пару примеров и использование ее казалось не очень уж сложны.

Как оказалось примеров не так уж много и покрывают они только базовые потребности разработчика. Попробую заполнить этот пробел своими пояснениями.
Читать дальше →
Total votes 34: ↑32 and ↓2 +30
Views 18K
Comments 19

Бесплатная отправка SMS от своего мегафоновского номера с помощью python-скрипта

Python *
Sandbox

Для чего это нужно?


Стоит рассмотреть два уровня использования подобной возможности:
  1. Обычная, бытовая потребность отправки относительно длинного сообщения (если вы конечно не обладаете такой же скоростью печати на телефоне, как и на компьютере)
  2. Необычная, гиковская потребность получать рассылочную информацию там, где нет компьютера, смешанная с нежеланием платить за доставку этой информации лишние деньги

Обычное применение

Итак, наверняка многие сталкивались с ситуацией, когда необходимо написать относительно длинное смс-сообщение:
  • скопипастить кому-нибудь нужную информацию
  • подробно описать какие-нибудь детали встречи, когда у вашего собеседника поговорить нет возможности
  • ну или банально написать что-то в духе тех самых проиндесированных смс-ок :3

Необычное применение

Здесь варианты использования ограничены только вашей фантазией и умениями парсить нужные информационные потоки, например:
  • прогноз погоды
  • заголовки rss-ленты
  • твиттер-лента
  • данные по нагрузке вашего сервера
  • ?????
  • PROFIT!

Читать дальше →
Total votes 42: ↑37 and ↓5 +32
Views 17K
Comments 29

Параллельные вычисления, класс-обёртка для pcntl_fork()

PHP *
Хочу показать свой базовый класс, который я использую для PHP скриптов.
Приемущество его в том, что легко можно «распараллелить» работу.
Используется pcntl_fork() со всеми «вытекающими».

(тестировалось только на линукс)
Читать дальше →
Total votes 43: ↑33 and ↓10 +23
Views 6.6K
Comments 47

GUI vs. CLI — последняя битва

Website development *
Настоящими программистами считается, что ничего лучше интерфейса командной строки пока не придумали и никогда не придумают, потому что лучше уже некуда. Естественно, хочется поспорить.

Чтобы лучше понимать друг друга, давайте разговаривать об абстрактных апельсинах. Представьте себе Автокад, если слышали или доводилось попробовать. Можно Иллюстратор или КорелДро, что-нибудь далекое от программирования, чтобы абстрагироваться и рассуждать непредвзято. Почему они не могут работать в консоли?


Рис. 1. Абстрактный интерфейс в вакууме.
Читать дальше →
Total votes 77: ↑20 and ↓57 -37
Views 8.6K
Comments 32

CLI на стероидах: Google Guice и JCommander

Java *
Sandbox
В этой статье я хочу рассказать об одном из способов построения CLI-приложений на Java.
Собственно сама потребность в таких приложениях никуда не делась — так, например, в моем случае это было приложение для проведения функционального и нагрузочного тестирования серверной части. Конечно же были варианты в проведении необходимых тестов при помощи набора JUnit-ов, но мы были сильно ограничены во времени и хотелось получить решение, не требующее программирования со стороны отдела тестирования. Тем более, что бинарный протокол по которому взаимодействовали клиент и сервер был четко специфицирован.

Идея


В этот раз мне сильно не хотелось изобретать велосипед в создании тривиальных для CLI-приложения вещей — парсинг строки ввода, выделение команды и аргументов, валидация аргументов, исполнение команды, вывод подсказок и тому подобное.
Было принято решение поискать готовые компоненты.

На Хабре не так давно была статья о commons-cli. Сам commons-cli мне не понравился своим 'деревянным' API, однако из комментариев к самой статье я узнал про несколько альтернатив в числе которых был JCommander.

Привлек внимание именно он, поскольку:
  • Естественная поддержка паттерна Команда;
  • Удобный способ определения параметров вызова, основанный на аннотациях;
  • Автоматическое формирование помощи по доступным командам;
  • Неплохая документация;
  • Бесплатно.


Читать дальше →
Total votes 31: ↑30 and ↓1 +29
Views 5.6K
Comments 7