Как стать автором
Обновить
58
0
Аббасов Александр @vodka_ru

Предприниматель, Стартапер, Программист

Отправить сообщение

Где искать работу в IT?

Время на прочтение5 мин
Количество просмотров205K

Ты решил «Войти в Айти» или уже работаешь в IT и хочешь найти место получше. Где же найти работу и не потратить на это несколько месяцев?

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

Читать далее
Всего голосов 19: ↑12 и ↓7+5
Комментарии18

RICE на стероидах или новая модель скоринга «RIDE»

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров1.8K

Если вы создавали свой стартап, занимались маркетингом ИТ продуктов или были частью продуктовой команды, то возможно знакомы с фреймворком планирования RICE для приоритизации продуктовых замыслов, идей и фич. Но сегодня речь не о нём. Будем обсуждать альтернативную версию этого фреймворка – «RIDE».

Подробнее
Всего голосов 4: ↑4 и ↓0+4
Комментарии4
Мы на Хабр Карьере проанализировали почти 10 000 зарплат айтишников за первое полугодие 2021 года, и делимся результатами исследования.

Медианная зарплата среди всех ИТ-специализаций сейчас 120 000 ₽. В Москве зарабатывают 160 000 ₽, в Петербурге — 135 000 ₽, в остальных регионах — 100 000 ₽. По сравнению со вторым полугодием 2020 года, зарплаты выросли на 6,2% за счет роста зарплат в регионах
Хочу узнать подробности!
Всего голосов 25: ↑23 и ↓2+21
Комментарии36

Анатомия каналов в Go

Время на прочтение34 мин
Количество просмотров158K

Привет, Хабр! Представляю вашему вниманию перевод статьи "Anatomy of Channels in Go" автора Uday Hiwarale.


Что такое каналы?


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


Создание канала


Go для создания канала предоставляет ключевое слово chan. Канал может передавать данные только одного типа, данные других типов через это канал передавать невозможно.

Читать дальше →
Всего голосов 22: ↑22 и ↓0+22
Комментарии7

Особенности национальной интеграции с платёжными системами

Время на прочтение7 мин
Количество просмотров7.1K
Электронная коммерция стала трендом 2020 года. Крупные игроки рынка начали активно развивать сервисы доставки продуктов и готовых блюд. Как грибы после дождя выросли новые маркетплейсы. Даже те, кто был далёк от интернета и технологий, вынужденно погрузились в тему дистанционной торговли. Почему — все знают, но сегодня поговорим не об этом. Перейдём сразу к ключевому звену коммерции — приёму платежей. В статье поделюсь несколькими рекомендациями о том, как с ним работать.

image
Читать дальше →
Всего голосов 21: ↑21 и ↓0+21
Комментарии7

Открываем порты за NAT при помощи NAT-PMP и UPnP IGD

Время на прочтение4 мин
Количество просмотров152K


Ранее я много раз слышал, что UPnP каким-то образом умеет самостоятельно открывать порты (производить Port Forwarding на роутере) по запросу от хоста из локальной сети. Однако, то, каким именно образом это происходит, и какие протоколы для этого используются, доселе было покрыто для меня пеленой тумана.

В данной статье я хочу кратко рассказать, как работают два механизма для проброса портов, а именно NAT Port Mapping Protocol и Internet Gateway Device (IGD) Protocol, входящий в набор протоколов UPnP. К своему удивлению я обнаружил, что в рунете информация по данному вопросу более чем скудна, что и сподвигло меня на написание данной заметки.

Для начала приведу краткий FAQ:

Q: Для чего нужны данные протоколы?
A: Для формирования на маршрутизаторе правила проброса определенного TCP/UDP порта (Port Forwarding) не вручную, а «автоматически», т.е. по запросу от хоста во внутренней сети.

Q: Как это реализуется?
A: Устройство за NAT отправляет маршрутизатору запрос с указанием внутреннего и внешнего номеров портов и типа протокола (TCP/UDP). Если указанный внешний порт свободен, маршрутизатор формирует у себя правило трансляции и рапортует запросившему компьютеру об успешном выполнении запроса.

Q: Проводится ли на маршрутизаторе аутентификация/авторизация запросов на открытие порта?
A: Нет, не проводится.

Теперь же рассмотрим работу данных протоколов более подробно (под катом).
Читать дальше →
Всего голосов 9: ↑9 и ↓0+9
Комментарии14

Amazon SQS vs RabbitMQ

Время на прочтение8 мин
Количество просмотров23K

Введение


Любой прогресс и оптимизация приветствуется кем угодно. Сегодня хотелось бы поговорить про прекрасную вещь, значительно облегчающую жизнь – очереди. Внедрение best practices в этом вопросе не только улучшают производительность приложения, но и успешно готовят ваше приложение к архитектуре «в стиле» Cloud Computing. Тем более, что не использовать уже готовые решения от провайдеров облачных технологий просто глупо.

В этой статье мы рассмотрим Amazon Web Services с точки зрения проектирования архитектуры средних и больших веб приложений.

Рассмотрим схему такого приложения:



Читать дальше →
Всего голосов 25: ↑22 и ↓3+19
Комментарии17

RocksDB сервер – быстрое key-value хранилище для SSD накопителей

Время на прочтение5 мин
Количество просмотров36K
RocksDB RocksDB – постоянное хранилище «ключ-значение» для быстрых накопителей. Основное ее предназначение — хранение данных на flash дисках.

Узким местом в производительности часто является обращение к БД.
Эта проблема может решаться по разному.
Использование кэша решает проблему производительности, но существенно усложняет архитектуру программы. Графовые базы данных выходят из ситуации за счет оптимальных для данной задачи алгоритмов. Другим типом решений являются хранилища, достигающие высокой производительности за счет использования быстрого носителя.
В последнее время появилось много NoSQL хранилищ полностью хранящих данные в памяти. Но память все еще стоит дорого и ее объем ограничен. Увеличение памяти за счет шардинга опять таки упирается в стоимость.
Логичным выходом из ситуации было бы использование SSD дисков. Они имеют относительно невысокую стоимость и при этом вполне небольшое время отклика.

Читать дальше →
Всего голосов 41: ↑40 и ↓1+39
Комментарии39

Знакомство с СУБД CockroachDB и создание отказоустойчивого кластера с ней на Ubuntu 16.04

Время на прочтение8 мин
Количество просмотров37K
Предисловие от переводчика: CockroachDB — достаточно молодая реляционная СУБД с открытым кодом (лицензия Apache 2.0), изначально созданная быть распределённой (с горизонтальным масштабированием «из коробки») и отказоустойчивой. Её авторы из компании Cockroach Labs, созданной в 2015 году, задаются целью «совместить богатство функциональности SQL с горизонтальной доступностью, привычной для NoSQL-решений». Данное руководство написано одним из сотрудников компании-разработчика и опубликовано на сайте облачного провайдера DigitalOcean для того, чтобы познакомить ИТ-специалистов с этой СУБД и продемонстрировать её использование.


Введение


CockroachDB — распределённая СУБД (SQL) с открытым кодом, обеспечивающая согласованность данных, масштабируемость и выживаемость.

Настройка CockroachDB проста: устанавливаете её на нескольких серверах (узлах) и объединяете их в единое целое для совместной работы (кластер). Все узлы кластера действуют «симметрично» и предлагают доступ к одинаковым данным. Если хранилище для данных необходимо увеличить, то при используемой архитектуре достаточно создать новые узлы и присоединить к кластеру.
Читать дальше →
Всего голосов 25: ↑25 и ↓0+25
Комментарии16

Python: строим распределенную систему c PySyncObj

Время на прочтение5 мин
Количество просмотров16K
Представьте, что у вас есть класс:
class MyCounter(object):
    def __init__(self):
        self.__counter = 0
    def incCounter(self):
        self.__counter += 1
    def getCounter(self):
        return self.__counter

И вы хотите сделать его распределённым. Просто наследуете его от SyncObj (передав ему список серверов, с которыми нужно синхронизироваться) и отмечаете декоратором @replicated все методы, которые изменяют внутреннее состояние класса:
class MyCounter(SyncObj):
    def __init__(self):
        super(MyCounter, self).__init__('serverA:4321', ['serverB:4321', 'serverC:4321'])
        self.__counter = 0
    @replicated
    def incCounter(self):
        self.__counter += 1
    def getCounter(self):
        return self.__counter

PySyncObj автоматически обеспечит репликацию вашего класса между серверами, отказоустойчивость (всё будет работать до тех пор, пока живо больше половины серверов), а также (при необходимости) асинхронный дамп содержимого на диск.
На базе PySyncObj можно строить различные распределенные системы, например распределенный мьютекс, децентрализованные базы данных, биллинговые системы и другие подобные штуки. Все те, где на первом месте стоит надёжность и отказоустойчивость.
Читать дальше →
Всего голосов 28: ↑28 и ↓0+28
Комментарии24

Основы декларативного программирования на Lua

Время на прочтение12 мин
Количество просмотров48K
Луа (Lua) — мощный, быстрый, лёгкий, расширяемый и встраиваемый скриптовый язык программирования. Луа удобно использовать для написания бизнес-логики приложений.

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

Луа — мультипарадигменный язык программирования. Одна из сильных сторон Луа — хорошая поддержка декларативного стиля. В этой статье я кратко опишу базовые декларативные средства, предоставлямые языком Луа.
Читать дальше →
Всего голосов 69: ↑64 и ↓5+59
Комментарии18

300 потрясающих бесплатных сервисов

Время на прочтение11 мин
Количество просмотров1.6M


Автор оригинальной статьи Ali Mese добавил ещё 100 новых бесплатных сервисов. Все 400 потрясающих сервисов доступны здесь. И еще подборку +500 инструментов от 10 марта 2017 г. смотрите здесь.



A. Бесплатные Веб-Сайты + Логотипы + Хостинг + Выставление Счета

  • HTML5 UP: Адаптивные шаблоны HTML5 и CSS3.
  • Bootswatch: Бесплатные темы для Bootstrap.
  • Templated: Коллекция 845 бесплатных шаблонов CSS и HTML5.
  • Wordpress.org | Wordpress.com: Бесплатное создание веб-сайта.
  • Strikingly.com Domain: Конструктор веб-сайтов.
  • Logaster: Онлайн генератор логотипов и элементов фирменного стиля (new).
  • Withoomph: Мгновенное создание логотипов (англ.).
  • Hipster Logo Generator: Генератор хипстерских логотипов.
  • Squarespace Free Logo: Можно скачать бесплатную версию в маленьком разрешении.
  • Invoice to me: Бесплатный генератор счета.
  • Free Invoice Generator: Альтернативный бесплатный генератор счета.
  • Slimvoice: Невероятно простой счет.

Читать дальше →
Всего голосов 341: ↑325 и ↓16+309
Комментарии107

Три ключевых принципа ПО, которые вы должны понимать

Время на прочтение13 мин
Количество просмотров224K

Разрабатывая приложения, мы постоянно сталкиваемся с новыми подходами, языками и концептами. И постоянно мы мечемся в сомнениях «смогу ли я быть на волне, оставаться конкурентоспособным, учитывая все изменения и тренды?». Давайте задумаемся на мгновение, вспомнив фразу из моего любимого фильма «Касабланка» — в любви законов новых нет — так создан свет.

Все, что касается любви, применимо и к коду. Новых законов в коде нет. Если вы четко понимаете основные идеи разработки, вы способны максимально быстро адаптироваться к новым подходам. В этой статье я расскажу вам о трех основных принципах, которые, наряду с другими, позволяют регулировать сложность разработки. Я поделюсь своим видением вопроса, которое, надеюсь, поможет вам в повседневной работе.
Читать дальше →
Всего голосов 142: ↑128 и ↓14+114
Комментарии56

Неприступный почтовый сервер, или жизнь без спама

Время на прочтение11 мин
Количество просмотров197K
Борьба со спамом — это головная боль всех ответственных администраторов почты. Чего только они не изобретают, чтобы любимым пользователям лучше жилось. Однако, как показала практика общения со многими системными администраторами, почему-то далеко не все представляют как правильно фильтровать спам.

Чаще всего встречается подход «добавим кучу RBL (DNSBL) и будем радоваться жизни». Подход не верный чуть более, чем полностью. Второй по популярности — контент-фильтры, зачастую купленные за бешеные деньги. Такой подход тоже в большинстве случаев совершенно неоправдан.

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

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

Итак, если вы хотите обезопасить своих пользователей от спама или наоборот, хотите чтобы кто-то случайно не обезопасил пользователей от ваших писем — добро пожаловать под кат.

Читать дальше →
Всего голосов 158: ↑140 и ↓18+122
Комментарии149

Пути более эффективного использования PostgreSQL

Время на прочтение5 мин
Количество просмотров59K
Прочитав статью Базы данных в онлайн играх и особенно комменты к ней, я в очередной расстроился от мысли, что многие разработчики меняют БД в своём проекте, пытаясь этой сменой решить свои проблемы, не исчерпав, однако, всех возможностей, предоставляемой заменяемой БД. Я принимаю участие в работе над проектом, БД которого характеризуется:
  • Количеством транзакций порядка 5'000 — 10'000 в секунду
  • Объемом примерно в 100ГБ (который бодро растёт)
  • Примерно равным количеством операций на чтение/запись
  • Преимущественно мелкими транзакциями

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

Я опишу некоторые проблемы, с которыми мы сталкиваемся, и применённые решения. Если кто-то сочтёт это полезным — ради Бога. Если кто-то поправит — я буду только рад обнаружить уязвимость в используемых подходах и увеличить эффективность работы БД. Описанное может быть применено без вмешательства в логику приложения, исключительно путём модификации схемы БД.
Читать дальше →
Всего голосов 44: ↑40 и ↓4+36
Комментарии55

Celestia

Время на прочтение5 мин
Количество просмотров40K


В свете обострившегося интереса к космонавтике и астрономии на Хабре (спасибо NASA и Curiosity), хотелось бы рассказать о замечательном свободном планетарии, созданным Крисом Лорелом — Celestia (а точнее, о расширенной сборке Celestia Extended Pack).
Кстати, именно с помощью Celestia была создана заставка к всенародно любимому сериалу Теория большого взрыва :)
Читать дальше →
Всего голосов 71: ↑67 и ↓4+63
Комментарии59

Представлен работающий прототип ховербайка

Время на прочтение1 мин
Количество просмотров7.1K
Компания Aerofex представила публике уже работающий прототип ховербайка. К сожалению, в ближайших планах компании – доработка платформы для беспилотного использования, но можно надеяться, что в будущем найдется место и пилотируемым версиям. Сама разработка, по утверждению представителей компании, родом еще из 1960-х, но тогда у нее было несколько неразрешимых технических проблем. Теперь же прототип доработан и даже испытан. Пилотируемая версия сейчас испытывается на высотах до 4,5 метров и скорости до 50 км/ч, но это далеко не предел возможностей аппарата. В ближайшем будущем Aerofex планируют адаптировать платформу к беспилотному использованию и распространять получившийся аппарат в различных сферах от сельского хозяйства до армии.

Под катом пара видео и интересная ссылка
Всего голосов 86: ↑77 и ↓9+68
Комментарии113

Что внутри марсохода Curiosity

Время на прочтение5 мин
Количество просмотров18K


6 августа 2012 года на поверхность Марса десантировался аппарат «Любопытство» (Curiosity). В следующие 23 месяца марсоход будет изучать поверхность планеты, её минералогический состав и спектр излучения, искать следы жизни, а также оценит возможность высадки человека.

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

При всем своем большом обвесе и внешней легкости аппарат имеет массу легкового автомобиля (900 кг) и весит на поверхности Марса 340 кг. Для запитывания всего оборудоваения используется энергия распада плутония-238 от радиоизотопного термоэлектрического генератора компании «Боинг», ресурс которого составляет как минимум 14 лет. На данный момент он вырабатывает 2,5 квт·ч тепловой энергии и 125 Вт электрической, со временем выход электричества будет снижаться до 100 Вт.
Читать дальше →
Всего голосов 101: ↑96 и ↓5+91
Комментарии174

Робот на солнечных батареях использует песок для 3D-печати

Время на прочтение1 мин
Количество просмотров7.7K


Наверное, это самый экологичный робот — осуществляет 3D-печать из природных материалов (почва и песок), используя при этом природную энергию (Солнце).

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

Под катом — видео и FAQ.
Читать дальше →
Всего голосов 87: ↑85 и ↓2+83
Комментарии184

Голубая карта Германии

Время на прочтение3 мин
Количество просмотров29K
image

Коллеги, сегодня, первого августа, в Германии вступил в силу проект "Blue Card", позволяющий инженерам и в частности, IT специалистам получить возможность работать в Германии и Евросоюзе, при этом получить четырёхлетнюю визу с правом работы по упрощённой процедуре. Проект этот обсуждался довольно давно, но вот теперь получил официальное подтверждение. Он в общих чертах напоминает программу Green Card десятилетней давности, но есть несколько важных отличий.

Читать дальше →
Всего голосов 100: ↑98 и ↓2+96
Комментарии169
1
23 ...

Информация

В рейтинге
Не участвует
Откуда
Санкт-Петербург, Санкт-Петербург и область, Россия
Зарегистрирован
Активность