Skocz do zawartości


Zdjęcie

Przeniesienie informacji o kontaktach z plików ini do sqlite

kontakty sqlite

  • Zaloguj się, aby dodać odpowiedź
12 odpowiedzi w tym temacie

Ankieta: Przeniesienie informacji o kontaktach z plików ini do sqlite (7 użytkowników oddało głos)

Twoja opinia

  1. Głosowano Jestem za (6 głosów [85.71%])

    Procent z głosów: 85.71%

  2. Obojętne mi to (0 głosów [0.00%])

    Procent z głosów: 0.00%

  3. Jestem przeciw (1 głosów [14.29%])

    Procent z głosów: 14.29%

Głosuj Goście nie mogą oddawać głosów

#1 Shinigami

Shinigami

    Bywalec

  • Użytkownik
  • 125 postów

Napisano 2015.02.23, 01:25

Z racji tego że AQQ ma obsługę sqlite to można by to wykorzystać i zrobić porządek w informacjach o kontaktach i wrzucić je do jednego pliku sqlite. Aktualnie wszystko siedzi w ini i do tego w różnych miejscach:

1. Data\Contacts\ - i w środku pełno ini z informacjami o każdym kontakcie (do tego "zakodowanych" w base64, po kiego grzyba to ja nie wiem)

2. Session.xml który (tak mi się wydaje) funkcjonuje jako taki cache z najważniejszymi informacjami, żeby nie czytać wszystkich ini za każdym razem od nowa

3. Data\Avatars\ - i w środku pełno ini z informacjami o każdym avatarze


Użytkownik Shinigami edytował ten post 2015.02.23, 11:11


#2 Beherit

Beherit

    In Sorte Diaboli

  • Wtyczkopisarz
  • 5023 postów

Napisano 2015.02.23, 10:49

Nie wiem czy to dobry pomysł, parę moich wtyczek przestanie wówczas działać (korzystają z danych w plikach INI kontaktów), a pewnie Oconnel nie zrobi łatwego dostępu do nich zaś obsługi SQL do wtyczek nie mam zamiaru dodawać :P Więc jeżęli już to zmieniać to na pewno od razu z rozszerzeniem SDK o możliwość łatwego odczytu danych (nick, płeć, awatar, data urodzin itp).



#3 Shinigami

Shinigami

    Bywalec

  • Użytkownik
  • 125 postów

Napisano 2015.02.23, 11:16

No w sumie miałbyś problem wtedy, ale swoją drogą to bym nawet nie pomyślał że w SDK nie ma funkcji pozwalających na odczytywanie info o kontaktach. Po prostu zaproponowałem to żeby zrobić jakiś porządek w folderu z profilem i przestać używać archaicznych ini.

 

EDIT: Zauważyłem że Deadmaster wspominał o tej samej kwestii (szukałem wcześniej po słowie "kontakty" i wyszukiwarka forum nie znalazła jego tematu bo jest tam użyte słowo "kontaktach" :P)

http://forum.aqq.eu/...ktury-archiwum/


Użytkownik Shinigami edytował ten post 2015.02.23, 11:18


#4 jojo87

jojo87

    Niedoszły wtyczkopisarz

  • Użytkownik
  • 1352 postów

Napisano 2015.02.23, 11:38

No dobra, a co jeżeli jeden taki plik skopie się? Wtedy będziemy mogli mieć problem z większą ilością kontaktów. Jeżeli obecnie coś takiego się stanie to będzie dotyczyło tylko jednego kontaktu. Podobnie jest z archiwum. Dlatego nie jestem przekonany co do tego pomysłu.

#5 Beherit

Beherit

    In Sorte Diaboli

  • Wtyczkopisarz
  • 5023 postów

Napisano 2015.02.23, 12:03

No w sumie miałbyś problem wtedy

 

Ja bym nie miał problemu, miałby go osoby, które korzystają z moich wtyczek korzystających z tych plików INI :)



#6 Shinigami

Shinigami

    Bywalec

  • Użytkownik
  • 125 postów

Napisano 2015.02.23, 12:21

No dobra, a co jeżeli jeden taki plik skopie się?

 

W sumie nie wiem jak wygląda odporność plików sqlite na uszkodzenia, prawdopodobieństwo że się uszkodzi jest raczej znikome jeżeli w AQQ jest poprawnie zaimplementowana obsługa sqlite. Jedyne co mi przychodzi do głowy to w trakcie zapisu odcięcie zasilania (ale m.in. na takie sytuacje jest chyba robiony journal) lub uszkodzenie nośnika (np. bad sektory). Przy okazji, taka mała mądrość życiowa: ludzie dzielą się na dwa rodzaje, tych co robią kopie zapasowe i tych co zaczną je robić :P



#7 Deadmaster

Deadmaster

    Hellraiser

  • Moderator
  • 2085 postów

Napisano 2015.02.23, 12:37

@Beherit: Moja propozycja tutaj podlinkowana o zmianie struktury archiwum, którą popierałeś i tak zakłada to o czym mówi ta propozycja To po prostu powinno być w bazie danych i już. Oczywiście Oconnel powinien również w SDK udostępnić odpowiednie funkcje do odczytu tych danych. Bazy anych nie po to nazywamy relacyjnymi, żeby z tych relacji nie skorzystać...
  • Bartek Sz. i Shinigami lubią to

#8 Oconnel

Oconnel

    AQQ Developer

  • Właściciel
  • 4619 postów

Napisano 2015.02.24, 09:05

Wiele osób w tym wątku - ponownie - wysnuwa pochopne wnioski, że to podstawy relacyjnych baz danych i sieje oburzenie :) Trzeba jednak znać pełny obraz sytuacji i wówczas wyjaśnienie jest zupełnie inne i proste. Aby coś napisać w tym temacie musimy się cofnąć trochę w czasie. Do chwili w której właściwie powstało AQQ jako takie. Wówczas korzystaliśmy z jednego pliku bazodanowego w którym proponowane przez Was rozwiązanie miało wówczas miejsce. Po jakimś czasie sytuacja się jednak zmieniła - ze względu na to, że wiele osób traciło kontakty/archiwum gdy plik ulegał uszkodzeniu z jakiejkolwiek przyczyny. Wówczas wprowadzono podział na pliki INI w przypadku kontaktów. Rozproszone dane i szybki zapis (pliki INI są maciupkie) zupełnie rozwiązały kwestie uszkodzeń. Taka sytuacja trwała latami przez które zdążyły powstać spore ilości wtyczek które z tych plików korzystają w taki czy inny sposób. No i teraz do docieramy do obecnej sytuacji. Przecież przy zmianie archiwum na nowy typ mogłem zrobić dodatkową tabelę i wrzucić tam kontakty napiszę ktoś. A no nie mogłem i dlatego nie zostało to wykonane. Gdybym to zrobił przestała by pracować duża część wtyczek. Nie zamierzam strzelać w kolano ani sobie ani w kolano AQQ bo wtyczkopisarzy na tą chwilę jest tyle co kot napłakał a nikt z nich nie poprawi wszystkich wtyczek które z plików INI korzystają. Zostało przekonwertowane to co mogłem przekonwertować - czyli archiwum wiadomości (i nie tylko) - wszystko co i tak było przechowywane w pojedynczych plikach. Ale nie dotyczyło to kontaktów. Tak, obecne rozwiązanie jest nadmiarowe dla bazy danych archiwum natomiast nie ma to zupełnie żadnego znaczenia jeżeli chodzi o jego prędkość działania. Ma znaczenie tylko dla jego wielkości pliku który znajduję się na dysku - ale i to tak nie gra to większej roli w dzisiejszych czasach. Dlatego ta propozycja nie będzie wprowadzona.


MyPortalYouTubeTwitter54slty.png

#9 Beherit

Beherit

    In Sorte Diaboli

  • Wtyczkopisarz
  • 5023 postów

Napisano 2015.02.24, 09:35

Jak zwykle głupoty. Może najpierw sprawdź co za wtyczki korzystają z tych danych. Pewnie jest ich mało i są to moje albo Witusia. Potem dodaj funkcje do SDK, my zaktualizujemy dodatki i będziesz miał już wolną drogę do zmiany. Trzeba po prostu chcieć, Ty jak zwykle widzisz masę problemów bez możliwości obejścia.
  • kr2ysiek lubi to

#10 Shinigami

Shinigami

    Bywalec

  • Użytkownik
  • 125 postów

Napisano 2015.02.24, 10:50

Gdyby od dawna w SDK były funkcje do pobierania informacji z wizytówek kontaktów, no to raczej nie byłoby problemu takiego. Przypuszczam że wcześniej nie trzymałeś kontaktów w sqlite tylko w jakimś innym formacie (własna implementacja?), dlatego bywały uszkodzenia tego pliku w jakichś nietypowych sytuacjach. Myślę że można by cały proces implementacji podzielić na dwie części, Najpierw do SDK dodać funkcję odczytywania informacji z wizytówek, wtedy osoby piszące wtyczki miały by czas na zaktualizowanie ich, potem te wtyczki by się zaktualizowały w AQQ u wszystkich, no i wtedy prosta droga bez wybojów do implementacji kontaktów w sqlite, ale dopiero jak już będzie pewne że nie robią się dziwne uszkodzenia pliku z archiwum.


Użytkownik Shinigami edytował ten post 2015.02.24, 11:29

  • Beherit, kr2ysiek i Bartek Sz. lubią to

#11 Beherit

Beherit

    In Sorte Diaboli

  • Wtyczkopisarz
  • 5023 postów

Napisano 2015.02.24, 11:12

Jedna zasadnicza sprawa = duża ilość małych plików do w praktyce wolniejszy dostęp do dysku. Jeden plik SQLite = szybszy dostęp do danych, mała podatność na uszkodzenie, bo w AQQ 1.x kiedyś tam był własny wymysł Oconnela.



#12 Deadmaster

Deadmaster

    Hellraiser

  • Moderator
  • 2085 postów

Napisano 2015.02.24, 11:45

Gdybym to zrobił przestała by pracować duża część wtyczek. Nie zamierzam strzelać w kolano ani sobie ani w kolano AQQ bo wtyczkopisarzy na tą chwilę jest tyle co kot napłakał a nikt z nich nie poprawi wszystkich wtyczek które z plików INI korzystają.

To są trzy wtyczki i na pewno zostaną poprawione... Gdyby w SDK AQQ od początku były funkcje do pobierania tych danych z wizytówki, to problemu by nie było. Błędne założenia nie mogą wstrzymywać postępu
 

Ma znaczenie tylko dla jego wielkości pliku który znajduję się na dysku - ale i to tak nie gra to większej roli w dzisiejszych czasach.

Co ja Ci o dyskach SSD mówiłem? Kumpel w netbooku wolnego miejsca na dysku ma 7 GB - jemu też powiesz, że kilkadziesiąt zbędnych megabajtów na dysku nie stanowi problemu? Ma to również znaczenie ze względu na osoby trzymające profile w chmurze, gdzie po prostu marnuje się miejsce. Optymalizacja zawsze ma znaczenie! Jak i wykorzystywanie potencjału narzędzi z których się korzysta. Korzystasz z relacyjnych baz danych w których... nie masz relacji <facepalm>


  • kr2ysiek i Bartek Sz. lubią to

#13 Gość_Dejvus_*

Gość_Dejvus_*
  • Gość

Napisano 2015.02.26, 16:18

Drogi OC, bez obrazy, ale w przeciwieństwie do Twoich wytworów bazy SQLite są bardzo odporne na uszkodzenia, a w razie takowego można je łatwo naprawić... Aplikacje na Androida trzymają w nich większość danych, jak i sam system. Aplikacje takie jak Firefox trzymają w nich wszystkie swoje dane. I co? Jakoś nie "gubią: nic... Przeniesienia kontaktów itd do bazy danych nie zwiększyłoby ryzyka ich utraty, a przyspieszyło i ułatwiło dostęp do nich. Nie byłoby w tedy też problemu z dopisaniem stosownych funkcji w SDK (serio nie można przez nie odczytywać danych kontaktów? Przecież to śmiechu warte...)

 

Co do nadmiarowości bazy danych, szkoda komentować. Wybacz, ale Twoje podejście jest śmieszne. Robisz to "na odwal się". Baza jest nieoptymalna i zrobiona niezgodnie ze sztuką... A wiesz, jak jest z zasadami sztuki? Sąsiadce "elektryk" zamiast położyć przewód ochronny montując nowe gniazda mostkował "bolce" z neutralnym. "Panie, po co się męczyć, przecież działa". Się zdziwił, jak jakiś czas później upalił się przewód neutralny na przyłączu (nota bene, dzięki genialnej technice montażowej tego "artysty") i na obudowie między innymi lodówki oraz pralki pojawiło się napięcie sieciowe dostarczając właścicielce niemiłych wrażeń. Przykład nieco skrajny, ale to dokładnie to samo. Fuszerka. "Po co ruszać, przeca działa, gdzie tam się s****", dobrze jest". :)







Również z jednym lub większą ilością słów kluczowych: kontakty, sqlite

Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych