abonnement Unibet Coolblue Bitvavo
pi_148798465
Ik ben bang dat hij dan naar een andere hoster opzoek moet, ben zelf nu aan het spelen de database zonder zoekplatform en heb in eerste instantie mijn tags maar eens beperkt.. En wat video's geskipped met onzin titels..

Eerst een kleine 8m aan videos, nu 7,2m.
Eerst 188k aan tags, nu 44k.
Eerst 70m aan tag links, nu 48m.

Scheelt toch wat... nu weer verder klooien met die queries...
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_148835523
ff een queries gespeeld, is niet gemakkelijk zeg :P (zonder specifieke zoekplatformen, maar moet toch echt wel sneller kunnen).

Query result:
quote:
MySQL gaf een lege resultatenset terug (0 rijen). (query duurde 157.0733 sec)
Query:
1
2
3
4
5
6
7
SELECT b . * 
FROM video_tag_link bt, videos b, tags t
WHERE bt.tag_id = t.tag_id
AND (t.name IN ('home',  'video'))
AND b.id = bt.video_id
GROUP BY b.id
HAVING COUNT( b.id ) =2

En met bestaande velden home en alone is het resultaat:
quote:
Showing rows 0 - 29 (213 total, query duurde 51.7825 sec)
Dat kan sneller toch? :P

Deze pagina gaf me aardig wat info: http://tagging.pui.ch/pos(...)ms-performance-tests

-edit-

Koppel ik ze los dan heb ik dit
SELECT * FROM tags WHERE name in ('home','alone') == 0,000 secs (2 resultaten)
SELECT video_id FROM video_tag_link WHERE tag_id IN ( 2316, 290 ) LIMIT 0 , 300000 == 20 secs (15292 resultaten).
SELECT * FROM videos WHERE id IN (763,) == 1 secs (15292 resultaten).

Is een stukje sneller... :{

[ Bericht 13% gewijzigd door Chandler op 19-01-2015 12:23:37 ]
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_148835835
quote:
5s.gif Op maandag 19 januari 2015 12:08 schreef Chandler het volgende:
ff een queries gespeeld, is niet gemakkelijk zeg :P (zonder specifieke zoekplatformen, maar moet toch echt wel sneller kunnen).

Showing rows 0 - 29 (213 total, query duurde 51.7825 sec)
Dat kan sneller toch? :P
Voer de query eens uit met EXPLAIN aan het begin.
Dan kun je zien waar het beste indices geplaatst kunnen worden.
When the student is ready, the teacher will appear.
When the student is truly ready, the teacher will disappear.
pi_148835932
quote:
7s.gif Op maandag 19 januari 2015 12:21 schreef Aether het volgende:

[..]

Voer de query eens uit met EXPLAIN aan het begin.
Dan kun je zien waar het beste indices geplaatst kunnen worden.
1
2
3
1 SIMPLE t range PRIMARY,name,id name 34 NULL 2 Using index condition; Using temporary; using filesort
1 SIMPLE b ALL PRIMARY NULL NULL NULL 7158720 Using join buffer (Block Nested Loop)
1 SIMPLE bt eq_ref video_id video_id 8 a.b.id,a.t.tag_id 1 Using index

:)
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_148837350
Het ziet er in ieder geval uit als een hele kromme query. Gebruik je nou IN en HAVING om enerzijds te selecteren op twee tag names en anderzijds te checken of ze allebei gevonden worden? In dat geval zou ik eens kijken of je middels WHERE EXISTS niet sneller resultaat krijgt.

Verder valt er vrij weinig te zeggen over je query zonder de onderliggende db structuur te kennen.
Volkorenbrood: "Geen quotes meer in jullie sigs gaarne."
pi_148846213
quote:
0s.gif Op maandag 19 januari 2015 13:13 schreef Monolith het volgende:
Het ziet er in ieder geval uit als een hele kromme query. Gebruik je nou IN en HAVING om enerzijds te selecteren op twee tag names en anderzijds te checken of ze allebei gevonden worden? In dat geval zou ik eens kijken of je middels WHERE EXISTS niet sneller resultaat krijgt.
Ik zal het eens bekijken en uitproberen ;)

quote:
Verder valt er vrij weinig te zeggen over je query zonder de onderliggende db structuur te kennen.
Bij deze ;)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
CREATE TABLE IF NOT EXISTS `tags` (
  `tag_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(32) NOT NULL,
  PRIMARY KEY (`tag_id`),
  UNIQUE KEY `name` (`name`),
  KEY `id` (`tag_id`,`name`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=200938 ;

CREATE TABLE IF NOT EXISTS `videos` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `tags` varchar(255) NOT NULL, -- tijdelijk voor andere tests (zelfde inhoud als beide andere tabellen)
  `title` varchar(255) NOT NULL,
  PRIMARY KEY (`id`),
  FULLTEXT KEY `tags` (`tags`),
  FULLTEXT KEY `title` (`title`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=7158721 ;

CREATE TABLE IF NOT EXISTS `video_tag_link` (
  `video_id` int(10) unsigned NOT NULL,
  `tag_id` int(10) unsigned NOT NULL,
  UNIQUE KEY `video_id` (`video_id`,`tag_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1; -- 48miljoen records
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_148851299
quote:
14s.gif Op maandag 19 januari 2015 17:09 schreef Chandler het volgende:

[..]

Ik zal het eens bekijken en uitproberen ;)

[..]

Bij deze ;)
[ code verwijderd ]

Je mist een index in je koppeltabel
1ALTER TABLE `video_tag_links` ADD INDEX `tag_id` (`tag_id`);

Voor video_id heb je geen aparte index nodig, dat wordt afgehandeld door de unique key. Je zou ook de unique key kunnen aanpassen naar (`tag_id`, `video_id`) en dan een aparte index op `video_id` zetten. In beide gevallen wordt je tabel groter (want meer index-ruimte nodig) en worden queries een stuk sneller.
pi_148851533
Volgens mij doet hij altijd een query op beide velden in de index, dus zou dat op zich goed moeten gaan. Hoewel het lang geleden is dat ik me in detail met indices in MySQL heb beziggehouden.
Volkorenbrood: "Geen quotes meer in jullie sigs gaarne."
pi_148851875
quote:
0s.gif Op maandag 19 januari 2015 19:41 schreef Monolith het volgende:
Volgens mij doet hij altijd een query op beide velden in de index, dus zou dat op zich goed moeten gaan. Hoewel het lang geleden is dat ik me in detail met indices in MySQL heb beziggehouden.
Er wordt een full table scan gedaan bij een query waar je dat niet verwacht, dus de indices staan niet goed. Dat die full table scan op de video's-tabel wordt gedaan en niet op de koppeltabel, komt omdat die laatste tabel veel groter is (7mln vs 48 mln rijen).
pi_148852059
quote:
0s.gif Op maandag 19 januari 2015 19:49 schreef Light het volgende:

[..]

Er wordt een full table scan gedaan bij een query waar je dat niet verwacht, dus de indices staan niet goed. Dat die full table scan op de video's-tabel wordt gedaan en niet op de koppeltabel, komt omdat die laatste tabel veel groter is (7mln vs 48 mln rijen).
Ah, ik had de explain even gemist. ;)
Volkorenbrood: "Geen quotes meer in jullie sigs gaarne."
pi_148853136
Helaas,

Ook geen profijt... :{ maar thanks voor't meedenken...

Ik speel gewoon verder ;)

-- gelijk een vraagje ;)

Kan iemand mij deze regel uitleggen? :P

CONSTRAINT `image_fk` FOREIGN KEY (`image_id`) REFERENCES `image` (`image_id`),

[ Bericht 32% gewijzigd door Chandler op 19-01-2015 22:08:23 ]
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_148862022
quote:
0s.gif Op maandag 19 januari 2015 20:18 schreef Chandler het volgende:

-- gelijk een vraagje ;)

Kan iemand mij deze regel uitleggen? :P

CONSTRAINT `image_fk` FOREIGN KEY (`image_id`) REFERENCES `image` (`image_id`),
De tabel waar die regel in staat heeft een foreign key constraint met de unieke naam image_fk. De waarde in de kolom image_id verwijst naar een waarde in de kolom image_id in de tabel image. Je kunt dus geen waarde opslaan die niet ook in image.image_id staat.

Bijkomend effect is dat er een index op de kolom image_id is in de tabel waar die regel staat.

En als je je afvraagt waarom (`image_id`) tussen haakjes staat; het is ook mogelijk om een foreign key constraint te maken over meerdere kolommen. Die moeten dan wel verwijzen naar evenveel kolommen die allemaal in dezelfde tabel staan. Of dat nuttig is, weet ik niet. Het verklaart de haakjes, en het is nuttig om te weten dat een foreign key ook over meerdere kolommen kan gaan.
pi_148970529
Thanks Light! Snap er nog weinig van maar al iets meer dan ervoor..

Qua indexes loopt het nog steeds voor geen meter, heb nu eerst mijn mysql configuratie aangepast. (van 64MB naar 6GB :D) en dat scheelt al aardig wat tijd... maar nog steeds gebruikt hij een temporary filesort...

1
2
3
1 SIMPLE t range  PRIMARY,name,id name 34 NULL 2 Using index condition; Using temporary; using filesort
1 SIMPLE bt ref PRIMARY,video_id video_id 4  asexfilmzoeker1.t.id 488020 Using index 
1 SIMPLE b eq_ref PRIMARY PRIMARY 4 asexfilmzoeker1.bt.video_id 1 NULL

Index voor video_tag_link
1
2
3
4
5
Actie    Sleutelnaam    Type    Unieke waarde    Gecomprimeerd    Kolom    Kardinaliteit    Collatie    Leeg    Opmerking
Wijzigen Wijzigen    Verwijderen Verwijderen    PRIMARY    BTREE    Ja    Nee    video_id        A    Nee    
tag_id    48802076    A    Nee
Wijzigen Wijzigen    Verwijderen Verwijderen    video_id    BTREE    Nee    Nee    tag_id        A    Nee    
video_id        A    Nee

Index voor tags
1
2
3
4
5
Actie    Sleutelnaam    Type    Unieke waarde    Gecomprimeerd    Kolom    Kardinaliteit    Collatie    Leeg    Opmerking
Wijzigen Wijzigen    Verwijderen Verwijderen    PRIMARY    BTREE    Ja    Nee    id    44810    A    Nee    
Wijzigen Wijzigen    Verwijderen Verwijderen    name    BTREE    Ja    Nee    name    44810    A    Nee    
Wijzigen Wijzigen    Verwijderen Verwijderen    id    BTREE    Nee    Nee    id    44810    A    Nee    
name    44810    A    Nee

En index voor videos
1
2
3
4
5
Actie    Sleutelnaam    Type    Unieke waarde    Gecomprimeerd    Kolom    Kardinaliteit    Collatie    Leeg    Opmerking
Wijzigen Wijzigen    Verwijderen Verwijderen    PRIMARY    BTREE    Ja    Nee    id    7158720    A    Nee    
Wijzigen Wijzigen    Verwijderen Verwijderen    seconds    BTREE    Nee    Nee    seconds    73801    A    Nee    
Wijzigen Wijzigen    Verwijderen Verwijderen    tags    FULLTEXT    Nee    Nee    tags    1        Nee    
Wijzigen Wijzigen    Verwijderen Verwijderen    title    FULLTEXT    Nee    Nee    title    1        Nee    

Het veranderen van een indexen etc (meerdere keren gedaan, kost me zo'n 5 uur per index...) :{
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_148986741
Een ander type database gebruiken? :P

Zou je ook eens een explain van je query kunnen posten?
pi_148988456
quote:
19s.gif Op vrijdag 23 januari 2015 18:47 schreef TwenteFC het volgende:
Een ander type database gebruiken? :P

Zou je ook eens een explain van je query kunnen posten?
Die staat in mijn 1e quote.

Het rare is namelijk dat zoeken in tabel videos, veld tags (like %tag%) vele malen sneller is dan het uitlezen van tags tabellen (normaliseren). :{ op dit moment geen mogelijkheid om een andere server/scripts te gebruiken anders dan MySQL.......

Wil wel even een dump maken hoor :@ strip ik alle onnodige informatie, heb je een import sql bestand van 4GB :D
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_148991877
Denormaliseren? Gewoon om te kijken wat het doet.
pi_148991882
Ja :{ dan maar :P
The people who lost my respect will never get a capital letter for their name again.
Like trump...
  vrijdag 23 januari 2015 @ 21:57:21 #218
63192 ursel
"Het Is Hier Fantastisch!
pi_148992856
Zit je stiekem sexfilms te zoeken? :P
pi_149002821
quote:
0s.gif Op vrijdag 23 januari 2015 21:57 schreef ursel het volgende:
Zit je stiekem sexfilms te zoeken? :P
7 miljoen? beetje te veel, maar je zit aardig in de buurt :+
The people who lost my respect will never get a capital letter for their name again.
Like trump...
  FOK!mycroftheld zaterdag 24 januari 2015 @ 10:45:27 #220
128465 verified  bondage
Ingewikkeld
pi_149004280
quote:
0s.gif Op vrijdag 23 januari 2015 19:47 schreef Chandler het volgende:

[..]

Die staat in mijn 1e quote.

Het rare is namelijk dat zoeken in tabel videos, veld tags (like %tag%) vele malen sneller is dan het uitlezen van tags tabellen (normaliseren). :{ op dit moment geen mogelijkheid om een andere server/scripts te gebruiken anders dan MySQL.......

Wil wel even een dump maken hoor :@ strip ik alle onnodige informatie, heb je een import sql bestand van 4GB :D
Welke storage engine gebruik je? Heb je bijvoorbeeld al InnoDB geprobeerd?

En: https://blogs.oracle.com/(...)ncement_in_full_text

[ Bericht 6% gewijzigd door bondage op 24-01-2015 10:52:25 ]
pi_149005352
Sowieso MariaDB in plaats van MySQL
pi_149005580
quote:
1s.gif Op zaterdag 24 januari 2015 11:47 schreef robin007bond het volgende:
Sowieso MariaDB in plaats van MySQL
En waarom zou dat gaan helpen? Zoals al aangegeven is de beste optie om gewoon een fatsoenlijk zoekplatform te gebruiken, maar die mogelijkheid heeft hij niet.
Volkorenbrood: "Geen quotes meer in jullie sigs gaarne."
pi_149005664
Nee :( al ligt het volgens mij en Light voornamelijk aan de foutieve indexen... :{ alleen die goed krijgen kost per test 8 uur :( LOL
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_149005681
quote:
1s.gif Op zaterdag 24 januari 2015 11:58 schreef Monolith het volgende:

[..]

En waarom zou dat gaan helpen? Zoals al aangegeven is de beste optie om gewoon een fatsoenlijk zoekplatform te gebruiken, maar die mogelijkheid heeft hij niet.
Het was meer een zijspoor. :P Niet echt relevant aan zijn probleem.
pi_149007705
Jeej,

Volgende query doet het best :)

1
2
3
4
5
6
7
8
explain
SELECT * 
    FROM videos o
    LEFT OUTER JOIN video_tag_link ot ON ot.video_id = o.id
    LEFT OUTER JOIN tags t ON t.tag_id = ot.tag_id
   WHERE t.name IN ('home','alone')
GROUP BY o.id
  HAVING COUNT(DISTINCT t.name) = 2

Doet ook aan filesort maar vind in totaal 5638 resultaten in ruim 1 seconde... :D
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_149012933
quote:
0s.gif Op zaterdag 24 januari 2015 13:28 schreef Chandler het volgende:
Jeej,

Volgende query doet het best :)
[ code verwijderd ]

Doet ook aan filesort maar vind in totaal 5638 resultaten in ruim 1 seconde... :D
:P ook met SQL_NO_CACHE ?
pi_149013238
Nee :'( :+

SPOILER
Om spoilers te kunnen lezen moet je zijn ingelogd. Je moet je daarvoor eerst gratis Registreren. Ook kun je spoilers niet lezen als je een ban hebt.
The people who lost my respect will never get a capital letter for their name again.
Like trump...
  zondag 25 januari 2015 @ 00:10:09 #228
272287 henrivo
Tikt tegen jassies
pi_149027591
Jeuw. Symfony2 kenners hier?

Wanneer ik form_row a en b oproep in een view, worden direct eronder ook meteen form_row c en d weergegeven. Terwijl ik die niet wil laten zien in die view.

{{ form_start(form) }}
{{ form_row(form.a) }}
{{ form_row(form.b) }}
{{ form_end(form) }}

Even als voorbeeldje hoe ik het heb
  zondag 25 januari 2015 @ 11:09:48 #229
272287 henrivo
Tikt tegen jassies
pi_149034178
quote:
0s.gif Op zondag 25 januari 2015 00:10 schreef henrivo het volgende:
Jeuw. Symfony2 kenners hier?

Wanneer ik form_row a en b oproep in een view, worden direct eronder ook meteen form_row c en d weergegeven. Terwijl ik die niet wil laten zien in die view.

{{ form_start(form) }}
{{ form_row(form.a) }}
{{ form_row(form.b) }}
{{ form_end(form) }}

Even als voorbeeldje hoe ik het heb
Inmiddels een workaround gevonden, nu blijf ik weer hangen bij de melding "Notice: Array to string conversion". Als iemand dat bekend voor komt, laat even weten hoe je dat hebt opgelost :)

SPOILER
Om spoilers te kunnen lezen moet je zijn ingelogd. Je moet je daarvoor eerst gratis Registreren. Ook kun je spoilers niet lezen als je een ban hebt.
pi_149047225
quote:
0s.gif Op zondag 25 januari 2015 11:09 schreef henrivo het volgende:

[..]

Inmiddels een workaround gevonden, nu blijf ik weer hangen bij de melding "Notice: Array to string conversion". Als iemand dat bekend voor komt, laat even weten hoe je dat hebt opgelost :)

SPOILER
Om spoilers te kunnen lezen moet je zijn ingelogd. Je moet je daarvoor eerst gratis Registreren. Ook kun je spoilers niet lezen als je een ban hebt.
Dat komt door de regel:
1{{ form_end{form) }}
De documentatie schrijft voor:
quote:
form_end()
Renders the end tag of the form and any fields that have not yet been rendered, in case you rendered each field yourself. This is useful for rendering hidden fields and taking advantage of the automatic CSRF Protection.
Array to string conversion notice komt simpelweg doordat je ergens een array als argument meegeeft terwijl er een string wordt verwacht (zonder code gaan wij niet kunnen uitvinden waar dat vandaan komt).
  zondag 25 januari 2015 @ 19:59:16 #231
272287 henrivo
Tikt tegen jassies
pi_149051870
quote:
0s.gif Op zondag 25 januari 2015 17:59 schreef Diabox het volgende:

[..]

Dat komt door de regel:
[ code verwijderd ]
Helemaal overheen gelezen, domdomdom |:(

quote:
De documentatie schrijft voor:

[..]

Array to string conversion notice komt simpelweg doordat je ergens een array als argument meegeeft terwijl er een string wordt verwacht (zonder code gaan wij niet kunnen uitvinden waar dat vandaan komt).
Zo ver was ik al :) Ik duik vanavond nog eens in de code, als ik er niet uit kom plemp ik de hele zooi hier even :P

SPOILER
Om spoilers te kunnen lezen moet je zijn ingelogd. Je moet je daarvoor eerst gratis Registreren. Ook kun je spoilers niet lezen als je een ban hebt.
pi_149196468
Gewoon omdat ik het hier eigenlijk nooit voorbij zie komen,

maar wie hier gebruikt er wel eens op regelmatige basis triggers, functies en dergelijke in mysql?
pi_149207229
quote:
19s.gif Op donderdag 29 januari 2015 23:52 schreef TwenteFC het volgende:
Gewoon omdat ik het hier eigenlijk nooit voorbij zie komen,

maar wie hier gebruikt er wel eens op regelmatige basis triggers, functies en dergelijke in mysql?
Nee, want MySQL is totaal niet de plaats om allerlei logica in te gaan dumpen.
  vrijdag 30 januari 2015 @ 13:27:01 #234
91039 mstx
2x1/2 = 1/2 x 1/2
pi_149207519
Nooit nodig gehad. 1x een collega gehad die daar dus iets in verstopt had, na uren zoeken had ik dus eindelijk gevonden hoe er opeens bepaalde waardes in kolommen werden weggeschreven. :')
Op donderdag 2 juli 2009 22:41 schreef RTB het volgende:
als ik elk rap"liedje" een kans moest geven was ik aan het eind van dit millennium nog bezig met het tempo waarin die kotshoop uitgebraakt wordt.
👾
pi_149209888
quote:
0s.gif Op vrijdag 30 januari 2015 13:16 schreef Intrepidity het volgende:

[..]

Nee, want MySQL is totaal niet de plaats om allerlei logica in te gaan dumpen.
Soms kan het vanuit performance oogpunt handig zijn. Zeker ORM is lang niet altijd optimaal efficiënt. Nou merk je dat bij een gemiddeld websiteje niet, maar als het om wat grootschaligere applicaties gaat, dan zijn dat soort zaken wat belangrijker.
Ook qua security biedt het extra mogelijkheden. Triggers kunnen dan wel weer nuttig zijn voor auditing en data integrity.
Vaak is het wel zo dat als je je over dergelijke zaken druk dient te maken, MySQL sowieso niet meer de juiste database is. :P
Volkorenbrood: "Geen quotes meer in jullie sigs gaarne."
pi_149215993
Ik zit er ook over te denken om bepaalde subqueries die in een bepaalde applicatie meerdere keren terugkomen per query, in een routine samen te vatten. Maar ik ga die hele applicatie nog herschrijven dus daar denk ik tzt nog wel een keer over na.

(Het is een reports applicatie voor een CRM, en die is nu een beetje lelijk omdat ik de queries om heb moeten schrijven naar een nieuwe versie van het CRM. Maar uiteindelijk moeten de reports gewoon in het CRM geïntegreerd worden)
pi_149228377
Botte vraag en niet geheel on-topic (maar hier redelijke kans op antwoorden): wat verdienen jullie ongeveer als webprogrammeur? Ik heb een salarisaanbod gekregen die ik maar moeilijk kan plaatsen. Ik heb bijna 4 jaar professionele werkervaring als web developer, en heb daarnaast een BSc en MSc (informatica en SE); 15 eu p/u. Leek mij niet in verhouding met mijn ervaring en opleidingen (werk momenteel daar op freelance basis voor een veelvoud van dat bedrag).
  FOK!mycroftheld zaterdag 31 januari 2015 @ 02:04:06 #238
128465 verified  bondage
Ingewikkeld
pi_149228593
quote:
0s.gif Op zaterdag 31 januari 2015 01:43 schreef Diabox het volgende:
Botte vraag en niet geheel on-topic (maar hier redelijke kans op antwoorden): wat verdienen jullie ongeveer als webprogrammeur? Ik heb een salarisaanbod gekregen die ik maar moeilijk kan plaatsen. Ik heb bijna 4 jaar professionele werkervaring als web developer, en heb daarnaast een BSc en MSc (informatica en SE); 15 eu p/u. Leek mij niet in verhouding met mijn ervaring en opleidingen (werk momenteel daar op freelance basis voor een veelvoud van dat bedrag).
15 is imo te weinig, ik zit daar een paar euro boven met 6 jaar ervaring. Het werk is op HBO niveau maar ik ben er tussen gerold met een MBO4 diploma.
pi_149229664
Anderzijds moet Diabox ook rekening houden dat in deze tijd het hebben van een vaste baan ook wel een lekker zekerheidje is want wil jij niet, dan neemt men met gemak (gezien het gigantische aanbod van werklozen in alle sectoren) een ander.
pi_149230480
quote:
15s.gif Op zaterdag 31 januari 2015 06:16 schreef Iwanius het volgende:
Anderzijds moet Diabox ook rekening houden dat in deze tijd het hebben van een vaste baan ook wel een lekker zekerheidje is want wil jij niet, dan neemt men met gemak (gezien het gigantische aanbod van werklozen in alle sectoren) een ander.
nou dat 'crisis'-verhaal gaat echt niet in elke sector op hoor. Ik ben twee jaar geleden geswitched van werkgever en had gewoon keuze... En wij willen op het werk al geruime tijd en goede programmeur erbij maar die zijn heel lastig te vinden
------___------ 53
----.(___).---- 42
---(o\_!_/o)---
  zaterdag 31 januari 2015 @ 09:39:32 #241
62215 qu63
..de tijd drinkt..
pi_149230548
quote:
0s.gif Op zaterdag 31 januari 2015 01:43 schreef Diabox het volgende:
Botte vraag en niet geheel on-topic (maar hier redelijke kans op antwoorden): wat verdienen jullie ongeveer als webprogrammeur? Ik heb een salarisaanbod gekregen die ik maar moeilijk kan plaatsen. Ik heb bijna 4 jaar professionele werkervaring als web developer, en heb daarnaast een BSc en MSc (informatica en SE); 15 eu p/u. Leek mij niet in verhouding met mijn ervaring en opleidingen (werk momenteel daar op freelance basis voor een veelvoud van dat bedrag).
Mijn bijbaan als touringcarchauffeur op MBO4 niveau heeft dat zo ongeveer als minimum (bruto) :{
Hobbyprogrammeur hier :@
It's Time To Shine
[i]What would life be like without rhethorical questions?[/i]
pi_149231483
quote:
15s.gif Op zaterdag 31 januari 2015 06:16 schreef Iwanius het volgende:
Anderzijds moet Diabox ook rekening houden dat in deze tijd het hebben van een vaste baan ook wel een lekker zekerheidje is want wil jij niet, dan neemt men met gemak (gezien het gigantische aanbod van werklozen in alle sectoren) een ander.
Ik krijg toch echt wekelijks vele aanbiedingen. Dat is wel voornamelijk in de Java hoek.
Volkorenbrood: "Geen quotes meer in jullie sigs gaarne."
  zaterdag 31 januari 2015 @ 11:04:33 #243
12221 Tijn
Powered by MS Paint
pi_149231706
quote:
15s.gif Op zaterdag 31 januari 2015 06:16 schreef Iwanius het volgende:
Anderzijds moet Diabox ook rekening houden dat in deze tijd het hebben van een vaste baan ook wel een lekker zekerheidje is want wil jij niet, dan neemt men met gemak (gezien het gigantische aanbod van werklozen in alle sectoren) een ander.
Ik moet de eerste werkloze programmeur nog tegenkomen, hoor.
pi_149231846
quote:
11s.gif Op zaterdag 31 januari 2015 02:04 schreef bondage het volgende:
15 is imo te weinig, ik zit daar een paar euro boven met 6 jaar ervaring. Het werk is op HBO niveau maar ik ben er tussen gerold met een MBO4 diploma.
Ik zit met ~7 jaar (parttime @ ~20 uur per week) ervaring op ongeveer 13 euro per uur :') op 0 uren basis en zonder vakantiedagen ed.
Toch maar eens babbelen met de baas _O-

Nu ik erover nadenk, ik verdiende als systeembeheer-sjappie in 2007, 50 cent meer dan dat ik nu doe :') Als was dat (en is me huidige dat ook) wel een bijbaan.

[ Bericht 6% gewijzigd door #ANONIEM op 31-01-2015 11:20:12 ]
pi_149232095
quote:
1s.gif Op zaterdag 31 januari 2015 10:52 schreef Monolith het volgende:

[..]

Ik krijg toch echt wekelijks vele aanbiedingen. Dat is wel voornamelijk in de Java hoek.
Zijn dat vaste banen die je aangeboden krijgt?
pi_149232238
quote:
0s.gif Op zaterdag 31 januari 2015 11:23 schreef Robuustheid het volgende:

[..]

Zijn dat vaste banen die je aangeboden krijgt?
Yep. Dan moet je natuurlijk nog wel een sollicitatieprocedure door, maar toch.
Op de markt voor mensen met kennis van Java (en allerhande gerelateerde technologieën) is ook nog wel een stuk meer schaarste dan op die voor PHP / front-end developers.
Volkorenbrood: "Geen quotes meer in jullie sigs gaarne."
  zaterdag 31 januari 2015 @ 11:53:33 #247
12221 Tijn
Powered by MS Paint
pi_149232761
Er zijn misschien meer PHP en front-enders, maar een groot deel daarvan is tamelijk clueless en zijn eigenlijk meer hobbyisten dan serieuze programmeurs.
pi_149232863
quote:
10s.gif Op zaterdag 31 januari 2015 11:53 schreef Tijn het volgende:
Er zijn misschien meer PHP en front-enders, maar een groot deel daarvan is tamelijk clueless en zijn eigenlijk meer hobbyisten dan serieuze programmeurs.
Die worden er tegenwoordig gelukkig wel vrij snel uitgegooid :Y Heb bij het huidige bedrijf waar ik zit al een handvol programmeurs de proeftijd niet zien overleven omdat ze er niks van bakten of stukken script gingen copy-pasten van random sites :').
pi_149233017
quote:
99s.gif Op zaterdag 31 januari 2015 11:57 schreef CrashO het volgende:

[..]

Die worden er tegenwoordig gelukkig wel vrij snel uitgegooid :Y Heb bij het huidige bedrijf waar ik zit al een handvol programmeurs de proeftijd niet zien overleven omdat ze er niks van bakten of stukken script gingen copy-pasten van random sites :').
Inderdaad, de prutsers vallen toch vrij snel door de mand. Als wij bij de sollicitatie twijfelen over het niveau laten we ze een kleine opdracht doen. En anders heb je inderdaad de proeftijd nog...
------___------ 53
----.(___).---- 42
---(o\_!_/o)---
pi_149233029
quote:
10s.gif Op zaterdag 31 januari 2015 11:53 schreef Tijn het volgende:
Er zijn misschien meer PHP en front-enders, maar een groot deel daarvan is tamelijk clueless en zijn eigenlijk meer hobbyisten dan serieuze programmeurs.
Oh zeker, ik heb ook wel wat werk in die hoek gedaan en heel vaak was het echt huilen met de pet op. Het verschil tussen de Java community en de PHP community is qua professionaliteit sowieso wel aanzienlijk hoor.
Volkorenbrood: "Geen quotes meer in jullie sigs gaarne."
  FOK!mycroftheld zaterdag 31 januari 2015 @ 12:08:41 #251
128465 verified  bondage
Ingewikkeld
pi_149233124
quote:
99s.gif Op zaterdag 31 januari 2015 11:12 schreef CrashO het volgende:

[..]

Ik zit met ~7 jaar (parttime @ ~20 uur per week) ervaring op ongeveer 13 euro per uur :') op 0 uren basis en zonder vakantiedagen ed.
Toch maar eens babbelen met de baas _O-

Nu ik erover nadenk, ik verdiende als systeembeheer-sjappie in 2007, 50 cent meer dan dat ik nu doe :') Als was dat (en is me huidige dat ook) wel een bijbaan.
Dat is echt weinig :{ Ik heb vorige week mijn beoordeling gehad en mijn manager zit eraan te denken om mij nog een schaal hoger te zetten. Voor 13 euro per uur zou ik het denk ik niet eens doen, tenzij ik echt desperate ben en niets anders kan vinden.
  zaterdag 31 januari 2015 @ 12:08:58 #252
12221 Tijn
Powered by MS Paint
pi_149233132
quote:
0s.gif Op zaterdag 31 januari 2015 12:04 schreef Monolith het volgende:

[..]

Oh zeker, ik heb ook wel wat werk in die hoek gedaan en heel vaak was het echt huilen met de pet op. Het verschil tussen de Java community en de PHP community is qua professionaliteit sowieso wel aanzienlijk hoor.
Maar dat zorgt er dus ook wel voor dat de schaarste in die hoek groter is dan-ie lijkt. Een PHP'er vinden is niet zo'n probleem. Een goede vinden daarentegen...
pi_149233194
quote:
1s.gif Op zaterdag 31 januari 2015 09:32 schreef Rockfire het volgende:

[..]

nou dat 'crisis'-verhaal gaat echt niet in elke sector op hoor. Ik ben twee jaar geleden geswitched van werkgever en had gewoon keuze... En wij willen op het werk al geruime tijd en goede programmeur erbij maar die zijn heel lastig te vinden
Nou, wat betalen jullie? :7
pi_149233250
quote:
11s.gif Op zaterdag 31 januari 2015 12:08 schreef bondage het volgende:
Voor 13 euro per uur zou ik het denk ik niet eens doen, tenzij ik echt desperate ben en niets anders kan vinden.
Echt veel is het niet inderdaad, maar reken ik het om naar fulltime dan kom je toch op zo'n 2200 euro per maand. Niet echt goed, maar het is geen minimumloon oid. Geld is geld ;)

Er zijn helaas niet veel bedrijven die part-time programmeurs aannemen.

[ Bericht 4% gewijzigd door #ANONIEM op 31-01-2015 12:15:51 ]
pi_149233300
quote:
0s.gif Op zaterdag 31 januari 2015 12:11 schreef Diabox het volgende:

[..]

Nou, wat betalen jullie? :7
Ik verdien (met bijna 10 jaar werkervaring en HBO + WO opleiding) in ieder geval wel ruim meer dan die 15 euro per uur ;) Maar woon je in de buurt van Hilversum? Dan zou een gesprek zeker tot de mogelijkheden behoren :)
------___------ 53
----.(___).---- 42
---(o\_!_/o)---
pi_149233309
quote:
2s.gif Op zaterdag 31 januari 2015 12:08 schreef Tijn het volgende:

[..]

Maar dat zorgt er dus ook wel voor dat de schaarste in die hoek groter is dan-ie lijkt. Een PHP'er vinden is niet zo'n probleem. Een goede vinden daarentegen...
Mwoah, ook binnen die hoek is er een enorme differentiatie. Java kent ook een vele malen breder ecosysteem dan PHP, wat hoofdzakelijk web development is, met daardoor ook vele malen meer specialisaties als zoekplatformen, webapplicaties, ESBs, Android apps, enzovoort.

Maar ik ben het inderdaad met je eens dat een goede PHP developer vinden vrij lastig is. In het gros van de gevallen ontbreekt ook gewoon het echte begrip van de taal. Iets dat zeker met de relatief beroerde implementatie van PHP vrij belangrijk is.
Volkorenbrood: "Geen quotes meer in jullie sigs gaarne."
pi_149233466
quote:
0s.gif Op zaterdag 31 januari 2015 12:16 schreef Monolith het volgende:
Maar ik ben het inderdaad met je eens dat een goede PHP developer vinden vrij lastig is. In het gros van de gevallen ontbreekt ook gewoon het echte begrip van de taal. Iets dat zeker met de relatief beroerde implementatie van PHP vrij belangrijk is.
Verschil is ook wel dat Java er bij iedere informatica opleiding ingebeukt wordt (de basis althans). En php alleen bij wat media-achtige opleidingen als soort van mini-cursus door een docent zonder enige vorm van kennis. Waardoor je bij php voornamelijk 2 groepen hebt, hobbyisten zonder diepe kennis die maar wat aankloten en de autodidacten die (fatsoenlijke) literatuur lezen en zichzelf naar knap niveau werken. En laat nou net die laatste groep relatief klein zijn :P

[ Bericht 7% gewijzigd door #ANONIEM op 31-01-2015 12:24:41 ]
  FOK!mycroftheld zaterdag 31 januari 2015 @ 12:27:57 #258
128465 verified  bondage
Ingewikkeld
pi_149233567
quote:
99s.gif Op zaterdag 31 januari 2015 12:13 schreef CrashO het volgende:

[..]

Echt veel is het niet inderdaad, maar reken ik het om naar fulltime dan kom je toch op zo'n 2200 euro per maand. Niet echt goed, maar het is geen minimumloon oid. Geld is geld ;)

Er zijn helaas niet veel bedrijven die part-time programmeurs aannemen.
Heb je ook extra voordelen zoals een laptop en mobiel van de zaak?

Betreft inkomsten zit ik net iets boven de 3000 per maand bruto fulltime en heb mobiel en laptop van de zaak welke ik ook deels privé mag gebruiken. En natuurlijk paar thuiswerkdagen in de week :9

Overigens wordt er wel van het team (waarvan ik deel uitmaak) verwacht dat we zelfstandig kunnen werken. Projecten komen binnen nadat ze langs een lang traject zijn geweest en zodra het bij ons ligt moeten wij bepalen hoeveel tijd en capaciteit we ervoor nodig hebben en uiteindelijk komen met een werkend product welke goed getest is en in principe klaar voor productie.
pi_149233637
quote:
14s.gif Op zaterdag 31 januari 2015 12:27 schreef bondage het volgende:
Heb je ook extra voordelen zoals een laptop en mobiel van de zaak?
Nope, helemaal niks :P Lunch in eigen tijd, geen vakantiedagen en geen andere voordeeltjes.
't is wel een klein bedrijfje trouwens. Toen ik er 4 jaar geleden begon was er de baas (zelf ook programmeur) en een designer. Dit heb ik sindsdien zien groeien naar zo'n 15 man totaal en weer zien krimpen tot de huidige situatie waarin ik de enige werknemer ben naast de baas :X Ik doe alles zelf, contact met klanten, ontwerp, uitrol, etc.

[ Bericht 3% gewijzigd door #ANONIEM op 31-01-2015 12:31:53 ]
pi_149233727
quote:
99s.gif Op zaterdag 31 januari 2015 12:24 schreef CrashO het volgende:

[..]

Verschil is ook wel dat Java er bij iedere informatica opleiding ingebeukt wordt (de basis althans). En php alleen bij wat media-achtige opleidingen als soort van mini-cursus door een docent zonder enige vorm van kennis. Waardoor je bij php voornamelijk 2 groepen hebt, hobbyisten zonder diepe kennis die maar wat aankloten en de autodidacten die (fatsoenlijke) literatuur lezen en zichzelf naar knap niveau werken. En laat nou net die laatste groep relatief klein zijn :P
Mja, maar in principe stelt PHP met Java ervaring niet zo gek veel voor. Het hele OO-gedeelte is toch grotendeels gejat bij / geïnspireerd door Java. Ook veel PHP frameworks hebben wel aardig leentjebuur gespeeld bij Spring, Hibernate, enzovoort.
Andersom wordt het een ander verhaal. Alleen al iets als basaals threading is vaak een hele pittige kluif voor mensen die die stap maken.
Ik ben het wel met je eens dat er veel baggeraanbod is op de PHP markt. Een collega van me mocht onlangs nog even de PHP codebase gaan doorspitten van de applicatie van een aangekocht bedrijfje. Daar kwam vrij veel gevloek bij kijken. :P
Volkorenbrood: "Geen quotes meer in jullie sigs gaarne."
  FOK!mycroftheld zaterdag 31 januari 2015 @ 12:36:04 #261
128465 verified  bondage
Ingewikkeld
pi_149233749
quote:
99s.gif Op zaterdag 31 januari 2015 12:30 schreef CrashO het volgende:

[..]

Nope, helemaal niks :P Lunch in eigen tijd, geen vakantiedagen en geen andere voordeeltjes.
't is wel een klein bedrijfje trouwens. Toen ik er 4 jaar geleden begon was er de baas (zelf ook programmeur) en een designer. Dit heb ik sindsdien zien groeien naar zo'n 15 man totaal en weer zien krimpen tot de huidige situatie waarin ik de enige werknemer ben naast de baas :X Ik doe alles zelf, contact met klanten, ontwerp, uitrol, etc.
Dus eigenlijk mag je van geluk spreken dat je nog een baan hebt... Aan de andere kant, als je er inmiddels 4 jaar werkt mag je imo wel wat hoger zitten qua loon. Of je moet al een echte klaploper zijn die een beetje aan het knutselen is maar dat is waarschijnlijk niet het geval ;)

Ik zit zo nu en dan wel eens op T.net te kijken wat voor vacatures er allemaal zijn betreft PHP en kom aardig wat tegen, meeste daarvan zijn echter wel fulltime.

Er is trouwens wel een nadeel: ik moet drie dagen in de week van Assen naar Amersfoort. Ik heb het er voor over maar heb soms dagen dat ik daar minder zin in heb.
pi_149233819
quote:
11s.gif Op zaterdag 31 januari 2015 12:36 schreef bondage het volgende:
Of je moet al een echte klaploper zijn die een beetje aan het knutselen is maar dat is waarschijnlijk niet het geval ;)
Zou kunnen, hehe. Maar nadat het bedrijf in november 2013 over de kop ging mocht ik als enige terug komen bij de nieuwe zaak. Dus ik denk dat ik iets goed doe O-)

Maar inderdaad, een baan is een baan in deze tijden. :Y Had wel een verhoging gehad halverwege 2013 (van 12 naar 13 euro), maar sindsdien niet meer. En vond het ook wat grof om een korte tijd na het faillissement een verhoging te eisen.

[ Bericht 1% gewijzigd door #ANONIEM op 31-01-2015 12:40:47 ]
  FOK!mycroftheld zaterdag 31 januari 2015 @ 12:43:12 #263
128465 verified  bondage
Ingewikkeld
pi_149233944
quote:
99s.gif Op zaterdag 31 januari 2015 12:38 schreef CrashO het volgende:

[..]

Zou kunnen, hehe. Maar nadat het bedrijf in november 2013 over de kop ging mocht ik als enige terug komen bij de nieuwe zaak. Dus ik denk dat ik iets goed doe O-)

Maar inderdaad, een baan is een baan in deze tijden. :Y
Blijkbaar doe je het goed. Ik had ook niet verwacht dat mijn manager zo over mij te spreken zou zijn, is toch een mooi compliment en zet me aan om nog beter te worden.

Wel jammer dat het zich wat minder in loon vertaald maar ja, beter dan thuiszitten met een uitkering.

Bij ons zijn jaarlijkse beoordelingen en de daarbij behorende loonsverhoging (in geval van goede beoordeling) verplicht. Maar ja, het bedrijf waar ik voor werk is 'iets' groter dus dat is allemaal veel strakker geregeld.
pi_149235652
quote:
0s.gif Op zaterdag 31 januari 2015 12:15 schreef Rockfire het volgende:

[..]

Ik verdien (met bijna 10 jaar werkervaring en HBO + WO opleiding) in ieder geval wel ruim meer dan die 15 euro per uur ;) Maar woon je in de buurt van Hilversum? Dan zou een gesprek zeker tot de mogelijkheden behoren :)
Nope, helaas wat te ver rijden.

quote:
0s.gif Op zaterdag 31 januari 2015 12:34 schreef Monolith het volgende:

[..]

Mja, maar in principe stelt PHP met Java ervaring niet zo gek veel voor. Het hele OO-gedeelte is toch grotendeels gejat bij / geïnspireerd door Java. Ook veel PHP frameworks hebben wel aardig leentjebuur gespeeld bij Spring, Hibernate, enzovoort.
Andersom wordt het een ander verhaal. Alleen al iets als basaals threading is vaak een hele pittige kluif voor mensen die die stap maken.
Ik ben het wel met je eens dat er veel baggeraanbod is op de PHP markt. Een collega van me mocht onlangs nog even de PHP codebase gaan doorspitten van de applicatie van een aangekocht bedrijfje. Daar kwam vrij veel gevloek bij kijken. :P
Ik ben momenteel bezig om de PHP codebase van het bedrijf in kwestie te refactoren. Alles is full-potato geprogrammeerd in gigantische bestanden met bergen if-statements en PHP, queries en HTML alles doorelkaar heen (>100k regels).
pi_149237165
quote:
9s.gif Op zaterdag 31 januari 2015 14:02 schreef Diabox het volgende:

[..]

Nope, helaas wat te ver rijden.

[..]

Ik ben momenteel bezig om de PHP codebase van het bedrijf in kwestie te refactoren. Alles is full-potato geprogrammeerd in gigantische bestanden met bergen if-statements en PHP, queries en HTML alles doorelkaar heen (>100k regels).
Zo erg was het ook weer niet. Maar als je professionele Enterprise architecturen gewend bent, is de gemiddelde PHP applicatie echt om te huilen. :P
Volkorenbrood: "Geen quotes meer in jullie sigs gaarne."
pi_149237884
quote:
9s.gif Op zaterdag 31 januari 2015 14:02 schreef Diabox het volgende:
Ik ben momenteel bezig om de PHP codebase van het bedrijf in kwestie te refactoren. Alles is full-potato geprogrammeerd in gigantische bestanden met bergen if-statements en PHP, queries en HTML alles doorelkaar heen (>100k regels).
Herkenbaar _O-
Al heb ik zelf ook een keer meegedaan. Leek toen der tijd een goed idee om alles overzichtelijk bij elkaar te houden in 1 taal. Dus had een helper geschreven zodat ik alle jquery kon produceren in php.. 8)7 Nader inzien werd dat uiteraard 1 onleesbare lap code. Controllers vol met jquery in php.

1$jh->execute->sendToFront->jquery()->('#targetDiv')->slideUp('slow');
of gewoon een hele functie erin duwen
1$jh->execute->sendToFront->jquery()->('#targetButton')->click(function() { alert('hoi'); });
Dat soort constructies werden mogelijk :P (stond een actieve thread op de voorkant te checken bij de server). Eigenlijk wel nekschot waardig -O-

* Was voor een boekhoud ding die volledig in de front-end draaide. Alles werd zonder reloads ingeladen met een stel achtergrond threads. Dus dit "leek" een goed idee om dingen bij users die al 8 uur de boel open hadden staan aan te kunnen passen o|O

[ Bericht 6% gewijzigd door #ANONIEM op 31-01-2015 15:39:21 ]
pi_149239217
quote:
99s.gif Op zaterdag 31 januari 2015 15:31 schreef CrashO het volgende:

[..]

Herkenbaar _O-
Al heb ik zelf ook een keer meegedaan. Leek toen der tijd een goed idee om alles overzichtelijk bij elkaar te houden in 1 taal. Dus had een helper geschreven zodat ik alle jquery kon produceren in php.. 8)7 Nader inzien werd dat uiteraard 1 onleesbare lap code. Controllers vol met jquery in php.
[ code verwijderd ]

of gewoon een hele functie erin duwen
[ code verwijderd ]

Dat soort constructies werden mogelijk :P (stond een actieve thread op de voorkant te checken bij de server). Eigenlijk wel nekschot waardig -O-

* Was voor een boekhoud ding die volledig in de front-end draaide. Alles werd zonder reloads ingeladen met een stel achtergrond threads. Dus dit "leek" een goed idee om dingen bij users die al 8 uur de boel open hadden staan aan te kunnen passen o|O
Er zijn wel frameworks als GWT waarbij je enkel Java voor schrijft, ook voor het front end gedeelte. Wel XML templates voor de HTML. Vervolgens wordt de JS gewoon gegenereerd, evenals alle Ajax calls e.d.
Volkorenbrood: "Geen quotes meer in jullie sigs gaarne."
pi_149241125
Hngg. Turkse karakters worden niet correct weergegeven in de browser...

- PHP-bestand met dit erin:
quote:
<meta charset="utf-8">
- Encoding van het bestand: UTF-8 without BOM (Notepad++)
- Collation van MariaDB-database en -tabellen: utf8_turkish_ci
- Browser: Firefox (/IE)

Ik krijg het gewoon niet voor elkaar om de Turkse karakters zoals ç en ş correct weer te geven... Iemand een idee waar ik moet kijken/wat ik moet veranderen?

Edit:
quote:
array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8")
Dit toegevoegd aan 'new PDO()' en het werkt nu goed.

[ Bericht 1% gewijzigd door #ANONIEM op 31-01-2015 18:45:03 ]
pi_149241779
quote:
0s.gif Op zaterdag 31 januari 2015 18:14 schreef zarGon het volgende:
Hngg. Turkse karakters worden niet correct weergegeven in de browser...

- PHP-bestand met dit erin:

[..]

- Encoding van het bestand: UTF-8 without BOM (Notepad++)
- Collation van MariaDB-database en -tabellen: utf8_turkish_ci
- Browser: Firefox (/IE)

Ik krijg het gewoon niet voor elkaar om de Turkse karakters zoals ç en ş correct weer te geven... Iemand een idee waar ik moet kijken/wat ik moet veranderen?

Edit:

[..]

Dit toegevoegd aan 'new PDO()' en het werkt nu goed.
Al een kijkje genomen in je locale van PHP?

Edit: Nevermind :@

[ Bericht 5% gewijzigd door #ANONIEM op 31-01-2015 18:45:10 ]
pi_149268549
Voor wie zelf PHP-extensions in C++ wilt schrijven kwam ik deze bibliotheek tegen: PHP-CPP.
When the student is ready, the teacher will appear.
When the student is truly ready, the teacher will disappear.
  maandag 2 februari 2015 @ 01:49:57 #271
62215 qu63
..de tijd drinkt..
pi_149286461
Ok, echte Dummie-vraag:

Hoe sla ik een naam als "Lasse Hallström" het beste op in mijn database? htmlspecialchars()? htmlentities()?

En hoe geef ik het dan weer leesbaar weer? htmlspecialchars_decode()? Iets anders?

En hoe kan ik die naam invoegen in een url? dus "bla.php?search=Lasse Hallström"

Lasse Hallström
It's Time To Shine
[i]What would life be like without rhethorical questions?[/i]
pi_149286615
quote:
0s.gif Op maandag 2 februari 2015 01:49 schreef qu63 het volgende:
Ok, echte Dummie-vraag:

Hoe sla ik een naam als "Lasse Hallström" het beste op in mijn database? htmlspecialchars()? htmlentities()?

En hoe geef ik het dan weer leesbaar weer? htmlspecialchars_decode()? Iets anders?

En hoe kan ik die naam invoegen in een url? dus "bla.php?search=Lasse Hallström"

Lasse Hallström
ik zou zorgen dat zowel php, mysql als de connectie tussen php<>mysql utf-8 als character set heeft.. dan kan je volgens mij gewoon die exacte naam in een insert query, zonder dingen als htmlspecialchars, gooien..

maar het is nogal een tijd geleden dat ik gebruik heb gemaakt van php/mysql, dus wellicht zijn er weer wijzigingen geweest..
  maandag 2 februari 2015 @ 02:10:04 #273
62215 qu63
..de tijd drinkt..
pi_149286698
quote:
0s.gif Op maandag 2 februari 2015 02:01 schreef mschol het volgende:

[..]

ik zou zorgen dat zowel php, mysql als de connectie tussen php<>mysql utf-8 als character set heeft.. dan kan je volgens mij gewoon die exacte naam in een insert query, zonder dingen als htmlspecialchars, gooien..
Ga ik daar eens naar kijken :)
quote:
maar het is nogal een tijd geleden dat ik gebruik heb gemaakt van php/mysql, dus wellicht zijn er weer wijzigingen geweest..
Gelukkig draait mijn host oude versie van zowel php als mysql :')
It's Time To Shine
[i]What would life be like without rhethorical questions?[/i]
pi_149289091
We kunnen allemaal wel haten op de API van PHP, maar toch mogen we van geluk spreken dat er ook nog front-enders zijn om de javascript te schrijven ^O^

pi_149289142
quote:
0s.gif Op maandag 2 februari 2015 09:11 schreef Intrepidity het volgende:
We kunnen allemaal wel haten op de API van PHP, maar toch mogen we van geluk spreken dat er ook nog front-enders zijn om de javascript te schrijven ^O^

[ afbeelding ]
1
2
3
4
5
alert('' == '0'); //false
alert(0 == ''); // true
alert(0 =='0'); // true

~~4.5 = 4
When the student is ready, the teacher will appear.
When the student is truly ready, the teacher will disappear.
pi_149291567
quote:
0s.gif Op maandag 2 februari 2015 09:11 schreef Intrepidity het volgende:
We kunnen allemaal wel haten op de API van PHP, maar toch mogen we van geluk spreken dat er ook nog front-enders zijn om de javascript te schrijven ^O^

[ afbeelding ]
Javascript is inderdaad zo ongeveer ook de enige taal die bijna net zo beroerd in elkaar steekt als PHP.
Dit blijft toch ook altijd wel een aardige opsomming. :P
Volkorenbrood: "Geen quotes meer in jullie sigs gaarne."
  maandag 2 februari 2015 @ 11:22:19 #277
12221 Tijn
Powered by MS Paint
pi_149291600
Het voordeel van Javascript is dat er een subset van de taal is die wel goed in elkaar steekt. Als je je beperkt tot alleen dat deel, valt het allemaal reuze mee.

Met PHP is het niet zo'n feest, dat is gewoon altijd een puinhoop.
pi_149291757
Je hebt ook ongeveer 0,0 serieuze alternatieven voor Javascript.
Volkorenbrood: "Geen quotes meer in jullie sigs gaarne."
  maandag 2 februari 2015 @ 11:33:49 #279
12221 Tijn
Powered by MS Paint
pi_149291854
quote:
0s.gif Op maandag 2 februari 2015 11:29 schreef Monolith het volgende:
Je hebt ook ongeveer 0,0 serieuze alternatieven voor Javascript.
Uiteindelijk is Javascript de enige programmeertaal die je kunt gebruiken in de browser. Dus of je nou wil of niet, als je iets maakt dat in browsers moet draaien, kun je je maar beter in Javascript verdiepen.

Iets waarvan veel programmeurs denken dat het niet nodig is trouwens, omdat ze denken dat ze de taal zo wel snappen omdat de syntax ze bekend voorkomt.
pi_149292002
quote:
3s.gif Op maandag 2 februari 2015 11:33 schreef Tijn het volgende:

[..]

Uiteindelijk is Javascript de enige programmeertaal die je kunt gebruiken in de browser. Dus of je nou wil of niet, als je iets maakt dat in browsers moet draaien, kun je je maar beter in Javascript verdiepen.

Iets waarvan veel programmeurs denken dat het niet nodig is trouwens, omdat ze denken dat ze de taal zo wel snappen omdat de syntax ze bekend voorkomt.
Het enige wat je nog kunt doen is gebruik maken van talen of Frameworks die compileren naar Javascript. Ik haalde eerder al GWT aan, waarbij je gewoon code in Java ontwikkelt (met alle voordelen van een fatsoenlijke taal) en die vervolgens gecompileerd wordt tot Javascript.
Volkorenbrood: "Geen quotes meer in jullie sigs gaarne."
  maandag 2 februari 2015 @ 11:42:32 #281
63192 ursel
"Het Is Hier Fantastisch!
pi_149292084
quote:
0s.gif Op maandag 2 februari 2015 09:11 schreef Intrepidity het volgende:
We kunnen allemaal wel haten op de API van PHP, maar toch mogen we van geluk spreken dat er ook nog front-enders zijn om de javascript te schrijven ^O^

[ afbeelding ]
Hey, zit jij ook al op phpnl slack.? :D
Kwam hem daar ook al tegen
  maandag 2 februari 2015 @ 11:47:16 #282
12221 Tijn
Powered by MS Paint
pi_149292212
quote:
0s.gif Op maandag 2 februari 2015 11:39 schreef Monolith het volgende:

[..]

Het enige wat je nog kunt doen is gebruik maken van talen of Frameworks die compileren naar Javascript. Ik haalde eerder al GWT aan, waarbij je gewoon code in Java ontwikkelt (met alle voordelen van een fatsoenlijke taal) en die vervolgens gecompileerd wordt tot Javascript.
Ja, je hebt wel meer van dat soort vertalers, ook voor andere talen zoals Perl, Ruby en C# (zelfs PHP trouwens :+). Verder heb je nog nieuwe talen die compilen naar Javascript, zoals Coffeescript of Dart.

Maar persoonlijk schrijf ik liever de code die daadwerkelijk bij de client wordt uitgevoerd dan het via zo'n vertalingslaag te doen.
pi_149292363
quote:
2s.gif Op maandag 2 februari 2015 11:47 schreef Tijn het volgende:

[..]

Ja, je hebt wel meer van dat soort vertalers, ook voor andere talen zoals Perl, Ruby en C#. Verder heb je nog nieuwe talen die compilen naar Javascript, zoals Coffeescript of Dart.

Maar persoonlijk schrijf ik liever de code die daadwerkelijk bij de client wordt uitgevoerd dan het via zo'n vertalingslaag te doen.
Mja, er zitten wel behoorlijke voordelen aan hoor. GWT is best geavanceerd, dus je kunt ook echt je Java code (die eigenlijk naar Javascript gecompileerd is) debuggen in je IDE. Wat een heel stuk prettiger werkt dan JS debuggen in browsers en aanverwante tooltjes.

Daarnaast heb ik ook nog wel Google Closure gebruikt. Dan schrijf je nog wel steeds javascript, maar heb je wel allerhande annotations om private / public access te checken, 'strong typing' te hanteren, enzovoort.
Volkorenbrood: "Geen quotes meer in jullie sigs gaarne."
  maandag 2 februari 2015 @ 12:01:55 #284
12221 Tijn
Powered by MS Paint
pi_149292693
quote:
0s.gif Op maandag 2 februari 2015 11:51 schreef Monolith het volgende:

[..]

Mja, er zitten wel behoorlijke voordelen aan hoor. GWT is best geavanceerd, dus je kunt ook echt je Java code (die eigenlijk naar Javascript gecompileerd is) debuggen in je IDE. Wat een heel stuk prettiger werkt dan JS debuggen in browsers en aanverwante tooltjes.

Daarnaast heb ik ook nog wel Google Closure gebruikt. Dan schrijf je nog wel steeds javascript, maar heb je wel allerhande annotations om private / public access te checken, 'strong typing' te hanteren, enzovoort.
Mja, ik ben meer een hacker dan een enterprise figuur. Ik zie niet echt het voordeel van strong typing om eerlijk te zijn :+

Private / public variabelen en methods kun je ook gewoon zo in Javascript maken, daar heb je niks speciaals voor nodig:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
var myObject = (function() {

    var privateVar = 'is een baas';
    var privateMethod = function() {
        return 'super secret';
    }

    return {
        publicVar: 'Tijn',
        publicMethod: function() {
            return this.publicVar + ' ' + privateVar;
        },
        anotherMethod: function() {
            return 'The password is: ' + privateMethod();
        }
    }
}());
pi_149292978
quote:
10s.gif Op maandag 2 februari 2015 12:01 schreef Tijn het volgende:

[..]

Mja, ik ben meer een hacker dan een enterprise figuur. Ik zie niet echt het voordeel van strong typing om eerlijk te zijn :+
Een heel belangrijk voordeel van strong typing is dat je al die ellende met het optellen van strings en ints / doubles enzovoort door elkaar die hier net voorbij kwam niet hebt.

quote:
Private / public variabelen en methods kun je ook gewoon zo in Javascript maken, daar heb je niks speciaals voor nodig:
[ code verwijderd ]

Ik weet dat het in Javascript kan hoor, maar het is omslachtig. Met @private / @public annotations is het een stuk eleganter. Belangrijker nog, vaak heb je door dat soort frameworks ook IDE ondersteuning (al dan niet via een plug-in) waarmee je terwijl je aan het developen bent al kunt zien of je ergens een fout maakt.
Volkorenbrood: "Geen quotes meer in jullie sigs gaarne."
pi_149293625
quote:
10s.gif Op maandag 2 februari 2015 12:01 schreef Tijn het volgende:

[..]

Mja, ik ben meer een hacker dan een enterprise figuur. Ik zie niet echt het voordeel van strong typing om eerlijk te zijn :+

Private / public variabelen en methods kun je ook gewoon zo in Javascript maken, daar heb je niks speciaals voor nodig:
[ code verwijderd ]

Ik gebruik nu (voor kleinere projecten) af en toe TypeScript waarmee o.a. beter op typen kan worden gecontroleerd. Vooral de laatste versie 1.4 biedt veel nieuwe opties.
When the student is ready, the teacher will appear.
When the student is truly ready, the teacher will disappear.
pi_149629434
Korte update over mijn index probleem (pagina 5).

Oplossing is kappen met joinen...
Heb nu meerdere testen gedraaid zonder dikke joins.
Ieder tabel een query..

Grappig is dat dit vele malen sneller is...

Van 80secs naar 0.5!!
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_149629550
Mijn ervaring is dat je vanuit een grote tabel prima kunt joinen naar een kleine tabel, maar niet andersom.

SELECT * FROM hugetable LEFT JOIN smalltable gaat prima, SELECT * FROM smalltable LEFT JOIN hugetable, beter niet. Zeker niet als je meerdere joins moet doen.
pi_149632527
Nee precies, en aangezien ik meerdere grote tabellen join (2gb + 1gb + 3gb :D) en omdat de servers die ik kan gebruiken geen fulltext zoek mogelijkheden/uitbreidingen hebben en minder dan 8gb geheugen (te gebruiken) is dit dan toch wel de beste keuze...

Wat ik nu ook zoek, het zit allemaal ruim onder de 1 seconde... (zonder te cachen)..
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_149720265
Toevoeging :D

Hoe kom ik af van deze filesort? indexes staan goed... lijkt me... maar mogelijk zit ik fout..

1
2
3
4
5
6
SELECT SQL_NO_CACHE `video_id`
FROM `video_tag_link` 
WHERE `tag_id` IN ('2721','245')
GROUP BY `video_id`
HAVING COUNT(`video_id`) = 2
LIMIT 0, 20

Explain geeft het volgende
1
2
3
4
5
6
7
8
9
10
id = 1
select_type = SIMPLE
table = video_tag_link
type = range
possible_keys = PRIMARY,video_id
key = video_id
key_len = 4
ref = NULL
rows = 8903
exta = Using where; Using index; Using temporary; Using filesort

Iemand een idee?
The people who lost my respect will never get a capital letter for their name again.
Like trump...
  maandag 16 februari 2015 @ 11:16:03 #291
12221 Tijn
Powered by MS Paint
pi_149721142
Heb je al geprobeerd om "ORDER BY NULL" toe te voegen?
pi_149721850
Nee, maar ff geprobeerd en helaas, same result..
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_149722603
quote:
0s.gif Op maandag 16 februari 2015 11:51 schreef Chandler het volgende:
Nee, maar ff geprobeerd en helaas, same result..
Heb je een gecombineerde index op tag_id en video_id?
When the student is ready, the teacher will appear.
When the student is truly ready, the teacher will disappear.
pi_149723973
quote:
0s.gif Op maandag 16 februari 2015 11:51 schreef Chandler het volgende:
Nee, maar ff geprobeerd en helaas, same result..
Mag ik vragen waarom je trouwens een group by video_id doet?
Doe je dit om er voor te zorgen dat je geen dubbele items krijgt?
🕰️₿🕰️₿🕰️₿🕰️₿🕰️₿🕰️ TikTok next Block
pi_149726256
quote:
0s.gif Op maandag 16 februari 2015 13:24 schreef raptorix het volgende:

[..]

Mag ik vragen waarom je trouwens een group by video_id doet?
Doe je dit om er voor te zorgen dat je geen dubbele items krijgt?
Een having clause zonder Group By wordt wat lastig. Zoals ik z'n query lees wil hij de ID's vinden van video's die beide tags uit de where clause hebben, vandaar de count=2.
Het zijn mij echter iets te veel fragmentjes informatie verspreid over deze reeks om nou echt een advies te kunnen geven over wat hij het best kan doen. :P
Volkorenbrood: "Geen quotes meer in jullie sigs gaarne."
pi_149726660
quote:
0s.gif Op maandag 16 februari 2015 14:32 schreef Monolith het volgende:

[..]

Een having clause zonder Group By wordt wat lastig. Zoals ik z'n query lees wil hij de ID's vinden van video's die beide tags uit de where clause hebben, vandaar de count=2.
Het zijn mij echter iets te veel fragmentjes informatie verspreid over deze reeks om nou echt een advies te kunnen geven over wat hij het best kan doen. :P
Ja dat snap ik ;)
Bedoelde meer waarom hij daar een aggregate functie voor gebruikt, zijn over algemeen dure queries vandaar.
🕰️₿🕰️₿🕰️₿🕰️₿🕰️₿🕰️ TikTok next Block
pi_149726854
quote:
0s.gif Op maandag 16 februari 2015 11:51 schreef Chandler het volgende:
Nee, maar ff geprobeerd en helaas, same result..
Misschien een hele domme tip, maar zou je eens voor de grap het IN statement voor een exacte match kunnen vervangen? "IN" kan soms nogal evil zijn. Ik ben geen MySql expert dus kan het mishebben.
🕰️₿🕰️₿🕰️₿🕰️₿🕰️₿🕰️ TikTok next Block
pi_149729173
quote:
7s.gif Op maandag 16 februari 2015 12:27 schreef Aether het volgende:
Heb je een gecombineerde index op tag_id en video_id?
Yup! :) en zelfs 1tje op video_id en tag_id.
quote:
0s.gif Op maandag 16 februari 2015 14:32 schreef Monolith het volgende:
Een having clause zonder Group By wordt wat lastig. Zoals ik z'n query lees wil hij de ID's vinden van video's die beide tags uit de where clause hebben, vandaar de count=2.
Precies
quote:
Het zijn mij echter iets te veel fragmentjes informatie verspreid over deze reeks om nou echt een advies te kunnen geven over wat hij het best kan doen. :P
Wat mis je dan aan informatie? mijn tabel opzet? video_id int, tag_id int en daarop een unique en 1 extra qua index voor tag_id/video_id
quote:
0s.gif Op maandag 16 februari 2015 14:46 schreef raptorix het volgende:
Ja dat snap ik ;)
Bedoelde meer waarom hij daar een aggregate functie voor gebruikt, zijn over algemeen dure queries vandaar.
Omdat ik er vanuit ging dat deze daar voor bedoeld waren.

quote:
0s.gif Op maandag 16 februari 2015 14:52 schreef raptorix het volgende:
Misschien een hele domme tip, maar zou je eens voor de grap het IN statement voor een exacte match kunnen vervangen? "IN" kan soms nogal evil zijn. Ik ben geen MySql expert dus kan het mishebben.
Klopt, heb nu even deze query getest
1
2
3
4
5
6
explain SELECT SQL_NO_CACHE `video_id`
FROM `video_tag_link` 
WHERE `tag_id` = 2721 OR `tag_id` = 245
GROUP BY `video_id`
HAVING COUNT(`video_id`) = 2
LIMIT 0, 20
en daar heb ik ook last van een filesort... wil dat eigenlijk voorkomen ;) en dat zou moeten kunnen...
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_149729494
Als ik je goed begrijp heb je geen index op video_id an sich? Dat lijkt me dan sowieso een probleem aangezien je een group by op video_id hanteert.
Als je die wel hebt, dan kun je nog eens kijken of je met FORCE INDEX wel het gebruik kan forceren.

Wat ik vooral bedoelde aan ontbrekende informatie is ook de use case. Je hebt hier nu bijvoorbeeld een voorbeeldje met twee tag_ids. Is dat altijd zo? Of is dat een variabel aantal?
Volkorenbrood: "Geen quotes meer in jullie sigs gaarne."
pi_149729899
quote:
0s.gif Op maandag 16 februari 2015 16:26 schreef Monolith het volgende:
Als ik je goed begrijp heb je geen index op video_id an sich? Dat lijkt me dan sowieso een probleem aangezien je een group by op video_id hanteert.
Als je die wel hebt, dan kun je nog eens kijken of je met FORCE INDEX wel het gebruik kan forceren.
Nee ik heb geen index op video_id an sich... ga dat eens proberen..
quote:
Wat ik vooral bedoelde aan ontbrekende informatie is ook de use case. Je hebt hier nu bijvoorbeeld een voorbeeldje met twee tag_ids. Is dat altijd zo? Of is dat een variabel aantal?
Het is een zeer variabel aantal, kan ook 1 zijn maar ook 8?! :D

-edit-
Wordt zelfs erger dan :P
Using where; Using index; Using temporary; Using filesort

[ Bericht 8% gewijzigd door Chandler op 16-02-2015 16:43:07 ]
The people who lost my respect will never get a capital letter for their name again.
Like trump...
abonnement Unibet Coolblue Bitvavo
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')