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 19:11 | Komunita

    Desktopové prostředí KDE Plasma 6.8 poběží už pouze nad Waylandem. Vývojáři, kteří s rozhodnutím nesouhlasí, vytvořili fork KDE Plasma s názvem SonicDE (Sonic Desktop Environment) s cílem zachovat a vylepšovat podporu X11.

    Ladislav Hagara | Komentářů: 0
    dnes 12:22 | Nová verze

    Byla vydána nová stabilní verze 7.8 dnes již jedenáctiletého webového prohlížeče Vivaldi (Wikipedie). Postavena je na Chromiu 144. Přehled novinek i s náhledy v příspěvku na blogu.

    Ladislav Hagara | Komentářů: 3
    dnes 10:33 | Nová verze

    GNU gettext (Wikipedie), tj. sada nástrojů pro psaní vícejazyčných programů, dospěl do verze 1.0. Po více než 30 letech vývoje. Přehled novinek v souboru NEWS.

    Ladislav Hagara | Komentářů: 1
    dnes 05:11 | IT novinky

    Chris Kühl (CEO), Christian Brauner (CTO) a Lennart Poettering (Chief Engineer) představili svou společnost Amutable. Má přinést determinismus a ověřitelnou integritu do linuxových systémů.

    Ladislav Hagara | Komentářů: 12
    včera 20:11 | Nová verze

    Byla vydána (𝕏) nová verze 26.1 open source firewallové a routovací platformy OPNsense (Wikipedie). Jedná se o fork pfSense postavený na FreeBSD. Kódový název OPNsense 26.1 je Witty Woodpecker. Přehled novinek v příspěvku na fóru.

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

    Deník TO spustil vlastní zpravodajský webový portál ToHledej.CZ s internetovým vyhledávačem a bezplatnou e-mailovou schránkou. Dle svého tvrzení nabízí 'Zprávy, komentáře, analýzy bez cenzury' a 'Mail bez šmírování a Velkého bratra'. Rozložením a vizuálním stylem se stránky nápadně podobají portálu Seznam.cz a nejspíše je cílem být jeho alternativou. Z podmínek platformy vyplývá, že portál využívá nespecifikovaný internetový vyhledávač třetí strany.

    NUKE GAZA! 🎆 | Komentářů: 27
    včera 14:11 | Zajímavý projekt

    Computer History Museum (Muzeum historie počítačů) zpřístupnilo své sbírky veřejnosti formou online katalogu. Virtuálně si tak můžeme prohlédnout 'rozsáhlou sbírku archivních materiálů, předmětů a historek a seznámit se s vizionáři, inovacemi a neznámými příběhy, které revolučním způsobem změnily náš digitální svět'.

    NUKE GAZA! 🎆 | Komentářů: 10
    včera 14:00 | Zajímavý projekt

    Ruský hacker VIK-on si sestavil vlastní 32GB DDR5 RAM modul z čipů získaných z notebookových 16GB SO-DIMM RAM pamětí. Modul běží na 6400 MT/s a celkové náklady byly přibližně 218 dolarů, což je zhruba třetina současné tržní ceny modulů srovnatelných parametrů.

    NUKE GAZA! 🎆 | Komentářů: 15
    včera 11:00 | Upozornění

    Národní identitní autorita (NIA), která ovlivňuje přihlašování prostřednictvím NIA ID, MEP, eOP a externích identit (např. BankID), je částečně nedostupná.

    Ladislav Hagara | Komentářů: 9
    včera 02:44 | Nová verze

    Byla vydána nová verze 1.16.0 klienta a serveru VNC (Virtual Network Computing) s názvem TigerVNC (Wikipedie). Z novinek lze vypíchnout nový server w0vncserver pro sdílení Wayland desktopu. Zdrojové kódy jsou k dispozici na GitHubu. Binárky na SourceForge. TigerVNC je fork TightVNC.

    Ladislav Hagara | Komentářů: 0
    Které desktopové prostředí na Linuxu používáte?
     (17%)
     (6%)
     (0%)
     (10%)
     (23%)
     (3%)
     (5%)
     (2%)
     (12%)
     (33%)
    Celkem 664 hlasů
     Komentářů: 19, poslední včera 13:03
    Rozcestník

    Python ve městě Ruby

    8.4.2007 19:45 | Přečteno: 1817× | 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.