Pull to refresh
0
0
Дмитрий @Spalf

User

Send message

Установка Windows через Windows Deployment Services и Microsoft Deployment Toolkit

Reading time8 min
Views101K
Как было написано в одной умной книге — если в вашем IT-отделе нет автоматизированной установки операционной системы, то её создание может быть самой важной задачей, которую вы когда-либо выполняли.
Читать дальше →
Total votes 19: ↑18 and ↓1+17
Comments13

Генератор клиента к базе данных на Golang на основе интерфейса

Reading time12 min
Views16K

Генератор клиента к базе данных на Golang на основе интерфейса.



Для работы с базами данных Golang предлагает пакет database/sql, который является абстракцией над программным интерфейсом реляционной базы данных. С одной стороны пакет включает мощную функциональность по управлению пулом соединений, работе с prepared statements, транзакциями, интерфейсом запросов к базе. С другой стороны приходится написать немалое кол-во однотипного кода в веб приложении для взаимодействия с базой данных. Библиотека go-gad/sal предлагает решение в виде генерации однотипного кода на основе описанного интерфейса.

Читать дальше →
Total votes 14: ↑13 and ↓1+12
Comments8

Контроль консистентности кода в Go

Reading time8 min
Views12K


Если вы считаете консистентность важной составляющей качественного кода — эта статья для вас.


Вас ждут:


  • Разные способы сделать одно и то же в Go (эквивалентные операции)
  • Менее очевидные факторы, влияющие на однородность вашего кода
  • Способы увеличения консистентности вашего проекта
Читать дальше →
Total votes 38: ↑36 and ↓2+34
Comments14

Дюжина приемов в Linux, которые действительно сэкономят уйму времени

Reading time9 min
Views136K


Эта статья также есть на английском.

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

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

Под катом — дюжина приемов в командной строке — из личного опыта.
Читать дальше →
Total votes 128: ↑122 and ↓6+116
Comments169

ruby -e для упрощения работы в консоли

Reading time3 min
Views6.3K

Как, думаю, многим известно, Ruby создавался под влиянием Perl, поэтому нет ничего удивительного в том, что Ruby может подменить Perl в его нише "практического извлечения данных и составления отчетов". В данном небольшом посте речь пойдет об использовании ruby для мелкой обработки текста в консоли.

Читать дальше →
Total votes 14: ↑13 and ↓1+12
Comments24

Vim и переключение раскладок: о наболевшем

Reading time2 min
Views28K
Всем привет. Я достаточно давно пользуюсь редактором Vim для редактирования очень разных текстов: правки конфигов, написания кода, в качестве внешнего редактора в браузере и почтовом клиенте…

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

Читать дальше →
Total votes 33: ↑30 and ↓3+27
Comments31

Не попадитесь: в Mac App Store полно мошенников

Reading time4 min
Views29K
image

Вы, возможно, любите и разбираетесь в компьютерных технологиях – но бывают и другие люди. Многих компьютеры сбивают с толку, или даже пугают. Злонамеренные личности знают об этом и специально стараются обманывать людей в онлайне. От рекламных объявлений, маскирующихся под кнопку скачивания, до всплывающих вымогателей – в вебе полно обманчивого дизайна, направленного на технически не подкованных людей.

В теории магазины приложений потому и полезны. Пользователи бояться быть обманутыми в «открытом» вебе, и потому могут спокойно чувствовать себя в the Mac App Store, ведь эппловский сад за забором сможет защитить их.

Но он их не защищает.

Давайте с вами попробуем купить Excel

Читать дальше →
Total votes 46: ↑42 and ↓4+38
Comments59

Лимиты Telegram bot API и работа с ними на Go

Reading time5 min
Views64K
Довольно часто на Хабре появляются статьи о написании бота для Telegram, которые в своем роде, если откинуть уникальность идеи, являются самым обычным туториалом на тему «как получить сообщение от Telegram, обработать его и отправить ответ пользователю». Однако ни в одной из статей, прочтенных мной (конечно же, не берусь утверждать, что прочел их все, но тем не менее) я не встретил упоминания о лимитах отправки сообщений пользователям и как с ними работать. Кого заинтересовал, прошу под кат.
Читать дальше →
Total votes 22: ↑18 and ↓4+14
Comments13

Что такое grep и с чем его едят

Reading time6 min
Views659K
Эта заметка навеяна мелькавшими последнее время на хабре постами двух тематик — «интересные команды unix» и «как я подбирал программиста». И описываемые там команды, конечно, местами интересные, но редко практически полезные, а выясняется, что реально полезным инструментарием мы пользоваться и не умеем.
Небольшое лирическое отступление:
Года три назад меня попросили провести собеседование с претендентами на должность unix-сисадмина. На двух крупнейших на тот момент фриланс-биржах на вакансию откликнулись восемь претендентов, двое из которых входили в ТОП-5 рейтинга этих бирж. Я никогда не требую от админов знания наизусть конфигов и считаю, что нужный софт всегда освоится, если есть желание читать, логика в действиях и умение правильно пользоваться инструментарием системы. Посему для начала претендентам были даны две задачки, примерно такого плана:
— поместить задание в крон, которое будет выполняться в каждый чётный час и в 3 часа;
— распечатать из файла /var/run/dmesg.boot информацию о процессоре.

К моему удивлению никто из претендентов с обоими вопросами не справился. Двое, в принципе, не знали о существовании grep.

image

Поэтому… Лето… Пятница… Перед шашлыками немного поговорим о grep.
Читать дальше →
Total votes 188: ↑174 and ↓14+160
Comments144

50 оттенков Go: ловушки, подводные камни и распространённые ошибки новичков

Reading time44 min
Views214K


Go — простой и забавный язык. Но в нём, как и в любых других языках, есть свои подводные камни. И во многих из них сам Go не виноват. Одни — это естественное следствие прихода программистов из других языков, другие возникают из-за ложных представлений и нехватки подробностей. Если вы найдёте время и почитаете официальные спецификации, вики, почтовые рассылки, публикации в блогах и исходный код, то многие из подводных камней станут для вас очевидны. Но далеко не каждый так начинает, и это нормально. Если вы новичок в Go, статья поможет сэкономить немало часов, которые вы бы потратили на отладку кода. Мы будем рассматривать версии Go 1.5 и ниже.
Читать дальше →
Total votes 80: ↑76 and ↓4+72
Comments270

Подводные камни Bash

Reading time32 min
Views95K


В этой статье мы поговорим об ошибках, совершаемых программистами на Bash. Во всех приведённых примерах есть какие-то изъяны. Вам удастся избежать многих из нижеописанных ошибок, если вы всегда будете использовать кавычки и никогда не будете использовать разбиение на слова (wordsplitting)! Разбиение на слова — это ущербная легаси-практика, унаследованная из оболочки Bourne. Она применяется по умолчанию, если вы не заключаете подстановки (expansions) в кавычки. В общем, подавляющее большинство подводных камней так или иначе связаны с подстановкой без кавычек, что приводит к разбиению на слова и глоббингу (globbing) получившегося результата.


Читать дальше →
Total votes 143: ↑141 and ↓2+139
Comments63

Docker в работе. Взгляд на его использование в Badoo (год спустя)

Reading time19 min
Views33K

Антон Турецкий (Badoo)


Антон Турецкий

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



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

Для себя мы на эти вопросы ответили, без проблем у нас не было бы никакого внедрения. Какую-то часть проблем мы решаем. Я выделил основные из них, я расскажу вам о них и о том, как мы с ними справились. В конце я порекламирую нас, какие мы замечательные, как мы любим всякие-разные новые велосипеды, как мы их делаем, смотрим, изобретаем. Я вам их покажу, про них расскажу, вы составите какое-то свое мнение. Итак, поехали!
Total votes 47: ↑46 and ↓1+45
Comments59

Обходим детектирование виртуальной машины программами в VMWare

Reading time3 min
Views136K
Разработчики вирусного ПО и просто разработчики, не желающие, чтобы их программу пытались реверсить, на этапе запуска или установки проводят проверки на виртуальную машину, и в случае её обнаружения отказываются работать, а то и вовсе самоликвидируются. Под катом описан способ, как можно попробовать решить эту проблему.
Читать дальше →
Total votes 58: ↑53 and ↓5+48
Comments28

Разбираемся в Go: пакет encoding

Reading time8 min
Views17K

Перевод одной из статей Бена Джонсона из серии "Go Walkthrough" по более углублённому изучению стандартной библиотеки Go в контексте реальных задач.


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


Этот пост является одним из серии статей по более углублённому разбору стандартной библиотеки. Несмотря на то, что стандартная документация предоставляет массу полезной информации, в контексте реальных задач может быть непросто разобраться, что и когда использовать. Эта серия статей направлена на то, чтобы показать использование пакетов стандартной библиотеки в контексте реальных приложений. Если у вас есть вопросы или комментарии, вы всегда можете написать мне в Твиттер — @benbjohnson.

Читать дальше →
Total votes 19: ↑17 and ↓2+15
Comments1

PowerShell. Пользовательские функции для пользователей

Reading time3 min
Views41K
Привет! Довольно часто в своей работе приходиться пользоваться самостоятельно написанными функциями и таскать куски кода между разными скриптами. На Хабре уже есть довольно хорошая статья про Повторное использование кода от Mroff, но была необходимость пойти немного дальше, задокументировать и как-то описать свои функции. Как оказалось, поиск выдавал довольно сухую информацию в основном по общей структуре функции и не более того. Упорство было вознаграждено, и я решил поделиться полученной информацией. Добро пожаловать под кат, где мы научимся вносить в свои функции информацию для потомков и коллег.
Читать дальше →
Total votes 21: ↑18 and ↓3+15
Comments8

Docker Swarm+Consul+Gobetween в виде движка для гео распределенного кластера

Reading time14 min
Views17K

Преамбула


Некоторе время назад перед нами стала задача спроектировать и развернуть систему для потокового видео. Суть была в массовом запуске/остановке инстанций, на которых происходит обратная сборка потокового видео и стриминг на множество media cdn провайдеров (youtube, livestream, ustream итд ) а также на собственные rtmp и ts точки назначения. Каждая инстанция требовала настройки перед запуском т.к. содержала специфическую для каждого клиента информацию. Также было понятно, что система должна работать в большом количестве регионов (как минимум во всех точках, где присутствует Амазон, а как максимум — в любом месте где можно арендовать сервер). Также основное требование — запуск инстанции в течении 1-2 секунд максимум, чтобы это было прозрачно для пользователя.


Читать дальше →
Total votes 11: ↑11 and ↓0+11
Comments12

Способы интеграции с 1С

Reading time13 min
Views281K
Какие важнейшие требования предъявляются к бизнес-приложениям? Одними из самых главных являются следующие задачи:

  • Легкость изменения/адаптации логики работы приложения к меняющимся бизнес-задачам.
  • Легкость интеграции с другими приложениями.

То, как решается в 1С первая задача, было кратко описано в разделе «Кастомизация и поддержка» этой статьи; мы еще вернемся к этой интересной теме в одной из будущих статей. Сегодня же речь пойдет о второй задаче, об интеграции.
Читать дальше →
Total votes 21: ↑19 and ↓2+17
Comments93

Организация кода в Go

Reading time8 min
Views43K

Зависимости. Дженерики. Они часто звучат в списке проблем в Go сообществе, но есть одна проблема, о которой вспоминают довольно редко — организация кода вашего пакета.


Каждое Go приложение, с которым я работал, похоже, имеет свой ответ на вопрос "Как я должен организовать код?". Некоторые приложения засовывают всё в один пакет, в то время, как другие группируют логику по типам или модулям. Без хорошей стратегии, которой придерживаются все члены команды, вы рано или поздно увидите, что код сильно разбросан по многочисленным пакетам. Нам нужен некий стандарт для дизайна кода в Go приложениях.


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

Читать дальше →
Total votes 40: ↑34 and ↓6+28
Comments8

Безопасное использование языка Go в веб-программировании

Reading time6 min
Views21K
Статья писалась для разработчиков, которые начинают осваивать язык программирования Go с целью соблюсти в их коде безопасные требования к написанию веб-приложений. В статье приведены возможные уязвимости, которые могут оставить веб-программисты, а также способы устранения либо с помощью стандартных библиотек, либо с помощью сторонних решений, которые проявили уже себя.


Читать дальше →
Total votes 44: ↑41 and ↓3+38
Comments11

Экосистема поддержки. Автоматизация регистрации пользователей средствами Golang

Reading time6 min
Views5.8K

Чем мы занимаемся?


Наша команда разрабатывает платформу программной отправки уведомлений посредством REST API на мобильные устройства. В настоящий момент это push уведомления для iOS устройств, а также SMS благодаря интеграции с Twilio). С целью организации процесса поддержки, а также сообщества пользователей, был выбран ряд информационных систем и сервисов (список см. ниже), которые, с нашей точки зрения, позволяли решить поставленную задачу в кратчайшие сроки и с минимальными усилиями.


Задачи


Автоматизировать выполнение следующих действий:


  • Pегистрация пользователей в системе учета обращений
  • Регистрации пользователей на портале сообщества
  • Управление услугами для пользователей

Используемые системы (и их назначение)


Все нижеперечисленные информационные системы и сервисы имеют REST API интерфейс, позволяющий решить поставленные задачи.


  • Atlassian Jira Service Desk (система учета обращений позьзователей)
  • Atlassian Confluence (информационный портал)
  • Slack (сообщество пользователей)
  • Paddle (распространение/ лицензирование программного обеспечения)
Читать дальше →
Total votes 20: ↑17 and ↓3+14
Comments10

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Registered
Activity