Как стать автором
Обновить
73
0

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

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

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

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

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

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

Читать далее
Всего голосов 20: ↑17 и ↓3+14
Комментарии11

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

Время на прочтение3 мин
Количество просмотров11K
pudge — встраиваемая key/value база данных, написанная на стандартной библиотеке Go.

image

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

Stateless

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

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

Новости Typegram

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

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

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

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

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

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


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


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


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

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

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

Время на прочтение7 мин
Количество просмотров11K
Всем привет.

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

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

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

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

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

Время на прочтение2 мин
Количество просмотров25K
Добрый день.

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

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

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

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

startupoftheday.ru
crazydoge.com
Читать дальше →
Всего голосов 37: ↑36 и ↓1+35
Комментарии27

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

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

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

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

Malevich

Время на прочтение3 мин
Количество просмотров16K
Так сложилось, что я люблю маленькие верткие библиотеки, которые с одной стороны — легко расширять, а с другой — удобны в использовании.

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

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

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

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

image

Спойлер:

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

Подробности
Всего голосов 29: ↑27 и ↓2+25
Комментарии27

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

Время на прочтение9 мин
Количество просмотров15K
Данный пост открывает цикл статей о разработке аналитической системы мониторинга действий пользователей. В первой статье мы расскажем о том как собирать необходимые данные с мобильных приложений под андроид и айос.

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

Я выбираю красную пилюлю
Всего голосов 32: ↑18 и ↓14+4
Комментарии8

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

Время на прочтение11 мин
Количество просмотров13K
Нас постоянно спрашивают, почему мы используем библиотеку 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 за пару часов
Всего голосов 20: ↑20 и ↓0+20
Комментарии19

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

Время на прочтение1 мин
Количество просмотров14K
Настало время подводить итоги года, и мы в Surfingbird – решили не выбиваться из тренда.

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

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

image
Читать дальше →
Всего голосов 40: ↑19 и ↓21-2
Комментарии13

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

Время на прочтение4 мин
Количество просмотров17K
Сразу, наверное, стоит предупредить, что мы сделали плавающую кнопку немножко по-своему и собственно до релиза библиотеки, реализующей материальный дизайн как таковой. Но обо всем по порядку.

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

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

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

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

Время на прочтение7 мин
Количество просмотров52K
Настало время переходить на Lollipop, друзья. Как бы смешно это не звучало.

image

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

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

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

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

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

image
Как избавиться от webview
Всего голосов 26: ↑22 и ↓4+18
Комментарии11

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

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



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

функционал под катом
Всего голосов 34: ↑22 и ↓12+10
Комментарии14

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

Время на прочтение1 мин
Количество просмотров342K
Последнее время google систематически удаляет приложения за секс и насилие, без пояснения причин и не вступая в диалог с разработчиками.

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

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

Темная сторона Google Play

Время на прочтение4 мин
Количество просмотров87K
К сожалению пост будет без картинки, и не совсем о разработке.
Узнать как потерять сто тысяч пользователей
Всего голосов 105: ↑85 и ↓20+65
Комментарии55

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

Время на прочтение7 мин
Количество просмотров6.4K
В статье описывается создание функционала синхронизации обложек для альбомов.
Комментарии встречаются как непосредственно в коде, так и в виде пояснений к коммитам.
Будет довольно много кода и совсем мало картинок.
Читать дальше →
Всего голосов 13: ↑11 и ↓2+9
Комментарии0

Yet another audioplayer

Время на прочтение6 мин
Количество просмотров13K
Здравствуйте. Меня зовут Вадим. И я — меломан. Это как наркотик. Постоянно нужна новая музыка. И инструменты для ее поиска и прослушивания. Эта болезнь длится уже много лет. Все началось с написания скриптов, которые распарсивали, базы данных 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 копейки.
Всего голосов 17: ↑17 и ↓0+17
Комментарии29

Информация

В рейтинге
Не участвует
Откуда
Барбадос
Дата рождения
Зарегистрирован
Активность