abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 12:00 | IT novinky

    Íránští protirežimní aktivisté si všímají 30% až 80% ztráty packetů při komunikaci se satelity služby Starlink. Mohlo by se jednat o vedlejší důsledek rušení GPS, kterou pozemní přijímače Starlinku používají k výpočtu polohy satelitů a kterou se režim rovněž snaží blokovat, podle bezpečnostního experta a iranisty Amira Rashidiho je ale pravděpodobnější příčinou terestrické rušení přímo satelitní komunikace Starlinku podobnou

    … více »
    NUKE GAZA! 🎆 | Komentářů: 0
    dnes 00:55 | IT novinky

    Evropská komise (EK) zvažuje, že zařadí komunikační službu WhatsApp americké společnosti Meta mezi velké internetové platformy, které podléhají přísnější regulaci podle unijního nařízení o digitálních službách (DSA). Firmy s více než 45 miliony uživatelů jsou podle DSA považovány za velmi velké on-line platformy (Very Large Online Platforms; VLOP) a podléhají přísnějším pravidlům EU pro internetový obsah. Pravidla po

    … více »
    Ladislav Hagara | Komentářů: 4
    dnes 00:44 | IT novinky

    Tržní hodnota technologické společnosti Alphabet poprvé v historii přesáhla čtyři biliony dolarů (83 bilionů Kč). Stalo se tak poté, co Apple oznámil, že bude na poli umělé inteligence (AI) spolupracovat s dceřinou firmou Alphabetu, společností Google.

    Ladislav Hagara | Komentářů: 2
    včera 11:11 | Zajímavý článek

    Nové číslo časopisu Raspberry Pi zdarma ke čtení: Raspberry Pi Official Magazine 161 (pdf).

    Ladislav Hagara | Komentářů: 0
    včera 10:44 | Nová verze

    Po delší době vývoje vyšla nativní linuxová verze virtuálního bubeníka MT-PowerDrumKit 2 ve formátu VST3. Mezi testovanými hosty jsou Reaper, Ardour, Bitwig a Carla.

    balda | Komentářů: 1
    11.1. 21:33 | Nová verze

    Desktopové prostředí Budgie bylo vydáno ve verzi 10.10. Dokončena byla migrace z X11 na Wayland. Budgie 10 vstupuje do režimu údržby. Vývoj se přesouvá k Budgie 11. Dlouho se řešilo, v čem bude nové Budgie napsáno. Budgie 10 je postaveno nad GTK 3. Přemýšlelo se také nad přepsáním z GTK do EFL. Budgie 11 bude nakonec postaveno nad Qt 6.

    Ladislav Hagara | Komentářů: 0
    11.1. 13:00 | Humor

    OpenChaos.dev je 'samovolně se vyvíjející open source projekt' s nedefinovaným cílem. Každý týden mohou lidé hlasovat o návrzích (pull requestech), přičemž vítězný návrh se integruje do kódu projektu (repozitář na GitHubu). Hlasováním je možné změnit téměř vše, včetně tohoto pravidla. Hlasování končí vždy v neděli v 9:00 UTC.

    NUKE GAZA! 🎆 | Komentářů: 3
    11.1. 03:00 | Nová verze

    Byl vydán Debian 13.3, tj. třetí opravná verze Debianu 13 s kódovým názvem Trixie a Debian 12.13, tj. třináctá opravná verze Debianu 12 s kódovým názvem Bookworm. Řešeny jsou především bezpečnostní problémy, ale také několik vážných chyb. Instalační média Debianu 13 a Debianu 12 lze samozřejmě nadále k instalaci používat. Po instalaci stačí systém aktualizovat.

    Ladislav Hagara | Komentářů: 0
    10.1. 03:00 | Komunita

    Na stránkách Evropské komise, na portálu Podělte se o svůj názor, se lze do 3. února podělit o názor k iniciativě Evropské otevřené digitální ekosystémy řešící přístup EU k otevřenému softwaru.

    Ladislav Hagara | Komentářů: 6
    9.1. 19:44 | Zajímavý software

    Společnost Kagi stojící za stejnojmenným placeným vyhledávačem vydala (𝕏) alfa verzi linuxové verze (flatpak) svého proprietárního webového prohlížeče Orion.

    Ladislav Hagara | Komentářů: 5
    Které desktopové prostředí na Linuxu používáte?
     (8%)
     (5%)
     (0%)
     (9%)
     (21%)
     (3%)
     (5%)
     (3%)
     (11%)
     (49%)
    Celkem 385 hlasů
     Komentářů: 10, poslední dnes 12:33
    Rozcestník

    Python ve městě Ruby

    8.4.2007 19:45 | Přečteno: 1810× | Z mého života | poslední úprava: 27.7.2007 16:13

    Jelikož jsem v pátek večer něměl vplánu žádnou akci, tak jsem zůstal doma a sledoval telku. Nejdřív jsem se díval na Prime na Nově a říkal si, že až to skončí tak půjdu spát bo sem šel v sobotu makat. Ale nakonec mě uchvátili ukázky na následující film. No víc než ukázky mě spíše uchvátil název. Film se jmenoval Python.

    Tak jsem se na něho podíval. Nebyl sice nic moc, ale nejhorší to nebylo. Nejvíce mě uchvátilo to, že to bylo o stvůře, která se jmenovala Python a odehrávalo se to v blízkosti městečka Ruby :-D(Asi už jsem trochu s těch počítačů zešílel, když si všímám takových kravin).

    Když jsem si šel lehnout začal jsem přemýšlet o tom, že poslední dobou o ruby sliším hodně, a že jsem jej ještě nezkusil. Tak mě napadlo, že by nebylo naškodu zkusit si vněm něco malého napsat, a také jsem chtěl zjistit jak moc se liší od pythonu.

    Jako priklad jsem se rozhodl, že přepíšu jeden svůj prográmek v pythonu a qt4 do ruby a qt4. Chvíli mi trvalo než jsem našel potřebný PKGBUILD pro můj arch. Po instalaci ruby-qt4 jsem se jal díla. Netrvalo to dlouho a progrímek byl předělanej. Moc mě překvapilo jak jednoduše to šlo.

    Na první pohled se kód příliš neliší, ale pozornějším čtením si všimneme, že se ruby od pythonu liší v hodně směrech. Pro porovnání uvádím oba zdrojové kódy.

    Ruby:

    #!/usr/bin/env ruby
    
    $KCODE = 'UTF-8'
    
    require 'Qt4'
    
    class VedlejsiDialog < Qt::Dialog
    	slots 'engine()'
    	def initialize()
    		super()
    		vrstva = Qt::VBoxLayout.new(self)
        	@prvkyOkna=[
          	typDrevaPopisek = Qt::Label.new("Typ Dřeva:"),
          	typDreva = Qt::ComboBox.new(self),
      		delkaKladyPopisek = Qt::Label.new('Délka klády(m):'),
          	delkaKlady = Qt::LineEdit.new(self),
          	prumerKladyPopisek = Qt::Label.new('Průměr klády(cm):'),
          	prumerKlady = Qt::LineEdit.new(self),
          	tlacitkoVypocti = Qt::PushButton.new('Vypočti')
        	]
        	typDrevaList = ['smrk','borovice - kura',
        								'borovice - borka','buk','dub']
        	@prvkyOkna[1].addItems(typDrevaList)
        	@prvkyOkna[6].connect(@prvkyOkna[6], SIGNAL( "clicked()" ),
        		self, SLOT( "engine()" ) )
        	@prvkyOkna.each { |x|
        		vrstva.addWidget(x)
        	}
    	end
      	def ziskatPecka()
        	peckaHash={'smrk' => [5.7723e-01, 6.8968e-03, 1.3123e+00],
        		'borovice - kura' => [2.5017e-01, 1.9147e-03,1.7866e+00],
        		'borovice - borka' => [1.7015e-00, 8.7620e-03, 1.4568e+00],
        		'buk' => [-4.0877e-02, 1.6634e-01, 5.6076e-01],
        		'dub' => [1.2474e+00, 4.2623e-02, 1.0623e+00]}
        	return peckaHash[@prvkyOkna[1].currentText()]
      	end
      	def engine()
        	dsk = @prvkyOkna[5].text().to_f
    		pecka = ziskatPecka()
    		pi = 3.141592654
    		l = @prvkyOkna[3].text().to_f
    		vysledek = ((dsk - (pecka[0] + pecka[1] * 
    			(dsk ** pecka[2])))**2 * pi * l) /40000 
    		Okno.pridatHodnotu([@prvkyOkna[3].text(),@prvkyOkna[5].text(),
    			@prvkyOkna[1].currentText(),(vysledek * 100).round.to_s])
      	end
    end
    
    class HlavniOkno < Qt::MainWindow
      slots 'odeber()'
    	def initialize()
            super()
              hlavniWidget = Qt::Widget.new(self)
              vrstva = Qt::GridLayout.new(hlavniWidget)
              pridatTlacitko = Qt::PushButton.new('Přidat')
              odebratTlacitko = Qt::PushButton.new('Odebrat')
              celkemLabel = Qt::Label.new('Celkem:')
              @celkemLineEdit = Qt::LineEdit.new()
              @celkemLineEdit.insert('0')
              @celkemLineEdit.setDisabled(true)
              @kubaturaList = Qt::TreeWidget.new()
              @kubaturaList.setColumnCount(4)
              headerLabels = ['Délka(m)', 'Průměr(cm)', 'Typ dřeva', 'Kubatura']
              @kubaturaList.setHeaderLabels(headerLabels)
              @kubaturaList.setRootIsDecorated(false)
              vrstva.addWidget(@kubaturaList,0,0,1,4)
              vrstva.addWidget(celkemLabel,1,0,1,2)
              vrstva.addWidget(@celkemLineEdit, 1, 1,1,2)
              vrstva.addWidget(pridatTlacitko, 2,0,1,4)
              vrstva.addWidget(odebratTlacitko, 3,0,1,4)
              setCentralWidget(hlavniWidget)
              setWindowTitle('Výpočet kubatury')
              pridatTlacitko.connect(pridatTlacitko, SIGNAL('clicked()'),
                HlOkno,SLOT('exec()'))
              pridatTlacitko.connect(odebratTlacitko, SIGNAL('clicked()'),
                self ,SLOT('odeber()'))
    	end
    	def pridatHodnotu(retezecList)
              @tmpPrvek = Qt::TreeWidgetItem.new(@kubaturaList, retezecList)
              aktualizuj()
    	end
    	def aktualizuj()
            tmpCount = 0
            0.upto(@kubaturaList.topLevelItemCount() - 1) { 
                |i| tmpCount = tmpCount + (@kubaturaList.topLevelItem(i).text(3)).to_i 
            }
            @celkemLineEdit.clear()
            @celkemLineEdit.insert((tmpCount/100.0).to_s)   
    	end
    	def odeber()
       		@kubaturaList.takeTopLevelItem(@kubaturaList.indexOfTopLevelItem(@kubaturaList.currentItem()))
       		aktualizuj()
     	end
    end
    App = Qt::Application.new(ARGV)
    HlOkno = VedlejsiDialog.new()
    Okno = HlavniOkno.new()
    Okno.show()
    App.exec()
    

    Python:

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    
    from PyQt4 import QtCore, QtGui # import QtToolkit class
    import sys
    import math
    app = QtGui.QApplication(sys.argv)
    
    
    class vedlejsiDialog(QtGui.QDialog):
        def __init__(self):
            QtGui.QDialog.__init__(self)
            #hlavniVrstva = QtGui.QWidget(self)
            vrstva = QtGui.QVBoxLayout(self)
            typDrevaPopisek = QtGui.QLabel(u'Typ Dřeva:', self)
            self.typDreva = QtGui.QComboBox(self)
            typDrevaList = [u'smrk', u'borovice - kůra', u'borovice - borka', u'buk', u'dub']
            self.typDreva.addItems(typDrevaList)
            delkaKladyPopisek = QtGui.QLabel(u'Délka klády(m):', self)
            self.delkaKlady = QtGui.QLineEdit(self)
            prumerKladyPopisek = QtGui.QLabel(u'Průměr klády(cm):')
            self.prumerKlady = QtGui.QLineEdit(self)
            tlacitkoVypocti = QtGui.QPushButton(u'Vypočti')
            app.connect(tlacitkoVypocti, QtCore.SIGNAL('clicked()'), self.engine)
            vrstva.addWidget(typDrevaPopisek)
            vrstva.addWidget(self.typDreva)
            vrstva.addWidget(delkaKladyPopisek)
            vrstva.addWidget(self.delkaKlady)
            vrstva.addWidget(prumerKladyPopisek)
            vrstva.addWidget(self.prumerKlady)
            vrstva.addWidget(tlacitkoVypocti)
            #self.setCentralWidget(hlavniVrstva)
            #self.setLayout(vrstva)
            self.setWindowTitle(u'Vypočet kubatury')
        def ziskatPecka(self):
            if self.typDreva.currentText() == u'smrk':
                p0 = 5.7723e-01
                p1 = 6.8968e-03 
                p2 = 1.3123e+00
                pecko = [p0, p1, p2]
                return pecko
            elif self.typDreva.currentText() == u'borovice - kůra':
                p0 = 2.5017e-01
                p1 = 1.9147e-03 
                p2 = 1.7866e+00
                pecko = [p0, p1, p2]
                return pecko
            elif self.typDreva.currentText() == u'borovice - borka':
                p0 = 1.7015e-00
                p1 = 8.7620e-03 
                p2 = 1.4568e+00
                pecko = [p0, p1, p2]
                return pecko
            elif self.typDreva.currentText() == u'buk':
                p0 = -4.0877e-02
                p1 = 1.6634e-01 
                p2 = 5.6076e-01
                pecko = [p0, p1, p2]
                return pecko
            elif self.typDreva.currentText() == u'dub':
                p0 = 1.2474e+00
                p1 = 4.2623e-02 
                p2 = 1.0623e+00
                pecko = [p0, p1, p2]
                return pecko
        def engine(self):
            dsk = float(self.prumerKlady.text())
            pecka = self.ziskatPecka()
            Pi = math.pi
            L = float(self.delkaKlady.text())
            vysledek = ((dsk - (pecka[0] + pecka[1] * (dsk ** pecka[2])))**2 * Pi * L) / 40000
            #vysledekOkno.setText(unicode(str(int(round(vysledek * 100, 0))), "utf-8"))
            okno.pridatHodnotu([self.delkaKlady.text(), self.prumerKlady.text(),
            self.typDreva.currentText(), unicode(str(int(round(vysledek * 100, 0))), "utf-8")])
            #vysledekOkno.show()
    
    class HlavniOkno(QtGui.QMainWindow):
        def __init__(self):
            QtGui.QMainWindow.__init__(self)
            hlavniWidget = QtGui.QWidget(self)
            vrstva = QtGui.QGridLayout(hlavniWidget)
            pridatTlacitko = QtGui.QPushButton(u'Přidat')
            celkemLabel = QtGui.QLabel(u'Celkem:')
            self.celkemLineEdit = QtGui.QLineEdit()
            self.celkemLineEdit.setEnabled(False)
            #print celkemLineEdit.isModified()
            self.celkemLineEdit.insert(u'0')
            self.kubaturaList = QtGui.QTreeWidget()
            #self.kubaturaListPrvek = []
            self.kubaturaList.setRootIsDecorated(0)
            self.kubaturaList.setColumnCount(4)
            headerLabels = [u'Délka(m)', u'Průměr(cm)', u'Typ dřeva', u'Kubatura']
            self.kubaturaList.setHeaderLabels(headerLabels)
            vrstva.addWidget(self.kubaturaList,0,0,1,4)
            vrstva.addWidget(celkemLabel,1,0,1,2)
            vrstva.addWidget(self.celkemLineEdit, 1, 1,1,2)
            vrstva.addWidget(pridatTlacitko, 2,0,1,4)
            self.setCentralWidget(hlavniWidget)
            #self.setLayout(vrstva)
            self.setWindowTitle(u'Vypočet kubatury')
            app.connect(pridatTlacitko, QtCore.SIGNAL('clicked()'), hlOkno.exec_)
        def pridatHodnotu(self, retezecList):
            self.tmpPrvek = QtGui.QTreeWidgetItem(self.kubaturaList, retezecList)
            self.aktualizuj()
            #self.kubaturaListPrvek.append(tmpPrvek)
        def aktualizuj(self):
            tmpCount = 0
            for x in range(self.kubaturaList.topLevelItemCount()):
                tmpCount = tmpCount + int(self.kubaturaList.topLevelItem(x).text(3))
            self.celkemLineEdit.clear()
            self.celkemLineEdit.insert(unicode(str(tmpCount/100.0) + str(' m3'), 'utf-8'))
    
    vysledekOkno = QtGui.QMessageBox(QtGui.QMessageBox.Information, u'Výsledek', str(u' '))
    hlOkno = vedlejsiDialog()
    #hlOkno.exec_()
    okno = HlavniOkno()
    okno.show()
    sys.exit(app.exec_())
    

           

    Hodnocení: 60 %

            špatnédobré        

    Anketa

    Který jazyk máte raději?
     (56 %)
     (38 %)
     (5 %)
    Celkem 73 hlasů

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    Komentáře

    Vložit další komentář

    8.4.2007 20:13 botanicus | blog: Botanicusovi povzdechy | Prachatice
    Rozbalit Rozbalit vše Re: Python ve městě Ruby
    Vyborne, rozumny krok :) Ale pozor, Ruby skryva mnoho genialit pod povrchem, cim dele tento jazyk znam, tim vic ruleznejsi mi pripada :) A predevsim ma neuveritelne cisty objektovy navrh, kteremu mohou zavidet vsici ostatni. Vse je objekt, a to doslova, ne jako v Jave, o ktere se to s oblibou chybne tvrdi.

    Tak a ted rejpnuti: $KCODE = 'UTF-8' je tam proc? 1) pokud mermomoci, pak musis taky require 'jcode' 2) ze Ruby neumi unicode neznamena, ze neumi UTFko! Srovnej:
    irb(main):006:0> puts 'čečensko'
    čečensko
    => nil
    irb(main):007:0> puts 'čečensko'.length
    10
    => nil
    
    ... a jak je to s tou jcode?
    irb(main):001:0> require 'jcode'
    => true
    irb(main):011:0> $KCODE='u'
    => "u"
    irb(main):013:0> puts 'čečensko'.jlength
    8
    => nil
    
    Jinak ja prave pisu projektik v Ruby on Rails, taky parada, na weby nevim o nicem lepsim.

    Jo a to unicode - v nejblizsi dobe snad uz konecne bude (v Ruby 1.9.x). Navic Ruby 2.0 ma byt totalni bomba, pobezi to ve virtualni masine a ma to bejt brutalne rychly. Jiz dnes Ruby beha naprosto paradne rychle, ale i tak se mluvi o 2 - 20tinasobnem zrychleni. Tesim se :)

    BTW s Ruby klidne rad helpnu, aspon v ramci svych moznosti ... :)
    ... mam chut na jablicka ;)
    kozzi avatar 8.4.2007 20:31 kozzi | skóre: 55 | blog: vse_o_vsem | Pacman (Bratrušov)
    Rozbalit Rozbalit vše Re: Python ve městě Ruby
    Ohledne toj jcode tak to jsem tam původně měl a při pár kopirování a pár upravách se to někde ztratilo a jelikož jsem nikde nepoužíval nic na čem by se to ukázalo tak sem si toho nevšiml. Jinak musím uznat že ruby je obravdu hodně objektový dokonce i čísla jsou objektem což se mi líbí hlavně ty finty typu cislo.times cislo.to_s a take to cislo.upto atd..
    Linux je jako mušketýři "jeden za všechny, všichni za jednoho"
    Daniel Kvasnička ml. avatar 8.4.2007 22:34 Daniel Kvasnička ml. | skóre: 52 | blog: The Joys and Sorrows of Being an IT Freak | Ostrava
    Rozbalit Rozbalit vše Re: Python ve městě Ruby
    Jinak ja prave pisu projektik v Ruby on Rails, taky parada, na weby nevim o nicem lepsim.
    Ja jsem RoR nezkousel, ale jako webpythonistu by me zajimalo, s cim jsi RoR porovnaval (nechci slyset PHP ;-) ).
    FSF: “screw you for not wanting the stuff we produce”, People: “screw you for not producing the stuff we want."
    9.4.2007 18:38 botanicus | blog: Botanicusovi povzdechy | Prachatice
    Rozbalit Rozbalit vše Re: Python ve městě Ruby
    Porovnaval jsem hlavne s Pythonimi frameworky, PHP prece neni na programovani webu ;). Jmenovite Django, Zope a CherryPy (to se mi ale líbí také hodně). A pak s Javou ...
    ... mam chut na jablicka ;)
    Daniel Kvasnička ml. avatar 10.4.2007 09:22 Daniel Kvasnička ml. | skóre: 52 | blog: The Joys and Sorrows of Being an IT Freak | Ostrava
    Rozbalit Rozbalit vše Re: Python ve městě Ruby
    Rails u me maji jedno plus a to, ze nevytvari zadnou svou syntaxi sablon, ale pouzivaji klasicke xSP tagy. Nejlepsi jsou samozrejme XML templaty ;-) (ok, priznavam, bez ${} bych obcas prskal...ale jinak nedam dopustit), ale lepsi uz zavedena J/PSP syntaxe, nez vymyslet kolo a nosit drivi do lesa.
    FSF: “screw you for not wanting the stuff we produce”, People: “screw you for not producing the stuff we want."
    9.4.2007 19:35 Ladicek | skóre: 28 | blog: variace | Havlíčkův brod
    Rozbalit Rozbalit vše Re: Python ve městě Ruby
    Jako regulérního javistu a příležitostného rubistu mne taková srovnání uvádějí do rozpaků, hlavně když musím něco hledat v dokumentaci Ruby Core. Ale hlavně že je všechno objekt :-)
    Jinak ja prave pisu projektik v Ruby on Rails, taky parada, na weby nevim o nicem lepsim.
    K RoR se taky možná brzo dostanu, jsem zvědavý, jestli k tomu kromě tisíce a jednoho návodu Jak sobě zprasiti blog v deseti minutách a nechat se přitom vykouřit šestnáctiletou modelkou :-), na které člověk narazí na každém rohu, taky existujě nějaký rozumný tutoriál. Nemůžete něco doporučit?
    Ještě na tom nejsem tak špatně, abych četl Viewegha.
    9.4.2007 20:28 botanicus | blog: Botanicusovi povzdechy | Prachatice
    Rozbalit Rozbalit vše Re: Python ve městě Ruby
    No v cestine predevsim serial Ruby on Rails na Rootu a stranka rails.jinak.cz. Rekl bych vic, ale bohuzel ntb mam v oprave a ke svym bookmarkum se nedostanu :/
    ... mam chut na jablicka ;)
    10.4.2007 09:50 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
    Rozbalit Rozbalit vše Re: Python ve městě Ruby
    Ty nemáš bookmarky na del.ico.us? Chudáčku.
    XML je zbytečný, pomalý, nešikovný balast, znovu vynalézané kolo a ještě ke všemu šišaté, těžké a kýčovitě pomalované.
    10.4.2007 14:45 botanicus | blog: Botanicusovi povzdechy | Prachatice
    Rozbalit Rozbalit vše Re: Python ve městě Ruby
    Jeste jsem na to nemel cas. Ale kdyz Ti to tak vadi, mohu Ti je, jen co mi prijde ntb zpet, poslat a muzes mi je tam nahazet, budu jedine rad :)
    ... mam chut na jablicka ;)
    Daniel Kvasnička ml. avatar 10.4.2007 15:28 Daniel Kvasnička ml. | skóre: 52 | blog: The Joys and Sorrows of Being an IT Freak | Ostrava
    Rozbalit Rozbalit vše Re: Python ve městě Ruby
    Bez del.icio.us ani ranu.
    FSF: “screw you for not wanting the stuff we produce”, People: “screw you for not producing the stuff we want."
    10.4.2007 15:57 Ladicek | skóre: 28 | blog: variace | Havlíčkův brod
    Rozbalit Rozbalit vše Re: Python ve městě Ruby
    Já taky ne, nebudu přece na celý internet rozhlašovat, jaké mám rád programovací jazyky a pornoherečky! Stačí, že to ví návštěvníci jednoho kanálu na IRCnetu :-)
    Ještě na tom nejsem tak špatně, abych četl Viewegha.
    14.4.2007 08:23 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
    Rozbalit Rozbalit vše Re: Python ve městě Ruby
    Pornoherečky si můžeš dát private (not shared) :-)
    XML je zbytečný, pomalý, nešikovný balast, znovu vynalézané kolo a ještě ke všemu šišaté, těžké a kýčovitě pomalované.
    10.4.2007 19:27 MichalC
    Rozbalit Rozbalit vše Re: Python ve městě Ruby
    Jiz dnes Ruby beha naprosto paradne rychle, ale i tak se mluvi o 2 - 20tinasobnem zrychleni. Tesim se :)
    Asi žiju na jiné planetě, ale aktuální implementace Ruby ho řadí jako jeden z nejpomalejších vůbec. Ani YARV na kterém má oficiálně běžet verze 2.0 ho moc neurychlí. Výrazně pomalejší než Python, ale dokonce i než Perl. O Javě ani nemluvě.

    Škoda. Ruby je rozhodně pěkný jazyk s konzistentním návrhem, ale tímhle se diskvalifikuje pro spoustu nasazení, kde na rychlosti záleží.

    12.4.2007 12:52 botanicus | blog: Botanicusovi povzdechy | Prachatice
    Rozbalit Rozbalit vše Re: Python ve městě Ruby
    No zkousel jsem namatkove par testu a Ruby smele konkurovalo Pythonu (Ruby 1.8.5 a Python 2.5), a to dokonce i v rekurzi, o niz se vi, ze s ni ma Ruby, co se rychlosti tyce, problemy. Perl byl az hafo daleko a po nem nasledovalo PHP. Samozrejme JRuby a Jython byly az po PHP, ale to je tou Javou ... YARV a Rubinius minim teprve otestovat.

    BTW kazda verze Ruby je rychlejsi a rychlejsi, z Ruby 1.9.x jsem docela nadsen :)

    PS: Uz se vybral YARV? Posledni zminka, kterou jsem zaregistroval byla, ze se bude vybirat, s tim, ze to zrejme bude YARV, ale oficialni vybrani YARV tusim nepadlo, nebo ano?
    ... mam chut na jablicka ;)
    8.4.2007 20:50 dvh
    Rozbalit Rozbalit vše Re: Python ve městě Ruby
    $ ./pokus.py
    UnicodeDecodeError: 'utf8' codec can't decode byte 0xe9 in position 0: unexpected end of data
    
    
    $ ./pokus.rb
    ./pokus.rb:5:in `require': no such file to load -- Qt4 (LoadError)
            from ./pokus.rb:5
    kozzi avatar 8.4.2007 21:01 kozzi | skóre: 55 | blog: vse_o_vsem | Pacman (Bratrušov)
    Rozbalit Rozbalit vše Re: Python ve městě Ruby
    ohledně toho prvního nevím čím to je asi nejakej problém s kodováním možná pomůže odebrat ten řádek ohledně kodování. a ohledně toho ruby tak tam je potíž že nemáš nainstalovanej balicek kterej obasuhuje propojeni ruby s qt4 nejspis neco jako ruby-qt4
    Linux je jako mušketýři "jeden za všechny, všichni za jednoho"
    8.4.2007 23:39 Martin Matějek | skóre: 12 | blog: Flying_circus | Kladno
    Rozbalit Rozbalit vše Re: Python ve městě Ruby
    Tušil jsem, že ten film je o stvůře jménem Python, ale že je to ve městě Ruby, to mě nenapadlo ^_~

    Větší překvapení pro mě byla kniha s lákavým názvem 'Conan a poklad Pythonu'. Z barbara Conana se nestal programátor, ale šlo o město Python.
    Don't judge me by the friends I keep. No, no, no. Judge me by the enemies I have slain!
    9.4.2007 18:39 botanicus | blog: Botanicusovi povzdechy | Prachatice
    Rozbalit Rozbalit vše Re: Python ve městě Ruby
    BTW pro zasmání: u nás ve městě otevřeli optiku Python. Hádejte co může rubysta udělat - vzal jsem lihovku, Python škrtnul a napsal Ruby...
    ... mam chut na jablicka ;)
    9.4.2007 20:38 dvx
    Rozbalit Rozbalit vše Re: Python ve městě Ruby
    OT: Ale ze mne to u tebe ani trochu neprekvapilo.
    10.4.2007 15:12 Honza Král | skóre: 3 | Praha
    Rozbalit Rozbalit vše Re: Python ve městě Ruby
    Muzu se zeptat, jaky smysl ma silena konstrukce:
    elif self.typDreva.currentText() == u'borovice - kůra':
        p0 = 2.5017e-01
        p1 = 1.9147e-03 
        p2 = 1.7866e+00
        pecko = [p0, p1, p2]
        return pecko
    elif ....
    
    oproti ulozeni do nejake struktury:
    PECKA = {
      u'borovice - kůra' : ( 2.5017e-01, 1.9147e-03, 1.7866e+00 ),
      u'' : ....,
    }
    
    a volani:
    typDrevaList = PECKA.keys()
    ...
    return PECKA[self.typDreva.currentText()]
    
    kdyz uz chces porovnavat dva jazyky, chtelo by to alespon respektovat styl programovani v danem jazyku... takoveto srovnani nema zadny smysl - neobsahuje temer zadnou logiku (a ta co tam je je implementovana prinejlepsim pochybne) a tak nakonec porovnavas pouze zapis Qt v pythonu a ruby, ktery se prekvapive lisi pouze v detailech a rozdily mezi ptyhonem a ruby tam prilis nepredvedes...

    a to nemluvim o konstrukcich typu: str(' m3'), int(round(...)) nebo str(u' '), skutecne by to chtelo si neco o pythonu precist (o ruby nic nevim, do toho se poustet nebudu) predtim nez se pokusim o jakekoliv srovnani...

    netvrdim, ze to nemas delat, ale presentovat tohle jako seriozni srovnani muze dopadnout tak, ze to tak nekdo vezme a na zaklade toho si udela obrazek o pythonu ci ruby a ten bude naprosto spatny...
    kozzi avatar 11.4.2007 07:51 kozzi | skóre: 55 | blog: vse_o_vsem | Pacman (Bratrušov)
    Rozbalit Rozbalit vše Re: Python ve městě Ruby
    Ale tady nešlo o srovnání, a to že nepoužívám všechny možný konstrukce které mi python nabízí, je tím že vněm píši opravdu chvíli, takže jsem si ještě neosvojil všechny jeho výhody. Jinak mě šlo spíš jen o ten film a ten kód jsem jsem dal, právě kvůli tomu, že se dozvím co dělám špatně dřív než si na to zvyknu a pak by se mi to těžce odnaučovalo. A co se ruby týče tak tam jsem taky určiloe nepoužil ty správné možnosti. Ale mockrát děkuji za upozornění. Jinak ohledně těch zbytečních přetypování už vím.
    Linux je jako mušketýři "jeden za všechny, všichni za jednoho"

    Založit nové vláknoNahoru

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.