Imagine Cup 2013 – News (1)

Pentru cunoscători, Imagine Cup a revenit cu noua ediție: Rusia, St. Petersburg 2013. Pentru necunoscători, Imagine Cup este o competiție mondială de IT adresată studenților din întreaga lume, dar la care pot participa și elevii de liceu care au 16 ani împliniți la data Finalei din 2013. Studenții la doctorat pot participa și ei în anumite secțiuni.

Tot pentru necunoscători, Imagine Cup este o competiție care se desfășoară în mai multe etape, pe o durată mai mare de 6 luni de zile și adresează mai multe secțiuni din domeniul IT, dar îmbină și cunoștințe sau veleități asociate (într-o ordine aleatoare): arte, economie, management, marketing, medicină, științe ale mediului sau științe exacte, toate reunite într-o idee implementată într-o aplicație software sau un joc pentru PC, telefon,  cloud sau alte dispozitive și console.

Premiile competiției, dublate anul acesta, sunt asigurate de către organizatorul Microsoft și de sponsorii asociați. Pe lângă premiile în bani, Microsoft suportă și deplasarea și costurile de întreținere în finala din Iulie 2013.

În Imagine Cup există mai multe tipuri de competiții: Competitions și Challenges. Competitions au reguli specifice și evaluarea se bazează pe judecata unui juriu pe diferitele faze ale acestuia. Challenges implică, de obicei, o serie de teste pe parcurs sau evaluări pe bază de teste on-line și apoi jurizare în rundele finale. Pe lângă aceste două forme de competiție, pe parcurs pot apărea secțiuni noi de tipul Awards care implică votul publicului sau tot a unei echipe de judecători. Foarte importantă este și secțiunea de Grants, la care pot participa echipele finaliste și unde se oferă sume importante de bani pentru start-up-ul unor mini-afaceri bazate pe ideea proiectului prezentat.

Competiția pe 2012 cu granturile nu s-a încheiat încă, reprezentanta noastră din Timișoara, echipa IQube așteptând cu emoție să vadă dacă primește finanțare din partea Microsoft.

Din punct de vedere tehnic, site-ul Imaginecup.com a migrat de la Community Server la Sitefinity. Schimbarea pare de bun augur, având în vedere sutele de probleme ale site-ului vechi. Păcat în schimb că la fiecare migrare se mai pierd o multitudine de mesaje de prin forumuri, care la ora la care scriu acest articol nu sunt disponibile încă. Utilizatorii și parolele vechi au fost migrate, dar o problemă tehnică bizară pe care o are site-ul actual este acela al autentificării. Mie personal nu îmi funcționează sign in în mod clasic, ci trebuie să dau întâi pe Sign up sau Register și din fereastra Register Now să dau click pe Sign in din dreapta sus, după care funcționează.

image

La ora actuală principalele secțiuni din Imagine Cup și o scurta descriere a lor sunt:

Games

Competiție pe echipe care presupune realizarea unui joc pentru orice tipuri de dispozitive: PC cu sau fără touch screen, Windows Phone, xBox, Kinect. Marele premiu este de 50.000 dolari. Echipa trebuie înregistrată până pe 13 martie 2013.

Criteriile de jurizare sunt: Fun 40%, Execution 30%, Innovation 20%, Business Viability 10%.

Innovation

Altă competiție pe echipe cu un premiu de 50 mii dolari! Presupune o abordare nouă, diferită, inovatoare a conceptelor cu care ne întâlnim la orice pas în lumea IT: social networks, muzică, web, dispozitive GPS de pe tablete sau telefoane… orice care poate fi utilizat altfel. De multe ori spuneam de-a lungul anilor în finalele de la Software Design că decisiv pentru accesul în finală este acel WOW factor care apare din ce în ce mai rar.

Secțiunea Innovation înlocuiește sau mai politically correct duce Software Design la un alt nivel, acela în care inovația este cheia. Vedem asta și din criteriile de jurizare: Innovation 45%, Impact 30%, Execution 25%.

Platformele acceptate pentru dezvoltarea aplicațiilor sunt: Windows, Windows Phone, Windows Server and/or ASP.NET, Kinect SDK, Xbox Indie Games, .NET Framework, Windows Azure.

Aș evita orientarea către jocuri în această secțiune. Nu le elimină complet, dar focusarea ar trebui să fie mai mult pentru modul în care prin intermediul aplicației respective se schimbă ceva în modul în care utilizăm tehnologia. De asemenea, componentele hardware, dezvoltate ”in house”, folosite mult pe zona de Embedded, ar putea exista în această secțiune. Cineva spunea într-o discuție (citez din memorie aproximativ): poți avea cea mai tare aplicație, dar esențial ar fi să bagi și ceva în USB.

World Citizenship

Altă secțiune derivată din Software Design, dar mai apropiată ca cerințe și temă de aceasta. Concurenții, organizați pe echipe ar trebui să realizeze o aplicație după cerințele asemănătoare cu cele ale secțiunii Innovation, dar care să fie orientată mai mult pe tema modului în care tehnologia ar putea ajuta cât mai mulți oameni să ducă o viață mai bună.

Criteriile de jurizare: Impact 50%, Feasibility 30%, Execution 20%

Windows 8 App este o secțiune care derivă din Windows Metro de anul trecut și constă în realizarea unei aplicații dedicate dispozitivelor cu touch screen și sistemului de operare Windows 8 (PC, Tablete, Telefoane și de ce nu televizoare…). Este tot o competiție pe echipe dar pentru a accede în runda a doua, echipa sau cel puțin un membru al echipei trebuie să promoveze o serie de teste on-line care vor putea fi susținute până pe 15 ianuarie 2013. Testele pot fi susținute deja dar la afișarea rezultatelor… mie îmi apare doar o eroare.

Pentru a vă putea califica în runda următoare trebuie să răspundeți corect la 15 întrebări din 30 la quiz-urile de calificare.

Windows Azure este o continuare a secțiunii de anul trecut în care echipa Complex din Cluj-Napoca a luat locul 2 în finala de la Sydney. Formatul competiției este asemănător cu cel de la Windows 8, numai că de data aceasta aplicația este orientată pe utilizarea facilităților oferite de platforma cloud Azure.

A nu se confunda Azure cu alte competiții. Celelalte competiții pot folosi Azure pentru suportul datelor, putere de procesare, mașini virtuale sau altele, în mod opțional, pe când secțiunea curentă este dedicată, centrată pe utilizarea Azure în soluția propusă și presupune utilizarea câtor mai multe funcționalități, facilități ale acestuia.

Testele pentru calificarea în Runda a doua pot fi susținute deja, și într-adevăr se afișează scorul la final. Interesant este că nu există limită de timp pentru susținerea unui test on-line, ceea ce dovedește că Microsoft este interesată în această fază de promovarea interesului pentru tehnologie și calificarea câtor mai multe echipe în Runda a doua.

Termenul limită de calificare este 15 ianuarie 2013, iar întrebările din quiz nu sunt foarte grele.

Windows Phone este de asemenea la a doua prezență în Imagine Cup regulile de la Windows 8 și Azure se aplică și la această secțiune, numai că aplicația creată trebuie să fie dedicată utilizării pe telefoanele cu sistem de operare Windows Phone 7 sau 8. Anul trecut am avut o echipă în finala de la Sydney în această secțiune și poate anul acesta cu mai multă implicare și cu experiența participării anterioare, vor reuși să ajungă pe podium.

Locul I la Challenges (8, Azure, Phone) este premiat cu 10 mii dolari.

 

După cum probabil ați aflat anul acesta își încheie existența secțiunea IT Challenge, cea care a adus cele mai multe premii și bucurie studenților români. A fost fain, dar rațiunile de marketing și promovare ale companiei Microsoft nu sunt la dispoziția discuțiilor și dezbaterilor noastre. Îmi închei și eu misiunea de Căpitan și Judecător în acea secțiune cu fruntea sus. Feedback-ul șefului Juriului, Rand Morimoto este mai mult decât concludent:

I am personally impressed with the level of effort, and the “maturity” you have made over the years of listening, learning, experiencing, and becoming so much better at what you do both in technology as well as in life!

You have helped a countless number of students from around the world who know you by name, that no doubt are walking this planet and better off because of your role, your mentoring, your support, your encouragement in the Imagine Cup!  We have only had the opportunity to meet a very very small handful of them, but literally “thousands” of students have passed our ways in the past 8 years, and it is our hope that at least 1 of them will be better off because of us, because of you!

It is selfless contribution to do things like the Imagine Cup where you did not make money to support it, and likely haven’t been thanked as many times as you deserve, to just know you made a difference!

I too am grateful for the opportunity I’ve had the past 8 years to work with the Imagine Cup, and the 8 years to have become a friend of yours on the other side of the world!  Think about it, you, Chris, and I have been on at least 4 continents together, working side by side into the middle of the nights!  I cherish our friendship, and as much as the Imagine Cup IT Challenge has come to a close, I look forward to see your children grow up, and you and your family continue in the loving support of one another for a very very long time to come!

Le  mulțumesc pe această cale tuturor celor care mi-au urmat îndemnul de a participat și au crezut în imposibilul de a fi primul din lume pe un domeniu atât de vast al serverelor de la Microsoft. Doar un scurt bilanț: 2005-2012, o medalie de bronz, 3 de argint și 2 de aur!

 

Pentru toate secțiunile importante sunt resursele puse la dispoziție la această adresă: http://compete.imaginecup.com/project-plan-templates

Voi reveni în 2013 cu noutăți, pentru că dinamica competiției nu mai permite generarea de content suplimentar. Din România nu avem vești… încă. Site-ul http://www.imaginecup.ro este preluat de o firma de chimicale SpecialChem ! Alt site de informare pentru studenții pasionați de IT, http://studentclub.ro/ în care se mai publicau informații despre Imagine Cup, a rămas la nivelul anului 2011. Alte surse de informare de prin România eu nu prea mai știu. Dacă aveți detalii vă rog să le lăsați la comentarii.

 

O să închei cu un citat ale lui Alan Kay, pionier al IT-ului mondial:

The best way to predict the future is to invent it.

 

 

Mult succes tuturor celor care cred în visul lor!

Problemă de formatare în Excel

[Update – Rezolvarea]

Soluția câștigătoare este cea care presupune execuția cu cel mai puțin efort posibil. Așa cum am specificat în mesajul inițial, formatarea condițională era soluția cea mai la îndemână. Problema este că din câte am fost învățați formatarea condițională la nivel de bloc de căsuțe se aplică pentru o valoare fixă… în soluțiile mai evoluate pentru o valoare specificată într-o anumită celulă.

Interesant în schimb este că Excelul știe, da Excelul știe, să aplice relativitatea celulelor în formatarea condițională. Și pentru mine a fost o surpriză, de aceea am ținut să partajez cu voi această problemă, pentru că ”nu-i așa?”… poate fi fun.

Nu vă mai fierb. Soluția era așa:

  1. Se selectează blocul de căsuțe de la B2 la F5
  2. Conditional formatting, Highlight Cells Rules, Less than
  3. În fereastra cu formula se scrie la Format cells that are… =$A2
  4. Ok

image

Și merge!

Stupid de simplu nu? Învățămintele pe care ar trebui să le deducem: nu trebuie să căutăm soluții complicate la probleme simple! Dacă avem o cale de urmat, suntem datori să o încercăm. Necunoașterea te face să pierzi mai mult timp decât ar trebui.

Îmi cer scuze celor care ar fi dorit să răspundă și nu le-a mers adresa de e-mail pe care am specificat-o greșit… din viteză!

O să-i specific doar pe cei care au trimis soluții complete sau sefe.

Primul care a răspuns la mesaj a fost OvidiuD, din Iași. Soluție corectă.

Al doilea a fost AlexandruD din București la câteva minute după soluția lui Ovidiu.

Al  treilea a fost IonutE din Brașov care a dat o soluție nu tocmai optimă dar corectă. La fel ca el am mai primit alte mesaje. Soluția lor era de a formata prima celulă din tabel și apoi cu Format Painter să copie formatarea din celula de date odată pe linie și apoi în jos. Nu e cea mai rapidă dar este corectă.

Mult mai puține soluții față de problema trecută dar una dintre ele merită premiul de soluția sefe, și vine de la CiprianS din Iași:

Se adauga codul de mai jos in Visual Basic Editor:

Private Sub Worksheet_Change(ByVal Target As Range)

    If Target.Column <> 1 Then

        currentRow = Target.Row

        If Target.Value < Cells(currentRow, 1).Value Then

            Target.Font.ColorIndex = 3

        End If

    End If

End Sub

Acum, eu zic că mă pricep puțin și la VBA, dar… o soluție nu este completă dacă nu are și o documentație corespunzătoare. Cum se execută? De ce? :) De multe ori ”butonangiilor”, cum ne spunea profesorul Oprea, li se pare pierdere de timp să-ți explice cum să folosești un cod. Dar mai mulți decât geeks sunt utilizatorii care nu pot obține/folosi rodul muncii fără documentația completă.

Cam atât pentru astăzi. Credeți că ar merge să vă dau o problemă cu rotunjiri la nivel de fracțiuni, pentru a cărei rezolvare am beneficiat și de ceva lăzi de bere? :)

Dacă aveți probleme interesante din Excel, dați un mail și le lansăm în public.

Mulțumesc tuturor pentru implicare.

PS. De ce fac chestiile astea? De fun! ;) Asta e menirea educației în fapt: ținerea cerebelului ocupat și partajarea cunoașterii. Că eu și mulți alții o facem instituționalizat?! Asta este doar chestie de conjunctură.

[/UPDATE]

 

Având în vedere interesul crescut față de subiect, m-am gândit să continui poveștile cu Excel și să vă dau o nouă problemă de rezolvat.

Se dă următorul tabel:

image

Se observă că valorile de pe coloanele 1,2,3,4,5 care sunt mai mici decât cele de pe coloana Refer sunt evidențiate. Aparent problema este simplă și orice utilizator trecut de nivelul începător se duce cu gândul spre formatarea condițională.

Numai că avem o constrângere foarte importantă! Soluția cea mai bună este cea care va prezenta un mod cât mai rapid de rezolvare sau utilizarea câtor mai puține operațiuni, formule, comenzi.

Soluțiile care presupun adăugarea și utilizarea de coloane suplimentare vor fi depunctate, dar vor fi lăudate dacă folosesc ”cârnați” întregi de formule, sub-formule și if-oase. :)

Aștept rezultatele pe e-mail la adresa: valygreavu [at] hotmail.com până marți, 18 septembrie ora 22:00. Nu comentați metodele de rezolvare în public, decât după expirarea timpului.

Succes!

Problemă cu șiruri in Excel

Sunt la un curs de Excel și mi-a venit în cap o problemă faină, zic eu, de Excel.

Așa că m-am gândit să o aduc în atenția voastră și să vă provoc la o rezolvare.

Rezultatele trebuie trimise prin e-mail la valygreavu [at] hotmail.com până joi, 13 septembrie ora 22:00.

UPDATE: Trimitere rezultate încheiată! Soluția câștigătoare:

=IF((LEFT(RIGHT(A2;3))=”.”);RIGHT(A2;2);RIGHT(A2;3))

Email Domeniu
x@yahoo.com com
y@yahoo.ro ro
j@hotmail.com com
m@x.jp jp
m@yyyy.com com
x@yahoo.com com
y@yahoo.ro ro
j@hotmail.com com
m@x.fr fr
m@yyyy.mx mx
j@hotmail.com com
m@x.jp jp
m@yyyy.com com

Link public la fisierul Excel cu soluțiile propuse: https://skydrive.live.com/redir?resid=6EC38785F56DAE91!2715

 

Cerința: Care este formula prin care obțineți valorile din dreapta?

Pentru clarificări dați comentarii. Pentru rezolvitori dați soluția pe mail. Cea mai bună soluție va fi publicată.

[UPDATE 14.09.2012 h 00:10]

Cea mai rapida solutie a venit de la Mircea P: =RIGHT(A2; LEN(A2)-SEARCH(„.”; A2; 1))  Foarte buna in contextual datelor, dar nu general valabila in contextual adreselor de tip: prenume.nume@domeniu.co.jp

Altă soluție: =MID(A2, FIND(„.”, A2) + 1, 4) nu se aplică în contextual adresei de mai sus.

Viorel L care mi-a fost student, dar nu la Excel, a spus ca problema este simpla. Si a venit cu formula: =RIGHT(A2;LEN(A2)-SEARCH(„.”;A2)) Normal ca nefunctionala pentru toate tipurile de adrese valabile de mail.

Alina C. a venit cu formula pe care o aveam si eu in minte: =IF((LEFT(RIGHT(A2;3))=”.”);RIGHT(A2;2);RIGHT(A2;3)) Se vede ca mi-a fost studenta si a facut Excel cu mine, chiar dacă la orele cu ei nu am facut așa ceva, se pare că a înțeles metoda :)

Ionut S. a vrut sa fie altfel si a trimis o solutie prin care sa scoti domeniul de mail nu domeniul de root. Formula lui arata: =LEFT(RIGHT(A2;LEN(A2)-FIND(„@”;A2));FIND(„.”;RIGHT(A2;LEN(A2)-FIND(„@”;A2)))-1) si se pare ca merge pe mai multe tipuri de adrese. De fapt pe toate pe care le-am testat eu, chiar dacă soluția originală nu este funcțională pentru a scoate domeniile de tara: =RIGHT(A2;LEN(A2)-FIND(„.”;A2))

Aceași soluție nefuncțională cu Right la început a mai venit de la alți concurenți, bună pentru exemplul dar, dar nu pentru toate adresele de e-mail valabile.

Simona C. a dat soluția corectă folosind aceeași formula ca Alina C. Si Simona a trecut pe la orele mele… deja devin suspicios.

Ovidiu D, a obținut rezultate destul de interesante în prima versiune, dar nu suficient de exacte. Formula lui: =RIGHT(A2;LEN(A2)-FIND(„.”;A2;FIND(„@”;A2;1))).

În ordinea mesajelor mi-a mai scris și Ala Posta, o soluție cu Viagra… dar nu se aplică în cadrul problemei curente :)

Ovidiu D a mai venit cu o soluție bazată pe array-uri. Din păcate formula: {=RIGHT(A2:A16;LEN(A2:A16)-FIND(„.”;A2:A16;FIND(„@”;A2:A16;1)))} returnează același rezultat, inexact ca cel al formulei de mai sus.

Mihai P a trimis o altă formă de RIGHT cu trim-uri =TRIM(RIGHT(A2;LEN(A2)-FIND(„.”;A2))) O menționez pentru că TRIM-urile pot avea un rol bun în lucrul cu șiruri… din păcate soluția se aplică doar pe datele de test nu și pe toate celelalte adrese de e-mail valabile.

Catalin D aplica un fel de hard-code prin formula sa: =MID(A2;SEARCH(„.”;A2;SEARCH(„@”;A2)+1)+1;6) Nu am înțeles cum a obținut acea valoare 6 din search, dar pare destul de matematizat pentru că ies destul de multe cazuri corect la iveala.

Andreea A propune asa după cum spune și ea o soluție mai băbească… care arată cam așa: =RIGHT(RIGHT(A2; LEN(A2)-FIND(„@”; A2)); LEN(RIGHT(A2; LEN(A2)-FIND(„@”; A2)))-FIND(„.”; RIGHT(A2; LEN(A2)-FIND(„@”; A2))))

Mie mi-a plăcut pentru că este lungă și drăguță… are atât de multe paranteze… :)))

Și în ordinea lor încă vre-o două mesaje cu right șiiii mid și right și len și search…

De departe în schimb cea mai lungă formulă îi aparține lui Constantin S:

=RIGHT(RIGHT(A2;LEN(A2) – SEARCH(„@”;A2)); LEN(RIGHT(A2;LEN(A2) – SEARCH(„@”;A2))) – SEARCH(„.”;RIGHT(A2;LEN(A2) – SEARCH(„@”;A2)))) Nefuncțională complet din păcate…

Așa cum îmi imaginam, Alexandru D. de la www.tutorialeoffice.ro a trimis cele mai multe și mai variate soluții de rezolvare a problemei cu datele de test prezentate. Din păcate nu toate exacte… făcând aceeași omisiune ca majoritatea, aceea de a rezolva problema fără a parcurge corect pașii: analiză, proiectare, implementare, testare, documentare și utilizare.

Aparent pare simplă problema dar metodologia de lucru în rezolvarea problemelor în Excel este să poți rezolva toate problemele de același tip sau cu diferite seturi de date, utilizând o singură formulă.

Felicitări Alinei și Simonei pentru soluție. Nu știu dacă este suficient pentru ele să știe că au reușit… să dea soluția corectă… pentru că trebuie să se mulțumească cu asta momentan. :)

Mulțumesc pentru implicare și sper că va plăcut!

PS. Vă provoc la o regulă de 3 simple sau la o ecuație de gradul 2 în Excel? :)

 

Blog la WordPress.com.

SUS ↑