Witam!
Poszukuję programisty, który wykona dla mnie zakres prac składający się z dwóch etapów, ale będący jedną całością i dopiero za tak wykonany projekt w pełni jestem wstanie zapłacić.
Zacznę może jednak od począdku. Posiadam program, który łączy z sobą dwa pliki tekstowe zawierające bloki zerojedynkowe pod pewnym kątem (po prostu je weryfikuje na podstawie Spotykania się jedynek w wierszach względem kolumn i po wpisaniu w nim parametrów wyrzuca tylko te - już połączone - bloki w pliku wyjściowym), które spełniają właściwe kryteria.
Program, który obecnie posiadam został napisany tak, aby w pełni wykorzystywał potencjał mojego komputera dlatego poprzedni programista otrzymał inforację, że posiadam procesor Intel i9-9980XE (18 Core, 36 Thread), płytę główną ASUS Tuf Mark X299 oraz kartę graficzną ASUS AMD Radeon RX 7900 XTX TUF OC Graphics Card - 24GB, i mam Windowsa 10. Dlatego ten program podczas pracy (obliczeń) wykorzystuje 35 wątków jednocześnie, aby maksymalnie przyspieszyć jego efektywność.
Muszę tutaj zaznaczyć, że mój pierwszy (pierwotny) program wykonywał i nadal wykonuje te same obliczenia (na plikach tekstowych), ale znacznie wolniej niż obecny. Dlatego z biegiem czasu poprosiłem drugiego programistę, aby napisał mi program (robiący to samo), tylko na plikach w foramcie binarnym i taki też został dla mnie wykonany. Gdzieś wtedy wyczytałem, że programy na plikach binarnych pracują znacznie szybciej niż na plikach tekstowych i faktycznie jego prędkość była 10-cio krotnie szybsza a pliki przed przekształceniem w pliki tekstowe są 3 razy mniejsze. Po prostu ten drugi program o nazwie "Bloki" przekształca pliki tekstowe w format binarny i wówczas w takim formacie binarnym można je łączyć. Oczywiście ten program "Bloki" może przekszałcać pliki naprzemniennie czyli zamieniać pliki tekstowe na binarne i odwrotnie. A to dlatego, abym mógł widzieć jego rozwiązania w postaci tekstowej, dlatego pliki te otwieram przez WordPada i wówczas widzę jego rozwiązania.
Te dwa programy o których teraz piszę były dla mnie wykonane jakieś 17 lat temu i wówczas tamci programiści pytali się mnie czy potrzebuję do nich specyfikację, ale ja będąc (wtedy jak i teraz) laikiem w tych sprawach nie przywiązywałem do tego wagi i po prostu nie sądziłem, że jest to ważne więc o to nie zabiegałem i do nich ich specyfikacji nie posiadam.
Widząc, że moje obliczenia nadal nie przynoszą wymiernych efektów poprosiłem kolejnego programistę, aby wykonał dla mnie taki sam program pracujący na plikach tekstowych z uwzględnieniem moich parametrów sprzętowych. I taki też został wykonany o nazwie "SpotykanieJedynek", oczywiście jego obliczenia są nieporównywalnie szybsze od tego napisanego w systemie binarnym (jest blisko 100 razy szybszy), jednak rozmiary plików do połączenia czasami dochodzą do kilku Terabajtów, w zależności od liczby bloków w pliku - który może posiadać wartość liczby np. 12-sto cyfrowej w zależności od wielkości bloków w pliku - to ich obliczenia czasami trwają po kilka dni.
Pragnę tylko powiedzieć, że pliki mogą być ogronych rozmiarów a ich czas przetwarzania przez dotychczasowy program "SpotykanieJedynek" zajmuje czasami kilkadziesiąt godzin, a chciałbym to skrucić przynajmniej 10-cio krotnie, bądź jeszcze szybciej, tak jak to czyni mój stary program "Bloki" w systemie binarnym, który jest szybszy 10-cio krotnie od mojego pierwotnego programu.
Obecny mój program "SpotykanieJedynek" wykonuje te operacje z prędkością dochodzącą do 1000 000 bloków na sekundę, a chciałbym aby ten program po przerobieniu go na system binarny wykonywał te obliczenia przynajmniej 10-cio krotnie szybciej. Czyli jeżeli obecny program wykonyje moje pewne obliczenia załóżmy w przeciągu 120 godzin to obecny program po przerobieniu na system binarny powinien taką samą pracę wykonywać w niespełna 12 godzin.
Przechodząç do meritum - zakres prac będzie się składał z dwóch części:
Część A: Program do konwersji plików (Konwerter)
1. Program ma być prostym narzędziem z trzema głównymi przyciskami:
- Jeden o nazwie „Wprowadź plik tekstowy” do wyboru pliku tekstowego w celu zamiany go na binarny.
- Drugi o nazwie „Wprowadź plik binarny” do wyboru pliku binarnego z celu zamiany z powrotem na plik tekstowy, oraz
- Trzeci o nazwie „Zaznacz folder wyjściowy” – tam gdzie już będzie się pojawiał plik przekształcony. W tym miejscu chciałbym zaznaczyć, aby program przy przekształcaniu plików z binarnych na tekstowe i odwrotnie zawsze używał nazwy oryginalnej pliku przekształcanego w folderze wyjściowym tak jak to czyni mój stary program wówczas nie muszę ponownie podpisywać przekształconego pliku tylko jego nazwa jest taka sama jak oryginalny plik przekształcany.
2. Pliki tekstowe po konwersji z formatu binarnego powinny być identyczne z oryginalnymi plikami tekstowymi.
Część B: Modyfikacja programu „Spotykanie Jedynek”
3. Po modyfikacji, główna logika łączenia bloków („Spotykanie Jedynek”) ma pozostać dokładnie taka sama jak obecnie, a jedyną zmianą ma być praca na plikach binarnych zamiast tekstowych.
Czyli głównym założeniem jest to, aby program pracował przynajmniej 10 razy szybciej z plikami binarnymi niż jak to robi obecnie z plikami tekstowymi.
Jeżeli będzie Pan zainteresowany współpracą, to wówczas prześlę Panu dwa pliki, jeden o nazwie "Opis do programu", gdzie będzie opisany cały proces działania programu "SpotykanieJedynek", oraz drugi o nazwie "Wyjaśnienie", gdzie została opisana zasada weryfikacji bloków pod kątem Spotykania się jedynek w wierszach względem kolumn, a także sam program "SpotykanieJedynek". Po zapoznaniu się z tymi infotmacjami będę chciał, aby Pan napisał mi czy nadal jest Pan zainteresowany współpracą a jeśli tak to ile by to kosztowało i jaki byłby czas realizacji tego projektu.
Proszę kontaktować się ze mną poprzez mojego maila ###premium### w razie jakichkolwiek pytań bądź niejasności służę radą.
Pozdrawam. Damian.
Korzystając z serwisu Zleca.pl wyrażasz zgodę na stosowanie plików cookies. Dowiedz się więcej.
X