Náhodné výkřiky

vložil Radek Červinka 18. března 2011 23:00

Pár věcí co je delší než než limit Twitteru, ale na druhou stranu nestojí za samostatný článek.

Delphi Component Design

Když jsem psal o knížkách pro Delphi tak jsem si postěžoval, že jedinou knihu co jsem chtěl (a chci) mít je Danny Thorpe: Delphi Component Design. Danny je jeden z autorů Delphi a jeho kniha je legendární.

Cca minulý týden ale Danny ohlásil, že chystá reprint "dead tree" edice ($25) a navíc i elektronickou verzi (cca $10). To druhé je pro mne jasná volba.

Project "Cooper"

RemObjects se vážně snaží. Nejprve Delphi Prism, nyní Project "Cooper". "Cooper" je preview nového kompilátoru varianty Object Pascalu použité v Prism do Java byte kódu nebo do Dalvik (neboli kříženec Javy co běží v Androidu).

video: Project "Cooper"

Mimochodem (ukradeno z Twitteru): Knock knock. "Who's there?"…………….(very long pause)……………."Java."

To mi připomíná, že někdy v době Delphi 3 právě Danny na svém tehdejším blogu prozradil, že existoval projekt kompilátoru Delphi do java bytecode na kterém pracoval. Originální blog už neexistuje - zde je kopie.

Delphi J-code – Fall 1997
This was a research project to explore the feasibility of compiling Delphi
source code into a different machine code format – Java byte code. This was 
not about translating Delphi source to Java source, but about viewing the Java 
realm as two distinct entities: the Java source 
code language, and the Java Virtual Machine. Delphi J-code was going 
for the machine, not the language. 
Much later, Microsoft’s J++ would do exactly the opposite: J++ went after 
Java the language, ignoring or undermining the Java Virtual Machine.

I worked on implementing the core RTL (System.pas and SysUtils.pas), compiler
“magic” functions, and compiler-RTL glue code. Oh ya, and a Java 
implementation of the Win32 variant semantics. Yowza.

This research project was demonstrated at a technology briefing at BorCon98. 
From the feedback at that conference, it became clear that expectations 
for the product concept ran much higher than we could 
afford to invest in the project. 
The market wanted more than just a command line Delphi compiler that 
emitted Java byte code. The project was shelved in favor of devoting 
R&D resources into more promising and lucrative endeavors.

Zajímavé ne? Zvláště v dnešní době.

Debugger

Ještě k seriálu o ladění. Vzpomněl jsem si ještě na jeden trik. Když jsem psal testovací debug visualizér a ptal jsem se na Stack Overflow ohledně rychlosti volání API Delphi pro vyhodnocení výrazu, odpověděl mi Barry Kelly (tj. jeden z compiler teamu) a upozornil mne, že integrovaný vyhodnocovač debuggeru je mnohem silnější nástroj než se zdá a zvládá i komplikované data.

To mne přivedlo k tomu, že by se dalo využít. Např. když člověk používá TStringList a chce zobrazit (nebo kopírovat) rozumně text, který obsahuje (teď už je to díky právě debug vizualizérům bez problémů), tak většinou to bylo obtížné (samé #13#10…) a třeba u SQL dotazů to bylo na tlamku to všechno odstraňovat.

Pokud ale v debuggeru do okna pro zkoumání proměnné zadáte např. ShowMessage(dataset.SQL.Text) tak se zobrazí SQL dotaz v informačním okně, ale v kontextu laděného programu. Samozřejmě mimo ShowMessage můžete zadat libovolnou proceduru, která existuje v laděném programu. Z dialogového okna se dá text přes CTRL+C kopírovat přímo do schránky (resp. je to vlastnost myslím Windows 2000+).

Pozn.: Ve starších Delphi je ale ShowMessage implementováno vlastním dialogem (resp. já používám vždy vlastní proceduru, takže si ohledně stavu ShowMessage nejsem vůbec jist), takže je lepší mít v programu implementovánu (jako já) vlastní proceduru na bázi něčeho takového

procedure MsgOk(const s: String);
begin
  Application.MessageBox(PChar(s),
    PChar(Application.Title), MB_OK);
end;

což pak v rámci debuggeru můžete zavolat. On ten debugger totiž Váš výraz nejdříve přeloží v paměti a pak výsledek zavolá (což byl také důvod, proč můj vizualizér byl pomalý - mimochodem dostal jsem radu, že mám zkusit co nejvíce věcí sloučit dohromady).

Něco komponent

lua4delphi umožní milovníkům skriptování v Lua integraci do Vašeho Delphi programu.

DelphiOnRails - application/web server na bázi MVC a REST (hodně lidí to považuje za velmi zajímavý projekt).

Hodnocení článků

Jsem rád, že sem tam někdo dole klikne na hodnocení (moc mne to potěší), ale i když je to tam napsané, tak opakuji - 1 hvězdička znamená nejhorší a 5 nejlepší, tj. není to jako ve škole.

Prosím, pokud se Vám článek nelíbí, zkuste mi do komentáře zároveň napsat co jsem udělal špatně. Píši to pro lidi a zajímá mne Vaše reakce. Díky moc.


Nabízíme Delphi školení na různá témata, primárně ve Vaší firmě.

Tagy: , ,

Novinky

Komentáře

22.3.2011 16:24:55 #

jozef

Poznamka k tomu stringlistu: ja obvykle pouzivam v okne Evaluate/Modify stringlist.SaveToFile(.....). Ked som to pouzil po prvykrat, hned som si uvedomil, ze podobnym sposobom si mozem zobrazit aj obsah datasetov, a spravil som si procedurku ShowDataset ktora zobrazi Dataset v DBGride. Teraz ked si chcem pozriet vysledok nejakej manipulacie nad datasetom, nastavim breakpoint, otvorim okno Evaluate/Modify, do Expression napisem napr. ShowDataset(qry).

jozef

Komentování ukončeno

Naše nabídka

Partial English version.

MVP
Ing. Radek Červinka - Embarcadero MVP
profil na linkedin, Twitter:@delphicz

Nabízím placené poradenství a konzultace v oblasti programování a vývoje SW.
Dále nabízíme i vývoj speciálního software na zakázku.

Neváhejte nás kontaktovat (i ohledně reklamy nebo burzy práce).

Pokud chcete podpořit tento server libovolnou částkou, můžete použít PayPal. Moc děkuji.

Delphi Certified Developer

O Delphi.cz

Delphi je jediný moderní RAD nástroj podporující tvorbu nativních aplikací pro platformu Win32, Win64 , Mac OSX a na iPhone a Android (s výhledem na další platformy díky FireMonkey) na současném trhu (včetně Windows 8.1).

V současnosti je světová komunita přes dva miliónů vývojářů.

Delphi.cz je nezávislý portál pro uživatele Delphi. Portál není koncipován pro úplné začátečníky, i když i ti se zde nebudou nudit, ale spíše na programátory, kteří již něco znají a chtějí své znalosti dále rozvíjet a sledovat novinky.

Anketa

Poslední komentáře

Comment RSS