Topic: esercizi di autostima  (Letto 715 volte)

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

Offline Aezio

  • python neanderthalensis
  • ****
  • Post: 324
  • Punti reputazione: 1
    • Mostra profilo
esercizi di autostima
« il: Maggio 24, 2016, 09:03 »
Recentemente sono stato contattato da uno che voleva vendermi un programma. Per convincermi ha creato un repo su GitHub con una versione "demo".
Ho sostituito alcuni import per evitare che si possa riconoscere chi ha scritto questa cosa sublime:

[codice]from Foo.Bar.Foobar import *
from Foo.Bar.Foobar.DomainObject.Barfoo import *
from Foo.Bar.Core import *
from Foo.Bar.Basics import *

from Foo.Bar.Catalogs import *
from Foo.Bar.Coordinates import *
from Foo.Bar.CoordinateSystems import *
from Foo.Bar.Data import *
from Foo.Bar.Geometry import *
from Foo.Bar.Units import *
from Foo.Bar.Foobar.Basics import *
from Foo.Bar.Foobar.Data import *
from Foo.Bar.Foobar.DomainObject import *
from Foo.Bar.Foobar.DomainObject.Barfoo import *
from Foo.Bar.Foobar.DomainObject.Shapes import *
from Foo.Bar.Foobar.DomainObject.Well import *
from Foo.Bar.Foobar.DomainObject.FaultModel import *
from Foo.Bar.Foobar.IO import *
from Foo.Bar.Foobar.Licensing import *
from Foo.Bar.Foobar.PropertyModeling import *
from Foo.Bar.Foobar.Barfoo import *
from Foo.Bar.Foobar.BarfooAttribute import *
from Foo.Bar.Foobar.Simulation import *
from Foo.Bar.Foobar.UI import *
from Foo.Bar.Foobar.Uncertainty import *
from Foo.Bar.Foobar.Workflow import *

from Foo.Bar.Coordinates import PrePostUnitConversions


def DoTestPoints5100(projCRS,pt_set):
 
  coord_service = CoreSystem.GetService(ICoordinateService)
  catalog_service = CoreSystem.GetService(ICatalogService)
  unit_service = CoreSystem.GetService(IUnitService)

  print "51xx: Projection Test
%s [%s] to %s [%s]" % (projCRS.ReferenceCoordSys,projCRS.ReferenceCoordSys.AuthorityCode,projCRS,projCRS.AuthorityCode)
  opB = coord_service.CreateOperationToReference(projCRS, PrePostUnitConversions.FromSI)[1]
  opA = coord_service.CreateOperationFromReference(projCRS, PrePostUnitConversions.ToSI)[1]
 
  pt_set_len = len(pt_set)
  meter_unit = unit_service.Catalogs[0].GetUnit('Meter')
  m_to_crsunit = FoobarUnitSystem.GetConverter( meter_unit,projCRS.NativeSurfaceUnit)
  crsunit_to_m = FoobarUnitSystem.GetConverter( projCRS.NativeSurfaceUnit,meter_unit)
     
  for i in range(0, pt_set_len):
    if pt_set[2] == 'A':
      result = opA.Convert( Point3( pt_set[1], pt_set[0],0) )[1]
     
     
      result = Point3( m_to_crsunit.Convert(result.X), m_to_crsunit.Convert(result.Y),0)
     
      print "A   %s   %s   %s   %s" % ( pt_set[0], pt_set[1], result.X, result.Y)
    else:
      result = opB.Convert( Point3( crsunit_to_m.Convert(pt_set[0]), crsunit_to_m.Convert(pt_set[1]),0) )[1]
      print "B   %s   %s   %s   %s" % ( result.Y, result.X, pt_set[0], pt_set[1])



def DoTestPoints5200(srcCRS,targetCRS,transform,pt_set):
 
  coord_service = CoreSystem.GetService(ICoordinateService)
  catalog_service = CoreSystem.GetService(ICatalogService)
  unit_service = CoreSystem.GetService(IUnitService)

  print "52xx: Transform Test
%s [%s] (%s) <-> %s [%s] (%s)" % (srcCRS,srcCRS.AuthorityCode,srcCRS.NativeSurfaceUnit,targetCRS,targetCRS.AuthorityCode,targetCRS.NativeSurfaceUnit)
  #transform = coord_service.GetCartographicTransform("EPSG:1764")[1]
  opB = coord_service.CreateOperation(targetCRS,srcCRS, [transform], PrePostUnitConversions.None)[1]
  opA = coord_service.CreateOperation(srcCRS,targetCRS,[transform], PrePostUnitConversions.None)[1]
 
  print opA
  print opB
  pt_set_len = len(pt_set)
  unit_catalog = unit_service.Catalogs[0]
 
  #meter_unit = unit_catalog.GetUnit('Meter')
  #m_to_srcCRSunit = unit_catalog.GetConverter( meter_unit,srcCRS.NativeSurfaceUnit)
  #m_to_targetCRSunit = unit_catalog.GetConverter( meter_unit,targetCRS.NativeSurfaceUnit)
  #targetCRSunit_to_m = unit_catalog.GetConverter( targetCRS.NativeSurfaceUnit,meter_unit)
  #srcCRSunit_to_m = unit_catalog.GetConverter( srcCRS.NativeSurfaceUnit,meter_unit)
     
  for i in range(0, pt_set_len):
    if pt_set[2] == 'A':
      result = opA.Convert( Point3( pt_set[1], pt_set[0],0) )[1]
      #result = Point3( pt_set[0], pt_set[1],0)
     
      #result = Point3( m_to_crsunit.Convert(result.X), m_to_crsunit.Convert(result.Y),0)
     
      print "A   %s   %s   %s   %s" % ( pt_set[0], pt_set[1], result.X, result.Y)
    else:
     
      result = opB.Convert( Point3( pt_set[1], pt_set[0],0) )[1]
      #result = opB.Convert( Point3( crsunit_to_m.Convert(pt_set[0]), crsunit_to_m.Convert(pt_set[1]),0) )[1]
      print "B   %s   %s   %s   %s" % ( result.Y, result.X, pt_set[1], pt_set[0])
      pass


def DoTestPoints5100ThousandIterations(projCRS,pt):
  coord_service = CoreSystem.GetService(ICoordinateService)
  catalog_service = CoreSystem.GetService(ICatalogService)
  unit_service = CoreSystem.GetService(IUnitService)
  print "51xx: 1000 Iteration Projection Test
%s [%s] to %s [%s]" % (projCRS.ReferenceCoordSys,projCRS.ReferenceCoordSys.AuthorityCode,projCRS,projCRS.AuthorityCode)
  opB = coord_service.CreateOperationToReference(projCRS, PrePostUnitConversions.None)[1]
  opA = coord_service.CreateOperationFromReference(projCRS, PrePostUnitConversions.None)[1]
 
 
  meter_unit = unit_service.Catalogs[0].GetUnit('Meter')
  m_to_crsunit = FoobarUnitSystem.GetConverter( meter_unit,projCRS.NativeSurfaceUnit)
  crsunit_to_m = FoobarUnitSystem.GetConverter( projCRS.NativeSurfaceUnit,meter_unit)
 
  tmp_point =  Point3(pt[1],pt[0],0)
 
  #print tmp_point
 
  for i in range(0, 1000):
    tmp_point = opA.Convert( Point3( tmp_point.X, tmp_point.Y,0) )[1] # convert lat long to XY
    tmp_point = Point3( m_to_crsunit.Convert(tmp_point.X), m_to_crsunit.Convert(tmp_point.Y),0)
    tmp_point = opB.Convert( Point3( tmp_point.X, tmp_point.Y,0) )[1] # convert XY to lat long
  print tmp_point[/codice]

Offline RicPol

  • python sapiens sapiens
  • ******
  • Post: 2.854
  • Punti reputazione: 9
    • Mostra profilo
Re: esercizi di autostima
« Risposta #1 il: Maggio 24, 2016, 13:10 »
Bella storia... magari è uno che ha letto "pensare da informatico".

Ma scusa, non ho capito: tu offuschi gli import del framework, ma chi ha scritto questa zuppa del cane non è lo stesso che ha scritto il framework, vero?

Offline Aezio

  • python neanderthalensis
  • ****
  • Post: 324
  • Punti reputazione: 1
    • Mostra profilo
Re: esercizi di autostima
« Risposta #2 il: Maggio 24, 2016, 13:38 »
Citazione
Ma scusa, non ho capito: tu offuschi gli import del framework, ma chi ha scritto questa zuppa del cane non è lo stesso che ha scritto il framework, vero?

Corretto, il tizio voleva vendermi un plug-in

Offline RicPol

  • python sapiens sapiens
  • ******
  • Post: 2.854
  • Punti reputazione: 9
    • Mostra profilo
Re: esercizi di autostima
« Risposta #3 il: Maggio 24, 2016, 14:13 »
mi pareva, perché il framework nel tuo ambiente dovrebbe essere una specie di standard, dico bene?

comunque che vuoi farci... "se compila"... lol

Offline Markon

  • python sapiens sapiens
  • *
  • moderatore
  • Post: 4.104
  • Punti reputazione: 5
    • Mostra profilo
    • Neolithic
Re: esercizi di autostima
« Risposta #4 il: Maggio 24, 2016, 15:57 »
ma non credo manco sia stato scritto a mano; credo piuttosto che sia stato scritto in qualche linguaggio e passato ad uno di quei tool per tradurre ( spero  :foot-in-mouth: )

Offline RicPol

  • python sapiens sapiens
  • ******
  • Post: 2.854
  • Punti reputazione: 9
    • Mostra profilo
Re: esercizi di autostima
« Risposta #5 il: Maggio 24, 2016, 16:12 »
Uhm, non so... con tutti quei "print" e quelle righe commentate?
Invece mi sa che questo si è proprio messo lì d'impegno... speriamo almeno che gli funzionasse l'autocomplete dell'editor...

Offline Markon

  • python sapiens sapiens
  • *
  • moderatore
  • Post: 4.104
  • Punti reputazione: 5
    • Mostra profilo
    • Neolithic
Re: esercizi di autostima
« Risposta #6 il: Maggio 24, 2016, 16:14 »
ho visto ben peggio  :D :party:

poi potrebbe essere sia davvero "hand-made"  :D

Offline RicPol

  • python sapiens sapiens
  • ******
  • Post: 2.854
  • Punti reputazione: 9
    • Mostra profilo
Re: esercizi di autostima
« Risposta #7 il: Maggio 24, 2016, 16:18 »
più che fatto a mano, direi fatto con i piedi (è un peccato che in inglese non ci sia l'equivalente per mantenere il gioco di parole).

Offline Aezio

  • python neanderthalensis
  • ****
  • Post: 324
  • Punti reputazione: 1
    • Mostra profilo
Re: esercizi di autostima
« Risposta #8 il: Maggio 24, 2016, 16:33 »
Citazione
ho visto ben peggio

Bhe' si su questo forum ne abbiamo viste di cotte e di crude, ma almeno nessuno voleva farsi pagare...


Citazione
mi pareva, perché il framework nel tuo ambiente dovrebbe essere una specie di standard, dico bene?

vero, ma non e' questo (il tizio ha pure sbagliato potenziale cliente). Questa e' roba piu' upstream

Offline riko

  • python deus
  • *
  • moderatore
  • Post: 7.453
  • Punti reputazione: 12
    • Mostra profilo
    • RiK0 Tech Temple
Re: esercizi di autostima
« Risposta #9 il: Maggio 26, 2016, 17:11 »
Si ok... non e' tanto bravo. Ma, oggettivamente, senza sapere chi e' e di che si tratta si gode solo a meta'.

Cioe' e' un po' imbarazzante, ma... bisogna capire il dominio. Voglio dire... tanta roba e' scritta a quella maniera.

Ecco... sembra roba microsoft. Non tanto per il codice (non mi permetterei), ma da certe scelte di nomenclatura. Verrebbe da pensare che sta parlando con qualcosa di .nettoso.

Offline RicPol

  • python sapiens sapiens
  • ******
  • Post: 2.854
  • Punti reputazione: 9
    • Mostra profilo
Re: esercizi di autostima
« Risposta #10 il: Maggio 26, 2016, 17:28 »
se ci ho azzeccato, il framework è petrel, quindi c#.
immagino che ci siano dei binding per python

Offline riko

  • python deus
  • *
  • moderatore
  • Post: 7.453
  • Punti reputazione: 12
    • Mostra profilo
    • RiK0 Tech Temple
Re: esercizi di autostima
« Risposta #11 il: Maggio 29, 2016, 00:27 »
se ci ho azzeccato, il framework è petrel, quindi c#.
immagino che ci siano dei binding per python

Ci avevo visto giusto, dopotutto...

Offline Markon

  • python sapiens sapiens
  • *
  • moderatore
  • Post: 4.104
  • Punti reputazione: 5
    • Mostra profilo
    • Neolithic
Re: esercizi di autostima
« Risposta #12 il: Maggio 30, 2016, 10:45 »
Citazione
ho visto ben peggio

Bhe' si su questo forum ne abbiamo viste di cotte e di crude, ma almeno nessuno voleva farsi pagare...


Lo so, ma infatti parlavo in ambito lavorativo, dove ci sono soldoni in premio :P
Per dire... almeno il tizio qui scrive funzioni da 20-40 righe.
Ho visto singole funzioni da 2500 righe (funzionalitá core, non utilities), chiaramente non testate ne' testabili, ma decisamente de-testabili  :party:

« Ultima modifica: Maggio 30, 2016, 10:48 da Markon »

Offline riko

  • python deus
  • *
  • moderatore
  • Post: 7.453
  • Punti reputazione: 12
    • Mostra profilo
    • RiK0 Tech Temple
Re: esercizi di autostima
« Risposta #13 il: Maggio 30, 2016, 14:39 »
chiaramente non testate ne' testabili, ma decisamente de-testabili  :party:

LOL :)