Lively Kernel canvas
* MIT license
*
* Includes enhancements by Scott Trenda
* and Kris Kowal
*
* Accepts a date, a mask, or a date and a mask.
* Returns a formatted version of the given date.]]> 99 ? Math.round(L / 10) : L),
]]> 0 ? "-" : "+") + pad(Math.floor(Math.abs(o) / 60) * 100 + Math.abs]]> 3 ? 0 : (d % 100 - d % 10 != 10) * d % 10]
};
return mask.replace(token, function ($0) {
return $0 in flags ? flags[$0] : $0.slice(1, $0.length - 1);
});
};
}();
// Some common format strings
dateFormat.masks = {
"default": ]]>
savefalsenulltruenull
Wikicontroltruetrue
nulltrue5.Iteration:TimelineRestzeit:M-6hR-5.5hS-5.5h28.06.2hxMRS-Iterationsplanung28.06.0.5hxR-Wikiupdate29.06.,3.5hxS-S10finished30.06.,1.5hxS-S12finished04.07.,1hxMS-DiscussionaboutStory1107.07.,1hxMRS-Seminarvorbereitung08.07.,1.5hxMRS-Vortrag09.07.,0.5hxM-asynch.feedbackforstory11tocustomer(e-mail)10.07.,0.5hxM-CodeReading12.07.,1hxMR-codereading,smalldiscussionaboutversioning13.07.,3hxM-TLSbugfixed,Story11Task1+2finished14.07.,0.5hxM-Story11Task314.07.,4.5hxR-Story9Task1,Story9Task2started19.07.,4hxS-SSLsupportstarted23truetruefalsetruetruefalse
false00.11truefalsetruetruefalse
nullfalsetruenullfalse
Workspacefalsenulltruefalse
false
false
falsenullfalsefalsenullnullnullnullfalse
nulltrueRestzeit:M-1hR-1.5hS-0h31.05.,0.5hxS-CodeReview31.05.,3hxMRS-Iterations-undArchitekturplanung01.06.,4.5hxS-Refactoring02.06.,5.5hxR-TowardsStory2Task303.06.,2.5hxS-Codereview.Improvingtests.06.06.,1.5hxMS-Improvingtests.WorkingonProcessbug06.06.,1hxS-WorkingonProcessbug09.06.,1.5hxMRS-VorbereitungSeminar09.06.,1hxM-Story3Task1finished10.06.,1.5hxMSR-PresentationaboutTests12.06.,2hxM-Story3Task2started12.06.,2hxM-Story3Task2finished;methodwrappersfixed13.06.,3hxM-Story3Task3almostfinished(excepttheReboot-Feature)13.06.,3hxR-Story4Task1+CodeReading/Refactoring2truetruefalsetruetruefalse
false00.11truefalsetruetruefalse
nullfalsetruenullfalse
Workspacefalsenulltruefalse
false
false
falsenullfalsefalsenullnullnullnullfalse
nulltrueRestzeit:M-5.75hR-3.5hS-4h14.06.,1.5hxMRS-PlanungIteration414.06.,0.5hxMR-BesprechungSerialisierung14.06.,5.5hxR-ChangingSerializationusingMappableRefStreamforStory514.06.,4hxS-[Story5finished][Story6finished][Story7Task1finished]15.06.,3hxMS-Refactoring,bugfxing19.06.,3.5hxRS-[Story7finished],Finilizationissues20.06.,3.5hxR-[Story8Task1finished]22.06.,1,75hxM-AddressBookconnectedtoSqSync;Demo-Codeprepared.15truetruefalsetruetruefalse
false00.11truefalsetruetruefalse
nullfalsetruenullfalse
Workspacefalsenulltruefalse
false
false
falsenullfalsefalsenullnullnullnullfalse
nulltrue1.Iteration:TimelineRestzeit:M-5,25hR-4hS-2.5h03.05.,4hx3-MRS-Iterationsplanung,RückfragenüberallgemeineAufgabenstellung,Storiesaufstellen+abschätzen05.05.,1hx1-M-MarcelhatIdeenfürTasksfürStory1aufgeschrieben06.05.,1hx2-MS-StefanundMarcelhabensichüberTasksundtechnischeDetailsunterhalten;Robertkamspäterhinzu06.05.,1hx3-MRS06.05.,0.5hx2-RS-StefanundRoberthabenTasksfürStory2aufgestelltundalleTasksabgeschätzt09.05.,1hx1-M-TestsfürTCPServergeschrieben09.05.,1hx2-MS-KurzesGesprächbzgl.Kommunikationsmodel(K)undModul"P"inkl.GedankenzuThreads09.05.,1,75hx1-M-VersuchTCPServerzubasteln,AkzeptierenvonConnectionswirft"primitivefailed"...toll09.05.,1hx1-R-BastisActorsausprobiert.EinActorkannasynchronSqueakNachrichenueberTCPempfangen.EinActor(ObjektwasvonKlasseActorerbt)kanndurcheinObjektderKlasseActorIdrepresentiertwerden.ActorIdempfaengtundserialisiertdannNachrichtenumsiezumActorzuschickendersieausfuehrt.DerMechanismuskannprinzipiellzumOperationssendenbenutztwerden.[Story1Task2done]10.05.,1h1-M-TCP-Server/Clientgehtprinzipiell,allerdingsistesnichrichtigtestbarwegendenThreads...ichhättemichhierhoffnungslosverschätzt==>TDDkostethierZeit!10.05.,2h1-S-Kommunikationsmodul-Reviewundfixes14.05.,5.5h1-R-HmmaberohneTestsisteshaltauchschlecht,ichweißnichtwasgehtundwannichwaskaputtmache.AlsohabichdieTestserstmalzumlaufengebracht...[Story1Task3]15.05.,4h1-S-Tryingtofixdeadlockprobleminservertestsandfailedwithit.Donesometasks[Story1Task1done][Story1Task4done][Story1Task5done]16.05.,3h1-S-Workingonmethodwrappers[Story2Task1done] TDD kostet hier Zeit!\n10.05., 2h 1 - S\t\t - Kommunikationsmodul-Review und fixes\n14.05., 5.5 h 1- R - Hmm aber ohne Tests ist es halt auch schlecht, ich weiß nicht was geht und wann ich was kaputt mache. Also hab ich die Tests erstmal zum laufen gebracht... [Story 1 Task 3]\n15.05., 4h 1 - S\t\t - Trying to fix deadlock problem in server tests and failed with it. Done some tasks [Story 1 Task 1 done] [Story 1 Task 4 done] [Story 1 Task 5 done]\n16.05., 3h 1 - S\t\t - Working on method wrappers [Story 2 Task 1 done]"]]>34truetruefalsetruetruefalse
false00.11truefalsetruetruefalse
nullfalsetruenullfalse
Workspacefalsenulltruefalse
false
false
falsenullfalsefalsenullnullnullnullfalse
2.Iteration:TimelineRestzeit:M--2.0hR-1.5hS--0.5h17.05.,2.5hxMRS-Iterationsplanung17.05.,3hxS-[Story2Task1]19.05.,1hxM-CodeReview+Coding-GuidelinesimWikinotiert19.05.,3hxMRS-BesprechungmitKunden19.05.,0.5hxMS-Nachbesprechung20.05.,2hxS-[Story2Task2done]25.05.,2.5hxS-[Story2Task3]26.05.1.5hxMRS-VorbereitungSeminar,VortragUserStories26.05.0.5hxM-CodeReview+RefactoringimHinblickaufnochoffeneTasks26.05.3hxR-TCPServerfix(testsandreliability)Story1Task227.05.,1.5hxMRS-Seminar-Termin29.05.,3hxMR-WorkaroundforSocketbugunderWindows,Codereview30.05.,1.5hxM-RefactoringanddocumentationofWireProtocol(SySimpleProtocolProcessor)30.05.,1.5hxM-Nextstepsfor[Story2Task4]31.05.,1.5hxM-Somerefactoringofprotocolprocessorwithrespecttostory2task4truetruefalsetruetruefalse
false00.11truefalsetruetruefalse
nullfalsetruenullfalse
Workspacefalsenulltruefalse
false
false
falsenullfalsefalsenullnullnullnullfalse
nulltrueline='28.06.2.5hxMRS-Iterationsplanung';parseLine=function(line){try{vardataRegex=/([0-9]+\.[0-9]+\.),?\s*/if(!dataRegex.test(line))returnnullvardate=dataRegex.exec(line)[1]if(!date)returnnullline=line.replace(dataRegex,'')vartimeRegex=/([0-9\.\,]+)h?\s*/vartime=timeRegex.exec(line)[1]time=time.replace(',','.')if(!time)returnnullline=line.replace(timeRegex,'')varpersonsRegex=/x?\s*\-?\s*([MRS]+)/varpersons=personsRegex.exec(line)[1]if(!persons)returnnullvarpersonSpecs=['M','R','S'].collect(function(ea){return{person:ea,time:persons.include(ea)?parseFloat(time):0,toString:function(){returnthis.person+':'+this.time},mergeWith:function(otherPersonSpec){if(this.person!=otherPersonSpec.person)thrownewError('Personnotthesame');this.time+=otherPersonSpec.time;},asCSV:function(){returnthis.time||'0'},};});varlineSpec={date:date,persons:personSpecs,toString:function(){returnthis.date+':'+this.persons},mergeWith:function(otherLineSpec){if(this.date!=otherLineSpec.date)thrownewError('Datenotthesame');this.persons.forEach(function(myPersonSpec){otherLineSpec.persons.forEach(function(oherPersonSpec){if(myPersonSpec.person==oherPersonSpec.person)myPersonSpec.mergeWith(oherPersonSpec);});});},personNamed:function(name){returnthis.persons.detect(function(p){returnp.person==name})},asCSV:function(){vartimes=['M','R','S'].collect(function(ea){return(this.personNamed(ea)&&this.personNamed(ea).asCSV())||'0'},this);return''+this.date+','+times.join(',')},};returnlineSpec;}catch(e){debugger}}mergeAll=function(lineSpecs){returnlineSpecs.inject([],function(all,lineSpec){if(!lineSpec)returnallvarsameDateLine=all.detect(function(ea){returnlineSpec.date==ea.date});if(sameDateLine){sameDateLine.mergeWith(lineSpec)returnall}returnall.concat([lineSpec])});}parseLines=function(t){varlines=t.split('\n')varlineSpecs=lines.collect(function(ea){returnparseLine(ea)})result=mergeAll(lineSpecs);//fillemptydatesall.push(lineSpec)returnall;})}$A('SMR').sortBy(function(a,b){returna.charCodeAt(0)})mergeAll([parseLine(line),parseLine(line)])lines.collect(function(ea){returnea.asCSV()}).join('\n')returnlineSpecs.inject([],function(all,lineSpec,i){if(!lineSpec)returnallif(!lineSpec.date||!lineSpecs[i-1]||!lineSpecs[i-1].date)return[lineSpec];lines=parseLines($morph('text5').textString)varprevDay=parseInt(lineSpecs[i-1].date);varthisDay=parseInt(lineSpec.date);if(prevDay==thisDay+1)returnallvarendDay=thisDay<=prevDay?31://newmonthhasbegun,filluntil31.thisDay-1;while(prevDay<endDay)prevDay++;all.push({date:prevDay.toString()})83truetruefalsetruetruefalse
false00.11truefalsetruetruefalse
nullfalsetruenullfalse
Workspacefalsenulltruefalse
false
false
falsenullfalsefalsenullnullnullnullfalse
dismissallfalsenulltruefalsetrue
Xfalsenulltruefalsetrue
serializing....16nulltrue
null211