Netpbm ის ისტორია

Original web-page: http://netpbm.sourceforge.net/history.html

ჯეფ პოსკანცერი/Jef Poskanzer ([email protected]) გამოიგონა PBM ფორმატში გასული საუკუნის 80-იან წლებში, რათა უზრუნველყოს კომპიუტერული გრაფიკის სამყაროში საერთო, უპრობლემო ფორმატით, ლინგუა-ფრანკა, ბიტმაპი-ებისთვის. ფორმატი შეიქმნა საკმარისად მარტივი, რომ მას შეეძლო ელექტრონული ფოსტის გაგზავნა რაიმე სპეციალური ჩანართის გარეშე და გადარჩენილიყო ნებისმიერი თარგმანი და გადაწერა, რომ ელ.ფოსტის შეტყობინებამ შეიძლება გაიაროს და ადვილად ამოღდეს მეორე ბოლოდან. ეს იმ დროს, როდესაც ელექტრონული ფოსტის გაგზავნა მხოლოდ ტექსტური იყო; დანართები არ არსებობდა.

1988 წელს ჯეფმა დაარიგა Netpbm-ის წინამორბედი, Pbmplus, რომელიც თავმოყრილ იქნა სხვადასხვა ხელსაწყოებისთვის, რომლებიც მან შექმნა PBM ფაილებთან სამუშაოდ. ეს ძირითადად PBM–სა და სხვა არსებულ გრაფიკულ ფორმატებს შორის გადასაკეთებელი იარაღები იყო, რამაც შესაძლებელი გახადა ბაბელის კოშკი–ის სიტუაციის მოგვარება, რომელიც წარმოიშვა გრაფიკული ფორმატების გამრავლებით.

1988 წლის ბოლოს ჯეფმა დაამატა PGM და PPM ფორმატები და უამრავი სხვა ინსტრუმენტი Pbmplus-ს.

1991 წელს ჯეფმა დაამატა მრავალფეროვანი პროგრამები და კოდები, რომლებსაც მომხმარებლების საზოგადოება უწევდა წვლილი და შემდეგ შეწყვიტა Pbmplus-ის შენარჩუნება. ჯეფი ოფიციალურად უარს არ ამბობდა მასზე მხარდაჭერაზე, მაგრამ უბრალოდ ვერ შეძლო განახლებების გავრცელება ერთი წლის განმავლობაში 1991 წლის 10 დეკემბრის საბოლოო გამოსვლის შემდეგ.

მინიმუმ 1990 წელს, ბრენდონ ოლბერის კოორდინაციით, Pbmplus განაწილდა Usenet ჯგუფის comp.sources.misc მეშვეობით.

1988 წლიდან 1991 წლამდე პბმპლუსს გადაეცათ მრავალი გზა. მისი დიდი ნაწილი გადანაწილდა comp.sources.misc–ის საშუალებით. ასევე იყო დისტრიბუცია alt.sources- ე, ასევე X Window System-ის საშუალებით კოდის FTP სერვერებზე.

1993 წელს Netpbm შეიქმნა Pbmplus-ის ნაცვლად. Netpbm სხვა არაფერი იყო, თუ არა Pbmplus ის ახალი გამოცემა და დაასახელა იმ ფაქტის გამო, რომ მთელი მსოფლიოს მასშტაბით ხალხი შეინარჩუნებს პაკეტს ქსელის საშუალებით შესწორებების და დამატებების შეტანის გზით. ეს იყო დრო, როდესაც ასეთი მსოფლიო თანამშრომლობა ჯერ კიდევ ახალი იყო.

Netpbm აშკარად უგულებელყოფილი დარჩა მისი ბოლო რედაქტორის მიერ 1994 წლის მარტში გამოქვეყნებული ბოლო გამოქვეყნების შემდეგ. 1995 წლის სექტემბერში ენტონი თისენმა გამოაქვეყნა მისი არაოფიციალური განახლება, სახელწოდებით Netpbm-1mar1994.p1, ხოლო პასუხისმგებლობის უარყოფა მიმდინარე შენარჩუნებისთვის.

1995 წლის იმ გამოცემაში მოცემულ დოკუმენტაციაში ნახსენები იყო ორი განსხვავებული ოფიციალური საფოსტო სია, რომლებიც ეხებოდა პაკეტს, მაგრამ 1999 წლის აპრილისთვის ეს აღარ არსებობდა.

1999 წლის სექტემბერში ბრაიან ჰენდერსონს სჭირდებოდა მცირე შეცდომა Xbmtopbm–ში და მას სურდა ამ ინსტრუმენტების დაუსაბუთებელი ვერსიებისა და მოძველებული დოკუმენტაციის გაწმენდა. შემოწმების შემდეგ, ვინმეს ჰქონდა თუ არა პრეტენზია პაკეტზე საკუთრების უფლების შესახებ და ვერ იპოვა, ბრაიანმა აიღო კონტროლი და პასუხისმგებლობა Netpbm–ზე.

1999 წლის ნოემბერში, იგივე გააკეთა თორბჯორნმა რავნ ანდერსონმა, იგივე მიზეზით (აშკარად არ იცის ბრაიანის ნამუშევრების შესახებ) და ხელმისაწვდომი გახადა განახლებული ვერსია (1994 წლის გამოცემის საფუძველზე), როგორც აღწერილია http://sunsite.auc.dk/netpbm. ცოტა ხნის შემდეგ მან შეწყვიტა ძალისხმევა პბმლუსის ახალი ძალისხმევის პატივისცემით. ანდერსონის მუშაობის შესახებ ბრაიანმა არ იცოდა 2000 წლის მარტამდე.

პარალელურად, და ბრაიანისთვის უცნობი, ჯეფი მუშაობდა ახალ გამოსვლაზე თავდაპირველი სახელით Pbmplus და კვლავ ამტკიცებდა (ან იქნებ მაინც) რომ შეინარჩუნოს Pbmplus. მან მისი ბეტა ვერსიის შეზღუდული გამოცემა გააკეთა 1999 წლის ნოემბერში. აქტიურია საფოსტო სია [email protected]. ბრაიანმა ამ მცდელობის არსებობის შესახებ შეიტყო 2000 წლის მარტში. ამის შედეგი არასდროს ყოფილა გავრცელებული.

Pbmplus და Netpbm ერთ დროს X Window System–ის პროგრამული უზრუნველყოფის ნაწილი იყო, რომელიც განაწილებული იყო ftp.x.org–ზე (დირექტორია/პროგრამა). ბრაიანმა პასუხი არ მიიღო ftp.x.org-ის მფლობელის მოთხოვნით, Netpbm- სთან დაკავშირებული ფაილების გაწმენდის პერსპექტივის შესახებ. ამის ნაცვლად, ბრაიანმა Metalab-ი შექმნა კოდის ახალი სახლი. მაგრამ Metalab-ს საკმაოდ დაბალი ხარისხიც ჰქონდა და 2000 წლის აპრილში ბრაიანმა პაკეტის სახლი Sourceforge-ში გადაიტანა.

2000 წლის აპრილში ბრაიანმა გააფართოვა Netpbm ფორმატები, რათა სურათს ჰქონდეს 2 ბაიტი თითო ნიმუშზე, მაქსიმალური მაქსიმალური 65535, განსხვავებით ორიგინალ ფორმატებთან, რომელსაც შეიძლება ჰქონდეს მხოლოდ ერთი ბაიტი და მაქსიმალური მაქსიმალური 255. იგივე გაფართოება გაკეთდა ადრე სხვები, მაგრამ ზოგიერთმა მათგანმა განსაზღვრა ორი ბაიტი საპირისპირო თანმიმდევრობით. Netpbm-ის Sourceforge ვერსიამ დაადასტურა ბაიტის ბრძანება, რითაც დასრულდა ეს ბუნდოვანება.

2000 წლის აგვისტოში გამოჩნდა PAM ფორმატი. ამის შემდეგ დიდი დრო გავიდა, რომ საკმარისი პროგრამები და ბიბლიოთეკის რუტინები ყოფილიყო, რომ ეს სასარგებლო ყოფილიყო. ის ჯერ კიდევ ძლივს არის ცნობილი და გამოყენებული; PAM უფრო მიმართულება ან ფილოსოფიაა, ვიდრე პრაქტიკული ინსტრუმენტი. PAM სთან ერთად მოვიდა ბიბლიოთეკის რუტინების მთელი რიგი, როგორც კლასიკური PNM, ასევე PAM ფორმატის სურათების დამუშავებისთვის. ახალი “პამ” რუტინის გამოყენება უფრო ადვილია.

2002 წლის ივნისში ბრაიანმა პაკეტის რეორგანიზაცია მოახდინა. მანამდე ეს პაკეტის ევოლუციის ასახვა იყო ორგანიზებული: ჯერ მხოლოდ PBM, შემდეგ დაემატა PGM, შემდეგ PPM და შემდეგ მრავალფორმატიანი PNM პროგრამები. იყო ოთხი ცალკეული ქვერეგულარული ბიბლიოთეკა და თითოეული PBM, PGM, PPM და PNM კომპონენტები დამოუკიდებელი იყო მოგვიანებით გამოგონილი კომპონენტებისგან. დოკუმენტაცია იყო ტრადიციული გვერდების სახით. გამოცემა 10-ში პაკეტი ინტეგრირებული იყო ერთ მონოლითურ პაკეტში. არსებობდა ერთი ქვეპროგრამის ბიბლიოთეკა და საწყისი ხე იყოფა პროგრამის ფუნქციის მიხედვით, ვიდრე Netpbm-ის რომელ თაობასთან იყო დაკავშირებული. ყველა დოკუმენტაცია გადაკეთდა HTML-ში.

2004 წლის იანვარში Netpbm–მა დაიწყო სწორხაზოვანი/გამაზე მორგებული ნიმუშის მნიშვნელობის მიღება. ბევრ პროგრამაში ყოველთვის იყენებდნენ გამა-კორექტირებულ მნიშვნელობებს Netpbm სურათებისგან, თითქოს ისინი სწორხაზოვანი ყოფილიყვნენ, რამაც არასწორი და საკმაოდ საშინელი შედეგები გამოიღო. Netpbm 10.20 მოიტანა pm_[un]gamma709() ბიბლიოთეკის რუტინული და pnm_readpamrown() და ა.შ. Netpbm სურათების მანიპულირებისთვის მცურავი წერტილის 0..1 ნიმუშის მნიშვნელობებში, როგორც წრფივი, ასევე გამა – მორგებული.

2006 წლის აგვისტოში ბრაიანმა გადახედვა გათავისუფლების სტრატეგიას ისე, რომ სამი სტაბილიზირებელი განშტოება (სუპერ სტაბილური, სტაბილური და მოწინავე) ჰქონდა ერთი (სტაბილური) ნაცვლად, ბევრად უფრო ახლანდელი არამდგრადი ფილიალი (განვითარება), და დაარიგა ყველა მათ Sourceforge–ის ახალი დივერსია კოდის მართვის სისტემის მეშვეობით. მან შეწყვიტა გათავისუფლება ტარბოლი-ის საშუალებით, გარდა სუპერ სტაბილური ვერსიისა. ამ არატრადიციული გამოშვების მექანიზმის მიზანი იყო მიმდინარე გამოშვებებში შეცდომების შემცირება, ხოლო შემნახველისთვის სამუშაოების შემცირება. ბოლო “მოწინავე” გამოცემა, რომელსაც ტარბოლი ჰქონდა, იყო 10.34.

ადამიანი, ვინც ბრაიანის გარდა, ყველაზე მეტი წვლილი შეიტანა Netpbm-ში მისი აღორძინების შემდეგ, არის აკირა ვ ურუშიბატა/Akira F Urushibata. აკირას პირველი კონტრიბუცია იყო ფაქსის ფორმატის გადამყვანი pbmtog3 დაფიქსირება 2004 წელს. მისი ყველაზე მნიშვნელოვანი შემდგომი წვლილი იყო PBM დამუშავების კოდის ძირითადი სიჩქარე, ბაიტისა და ტექსტის დამუშავების გამოყენებით, სადაც კოდი ადრე მუშაობდა ინდივიდუალურ ბიტებზე. მან მრავალი PBM პროცესორი გამოიყენა, რომლებიც იყენებენ ბიტიანი მასივის მანიპულირების სპეციალურ ინსტრუქციებს (MMX/SSE).

2012 წლის ბოლოს, აკირამ შექმნა საცდელი საშუალებები (ნაპოვნია   საცავის ხის საცდელ დირექტორიაში, რომელსაც იყენებენ ჩეკის შემოწმებით). მას შემდეგ ისინი შეინარჩუნა და ჩაატარა რეგულარული რეგრესიული ტესტირება ახალი კოდისთვის.


ბრაიან ჰენდერსონის მიერ/Bryan Henderson, სან ხოსე, კალიფორნია; [email protected] ბოლოს გადაამოწმეს 2019.02.25.