Jak se střelit do nohy v různých programovacích jazycích

Včera jsem na internetu objevil vtipné srovnání různých programovací jazyků založené na metafoře o „střílení sebe sama do nohy“. Přijde mi to celkem výstižné, aspoň tedy u těch jazyků, do kterých trochu vidím. O ostatních si dokážu udělat celkem slušný obrázek . Anglický originál je samozřejmě výstižnější, ale ti, kteří angličtinou příliš nevládnou, snad ocení můj volný překlad:

C Střelíš se do nohy.
C++ Náhodně vytvoříš tucet klonů sebe sama a všechny je střelíš do nohy. Poskytnutí lékařského ošetření není možné, dokud nezjistíš, kdo jsou bitové kopie a kdo jsou ukazatele na ně a neřekneš: „Támhleten jsem já.“
JAVA Potom, co naimportuješ knihovnu java.awt.right.foot.* a java.awt.gun.right.hand.* a naprogramuješ potřebné třídy a jejich metody, zapomeneš na to, co si sakra chtěl udělat.
Ruby Tvoje noha je připravena k odstřelu zhruba za pět minut, ale zrovna nemůžeš najít žádné místo, kam se střelit.
PHP Střelíš se do nohy pistolí, která je vyrobena ze součástek z tří set jiných pistolí.
ASP.NET Najdeš pistoli, rozpadne se na kousky. Dáš ji dohromady a znovu se rozpadne. Zkusíš použít .GUN Framework, ten se také rozpadne. Místo toho se píchneš do nohy.
SQL SELECT @ammo:=bullet FROM gun WHERE trigger = ‘PULLED’; INSERT INTO leg (foot) VALUES (@ammo);
Perl Střelíš se do nohy, ale nikdo nedokáže pochopit, jak jsi to udělal. Po šesti měsících už ani ty ne.
Javascript Jsi dokonalý, robustní a disponuješ bohatým uživatelským komfortem co se týče střelby do nohy. Bohužel zjistíš, že tvoje pistole má vypnutou střelbu.
CSS Pistoli držíš v jedné ruce a střelíš se do pravé nohy, potom přendáš pistoli do druhé ruky, aby ses střelil do levé nohy, ale uvědomíš si, že se pistole mezi tím proměnila v banán.
FORTRAN Střelíš se do každého prstu na noze, iterativně, dokud ti nedojdou prsty, potom pokračuješ další nohou. Když ti dojdou kulky, i přesto pokračuješ, protože nemáš možnost jak ošetřit výjimku.
Modula2 Jakmile si uvědomíš, že se v tomto jazyku v podstatě nedá nic naprogramovat, střelíš se pistolí do hlavy.
COBOL Použij REVOLVER COLT 45, NAMIŘ pistoli na NOHA.CHODIDLO, POTOM umísti PAŽE.RUKA.PRST na REVOLVER.SPOUŠŤ a STISKNI. POTOM vrať REVOLVER do POUZDRO. ZKONTROLUJ zda se nerozvázala tkanička u boty.
Lua Střelíš se do nohy. Potom se střelíš ještě jednou, protože poprvé si se sřelil tak rychle, že sis myslel, že si minul.
LISP Střelíš se do končetiny, ve které držíš zbraň, kterou se střelíš do končetiny, ve které držíš zbraň, kterou se střelíš do končetiny, ve které držíš zbraň, kterou se střelíš do končetiny, ve které držíš zbraň, kterou se střelíš do končetiny, ve které držíš…
BASIC Střelíš se do nohy pistolkou na vodu. Na velkých systémech pokračuješ, dokud nejsi po pás ve vodě.
FORTH Nohu v sobě střelíš.
APL Střelíš se do nohy a potom strávíš celý den zkoumáním toho, jak to napsat na méně znaků.
Pascal Kompilátor ti nedovolí střelit se do nohy.
SNOBOL Pokud se trefíš, střelíš se do levé nohy.
Pokud se netrefíš, střelíš se do pravé nohy.
Concurrent Euclid Střelíš se do cizí nohy.
HyperTalk Vlož první kulku z pistole do chodidla tvojí nohy.
Vrať výsledek.
Motif Strávíš den tvorbou UIL popisu tvé nohy, trajektorie, kulky a propracovaného ornamentu na slonovinou vykládané rukojeti pistole. Když se konečně dostaneš ke zmáčknutí kohoutku, pistole se zasekne.
Unix % ls
foot.c foot.h foot.o toe.c toe.o
% rm * .o
rm: .o: Neexistující soubor nebo adresář
% ls
%
Paradox Nejenom ty, ale i uživatelé se mohou střelit do nohy.
Revelation Budeš se moci střelit do nohy, jakmile zjistíš k čemu slouží náboje.
Visual Basic Střelíš se do nohy, ale užiješ si při tom tolik zábavy, že ti to vůbec nevadí.
Prolog Řekneš svému programu, že chceš, aby tě střelil do nohy. Program zjistí jak to udělat, ale syntaxe mu neumožní to zapsat.
Assembly Zkusíš-li se střelit do nohy, zjistíš že musíš nejdřív znovu vynalézt pistoli, kulku a svou nohu. Jakmile s tím jsi hotov, zmáčkneš kohoutek, pistole několikrát zapípá a potom selže.
370 JCL Pošleš svou nohu do IBM společně se 4000 stránkovým manuálem popisujícím, jak má být noha postřelena. O tří roky později se ti noha vrátí dozlatova propečená.
Python Snažíš se střelit do nohy, ale pořád trefuješ jen prázdné místo mezi dvěma prsty.
SAP ABAP/4
© Paulo
Projdeš všechny indické blogy a fóra, abys zjistil, jak se střelit do nohy. Stáhneš si manuál NOHA209_Col32.pdf, abys našel nejcitlivější místo. Projdeš si dokumentaci k pistoli v němčině. Střelíš se do nohy – jen abys zjistil, že SAP už tě střelil do nohy v roce 1998.

Související



Podělte se o tento článek s ostatními… Sdílet

Hrátky s výběrovou obrazovkou - průvodce

Po delší odmlce se vracím zase s jedním článkem na téma SAP. Bude se jednat o návrh programu s interaktivní výběrovou obrazovku (selection screen), na které se budou postupně zobrazovat další pole v závislosti na tom, jak byla vyplněna pole předcházející. Půjde tedy o jakéhosi jednoduchého průvodce.

Program sám o sobě nebude mít žádné praktické využití, jeho cílem je pouze demonstrovat řešení daného problému.

Ve výchozím stavu bude na výběrové obrazovce pouze blok s polem po zadaní roku. Vstup je třeba potvrdit známým tlačítkem Execute (klávesová zkratka F8)

Průvodce 1
Vstupní obrazovka po spuštění programu

Podle toho, zda uživatel zadá buď aktuální nebo jiný než aktuální rok, se zobrazí následující blok s polem pro zadání měsíce. U pole rok se zároveň znemožní editace a také se zobrazí tlačítko pro návrat k předcházejícímu kroku.

Průvodce 2
Vstupní obrazovka pokud byl zadán aktuální rok


Podělte se o tento článek s ostatními… Sdílet

Docházka & poznámky

Aplikace Docházka & poznámky je naprogramována v jazyku ABAP (Advanced Business Application Programming) a pro její běh je potřeba systém SAP R/3 (release 46C, ECC6 nebo vyšší).

Vstupní obrazovka Výpis docházky
Okno poznámky Poznámky

Program primárně slouží k evidenci docházky zaměstnanců. Vstupní data se zadávají přes tzv. výběrovou obrazovku, načtením z externího souboru (ve formátu textu odděleného tabulátory s následující strukturou: Jméno_uživatele, Datum, Příchod, Odchod) nebo přímo ve výpisu docházky/poznámek.


Podělte se o tento článek s ostatními… Sdílet

Sudoku Brain

Na internetu lze najít bezpočet prográmků určených luštitelům rébusů sudoku. Jsou napsané v různých programovacích jazycích (kuriózní je například tento, který staví na tabulkovém procesoru MS Excel), nabízejí různé funkce pro tvorbu a řešení soduku a uživatelsky jsou více či méně přívětivé. Já jsem ten svůj naprogramoval již před několika lety a dal jsem mu název Sudoku Brain, protože uměl hrubou silou vyřešit libovolné (řešitelné) sudoku během zlomku vteřiny.

Sudoku Brain
[kliněte na obrázek pro zobrazení v plné velikosti]

Před několika dny se mi dostal náhodou do ruky právě tento můj program z ledna roku 2006 a napadlo mě pár námětů na vylepšení. Nedalo mi to (snad se mi během dovolené zastesklo po programování) a pustil jsem se do jejich implementace.

Začal jsem s exportem rébusu do HTML. Pak jsem přidal možnost přepínat mezi režimem editace a luštění - režim editace je určen k vytvoření nového sudoku (u zadávaných symbolů se automaticky zvýrazňuje barva pozadí). V režimu luštění zůstávají uživatelem vyplněná políčka bílá, takže lze jednoduše rozlišit, původní a nově zadané symboly. Toto rozlišení se zapisuje i do souboru se sudoku (snadno čitelný tab delimited text formát), kde mají zahrané tahy prefix „$“.

A když už byl na světě režim luštění, tak jsem přidal ještě stopky, aby bylo možné luštit na čas. Dále jsem přidal dialog pro výběr barvy fixních políček a také možnost generovat náhodnou barvu při načtení rébusu. Postrádal jsem také nápovědu (volitelnou) ve formě navrhu přípustných kandidátů po najetí myší nad prázdné políčko - šup tam s ní. Na závěr jsem si nechal historii tahů, mezi kterými lze přepínat tlačítky zpět (undo) a opakovat (redo). A aby se to celé pěkně ovládalo, tak jsem nejpoužívanější příkazy umístil do tlačítkové lišty ve spodní části okna.

Stáhněte si Sudoku Brain 1.4 download.

PS: Program používá font Calibri, který je standardně ve Vistách nebo v MS Office 2007. Pokud nic z toho nemáte, můžete jej získat například naistalovaním Microsoft Office Compatibility pack.


Podělte se o tento článek s ostatními… Sdílet

Signature - nový design SAP GUI

Minulý týden jsem zaktualizoval svoje SAP GUI (frontend) na verzi 710, čímž jsem získal především nové grafické schéma Signature. Abych jej mohl používat, musel jsem ho nejprve ručně aktivovat v ovládacím panelu Windows. Jak se nové rozhraní liší o předešlého? Je třeba říci, že se jedná pouze o změny co do vzhledu, nikoliv co do funkčnosti. Proces vzniku schématu Signature podrobně popsal jeden z jeho autorů v tomto článku. Hlavní motivací autorů bylo sjednotit vzhled jednotlivých produktů společnosti SAP a zároveň zpříjemnit uživatelům práci s nimi.

Schéma Signature Schéma Signature
Schéma Signature Schéma Signature

Změny v designu uživatelského rozhraní jsou následující:

(viz první obrázek, zdroj: SAP)

  1. Zprávy ve stavovém řádku jsou animované a mají barvené pozadí.
  2. Logo SAPu se přemístilo z hlavičky do stavového řádku.
  3. Nový design vnitřního a vnější rámečku okna a ovládacích tlačítek.
  4. U pop-up oken se zobrazuje stín a jejich tlačítka jsou zarovnána k pravému okraji.
  5. Vizuální prvky jako posuvníky, tlačítka, atd. se přizpůsobují zvolené velikosti písma.
  6. Nový ukazatel aktivity na straně serveru.
  7. Nová barvená paleta.
  8. Tlačítka se zvýrazní při přejetí myší.
  9. Neaktivní okna lze zavřít bez nutnosti je nejprve aktivovat.

Co naopak zůstalo stejné, jsou veškeré ikony. Je to škoda, protože jinak je nový design dle mého názoru povedený a působí moderním dojmem, ale pixelové ikonky s celkovým „gradient“ stylem vůbec neladí a zasloužily by si facelift. Také mi přijde, že barevné ladění tématu je zbytečně moc světlé a při delší práci z toho začnou trochu bolet oči. A za největší nedostatek považuji nemožnost zvolit si odlišnou barvu schématu nezávisle pro každý systém (system dependent). Dříve jsem tak měl na vývojovém systemu nastavenou modrou barvu, na testovací zelenou a na produkčním červenou, takže bylo na první pohled jasné, kde jsem právě přihlášen. Nyní jsou barvy pevně dané a není možné je měnit.


Podělte se o tento článek s ostatními… Sdílet

Hromadný export programů ze SAPu

Občas může být užitečné zazálohovat si svoje ABAPovské programy (třeba když se rozhodnete sbalit si svých pár švestek a jít o dům dál ). V tom případě pravděpodobně narazíte na problém, že SAP nenabízí žádnou funkci nebo transakci, která by umožňovala programy hromadně vyexportovat. Naštěstí není nic snazšího než si takovou utilitku napsat.

Program ZEXPORT_PROGS

V ABAPu existuje několik užitečných příkazů pro manipulaci s programy (v sapí terminologii reporty) jako například READ REPORT, INSERT REPORT nebo DELETE REPORT (pro detailní info se podívejte do nápovědy). A právě příkaz READ REPORT <prog_name> INTO <i_tab> je ten, který se nám v tomto případě bude hodit, protože umí načíst zdrojový kód programu a vrátit jej v interní tabulce. Názvy jednotlivých programů si zase dohledáme v tabulce (respektive view) TRDIR. A potom už jenom stačí vysypat jednotlivé zdrojáky do souborů.


Související



Podělte se o tento článek s ostatními… Sdílet

V novém stylu

Konečně jsem si našel čas, abych si udělal trochu pořádek v kaskádových stylech pro tento blog. Původně existovalo několik souboru se styly (o velikosti asi 16 KB) - pro každou barevnou mutaci (skin) jeden, přičemž společné definice se v každém souboru opakovaly. To bylo dost nepraktické, zvláště když bylo potřeba nějakou společnou definici upravit. Neobešlo se to bez zásahu do všech souborů.

Nyní v hlavním souboru main.css (14 KB) udržuji obecné definice společné pro celý web a ostatní stylopisy (kolem 2 KB) obsahují pouze informace, které se týkají konkrétní barevné varianty. Výhody tohoto řešení netřeba zdůrazňovat.

A když už jsem si udělal pořádek ve stylech, tak jsem ještě doprogramoval vylepšený volič skinů a přesunul ho do lépe přístupné navigační části v pravém sloupci. Jako bonus jsem vytvořil růžový styl, což byla díky provedeným změnám otázka chvilky. Zřejmě jediná nevýhoda celého řešeni spočívá v tom, že funguje pouze se zapnutým JavaScriptem.

Doplněno: Jako bonus přidávám ještě rudý styl, aby bylo z čeho vybírat…

Související



Podělte se o tento článek s ostatními… Sdílet

Konverzní rutiny v SAPu

SAP logo

Určitě se vám již přihodilo, že jste při prohlížení databázové tabulky pomocí Data browseru (SE16) viděli v poli hodnotu, která tam ale ve skutečnosti vůbec nebyla (tedy byla tam hodnota jiná). Což se vám následně vymstilo při přímém zápisu dané hodnoty do podmínky v selectu, který vám pak zatvrzele odmítal cokoliv vrátit.

Tento rozdvojený pohled na data mají na svědomí tzv. konverzní rutiny (conversion routines/exits). Jedním z nejčastějších případů aplikace konverzních rutin jsou tzv. leading zeros, neboli úvodní nuly doplňované na začátek textových řetězců obsahujících výhradně číselné znaky tak, aby hodnota v poli byla zarovnána zprava. Kupříkladu pole materiál (MATNR), dodavatel (LIFNR), výrobní zakázka (AUFNR) atd. Obsahuje-li však pole i jiné než číselné znaky (např. materiál MAT123), pak k žádné konverzi nedochází.


Podělte se o tento článek s ostatními… Sdílet

< Novější 1 2 3 Starší >

© Pavel Jaroš [Sektor PJ] · Nahoru Nahoru