Рубрика «cli»

Введение

Помимо многих проблем, в PHP существует проблема строгой типизации переменных и свойств классов, точнее её отсутствие. Более того, нет даже возможности однозначно задать какие будут свойства у объектов того или иного класса, пользуясь только синтаксисом и не прибегая к так называемым магическим методам (потому что любое свойство может быть удалено при помощи оператора unset, а также к объекту может быть дописано несуществующее ранее свойство).

Однако при разработке часто возникает потребность в чётком знании, что можно ожидать от объекта, а чего можно не ожидать. Разумеется, можно пойти простым путём: сделать все свойства protected и понаписать геттеров и сеттеров. Много бойлерплейта, хочется проще. Лично я пытался решить эту проблему с помощью трейтов, но выходило всё равно некрасиво. Так и появилась идея этого проекта…

Кому интересно, добро пожаловать под кат!
Читать полностью »

image

В последнее время Kubernetes пользуется большой популярностью, и разработчики ищут дополнительные способы и методы для развёртывания приложений в кластере этой системы. Даже командная строка kubectl стала восприниматься как инструмент низкого уровня, при этом пользователи продолжают искать ещё более простые способы взаимодействия с кластером. Draft, Gitkube, Helm, Ksonnet, Metaparticle и Skaffold — вот лишь некоторые инструменты, помогающие разработчикам создавать и разворачивать приложения в Kubernetes.

Draft, Gitkube и Skaffold упрощают разработку приложений, позволяя разработчикам как можно быстрее запускать их в кластере Kubernetes. Helm и Ksonnet помогают в процессе развёртывания, т.к. могут определять готовность приложения к отправке, а также управлять выпуском новых версий, обработки различных кластеров и т. д. Metaparticle — необычный инструмент, который позволяет вам в рамках собственного кода работать с любыми форматами (YAML, dockerfile).

Итак, что же использовать в конкретной ситуации?

Давайте посмотрим.Читать полностью »

image С задачей вызова неуправляемого кода из управляемого мы сталкиваемся довольно часто, и эта задача имеет простое решение в виде одного атрибута [DllImport] и небольшого набора дополнительных правил, которые хорошо изложены в MSDN. Обратная же задача встречается гораздо реже. В данной статье мы и рассмотрим небольшой пример, как это можно сделать. Его не стоит рассматривать как исчерпывающий, скорее лишь, как направление хода мыслей и концепцию. Итак, начнем.
Читать полностью »

Awless — мощная альтернативная CLI-утилита для работы с сервисами AWS - 1

Все пользователи облачных сервисов Amazon давно знают про родной консольный инструмент для работы с ними — aws-cli. Но оказалось, что далеко не всем его достаточно: по этой причине компания WALLIX выпустила альтернативное и более функциональное решение под названием awless.

Исходный код awless написан на языке Go (использует AWS Go SDK) и опубликован на GitHub под свободной лицензией (Apache License 2.0). Текущая версия awless — 0.1.0. Поддерживаются операционные системы GNU/Linux, Mac OS X и Windows. Что же позволяет эта утилита?Читать полностью »

Вступление

Привет, читатели! Решил поведать вам о мини-библиотеке Jerminal. Я сейчас работаю над большим коммерческим проектом на Groovy/Java. Ну и мне пришло задание — написать консольку для приложения. К сожалению, было поставлено условие: никаких сторонних решений, все только свое. Недолго думая, я сел и написал ее. Подробнее — под катом.

Читать полностью »

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

json-pipe-sql

% cat log.json

{"type": "hit", "client": {"ip": "127.1.2.3"}}
{"type": "hit", "client": {"ip": "127.2.3.4"}}
{"type": "hit", "client": {"ip": "127.3.4.5"}}
{"type": "hit", "client": {"ip": "127.3.4.5"}}
{"type": "hit", "client": {"ip": "127.1.2.3"}}
{"type": "click", "client": {"ip": "127.1.2.3"}}
{"type": "click", "client": {"ip": "127.2.3.4"}}

Выполняем запрос:

% cat log.json | jl-sql 'SELECT client.ip, COUNT(*) AS count WHERE type = "hit" GROUP BY client.ip'

{"client":{"ip":"127.1.2.3"},"count":2}
{"client":{"ip":"127.2.3.4"},"count":1}
{"client":{"ip":"127.3.4.5"},"count":2}

Читать полностью »

в 2:55, , рубрики: cli, ruby, run, un.rb

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

Intro

Относительно недавно искал способ в одну строчку запустить веб-сервер в текущей директории.

На просторах Stack Overflow нашел примерно такую команду:

ruby -run -e httpd -- -p 9090 [DIR]

Что же это за загадочная опция -run и почему ее нет в мануале?

Читать полностью »

image

Скорость развития технологий в наши дни поражает. Скачок научно-технического прогресса в последние годы можно сравнить разве что с темпами развития космической отрасли в период с конца 50-х по середину 70-х годов ХХ века. Как тогда присутствие человека в космосе стало реальностью, так же и сейчас повсеместная замена людей машинами уже не кажется чем-то заоблачным.

Автоматизация процессов стала полноценным «трендом» нашего времени и продолжает расширять свое влияние практически во всех сферах деятельности: начиная с сельского хозяйства и заканчивая «умными домами» или искусственным интеллектом.

Данная тенденция диктует свои правила игры и в сфере бизнеса. Игроки рынка, недостаточно инвестирующие в оптимизацию своих бизнес- и производственных процессов, в их удешевление и ускорение путем автоматизации, совсем скоро окажутся «за бортом».

Автоматизация производства – это, если хотите, уже гигиена. И речь здесь идет как о производстве автомобилей (с заменой ручной сборки конвейером), так и о производстве программного обеспечения (с заменой ручного тестирования автотестами) или предоставлении услуг связи (с заменой ручного труда телефонисток сначала на коммутационное оборудование, а затем и вовсе на новые технологии связи).

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

В «первой серии» пойдет речь о средствах управления событиями, реализованных в оборудовании Huawei.
Читать полностью »

Давайте постараемся вместе уменьшить фрагментацию в мире JavaScript

Недавно, после аносна Yarn (пакетный менеджер для node.js от facebook прим. пер.), некоторые в JavaScript сообществе раскритиковали Facebook и проект в целом.

Существует тенденция для команий или индивидумов форкать или пересоздавать OSS проекты, вместо работы над существующими в сообществе. Это случается по многим причинам, но это случается чаще чем нужно. Это объясняет, почему появился Yarn.

Читать полностью »

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

Наличие большого выбора — хорошо, но не всегда помогает продуктивности. Разработчики ценны, в первую очередь, умением писать полезный для бизнеса код. Проблема в том, что код — это лишь часть приложения. Коду сопутствует инфраструктура множества других инструментов, помогающих разработчику производить этот код.

Читать полностью »