Meu linkzinho

Posted on Jun 29, 2024

Cara, eu preciso melhorar os nomes que dou aos meus projetos

Bem, já vou tirar o elefante da sala, fatscript. Fatscript é uma linguagem de programação feita por um brasileiro. Eu vejo ela como uma toy language. Isso é, não necessáriamente uma lang que vai mudar o mundo e tudo mais, mas vai servir de estudos e/ou diversão. E eu acho que esse projeto trouxe muito disso. Lá no repositório no GitLab é super organizado, versão semântica (que recentemente chegou no v3!), changelog com as mudanças bem detalhadas, builds automatizadas, docs. É um projeto muito legal de ver sendo desenvolvido, ainda mais sendo por uma pessoa só!

De onde surgui a ideia

Por isso, e por gostar um bocado de aprender linguagens diferentes, eu sempre quis fazer alguma coisa com ela. A primeira coisa mesmo que eu tentei fazer foi um parser de html. Mas eu compliquei muito, tentei adicionar como um modulo ao interpretador, escrito em C e tudo. No final estava quase funcional, mas nem perto de bom para eu chegar e tentar fazer um merge request ao projeto. Então depois, bem naturalmente me veio esse ideia de um encurtador de links.

Eu vou passar longe desses mais comuns, que vão estar cheios de tracking, pedir cookies, aceitar termos. eu só preciso de algo simples para uso pessoal. E eu já tinha feito um só para estudos mesmo em Go, mas a oportunidade de um projeto legal com fatscript era boa demais para deixar passar. Pelo menos eu já teria uma base do que queria fazer, e terias alguns códigos para poder traduzir

Como foi

Muito legal!! (mas leve em consideração minha parcialidade nisso :P). A linguagem tem um syntax diferente, que em si só levam mais viagens até a documentação. O que quebra mesmo a cabeça são os designs da linguagem mesmo, como: early return, cases e switchs, escopo de funções. Então eu sempre fiquei com o repositório do interpretador na máquina, e quando precisava de inspiração de como fazer algo, iria ou na pasta de testes unitários de várias funcionalidades (mais de 100 arquivos!). Ou na pasta de sample, que tinha códigos maiores, e até uns joguinhos de terminal! Então fora a minha procrastinação, não houve muitas dificuldades.

E sobre o site

Originalmente ele foi feito com o boostrap studio. Tenho por causa do github student, e funcionava, mas o peso de todo booststrap + js dele, pra uma página tão simples, não me fez querer levar ele pra frente. E que bom que eu decidi isso porque em uma hora só eu consegui fazer uma nova que não atacava meus nervos (jurava que eu era pior com html e css). E pra levar isso ao extremo, o site não possui javascript, e o também não importa nenhum CSS, só uma tag style dentro da página e nada mais

front page do site meu linkzinho

Tem uma funcionalidade ainda que eu queria colocar, da url final poder ser setada apartir de um parametro de url na página. Você então poderia salvar um bookmark com o destino já colocado. E ter um outro bookmark para abrir o link que for encurtado. Mas eu tô mais afim de começar a usar ele logo e ver se isso seria util mesmo, ou é só firula minha.

E mesmo que não é meu plano deixar ele publico para sempre, ele vai tá online por uma ou duas semanas no link linkzinho.hagaka.me. Mesmo que ele não consuma quase nada de recursos, eu não tô tendo uma VPS minha. E não vai ser só ele que vai me fazer começar a ter uma. E até pela natureza do projeto, se fosse pra publicar assim eu gostaria mais de pegar uma plataforma como a heroku para hospedar, com aquele esquema de parar quando ninguém tivesse usando. Cinco segundos de startup dele não mataria ninguém.

Infelizmente a heroku não tem mais o plano free, mas eu achei alternativas interessantes como o adaptable.io e a qoddi. Só não coloco lá direto porque a db que é um arquivo json em disco, e essas plataformas que são efêmeras não suportam gravar dados em discos desse jeito. Mas se eu ver que tem acessos no projeos e que alguns candangos gostem de usar, eu poderia mudar a db pra usar um mongo da plataforma e deixar lá indefinidamente.

Então esse é a minha jornada com fatscript! Eu pretendo fazer mais posts com ela ainda, dessa vez explicando e mostrando ela mais. Esse daqui ela precisava dividir o espaço com o Linkzinho. Esse post também está no meu blog, então fiquem a vontade para assinar o feed Atom/RSS de lá se quiserem ver mais artes minhas.

Comentarios

gorpo85
pra quem curte php pode fazer um pequeno encurtador de links com essas pequenas linhas de código. abra num pc para teres um panorama completo e obteres o link da parte 2
sauloFerroMaciel
Ja pensou fazer ele sem framework para conseguir hospedar com mais facilidade? Eu estou nesse ramo , fazer projetos avançados só usando css hmtl e JS vanilla… Inclusive , tenho esse encurtando de link que fiz na pandemia : https://saulo-ferro-maciel.github.io/Link_Encurtado/
hagaka

Fala saulo! Achei muito legal o seu projeto, a mesma vibe que eu queria o meu (E até mais bonitinho!). Mas infelizmente não tá funcionando, parece que a API rebrandly.com que você usou tá fora do ar.

Mas respondendo você agora, não é nem uma questão de frameworks, o projeto é web vanilla também. O problema é que o backend dele é escrito nessa linguagem diferente e está usando uma DB em disco. Então até tem provedores que daria pra eu hospedar ele de graça - Como aqueles 2 exemplos que dei no post - mas eu precisaria mudar o estilo da DB para um MongoDB, por exemplo.

sauloFerroMaciel

Olá, Hagaka. Boa tarde!

Obrigado pelos elogios. A ideia do projeto Link_Encurtado era criar um front-end simples e atraente para todos os dispositivos. Utilizei uma API gratuita com um limite de uso de 350 links por mês. No entanto, meus amigos jornalistas utilizam meu encurtador para postar no X.com e no Instagram, o que faz com que o projeto atinja o limite e pare de funcionar temporariamente.

Sobre o seu banco de dados, entendi que, por ser uma linguagem pouco conhecida, não é fácil encontrar serviços de hospedagem compatíveis. Gostaria de sugerir uma solução alternativa: Eu e alguns amigos precisávamos transferir imagens para uma planilha. Criamos um HTML simples para anexar o link da imagem, que era enviado para uma planilha do Google. Um computador baixava a imagem do Google, anexava-a a outra planilha e a enviava para o setor correspondente. Todo esse processo de download e comunicação com o Google Planilhas era feito em Python.

Será que algo semelhante funcionaria para você?

hagaka

Eu acho que não exatamente. Eu não quero fazer ele depender totalmente de um serviço externo como backend, porque a ideia é usar o fatscript como backend. E a parte da linguagem não é exatamente um problema, porque bastante serviços aceitam deploys a partir de Dockerfiles, o problema fica mesmo na persistência do banco de dados, que ai sim cabe usar algum serviço externo para usar de DB

Mas assim, como eu disse, se eu ver que ele tem utilidade eu poderia fazer essa mudança. Mas tem tantas alternativas com visões parecidas, em uma pesquisa rápida eu achei esse bem legal aqui https://ll.fosscu.org/, que eu não sei se vale o esforço

sauloFerroMaciel

Entendi. Realmente, perderia o principal motivo: fastcript. Eu olhei o link fa FOSSCU e achei bem legal, acho que esse projeto se assemelha bem melhor com o que você está fazendo.

Boa noite.

HarukaYamamoto0

olha sobre a hospedagem do site se você realmente quiser manter ele, existe varios jeitos de manter ele onlline por exemplo o replit, glitch, railway, muitas opções de hosdagens gratuitas, se você quiser pode até mesmo hospedar usando o seu propio cell (só fazer um redirecionamento de portas no roteador e pronto)

eu gosto do Railway porque ele tem o plano que você só paga pelo que você usa, teve um tempo que eu deixei um jogo da cobrinha rodando lá por 4 meses e eu não tive nenhum custo, porque todo mês ele te dá 5 dolares de credito gratuito, e para um projeitinho simple isso é mais que o suficiente

hagaka

Bem, eu não fui tão fundo assim, mas eu não achei opções nessas plataformas. De novo no problema que eu disse dele ter uma ‘database’ em disco. Na railway pelo menos eu precisaria anexar um volume junto, e eu não acho que 5$ de crédito acomodaria ambos.

Sobre portas do roteador, eu só gostaria de adicionar que nem sempre é facil assim. Tem lugares que você tem um ip dinâmico e/ou está atras de uma CG NET (meu caso). Mas ainda existem serviços como a cloudflare tunnel que vai te permitir hospedar coisas em casa

Mas ainda assim, se eu ver necessidade, eu devo mudar o estilo da DB e ir em uma plataforma das que citei no post. É mais preguiça mesmo :P

saasteste
muito bom!

Para melhor experiência, acesse a postagem no tabnews!

Lá você poderá interagir com a publicação, e ver os comentario em tempo real