Array multisort? -> http://php.net/manual/en/function.array-multisort.php
[ Voor 64% gewijzigd door azerty op 20-03-2012 13:43 ]
Dit topic is onderdeel van een reeks. Ga naar het meest recente topic in deze reeks.
[ Voor 64% gewijzigd door azerty op 20-03-2012 13:43 ]
1
2
3
| var a = new[] { new { x = "Aap", y = "Jaap" }, new { x = "Noot", y = "Thomas" } }; a.OrderBy(item => item.x).ThenBy(item => item.y); |
.oisyn: Échte programmeurs haten PHP met een passie. Ben jij soms geen echte programmeur?
Daar heeft hij lekker veel aan in PHP...
"The people who are crazy enough to think they could change the world, are the ones who do." -- Steve Jobs (1955-2011) , Aaron Swartz (1986-2013)
Het ging mij alleen maar om de comment dat je zei dat het op bijna niemand van toepassing was, Die mening deel ik nietCodeCaster schreef op dinsdag 20 maart 2012 @ 13:28:
Het ging mij niet om ZFS aan te vallen, wat je haast lijkt te denken als ik je reactie zo lees, maar vergeet vooral ook niet de tweede helft van mijn post die je quotet even door te lezen.
Gelukkig staat in de kop van het artikel genoemd dat er meerdere delen aan zitten te komen, ik blijf het graag volgen. Meer dev-verhalen mogen wat mij betreft ook, maar er is maar een handvol mensen die in die categorie bloggen, en ook t.net besteedt er niet bijster veel aandacht aan.
Daarom vind ik het injectieverhaal wel een pluim waard.
Nothing to see here!
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
| /** * Sort a given array by the given field names * * @param Array the array to sort * @param list of fields to sort */ public static function multiSort() { //get args of the function $args = func_get_args(); $argsc = count($args); if ($argsc < 2) { return false; } //get the array to sort $array = array_splice($args, 0, 1); $array = $array[0]; //sort with an anoymous function using args usort($array, function($a, $b) use($args) { $i = 0; $count = count($args); $cmp = 0; while($cmp == 0 && $i < $count) { $cmp = strcmp($a[ $args[ $i ] ], $b[ $args[ $i ] ]); $i++; } return $cmp; }); return $array; } |
1
2
| //sort with an anoymous function using args //set int to 3 |
[ Voor 6% gewijzigd door PrisonerOfPain op 20-03-2012 13:55 ]
1
2
| xs = [dict(x='Aap',y='Jaap'), dict(x='Noot',y='Thomas')] xs.sort(key=lambda e: (e['x'], e['y'])) |
Ipsa Scientia Potestas Est
NNID: ShinNoNoir
?PrisonerOfPain schreef op dinsdag 20 maart 2012 @ 13:55:
C:
1 2 //sort with an anoymous function using args //set int to 3
[ Voor 28% gewijzigd door D-Raven op 20-03-2012 14:40 ]
Je comment was nogal, uhm, stating the obvious ;-)
Dat is een probleem van wel meer (oude) talen. Kijk naar C, met z'n va_start(), va_arg() en va_end(). C heeft dan wel weer dat je voor variabele argumenten wel reguliere argumenten kunt opgeven, en uit dat stukje PHP blijkt dat laatstgenoemde dat niet kan.D-Raven schreef op dinsdag 20 maart 2012 @ 14:39:
Die func_get_args();![]()
Waarom zou je fatsoenlijke language constructs verzinnen als t ook zo kan
ow en dit is geen stab naar Alienfruit, maar meer naar de makers van php
.oisyn: Échte programmeurs haten PHP met een passie. Ben jij soms geen echte programmeur?
Wat is daar mis mee? Waarom moet je een "language construct" verzinnen als je het prima op kunt lossen met een library functie / variabele / whatever?D-Raven schreef op dinsdag 20 maart 2012 @ 14:39:
Die func_get_args();![]()
Waarom zou je fatsoenlijke language constructs verzinnen als t ook zo kan
[ Voor 21% gewijzigd door .oisyn op 20-03-2012 15:09 ]
Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.
Omdat als er een "language construct" voor is, je in 1 opslag ziet dat de argumenten van de functie in de functie zelf worden afgehandeld ipv dat je moet gaan zoeken/kijken of er een func_get_args() o.i.d. in staat..oisyn schreef op dinsdag 20 maart 2012 @ 15:09:
[...]
Wat is daar mis mee? Waarom moet je een "language construct" verzinnen als je het prima op kunt lossen met een library functie / variabele / whatever?
1
2
3
4
5
| def i_accept_anything(*args) args end i_accept_anything 1, 2, 3 # => [1, 2, 3] |
[ Voor 19% gewijzigd door Gamebuster op 20-03-2012 15:31 ]
Let op: Mijn post bevat meningen, aannames of onwaarheden
Korben schreef op dinsdag 20 maart 2012 @ 13:43:
C#:
1 2 3 var a = new[] { new { x = "Aap", y = "Jaap" }, new { x = "Noot", y = "Thomas" } }; a.OrderBy(item => item.x).ThenBy(item => item.y);
Bow before the expressive power of LINQ.
1
2
3
4
| let thenBy = mappend in sortBy (comparing snd `thenBy` flip(comparing fst)) [(1,5), (1,4), (7,4)] |
Ipsa Scientia Potestas Est
NNID: ShinNoNoir
Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.
There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.
Je eigen tweaker.me redirect
Over mij
]|[ Apple Macbook Pro Retina 13" ]|[
En ik zie ook net dat PHP 5.4.0 al een tijdje uit is (20 dagen); waarbij "Function array dereferencing has been added, e.g. foo()[0]" een zaligheid is
Hebben ze dat nu eindelijkStyxxy schreef op dinsdag 20 maart 2012 @ 22:49:
[...]
En ik zie ook net dat PHP 5.4.0 al een tijdje uit is (20 dagen); waarbij "Function array dereferencing has been added, e.g. foo()\[0]" een zaligheid is.
Ik ga git als VCS steeds meer waarderen
If money talks then I'm a mime
If time is money then I'm out of time
About time. Maar waarschijnlijk kun je dan nog steeds geen members accessen van een object dat wordt gereturnd door een functie. $v = foo()->bla.Styxxy schreef op dinsdag 20 maart 2012 @ 22:49:
[...]
En ik zie ook net dat PHP 5.4.0 al een tijdje uit is (20 dagen); waarbij "Function array dereferencing has been added, e.g. foo()\[0]" een zaligheid is.
Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.
Pussy...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
| using System; using System.IO; using System.Linq; using System.Xml; using System.Xml.Linq; using Shell32; namespace MyIndexerApplication { class Program { static void Main(string[] args) { var b = @"\\someserver\someshare\somepath"; new XElement("root", new XAttribute("path", b), new DirectoryInfo(b).GetDirectories() .Select(s => new XElement("subject", new XAttribute("name", s.Name), new DirectoryInfo(s.FullName).GetDirectories() .Select(c => new XElement("course", new XAttribute("name", c.Name), new XAttribute("playlist", new DirectoryInfo(c.FullName).GetFiles("*.wpl").Single().Name), new DirectoryInfo(c.FullName).GetDirectories() .Select(m => new XElement("module", new XAttribute("name", m.Name), new DirectoryInfo(m.FullName).GetFiles("*.wmv") .Select(v => new XElement("video", new XAttribute("name", v.Name), new XAttribute("filesize", v.Length), new XAttribute("duration", v.GetDuration().TotalSeconds) )) )) )) )) ).WriteTo(XmlWriter.Create(Path.Combine(b, "index.xml"), new XmlWriterSettings() { Indent = true })); } } static class Extensions { private static ShellClass shell = new ShellClass(); public static TimeSpan GetDuration(this FileInfo file) { var folder = shell.NameSpace(file.DirectoryName); var item = folder.ParseName(file.Name); return TimeSpan.Parse(folder.GetDetailsOf(item, 27)); } } } |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
| <?xml version="1.0" encoding="utf-8"?> <root path="\\someserver\someshare\somepath"> <subject name="somesubject1"> <course name="somecourse1" playlist="someplaylist1.wpl"> <module name="somemodule1"> <video name="somevideo1.wmv" filesize="1565640" duration="61" /> <video name="somevideo2.wmv" filesize="3317024" duration="129" /> ... </module> <module name="somemodule2"> <video name="somevideo1.wmv" filesize="262552" duration="8" /> <video name="somevideo2.wmv" filesize="1822722" duration="74" /> ... </module> </course> <course name="somecourse2" playlist="someplaylist2.wpl"> ... </course> </subject> <subject name="somesubject2"> ... </subject> ... </root> |
[ Voor 21% gewijzigd door RobIII op 20-03-2012 23:24 ]
There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.
Je eigen tweaker.me redirect
Over mij
Nonsens. En dan bedoel ik dat een taalfeature niet dat voordeel impliceert, noch dat het gemis ervan impliceert dat je het ook niet kan zien.Gamebuster schreef op dinsdag 20 maart 2012 @ 15:25:
[...]
Omdat als er een "language construct" voor is, je in 1 opslag ziet dat de argumenten van de functie in de functie zelf worden afgehandeld ipv dat je moet gaan zoeken/kijken of er een func_get_args() o.i.d. in staat.
Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.
Leuk als je een exception op regel 15 krijgt
VS hightlight anders heel aardig waar 't probleem zit:
Lang leve API calls: 27 == 0x1b == constante_voor_duratie_indexmatthijsln schreef op dinsdag 20 maart 2012 @ 23:39:
Vreemde magic number 27 trouwens. "This value corresponds to the zero-based column number that is displayed in a Shell view". Ok...
Hoe ik aan 27 ben gekomen weet ik niet meer, vast empirisch bepaaldiColumn [in]
Type: UINT
The zero-based index of the desired information field. It is identical to the column number of the information as it is displayed in a Windows Explorer Details view.
[ Voor 23% gewijzigd door RobIII op 21-03-2012 00:08 ]
There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.
Je eigen tweaker.me redirect
Over mij
Inderdaad, dat werd tijd. Al gebruik ik PHP ook erg weinig nog tegenwoordig.Sh4wn schreef op dinsdag 20 maart 2012 @ 22:51:
[...]
Hebben ze dat nu eindelijkEr zit tegenwoordig toch nog een beetje progressie in die taal. Al zal ik waarschijnlijk niet meer terug gaan nu ik Python heb.
Ik heb het nog niet getest, maar misschien is het mogelijk, ze hebben al het volgende toegevoegd: "Class member access on instantiation has been added, e.g. (new Foo)->bar()."..oisyn schreef op dinsdag 20 maart 2012 @ 22:57:
[...]
About time. Maar waarschijnlijk kun je dan nog steeds geen members accessen van een object dat wordt gereturnd door een functie. $v = foo()->bla.
Het is meer een kwestie van smaak of je liever bepaalde zaken expliciet ziet of dat deze impliciet hebt. Zo zegt de formele parameterlijst in JavaScript niets..oisyn schreef op dinsdag 20 maart 2012 @ 23:08:
[...]
Nonsens. En dan bedoel ik dat een taalfeature niet dat voordeel impliceert, noch dat het gemis ervan impliceert dat je het ook niet kan zien.
1
2
3
| function foo(a, b) { // ... } |
1
2
3
4
5
6
7
8
9
10
11
| # precies 2 positionele argumenten: def foo(a, b): pass # op z'n minst 1 positioneel argument: def bar(a, *args): pass # precies 0 positionele argumenten, 0 of meer keyword-argumenten def quux(**kwargs): pass |
Ipsa Scientia Potestas Est
NNID: ShinNoNoir
Dat kon al tijden, sinds 5.0 als ik het correct heb onthouden. Met PHP 5.4 kun je nu ook constructies doen als (new Foo())->bar. Ik vrees alleen dat we nog steeds niet alle combinaties kunnen gaan gebruiken....oisyn schreef op dinsdag 20 maart 2012 @ 22:57:
[...]
About time. Maar waarschijnlijk kun je dan nog steeds geen members accessen van een object dat wordt gereturnd door een functie. $v = foo()->bla.
Eigenaar/brouwer Milky Road Brewery
Je bent een dag te laat met het 'nieuws' ^^ -> http://gathering.tweakers.net/forum/view_message/37898746Sardaukar schreef op woensdag 21 maart 2012 @ 09:11:
PHP is overgestapt op Git. Hebben ze in ieder geval een goed versiebeheer systeem (nu de taal nog)
Lekker op de bank
Foei!
Die eerste zin heb ik toch paar keer moeten lezenEvilbee schreef op woensdag 21 maart 2012 @ 10:35:
Ik krijg net een telefoontje van een klant dat ze geen materiaal verbruiken meer ontvangen van een productie order. Blijkt dat de applicatie die die berichten moet produceren, zeer slechte logging heeft. Dus net de applicatie aangepast en op productie gegooid. Nu maar weer afwachten tot de fout optreed...
Helemaal mee eens, maar dat was de discussie niet. De discussie was waarom je voor een library oplossing zou gaan als het net zo goed met een taalaanpassing kon. Die stelling draai ik persoonlijk liever om. Je gaat je grammatica niet uitbreiden als dat compleet onnodig is.RayNbow schreef op woensdag 21 maart 2012 @ 07:43:
[...]
Het is meer een kwestie van smaak of je liever bepaalde zaken expliciet ziet of dat deze impliciet hebt.
Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.
Ik zit dan ook in een ander domein dan de meesteStyxxy schreef op woensdag 21 maart 2012 @ 10:56:
[...]
Die eerste zin heb ik toch paar keer moeten lezen.
Nee, helaas. Klant heeft geen test systeem voor de database waar deze applicatie zijn gegevens uitleest. En op zulke momenten moet je snel handelen omdat anders de productie stil komt te liggen.En applicatie even snel aanpassen en in productie? Brr. Hebben jullie geen tussen "stages"?
Maar dat is ook weer een kwestie van smaak. Als iets met een library kan, prima. Echter in het geval van PHP voelt de library-oplossing voor mij magisch aan. Ik bedoel, func_get_args() is niet een functie die je zelf zou kunnen implementeren. Het is een speciale functie die de makers van de taal beschikbaar hebben gesteld, maar er uitziet als een normale functie..oisyn schreef op woensdag 21 maart 2012 @ 11:02:
[...]
Helemaal mee eens, maar dat was de discussie niet. De discussie was waarom je voor een library oplossing zou gaan als het net zo goed met een taalaanpassing kon. Die stelling draai ik persoonlijk liever om. Je gaat je grammatica niet uitbreiden als dat compleet onnodig is.
Ipsa Scientia Potestas Est
NNID: ShinNoNoir
Hence "persoonlijk draai ik die liever om". Maar het is niet alleen een kwestie van smaak. Een library-aanpassing is veel makkelijker dan een taal-aanpassing.RayNbow schreef op woensdag 21 maart 2012 @ 11:20:
[...]
Maar dat is ook weer een kwestie van smaak.
Sorry maar dit vind ik echt een onzin-verhaal. PHP is enorm gelimiteerd, het heeft zijn modules nodig om zinnige dingen te kunnen doen. Deze functie haakt in op de VM, daar zijn tal van voorbeelden van in andere talen (zoals reflection in Java). Maar ook iets als printf() in C, kun je ook niet implementeren met puur C, daar heb je OS-specifieke zaken voor nodig die door anderen zijn geïmplementeerd. Is printf() dan nu in eens een "magische functie"? Absoluut niet. Het is gewoon een library functie zoals elke andere. En iedereen kan func_get_args() implementeren in een module.Als iets met een library kan, prima. Echter in het geval van PHP voelt de library-oplossing voor mij magisch aan. Ik bedoel, func_get_args() is niet een functie die je zelf zou kunnen implementeren. Het is een speciale functie die de makers van de taal beschikbaar hebben gesteld, maar er uitziet als een normale functie.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
| /* {{{ proto array func_get_args() Get an array of the arguments that were passed to the function */ ZEND_FUNCTION(func_get_args) { void **p; int arg_count; int i; zend_execute_data *ex = EG(current_execute_data)->prev_execute_data; if (!ex || !ex->function_state.arguments) { zend_error(E_WARNING, "func_get_args(): Called from the global scope - no function context"); RETURN_FALSE; } p = ex->function_state.arguments; arg_count = (int)(zend_uintptr_t) *p; /* this is the amount of arguments passed to func_get_args(); */ array_init_size(return_value, arg_count); for (i=0; i<arg_count; i++) { zval *element; ALLOC_ZVAL(element); *element = **((zval **) (p-(arg_count-i))); zval_copy_ctor(element); INIT_PZVAL(element); zend_hash_next_index_insert(return_value->value.ht, &element, sizeof(zval *), NULL); } } /* }}} */ |
[ Voor 41% gewijzigd door .oisyn op 21-03-2012 12:03 ]
Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.
[ Voor 99% gewijzigd door EvertonPride op 21-03-2012 12:09 ]
Mag niet. Het is hier geen helpdesk!EvertonPride schreef op woensdag 21 maart 2012 @ 12:02:
Ik ben nu 2 dagen bezig aan een JQuery site.
Op dit moment lijkt alles goed te werken als ik in IE9 kijk maar toch zie ik dat mijn container div niet goed werkt.
Hopelijk kan iemand het achterhalen wat het probleem is, zou mij veel tijd schelen bvd!
[ Voor 69% gewijzigd door EvertonPride op 21-03-2012 12:11 ]
Ja inderdaad, waarom zou je überhaupt nadenken over de syntax en expressiviteit van je taal als je het kunt oplossen door een functie ertegen aan te gooien..oisyn schreef op dinsdag 20 maart 2012 @ 15:09:
[...]
Wat is daar mis mee? Waarom moet je een "language construct" verzinnen als je het prima op kunt lossen met een library functie / variabele / whatever?
Ik begrijp dat persoonlijk voorkeur hier zeker een rol in speelt. Mijn mening is dat in dit specifieke voorbeeld een taalaanpassing gerechtvaardigd zou zijn..oisyn schreef [/message]:
[...]
.. De discussie was waarom je voor een library oplossing zou gaan als het net zo goed met een taalaanpassing kon. Die stelling draai ik persoonlijk liever om. Je gaat je grammatica niet uitbreiden als dat compleet onnodig is.
Maak gewoon een eigen topic (hanteer daarbij onze Quickstart en post énkel en alléén relevante(!) code; dat heet: een uitgeklede testcase). Zo'n testcase kun je bijvoorbeeld op http://jsfiddle.net in elkaar draaien.EvertonPride schreef op woensdag 21 maart 2012 @ 12:10:
Mijn excuses, welk topic kan ik dan het beste zijn?
[ Voor 8% gewijzigd door RobIII op 21-03-2012 12:24 ]
There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.
Je eigen tweaker.me redirect
Over mij
Je zegt het alsof "een functie ertegenaan gooien" nooit gewenst is, maar je verzaakt erbij te zeggen waarom dat is. Imho is dat een mentaliteit die gewoon niet klopt. Er is niets mis met functies.D-Raven schreef op woensdag 21 maart 2012 @ 12:21:
Ja inderdaad, waarom zou je überhaupt nadenken over de syntax en expressiviteit van je taal als je het kunt oplossen door een functie ertegen aan te gooien.
Maar dat is wat ik al eerder zei, een library-oplossing impliceert niet meteen dat het niet duidelijk hoeft te zijn. Kijk maar naar C, die heeft de ellipsis als taalconstructie, zodat je duidelijk kunt zien dat een functie een aantal optionele argumenten accepteert. Maar dat betekent nog niet meteen dat je ook parameter packs nodig hebt. C lost het op met de va_* macro's (een taaloplossing is overigens ook zo goed als onmogelijk in dat geval), PHP heeft iets equivalents met func_get_args(). Je kunt stellen dat PHP niet goed documenteert dat een functie meerdere argumenten verwacht, maar dat is niet de schuld van func_get_args(), en dergelijke documentatie verhindert niet het bestaan van func_get_args().Als die parameter definities gewoon in de function declaratie beschreven staan zal er nooit onduidelijkheid zijn over hoe je die functie moet aanroepen. Je typt de naam van de functie -> ( ah kijk, dat is er nodig, en zo roep ik m aan. Nooit geen verwarring, duidelijkheid.
Jij bent dus altijd voor onnodige uitbreidingen?Dus jou opmerking over dat je je grammatica niet gaat uitbreiden als dat compleet onnodig is, ben ik niet mee eens.
[ Voor 10% gewijzigd door .oisyn op 21-03-2012 12:46 ]
Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.
Meh.RobIII schreef op dinsdag 20 maart 2012 @ 22:57:
[...]
Pussy...
C#:
1...
Output:
XML:
1 ...
Moet alleen nog eens uitpuzzelen of een welgemikte AsParallel nog iets uit gaat halen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
| private MemberBinding GetLabelPropertyMemberBinding(Type intermediateType, LabelPropertyInformation labelProperty, ParameterExpression parameterExpression, Language language) { var translationParameterExpression = Expression.Parameter(typeof (Translation), "tran"); return Expression.Bind ( intermediateType.GetProperty(labelProperty.StringProperty.Name), Expression.Property ( Expression.Call ( typeof (Enumerable), "SingleOrDefault", new[] { typeof (Translation) }, Expression.Property ( Expression.Property(parameterExpression, labelProperty.LabelProperty), "Translations" ), Expression.Lambda ( typeof (Func<Translation, bool>), Expression.Equal ( Expression.Property(translationParameterExpression, "LanguageId"), Expression.Constant(language.LanguageId) ), translationParameterExpression ) ), "Value" ) ); } |
[ Voor 5% gewijzigd door Korben op 21-03-2012 12:47 ]
.oisyn: Échte programmeurs haten PHP met een passie. Ben jij soms geen echte programmeur?
[ Voor 4% gewijzigd door .oisyn op 21-03-2012 13:13 ]
Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.
Jouw logica faalt wel hard hier hoor. Ik kan iig met geen mogelijkheid jouw conclusie uit die zin trekken. Het ergste wat je er uit kan halen is dat hij voorstander is van 1 van de volgende:.oisyn schreef op woensdag 21 maart 2012 @ 12:38:
Dus jou opmerking over dat je je grammatica niet gaat uitbreiden als dat compleet onnodig is, ben ik niet mee eens.
Jij bent dus altijd voor onnodige uitbreidingen?
[ Voor 195% gewijzigd door .oisyn op 21-03-2012 13:36 ]
Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.
Accelerometer support is available in Mobile Safari and this enables the browser to sense movement, speed and direction with Javascript on iPhone and iPad devices. If we push the movement data from the iOS device instantly through a nodejs server to a browser, then we can control a game on the browser.
Er zit een behoorlijke vertraging in, bij mij in ieder geval. Het is dan ook meer een proof-of-concept dan echt nuttig op moment. Neemt niet weg dat ik wel even verbaast was toen ik het zag/speelde.TheNephilim schreef op woensdag 21 maart 2012 @ 13:48:
Dat is inderdaad wel erg gaaf! Hoeveel lag heb je met deze manier vraag ik me wel af. De data gaat van je telefoon (via wifi) naar de comet/push/etc server en die laat vervolgens de game (in browser) weer weten wat er gebeurd.
Voor games zoals in de voorbeelden moet dat niet echt een probleem wezen denk ik trouwens.
[ Voor 36% gewijzigd door OkkE op 21-03-2012 13:51 ]
“The best way to get the right answer on the Internet is not to ask a question, it's to post the wrong answer.”
QA Engineer walks into a bar. Orders a beer. Orders 0 beers. Orders 999999999 beers. Orders a lizard. Orders -1 beers.
Ik dacht dat de.oisyn schreef op woensdag 21 maart 2012 @ 13:19:
Jouw logica faalt, want ik poneer geen stelling maar een vraag. Thank you come again
Daar ga ik vanavond wel even op zitten, maar is het niet zo?Daarnaast is "altijd" geïmpliceerd. Als stelling 1 of 2 waar is, dan is er geen moment dat stelling 1 of 2 niet waar is, want je definieert immers dat ze waar zijn.
[...]
[ Voor 12% gewijzigd door Caelorum op 21-03-2012 13:51 ]
Dat is inderdaad wel erg gaaf! Hoeveel lag heb je met deze manier vraag ik me wel af. De data gaat van je telefoon (via wifi) naar de comet/push/etc server en die laat vervolgens de game (in browser) weer weten wat er gebeurd.OkkE schreef op woensdag 21 maart 2012 @ 13:42:
Ik had al wel van de mogelijkheid gehoord, maar nog nooit een demo gezien. Vrij indrukwekkend, vond ik het.
Using an iOS device to control a game on your browser:
http://www.webdigi.co.uk/...l-a-game-on-your-browser/
[...]
Ik denk dat je wel begrijpt dat die eerste alinea van mij enigszins met sarcasme doordrenkt was.oisyn schreef op woensdag 21 maart 2012 @ 12:38:
[...]
Je zegt het alsof "een functie ertegenaan gooien" nooit gewenst is, maar je verzaakt erbij te zeggen waarom dat is. Imho is dat een mentaliteit die gewoon niet klopt. Er is niets mis met functies.
En daar geef je dus precies aan waarom persoonlijke voorkeur meespeelt in dit verhaalDat ze bij Zend überhaupt niet nadenken over hun taal lijkt me trouwens buiten kijf staan. Maar áls je dat doet, dan kun je prima kiezen voor een functie. Zo vind ik het bestaan van "echo" vrij discutabel - dat lijkt mij typisch iets voor een functie.
In het algemeen niet nee, maar in dit geval vind ik van wel.[...]
Maar dat is wat ik al eerder zei, een library-oplossing impliceert niet meteen dat het niet duidelijk hoeft te zijn.
Ja dat klopt. Dus? Veranderd nog niks aan mijn mening.Kijk maar naar C, die heeft de ellipsis als taalconstructie, zodat je duidelijk kunt zien dat een functie een aantal optionele argumenten accepteert.
Maar dat betekent nog niet meteen dat je ook parameter packs nodig hebt. C lost het op met de va_* macro's (een taaloplossing is overigens ook zo goed als onmogelijk in dat geval), PHP heeft iets equivalents met func_get_args(). Je kunt stellen dat PHP niet goed documenteert dat een functie meerdere argumenten verwacht, maar dat is niet de schuld van func_get_args(), en dergelijke documentatie verhindert niet het bestaan van func_get_args().
..
Nee, en als je goed gelezen had, dan was het duidelijk dat ik dat ook niet gezegd heb. Wat ik namelijk zei was dat in dit specifieke geval ik persoonlijk een language construct voor dit probleem meer op zijn plaats vindt.[...]
Jij bent dus altijd voor onnodige uitbreidingen?
Lees in de comments daar:TheNephilim schreef op woensdag 21 maart 2012 @ 13:48:
[...]
Dat is inderdaad wel erg gaaf! Hoeveel lag heb je met deze manier vraag ik me wel af. De data gaat van je telefoon (via wifi) naar de comet/push/etc server en die laat vervolgens de game (in browser) weer weten wat er gebeurd.
Voor games zoals in de voorbeelden moet dat niet echt een probleem wezen denk ik trouwens.
Nu ik dat zo lees kan ik me best voorstellen dat ik er ook lekker misselijk van zou wordenThis is disorienting, and if you imagine something like a 3d camera moving around in a 3d space, that gap creates motion sickness, even if it’s only ~50ms.
Diablo III: <GOT> Pteer#2475 --- POE: Dwergux
Toen ik de woorden 'bestandsnaam' en 'spatie' las moest ik meteen aan: https://github.com/MrMEEE...85247755cdbe0acce6#diff-1 denken_Peter2_ schreef op woensdag 21 maart 2012 @ 13:57:
Net lekker een perl-script mogen debuggen. Werd een bestand aangemaakt op basis van variablen uit een config file. Op het eind van het script wordt dit bestand verwijderd als het bestand nog aanwezig is (bestand is een crontole bestand om te voorkomen dat het script nog een keer wordt opgestart als het al draait). Maar het bestand blijft staan.
Blijkt dat de laatste variable in de config een spatie bevat en dus de bestandsnaam op een spatie eindigt, alleen maakt perl dus geen bestanden aan die op een spatie eindigen (perl stript uit zichzelf de trailing space bij het aanmaken van een bestand).
Heeft toch wat puzzlewerk gekost om dit te achterhalen
OUCH...Dragor schreef op woensdag 21 maart 2012 @ 14:20:
[...]
Toen ik de woorden 'bestandsnaam' en 'spatie' las moest ik meteen aan: https://github.com/MrMEEE...85247755cdbe0acce6#diff-1 denken(die link was hier al eens eerder gepost volgensmij)
Diablo III: <GOT> Pteer#2475 --- POE: Dwergux
Nee, B -> A is niet hetzelfde als ~B -> ~A. De propositie B -> A zegt niks over de situatie ~B.Caelorum schreef op woensdag 21 maart 2012 @ 13:45:
[...]
A = grammatica uitbreiden
B = nodig
~B => ~A (grammatica niet uitbreiden als dat onnodig is, jouw stelling volgens hem)
is hetzelfde als
B => A (grammatica uitbreiden als dat nodig is)
Haha, dit plaatje is dan ook geniaal:Dragor schreef op woensdag 21 maart 2012 @ 14:20:
[...]
Toen ik de woorden 'bestandsnaam' en 'spatie' las moest ik meteen aan: https://github.com/MrMEEE...85247755cdbe0acce6#diff-1 denken(die link was hier al eens eerder gepost volgensmij)
Haha geniaal al die plaatjes die er gepost zijn, net even smakelijk om zitten lachen met collegaDragor schreef op woensdag 21 maart 2012 @ 14:20:
[...]
Toen ik de woorden 'bestandsnaam' en 'spatie' las moest ik meteen aan: https://github.com/MrMEEE...85247755cdbe0acce6#diff-1 denken(die link was hier al eens eerder gepost volgensmij)
Kater? Eerst water, de rest komt later
Intru schreef op woensdag 21 maart 2012 @ 14:35:
[...]
Nee, B -> A is niet hetzelfde als ~B -> ~A. De propositie B -> A zegt niks over de situatie ~B.
Diablo III: <GOT> Pteer#2475 --- POE: Dwergux
[ Voor 12% gewijzigd door Martijn19 op 21-03-2012 15:30 ]
Maar daar ga je de mist inCaelorum schreef op woensdag 21 maart 2012 @ 13:45:
~B => ~A (grammatica niet uitbreiden als dat onnodig is, jouw stelling volgens hem)
is hetzelfde als
B => A (grammatica uitbreiden als dat nodig is)
Je mening was dat het te zien moet zijn, en daarom vond je func_get_args() een stomme functie. Dat vind ik een rare redenatie, om de reden die ik uiteenzet. Wil je nou dat het zichtbaar is én dat func_get_args() verdwijnt?D-Raven schreef op woensdag 21 maart 2012 @ 13:53:
Ja dat klopt. Dus? Veranderd nog niks aan mijn mening.
Je zei het wel (lees zelf maar eens goed), maar let ook op de smileyNee, en als je goed gelezen had, dan was het duidelijk dat ik dat ook niet gezegd heb. Yadda yadda yadda [je verhaal was allang duidelijk hoor]
[ Voor 42% gewijzigd door .oisyn op 21-03-2012 15:35 ]
Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.
Op zoek naar een nieuwe collega, .NET webdev, voornamelijk productontwikkeling. DM voor meer info
Grappig!alienfruit schreef op woensdag 21 maart 2012 @ 16:00:
Aah, ik gebruik daar gewoon brass monkey voor... http://playbrassmonkey.com/
How to find out if it is HTML5:TheNephilim schreef op woensdag 21 maart 2012 @ 16:25:
[...]
Grappig!![]()
Lol de website werkt niet in IE(zoals ik al dacht
Hij was zo mooi, ik dacht .. dat kan in IE niet goed gaan.
I'm not a complete idiot. Some parts are missing.
.Gertjan.: Ik ben een zelfstandige alcoholist, dus ik bepaal zelf wel wanneer ik aan het bier ga!
Als je het laatste doet maak dan op en minst een mobiele fall-back css, maar voor <=IE8 geef ik je geen ongelijkStM schreef op woensdag 21 maart 2012 @ 17:04:
Ik zit er heel serieus aan te denken om met mn nieuwe bedrijfswebsite IE 8 (en ouder ofc) niet meer te gaan ondersteunen... En resoluties onder de 1000px breed ook niet.
Opzich is IE8 nog niet een vreselijk groot probleem. Een layout verschijnt daar eigenlijk altijd goed als hij het in (bijv.) Chrome ook doet. IE7 en lager gaat vaak de fout in met margins en posities en dergelijke. Tenzij je echt gebruik gaat maken van HTML5 voor video's en dergelijke, dan word het een ander verhaal.StM schreef op woensdag 21 maart 2012 @ 17:04:
Ik zit er heel serieus aan te denken om met mn nieuwe bedrijfswebsite IE 8 (en ouder ofc) niet meer te gaan ondersteunen... En resoluties onder de 1000px breed ook niet.
.oisyn schreef op woensdag 21 maart 2012 @ 15:27:
[...]
Voorbeeld: A betekent een raaf, B een vogel. Als iets geen vogel is, dan kan het geen raaf zijn. Maar als iets wel een vogel is dan is het nog niet per se een raaf. ~A kan dus zijn terwijl B geldt.
Klopt, ik vind het inderdaad een stomme functie.Je mening was dat het te zien moet zijn, en daarom vond je func_get_args() een stomme functie. Dat vind ik een rare redenatie, om de reden die ik uiteenzet. Wil je nou dat het zichtbaar is én dat func_get_args() verdwijnt?
Mja ik hap te snel ^^Je zei het wel (lees zelf maar eens goed), maar let ook op de smiley
Moet je het wel goed zeggen want IE9 werkt prima met html5Firesphere schreef op woensdag 21 maart 2012 @ 16:29:
[...]
How to find out if it is HTML5:
Does it work in IE?
Yes?
It's not HTML5
Nothing to see here!
Misschien een hele simpele, maar komen wss native apps voor, voor de belangrijkste 3 platformenwsitedesign schreef op woensdag 21 maart 2012 @ 17:09:
[...]
Als je het laatste doet maak dan op en minst een mobiele fall-back css, maar voor <=IE8 geef ik je geen ongelijk
Als IE 8 braaf mee wil doen vind ik dat prima, maar ik heb geen zin om me er door te laten beperken. Heb je IE 8 val je wss ook niet in de doelgroep.TheNephilim schreef op woensdag 21 maart 2012 @ 17:09:
[...]
Opzich is IE8 nog niet een vreselijk groot probleem. Een layout verschijnt daar eigenlijk altijd goed als hij het in (bijv.) Chrome ook doet. IE7 en lager gaat vaak de fout in met margins en posities en dergelijke. Tenzij je echt gebruik gaat maken van HTML5 voor video's en dergelijke, dan word het een ander verhaal.
De websites die wij ontwikkelen zijn allemaal voor 980px breed gemaakt. Nou gaat het over je eigen website, maar klanten hebben vaak moeite om een website vol te krijgen met content/tekst/etc. Dus met een website breder dan 980pixels (bijv.1280) ziet het er dan helemaal kaal uit.
Deels ja, nog niet eens alle nieuwe elementen zijn ondersteund, laat staan de bijbehorende overige technologieën zoals websockets, de history API, webworkers, etc.Rutix schreef op woensdag 21 maart 2012 @ 17:23:
[...]
Moet je het wel goed zeggen want IE9 werkt prima met html5
[ Voor 10% gewijzigd door StM op 21-03-2012 17:31 ]
Beter één simpele dan geen, het is hier met mijn Nokia 5530 XpressMusic (semi smartphone zou ik zo zeggen) met Opera Mini erop soms huilen als er totaal geen aanpassingen gedaan zijnStM schreef op woensdag 21 maart 2012 @ 17:27:
Misschien een hele simpele, maar komen wss native apps voor, voor de belangrijkste 3 platformen
Accupack meenemen, twee wifi routertjes meenemen met een UTP'tje er tussen, klaar!alienfruit schreef op woensdag 21 maart 2012 @ 17:41:
Iemand moet een app maken zodat je een wifi hotspot kan maken van je wifi verbinding
(http://www.boingo.com/wifi-plans/mobile/boingo-mobile/ handig voor telefoon->notebook)
.oisyn: Échte programmeurs haten PHP met een passie. Ben jij soms geen echte programmeur?
Rutix schreef op woensdag 21 maart 2012 @ 17:23:
[...]
Moet je het wel goed zeggen want IE9 werkt prima met html5
[ Voor 13% gewijzigd door Firesphere op 21-03-2012 18:22 ]
I'm not a complete idiot. Some parts are missing.
.Gertjan.: Ik ben een zelfstandige alcoholist, dus ik bepaal zelf wel wanneer ik aan het bier ga!
De cirkeltjes rechtsboven maken de chaos wel compleet. Verder erg triest dat MENU'S IN CAPS blijkbaar de nieuwe standaard is. Behalve in Metro dan, daar wordt alles weer in kleine letters geschreven. Als dit geen Vista 2.0 wordt, weet ik het ook niet meer.Sh4wn schreef op woensdag 21 maart 2012 @ 18:07:
Haha het lijkt er op dat MS echt heeft bezuinigd qua UI designers:
"Honestly, why not just invent a way to make the screen rub sand in your eyes? Ladies and gentlemen, Outlook 15: http://www.winsupersite.c...ntent/142613/cal_peek.jpg "
[ Voor 19% gewijzigd door CodeCaster op 21-03-2012 18:23 ]
https://oneerlijkewoz.nl
Op papier is hij aan het tekenen, maar in de praktijk...
Wat is daar precies mee? Dat het onoverzichtelijk is? Dat heeft gewoon te maken met het feit dat het zo'n idioot klein schermpje is.Sh4wn schreef op woensdag 21 maart 2012 @ 18:07:
Haha het lijkt er op dat MS echt heeft bezuinigd qua UI designers:
"Honestly, why not just invent a way to make the screen rub sand in your eyes? Ladies and gentlemen, Outlook 15: http://www.winsupersite.c...ntent/142613/cal_peek.jpg "
Niet zo verschillend van de huidige versie. caps in de tabs mogen wel weg imho.Sh4wn schreef op woensdag 21 maart 2012 @ 18:07:
Haha het lijkt er op dat MS echt heeft bezuinigd qua UI designers:
"Honestly, why not just invent a way to make the screen rub sand in your eyes? Ladies and gentlemen, Outlook 15: http://www.winsupersite.c...ntent/142613/cal_peek.jpg "
No keyboard detected. Press F1 to continue.
Dat er nog reacties zijn, wat is er mis mee.Sh4wn schreef op woensdag 21 maart 2012 @ 18:07:
Haha het lijkt er op dat MS echt heeft bezuinigd qua UI designers:
"Honestly, why not just invent a way to make the screen rub sand in your eyes? Ladies and gentlemen, Outlook 15: http://www.winsupersite.c...ntent/142613/cal_peek.jpg "
[ Voor 15% gewijzigd door ZpAz op 21-03-2012 19:34 ]
Well...? Als je het op een fatsoenlijk scherm zou kijken zouden de icoontjes veel verder uit elkaar staan en zou het 90% zeker een heel stuk overzichtelijker en netter zijn.
[ Voor 27% gewijzigd door Avalaxy op 21-03-2012 19:38 ]
Man, onder welke steen leef jij? Dat is gewoon de ribbon die al 5 jaar in Office zit.ZpAz schreef op woensdag 21 maart 2012 @ 20:17:
Mja, laten we beginnen met het feit dat je in de linkerbovenhoek 2x het knopje opslaan hebt in 2 verschillende formaten. En dat is nog één van de mindere problemen.
.oisyn: Échte programmeurs haten PHP met een passie. Ben jij soms geen echte programmeur?
Ik weet dat Ribbon er sinds Office 2007 is. De klassieke ribbon is beter uitgewerkt dan dit gedrocht. Dit is de teams van Metro en Ribbon een uurtje laten vergaderen en hopen op het beste.*Korben schreef op woensdag 21 maart 2012 @ 20:26:
[...]
Man, onder welke steen leef jij? Dat is gewoon de ribbon die al 5 jaar in Office zit.
[ Voor 6% gewijzigd door ZpAz op 21-03-2012 20:34 ]
Die 'File'-knop zit ook al in Office 2010. Ik zie, buiten de CAPS en de kringeltjes rechtsbovenin, weinig verschil tussen Office 2010 en 15. Misschien dat 15 er wat strakker uit ziet dan 2010, maar that's it.ZpAz schreef op woensdag 21 maart 2012 @ 20:33:
[...]
Is hier nou de active tab "File" of Converencing Request? (Ik weet dat het het laatste is omdat ik weet van de oude ribbon dat File waarschijnlijk dat ronde knopje met het office logo knopje is). Maar iemand die er nooit mee heeft gewerkt, daar is dit niet echt duidelijk voor.
.oisyn: Échte programmeurs haten PHP met een passie. Ben jij soms geen echte programmeur?
Fout.ZpAz schreef op woensdag 21 maart 2012 @ 20:17:
Mja, laten we beginnen met het feit dat je in de linkerbovenhoek 2x het knopje opslaan hebt in 2 verschillende formaten. En dat is nog één van de mindere problemen.
Doe mij ook maar save, close en 'next mail', misschien vind iemand dat ook wel handig. Die knop kan er wel naast in een net wat andere grootte.BertS schreef op woensdag 21 maart 2012 @ 21:46:
[...]
Fout.
De bovenste (kleine) is 'save', de grote links daaronder is 'save & close'. Duidelijk verschillend dus, en imo een prima keuze: save&close wordt vaker gebruikt dan alleen save en is dus prominenter aanwezig.
Verder is die balk onderin ook al aanwezig in Outlook 2010, en daar standaard dichtgeklapt. Dat zal wel zo blijven lijkt me.
En dan inderdaad de al genoemde resolutie: op die resolutie ziet weinig software er goed uit, daar is het nu eenmaal niet voor ontworpen en ook niet voor bedoeld.
Zo'n knop is met wat pluginwerk nog wel eenvoudig te maken lijkt me mocht hij er niet standaard komen. Ik zou zeggen, kaart het eens aan bij microsoftZpAz schreef op woensdag 21 maart 2012 @ 22:11:
[...]
Doe mij ook maar save, close en 'next mail', misschien vind iemand dat ook wel handig. Die knop kan er wel naast in een net wat andere grootte.
Verwijderd
En op deze manier kan je als developer mooi zeggen dat je de software bugvrij hebt opgeleverd, want de gebruikers klagen nietStyxxy schreef op woensdag 21 maart 2012 @ 22:36:
Moraal van het verhaal: als ik niet op een ietwat toegankelijke wijze bugs kan reporten, dan report ik ze niet (en ik vermoed dat ik niet de enige ben).
Dit topic is gesloten.
Apple iPhone 17 LG OLED evo G5 Google Pixel 10 Samsung Galaxy S25 Star Wars: Outlaws Nintendo Switch 2 Apple AirPods Pro (2e generatie) Sony PlayStation 5 Pro
Tweakers is onderdeel van
DPG Media B.V.
Alle rechten voorbehouden - Auteursrecht © 1998 - 2025
•
Hosting door TrueFullstaq