... lze najít zde:
... Microsoft doesn't claim, and never intended to claim, to have invented multi-part text messages (Short Message Service, SMS). Instead, the invention claimed by way of the patent-in-suit is a separate text message (SMS) lawyer that provides a service, via an interface, to multiple applications by enabling them to have long messages divided into sequences of shorter ones (with all of the necessary header information) ...
... It's an operating system patent. Since it doesn't cover multi-part text messages per se, it's not standard-essential. Motorola and Google can modify their products in many ways that will still allow them to send and receive multi-part text messages, and to properly display them and save them. But they will have to change the wy this is done. And by changing the operating system, there will be a need to modify any app that makes use of the patented technique. ...
Samozřejmě MS trolluje na směšných patentech, kdežto Motorola u žaloby ohledně patentů na H.264 hájí své oprávněné zájmy :D. Fakta jsou taková, že se firmy mezi sebou nakonec dohodnou, a budou licencovat. Funguje to v každém průmyslu, a v každém průmyslu jsou okolo toho občas tahanice.
Jak kde. Treba pocasi na Jupiteru nebo Venusi za moc nestoji. A na Venusi je asi i dost horko a ten dest kyseliny sirove nebo co to tam maji je dost blby pro plet. Planet, jako je Zeme, bude v nasi galaxii asi dost malo. Nebyt toho, ze se kdysi zeme srazila s jinou planetou, byly by zde podminky tak leda pro par bakterii, mozna brouku. Vznik planety, jako je Zeme, vyzaduje strasne mnozstvi nahod, ktere se urcite prilis casto nesejdou.
Pokud jsem si všimnul, tak z jejich "patentů" nezbylo ani to lejno. To je ale neštěstí, co? Mě to teda hrozně mrzí, jak si na nich právníci namastili kapsu. :-P
Tím kódem bych si zrovna v Gatesově případě nebyl tak jistý, v té době už existovala mikroprocesorová implementace BASICu, navíc později to M$ dělal častěji než běžně. Mimochodem, nebylo náhodou zvykem k minipočítačům dodávat manuály a dokumentaci včetně kompletních zdrojových kódů všech programů, tedy včetně interpretu tehdy velmi používaného BASICu? Také se tenkrát nepatentovala kdejaká 3,14čovina, jinak by Vilda Branka nemohl použít ani příkaz PRINT :-D
Proč ne? Oba ty systémy měly své místo. MS-DOS byl velmi nenáročný na HW, a běžel na super-levných strojích. Totéž platilo o Windows. Samozřejmě multitasking a bezpečnost byly řešené svérázně, ale u malého levného počítače to nikomu nevadilo. Unixy, VMS a podobné systémy byly určené pro centrální zpracování dat a používání více uživateli najednou, takže tam byly požadavky na multitasking a bezpečnost byly úplně jiné.
Nakonec v roce 1995 šokovaly Windows 95 řadu lidí vysokými HW nároky ve srovnání s DOSem a Windows 3.x. Přitom vystačily se 4-8MB RAM, kdežto pro Windows NT s jejich pokročilou architekturou bylo potřeba tehdy úděsných 12-16MB RAM.
Mozna, ze vam nevadilo, ze DOS a Widle furt padaji, ale me ano. Navic DOS byl natolik dementni, ze se do nej nedala ani nainstalovat tiskarna s vlastnim ovladacem a kazda aplikace to resila po svem. Worperfect fungoval s tiskarnami A, B, C a Y, zatimco Autocad zase s tiskarnami G, H a Q. Pri trose stesti se nektere tiskarny vyskytly v obou mnozinach, ale jak rostl pocet aplikaci, nadeje na uspech se snizovala. A pritom takove ZX Spectrum instalaci tiskarny umoznovalo, navzdory sve vetsi primitivnosti.
DOS mi nikdy nepadal. Event driven systémy jsou na chyby bohužel náchylnější, je výrazně náročnější pro ně psát. A v kombinaci s kooperativním multitaskingem to samozřejmě znamená riziko zatuhnutí celého systému.
DOS měl podporu textových tiskáren a spooler. Protože vůbec neřešil grafiku, neměl ani podporu grafiky na tiskárnách. Ovšem existovaly frameworky, které to vyřešily za vás. O ovladačích pro ZX Spectrum bych se rád dozvěděl víc, povídejte.
ZX Spectrum umoznovalo presunout nektere obsluzne rutiny na jinou adresu. Tam jste si pak mohl hodit ovladac, jaky jste chtel. Slusny ovladac byl navic napsan, jako relokovatelny, takze se dal hodit, kde jste zrovna mel misto. Lide takto treba bezne tiskli na dalnopisu, coz byla jedna z mala tiskaren, ktera se dala sehnat.
Presmerovani obsluzne rutiny by se dalo povazovat za primitivni API. Tiskne se prislusnym prikazem a je jedno, jestli tam je ZX Printer, dalnopis, nebo laserovka. Na osmibit celkem slusne. Skoda, ze DOS to nedotahl alespon tak daleko.
ZX Spectrum hlavně žádné API nemělo, stejně jako dlouhá řada tehdejších domácích počítačů. Sice bylo možné volat funkce firmwaru, ale provádělo se to prostě voláním rutin, u kterých se podařilo zjistit adresu a funkci (což vzhledem k velikosti kódu nebyl problém).
Hm, co jste s pomocí takového "ovladače" mohl tisknout? Nejspíš jen text. To jste mohl ale i v DOSu. A samozřejmě i v DOSu jste si mohl přesměrovat funkce pro tisk na tiskárně. BTW k tiskárnám se tehdy běžně dodávaly drivery pro WordPerfect, AutoCAD a další aplikace. A většina printer frameworků měla ovladače minimálně pro standardní jazyk jehličkových tiskáren ESC/P, většinou i pro PCL. Navíc jste měl k dispozici Windows, které uměly bitmapovou i vektorovou grafiku, samozřejmě i na tiskárnách.
> bylo možné volat funkce firmwaru, ale provádělo se to prostě voláním rutin, u kterých se podařilo zjistit adresu a funkci
On hlavne ZX Spectrum nemelo OS vpravem slova smyslu. Presto, minimalne v nekterych ohledech, bylo osmibitove Spectrum inteligentneji resene, nez setnactibitove PC s desetkrat tolik pameti. Spectrum byla hracka, ktera nabizela male prostredky, bylo ale videt, ze ten, kdo vytvoril jeho ROM, se celkem zamyslel nad tim, co delal a vytvoril tak pocitac, ktery se mohl naucit veci, na ktere nebyl puvodne zamyslen. A nejednalo se jen o volani rutin. To na ledacos nebylo potreba, stacilo presmerovat systemovou promennou. Bylo tak mozno tisknout jinde, nez na originalni tiskarne nebo zobrazovat text v 64 znacich. Stacilo natahnout novou rutinu a prikazem POKE ulozit jeji adresu na spravne misto a ona se uzivala namisto rutiny puvodni. Povazujte to za primitivni interface na drivery zarizeni. DOS mel byt v tomto mnohem inteligentnejsi. Bohuzel, delal na nem Bill Gates a ne pan Sinclair.
> A samozřejmě i v DOSu jste si mohl přesměrovat funkce pro tisk na tiskárně. BTW k tiskárnám se tehdy běžně dodávaly drivery pro WordPerfect, AutoCAD a další aplikace.
Jo, jenze od DOSu bych v tomto cekal o neco vice, nez od ZX Spectra. Navic ovladac nemel byt na WP nebo Autocad, ale na tu ci onu tiskarnu. Aplikace ji pak mela pouzivat podle svych potreb pres nejake API DOSu. Samozrejme, nelze ocekavat, ze by se neco takoveho objevilo v prvnich verzi DOSu, zejmena, kdyz na nem delal talentovany bastlir Bill Gates a ne nekdo, kdo vedel neco o operacnich systemech, ale mohlo to byt dodelane v dalsich verzich. Gates si mohl vsimnout, ze se jaksi premnozuji vselijake specializovane drivery pro ruzne aplikace a ze to asi znamena, ze jaksi ve specifikaci DOSu na neco zapomneli a bylo by dobre to honem dodelat. Ale to ne, DOS zustal skoro stejny az do konce, akorat v nekolika poslednich verzich se objevilo par veci, ktere Microsoft opraskl jinde (a bohuzel ne moc dobre), napriklad od Stackeru nebo Quarterdecku.
ZX Spectrum bylo pro spoustu lidí úžasným domácím mazlíčkem :), o tom žádná. A dělat věci, na které nebyl zamýšlen - to je přece úděl programovatelného počítače.
To není primitivní interface driverů zařízení. Jde o channel based I/O, stejně jako v DOSu, nebo na CP/M. Jak jsem psal, Spectrum nenabízelo žádné API, a prostě se volaly rutiny na známých adresách. Přitom i CP/M mělo API. DOS měl naopak regulérní API.
V DOSu se používalo spíš přesměrování interruptu 21H a filtrování volaných API. Jinými slovy nahradíte obsluchu INT 21H vlastním kódem, který při volání dané funkce zavolá příslušnou rutinu, jinak předá řízení na původní handler INT21H. Tyhle handlery se daly řetězit. Používaly to všechny TSR programy. Rozdíl je v tom, že můžete přesměrovat jakoukoliv funkci API, případně založit funkci novou. Takhle byla implementována podpora spousty věcí, včetně počítačových sítí a revolučního :) CD-ROMu. Domnívám se, že jste se hodně věnoval hackování ZX Spectra, a o hackování DOSu toho víte zatraceně málo.
Pokud jsem si všiml, tak ani daleko dražší UNIXy nenabízely - a mimochodem dodnes nenabízejí - žádné systémové drivery tiskáren. Byl tam jen device file pro tiskárnu, tedy "podpora" stejná jako v DOSu.
Gates si samozřejmě všimnul, že v DOSu není podpora grafiky, takže nechal napsat Windows se skvělým systémem API a metafiles (Linux by se ještě dnes mohl učit). Kdo se chtěl obejít bez Windows, musel si tisk grafiky dál řešit ve vlastní režii. Vyrábět printer driver framework pro DOS by bylo nesmyslné ve chvíli, strategickou platformou byly Windows.
Původní IBM PC nebylo primárně určené pro grafické aplikace, ostatně podobně jako většina tehdejších počítačů. Prostě mělo minimální podporu grafiky (volání BIOSu, která byla pro kreslení téměř nepoužitelná) a nulovou podporu pro tisk grafiky. Nadstavbou DOSu pro grafiku a multitasking byly Windows. Nějak mi uniká, proč by MS měl psát Windows jako nadstavbu pro grafiku a multitasking, a zároveň psát další API pro grafiku do DOSu. Ve vlastní implementaci pro DOS vývojářům nic nebránilo.
Podpora tisku grafiky by byla vytvářením API duplicitního k Win16. Navíc samotný tisk je jen částí problému. Bylo potřeba řešit věci jako fonty, jejich škálování, zobrazování grafiky. Takže bylo správné a logické to řešit systémově všechno dohromady pomocí nadstavby zvané Windows. A že mohly Windows přijít rychleji a už od začátku se širší funkcionalitou? To jistě mohly. Nicméně Microsoft má takovou tradici třech verzí. První verzi se všichni smějí, u druhé se přestávají smát, a se třetí MS převálcuje trh.
Treti verze byla stale k smichu. Widle zacaly byt jakztakz seriozni az s radou NT, rekneme prvni opravdu jakztakz pouzitelne bylu W2k. Nasledovaly XP, taktez pouzitelne, pak nepouzitelna Vista, nasledne 7, tedy mene hrozna Vista.
To, ze ta treti verze prevalcovala trh, bylo souhrnem okolnosti, mezi nez kvalita nepatrila.
To mi přijde jako dost subjektivní hodnocení. Windows 3.0 byly jako nadstavba DOSu pro grafiku velmi dobré. Nízké HW nároky, široká podpora HW, podpora grafiky velmi povedená. Samozřejmě řada NT, uvedená o tři roky později, to bylo jiné kafe. Ale na tehdejším běžném HW se to provozovat nedalo. Nakonec se přechod na řadu NT pro většinu uživatelů protáhl až k verzi WinXP, hlavně díky obrovské setrvačnosti trhu.
To jste zkoušel Windows 3.0 na nějakém počítači z garáže, mám pravdu? Osobně jsem viděl i počítače, na kterých třeba instalace tehdy nových Windows 95 ani nedoběhla :)
Windows 3.0 byly ještě pořád nadstavbou nad DOSem. Síť jela prostě pod DOSem, stejně jako přístup k disku. Ve Windows 3.1 se DOSový přístup k disku nahradil 32-bitovými drivery, ve Windows 3.11 se při startu Windows nahradil DOSový driver file systému pomocí 32-bitového kódu později použitého ve Windows 95.
DOSová síť byla nahrazena nativní sítí v edici Windows for for Workgroups (první verzí byly 3.1). Ve verzi 3.11 for Workgroups byly 32-bitové drivery a plný SMB redirektor.
BTW MS má můj obdiv, jak se dokázal vypořádat s přechodem z 16 bitů na 32 a z 32 na 64. Třeba Apple u toho pravidelně hodil uživatele (a vývojáře) přes palubu, stejně jako při přechodu na Intel.
Prdlajs, bylo to na tehdejsi dobu docela slusne mobo s i386. Znacku uz si nepamatuji, ale na me pozdejsi masine s mobem, ktere bylo rovnez docela slusne a bezproblemove a kde jsem mel i386 i s koprocesorem, to nebylo lepsi. Samozrejme, nemel jsem jedno ze tri certifikovanych mob, ale sestakova sunka nejhorsi kategorie to take nebyla.
Grafika byla Trident, tusim 8900. Na svou dobu take dost slusna.
Prestante porad omlouvat problemy Widli cizim zavinenim. OS, jako jsou Widle, ma stacit slusny, stabilni HW, ktery vyhovuje specifikacim. Pokud ale Widle nejsou OS pro PC, ale jen pro urcita PC, at MS zacne vyrabet HW, jako to dela Jabko.
1. Najít PC, které vyhovuje specifikacím, je dost obtížné.
2. MS dlouhá léta vydává speficikace a certifikuje HW, aby bylo jasné, na čem ty Windows vlastně mají fungovat. Pokud si koupíte necertifikovaný HW, nejspíš má spoustu problémů. Příklady některých těch problémů jsem uváděl. Jestli chcete další příklad, tak videokarty S3 Trio díky chybnému návrhu (dekódování adresy) způsobovaly problémy s modemem. Pod DOSem jste to nikdy nezjistil, protože jste nepoužíval grafickou akceleraci. Ve Windows modem najednou nefungoval, tedy pokud jste nepoužil (S)VGA driver. Takových vychytávek existují spousty. S příchodem nového systému se vždy ukáže, co všechno se výrobcům HW, driverů i SW podařilo dokopat, a jaké nesprávné předpoklady učinili při návrhu.
Jistě, přesměrování INT 21H používaly všechny TSR programy a hromada virů, a než se tenhle totem postupně prošel tam a zase zpátky, tak už proběhlo (a bylo ignorováno) pár dalších přerušení, a uživatel se divil proč to Pentium s DOSem 6.22 je viditelně pomalejší než 286ka o deset let dřív na 3.22. Jistě, vím že na IBM PC je také možné použít hromadu přerušení, však půlka z nich je rezervovaná pro (dnes určitě strašně důležitý) ROM BASIC :-D
Škoda že jste se také nevěnoval hackování Spectra, protože byste teď neblábolil nesmysly o regulérním API. On totiž systém ZX Spectrum těch přerušení používal hned několik, pro různé účely jako třeba řízení kanálů (oni totiž lidé co to vymýšleli měli zjevně velké zkušenosti z mainframů, na rozdíl od amatérských bastlířů co znali akorát mikroprocesorové hračky), a pro ostatní účely se používalo přímo volání rutin v paměti ROM, což je podstatně rychlejší varianta maloměkkých DLL. Programátor prostě nemusel tvořit nic co už v systému bylo obsažené, a překladač mu to jen slinkoval stejně, jako se dnes lepí třídy ve VB nebo C# (neboli ukradené a zprzněné Javě). A tohle bylo vyvinuté a perfektně funkční v době kdy v M$ ještě přeprodávali licencovaný Xenix, protože na vývoj vlastního operační systému se ani zdaleka nezmohli ;-)
Pro lepší pochopení toho, jak vůbec ZX Spectrum funguje, doporučuji prostudovat komentovaný výpis ROM (důkladně a několikrát), je na netu snadno dostupný i v češtině, a je to vedle knih Operační systémy od Madnicka a Donovana nebo Principů operačních systémů Pera Brinche Hansena jedna z nejlepších učebnic toho, jak se má tvořit software :-P
A k těm dál zmíněným třem verzím, není to náhodou parafráze na jistý Gándhího výrok? Řekl bych že jste právě ukradl jeho práva, protože jste použil část jeho "kódu" včetně API! To bohudík pro vás ale podle nejnovějšího rozhodnutí soudu nelze patentovat, protože kdyby šlo, nemohl by Gates použít ani ten PRINT, jak už jsem jednou psal...
Ale ale. Přesměrování INT21H na alternativní handler samo o sobě nic nestojí. Ten handler jen porovná číslo služby s tou, kterou nahrazuje či modifikuje, a pokud nenastane shoda, tak předá řízení původnímu handleru. Jde o pár instrukcí.
LOL. ZX Spectrum prostě nemělo API, a počítalo se primárně s použitím BASICu. Rutiny, jaksi neoficiálně používané aplikacemi psanými v ASM, se prostě volaly na adrese, na které při kompilaci firmwaru náhodou skončily. To je samozřejmě "nesmírně praktické", když se firmware jakkoliv změní. O možnosti běhu na jiném HW vůbec nemluvě. Podívejte se, jak bylo realizované API v CP/M. Do registru C nacpete číslo funkce API, a provedete CALL 5H. Vlastní rutina například pro otevření souboru může být umístěná kdekoliv, nezávisle na implementaci, nezávisle na verzi.
S těmi DLL to má být pokus o humor? Nebo jste ještě neslyšel o dynamickém linkování?
Kdyby byli velmi schopní programátoři, tak by jejich implementace IF-THEN-ELSE nebyla tak mimořádně tupá, že se nedá použít k ničemu jinému než skákání někam jinam. Když to srovnám se Sinclair BASICem, který ELSE ani neměl, ale zato se dala vložit celá sekvence příkazů na neomezeně dlouhém řádku... Skutečně neomezeně, protože pro délku každého řádku byly ve formátu vyhrazeny dva bajty, stejně jako u řetězců!
A co třeba tohle, jako malá ukázka jednoho Gatesova veledíla:
╩PRINďŁLISďĂRESEďăOINď▄E╬źANDOMIZ┼
Až vám dojde jakým způsobem jsou vyznačeny začátky a konce klíčových slov, možná přijdete i na to proč MS BASIC vždy patřil k největším a nejpomalejším, a také komu to tenkrát ukradl :-D
V implementaci MS BASICu, kterou jsem měl k dispozici, bylo možné oddělovat příkazy dvojtečkou. Proto bylo možné řetězit příkazy následující za klíčovým slovem THEN. Ovšem fakt nevím, jestli to uměl první BASIC od Microsoftu.
Z čeho ten string pochází, v jaké je znakové sadě, proč podle vás MS BASIC vždy patřil k největším a nejpomalejším, a komu to podle vás tenkrát Gates ukradl?
Schválně jsem se na ten patent podíval a je to normální trolovací patent: aplikace přes API předá dlouhou zprávu, systém ji rozkouskuje na jedné straně, odešle (včetně potvrzení doručení, pokud je aplikací vyžádáno), na druhé straně složí a aplikaci na druhé straně předá přes API již složené. Tohle by přece zvládl napsat každý junior programátor. Navíc samotné dělení a skládání zpráv to (jak sám píšete) nepatentuje.
Díval jsem se na claims. Rozdělování zpráv do UDP paketů, jejich odeslání po síti a nakonec složení do původních zpráv, přičemž pakety samozřejmě mohou přijít v libovolném pořadí či vůbec (úplně stejně jako ty SMSky), se dělá nejpozději v prváku. Implementovat ten převratný patent jako maturitní projekt, asi bych měl stále základní vzdělání.
Nevím, proč ten patent soud uznal, rozsudek jsem nikde nenašel, ale claims toho patentu neobsahují žádné složité algoritmy (třeba nějaké chytré buffery), jsou jenom neuvěřitelně ukecané. Je taky možné, že šlo i o nějaký jiný patent.
Na druhou stranu ta kauce 25 miliónů eur mi přijde hodně vysoká, takže si soud tím patentem asi moc jistý nebyl, jen Motorola nenašla dost důkazů, aby jej mohl rovnou zrušit. A to je problém současného patentního práva: ty trolovací patenty se strašně těžko a draze ruší, zatímco jejich zapsání je poměrně levné.
Přenos dlouhých zpráv přes UDP a SMS je prakticky totožný, mimochodem my jsme na MUNI dělali přenos právě přes SMSky (je tam ještě problém s kódováním, ale to je součástí SMS standardu).
Btw. ani bych se nedivil, kdyby Motorola používala podobné patenty ve válce proti Xboxu.
Pokud lze něco patentovat, tak je správné jak patentování takové věci, tak následné vymáhání těch patentů. Když firma patent nemá, bude ho mít někdo jiný, a vyjde to velmi draho. A vymáhání patentů je prostě způsob konkurenčního boje. Za mě je to jasné: firmy podají pár žalob, a ze soudních procesů nakonec vzejdou dohody. Funguje to tak v každém průmyslu.
1. Patentujete si danou věc. Patent nevymáháte či jinak vyprší -> ten samotný patent je nezvratitelný prior art.
2. To úmyslné zatěžování produkce trollovacími patenty beru jako podrážení konkurence, což by mělo být nelegální, protože to poškozuje volný trh. Stejně tak směňování trollovacích patentů slouží hlavně k uzavření trhu před novou konkurencí a to volný trh opět poškozuje (to je IMO taky hlavní důvod, proč se patenty tolik používají třeba ve farmaceutickém průmyslu, stejně všechny velké farmaceutické firmy vyrábějí všechno, k čemu získají výrobní postup, protože mají vzájemné obecné patentové dohody).
2. Samozřejmě že je to podrážení konkurence. Konkurence je o soupeření, to snad víte. Není mi ale jasné, jak ochrana investic pomocí patentů poškozuje volný trh. Volný trh poškodí, když firma investuje velké peníze do vývoje nové technologie, a někdo tu technologii snadno zkopíruje.
V prváku na střední? A co to je za školu?
Na vysoké už to beru (i když na VUT je implementace spolehlivé komunikace přes UDP až ve druháku).
Každopádně algoritmus je jednoduchý a tak nějak by mě ani nenapadlo si ho chránit...
Hele, má někdo patent na to, že auta mají volant (obvykle) vlevo? Že bych si to patentoval já... :D
Tohle je jen jeden z kroků v životě na cestě k poznání, co je to duševní vlastnictví, co je to duchovní bohatství, co je to duchovní chudoba, a jak se to projevuje.
Řekl bych, že to všechno spolu souvisí, má to svůj hluboký smysl, kterým je zkušenost, a je to prostě poučné pro každého, i když se to tak mnohdy nezdá a můžou se z toho kdekomu podle jeho založení zrovna zježit chlupy na nohou.