Pull to refresh
0
0
Артем @artsb

Программист (C/C++)

Send message

Есть ли OpenVPN GUI для Linux?

Reading time2 min
Views60K
Название статьи подсказала тема на одном из форумов. Несмотря на то, что с момента возникновения вопроса прошло шесть лет, в этом направлении мало что изменилось. А поскольку в последнее время у меня на слуху постоянно был OpenVPN, то было решено исправить данную ситуацию. Так родилась графическая утилита VpnGUI для создания, редактирования, запуска и контроля выполнения утилиты openvpn.

После запуска утилиты VpnGUI в трее появится иконка (квадрат разбитый на четыре сине-красных квадратика) утилиты:
Читать дальше →
Total votes 18: ↑14 and ↓4+10
Comments51

Конкурентность в Go: пять примеров

Reading time11 min
Views24K

Привет, Хабр! Я Артем Чаадаев, Golang-разработчик в МТС Digital. В этой статье я собрал примеры использования конкурентного кода в Go. Хотите узнать, как писать конкурентный код? Значит, вам сюда.

Добро пожаловать под кат!

Читать далее
Total votes 31: ↑27 and ↓4+23
Comments6

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

Reading time8 min
Views42K

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


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


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

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

Outline: Делаем свой личный VPN от Google за 5$ в месяц (и за 1€ для продвинутых)

Reading time3 min
Views187K
image

В последнее время использовать VPN стало популярно с чего бы это?, но все инструкции которые мне попадались — могут «осилить» только пользователи хотя бы чуть-чуть знакомые с тем что такое Linux. Компания Google всех порадовала, выпустив прекрасное приложение, которое позволяет вам установить VPN в два клика (правда в два!) на своем личном сервере без каких либо знаний.
(Если у вас нет сервера — не беда, появится)
Читать дальше →
Total votes 49: ↑46 and ↓3+43
Comments124

Продвижение Android приложений, рейтинги и ранжирование в топах Google Play

Reading time13 min
Views100K
image
Приветствую всех! В своей статье хочу поделится своим опытом и внести свои «пять копеек» в эту довольно обширную и запутанную тему. В интернете на данный момент много статей посвященных данному вопросу, но на деле оказалось, что большинство таких статей оперируют стандартными советами и шаблонами, которые на сегодняшний день мягко говоря не актуальны. Почти все статьи, которые я прочитал, это лишь вершина айсберга, самая его макушка. О самой сути почему-то никто не пишет, видимо это часть корпоративных секретов о которых вслух не говорят.
Читать дальше →
Total votes 21: ↑15 and ↓6+9
Comments9

Продвижение игр на Google Play

Reading time6 min
Views66K


У моих игр довольно много загрузок на Google Play (больше 20 млн.), наверное поэтому, меня часто спрашивают про продвижение. Если кто-то из разработчиков пишет мне в личку или почту, готов поспорить, все сведется к вопросу: «Как ты продвигаешь свои игры, чувак?». Все думают, что у меня есть какой-то секрет (нет). Ладно, давайте я попробую сформулировать то, что знаю и будем надеяться, что это будет кому-то полезно. По крайней мере, я смогу давать ссылку на этот пост.
Читать дальше →
Total votes 22: ↑20 and ↓2+18
Comments6

Мой путь инди-разработчика, итоги нескольких лет

Reading time5 min
Views57K
Вот уже несколько лет я занимаюсь созданием игр. Иногда в свободное от работы время, иногда в перерывах между работой, а иногда и вместо нее. За это время мною выпущено несколько игр, пара из которых может оказаться достойными внимания. В этой публикации я хочу рассказать о пройденном мною пути, от дизайнера, который хотел делать игры, до дизайнера который делает игры.

image
Читать дальше →
Total votes 91: ↑77 and ↓14+63
Comments37

Геймдев для чайников или как в одиночку сделать игру

Reading time4 min
Views48K
Привет, будущий геймдевелопер! Я думаю, что многих интересует, а можно ли создать игру одному, а тем более без вложений. Вот именно об этом и пойдет речь. Я столкнулся с этим не понаслышке. Все, что написано ниже, основано на собственном опыте геймдева с нуля за 3 месяца.
Читать дальше →
Total votes 39: ↑27 and ↓12+15
Comments28

VectorDrawable — часть третья

Reading time4 min
Views5.7K
Ранее в этой серии статей мы рассмотрели реализацию VectorDrawable, изпользуя данные под тегом path в SVG. А после применили несколько простых анимаций к отдельным элементам path.

Romain Guy написал приложение, которое рисует маршруты. Он использовал SVG path, чтобы определить маршрут, а затем по этому маршруту «рисовал» линию путем регулирования параметра dash.

Так как VectorDrawable поддерживает данные SVG из тега path, можем ли мы использовать ту же технику? Конечно можем. Но, на сам деле, нам это не нужно. Мы можем достичь того же эффекта, манипулируя некоторыми атрибутами элемента в нашем VectorDrawable.
Читать дальше →
Total votes 15: ↑14 and ↓1+13
Comments2

Как я разбирал docx с помощью XSLT

Reading time16 min
Views62K

Задача обработки документов в формате docx, а также таблиц xlsx и презентаций pptx является весьма нетривиальной. В этой статье расскажу как научиться парсить, создавать и обрабатывать такие документы используя только XSLT и ZIP архиватор.

Читать дальше →
Total votes 45: ↑44 and ↓1+43
Comments15

История создания первой игры на Unity — от идеи до релиза

Reading time7 min
Views41K


Добрый день! Я — инди-разработчик (с недавнего времени), 2 года назад, будучи пожарным, пришла в голову мысль создать свою игру на Android. Из опыта было только создание карт под игровые движки Gold Source и Source (на них построены старые добрые: Counter-Strike, Half-Life и многое другое), взяв волю в кулак, решил что я обязательно справлюсь и занялся штудированием интернет-поисковика Google.

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

Осторожно, под катом gif-изображения.
Читать дальше →
Total votes 56: ↑54 and ↓2+52
Comments40

Пора ли увольняться?

Reading time6 min
Views59K
В большей своей массе люди пишут и инструктируют на тему «как найти работу?». А вот как уволиться, и, что важнее, когда увольняться – почти никто ничего не говорит. Оно и понятно, тема весьма деликатная и порой неприятная. Однако попробую сей пробел отчасти восполнить.

И, конечно, все что сказано ниже – есть исключительно личное и предельно субъективное мнение. Поэтому если вы встретите в тексте слова «следует», «должны», то читайте это как «автор бы сделал», а вот что делать вам – решать только вам.

Читать дальше →
Total votes 105: ↑102 and ↓3+99
Comments111

Половинки квадрата

Reading time3 min
Views11K


В любой мобильной игре используются регулярные сетки, они же матрицы. Одна сетка всегда на виду — это экран телефона размера MxN. Кроме того, в Тетрисах и Лайнсах явно видны и другие, игровые сетки. В ААА играх матрицы спрятаны, но мы знаем, что они существуют. И, да, зеленые — самые опасные.

При работе с сетками возникает столько сладких задач, что от вожделения поскорее их решить, пот капает с пальцев на клавиатуру. Одна из таких задач — заполнить матрицу случайными значениями. Например, есть сетка 5x5, которую надо заполнить 24 шариками 4 цветов. Должно быть 6 шариков каждого цвета и одна дырка. Псевдо-код примерно такой:

var items = [Int]()
let nItems = 25
let nColors = 4

Total votes 30: ↑24 and ↓6+18
Comments13

Обзор кросс-платформенных решений для разработки мобильных приложений

Reading time7 min
Views80K
В этой статье мы сравним 6 решений для кросс-платформенной разработки, которые были популярны в 2016 году и попытаемся найти лучшее решение.

Кросс-платформенные фреймворки PhoneGap, Xamarin, Unity, Qt и Appcelerator Titanium, Telerik Platform на сегодняшний день занимают 80% рынка кросс-платформенной разработки для мобильных устройств.


Читать дальше →
Total votes 55: ↑49 and ↓6+43
Comments119

Bushed Bricks: простая и увлекательная игра на JavaScript

Reading time2 min
Views13K
image

Русский вариант названия игры, звучит как «Беспризорные блоки», что достаточно емко передает ее сюжетную линию. Негоже достойным представителям рода «четырехугольных» околачиваться где ни попадя. Основной задачей игрока будет поиск им пристанища за что и будут начисляться игровые баллы. Приютить наших «сироток» можно по бортам игрового поля, но только при условии соответствия цвета и достаточного уровня благонадежности. Далее обо всем по порядку…
Читать дальше →
Total votes 26: ↑21 and ↓5+16
Comments32

Разработать и опубликовать игру под Android за неделю

Reading time4 min
Views24K

Задумал я как-то написать игру. Причем, по-быстрому. Желательно за неделю при условии работы на полставки. Финальным этапом должна была стать публикация на Google Play (что, конечно, недостаточно, но об этом позже). Таким образом, это будет статья о разработке в стиле "вжух-вжух и в продакшен", или, как сказали друзья "устроил себе Ludum Dare". Технических деталей будет, впрочем, немного.


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


screenshot

Читать дальше →
Total votes 52: ↑45 and ↓7+38
Comments16

Из пустыни в Интернет: свитки Мертвого моря доступны онлайн

Reading time2 min
Views1.9K
Эйал Миллер, менеджер по развитию бизнеса и Эйал Финк, инженер израильского центра разработок

Сегодня, в канун Нового года по еврейскому календарю, мы рады объявить, что собрание свитков Мертвого моря стало доступно онлайн. Прошло 24 столетия, была задействована работа археологов, ученых и историков, и, конечно, был использован Интернет — все для того, чтобы свитки Мертвого моря смогли увидеть люди во всем мире. Это стало возможно благодаря проекту музея Израиля в Иерусалиме, в котором применялись технологии Google.


Читать дальше →
Total votes 4: ↑3 and ↓1+2
Comments2

Боремся с утечками памяти (C++ CRT)

Reading time6 min
Views61K
Утечка памяти — довольно серьезная и опасная проблема. Быть может, пользователь и не заметит однократной утечки каких-нибудь 32Кб памяти (а ведь это целые 5% от 640Кб, которых «хватит всем»), но постоянно теряя сложные иерархические структуры или массивы размером больше INT_MAX (которые мы так любим создавать на 64-битной архитектуре) мы обречем его на страдания, а наш продукт на провал.

Не допускать ситуации вроде бы и не трудно — воспользуемся правилом «класть на место всё что взяли», но на практике это сильно осложняется человеческим фактором (банальная невнимательность), хитростью архитектуры и нелинейным порядком выполнения операторов, например, из-за применения исключений.

А можно было бы просто «отдаться» автоматическому сборщику мусора, ценой потери производительности (и это не обязательно Managed C++, для Native C++ / C есть библиотеки сборки мусора, вот, например).

Но мы поговорим о ситуации когда уже «всё плохо».
Читать дальше →
Total votes 51: ↑41 and ↓10+31
Comments45

Рисуем, кодим под libGDX и другие маленькие радости из жизни инди-разработчика

Reading time8 min
Views28K

Привет, Хабр! В этом топике, я хотел бы поделиться впечатлениями от игрового движка libGDX, рассказать о буднях обычного инди-разработчика и приоткрыть завесу тайны над игрой, которую я делаю последние несколько месяцев в свободное от офисного рабства время. Надеюсь, эти мои записки будут полезны тем кто только начинает что-то делать на libGDX или тем, кто выбирает движок для «игры своей мечты».

И извините за котов. Они совершенно никакого отношения не имеют к игрострою. Я тут параллельно учусь (пытаюсь учиться) рисовать и теперь эти мои тренировочные коты просто повсюду! Требуют чтобы их, бездельников, кому-нибудь показывали.
Читать дальше →
Total votes 54: ↑54 and ↓0+54
Comments29

Information

Rating
Does not participate
Location
Россия
Date of birth
Registered
Activity