Pull to refresh
73
0

Пользователь

Send message

Пишем GPT4 ботов на coze.com

Level of difficultyMedium
Reading time4 min
Views17K

Нет времени объяснять! Bytedance тестирует платформу создания АИ ботов, coze.com, в том числе на базе gpt-4/gpt-3.5/Dalle-3 с возможностью интеграции в телеграм/дискорд. На данный момент ограничений практически нет, бесплатный доступ к огромному количеству сервисов, включая платные. Сервис доступен в России и еще в ряде стран.

Есть возможность создавать сложные workflow, добавлять кастомные плагины/апи, да практически что угодно можно сделать. Я покажу на примере нескольких ботов. Простой gpt бот - переводчик, чуть более сложный - для написания кода на питон, с возможностью "гуглить" и очень сложный, для генерации изображений в Dalle, с сложным воркфлоу, кастомными плагинами/вставками кода/условиями и так далее. Поехали!

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

pudge встраиваемая база данных в 500 строк на golang

Reading time3 min
Views11K
pudge — встраиваемая key/value база данных, написанная на стандартной библиотеке Go.

image

Остановлюсь на принципиальных отличиях от существующих решений.

Stateless

pudge.Set("../test/test", "Hello", "World")

Пудж автоматически создаст базу данных test, включая вложенные директории, либо откроет. Нет необходимости хранить состояние таблицы и можно безопасно сохранять значения в многопоточных приложениях. Пудж потокобезопасен.
Читать дальше →
Total votes 35: ↑34 and ↓1+33
Comments32

Новости Typegram

Reading time4 min
Views7.4K
Всем привет! Прошло два месяца с момента анонса typegram на Хабре. И у меня для Вас просто жуткое количество новостей и прохладных историй! Всё так бурно развивается что даже страшно. Начну с приветствия:

Привет, меня зовут Вадим, я представляю проект typegram. Typegram — онлайн платформа для публикаций с открытым исходным кодом.

Это то, что меня выдрессировали делать в стартап школе YC. Начинать с представления себя и своего проекта.
Читать дальше →
Total votes 26: ↑22 and ↓4+18
Comments7

Typegram — дзэн блог платформа

Reading time3 min
Views13K

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


Базовые возможности:


Публикации, комментарии, избранное, подписки, уведомления, рейтинги, голосования.


Минималистичный, текстовый дизайн:

Читать дальше →
Total votes 50: ↑43 and ↓7+36
Comments52

slowpoke — не самая быстрая база данных

Reading time7 min
Views11K
Всем привет.

slowpoke это key/value хранилище данных, написанное на стандартной библиотеке golang. Slowpoke обладает минималистичным, удобным апи и подходит для решения довольно широкого круга задач.

Записать значение в slowpoke можно при помощи команды Set:

slowpoke.Set("db/some.db", []byte("foo"), []byte("bar"))

Единицей хранения данных в slowpoke является файл. В данном примере — будет создана директория «db», с файлом «some.db», в который будет помещено три байта («bar»).
Читать дальше →
Total votes 27: ↑24 and ↓3+21
Comments39

TgGram — сервис создания сайтов для/из телеграм каналов

Reading time2 min
Views25K
Добрый день.

Как известно, контент опубликованный в телеграм не индексируется поисковиками. Я разработал сервис, tggram.com, автоматически создающий сайты для телеграм каналов.

Сразу несколько примеров:

rdslv.tggram.com
botcollection.tggram.com
memefeed.tggram.com

По желанию, возможен! кастомный домен и уникальный стиль, например:

startupoftheday.ru
crazydoge.com
Читать дальше →
Total votes 37: ↑36 and ↓1+35
Comments27

Эффективное кеширование. От теории к практике

Reading time13 min
Views66K
image

Как правило, статьи о кешировании начинаются за здравие, а заканчиваются LRU кешем. Попробуем переломить эту тенденцию? Начнем с того, чем LRU плох, а закончим за здравие. Я надеюсь.

Вне зависимости от того, строите ли вы хайлоад сервис для миллионов посетителей или проектируете мобильное приложение, пишите операционную систему или СУБД — ключевое звено, влияющее на конечную стоимость системы и на отзывчивость интерфейса/сервиса — это кеш.
Читать дальше →
Total votes 51: ↑50 and ↓1+49
Comments59

Malevich

Reading time3 min
Views16K
Так сложилось, что я люблю маленькие верткие библиотеки, которые с одной стороны — легко расширять, а с другой — удобны в использовании.

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

Так как человек я по натуре ленивый — решил пойти проторенным путем — открыл пример от гугла Loading Large Bitmaps Efficiently и решил вырезав из него все ненужное — получить с одной стороны легко расширяемую, а с другой стороны максимально эффективную библиотеку.

Так как кто как не эти чуваки лучше знают как грузить битмапы?

Так и получился Малевич:

image

Спойлер:

malevich.load(mImageUrl).into(mImageView);

Подробности
Total votes 29: ↑27 and ↓2+25
Comments27

Разрабатываем систему аналитики

Reading time9 min
Views15K
Данный пост открывает цикл статей о разработке аналитической системы мониторинга действий пользователей. В первой статье мы расскажем о том как собирать необходимые данные с мобильных приложений под андроид и айос.

package Birdy::Stat::Stalin;
#
# Это Сталин, он всё про всех знает
# Кто и что делает, кто и с кем спит
#
# ########################################################
# ########################################################
#
#                 !#########       #
#               !########!          ##!
#            !########!               ###
#         !##########                  ####
#       ######### #####                ######
#        !###!      !####!              ######
#          !           #####            ######!
#                        !####!         #######
#                           #####       #######
#                             !####!   #######!
#                                ####!########
#             ##                   ##########
#           ,######!          !#############
#         ,#### ########################!####!
#       ,####'     ##################!'    #####
#     ,####'            #######              !####!
#    ####'                                      #####
#    ~##                                          ##~
#
# ########################################################
# ########################################################

Я выбираю красную пилюлю
Total votes 32: ↑18 and ↓14+4
Comments8

Пример приложения с использованием библиотеки AQuery

Reading time11 min
Views13K
Нас постоянно спрашивают, почему мы используем библиотеку AQuery в своих проектах. В конце концов нам надоело отвечать и мы решили показать, на что способна AQuery в бою.

Но писать какой-то странный псевдокод в духе hello world скучно и неинтересно и поэтому мы решили сделать какое-нибудь небольшое, но полезное приложение. Недавно от Хабра отделился проект Мегамозг и в комментариях к новости высказывали предложение объединить RSS поток со всех ресурсов. Этим мы и займемся.

В конце получится такой прототип приложения IT News (rss с хабра, гиктаймс, мегамозга и с силиконруса/роем упорядоченные по дате):

image

Ссылки для торопыжек:
github: github.com/recoilme/itnews
google play: play.google.com/store/apps/details?id=org.freemp.itnews
Пишем агрегатор новостей на AQuery за пару часов
Total votes 20: ↑20 and ↓0+20
Comments19

Самые горячие темы года

Reading time1 min
Views14K
Настало время подводить итоги года, и мы в Surfingbird – решили не выбиваться из тренда.

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

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

image
Читать дальше →
Total votes 40: ↑19 and ↓21-2
Comments13

Как мы учили кнопку плавать

Reading time4 min
Views17K
Сразу, наверное, стоит предупредить, что мы сделали плавающую кнопку немножко по-своему и собственно до релиза библиотеки, реализующей материальный дизайн как таковой. Но обо всем по порядку.

В нашей концепции (приложений, сайта surfingbird.ru) активно используется такое понятие как «сёрф». Сервис генерирует для пользователя набор релевантных его интересам статей и переход к следующей, рекомендуемой статье мы называем «сёрфом». После очередного редизайна мы кнопку сёрф потеряли (раньше она была сверху, в акшенбаре, и до неё было не очень удобно тянуться), чем пользователи были очень возмущены. После просмотра ролика с превью материального дизайна мы загорелись идеей реализовать нечто подобное в приложении.

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

image
Читать дальше →
Total votes 21: ↑15 and ↓6+9
Comments14

Внедряем материальный дизайн

Reading time7 min
Views52K
Настало время переходить на Lollipop, друзья. Как бы смешно это не звучало.

image

Буквально вчера мы в Surfingbird обновили дизайн приложения и сегодня, по свежим следам, хотелось бы поделиться впечатлениями от перехода на material design.
Читать дальше →
Total votes 31: ↑27 and ↓4+23
Comments33

Превращаем html в нативные компоненты

Reading time7 min
Views19K
Доброго дня! Мы, мобильные разработчики компании surfingbird, решили попробовать написать небольшой цикл статей о том с какими трудностями мы сталкиваемся в процессе разработки мобильных приложений (android, ios), и как мы их решаем. Первый пост мы решили посвятить проблеме webview. Сразу оговорюсь, что решили мы эту проблему несколько кардинально… Для того чтобы было более понятно, придется рассказать пару слов о собственно том, чем мы занимаемся. Мы агрегируем контент из различных источников (парсим оригинальные статьи), выделяем значимую часть (контент) и на основе оценок пользователя и всяких сложных алгоритмов рекомендуем их конечному пользователю ну и конечно просто отображаем в более удобном виде.

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

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

image
Как избавиться от webview
Total votes 26: ↑22 and ↓4+18
Comments11

Встраиваем локальные уведомления

Reading time5 min
Views12K
Что самое ужасное в случае удаления приложения? Правильно, потеря связи с аудиторией и невозможность проинформировать о том, что у приложения сменился адрес прописки и имя пакета. Задачу решают Push уведомления, но это довольно хлопотно и не всегда удобно. А иногда и дорого.



Поэтому мы напишем свои, простые как барабан и надежные как танк — локальные push уведомления. Код получился универсальным, и в принципе, его можно использовать как альтернативу обычным «пушам», например для новостной рассылки о том, что вышла новая версия приложения или для клянчанья рейтинга, да для чего угодно.

функционал под катом
Total votes 34: ↑22 and ↓12+10
Comments14

Секс и насилие в Google Play

Reading time1 min
Views342K
Последнее время google систематически удаляет приложения за секс и насилие, без пояснения причин и не вступая в диалог с разработчиками.

Окей, гугл. Давайте проведем небольшой социальный эксперимент.

Я установил на смартфоне доступ к контенту для младшей возрастной группы и зашел в несколько приложений от производителя Google Inc.
посмотрим, что из этого получится
Total votes 419: ↑371 and ↓48+323
Comments147

Создание галереи альбомов

Reading time7 min
Views6.4K
В статье описывается создание функционала синхронизации обложек для альбомов.
Комментарии встречаются как непосредственно в коде, так и в виде пояснений к коммитам.
Будет довольно много кода и совсем мало картинок.
Читать дальше →
Total votes 13: ↑11 and ↓2+9
Comments0

Yet another audioplayer

Reading time6 min
Views13K
Здравствуйте. Меня зовут Вадим. И я — меломан. Это как наркотик. Постоянно нужна новая музыка. И инструменты для ее поиска и прослушивания. Эта болезнь длится уже много лет. Все началось с написания скриптов, которые распарсивали, базы данных vk.com и last.fm. Потом были многопоточные парсеры музыки liveinternet через сеть прокси серверов и парсер поиcковой выдачи google и p2p сети wuala + рекомендательные сервисы на базе last.fm (w3z.ru — проект закрыт). Затем появилась социальная сеть для меломанов интегрированная с last.fm и vk (wharrgarbl.ru — проект закрыт). И наконец десктопное приложение для меломанов, в котором можно было и слушать и искать музыку в едином интерфейсе (mielophone.com — проект закрыт). Все эти проекты объединяет одно — они не были opensource проектами, и по разным причинам умерли. Мне помогало много людей yamalight, Kaaboeld и вдвойне печально, что их пришлось закрыть. Какие то по требованию правообладателей, а какие то — не «потянул». Так может быть пора перестать искать «выгоду»? — подумал я, и решил написать еще один бесплатный, свободный, кроссплатформенный аудиоплеер.

image
Продолжения истории хочешь? Плати еще 4 копейки.
Total votes 17: ↑17 and ↓0+17
Comments29

Information

Rating
Does not participate
Location
Барбадос
Date of birth
Registered
Activity