Pull to refresh
-7
0
Send message

Легкий сокращатель ссылок на JavaScript, Cloudflare Workers и c Telegram Bot'ом

Reading time5 min
Views9K

Что делать если нужно быстро создать короткую ссылку? Конечно – использовать сокращатель ссылок. А что если при этом еще и сделать эту ссылку читаемой? Как при этом использовать свой личный домен? А лучше было бы делать это без дополнительных серверов.. Похоже что ответ есть.

Узнать
Total votes 4: ↑4 and ↓0+4
Comments3

KB2 — Или успеть на все платформы

Reading time22 min
Views9.4K

King’s Bounty II, на первый взгляд визуально простая игра, но в ней сосредоточено огромное множество сложных и комплексных технических решений, продиктованных одновременным выходом на все платформы. Отдельным, и, пожалуй, самым сложным  испытанием для команды стало портирование на Nintendo Switch.

Осторожно, Лонгрид!
Рекомендую заготовить чай с печеньками.
Много интересной информации про очень разные технические аспекты разработки.

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

Как биткоин кошелек с мультиподписью Copay подвергла своих пользователей угрозе

Reading time10 min
Views1.2K

Угроза для пользователей возникла из-за использование типа подписи Биткоина SIGHASH_SINGLE( 0x03)

SIGHASH_SINGLE( 0x03) – это тип подписи подписывает все входы и ровно один соответствующий выход транзакции монет Биткоина. Соответствующий вывод имеет тот же индекс, что и ваша подпись (т. е. если ваш ввод находится на vin 0, то вывод, который вы хотите подписать, должен иметь vout 0). По сути, это говорит: «Я согласен участвовать в этой передаче со всеми этими входами, пока это количество идет на этот один адрес».

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

Как я пишу HTTP-сервисы спустя 13 лет работы с Go

Level of difficultyMedium
Reading time18 min
Views22K

Примерно шесть лет назад я написал пост о том, как пишу HTTP-сервисы на Go, и сегодня я снова хочу рассказать, как пишу HTTP-сервисы.

Тот пост оказался довольно популярным и вызвал обсуждения, повлиявшие на то, как я делаю это сегодня. И спустя годы ведения подкаста Go Time, обсуждения Go в X/Twitter и поддержки подобного кода я решил, что настало время обновить информацию.

(Если вы педант и скажете, что Go не совсем 13 лет, то я отвечу, что начал писать HTTP-сервисы на Go версии .r59.)

В этом посте рассматривается широкий спектр тем, связанных с созданием сервисов на Go

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

Есть ли жизнь на Go после C#?

Reading time13 min
Views31K

Всем привет! На связи Пётр, Go-разработчик в команде Ozon, которая занимается управлением товарами торговой площадки. Всё, что загружают продавцы, обрабатывается нашими сервисами. Девять месяцев назад я сменил основной язык программирования с C# на новый для меня Go. В статье будут впечатления от Go, расскажу о некоторых различиях между языками, а в конце поделюсь своим опытом поиска работы на новом языке. Ведь вопрос смены стека технологий рано или поздно встаёт перед каждым разработчиком.

Читать далее
Total votes 55: ↑45 and ↓10+35
Comments48

Средние highload паттерны на Go

Reading time20 min
Views11K

Привет, Хабр! Меня зовут Агаджанян Давид и ранее я опубликовал статью «простые highload паттерны на Go», в которой были рассмотрены простые подходы увеличения пропускной способности отдельно взятого экземпляра приложения без хардкора. Мне импонируют простые подходы, так как over engineering подходы требуются в исключительных проектах, и то чаще всего только в отдельно взятых подсистемах, в остальном можно воспользоваться давно известными лучшими практиками.

Читать далее
Total votes 22: ↑19 and ↓3+16
Comments4

Простые highload паттерны на Go

Reading time5 min
Views18K

Привет, Хабр! Меня зовут Агаджанян Давид, хочу поделиться некоторыми инженерами рекомендациями, которые часто на моем опыте помогали держать highload нагрузку не прибегая к хардкору. Примеры будут на Go. Эти подходы довольно хорошо известны, но как мне кажется они недооценены и многие этими подходами пренебрегают. Если вы впервые видите их, то рекомендую хотя бы попробовать реализовать в своих проектах и провести бенчмарки, возможно вы будете приятно удивлены..

Читать далее
Total votes 32: ↑28 and ↓4+24
Comments5

Госайтишники никак не могут запилить реестр повесток, а россияне начали платить налог 43% с дивидендов из США

Reading time5 min
Views20K

Почти все самые важные и интересные финансовые новости в России и мире за неделю: на фондовой бирже РФ произошло показательное бритье киви-инвесторов, китайскому рынку акций всё хуже и хуже, Биткоин упорно не растет, а тучи над Чанпэном Чжао продолжают сгущаться.

Читать далее
Total votes 58: ↑46 and ↓12+34
Comments94

Создание минимального Docker-контейнера для Go-приложений

Reading time4 min
Views46K
Привет, Хабр! Предлагаю вашему вниманию перевод статьи основателя сервиса Meetspaceapp Nick Gauthier «Building Minimal Docker Containers for Go Applications».

Время чтения: 6 минут

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

Часть 1: Наше «приложение»


Для тестирования нам потребуется какое-нибудь маленькое приложение. Давайте будем фетчить google.com и выводить размер HTML.

package main

import (
    "fmt"
    "io/ioutil"
    "net/http"
    "os"
)

func main() {
    resp, err := http.Get("https://google.com")
    check(err)
    body, err := ioutil.ReadAll(resp.Body)
    check(err)
    fmt.Println(len(body))
}

func check(err error) {
    if err != nil {
        fmt.Println(err)
        os.Exit(1)
    }
}

Если мы запустимся, то получим только какое-то число. У меня вышло около 17К. Я целенаправленно решил использовать SSL, но причину объясню позднее.
Читать дальше →
Total votes 23: ↑20 and ↓3+17
Comments10

Как мы сделали свое Heroku-подобное облако

Reading time6 min
Views2.4K

Возможно, у вас была (или есть) потребность развернуть свой IT-проект, будь то простой бот, сайт, приложение или сложный высоконагруженный сервис. И, возможно, вы пользовались для этого AWS, MS Azure или другими провайдерами публичных облаков. 

Тогда вы знаете, что для использования таких облачных решений нужно иметь весьма «глубокие карманы». Так, чтобы развернуть обычный сервис распознавания речи на 20 потоков вы заплатите Яндексу за виртуальные машины и за СУБД 43500 руб. в месяц (расчет на основе нашего ASR). И это еще достаточно простой, пусть и требовательный к CPU сервис.  Кажется, облачные услуги должны быть более доступны с финансовой точки зрения. 

В этой статье мы расскажем, как делали свое облако, с чем столкнулись, и что в итоге получилось.

Читать далее
Total votes 5: ↑4 and ↓1+3
Comments6

Dokku: самый маленький PaaS

Reading time1 min
Views33K
Dokku — это мини-Heroku, сделанный на базе Docker и состоящий из менее чем 100 строк на Bash.

После установки Вы сможете публиковать свои приложения простым git push. Каждое приложение будет запущено в изолированном контейнере. В конечном итоге у Вас будет своя Heroku-подобная платформа.
Читать дальше →
Total votes 40: ↑33 and ↓7+26
Comments6

С новым годом: GPT в 500 строках на SQL

Reading time42 min
Views37K

В минувшем году все только и говорили об ИИ и о том, как он может всё за вас сделать.

Мне нравится, когда кто-то или что-то работает за меня. Поэтому решил: попрошу-ка ChatGPT написать за меня новогодний пост:

«Эй, ChatGPT. А ты можешь реализовать большую языковую модель на SQL?»
«Нет, SQL не подходит для реализации больших языковых моделей. Язык SQL предназначен для выполнения запросов к данным, хранящимся в РСУБД и для управления этими запросами. Для реализации большой языковой модели требуются сложные алгоритмы, обширные датасеты, а зачастую — и фреймворки для глубокого обучения. SQL всеми этими возможностями не обладает.»

Что ж, лишний раз убеждаешься, что, если хочешь что‑то сделать хорошо – сделай это сам.

Давайте же воодушевимся этим оптимистическим планом и реализуем большую языковую модель на языке SQL.

Читать далее
Total votes 215: ↑211 and ↓4+207
Comments21

Как я сделал ремастер всех серий Том и Джерри в 2к всего за пару месяцев

Level of difficultyEasy
Reading time8 min
Views75K

Улучшение Том и Джерри из 480p в 1440p

С чего всё началось? Как-то я решил в третий раз с детства пересмотреть всю оригинальную коллекцию "Том и Джерри", но я, в отличие от маленького ребёнка, не потребляю любой контент вне зависимости от его качества. И вот я собрался посмотреть самую доступную версию, а там вот это цветошоу с постоянными царапинами на всём экране.

Мур-мур-мур
Total votes 397: ↑392 and ↓5+387
Comments193

2500 дней создания AI без использования нейронных сетей или покерный бот, который дороже $50к

Reading time12 min
Views26K

Давно хотел написать статью про своё хобби, которое стало нечто большим для меня. 

Я закончил математический факультет(ТвГУ) в 2012г.  В период учёбы я профессионально играл в покер, как вживую, так и онлайн(yura_$198802,основной аккаунт PS). Не могу сказать, что был супер успешен, но для студента вполне себе подработка. Уже с 2011 года я начал карьеру программиста и продолжаю её по сей день. Это мой основной источник заработка. Но где-то в 2014 я серьёзно решил заняться написание покерного бота, для онлайн площадок. На данный момент “я” превратился в команду энтузиастов, которая двигает этот проект вперёд! Еще в университете довольно таки плотно был знаком с Байесовским классификатором, а также имел  базовые представления по нейронным сетям. Сейчас стало "мейнстримом" считать, что если вы нашли релевантные данные и корректно обучили сетку с использованием (ML,CatBoost,TensorFlow и т.д.), то вы сделали что-то похожее на “искусственный интеллект”(далее AI). Я решил ,что если раскрою верхнеуровневую архитектуру своего проекта, это может кого-то удивить тем, что AI - это нечто большое.(только не профессионалов в этой области) И даже в такой игре как покер, где казалась бы не обойтись без нейронных сетей(на самом деле это действительно так), до момента органического встраивания их в продукт, лично у меня прошло примерно 2500 дней. Сразу хочу отметить, что  способ, когда ты знаешь всю информацию обо всех участниках и играешь с одними и теми же, где можно просто собрать модель и обучить её по лучшим и быть в их числе, не подходит для так называемого реального онлайн покера. Тут  нужно делать изначально экспертную систему, которую уже можно бесконечно долго улучшать и модифицировать.

Читать далее
Total votes 21: ↑19 and ↓2+17
Comments15

Как спасти разбитую читалку, если у вас прямые руки

Reading time9 min
Views15K
Статей о том, как подключить дисплей на электронных чернилах к Arduino, STM32, ESP32 и т.д. (нужное подчеркнуть) на этом ресурсе более чем достаточно, и я не стану утомлять читателя очередным погодным информером. Речь пойдет о том, как в хозяйстве можно использовать электронную книгу, ставшую жертвой комбинации четвертой фундаментальной силой природы – гравитации и седалищной мышцы Человека Разумного. Хе-хе. 

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

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

Total votes 74: ↑74 and ↓0+74
Comments21

Метод фрагментарного сжатия видеопотока

Reading time11 min
Views15K
Я решил представить на суд уважаемого хабрасообщества свою разработку — метод фрагментарного сжатия видеопотока. Особенностью предлагаемого метода является полное соответствие сжатого видеопотока исходному, то есть метод осуществляет сжатие без потерь.
Читать дальше →
Total votes 29: ↑27 and ↓2+25
Comments24

Алгоритм быстрого нахождения похожих изображений

Reading time8 min
Views61K

Введение


Недавно наткнулся на статью, размещенную на Хабрахабре, посвященную сравнению изображений «Выглядит похоже». Как работает перцептивный хэш. Так как я сам достаточно долго занимался этой тематикой (являюсь автором программы AntiDupl), то мне захотелось поделиться здесь своим опытом по данному вопросу. В статье я приведу два варианта алгоритма сравнения похожих изображений — базовый и улучшенный. Все они были проверены автором на практике в рамках указанного выше проекта. Изложение мое будет вестись без строгих доказательств, сложных формул и специальной математической терминологии. Надеюсь, что читатели простят меня за это.

Базовый Алгоритм


Мера схожести изображений


При сравнении похожих изображений первым встает вопрос: что считать мерой схожести изображений? Очевидно, что это величина имеет значение обратное различию изображений друг от друга. Следственно нужно выбрать некую метрику, характеризующую различие изображений друг от друга. Тогда схожими изображениями будут считаться изображения, отличие между которыми меньше некоторого порога. Для изображений с одинаковыми габаритами, обычно такой мерой различия служит среднеквадратическое отклонение пикселей одного изображения от другого. Хотя конечно, нам ни что не мешает выбрать другую метрику, например усредненную абсолютную разность пикселей изображений друг от друга.
Читать дальше →
Total votes 57: ↑55 and ↓2+53
Comments20

Почему ты не можешь просто начать меньше есть? (Не)очевидные факторы аппетита

Level of difficultyEasy
Reading time5 min
Views32K

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

Читать далее
Total votes 37: ↑35 and ↓2+33
Comments48

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

Reading time44 min
Views213K


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

Information

Rating
Does not participate
Registered
Activity