Pull to refresh
2
0
Андрей @kbac9

Инженер-программист

Send message

Как я победил хаос умных устройств, или Цифровая трансформация жилого пространства

Level of difficultyEasy
Reading time9 min
Views34K

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

Читать далее
Total votes 37: ↑37 and ↓0+37
Comments112

Сколько стоит разработка сайта с нуля в 2024 году?

Level of difficultyEasy
Reading time5 min
Views23K

Бизнес услуг может очень сильно разниться в стоимости: вы можете заказать сайт как за 100 000р., так и за несколько десятков миллионов. Давайте разберемся, в чем отличие дешевого сайта от дорогого и из чего сегодня формируется стоимость разработки с нуля.

Читать далее
Total votes 23: ↑20 and ↓3+17
Comments40

Ускорение компиляции в Xcode на swift

Reading time2 min
Views8.7K
С ростом проекта, скорость компиляции проекта замедляется. Особенно это заметно становится, когда тестируешь программу, делая параллельно небольшие изменения в программе.

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

defaults write com.apple.dt.Xcode ShowBuildOperationDuration -bool YES

Для этого нужно зайти в раздел Product зажать alt и нажать Clean Build Folder, а потом собрать проект заново. Мой проект компилируется 81 секунду. Посмотрим какой результат будет после улучшения.



Нам, в первую очередь, стоит узнать какие места приводят к замедлению компиляции. По умолчанию Xcode не показывает предупреждения, где проблема, но мы можем это исправить.
Самые «тяжелые» места большие функции и проверка типов. Поэтому нам нужно вписать эти две строчки в раздел Build Settings -> Other Swift Flags -> Debug

-Xfrontend -warn-long-function-bodies=100
-Xfrontend -warn-long-expression-type-checking=100

(здесь у нас стоит 100мс время компиляции, мы можем поставить любое число)

Наглядный рисунок


Пример моего рабочего проекта



У меня есть участок который занимает 13778 ms, скорее всего у вас не будет такого, но из-за специфики проекта у меня такие участки есть. Так как там построено бинарное дерево для OCR.
Из-за глубокой вложенности друг в друга и определения типа только в самом начале, перед знаком равенства, компилятору требуется много времени понять какой перед ним тип. (Дерево занимает 30 строк, вот его часть)
Читать дальше →
Total votes 15: ↑15 and ↓0+15
Comments6

Набор Ruby библиотек для CMS и сайта медиа издания

Reading time15 min
Views30K


Набор библиотек для разработки CMS медиа издания практически ничем не отличается от любого другого приложения. На примере приложения для Ленты и Ведомостей мы решили прокомментировать выбор каждой библиотеки. Описание составлено в формате обсуждения каждого гема.
Стенограмма
Total votes 56: ↑51 and ↓5+46
Comments84

Как я выбирал копирайтера методом ёжика – и сколько стоит написать треш и угар

Reading time14 min
Views131K


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

Рассматриваем. Ёж – не жилец. Слишком худой, не откормится, нет гнезда – да и вообще вылезать в локальное потепление ноября перед первым снегом было не лучшей идеей. «Ну, хочешь спасать – держи» — Стас отодрал шар от вязаной перчатки.

Вечером я чуть не убил зверя молоком по незнанию (на фото). И дальше выяснил сразу много и внезапно. Сейчас расскажу, какое это имеет отношение к выбору копирайтера и вообще написанию нормальных текстов.
Читать дальше →
Total votes 200: ↑190 and ↓10+180
Comments146

За что ITшнику любить некоторых маркетологов или руководство по маркетингу для IТ-стартапа

Reading time12 min
Views52K
«Я рекламист: да-да, это именно я загаживаю окружающую среду. Я — тот самый тип, что продает вам разное дерьмо. Тот, что заставляет вас мечтать о вещах, которых у вас никогда не будет. О вечно лазурных небесах, о неизменно соблазнительных красотках, об идеальном счастье, подкрашенном в PhotoShop'e… Сделать так, чтобы у вас постоянно слюнки текли, — вот она, моя наивысшая цель. В моей профессии никто не желает вам счастья. Ведь счастливые люди — не потребляют», — отрывок из романа «99 франков» Фредерика Бегбедера.



Да, из-за таких маркетологов как Октав, сложно произносить слова «я маркетолог» с гордостью. На нашем постсовестком пространстве маркетинг сплошь оброс негативными стереотипами… Кто-то сразу морщась вспоминает о сетевом маркетинге, кто-то о задалбывающей непорядочной рекламе и уловках.

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

Вот основные мысли:
  • Маркетинг — краеугольный камень для бизнеса и стратапа, в частности
  • Маркетинг — это не совсем то, что вы думаете
  • Можно заниматься маркетингом и не быть сволочью.


А еще, эта статья — наш ответ Чемберлену, то есть Хабравчанину, написавшему "За что конкретно я ненавижу некоторых отдельно взятых маркетологов…".
Читать дальше →
Total votes 55: ↑40 and ↓15+25
Comments24

Руководство по установке и настройке OpenVPN

Reading time34 min
Views1.4M



Когда у нас появились сотрудники, работающие удаленно, пришлось думать над тем, как обеспечить им защищенный доступ к нашим хостинговым серверам, виртуальным выделенным серверам разработчиков Virtual Dedicated Server (VDS), сайтам обеспечения и сопровождения разработки и к другим ресурсам.



По соображениям безопасности доступ к этим ресурсам ограничен при помощи межсетевого экрана (файервола) по портам и адресам IP. Ежедневную перенастройку доступа при изменении динамических IP сотрудников едва ли можно назвать разумным решением.



Выход нашелся довольно быстро — это использование технологии виртуальных частных сетей Virtual Private Network (VPN) и ее свободной реализации OpenVPN. Эта реализация доступна практически для всех распространенных платформ, в том числе для планшетов и смартфонов. История развития OpenVPN насчитывает уже 12 лет (компания OpenVPN Technologies, Inc. была создана Francis Dinha и James Yona в 2002 году), так что это надежное и проверенное временем решение.



В нашей компании сеть VPN позволила предоставить защищенный доступ сотрудников к VDS, играющей роль сервера OpenVPN. И уже для фиксированного IP этого сервера был разрешен доступ к другим ресурсам компании. Попутно на сервере OpenVPN был установлен прокси Squid, что решило все проблемы доступа сотрудников с динамическими IP к защищенным ресурсам компании.



Теме OpenVPN посвящены многочисленные статьи и сообщения на форумах. Тем не менее, нужную информацию мне пришлось собирать по частям из разных мест. Попутно приходилось разбираться с многочисленными терминами и технологиями. В качестве серверов OpenVPN были использованы VDS на базе FreeBSD и Debian Linux, в качестве клиентов — рабочие станции FreeBSD, Debian Linux, Ubuntu и Microsoft Windows.



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


Читать дальше →
Total votes 128: ↑115 and ↓13+102
Comments97

Использование ownCloud 7 в полевых условиях

Reading time15 min
Views162K
owncloud image Прочитав статью "Делаем backup Google или паранойя по поводу санкций. Owncloud и другие открытые решения", я решил, что пора дать второй шанс ownCloud'у после крайне неудачного опыта с 5 версией. В итоге оказалось, что за сей короткий промежуток времени ownCloud приобрел вполне добротный вид и способна работать в качестве повседневного инструмента — обнаруженные проблемы либо не существенны, либо имеют решение. Те, кто не знаком с ownCloud, могут узнать о его ключевых особенностях, к примеру, на официальном сайте или на opennet.ru. В этой статье я НЕ расскажу о том, как надо устанавливать ownCloud и как потом его с нуля настроить, потому что уже достаточно об этом писано-расписано-переписано, да и установка не представляет собой ничего сложного, я лишь кратко упомяну важные детали. Под катом будет информация о том, что же интересного умеет ownCloud, какие приложения в apps.owncloud.com мне показались стоящими внимания, затрону интеграцию с KDE и Android, а также скажу пару слов о подводных камнях и интересных местах, ну а в конце подведу итоги для тех, кому лень столько читать. ownCloud на своём сервере я использую в одиночестве, поэтому администрирование пользователями и всё сопутствующее будет описано крайне скудно. Осторожно: много картинок.
Читать дальше →
Total votes 54: ↑51 and ↓3+48
Comments73

Делаем backup Google или паранойя по поводу санкций. Owncloud и другие открытые решения

Reading time4 min
Views109K


В свете последних топиков, в том числе «Autodesk не будет продавать ПО попавшим под санкции компаниям», появляется ощущение, что маховик абсурда все сильнее раскручивается. Мы не будем осуждать в этом топике политические причины всего этого безобразия, а подумаем немного о том, что произойдет, если внезапно «выключат Google», причем неважно с какой стороны. Также предлагаю рассмотреть один из вариантов забрать себе накопленный контент, используя открытое ПО.

Для начала давайте подумаем, что является наиболее ценным для большинства пользователей сервисов Google? В первую очередь, это личный контент, который хранится в облаке, почта и другие материалы. Во вторую очередь, это сервисы, которым нужно найти замену в кратчайшие сроки. Мы не будем рассматривать нужды профессиональных разработчиков под Android и корпоративные нужды.
Создаем резервную копию
Total votes 126: ↑111 and ↓15+96
Comments165

Information

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

Specialization

Backend Developer
Middle
Python
PostgreSQL
Django
Fastapi
Golang