PDA

Visualizza la versione completa : OT Programmazione - rolling release


XWolverineX
03-07-2015, 12:12
Segue da: http://forum.html.it/forum/showthread.php?postid=25319059&viewfull=1#post25319059

Direi che potete tutti, con una certa tranquillità, cambiare argomento.

MItaly
04-07-2015, 16:14
Direi che potete tutti, con una certa tranquillità, cambiare argomento.
Raccolgo il suggerimento e rilancio: esperienze particolarmente positive in fatto di bugtracker?
Perché quello che usiamo in azienda (FogBugz) sta abbandonando la versione Linux/MySQL (bene perché funzionava in maniera atroce) e, almeno per un po', intendono fornirlo hostato esclusivamente da loro (e costa abbastanza una sassata). Stavo guardando JIRA che, oltre ad essere hostabile facile da noi, anche hostato da loro costa molto meno, ha un buon import da FogBugz e Atlassian mi sta simpatica :D . Qualcuno l'ha usato? Consigli?

XWolverineX
05-07-2015, 03:14
Noi abbiamo differenti team e ognuno di questi può usare lo strumento che preferisce.

Un team usa jira sul cloud, e sembra siano contenti.

Noi abbiamo provato Jira e siamo scappati dopo poco. Era molto lento e macchinoso, oltre ad avere una UI troppo complicata. Per cui abbiamo deciso di usare Trello con le dovute label e una applicazione in Python (https://github.com/apiaryio/black-belt) che automatizza 3-4 cose per noi

Un altro team ancora usa Waffle.io, che praticamente "trellizza" le issues di github, e sembra molto interessante

MItaly
05-07-2015, 17:18
Noi abbiamo differenti team e ognuno di questi può usare lo strumento che preferisce.
Nel nostro caso all'interno dello stesso team ognuno usa gli strumenti che preferisce, il problema nasce quando dovrebbero essere strumenti di collaborazione come un bugtracker. :D Se ognuno usa il suo/non lo usa è dura usarli in maniera efficace.


Un team usa jira sul cloud, e sembra siano contenti.

Noi abbiamo provato Jira e siamo scappati dopo poco. Era molto lento e macchinoso, oltre ad avere una UI troppo complicata. Per cui abbiamo deciso di usare Trello con le dovute label e una applicazione in Python (https://github.com/apiaryio/black-belt) che automatizza 3-4 cose per noi

Un altro team ancora usa Waffle.io, che praticamente "trellizza" le issues di github, e sembra molto interessante
Interessante... c'era qualcuno che anche da noi aveva proposto di usare Trello, ma a me come ad altri sembrava un po' troppo poco strutturato... Che genere di workflow/organizzazione avete su Trello?

MItaly
18-08-2015, 09:05
http://akabe.github.io/evilml/
Evil ML: ML to C++ template language
AIUTO

XWolverineX
22-08-2015, 23:22
Ciao,
perdonami per l'enorme ritardo.

Generalmente ogni nostro team interno utilizza le board di Trello come meglio preferisce, per cui mi limiterò a illustrare l'utilizzo del mio team.

Fondamentalmente abbiamo le seguenti board:

1. Library: Contiene tutte le registrazioni dei nostri sprint planning, retrospective, sync bisettimanali (servono fondamentalmente ad aumentare la trasparenza del nostro lavoro rispetto all'azienda)

2. Sprint board: 1 colonna per sprint che contiene tutte le card completate durante tale sprint

3. Product: Contiene l'inbox dei bugs, delle proposte e delle varie cose che devono essere discusse

4. Work overview: contiene le card dettagliate dello sprint corrente

MItaly
10-11-2015, 00:19
Eh, perdonami tu per il ritardo ancora più clamoroso... :stordita: Ti ringrazio per la panoramica d'uso, intanto anche dei nostri collaboratori lo stanno usando per loro progetti interni, vediamo come si evolve la cosa. :spy:

Meanwhile:

Due indovinelli (da bug veri che mi hanno fatto impazzire per giorni):



void someFunctionCallback(void * dummy) {
std::stringstream ss;
ss << atoi(((std::string)parms("max_vel")).c_str()) * 1000;
some_object->setParameter("max_vx", ss.str());
some_object->setParameter("max_vy", ss.str());
ss << atoi(((std::string)parms("max_vel_inout")).c_str()) * 1000;
some_object->setParameter("max_vx_inout", ss.str());
some_object->setParameter("max_vy_inout", ss.str());
}

Dove sta il problema? :stordita:



// reimposto il locale perche' se linko le QT
// viene impostato il locale della macchina
char * locale = setlocale(LC_ALL, NULL);
setlocale(LC_ALL, "C");

FILE *mf=fopen(filename, "r");

// ... un bel po' di fscanf & co. ...

if (mf) fclose(mf);
setlocale(LC_ALL, locale);

Sintomi: "ogni tanto" nel caricamento di altri parametri del programma venivano o letti solo zeri, o valori assurdi (o meglio, il sintomo originario erano crash in parti assurde del programma, ma qui semplifichiamo :stordita: ).
Dove sta il problema? (qui ce n'è più di uno in realtà)


Altri angoli oscuri del C++ che ho scoperto per caso in tempi recenti:

le regole di scoping del C++ sono sempre più strane di quel che sembra:


if(auto *derived_ptr = dynamic_cast<Derived *>(base_ptr)) {
derived_ptr->doSomething();
} else {
derived_ptr->doSomethingElse(); // <-- ho scritto derived_ptr per sbaglio, ma compila! (ovviamente crash)
}

IOW: lo scoping delle variabili introdotte a livello di condizione dell'if perdura anche negli else; non riesco a cogliere completamente l'utilità di questo fatto, ma prendo atto. :mem: Mi sembra quasi peggio delle list comprehension in Python, che "pisciano fuori" la variabile di iterazione nello scope di funzione.
std::function non è reference counted, ma lavora per copia, per cui bisogna stare attenti a fare lambda che catturano per copia roba troppo grossa, visto che si tende a trattare la copia di std::function come copia di oggetti leggeri; non so perché, ma mi ero sempre immaginato che lavorasse per reference-counting;
ho finalmente colto uno dei motivi per cui sto abusando di std::function: in un certo senso è un'incursione del duck typing in un linguaggio a tipizzazione statica - l'unica cosa che importa è che quello che passo abbia un'interfaccia compatibile a quella richiesta, senza menate di ereditarietà, gerarchie di classi e compagnia (e, rispetto all'uso tipico del C++, consente di mantenere un comportamento simil-polimorfico senza doversi esplicitamente portare in giro puntatori a roba allocata sullo heap); il fatto che, rispetto a linguaggi come Python, mantenga comunque un buon controllo a compile-time, rende la cosa particolarmente usabile. Mi chiedo se si riesce ad estendere in maniera sintatticamente comoda ad interfacce più complicate (rispetto alla singola funzione)

fermat
10-11-2015, 22:32
qualcuno di voi ha mai provato livecode?
guardando alcuni link e pagine in giro, sembra il linguaggio perfetto.
qualcuno sa dire qualcosa al riaguardo??

- http://www.maxvessi.net/pmwiki/pmwiki.php?n=Main.GuidaALivecode
- http://livecodeitalia.blogspot.it/
- http://www.slideshare.net/crazyaxe/livecode-54364185

MItaly
10-11-2015, 23:14
qualcuno di voi ha mai provato livecode?
guardando alcuni link e pagine in giro, sembra il linguaggio perfetto.
Uhm, a me sembra più che altro un ambiente RAD con un linguaggio di scripting stile XTalk impiegato quasi come afterthought... nulla di particolarmente interessante dal punto di vista del linguaggio in sé (anzi, è più che altro pensato per avere una sintassi accessibile ai principianti piuttosto che per essere particolarmente potente o espressivo).

signoredeltempo
11-11-2015, 16:57
Due indovinelli (da bug veri che mi hanno fatto impazzire per giorni):



void someFunctionCallback(void * dummy) {
std::stringstream ss;
ss << atoi(((std::string)parms("max_vel")).c_str()) * 1000;
some_object->setParameter("max_vx", ss.str());
some_object->setParameter("max_vy", ss.str());
ss << atoi(((std::string)parms("max_vel_inout")).c_str()) * 1000;
some_object->setParameter("max_vx_inout", ss.str());
some_object->setParameter("max_vy_inout", ss.str());
}

Dove sta il problema? :stordita:


Mi sembra abbastanza

void *dummy
Volendo continuare, anche atoi è discutibile: se uno dei parametri non è rappresentabile in un int, :ciauz:.


non so perché, ma mi ero sempre immaginato che lavorasse per reference-counting;
Di cosa, poi?

Odio Java. Mi domando come chi lo usi (quanti e dove, poi?) non sia travolto dalla tremenda inconsistenza che lo forgia.

Loading