Всем привет!
Всегда было интересно, что такое версии продукта и как ими управлять? Как автоматизировать управление версиями разработки? Прошу под кат.
Всем привет!
Всегда было интересно, что такое версии продукта и как ими управлять? Как автоматизировать управление версиями разработки? Прошу под кат.
Помимо многих проблем, в PHP существует проблема строгой типизации переменных и свойств классов, точнее её отсутствие. Более того, нет даже возможности однозначно задать какие будут свойства у объектов того или иного класса, пользуясь только синтаксисом и не прибегая к так называемым магическим методам (потому что любое свойство может быть удалено при помощи оператора unset
, а также к объекту может быть дописано несуществующее ранее свойство).
Однако при разработке часто возникает потребность в чётком знании, что можно ожидать от объекта, а чего можно не ожидать. Разумеется, можно пойти простым путём: сделать все свойства protected
и понаписать геттеров и сеттеров. Много бойлерплейта, хочется проще. Лично я пытался решить эту проблему с помощью трейтов, но выходило всё равно некрасиво. Так и появилась идея этого проекта…
Кому интересно, добро пожаловать под кат!
Читать полностью »
С задачей вызова неуправляемого кода из управляемого мы сталкиваемся довольно часто, и эта задача имеет простое решение в виде одного атрибута [DllImport] и небольшого набора дополнительных правил, которые хорошо изложены в MSDN. Обратная же задача встречается гораздо реже. В данной статье мы и рассмотрим небольшой пример, как это можно сделать. Его не стоит рассматривать как исчерпывающий, скорее лишь, как направление хода мыслей и концепцию. Итак, начнем.
Читать полностью »
Все пользователи облачных сервисов 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. Ну и мне пришло задание — написать консольку для приложения. К сожалению, было поставлено условие: никаких сторонних решений, все только свое. Недолго думая, я сел и написал ее. Подробнее — под катом.
Вступление никому не интересно, поэтому начну сразу с примеров использования
% 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}
Это копипаст с небольшими правками из моего блога, который я использую для сохранения информации, потенциально полезной для меня, но которую обычно забываю. Посчитал, что инфа может показаться кому-нибудь интересной.
Относительно недавно искал способ в одну строчку запустить веб-сервер в текущей директории.
На просторах Stack Overflow нашел примерно такую команду:
ruby -run -e httpd -- -p 9090 [DIR]
Что же это за загадочная опция -run
и почему ее нет в мануале?
Скорость развития технологий в наши дни поражает. Скачок научно-технического прогресса в последние годы можно сравнить разве что с темпами развития космической отрасли в период с конца 50-х по середину 70-х годов ХХ века. Как тогда присутствие человека в космосе стало реальностью, так же и сейчас повсеместная замена людей машинами уже не кажется чем-то заоблачным.
Автоматизация процессов стала полноценным «трендом» нашего времени и продолжает расширять свое влияние практически во всех сферах деятельности: начиная с сельского хозяйства и заканчивая «умными домами» или искусственным интеллектом.
Данная тенденция диктует свои правила игры и в сфере бизнеса. Игроки рынка, недостаточно инвестирующие в оптимизацию своих бизнес- и производственных процессов, в их удешевление и ускорение путем автоматизации, совсем скоро окажутся «за бортом».
Автоматизация производства – это, если хотите, уже гигиена. И речь здесь идет как о производстве автомобилей (с заменой ручной сборки конвейером), так и о производстве программного обеспечения (с заменой ручного тестирования автотестами) или предоставлении услуг связи (с заменой ручного труда телефонисток сначала на коммутационное оборудование, а затем и вовсе на новые технологии связи).
Понимая значимость автоматизации в современных реалиях, мы в компании Huawei считаем важным и полезным делиться нашим опытом автоматизации работы сетевого оборудования Huawei c пользователями нашей продукции и представляем вашему вниманию цикл постов, посвященных автоматизации.
В «первой серии» пойдет речь о средствах управления событиями, реализованных в оборудовании Huawei.
Читать полностью »
Давайте постараемся вместе уменьшить фрагментацию в мире JavaScript
Недавно, после аносна Yarn (пакетный менеджер для node.js от facebook прим. пер.), некоторые в JavaScript сообществе раскритиковали Facebook и проект в целом.
Существует тенденция для команий или индивидумов форкать или пересоздавать OSS проекты, вместо работы над существующими в сообществе. Это случается по многим причинам, но это случается чаще чем нужно. Это объясняет, почему появился Yarn.