Open leonardohipolito opened 7 years ago
Olá, Leonardo.
Legal, gostei da sua iniciativa! Não repara muito no meu código js não : ) por que eu tinha que fazer uma refatoração lá para retirar algumas redundâncias, mas ainda não tive tempo :/ Ultimamente fiz umas melhorias no core que vou colocar em produção em breve.
O arquivo data.txt está organizado da seguinte maneira: data{"date":"2016-10-25 11:20:59.482688","project":" gestao_gabinete","tech":"sublime-settings","time":302,"key":277}
Com esses dados eu faço cruzamentos para fazer as médias do tracker, e ainda tem outras possibilidades que podem ser mensuradas como por exemplo: ter com base na hora o período que o usuário tem mais rendimento, ex: manhã, tarde ou noite.
Se tiver alguma dúvida sobre os gráficos ou outros dados, pode ficar a vontade para perguntar.
Atenciosamente,
2017-11-10 10:24 GMT-02:00 Leonardo Hipolito notifications@github.com:
Olá, estou interessado em converter a interface para Vue para ter mais flexibilidade na criação de filtros e outros, poderia explicar os dados armazenados no arquivo data.txt?
— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/victoreduardobarreto/CodeTimeTracker/issues/3, or mute the thread https://github.com/notifications/unsubscribe-auth/AHPEsxiVsCk-VOVuVlkmoLjhmAuduhJaks5s1EBugaJpZM4QZfDA .
Show, vou começar a implementação em Vue hoje mesmo, provavelmente devo mudar o data.txt para um formato no tipo json. Logo publico as novidades :)
Mano, só tem um lance ai, o arquivo data.txt não é interessante mudar, pois se mudar o formato nome etc... as pessoas que tem o tracker instalado irão perder seus dados. A não ser que fizer um mecanismo de migração desses dados existentes para o formato novo saca!?
Exatamente, é um problema que tambem irei enfrentar, por isso estou pensando em fazer um meio de migrar os dados sem perda. Irei ver isso após terminar a interface do vue, tambem estou pensando em futuramente fazer um servidor web para armazenar os dados para que os clientes possam acompanhar o progresso, algo similar ao que alguns plugins pagos fazem
Posso te ajudar a produzir essa migração de dados para outro formato. Uma coisa que me veio a cabeça agora foi que no inicio do projeto eu tentei gerar um json, mas isso era ruim de manter e implicava no desempenho do tracker, escrever no txt ficou muito mais leve, mas essa informação estou apenas compartilhando com você, pode ficar a vontade para testar ai.
Pow a ideia do servidor é muito boa, eu tinha pensado nisso, mas nunca coloquei para frente a ideia. Um colega comentou comigo o lance do servidor para concorrer com wacatime, mas de forma grátis já que o waka e pago, fiquei de pensar na ideia, mas a minha ideia inicial mesmo era do tracker versionar seus dados no git de forma que não ficasse centralizado, cada usuário com seu dado e tal, mas isso ficou muito distante ia dar muita mão de obra para implementar.
Tenho um servidor disponível, não sei se você dispõe dessa estrutura, mas se quiser podemos fazer um teste piloto lá.
Realmente, não sei como vai ser o desempenho com o json, mais irei testar como vai ser. Notei que o tamanho do arquivo data.txt tende a crescer muito já que se repetem muitos dados, por isso estou propondo uma nova estrutura com o arquivo json.
{
"projects": [{
"project": "Console",
"tech": {
"php": [{
"date": "2017-05-10 17:38:03.559503",
"time": 590,
"key": 46
}, {
"date": "2017-05-10 17:38:03.559503",
"time": 590,
"key": 46
}]
}
}, {
"project": "Automator",
"tech": {
"php": [{
"date": "2017-05-10 17:38:03.559503",
"time": 590,
"key": 46
}, {
"date": "2017-05-10 17:38:03.559503",
"time": 590,
"key": 46
}]
}
}]
}
Em relação ao servidor, vamos trabalhar nele sim, assim que fizer a parte do vue vou começar a trabalhar em um sistema pra isso.
A ideia é interessante, além de ficar organizado tende a reduzir um pouco o arquivo. A parte que tende a tirar a performance é na hora que o tracker vai abrir o arquivo, ele tem que dar um parse para ler o JSON enquanto isso os dados ficam alocados na memoria até que ele manipule o dado e salve-o novamente em um arquivo. Dependendo do tamanho do arquivo isso pode ser um problema, por exemplo, meu arquivo ja esta com quase 2 anos, e eu trabalho com sublime todos os dias. A não se que faça um esquema de vários arquivos, tipo, um arquivo para cada mes ou bimestre etc... talvez tire um pouco da carga.
Vou avaliar as duas possibilidades, principalmente com o desenvolvimento do servidor, já não vai ser necessário que todos os registros fiquem salvos na máquina
I had to translate this with google translate. I think this discussion was very interesting. Here a few thoughts:
I believe performance will take a hit the more data.txt grows. You could split the files in folders per day. But I guess it's harder to process that on client side or you write a second file, which keeps track on the daily tracking files. The right thing would be to write all tracking data in a local sqlite database. Then run a query against the db and return json data just like mentioned above.
Sqlite would be perfect, because it's just a file. No need to setup anything. But I don't know how to query the db from the web interface. Some sort of python script?
What do you think?
Hello Friend. As I commented in your issue new ideas are welcome, I believe that a legal way to do this would be even with a database, we could use even a non-relational database, I believe that in the backend (python) will not have problems, I am very inclined to get all those ideas and upgrade. I'm going to create a new branch for this, and anyone who wants to help will be welcome. I appreciate all the suggestions.
Estou trabalhando na versão 2 do plugin com o vue, atualmente a interface esta bem simples, ja que minha preocupação inicial é criar os componentes e deixar tudo rodando. Se tiver ideia de alguma interface... em alguns dias devo fazer o pull da nova interface
Olá, estou interessado em converter a interface para Vue para ter mais flexibilidade na criação de filtros e outros, poderia explicar os dados armazenados no arquivo data.txt?