Vă mulțumim pentru susținere

Proiecte Ruby Open Source

Tocmai am început să studiez Ruby și, în loc de sfatul lui Jeff în weekend ...

  1. Opriți teoretizarea.
  2. Scrieți o mulțime de software.
  3. Învață din greșelile tale.

... M-am interesat să-mi îmbunătățesc abilitățile în timp ce ajutam comunitatea Open Source cu procesul, așa că m-am gândit să întreb dacă cineva are sugestii pentru proiectele Open Source interesante scrise în Ruby despre care știi sau despre care ești implicat.

0
adăugat editat

13 răspunsuri

Gândul meu tinde să se rotească în jurul unui anumit subset al următoarelor:

- Găsiți o definiție combinatorie pentru secvență și vedeți dacă are sens atunci când vă extindeți puțin mai departe.

- Dacă încercați să efectuați o sarcină necorespunzătoare (de exemplu, placarea unei plăci goale sau numărarea funcțiilor definite pe setul gol), o puteți face exact într-un singur mod. Cele mai multe dintre exemplele dvs. se încadrează în această clasă, inclusiv un ^ 0 (funcțiile definite pe setul gol), 0! (bijecții pe setul gol), F_1 ​​(placarea unei plăci goale) și cardinalitatea produsului direct fără grupuri (alegerea unui obiect din fiecare clasă, astfel încât produsul direct ar trebui să fie identitatea).

- O sumă goală este egală cu 0, un produs gol este egal cu 1. (din nou cardinalitatea produsului direct de 0 grupuri ar trebui să fie 1).

Cum rămâne cu determinantul unei matrice 0x0? Ei bine, este o sumă peste toate permutările dintr-un element 0 în sine al unui produs gol. Există un element în sumă (sarcină goală) și un produs gol, deci ar trebui să fie 1.

Nu știu cu adevărat dacă există o afirmație riguroasă în acest sens sau dacă nu există un mod în care poate intra în contradicție dacă există două modalități combinatoriale de a defini o secvență, dar este ceea ce pare natural să trecem.

6
adăugat
Poonen a susținut și sunt de acord că determinantul unei matrice 0x0 ar trebui să fie egal cu 1. Luați în considerare ceea ce se întâmplă când încercați să extindeți determinantul unei matrice 1x1 de către minori.
adăugat autor Qiaochu Yuan
Da, doar mi-am regândit și asta ... vedeți re-explicația de mai sus.
adăugat autor Kevin P. Costello

Având în vedere exemplele dvs., nu par să solicitați o modalitate canonică de a extinde la zero funcțiile arbitrare definite pe numerele pozitive. În schimb, luați funcții ale căror intrări sunt seturi și întrebându-le dacă pot fi definite când unele intrări sunt setul gol. Atâta timp cât secvența definită pe numerele pozitive este echipată cu această structură suplimentară, nu ar trebui să aveți prea multe probleme în a le extinde în mod natural. Dacă începeți cu o secvență nestructurată, motivele favorizării unei extensii față de alta devin destul de slabe (de exemplu complexitatea Kolmogorov).

Here's the standard example of a sequence that extends to zero in different ways: the sequence that is identically zero on the positive integers. One extension is the zero function. Other extensions interpret the sequence as n -> k 0n for some nonzero k.

De altfel, trebuie să alegeți un punct de bază în spațiul dvs. pentru a defini pi 0 . Odată ce aveți acest lucru, este setul de clase de homotopi de hărți ascuțite din S 0 în spațiul dvs. În mod echivalent, este setul (evidențiat) de componente ale traseului. Nu are o structură naturală a grupului (deși poate că spațiul vostru vine cu un fel de lege a compoziției).

3
adăugat
@LSpice A trecut aproape șase ani de când am scris acest lucru, dar cred că ceea ce am vrut să spun este că grupurile de homotopi mai mari necesită spații indicate ca intrări, deci dacă doriți să definiți $ \ pi_0 $ prin extinderea firească a definiției lui $ \ pi_n $ pentru $ n> 0 $, ar trebui să aveți un spațiu ascuțit ca intrare. Sunteți, desigur, liberi să definiți $ \ pi_0 $ după cum doriți.
adăugat autor ricree
Așteptați, de ce nu poate fi definit $ \ pi_0 $ (ca un spațiu "gol" $ \ mathrm T_1 $ sau orice $ \ mathrm T $ axiom dă puncte închise, nu un set ascuțit) chiar și în absența unui punct de bază ?
adăugat autor LSpice
Destul de corect. Credeam că ai înțeles că a fost ceva în neregulă cu definiția "colecției de componente (conectate/cale)".
adăugat autor LSpice

Factorul determinant al unui endomorfism f al unui modul R liber de dimensiune n (R comutativ) este $ d \ în R $ astfel încât $ \ bigwedge ^ n f $ este homotetul raportului d. Cazul nostru corespunde cu $ n = 0 $, iar $ \ bigwedge ^ 0 f $ este identitatea lui R, deci d = 1.

Motivele deja date, de ce 0 ^ 0 = 1 (m ^ n este numărul de funcții dintr-un set de cardinalitate n la un set de cardinalitate m) și 0! = 1 (n! Este numărul de bijecții dintr-un set de cardinalitate n), sunt ilustrații ale ideilor lui Baez privind numărarea ca decategorizare.

2
adăugat

Pentru primele trei, puteți defini o recurență. Rulați recurențele înapoi.

Also, 0! = Γ(1) = int_0^\infty e^(-t) = 1 ; here there's nothing special about 0. (But Γ isn't defined for nonpositive integers.)

1
adăugat

Acest lucru poate părea șchiopătător, dar aș spune că vă uitați la proprietățile secvenței care vă interesează și dacă o puteți defini astfel încât acele proprietăți rămân în continuare (reguli exponent, recursivitate, proprietăți universale ...), atunci faceți . Cel puțin nu-mi pot imagina că există un răspuns mai general decât acesta.

În ceea ce privește 0 ^ 0, aș spune că 0 ^ 0 = 1 funcționează mai bine "algebric", de atunci puteți scrie încă 0 ^ 0 = 0 ^ (0) = 1/(0 ^ 0) ^ 0 (0 + 0) = (0 ^ 0) * (0 ^ 0).

0
adăugat
Am o perspectivă utilitară asupra definițiilor: acestea sunt menite să scurteze argumentele. Deci, oricare ar fi proprietățile care vă permit să scurtați argumentele dvs. sunt cele "corecte". Acest lucru depinde în mod evident de tipul de matematică pe care îl faceți și de modul în care ați făcut-o, dar nu cred că această dependență este menită să fie evitată.
adăugat autor Anonymous User
Acest lucru poate suna, de asemenea, lame, dar cum stii ca te uiti la proprietățile potrivite?
adăugat autor Qiaochu Yuan
Destul de corect. Îmi place că ați menționat proprietățile universale, deoarece răspunsul meu la această întrebare este, în principiu, "categorizați până devine evident ce să faceți". De exemplu, produsul de lucruri zero într-o categorie este un obiect terminal și coproductul de lucruri zero este un obiect inițial.
adăugat autor Qiaochu Yuan

Cred că dacă încercați să învățați o nouă limbă, faceți ceva distractiv în acea limbă.

Am învățat python scriind o mulțime de păianjeni și jucării mici, iar pentru rubin eu aș fi avut exact aceeași cale. În loc să găsești un proiect care are nevoie de contribuție, realizează câteva proiecte personale pentru a obține o simțire a limbii. Aflați mai multe făcând ceva, citiți o mulțime de exemple și codul altor popoare în primele câteva luni.

O limbă ca Ruby este structurată în așa fel încât să poți face ceva productiv direct din cutie fără prea multă susținere, deci să sari direct și să faci ceva distractiv mai degrabă decât să crezi că trebuie să faci ceva pentru altcineva chiar la începutul experimentării cu o nouă limbă.

te distrezi cu Ruby, e pe lista mea scurtă cu lucruri de jucat cu :)

0
adăugat

For a pointed space (X,p), the nth homotopy group πn(X,p) is usually defined as the group of maps of the n-sphere which take (1,0,...,0) to p, modulo homotopy-rel-basepoint. What's potentially weird is that S0 is disconnected, whereas Sn is connected for n>0. But then π0(X) just counts the number of path components of X. Of course, it doesn't have a group structure because S0 isn't a cube with its boundary identified; this is anomalous.

On the other hand, this corresponds perfectly with the other characterization of homotopy groups I've seen, where π0(X,p) is defined to be the set of path components of X, and then πn(X,p) is inductively defined as the "loop space" of πn-1(X,p), i.e. the group of homotopy classes of loops starting and ending at the basepoint (rel basepoint, of course), with composition defined simply as composition of loops.

So, while in neither setup is π0(X,p) a group, I think this is as well-defined as it's going to get. As far as I know, only in the setting of Lie groups is there a natural way to put a group structure on the path components (just take G/G0, where G is the Lie group and G0 is the path component of the identity).

0
adăugat
Suficient de sigur!!!!
adăugat autor NotMyself
Nu este nevoie de netezime; pentru orice tip de grup topologic $ G $, $ \ pi_0 (G) $ are o structură topologică a grupului natural.
adăugat autor LSpice

Ei bine, nu ați specificat Rails, așa că am să arunc acolo pantofi de pantofi. În primul rând, să construiți aplicații pentru pantofi este probabil cea mai bună metodă de a învăța Ruby (Rails este minunat, dar văd că Ruby este mult mai distractiv / util). În al doilea rând, în timp ce cu siguranță nu cred că construirea componentelor intermediare UI este trivială, pantofii sunt relativ noi și relativ mici. Nu există nicio îndoială că ar putea fi făcute nenumărate adăugiri.

0
adăugat
Legătura cu pantofii din răspuns este veche. Încercați acest link
adăugat autor DL Redden

În loc să vă alăturați unui proiect open source, găsiți o mâncărime pe care doriți să o zgâriați.

Îmi găsesc primul an cu o limbă care aproape întotdeauna aruncă codul (sau cel puțin ar trebui să fie ).

Găsiți o problemă pe care vreți să o rezolvați (personal). Utilizați rubin pentru a face acest lucru. Veți învăța multe.

0
adăugat

Proiectele active pe Rubyforge sunt un loc minunat pentru a începe. Ce ar fi un bun demaror de proiect este de a alege unul care este destul de popular, dar nu o mulțime de dezvoltatori.

Dacă sunteți interesat de Ruby on Rails, lucrez acum la Redmine . A fost unul dintre cele mai active proiecte și are doar 5 dezvoltatori. Open Source Rails are, de asemenea, o bună colecție de proiecte.

Am descoperit un mod minunat de a începe să faceți o Refactotum un proiect. Folosește faptul că ești nou în avantajul tău, majoritatea oamenilor care au participat la un proiect uită de lucruri simple precum dependența de bijuterii și documentația

0
adăugat

Priviți în jur github pentru unele proiecte open source. Unele dintre cele mai populare proiecte sunt:

Uitați-vă pe lista Popular Forked și probabil veți vedea ceva care vă interesează.

0
adăugat

Ce zici de a scrie mici jocuri? Luați-vă RubyGame și începeți prin a face câteva jocuri simple. Faceți un tetris, un șarpe, ceva foarte simplu. Este o mulțime de distracție și vei învăța multe lucruri de bază despre limbă.

0
adăugat
Dacă sunteți pe Mac OS X 10.8 și luând în considerare RubyGame, asigurați-vă că ați citit aici primul .
adăugat autor Barjavel

Considerând un ^ 0 și 0 ^ b, mi se pare rezonabil să definim ca 0 ^ 0 să fie 0 sau 1 în funcție de ceea ce faci. Sigur că ai putea susține că nu trebuie să definiți 0 ^ 0 din acest motiv.

Acest lucru ar putea fi considerat înșelăciune ca răspuns la întrebarea 2, deși pentru că eu extind într-adevăr o hartă pentru N ^ 2 la (0,0) în două moduri diferite.

0
adăugat
Când este efectiv util, în practică, să setați 0 ^ 0 nu egal cu 1?
adăugat autor Grant
Aș argumenta după cum urmează. Dacă sunteți un combinatorial care acceptă 0! = 1, acceptați că există o bijectie de vidă la sine, astfel încât să accepte că există o funcție de vidă la sine, deci ar trebui să accepte faptul că 0 ^ 0 = 1.
adăugat autor Qiaochu Yuan